Use contents scale even if the layer's transform is not affine
[framework/web/webkit-efl.git] / Source / WebKit2 / ChangeLog-2011-02-16
1 2011-02-16  Anders Carlsson  <andersca@apple.com>
2
3         Reviewed by Adam Roben.
4
5         Always disable the responsiveness timer when showing a popup menu
6         https://bugs.webkit.org/show_bug.cgi?id=54578
7         <rdar://problem/9009170>
8
9         * UIProcess/WebPageProxy.cpp:
10         (WebKit::WebPageProxy::showPopupMenu):
11
12 2011-02-16  Anders Carlsson  <andersca@apple.com>
13
14         Reviewed by Adam Roben.
15
16         Assertion failure in DrawingAreaImpl::display when calling WKPageForceRepaint on a page that uses accelerated compositing
17         https://bugs.webkit.org/show_bug.cgi?id=54575
18         <rdar://problem/8979594>
19
20         * WebProcess/WebPage/DrawingAreaImpl.cpp:
21         (WebKit::DrawingAreaImpl::forceRepaint):
22         If there is a layer tree host, ask it to force a repaint instead.
23
24         * WebProcess/WebPage/LayerTreeHost.h:
25         * WebProcess/WebPage/mac/LayerTreeHostMac.h:
26         * WebProcess/WebPage/mac/LayerTreeHostMac.mm:
27         (WebKit::LayerTreeHostMac::forceRepaint):
28         Flush any layer changes, then flush and synchronize the current CA transaction.
29
30 2011-02-16  Alexey Proskuryakov  <ap@apple.com>
31
32         Reviewed by Anders Carlsson.
33
34         https://bugs.webkit.org/show_bug.cgi?id=54572
35         REGRESSION (WebKit2): Print Backgrounds checkbox has no effect for DOM initiated printing
36
37         * UIProcess/WebPageProxy.cpp: (WebKit::WebPageProxy::preferencesDidChange): Preferences need
38         to be propagated to Web process during synchronous printing.
39
40 2011-02-15  Anders Carlsson  <andersca@apple.com>
41
42         Reviewed by Sam Weinig.
43
44         WebPluginSiteDataManager should work with plug-in process
45         https://bugs.webkit.org/show_bug.cgi?id=54523
46         <rdar://problem/8689312>
47
48         * PluginProcess/PluginProcess.cpp:
49         (WebKit::PluginProcess::removeWebProcessConnection):
50         Call startShutdownTimerIfNecessary().
51
52         (WebKit::PluginProcess::getSitesWithData):
53         Ask the plug-in module for the sites with data and send them back
54         in a PluginProcessProxy::DidGetSitesWithData message.
55
56         (WebKit::PluginProcess::clearSiteData):
57         Clear site data and send back a DidClearSiteData message.
58
59         (WebKit::PluginProcess::startShutdownTimerIfNecessary):
60         Factor code out from removeWebProcessConnection.
61
62         * PluginProcess/PluginProcess.messages.in:
63         Add new messages.
64
65         * UIProcess/Plugins/PluginInfoStore.cpp:
66         (WebKit::PluginInfoStore::plugins):
67         New function for getting all plug-ins.
68
69         * UIProcess/Plugins/PluginProcessManager.cpp:
70         (WebKit::PluginProcessManager::getPluginProcessConnection):
71         Call getOrCreatePluginProcess.
72
73         (WebKit::PluginProcessManager::getSitesWithData):
74         Get a plug-in process proxy and call getSitesWithData.
75
76         (WebKit::PluginProcessManager::clearSiteData):
77         Get a plug-in process proxy and call clearSiteData.
78
79         (WebKit::PluginProcessManager::getOrCreatePluginProcess):
80         Factor code to create a plug-in process out into a separate function.
81
82         * UIProcess/Plugins/PluginProcessProxy.cpp:
83         (WebKit::PluginProcessProxy::getSitesWithData):
84         (WebKit::PluginProcessProxy::clearSiteData):
85         Update the pending reply struct. If the process is still launching,
86         enqueue the request. Otherwise, just send the message.
87
88         (WebKit::PluginProcessProxy::pluginProcessCrashedOrFailedToLaunch):
89         Make sure that pending replies are sent out.
90
91         (WebKit::PluginProcessProxy::didFinishLaunching):
92         Send our pending requests.
93
94         (WebKit::PluginProcessProxy::didGetSitesWithData):
95         (WebKit::PluginProcessProxy::didClearSiteData):
96         Call down to the plug-in site data manager.
97
98         * UIProcess/Plugins/PluginProcessProxy.messages.in:
99         Add DidGetSitesWithData and DidClearSiteData messages.
100
101         * UIProcess/Plugins/WebPluginSiteDataManager.cpp:
102         (WebKit::WebPluginSiteDataManager::GetSitesWithDataState::GetSitesWithDataState):
103         Initialize the state.
104
105         (WebKit::WebPluginSiteDataManager::GetSitesWithDataState::getSitesWithDataForNextPlugin):
106         If the plug-in queue is empty, call didGetSitesWithDataForAllPlugins. Otherwise, ask
107         the plug-in process manager to get sites for the next plug-in.
108
109         (WebKit::WebPluginSiteDataManager::GetSitesWithDataState::didGetSitesWithDataForSinglePlugin):
110         Update the sites set and get sites for the next plug-in.
111
112         (WebKit::WebPluginSiteDataManager::ClearSiteDataState::ClearSiteDataState):
113         Initialize the state.
114
115         (WebKit::WebPluginSiteDataManager::ClearSiteDataState::clearSiteDataForNextPlugin):
116         If the plug-in queue is empty, call didClearSiteDataForAllPlugins. Otherwise, ask
117         the plug-in process manager to get sites for the next plug-in.
118         
119         (WebKit::WebPluginSiteDataManager::ClearSiteDataState::didClearSiteDataForSinglePlugin):
120         Update the sites set and ask the next plug-in to clear site data.
121
122         (WebKit::WebPluginSiteDataManager::~WebPluginSiteDataManager):
123         Assert that all maps are empty.
124
125         (WebKit::WebPluginSiteDataManager::invalidate):
126         Delete and clear the pending state maps.
127
128         (WebKit::WebPluginSiteDataManager::getSitesWithData):
129         In the ENABLE(PLUGIN_PROCESS) case, allocate a new GetSitesWithDataState object and
130         tell it to get sites for the next plug-in. Otherwise, make sure that the web process
131         is alive before sending a GetSitesWithPluginData message.
132         
133         (WebKit::WebPluginSiteDataManager::clearSiteData):
134         In the ENABLE(PLUGIN_PROCESS) case, allocate a new ClearSiteDataState object and
135         tell it to get sites for the next plug-in. Otherwise, make sure that the web process
136         is alive before sending a ClearPluginSiteData message.
137         
138         (WebKit::WebPluginSiteDataManager::didGetSitesWithDataForSinglePlugin):
139         Call down to the GetSitesWithDataState object.
140
141         (WebKit::WebPluginSiteDataManager::didGetSitesWithDataForAllPlugins):
142         Free the GetSitesWithDataState object and invoke the callback.
143
144         (WebKit::WebPluginSiteDataManager::didClearSiteDataForSinglePlugin):
145         Call down to the GetSitesWithDataState object.
146         
147         (WebKit::WebPluginSiteDataManager::didClearSiteDataForAllPlugins):
148         Free the GetSitesWithDataState object and invoke the callback.
149
150         * UIProcess/WebContext.cpp:
151         (WebKit::WebContext::processDidClose):
152         Don't invalidate the plug-in site data manager if we're using a plug-in process.
153
154         * WebProcess/WebProcess.cpp:
155         (WebKit::WebProcess::getSitesWithPluginData):
156         (WebKit::WebProcess::clearPluginSiteData):
157         Call shutdownIfPossible().
158
159 2011-02-15  Jon Honeycutt  <jhoneycutt@apple.com>
160
161         Copy over new WebKit 2 header.
162
163         Rubber-stamped by Alice Liu.
164
165         * win/WebKit2Generated.make:
166
167 2011-02-15  Anders Carlsson  <andersca@apple.com>
168
169         Reviewed by Darin Adler.
170
171         Implement WKPluginSiteDataManagerClearSiteData
172         https://bugs.webkit.org/show_bug.cgi?id=54512
173         <rdar://problem/8689312>
174
175         * UIProcess/API/C/WKPluginSiteDataManager.cpp:
176         (WKPluginSiteDataManagerGetTypeID):
177         Implement this.
178
179         (toNPClearSiteDataFlags):
180         Convert WKClearSiteDataFlags to NPP_ClearSiteData flags.
181         
182         (WKPluginSiteDataManagerClearSiteData):
183         (WKPluginSiteDataManagerClearAllSiteData):
184         Call through to WebPluginSiteDataManager::clearSiteData.
185
186         * UIProcess/API/C/WKPluginSiteDataManager.h:
187         Change the clear functions to take a completion callback.
188
189         * UIProcess/Plugins/WebPluginSiteDataManager.cpp:
190         (WebKit::WebPluginSiteDataManager::clearSiteData):
191         Ask the plug-in info store for all plug-in paths and send a
192         ClearPluginSiteData message to the web process.
193         
194         (WebKit::WebPluginSiteDataManager::didClearSiteData):
195         call the callback.
196
197         * UIProcess/WebContext.cpp:
198         (WebKit::WebContext::didClearPluginSiteData):
199         Call through to the plug-in site data manager.
200
201         * UIProcess/WebContext.messages.in:
202         Add ClearPluginSiteData message.
203
204         * WebProcess/WebProcess.cpp:
205         (WebKit::WebProcess::clearPluginSiteData):
206         Iterate over all the plug-in paths, creating plug-in modules and calling
207         clearSiteData for each one.
208
209         * WebProcess/WebProcess.h:
210         * WebProcess/WebProcess.messages.in:
211         Add DidClearPluginSiteData message.
212
213 2011-02-15  Anders Carlsson  <andersca@apple.com>
214
215         Reviewed by Jon Honeycutt.
216
217         Implement WKPluginSiteDataManagerGetSitesWithData
218         https://bugs.webkit.org/show_bug.cgi?id=54510
219         <rdar://problem/8689312>
220
221         * UIProcess/API/C/WKContext.cpp:
222         (WKContextGetPluginSiteDataManager):
223         Call WebContext::pluginSiteDataManager.
224         
225         * UIProcess/API/C/WKPluginSiteDataManager.cpp:
226         (WKPluginSiteDataManagerGetSitesWithData):
227         Call WebPluginSiteDataManager::getSitesWithData.
228
229         * UIProcess/Plugins/PluginInfoStore.cpp:
230         (WebKit::PluginInfoStore::getPluginPaths):
231         * UIProcess/Plugins/PluginInfoStore.h:
232         Populate the paths argument with the paths of all plug-ins.
233         
234         * UIProcess/Plugins/WebPluginSiteDataManager.cpp: Added.
235         (WebKit::WebPluginSiteDataManager::invalidate):
236         Invalidate the callbacks map.
237
238         (WebKit::WebPluginSiteDataManager::getSitesWithData):
239         Ask the plug-in info store for all plug-in paths and send a
240         GetSitesWithPluginData message to the web process.
241
242         (WebKit::WebPluginSiteDataManager::didGetSitesWithPluginData):
243         Call the callback.
244
245         * UIProcess/Plugins/WebPluginSiteDataManager.h: Added.
246         (WebKit::WebPluginSiteDataManager::clearContext):
247         Clear the context.
248
249         * UIProcess/WebContext.cpp:
250         (WebKit::WebContext::WebContext):
251         Initialize m_pluginSiteDataManager.
252
253         (WebKit::WebContext::~WebContext):
254         Invalidate the plug-in site data manager and clear its context.
255
256         (WebKit::WebContext::processDidClose):
257         Invalidate the plug-in site data manager.
258         
259         (WebKit::WebContext::didGetSitesWithPluginData):
260         Call through to the plug-in site data manager.
261
262         * UIProcess/WebContext.h:
263         * UIProcess/WebContext.messages.in:
264         Add GetSitesWithPluginData message.
265
266         * WebKit2.pro:
267         * WebKit2.xcodeproj/project.pbxproj:
268         * win/WebKit2.vcproj:
269         Add new files.
270
271         * WebProcess/WebProcess.cpp:
272         (WebKit::WebProcess::getSitesWithPluginData):
273         Iterate over all plug-in paths and get the sites from all plug-ins.
274
275         * WebProcess/WebProcess.h:
276         * WebProcess/WebProcess.messages.in:
277         Add DidGetSitesWithPluginData.
278
279 2011-02-15  Anders Carlsson  <andersca@apple.com>
280
281         Fix Qt build.
282
283         * WebKit2.pro:
284
285 2011-02-15  Anders Carlsson  <andersca@apple.com>
286
287         Fix Windows build.
288
289         * win/WebKit2.vcproj:
290
291 2011-02-14  Oliver Hunt  <oliver@apple.com>
292
293         Reviewed by Gavin Barraclough and Geoff Garen.
294
295         Refactor handles and weak pointers to become nicer and more automatic
296         https://bugs.webkit.org/show_bug.cgi?id=54415
297
298         Update code to new Global<> API, and refactor to get global data to
299         necessary points.
300
301         * WebProcess/Plugins/Netscape/NPJSObject.cpp:
302         (WebKit::NPJSObject::create):
303         (WebKit::NPJSObject::NPJSObject):
304         (WebKit::NPJSObject::initialize):
305         (WebKit::NPJSObject::invokeDefault):
306         (WebKit::NPJSObject::construct):
307         (WebKit::NPJSObject::invoke):
308         * WebProcess/Plugins/Netscape/NPJSObject.h:
309         * WebProcess/Plugins/Netscape/NPRuntimeObjectMap.cpp:
310         (WebKit::NPRuntimeObjectMap::getOrCreateNPObject):
311         (WebKit::NPRuntimeObjectMap::convertJSValueToNPVariant):
312         (WebKit::NPRuntimeObjectMap::evaluate):
313         * WebProcess/Plugins/Netscape/NPRuntimeObjectMap.h:
314         * WebProcess/Plugins/PluginView.cpp:
315         (WebKit::PluginView::windowScriptNPObject):
316         (WebKit::PluginView::pluginElementNPObject):
317
318 2011-02-15  Anders Carlsson  <andersca@apple.com>
319
320         Reviewed by Jon Honeycutt.
321
322         Add stubbed out WKPluginSiteDataManagerRef API
323         https://bugs.webkit.org/show_bug.cgi?id=54504
324
325         * Shared/API/c/WKBase.h:
326         * Shared/APIObject.h:
327         * UIProcess/API/C/WKAPICast.h:
328         * UIProcess/API/C/WKContext.cpp:
329         (WKContextGetPluginSiteDataManager):
330         * UIProcess/API/C/WKContext.h:
331         * UIProcess/API/C/WKPluginSiteDataManager.cpp: Added.
332         (WKPluginSiteDataManagerGetTypeID):
333         (WKPluginSiteDataManagerGetSitesWithData):
334         (WKPluginSiteDataManagerClearSiteData):
335         (WKPluginSiteDataManagerClearAllSiteData):
336         * UIProcess/API/C/WKPluginSiteDataManager.h: Added.
337         * WebKit2.pro:
338         * WebKit2.xcodeproj/project.pbxproj:
339         * win/WebKit2.vcproj:
340
341 2011-02-15  Jia Pu  <jpu@apple.com>
342
343         Reviewed by Darin Adler.
344
345         Autocorrection should respect undo.
346         https://bugs.webkit.org/show_bug.cgi?id=52221
347         <rdar://problem/8663399>
348
349         Please see WebCore/ChangeLog for detailed description.
350
351         * WebProcess/WebCoreSupport/WebEditorClient.h: Updated for the new function declared in EditorClient.
352
353         * WebProcess/WebCoreSupport/mac/WebEditorClientMac.mm:
354         (WebKit::WebEditorClient::recordAutocorrectionResponse): Ditto.
355
356         * WebProcess/WebPage/WebPage.cpp:
357         (WebKit::WebPage::replaceSelectionWithText): Adopted new signature of ReplaceSelectionCommand::create().
358
359 2011-02-15  Jessie Berlin  <jberlin@apple.com>
360
361         Reviewed by Darin Adler.
362
363         WebKit2: Use the Database directory location specified in NSUserDefaults.
364         https://bugs.webkit.org/show_bug.cgi?id=54496
365
366         * UIProcess/mac/WebContextMac.mm:
367         (WebKit::WebContext::platformDefaultDatabaseDirectory):
368         Use the same logic as WebKit1's WebDatabaseManager::databasesDirectoryPath.
369
370 2011-02-15  Simon Fraser  <simon.fraser@apple.com>
371
372         Reviewed by Anders Carlsson, Darin Adler.
373
374         Layers stick around in DrawingAreaImpl until we switch out of compositing
375         https://bugs.webkit.org/show_bug.cgi?id=54498
376         
377         When leaving compositing mode soon, remove all the child layers
378         of the nonCompositedContent layer right away, so they don't stick
379         around.
380
381         * WebProcess/WebPage/DrawingAreaImpl.cpp:
382         (WebKit::DrawingAreaImpl::setRootCompositingLayer):
383         * WebProcess/WebPage/mac/LayerTreeHostMac.mm:
384         (WebKit::LayerTreeHostMac::setRootCompositingLayer):
385
386 2011-02-15  Kenneth Russell  <kbr@google.com>
387
388         Reviewed by Darin Fisher.
389
390         Allow controlling minimum DOMTimer interval on a per-page basis
391         https://bugs.webkit.org/show_bug.cgi?id=54312
392
393         * WebProcess/WebPage/WebPage.cpp:
394         (WebKit::WebPage::WebPage):
395
396 2011-02-15  Anders Carlsson  <andersca@apple.com>
397
398         Reviewed by Sam Weinig.
399
400         Add sitesWithData and clearSiteData to NetscapePluginModule
401         https://bugs.webkit.org/show_bug.cgi?id=54492
402
403         * Shared/Plugins/Netscape/NetscapePluginModule.cpp:
404         (WebKit::NetscapePluginModule::NetscapePluginModule):
405         (WebKit::NetscapePluginModule::pluginCreated):
406         (WebKit::NetscapePluginModule::pluginDestroyed):
407         (WebKit::NetscapePluginModule::sitesWithData):
408         (WebKit::NetscapePluginModule::clearSiteData):
409         (WebKit::NetscapePluginModule::tryGetSitesWithData):
410         (WebKit::NetscapePluginModule::tryClearSiteData):
411         (WebKit::NetscapePluginModule::incrementLoadCount):
412         (WebKit::NetscapePluginModule::decrementLoadCount):
413         * Shared/Plugins/Netscape/NetscapePluginModule.h:
414
415 2011-02-15  Sam Weinig  <sam@webkit.org>
416
417         Fix windows build.
418
419         * Shared/win/WebCoreArgumentCodersWin.cpp:
420         (CoreIPC::encodeResourceRequest):
421
422 2011-02-15  Alexey Proskuryakov  <ap@apple.com>
423
424         Reviewed by Darin Adler.
425
426         https://bugs.webkit.org/show_bug.cgi?id=54480
427         <rdar://problem/8975229> REGRESSION (WebKit2): A web page remains unresponsive for a long
428         time after printing
429
430         Nothing was painted until moving the mouse over browser chrome, deactivating the window,
431         or taking some other drastic measure like that.
432
433         * UIProcess/API/mac/PageClientImpl.mm: (WebKit::PageClientImpl::setAutodisplay):
434         Call -[NSView displayIfNeeded] after enabling autodisplay. For some reason, this makes
435         WebCore push updates again.
436
437 2011-02-15  Sam Weinig  <sam@webkit.org>
438
439         Reviewed by Darin Adler.
440
441         Crash loading fast/loader/empty-embed-src-attribute.html
442         <rdar://problem/9005541>
443         https://bugs.webkit.org/show_bug.cgi?id=54483
444
445         Add the ability to encode/decode and empty ResourceRequest.
446
447         * Shared/mac/WebCoreArgumentCodersMac.mm:
448         (CoreIPC::encodeResourceRequest):
449         (CoreIPC::decodeResourceRequest):
450         (CoreIPC::decodeResourceResponse): Add missing false check for the
451         decode step.
452         * Shared/win/WebCoreArgumentCodersWin.cpp:
453         (CoreIPC::encodeResourceRequest):
454         (CoreIPC::decodeResourceRequest):
455         (CoreIPC::decodeResourceResponse): Add missing false check for the
456         decode step.
457
458 2011-02-15  Andreas Kling  <kling@webkit.org>
459
460         Unreviewed Qt build fix after r78588.
461
462         * UIProcess/API/qt/qwkpage.cpp:
463         (QWKPage::QWKPage): Add WKPageLoaderClient::shouldGoToHistoryItem.
464
465 2011-02-15  Enrica Casucci  <enrica@apple.com>
466
467         Reviewed by Darin Adler.
468
469         Stop using deprecated API to flip the dragImage.
470         <rdar://problem/8930897>
471         https://bugs.webkit.org/show_bug.cgi?id=54477
472         
473         NSImage setFlipped is a deprecated API. We replace it with
474         drawInRect:fromRect:operation:fraction:respectFlipped:hints.
475         
476         * UIProcess/API/mac/PageClientImpl.mm:
477         (WebKit::PageClientImpl::setDragImage): Removed call to setFlipped.
478         * WebProcess/WebCoreSupport/mac/WebDragClientMac.mm:
479         (WebKit::WebDragClient::startDrag): The image is now drawn with
480         drawInRect:fromRect:operation:fraction:respectFlipped:hints.
481
482 2011-02-15  Brady Eidson  <beidson@apple.com>
483
484         Reviewed by Darin Adler.
485
486         <rdar://problem/9002047> and https://bugs.webkit.org/show_bug.cgi?id=54426
487         WebFrameLoaderClient::shouldGoToHistoryItem needs implementation
488
489         Expose HistoryItem -> ItemID mapping for the message:
490         * WebProcess/WebPage/WebBackForwardListProxy.cpp:
491         (WebKit::WebBackForwardListProxy::idForItem):
492         * WebProcess/WebPage/WebBackForwardListProxy.h:
493
494         Sync message to the UIProcess for the answer:
495         * WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
496         (WebKit::WebFrameLoaderClient::shouldGoToHistoryItem):
497
498         Call out to the WebLoaderClient for the answer:
499         * UIProcess/WebPageProxy.cpp:
500         (WebKit::WebPageProxy::shouldGoToBackForwardListItem):
501         * UIProcess/WebPageProxy.h:
502         * UIProcess/WebPageProxy.messages.in:
503
504         Call out to the client application for the answer:
505         * UIProcess/WebLoaderClient.cpp:
506         (WebKit::WebLoaderClient::shouldGoToBackForwardListItem):
507         * UIProcess/WebLoaderClient.h:
508
509         Add API for the client application to listen for this:
510         * UIProcess/API/C/WKPage.h:
511
512 2011-02-15  Sam Weinig  <sam@webkit.org>
513
514         Reviewed by Anders Carlsson.
515
516         Fix Anders typo. false -> 0.
517
518         * Platform/mac/SharedMemoryMac.cpp:
519         (WebKit::SharedMemory::create):
520
521 2011-02-15  Andras Becsi  <abecsi@webkit.org>
522
523         Reviewed by NOBODY Csaba Osztrogonác.
524
525         [Qt] Redesign the build system
526         https://bugs.webkit.org/show_bug.cgi?id=51339
527
528         Part 1.
529
530         Introduce CodeGenerators.pri and add common includepaths to WebCore.pri,
531         thus unnecessary duplications can be removed from project files.
532
533         * WebKit2.pro: Simplify and deduplicate includepaths.
534
535 2011-01-26  MORITA Hajime  <morrita@google.com>
536
537         Reviewed by Ryosuke Niwa.
538
539         Refactoring: Extract TextCheckerClient from EditorClient
540         https://bugs.webkit.org/show_bug.cgi?id=53213
541
542         * Shared/WebCoreArgumentCoders.h:
543         * UIProcess/TextChecker.h:
544         * WebProcess/WebCoreSupport/WebEditorClient.h:
545         (WebKit::WebEditorClient::textChecker):
546         * Scripts/webkit2/messages.py: Re-arranged the include file
547
548 2011-02-07  Ryosuke Niwa  <rniwa@webkit.org>
549
550         Reviewed by Adam Barth.
551
552         Add EditorClient callbacks to override isDOMPasteAllowed and javaScriptCanAccessClipboard
553         https://bugs.webkit.org/show_bug.cgi?id=52417
554
555         Added two callback functions, canCopyCut and canPaste to EditorClient. They are currently
556         not implemented.
557
558         * WebProcess/WebCoreSupport/WebEditorClient.cpp:
559         (WebKit::WebEditorClient::canCopyCut): Added.
560         (WebKit::WebEditorClient::canPaste): Added.
561         * WebProcess/WebCoreSupport/WebEditorClient.h:
562
563 2011-02-14  Anders Carlsson  <andersca@apple.com>
564
565         Reviewed by Dan Bernstein.
566
567         Add WKPageSetMemoryCacheClientCallsEnabled API
568         https://bugs.webkit.org/show_bug.cgi?id=54422
569
570         * UIProcess/API/C/WKPage.cpp:
571         (WKPageSetMemoryCacheClientCallsEnabled):
572         * UIProcess/API/C/WKPage.h:
573         * UIProcess/WebPageProxy.cpp:
574         (WebKit::WebPageProxy::setMemoryCacheClientCallsEnabled):
575         * UIProcess/WebPageProxy.h:
576         * WebProcess/WebPage/WebPage.cpp:
577         (WebKit::WebPage::setMemoryCacheMessagesEnabled):
578         * WebProcess/WebPage/WebPage.h:
579         * WebProcess/WebPage/WebPage.messages.in:
580
581 2011-02-14  Sam Weinig  <sam@webkit.org>
582
583         Reviewed by Anders Carlsson.
584
585         WebKit2: View not updated completely when coming back from a cached back/forward navigation
586         <rdar://problem/8787264>
587         https://bugs.webkit.org/show_bug.cgi?id=54419
588
589         * WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
590         (WebKit::WebFrameLoaderClient::restoreViewState): Invalidate the entire page
591         when completing a restore from the back/forward cache.
592
593 2011-02-14  Anders Carlsson  <andersca@apple.com>
594
595         Reviewed by Dan Bernstein.
596
597         Shared memory should be made shared immediately
598         https://bugs.webkit.org/show_bug.cgi?id=54413
599         <rdar://problem/8972153>
600
601         Under some circumstances, mach_make_memory_entry_64 may only return parts of a
602         memory allocation. Work around this by creating a mach port representing the shared memory
603         right away. Also, hand out this mach port in createHandle when using the default memory protection.
604
605         * Platform/SharedMemory.h:
606         * Platform/mac/SharedMemoryMac.cpp:
607         (WebKit::SharedMemory::create):
608         (WebKit::SharedMemory::~SharedMemory):
609         (WebKit::SharedMemory::createHandle):
610
611 2011-02-14  Adam Roben  <aroben@apple.com>
612
613         React to accelerated compositing changes and allocation failures in DrawingAreaImpl::display
614
615         Fixes <http://webkit.org/b/54398> DrawingAreaImpl::display handles error cases poorly.
616
617         Reviewed by Darin Adler and Anders Carlsson.
618
619         * WebProcess/WebPage/DrawingAreaImpl.cpp:
620         (WebKit::DrawingAreaImpl::display): Bail out if the layout we perform puts us into
621         accelerated compositing mode. Moved the layout earlier in this function so we can bail
622         before doing other work that would be unnecessary in this case. Moved the allocation of the
623         ShareableBitmap earlier so we will leave our state (e.g., dirty region) intact even if the
624         allocation fails.
625
626 2011-02-14  Adam Roben  <aroben@apple.com>
627
628         Add a way to flash backing store and view updates
629
630         The new WKPageSetDebugPaintFlags SPI can be used to control whether backing store and/or
631         view updates are flashed. A blueish color is used for view updates, and a purpleish color is
632         used for backing store updates. The flashing currently only works on Windows.
633
634         Fixes <http://webkit.org/b/54303>.
635
636         Reviewed by Anders Carlsson.
637
638         * UIProcess/API/C/WKPage.cpp:
639         (WKPageSetDebugPaintFlags):
640         (WKPageGetDebugPaintFlags):
641         * UIProcess/API/C/WKPagePrivate.h:
642         Added. These call through to WebPageProxy.
643
644         * UIProcess/API/mac/PageClientImpl.h:
645         * UIProcess/API/mac/PageClientImpl.mm:
646         (WebKit::PageClientImpl::flashBackingStoreUpdates):
647         * UIProcess/API/qt/qwkpage.cpp:
648         (QWKPagePrivate::flashBackingStoreUpdates):
649         * UIProcess/API/qt/qwkpage_p.h:
650         Stubbed out new PageClient functions.
651
652         * UIProcess/DrawingAreaProxyImpl.cpp:
653         (WebKit::DrawingAreaProxyImpl::incorporateUpdate): Tell the WebPageProxy to flash the
654         backing store updates we're performing.
655
656         * UIProcess/PageClient.h: Added flashBackingStoreUpdates.
657
658         * UIProcess/WebPageProxy.cpp:
659         (WebKit::WebPageProxy::flashBackingStoreUpdates): Call through to the PageClient.
660         (WebKit::WebPageProxy::viewUpdatesFlashColor): Return the blueish color used for view
661         updates.
662         (WebKit::WebPageProxy::backingStoreUpdatesFlashColor): Return the purpleish color used for
663         backing store updates.
664
665         * UIProcess/WebPageProxy.h:
666         (WebKit::WebPageProxy::setDebugPaintFlags):
667         (WebKit::WebPageProxy::debugPaintFlags):
668         Added these simple accessors.
669
670         * UIProcess/win/WebView.cpp:
671         (WebKit::flashRects):
672         (WebKit::createBrush):
673         New helper functions.
674
675         (WebKit::WebView::onPaintEvent): Flash the dirty region if requested.
676         (WebKit::WebView::flashBackingStoreUpdates): Added. Calls through to flashRects.
677
678         * UIProcess/win/WebView.h: Added flashBackingStoreUpdates.
679
680         * win/WebKit2Generated.make: Export WKPagePrivate.h so clients can use it.
681
682 2011-02-14  Adam Roben  <aroben@apple.com>
683
684         Add some .messages.in and script files to WebKit2 projects
685
686         This is just for convenience. It doesn't affect the build.
687
688         * win/WebKit2.vcproj: Also let VS resort some files.
689         * win/WebKit2Generated.vcproj:
690
691 2011-02-14  Balazs Kelemen  <kbalazs@webkit.org>
692
693         Reviewed by Csaba Osztrogonác.
694
695         [Qt] Need implementation of ResourceRequest and ResourceResponse serialization
696         https://bugs.webkit.org/show_bug.cgi?id=54339
697
698         Add dummy implementation with FIXME and let the core go with it for now.
699         * Shared/qt/WebCoreArgumentCodersQt.cpp:
700         (CoreIPC::decodeResourceRequest):
701         (CoreIPC::decodeResourceResponse):
702
703 2011-02-13  Anders Carlsson  <andersca@apple.com>
704
705         Reviewed by Maciej Stachowiak.
706
707         Speculative fix for
708
709         <rdar://problem/8995361>
710         CrashTracer: [USER] 47 crashes in WebProcess at com.apple.WebKit2: WebKit::WebPage::layoutIfNeeded + 4
711
712         * WebProcess/WebPage/DrawingAreaImpl.cpp:
713         (WebKit::DrawingAreaImpl::~DrawingAreaImpl):
714         Invalidate the layer tree host.
715
716 2011-02-13  Anders Carlsson  <andersca@apple.com>
717
718         Reviewed by Dan Bernstein.
719
720         The plug-in process heap should be executable by default
721         https://bugs.webkit.org/show_bug.cgi?id=54364
722         <rdar://problem/8990563>
723
724         * UIProcess/Launcher/ProcessLauncher.h:
725         Add executableHeap flag.
726         
727         * UIProcess/Launcher/mac/ProcessLauncherMac.mm:
728         (WebKit::ProcessLauncher::launchProcess):
729         Set the right posix_spawn flag if executableHeap is true.
730
731         * UIProcess/Plugins/PluginProcessProxy.cpp:
732         (WebKit::PluginProcessProxy::PluginProcessProxy):
733         Initialize executableHeap to true.
734
735         * UIProcess/WebProcessProxy.cpp:
736         (WebKit::WebProcessProxy::connect):
737         Initialize executableHeap to false.
738
739 2011-02-13  Anders Carlsson  <andersca@apple.com>
740
741         Reviewed by Sam Weinig.
742
743         Messages waited on are never dispatched
744         https://bugs.webkit.org/show_bug.cgi?id=54362
745         <rdar://problem/8995051>
746
747         * Platform/CoreIPC/Connection.cpp:
748         (CoreIPC::Connection::processIncomingMessage):
749         Get the argument encoder from the incoming message.
750
751 2011-02-13  Jeremy Moskovich  <jeremy@chromium.org>
752
753         Reviewed by Adam Barth.
754
755         Add a compile-time option to completely disable WebArchive support.
756         https://bugs.webkit.org/show_bug.cgi?id=52712
757
758         Add an ENABLE(WEB_ARCHIVE) compile-time setting and use it for all WebArchive code.
759
760         * WebProcess/WebPage/WebPage.cpp:
761         (WebKit::WebPage::updatePreferences):
762
763 2011-02-13  Alexey Proskuryakov  <ap@apple.com>
764
765         Reviewed by Dan Bernstein.
766
767         https://bugs.webkit.org/show_bug.cgi?id=54348
768         Crash when printing a document with no pages
769
770         * WebProcess/WebPage/WebPage.cpp: (WebKit::WebPage::drawPagesToPDF): Don't fail on a fake
771         page that computePagesForPrinting() added to a pageless document.
772
773 2011-02-13  Chris Fleizach  <cfleizach@apple.com>
774
775         Reviewed and landed by Sam Weinig.
776
777         AX: Update WK2 usage of remote accessibility api
778         https://bugs.webkit.org/show_bug.cgi?id=54220
779
780         Rename some of the remote accessibility methods to be more accurate.
781         Make sure to unregister the AccessibilityWebPageObject on dealloc.
782         Send the window remote token along with the WKView remote token.
783
784         * UIProcess/API/mac/PageClientImpl.h:
785         * UIProcess/API/mac/PageClientImpl.mm:
786         (WebKit::PageClientImpl::accessibilityWebProcessTokenReceived):
787         * UIProcess/API/mac/WKView.mm:
788         (-[WKView _updateRemoteAccessibilityRegistration:]):
789         (-[WKView initWithFrame:contextRef:pageGroupRef:]):
790         (-[WKView viewDidMoveToWindow]):
791         (-[WKView _processDidCrash]):
792         (-[WKView _pageClosed]):
793         (-[WKView _setAccessibilityWebProcessToken:]):
794         * UIProcess/API/mac/WKViewInternal.h:
795         * UIProcess/PageClient.h:
796         * UIProcess/WebPageProxy.cpp:
797         (WebKit::WebPageProxy::registerWebProcessAccessibilityToken):
798         (WebKit::WebPageProxy::registerUIProcessAccessibilityTokens):
799         * UIProcess/WebPageProxy.h:
800         * UIProcess/WebPageProxy.messages.in:
801         * WebProcess/WebPage/WebPage.h:
802         * WebProcess/WebPage/WebPage.messages.in:
803         * WebProcess/WebPage/mac/AccessibilityWebPageObject.mm:
804         (-[AccessibilityWebPageObject dealloc]):
805         * WebProcess/WebPage/mac/WebPageMac.mm:
806         (WebKit::WebPage::platformInitialize):
807         (WebKit::WebPage::registerUIProcessAccessibilityTokens):
808
809 2011-02-11  Alexey Proskuryakov  <ap@apple.com>
810
811         Reviewed by Anders Carlsson.
812
813         https://bugs.webkit.org/show_bug.cgi?id=54335
814         <rdar://problem/8895141> Make window.print() work with WebKit2
815
816         * Platform/CoreIPC/Connection.h: Corrected a typo in FIXME comment.
817
818         * UIProcess/ChunkedUpdateDrawingAreaProxy.cpp:
819         (WebKit::ChunkedUpdateDrawingAreaProxy::setPageIsVisible):
820         (WebKit::ChunkedUpdateDrawingAreaProxy::update):
821         (WebKit::ChunkedUpdateDrawingAreaProxy::sendSetSize):
822         * UIProcess/TiledDrawingAreaProxy.cpp:
823         (WebKit::TiledDrawingAreaProxy::sizeDidChange):
824         (WebKit::TiledDrawingAreaProxy::setPageIsVisible):
825         (WebKit::TiledDrawingAreaProxy::takeSnapshot):
826         (WebKit::TiledDrawingAreaProxy::removeTile):
827         * UIProcess/LayerBackedDrawingAreaProxy.cpp:
828         (WebKit::LayerBackedDrawingAreaProxy::sizeDidChange):
829         (WebKit::LayerBackedDrawingAreaProxy::setPageIsVisible):
830         (WebKit::LayerBackedDrawingAreaProxy::update):
831         * UIProcess/WebContext.cpp:
832         (WebKit::WebContext::ensureWebProcess):
833         (WebKit::WebContext::postMessageToInjectedBundle):
834         Updated for send() -> deprecatedSend() rename.
835
836         * UIProcess/WebPageProxy.h:
837         * UIProcess/WebPageProxy.cpp:
838         (WebKit::WebPageProxy::WebPageProxy): Added a flag that's true while serving window.print().
839         (WebKit::WebPageProxy::printFrame): Set and unset m_isPerformingDOMPrintOperation.
840         (WebKit::WebPageProxy::beginPrinting): Force message processing in web process when serving
841         window.print().
842         (WebKit::WebPageProxy::endPrinting): Ditto.
843         (WebKit::WebPageProxy::computePagesForPrinting): Ditto.
844         (WebKit::WebPageProxy::drawRectToPDF): Ditto.
845         (WebKit::WebPageProxy::drawPagesToPDF): Ditto.
846
847         * UIProcess/WebProcessProxy.cpp:
848         (WebKit::WebProcessProxy::~WebProcessProxy):
849         (WebKit::WebProcessProxy::sendMessage):
850         (WebKit::WebProcessProxy::didFinishLaunching):
851         When waiting for a web process to launch, store message flags, too. This is not practically
852         important for DispatchMessageEvenWhenWaitingForSyncReply, but it's easier to store flags
853         than to remember about this pitfall.
854
855         * UIProcess/WebProcessProxy.h:
856         (WebKit::WebProcessProxy::send): Added a flags argument, matching Connection::send().
857         (WebKit::WebProcessProxy::deprecatedSend): Renamed one of send() overloads, because it was
858         conflicting with the other one after adding a flags argument. This matches a change previously
859         made to CoreIPC::Connection.
860
861 2011-02-12  Chris Marrin  <cmarrin@apple.com>
862
863         Reviewed by Dan Bernstein.
864
865         Crash in RenderLayerCompositor::updateCompositingLayers when loading some sites
866         https://bugs.webkit.org/show_bug.cgi?id=54345
867
868         Some sites flip between composited and non-comosited state while loading. When the timing is
869         right, when we flip out of compositing we will need to do a display while tossing all the
870         compositing layers. This causes us to reenter RenderLayerCompositor::computeCompositingRequirements()
871         while we are in the middle of tossing layers, which leads to a crash.
872
873         The solution is to defer the logic of exiting compositing mode until the DrawingArea is finished
874         doing its display, using a timer.
875
876         * WebProcess/WebPage/DrawingAreaImpl.cpp:
877         (WebKit::DrawingAreaImpl::DrawingAreaImpl):
878         (WebKit::DrawingAreaImpl::setRootCompositingLayer):
879         (WebKit::DrawingAreaImpl::enterAcceleratedCompositingMode):
880         (WebKit::DrawingAreaImpl::exitAcceleratedCompositingMode):
881         (WebKit::DrawingAreaImpl::exitAcceleratedCompositingModeSoon):
882         * WebProcess/WebPage/DrawingAreaImpl.h:
883
884 2011-02-12  Kevin Decker  <kdecker@apple.com>
885
886         Reviewed by Dan Bernstein.
887
888         Follow up fix to:
889         https://bugs.webkit.org/show_bug.cgi?id=54341 - optionally scale snapshots in document view coordinates
890
891         * WebProcess/WebPage/WebPage.cpp:
892         (WebKit::WebPage::scaledSnapshotInDocumentCoordinates): Fixed the order of the scale and translate.
893
894 2011-02-12  Kevin Decker  <kdecker@apple.com>
895
896         Reviewed by Dan Bernstein.
897
898         https://bugs.webkit.org/show_bug.cgi?id=54341 - optionally scale snapshots in document view coordinates
899         <rdar://problem/8990069>
900         
901         * WebProcess/InjectedBundle/API/c/WKBundlePage.cpp:
902         (WKBundlePageCreateScaledSnapshotInDocumentCoordinates): Added.
903         * WebProcess/InjectedBundle/API/c/WKBundlePage.h: Added above new function.
904         * WebProcess/WebPage/WebPage.cpp:
905         (WebKit::WebPage::scaledSnapshotInDocumentCoordinates): Added.
906         (WebKit::WebPage::snapshotInDocumentCoordinates): Call scaledSnapshotInDocumentCoordinates with a scale of 1.
907         * WebProcess/WebPage/WebPage.h: Added scaledSnapshotInDocumentCoordinates().
908
909 2011-02-11  Anders Carlsson  <andersca@apple.com>
910
911         Reviewed by Maciej Stachowiak.
912
913         Can’t open local files on reload or navigation from the back/forward cache
914         https://bugs.webkit.org/show_bug.cgi?id=54332
915         <rdar://problem/8903076>
916
917         * UIProcess/WebInspectorProxy.cpp:
918         (WebKit::WebInspectorProxy::isInspectorPage):
919         * UIProcess/WebInspectorProxy.h:
920         Check whether the given page is a web inspector page.
921
922         * UIProcess/WebPageProxy.cpp:
923         (WebKit::WebPageProxy::initializeSandboxExtensionHandle):
924         If this is a web inspector page, we don't want to make a sandbox extension.
925
926         (WebKit::WebPageProxy::reattachToWebProcessWithItem):
927         (WebKit::WebPageProxy::goForward):
928         (WebKit::WebPageProxy::goBack):
929         (WebKit::WebPageProxy::goToBackForwardItem):
930         Pass a sandbox extension along when sending the message.
931
932         * UIProcess/WebPageProxy.h:
933         Make initializeSandboxExtensionHandle a member function.
934
935         * UIProcess/cf/WebPageProxyCF.cpp:
936         (WebKit::WebPageProxy::restoreFromSessionStateData):
937         Pass a sandbox extension along.
938
939         * WebProcess/WebPage/WebPage.cpp:
940         (WebKit::WebPage::goForward):
941         (WebKit::WebPage::goBack):
942         (WebKit::WebPage::goToBackForwardItem):
943         Hand the sandbox extension to the sandbox extension tracker.
944
945         (WebKit::WebPage::restoreSessionAndNavigateToCurrentItem):
946         Pass the sandbox extension to goToBackForwardItem.
947
948         (WebKit::shouldReuseCommittedSandboxExtension):
949         New function that checks whether a committed sandbox extension should be re-used. We
950         do this for page reloads, as well as regular page navigations when both the committed
951         and provisional documents have file URLs.
952
953         (WebKit::WebPage::SandboxExtensionTracker::didStartProvisionalLoad):
954         Reuse the committed sandbox extension if necessary.
955
956         * WebProcess/WebPage/WebPage.h:
957         * WebProcess/WebPage/WebPage.messages.in:
958
959 2011-02-11  Anders Carlsson  <andersca@apple.com>
960
961         Fix Snow Leopard build.
962
963         * PluginProcess/PluginProcess.cpp:
964         (WebKit::PluginProcess::didFailToSendSyncMessage):
965         * WebProcess/WebProcess.cpp:
966         (WebKit::WebProcess::didFailToSendSyncMessage):
967
968 2011-02-11  Yael Aharon  <yael.aharon@nokia.com>
969
970         Unreviewed Qt webkit2 build fix after r78392.
971
972         * WebProcess/WebProcess.h:
973
974 2011-02-11  Anders Carlsson  <andersca@apple.com>
975
976         Reviewed by Sam Weinig.
977
978         WebProcess hung communicating with the plug-in process
979         https://bugs.webkit.org/show_bug.cgi?id=54328
980         <rdar://problem/8854075>
981
982         * UIProcess/Plugins/PluginProcessProxy.cpp:
983         (WebKit::PluginProcessProxy::createWebProcessConnection):
984         Add the DispatchMessageEvenWhenWaitingForSyncReply message send flag when sending the
985         PluginProcess::CreateWebProcessConnection message, since the plug-in process can be busy waiting
986         for a sync reply from the web process.
987
988 2011-02-11  Anders Carlsson  <andersca@apple.com>
989
990         Reviewed by Sam Weinig.
991
992         Incoming synchronous messages should always be processed regardless of connection waiting for a reply
993         https://bugs.webkit.org/show_bug.cgi?id=54326
994
995         * Platform/CoreIPC/Connection.cpp:
996         (CoreIPC::Connection::SyncMessageState::getOrCreate):
997         Assert that the map has a non-null SyncMessageState object.
998
999         (CoreIPC::Connection::SyncMessageState::SyncMessageState):
1000         Initialize m_waitForSyncReplyCount.
1001
1002         (CoreIPC::Connection::SyncMessageState::beginWaitForSyncReply):
1003         Increment m_waitForSyncReplyCount.
1004
1005         (CoreIPC::Connection::SyncMessageState::endWaitForSyncReply):
1006         Decrement m_waitForSyncReplyCount. If it's 0, enqueue any incoming sync messages.
1007
1008         (CoreIPC::Connection::SyncMessageState::processIncomingMessage):
1009         If this is a message that needs to be dispatched, add it to the queue and wake up the client run loop.
1010
1011         (CoreIPC::Connection::SyncMessageState::dispatchMessages):
1012         Go through the queue of incoming messages and dispatch them.
1013
1014         (CoreIPC::Connection::sendSyncMessage):
1015         call beginWaitForSyncReply/endWaitForSyncReply.
1016
1017         (CoreIPC::Connection::waitForSyncReply):
1018         Dispatch messages.
1019
1020         (CoreIPC::Connection::processIncomingMessage):
1021         Call SyncMessageState::processIncomingMessage.
1022
1023         (CoreIPC::Connection::enqueueIncomingMessage):
1024         Add helper function for enqueuing an incoming message.
1025
1026         * Platform/CoreIPC/Connection.h:
1027         (CoreIPC::Connection::Message::destinationID):
1028
1029 2011-02-11  Sam Weinig  <sam@webkit.org>
1030
1031         Reviewed by Maciej Stachowiak.
1032
1033         WebKit2: Going to Ars Technica crashes WebProcess in WebCore::ResourceRequestBase::url() const + 9
1034         <rdar://problem/8978832>
1035
1036         Speculative fix for crash accessing a bad ResourceRequest in policy
1037         client code. Remove early returns from dispatchDecidePolicyForMIMEType 
1038         and dispatchDecidePolicyForNavigationAction that are not present in the WebKit1
1039         equivalent code. This should be safe, now that the IPC calls are synchronous.
1040
1041         Also removes some invalid assertions in WebFrameProxy that were getting hit. It is okay
1042         for the url to empty.
1043
1044         * UIProcess/WebFrameProxy.cpp:
1045         (WebKit::WebFrameProxy::didReceiveServerRedirectForProvisionalLoad):
1046         (WebKit::WebFrameProxy::didFailProvisionalLoad):
1047         (WebKit::WebFrameProxy::didFailLoad):
1048         * WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
1049         (WebKit::WebFrameLoaderClient::dispatchDecidePolicyForMIMEType):
1050         (WebKit::WebFrameLoaderClient::dispatchDecidePolicyForNavigationAction):
1051
1052 2011-02-11  Alexey Proskuryakov  <ap@apple.com>
1053
1054         Reviewed by Darin Adler and Anders Carlsson.
1055
1056         https://bugs.webkit.org/show_bug.cgi?id=53593
1057         <rdar://problem/8948380> Crash beneath HistoryController::recursiveSetProvisionalItem in web
1058         process (preceded by assertion failure) if UI process exits while 
1059         Messages::WebPage::RestoreSessionAndNavigateToCurrentItem is being handled
1060
1061         Can't test exiting the UI process.
1062
1063         * Platform/CoreIPC/Connection.cpp: (CoreIPC::Connection::sendSyncMessage):
1064         * Platform/CoreIPC/Connection.h: (CoreIPC::Connection::Client::didFailToSendSyncMessage):
1065         Notify connection client when the connection fails to send a sync message.
1066
1067         * WebProcess/WebProcess.cpp: (WebKit::WebProcess::didFailToSendSyncMessage):
1068         * WebProcess/WebProcess.h:
1069         Quit the web process immediately if it tried to send a sync message to a dead UI process.
1070         It never needs to continue and handle an unexpected null "reply".
1071
1072         * PluginProcess/PluginProcess.cpp: (WebKit::PluginProcess::didFailToSendSyncMessage):
1073         * PluginProcess/PluginProcess.h:
1074         Ditto. There is no need for a plug-in to keep running even briefly if it couldn't get a
1075         reply to a sync message.
1076
1077 2011-02-11  Anders Carlsson  <andersca@apple.com>
1078
1079         Reviewed by Sam Weinig.
1080
1081         Add a way to send async messages that can't get out of order with sync ones
1082         https://bugs.webkit.org/show_bug.cgi?id=54319
1083         <rdar://problem/8894844>
1084
1085         * Platform/CoreIPC/Connection.cpp:
1086         (CoreIPC::Connection::sendMessage):
1087         sendMessage now takes a messageSendFlags. Update the messageID if the
1088         messageSendFlags contain DispatchMessageEvenWhenWaitingForSyncReply.
1089
1090         (CoreIPC::Connection::waitForSyncReply):
1091         Process asynchronous messages as well.
1092
1093         (CoreIPC::Connection::processIncomingMessage):
1094         Check if a message should be dispatched even when we're waiting for a
1095         synchronous reply.
1096
1097         * Platform/CoreIPC/Connection.h:
1098         (CoreIPC::Connection::send):
1099         Send now takes a messageSendFlags parameter.
1100
1101         * Platform/CoreIPC/MessageID.h:
1102         (CoreIPC::MessageID::messageIDWithAddedFlags):
1103         Return a new MessageID object with the given flags added.
1104
1105         (CoreIPC::MessageID::shouldDispatchMessageWhenWaitingForSyncReply):
1106         Add getter.
1107
1108 2011-02-11  Sam Weinig  <sam@webkit.org>
1109
1110         Reviewed by Anders Carlsson.
1111
1112         Crash with dynamic popup menu use
1113         <rdar://problem/8716952>
1114
1115         Invalidate popup menus when forcing them closed, since they might still be
1116         in their tracking loop.
1117
1118         * UIProcess/WebPageProxy.cpp:
1119         (WebKit::WebPageProxy::showPopupMenu):
1120         (WebKit::WebPageProxy::hidePopupMenu):
1121         * UIProcess/WebPopupMenuProxy.h:
1122         (WebKit::WebPopupMenuProxy::invalidate):
1123         * UIProcess/mac/WebPopupMenuProxyMac.mm:
1124         (WebKit::WebPopupMenuProxyMac::showPopupMenu):
1125         * UIProcess/win/WebPopupMenuProxyWin.cpp:
1126         (WebKit::WebPopupMenuProxyWin::showPopupMenu):
1127         (WebKit::WebPopupMenuProxyWin::setFocusedIndex):
1128
1129 2011-02-11  Anders Carlsson  <andersca@apple.com>
1130
1131         Reviewed by Adam Roben.
1132
1133         Actually initialize m_syncMessageState.
1134
1135         * Platform/CoreIPC/Connection.cpp:
1136         (CoreIPC::Connection::Connection):
1137
1138 2011-02-11  Anders Carlsson  <andersca@apple.com>
1139
1140         Reviewed by Adam Roben.
1141
1142         Move the binary semaphore into SyncMessageState
1143         https://bugs.webkit.org/show_bug.cgi?id=54311
1144
1145         With this change, all connections that belong to the same run loop will use same binary semaphore.
1146         This is in preparation for making any connection be able to wakeup the client run loop.
1147
1148         * Platform/CoreIPC/Connection.cpp:
1149         (CoreIPC::Connection::SyncMessageState::wakeUpClientRunLoop):
1150         (CoreIPC::Connection::SyncMessageState::wait):
1151         (CoreIPC::Connection::waitForSyncReply):
1152         (CoreIPC::Connection::processIncomingMessage):
1153         (CoreIPC::Connection::connectionDidClose):
1154         * Platform/CoreIPC/Connection.h:
1155
1156 2011-02-11  Anders Carlsson  <andersca@apple.com>
1157
1158         Reviewed by Adam Roben.
1159
1160         Add a SyncMessageState class to CoreIPC::Connection
1161         https://bugs.webkit.org/show_bug.cgi?id=54309
1162
1163         SyncMessageState objects are shared between all connections scheduled on
1164         a given run loop. It will be used to keep track of state when waiting
1165         for replies for a synchronous message.
1166
1167         * Platform/CoreIPC/Connection.cpp:
1168         (CoreIPC::Connection::SyncMessageState::syncMessageStateMap):
1169         (CoreIPC::Connection::SyncMessageState::syncMessageStateMapMutex):
1170         Add a global RunLoop -> SyncMessageState map and a mutex for locking.
1171
1172         (CoreIPC::Connection::SyncMessageState::getOrCreate):
1173         Look in the map for an existing SyncMessageState object and create a new
1174         one if none is found.
1175
1176         (CoreIPC::Connection::SyncMessageState::SyncMessageState):
1177         Initialize m_runLoop.
1178
1179         (CoreIPC::Connection::SyncMessageState::~SyncMessageState):
1180         Remove the object from the map.
1181
1182 2011-02-11  Enrica Casucci  <enrica@apple.com>
1183
1184         Reviewed by Darin Adler.
1185
1186         crashes in WebProcess at WebCore::Range::startPosition const + 16
1187         https://bugs.webkit.org/show_bug.cgi?id=54294
1188         <rdar://problem/8982710>
1189         
1190         I don't have a repro case for this bugs, but the side-by-side
1191         comparison of the IME support implementation in WebKit and WebKi2
1192         shows a missing null check on a Range that could very well explain
1193         this crash.
1194         I tried running platform/mac/editing/input tests with a version of WebKit
1195         without the null check and I can reproduce a crash with the same signature.
1196         These tests are not yet enabled for WebKit2.
1197
1198         * WebProcess/WebPage/mac/WebPageMac.mm:
1199         (WebKit::WebPage::firstRectForCharacterRange):
1200
1201 2011-02-11  Jeff Miller  <jeffm@apple.com>
1202
1203         Reviewed by Steve Falkenburg.
1204
1205         Eliminate /DELAYLOAD:msimg32.dll ignored warning when building WebKit project
1206         https://bugs.webkit.org/show_bug.cgi?id=54296
1207
1208         * win/WebKit2Common.vsprops: Remove msimg32.dll from the list of DelayLoadDLLs.
1209
1210 2011-02-11  Chandra Vallala  <chandra.vallala@motorola.com> and Alejandro G. Castro  <alex@igalia.com>
1211
1212         Reviewed by Martin Robinson.
1213
1214         [GTK] Implement UpdateChunk, ChunkedUpdateDrawingArea/Proxy
1215         classes for WebKit2
1216         https://bugs.webkit.org/show_bug.cgi?id=54080
1217
1218         * GNUmakefile.am:
1219         * Shared/gtk/UpdateChunk.cpp: Added.
1220         (WebKit::UpdateChunk::UpdateChunk):
1221         (WebKit::UpdateChunk::~UpdateChunk):
1222         (WebKit::UpdateChunk::encode):
1223         (WebKit::UpdateChunk::decode):
1224         (WebKit::UpdateChunk::createImage):
1225         * Shared/gtk/UpdateChunk.h: Added.
1226         (WebKit::UpdateChunk::rect):
1227         (WebKit::UpdateChunk::isEmpty):
1228         (WebKit::UpdateChunk::size):
1229         * UIProcess/ChunkedUpdateDrawingAreaProxy.cpp:
1230         (WebKit::ChunkedUpdateDrawingAreaProxy::ChunkedUpdateDrawingAreaProxy):
1231         Initialize the surface.
1232         * UIProcess/ChunkedUpdateDrawingAreaProxy.h:
1233         * UIProcess/DrawingAreaProxy.h: Added cairo variables.
1234         * UIProcess/gtk/ChunkedUpdateDrawingAreaProxyGtk.cpp: Added.
1235         (WebKit::ChunkedUpdateDrawingAreaProxy::page):
1236         (WebKit::ChunkedUpdateDrawingAreaProxy::ensureBackingStore):
1237         (WebKit::ChunkedUpdateDrawingAreaProxy::invalidateBackingStore):
1238         (WebKit::ChunkedUpdateDrawingAreaProxy::platformPaint):
1239         (WebKit::ChunkedUpdateDrawingAreaProxy::drawUpdateChunkIntoBackingStore):
1240         * WebProcess/WebPage/gtk/ChunkedUpdateDrawingAreaGtk.cpp: Added.
1241         (WebKit::ChunkedUpdateDrawingArea::paintIntoUpdateChunk):
1242
1243 2011-02-10  Anders Carlsson  <andersca@apple.com>
1244
1245         Reviewed by Dan Bernstein.
1246
1247         Repro crash with Sony Google TV ad at Gizmodo
1248         https://bugs.webkit.org/show_bug.cgi?id=54150
1249         <rdar://problem/8782346>
1250
1251         Re-landing this fix, bug without the test case, since it causes hangs on the bots.
1252         https://bugs.webkit.org/show_bug.cgi?id=54171 tracks adding back the test.
1253
1254         Since PluginView::evaluate can cause the plug-in element to go away, we need to protect it.
1255
1256         * WebProcess/Plugins/PluginView.cpp:
1257         (WebKit::PluginView::~PluginView):
1258         Null out m_pluginElement here so we'll catch crashes earlier.
1259
1260         (WebKit::PluginView::evaluate):
1261         Add a plug-in protector.
1262
1263 2011-02-10  Alice Liu  <alice.liu@apple.com>
1264
1265         Reviewed by Enrica Casucci and Adele Peterson.
1266
1267         WebKit2 pages gobble up cmd-I as an editing command in some cases where it shouldn't
1268         https://bugs.webkit.org/show_bug.cgi?id=54254
1269
1270         * UIProcess/API/mac/WKView.mm:
1271         (-[WKView _handleStyleKeyEquivalent:]):
1272         Return early if we're not in an editable region.
1273
1274 2011-02-10  Andreas Kling  <kling@webkit.org>
1275
1276         Unreviewed Qt build fix.
1277
1278         waitFor() -> deprecatedWaitFor()
1279
1280         * UIProcess/TiledDrawingAreaProxy.cpp:
1281         (WebKit::TiledDrawingAreaProxy::waitUntilUpdatesComplete):
1282
1283 2011-02-10  Anders Carlsson  <andersca@apple.com>
1284
1285         Reviewed by Adam Roben.
1286
1287         Move code to dispatch an incoming message out into a new function
1288         https://bugs.webkit.org/show_bug.cgi?id=54239
1289
1290         This also fixes a leak where we wouldn't free ArgumentDecoder objects
1291         after a connection has been invalidated.
1292         
1293         * Platform/CoreIPC/Connection.cpp:
1294         (CoreIPC::Connection::dispatchMessage):
1295         (CoreIPC::Connection::dispatchMessages):
1296         * Platform/CoreIPC/Connection.h:
1297
1298 2011-02-10  Anders Carlsson  <andersca@apple.com>
1299
1300         Try again to fix the Qt build.
1301
1302         * UIProcess/TiledDrawingAreaProxy.cpp:
1303         (WebKit::TiledDrawingAreaProxy::sizeDidChange):
1304         (WebKit::TiledDrawingAreaProxy::setPageIsVisible):
1305         (WebKit::TiledDrawingAreaProxy::takeSnapshot):
1306         (WebKit::TiledDrawingAreaProxy::removeTile):
1307
1308 2011-02-10  Anders Carlsson  <andersca@apple.com>
1309
1310         Attempt to fix the Qt build.
1311
1312         * UIProcess/TiledDrawingAreaProxy.cpp:
1313         (WebKit::TiledDrawingAreaProxy::sizeDidChange):
1314         (WebKit::TiledDrawingAreaProxy::setPageIsVisible):
1315         (WebKit::TiledDrawingAreaProxy::requestTileUpdate):
1316         (WebKit::TiledDrawingAreaProxy::takeSnapshot):
1317         (WebKit::TiledDrawingAreaProxy::removeTile):
1318         * WebProcess/WebPage/TiledDrawingArea.cpp:
1319         (WebKit::TiledDrawingArea::display):
1320         (WebKit::TiledDrawingArea::setSize):
1321         (WebKit::TiledDrawingArea::updateTile):
1322         (WebKit::TiledDrawingArea::tileUpdateTimerFired):
1323         (WebKit::TiledDrawingArea::didReceiveMessage):
1324
1325 2011-02-10  Adam Roben  <aroben@apple.com>
1326
1327         Handle a null FindIndicator correctly
1328
1329         We are passed a null FindIndicator when the find indicator becomes hidden.
1330
1331         Fixes <http://webkit.org/b/54213> <rdar://problem/8983261> REGRESSION (r78198): Crash in
1332         FindIndicator::contentImage when scrolling page
1333
1334         Reviewed by Steve Falkenburg.
1335
1336         * Platform/win/SharedMemoryWin.cpp:
1337         (WebKit::SharedMemory::Handle::isNull): Implemented.
1338         (WebKit::SharedMemory::create): Bail out if the handle is null, just like Mac does.
1339         Otherwise assert that ::MapViewOfFile succeeded. This doesn't fix the bug, but should help
1340         catch other errors.
1341
1342         * UIProcess/win/WebView.cpp:
1343         (WebKit::WebView::setFindIndicator): Null-check the FindIndicator before dereferencing it.
1344         Also changed the function to store the FindIndicator in a RefPtr.
1345
1346 2011-02-10  Anders Carlsson  <andersca@apple.com>
1347
1348         Reviewed by Sam Weinig.
1349
1350         Add 'deprecated' to the deprecated CoreIPC functions
1351         https://bugs.webkit.org/show_bug.cgi?id=54223
1352
1353         * Platform/CoreIPC/Connection.cpp:
1354         (CoreIPC::Connection::sendMessage):
1355         * Platform/CoreIPC/Connection.h:
1356         (CoreIPC::Connection::send):
1357         (CoreIPC::Connection::deprecatedSendSync):
1358         (CoreIPC::Connection::deprecatedSend):
1359         (CoreIPC::Connection::deprecatedWaitFor):
1360         * Platform/CoreIPC/mac/ConnectionMac.cpp:
1361         (CoreIPC::Connection::open):
1362         * PluginProcess/PluginProcess.cpp:
1363         * UIProcess/ChunkedUpdateDrawingAreaProxy.cpp:
1364         (WebKit::ChunkedUpdateDrawingAreaProxy::paint):
1365         * UIProcess/Plugins/PluginProcessProxy.cpp:
1366         (WebKit::PluginProcessProxy::createWebProcessConnection):
1367         * WebProcess/InjectedBundle/InjectedBundle.cpp:
1368         (WebKit::InjectedBundle::postMessage):
1369         (WebKit::InjectedBundle::postSynchronousMessage):
1370         * WebProcess/Plugins/PluginProcessConnectionManager.cpp:
1371         (WebKit::PluginProcessConnectionManager::getPluginProcessConnection):
1372         * WebProcess/WebPage/ChunkedUpdateDrawingArea.cpp:
1373         (WebKit::ChunkedUpdateDrawingArea::display):
1374         (WebKit::ChunkedUpdateDrawingArea::setSize):
1375         * WebProcess/WebPage/LayerBackedDrawingArea.cpp:
1376         (WebKit::LayerBackedDrawingArea::setSize):
1377         * WebProcess/WebPage/mac/LayerBackedDrawingAreaMac.mm:
1378         (WebKit::LayerBackedDrawingArea::attachCompositingContext):
1379
1380 2011-02-10  Sam Weinig  <sam@webkit.org>
1381
1382         Reviewed by Anders Carlsson.
1383
1384         Window resizer does not have a border when there are scrollbars in WebKit2 windows
1385         <rdar://problem/8488476>
1386         https://bugs.webkit.org/show_bug.cgi?id=54222
1387
1388         * UIProcess/API/mac/PageClientImpl.h:
1389         * UIProcess/API/mac/PageClientImpl.mm:
1390         (WebKit::PageClientImpl::didChangeScrollbarsForMainFrame):
1391         * UIProcess/API/mac/WKView.mm:
1392         (-[WKView _updateGrowBoxForWindowFrameChange]):
1393         (-[WKView _didChangeScrollbarsForMainFrame]):
1394         * UIProcess/API/mac/WKViewInternal.h:
1395         * UIProcess/API/qt/qwkpage_p.h:
1396         (QWKPagePrivate::didChangeScrollbarsForMainFrame):
1397         * UIProcess/PageClient.h:
1398         * UIProcess/WebPageProxy.cpp:
1399         (WebKit::WebPageProxy::didChangeScrollbarsForMainFrame):
1400         * UIProcess/win/WebView.cpp:
1401         (WebKit::WebView::didChangeScrollbarsForMainFrame):
1402         * UIProcess/win/WebView.h:
1403
1404 2011-02-10  Ivan Krstić  <ike@apple.com>
1405
1406         Reviewed by Adam Roben.
1407
1408         Rename remaining instances of _HOME sandbox parameter.
1409         <rdar://problem/8983428>
1410
1411         * WebProcess/com.apple.WebProcess.sb:
1412
1413 2011-02-10  Chris Fleizach  <cfleizach@apple.com>
1414
1415         Reviewed by Anders Carlsson.
1416
1417         AX: AX needs to stop using WebCoreViewFactory
1418         https://bugs.webkit.org/show_bug.cgi?id=54153
1419
1420         * WebProcess/WebCoreSupport/mac/WebSystemInterface.mm:
1421         (InitWebCoreSystemInterface):
1422
1423 2011-02-10  Sam Weinig  <sam@webkit.org>
1424
1425         Reviewed by Anders Carlsson.
1426
1427         Sandbox violations trying to read crypto preferences.
1428         <rdar://problem/8981151>
1429
1430         * WebProcess/com.apple.WebProcess.sb:
1431
1432 2011-02-10  Peter Varga  <pvarga@webkit.org>
1433
1434         Reviewed by Csaba Osztrogonác.
1435
1436         Remove PCRE source from trunk
1437         https://bugs.webkit.org/show_bug.cgi?id=54188
1438
1439         * WebKit2.pro:
1440
1441 2011-02-09  Adam Roben  <aroben@apple.com>
1442
1443         Turn on the new drawing area on Windows
1444
1445         Fixes <http://webkit.org/b/53805> <rdar://problem/8960666> WebKit2 on Windows should use
1446         DrawingAreaProxyImpl
1447
1448         Reviewed by Darin Adler.
1449
1450         * UIProcess/win/WebView.cpp:
1451         (WebKit::useNewDrawingArea): Return true!
1452
1453 2011-02-09  Adam Roben  <aroben@apple.com>
1454
1455         Hook up WM_PRINT to the new drawing area
1456
1457         Fixes <http://webkit.org/b/54145> <rdar://problem/8979559> WM_PRINT doesn't work with new
1458         drawing area (assertion failure in DrawingAreaProxyImpl in Debug builds)
1459
1460         Reviewed by Darin Adler.
1461
1462         * UIProcess/win/WebView.cpp:
1463         (WebKit::WebView::paint): Added. Code came from onPaintEvent.
1464
1465         (WebKit::WebView::onPaintEvent):
1466         (WebKit::WebView::onPrintClientEvent):
1467         Changed to call paint.
1468
1469         * UIProcess/win/WebView.h: Added paint. Also separated message handler functions into their
1470         own paragraph.
1471
1472 2011-02-09  Adam Roben  <aroben@apple.com>
1473
1474         Notice when the backing store goes away after DidSetSize
1475
1476         Fixes <http://webkit.org/b/54142> <rdar://problem/8979365> Crash in
1477         DrawingAreaProxyImpl::paint when WKView paints after being resized while hidden
1478
1479         Reviewed by Darin Adler.
1480
1481         * UIProcess/DrawingAreaProxyImpl.cpp:
1482         (WebKit::DrawingAreaProxyImpl::paint): Null-check m_backingStore after waiting for
1483         DidSetSize, as m_backingStore can go away when we receive that message. This is the bug fix.
1484         Also moved the accelerated compositing check inside the block where we wait for DidSetSize.
1485         If we didn't wait for DidSetSize, we already know that we're not in accelerated compositing
1486         mode (and asserted so earlier in this function).
1487
1488 2011-02-09  Adam Roben  <aroben@apple.com>
1489
1490         Decode a null SharedMemory::Handle correctly on Windows
1491
1492         Fixes <http://webkit.org/b/54141> <rdar://problem/8979195> WKView draws at wrong size,
1493         performs badly if is resized while hidden (assertion fails in
1494         BackingStore::incorporateUpdate in Debug builds)
1495
1496         Reviewed by Darin Adler.
1497
1498         * Platform/win/SharedMemoryWin.cpp:
1499         (WebKit::getDuplicatedHandle): Added. Code came from decode. The only changes were to
1500         null-check sourceHandle (this is the bug fix) and to assert when ::DuplicateHandle fails
1501         (which would have caught the bug earlier).
1502         (WebKit::SharedMemory::Handle::decode): Changed to use getDuplicatedHandle.
1503
1504 2011-02-09  Adam Roben  <aroben@apple.com>
1505
1506         Don't invalidate outside of the WebPage's bounds
1507
1508         Fixes <http://webkit.org/b/54123> <rdar://problem/8978383> Assertion failure in
1509         BackingStore::BackingStore if a new WebPage becomes active before receiving a size
1510
1511         Reviewed by Darin Adler.
1512
1513         * WebProcess/WebPage/DrawingAreaImpl.cpp:
1514         (WebKit::DrawingAreaImpl::setNeedsDisplay): Intersect the dirty rect with our bounds before
1515         doing anything else.
1516         (WebKit::DrawingAreaImpl::display): Added an assertion to help catch the bad case a little
1517         earlier.
1518
1519 2011-02-10  Eric Seidel  <eric@webkit.org>
1520
1521         Unreviewed, rolling out r78157.
1522         http://trac.webkit.org/changeset/78157
1523         https://bugs.webkit.org/show_bug.cgi?id=54150
1524
1525         Fails on a bunch of bots
1526
1527         * WebProcess/Plugins/PluginView.cpp:
1528         (WebKit::PluginView::~PluginView):
1529         (WebKit::PluginView::evaluate):
1530
1531 2011-02-09  Brian Weinstein  <bweinstein@apple.com>
1532
1533         Rubber-stamped by Sam Weinig.
1534
1535         Fix a typo in WebSecurityOrigin::protocol.
1536
1537         * Shared/WebSecurityOrigin.h:
1538         (WebKit::WebSecurityOrigin::protocol): This should return the protocol, not the domain.
1539
1540 2011-02-09  Sam Weinig  <sam@webkit.org>
1541
1542         Reviewed by Darin Adler.
1543
1544         File uploads do not work within the sandbox
1545         <rdar://problem/8950518>
1546         https://bugs.webkit.org/show_bug.cgi?id=54154
1547
1548         * UIProcess/WebPageProxy.cpp:
1549         (WebKit::WebPageProxy::didChooseFilesForOpenPanel):
1550         * WebProcess/WebPage/WebPage.cpp:
1551         (WebKit::WebPage::extendSandboxForFileFromOpenPanel):
1552         * WebProcess/WebPage/WebPage.h:
1553         * WebProcess/WebPage/WebPage.messages.in:
1554
1555 2011-02-09  Alexey Proskuryakov  <ap@apple.com>
1556
1557         Reviewed by Darin Adler.
1558
1559         https://bugs.webkit.org/show_bug.cgi?id=54148
1560         <rdar://problem/8973887> REGRESSION (WebKit2): Opening two print dialogs causes havoc
1561
1562         * UIProcess/API/mac/WKPrintingView.h: Moved _isForcingPreviewUpdate into a static variable,
1563         because dispatching a notification affects all WKPrintingViews at once.
1564         * UIProcess/API/mac/WKPrintingView.mm:
1565         (-[WKPrintingView _updatePreview]): Updated for new variable name.
1566         (-[WKPrintingView knowsPageRange:]): Don't break if the method is called twice in a row
1567         (we already had this logic when printing from separate thread, but not for preview).
1568         (-[WKPrintingView drawRect:]): Changed all LOG messages to have view object address for
1569         easier matching.
1570         (-[WKPrintingView rectForPage:]): Ditto.
1571         (-[WKPrintingView beginDocument]): Ditto.
1572         (-[WKPrintingView endDocument]): Ditto.
1573
1574 2011-02-09  Anders Carlsson  <andersca@apple.com>
1575
1576         Reviewed by Sam Weinig.
1577
1578         Repro crash with Sony Google TV ad at Gizmodo
1579         https://bugs.webkit.org/show_bug.cgi?id=54150
1580
1581         Since PluginView::evaluate can cause the plug-in element to go away, we need to protect it.
1582
1583         * WebProcess/Plugins/PluginView.cpp:
1584         (WebKit::PluginView::~PluginView):
1585         Null out m_pluginElement here so we'll catch crashes earlier.
1586
1587         (WebKit::PluginView::evaluate):
1588         Add a plug-in protector.
1589
1590 2011-02-09  Sam Weinig  <sam@webkit.org>
1591
1592         Reviewed by Maciej Stachowiak.
1593
1594         Google Maps says it has horizontal scrollbars when it doesn't
1595         <rdar://problem/8978005>
1596
1597         We were updating the main frame's scrollbar state for changes to
1598         frames other than the main frame.
1599
1600         * WebProcess/WebCoreSupport/WebChromeClient.cpp:
1601         (WebKit::WebChromeClient::contentsSizeChanged):
1602         * WebProcess/WebCoreSupport/WebChromeClient.h:
1603         (WebKit::WebChromeClient::WebChromeClient):
1604         Change to bail out early if we are not looking at the main frame. Also
1605         fix some silly typos and rename the variables to be more specific.
1606
1607 2011-02-09  Ivan Krstić  <ike@apple.com>
1608
1609         Reviewed by Sam Weinig.
1610
1611         Allow read-only access to mouse preferences from sandboxed WebProcess.
1612         <rdar://problem/8975279>
1613
1614         * WebProcess/com.apple.WebProcess.sb:
1615
1616 2011-02-09  Steve Falkenburg  <sfalken@apple.com>
1617
1618         Build fix.
1619
1620         * win/MainWin.cpp:
1621         (wWinMain):
1622
1623 2011-02-09  Amruth Raj  <amruthraj@motorola.com> and Ravi Phaneendra Kasibhatla  <ravi.kasibhatla@motorola.com>
1624
1625         Reviewed by Martin Robinson.
1626
1627         [GTK] Implement Module class for WebKit2
1628         https://bugs.webkit.org/show_bug.cgi?id=48510
1629
1630         * GNUmakefile.am:
1631         * Platform/Module.h: Added GModule handle for GTK port.
1632         * Platform/gtk/ModuleGtk.cpp: Initial code using GModule calls.
1633         (WebKit::Module::load):
1634         (WebKit::Module::unload):
1635         (WebKit::Module::platformFunctionPointer):
1636
1637 2011-02-09  Chandra Vallala  <chandra.vallala@motorola.com> and Alejandro G. Castro  <alex@igalia.com>
1638
1639         Reviewed by Martin Robinson.
1640
1641         [GTK] Implement WKBaseGtk API for Webkit2
1642         https://bugs.webkit.org/show_bug.cgi?id=54081
1643
1644         * GNUmakefile.am: Added new files to compilation.
1645         * Shared/API/c/WKBase.h: Included WKBaseGtk.h in this file.
1646         * Shared/API/c/gtk: Added.
1647         * Shared/API/c/gtk/WKBaseGtk.h: Added. Declaration of WKViewRef
1648         for GTK port.
1649         * UIProcess/API/C/WKAPICast.h: Included WKAPICastGtk.h in this
1650         file.
1651         * UIProcess/API/C/gtk: Added.
1652         * UIProcess/API/C/gtk/WKAPICastGtk.h: Added. Type definition
1653         template for WKViewRef to WebView and vice-versa.
1654         * UIProcess/API/C/gtk/WKView.cpp: Added. Implementation of WKView
1655         API interface.
1656         (WKViewCreate):
1657         (WKViewGetWindow):
1658         (WKViewGetPage):
1659         (WKURLCreateWithURL):
1660         * UIProcess/API/C/gtk/WKView.h: Added. Declaration of WKView API
1661         interface.
1662
1663 2011-02-09  Alejandro G. Castro  <alex@igalia.com>
1664
1665         Reviewed by Martin Robinson.
1666
1667         [GTK] Add WebGraphicsContext stub to the compilation
1668         https://bugs.webkit.org/show_bug.cgi?id=54078
1669
1670         * GNUmakefile.am:
1671         * Shared/API/c/gtk/WKGraphicsContextGtk.cpp: Added stub just for
1672         compilation.
1673         (WKGraphicsContextGetGtkContext):
1674         * Shared/API/c/gtk/WKGraphicsContextGtk.h: Added stub just for
1675         compilation.
1676         * Shared/WebGraphicsContext.cpp:
1677         (WebKit::WebGraphicsContext::WebGraphicsContext):
1678         * Shared/WebGraphicsContext.h:
1679         (WebKit::WebGraphicsContext::platformContext):
1680
1681 2011-02-09  Alejandro G. Castro  <alex@igalia.com>
1682
1683         Reviewed by Martin Robinson.
1684
1685         [GTK] Add geolocation support to the webkit2 compilation
1686         https://bugs.webkit.org/show_bug.cgi?id=54077
1687
1688         Add Geolocation files to the GTK compilation.
1689
1690         * GNUmakefile.am:
1691
1692 2011-02-09  Andras Becsi  <abecsi@webkit.org>
1693
1694         Reviewed by Csaba Osztrogonác.
1695
1696         [Qt][WK2] Don't generate superfluous forwarding header for config.h.
1697
1698         * Scripts/generate-forwarding-headers.pl:
1699
1700 2011-02-09  Adam Roben  <aroben@apple.com>
1701
1702         Hide the ugly details of WebView::m_window initialization from WebPageProxy, and make it
1703         less ugly
1704
1705         WebView::WebView was initially creating a hidden window, then showing it. It would tell
1706         WebPageProxy about the window while it was still hidden, and then have to inform
1707         WebPageProxy that the window had become shown. This resulted in WebPageProxy sending
1708         unnecessary messages to the web process, and confused code that assumed that the window
1709         would be in the same state after WebView's constructor exited as it was when WebPageProxy
1710         first found out about the window.
1711
1712         We now don't hide the window when creating it, which simplifies the code, and only tell
1713         WebPageProxy about the window after we're done modifying it, which fixes the bug.
1714
1715         Fixes <http://webkit.org/b/53878> <rdar://problem/8977306> Assertion failure in
1716         DrawingAreaImpl::resumePainting after window.open or when opening Web Inspector
1717
1718         Reviewed by Anders Carlsson.
1719
1720         * UIProcess/win/WebView.cpp:
1721         (WebKit::WebView::WebView): Changed ::CreateWindowEx to ::CreateWindowExW, to match other
1722         Win32 API calls in WebKit2. Pass WS_VISIBLE to ::CreateWindowExW rather than waiting until
1723         later to show the window. Added an assertion that m_isVisible matches the window's visible
1724         state. Don't even create our WebPageProxy, or tell it about our window, until we're done
1725         initializing our window, so that it doesn't get informed about our window's internal state
1726         changes that happen beneath ::CreateWindowExW.
1727         (WebKit::WebView::onSizeEvent): Null-check m_page since we can receive this message beneath
1728         ::CreateWindowExW.
1729         (WebKit::WebView::onShowWindowEvent): Ditto. Replaced one FIXME with another. Always set
1730         handled to false so that ::DefWindowProcW can do its thing. (MSDN says this is when it
1731         actually shows/hides the window, though I couldn't find any consequences of not calling
1732         ::DefWindowProcW here.)
1733
1734 2011-02-09  Pavel Feldman  <pfeldman@chromium.org>
1735
1736         Reviewed by Yury Semikhatsky.
1737
1738         Web Inspector: follow up on InspectorAgent split -
1739         removing unnecessary methods from InspectorController.
1740         https://bugs.webkit.org/show_bug.cgi?id=54093
1741
1742         * WebProcess/WebPage/WebInspector.cpp:
1743         (WebKit::WebInspector::showConsole):
1744         (WebKit::WebInspector::stopJavaScriptProfiling):
1745
1746 2011-02-09  Alejandro G. Castro  <alex@igalia.com>
1747
1748         Reviewed by Martin Robinson.
1749
1750         [GTK] Avoid WebProcessMain compilation, we are used a gtk specific main
1751         https://bugs.webkit.org/show_bug.cgi?id=54015
1752
1753         Avoided the compilation of the general WebProcessMain, and added
1754         soup initialization to WebProcessMainGtk.cpp.
1755
1756         * GNUmakefile.am:
1757         * WebProcess/gtk/WebProcessMainGtk.cpp:
1758         (WebKit::WebProcessMainGtk):
1759
1760 2011-02-08  Alejandro G. Castro  <alex@igalia.com>
1761
1762         Reviewed by Martin Robinson.
1763
1764         [GTK] Incorrect assertion in WorkQueueGtk, we need to register
1765         more than one handle
1766         https://bugs.webkit.org/show_bug.cgi?id=54014
1767
1768         Fixed assertion condition we need to register more than one
1769         handler for the same file descriptor.
1770
1771         * Platform/gtk/WorkQueueGtk.cpp:
1772         (WorkQueue::registerEventSourceHandler):
1773
1774 2011-02-08  Alejandro G. Castro  <alex@igalia.com>
1775
1776         Reviewed by Martin Robinson.
1777
1778         Fix typo in the include guards name in ChunkedUpdateDrawingAreaProxy.h
1779         https://bugs.webkit.org/show_bug.cgi?id=54013
1780
1781         * UIProcess/ChunkedUpdateDrawingAreaProxy.h:
1782
1783 2011-02-08  Alejandro G. Castro  <alex@igalia.com>
1784
1785         Reviewed by Martin Robinson.
1786
1787         [GTK] Fix after r77874, m_isConnected is initialized before the
1788         socket is opened
1789         https://bugs.webkit.org/show_bug.cgi?id=54011
1790
1791         Fixed connection breakage after r77874, we have to wait until open
1792         the socket to open the connection.
1793
1794         * Platform/CoreIPC/gtk/ConnectionGtk.cpp:
1795         (CoreIPC::Connection::platformInitialize):
1796         (CoreIPC::Connection::open):
1797
1798 2011-02-08  Alejandro G. Castro  <alex@igalia.com>
1799
1800         Reviewed by Martin Robinson.
1801
1802         [WK2] LayerTreeContext is used outside the ACCELERATED_COMPOSITING
1803         guards but not defined in DrawingAreaProxy.h
1804         https://bugs.webkit.org/show_bug.cgi?id=54009
1805
1806         Removed the guards in the forward declaration, this will fail if
1807         the class is finally used in the function, but it works for the
1808         moment.
1809
1810         * UIProcess/DrawingAreaProxy.h:
1811
1812 2011-02-08  Alejandro G. Castro  <alex@igalia.com>
1813
1814         Reviewed by Martin Robinson.
1815
1816         WebKit2 GTK Fails to Build #include nested too deeply
1817         https://bugs.webkit.org/show_bug.cgi?id=52219
1818
1819         * GNUmakefile.am: Removed the commands to create the directories
1820         for the forwarding headers, the script already does it for us.
1821         * config.h: Removed the config.h inclusion and added the
1822         autotoolsconfig.h directly, also added a condition to share the
1823         defines with QT.
1824
1825 2011-02-08  Maciej Stachowiak  <mjs@apple.com>
1826
1827         Reviewed by Mark Rowe.
1828
1829         Crash when going back/forward when back/forward list is in a bad state.
1830         https://bugs.webkit.org/show_bug.cgi?id=54059
1831         <rdar://problem/8975244>
1832         
1833         * UIProcess/WebPageProxy.cpp:
1834         (WebKit::WebPageProxy::goForward): Add a null check.
1835         (WebKit::WebPageProxy::goBack): ditto
1836
1837 2011-02-08  Anders Carlsson  <andersca@apple.com>
1838
1839         Reviewed by Beth Dakin.
1840
1841         Assertion failure !isInAcceleratedCompositingMode() in DrawingAreaProxyImpl::incorporateUpdate()
1842         https://bugs.webkit.org/show_bug.cgi?id=54046
1843         <rdar://problem/8973960>
1844
1845         DrawingAreaImpl::setRootCompositingLayer can be called with a new layer even when already
1846         in accelerated compositing mode. Similarly, it can be called with a null layer even when not
1847         in accelerated compositing mode. Make the drawing area and layer tree host handle both these cases.
1848
1849         * WebProcess/WebPage/DrawingAreaImpl.cpp:
1850         (WebKit::DrawingAreaImpl::setRootCompositingLayer):
1851         Only call enterAcceleratedCompositingMode if there is no layer tree host, otherwise
1852         just call LayerTreeHost::setRootCompositingLayer.
1853
1854         (WebKit::DrawingAreaImpl::setSize):
1855         Add an assert.
1856
1857         (WebKit::DrawingAreaImpl::enterAcceleratedCompositingMode):
1858         Assert that we don't have a layer tree host.
1859
1860         (WebKit::DrawingAreaImpl::exitAcceleratedCompositingMode):
1861         Assert that we do have a layer tree host.
1862
1863         (WebKit::DrawingAreaImpl::display):
1864         If the call to display caused the page to enter accelerated compositing mode, we don't
1865         want to send back an Update message.
1866
1867         * WebProcess/WebPage/LayerTreeHost.cpp:
1868         (WebKit::LayerTreeHost::create):
1869         * WebProcess/WebPage/LayerTreeHost.h:
1870         Create no longer takes a graphics layer.
1871
1872         * WebProcess/WebPage/mac/LayerTreeHostMac.mm:
1873         (WebKit::LayerTreeHostMac::create):
1874         (WebKit::LayerTreeHostMac::LayerTreeHostMac):
1875         Create no longer takes a graphics layer.
1876         
1877         (WebKit::LayerTreeHostMac::setRootCompositingLayer):
1878         Set the new root compositing layer.
1879
1880 2011-02-08  Adam Roben  <aroben@apple.com>
1881
1882         Implement WorkQueue::scheduleWorkAfterDelay on Windows
1883
1884         Each WorkQueue now owns its own timer queue. When scheduleWorkAfterDelay is called, we
1885         create a timer-queue timer with the given delay. When the timer fires, we schedule the work
1886         on the queue and clean up the timer.
1887
1888         Fixes <http://webkit.org/b/54040> <rdar://problem/8974230> Web process sticks around forever
1889         if it's hung when UI process goes away
1890
1891         Reviewed by Anders Carlsson.
1892
1893         * Platform/WorkQueue.h: Added timerCallback and m_timerQueue.
1894
1895         * Platform/win/WorkQueueWin.cpp:
1896         (WorkQueue::platformInitialize): Initialize m_timerQueue.
1897         (WorkQueue::platformInvalidate): Clean up m_timerQueue.
1898         (TimerContext::TimerContext): Added this helper object to hold the context needed by the
1899         timer callback.
1900         (WorkQueue::timerCallback): Added. Schedules the WorkItem on the WorkQueue and cleans up the
1901         timer.
1902         (WorkQueue::scheduleWorkAfterDelay): Create a timer-queue timer on our timer queue that will
1903         fire after the given delay. Pass a new TimerContext object to the timer callback that
1904         contains the information it needs.
1905
1906 2011-02-08  Anders Carlsson  <andersca@apple.com>
1907
1908         Reviewed by Sam Weinig.
1909
1910         Rename PluginProcess::initializeConnection to PluginProcess::initialize
1911         https://bugs.webkit.org/show_bug.cgi?id=54039
1912
1913         * PluginProcess/PluginProcess.cpp:
1914         (WebKit::PluginProcess::initialize):
1915         * PluginProcess/PluginProcess.h:
1916         * PluginProcess/mac/PluginProcessMainMac.mm:
1917         (WebKit::PluginProcessMain):
1918         * WebProcess/WebProcess.h:
1919
1920 2011-02-08  Brady Eidson  <beidson@apple.com>
1921
1922         Reviewed by Darin Adler.
1923
1924         <rdar://problem/8972913> and https://bugs.webkit.org/show_bug.cgi?id=54036
1925         didChangeBackForwardList should include some context about what changed
1926
1927         Update the implementation of this API to include the new item (if any) and removed items (if any):
1928         * UIProcess/API/C/WKPage.h:
1929         * UIProcess/WebLoaderClient.cpp:
1930         (WebKit::WebLoaderClient::didChangeBackForwardList):
1931         * UIProcess/WebLoaderClient.h:
1932         * UIProcess/WebPageProxy.cpp:
1933         (WebKit::WebPageProxy::didChangeBackForwardList):
1934         * UIProcess/WebPageProxy.h:
1935
1936         Have WebBackForwardList pass the new items and/or removed items when calling the notifier:
1937         * UIProcess/WebBackForwardList.cpp:
1938         (WebKit::WebBackForwardList::addItem):
1939         (WebKit::WebBackForwardList::goToItem):
1940         (WebKit::WebBackForwardList::clear):
1941
1942 2011-02-08  Sam Weinig  <sam@webkit.org>
1943
1944         Reviewed by Anders Carlsson.
1945
1946         Sandbox violations visiting MobileMe.
1947         <rdar://problem/8961330>
1948
1949         * WebProcess/com.apple.WebProcess.sb:
1950
1951 2011-02-08  Anders Carlsson  <andersca@apple.com>
1952
1953         Reviewed by Sam Weinig.
1954
1955         Rename PluginProcess::initialize to PluginProcess::initializePluginProcess
1956         https://bugs.webkit.org/show_bug.cgi?id=54037
1957
1958         Rename PluginProcess::initialize to PluginProcess::initializePluginProcess to better
1959         match the WebProcess initialization code, in preparation of sharing more code.
1960
1961         * PluginProcess/PluginProcess.cpp:
1962         (WebKit::PluginProcess::initializePluginProcess):
1963         * PluginProcess/PluginProcess.h:
1964         * PluginProcess/PluginProcess.messages.in:
1965         * UIProcess/Plugins/PluginProcessProxy.cpp:
1966         (WebKit::PluginProcessProxy::didFinishLaunching):
1967
1968 2011-02-08  Sam Weinig  <sam@webkit.org>
1969
1970         Reviewed by Anders Carlsson.
1971
1972         WK2: Add ability to pass context to policy delegate methods
1973         https://bugs.webkit.org/show_bug.cgi?id=54031
1974
1975         * Platform/CoreIPC/HandleMessage.h:
1976         (CoreIPC::callMemberFunction):
1977         (CoreIPC::handleMessageVariadic):
1978         * Scripts/webkit2/messages.py:
1979         Add ability to pass variadic messages to sync messages.
1980
1981         * Shared/API/c/WKBase.h:
1982         * Shared/APIObject.h:
1983         Add WKBundleNavigation type.
1984
1985         * UIProcess/API/C/WKPage.h:
1986         * UIProcess/WebPageProxy.cpp:
1987         (WebKit::WebPageProxy::decidePolicyForNavigationAction):
1988         (WebKit::WebPageProxy::decidePolicyForNewWindowAction):
1989         (WebKit::WebPageProxy::decidePolicyForMIMEType):
1990         * UIProcess/WebPageProxy.h:
1991         * UIProcess/WebPageProxy.messages.in:
1992         * UIProcess/WebPolicyClient.cpp:
1993         (WebKit::WebPolicyClient::decidePolicyForNavigationAction):
1994         (WebKit::WebPolicyClient::decidePolicyForNewWindowAction):
1995         (WebKit::WebPolicyClient::decidePolicyForMIMEType):
1996         * UIProcess/WebPolicyClient.h:
1997         Update policy client for new data.
1998
1999         * WebProcess/InjectedBundle/API/c/WKBundleAPICast.h:
2000         * WebProcess/InjectedBundle/API/c/WKBundleNavigationAction.cpp: Added.
2001         (WKBundleNavigationActionGetTypeID):
2002         (WKBundleNavigationActionGetNavigationType):
2003         (WKBundleNavigationActionGetEventModifiers):
2004         (WKBundleNavigationActionGetEventMouseButton):
2005         (WKBundleNavigationActionCopyHitTestResult):
2006         (WKBundleNavigationActionCopyFormElement):
2007         * WebProcess/InjectedBundle/API/c/WKBundleNavigationAction.h: Added.
2008         * WebProcess/InjectedBundle/API/c/WKBundlePage.cpp:
2009         (WKBundlePageSetPolicyClient):
2010         * WebProcess/InjectedBundle/API/c/WKBundlePage.h:
2011         * WebProcess/InjectedBundle/InjectedBundleNavigationAction.cpp: Added.
2012         (WebKit::mouseEventForNavigationAction):
2013         (WebKit::mouseButtonForMouseEvent):
2014         (WebKit::InjectedBundleNavigationAction::modifiersForNavigationAction):
2015         (WebKit::InjectedBundleNavigationAction::mouseButtonForNavigationAction):
2016         (WebKit::InjectedBundleNavigationAction::create):
2017         (WebKit::InjectedBundleNavigationAction::InjectedBundleNavigationAction):
2018         * WebProcess/InjectedBundle/InjectedBundleNavigationAction.h: Added.
2019         (WebKit::InjectedBundleNavigationAction::navigationType):
2020         (WebKit::InjectedBundleNavigationAction::modifiers):
2021         (WebKit::InjectedBundleNavigationAction::mouseButton):
2022         (WebKit::InjectedBundleNavigationAction::hitTestResult):
2023         (WebKit::InjectedBundleNavigationAction::formElement):
2024         (WebKit::InjectedBundleNavigationAction::type):
2025         * WebProcess/InjectedBundle/InjectedBundlePagePolicyClient.cpp: Added.
2026         (WebKit::InjectedBundlePagePolicyClient::decidePolicyForNavigationAction):
2027         (WebKit::InjectedBundlePagePolicyClient::decidePolicyForNewWindowAction):
2028         (WebKit::InjectedBundlePagePolicyClient::decidePolicyForMIMEType):
2029         * WebProcess/InjectedBundle/InjectedBundlePagePolicyClient.h: Added.
2030         * WebProcess/WebCoreSupport/WebChromeClient.cpp:
2031         (WebKit::WebChromeClient::createWindow):
2032         * WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
2033         (WebKit::WebFrameLoaderClient::dispatchDecidePolicyForMIMEType):
2034         (WebKit::WebFrameLoaderClient::dispatchDecidePolicyForNewWindowAction):
2035         (WebKit::WebFrameLoaderClient::dispatchDecidePolicyForNavigationAction):
2036         * WebProcess/WebCoreSupport/WebFrameLoaderClient.h:
2037         * WebProcess/WebPage/WebPage.cpp:
2038         (WebKit::WebPage::initializeInjectedBundlePolicyClient):
2039         * WebProcess/WebPage/WebPage.h:
2040         (WebKit::WebPage::injectedBundlePolicyClient):
2041         Pipe the policy client through the bundle to allow setting user data.
2042
2043         * WebKit2.pro:
2044         * WebKit2.xcodeproj/project.pbxproj:
2045         * win/WebKit2.vcproj:
2046         * win/WebKit2Generated.make:
2047         Add new files.
2048
2049 2011-02-08  Anders Carlsson  <andersca@apple.com>
2050
2051         Reviewed by Sam Weinig.
2052
2053         Crash calling -setFrame:andScrollBy: in windowDidResize
2054         https://bugs.webkit.org/show_bug.cgi?id=54030
2055         <rdar://problem/8969760>
2056
2057         * Platform/mac/SharedMemoryMac.cpp:
2058         (WebKit::SharedMemory::create):
2059         Assert that size is not zero here; we never want to try to create shared memory with a zero size.
2060         
2061         * WebProcess/WebPage/DrawingAreaImpl.cpp:
2062         (WebKit::DrawingAreaImpl::setSize):
2063         Always invalidate the entire visible page when resizing.
2064
2065 2011-02-08  Adam Barth  <abarth@webkit.org>
2066
2067         Reviewed by Eric Seidel.
2068
2069         Remove orphan code from old parser
2070         https://bugs.webkit.org/show_bug.cgi?id=53984
2071
2072         * WebProcess/WebCoreSupport/WebChromeClient.cpp
2073         * WebProcess/WebCoreSupport/WebChromeClient.h
2074
2075 2011-02-08  Anders Carlsson  <andersca@apple.com>
2076
2077         Reviewed by Sam Weinig.
2078
2079         UI process crashes if web process crashes while web inspector is focused
2080         https://bugs.webkit.org/show_bug.cgi?id=53965
2081         <rdar://problem/8961633>
2082
2083         Make sure to close the web inspector web page proxy before calling platformClose, since 
2084         platformClose can cause the web page proxy to try to send messages (such as SetActive) 
2085         to the web process while it's in a bad state. 
2086
2087         The original fix, http://trac.webkit.org/changeset/77866, put the call to m_page->close() in
2088         WebInspectorProxy::didClose, which was wrong and lead to crashes. The right place to close the page
2089         is in WebInspectorProxy::invalidate.
2090
2091         * UIProcess/WebInspectorProxy.cpp:
2092         (WebKit::WebInspectorProxy::invalidate):
2093
2094 2011-02-08  Jessie Berlin  <jberlin@apple.com>
2095
2096         Reviewed by Adam Roben.
2097
2098         ASSERTION FAILURE: ASSERT_NOT_REACHED() in Connection::writeEventHandler() after the Web
2099         Process crashes.
2100         https://bugs.webkit.org/show_bug.cgi?id=54005
2101
2102         * Platform/CoreIPC/win/ConnectionWin.cpp:
2103         (CoreIPC::Connection::writeEventHandler):
2104         Handle ERROR_BROKEN_PIPE by calling connectionDidClose() and returning early.
2105
2106 2011-02-08  Adam Roben  <aroben@apple.com>
2107
2108         Handle WM_TIMER messages for stopped timers
2109
2110         Whenever we stop a timer, we call ::KillTimer to cancel any future firings of the timer. But
2111         ::KillTimer doesn't do anything about WM_TIMER messages that have already been posted to the
2112         message queue. We need to handle those, too.
2113
2114         Fixes <http://webkit.org/b/53999> Occasional assertion failures in
2115         RunLoop::TimerBase::timerFired
2116
2117         Reviewed by Darin Adler.
2118
2119         * Platform/win/RunLoopWin.cpp:
2120         (RunLoop::TimerBase::timerFired): Just bail if the timer has already been stopped.
2121
2122 2011-02-08  Adam Roben  <aroben@apple.com>
2123
2124         Don't mark a Connection as connected until open() is called on Windows
2125
2126         This matches Mac. Even though the Connection's pipe is connected before open() is called,
2127         the Connection itself isn't really connected to the pipe until then, and we won't actually
2128         read any data from before that point.
2129
2130         Fixes <http://webkit.org/b/53998> <rdar://problem/8971207> REGRESSION (r77874): Assertion
2131         failure on launch in Connection::setDidCloseOnConnectionWorkQueueCallback on Windows
2132
2133         Reviewed by Darin Adler.
2134
2135         * Platform/CoreIPC/win/ConnectionWin.cpp:
2136         (CoreIPC::Connection::platformInitialize): Moved code to set m_isConnected from here to
2137         open.
2138         (CoreIPC::Connection::platformInvalidate): Unset m_isConnected, to match Mac. (This isn't
2139         part of the bug fix, but seemed worthwhile.)
2140         (CoreIPC::Connection::open): Set m_isConnected now that we're going to listen on the pipe.
2141
2142 2011-02-08  Sheriff Bot  <webkit.review.bot@gmail.com>
2143
2144         Unreviewed, rolling out r77866.
2145         http://trac.webkit.org/changeset/77866
2146         https://bugs.webkit.org/show_bug.cgi?id=53981
2147
2148         caused all WebKit2 inspector tests to crash (Requested by
2149         othermaciej on #webkit).
2150
2151         * UIProcess/WebInspectorProxy.cpp:
2152         (WebKit::WebInspectorProxy::didClose):
2153
2154 2011-02-07  Maciej Stachowiak  <mjs@apple.com>
2155
2156         Reviewed by Dan Bernstein.
2157
2158         Add resource load client for injected bundle and move willSendRequest there
2159         https://bugs.webkit.org/show_bug.cgi?id=53972
2160
2161         * GNUmakefile.am:
2162         * WebKit2.pro:
2163         * WebKit2.xcodeproj/project.pbxproj:
2164         * WebProcess/InjectedBundle/API/c/WKBundlePage.cpp:
2165         (WKBundlePageSetPageLoaderClient):
2166         (WKBundlePageSetResourceLoadClient):
2167         * WebProcess/InjectedBundle/API/c/WKBundlePage.h:
2168         * WebProcess/InjectedBundle/InjectedBundlePageLoaderClient.cpp:
2169         * WebProcess/InjectedBundle/InjectedBundlePageLoaderClient.h:
2170         * WebProcess/InjectedBundle/InjectedBundlePageResourceLoadClient.cpp: Added.
2171         (WebKit::InjectedBundlePageResourceLoadClient::didInitiateLoadForResource):
2172         (WebKit::InjectedBundlePageResourceLoadClient::willSendRequestForFrame):
2173         (WebKit::InjectedBundlePageResourceLoadClient::didReceiveResponseForResource):
2174         (WebKit::InjectedBundlePageResourceLoadClient::didReceiveContentLengthForResource):
2175         (WebKit::InjectedBundlePageResourceLoadClient::didFinishLoadForResource):
2176         (WebKit::InjectedBundlePageResourceLoadClient::didFailLoadForResource):
2177         * WebProcess/InjectedBundle/InjectedBundlePageResourceLoadClient.h: Added.
2178         * WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
2179         (WebKit::WebFrameLoaderClient::assignIdentifierToInitialRequest):
2180         (WebKit::WebFrameLoaderClient::dispatchWillSendRequest):
2181         (WebKit::WebFrameLoaderClient::dispatchDidReceiveResponse):
2182         (WebKit::WebFrameLoaderClient::dispatchDidReceiveContentLength):
2183         (WebKit::WebFrameLoaderClient::dispatchDidFinishLoading):
2184         (WebKit::WebFrameLoaderClient::dispatchDidFailLoading):
2185         * WebProcess/WebPage/WebPage.cpp:
2186         (WebKit::WebPage::initializeInjectedBundleResourceLoadClient):
2187         * WebProcess/WebPage/WebPage.h:
2188         (WebKit::WebPage::injectedBundleResourceLoadClient):
2189         * win/WebKit2.vcproj:
2190
2191 2011-02-07  Mark Rowe  <mrowe@apple.com>
2192
2193         Fix the 32-bit build.
2194
2195         * UIProcess/cf/WebBackForwardListCF.cpp:
2196         (WebKit::WebBackForwardList::restoreFromCFDictionaryRepresentation): Add some casts
2197         to prevent warnings about mixing signed and unsigned comparisons.
2198
2199 2011-02-07  Qi Zhang  <qi.2.zhang@nokia.com>
2200
2201         Reviewed by Andreas Kling.
2202
2203         [Qt] enum QWebPage::WebAction doesn't have value QWebPage::CopyImageUrl
2204         https://bugs.webkit.org/show_bug.cgi?id=52974
2205
2206         Add ContextMenuItemTagCopyImageUrlToClipboard into standard action but Qt platform specific.
2207
2208         * WebProcess/WebCoreSupport/WebPlatformStrategies.cpp:
2209         (WebKit::WebPlatformStrategies::contextMenuItemTagCopyImageUrlToClipboard):
2210         * WebProcess/WebCoreSupport/WebPlatformStrategies.h:
2211
2212 2011-02-07  Enrica Casucci  <enrica@apple.com>
2213
2214         Reviewed by Sam Weinig.
2215
2216         Fixing a build break on Mac caused by http://trac.webkit.org/changeset/77874
2217         
2218         Removed unused static function.
2219         
2220         * WebProcess/WebCoreSupport/mac/WebDragClientMac.mm:
2221
2222 2011-02-07  Anders Carlsson  <andersca@apple.com>
2223
2224         Reviewed by Sam Weinig.
2225
2226         <rdar://problem/8969888> 
2227         The WebProcess should set LSFileQuarantineEnabled to true
2228
2229         * WebProcess/Info.plist:
2230
2231 2011-02-07  Anders Carlsson  <andersca@apple.com>
2232
2233         Reviewed by Sam Weinig.
2234
2235         Crash in web process after the connection had been closed
2236         https://bugs.webkit.org/show_bug.cgi?id=51115
2237         <rdar://problem/8964255>
2238
2239         Remove didCloseOnConnectionWorkQueue from Connection::Client and add
2240         Connection::setDidCloseOnConnectionWorkQueueCallback which takes a static
2241         function, eliminating the race condition in connectionDidClose where m_client could be
2242         nulled out in the client thread right before we try to dereference it.
2243
2244         * Platform/CoreIPC/Connection.cpp:
2245         (CoreIPC::Connection::Connection):
2246         Initialize m_didCloseOnConnectionWorkQueueCallback.
2247
2248         (CoreIPC::Connection::setDidCloseOnConnectionWorkQueueCallback):
2249         Update m_didCloseOnConnectionWorkQueueCallback.
2250
2251         (CoreIPC::Connection::connectionDidClose):
2252         Call m_didCloseOnConnectionWorkQueueCallback.
2253
2254         * Platform/WorkQueue.h:
2255         Make WorkQueue noncopyable.
2256
2257         * PluginProcess/PluginProcess.cpp:
2258         (WebKit::PluginProcess::initializeConnection):
2259         Call setDidCloseOnConnectionWorkQueueCallback.
2260
2261         * Shared/ChildProcess.cpp:
2262         (WebKit::ChildProcess::didCloseOnConnectionWorkQueue):
2263         * Shared/ChildProcess.h:
2264         didCloseOnConnectionWorkQueue is now a static member function.
2265
2266         * WebProcess/WebProcess.cpp:
2267         (WebKit::WebProcess::initialize):
2268         Call setDidCloseOnConnectionWorkQueueCallback.
2269
2270 2011-02-07  Enrica Casucci  <enrica@apple.com>
2271
2272         Reviewed Adam Roben and Darin Adler.
2273
2274         WebKit2: drag and drop support on Windows.
2275         https://bugs.webkit.org/show_bug.cgi?id=52775
2276         <rdar://problem/8514409>
2277         
2278         This patch contains the remaining work to support
2279         a WebKit window as drag source on Windows.
2280         I've added the code to generate the image for dragging a link as
2281         well as the steps necessary to package the HBITMAP into a SharedMemory
2282         object and send it over to the UI process where DoDragDrop is performed.
2283
2284         * UIProcess/WebPageProxy.cpp:
2285         (WebKit::WebPageProxy::setDragImage):
2286         (WebKit::WebPageProxy::startDragDrop):
2287         * UIProcess/WebPageProxy.h:
2288         * UIProcess/WebPageProxy.messages.in:
2289         * WebProcess/WebCoreSupport/WebDragClient.cpp:
2290         (WebKit::WebDragClient::startDrag): Made startDrag for
2291         platforms other than Windows and Mac.
2292         * WebProcess/WebCoreSupport/WebDragClient.h:
2293         * WebProcess/WebCoreSupport/mac/WebDragClientMac.mm:
2294         (WebKit::WebDragClient::startDrag):
2295         * WebProcess/WebCoreSupport/win/WebDragClientWin.cpp: Added.
2296         (WebKit::draggingSourceOperationMaskToDragCursors):
2297         (WebKit::WebDragClient::startDrag):
2298         * WebProcess/WebCoreSupport/win/WebDragSource.cpp: Added.
2299         This object implements the IDropSource interface.
2300         (WebDragSource::createInstance):
2301         (WebDragSource::WebDragSource):
2302         (WebDragSource::QueryInterface):
2303         (WebDragSource::AddRef):
2304         (WebDragSource::Release):
2305         (WebDragSource::QueryContinueDrag):
2306         (WebDragSource::GiveFeedback):
2307         * WebProcess/WebCoreSupport/win/WebDragSource.h: Added.
2308         * win/WebKit2.vcproj:
2309
2310 2011-02-07  Anders Carlsson  <andersca@apple.com>
2311
2312         Reviewed by Sam Weinig.
2313
2314         UI process crashes if web process crashes while web inspector is focused
2315         https://bugs.webkit.org/show_bug.cgi?id=53965
2316         <rdar://problem/8961633>
2317
2318         Make sure to close the web inspector web page proxy before calling platformClose, since
2319         platformClose can cause the web page proxy to try to send messages (such as SetActive)
2320         to the web process while it's in a bad state.
2321
2322         * UIProcess/WebInspectorProxy.cpp:
2323         (WebKit::WebInspectorProxy::didClose):
2324
2325 2011-02-07  Anders Carlsson  <andersca@apple.com>
2326
2327         Reviewed by Darin Adler.
2328
2329         Find bouncy is missing content on pages with framesets
2330         https://bugs.webkit.org/show_bug.cgi?id=53958
2331         <rdar://problem/8904447>
2332
2333         Fix paint rect computation; FrameView::paint expects the paint rect to be in the
2334         parent widget's coordinate system.
2335
2336         * WebProcess/WebPage/FindController.cpp:
2337         (WebKit::FindController::updateFindIndicator):
2338
2339 2011-02-07  Brady Eidson  <beidson@apple.com>
2340
2341         Reviewed by Anders Carlsson.
2342
2343         <rdar://problem/8960434> and https://bugs.webkit.org/show_bug.cgi?id=53957
2344         Crash after incorrectly restoring bogus session state.
2345
2346         In some cases we're writing an invalid session state for a back/forward list where the current entry is 0
2347         but the number of entries is also 0.
2348         In such cases the current entry should be "NoCurrentEntryIndex."
2349
2350         When we later read this state in, we set ourselves up to crash later.
2351
2352         Amusingly an ASSERT caught this, but we should've rejected it before the ASSERT fired.
2353
2354         * UIProcess/cf/WebBackForwardListCF.cpp:
2355         (WebKit::WebBackForwardList::restoreFromCFDictionaryRepresentation): Fail the restore if the "current index past the end
2356           of the list" case occurs, and speculatively bail out of the case where we have no current index but do have a list.
2357           Also remove the unhelpful ASSERT.
2358
2359 2011-02-07  Sam Weinig  <sam@webkit.org>
2360
2361         Reviewed by Anders Carlsson.
2362
2363         Add bundle API to get the background color of a frame
2364         <rdar://problem/8962670>
2365         https://bugs.webkit.org/show_bug.cgi?id=53952
2366
2367         * WebProcess/InjectedBundle/API/c/WKBundleFrame.cpp:
2368         (WKBundleFrameGetBodyBackgroundColor):
2369         * WebProcess/InjectedBundle/API/c/WKBundleFrame.h:
2370         Add API function.
2371
2372         * WebProcess/WebPage/WebFrame.cpp:
2373         (WebKit::WebFrame::getDocumentBackgroundColor):
2374         * WebProcess/WebPage/WebFrame.h:
2375         Call down into the document to get either the body's, or if there is no body,
2376         the root element's, background color.
2377
2378 2011-02-07  Sam Weinig  <sam@webkit.org>
2379
2380         Fix typo. vectical -> vertical.
2381
2382         * UIProcess/WebPageProxy.cpp:
2383         (WebKit::WebPageProxy::didChangeScrollbarsForMainFrame):
2384
2385 2011-02-07  Sam Weinig  <sam@webkit.org>
2386
2387         Reviewed by Anders Carlsson.
2388
2389         Inform the UIProcess when main frame scrollbars change
2390         <rdar://problem/8967496>
2391         https://bugs.webkit.org/show_bug.cgi?id=53941
2392
2393         * UIProcess/API/C/WKPage.cpp:
2394         (WKPageHasHorizontalScrollbar):
2395         (WKPageHasVerticalScrollbar):
2396         * UIProcess/API/C/WKPage.h:
2397         Add API to query whether the main frame has scrollbars.
2398
2399         * UIProcess/WebPageProxy.cpp:
2400         (WebKit::WebPageProxy::WebPageProxy):
2401         (WebKit::WebPageProxy::close):
2402         (WebKit::WebPageProxy::processDidCrash):
2403         (WebKit::WebPageProxy::didChangeScrollbarsForMainFrame):
2404         * UIProcess/WebPageProxy.h:
2405         (WebKit::WebPageProxy::hasHorizontalScrollbar):
2406         (WebKit::WebPageProxy::hasVerticalScrollbar):
2407         Store/update main frame scrollbar state.
2408
2409         * UIProcess/WebPageProxy.messages.in:
2410         * WebProcess/WebCoreSupport/WebChromeClient.cpp:
2411         (WebKit::WebChromeClient::contentsSizeChanged):
2412         * WebProcess/WebCoreSupport/WebChromeClient.h:
2413         (WebKit::WebChromeClient::WebChromeClient):
2414         Post message when main frame scrollbar state changes.
2415
2416 2011-02-07  Anders Carlsson  <andersca@apple.com>
2417
2418         Reviewed by Sam Weinig.
2419
2420         Some content is not covered by Find-on-page overlay
2421         https://bugs.webkit.org/show_bug.cgi?id=53937
2422         <rdar://problem/8711353>
2423
2424         * WebProcess/WebPage/DrawingAreaImpl.cpp:
2425         (WebKit::DrawingAreaImpl::didInstallPageOverlay):
2426         Call LayerTreeHost::didInstallPageOverlay.
2427
2428         (WebKit::DrawingAreaImpl::didUninstallPageOverlay):
2429         Call LayerTreeHost::didUninstallPageOverlay.
2430
2431         (WebKit::DrawingAreaImpl::setPageOverlayNeedsDisplay):
2432         Call LayerTreeHost::setPageOverlayNeedsDisplay.
2433
2434         * WebProcess/WebPage/FindController.cpp:
2435         (WebKit::FindController::drawRect):
2436         Remove a bogus assertion.
2437
2438         * WebProcess/WebPage/LayerTreeHost.h:
2439         Add new pure virtual member functions.
2440
2441         * WebProcess/WebPage/PageOverlay.cpp:
2442         (WebKit::PageOverlay::setNeedsDisplay):
2443         Call DrawingArea::setPageOverlayNeedsDisplay.
2444
2445         * WebProcess/WebPage/WebPage.cpp:
2446         (WebKit::WebPage::installPageOverlay):
2447         Make sure to call PageOverlay::setNeedsDisplay after the page overlay has been installed.
2448     
2449         * WebProcess/WebPage/mac/LayerTreeHostMac.mm:
2450         (WebKit::LayerTreeHostMac::LayerTreeHostMac):
2451         Create the page overlay layer if needed.
2452
2453         (WebKit::LayerTreeHostMac::setNonCompositedContentsNeedDisplay):
2454         Invalidate the page overlay layer as well.
2455
2456         (WebKit::LayerTreeHostMac::sizeDidChange):
2457         Resize the page overlay layer.
2458
2459         (WebKit::LayerTreeHostMac::didInstallPageOverlay):
2460         Create the page overlay layer.
2461
2462         (WebKit::LayerTreeHostMac::didUninstallPageOverlay):
2463         Destroy the page overlay layer.
2464
2465         (WebKit::LayerTreeHostMac::setPageOverlayNeedsDisplay):
2466         Call setNeedsDisplay on the page overlay layer.
2467
2468         (WebKit::LayerTreeHostMac::paintContents):
2469         Handle painting the page overlay layer.
2470
2471         (WebKit::LayerTreeHostMac::flushPendingLayerChanges):
2472         Flush the page overlay layer changes as well.
2473
2474         (WebKit::LayerTreeHostMac::createPageOverlayLayer):
2475         Create a layer and add it as a sublayer of the root layer.
2476
2477         (WebKit::LayerTreeHostMac::destroyPageOverlayLayer):
2478         Destroy the page overlay layer.
2479
2480 2011-02-06  Adam Roben  <aroben@apple.com>
2481
2482         Make it possible to use DrawingAreaProxyImpl on Windows
2483
2484         It can be optionally turned on by setting the WEBKIT2_USE_NEW_DRAWING_AREA environment
2485         variable. Turning it on by default is covered by <http://webkit.org/b/53805>.
2486
2487         Fixes <http://webkit.org/b/53879>.
2488
2489         Reviewed by Anders Carlsson.
2490
2491         * UIProcess/BackingStore.h: Add an m_bitmap member on Windows.
2492
2493         * UIProcess/win/BackingStoreWin.cpp:
2494         (WebKit::BitmapDC::operator HDC):
2495         (WebKit::BitmapDC::BitmapDC):
2496         (WebKit::BitmapDC::~BitmapDC):
2497         Added this helper class, which uses RAII to select a bitmap into a new memory DC.
2498         (WebKit::BackingStore::paint): Wrap our bitmap in a BitmapDC and use ::BitBlt to copy the
2499         specified rect into the destination DC.
2500         (WebKit::createBitmap): New helper function, just creates a DIB section with the specified
2501         size.
2502         (WebKit::BackingStore::incorporateUpdate): Ported from BackingStoreMac.mm. It seems like
2503         this code could be shared at some point.
2504         (WebKit::BackingStore::scroll): Wrap our bitmap in a BitmapDC and use ::ScrollDC to scroll
2505         the specified rect.
2506
2507         * UIProcess/win/WebView.cpp:
2508         (WebKit::useNewDrawingArea): Added. Returns true if the WEBKIT2_USE_NEW_DRAWING_AREA
2509         environment variable is set.
2510         (WebKit::drawPageBackground): New helper function. Code came from onPaintEvent.
2511         (WebKit::WebView::onPaintEvent): Ported from -[WKView drawRect:].
2512         (WebKit::WebView::createDrawingAreaProxy): Create a DrawingAreaProxyImpl if we're using the
2513         new drawing area.
2514
2515         (WebKit::WebView::enterAcceleratedCompositingMode):
2516         (WebKit::WebView::exitAcceleratedCompositingMode):
2517         (WebKit::WebView::pageDidEnterAcceleratedCompositing):
2518         (WebKit::WebView::pageDidLeaveAcceleratedCompositing):
2519         Added some assertions to make sure these are only called when expected. We don't expect
2520         enter/exitAcceleratedCompositingMode to be called at all right now, because accelerated
2521         compositing is turned off in WebKit2 on Windows.
2522
2523         (WebKit::WebView::switchToDrawingAreaTypeIfNecessary): Ditto, and added a case for the
2524         DrawingAreaInfo::Impl constant.
2525
2526 2011-02-07  Adam Roben  <aroben@apple.com>
2527
2528         Start compiling DrawingArea[Proxy]Impl and dependencies on Windows
2529
2530         Fixes <http://webkit.org/b/53875> WebKit2 on Windows should build DrawingArea[Proxy]Impl
2531
2532         Reviewed by Sam Weinig and Darin Adler.
2533
2534         * Platform/Region.cpp:
2535         (WebKit::Region::Shape::shapeOperation): Initialize variable to avoid a bogus "potentially
2536         uninitialized variable" warning.
2537
2538         * UIProcess/BackingStore.cpp: Removed #error for non-Mac platforms.
2539
2540         * UIProcess/BackingStore.h: Added a PlatformGraphicsContext typedef for Windows.
2541
2542         * UIProcess/DrawingAreaProxy.h:
2543         * UIProcess/DrawingAreaProxyImpl.cpp:
2544         * UIProcess/WebPageProxy.cpp:
2545         (WebKit::WebPageProxy::didReceiveMessage):
2546         Allow Windows to compile the new drawing area code.
2547
2548         * WebProcess/WebPage/DrawingArea.cpp:
2549         (WebKit::DrawingArea::create): Allow creating a DrawingAreaImpl on Windows, too.
2550
2551         * WebProcess/WebPage/DrawingArea.h:
2552         * WebProcess/WebPage/DrawingAreaImpl.cpp:
2553         * WebProcess/WebPage/LayerTreeHost.cpp:
2554         * WebProcess/WebPage/WebPage.cpp:
2555         (WebKit::WebPage::didReceiveMessage):
2556         Allow Windows to compile the new drawing area code.
2557
2558         * Shared/win/LayerTreeContextWin.cpp: Added.
2559         * UIProcess/win/BackingStoreWin.cpp: Added.
2560         Stubbed out these files.
2561
2562         * win/WebKit2.vcproj: Added new files.
2563
2564 2011-02-07  Anders Carlsson  <andersca@apple.com>
2565
2566         Reviewed by Dan Bernstein.
2567
2568         Rename some drawing area related member functions
2569         https://bugs.webkit.org/show_bug.cgi?id=53935
2570
2571         * WebProcess/WebPage/DrawingArea.h:
2572         (WebKit::DrawingArea::setPageOverlayNeedsDisplay):
2573         * WebProcess/WebPage/DrawingAreaImpl.cpp:
2574         (WebKit::DrawingAreaImpl::setNeedsDisplay):
2575         (WebKit::DrawingAreaImpl::setPageOverlayNeedsDisplay):
2576         * WebProcess/WebPage/DrawingAreaImpl.h:
2577         * WebProcess/WebPage/LayerTreeHost.h:
2578         * WebProcess/WebPage/mac/LayerTreeHostMac.h:
2579         * WebProcess/WebPage/mac/LayerTreeHostMac.mm:
2580         (WebKit::LayerTreeHostMac::setNonCompositedContentsNeedDisplay):
2581         (WebKit::LayerTreeHostMac::scrollNonCompositedContents):
2582
2583 2011-02-07  Adam Roben  <aroben@apple.com>
2584
2585         Use the right calling convention when calling WebKitMain
2586
2587         Fixes <http://webkit.org/b/53923> REGRESSION (r77678): Crash on quit in web process in
2588         wWinMain
2589
2590         Reviewed by Steve Falkenburg.
2591
2592         * win/MainWin.cpp:
2593         (wWinMain): Use __cdecl instead of WINAPI (__stdcall) when calling WebKitMain, since that is
2594         how that function is declared.
2595
2596 2011-02-07  Anders Carlsson  <andersca@apple.com>
2597
2598         Reviewed by Dan Bernstein.
2599
2600         The drawing area should be in charge of drawing the page overlay
2601         https://bugs.webkit.org/show_bug.cgi?id=53927
2602
2603         * WebProcess/WebPage/DrawingArea.h:
2604         (WebKit::DrawingArea::didInstallPageOverlay):
2605         (WebKit::DrawingArea::didUninstallPageOverlay):
2606         (WebKit::DrawingArea::setOverlayNeedsDisplay):
2607         Add empty stubs.
2608
2609         * WebProcess/WebPage/DrawingAreaImpl.cpp:
2610         (WebKit::DrawingAreaImpl::didInstallPageOverlay):
2611         Add empty function. This will eventually ask the layer tree host to
2612         create a GraphicsLayer for the page overlay.
2613
2614         (WebKit::DrawingAreaImpl::didUninstallPageOverlay):
2615         Tell the page that it needs to be repainted.
2616
2617         (WebKit::DrawingAreaImpl::setOverlayNeedsDisplay):
2618         Just call setNeedsDisplay for now.
2619
2620         (WebKit::DrawingAreaImpl::display):
2621         Paint the page overlay too.
2622
2623         * WebProcess/WebPage/DrawingAreaImpl.h:
2624         * WebProcess/WebPage/WebPage.cpp:
2625         (WebKit::WebPage::drawRect):
2626         Only call drawPageOverlay if we have an old drawing area.
2627
2628         (WebKit::WebPage::drawPageOverlay):
2629         Draw the page overlay. Code moved here from WebPage::drawRect.
2630
2631         (WebKit::WebPage::installPageOverlay):
2632         Call DrawingArea::installPageOverlay.
2633
2634         (WebKit::WebPage::uninstallPageOverlay):
2635         Call DrawingArea::uninstallPageOverlay.
2636
2637         * WebProcess/WebPage/WebPage.h:
2638         (WebKit::WebPage::hasPageOverlay):
2639         Add getter.
2640
2641 2011-02-07  Anders Carlsson  <andersca@apple.com>
2642
2643         Reviewed by Sam Weinig.
2644
2645         Add WebPage::bounds and use it
2646         https://bugs.webkit.org/show_bug.cgi?id=53926
2647
2648         * WebProcess/WebPage/ChunkedUpdateDrawingArea.cpp:
2649         (WebKit::ChunkedUpdateDrawingArea::resumePainting):
2650         * WebProcess/WebPage/DrawingAreaImpl.cpp:
2651         (WebKit::DrawingAreaImpl::resumePainting):
2652         (WebKit::DrawingAreaImpl::exitAcceleratedCompositingMode):
2653         * WebProcess/WebPage/WebPage.h:
2654         (WebKit::WebPage::bounds):
2655
2656 2011-02-07  Anders Carlsson  <andersca@apple.com>
2657
2658         Reviewed by Maciej Stachowiak.
2659
2660         Don't exclude overlay scrollers from the page overlay bounds
2661         https://bugs.webkit.org/show_bug.cgi?id=53924
2662
2663         Don't subtract the scrollbars from the page overlay bounds if
2664         overlay scrollers are enabled.
2665
2666         * WebProcess/WebPage/PageOverlay.cpp:
2667         (WebKit::PageOverlay::bounds):
2668
2669 2011-02-07  Adam Roben  <aroben@apple.com>
2670
2671         Windows build fix after r77794
2672
2673         * win/WebKit2.def: Export WebCore symbols used by WebKitTestRunner.
2674
2675 2011-02-07  Maciej Stachowiak  <mjs@apple.com>
2676
2677         Reviewed by Antti Koivisto.
2678
2679         Add WKURLRequestCopyURL API (needed for tests and also generally useful)
2680         https://bugs.webkit.org/show_bug.cgi?id=53909
2681
2682         * Shared/API/c/WKURLRequest.cpp:
2683         (WKURLRequestCopyURL):
2684         * Shared/API/c/WKURLRequest.h:
2685         * Shared/WebURLRequest.h:
2686         (WebKit::WebURLRequest::url):
2687
2688 2011-02-06  Ryosuke Niwa  <rniwa@webkit.org>
2689
2690         Unreviewed; speculative Qt build fix.
2691
2692         * WebKit2.pro:
2693
2694 2011-02-06  Ryosuke Niwa  <rniwa@webkit.org>
2695
2696         Reviewed by Darin Adler.
2697
2698         OwnArraryPtr.h uses deleteOwnedPtr but doesn’t include OwnPtrCommon.h
2699         https://bugs.webkit.org/show_bug.cgi?id=52867
2700
2701         * Shared/Plugins/Netscape/win/NetscapePluginModuleWin.cpp:
2702         (WebKit::NetscapePluginModule::getPluginInfo): Calls adoptArrayPtr.
2703
2704 2011-02-06  Benjamin Poulain  <ikipou@gmail.com>
2705
2706         Reviewed by Andreas Kling.
2707
2708         [Qt] WebKit does not build on Mac with WebKit 2
2709         https://bugs.webkit.org/show_bug.cgi?id=53380
2710
2711         * Platform/CoreIPC/qt/ConnectionQt.cpp: Use fcntl() to set close on exec so
2712         we do not rely on recent kernel.
2713         (CoreIPC::Connection::readyReadHandler):
2714         * Platform/qt/SharedMemoryQt.cpp: ditto
2715         (WebKit::SharedMemory::create):
2716         (WebKit::SharedMemory::createHandle):
2717         * UIProcess/Launcher/qt/ProcessLauncherQt.cpp: Guard prctl() since it is
2718         a Linux specific function.
2719         (WebKit::QtWebProcess::setupChildProcess):
2720         * UIProcess/DrawingAreaProxy.h: Differentiate between building on Mac
2721         and the Mac port.
2722         * UIProcess/DrawingAreaProxyImpl.cpp: ditto
2723         * UIProcess/WebPageProxy.cpp: ditto
2724         (WebKit::WebPageProxy::didReceiveMessage):
2725         * WebProcess/WebPage/DrawingArea.cpp: ditto
2726         (WebKit::DrawingArea::create):
2727         * WebProcess/WebPage/DrawingArea.h:
2728         * WebProcess/WebPage/DrawingAreaImpl.cpp: ditto
2729         * WebProcess/WebPage/WebPage.cpp: ditto
2730         (WebKit::WebPage::didReceiveMessage):
2731
2732 2011-02-05  Maciej Stachowiak  <mjs@apple.com>
2733
2734         Reviewed by Dan Bernstein.
2735
2736         REGRESSION: New drawing area is causing some WebProcess crashes in layout tests
2737         https://bugs.webkit.org/show_bug.cgi?id=53865
2738         <rdar://problem/8963148>
2739         
2740         * WebProcess/WebPage/DrawingAreaImpl.cpp:
2741         (WebKit::DrawingAreaImpl::enterAcceleratedCompositingMode): Handle the case
2742         where this is called repeatedly without exiting accelerated composting mode
2743         first.
2744         (WebKit::DrawingAreaImpl::exitAcceleratedCompositingMode): Handle the case
2745         of being called more than once.
2746
2747 2011-02-05  Anders Carlsson  <andersca@apple.com>
2748
2749         Reviewed by Darin Adler.
2750
2751         Need a way to resize and scroll the page at the same time
2752         https://bugs.webkit.org/show_bug.cgi?id=53814
2753         <rdar://problem/8498008>
2754
2755         Add -[WKView setFrame:andScrollBy:].
2756
2757         * UIProcess/API/mac/WKView.h:
2758         * UIProcess/API/mac/WKView.mm:
2759         (-[WKView setFrame:andScrollBy:]):
2760         Stash away the scroll offset and call setFrame:.
2761
2762         (-[WKView _switchToDrawingAreaTypeIfNecessary:DrawingAreaInfo::]):
2763         (-[WKView _setDrawingAreaSize:]):
2764         * UIProcess/API/qt/qwkpage.cpp:
2765         (QWKPage::setViewportSize):
2766         DrawingAreaProxy::setSize now takes a scroll offset.
2767
2768         * UIProcess/DrawingAreaProxy.cpp:
2769         (WebKit::DrawingAreaProxy::setSize):
2770         This now takes a scroll offset and stores it in m_scrollOffset.
2771
2772         * UIProcess/DrawingAreaProxy.h:
2773         * UIProcess/DrawingAreaProxyImpl.cpp:
2774         (WebKit::DrawingAreaProxyImpl::sendSetSize):
2775         Send along the scroll offset and set it back to zero.
2776
2777         * UIProcess/LayerBackedDrawingAreaProxy.cpp:
2778         (WebKit::LayerBackedDrawingAreaProxy::didSetSize):
2779         * UIProcess/TiledDrawingAreaProxy.cpp:
2780         (WebKit::TiledDrawingAreaProxy::didSetSize):
2781         * UIProcess/win/WebView.cpp:
2782         (WebKit::WebView::onSizeEvent):
2783         (WebKit::WebView::switchToDrawingAreaTypeIfNecessary):
2784         DrawingAreaProxy::setSize now takes a scroll offset.
2785         
2786         * WebProcess/WebPage/DrawingArea.h:
2787         (WebKit::DrawingArea::setSize):
2788         Add a scrollOffset parameter.
2789
2790         * WebProcess/WebPage/DrawingArea.messages.in:
2791         Add a scroll offset parameter to the SetSize message.
2792
2793         * WebProcess/WebPage/DrawingAreaImpl.cpp:
2794         (WebKit::DrawingAreaImpl::setSize):
2795         Call WebPage::scrollMainFrameIfNotAtMaxScrollPosition.
2796
2797         * WebProcess/WebPage/DrawingAreaImpl.h:
2798         * WebProcess/WebPage/WebPage.cpp:
2799         (WebKit::WebPage::scrollMainFrameIfNotAtMaxScrollPosition):
2800         Compute a scroll offset and call setScrollPosition on the main frame view.
2801
2802 2011-02-04  Brian Weinstein  <bweinstein@apple.com>
2803
2804         Reviewed by Maciej Stachowiak.
2805
2806         WebKit2: Crash when InjectedBundlePageLoaderClient::willSendRequestForFrame returns a null WKURLRequestRef
2807         https://bugs.webkit.org/show_bug.cgi?id=53829
2808         
2809         Store the result of m_client.willSendRequestForFrame in a RefPtr, and null check it before
2810         calling resourceRequest() on it.
2811
2812         * WebProcess/InjectedBundle/InjectedBundlePageLoaderClient.cpp:
2813         (WebKit::InjectedBundlePageLoaderClient::willSendRequestForFrame):
2814
2815 2011-02-04  Anders Carlsson  <andersca@apple.com>
2816
2817         Fix build.
2818
2819         * WebProcess/mac/WebProcessMac.mm:
2820
2821 2011-02-04  Anders Carlsson  <andersca@apple.com>
2822
2823         Reviewed by Mark Rowe.
2824
2825         Link opened in background tab fails to paint when activated if it completes loading before tab is selected
2826         https://bugs.webkit.org/show_bug.cgi?id=53827
2827         <rdar://problem/8962355>
2828
2829         * WebProcess/WebPage/DrawingAreaImpl.cpp:
2830         (WebKit::DrawingAreaImpl::resumePainting):
2831         Invalidate the entire page.
2832
2833 2011-02-04  Anders Carlsson  <andersca@apple.com>
2834
2835         Reviewed by Sam Weinig.
2836
2837         Fix <rdar://problem/8961227> WebKit2 does not work with symlinked home directories.
2838
2839         * WebProcess/mac/WebProcessMac.mm:
2840         (WebKit::WebProcess::platformSetCacheModel):
2841         Don't adopt an autoreleased pointer, this would lead to a crash.
2842
2843         (WebKit::appendSandboxParameterPath):
2844         (WebKit::appendSandboxParameterConfPath):
2845         (WebKit::initializeSandbox):
2846         Clean up the sandbox parameter code and make sure that realpath is called for all parameters.
2847
2848 2011-02-04  Sam Weinig  <sam@webkit.org>
2849
2850         Reviewed by Mark Rowe.
2851
2852         Sandbox violations when visiting a site using HTTP authentication
2853         <rdar://problem/8951079> 
2854
2855         * WebProcess/com.apple.WebProcess.sb:
2856
2857 2011-02-04  Alexey Proskuryakov  <ap@apple.com>
2858
2859         Reviewed by Darin Adler.
2860
2861         https://bugs.webkit.org/show_bug.cgi?id=53823
2862         Print layout sometimes seen on screen
2863
2864         <rdar://problem/8948742> REGRESSION (WebKit2) - When I print a page, I visually see it re-layout
2865         <rdar://problem/8899389> REGRESSION(WebKit2): Wrong content can appear when print dialog is up
2866
2867         * UIProcess/API/mac/PageClientImpl.mm: (WebKit::PageClientImpl::setAutodisplay): Removed a
2868         branch that didn't do anything useful.
2869
2870         * UIProcess/API/mac/WKPrintingView.h:
2871         * UIProcess/API/mac/WKPrintingView.mm:
2872         (-[WKPrintingView _suspendAutodisplay]):
2873         (-[WKPrintingView _delayedResumeAutodisplayTimerFired]):
2874         (-[WKPrintingView _delayedResumeAutodisplay]):
2875         (-[WKPrintingView knowsPageRange:]):
2876         (-[WKPrintingView beginDocument]):
2877         (-[WKPrintingView endDocument]):
2878         When page setup changes, or when going from print preview to actual printing, AppKit calls
2879         -endDocument just to begin it again. Delay resuming autodisplay until the next run loop
2880         iteration.
2881
2882         * WebProcess/WebCoreSupport/WebChromeClient.cpp:
2883         (WebKit::WebChromeClient::invalidateContentsAndWindow):
2884         (WebKit::WebChromeClient::invalidateContentsForSlowScroll):
2885         Tightened it up from other side - we should never send pixels to UI process while in
2886         printing mode. This is not 100% reliable, because relayout doesn't happen immediately,
2887         and we can still have print layout in screen mode - but it helps.
2888
2889 2011-02-04  Sam Weinig  <sam@webkit.org>
2890
2891         Reviewed by Mark Rowe.
2892
2893         Fix for <rdar://problem/8961580>.
2894         Work around for <rdar://problem/8957845>.
2895
2896         * WebProcess/com.apple.WebProcess.sb:
2897
2898 2011-02-04  Darin Adler  <darin@apple.com>
2899
2900         Reviewed by Dan Bernstein.
2901
2902         WebKit2 doesn't hide mouse pointer on keypress
2903         https://bugs.webkit.org/show_bug.cgi?id=53821
2904         rdar://problem/8630895
2905
2906         * UIProcess/PageClient.h: Renamed didNotHandleKeyEvent to
2907         doneWithKeyEvent and added a bool wasEventHandled argument.
2908         * UIProcess/WebPageProxy.cpp:
2909         (WebKit::WebPageProxy::didReceiveEvent): Changed code to call
2910         doneWithKeyEvent and call even if event was handled.
2911
2912         * UIProcess/API/mac/PageClientImpl.h: Updated for above change.
2913         * UIProcess/API/mac/PageClientImpl.mm:
2914         (WebKit::PageClientImpl::doneWithKeyEvent): Ditto. But also
2915         call [NSCursor setHiddenUntilMouseMoves:YES] when a key down
2916         event was handled. This matches what -[WebHTMLView keyDown:] does.
2917         * UIProcess/API/qt/qwkpage.cpp:
2918         (QWKPagePrivate::doneWithKeyEvent): Ditto.
2919         * UIProcess/API/qt/qwkpage_p.h: Ditto.
2920         * UIProcess/win/WebView.cpp:
2921         (WebKit::WebView::doneWithKeyEvent): Ditto.
2922         * UIProcess/win/WebView.h: Ditto.
2923
2924 2011-02-04  Steve Falkenburg  <sfalken@apple.com>
2925
2926         Reviewed by Adam Roben.
2927
2928         WebKit2 clients fail to launch on Windows if client exe is in a different directory from WebKit
2929         https://bugs.webkit.org/show_bug.cgi?id=53810
2930         <rdar://problem/8946085>
2931         
2932         If WebKit2WebProcess.exe is in a different directory from the client process, and that
2933         client process uses CreateProcess to launch WebKit2WebProcess, the DLL search path may
2934         end up excluding the directory containing WebKit. To address this, we use SetDllDirectory
2935         to explicitly include the WebKit directory in the DLL search path.
2936
2937         * win/MainWin.cpp:
2938         (wWinMain): Use SetDllDirectory and LoadLibrary to load WebKit.dll from WebKit2WebProcess.exe
2939         * win/WebKit2WebProcessCommon.vsprops: Don't link directly to WebKit. Link against shlwapi.
2940
2941 2011-02-04  Adam Roben  <aroben@apple.com>
2942
2943         Allow passing a null filter callback to WKPageCopySessionState
2944
2945         WebKit2 part of <http://webkit.org/b/53616> <rdar://problem/8949883>.
2946
2947         Reviewed by Sam Weinig.
2948
2949         * UIProcess/cf/WebBackForwardListCF.cpp:
2950         (WebKit::WebBackForwardList::createCFDictionaryRepresentation): Check if the filter is null
2951         before calling it.
2952
2953 2011-02-04  Brian Weinstein  <bweinstein@apple.com>
2954
2955         Reviewed by John Sullivan.
2956
2957         WebKit2: DidInitiateLoadForResource needs to know if the resource is being loaded by a committed or provisional frame
2958         https://bugs.webkit.org/show_bug.cgi?id=53794
2959         
2960         When we navigate from one page to another, there can be multiple subresource requests between when
2961         the new page has started its provisional load and when it has committed the load.
2962         
2963         There can be:
2964         
2965         - The main resource load of the provisional page
2966         - Synchronous XHR from the unload event of the loaded page.
2967         
2968         WebKit clients need to be able to differentiate between these loads.
2969
2970         * UIProcess/API/C/WKPage.h:
2971         * UIProcess/WebPageProxy.cpp:
2972         (WebKit::WebPageProxy::didInitiateLoadForResource): Pass whether or not the page is provisionally loading
2973             to the client.
2974         * UIProcess/WebPageProxy.h:
2975         * UIProcess/WebPageProxy.messages.in: Add a new parameter to DidInitiateLoadForResource.
2976         * UIProcess/WebResourceLoadClient.cpp:
2977         (WebKit::WebResourceLoadClient::didInitiateLoadForResource):  a new parameter to didInitiateLoadForResource.
2978         * UIProcess/WebResourceLoadClient.h:
2979         * WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
2980         (WebKit::WebFrameLoaderClient::assignIdentifierToInitialRequest): Pass whether or not the page is currently
2981             in a provisional load (checked by seeing if the DocumentLoader matches the FrameLoader's provisionalDocumentLoader)
2982             to the UI Process.
2983
2984 2011-02-04  Anders Carlsson  <andersca@apple.com>
2985
2986         Reviewed by Mark Rowe.
2987
2988         Mac WebKit2 should use the new drawing area
2989         https://bugs.webkit.org/show_bug.cgi?id=53802
2990         <rdar://problem/7881419>
2991         <rdar://problem/7881447>
2992         <rdar://problem/8252632>
2993         <rdar://problem/8479422>
2994         <rdar://problem/8633813>
2995         <rdar://problem/8734512>
2996         <rdar://problem/8787660>
2997
2998         * UIProcess/API/mac/WKView.mm:
2999         (useNewDrawingArea):
3000         Return true. Eventually this function should be removed, but let's keep it for now so
3001         we can go back to the old drawing area if necessary.
3002
3003 2011-02-04  Maciej Stachowiak  <mjs@apple.com>
3004
3005         Reviewed by Anders Carlsson.
3006
3007         WebKit2: Crash in WebPageProxy::setPendingAPIRequestURL after web process crashed
3008         https://bugs.webkit.org/show_bug.cgi?id=53799
3009         <rdar://problem/8943956>
3010
3011         * UIProcess/WebPageProxy.cpp:
3012         (WebKit::WebPageProxy::reload):
3013
3014 2011-02-04  Anders Carlsson  <andersca@apple.com>
3015
3016         Reviewed by Maciej Stachowiak.
3017
3018         Fix a shared memory leak
3019         https://bugs.webkit.org/show_bug.cgi?id=53800
3020
3021         Move the send right representing the shared memory.
3022
3023         * Platform/mac/SharedMemoryMac.cpp:
3024         (WebKit::SharedMemory::Handle::encode):
3025
3026 2011-02-04  Brady Eidson  <beidson@apple.com>
3027
3028         Reviewed by Anders Carlsson.
3029
3030         <rdar://problem/8636239> and https://bugs.webkit.org/show_bug.cgi?id=53785
3031         WebKit2: Pages with dynamically inserted iframes can add extraneous back/forward items.
3032
3033         WebCore doesn't gracefully handle the case where the decidePolicyForNavigationAction callback
3034         does not occur synchronously. Let's make it synchronous.
3035
3036         Change WebPageProxy to handle this message reply synchronously:
3037         * UIProcess/WebPageProxy.cpp:
3038         (WebKit::WebPageProxy::WebPageProxy):
3039         (WebKit::WebPageProxy::receivedPolicyDecision):
3040         (WebKit::WebPageProxy::decidePolicyForNavigationAction):
3041         * UIProcess/WebPageProxy.h:
3042         * UIProcess/WebPageProxy.messages.in: Make the navigation policy action message be synchronous.
3043
3044         * Platform/CoreIPC/HandleMessage.h:
3045         (CoreIPC::callMemberFunction): Add a 6-argument varient 
3046
3047         * WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
3048         (WebKit::WebFrameLoaderClient::dispatchDecidePolicyForNavigationAction): Send the message synchronously.
3049
3050 2011-02-04  Steve Falkenburg  <sfalken@apple.com>
3051
3052         Windows build fix.
3053         Correct prebuild build-stopping rule to allow project only rebuilds.
3054
3055         * win/WebKit2WebProcessPreBuild.cmd:
3056
3057 2011-02-04  Brian Weinstein  <bweinstein@apple.com>
3058
3059         Reviewed by Adam Roben.
3060
3061         Assertion failure in WebInspectorProxy::platformClose closing main window when inspecting a popup 
3062         window, or when running regression tests.
3063         https://bugs.webkit.org/show_bug.cgi?id=53798
3064         <rdar://problem/8814364>
3065         
3066         Only assert about the state of m_inspectorWindow and m_inspectorView if the inspector is visible.
3067         Also, only call ::DestroyWindow if the HWND is non-null, just to be safe.
3068
3069         * UIProcess/win/WebInspectorProxyWin.cpp:
3070         (WebKit::WebInspectorProxy::platformClose):
3071
3072 2011-02-04  Anders Carlsson  <andersca@apple.com>
3073
3074         Reviewed by Dan Bernstein.
3075
3076         Go out of accelerated compositing mode when the drawing area is destroyed
3077         https://bugs.webkit.org/show_bug.cgi?id=53788
3078
3079         This fixes a crash in the UI process if a web process crashes while in accelerated compositing mode.
3080
3081         * UIProcess/DrawingAreaProxyImpl.cpp:
3082         (WebKit::DrawingAreaProxyImpl::~DrawingAreaProxyImpl):
3083
3084 2011-02-03  Yury Semikhatsky  <yurys@chromium.org>
3085
3086         Reviewed by Pavel Feldman.
3087
3088         Web Inspector: remove settings related methods from InspectorClient
3089         https://bugs.webkit.org/show_bug.cgi?id=53686
3090
3091         * WebProcess/WebCoreSupport/WebInspectorFrontendClient.cpp:
3092         (WebKit::WebInspectorFrontendClient::WebInspectorFrontendClient):
3093
3094 2011-02-03  Maciej Stachowiak  <mjs@apple.com>
3095
3096         Reviewed by Dan Bernstein.
3097
3098         WebKit2: Need WebKit2 equivalent of WebResourceLoadDelegate::willSendRequest in the Bundle
3099         https://bugs.webkit.org/show_bug.cgi?id=52897
3100         <rdar://problem/8898294>
3101
3102         * Shared/API/c/WKSharedAPICast.h:
3103         (WebKit::toAPI):
3104         * WebProcess/InjectedBundle/API/c/WKBundlePage.h:
3105         * WebProcess/InjectedBundle/InjectedBundlePageLoaderClient.cpp:
3106         (WebKit::InjectedBundlePageLoaderClient::willSendRequestForFrame):
3107         * WebProcess/InjectedBundle/InjectedBundlePageLoaderClient.h:
3108         * WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
3109         (WebKit::WebFrameLoaderClient::dispatchWillSendRequest):
3110
3111 2011-02-03  Ivan Krstić  <ike@apple.com>
3112
3113         Reviewed by Maciej Stachowiak.
3114
3115         Make WebProcess pass explicit homedir parameter to the sandbox
3116         <rdar://problem/8405760>
3117         <https://webkit.org/b/53558>
3118
3119         * WebProcess/com.apple.WebProcess.sb:
3120         * WebProcess/mac/WebProcessMac.mm:
3121         (WebKit::initializeSandbox):
3122
3123 2011-02-03  James Kozianski  <koz@chromium.org>
3124
3125         Reviewed by Dimitri Glazkov.
3126
3127         Add navigator.registerProtocolHandler behind a flag.
3128         https://bugs.webkit.org/show_bug.cgi?id=52609
3129
3130         * Configurations/FeatureDefines.xcconfig:
3131
3132 2011-02-03  Adam Langley  <agl@chromium.org>
3133
3134         Reviewed by Adam Barth.
3135
3136         Plumb mixed script URL to FrameLoaderClient
3137         https://bugs.webkit.org/show_bug.cgi?id=52384
3138
3139         Regressions covered by http/tests/security/mixedContent/*
3140
3141         * WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
3142         (WebKit::WebFrameLoaderClient::didRunInsecureContent):
3143         * WebProcess/WebCoreSupport/WebFrameLoaderClient.h:
3144
3145 2011-02-03  Jon Honeycutt  <jhoneycutt@apple.com>
3146
3147         Download bundles should be moved to their final destination when they
3148         finish.
3149
3150         https://bugs.webkit.org/show_bug.cgi?id=53668
3151
3152         Reviewed by Adam Roben.
3153
3154         * WebProcess/Downloads/Download.cpp:
3155         (WebKit::Download::Download):
3156         Initialize m_allowOverwrite.
3157         (WebKit::Download::retrieveDestinationWithSuggestedFilename):
3158         Return the result of requesting the destination filename from the UI
3159         process.
3160         (WebKit::Download::decideDestinationWithSuggestedFilename):
3161         Call retrieveDestinationWithSuggestedFilename().
3162         (WebKit::Download::didFinish):
3163         Call platformDidFinish().
3164
3165         * WebProcess/Downloads/Download.h:
3166         Declare retrieveDestinationWithSuggestedFilename() and
3167         platformDidFinish(). Add a member variable to store whether the UI
3168         process would like us to overwrite existing files.
3169
3170         * WebProcess/Downloads/cf/DownloadCFNet.cpp:
3171         (WebKit::willResumeWithResponseCallback):
3172         Remove some trailing whitespace.
3173
3174         * WebProcess/Downloads/curl/DownloadCurl.cpp:
3175         (WebKit::Download::platformDidFinish):
3176         Stubbed.
3177
3178         * WebProcess/Downloads/mac/DownloadMac.mm:
3179         (WebKit::Download::platformDidFinish):
3180         Stubbed.
3181
3182         * WebProcess/Downloads/qt/DownloadQt.cpp:
3183         (WebKit::Download::platformDidFinish):
3184         Stubbed.
3185
3186         * WebProcess/Downloads/cf/win/DownloadCFNetWin.cpp:
3187         (WebKit::Download::didDecideDestination):
3188         Store whether the UI process would like us to overwrite existing files.
3189         (WebKit::Download::platformDidFinish):
3190         Try to move the bundle to the final destination. If that fails, ask the
3191         UI process for a new destination. If we receive one, try again to move
3192         the bundle. Call didCreateDestination() to report the updated path of
3193         file whether it's the bundle that we failed to move, or the new final
3194         destination.
3195
3196         This is similar to what is done by WebKit 1's CFNetwork port.
3197
3198         * win/WebKit2.vcproj:
3199         Add DownloadWin.cpp.
3200
3201 2011-02-01  Jon Honeycutt  <jhoneycutt@apple.com>
3202
3203         Small clean-up in DownloadCFNet.cpp.
3204
3205         Rubber-stamped by Mark Rowe.
3206
3207         * WebProcess/Downloads/cf/DownloadCFNet.cpp:
3208         (WebKit::Download::didDecideDestination):
3209         Moved out of the section labeled "CFURLDownload callbacks" and up near
3210         the other member functions.
3211
3212 2011-02-03  Anders Carlsson  <andersca@apple.com>
3213
3214         Reviewed by Sam Weinig.
3215
3216         Paint non-composited contents in a layer
3217         https://bugs.webkit.org/show_bug.cgi?id=53742
3218
3219         * WebProcess/WebPage/DrawingAreaImpl.cpp:
3220         (WebKit::DrawingAreaImpl::setNeedsDisplay):
3221         Call LayerTreeHost::setNonCompositedContentsNeedDisplayInRect.
3222
3223         (WebKit::DrawingAreaImpl::scroll):
3224         Call LayerTreeHost::scrollNonCompositedContents.
3225
3226         (WebKit::DrawingAreaImpl::setSize):
3227         Call LayerTreeHost::sizeDidChange.
3228
3229         * WebProcess/WebPage/LayerTreeHost.h:
3230         Add new pure virtual member functions.
3231
3232         * WebProcess/WebPage/mac/LayerTreeHostMac.mm:
3233         (WebKit::LayerTreeHostMac::LayerTreeHostMac):
3234         Create the non-composited content layer.
3235
3236         (WebKit::LayerTreeHostMac::setNonCompositedContentsNeedDisplayInRect):
3237         Call setNeedsDisplay on the GraphicsLayer.
3238
3239         (WebKit::LayerTreeHostMac::scrollNonCompositedContents):
3240         Just call setNonCompositedContentsNeedDisplayInRect.
3241
3242         (WebKit::LayerTreeHostMac::sizeDidChange):
3243         Resize the layers and flush any changes.
3244         
3245         (WebKit::LayerTreeHostMac::paintContents):
3246         Call WebPage::drawRect.
3247
3248         (WebKit::LayerTreeHostMac::flushPendingLayerChangesRunLoopObserverCallback):
3249         Lay out the web page.
3250
3251         (WebKit::LayerTreeHostMac::flushPendingLayerChanges):
3252         Call syncCompositingStateForThisLayerOnly on the non-composited content layer.
3253
3254 2011-02-03  Anders Carlsson  <andersca@apple.com>
3255
3256         Reviewed by Sam Weinig.
3257
3258         When in accelerated compositing mode, wait for DidSetSize messages
3259         https://bugs.webkit.org/show_bug.cgi?id=53736
3260
3261         Normally we wait for DidSetSize messages from ::paint, but that's never called in 
3262         accelerated compositing mode so we just do it right after sending the SetSize message.
3263
3264         * UIProcess/DrawingAreaProxyImpl.cpp:
3265         (WebKit::DrawingAreaProxyImpl::paint):
3266         Call waitForAndDispatchDidSetSize.
3267
3268         (WebKit::DrawingAreaProxyImpl::sendSetSize):
3269         Call waitForAndDispatchDidSetSize when in accelerated compositing mode.
3270
3271         (WebKit::DrawingAreaProxyImpl::waitForAndDispatchDidSetSize):
3272         New utility function which waits for and dispatches a DidSetSize message.
3273
3274         * UIProcess/DrawingAreaProxyImpl.h:
3275
3276 2011-02-03  Anders Carlsson  <andersca@apple.com>
3277
3278         Reviewed by Dan Bernstein.
3279
3280         Pass along an UpdateInfo object to the ExitAcceleratedCompositingMode message
3281         https://bugs.webkit.org/show_bug.cgi?id=53734
3282
3283         * UIProcess/DrawingAreaProxy.h:
3284         (WebKit::DrawingAreaProxy::exitAcceleratedCompositingMode):
3285         Add an UpdateInfo parameter.
3286
3287         * UIProcess/DrawingAreaProxy.messages.in:
3288         Add an UpdateInfo parameter to the ExitAcceleratedCompositingMode message.
3289
3290         * UIProcess/DrawingAreaProxyImpl.cpp:
3291         (WebKit::DrawingAreaProxyImpl::exitAcceleratedCompositingMode):
3292         Incorporate the passed in update.
3293
3294         * WebProcess/WebPage/DrawingAreaImpl.cpp:
3295         (WebKit::DrawingAreaImpl::exitAcceleratedCompositingMode):
3296         Create a new UpdateInfo object, paint into it and pass it along as a parameter
3297         to the ExitAcceleratedCompositingMode message.
3298
3299 2011-02-03  Beth Dakin  <bdakin@apple.com>
3300
3301         Reviewed by Sam Weinig.
3302
3303         Fix for <rdar://problem/8944544> Ability to animate track
3304         for WKPainter scrollers
3305
3306         * WebCoreSupport/WebSystemInterface.mm:
3307         (InitWebCoreSystemInterface):
3308
3309 2011-02-03  Anders Carlsson  <andersca@apple.com>
3310
3311         Reviewed by Dan Bernstein.
3312
3313         Change DidSetSize to take a LayerTreeContext parameter
3314         https://bugs.webkit.org/show_bug.cgi?id=53724
3315
3316         Since SetSize can cause layout to happen, we need to pass along a layer tree context to 
3317         the DidSetSize message so the UI process can enter/exit accelerated compositing mode appropriately.
3318         
3319         * Shared/LayerTreeContext.h:
3320         * Shared/mac/LayerTreeContextMac.mm:
3321         Add equality operators to LayerTreeContext.
3322
3323         * UIProcess/DrawingAreaProxy.h:
3324         (WebKit::DrawingAreaProxy::didSetSize):
3325         This now takes a LayerTreeContext parameter.
3326         
3327         * UIProcess/DrawingAreaProxy.messages.in:
3328         Add LayerTreeContext parameter.
3329
3330         * UIProcess/DrawingAreaProxyImpl.cpp:
3331         Get rid of m_isInAcceleratedCompositingMode and use the current layer context instead.
3332
3333         (WebKit::DrawingAreaProxyImpl::paint):
3334         Bail if the call to DidSetSize ended up entering accelerated compositing mode.
3335
3336         (WebKit::DrawingAreaProxyImpl::didSetSize):
3337         If the new layer tree context is different, enter/exit accelerated compositing mode accordingly.
3338
3339         (WebKit::DrawingAreaProxyImpl::enterAcceleratedCompositingMode):
3340         (WebKit::DrawingAreaProxyImpl::exitAcceleratedCompositingMode):
3341         Update the layer tree context.
3342
3343         * UIProcess/DrawingAreaProxyImpl.h:
3344         (WebKit::DrawingAreaProxyImpl::isInAcceleratedCompositingMode):
3345         Add simple getter.
3346
3347         * WebProcess/WebPage/DrawingAreaImpl.cpp:
3348         (WebKit::DrawingAreaImpl::setSize):
3349         Pass along the layer tree context.
3350
3351 2011-02-03  Anders Carlsson  <andersca@apple.com>
3352
3353         Reviewed by Dan Bernstein.
3354
3355         Get rid of LayerTreeContext::seed on Mac.
3356         Add sequence checks to enterAcceleratedCompositingMode and exitAcceleratedCompositingMode and
3357         have them call newly added overloads that don't have the checks.
3358
3359         * Shared/LayerTreeContext.h:
3360         * Shared/mac/LayerTreeContextMac.mm:
3361         (WebKit::LayerTreeContext::LayerTreeContext):
3362         (WebKit::LayerTreeContext::encode):
3363         (WebKit::LayerTreeContext::decode):
3364         * UIProcess/DrawingAreaProxyImpl.cpp:
3365         (WebKit::DrawingAreaProxyImpl::enterAcceleratedCompositingMode):
3366         (WebKit::DrawingAreaProxyImpl::exitAcceleratedCompositingMode):
3367         * UIProcess/DrawingAreaProxyImpl.h:
3368         * WebProcess/WebPage/mac/LayerTreeHostMac.mm:
3369         (WebKit::LayerTreeHostMac::LayerTreeHostMac):
3370
3371 2011-02-03  Anders Carlsson  <andersca@apple.com>
3372
3373         Reviewed by Dan Bernstein.
3374
3375         Get rid of timestamps in UpdateInfo
3376         https://bugs.webkit.org/show_bug.cgi?id=53713
3377
3378         Add a 64-bit sequence number to all DrawingAreaProxy messages, and use it to
3379         check whether Update messages should be handled or not.
3380
3381         * Shared/UpdateInfo.cpp:
3382         (WebKit::UpdateInfo::encode):
3383         (WebKit::UpdateInfo::decode):
3384         * Shared/UpdateInfo.h:
3385         (WebKit::UpdateInfo::UpdateInfo):
3386         * UIProcess/BackingStore.cpp:
3387         (WebKit::BackingStore::BackingStore):
3388         (WebKit::BackingStore::incorporateUpdate):
3389         * UIProcess/BackingStore.h:
3390         * UIProcess/DrawingAreaProxy.h:
3391         (WebKit::DrawingAreaProxy::update):
3392         (WebKit::DrawingAreaProxy::didSetSize):
3393         (WebKit::DrawingAreaProxy::enterAcceleratedCompositingMode):
3394         (WebKit::DrawingAreaProxy::exitAcceleratedCompositingMode):
3395         * UIProcess/DrawingAreaProxy.messages.in:
3396         * UIProcess/DrawingAreaProxyImpl.cpp:
3397         (WebKit::DrawingAreaProxyImpl::DrawingAreaProxyImpl):
3398         (WebKit::DrawingAreaProxyImpl::update):
3399         (WebKit::DrawingAreaProxyImpl::didSetSize):
3400         (WebKit::DrawingAreaProxyImpl::enterAcceleratedCompositingMode):
3401         (WebKit::DrawingAreaProxyImpl::exitAcceleratedCompositingMode):
3402         * UIProcess/DrawingAreaProxyImpl.h:
3403         * WebProcess/WebPage/DrawingAreaImpl.cpp:
3404         (WebKit::generateSequenceNumber):
3405         (WebKit::DrawingAreaImpl::setSize):
3406         (WebKit::DrawingAreaImpl::enterAcceleratedCompositingMode):
3407         (WebKit::DrawingAreaImpl::exitAcceleratedCompositingMode):
3408         (WebKit::DrawingAreaImpl::display):
3409
3410 2011-02-03  Anders Carlsson  <andersca@apple.com>
3411
3412         Reviewed by Darin Adler.
3413
3414         Don't send enter/exit accelerated compositing mode messages when handling setSize
3415         https://bugs.webkit.org/show_bug.cgi?id=53706
3416
3417         Don't send EnterAcceleratedCompositingMode/ExitAcceleratedCompositing mode when
3418         the mode changes happen as a result of relayout in setSize, since an updated state
3419         is going to be sent back in the DidSetSize message.
3420         
3421         * UIProcess/DrawingAreaProxyImpl.cpp:
3422         (WebKit::DrawingAreaProxyImpl::didSetSize):
3423         Add an assert.
3424
3425         * WebProcess/WebPage/DrawingAreaImpl.cpp:
3426         (WebKit::DrawingAreaImpl::DrawingAreaImpl):
3427         Initialize m_inSetSize.
3428
3429         (WebKit::DrawingAreaImpl::setRootCompositingLayer):
3430         Factor out code into enterAcceleratedCompositingMode and exitAcceleratedCompositingMode.
3431
3432         (WebKit::DrawingAreaImpl::setSize):
3433         Set m_inSetSize to true while handling setSize.
3434
3435         (WebKit::DrawingAreaImpl::enterAcceleratedCompositingMode):
3436         (WebKit::DrawingAreaImpl::exitAcceleratedCompositingMode):
3437         Take over the message sending responsibility from LayerTreeHostMac, and don't send messages
3438         if we're currently handling a SetSize message.
3439
3440         * WebProcess/WebPage/DrawingAreaImpl.h:
3441         Add m_inSetSize.
3442
3443         * WebProcess/WebPage/LayerTreeHost.h:
3444         Add layerTreeHost getter.
3445
3446         * WebProcess/WebPage/mac/LayerTreeHostMac.h:
3447         * WebProcess/WebPage/mac/LayerTreeHostMac.mm:
3448         (WebKit::LayerTreeHostMac::LayerTreeHostMac):
3449         Don't send EnterAcceleratedCompositingMode messages.
3450
3451         (WebKit::LayerTreeHostMac::layerTreeContext):
3452         Add getter for the current layer tree context.
3453
3454         (WebKit::LayerTreeHostMac::invalidate):
3455         Don't send ExitAcceleratedCompositingMode messages.
3456
3457 2011-02-03  Anders Carlsson  <andersca@apple.com>
3458
3459         Reviewed by Sam Weinig.
3460
3461         Make the layer tree host keep track of the layer tree context
3462         https://bugs.webkit.org/show_bug.cgi?id=53698
3463
3464         Add a LayerTreeContext member variable to the LayerTreeHost object,
3465         and also add a seed count to the LayerTreeContext so we can keep track of 
3466         how layer tree contexts relate to each other.
3467
3468         * Shared/LayerTreeContext.h:
3469         * Shared/mac/LayerTreeContextMac.mm:
3470         (WebKit::LayerTreeContext::LayerTreeContext):
3471         (WebKit::LayerTreeContext::makeWithSeed):
3472         (WebKit::LayerTreeContext::encode):
3473         (WebKit::LayerTreeContext::decode):
3474
3475         * WebProcess/WebPage/mac/LayerTreeHostMac.h:
3476         Add the layer tree context as a member variable.
3477
3478         * WebProcess/WebPage/mac/LayerTreeHostMac.mm:
3479         (WebKit::LayerTreeHostMac::LayerTreeHostMac):
3480         Initialize the layer tree context.
3481
3482 2011-02-03  Sam Weinig  <sam@webkit.org>
3483
3484         Fix Qt build.
3485
3486         * UIProcess/API/qt/qwkpage.cpp:
3487         (QWKPage::QWKPage):
3488
3489 2011-02-02  Sam Weinig  <sam@webkit.org>
3490
3491         Reviewed by Anders Carlsson.
3492
3493         Add notification of the end of a rubber band.
3494         <rdar://problem/8940648>
3495
3496         * UIProcess/API/C/WKPage.h:
3497         * UIProcess/WebPageProxy.cpp:
3498         (WebKit::WebPageProxy::drawHeader):
3499         (WebKit::WebPageProxy::drawFooter):
3500         (WebKit::WebPageProxy::didCompleteRubberBandForMainFrame):
3501         * UIProcess/WebPageProxy.h:
3502         * UIProcess/WebPageProxy.messages.in:
3503         * UIProcess/WebUIClient.cpp:
3504         (WebKit::WebUIClient::didCompleteRubberBandForMainFrame):
3505         * UIProcess/WebUIClient.h:
3506         * WebProcess/WebCoreSupport/WebChromeClient.cpp:
3507         (WebKit::WebChromeClient::didCompleteRubberBandForMainFrame):
3508         * WebProcess/WebCoreSupport/WebChromeClient.h:
3509         Pipe the notification up to the WKUIClient.
3510
3511 2011-02-03  Sheriff Bot  <webkit.review.bot@gmail.com>
3512
3513         Unreviewed, rolling out r77449.
3514         http://trac.webkit.org/changeset/77449
3515         https://bugs.webkit.org/show_bug.cgi?id=53663
3516
3517         causes many WebKit2 tests to crash (Requested by othermaciej
3518         on #webkit).
3519
3520         * Shared/API/c/WKSharedAPICast.h:
3521         (WebKit::toAPI):
3522         (WebKit::toCopiedAPI):
3523         (WebKit::toURLRef):
3524         (WebKit::toCopiedURLAPI):
3525         * Shared/WebString.h:
3526         (WebKit::WebString::isNull):
3527         (WebKit::WebString::WebString):
3528
3529 2011-02-02  Sam Weinig  <sam@webkit.org>
3530
3531         Fix license block issues pointed out by Daniel Bates.
3532
3533         * Shared/API/c/WKGraphicsContext.cpp:
3534         * Shared/API/c/WKGraphicsContext.h:
3535         * Shared/API/c/cg/WKGraphicsContextCG.cpp:
3536         * Shared/API/c/cg/WKGraphicsContextCG.h:
3537         * Shared/WebGraphicsContext.cpp:
3538
3539 2011-02-02  Sam Weinig  <sam@webkit.org>
3540
3541         Reviewed by Dan Bernstein.
3542
3543         Add WKBundleFrameGetVisibleContentBoundsExcludingScrollbars API for WebKit2.
3544
3545         * WebProcess/InjectedBundle/API/c/WKBundleFrame.cpp:
3546         (WKBundleFrameGetContentBounds):
3547         (WKBundleFrameGetVisibleContentBounds):
3548         (WKBundleFrameGetVisibleContentBoundsExcludingScrollbars):
3549         (WKBundleFrameGetScrollOffset):
3550         * WebProcess/InjectedBundle/API/c/WKBundleFrame.h:
3551         * WebProcess/WebPage/WebFrame.cpp:
3552         (WebKit::WebFrame::contentBounds):
3553         (WebKit::WebFrame::visibleContentBounds):
3554         (WebKit::WebFrame::visibleContentBoundsExcludingScrollbars):
3555         (WebKit::WebFrame::scrollOffset):
3556         * WebProcess/WebPage/WebFrame.h:
3557         Move implementation of frame geometry to the implementation file
3558         instead of keeping it in the API file.
3559
3560 2011-02-02  Stephanie Lewis  <slewis@apple.com>
3561
3562         Reviewed by Geoff Garen.
3563
3564         https://bugs.webkit.org/show_bug.cgi?id=53361
3565         <rdar://problem/8921729> REGRESSION: Membuster accumulates 1GB+ memory due to autorelease 
3566         pools not being drained.
3567         Call into AppKit to add observers that push and pop autorelease pools on entry 
3568         and exit from the CFRunLoop.  This will prevent memory from accumulating.
3569
3570         * WebProcess/mac/WebProcessMainMac.mm:
3571         (WebKit::WebProcessMain):
3572
3573 2011-02-02  Darin Adler  <darin@apple.com>
3574
3575         Reviewed by Sam Weinig.
3576
3577         Make null WTF::String objects turn into 0 pointers for WKStringRef and WKURLRef.
3578         rdar://problem/8948688
3579
3580         * Shared/API/c/WKSharedAPICast.h:
3581         (WebKit::toAPI): Return 0 if the passed in string is 0.
3582         (WebKit::toCopiedAPI): Ditto.
3583         (WebKit::toURLRef): Ditto. Old code was trying to do this but was missing a return.
3584         (WebKit::toCopiedURLAPI): Ditto. Old code was trying to do this but had incorrect
3585         nll check.
3586
3587         * Shared/WebString.h: Removed isNull function. It can never return true.
3588         Removed constructor code that turns the null string into the empty string.
3589         Instead assert that the passed in string is not null.
3590
3591 2011-02-02  Mark Rowe  <mrowe@apple.com>
3592
3593         Reviewed by Beth Dakin.
3594
3595         <rdar://problem/8928367> Crash when loading canvas pages inside HTMLCanvasElement::createImageBuffer().
3596
3597         * WebProcess/WebCoreSupport/mac/WebSystemInterface.mm:
3598         (InitWebCoreSystemInterface): Add some missing initializers.
3599
3600 2011-02-02  Sam Weinig  <sam@webkit.org>
3601
3602         Reviewed by Beth Dakin.
3603
3604         Add ChromeClient function to paint custom overhang areas.
3605         https://bugs.webkit.org/show_bug.cgi?id=53639
3606
3607         * Shared/API/c/WKBase.h:
3608         * Shared/API/c/WKGraphicsContext.cpp: Added.
3609         (WKGraphicsContextGetTypeID):
3610         * Shared/API/c/WKGraphicsContext.h: Added.
3611         * Shared/API/c/WKSharedAPICast.h:
3612         * Shared/API/c/cg/WKGraphicsContextCG.cpp: Added.
3613         (WKGraphicsContextGetCGContext):
3614         * Shared/API/c/cg/WKGraphicsContextCG.h: Added.
3615         * Shared/APIObject.h:
3616         * Shared/WebGraphicsContext.cpp: Added.
3617         (WebKit::WebGraphicsContext::WebGraphicsContext):
3618         * Shared/WebGraphicsContext.h: Added.
3619         (WebKit::WebGraphicsContext::create):
3620         (WebKit::WebGraphicsContext::platformContext):
3621         (WebKit::WebGraphicsContext::type):
3622         Add WebGraphicsContext API type.
3623
3624         * WebProcess/InjectedBundle/API/c/WKBundlePage.h:
3625         * WebProcess/InjectedBundle/InjectedBundlePageUIClient.cpp:
3626         (WebKit::InjectedBundlePageUIClient::pageDidScroll):
3627         (WebKit::InjectedBundlePageUIClient::shouldPaintCustomOverhangArea):
3628         (WebKit::InjectedBundlePageUIClient::paintCustomOverhangArea):
3629         * WebProcess/InjectedBundle/InjectedBundlePageUIClient.h:
3630         * WebProcess/WebCoreSupport/WebChromeClient.cpp:
3631         (WebKit::WebChromeClient::paintCustomOverhangArea):
3632         * WebProcess/WebCoreSupport/WebChromeClient.h:
3633         Pipe paintCustomOverhangArea to the InjectedBundlePageUIClient.
3634
3635         * UIProcess/API/C/WebKit2.h:
3636         * WebKit2.pro:
3637         * WebKit2.xcodeproj/project.pbxproj:
3638         * win/WebKit2.vcproj:
3639         * win/WebKit2Generated.make:
3640         Add new files.
3641
3642 2011-02-02  Anders Carlsson  <andersca@apple.com>
3643
3644         Reviewed by Dan Bernstein.
3645
3646         Work towards making the layer tree host be in charge of all painting
3647         https://bugs.webkit.org/show_bug.cgi?id=53636
3648
3649         Make sure that DrawingAreaImpl::display is never called when in accelerated compositing mode,
3650         since the layer tree host is supposed to handle all drawing in that case.
3651
3652         * WebProcess/WebPage/DrawingAreaImpl.cpp:
3653         (WebKit::DrawingAreaImpl::scroll):
3654         (WebKit::DrawingAreaImpl::setRootCompositingLayer):
3655         (WebKit::DrawingAreaImpl::setSize):
3656         (WebKit::DrawingAreaImpl::didUpdate):
3657
3658 2011-02-02  Mark Rowe  <mrowe@apple.com>
3659
3660         Fix the 32-bit build.
3661
3662         * WebProcess/Plugins/Netscape/mac/NetscapePluginMac.mm:
3663         (WebKit::computeFakeWindowBoundsRect):
3664
3665 2011-02-02  Anders Carlsson  <andersca@apple.com>
3666
3667         Reviewed by Sam Weinig.
3668
3669         Make sure that we don't try to call display() when in accelerated compositing mode
3670         https://bugs.webkit.org/show_bug.cgi?id=53629
3671
3672         When in accelerated compositing mode, the layer tree host should handle all painting, so make sure that display() is never called.
3673
3674         * WebProcess/WebPage/DrawingAreaImpl.cpp:
3675         (WebKit::DrawingAreaImpl::setNeedsDisplay):
3676         (WebKit::DrawingAreaImpl::setRootCompositingLayer):
3677         (WebKit::DrawingAreaImpl::display):
3678
3679 2011-02-02  Adam Roben  <aroben@apple.com>
3680
3681         Assert WebBackForwardList's current index is valid to help catch errors
3682
3683         Hopefully this will help catch a crash I saw once but haven't yet been able to reproduce.
3684
3685         Fixes <http://webkit.org/b/53622>.
3686
3687         Reviewed by Brady Eidson.
3688
3689         * UIProcess/WebBackForwardList.cpp:
3690         (WebKit::WebBackForwardList::WebBackForwardList):
3691         (WebKit::WebBackForwardList::addItem):
3692         (WebKit::WebBackForwardList::goToItem):
3693         (WebKit::WebBackForwardList::currentItem):
3694         (WebKit::WebBackForwardList::backItem):
3695         (WebKit::WebBackForwardList::forwardItem):
3696         (WebKit::WebBackForwardList::itemAtIndex):
3697         (WebKit::WebBackForwardList::backListCount):
3698         (WebKit::WebBackForwardList::forwardListCount):
3699         (WebKit::WebBackForwardList::backListAsImmutableArrayWithLimit):
3700         (WebKit::WebBackForwardList::forwardListAsImmutableArrayWithLimit):
3701         (WebKit::WebBackForwardList::clear):
3702         * UIProcess/cf/WebBackForwardListCF.cpp:
3703         (WebKit::WebBackForwardList::createCFDictionaryRepresentation):
3704         (WebKit::WebBackForwardList::restoreFromCFDictionaryRepresentation):
3705         Assert that m_current is valid.
3706
3707         * UIProcess/WebBackForwardList.h: Moved the NoCurrentItemIndex to a static data member so
3708         that it can be used from WebBackForwardListCF.cpp.
3709
3710 2011-02-02  Anders Carlsson  <andersca@apple.com>
3711
3712         Reviewed by Sam Weinig.
3713
3714         The drawing area proxy should keep track of the accelerated compositing state
3715         https://bugs.webkit.org/show_bug.cgi?id=53624
3716
3717         * UIProcess/DrawingAreaProxyImpl.cpp:
3718         (WebKit::DrawingAreaProxyImpl::DrawingAreaProxyImpl):
3719         Initialize m_isInAcceleratedCompositingMode to false.
3720
3721         (WebKit::DrawingAreaProxyImpl::paint):
3722         Don't try to paint if we're in accelerated compositing mode.
3723
3724         (WebKit::DrawingAreaProxyImpl::didSetSize):
3725         Bail if we're in accelerated compositing mode.
3726
3727         (WebKit::DrawingAreaProxyImpl::enterAcceleratedCompositingMode):
3728         Set m_isInAcceleratedCompositingMode to true, null out the backing store.
3729
3730         (WebKit::DrawingAreaProxyImpl::exitAcceleratedCompositingMode):
3731         Set m_isInAcceleratedCompositingMode back to false.
3732
3733         (WebKit::DrawingAreaProxyImpl::incorporateUpdate):
3734         Assert that we're not in accelerated compositing mode.
3735
3736         * UIProcess/DrawingAreaProxyImpl.h:
3737
3738 2011-02-02  Timothy Hatcher  <timothy@apple.com>
3739
3740         Give the Web Process access to the Safari RSS preferences.
3741
3742         <rdar://problem/8916870> Sandbox violation related to RSS during initial
3743         page load with WebKit2 (prevents RSS from working)
3744
3745         Reviewed by Darin Adler.
3746
3747         * WebProcess/com.apple.WebProcess.sb:
3748
3749 2011-02-02  Steve Lacey  <sjl@chromium.org>
3750
3751         Reviewed by Eric Carlson.
3752
3753         Implement basic media statistics on media elements.
3754         https://bugs.webkit.org/show_bug.cgi?id=53322
3755
3756         * Configurations/FeatureDefines.xcconfig:
3757
3758 2011-02-01  Alexey Proskuryakov  <ap@apple.com>
3759
3760         Reviewed by Sam Weinig.
3761
3762         https://bugs.webkit.org/show_bug.cgi?id=53561
3763         <rdar://problem/8900228> Stepping through print previews in WebKit2 mode steps in and out of
3764         printing mode a lot
3765
3766         Disable NSView autodisplay, so that -[WKView drawRect:] isn't called (other than when
3767         resizing the window), so that we don't have to switch modes all the time.
3768
3769         * UIProcess/API/mac/PageClientImpl.h:
3770         * UIProcess/API/mac/PageClientImpl.mm:
3771         (WebKit::PageClientImpl::setAutodisplay):
3772         * UIProcess/PageClient.h:
3773         * UIProcess/WebPageProxy.cpp:
3774         (WebKit::WebPageProxy::setAutodisplay):
3775         * UIProcess/WebPageProxy.h:
3776         Pipe the call from WKPrintingView down to WKView.
3777
3778         * UIProcess/API/mac/WKPrintingView.mm:
3779         (-[WKPrintingView beginDocument]): Added. We don't want to autodisplay WKView while printing,
3780         because layout is changed to print at the time, and drawing to screen requires relayout.
3781         
3782         (-[WKPrintingView endDocument]): When not printing, turn autodisplay back on. Also, call
3783         -[super endDocument] for unknown but definitive good (oops!).
3784
3785 2011-02-02  David Hyatt  <hyatt@apple.com>
3786
3787         Reviewed by Darin Adler.
3788
3789         Conversion of right()/bottom() to maxX()/maxY() as part of the removal of those accessors.
3790
3791         * UIProcess/win/WebPopupMenuProxyWin.cpp:
3792         (WebKit::WebPopupMenuProxyWin::calculatePositionAndSize):
3793         * UIProcess/win/WebView.cpp:
3794         (WebKit::WebView::prepareCandidateWindow):
3795         * WebProcess/Plugins/Netscape/win/NetscapePluginWin.cpp:
3796         (WebKit::NetscapePlugin::platformGeometryDidChange):
3797
3798 2011-02-01  Darin Adler  <darin@apple.com>
3799
3800         Reviewed by Anders Carlsson.
3801
3802         Overflow in WebKit2 argument decoder buffer checking
3803         https://bugs.webkit.org/show_bug.cgi?id=53536
3804
3805         * Platform/CoreIPC/ArgumentDecoder.cpp:
3806         (CoreIPC::roundUpToAlignment): Tweak code a bit for clarity and to replace
3807         C casts with C++ casts.
3808         (CoreIPC::ArgumentDecoder::alignBufferPosition): Rearrange buffer calculation
3809         so we don't do any math with the passed-in size, because that could overflow.
3810         (CoreIPC::ArgumentDecoder::bufferIsLargeEnoughToContain): Ditto.
3811
3812 2011-02-01  Csaba Osztrogonác  <ossy@webkit.org>
3813
3814         Unreviewed.
3815
3816         Fix Qt build after r77339.
3817
3818         * UIProcess/API/qt/qwkpage.cpp:
3819         (QWKPagePrivate::enterAcceleratedCompositingMode):
3820         (QWKPagePrivate::exitAcceleratedCompositingMode):
3821         * UIProcess/API/qt/qwkpage_p.h:
3822
3823 2011-02-01  Anders Carlsson  <andersca@apple.com>
3824
3825         Reviewed by Dan Bernstein.
3826
3827         Attach the layer tree in the UI process
3828         https://bugs.webkit.org/show_bug.cgi?id=53560
3829
3830         * UIProcess/API/mac/WKView.mm:
3831         (-[WKView _enterAcceleratedCompositingMode:]):
3832         Make a render layer and add it as a sublayer of our root layer.
3833
3834         * WebProcess/WebPage/mac/LayerTreeHostMac.h:
3835         Make LayerTreeHostMac a GraphicsLayerClient.
3836
3837         * WebProcess/WebPage/mac/LayerTreeHostMac.mm:
3838         (WebKit::LayerTreeHostMac::LayerTreeHostMac):
3839         Create a root layer, add the layer subtree as a child of the root layer.
3840
3841         (WebKit::LayerTreeHostMac::~LayerTreeHostMac):
3842         Assert that m_rootLayer is null.
3843
3844         (WebKit::LayerTreeHostMac::invalidate):
3845         Null out m_rootLayer.
3846
3847         (WebKit::LayerTreeHostMac::notifyAnimationStarted):
3848         (WebKit::LayerTreeHostMac::notifySyncRequired):
3849         (WebKit::LayerTreeHostMac::paintContents):
3850         Add stubs.
3851
3852         (WebKit::LayerTreeHostMac::showDebugBorders):
3853         (WebKit::LayerTreeHostMac::showRepaintCounter):
3854         Return the correct settings.
3855
3856         (WebKit::LayerTreeHostMac::flushPendingLayerChanges):
3857         Flush the root layer changes.
3858
3859 2011-02-01  Anders Carlsson  <andersca@apple.com>
3860
3861         Fix Windows build.
3862
3863         * UIProcess/win/WebView.cpp:
3864         (WebKit::WebView::enterAcceleratedCompositingMode):
3865         (WebKit::WebView::exitAcceleratedCompositingMode):
3866         * UIProcess/win/WebView.h:
3867
3868 2011-02-01  Anders Carlsson  <andersca@apple.com>
3869
3870         Reviewed by Dan Bernstein.
3871
3872         Add a layer backed NSView for accelerated content
3873         https://bugs.webkit.org/show_bug.cgi?id=53555
3874
3875         Rename the current _layerHostingView to _oldLayerHostingView and
3876         add a new _layerHostingView to be used with the new drawing area.
3877
3878         * UIProcess/API/mac/WKView.mm:
3879         (-[WKView hitTest:]):
3880         (-[WKView _startAcceleratedCompositing:]):
3881         (-[WKView _stopAcceleratedCompositing]):
3882         (-[WKView _enterAcceleratedCompositingMode:]):
3883         (-[WKView _exitAcceleratedCompositingMode]):
3884
3885 2011-02-01  Anders Carlsson  <andersca@apple.com>
3886
3887         Reviewed by Dan Bernstein.
3888
3889         Pass enter/exit accelerated compositing mode to the WKView
3890         https://bugs.webkit.org/show_bug.cgi?id=53552
3891
3892         * UIProcess/API/mac/PageClientImpl.h:
3893         * UIProcess/API/mac/PageClientImpl.mm:
3894         (WebKit::PageClientImpl::enterAcceleratedCompositingMode):
3895         (WebKit::PageClientImpl::exitAcceleratedCompositingMode):
3896         * UIProcess/API/mac/WKView.mm:
3897         (-[WKView _enterAcceleratedCompositingMode:]):
3898         (-[WKView _exitAcceleratedCompositingMode]):
3899         * UIProcess/API/mac/WKViewInternal.h:
3900         * UIProcess/DrawingAreaProxyImpl.cpp:
3901         (WebKit::DrawingAreaProxyImpl::enterAcceleratedCompositingMode):
3902         (WebKit::DrawingAreaProxyImpl::exitAcceleratedCompositingMode):
3903         * UIProcess/PageClient.h:
3904         * UIProcess/WebPageProxy.cpp:
3905         (WebKit::WebPageProxy::enterAcceleratedCompositingMode):
3906         (WebKit::WebPageProxy::exitAcceleratedCompositingMode):
3907         * UIProcess/WebPageProxy.h:
3908
3909 2011-02-01  Csaba Osztrogonác  <ossy@webkit.org>
3910
3911         Unreviewed Qt buildfix after r77286.
3912
3913         https://bugs.webkit.org/show_bug.cgi?id=53520 
3914         Remove the physical terminology from IntRect and FloatRect.
3915
3916         * UIProcess/qt/ChunkedUpdateDrawingAreaProxyQt.cpp:
3917         (WebKit::ChunkedUpdateDrawingAreaProxy::drawUpdateChunkIntoBackingStore):
3918
3919 2011-02-01  Anders Carlsson  <andersca@apple.com>
3920
3921         Reviewed by Adam Roben.
3922
3923         Send messages when entering/exiting accelerated compositing
3924         https://bugs.webkit.org/show_bug.cgi?id=53534
3925
3926         * Shared/LayerTreeContext.h: Added.
3927         * Shared/mac/LayerTreeContextMac.mm: Added.
3928         Add new LayerTreeContext which holds all information needed to enter
3929         accelerated compositing mode.
3930
3931         * UIProcess/DrawingAreaProxy.h:
3932         (WebKit::DrawingAreaProxy::enterAcceleratedCompositingMode):
3933         (WebKit::DrawingAreaProxy::exitAcceleratedCompositingMode):
3934         Add empty stubs.
3935
3936         * UIProcess/DrawingAreaProxy.messages.in:
3937         Add new messgaes.
3938
3939         * UIProcess/DrawingAreaProxyImpl.cpp:
3940         (WebKit::DrawingAreaProxyImpl::enterAcceleratedCompositingMode):
3941         (WebKit::DrawingAreaProxyImpl::exitAcceleratedCompositingMode):
3942         * UIProcess/DrawingAreaProxyImpl.h:
3943         Add empty stubs.
3944
3945         * WebKit2.xcodeproj/project.pbxproj:
3946         Add new files.
3947
3948         * WebProcess/WebPage/mac/LayerTreeHostMac.h:
3949         * WebProcess/WebPage/mac/LayerTreeHostMac.mm:
3950         (WebKit::LayerTreeHostMac::LayerTreeHostMac):
3951         (WebKit::LayerTreeHostMac::invalidate):
3952         Send messages.
3953
3954 2011-02-01  Alexey Proskuryakov  <ap@apple.com>
3955
3956         Reviewed by Dan Bernstein and Darin Adler.
3957
3958         <rdar://problem/8830594> Printed page is sometimes shifted down, making footer invisible
3959
3960         * UIProcess/API/mac/WKPrintingView.mm: (-[WKPrintingView locationOfPrintRect:]): Instead of
3961         letting AppKit compute content position on page, make the view provide it. We can do this
3962         because WK(Printing)Views are always printed on their own, not as part of other views.
3963
3964 2011-02-01  Anders Carlsson  <andersca@apple.com>
3965
3966         Reviewed by Adam Roben.
3967
3968         Make LayerTreeHost ref counted
3969         https://bugs.webkit.org/show_bug.cgi?id=53530
3970
3971         LayerTreeHostMac will soon be able to trigger layout, which could cause
3972         the page to leave accelerated compositing mode and free the LayerTreeHostMac object.
3973
3974         Making LayerTreeHost ref counted will let LayerTreeHostMac protect itself while triggering layout.
3975
3976         * WebProcess/WebPage/DrawingAreaImpl.cpp:
3977         (WebKit::DrawingAreaImpl::setRootCompositingLayer):
3978         * WebProcess/WebPage/DrawingAreaImpl.h:
3979         * WebProcess/WebPage/LayerTreeHost.cpp:
3980         (WebKit::LayerTreeHost::create):
3981         * WebProcess/WebPage/LayerTreeHost.h:
3982         * WebProcess/WebPage/mac/LayerTreeHostMac.h:
3983         * WebProcess/WebPage/mac/LayerTreeHostMac.mm:
3984         (WebKit::LayerTreeHostMac::create):
3985         (WebKit::LayerTreeHostMac::LayerTreeHostMac):
3986         (WebKit::LayerTreeHostMac::~LayerTreeHostMac):
3987         (WebKit::LayerTreeHostMac::invalidate):
3988
3989 2011-02-01  Sam Weinig  <sam@webkit.org>
3990
3991         Reviewed by Beth Dakin.
3992
3993         Part 2 for <rdar://problem/8492788>
3994         Adopt WKScrollbarPainterController
3995
3996         Use header detection to define scrollbar painting controller #define.
3997
3998         * WebProcess/WebCoreSupport/mac/WebSystemInterface.mm:
3999         (InitWebCoreSystemInterface):
4000
4001 2011-02-01  David Hyatt  <hyatt@apple.com>
4002
4003         Reviewed by Oliver Hunt.
4004
4005         https://bugs.webkit.org/show_bug.cgi?id=53520
4006         
4007         Remove the physical terminology from IntRect and FloatRect.
4008         
4009         Now that we have flipped RenderBlocks for vertical-rl and horizontal-bt writing modes,
4010         we need to update our terminology to be more accurate.
4011
4012         I'm borrowing a page from AppKit here (which also supports flipped NSViews) and
4013         renaming right() and bottom() to maxX() and maxY().  These terms remain accurate
4014         even for flipped rectangles.
4015
4016         * Platform/Region.cpp:
4017         (WebKit::Region::Shape::Shape):
4018         * UIProcess/API/mac/WKPrintingView.mm:
4019         (pageDidComputePageRects):
4020         * UIProcess/FindIndicator.cpp:
4021         (WebKit::FindIndicator::draw):
4022         * UIProcess/TiledDrawingAreaProxy.cpp:
4023         (WebKit::TiledDrawingAreaProxy::invalidate):
4024         (WebKit::TiledDrawingAreaProxy::paint):
4025         (WebKit::TiledDrawingAreaProxy::createTiles):
4026         * UIProcess/mac/ChunkedUpdateDrawingAreaProxyMac.mm:
4027         (WebKit::ChunkedUpdateDrawingAreaProxy::drawUpdateChunkIntoBackingStore):
4028         * WebProcess/Plugins/Netscape/NetscapePlugin.cpp:
4029         (WebKit::NetscapePlugin::callSetWindow):
4030
4031 2011-02-01  Anders Carlsson  <andersca@apple.com>
4032
4033         Reviewed by Adam Roben.
4034
4035         Move flushPendingLayerChanges to LayerTreeHostMac
4036         https://bugs.webkit.org/show_bug.cgi?id=53525
4037
4038         In preparation for adding more Mac specific code to flushPendingLayerChanges.
4039
4040         * WebProcess/WebPage/LayerTreeHost.cpp:
4041         * WebProcess/WebPage/LayerTreeHost.h:
4042         * WebProcess/WebPage/mac/LayerTreeHostMac.h:
4043         * WebProcess/WebPage/mac/LayerTreeHostMac.mm:
4044         (WebKit::LayerTreeHostMac::flushPendingLayerChanges):
4045
4046 2011-02-01  Beth Dakin  <bdakin@apple.com>
4047
4048         Reviewed by Sam Weinig.
4049
4050         Fix for <rdar://problem/8492788> Adopt WKScrollbarPainterController
4051
4052         Implement NSView's viewWillStartLiveResize and
4053         viewDidEndLiveResize and propagate the messages down
4054         to WebCore.
4055         * UIProcess/API/mac/WKView.mm:
4056         (-[WKView viewWillStartLiveResize]):
4057         (-[WKView viewDidEndLiveResize]):
4058         * UIProcess/WebPageProxy.cpp:
4059         (WebKit::WebPageProxy::viewWillStartLiveResize):
4060         (WebKit::WebPageProxy::viewWillEndLiveResize):
4061         * UIProcess/WebPageProxy.h:
4062         * WebProcess/WebPage/WebPage.cpp:
4063         (WebKit::WebPage::viewWillStartLiveResize):
4064         (WebKit::WebPage::viewWillEndLiveResize):
4065         * WebProcess/WebPage/WebPage.h:
4066         * WebProcess/WebPage/WebPage.messages.in:
4067
4068         A bunch of new WebKitSystemInterface functions.
4069         * WebProcess/WebCoreSupport/mac/WebSystemInterface.mm:
4070         (InitWebCoreSystemInterface):
4071
4072 2011-02-01  Dave Hyatt  <hyatt@apple.com>
4073
4074         Reviewed by Darin Adler.
4075
4076         https://bugs.webkit.org/show_bug.cgi?id=46422, make printing and pagination work
4077         with vertical text.
4078
4079         Change printing functions to check writing-mode and properly swap width and height
4080         as needed.
4081
4082         * WebProcess/WebPage/WebPage.cpp:
4083         (WebKit::WebPage::computePagesForPrinting):
4084
4085 2011-01-31  Alexey Proskuryakov  <ap@apple.com>
4086
4087         Reviewed by Maciej Stachowiak.
4088
4089         https://bugs.webkit.org/show_bug.cgi?id=53466
4090         Move WebKit2 to printing via API methods
4091
4092         Also fixes <rdar://problem/8933724> REGRESSION: Wrong pages are printed when not printing from page 1
4093
4094         Also fixes horizontal tiling (no bug filed).
4095
4096         The main idea here is that we don't force AppKit to use a different scaling factor when
4097         a Web view can't be resized to exact page size, and scale when drawing instead.
4098
4099         * UIProcess/API/mac/WKPrintingView.mm:
4100         (-[WKPrintingView _firstPrintedPageNumber]): Factored out into a separate method.
4101         (-[WKPrintingView _lastPrintedPageNumber]): Ditto.
4102         (pageDidDrawToPDF): Avoid crashing if data is null.
4103         (-[WKPrintingView _preparePDFDataForPrintingOnSecondaryThread]): Use -_firstPrintedPageNumber
4104         and -_lastPrintedPageNumber.
4105         (pageDidComputePageRects): Set frame size to what it would have been for a normal NSView
4106         that's been asked to resize.
4107         (-[WKPrintingView _pageForRect:]): Check x(), because several pages can be at the same y()
4108         when tiling horizontally.
4109         (-[WKPrintingView _drawPDFDocument:page:atPoint:]): Point to draw at and frame size are
4110         now using different units, translate as appropriate.
4111         (-[WKPrintingView _drawPreview:]): Scale the rect to WebCore units.
4112         (-[WKPrintingView drawRect:]): Correctly calculate page number when the first page to print
4113         isn't page 1.
4114         (-[WKPrintingView rectForPage:]): Scale the rect to AppKit units.
4115
4116 2011-01-31  Darin Adler  <darin@apple.com>
4117
4118         Reviewed by Adele Peterson.
4119
4120         WKView should support scrollPageDown:, scrollPageUp:, scrollToBeg and other similar selectors
4121         https://bugs.webkit.org/show_bug.cgi?id=53460
4122
4123         * UIProcess/API/mac/WKView.mm: Added WEBCORE_COMMAND macro for lots of editor commands that
4124         are implemented in WebCore so they will get forwarded. Many of these will probably work without
4125         any further changes required. Added comments about the methods that we do not yet forward.
4126         (createSelectorExceptionMap): Map scrollPageDown: to ScrollPageForward and
4127         scrollPageUp: to ScrollPageBackward because we want the page up and page down
4128         keys to follow the document logical order, not physical order. This is equivalent
4129         to what we do in WebPage::performDefaultBehaviorForKeyEvent.
4130
4131 2011-01-31  Jessie Berlin  <jberlin@apple.com>
4132
4133         Reviewed by Steve Falkenburg.
4134
4135         WebKit2: the cookies used by the WebKit2 Web Process should not go in a top-level
4136         directory.
4137         https://bugs.webkit.org/show_bug.cgi?id=53278
4138
4139         Use the name WebKit2WebProcess since the default location for the cookies is determined
4140         based on the process name (which is WebKit2WebProcess.exe on Windows).
4141
4142         * win/WebKit2.make:
4143         Copy the WebKit2WebProcess.resources directory into the AppleInternal bin.
4144
4145         * win/WebKit2WebProcess.resources: Added.
4146         * win/WebKit2WebProcess.resources/Info.plist: Added.
4147         Copied from the WebKit version of Info.plist.
4148
4149         * win/WebKit2WebProcessPostBuild.cmd:
4150         Copy the WebKit2WebProcess.resources directory into the WebKitOutPutDir's bin.
4151
4152 2011-01-31  Anders Carlsson  <andersca@apple.com>
4153
4154         Reviewed by Adam Roben.
4155
4156         Make LayerTreeHost an abstract base class and make LayerTreeHostMac inherit from it
4157         https://bugs.webkit.org/show_bug.cgi?id=53432
4158
4159         * WebKit2.xcodeproj/project.pbxproj:
4160         Add LayerTreeHostMac.h.
4161
4162         * WebProcess/WebPage/DrawingAreaImpl.cpp:
4163         * WebProcess/WebPage/DrawingAreaImpl.h:
4164         Make m_layerTreeHost an OwnPtr and initialize/destroy it appropriately.
4165
4166         * WebProcess/WebPage/LayerTreeHost.cpp:
4167         (WebKit::LayerTreeHost::create):
4168         On Mac, create a LayerTreeHostMac instance.
4169
4170         (WebKit::LayerTreeHost::~LayerTreeHost):
4171         No need to call platformInvalidate anymore.
4172
4173         * WebProcess/WebPage/LayerTreeHost.h:
4174         * WebProcess/WebPage/mac/LayerTreeHostMac.h: Added.
4175         * WebProcess/WebPage/mac/LayerTreeHostMac.mm:
4176         (WebKit::LayerTreeHostMac::~LayerTreeHostMac):
4177         Invalidate the run loop observer here instead of in platformInvalidate.
4178
4179         (WebKit::LayerTreeHostMac::scheduleLayerFlush):
4180         (WebKit::LayerTreeHostMac::flushPendingLayerChangesRunLoopObserverCallback):
4181         These are now members of LayerTreeHostMac.
4182
4183 2011-01-30  Geoffrey Garen  <ggaren@apple.com>
4184
4185         Reviewed by Sam Weinig.
4186
4187         [Take 2!]
4188         Fixed crash on window close (maybe crash on launch?) due to missing frame null checks
4189         https://bugs.webkit.org/show_bug.cgi?id=53408
4190
4191         * UIProcess/WebContext.cpp:
4192         (WebKit::WebContext::didNavigateWithNavigationData):
4193         (WebKit::WebContext::didPerformClientRedirect):
4194         (WebKit::WebContext::didPerformServerRedirect):
4195         (WebKit::WebContext::didUpdateHistoryTitle): Use MESSAGE_CHECK because
4196         we don't think we should be able to reach this state under normal conditions.
4197
4198 2011-01-30  Geoffrey Garen  <ggaren@apple.com>
4199
4200         Reviewed by Maciej Stachowiak.
4201
4202         Fixed crash on window close (maybe crash on launch?) due to missing
4203         frame null checks
4204         https://bugs.webkit.org/show_bug.cgi?id=53408
4205
4206         * UIProcess/WebContext.cpp:
4207         (WebKit::WebContext::didNavigateWithNavigationData):
4208         (WebKit::WebContext::didPerformClientRedirect):
4209         (WebKit::WebContext::didPerformServerRedirect):
4210         (WebKit::WebContext::didUpdateHistoryTitle): Check for NULL, since we're
4211         calling a function that can return it.
4212
4213 2011-01-30  Balazs Kelemen  <kbalazs@webkit.org>
4214
4215         Reviewed by Csaba Osztrogonác.
4216
4217         [Qt][WK2]REGRESSION (r76991): Fix build errors
4218         https://bugs.webkit.org/show_bug.cgi?id=53400
4219
4220         Revert the temporary build fix (http://trac.webkit.org/changeset/77088)
4221         and remove WebKit2Prefix.h from the build.
4222         * UIProcess/API/qt/qwkhistory.h:
4223         * UIProcess/API/qt/qwkpage.h:
4224         * WebKit2.pro:
4225
4226 2011-01-30  Jeff Miller  <jeffm@apple.com>
4227
4228         Reviewed by Dan Bernstein.
4229
4230         FindController::updateFindIndicator() crashes if selection isn't visible
4231         https://bugs.webkit.org/show_bug.cgi?id=53399
4232
4233         * WebProcess/WebPage/FindController.cpp:
4234         (WebKit::FindController::updateFindIndicator): Return false if ShareableBitmap::createShareable() returns null (typically because the selection rect is empty).
4235
4236 2011-01-30  Csaba Osztrogonác  <ossy@webkit.org>
4237
4238         Unreviewed.
4239
4240         [Qt][WK2] Buildfix.
4241
4242         * UIProcess/API/qt/qwkhistory.h:
4243         * UIProcess/API/qt/qwkpage.h:
4244
4245 2011-01-29  Maciej Stachowiak  <mjs@apple.com>
4246
4247         Reviewed by Geoffrey Garen.
4248
4249         Add WKPageCopyPendingAPIRequestURL API
4250         https://bugs.webkit.org/show_bug.cgi?id=53383
4251
4252         This API returns the last URL requested for load via API, if neither that load nor any
4253         other load subsequently reaches the provisional state.
4254         
4255         This is useful to be able to track loads initiated via the API
4256         
4257         * UIProcess/API/C/WKPage.cpp:
4258         (WKPageCopyPendingAPIRequestURL): Retrieve the pending URL.
4259         * UIProcess/API/C/WKPage.h:
4260         * UIProcess/WebPageProxy.cpp:
4261         (WebKit::WebPageProxy::loadURL): Set pending URL.
4262         (WebKit::WebPageProxy::loadURLRequest): ditto
4263         (WebKit::WebPageProxy::reload): ditto
4264         (WebKit::WebPageProxy::goForward): ditto
4265         (WebKit::WebPageProxy::goBack): ditto
4266         (WebKit::WebPageProxy::estimatedProgress): Assume the initial
4267         progress value when there is a pending URL.
4268         (WebKit::WebPageProxy::didStartProvisionalLoadForFrame): Clear
4269         pending URL; clients should look at the provisional URL now.
4270         (WebKit::WebPageProxy::decidePolicyForNavigationAction): Clear
4271         pending URL if it doesn't match the policy URL; this means we
4272         were interrupted by another load.
4273         * UIProcess/WebPageProxy.h:
4274         (WebKit::WebPageProxy::pendingAPIRequestURL): Helper function.
4275         (WebKit::WebPageProxy::clearPendingAPIRequestURL): ditto
4276         (WebKit::WebPageProxy::setPendingAPIRequestURL): ditto
4277
4278 2011-01-28  Jon Honeycutt  <jhoneycutt@apple.com>
4279
4280         Downloads in WK2 on Windows should write resume data to bundle
4281         https://bugs.webkit.org/show_bug.cgi?id=53282
4282         <rdar://problem/8753077>
4283
4284         Reviewed by Alice Liu.
4285
4286         * WebProcess/Downloads/Download.cpp:
4287         (WebKit::Download::decideDestinationWithSuggestedFilename):
4288         Call didDecideDestination(), now that the destination is decided.
4289
4290         * WebProcess/Downloads/Download.h:
4291         Declare didDecideDestination(). Added member variables to hold the
4292         destination file path and the download bundle path.
4293         (WebKit::Download::destination):
4294         Return the path to the final destination for this download.
4295
4296         * WebProcess/Downloads/cf/DownloadCFNet.cpp:
4297         (WebKit::Download::start):
4298         Remove the name of an unused param.
4299         (WebKit::Download::startWithHandle):
4300         Ditto.
4301         (WebKit::Download::cancel):
4302         Tell CFNetwork not to delete the file upon failure, and tell it to
4303         cancel the download. Copy the resume data for the download, and append
4304         it to the download bundle. Call didCancel() with an empty
4305         DataReference, since we have written our own resume data.
4306         (WebKit::decideDestinationWithSuggestedObjectNameCallback):
4307         Remove some unused param names. Removed the call to
4308         CFURLDownloadSetDestination() - this is now handled in
4309         Download::didDecideDestination().
4310         (WebKit::didCreateDestinationCallback):
4311         Report that the final destination was created, rather than the download
4312         bundle, matching old WebKit.
4313         (WebKit::Download::didDecideDestination):
4314         Store the final destination and the download bundle paths, and call
4315         CFURLDownloadSetDestination(), passing the path to the download bundle.
4316
4317         * WebProcess/Downloads/curl/DownloadCurl.cpp:
4318         (WebKit::Download::didDecideDestination):
4319         Stubbed.
4320
4321         * WebProcess/Downloads/mac/DownloadMac.mm:
4322         (WebKit::Download::didDecideDestination):
4323         Stubbed - unneeded on the Mac.
4324
4325         * WebProcess/Downloads/qt/DownloadQt.cpp:
4326         (WebKit::Download::didDecideDestination):
4327         Stubbed.
4328
4329 2011-01-29  Jeff Miller  <jeffm@apple.com>
4330
4331         Reviewed by Anders Carlsson.
4332
4333         Support find bouncy in WebKit2 on Windows
4334         https://bugs.webkit.org/show_bug.cgi?id=53329
4335         <rdar://problem/8565843>
4336         The Mac implements the find bouncy inside of WebKit in the UI process for WebKit2, but we need to do this inside Safari for WebKit2 on Windows.
4337         Add infrastructure to call back into the app when the find indicator changes.
4338
4339         * UIProcess/API/C/win/WKView.cpp: Cleanup some code style violations.
4340         (WKViewSetFindIndicatorCallback): Added.
4341         (WKViewGetFindIndicatorCallback): Added.
4342         * UIProcess/API/C/win/WKView.h: Cleanup some code style violations.
4343         * UIProcess/FindIndicator.cpp:
4344         (WebKit::FindIndicator::create):
4345         (WebKit::FindIndicator::FindIndicator):
4346         (WebKit::FindIndicator::frameRect):
4347         (WebKit::FindIndicator::draw):
4348         Rename m_selectionRect to m_selectionRectInWindowCoordinates and m_textRects to m_textRectsInSelectionRectCoordinates (along with similarly named local variables) to be more explict about the coordinate system.
4349         * UIProcess/FindIndicator.h:
4350         (WebKit::FindIndicator::selectionRectInWindowCoordinates): Added.
4351         (WebKit::FindIndicator::textRects): Rename m_textRects to m_textRectsInSelectionRectCoordinates.
4352         * UIProcess/WebPageProxy.cpp:
4353         (WebKit::WebPageProxy::setFindIndicator): Rename selectionRect to selectionRectInWindowCoordinates and textRects to textRectsInSelectionRectCoordinates to be more explict about the coordinate system.
4354         * UIProcess/WebPageProxy.h: Ditto.
4355         * UIProcess/win/WebView.cpp:
4356         (WebKit::WebView::WebView):
4357         (WebKit::WebView::setFindIndicator): Added.
4358         (WebKit::WebView::setFindIndicatorCallback): Added.
4359         (WebKit::WebView::getFindIndicatorCallback): Added.
4360         * UIProcess/win/WebView.h:
4361
4362 2011-01-28  Alexey Proskuryakov  <ap@apple.com>
4363
4364         Reviewed by Dan Bernstein.
4365
4366         https://bugs.webkit.org/show_bug.cgi?id=53367
4367         <rdar://problem/8926460> Remove dysfunctional code from -[WKPrintingView _isPrintingPreview].
4368
4369         * UIProcess/API/mac/WKPrintingView.mm: (-[WKPrintingView _isPrintingPreview]): The common
4370         branch works fine for now, no need to make platforms different.
4371
4372 2011-01-28  Maciej Stachowiak  <mjs@apple.com>
4373
4374         Reviewed by Dan Bernstein.
4375
4376         WKPageGetEstimatedProgress returns wrong value after a mainframe provisional load has started
4377         https://bugs.webkit.org/show_bug.cgi?id=53358
4378
4379         * UIProcess/WebPageProxy.cpp:
4380         (WebKit::WebPageProxy::didStartProgress): Start progress at the magic initial value, not 0.
4381
4382 2011-01-28  Anders Carlsson  <andersca@apple.com>
4383
4384         Yet another build fix (What was I thinking?)
4385
4386         * WebProcess/Downloads/Download.h:
4387         * WebProcess/Plugins/PluginProxy.h:
4388
4389 2011-01-28  Anders Carlsson  <andersca@apple.com>
4390
4391         Fix Windows build.
4392
4393         * Shared/PrintInfo.h:
4394
4395 2011-01-28  Anders Carlsson  <andersca@apple.com>
4396
4397         Fix tyop.
4398
4399         * Shared/mac/CoreAnimationRenderer.mm:
4400
4401 2011-01-28  Anders Carlsson  <andersca@apple.com>
4402
4403         Reviewed by Sam Weinig.
4404
4405         Add CoreAnimationRenderer class
4406         https://bugs.webkit.org/show_bug.cgi?id=53343
4407
4408         * Shared/mac/CoreAnimationRenderer.h: Added.
4409         * Shared/mac/CoreAnimationRenderer.mm: Added.
4410
4411         (WebKit::CoreAnimationRenderer::CoreAnimationRenderer):
4412         Initialize the underlying CARenderer object and hook up a notification observer.
4413
4414         (WebKit::CoreAnimationRenderer::~CoreAnimationRenderer):
4415         Assert that the client is null. It has been set to null by the call to invalidate().
4416
4417         (WebKit::CoreAnimationRenderer::setBounds):
4418         Update the bounds on the CARenderer and the root layer.
4419
4420         (WebKit::CoreAnimationRenderer::render):
4421         Ask the renderer to render and return the next frame time.
4422
4423         (WebKit::CoreAnimationRenderer::invalidate):
4424         Remove the change observer and reset the client.
4425
4426         (WebKit::CoreAnimationRenderer::rendererDidChange):
4427         Call the client member function.
4428
4429         * WebKit2.xcodeproj/project.pbxproj:
4430         Add new files.
4431
4432 2011-01-28  Anders Carlsson  <andersca@apple.com>
4433
4434         Reviewed by Sam Weinig.
4435
4436         Add an OBJC_CLASS macro for forward declaring an Objective-C class
4437         https://bugs.webkit.org/show_bug.cgi?id=53337
4438
4439         * Shared/NativeWebKeyboardEvent.h:
4440         * Shared/PrintInfo.h:
4441         * UIProcess/ChunkedUpdateDrawingAreaProxy.h:
4442         * UIProcess/LayerBackedDrawingAreaProxy.h:
4443         * UIProcess/WebInspectorProxy.h:
4444         * UIProcess/mac/WebContextMenuProxyMac.h:
4445         * UIProcess/mac/WebPopupMenuProxyMac.h:
4446         * WebProcess/Downloads/Download.h:
4447         * WebProcess/Plugins/PluginProxy.h:
4448         * WebProcess/WebPage/LayerBackedDrawingArea.h:
4449         * WebProcess/WebPage/WebPage.h:
4450         * config.h:
4451
4452 2011-01-28  Anders Carlsson  <andersca@apple.com>
4453
4454         Reviewed by Sam Weinig.
4455
4456         Don't put config.h in the message headers.
4457
4458         * Scripts/webkit2/messages.py:
4459         * Scripts/webkit2/messages_unittest.py:
4460
4461 2011-01-28  Anders Carlsson  <andersca@apple.com>
4462
4463         Fix build.
4464
4465         * Shared/mac/ShareableSurface.cpp:
4466
4467 2011-01-28  Anders Carlsson  <andersca@apple.com>
4468
4469         Try to unbreak the Windows build.
4470
4471         * UIProcess/cf/WebPageProxyCF.cpp:
4472
4473 2011-01-28  Brady Eidson  <beidson@apple.com>
4474
4475         Reviewed by John Sullivan.
4476
4477         https://bugs.webkit.org/show_bug.cgi?id=53330
4478         Need InjectedBundle API to get the response MIMEType for a URL
4479
4480         * WebProcess/InjectedBundle/API/c/WKBundleFrame.cpp:
4481         (WKBundleFrameCopyMIMETypeForResourceWithURL):
4482         * WebProcess/InjectedBundle/API/c/WKBundleFrame.h:
4483
4484         Get the MIMEType from the in-memory cache, or cachedResponseMIMETypeForURL() if not available:
4485         * WebProcess/WebPage/WebFrame.cpp:
4486         (WebKit::WebFrame::mimeTypeForResourceWithURL):
4487         * WebProcess/WebPage/WebFrame.h:
4488
4489         Get the MIMEType from the platform's disk cache if available:
4490         * WebProcess/WebPage/WebPage.h:
4491         * WebProcess/WebPage/mac/WebPageMac.mm:
4492         (WebKit::WebPage::cachedResponseMIMETypeForURL):
4493         * WebProcess/WebPage/qt/WebPageQt.cpp:
4494         (WebKit::WebPage::cachedResponseMIMETypeForURL):
4495         * WebProcess/WebPage/win/WebPageWin.cpp:
4496         (WebKit::WebPage::cachedResponseMIMETypeForURL):
4497
4498 2011-01-28  Anders Carlsson  <andersca@apple.com>
4499
4500         Reviewed by Sam Weinig.
4501
4502         Clean up the mess introduced when config.h was added to the project:
4503
4504         - Remove the contents of WebKit2Prefix.h that is now in config.h, to avoid including everything
4505           twice in each file, probably slowing down compile time.
4506
4507         - Add config.h to all the files that were forgotten in order to keep the build from breaking.
4508
4509         - Added trap to ensure that config.h is included at the top of every implementation file. If this
4510           had been added it would have caught the previous issue.
4511
4512 2011-01-28  Stephanie Lewis  <slewis@apple.com>
4513
4514         Reviewed by Geoff Garen.
4515
4516         <rdar://problem/8857651> Implement unregisterWorld for WebKit2
4517         Rename unregisterWorld to clearWrappers.  Clearing the wrappers reduces the 
4518         memory use of isolated worlds.
4519
4520         * WebProcess/InjectedBundle/API/c/WKBundleScriptWorld.cpp:
4521         (WKBundleScriptWorldClearWrappers):
4522         * WebProcess/InjectedBundle/API/c/WKBundleScriptWorld.h:
4523         * WebProcess/InjectedBundle/InjectedBundleScriptWorld.cpp:
4524         (WebKit::InjectedBundleScriptWorld::clearWrappers):
4525         * WebProcess/InjectedBundle/InjectedBundleScriptWorld.h:
4526
4527 2011-01-28  Dan Bernstein  <mitz@apple.com>
4528
4529         Reviewed by Sam Weinig.
4530
4531         <select> can't display right-to-left (rtl) languages
4532         https://bugs.webkit.org/show_bug.cgi?id=19785
4533
4534         * Shared/WebPopupItem.cpp:
4535         (WebKit::WebPopupItem::WebPopupItem): Added initializers for m_textDirection and m_hasTextDirectionOverride.
4536         (WebKit::WebPopupItem::encode): Encode the item's writing direction and direction override values.
4537         (WebKit::WebPopupItem::decode): Decode the item's writing direction and direction override values.
4538         * Shared/WebPopupItem.h:
4539         * UIProcess/WebPageProxy.cpp:
4540         (WebKit::WebPageProxy::showPopupMenu): Added a parameter for the menu's text direction.
4541         * UIProcess/WebPageProxy.h:
4542         * UIProcess/WebPageProxy.messages.in: Ditto.
4543         * UIProcess/WebPopupMenuProxy.h:
4544         * UIProcess/mac/WebPopupMenuProxyMac.h:
4545         * UIProcess/mac/WebPopupMenuProxyMac.mm:
4546         (WebKit::WebPopupMenuProxyMac::populate): Added a parameter for the menu's text direction.
4547         Set items' text alignment to match the menu's writing direction. Set items' writing direction
4548         and direction override according to their styles.
4549         (WebKit::WebPopupMenuProxyMac::showPopupMenu): Set the pop-up's layout direction.
4550         * WebProcess/WebCoreSupport/WebChromeClient.cpp:
4551         (WebKit::WebChromeClient::selectItemWritingDirectionIsNatural): Changed to return false.
4552         (WebKit::WebChromeClient::selectItemAlignmentFollowsMenuWritingDirection): Added.
4553         * WebProcess/WebCoreSupport/WebChromeClient.h:
4554         * WebProcess/WebCoreSupport/WebPopupMenu.cpp:
4555         (WebKit::WebPopupMenu::populateItems): Initialize items' writing direction and direction override
4556         values.
4557         (WebKit::WebPopupMenu::show): Pass the menu's writing direction.
4558
4559 2011-01-28  Anders Carlsson  <andersca@apple.com>
4560
4561         Reviewed by Adam Roben.
4562
4563         Add ShareableSurface class
4564         https://bugs.webkit.org/show_bug.cgi?id=53313
4565
4566         * Shared/mac/ShareableSurface.cpp: Added.
4567         (WebKit::ShareableSurface::Handle::Handle):
4568         Initialize the mach port.
4569
4570         (WebKit::ShareableSurface::Handle::~Handle):
4571         Deallocate our send right if needed.
4572
4573         (WebKit::ShareableSurface::Handle::encode):
4574         Encode the send right, and then null it out.
4575
4576         (WebKit::ShareableSurface::Handle::decode):
4577         Decode the send right.
4578         
4579         (WebKit::createIOSurface):
4580         Create an IOSurface with the given size.
4581
4582         (WebKit::ShareableSurface::create):
4583         Create an IOSurface, either from a size or from a handle.
4584
4585         (WebKit::ShareableSurface::~ShareableSurface):
4586         Delete the texture and framebuffer.
4587
4588         (WebKit::ShareableSurface::createHandle):
4589         Create a mach port from the surface.
4590
4591         (WebKit::ShareableSurface::attach):
4592         Create an FBO if needed and bind it.
4593
4594         (WebKit::ShareableSurface::detach):
4595         Unbind the FBO.
4596
4597         (WebKit::ShareableSurface::textureID):
4598         Generate a new texture and bind it to the IOSurface.
4599
4600         * Shared/mac/ShareableSurface.h: Added.
4601
4602         * WebKit2.xcodeproj/project.pbxproj:
4603         Add new files.
4604
4605 2011-01-27  Adam Roben  <aroben@apple.com>
4606
4607         Change BinarySemaphore to wrap an auto-reset Win32 event on Windows
4608
4609         Fixes <http://webkit.org/b/53208> <rdar://problem/8922490>.
4610
4611         Reviewed by Dave Hyatt.
4612
4613         * Platform/CoreIPC/BinarySemaphore.cpp: Wrap this implementation in #if !PLATFORM(WIN).
4614
4615         * Platform/CoreIPC/BinarySemaphore.h: Make the Windows implementation have a single HANDLE
4616         member that holds the event.
4617
4618         * Platform/CoreIPC/win/BinarySemaphoreWin.cpp: Copied from Source/WebKit2/Platform/CoreIPC/BinarySemaphore.cpp.
4619         (CoreIPC::BinarySemaphore::BinarySemaphore): Create our event.
4620         (CoreIPC::BinarySemaphore::~BinarySemaphore): Destory our event.
4621         (CoreIPC::BinarySemaphore::signal): Signal the event.
4622         (CoreIPC::BinarySemaphore::wait): Convert the absolute time to a wait interval, then wait
4623         for the event to be signaled or for the interval to elapse.
4624
4625         * win/WebKit2.vcproj: Added BinarySemaphoreWin.cpp. Also let VS have its way with the file.
4626
4627 2011-01-27  Chris Marrin  <cmarrin@apple.com>
4628
4629         Reviewed by Anders Carlsson.
4630
4631         WebKit2: Page flashes just before accelerated compositing animation
4632         https://bugs.webkit.org/show_bug.cgi?id=53274
4633
4634         When switching out of compositing mode, the new ChunkedUpdateDrawingAreaProxy
4635         is getting created with the current page size. When the setSize() call is
4636         subsequently made, the sizeDidChange() call is not made (which does the initial
4637         render of the page) because the old size and new size are the same. The solution
4638         is to skip the setting of the size in the ctor and let it go through a size
4639         change sequence.
4640
4641         * UIProcess/DrawingAreaProxy.cpp:
4642         (WebKit::DrawingAreaProxy::DrawingAreaProxy):
4643
4644 2011-01-28  Alejandro G. Castro  <alex@igalia.com>
4645
4646         Reviewed by Xan Lopez.
4647
4648         [GTK] Fix dist compilation for the release
4649         https://bugs.webkit.org/show_bug.cgi?id=53290
4650
4651         * GNUmakefile.am: Remove a file that is not in the repository
4652         anymore.
4653
4654
4655 2011-01-28  Andreas Kling  <kling@webkit.org>
4656
4657         Rubber-stamped by Simon Hausmann.
4658
4659         [Qt][WK2] Combine QWKPage::engine{Connected,Disconnected} into one signal.
4660
4661         Having two signals for this is redundant, combine them into
4662         QWKPage::engineConnectionChanged(bool connected).
4663
4664         * UIProcess/API/qt/qwkpage.cpp:
4665         (QWKPagePrivate::didRelaunchProcess):
4666         (QWKPagePrivate::processDidCrash):
4667         * UIProcess/API/qt/qwkpage.h:
4668
4669 2011-01-27  Laszlo Gombos  <laszlo.1.gombos@nokia.com>
4670
4671         Reviewed by Maciej Stachowiak.
4672
4673         Build fix for Mac Intel Debug after r76916
4674         https://bugs.webkit.org/show_bug.cgi?id=53284
4675
4676         Fix macro redefinition by guarding the redefined macros.
4677
4678         * config.h:
4679
4680 2011-01-27  Laszlo Gombos  <laszlo.1.gombos@nokia.com>
4681
4682         Unreviewed build fix for Mac Intel Debug after r76916.
4683
4684         Fix macro redefinition by guarding the redefined macros.
4685
4686         Check if the macro is already defined before defininig it.
4687         c++config.h has the same macros with the same values.
4688
4689         * config.h:
4690
4691 2011-01-27  Laszlo Gombos  <laszlo.1.gombos@nokia.com>
4692
4693         Reviewed by Adam Barth.
4694
4695         Update the expected results for test-webkitpy after r76916.
4696
4697         Include "config.h" in the expected results as well.
4698
4699         * Scripts/webkit2/messages_unittest.py:
4700
4701 2011-01-27  Laszlo Gombos  <laszlo.1.gombos@nokia.com>
4702
4703         Unreviewed buildfix for SnowLeopard Intel Debug.
4704
4705         Fix macro redefinition by not including config.h.
4706
4707         Revert previous change in WebPageProxyCF.cpp.
4708
4709         * UIProcess/cf/WebPageProxyCF.cpp:
4710
4711 2011-01-27  Greg Coletta  <greg.coletta@nokia.com>
4712
4713         Reviewed by Laszlo Gombos.
4714
4715         Get rid of prefix header dependency for WebKit2 build system.
4716         https://bugs.webkit.org/show_bug.cgi?id=50174
4717
4718         Add config.h include explicitelly.
4719
4720         * Platform/CoreIPC/ArgumentDecoder.cpp:
4721         * Platform/CoreIPC/ArgumentEncoder.cpp:
4722         * Platform/CoreIPC/Attachment.cpp:
4723         * Platform/CoreIPC/BinarySemaphore.cpp:
4724         * Platform/CoreIPC/Connection.cpp:
4725         * Platform/CoreIPC/DataReference.cpp:
4726         * Platform/CoreIPC/gtk/ConnectionGtk.cpp:
4727         * Platform/CoreIPC/mac/ConnectionMac.cpp:
4728         * Platform/CoreIPC/qt/ConnectionQt.cpp:
4729         * Platform/CoreIPC/win/ConnectionWin.cpp:
4730         * Platform/Logging.cpp:
4731         * Platform/Module.cpp:
4732         * Platform/Region.cpp:
4733         * Platform/RunLoop.cpp:
4734         * Platform/WorkQueue.cpp:
4735         * Platform/cg/CGUtilities.cpp:
4736         * Platform/gtk/RunLoopGtk.cpp:
4737         * Platform/gtk/SharedMemoryGtk.cpp:
4738         * Platform/gtk/WorkQueueGtk.cpp:
4739         * Platform/mac/MachUtilities.cpp:
4740         * Platform/mac/SharedMemoryMac.cpp:
4741         * Platform/mac/WorkQueueMac.cpp:
4742         * Platform/qt/MappedMemoryPool.cpp:
4743         * Platform/qt/ModuleQt.cpp:
4744         * Platform/qt/RunLoopQt.cpp:
4745         * Platform/qt/WorkQueueQt.cpp:
4746         * Platform/win/ModuleWin.cpp:
4747         * Platform/win/RunLoopWin.cpp:
4748         * Platform/win/SharedMemoryWin.cpp:
4749         * Platform/win/WorkQueueWin.cpp:
4750         * PluginProcess/PluginControllerProxy.cpp:
4751         * PluginProcess/PluginProcess.cpp:
4752         * PluginProcess/WebProcessConnection.cpp:
4753         * Scripts/webkit2/messages.py:
4754         * Shared/API/c/WKArray.cpp:
4755         * Shared/API/c/WKCertificateInfo.cpp:
4756         * Shared/API/c/WKContextMenuItem.cpp:
4757         * Shared/API/c/WKData.cpp:
4758         * Shared/API/c/WKDictionary.cpp:
4759         * Shared/API/c/WKError.cpp:
4760         * Shared/API/c/WKImage.cpp:
4761         * Shared/API/c/WKMutableArray.cpp:
4762         * Shared/API/c/WKMutableDictionary.cpp:
4763         * Shared/API/c/WKNumber.cpp:
4764         * Shared/API/c/WKSecurityOrigin.cpp:
4765         * Shared/API/c/WKSerializedScriptValue.cpp:
4766         * Shared/API/c/WKString.cpp:
4767         * Shared/API/c/WKType.cpp:
4768         * Shared/API/c/WKURL.cpp:
4769         * Shared/API/c/WKURLRequest.cpp:
4770         * Shared/API/c/WKURLResponse.cpp:
4771         * Shared/API/c/WKUserContentURLPattern.cpp:
4772         * Shared/API/c/cf/WKStringCF.cpp:
4773         * Shared/API/c/cf/WKURLCF.cpp:
4774         * Shared/API/c/cf/WKURLRequestCF.cpp:
4775         * Shared/API/c/cf/WKURLResponseCF.cpp:
4776         * Shared/API/c/cg/WKImageCG.cpp:
4777         * Shared/API/c/win/WKCertificateInfoWin.cpp:
4778         * Shared/ChildProcess.cpp:
4779         * Shared/ImmutableArray.cpp:
4780         * Shared/ImmutableDictionary.cpp:
4781         * Shared/MutableArray.cpp:
4782         * Shared/MutableDictionary.cpp:
4783         * Shared/OriginAndDatabases.cpp:
4784         * Shared/PlatformPopupMenuData.cpp:
4785         * Shared/Plugins/NPIdentifierData.cpp:
4786         * Shared/Plugins/NPObjectMessageReceiver.cpp:
4787         * Shared/Plugins/NPObjectProxy.cpp:
4788         * Shared/Plugins/NPRemoteObjectMap.cpp:
4789         * Shared/Plugins/NPVariantData.cpp:
4790         * Shared/Plugins/Netscape/NetscapePluginModule.cpp:
4791         * Shared/Plugins/Netscape/win/NetscapePluginModuleWin.cpp:
4792         * Shared/Plugins/Netscape/x11/NetscapePluginModuleX11.cpp:
4793         * Shared/Plugins/PluginProcessCreationParameters.cpp:
4794         * Shared/PrintInfo.cpp:
4795         * Shared/SessionState.cpp:
4796         * Shared/ShareableBitmap.cpp:
4797         * Shared/UpdateInfo.cpp:
4798         * Shared/VisitedLinkTable.cpp:
4799         * Shared/WebBackForwardListItem.cpp:
4800         * Shared/WebContextMenuItem.cpp:
4801         * Shared/WebContextMenuItemData.cpp:
4802         * Shared/WebError.cpp:
4803         * Shared/WebEvent.cpp:
4804         * Shared/WebEventConversion.cpp:
4805         * Shared/WebGeolocationPosition.cpp:
4806         * Shared/WebImage.cpp:
4807         * Shared/WebKeyboardEvent.cpp:
4808         * Shared/WebMemorySampler.cpp:
4809         * Shared/WebMouseEvent.cpp:
4810         * Shared/WebOpenPanelParameters.cpp:
4811         * Shared/WebPageCreationParameters.cpp:
4812         * Shared/WebPageGroupData.cpp:
4813         * Shared/WebPlatformTouchPoint.cpp:
4814         * Shared/WebPopupItem.cpp:
4815         * Shared/WebPreferencesStore.cpp:
4816         * Shared/WebProcessCreationParameters.cpp:
4817         * Shared/WebTouchEvent.cpp:
4818         * Shared/WebURLRequest.cpp:
4819         * Shared/WebURLResponse.cpp:
4820         * Shared/WebWheelEvent.cpp:
4821         * Shared/cairo/ShareableBitmapCairo.cpp:
4822         * Shared/cf/ArgumentCodersCF.cpp:
4823         * Shared/cg/ShareableBitmapCG.cpp:
4824         * Shared/gtk/ShareableBitmapGtk.cpp:
4825         * Shared/gtk/WebCoreArgumentCodersGtk.cpp:
4826         * Shared/mac/CommandLineMac.cpp:
4827         * Shared/mac/UpdateChunk.cpp:
4828         * Shared/qt/CleanupHandler.cpp:
4829         * Shared/qt/NativeWebKeyboardEventQt.cpp:
4830         * Shared/qt/ShareableBitmapQt.cpp:
4831         * Shared/qt/UpdateChunk.cpp:
4832         * Shared/qt/WebCoreArgumentCodersQt.cpp:
4833         * Shared/qt/WebEventFactoryQt.cpp:
4834         * Shared/qt/WebURLRequestQt.cpp:
4835         * Shared/qt/WebURLResponseQt.cpp:
4836         * Shared/win/CommandLineWin.cpp:
4837         * Shared/win/NativeWebKeyboardEventWin.cpp:
4838         * Shared/win/PlatformCertificateInfo.cpp:
4839         * Shared/win/UpdateChunk.cpp:
4840         * Shared/win/WebCoreArgumentCodersWin.cpp:
4841         * Shared/win/WebEventFactory.cpp:
4842         * Shared/win/WebURLRequestWin.cpp:
4843         * Shared/win/WebURLResponseWin.cpp:
4844         * UIProcess/API/C/WKAuthenticationChallenge.cpp:
4845         * UIProcess/API/C/WKAuthenticationDecisionListener.cpp:
4846         * UIProcess/API/C/WKBackForwardList.cpp:
4847         * UIProcess/API/C/WKBackForwardListItem.cpp:
4848         * UIProcess/API/C/WKContext.cpp:
4849         * UIProcess/API/C/WKCredential.cpp:
4850         * UIProcess/API/C/WKDatabaseManager.cpp:
4851         * UIProcess/API/C/WKDownload.cpp:
4852         * UIProcess/API/C/WKFormSubmissionListener.cpp:
4853         * UIProcess/API/C/WKFrame.cpp:
4854         * UIProcess/API/C/WKFramePolicyListener.cpp:
4855         * UIProcess/API/C/WKGeolocationManager.cpp:
4856         * UIProcess/API/C/WKGeolocationPermissionRequest.cpp:
4857         * UIProcess/API/C/WKGeolocationPosition.cpp:
4858         * UIProcess/API/C/WKInspector.cpp:
4859         * UIProcess/API/C/WKNavigationData.cpp:
4860         * UIProcess/API/C/WKOpenPanelParameters.cpp:
4861         * UIProcess/API/C/WKOpenPanelResultListener.cpp:
4862         * UIProcess/API/C/WKPage.cpp:
4863         * UIProcess/API/C/WKPageGroup.cpp:
4864         * UIProcess/API/C/WKPreferences.cpp:
4865         * UIProcess/API/C/WKProtectionSpace.cpp:
4866         * UIProcess/API/C/win/WKContextWin.cpp:
4867         * UIProcess/API/C/win/WKView.cpp:
4868         * UIProcess/API/C/win/WKViewPrivate.cpp:
4869         * UIProcess/API/cpp/qt/WKStringQt.cpp:
4870         * UIProcess/API/cpp/qt/WKURLQt.cpp:
4871         * UIProcess/API/qt/ClientImpl.cpp:
4872         * UIProcess/API/qt/qgraphicswkview.cpp:
4873         * UIProcess/API/qt/qwkcontext.cpp:
4874         * UIProcess/API/qt/qwkpage.cpp:
4875         * UIProcess/API/qt/qwkpreferences.cpp:
4876         * UIProcess/Authentication/AuthenticationChallengeProxy.cpp:
4877         * UIProcess/Authentication/AuthenticationDecisionListener.cpp:
4878         * UIProcess/Authentication/WebCredential.cpp:
4879         * UIProcess/Authentication/WebProtectionSpace.cpp:
4880         * UIProcess/BackingStore.cpp:
4881         * UIProcess/ChunkedUpdateDrawingAreaProxy.cpp:
4882         * UIProcess/Downloads/DownloadProxy.cpp:
4883         * UIProcess/DrawingAreaProxy.cpp:
4884         * UIProcess/DrawingAreaProxyImpl.cpp:
4885         * UIProcess/FindIndicator.cpp:
4886         * UIProcess/GeolocationPermissionRequestManagerProxy.cpp:
4887         * UIProcess/GeolocationPermissionRequestProxy.cpp:
4888         * UIProcess/Launcher/ProcessLauncher.cpp:
4889         * UIProcess/Launcher/ThreadLauncher.cpp:
4890         * UIProcess/Launcher/gtk/ProcessLauncherGtk.cpp:
4891         * UIProcess/Launcher/gtk/ThreadLauncherGtk.cpp:
4892         * UIProcess/Launcher/qt/ProcessLauncherQt.cpp:
4893         * UIProcess/Launcher/qt/ThreadLauncherQt.cpp:
4894         * UIProcess/Launcher/win/ProcessLauncherWin.cpp:
4895         * UIProcess/Launcher/win/ThreadLauncherWin.cpp:
4896         * UIProcess/LayerBackedDrawingAreaProxy.cpp:
4897         * UIProcess/Plugins/PluginInfoStore.cpp:
4898         * UIProcess/Plugins/PluginProcessManager.cpp:
4899         * UIProcess/Plugins/PluginProcessProxy.cpp:
4900         * UIProcess/Plugins/gtk/PluginInfoStoreGtk.cpp:
4901         * UIProcess/Plugins/qt/PluginInfoStoreQt.cpp:
4902         * UIProcess/Plugins/win/PluginInfoStoreWin.cpp:
4903         * UIProcess/ResponsivenessTimer.cpp:
4904         * UIProcess/TiledDrawingAreaProxy.cpp:
4905         * UIProcess/VisitedLinkProvider.cpp:
4906         * UIProcess/WebBackForwardList.cpp:
4907         * UIProcess/WebContext.cpp:
4908         * UIProcess/WebContextInjectedBundleClient.cpp:
4909         * UIProcess/WebContextMenuProxy.cpp:
4910         * UIProcess/WebDatabaseManagerProxy.cpp:
4911         * UIProcess/WebDatabaseManagerProxyClient.cpp:
4912         * UIProcess/WebDownloadClient.cpp:
4913         * UIProcess/WebEditCommandProxy.cpp:
4914         * UIProcess/WebFindClient.cpp:
4915         * UIProcess/WebFormClient.cpp:
4916         * UIProcess/WebFormSubmissionListenerProxy.cpp:
4917         * UIProcess/WebFrameListenerProxy.cpp:
4918         * UIProcess/WebFramePolicyListenerProxy.cpp:
4919         * UIProcess/WebFrameProxy.cpp:
4920         * UIProcess/WebGeolocationManagerProxy.cpp:
4921         * UIProcess/WebGeolocationProvider.cpp:
4922         * UIProcess/WebHistoryClient.cpp:
4923         * UIProcess/WebInspectorProxy.cpp:
4924         * UIProcess/WebLoaderClient.cpp:
4925         * UIProcess/WebNavigationData.cpp:
4926         * UIProcess/WebOpenPanelResultListenerProxy.cpp:
4927         * UIProcess/WebPageContextMenuClient.cpp:
4928         * UIProcess/WebPageGroup.cpp:
4929         * UIProcess/WebPageProxy.cpp:
4930         * UIProcess/WebPolicyClient.cpp:
4931         * UIProcess/WebPreferences.cpp:
4932         * UIProcess/WebProcessManager.cpp:
4933         * UIProcess/WebProcessProxy.cpp:
4934         * UIProcess/WebResourceLoadClient.cpp:
4935         * UIProcess/WebUIClient.cpp:
4936         * UIProcess/cf/WebBackForwardListCF.cpp:
4937         * UIProcess/cf/WebPageProxyCF.cpp:
4938         * UIProcess/cf/WebPreferencesCF.cpp:
4939         * UIProcess/gtk/TextCheckerGtk.cpp:
4940         * UIProcess/gtk/WebInspectorGtk.cpp:
4941         * UIProcess/gtk/WebPageProxyGtk.cpp:
4942         * UIProcess/gtk/WebPreferencesGtk.cpp:
4943         * UIProcess/qt/ChunkedUpdateDrawingAreaProxyQt.cpp:
4944         * UIProcess/qt/TextCheckerQt.cpp:
4945         * UIProcess/qt/TiledDrawingAreaProxyQt.cpp:
4946         * UIProcess/qt/TiledDrawingAreaTileQt.cpp:
4947         * UIProcess/qt/WebContextMenuProxyQt.cpp:
4948         * UIProcess/qt/WebContextQt.cpp:
4949         * UIProcess/qt/WebInspectorProxyQt.cpp:
4950         * UIProcess/qt/WebPageProxyQt.cpp:
4951         * UIProcess/qt/WebPopupMenuProxyQt.cpp:
4952         * UIProcess/qt/WebPreferencesQt.cpp:
4953         * UIProcess/win/ChunkedUpdateDrawingAreaProxyWin.cpp:
4954         * UIProcess/win/LayerBackedDrawingAreaProxyWin.cpp:
4955         * UIProcess/win/TextCheckerWin.cpp:
4956         * UIProcess/win/WebContextMenuProxyWin.cpp:
4957         * UIProcess/win/WebContextWin.cpp:
4958         * UIProcess/win/WebInspectorProxyWin.cpp:
4959         * UIProcess/win/WebPageProxyWin.cpp:
4960         * UIProcess/win/WebPopupMenuProxyWin.cpp:
4961         * UIProcess/win/WebView.cpp:
4962         * WebKit2.xcodeproj/project.pbxproj:
4963         * WebProcess/Authentication/AuthenticationManager.cpp:
4964         * WebProcess/Downloads/Download.cpp:
4965         * WebProcess/Downloads/DownloadManager.cpp:
4966         * WebProcess/Downloads/cf/DownloadCFNet.cpp:
4967         * WebProcess/Downloads/curl/DownloadCurl.cpp:
4968         * WebProcess/Downloads/qt/DownloadQt.cpp:
4969         * WebProcess/Geolocation/GeolocationPermissionRequestManager.cpp:
4970         * WebProcess/Geolocation/WebGeolocationManager.cpp:
4971         * WebProcess/InjectedBundle/API/c/WKBundle.cpp:
4972         * WebProcess/InjectedBundle/API/c/WKBundleBackForwardList.cpp:
4973         * WebProcess/InjectedBundle/API/c/WKBundleBackForwardListItem.cpp:
4974         * WebProcess/InjectedBundle/API/c/WKBundleFrame.cpp:
4975         * WebProcess/InjectedBundle/API/c/WKBundleHitTestResult.cpp:
4976         * WebProcess/InjectedBundle/API/c/WKBundleNodeHandle.cpp:
4977         * WebProcess/InjectedBundle/API/c/WKBundlePage.cpp:
4978         * WebProcess/InjectedBundle/API/c/WKBundlePageGroup.cpp:
4979         * WebProcess/InjectedBundle/API/c/WKBundlePageOverlay.cpp:
4980         * WebProcess/InjectedBundle/API/c/WKBundleRangeHandle.cpp:
4981         * WebProcess/InjectedBundle/API/c/WKBundleScriptWorld.cpp:
4982         * WebProcess/InjectedBundle/DOM/InjectedBundleNodeHandle.cpp:
4983         * WebProcess/InjectedBundle/DOM/InjectedBundleRangeHandle.cpp:
4984         * WebProcess/InjectedBundle/InjectedBundle.cpp:
4985         * WebProcess/InjectedBundle/InjectedBundleBackForwardList.cpp:
4986         * WebProcess/InjectedBundle/InjectedBundleBackForwardListItem.cpp:
4987         * WebProcess/InjectedBundle/InjectedBundleClient.cpp:
4988         * WebProcess/InjectedBundle/InjectedBundleHitTestResult.cpp:
4989         * WebProcess/InjectedBundle/InjectedBundlePageContextMenuClient.cpp:
4990         * WebProcess/InjectedBundle/InjectedBundlePageEditorClient.cpp:
4991         * WebProcess/InjectedBundle/InjectedBundlePageFormClient.cpp:
4992         * WebProcess/InjectedBundle/InjectedBundlePageLoaderClient.cpp:
4993         * WebProcess/InjectedBundle/InjectedBundlePageUIClient.cpp:
4994         * WebProcess/InjectedBundle/InjectedBundleScriptWorld.cpp:
4995         * WebProcess/InjectedBundle/gtk/InjectedBundleGtk.cpp:
4996         * WebProcess/InjectedBundle/mac/InjectedBundleMac.cpp:
4997         * WebProcess/InjectedBundle/qt/InjectedBundleQt.cpp:
4998         * WebProcess/InjectedBundle/win/InjectedBundleWin.cpp:
4999         * WebProcess/Plugins/Netscape/JSNPMethod.cpp:
5000         * WebProcess/Plugins/Netscape/JSNPObject.cpp:
5001         * WebProcess/Plugins/Netscape/NPJSObject.cpp:
5002         * WebProcess/Plugins/Netscape/NPRuntimeObjectMap.cpp:
5003         * WebProcess/Plugins/Netscape/NPRuntimeUtilities.cpp:
5004         * WebProcess/Plugins/Netscape/NetscapeBrowserFuncs.cpp:
5005         * WebProcess/Plugins/Netscape/NetscapePlugin.cpp:
5006         * WebProcess/Plugins/Netscape/NetscapePluginStream.cpp:
5007         * WebProcess/Plugins/Netscape/gtk/NetscapePluginGtk.cpp:
5008         * WebProcess/Plugins/Netscape/qt/NetscapePluginQt.cpp:
5009         * WebProcess/Plugins/Netscape/win/NetscapePluginWin.cpp:
5010         * WebProcess/Plugins/Plugin.cpp:
5011         * WebProcess/Plugins/PluginProcessConnection.cpp:
5012         * WebProcess/Plugins/PluginProcessConnectionManager.cpp:
5013         * WebProcess/Plugins/PluginProxy.cpp:
5014         * WebProcess/Plugins/PluginView.cpp:
5015         * WebProcess/WebCoreSupport/WebChromeClient.cpp:
5016         * WebProcess/WebCoreSupport/WebContextMenuClient.cpp:
5017         * WebProcess/WebCoreSupport/WebDatabaseManager.cpp:
5018         * WebProcess/WebCoreSupport/WebDragClient.cpp:
5019         * WebProcess/WebCoreSupport/WebEditorClient.cpp:
5020         * WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
5021         * WebProcess/WebCoreSupport/WebGeolocationClient.cpp:
5022         * WebProcess/WebCoreSupport/WebInspectorClient.cpp:
5023         * WebProcess/WebCoreSupport/WebInspectorFrontendClient.cpp:
5024         * WebProcess/WebCoreSupport/WebPlatformStrategies.cpp:
5025         * WebProcess/WebCoreSupport/WebPopupMenu.cpp:
5026         * WebProcess/WebCoreSupport/WebSearchPopupMenu.cpp:
5027         * WebProcess/WebCoreSupport/gtk/WebContextMenuClientGtk.cpp:
5028         * WebProcess/WebCoreSupport/gtk/WebPopupMenuGtk.cpp:
5029         * WebProcess/WebCoreSupport/qt/WebContextMenuClientQt.cpp:
5030         * WebProcess/WebCoreSupport/qt/WebErrorsQt.cpp:
5031         * WebProcess/WebCoreSupport/qt/WebFrameNetworkingContext.cpp:
5032         * WebProcess/WebCoreSupport/qt/WebPopupMenuQt.cpp:
5033         * WebProcess/WebCoreSupport/win/WebContextMenuClientWin.cpp:
5034         * WebProcess/WebCoreSupport/win/WebErrorsWin.cpp:
5035         * WebProcess/WebCoreSupport/win/WebPopupMenuWin.cpp:
5036         * WebProcess/WebKitMain.cpp:
5037         * WebProcess/WebPage/ChunkedUpdateDrawingArea.cpp:
5038         * WebProcess/WebPage/DecoderAdapter.cpp:
5039         * WebProcess/WebPage/DrawingArea.cpp:
5040         * WebProcess/WebPage/DrawingAreaImpl.cpp:
5041         * WebProcess/WebPage/EncoderAdapter.cpp:
5042         * WebProcess/WebPage/FindController.cpp:
5043         * WebProcess/WebPage/LayerBackedDrawingArea.cpp:
5044         * WebProcess/WebPage/PageOverlay.cpp:
5045         * WebProcess/WebPage/TiledDrawingArea.cpp:
5046         * WebProcess/WebPage/WebBackForwardListProxy.cpp:
5047         * WebProcess/WebPage/WebContextMenu.cpp:
5048         * WebProcess/WebPage/WebEditCommand.cpp:
5049         * WebProcess/WebPage/WebFrame.cpp:
5050         * WebProcess/WebPage/WebInspector.cpp:
5051         * WebProcess/WebPage/WebOpenPanelResultListener.cpp:
5052         * WebProcess/WebPage/WebPage.cpp:
5053         * WebProcess/WebPage/WebPageGroupProxy.cpp:
5054         * WebProcess/WebPage/gtk/WebInspectorGtk.cpp:
5055         * WebProcess/WebPage/mac/ChunkedUpdateDrawingAreaMac.cpp:
5056         * WebProcess/WebPage/qt/ChunkedUpdateDrawingAreaQt.cpp:
5057         * WebProcess/WebPage/qt/TiledDrawingAreaQt.cpp:
5058         * WebProcess/WebPage/qt/WebInspectorQt.cpp:
5059         * WebProcess/WebPage/qt/WebPageQt.cpp:
5060         * WebProcess/WebPage/win/ChunkedUpdateDrawingAreaWin.cpp:
5061         * WebProcess/WebPage/win/LayerBackedDrawingAreaWin.cpp:
5062         * WebProcess/WebPage/win/WebInspectorWin.cpp:
5063         * WebProcess/WebPage/win/WebPageWin.cpp:
5064         * WebProcess/WebProcess.cpp:
5065         * WebProcess/gtk/WebProcessGtk.cpp:
5066         * WebProcess/gtk/WebProcessMainGtk.cpp:
5067         * WebProcess/qt/WebProcessMainQt.cpp:
5068         * WebProcess/qt/WebProcessQt.cpp:
5069         * WebProcess/win/WebProcessMainWin.cpp:
5070         * WebProcess/win/WebProcessWin.cpp:
5071         * config.h: Copied from Source/WebKit2/WebKit2Prefix.h.
5072         * win/WebKit2Common.vsprops:
5073
5074 2011-01-27  Maciej Stachowiak  <mjs@apple.com>
5075
5076         Reviewed by Darin Adler.
5077
5078         execCommand("Paste") doesn't work in WebKitTestRunner
5079         https://bugs.webkit.org/show_bug.cgi?id=52785
5080         
5081         Thread through the new JavaScriptCanAccessClipboard setting.
5082
5083         * Shared/WebPreferencesStore.h:
5084         * UIProcess/API/C/WKPreferences.cpp:
5085         (WKPreferencesSetJavaScriptCanAccessClipboard):
5086         (WKPreferencesGetJavaScriptCanAccessClipboard):
5087         * UIProcess/API/C/WKPreferences.h:
5088         * WebProcess/WebPage/WebPage.cpp:
5089         (WebKit::WebPage::updatePreferences):
5090
5091 2011-01-27  Nate Chapin  <japhet@chromium.org>
5092
5093         Reviewed by Adam Barth.
5094
5095         Use Document::url() instead of FrameLoader::url().
5096         https://bugs.webkit.org/show_bug.cgi?id=41165
5097
5098         * WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
5099         (WebKit::WebFrameLoaderClient::dispatchDidChangeLocationWithinPage):
5100         (WebKit::WebFrameLoaderClient::dispatchDidPushStateWithinPage):
5101         (WebKit::WebFrameLoaderClient::dispatchDidReplaceStateWithinPage):
5102         (WebKit::WebFrameLoaderClient::dispatchDidPopStateWithinPage):
5103         * WebProcess/WebPage/WebFrame.cpp:
5104         (WebKit::WebFrame::url):
5105
5106 2011-01-27  Sam Weinig  <sam@webkit.org>
5107
5108         Reviewed by Anders Carlsson.
5109
5110         Encode/Decode hasPreciseScrollingDeltas bit in WebWheelEvent
5111         https://bugs.webkit.org/show_bug.cgi?id=53254
5112
5113         * Shared/WebWheelEvent.cpp:
5114         (WebKit::WebWheelEvent::WebWheelEvent):
5115         Initialize m_phase and m_hasPreciseScrollingDeltas.
5116
5117         (WebKit::WebWheelEvent::encode):
5118         (WebKit::WebWheelEvent::decode):
5119         Add missing coding for m_hasPreciseScrollingDeltas.
5120
5121 2011-01-26  Enrica Casucci  <enrica@apple.com>
5122
5123         Reviewed by Darin Adler and Adam Roben.
5124
5125         WebKit2: add support for drag and drop on Windows
5126         https://bugs.webkit.org/show_bug.cgi?id=52775
5127         <rdar://problem/8514409>
5128
5129         On Windows the access to the content being dragged is
5130         provided via the IDataObject interface that is made available
5131         to the window that registers itself as drop target.
5132         Since this interface cannot be accessed from the WebProcess,
5133         in every call to one of the methods of the IDropTarget interface
5134         we serialize the content of the drag clipboard and send it over to
5135         the WebProcess. The implementation uses the same messages as the
5136         Mac one, with slightly different parameters to pass the serialized
5137         clipboard.
5138
5139         * UIProcess/WebPageProxy.cpp:
5140         (WebKit::WebPageProxy::performDragControllerAction): Added Windows
5141         specific implementation.
5142         * UIProcess/WebPageProxy.h:
5143         * UIProcess/win/WebView.cpp:
5144         (WebKit::WebView::WebView): Added dropTargetHelper object creation.
5145         (WebKit::WebView::initialize): Added to register for drag/drop with out
5146         refcount issues.
5147         (WebKit::WebView::close):
5148         (WebKit::WebView::windowReceivedMessage):
5149         (WebKit::WebView::QueryInterface):
5150         (WebKit::WebView::AddRef):
5151         (WebKit::WebView::Release):
5152         (WebKit::dragOperationToDragCursor):
5153         (WebKit::WebView::keyStateToDragOperation):
5154         (WebKit::WebView::DragEnter):
5155         (WebKit::WebView::DragOver):
5156         (WebKit::WebView::DragLeave):
5157         (WebKit::WebView::Drop):
5158         * UIProcess/win/WebView.h:
5159         (WebKit::WebView::create):
5160         * WebProcess/WebPage/WebPage.cpp:
5161         (WebKit::WebPage::performDragControllerAction):
5162         * WebProcess/WebPage/WebPage.h:
5163         * WebProcess/WebPage/WebPage.messages.in:
5164
5165 2011-01-26  Alexey Proskuryakov  <ap@apple.com>
5166
5167         Reviewed by Darin Adler.
5168
5169         https://bugs.webkit.org/show_bug.cgi?id=53197
5170         <rdar://problem/8895682> Make WebKit2 printing asynchronous
5171
5172         <rdar://problem/8899988> REGRESSION(WebKit2): Attempting to print WHATWG HTML spec shows
5173         1-page blank preview
5174
5175         <rdar://problem/8900078> WebKit2 printing has a separate message exchange per page when
5176         printing instead of printing all at once
5177
5178         * UIProcess/API/mac/WKPrintingView.h: Store a lot more cached information.
5179
5180         * UIProcess/API/mac/WKPrintingView.mm:
5181         (-[WKPrintingView _adjustPrintingMarginsForHeaderAndFooter]): Use PrintOperation stored in
5182         class. We generally want that now, because current operation will not be set up on other threads.
5183         (-[WKPrintingView _isPrintingPreview]): Added. Preview is different, because it can draw
5184         a placeholder - but actual printing need to wait until UI process has data.
5185         (-[WKPrintingView _updatePreview]): Force AppKit to update print preview when we have real
5186         data to replace placeholder with.
5187         (-[WKPrintingView _hasPageRects]): Return if page rects have already been computed.
5188         (-[WKPrintingView _expectedPreviewCallbackForRect:]): Find an existing request for this rect,
5189         if any.
5190         (pageDidDrawToPDF): Update preview - or if actually printing, release control to printing thread.
5191         (-[WKPrintingView _preparePDFDataForPrintingOnSecondaryThread]): Ask for a PDF document with
5192         pages the user asked to print.
5193         (pageDidComputePageRects): When web process returns page geometry data, we update preview to display
5194         a page count (which indirectly triggers a request for a preview). When actually printing,
5195         request a PDF right away, we'll need it later.
5196         (-[WKPrintingView _askPageToComputePageRects]): Ask web process for page geometry.
5197         (prepareDataForPrintingOnSecondaryThread): This function starts preparing all data necessary
5198         for actual printing on main thread.
5199         (-[WKPrintingView knowsPageRange:]): Changed to be async for preview, and to call main
5200         thread for actual printing.
5201         (-[WKPrintingView _pageForRect:]): Find page number for a given range, assuming that AppKit
5202         always asks for full pages.
5203         (-[WKPrintingView _drawPDFDocument:page:atPoint:]): A helper function to draw a PDF document.
5204         (-[WKPrintingView _drawPreview:]): Draw the whole page for preview.
5205         (-[WKPrintingView _recursiveDisplayRectIfNeededIgnoringOpacity:isVisibleRect:rectIsVisibleRectForView:topView:]):
5206         Draw the whole page for actual printing.
5207         (-[WKPrintingView _drawPageBorderWithSizeOnMainThread:]): Call drawPageBorderWithSize: with
5208         correct graphics context and print operation.
5209         (-[WKPrintingView drawPageBorderWithSize:]): Delegate work to main thread when called from a
5210         secondary one.
5211         (-[WKPrintingView _provideTotalScaleFactorForPrintOperation:]): Added an assertion that
5212         our stored NSPrintOperation isn't out of sync with reality.
5213         (-[WKPrintingView rectForPage:]): Handle the case where we don't have the data yet, drawing
5214         a placeholder.
5215         (-[WKPrintingView endDocument]): When page setup changes, we must reset all state.
5216
5217         * UIProcess/API/mac/WKView.mm: (-[WKView printOperationWithPrintInfo:forFrame:]): Tell
5218         NSPrintingView which operation it's serving, so that it knows it even when current operation
5219         isn't set.
5220
5221         * UIProcess/GenericCallback.h:
5222         (WebKit::ComputedPagesCallback::create):
5223         (WebKit::ComputedPagesCallback::~ComputedPagesCallback):
5224         (WebKit::ComputedPagesCallback::performCallbackWithReturnValue):
5225         (WebKit::ComputedPagesCallback::invalidate):
5226         (WebKit::ComputedPagesCallback::callbackID):
5227         (WebKit::ComputedPagesCallback::generateCallbackID):
5228         (WebKit::ComputedPagesCallback::ComputedPagesCallback):
5229         Added ComputedPagesCallback, which returns a vector of IntRects and a double. Hopefully,
5230         it will become a specialization of GenericCallback one day.
5231
5232         * UIProcess/WebPageProxy.cpp:
5233         (WebKit::WebPageProxy::close): Added m_voidCallbacks - it looks like they were omitted
5234         by accident.
5235         (WebKit::WebPageProxy::computedPagesCallback): Added.
5236         (WebKit::WebPageProxy::processDidCrash): Added m_computedPagesCallbacks.
5237         (WebKit::WebPageProxy::computePagesForPrinting): Async now!
5238         (WebKit::WebPageProxy::drawRectToPDF): Ditto.
5239         (WebKit::WebPageProxy::drawPagesToPDF): Added.
5240         * UIProcess/WebPageProxy.h:
5241
5242         * UIProcess/WebPageProxy.messages.in: Added ComputedPagesCallback.
5243
5244         * WebProcess/WebPage/WebPage.cpp:
5245         (WebKit::WebPage::beginPriting): Compute page rects right away - we'll need them in
5246         drawPagesToPDF(), which doesn't have a PrintInfo.
5247         (WebKit::WebPage::computePagesForPrinting): Send async response.
5248         (WebKit::WebPage::drawRectToPDF): This function used to draw into original
5249         location at frame coordinates, and now it draws at (0, 0).
5250         (WebKit::WebPage::drawPagesToPDF): Added - make a multi-page PDF.
5251         * WebProcess/WebPage/WebPage.h:
5252
5253         * WebProcess/WebPage/WebPage.messages.in: Added DrawPagesToPDF.
5254
5255 2011-01-27  Alejandro G. Castro  <alex@igalia.com>
5256
5257         Unreviewed GTK build fix after r76797.
5258
5259         * Shared/WebPreferencesStore.h: Use Qt fonts preference for the moment.
5260
5261 2011-01-27  Dan Bernstein  <mitz@apple.com>
5262
5263         Reviewed by Anders Carlsson.
5264
5265         Allow pop-up menus to contain multiple items that have the same title.
5266
5267         * UIProcess/mac/WebPopupMenuProxyMac.mm:
5268         (WebKit::WebPopupMenuProxyMac::populate): Set the item’s title after adding it rather than
5269         when adding it, so that it will not replace any existing item with the same title.
5270
5271 2011-01-27  Andreas Kling  <kling@webkit.org>
5272
5273         Reviewed by Kenneth Rohde Christiansen.
5274
5275         [Qt][WK2] Add QWKPage APIs regarding engine process availability
5276         https://bugs.webkit.org/show_bug.cgi?id=53237
5277
5278         QWKPage will now emit engineConnected() and engineDisconnected()
5279         when the web process crashes and is relaunched respectively.
5280
5281         Also added QWKPage::isConnectedToEngine() for convenience.
5282
5283         * UIProcess/API/qt/qwkpage.cpp:
5284         (QWKPagePrivate::QWKPagePrivate):
5285         (QWKPagePrivate::didRelaunchProcess):
5286         (QWKPagePrivate::processDidCrash):
5287         (QWKPage::isConnectedToEngine):
5288         * UIProcess/API/qt/qwkpage.h:
5289         * UIProcess/API/qt/qwkpage_p.h:
5290
5291 2011-01-27  Balazs Kelemen  <kbalazs@webkit.org>
5292
5293         Reviewed by Andreas Kling.
5294
5295         [Qt][WK2] Lots of layout test failures due to wrong font type
5296         https://bugs.webkit.org/show_bug.cgi?id=53233
5297
5298         * Shared/WebPreferencesStore.h:
5299         Specialize default font families for Qt.
5300
5301 2011-01-26  Maciej Stachowiak  <mjs@apple.com>
5302
5303         Reviewed by Dan Bernstein.
5304
5305         WebKitTestRunner needs to support layoutTestController.evaluateInWebInspector
5306         https://bugs.webkit.org/show_bug.cgi?id=42319
5307
5308         Add WKBundleInspector and APIs needed to implement WebKitTestRunner APIs.
5309         
5310         * GNUmakefile.am:
5311         * Shared/API/c/WKBase.h:
5312         * Shared/APIObject.h:
5313         * WebKit2.pro:
5314         * WebKit2.xcodeproj/project.pbxproj:
5315         * WebProcess/InjectedBundle/API/c/WKBundleAPICast.h:
5316         * WebProcess/InjectedBundle/API/c/WKBundleInspector.cpp: Added.
5317         (WKBundleInspectorGetTypeID):
5318         (WKBundleInspectorShow):
5319         (WKBundleInspectorClose):
5320         (WKBundleInspectorEvaluateScriptForTest):
5321         (WKBundleInspectorSetPageProfilingEnabled):
5322         * WebProcess/InjectedBundle/API/c/WKBundleInspector.h: Added.
5323         * WebProcess/InjectedBundle/API/c/WKBundlePage.cpp:
5324         (WKBundlePageGetInspector):
5325         * WebProcess/InjectedBundle/API/c/WKBundlePage.h:
5326         * WebProcess/WebPage/WebInspector.cpp:
5327         (WebKit::WebInspector::create):
5328         (WebKit::WebInspector::evaluateScriptForTest):
5329         * WebProcess/WebPage/WebInspector.h:
5330         (WebKit::WebInspector::type):
5331         * WebProcess/WebPage/WebPage.cpp:
5332         (WebKit::WebPage::inspector):
5333         * WebProcess/WebPage/WebPage.h:
5334         * win/WebKit2.vcproj:
5335         * win/WebKit2Generated.make:
5336
5337 2011-01-26  David Kilzer  <ddkilzer@apple.com>
5338
5339         <http://webkit.org/b/53192> Add experimental support for HTTP pipelining in CFNetwork
5340         <rdar://problem/8821760>
5341
5342         Reviewed by Antti Koivisto.
5343
5344         * WebProcess/WebCoreSupport/mac/WebSystemInterface.mm:
5345         (InitWebCoreSystemInterface): Added initialization for
5346         GetHTTPPipeliningPriority and SetHTTPPipeliningPriority.
5347
5348 2011-01-26  Beth Dakin  <bdakin@apple.com>
5349
5350         Reviewed by Darin Adler.
5351
5352         Fix for <rdar://problem/8895140> Adopt WKScrollbar metrics 
5353         when using WKScrollbars.
5354
5355         * WebProcess/WebCoreSupport/mac/WebSystemInterface.mm:
5356         (InitWebCoreSystemInterface):
5357
5358 2011-01-26  Sam Weinig  <sam@webkit.org>
5359
5360         Reviewed by Maciej Stachowiak.
5361
5362         Add events to represent the start/end of a gesture scroll
5363         https://bugs.webkit.org/show_bug.cgi?id=53215
5364
5365         * Scripts/webkit2/messages.py:
5366         * Shared/WebEvent.h:
5367         (WebKit::WebGestureEvent::WebGestureEvent):
5368         (WebKit::WebGestureEvent::position):
5369         (WebKit::WebGestureEvent::globalPosition):
5370         * Shared/WebEventConversion.cpp:
5371         (WebKit::WebKit2PlatformGestureEvent::WebKit2PlatformGestureEvent):
5372         (WebKit::platform):
5373         * Shared/WebEventConversion.h:
5374         * Shared/WebGestureEvent.cpp: Added.
5375         (WebKit::WebGestureEvent::WebGestureEvent):
5376         (WebKit::WebGestureEvent::encode):
5377         (WebKit::WebGestureEvent::decode):
5378         (WebKit::WebGestureEvent::isGestureEventType):
5379         * Shared/mac/WebEventFactory.h:
5380         * Shared/mac/WebEventFactory.mm:
5381         (WebKit::gestureEventTypeForEvent):
5382         (WebKit::WebEventFactory::createWebGestureEvent):
5383         * UIProcess/API/mac/WKView.mm:
5384         (-[WKView shortCircuitedEndGestureWithEvent:]):
5385         (-[WKView beginGestureWithEvent:]):
5386         (-[WKView viewDidMoveToWindow]):
5387         * UIProcess/WebPageProxy.cpp:
5388         (WebKit::WebPageProxy::handleGestureEvent):
5389         (WebKit::WebPageProxy::didReceiveEvent):
5390         * UIProcess/WebPageProxy.h:
5391         * WebKit2.xcodeproj/project.pbxproj:
5392         * WebProcess/WebPage/WebPage.cpp:
5393         (WebKit::handleGestureEvent):
5394         (WebKit::WebPage::gestureEvent):
5395         * WebProcess/WebPage/WebPage.h:
5396         * WebProcess/WebPage/WebPage.messages.in:
5397         Pipe gesture events down to WebCore.
5398
5399 2011-01-26  Dan Bernstein  <mitz@apple.com>
5400
5401         Reviewed by Dave Hyatt.
5402
5403         <rdar://problem/8446709> Allow inter-ideograph justification for CJK
5404         https://bugs.webkit.org/show_bug.cgi?id=53184
5405
5406         * WebProcess/WebCoreSupport/win/WebPopupMenuWin.cpp:
5407         (WebKit::WebPopupMenu::setUpPlatformData): Added a TrailingExpansionBehavior parameter to the
5408         RenderText constructor.
5409
5410 2011-01-26  Jing Jin  <jjin@apple.com>
5411
5412         Reviewed by Darin Adler.
5413
5414         Methods to temporarily disable size updates to the page drawing area in WKView.
5415         https://bugs.webkit.org/show_bug.cgi?id=53206
5416         Part of <rdar://problem/8818585>
5417
5418         * UIProcess/API/mac/WKView.h: Added _frameSizeUpdateDisabledCount.
5419         * UIProcess/API/mac/WKView.mm:
5420         (-[WKView setFrameSize:]): Only update page size if frame size updates are enabled.
5421         (-[WKView _setDrawingAreaSize:]): Helper method to set the page's drawing area's size.
5422         (-[WKView disableFrameSizeUpdates]): Increment _frameSizeUpdateDisabledCount
5423         (-[WKView enableFrameSizeUpdates]): Decrement _frameSizeUpdateDisabledCount, and if the count is 0, meaning
5424         that no one is disabling frame size updates anymore, update the drawing area's size to match the current frame.
5425         (-[WKView frameSizeUpdatesDisabled]): Returns YES if at least one caller is disabling frame size updates.
5426         * UIProcess/API/mac/WKViewInternal.h: Declared -disableFrameSizeUpdates, -enableFrameSizeUpdates, and -frameSizeUpdatesDisabled.
5427         * UIProcess/API/mac/WKViewPrivate.h: Added.
5428         * WebKit2.xcodeproj/project.pbxproj: Added WKViewPrivate.h
5429
5430 2011-01-26  Jing Jin  <jjin@apple.com>
5431
5432         Rubber-stamped by Dan Bernstein.
5433         
5434         Several WKView Internal category methods are implemented in the main category.
5435         https://bugs.webkit.org/show_bug.cgi?id=53195
5436
5437         * UIProcess/API/mac/WKView.mm:
5438         (-[WKView _setEventBeingResent:]): Moved into implementation of WKView (Internal).
5439         (-[WKView _interceptKeyEvent:]): Moved into implementation of WKView (Internal).
5440         (-[WKView _getTextInputState:selectionEnd:underlines:WebCore::]): Moved into implementation of WKView (Internal).
5441         (-[WKView _setAccessibilityChildToken:]): Moved into implementation of WKView (Internal).
5442
5443 2011-01-26  Brian Weinstein  <bweinstein@apple.com>
5444
5445         Reviewed by John Sullivan.
5446
5447         WebKit2: Need API to get the frame load state of a BundleFrame
5448         https://bugs.webkit.org/show_bug.cgi?id=53193
5449
5450         * WebProcess/InjectedBundle/API/c/WKBundleFrame.cpp:
5451         (WKBundleFrameGetFrameLoadState): Call through to the FrameLoader to get the frame load state.
5452         * WebProcess/InjectedBundle/API/c/WKBundleFrame.h:
5453
5454 2011-01-25  Brian Weinstein  <bweinstein@apple.com>
5455
5456         Reviewed by Antti Koivisto.
5457
5458         Crashes loading pages when cancelling subresource loads through WebKit
5459         https://bugs.webkit.org/show_bug.cgi?id=53123
5460         <rdar://problem/8914361>
5461
5462         * WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
5463         (WebKit::WebFrameLoaderClient::dispatchDecidePolicyForMIMEType): If our URL is null, return early instead of dispatching
5464             a message.
5465
5466 2011-01-25  Chris Fleizach  <cfleizach@apple.com>
5467
5468         Reviewed by Darin Adler.
5469
5470         WK2 leaks when a page is closed
5471         https://bugs.webkit.org/show_bug.cgi?id=53100
5472
5473         Allow the WKView a chance to clean up on a page close. In this case,
5474         cleaning up means removing the references the accessibility token has
5475         to the window.
5476
5477         * UIProcess/API/mac/PageClientImpl.h:
5478         * UIProcess/API/mac/PageClientImpl.mm:
5479         (WebKit::PageClientImpl::pageClosed):
5480         * UIProcess/API/mac/WKView.mm:
5481         (-[WKView _setRemoteAccessibilityWindow:]):
5482         (-[WKView _setAccessibilityChildToken:]):
5483         (-[WKView _processDidCrash]):
5484         (-[WKView _pageClosed]):
5485         * UIProcess/API/mac/WKViewInternal.h:
5486         * UIProcess/API/qt/qwkpage_p.h:
5487         (QWKPagePrivate::pageClosed):
5488         * UIProcess/PageClient.h:
5489         * UIProcess/WebPageProxy.cpp:
5490         (WebKit::WebPageProxy::close):
5491         * UIProcess/win/WebView.cpp:
5492         (WebKit::WebView::pageClosed):
5493         * UIProcess/win/WebView.h:
5494
5495 2011-01-25  Chris Marrin  <cmarrin@apple.com>
5496
5497         Reviewed by Adam Roben.
5498
5499         Expose WebGL flag set/get in WK2
5500         https://bugs.webkit.org/show_bug.cgi?id=53096
5501
5502         * Shared/WebPreferencesStore.h:
5503         * UIProcess/API/C/WKPreferences.cpp:
5504         (WKPreferencesSetWebGLEnabled):
5505         (WKPreferencesGetWebGLEnabled):
5506         * UIProcess/API/C/WKPreferencesPrivate.h:
5507         * WebProcess/WebPage/WebPage.cpp:
5508         (WebKit::WebPage::updatePreferences):
5509
5510 2011-01-25  Anders Carlsson  <andersca@apple.com>
5511
5512         Reviewed by Adam Roben.
5513
5514         Add and implement LayerTreeHost::scheduleLayerFlush
5515         https://bugs.webkit.org/show_bug.cgi?id=53135
5516
5517         * WebKit2.xcodeproj/project.pbxproj:
5518         Add LayerTreeHostMac.mm.
5519
5520         * WebProcess/WebPage/DrawingAreaImpl.cpp:
5521         (WebKit::DrawingAreaImpl::scheduleCompositingLayerSync):
5522         Call LayerTreeHost::scheduleLayerFlush.
5523
5524         * WebProcess/WebPage/LayerTreeHost.cpp:
5525         (WebKit::LayerTreeHost::~LayerTreeHost):
5526         Call platformInvalidate().
5527
5528         (WebKit::LayerTreeHost::flushPendingLayerChanges):
5529         Rename from syncCompositingLayers.
5530
5531         * WebProcess/WebPage/mac/LayerTreeHostMac.mm: Added.
5532         (WebKit::LayerTreeHost::scheduleLayerFlush):
5533         Create a run loop observer if needed. This code is copied from LayerBackedDrawingAreaMac.mm
5534
5535         (WebKit::LayerTreeHost::platformInvalidate):
5536         Invalidate the run loop observer.
5537
5538         (WebKit::LayerTreeHost::flushPendingLayerChangesRunLoopObserverCallback):
5539         Call flushPendingChanges() and remove the run loop observer if it succeeded.
5540
5541 2011-01-25  Anders Carlsson  <andersca@apple.com>
5542
5543         Reviewed by Simon Fraser.
5544
5545         Add LayerTreeHost class
5546         https://bugs.webkit.org/show_bug.cgi?id=53132
5547
5548         * WebKit2.xcodeproj/project.pbxproj:
5549         Add LayerTreeHost files.
5550
5551         * WebProcess/WebPage/DrawingAreaImpl.cpp:
5552         (WebKit::DrawingAreaImpl::DrawingAreaImpl):
5553         Initialize m_layerTreeHost.
5554
5555         (WebKit::DrawingAreaImpl::setRootCompositingLayer):
5556         Call the m_layerTreeHost.
5557
5558         * WebProcess/WebPage/LayerTreeHost.cpp: Added.
5559         (WebKit::LayerTreeHost::attachRootCompositingLayer):
5560         (WebKit::LayerTreeHost::detachRootCompositingLayer):
5561         Add stubbed out functions.
5562
5563         (WebKit::LayerTreeHost::syncCompositingLayers):
5564         Sync the compositing layers in the main frame.
5565
5566         * WebProcess/WebPage/LayerTreeHost.h: Added.
5567
5568 2011-01-25  Steve Falkenburg  <sfalken@apple.com>
5569
5570         Rubber-stamped by Adam Roben.
5571
5572         Windows production build fix.
5573         Use correct environment variable escaping
5574
5575         * win/WebKit2.make:
5576         * win/WebKit2Generated.make:
5577
5578 2011-01-25  Anders Carlsson  <andersca@apple.com>
5579
5580         Reviewed by Sam Weinig.
5581
5582         Don't inform the UI process about compositing changes when using the new drawing area
5583         https://bugs.webkit.org/show_bug.cgi?id=53120
5584
5585         * WebProcess/WebPage/WebPage.cpp:
5586         (WebKit::WebPage::changeAcceleratedCompositingMode):
5587         Return early if we're using the new drawing area.
5588
5589         (WebKit::WebPage::exitAcceleratedCompositingMode):
5590         Call setRootCompositingLayer(0) so the drawing area knows when we leave accelerated compositing.
5591
5592 2011-01-25  Sam Weinig  <sam@webkit.org>
5593
5594         Reviewed by Anders Carlsson.
5595
5596         Pipe a timestamp down into the PlatformWheelEvent for the Mac.
5597         https://bugs.webkit.org/show_bug.cgi?id=53111
5598
5599         * Shared/WebEventConversion.cpp:
5600         (WebKit::WebKit2PlatformWheelEvent::WebKit2PlatformWheelEvent):
5601         Assign the timestamp.
5602
5603 2011-01-25  Sam Weinig  <sam@webkit.org>
5604
5605         Reviewed by Anders Carlsson.
5606
5607         Add hasPreciseScrollingDeltas bit to PlatformWheelEvent on the Mac.
5608         https://bugs.webkit.org/show_bug.cgi?id=53107
5609
5610         * Shared/WebEvent.h:
5611         (WebKit::WebWheelEvent::hasPreciseScrollingDeltas):
5612         * Shared/WebEventConversion.cpp:
5613         (WebKit::WebKit2PlatformWheelEvent::WebKit2PlatformWheelEvent):
5614         * Shared/WebWheelEvent.cpp:
5615         (WebKit::WebWheelEvent::WebWheelEvent):
5616         * Shared/mac/WebEventFactory.mm:
5617         (WebKit::WebEventFactory::createWebWheelEvent):
5618
5619 2011-01-25  Anders Carlsson  <andersca@apple.com>
5620
5621         Reviewed by Sam Weinig.
5622
5623         need a way to request the host CALayer render server port
5624         https://bugs.webkit.org/show_bug.cgi?id=53101
5625         <rdar://problem/8913620>
5626
5627         * PluginProcess/PluginControllerProxy.cpp:
5628         (WebKit::PluginControllerProxy::compositingRenderServerPort):
5629         Get the render server port from the plug-in process.
5630
5631         * PluginProcess/PluginControllerProxy.h:
5632         * WebProcess/Plugins/Netscape/NetscapeBrowserFuncs.cpp:
5633         (WebKit::NPN_GetValue):
5634         Call NetscapePlugin::compositingRenderServerPort.
5635
5636         * WebProcess/Plugins/Netscape/mac/NetscapePluginMac.mm:
5637         (WebKit::NetscapePlugin::compositingRenderServerPort):
5638         Call PluginController::compositingRenderServerPort.
5639
5640         * WebProcess/Plugins/PluginView.cpp:
5641         (WebKit::PluginView::compositingRenderServerPort):
5642         Get the render server port from the web process.
5643
5644         * WebProcess/Plugins/PluginView.h:
5645         Add compositingRenderServerPort.
5646
5647 2011-01-25  Maciej Stachowiak  <mjs@apple.com>
5648
5649         Rubber stamped by Dan Bernstein.
5650
5651         Change some floating point constants from 1.0 to 1.
5652
5653         * WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
5654         (WebKit::WebFrameLoaderClient::dispatchDidCommitLoad):
5655
5656 2011-01-25  Maciej Stachowiak  <mjs@apple.com>
5657
5658         Reviewed by Anders Carlsson.
5659
5660         Improve scale factor resetting
5661         https://bugs.webkit.org/show_bug.cgi?id=53093
5662         
5663         Two key changes:
5664         - Don't set the scale factor to what it already is, as this causes an
5665         uneeded force layout and scroll
5666         - Don't ever set the scale factor based on a non-main frame committing
5667         
5668         This fixes two WebKit2 layout tests.
5669
5670         * WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
5671         (WebKit::WebFrameLoaderClient::dispatchDidCommitLoad):
5672
5673 2011-01-24  Chris Marrin  <cmarrin@apple.com>
5674
5675         Reviewed by Eric Seidel.
5676
5677         Change ENABLE_3D_CANVAS to ENABLE_WEBGL
5678         https://bugs.webkit.org/show_bug.cgi?id=53041
5679
5680         * Configurations/FeatureDefines.xcconfig:
5681
5682 2011-01-25  Andreas Kling  <kling@webkit.org>
5683
5684         Reviewed by Kenneth Rohde Christiansen.
5685
5686         [Qt][WK2] Add QWKPage::processCrashed() signal
5687         https://bugs.webkit.org/show_bug.cgi?id=53076
5688
5689         * UIProcess/API/qt/qwkpage.cpp:
5690         (QWKPagePrivate::processDidCrash):
5691         * UIProcess/API/qt/qwkpage.h:
5692         * UIProcess/API/qt/qwkpage_p.h:
5693
5694 2011-01-24  Anders Carlsson  <andersca@apple.com>
5695
5696         Fix build.
5697         
5698         * WebProcess/mac/WebProcessMac.mm:
5699         (WebKit::initializeSandbox):
5700
5701 2011-01-24  Anders Carlsson  <andersca@apple.com>
5702
5703         Reviewed by Dan Bernstein.
5704
5705         Reset the page scale factor on standard frame loads
5706         https://bugs.webkit.org/show_bug.cgi?id=53058
5707         <rdar://problem/8908844>
5708
5709         * UIProcess/WebPageProxy.cpp:
5710         (WebKit::WebPageProxy::scaleWebView):
5711         Don't set m_viewScaleFactor here. It will be set in viewScaleFactorDidChange.
5712
5713         (WebKit::WebPageProxy::viewScaleFactorDidChange):
5714         Update m_viewScaleFactor.
5715
5716         * UIProcess/WebPageProxy.h:
5717         Add viewScaleFactorDidChange.
5718
5719         * UIProcess/WebPageProxy.messages.in:
5720         Add ViewScaleFactorDidChange message.
5721
5722         * WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
5723         (WebKit::WebFrameLoaderClient::dispatchDidCommitLoad):
5724         Set the scale factor.
5725
5726         (WebKit::WebFrameLoaderClient::restoreViewState):
5727         Inform the UI process about the new view scale factor.
5728
5729         * WebProcess/WebPage/WebPage.cpp:
5730         (WebKit::WebPage::scaleWebView):
5731         Send a ViewScaleFactorDidChange message.
5732
5733 2011-01-24  Maciej Stachowiak  <mjs@apple.com>
5734
5735         Reviewed by Anders Carlsson.
5736
5737         Use designated temp directory for the database for WebKit2
5738         https://bugs.webkit.org/show_bug.cgi?id=53052
5739         
5740         Add the API necessary to support this. Database path is now
5741         determined on the UI process side and passed to the Web process.
5742         Reviewed by Anders Carlsson.
5743
5744         * GNUmakefile.am:
5745         * Shared/WebProcessCreationParameters.cpp:
5746         (WebKit::WebProcessCreationParameters::encode):
5747         (WebKit::WebProcessCreationParameters::decode):
5748         * Shared/WebProcessCreationParameters.h:
5749         * UIProcess/API/C/WKContext.cpp:
5750         (WKContextSetDatabaseDirectory):
5751         * UIProcess/API/C/WKContextPrivate.h:
5752         * UIProcess/WebContext.cpp:
5753         (WebKit::WebContext::ensureWebProcess):
5754         (WebKit::WebContext::databaseDirectory):
5755         * UIProcess/WebContext.h:
5756         (WebKit::WebContext::setDatabaseDirectory):
5757         * UIProcess/mac/WebContextMac.mm:
5758         (WebKit::WebContext::platformDefaultDatabaseDirectory):
5759         * UIProcess/qt/WebContextQt.cpp:
5760         (WebKit::WebContext::platformDefaultDatabaseDirectory):
5761         * UIProcess/win/WebContextWin.cpp:
5762         (WebKit::WebContext::platformDefaultDatabaseDirectory):
5763         * WebKit2.pro:
5764         * WebKit2.xcodeproj/project.pbxproj:
5765         * WebProcess/WebCoreSupport/WebDatabaseManager.cpp:
5766         (WebKit::WebDatabaseManager::initialize):
5767         (WebKit::WebDatabaseManager::WebDatabaseManager):
5768         * WebProcess/WebCoreSupport/WebDatabaseManager.h:
5769         * WebProcess/WebCoreSupport/gtk/WebDatabaseManagerGtk.cpp: Removed.
5770         * WebProcess/WebCoreSupport/mac/WebDatabaseManagerMac.mm: Removed.
5771         * WebProcess/WebCoreSupport/qt/WebDatabaseManagerQt.cpp: Removed.
5772         * WebProcess/WebCoreSupport/win/WebDatabaseManagerWin.cpp: Removed.
5773         * WebProcess/WebProcess.cpp:
5774         (WebKit::WebProcess::WebProcess):
5775         (WebKit::WebProcess::initializeWebProcess):
5776         * WebProcess/com.apple.WebProcess.sb:
5777         * WebProcess/mac/WebProcessMac.mm:
5778         (WebKit::initializeSandbox):
5779         * win/WebKit2.vcproj:
5780
5781 2011-01-24  Brent Fulgham  <bfulgham@webkit.org>
5782
5783         Unreviewed build fix.
5784
5785         * win/WebKit2.vcproj: Don't build the CG Utilities when building
5786         without CG support.
5787
5788 2011-01-24  Anders Carlsson  <andersca@apple.com>
5789
5790         Reviewed by John Sullivan.
5791
5792         Don't use the timeout checker for non-user-interaction messages
5793         https://bugs.webkit.org/show_bug.cgi?id=53046
5794
5795         * UIProcess/ChunkedUpdateDrawingAreaProxy.cpp:
5796         (WebKit::ChunkedUpdateDrawingAreaProxy::didSetSize):
5797         (WebKit::ChunkedUpdateDrawingAreaProxy::sendSetSize):
5798         * UIProcess/LayerBackedDrawingAreaProxy.cpp:
5799         (WebKit::LayerBackedDrawingAreaProxy::sizeDidChange):
5800         (WebKit::LayerBackedDrawingAreaProxy::didSetSize):
5801
5802 2011-01-24  Adam Roben  <aroben@apple.com>
5803
5804         Windows Production build fix
5805
5806         * win/WebKit2.make: Update for move of WebKit2 into Source.
5807
5808 2011-01-24  Jessie Berlin  <jberlin@apple.com>
5809
5810         Reviewed by Adam Roben.
5811
5812         WebKit2: LayoutTests: The UNIMPLEMENTED warnings in TextCheckerWin should be disabled
5813         https://bugs.webkit.org/show_bug.cgi?id=53029
5814
5815         * UIProcess/win/TextCheckerWin.cpp:
5816         Disable the warnings for this file.
5817
5818 2011-01-24  Anders Carlsson  <andersca@apple.com>
5819
5820         Reviewed by Sam Weinig.
5821
5822         Wait for half a second if we're asked to paint when receiving a DidSetSize message
5823         https://bugs.webkit.org/show_bug.cgi?id=53028
5824
5825         * UIProcess/DrawingAreaProxyImpl.cpp:
5826         (WebKit::DrawingAreaProxyImpl::paint):
5827
5828 2011-01-24  Anders Carlsson  <andersca@apple.com>
5829
5830         Reviewed by Sam Weinig.
5831
5832         Implement forceRedisplay in the new drawing area
5833         https://bugs.webkit.org/show_bug.cgi?id=53026
5834
5835         * WebProcess/WebPage/DrawingAreaImpl.cpp:
5836         (WebKit::DrawingAreaImpl::forceRepaint):
5837         * WebProcess/WebPage/DrawingAreaImpl.h:
5838
5839 2011-01-24  Anders Carlsson  <andersca@apple.com>
5840
5841         Reviewed by Sam Weinig.
5842
5843         Fill unpainted rects with the background color.
5844         https://bugs.webkit.org/show_bug.cgi?id=53025
5845
5846         * UIProcess/API/mac/WKView.mm:
5847         (drawPageBackground):
5848         Add new helper function.
5849
5850         (-[WKView drawRect:]):
5851         Iterate over the unpainted rects and fill them with the background color.
5852
5853 2011-01-24  Dan Bernstein  <mitz@apple.com>
5854
5855         Reviewed by John Sullivan.
5856
5857         WebKit2 version of <rdar://problem/6097826> Mail's cursor does not become a resize cursor when moving mouse from scrolled email to the horizontal splitter
5858
5859         * UIProcess/API/mac/PageClientImpl.mm:
5860         (WebKit::PageClientImpl::setCursor): If the current cursor comes from a cursor rect, do not override it.
5861
5862 2011-01-24  Balazs Kelemen  <kbalazs@webkit.org>
5863
5864         Rubber-stamped by Csaba Osztrogonác.
5865
5866         Typo fix.
5867
5868         * UIProcess/Launcher/qt/ProcessLauncherQt.cpp:
5869         (WebKit::ProcessLauncher::launchProcess): Move the bracket to the right place.
5870
5871 2011-01-24  Kimmo Kinnunen  <kimmo.t.kinnunen@nokia.com>
5872
5873         Reviewed by Kenneth Rohde Christiansen.
5874
5875         [Qt] Remove CleanupHandler by passing file descriptors.
5876
5877         Deleting files in signal handler of UI process is not a good idea,
5878         because the memory where filenames are stored might not be valid
5879         after a crash.
5880
5881         To avoid the need of using signal handlers for cleanup,
5882         change following:
5883           1) Avoid passing filenames between processes, pass fds
5884           2) When mmap'ing files, delete them immediately after
5885              opening and mmap'ing them.
5886           3) Pass sockets with fds during fork+exec instead of
5887              passing them via the filesystem.
5888           4) Use mmap'ed files for implementation of SharedMemory.
5889              QSharedMemory does not support cleanup correctly.
5890
5891         Consquences:
5892           - Move MappedMemory to SharedMemory, make UpdateChunk use this.
5893           - Implement CoreIPC::Attachment using mmaped files.
5894           - Send messages using datagram socket. This solution works
5895             similiarly to Mach ports on Mac.
5896           - Send big messages out-of-line and thus avoid increasing
5897             the receive buffer.
5898           - Remove MemoryMappedPool and rely on libc/kernel caching
5899             of mmapped areas.
5900           - Unmap memory areas after use.
5901           - When UI process crashes, kill the web process using SIGKILL.
5902             This is possible again because cleanup handler is not needed.
5903
5904         [WK2][Qt] Multiple problems with MemoryMappedPool
5905         https://bugs.webkit.org/show_bug.cgi?id=51984
5906
5907         * Platform/CoreIPC/Attachment.cpp:
5908         (CoreIPC::Attachment::Attachment):
5909         * Platform/CoreIPC/Attachment.h:
5910         (CoreIPC::Attachment::size):
5911         (CoreIPC::Attachment::releaseFileDescriptor):
5912         (CoreIPC::Attachment::fileDescriptor):
5913         * Platform/CoreIPC/Connection.h:
5914         * Platform/CoreIPC/qt/ConnectionQt.cpp:
5915         (CoreIPC::MessageInfo::MessageInfo):
5916         (CoreIPC::MessageInfo::setMessageBodyOOL):
5917         (CoreIPC::MessageInfo::isMessageBodyOOL):
5918         (CoreIPC::MessageInfo::bodySize):
5919         (CoreIPC::MessageInfo::messageID):
5920         (CoreIPC::MessageInfo::attachmentCount):
5921         (CoreIPC::Connection::platformInitialize):
5922         (CoreIPC::Connection::platformInvalidate):
5923         (CoreIPC::SocketNotifierDisableGuard::SocketNotifierDisableGuard):
5924         (CoreIPC::SocketNotifierDisableGuard::~SocketNotifierDisableGuard):
5925         (CoreIPC::Connection::readyReadHandler):
5926         (CoreIPC::Connection::open):
5927         (CoreIPC::Connection::platformCanSendOutgoingMessages):
5928         (CoreIPC::Connection::sendOutgoingMessage):
5929         * Platform/SharedMemory.h:
5930         * Platform/WorkQueue.h:
5931         * Platform/qt/MappedMemoryPool.cpp: Removed.
5932         * Platform/qt/MappedMemoryPool.h: Removed.
5933         * Platform/qt/SharedMemoryQt.cpp:
5934         (WebKit::SharedMemory::Handle::Handle):
5935         (WebKit::SharedMemory::Handle::~Handle):
5936         (WebKit::SharedMemory::Handle::isNull):
5937         (WebKit::SharedMemory::Handle::encode):
5938         (WebKit::SharedMemory::Handle::decode):
5939         (WebKit::SharedMemory::Handle::releaseToAttachment):
5940         (WebKit::SharedMemory::Handle::adoptFromAttachment):
5941         (WebKit::SharedMemory::create):
5942         (WebKit::accessModeMMap):
5943         (WebKit::SharedMemory::~SharedMemory):
5944         (WebKit::accessModeFile):
5945         (WebKit::SharedMemory::createHandle):
5946         * Platform/qt/WorkQueueQt.cpp:
5947         (WorkQueue::registerSocketEventHandler):
5948         * Shared/qt/UpdateChunk.cpp:
5949         (WebKit::UpdateChunk::UpdateChunk):
5950         (WebKit::UpdateChunk::~UpdateChunk):
5951         (WebKit::UpdateChunk::encode):
5952         (WebKit::UpdateChunk::decode):
5953         (WebKit::UpdateChunk::createImage):
5954         * Shared/qt/UpdateChunk.h:
5955         * UIProcess/Launcher/ProcessLauncher.h:
5956         * UIProcess/Launcher/qt/ProcessLauncherQt.cpp:
5957         (WebKit::QtWebProcess::QtWebProcess):
5958         (WebKit::QtWebProcess::setupChildProcess):
5959         (WebKit::ProcessLauncher::launchProcess):
5960         (WebKit::ProcessLauncher::platformInvalidate):
5961         * UIProcess/Launcher/qt/ThreadLauncherQt.cpp:
5962         (WebKit::webThreadBody):
5963         (WebKit::ThreadLauncher::createWebThread):
5964         * WebKit2.pro:
5965         * WebProcess/qt/WebProcessMainQt.cpp:
5966         (WebKit::WebProcessMainQt):
5967
5968 2011-01-24  Andras Becsi  <abecsi@webkit.org>
5969
5970         Reviewed by Csaba Osztrogonác.
5971
5972         [Qt] Move project files into Source
5973         https://bugs.webkit.org/show_bug.cgi?id=52891
5974
5975         * DerivedSources.pro:
5976         * WebKit2.pro:
5977         * WebProcess.pro:
5978
5979 2011-01-23  Damian Kaleta  <dkaleta@apple.com>
5980
5981         Reviewed by Kevin Decker.
5982
5983         <rdar://problem/8905171>
5984         https://bugs.webkit.org/show_bug.cgi?id=52985 
5985
5986         * UIProcess/WebPageProxy.cpp:
5987         (WebKit::WebPageProxy::scaleWebView): Eliminated early return inside WebPageProxy::scaleWebView, making it 
5988         consistent with WebKit1.
5989
5990 2011-01-23  Alexey Proskuryakov  <ap@apple.com>
5991
5992         Reviewed by Dan Bernstein.
5993
5994         https://bugs.webkit.org/show_bug.cgi?id=52968
5995         Use a separate NSView for printing
5996
5997         Also addresses <rdar://problem/8900148> Improper check for 
5998         -[NSGraphicsContext currentContextDrawingToScreen]
5999
6000         * UIProcess/API/mac/WKPrintingView.h: Added.
6001         * UIProcess/API/mac/WKPrintingView.mm: Added.
6002         (-[WKPrintingView initWithFrameProxy:]):
6003         (-[WKPrintingView isFlipped]):
6004         (-[WKPrintingView _adjustPrintingMarginsForHeaderAndFooter]):
6005         (-[WKPrintingView knowsPageRange:]):
6006         (-[WKPrintingView _recursiveDisplayRectIfNeededIgnoringOpacity:isVisibleRect:rectIsVisibleRectForView:topView:]):
6007         (-[WKPrintingView drawPageBorderWithSize:]):
6008         (-[WKPrintingView _provideTotalScaleFactorForPrintOperation:]):
6009         (-[WKPrintingView rectForPage:]):
6010         * UIProcess/API/mac/WKView.mm:
6011         (-[WKView drawRect:]):
6012         (-[WKView canChangeFrameLayout:]):
6013         (-[WKView printOperationWithPrintInfo:forFrame:]):
6014         * WebKit2.xcodeproj/project.pbxproj:
6015         Moved printing code to a separate view, simplifying as appropriate. The view is currently not
6016         referenced by anything in WebKit2 directly, being owned by NSPrintOperation.
6017
6018 2011-01-22  Anders Carlsson  <andersca@apple.com>
6019
6020         Reviewed by Sam Weinig.
6021
6022         Transparent windows with compositing WebKit2 content show garbage
6023         https://bugs.webkit.org/show_bug.cgi?id=52966
6024         <rdar://problem/8765051>
6025
6026         * UIProcess/mac/LayerBackedDrawingAreaProxyMac.mm:
6027         (WebKit::LayerBackedDrawingAreaProxy::paint):
6028         If the WKView should draw transparent background, do so.
6029
6030 2011-01-22  Anders Carlsson  <andersca@apple.com>
6031
6032         Reviewed by Sam Weinig.
6033
6034         Add an asynchronous WKPageForceRepaint
6035         https://bugs.webkit.org/show_bug.cgi?id=52964
6036         <rdar://problem/8898527>
6037
6038         * UIProcess/API/C/WKPage.cpp:
6039         (WKPageForceRepaint):
6040         Call WebPageProxy::forceRepaint.
6041
6042         * UIProcess/API/C/WKPage.h:
6043         Add WKPageForceRepaint.
6044
6045         * UIProcess/GenericCallback.h:
6046         Add a "generic" VoidCallback class.
6047
6048         * UIProcess/WebPageProxy.cpp:
6049         (WebKit::WebPageProxy::forceRepaint):
6050         Insert the callback in the m_voidCallbacks map and send a forceRepaint message.
6051
6052         (WebKit::WebPageProxy::voidCallback):
6053         Call the right void callback.
6054
6055         (WebKit::WebPageProxy::processDidCrash):
6056         Invalidate m_voidCallbacks.
6057
6058         * UIProcess/WebPageProxy.messages.in:
6059         Add a VoidCallback message.
6060
6061         * WebProcess/WebPage/ChunkedUpdateDrawingArea.cpp:
6062         (WebKit::ChunkedUpdateDrawingArea::forceRepaint):
6063         Force a repaint.
6064
6065         * WebProcess/WebPage/ChunkedUpdateDrawingArea.h:
6066         Add forceRepaint.
6067
6068         * WebProcess/WebPage/WebPage.cpp:
6069         (WebKit::WebPage::forceRepaint):
6070         Call forceRepaint on the drawing area.
6071
6072         * WebProcess/WebPage/WebPage.messages.in:
6073         Add a ForceRepaint message.
6074
6075 2011-01-21  Nikolas Zimmermann  <nzimmermann@rim.com>
6076
6077         Reviewed by Dirk Schulze.
6078
6079         Introduce FontMetrics abstraction
6080         https://bugs.webkit.org/show_bug.cgi?id=51456
6081
6082         * WebProcess/WebCoreSupport/win/WebPopupMenuWin.cpp: Use FontMetrics instead of Font to access the metrics.
6083         (WebKit::WebPopupMenu::setUpPlatformData):
6084
6085 2011-01-22  Alexey Proskuryakov  <ap@apple.com>
6086
6087         Reviewed by Dan Bernstein.
6088
6089         https://bugs.webkit.org/show_bug.cgi?id=52950
6090         Leak in WebPage::drawRectToPDF
6091
6092         * WebProcess/WebPage/WebPage.cpp: (WebKit::WebPage::drawRectToPDF): Use RetainPtr here, too.
6093
6094 2011-01-22  Alexey Proskuryakov  <ap@apple.com>
6095
6096         Reviewed by Dan Bernstein.
6097
6098         https://bugs.webkit.org/show_bug.cgi?id=52951
6099         WebKit2 generates a bad PDF for cross process messaging
6100
6101         * UIProcess/API/mac/WKView.mm:
6102         (-[WKView _recursiveDisplayRectIfNeededIgnoringOpacity:isVisibleRect:rectIsVisibleRectForView:topView:]):
6103         Use a correct offset when flipping.
6104
6105 2011-01-21  Alexey Proskuryakov  <ap@apple.com>
6106
6107         Reviewed by Dan Bernstein.
6108
6109         https://bugs.webkit.org/show_bug.cgi?id=52943
6110         Objective-C files should use #import, not #include
6111
6112         * UIProcess/API/C/WebKit2.h: This is an interesting one, because it's cross-platform, and
6113         there is more than one WKView.h.
6114
6115         * Platform/mac/ModuleMac.mm:
6116         * Platform/mac/RunLoopMac.mm:
6117         * PluginProcess/mac/PluginControllerProxyMac.mm:
6118         * PluginProcess/mac/PluginProcessMac.mm:
6119         * PluginProcess/mac/PluginProcessMainMac.mm:
6120         * Shared/API/c/mac/WKCertificateInfoMac.mm:
6121         * Shared/API/c/mac/WKURLRequestNS.mm:
6122         * Shared/API/c/mac/WKURLResponseNS.mm:
6123         * Shared/Plugins/Netscape/mac/NetscapePluginModuleMac.mm:
6124         * Shared/mac/PlatformCertificateInfo.mm:
6125         * Shared/mac/SandboxExtensionMac.mm:
6126         * Shared/mac/WebCoreArgumentCodersMac.mm:
6127         * Shared/mac/WebMemorySampler.mac.mm:
6128         * Shared/mac/WebURLRequestMac.mm:
6129         * Shared/mac/WebURLResponseMac.mm:
6130         * UIProcess/API/mac/FindIndicatorWindow.mm:
6131         * UIProcess/API/mac/WKTextInputWindowController.mm:
6132         * UIProcess/Launcher/mac/ProcessLauncherMac.mm:
6133         * UIProcess/Launcher/mac/ThreadLauncherMac.mm:
6134         * UIProcess/Plugins/mac/PluginInfoStoreMac.mm:
6135         * UIProcess/Plugins/mac/PluginProcessProxyMac.mm:
6136         * UIProcess/mac/BackingStoreMac.mm:
6137         * UIProcess/mac/ChunkedUpdateDrawingAreaProxyMac.mm:
6138         * UIProcess/mac/LayerBackedDrawingAreaProxyMac.mm:
6139         * UIProcess/mac/TextCheckerMac.mm:
6140         * UIProcess/mac/WebContextMac.mm:
6141         * UIProcess/mac/WebContextMenuProxyMac.mm:
6142         * UIProcess/mac/WebPageProxyMac.mm:
6143         * UIProcess/mac/WebPopupMenuProxyMac.mm:
6144         * UIProcess/mac/WebPreferencesMac.mm:
6145         * WebProcess/Downloads/mac/DownloadMac.mm:
6146         * WebProcess/Plugins/Netscape/mac/NetscapePluginMac.mm:
6147         * WebProcess/Plugins/Netscape/mac/PluginProxyMac.mm:
6148         * WebProcess/WebCoreSupport/mac/WebContextMenuClientMac.mm:
6149         * WebProcess/WebCoreSupport/mac/WebDatabaseManagerMac.mm:
6150         * WebProcess/WebCoreSupport/mac/WebEditorClientMac.mm:
6151         * WebProcess/WebCoreSupport/mac/WebErrorsMac.mm:
6152         * WebProcess/WebCoreSupport/mac/WebPopupMenuMac.mm:
6153         * WebProcess/WebPage/mac/LayerBackedDrawingAreaMac.mm:
6154         * WebProcess/WebPage/mac/WebPageMac.mm:
6155         * WebProcess/mac/WebProcessMac.mm:
6156
6157 2011-01-21  Mark Rowe  <mrowe@apple.com>
6158
6159         Reviewed by Sam Weinig.
6160
6161         Fix the WebKit2 build with clang.
6162
6163         * Scripts/webkit2/messages.py: Add some more structs to the list.
6164         * UIProcess/DrawingAreaProxy.h: Forward-declare UpdateInfo as a class.
6165         * UIProcess/TextChecker.h: Forward-declare TextCheckerState as a struct.
6166         * UIProcess/WebPageProxy.h: Forward-declare ContextMenuState as a struct.
6167         * UIProcess/mac/TextCheckerMac.mm: Fix the type of the string constants so that they can be passed to
6168         functions expecting NSString* without generating warnings.
6169         * WebProcess/WebPage/DrawingArea.h: Forward-declare WebPageCreationParameters as a struct.
6170         * WebProcess/WebPage/DrawingAreaImpl.h: Forward-declare UpdateInfo as a class.
6171         * WebProcess/WebPage/WebPage.cpp:
6172         (WebKit::WebPage::getResourceDataFromFrame): Add parens around the assignment in the condition of
6173         the if statement to suppress a warning.
6174
6175 2011-01-21  Brian Weinstein  <bweinstein@apple.com>
6176
6177         Reviewed by Adam Roben.
6178
6179         WebKit2: Need API to stop loading a WKFrame
6180         https://bugs.webkit.org/show_bug.cgi?id=52925
6181
6182         * UIProcess/API/C/WKFrame.cpp:
6183         (WKFrameStopLoading): Call through to WebFrameProxy::stopLoading.
6184         * UIProcess/API/C/WKFrame.h:
6185         * UIProcess/WebFrameProxy.cpp:
6186         (WebKit::WebFrameProxy::stopLoading): Send a message to the WebProcess to stop loading the frame
6187             with the passed in ID.
6188         * UIProcess/WebFrameProxy.h:
6189         * WebProcess/WebPage/WebPage.cpp:
6190         (WebKit::WebPage::stopLoadingFrame): Call stopForUserCancel on the passed-in frame.
6191         * WebProcess/WebPage/WebPage.h:
6192         * WebProcess/WebPage/WebPage.messages.in: Add StopLoadingFrame.
6193
6194 2011-01-21  Brady Eidson  <beidson@apple.com>
6195
6196         Reviewed by Adam Roben.
6197
6198         <rdar://problem/8894125> and https://bugs.webkit.org/show_bug.cgi?id=52916
6199         Expose "suggested filename" for a resource based on its resource response.
6200
6201         API pieces:
6202         * WebProcess/InjectedBundle/API/c/WKBundleFrame.cpp:
6203         (WKBundleFrameCopySuggestedFilenameForResourceURL):
6204         * WebProcess/InjectedBundle/API/c/WKBundleFrame.h:
6205         
6206         Implementation:
6207         * WebProcess/WebPage/WebFrame.cpp:
6208         (WebKit::WebFrame::suggestedFilenameForResourceURL): See if the DocumentLoader has
6209           a resource for this URL and, if so, return the response's suggested filename.
6210         * WebProcess/WebPage/WebFrame.h:
6211
6212 2011-01-21  Anders Carlsson  <andersca@apple.com>
6213
6214         Reviewed by Dan Bernstein.
6215
6216         DrawingAreaProxyImpl::paint should return the unpainted region
6217         https://bugs.webkit.org/show_bug.cgi?id=52918
6218
6219         * UIProcess/API/mac/WKView.mm:
6220         (-[WKView drawRect:]):
6221         Add unpaintedRegion parameter.
6222
6223         * UIProcess/BackingStore.h:
6224         (WebKit::BackingStore::size):
6225         Add a size getter.
6226
6227         * UIProcess/DrawingAreaProxyImpl.cpp:
6228         (WebKit::DrawingAreaProxyImpl::paint):
6229         Initialize the unpainted region to the dirty region, then subtract the painted region.
6230
6231 2011-01-21  Anders Carlsson  <andersca@apple.com>
6232
6233         Reviewed by Dan Bernstein and Maciej Stachowiak.
6234
6235         Fix for <rdar://problem/8896057>
6236
6237         Give the Web Process access to the PubSub agent.
6238
6239         * WebProcess/com.apple.WebProcess.sb:
6240
6241 2011-01-21  Sam Weinig  <sam@webkit.org>
6242
6243         Reviewed by Anders Carlsson.
6244
6245         Part 2 of "Cleanup Scrollbar/ScrollbarClient relationship"
6246         https://bugs.webkit.org/show_bug.cgi?id=52779
6247
6248         Rename ScrollbarClient -> ScrollableArea.
6249
6250         * UIProcess/win/WebPopupMenuProxyWin.cpp:
6251         (WebKit::WebPopupMenuProxyWin::onMouseWheel):
6252         (WebKit::WebPopupMenuProxyWin::scrollToRevealSelection):
6253         * UIProcess/win/WebPopupMenuProxyWin.h:
6254
6255 2011-01-21  Adam Roben  <aroben@apple.com>
6256
6257         Update for WKCACFLayerRenderer -> CACFLayerView rename
6258
6259         Fixes <http://webkit.org/b/52898> WKCACFLayerRenderer sounds like a render object, but isn't
6260
6261         Reviewed by Simon Fraser.
6262
6263         * WebProcess/WebPage/win/LayerBackedDrawingAreaWin.cpp: Just removed all the unnecessary
6264         #includes.
6265
6266 2011-01-20  Darin Adler  <darin@apple.com>
6267
6268         Reviewed by Dan Bernstein.
6269
6270         WebKit2: Implement showModalDialog
6271         https://bugs.webkit.org/show_bug.cgi?id=52855
6272
6273         * Shared/WebPageCreationParameters.h: Added canRunModal.
6274
6275         * UIProcess/API/C/WKPage.h: Added a runModal function pointer to
6276         WKPageUIClient. Also removed a lot of redundant typedefs and added
6277         a new one, WKPageCallback, for callbacks without arguments or return
6278         values.
6279
6280         * UIProcess/API/qt/qwkpage.cpp:
6281         (QWKPage::QWKPage): Added a runModal function pointer of 0.
6282
6283         * UIProcess/WebPageProxy.cpp:
6284         (WebKit::WebPageProxy::creationParameters): Set canRunModal
6285         based on return value of WebUIClient::canRunModal.
6286
6287         * UIProcess/WebPageProxy.h: Added runModal.
6288         Calls WebUIClient::runModal.
6289
6290         * UIProcess/WebPageProxy.messages.in: Added RunModal message.
6291         Also removed the periods from the phrases in the comments
6292         as Maciej requested a while back.
6293
6294         * UIProcess/WebUIClient.cpp:
6295         (WebKit::WebUIClient::canRunModal): Added. Returns true or false
6296         based on whether a runModal function was supplied in the
6297         WKPageUIClient structure.
6298         (WebKit::WebUIClient::runModal): Added. Calls the runModal
6299         function from the WKPageUIClient structure.
6300         * UIProcess/WebUIClient.h: Declared the above functions.
6301
6302         * WebProcess/WebCoreSupport/WebChromeClient.cpp:
6303         (WebKit::WebChromeClient::canRunModal): Call through to WebPage.
6304         (WebKit::WebChromeClient::runModal): Ditto.
6305
6306         * WebProcess/WebPage/WebPage.cpp:
6307         (WebKit::WebPage::WebPage): Initialize m_canRunModal based on the
6308         creation parameters. Initialize m_isRunningModal to false.
6309         (WebKit::WebPage::close): Stop the nested run loop if we are running modal.
6310         (WebKit::WebPage::runModal): Send a message to ask the UI process to run
6311         modal and then start a nested run loop. It gets stopped when the page is closed.
6312         * WebProcess/WebPage/WebPage.h: Defined the canRunModal function
6313         and declared the runModal function.
6314
6315 2011-01-20  Alexey Proskuryakov  <ap@apple.com>
6316
6317         Reviewed by Darin Adler.
6318
6319         https://bugs.webkit.org/show_bug.cgi?id=52849
6320         Make window.print work with WebKit2
6321
6322         * UIProcess/API/qt/qwkpage.cpp:
6323         (QWKPage::QWKPage):
6324         * UIProcess/WebPageProxy.cpp:
6325         (WebKit::WebPageProxy::printFrame):
6326         * UIProcess/WebPageProxy.h:
6327         * UIProcess/WebPageProxy.messages.in:
6328         * UIProcess/WebUIClient.cpp:
6329         (WebKit::WebUIClient::printFrame):
6330         * UIProcess/WebUIClient.h:
6331         * WebProcess/WebCoreSupport/WebChromeClient.cpp:
6332         (WebKit::WebChromeClient::print):
6333         Just pass through deelagte call to a WebKit2 client.
6334
6335         * UIProcess/API/C/WKPage.h: Also added "Callback" suffix to other printing related function
6336         types.
6337
6338 2011-01-20  Anders Carlsson  <andersca@apple.com>
6339
6340         Reviewed by Darin Adler.
6341
6342         Keep track of the latest update timestamp in the backing store
6343         https://bugs.webkit.org/show_bug.cgi?id=52848
6344
6345         * Shared/UpdateInfo.h:
6346         (WebKit::UpdateInfo::UpdateInfo):
6347         Initialize timestamp to 0.
6348
6349         * UIProcess/BackingStore.cpp:
6350         (WebKit::BackingStore::BackingStore):
6351         Initialize m_latestUpdateTimestamp to 0.
6352
6353         (WebKit::BackingStore::incorporateUpdate):
6354         If the update is too old, discard it. Otherwise, create a bitmap
6355         and pass it to platformIncorporateUpdate. Finally update the timestamp.
6356
6357         * UIProcess/BackingStore.h:
6358         Add m_latestUpdateTimestamp.
6359
6360         * UIProcess/mac/BackingStoreMac.mm:
6361         (WebKit::BackingStore::platformIncorporateUpdate):
6362         Update now that we are already given the shareable bitmap.
6363
6364 2011-01-20  Beth Dakin  <bdakin@apple.com>
6365
6366         Reviewed by Geoffrey Garen.
6367
6368         Fix for <rdar://problem/8890255>
6369
6370         Allow WebKitSystemInterface to draw scrollbars 
6371         when appropriate.
6372         * WebProcess/WebCoreSupport/mac/WebSystemInterface.mm:
6373         (InitWebCoreSystemInterface):
6374
6375 2011-01-20  Sam Weinig  <sam@webkit.org>
6376
6377         Reviewed by Dave Hyatt.
6378
6379         Cleanup Scrollbar/ScrollbarClient relationship
6380         https://bugs.webkit.org/show_bug.cgi?id=52779
6381
6382         * UIProcess/win/WebPopupMenuProxyWin.cpp:
6383         (WebKit::WebPopupMenuProxyWin::scrollPosition):
6384         (WebKit::WebPopupMenuProxyWin::setScrollOffset):
6385         (WebKit::WebPopupMenuProxyWin::scrollTo):
6386         (WebKit::WebPopupMenuProxyWin::onMouseWheel):
6387         (WebKit::WebPopupMenuProxyWin::scrollToRevealSelection):
6388         * UIProcess/win/WebPopupMenuProxyWin.h:
6389         (WebKit::WebPopupMenuProxyWin::verticalScrollbar):
6390
6391 2011-01-20  Anders Carlsson  <andersca@apple.com>
6392
6393         Reviewed by Adam Roben.
6394
6395         Add a timestamp to UpdateInfo
6396         https://bugs.webkit.org/show_bug.cgi?id=52844
6397
6398         * Shared/UpdateInfo.cpp:
6399         (WebKit::UpdateInfo::encode):
6400         (WebKit::UpdateInfo::decode):
6401         * Shared/UpdateInfo.h:
6402         * WebProcess/WebPage/DrawingAreaImpl.cpp:
6403         (WebKit::DrawingAreaImpl::setSize):
6404         (WebKit::DrawingAreaImpl::display):
6405
6406 2011-01-20  Anders Carlsson  <andersca@apple.com>
6407
6408         Reviewed by Beth Dakin.
6409
6410         Add Connection::waitForAndDispatchImmediately
6411         https://bugs.webkit.org/show_bug.cgi?id=52841
6412
6413         * Platform/CoreIPC/Connection.h:
6414         (CoreIPC::Connection::waitForAndDispatchImmediately):
6415
6416 2011-01-20  Kevin Decker  <kdecker@apple.com>
6417
6418         Reviewed by Anders Carlsson.
6419
6420         <rdar://problem/8880689> need a way to obtain the rendered rectangle for box elements
6421         https://bugs.webkit.org/show_bug.cgi?id=52823
6422         
6423         * WebProcess/InjectedBundle/API/c/WKBundleNodeHandle.cpp:
6424         (WKBundleNodeHandleGetRenderRect): Added new method that will return a rendered rectangle for box elements
6425         * WebProcess/InjectedBundle/API/c/WKBundleNodeHandlePrivate.h: Ditto.
6426         * WebProcess/InjectedBundle/DOM/InjectedBundleNodeHandle.cpp: Ditto.
6427         (WebKit::InjectedBundleNodeHandle::renderRect): Ditto.
6428         * WebProcess/InjectedBundle/DOM/InjectedBundleNodeHandle.h: Ditto.
6429
6430 2011-01-20  Kimmo Kinnunen  <kimmo.t.kinnunen@nokia.com>
6431
6432         Reviewed by Andreas Kling.
6433
6434         Remove null ptr deref that happens when reattaching to
6435         a new web process.
6436
6437         Implement didRelaunchProcess that sets the drawing area size
6438         after the drawing area is re-instantiated.
6439
6440         [Qt][WK2] Null ptr deref in UI process after web process has crashed
6441         https://bugs.webkit.org/show_bug.cgi?id=52796
6442
6443         * UIProcess/API/qt/qgraphicswkview.cpp:
6444         (QGraphicsWKView::QGraphicsWKView):
6445         * UIProcess/API/qt/qwkpage.cpp:
6446         (QWKPagePrivate::QWKPagePrivate):
6447         (QWKPagePrivate::init):
6448         (QWKPagePrivate::createDrawingAreaProxy):
6449         (QWKPagePrivate::didRelaunchProcess): Reset drawing area size after crash.
6450         * UIProcess/API/qt/qwkpage_p.h:
6451
6452 2011-01-20  Maciej Stachowiak  <mjs@apple.com>
6453
6454         Reviewed by Adam Roben.
6455
6456         WebKitTestRunner needs to support layoutTestController.evaluateScriptInIsolatedWorld
6457         https://bugs.webkit.org/show_bug.cgi?id=42327
6458         
6459         Added a new API call, WKBundleFrameForJavaScriptContext, that gets the WKBundleFrameRef
6460         that corresponds to a JSContextRef (or null if none).
6461
6462         * WebProcess/InjectedBundle/API/c/WKBundleFrame.cpp:
6463         (WKBundleFrameForJavaScriptContext): Simple wrapper, defers to a WebFrame
6464         static method.
6465         * WebProcess/InjectedBundle/API/c/WKBundleFrame.h:
6466         * WebProcess/WebPage/WebFrame.cpp:
6467         (WebKit::WebFrame::frameForContext): Follow the maze of twisty pointers.
6468         * WebProcess/WebPage/WebFrame.h:
6469
6470 2011-01-20  Alejandro G. Castro  <alex@igalia.com>
6471
6472         Fix compilation error in GTK WebKit2.
6473
6474         * Platform/CoreIPC/gtk/ConnectionGtk.cpp:
6475         (CoreIPC::readBytesFromSocket):
6476         (CoreIPC::writeBytesToSocket):
6477
6478 2011-01-20  Zoltan Horvath  <zoltan@webkit.org>
6479
6480         Reviewed by Csaba Osztrogonác.
6481
6482         Refactoring of the custom allocation framework
6483         https://bugs.webkit.org/show_bug.cgi?id=49897
6484
6485         Inheriting from FastAllocBase can result in objects getting larger (bug #33896, #46589).
6486         The modification replaces Noncopyable and FastAllocBase classes and these inherits with their
6487         equivalent macro implementation at the necessary places.
6488
6489 2011-01-19  Simon Fraser  <simon.fraser@apple.com>
6490
6491         Fix the WebKit2 build.
6492
6493         * WebProcess/WebPage/mac/LayerBackedDrawingAreaMac.mm:
6494         (WebKit::LayerBackedDrawingArea::syncCompositingLayers):
6495
6496 2011-01-19  Brian Weinstein  <bweinstein@apple.com>
6497
6498         Reviewed by Darin Adler.
6499
6500         WebKit2: Need API to get the parent frame of a frame
6501         https://bugs.webkit.org/show_bug.cgi?id=52774
6502         
6503         Add the API to get the parent frame of a frame.
6504
6505         * UIProcess/API/C/WKFrame.cpp:
6506         (WKFrameGetParentFrame):
6507         * UIProcess/API/C/WKFrame.h:
6508
6509 2011-01-19  Enrica Casucci  <enrica@apple.com>
6510
6511         Reviewed by Darin Adler.
6512
6513         WebKit2: add support for drag and drop
6514         https://bugs.webkit.org/show_bug.cgi?id=52343
6515         <rdar://problem/7660558>
6516         
6517         This patch contains the remaining work to support drag and drop on Mac.
6518         I've added a PasteboardTypes class to encapsulate all the pasteboard formats
6519         supported for drag and drop.
6520         In this implementation we don't support the promised types, since I could not
6521         find an efficient way to do this across processes.
6522         The bulk of the patch consists in creating a shareable bitmap for the drag image,
6523         pass its handle to the UI process and create a new NSImage from it to be given to
6524         AppKit for dragging.
6525         I've added the missing implementation of the methods in the drag client to hook
6526         up the placement of the data in the pasteboard.
6527         
6528         * Shared/mac/PasteboardTypes.h: Added.
6529         * Shared/mac/PasteboardTypes.mm: Added.
6530         (WebKit::PasteboardTypes::forEditing):
6531         (WebKit::PasteboardTypes::forURL):
6532         (WebKit::PasteboardTypes::forImages):
6533         (WebKit::PasteboardTypes::forImagesWithArchive):
6534         * UIProcess/API/mac/PageClientImpl.h:
6535         * UIProcess/API/mac/PageClientImpl.mm:
6536         (WebKit::PageClientImpl::setDragImage): Added.
6537         * UIProcess/API/mac/WKView.mm:
6538         (-[WKView _registerDraggedTypes]): Refactored to use the new PasteboardTypes class.
6539         (-[WKView initWithFrame:contextRef:pageGroupRef:]):
6540         (-[WKView _setMouseDownEvent:]):
6541         (-[WKView _mouseHandler:]):
6542         (-[WKView mouseDown:]):
6543         (-[WKView mouseUp:]):
6544         (-[WKView mouseDragged:]):
6545         (-[WKView draggedImage:endedAt:operation:]):
6546         (-[WKView draggingEntered:]):
6547         (-[WKView _setDragImage:at:linkDrag:]):
6548         * UIProcess/API/mac/WKViewInternal.h:
6549         * UIProcess/PageClient.h:
6550         * UIProcess/WebPageProxy.cpp:
6551         (WebKit::WebPageProxy::setDragImage):
6552         (WebKit::WebPageProxy::dragEnded):
6553         * UIProcess/WebPageProxy.h:
6554         * UIProcess/WebPageProxy.messages.in:
6555         * WebKit2.xcodeproj/project.pbxproj:
6556         * WebProcess/WebCoreSupport/WebDragClient.cpp:
6557         * WebProcess/WebCoreSupport/WebDragClient.h:
6558         * WebProcess/WebCoreSupport/mac/WebDragClientMac.mm: Added.
6559         (WebKit::fontFromNSFont):
6560         (WebKit::WebDragClient::startDrag): Added implementation.
6561         (WebKit::WebDragClient::createDragImageForLink): Ditto.
6562         (WebKit::writeURL): Helper function.
6563         (WebKit::writeImage): Helper function.
6564         (WebKit::WebDragClient::declareAndWriteDragImage): Added implementation.
6565         * WebProcess/WebPage/WebPage.cpp:
6566         (WebKit::WebPage::dragEnded):
6567         * WebProcess/WebPage/WebPage.h:
6568         * WebProcess/WebPage/WebPage.messages.in:
6569
6570 2011-01-19  Anders Carlsson  <andersca@apple.com>
6571
6572         Reviewed by Dan Bernstein.
6573
6574         Put the deprecated Connection member functions next to eachother
6575         https://bugs.webkit.org/show_bug.cgi?id=52767
6576
6577         * Platform/CoreIPC/Connection.h:
6578         (CoreIPC::Connection::sendSync):
6579         (CoreIPC::Connection::send):
6580
6581 2011-01-19  Anders Carlsson  <andersca@apple.com>
6582
6583         Reviewed by Sam Weinig.
6584
6585         When resizing, the web process should repaint the page
6586         https://bugs.webkit.org/show_bug.cgi?id=52764
6587
6588         * UIProcess/DrawingAreaProxyImpl.cpp:
6589         (WebKit::DrawingAreaProxyImpl::didSetSize):
6590         Incorporate the update.
6591
6592         (WebKit::DrawingAreaProxyImpl::incorporateUpdate):
6593         Return early if the update bounds rect is empty. This can happen if painting is
6594         disabled and we get a DidSetSize message.
6595
6596         * WebProcess/WebPage/DrawingAreaImpl.cpp:
6597         (WebKit::DrawingAreaImpl::setSize):
6598         If painting is disabled, just send back an empty UpdateInfo struct. Otherwise,
6599         paint and fill in the UpdateInfo struct.
6600
6601         (WebKit::DrawingAreaImpl::display):
6602         Assert that painting is not disabled.
6603
6604 2011-01-19  Alexey Proskuryakov  <ap@apple.com>
6605
6606         Reviewed by Darin Adler.
6607
6608         https://bugs.webkit.org/show_bug.cgi?id=52739
6609         Make it possible for a WebKit2 client to print headers and footers
6610
6611         * UIProcess/API/C/WKPage.h:
6612         * UIProcess/WebPageProxy.cpp:
6613         (WebKit::WebPageProxy::headerHeight):
6614         (WebKit::WebPageProxy::footerHeight):
6615         (WebKit::WebPageProxy::drawHeader):
6616         (WebKit::WebPageProxy::drawFooter):
6617         * UIProcess/WebPageProxy.h:
6618         * UIProcess/WebUIClient.cpp:
6619         (WebKit::WebUIClient::headerHeight):
6620         (WebKit::WebUIClient::footerHeight):
6621         (WebKit::WebUIClient::drawHeader):
6622         (WebKit::WebUIClient::drawFooter):
6623         * UIProcess/WebUIClient.h:
6624         Pass UIClient calls through.
6625
6626         * UIProcess/API/mac/WKView.mm:
6627         (currentPrintOperationScale): A helper to extract scale factor from the current NSPrintOperation.
6628         (-[WKView _adjustPrintingMarginsForHeaderAndFooter]): Copied from WebKit1. Change current
6629         print info to account for header and footer height as provided by the client.
6630         (-[WKView knowsPageRange:]): Call -[self _adjustPrintingMarginsForHeaderAndFooter].
6631         (-[WKView drawPageBorderWithSize:]): When AppKit asks to print page border, call the client
6632         to do that. Code adapted form WebKit1.
6633
6634         * UIProcess/API/qt/qwkpage:
6635         (QWKPage::QWKPage): Added zeroes for new WKPageUIClient members to avoid breaking the build.
6636
6637 2011-01-19  Jessie Berlin  <jberlin@apple.com>
6638
6639         Reviewed by Darin Adler.
6640
6641         Crash in WebDatabaseManagerProxy::getDatabaseOrigins when called after the WebProcess has
6642         died at least once
6643         https://bugs.webkit.org/show_bug.cgi?id=52730
6644
6645         WebDatabaseManagerProxy::invalidate was setting m_webContext to 0, and invalidate gets
6646         called in WebContext::processDidClose. However, m_webContext is only set in the
6647         constructor, which is only called from the constructor of WebContext, so attempting to send
6648         a message to any new WebProcess after the first one died was causing a null deref.
6649
6650         This patch moves setting m_webcontext into clearContext and clearContext is only called in
6651         the WebContext destructor.
6652
6653         This patch also adds checks for a valid WebProcessProxy before attempting to send messages to
6654         the WebProcessProxy so that if the WebProcess has died and has not been revived, it does not
6655         attempt to dereference a null WebProcessProxy.
6656
6657         * UIProcess/WebContext.cpp:
6658         (WebKit::WebContext::~WebContext):
6659         Call WebDatabaseManagerProxy::clearContext.
6660         * UIProcess/WebContext.h:
6661         (WebKit::WebContext::hasValidProcess):
6662         Make this method public so that it can be called from WebDatabaseManagerProxy.
6663
6664         * UIProcess/WebDatabaseManagerProxy.cpp:
6665         (WebKit::WebDatabaseManagerProxy::getDatabasesByOrigin):
6666         If there isn't a valid process, invalidate the callback and return early.
6667         (WebKit::WebDatabaseManagerProxy::getDatabaseOrigins):
6668         Ditto.
6669         (WebKit::WebDatabaseManagerProxy::deleteDatabaseWithNameForOrigin):
6670         If tehre isn't a valid process return early.
6671         (WebKit::WebDatabaseManagerProxy::deleteDatabasesForOrigin):
6672         Ditto.
6673         (WebKit::WebDatabaseManagerProxy::deleteAllDatabases):
6674         Ditto.
6675         (WebKit::WebDatabaseManagerProxy::setQuotaForOrigin):
6676         Ditto.
6677         (WebKit::WebDatabaseManagerProxy::invalidate):
6678         Move setting m_webContext to 0 from here ...
6679         * UIProcess/WebDatabaseManagerProxy.h:
6680         (WebKit::WebDatabaseManagerProxy::clearContext):
6681         ... to here.
6682
6683 2011-01-19  Anders Carlsson  <andersca@apple.com>
6684
6685         Reviewed by Sam Weinig.
6686
6687         Suspend/resume painting as the WKView visibility changes
6688         https://bugs.webkit.org/show_bug.cgi?id=52738
6689
6690         * UIProcess/DrawingAreaProxy.h:
6691         (WebKit::DrawingAreaProxy::visibilityDidChange):
6692         Add new member function. It should really be pure virtual once setPageIsVisible
6693         is removed.
6694
6695         * UIProcess/DrawingAreaProxyImpl.cpp:
6696         (WebKit::DrawingAreaProxyImpl::visibilityDidChange):
6697         Send SuspendPainting/ResumePainting messages based on whether the view is visible or not.
6698
6699         (WebKit::DrawingAreaProxyImpl::setPageIsVisible):
6700         Make this a stub; it should really be removed.
6701
6702         * UIProcess/WebPageProxy.cpp:
6703         (WebKit::WebPageProxy::viewStateDidChange):
6704         Call visibilityDidChange.
6705
6706         * UIProcess/WebPageProxy.h:
6707         (WebKit::WebPageProxy::isViewVisible):
6708         Add new getter.
6709
6710         * WebProcess/WebPage/DrawingArea.messages.in:
6711         Add SuspendPainting and ResumePainting messages.
6712
6713         * WebProcess/WebPage/DrawingAreaImpl.cpp:
6714         (WebKit::DrawingAreaImpl::DrawingAreaImpl):
6715         Initialize m_isPaintingSuspended.
6716
6717         (WebKit::DrawingAreaImpl::suspendPainting):
6718         Set m_isPaintingSuspended to true and stop the display timer.
6719
6720         (WebKit::DrawingAreaImpl::resumePainting):
6721         Set m_isPaintingSuspended to false.
6722
6723         (WebKit::DrawingAreaImpl::scheduleDisplay):
6724         (WebKit::DrawingAreaImpl::display):
6725         Bail if m_isPaintingSuspended is true.
6726
6727 2011-01-19  Andreas Kling  <kling@webkit.org>
6728
6729         Reviewed by Simon Hausmann.
6730
6731         [Qt][WK2] Implement formatLocalizedString() for Qt.
6732
6733         * WebProcess/WebCoreSupport/WebPlatformStrategies.cpp:
6734         (WebKit::formatLocalizedString):
6735
6736 2011-01-19  Chris Marrin  <cmarrin@apple.com>
6737
6738         Reviewed by Simon Fraser.
6739
6740         WK2 - Multiple crashes in PlatformCALayer::replaceSublayer
6741         https://bugs.webkit.org/show_bug.cgi?id=52695
6742
6743         Added a hostingLayer as the parent of the existing drawingLayer.
6744         The hostingLayer is now the root which is passed to the 
6745         remote context. It never changes except to track the size
6746         of the window. The backingLayer is now a child of the 
6747         hostingLayer, which allow it to switch between tiled and
6748         non-tiled.
6749
6750         I also now give back accurate settings for debug borders and
6751         repaint counters.
6752
6753         * WebProcess/WebPage/LayerBackedDrawingArea.cpp:
6754         (WebKit::LayerBackedDrawingArea::LayerBackedDrawingArea):
6755         (WebKit::LayerBackedDrawingArea::setSize):
6756         (WebKit::LayerBackedDrawingArea::showDebugBorders):
6757         (WebKit::LayerBackedDrawingArea::showRepaintCounter):
6758         * WebProcess/WebPage/LayerBackedDrawingArea.h:
6759         * WebProcess/WebPage/mac/LayerBackedDrawingAreaMac.mm:
6760         (WebKit::LayerBackedDrawingArea::platformInit):
6761         (WebKit::LayerBackedDrawingArea::attachCompositingContext):
6762         (WebKit::LayerBackedDrawingArea::syncCompositingLayers):
6763
6764 2011-01-19  Anders Carlsson  <andersca@apple.com>
6765
6766         Reviewed by Sam Weinig.
6767
6768         Send a new SetSize message if the size differs from the current size
6769         https://bugs.webkit.org/show_bug.cgi?id=52728
6770
6771         * UIProcess/DrawingAreaProxy.h:
6772         (WebKit::DrawingAreaProxy::didSetSize):
6773         Add UpdateInfo parameter.
6774
6775         * UIProcess/DrawingAreaProxy.messages.in:
6776         Add UpdateInfo parameter to the DidSetSize message.
6777
6778         * UIProcess/DrawingAreaProxyImpl.cpp:
6779         (WebKit::DrawingAreaProxyImpl::didSetSize):
6780         If the view size differs from the current size send another SetSize message.
6781
6782         * UIProcess/DrawingAreaProxyImpl.h:
6783         Add UpdateInfo parameter to didSetSize.
6784
6785         * WebProcess/WebPage/DrawingAreaImpl.cpp:
6786         (WebKit::DrawingAreaImpl::setSize):
6787         The DidSetSize message now takes an UpdateInfo parameter.
6788
6789 2011-01-19  Anders Carlsson  <andersca@apple.com>
6790
6791         Reviewed by Darin Adler.
6792
6793         Throttle sending of SetSize messages
6794         https://bugs.webkit.org/show_bug.cgi?id=52727
6795
6796         * UIProcess/DrawingAreaProxyImpl.cpp:
6797         (WebKit::DrawingAreaProxyImpl::DrawingAreaProxyImpl):
6798         Initialize m_isWaitingForDidSetSize to false.
6799
6800         (WebKit::DrawingAreaProxyImpl::didSetSize):
6801         Null out the backing store.
6802
6803         (WebKit::DrawingAreaProxyImpl::sendSetSize):
6804         If m_isWaitingForDidSetSize is true, do nothing. Otherwise, set m_isWaitingForDidSetSize
6805         to true and send a SetSize message.
6806
6807         * UIProcess/DrawingAreaProxyImpl.h:
6808         Add m_isWaitingForDidSetSize.
6809
6810 2011-01-19  Anders Carlsson  <andersca@apple.com>
6811
6812         Reviewed by Darin Adler.
6813
6814         Pass WebPageCreationParameters to DrawingArea::create
6815         https://bugs.webkit.org/show_bug.cgi?id=52726
6816
6817         * WebProcess/WebPage/DrawingArea.cpp:
6818         (WebKit::DrawingArea::create):
6819         * WebProcess/WebPage/DrawingArea.h:
6820         * WebProcess/WebPage/DrawingAreaImpl.cpp:
6821         (WebKit::DrawingAreaImpl::create):
6822         (WebKit::DrawingAreaImpl::DrawingAreaImpl):
6823         * WebProcess/WebPage/DrawingAreaImpl.h:
6824         * WebProcess/WebPage/WebPage.cpp:
6825         (WebKit::WebPage::WebPage):
6826         (WebKit::WebPage::changeAcceleratedCompositingMode):
6827
6828 2011-01-19  Csaba Osztrogonác  <ossy@webkit.org>
6829
6830         Reviewed by Laszlo Gombos and Tor Arne Vestbø.
6831
6832         [Qt] Remove unnecessary "../Source" from paths
6833         after moving source files into Source is finished.
6834
6835         * DerivedSources.pro:
6836         * WebKit2.pro:
6837
6838 2011-01-18  Maciej Stachowiak  <mjs@apple.com>
6839
6840         Reviewed by Sam Weinig.
6841
6842         WebKitTestRunner should track loading more like DumpRenderTree
6843         https://bugs.webkit.org/show_bug.cgi?id=52692
6844         
6845         Relax the message check in didSaveFrameToPageCache a bit more, since
6846         layout tests were still hitting the old one.
6847
6848         * UIProcess/WebPageProxy.cpp:
6849         (WebKit::isDisconnectedFrame):
6850         (WebKit::WebPageProxy::didSaveFrameToPageCache):
6851
6852 2011-01-18  Brady Eidson  <beidson@apple.com>
6853
6854         Reviewed by Darin Adler.
6855
6856         <rdar://problem/8860833> and https://bugs.webkit.org/show_bug.cgi?id=52599
6857         UIProcess crash in WebPageProxy::reattachToWebProcess when web process crashes with a new tab/window.
6858
6859         * UIProcess/WebPageProxy.cpp:
6860         (WebKit::WebPageProxy::reattachToWebProcessWithItem): Null check item *both* places it is used.
6861
6862 2011-01-18  Brady Eidson  <beidson@apple.com>
6863
6864         Reviewed by Maciej Stachowiak. 
6865
6866         <rdar://problem/8752200> and https://bugs.webkit.org/show_bug.cgi?id=52664
6867         Need WebKit2 API to asynchronously get the resource data for a URL
6868
6869         Rename WKFrameGetMainResourceDataFunction to WKFrameGetResourceDataFunction, and add
6870         new API to get a resource by URL:
6871         * UIProcess/API/C/WKFrame.cpp:
6872         (WKFrameGetMainResourceData):
6873         (WKFrameGetResourceData):
6874         (callGetResourceDataBlockAndDispose):
6875         (WKFrameGetMainResourceData_b):
6876         (WKFrameGetResourceData_b):
6877         * UIProcess/API/C/WKFrame.h:
6878
6879         Implement the new API in the UIProcess side:
6880         * UIProcess/WebFrameProxy.cpp:
6881         (WebKit::WebFrameProxy::getResourceData):
6882         * UIProcess/WebFrameProxy.h:
6883         * UIProcess/WebPageProxy.cpp:
6884         (WebKit::WebPageProxy::getResourceDataFromFrame):
6885         * UIProcess/WebPageProxy.h:
6886
6887         Have the WebProcess get the data and call back to the UIProcess:
6888         * WebProcess/WebPage/WebPage.cpp:
6889         (WebKit::WebPage::getResourceDataFromFrame):
6890         * WebProcess/WebPage/WebPage.h:
6891         * WebProcess/WebPage/WebPage.messages.in:
6892
6893 2011-01-18  Anders Carlsson  <andersca@apple.com>
6894
6895         Reviewed by Dan Bernstein.
6896
6897         Make PageClientImpl::scrollView do hardware blitting
6898         https://bugs.webkit.org/show_bug.cgi?id=52689
6899
6900         * UIProcess/API/mac/PageClientImpl.mm:
6901         (WebKit::PageClientImpl::scrollView):
6902         Clip the scroll rect and scroll the view.
6903
6904         * UIProcess/DrawingAreaProxyImpl.cpp:
6905         (WebKit::DrawingAreaProxyImpl::incorporateUpdate):
6906         Scroll before painting.
6907
6908 2011-01-18  Anders Carlsson  <andersca@apple.com>
6909
6910         Reviewed by Darin Adler.
6911
6912         Artifacts when scrolling with new drawing area
6913         https://bugs.webkit.org/show_bug.cgi?id=52682
6914
6915         * WebProcess/WebCoreSupport/WebChromeClient.cpp:
6916         (WebKit::WebChromeClient::scroll):
6917         When scrolling, we want the intersection of the scroll rect and clip rect.
6918
6919 2011-01-18  Anders Carlsson  <andersca@apple.com>
6920
6921         Reviewed by Darin Adler.
6922
6923         Use a CGLayer for the backing store when possible
6924         https://bugs.webkit.org/show_bug.cgi?id=52679
6925
6926         * UIProcess/mac/BackingStoreMac.mm:
6927         (WebKit::BackingStore::paint):
6928         If there is a layer, paint it into the given context.
6929
6930         (WebKit::BackingStore::backingStoreContext):
6931         If we can get the containing window graphics context, use it to create a 
6932         CGLayer that we'll use for the backing store.
6933
6934         (WebKit::BackingStore::scroll):
6935         Paint the layer into itself.
6936
6937         * UIProcess/mac/WebPageProxyMac.mm:
6938         (WebKit::WebPageProxy::containingWindowGraphicsContext):
6939         Call the page client.
6940
6941 2011-01-18  Anders Carlsson  <andersca@apple.com>
6942
6943         Reviewed by Dan Bernstein.
6944
6945         Pass the web page proxy to BackingStore::create
6946         https://bugs.webkit.org/show_bug.cgi?id=52673
6947
6948         * UIProcess/BackingStore.cpp:
6949         (WebKit::BackingStore::create):
6950         Add WebPageProxy parameter.
6951     
6952         (WebKit::BackingStore::BackingStore):
6953         Add WebPageProxy parameter.
6954
6955         * UIProcess/BackingStore.h:
6956         Add WebPageProxy member variable.
6957
6958         * UIProcess/DrawingAreaProxyImpl.cpp:
6959         (WebKit::DrawingAreaProxyImpl::incorporateUpdate):
6960         Pass the web page proxy when creating the backing store.
6961
6962         * UIProcess/mac/BackingStoreMac.mm:
6963         (WebKit::BackingStore::backingStoreContext):
6964         Set the default blend mode.
6965
6966 2011-01-18  Anders Carlsson  <andersca@apple.com>
6967
6968         Reviewed by Darin Adler.
6969
6970         Factor code to create the backing store bitmap context out into a new function
6971         https://bugs.webkit.org/show_bug.cgi?id=52670
6972
6973         * UIProcess/BackingStore.h:
6974         * UIProcess/mac/BackingStoreMac.mm:
6975         (WebKit::BackingStore::backingStoreContext):
6976         Create the backing store context.
6977
6978         (WebKit::BackingStore::incorporateUpdate):
6979         Call backingStoreContext.
6980
6981         (WebKit::BackingStore::scroll):
6982         Assert that the context is not null.
6983
6984 2011-01-18  Anders Carlsson  <andersca@apple.com>
6985
6986         Reviewed by Dan Bernstein.
6987
6988         Add PageClientImpl::containingWindowGraphicsContext
6989         https://bugs.webkit.org/show_bug.cgi?id=52666
6990
6991         * UIProcess/API/mac/PageClientImpl.h:
6992         * UIProcess/API/mac/PageClientImpl.mm:
6993         (WebKit::PageClientImpl::containingWindowGraphicsContext):
6994         * UIProcess/PageClient.h:
6995         * UIProcess/WebPageProxy.h:
6996
6997 2011-01-18  Damian Kaleta  <dkaleta@apple.com>
6998
6999         Reviewed by Sam Weinig.
7000
7001         WK2 methods WKPageScaleWebView and WKPageGetViewScaleFactor need to have consistent names
7002         https://bugs.webkit.org/show_bug.cgi?id=52647
7003
7004         * UIProcess/API/C/WKPage.cpp:
7005         (WKPageSetScaleFactor):
7006         (WKPageGetScaleFactor):
7007         * UIProcess/API/C/WKPage.h:
7008
7009 2011-01-18  Anders Carlsson  <andersca@apple.com>
7010
7011         Reviewed by Dan Bernstein.
7012
7013         Ask the web page proxy to scroll the view when needed
7014         https://bugs.webkit.org/show_bug.cgi?id=52665
7015
7016         * UIProcess/DrawingAreaProxyImpl.cpp:
7017         (WebKit::DrawingAreaProxyImpl::incorporateUpdate):
7018         * UIProcess/WebPageProxy.cpp:
7019         (WebKit::WebPageProxy::scrollView):
7020         * UIProcess/WebPageProxy.h:
7021
7022 2011-01-18  Anders Carlsson  <andersca@apple.com>
7023
7024         Fix build.
7025
7026         * UIProcess/win/WebView.cpp:
7027         (WebKit::WebView::scrollView):
7028
7029 2011-01-18  Anders Carlsson  <andersca@apple.com>
7030
7031         Reviewed by Sam Weinig.
7032
7033         Add PageClient::scrollView
7034         https://bugs.webkit.org/show_bug.cgi?id=52663
7035
7036         * UIProcess/API/mac/PageClientImpl.h:
7037         * UIProcess/API/mac/PageClientImpl.mm:
7038         (WebKit::PageClientImpl::scrollView):
7039         * UIProcess/API/qt/qwkpage.cpp:
7040         (QWKPagePrivate::scrollView):
7041         * UIProcess/API/qt/qwkpage_p.h:
7042         * UIProcess/PageClient.h:
7043         * UIProcess/win/WebView.cpp:
7044         (WebKit::PageClientImpl::scrollView):
7045         * UIProcess/win/WebView.h:
7046
7047 2011-01-18  Anders Carlsson  <andersca@apple.com>
7048
7049         Reviewed by Sam Weinig.
7050
7051         Rename scrollDelta to scrollOffset everywhere.
7052
7053         * Shared/UpdateInfo.cpp:
7054         (WebKit::UpdateInfo::encode):
7055         (WebKit::UpdateInfo::decode):
7056         * Shared/UpdateInfo.h:
7057         * UIProcess/BackingStore.h:
7058         * UIProcess/mac/BackingStoreMac.mm:
7059         (WebKit::BackingStore::incorporateUpdate):
7060         (WebKit::BackingStore::scroll):
7061         * WebProcess/WebCoreSupport/WebChromeClient.cpp:
7062         (WebKit::WebChromeClient::scroll):
7063         (WebKit::WebChromeClient::delegatedScrollRequested):
7064         * WebProcess/WebCoreSupport/WebChromeClient.h:
7065         * WebProcess/WebPage/ChunkedUpdateDrawingArea.cpp:
7066         (WebKit::ChunkedUpdateDrawingArea::scroll):
7067         * WebProcess/WebPage/ChunkedUpdateDrawingArea.h:
7068         * WebProcess/WebPage/DrawingArea.h:
7069         * WebProcess/WebPage/DrawingAreaImpl.cpp:
7070         (WebKit::DrawingAreaImpl::scroll):
7071         (WebKit::DrawingAreaImpl::display):
7072         * WebProcess/WebPage/DrawingAreaImpl.h:
7073         * WebProcess/WebPage/LayerBackedDrawingArea.cpp:
7074         (WebKit::LayerBackedDrawingArea::scroll):
7075         * WebProcess/WebPage/LayerBackedDrawingArea.h:
7076
7077 2011-01-18  Anders Carlsson  <andersca@apple.com>
7078
7079         Reviewed by Sam Weinig.
7080
7081         Get and paint each individual rect in -[WKView drawRect:]
7082         https://bugs.webkit.org/show_bug.cgi?id=52660
7083
7084         * UIProcess/API/mac/WKView.mm:
7085         (-[WKView drawRect:]):
7086
7087 2011-01-18  Anders Carlsson  <andersca@apple.com>
7088
7089         Reviewed by Darin Adler.
7090
7091         Assertion when loading two URLs in quick succession
7092         https://bugs.webkit.org/show_bug.cgi?id=52649
7093         <rdar://problem/8764645>
7094
7095         If beginLoad is called twice without didStartProvisionalLoad being called in between,
7096         m_pendingProvisionalSandboxExtension would be non-null and an assert would fire.
7097
7098         * WebProcess/WebPage/WebPage.cpp:
7099         (WebKit::WebPage::SandboxExtensionTracker::beginLoad):
7100         Instead of asserting that m_pendingProvisionalSandboxExtension is null, invalidate it
7101         if it is not null, since that's valid.
7102
7103 2011-01-18  Anders Carlsson  <andersca@apple.com>
7104
7105         Reviewed by Sam Weinig.
7106
7107         Implement NPN_PopUpContextMenu
7108         https://bugs.webkit.org/show_bug.cgi?id=52646
7109         <rdar://problem/8735616>
7110
7111         * WebProcess/Plugins/Netscape/NetscapeBrowserFuncs.cpp:
7112         (WebKit::NPN_PopUpContextMenu):
7113         Call NetscapePlugin::popUpContextMenu.
7114
7115         * WebProcess/Plugins/Netscape/NetscapePlugin.cpp:
7116         (WebKit::NetscapePlugin::NetscapePlugin):
7117         Initialize m_currentMouseEvent.
7118
7119         * WebProcess/Plugins/Netscape/NetscapePlugin.h:
7120         Add m_currentMouseEvent.
7121
7122         * WebProcess/Plugins/Netscape/mac/NetscapePluginMac.mm:
7123         (WebKit::NetscapePlugin::popUpContextMenu):
7124         Convert the coordinates from the current mouse event to screen coordinates and call
7125         WKPopupContextMenu.
7126
7127         (WebKit::NetscapePlugin::platformHandleMouseEvent):
7128         Update m_currentMouseEvent.
7129
7130 2011-01-18  Jessie Berlin  <jberlin@apple.com>
7131
7132         Reviewed by Darin Adler.
7133
7134         WebKit2: Do not assert that the provisional and committed URLs cannot be empty/null
7135         https://bugs.webkit.org/show_bug.cgi?id=52641
7136
7137         * UIProcess/WebFrameProxy.cpp:
7138         (WebKit::WebFrameProxy::didStartProvisionalLoad):
7139         (WebKit::WebFrameProxy::didCommitLoad):
7140         (WebKit::WebFrameProxy::didFinishLoad):
7141
7142 2011-01-18  Anders Carlsson  <andersca@apple.com>
7143
7144         Reviewed by Sam Weinig.
7145
7146         ASSERT in plug-in code when going to youtube
7147         https://bugs.webkit.org/show_bug.cgi?id=52638
7148
7149         * PluginProcess/PluginControllerProxy.cpp:
7150         (WebKit::PluginControllerProxy::paintEntirePlugin):
7151         Don't try to paint the plug-in if the plug-in frame is empty.
7152
7153 2011-01-18  Anders Carlsson  <andersca@apple.com>
7154
7155         Reviewed by Dan Bernstein.
7156
7157         Plug-in hosting WebProcess instances appear in Activity Monitor as WebProcess
7158         https://bugs.webkit.org/show_bug.cgi?id=52635
7159         <rdar://problem/8731337>
7160
7161         * PluginProcess/PluginProcess.cpp:
7162         (WebKit::PluginProcess::initialize):
7163         Call platformInitialize.
7164
7165         * PluginProcess/PluginProcess.h:
7166         Add platformInitialize.
7167
7168         * PluginProcess/mac/PluginProcessMac.mm:
7169         (WebKit::PluginProcess::platformInitialize):
7170         Set the compositing render server port and the visible application name.
7171
7172         * Shared/Plugins/PluginProcessCreationParameters.cpp:
7173         (WebKit::PluginProcessCreationParameters::encode):
7174         (WebKit::PluginProcessCreationParameters::decode):
7175         Encode/decode the parent process name.
7176
7177         * Shared/Plugins/PluginProcessCreationParameters.h:
7178         Add parentProcessName.
7179
7180         * Shared/WebProcessCreationParameters.cpp:
7181         (WebKit::WebProcessCreationParameters::encode):
7182         (WebKit::WebProcessCreationParameters::decode):
7183         Encode/decode the parent process name.
7184
7185         * Shared/WebProcessCreationParameters.h:
7186         Add parentProcessName.
7187
7188         * UIProcess/Launcher/mac/ProcessLauncherMac.mm:
7189         (WebKit::ProcessLauncher::launchProcess):
7190         Don't pass the parent process name here.
7191
7192         * UIProcess/Plugins/mac/PluginProcessProxyMac.mm:
7193         (WebKit::PluginProcessProxy::platformInitializePluginProcess):
7194         Set the visible name.
7195
7196         * UIProcess/mac/WebContextMac.mm:
7197         (WebKit::WebContext::platformInitializeWebProcess):
7198         Pass along the parent process name.
7199
7200         * WebProcess/mac/WebProcessMac.mm:
7201         (WebKit::WebProcess::platformInitializeWebProcess):
7202         Set the visible name.
7203
7204         * WebProcess/mac/WebProcessMainMac.mm:
7205         (WebKit::WebProcessMain):
7206         Don't set the visible name here. It's done in platformInitializeWebProcess.
7207
7208 2011-01-18  Balazs Kelemen  <kbalazs@webkit.org>
7209
7210         Reviewed by Csaba Osztrogonác.
7211
7212         [Qt][WK2] Not implemented warnings should not break layout tests
7213         https://bugs.webkit.org/show_bug.cgi?id=52616
7214
7215         * WebKit2Prefix.h: Define DISABLE_NOT_IMPLEMENTED_WARNINGS on Qt.
7216
7217 2011-01-17  Jon Honeycutt  <jhoneycutt@apple.com>
7218
7219         Windows build fix. Unreviewed.
7220
7221         * Shared/PrintInfo.cpp:
7222         Use #include, not #import.
7223
7224 2011-01-17  Alexey Proskuryakov  <ap@apple.com>
7225
7226         Actually wrote a FIXME promised for a review comment.
7227
7228         * UIProcess/API/mac/WKView.mm:
7229         (-[WKView _recursiveDisplayRectIfNeededIgnoringOpacity:isVisibleRect:rectIsVisibleRectForView:topView:]):
7230
7231 2011-01-17  Alexey Proskuryakov  <ap@apple.com>
7232
7233         Reviewed by Anders Carlsson and Darin Adler.
7234
7235         https://bugs.webkit.org/show_bug.cgi?id=52595
7236         Make basic printing work in WebKit2
7237
7238         * Shared/WebPreferencesStore.h:
7239         * UIProcess/API/C/WKPreferences.cpp:
7240         (WKPreferencesSetShouldPrintBackgrounds):
7241         (WKPreferencesGetShouldPrintBackgrounds):
7242         * UIProcess/API/C/WKPreferences.h:
7243         Implement a preference for printing backgrounds.
7244
7245         * Shared/PrintInfo.cpp: Added.
7246         (WebKit::PrintInfo::encode):
7247         (WebKit::PrintInfo::decode):
7248         * Shared/PrintInfo.h: Added.
7249         * Shared/mac/PrintInfoMac.mm: Added.
7250         (WebKit::PrintInfo::PrintInfo):
7251         A new class for passing page setup information down to the web process.
7252
7253         * WebKit2.xcodeproj/project.pbxproj:
7254         * GNUmakefile.am:
7255         * WebKit2.pro:
7256         * win/WebKit2.vcproj:
7257         Added PrintInfo.
7258
7259         * Scripts/webkit2/messages.py: Added PrintInfo.h to a list of structs.
7260
7261         * UIProcess/API/mac/WKView.mm:
7262         (WKViewData): Cache page count and geometry.
7263         (WebFrameWrapper): Added a wrapper class for adding a WebFrameProxy to an NSDictionary.
7264         (-[WKView drawRect:]): Added logging.
7265         (setFrameBeingPrinted): Store a frame into NSPrintOperation's NSPrintInfo, so that all 
7266         methods invoked for this operation would know what's being printed.
7267         (frameBeingPrinted): Retrieve this data.
7268         (-[WKView printOperationWithPrintInfo:forFrame:]): Create a print operation that's appropriate
7269         for the frame.
7270         (-[WKView knowsPageRange:]): Ask the web process.
7271         (-[WKView _recursiveDisplayRectIfNeededIgnoringOpacity:isVisibleRect:rectIsVisibleRectForView:topView:]):
7272         Take over printing, because I couldn't make drawRect: work correctly with WebKit custom fit
7273         to page implementation.
7274         (-[WKView _provideTotalScaleFactorForPrintOperation:]): Help AppKit clip correctly.
7275         (-[WKView rectForPage:]): Return a pre-calculated rect.
7276
7277         * UIProcess/WebPageProxy.h: Added m_isInPrintingMode to track whether the web page is in
7278         printing mode. The UI process controls that.
7279
7280         * UIProcess/WebPageProxy.cpp:
7281         (WebKit::WebPageProxy::WebPageProxy): Initialize m_isInPrintingMode.
7282         (WebKit::WebPageProxy::beginPrinting): Change printing mode in web process if the value changes.
7283         (WebKit::WebPageProxy::endPrinting): Ditto.
7284         (WebKit::WebPageProxy::computePagesForPrinting): Ask the web process about output page geometry.
7285         (WebKit::WebPageProxy::drawRectToPDF): Ask the web process about printed page data.
7286
7287         * WebProcess/WebPage/WebPage.cpp:
7288         (WebKit::WebPage::close): Delete m_printContext while there is still a Frame pointer.
7289         (WebKit::WebPage::updatePreferences): Pass through ShouldPrintBackgrounds.
7290         (WebKit::WebPage::beginPrinting): Switch into printing mode (or update parameters if we're
7291         already in printing mode).
7292         (WebKit::WebPage::endPrinting): Delete m_printContext, implicitly calling end().
7293         (WebKit::WebPage::computePagesForPrinting): Make sure that we're in printing mode, and
7294         copmute page rects.
7295         (WebKit::WebPage::drawRectToPDF): Added a CG specific function to create a PDF document out
7296         of a page rect. It should really work for onscreen content, but we only need it for printing.
7297
7298         * WebProcess/WebPage/WebPage.h:
7299
7300         * WebProcess/WebPage/WebPage.messages.in: Added BeginPrinting, EndPrinting,
7301         ComputePagesForPrinting and DrawRectToPDF.
7302
7303 2011-01-17  Tony Gentilcore  <tonyg@chromium.org>
7304
7305         Reviewed by Alexey Proskuryakov.
7306
7307         Fix some headers with missing or misspelled #ifndef guards
7308         https://bugs.webkit.org/show_bug.cgi?id=52545
7309
7310         * Shared/UserMessageCoders.h:
7311         * WebProcess/InjectedBundle/DOM/InjectedBundleNodeHandle.h:
7312         * WebProcess/InjectedBundle/InjectedBundleUserMessageCoders.h:
7313         * WebProcess/WebProcessMain.h:
7314
7315 2011-01-17  Alexey Proskuryakov  <ap@apple.com>
7316
7317         Build fix.
7318
7319         * Platform/Logging.cpp:
7320
7321 2011-01-17  Alexey Proskuryakov  <ap@apple.com>
7322
7323         Reviewed by Dan Bernstein.
7324
7325         https://bugs.webkit.org/show_bug.cgi?id=52592
7326         Add a logging channel for WKView
7327
7328         * Platform/Logging.cpp:
7329         * Platform/Logging.h:
7330
7331 2011-01-17  Anders Carlsson  <andersca@apple.com>
7332
7333         Reviewed by Sam Weinig.
7334
7335         Factor bitmap context drawing code out into a shared function
7336         https://bugs.webkit.org/show_bug.cgi?id=52589
7337
7338         * Platform/cg/CGUtilities.h: Added.
7339         * Platform/cg/CGUtilities.cpp: Added.
7340         (WebKit::paintBitmapContext):
7341         New function that will paint a bitmap context into a CGContext.
7342
7343         * Shared/cg/ShareableBitmapCG.cpp:
7344         (WebKit::ShareableBitmap::paint):
7345         Use paintBitmapContext.
7346
7347         * UIProcess/mac/BackingStoreMac.mm:
7348         (WebKit::BackingStore::paint):
7349         (WebKit::BackingStore::scroll):
7350         Use paintBitmapContext.
7351
7352         * WebKit2.xcodeproj/project.pbxproj:
7353         * win/WebKit2.vcproj:
7354         * win/WebKit2Common.vsprops:
7355         Add CGUtilities.{cpp|h}.
7356
7357 2011-01-17  Dan Bernstein  <mitz@apple.com>
7358
7359         Rubber-stamped by Mark Rowe.
7360
7361         Update xcodeproj svn:ignore to include xcuserdata.
7362
7363         * WebKit2.xcodeproj: Modified property svn:ignore.
7364
7365 2011-01-17  Alexey Proskuryakov  <ap@apple.com>
7366
7367         Fixing a typo from a bad merge.
7368
7369         * UIProcess/API/mac/WKView.mm: (-[WKView canChangeFrameLayout:]):
7370
7371 2011-01-17  Alexey Proskuryakov  <ap@apple.com>
7372
7373         Reviewed by John Sullivan.
7374
7375         https://bugs.webkit.org/show_bug.cgi?id=52590
7376         Should pass a frame into -[WKView canPrintHeadersAndFooters]
7377
7378         * UIProcess/API/mac/WKView.h:
7379         * UIProcess/API/mac/WKView.mm: (-[WKView canChangeFrameLayout:]): Also, renamed the method
7380         to canChangeFrameLayout.
7381
7382 2011-01-17  Anders Carlsson  <andersca@apple.com>
7383
7384         Reviewed by Sam Weinig.
7385
7386         Implement scrolling support
7387         https://bugs.webkit.org/show_bug.cgi?id=52502
7388
7389         * Shared/UpdateInfo.cpp:
7390         (WebKit::UpdateInfo::encode):
7391         (WebKit::UpdateInfo::decode):
7392         * Shared/UpdateInfo.h:
7393         Add scrollRect and scrollDelta member variables.
7394
7395         * UIProcess/BackingStore.h:
7396         Add scroll member function.
7397
7398         * UIProcess/DrawingAreaProxyImpl.cpp:
7399         (WebKit::DrawingAreaProxyImpl::incorporateUpdate):
7400         Repaint the scroll rect. Force a display of the view when the update info contains a scroll rect.
7401
7402         * UIProcess/mac/BackingStoreMac.mm:
7403         (WebKit::BackingStore::incorporateUpdate):
7404         Call scroll.
7405
7406         (WebKit::BackingStore::scroll):
7407         Paint the backing store into itself.
7408
7409         * WebProcess/WebPage/DrawingAreaImpl.cpp:
7410         (WebKit::DrawingAreaImpl::display):
7411         Pass the scroll information in the update info.
7412
7413 2011-01-17  Andrey Kosyakov  <caseq@chromium.org>
7414
7415         Unreviewed. Fixed malformed reference to WebKitVSPropsRedirectionDir that broke win build.
7416
7417         * win/WebKit2.vcproj:
7418         * win/WebKit2GeneratedCommon.vsprops:
7419         * win/WebKit2WebProcess.vcproj:
7420
7421 2011-01-17  Pavel Feldman  <pfeldman@chromium.org>
7422
7423         Reviewed by Yury Semikhatsky.
7424
7425         Web Inspector: simplify debugger enabling routine.
7426         https://bugs.webkit.org/show_bug.cgi?id=52472
7427
7428         * WebProcess/WebPage/WebInspector.cpp:
7429         (WebKit::WebInspector::startJavaScriptDebugging):
7430
7431 2011-01-17  Balazs Kelemen  <kbalazs@webkit.org>
7432
7433         Reviewed by Andreas Kling.
7434
7435         [Qt][WK2] Crash due to double destruction of QSharedMemory
7436         https://bugs.webkit.org/show_bug.cgi?id=52569
7437
7438         Avoid deleting the QSharedMemory twice.
7439         * Platform/qt/SharedMemoryQt.cpp:
7440         (WebKit::SharedMemory::~SharedMemory):
7441         * Shared/qt/CleanupHandler.cpp:
7442         Renamed m_inDeleteObjects to m_hasStartedDeleting and
7443         added a getter for it.
7444         (WebKit::CleanupHandler::CleanupHandler):
7445         (WebKit::CleanupHandler::deleteObjects):
7446         * Shared/qt/CleanupHandler.h:
7447         (WebKit::CleanupHandler::unmark):
7448         (WebKit::CleanupHandler::hasStartedDeleting):
7449
7450 2011-01-15  Adam Barth  <abarth@webkit.org>
7451
7452         Rubber-stamped by Eric Seidel.
7453
7454         Move WebKit2 into Source
7455         https://bugs.webkit.org/show_bug.cgi?id=52438
7456
7457         * DerivedSources.pro:
7458         * GNUmakefile.am:
7459         * WebKit2.pro:
7460         * WebProcess.pro:
7461         * win/WebKit2.vcproj:
7462         * win/WebKit2WebProcess.vcproj:
7463
7464 2011-01-14  Yuzo Fujishima  <yuzo@google.com>
7465
7466         Reviewed by Antti Koivisto.
7467
7468         Rename cache() to memoryCache()
7469         https://bugs.webkit.org/show_bug.cgi?id=52433
7470
7471         * WebProcess/WebProcess.cpp:
7472         (WebKit::WebProcess::shutdownIfPossible):
7473         (WebKit::WebProcess::didClose):
7474         * WebProcess/mac/WebProcessMac.mm:
7475         (WebKit::WebProcess::platformSetCacheModel):
7476         * WebProcess/win/WebProcessWin.cpp:
7477         (WebKit::WebProcess::platformSetCacheModel):
7478
7479 2011-01-13  Geoffrey Garen  <ggaren@apple.com>
7480
7481         Reviewed by Oliver Hunt.
7482
7483         Split out a MarkedSpace strategy object from Heap.
7484         https://bugs.webkit.org/show_bug.cgi?id=52421
7485
7486         * Shared/mac/WebMemorySampler.mac.mm:
7487         (WebKit::WebMemorySampler::sampleWebKit): Updated for class move.
7488
7489 2011-01-14  Anders Carlsson  <andersca@apple.com>
7490
7491         Reviewed by Dan Bernstein.
7492
7493         Add a new PageClient::displayView function and expose it on WebPageProxy
7494         https://bugs.webkit.org/show_bug.cgi?id=52500
7495
7496         * UIProcess/API/mac/PageClientImpl.h:
7497         * UIProcess/API/mac/PageClientImpl.mm:
7498         (WebKit::PageClientImpl::displayView):
7499         * UIProcess/API/qt/qwkpage.cpp:
7500         (QWKPagePrivate::displayView):
7501         * UIProcess/API/qt/qwkpage_p.h:
7502         * UIProcess/PageClient.h:
7503         * UIProcess/WebPageProxy.cpp:
7504         (WebKit::WebPageProxy::displayView):
7505         * UIProcess/WebPageProxy.h:
7506         * UIProcess/win/WebView.cpp:
7507         (WebKit::WebView::displayView):
7508         * UIProcess/win/WebView.h:
7509
7510 2011-01-14  Anders Carlsson  <andersca@apple.com>
7511
7512         Reviewed by Sam Weinig.
7513
7514         Implement the "should paint bounds instead of indiviual rects" algorithm from WebKit1
7515         https://bugs.webkit.org/show_bug.cgi?id=52499
7516
7517         * WebProcess/WebPage/DrawingAreaImpl.cpp:
7518         (WebKit::shouldPaintBoundsRect):
7519         Port code from -[WebView _mustDrawUnionedRect:singleRects:count:].
7520
7521         (WebKit::DrawingAreaImpl::display):
7522         If shouldPaintBoundsRect returns true, clear the rects vector and append the bounds rect.
7523
7524 2011-01-14  Brian Weinstein  <bweinstein@apple.com>
7525
7526         Reviewed by Geoff Garen.
7527
7528         ShouldLoadResourceForFrame should use strings, not URLs.
7529         https://bugs.webkit.org/show_bug.cgi?id=52476
7530
7531         * WebProcess/InjectedBundle/API/c/WKBundlePage.h:
7532         * WebProcess/InjectedBundle/InjectedBundlePageLoaderClient.cpp:
7533         (WebKit::InjectedBundlePageLoaderClient::shouldLoadResourceForFrame): Pass resourceURL as a string instead of
7534             a URL, and rename from subresourceURL to resourceURL.
7535
7536 2011-01-14  Anders Carlsson  <andersca@apple.com>
7537
7538         Reviewed by Sam Weinig.
7539
7540         Fix for <rdar://problem/8711576> The web process should be able to read resources from the UI process.
7541
7542         Based on a patch by Ivan Krstić. This also makes the NSURLCache path a sandbox parameter.
7543
7544         * Shared/WebProcessCreationParameters.cpp:
7545         (WebKit::WebProcessCreationParameters::encode):
7546         (WebKit::WebProcessCreationParameters::decode):
7547         Encode and decode the uiProcessBundleResourcePath member variable.
7548
7549         * Shared/WebProcessCreationParameters.h:
7550         Add uiProcessBundleResourcePath member variable.
7551
7552         * UIProcess/mac/WebContextMac.mm:
7553         (WebKit::WebContext::platformInitializeWebProcess):
7554         Set the uiProcessBundleResourcePath member variable.
7555
7556         * WebProcess/com.apple.WebProcess.sb:
7557         Allow read-only access to UI_PROCESS_BUNDLE_RESOURCE_DIR and all subdirectories.
7558
7559         * WebProcess/mac/WebProcessMac.mm:
7560         (WebKit::initializeSandbox):
7561         When initializing the sandbox, pass UI_PROCESS_BUNDLE_RESOURCE_DIR.
7562
7563         (WebKit::WebProcess::platformInitializeWebProcess):
7564         Remove the code that would consume a sandbox extension for the url cache path.
7565
7566 2011-01-14  Anders Carlsson  <andersca@apple.com>
7567
7568         Reviewed by Sam Weinig.
7569
7570         Delay initializing the sandbox until we get the InitializeWebProcess message.
7571
7572         * WebProcess/mac/WebProcessMac.mm:
7573         (WebKit::initializeSandbox):
7574         (WebKit::WebProcess::platformInitializeWebProcess):
7575         * WebProcess/mac/WebProcessMainMac.mm:
7576         (WebKit::WebProcessMain):
7577
7578 2011-01-14  Laszlo Gombos  <laszlo.1.gombos@nokia.com>
7579
7580         Reviewed by Kenneth Rohde Christiansen.
7581
7582         Align import/export directives
7583         https://bugs.webkit.org/show_bug.cgi?id=52208
7584
7585         * Shared/API/c/WKBase.h: Align import/export directives with
7586         JavaScriptCore/API/JSBase.h.
7587
7588 2011-01-14  Pavel Feldman  <pfeldman@chromium.org>
7589
7590         Reviewed by Yury Semikhatsky.
7591
7592         Web Inspector: extract InspectorSettings from InspectorState, 
7593         simplify it.
7594         https://bugs.webkit.org/show_bug.cgi?id=52429
7595
7596         * WebProcess/WebCoreSupport/WebInspectorClient.cpp:
7597
7598 2011-01-13  Enrica Casucci  <enrica@apple.com>
7599
7600         Reviewed by Darin Adler.
7601
7602         WebKit2: Add support for drag and drop
7603         https://bugs.webkit.org/show_bug.cgi?id=52343
7604         <rdar://problem/7660558>
7605                
7606         This patch contains the changes required to support dropping content
7607         in WebKit on the Mac. The DragData class has been extended to provide
7608         additional context from the application (keyboard state, modal windows, etc.)
7609         as well as information of the drag pasteboard being used.
7610         The support for WebKit as drag source will be added with a separate patch.
7611
7612         * Shared/DragControllerAction.h: Added.
7613         * UIProcess/API/mac/WKView.mm:
7614         Added implemention of the methods required to add suport for a drop target.
7615         To maintain asynchronous communication with the WebProcess, we always return
7616         the previous calculated value for the drag operation.
7617         (-[WKView _registerDraggedTypes]):
7618         (-[WKView initWithFrame:contextRef:pageGroupRef:]):
7619         (-[WKView applicationFlags:]):
7620         (-[WKView draggingEntered:]):
7621         (-[WKView draggingUpdated:]):
7622         (-[WKView draggingExited:]):
7623         (-[WKView prepareForDragOperation:]):
7624         (-[WKView performDragOperation:]):
7625         * UIProcess/WebPageProxy.cpp:
7626         (WebKit::WebPageProxy::WebPageProxy):
7627         (WebKit::WebPageProxy::performDragControllerAction):
7628         (WebKit::WebPageProxy::didPerformDragControllerAction):
7629         * UIProcess/WebPageProxy.h:
7630         (WebKit::WebPageProxy::dragOperation):
7631         (WebKit::WebPageProxy::resetDragOperation):
7632         * UIProcess/WebPageProxy.messages.in:
7633         * WebKit2.xcodeproj/project.pbxproj:
7634         * WebProcess/WebCoreSupport/WebDragClient.cpp:
7635         (WebKit::WebDragClient::willPerformDragDestinationAction):
7636         (WebKit::WebDragClient::willPerformDragSourceAction):
7637         (WebKit::WebDragClient::actionMaskForDrag):
7638         (WebKit::WebDragClient::dragSourceActionMaskForPoint):
7639         (WebKit::WebDragClient::startDrag):
7640         * WebProcess/WebPage/WebPage.cpp:
7641         (WebKit::WebPage::performDragControllerAction):
7642         * WebProcess/WebPage/WebPage.h:
7643         * WebProcess/WebPage/WebPage.messages.in:
7644
7645 2011-01-13  Dan Bernstein  <mitz@apple.com>
7646
7647         Reviewed by John Sullivan.
7648
7649         Incorrect assertion in DrawingAreaImpl::scroll()
7650         https://bugs.webkit.org/show_bug.cgi?id=52376
7651
7652         * WebProcess/WebPage/DrawingAreaImpl.cpp:
7653         (WebKit::DrawingAreaImpl::scroll): Changed to take the fast path if the rects have the same area.
7654         This made the assertion valid, but I removed it anyway.
7655
7656 2011-01-12  Balazs Kelemen  <kbalazs@webkit.org>
7657
7658         Unreviewed.
7659
7660         Getting rid of the unused 'viewportSize' argument in QWKPagePrivate:init.
7661         The argument is unused since http://trac.webkit.org/changeset/75468.
7662
7663         * UIProcess/API/qt/qgraphicswkview.cpp:
7664         (QGraphicsWKView::QGraphicsWKView):
7665         * UIProcess/API/qt/qwkpage.cpp:
7666         (QWKPagePrivate::init):
7667         * UIProcess/API/qt/qwkpage_p.h:
7668
7669 2011-01-12  Anders Carlsson  <andersca@apple.com>
7670
7671         Reviewed by Sam Weinig.
7672
7673         Implement DrawingAreaImpl::scroll
7674         https://bugs.webkit.org/show_bug.cgi?id=52346
7675
7676         * WebProcess/WebPage/DrawingAreaImpl.cpp:
7677         (WebKit::DrawingAreaImpl::scroll):
7678         If there is already an active scroll, compute the area of both scroll rects and
7679         invalidate the smallest one. Compute a new dirty region if necessary and also
7680         add the scroll repaint region to the dirty region.
7681
7682         (WebKit::DrawingAreaImpl::display):
7683         Reset the scroll area and scroll delta.
7684
7685         * WebProcess/WebPage/DrawingAreaImpl.h:
7686         Add scroll area and scroll delta member variables.
7687
7688 2011-01-12  Anders Carlsson  <andersca@apple.com>
7689
7690         Reviewed by Dan Bernstein.
7691
7692         Region improvements
7693         https://bugs.webkit.org/show_bug.cgi?id=52344
7694
7695         * Platform/Region.cpp:
7696         (WebKit::Region::Shape::move):
7697         (WebKit::Region::move):
7698         Change Region::move to take an IntSize.
7699
7700         * Platform/Region.h:
7701         (WebKit::intersect):
7702         (WebKit::subtract):
7703         (WebKit::move):
7704         Add convenience functions.
7705
7706 2011-01-12  Ryosuke Niwa  <rniwa@webkit.org>
7707
7708         Unreviewed Qt build fix for r75661
7709
7710         * Shared/WebEvent.h: Don't declare phase() on non-Mac platforms.
7711
7712 2011-01-12  Beth Dakin  <bdakin@apple.com>
7713
7714         Reviewed by Anders Carlsson.
7715
7716         Add-on for https://bugs.webkit.org/show_bug.cgi?id=52309 
7717         Expose fixed layout through WebKit SPI
7718         -and corresponding-
7719         <rdar://problem/8844464>
7720
7721         And now with getters!
7722         * UIProcess/API/C/WKPage.cpp:
7723         (WKPageUseFixedLayout):
7724         (WKPageFixedLayoutSize):
7725         * UIProcess/API/C/WKPage.h:
7726         * UIProcess/WebPageProxy.h:
7727         (WebKit::WebPageProxy::useFixedLayout):
7728         (WebKit::WebPageProxy::fixedLayoutSize):
7729
7730 2011-01-12  Sam Weinig  <sam@webkit.org>
7731
7732         Reviewed by Anders Carlsson.
7733
7734         https://bugs.webkit.org/show_bug.cgi?id=52337
7735         PlatformWheelEvent should know about the scroll phase on the Mac
7736
7737         Add a phase parameter on Mac WebWheelEvent and pipe it down to PlatformWheelEvent.
7738
7739         * Shared/WebEvent.h:
7740         (WebKit::WebWheelEvent::phase):
7741         * Shared/WebEventConversion.cpp:
7742         (WebKit::WebKit2PlatformWheelEvent::WebKit2PlatformWheelEvent):
7743         * Shared/WebWheelEvent.cpp:
7744         (WebKit::WebWheelEvent::WebWheelEvent):
7745         (WebKit::WebWheelEvent::encode):
7746         (WebKit::WebWheelEvent::decode):
7747         * Shared/mac/WebEventFactory.mm:
7748         (WebKit::phaseForEvent):
7749         (WebKit::WebEventFactory::createWebWheelEvent):
7750
7751 2011-01-12  Anders Carlsson  <andersca@apple.com>
7752
7753         Reviewed by Sam Weinig.
7754
7755         Get rid of an unneeded parameter from DrawingArea::scroll
7756         https://bugs.webkit.org/show_bug.cgi?id=52336
7757
7758         * WebProcess/WebCoreSupport/WebChromeClient.cpp:
7759         (WebKit::WebChromeClient::scroll):
7760         * WebProcess/WebCoreSupport/WebChromeClient.h:
7761         * WebProcess/WebPage/ChunkedUpdateDrawingArea.cpp:
7762         (WebKit::ChunkedUpdateDrawingArea::scroll):
7763         * WebProcess/WebPage/ChunkedUpdateDrawingArea.h:
7764         * WebProcess/WebPage/DrawingArea.h:
7765         * WebProcess/WebPage/DrawingAreaImpl.cpp:
7766         (WebKit::DrawingAreaImpl::scroll):
7767         * WebProcess/WebPage/DrawingAreaImpl.h:
7768         * WebProcess/WebPage/LayerBackedDrawingArea.cpp:
7769         (WebKit::LayerBackedDrawingArea::scroll):
7770         * WebProcess/WebPage/LayerBackedDrawingArea.h:
7771         * WebProcess/WebPage/TiledDrawingArea.cpp:
7772         (WebKit::TiledDrawingArea::scroll):
7773         * WebProcess/WebPage/TiledDrawingArea.h:
7774
7775 2011-01-12  Anders Carlsson  <andersca@apple.com>
7776
7777         Reviewed by Sam Weinig.
7778
7779         Get the new drawing area painting to the screen
7780         https://bugs.webkit.org/show_bug.cgi?id=52331
7781
7782         * UIProcess/DrawingAreaProxyImpl.cpp:
7783         (WebKit::DrawingAreaProxyImpl::incorporateUpdate):
7784         Call setViewNeedsDisplay on all the update rects.
7785
7786         * UIProcess/WebPageProxy.cpp:
7787         (WebKit::WebPageProxy::setViewNeedsDisplay):
7788         Call through to the page client.
7789
7790         (WebKit::WebPageProxy::processDidCrash):
7791         Null out the drawing area proxy.
7792         
7793         * UIProcess/mac/BackingStoreMac.mm:
7794         (WebKit::BackingStore::paint):
7795         Paint.
7796
7797 2011-01-12  Anders Carlsson  <andersca@apple.com>
7798
7799         Reviewed by Sam Weinig.
7800
7801         More work on getting the drawing area proxy to paint
7802         https://bugs.webkit.org/show_bug.cgi?id=52328
7803
7804         * UIProcess/API/mac/WKView.mm:
7805         (-[WKView drawRect:]):
7806         Handle the new drawing area.
7807
7808         * UIProcess/BackingStore.cpp:
7809         (WebKit::BackingStore::BackingStore):
7810         Assert that the size isn't empty.
7811         
7812         * UIProcess/BackingStore.h:
7813         * UIProcess/mac/BackingStoreMac.mm:
7814         (WebKit::BackingStore::incorporateUpdate):
7815         Paint all update rects into the bitmap context.
7816
7817         * WebProcess/WebPage/DrawingAreaImpl.cpp:
7818         (WebKit::DrawingAreaImpl::display):
7819         Create a handle so the shareable bitmap will actually be transferred over.
7820
7821 2011-01-12  Anders Carlsson  <andersca@apple.com>
7822
7823         Fix build.
7824
7825         * UIProcess/DrawingAreaProxyImpl.cpp:
7826         (WebKit::DrawingAreaProxyImpl::incorporateUpdate):
7827
7828 2011-01-12  Anders Carlsson  <andersca@apple.com>
7829
7830         Reviewed by Sam Weinig.
7831
7832         Begin stubbing out some more BackingStore member functions
7833         https://bugs.webkit.org/show_bug.cgi?id=52323
7834
7835         * UIProcess/BackingStore.cpp:
7836         (WebKit::BackingStore::~BackingStore):
7837         This was accidentally made into a constructor; it should be a destructor.
7838
7839         * UIProcess/DrawingAreaProxyImpl.cpp:
7840         (WebKit::DrawingAreaProxyImpl::paint):
7841         Call the backing store.
7842
7843         (WebKit::DrawingAreaProxyImpl::update):
7844         Incorporate the update.
7845
7846         (WebKit::DrawingAreaProxyImpl::incorporateUpdate):
7847         Create the backing store if needed and incorporate the update.
7848
7849         * UIProcess/mac/BackingStoreMac.mm: Added.
7850         (WebKit::BackingStore::platformInitialize):
7851         Create a bitmap context.
7852
7853         (WebKit::BackingStore::paint):
7854         (WebKit::BackingStore::incorporateUpdate):
7855         Add stubs.
7856
7857         * WebKit2.xcodeproj/project.pbxproj:
7858         Add BackingStoreMac.mm
7859
7860 2011-01-12  Beth Dakin  <bdakin@apple.com>
7861
7862         Reviewed by Anders Carlsson.
7863
7864         Fix for https://bugs.webkit.org/show_bug.cgi?id=52309 Expose
7865         fixed layout through WebKit SPI
7866         -and corresponding-
7867         <rdar://problem/8844464>
7868
7869         Store useFixedLayout and fixedLayoutSize in the 
7870         WebPageCreationParameters and the WebPageProxy.
7871         * Shared/WebPageCreationParameters.cpp:
7872         (WebKit::WebPageCreationParameters::encode):
7873         (WebKit::WebPageCreationParameters::decode):
7874         * Shared/WebPageCreationParameters.h:
7875         * UIProcess/API/C/WKPage.cpp:
7876         (WKPageSetUseFixedLayout):
7877         (WKPageSetFixedLayoutSize):
7878         * UIProcess/API/C/WKPage.h:
7879         * UIProcess/WebPageProxy.cpp:
7880         (WebKit::WebPageProxy::WebPageProxy):
7881         (WebKit::WebPageProxy::setUseFixedLayout):
7882         (WebKit::WebPageProxy::setFixedLayoutSize):
7883         (WebKit::WebPageProxy::creationParameters):
7884         * UIProcess/WebPageProxy.h:
7885         * WebProcess/WebPage/WebPage.cpp:
7886         (WebKit::WebPage::setUseFixedLayout):
7887         (WebKit::WebPage::setFixedLayoutSize):
7888         * WebProcess/WebPage/WebPage.h:
7889         * WebProcess/WebPage/WebPage.messages.in:
7890
7891 2011-01-12  Anders Carlsson  <andersca@apple.com>
7892
7893         Reviewed by Beth Dakin.
7894
7895         Add BackingStore class
7896         https://bugs.webkit.org/show_bug.cgi?id=52318
7897
7898         * UIProcess/BackingStore.cpp: Added.
7899         (WebKit::BackingStore::create):
7900         (WebKit::BackingStore::BackingStore):
7901         * UIProcess/BackingStore.h: Added.
7902         * WebKit2.xcodeproj/project.pbxproj:
7903
7904 2011-01-12  Brady Eidson  <beidson@apple.com>
7905
7906         Reviewed by Sam Weinig.
7907
7908         <rdar://problem/8837307>, <rdar://problem/8637038>, and https://bugs.webkit.org/show_bug.cgi?id=52248
7909         Back/forward list recovery after a WebProcess crash is crashy itself.
7910
7911         Add an isEmpty() accessor so the WebProcess knows if it is actually restoring a session:
7912         * Shared/SessionState.cpp:
7913         (WebKit::SessionState::isEmpty):
7914         * Shared/SessionState.h:
7915
7916         Keep track of the highest used itemID so a relaunched WebProcess can later be informed:
7917         * Shared/WebBackForwardListItem.cpp:
7918         (WebKit::WebBackForwardListItem::WebBackForwardListItem):
7919         (WebKit::WebBackForwardListItem::highedUsedItemID):
7920         * Shared/WebBackForwardListItem.h:
7921         * WebProcess/WebPage/WebBackForwardListProxy.cpp:
7922         (WebKit::generateHistoryItemID):
7923         (WebKit::WebBackForwardListProxy::setHighestItemIDFromUIProcess):
7924         (WebKit::WebBackForwardListProxy::addItemFromUIProcess): Remove a now-invalid ASSERT, as the UIProcess
7925           now tells the WebProcess that a previous WebProcess created.
7926         * WebProcess/WebPage/WebBackForwardListProxy.h:
7927
7928         Encode/decode data relevant to restoring a session on WebPage creation:
7929         * Shared/WebPageCreationParameters.cpp:
7930         (WebKit::WebPageCreationParameters::encode):
7931         (WebKit::WebPageCreationParameters::decode):
7932         * Shared/WebPageCreationParameters.h:
7933
7934         If the WebProcess has crashed since the last load, change reload and the various back/forward APIs to 
7935         update the current back/forward item (if necessary) then relaunch the process:
7936         * UIProcess/WebPageProxy.cpp:
7937         (WebKit::WebPageProxy::reattachToWebProcessWithItem):
7938         (WebKit::WebPageProxy::reattachToWebProcess): Renamed from "relaunch()" and made private.
7939         (WebKit::WebPageProxy::initializeWebPage):
7940         (WebKit::WebPageProxy::loadURL):
7941         (WebKit::WebPageProxy::loadURLRequest):
7942         (WebKit::WebPageProxy::reload):
7943         (WebKit::WebPageProxy::goForward):
7944         (WebKit::WebPageProxy::goBack):
7945         (WebKit::WebPageProxy::goToBackForwardItem):
7946         (WebKit::WebPageProxy::creationParameters):
7947         * UIProcess/WebPageProxy.h:
7948
7949         Rename "RestoreSession" to "RestoreSessionAndNavigateToCurrentItem"
7950         * WebProcess/WebPage/WebPage.messages.in:
7951         * UIProcess/cf/WebPageProxyCF.cpp:
7952         (WebKit::WebPageProxy::restoreFromSessionStateData):
7953
7954         Restore a session on page creation if the parameters include it:
7955         * WebProcess/WebPage/WebPage.cpp:
7956         (WebKit::WebPage::WebPage): Call restoreSession if session state exists.
7957         (WebKit::WebPage::restoreSessionAndNavigateToCurrentItem):
7958         (WebKit::WebPage::restoreSession):
7959         * WebProcess/WebPage/WebPage.h:
7960
7961 2011-01-12  Anders Carlsson  <andersca@apple.com>
7962
7963         Reviewed by Sam Weinig.
7964
7965         Send Update and DidUpdate messages
7966         https://bugs.webkit.org/show_bug.cgi?id=52316
7967
7968         * UIProcess/DrawingAreaProxy.h:
7969         (WebKit::DrawingAreaProxy::update):
7970         Add empty stub.
7971
7972         * UIProcess/DrawingAreaProxy.messages.in:
7973         Add Update message.
7974
7975         * UIProcess/DrawingAreaProxyImpl.cpp:
7976         (WebKit::DrawingAreaProxyImpl::update):
7977         Just send back a DidUpdate message.
7978
7979         * WebProcess/WebPage/DrawingArea.h:
7980         (WebKit::DrawingArea::didUpdate):
7981         Add empty stub.
7982
7983         * WebProcess/WebPage/DrawingArea.messages.in:
7984         Add DidUpdate message.
7985
7986         * WebProcess/WebPage/DrawingAreaImpl.cpp:
7987         (WebKit::DrawingAreaImpl::didUpdate):
7988         Call display().
7989
7990         (WebKit::DrawingAreaImpl::display):
7991         Send an Update message.
7992
7993 2011-01-12  Anders Carlsson  <andersca@apple.com>
7994
7995         Reviewed by Sam Weinig.
7996
7997         Make the new drawing area actually draw something
7998         https://bugs.webkit.org/show_bug.cgi?id=52314
7999
8000         * Shared/UpdateInfo.cpp:
8001         (WebKit::UpdateInfo::encode):
8002         (WebKit::UpdateInfo::decode):
8003         Encode and decode newly added fields.
8004
8005         * Shared/UpdateInfo.h:
8006         Add a vector of update rects and a handle for the sharable bitmap.
8007
8008         * WebProcess/WebPage/DrawingAreaImpl.cpp:
8009         (WebKit::DrawingAreaImpl::display):
8010         Get the individual rects from the region and paint them into the shareable bitmap.
8011
8012         * WebProcess/WebPage/WebPage.cpp:
8013         (WebKit::WebPage::mainFrameHasCustomRepresentation):
8014         * WebProcess/WebPage/WebPage.h:
8015         Add helper function.
8016
8017         * WebProcess/WebPage/mac/ChunkedUpdateDrawingAreaMac.cpp:
8018         (WebKit::ChunkedUpdateDrawingArea::paintIntoUpdateChunk):
8019         Use helper function.
8020
8021 2011-01-12  Anders Carlsson  <andersca@apple.com>
8022
8023         Reviewed by Sam Weinig.
8024
8025         Add UpdateInfo class
8026         https://bugs.webkit.org/show_bug.cgi?id=52306
8027
8028         * Shared/UpdateInfo.cpp: Added.
8029         (WebKit::UpdateInfo::encode):
8030         (WebKit::UpdateInfo::decode):
8031         * Shared/UpdateInfo.h: Added.
8032         (WebKit::UpdateInfo::UpdateInfo):
8033         * WebKit2.xcodeproj/project.pbxproj:
8034
8035 2011-01-12  Anders Carlsson  <andersca@apple.com>
8036
8037         Reviewed by Sam Weinig.
8038
8039         More work on the new drawing area implementation
8040         https://bugs.webkit.org/show_bug.cgi?id=52302
8041
8042         * Platform/Region.cpp:
8043         (WebKit::Region::Shape::segments_end):
8044         segments_end could end up returning an iterator that is one element past the Vector data, so
8045         we can't use operator[] since that will assert.
8046
8047         * WebProcess/WebPage/DrawingAreaImpl.cpp:
8048         (WebKit::DrawingAreaImpl::DrawingAreaImpl):
8049         Initialize the timer.
8050
8051         (WebKit::DrawingAreaImpl::setNeedsDisplay):
8052         Unite the rect with the dirty region and schedule a display.
8053
8054         (WebKit::DrawingAreaImpl::setSize):
8055         Tell the web page to resize.
8056
8057         (WebKit::DrawingAreaImpl::scheduleDisplay):
8058         Start a display timer if needed.
8059
8060         (WebKit::DrawingAreaImpl::display):
8061         Add a stub.
8062
8063 2011-01-12  Brent Fulgham  <bfulgham@webkit.org>
8064
8065         Unreviewed build fix after r75527.  Rename 'BackingStoreCairo.cpp'
8066         to 'ShareableBitmapCairo.cpp' to match VS project changes.
8067
8068         * Shared/cairo/BackingStoreCairo.cpp: Removed.
8069         * Shared/cairo/ShareableBitmapCairo.cpp: Copied from Shared/cairo/BackingStoreCairo.cpp.
8070
8071 2011-01-11  Jeff Miller  <jeffm@apple.com>
8072
8073         Reviewed by John Sullivan.
8074
8075         WebKit2: "Webpages not responding" dialog appears when <select> popup menu is showing
8076         https://bugs.webkit.org/show_bug.cgi?id=52242
8077
8078         * UIProcess/WebPageProxy.cpp:
8079         (WebKit::WebPageProxy::showPopupMenu):
8080         On Windows, stop the responsiveness timer before calling showPopupMenu().
8081
8082 2011-01-11  Maciej Stachowiak  <mjs@apple.com>
8083
8084         Reviewed by Anders Carlsson.
8085
8086         UIProcess kills the WebProcess sometimes when detached frames exist
8087         https://bugs.webkit.org/show_bug.cgi?id=52227
8088
8089         * UIProcess/WebPageProxy.cpp:
8090         (WebKit::WebPageProxy::didSaveFrameToPageCache): Don't consider the message invalid
8091         if it came in for a detached frame.
8092
8093 2011-01-11  Anders Carlsson  <andersca@apple.com>
8094
8095         Build fix.
8096
8097         * WebKit2.xcodeproj/project.pbxproj:
8098
8099 2011-01-11  Anders Carlsson  <andersca@apple.com>
8100
8101         Reviewed by Sam Weinig.
8102
8103         Add a Region class which represents a graphical region
8104         https://bugs.webkit.org/show_bug.cgi?id=52255
8105
8106         * Platform/Region.cpp: Added.
8107         (WebKit::Region::Region):
8108         (WebKit::Region::rects):
8109         (WebKit::Region::Shape::Shape):
8110         (WebKit::Region::Shape::appendSpan):
8111         (WebKit::Region::Shape::canCoalesce):
8112         (WebKit::Region::Shape::appendSpans):
8113         (WebKit::Region::Shape::appendSegment):
8114         (WebKit::Region::Shape::spans_begin):
8115         (WebKit::Region::Shape::spans_end):
8116         (WebKit::Region::Shape::segments_begin):
8117         (WebKit::Region::Shape::segments_end):
8118         (WebKit::Region::Shape::dump):
8119         (WebKit::Region::Shape::bounds):
8120         (WebKit::Region::Shape::move):
8121         (WebKit::Region::Shape::swap):
8122         (WebKit::Region::Shape::shapeOperation):
8123         (WebKit::Region::Shape::UnionOperation::trySimpleOperation):
8124         (WebKit::Region::Shape::unionShapes):
8125         (WebKit::Region::Shape::IntersectOperation::trySimpleOperation):
8126         (WebKit::Region::Shape::intersectShapes):
8127         (WebKit::Region::Shape::SubtractOperation::trySimpleOperation):
8128         (WebKit::Region::Shape::subtractShapes):
8129         (WebKit::Region::dump):
8130         (WebKit::Region::intersect):
8131         (WebKit::Region::unite):
8132         (WebKit::Region::subtract):
8133         (WebKit::Region::move):
8134         * Platform/Region.h: Added.
8135         (WebKit::Region::bounds):
8136         (WebKit::Region::isEmpty):
8137         (WebKit::Region::Span::Span):
8138         (WebKit::Region::Shape::isEmpty):
8139         * WebKit2.xcodeproj/project.pbxproj:
8140
8141 2011-01-11  Anders Carlsson  <andersca@apple.com>
8142
8143         Reviewed by Darin Adler.
8144
8145         Add DidSetSize message
8146         https://bugs.webkit.org/show_bug.cgi?id=52254
8147
8148         * DerivedSources.make:
8149         Add DrawingAReaProxy.messages.in.
8150
8151         * Platform/CoreIPC/MessageID.h:
8152         Add DrawingAreaProxy message class.
8153
8154         * UIProcess/DrawingAreaProxy.h:
8155         (WebKit::DrawingAreaProxy::didSetSize):
8156         Add CoreIPC message handler function.
8157
8158         * UIProcess/DrawingAreaProxy.messages.in: Added.
8159
8160         * UIProcess/DrawingAreaProxyImpl.cpp:
8161         (WebKit::DrawingAreaProxyImpl::didSetSize):
8162         Add stub.
8163
8164         * UIProcess/WebPageProxy.cpp:
8165         (WebKit::WebPageProxy::didReceiveMessage):
8166         Handle DrawingAreaProxy messages.
8167
8168         * WebKit2.xcodeproj/project.pbxproj:
8169         Add new files.
8170
8171         * WebProcess/WebPage/DrawingAreaImpl.cpp:
8172         (WebKit::DrawingAreaImpl::setSize):
8173         Send a DidSetSize message for now.
8174
8175 2011-01-11  Sam Weinig  <sam@webkit.org>
8176
8177         Reviewed by Anders Carlsson.
8178
8179         Fix spelling mistake. Sharable -> Shareable.
8180
8181         * Shared/API/c/WKImage.h:
8182         * Shared/API/c/WKSharedAPICast.h:
8183         (WebKit::toImageOptions):
8184         * Shared/ImageOptions.h:
8185         * Shared/WebImage.cpp:
8186         (WebKit::WebImage::create):
8187
8188 2011-01-11  Anders Carlsson  <andersca@apple.com>
8189
8190         Reviewed by Sam Weinig.
8191
8192         Add SetSize message
8193         https://bugs.webkit.org/show_bug.cgi?id=52247
8194
8195         * DerivedSources.make:
8196         Add DrawingArea.messages.in
8197
8198         * Platform/CoreIPC/MessageID.h:
8199         Add DrawingArea message class.
8200
8201         * UIProcess/DrawingAreaProxyImpl.cpp:
8202         (WebKit::DrawingAreaProxyImpl::sizeDidChange):
8203         Call sendSetSize.
8204
8205         (WebKit::DrawingAreaProxyImpl::sendSetSize):
8206         Send a SetSize message.
8207
8208         * UIProcess/DrawingAreaProxyImpl.h:
8209         Add setSize override.
8210
8211         * WebKit2.xcodeproj/project.pbxproj:
8212         Add new files.
8213
8214         * WebProcess/WebPage/DrawingArea.h:
8215         (WebKit::DrawingArea::setSize):
8216         Add setSize member function.
8217
8218         * WebProcess/WebPage/DrawingArea.messages.in: Added.
8219
8220         * WebProcess/WebPage/DrawingAreaImpl.cpp:
8221         * WebProcess/WebPage/DrawingAreaImpl.h:
8222         Add setSize.
8223
8224         * WebProcess/WebPage/WebPage.cpp:
8225         (WebKit::WebPage::didReceiveMessage):
8226         Handle drawing area messages.
8227
8228 2011-01-11  Anders Carlsson  <andersca@apple.com>
8229
8230         Reviewed by Sam Weinig.
8231
8232         Replace ASSERTs with FIXMEs.
8233
8234         * UIProcess/DrawingAreaProxyImpl.cpp:
8235         (WebKit::DrawingAreaProxyImpl::sizeDidChange):
8236         (WebKit::DrawingAreaProxyImpl::setPageIsVisible):
8237
8238 2011-01-11  Anders Carlsson  <andersca@apple.com>
8239
8240         Reviewed by Sam Weinig.
8241
8242         Add DrawingAreaImpl skeleton class
8243         https://bugs.webkit.org/show_bug.cgi?id=52246
8244
8245         * UIProcess/API/mac/WKView.mm:
8246         (useNewDrawingArea):
8247         New function which controls which drawing area to use, through an environment variable.
8248
8249         (-[WKView drawRect:]):
8250         Bail if we're using the new drawing area (for now).
8251
8252         (-[WKView WebKit::]):
8253         Create a DrawingAreaProxyImpl when asked to.
8254
8255         * WebKit2.xcodeproj/project.pbxproj:
8256         Add new files.
8257
8258         * WebProcess/WebPage/DrawingArea.cpp:
8259         (WebKit::DrawingArea::create):
8260         Create a DrawingAreaImpl when asked to.
8261
8262         * WebProcess/WebPage/DrawingAreaImpl.cpp: Added.
8263         * WebProcess/WebPage/DrawingAreaImpl.h: Added.
8264         Add DrawingAreaImpl class.
8265
8266 2011-01-11  Anders Carlsson  <andersca@apple.com>
8267
8268         Reviewed by Sam Weinig.
8269
8270         Add Mac-only DrawingAreaProxyImpl class skeleton
8271         https://bugs.webkit.org/show_bug.cgi?id=52243
8272
8273         This is the proxy side of a new drawing area implementation. This is Mac only for now
8274         while the design is being fleshed out.
8275
8276         * Shared/DrawingAreaInfo.h:
8277         * UIProcess/API/mac/WKView.mm:
8278         (-[WKView _switchToDrawingAreaTypeIfNecessary:DrawingAreaInfo::]):
8279         * UIProcess/DrawingAreaProxyImpl.cpp: Added.
8280         (WebKit::DrawingAreaProxyImpl::create):
8281         (WebKit::DrawingAreaProxyImpl::DrawingAreaProxyImpl):
8282         (WebKit::DrawingAreaProxyImpl::~DrawingAreaProxyImpl):
8283         (WebKit::DrawingAreaProxyImpl::didReceiveMessage):
8284         (WebKit::DrawingAreaProxyImpl::didReceiveSyncMessage):
8285         (WebKit::DrawingAreaProxyImpl::paint):
8286         (WebKit::DrawingAreaProxyImpl::sizeDidChange):
8287         (WebKit::DrawingAreaProxyImpl::setPageIsVisible):
8288         (WebKit::DrawingAreaProxyImpl::attachCompositingContext):
8289         (WebKit::DrawingAreaProxyImpl::detachCompositingContext):
8290         * UIProcess/DrawingAreaProxyImpl.h: Added.
8291         * WebKit2.xcodeproj/project.pbxproj:
8292         * WebProcess/WebPage/DrawingArea.cpp:
8293         (WebKit::DrawingArea::create):
8294
8295 2011-01-11  Anders Carlsson  <andersca@apple.com>
8296
8297         Fix Windows build.
8298
8299         * WebProcess/WebCoreSupport/win/WebPopupMenuWin.cpp:
8300         (WebKit::WebPopupMenu::setUpPlatformData):
8301
8302 2011-01-11  Anders Carlsson  <andersca@apple.com>
8303
8304         Reviewed by Sam Weinig.
8305
8306         Rename ShareableBitmap::createSharable to createShareable
8307         https://bugs.webkit.org/show_bug.cgi?id=52234
8308
8309         * Shared/ShareableBitmap.cpp:
8310         (WebKit::ShareableBitmap::createShareable):
8311         * Shared/ShareableBitmap.h:
8312         * Shared/WebImage.cpp:
8313         (WebKit::WebImage::create):
8314         * WebProcess/Plugins/PluginProxy.cpp:
8315         (WebKit::PluginProxy::geometryDidChange):
8316         * WebProcess/WebCoreSupport/win/WebPopupMenuWin.cpp:
8317         (WebKit::WebPopupMenu::setUpPlatformData):
8318         * WebProcess/WebPage/FindController.cpp:
8319         (WebKit::FindController::updateFindIndicator):
8320
8321 2011-01-11  Anders Carlsson  <andersca@apple.com>
8322
8323         Reviewed by Sam Weinig.
8324
8325         Rename BackingStore to ShareableBitmap
8326         https://bugs.webkit.org/show_bug.cgi?id=52228
8327
8328         * GNUmakefile.am:
8329         * PluginProcess/PluginControllerProxy.cpp:
8330         (WebKit::PluginControllerProxy::geometryDidChange):
8331         * PluginProcess/PluginControllerProxy.h:
8332         * Shared/API/c/cg/WKImageCG.cpp:
8333         (WKImageCreateCGImage):
8334         * Shared/BackingStore.cpp: Removed.
8335         * Shared/BackingStore.h: Removed.
8336         * Shared/PlatformPopupMenuData.cpp:
8337         (WebKit::PlatformPopupMenuData::decode):
8338         * Shared/PlatformPopupMenuData.h:
8339         * Shared/ShareableBitmap.cpp: Copied from WebKit2/Shared/BackingStore.cpp.
8340         (WebKit::ShareableBitmap::create):
8341         (WebKit::ShareableBitmap::createSharable):
8342         (WebKit::ShareableBitmap::createHandle):
8343         (WebKit::ShareableBitmap::ShareableBitmap):
8344         (WebKit::ShareableBitmap::~ShareableBitmap):
8345         (WebKit::ShareableBitmap::resize):
8346         (WebKit::ShareableBitmap::data):
8347         * Shared/ShareableBitmap.h: Copied from WebKit2/Shared/BackingStore.h.
8348         * Shared/UserMessageCoders.h:
8349         (WebKit::UserMessageEncoder::baseEncode):
8350         (WebKit::UserMessageDecoder::baseDecode):
8351         * Shared/WebImage.cpp:
8352         (WebKit::WebImage::create):
8353         (WebKit::WebImage::WebImage):
8354         (WebKit::WebImage::~WebImage):
8355         (WebKit::WebImage::size):
8356         * Shared/WebImage.h:
8357         (WebKit::WebImage::bitmap):
8358         * Shared/cairo/BackingStoreCairo.cpp:
8359         (WebKit::ShareableBitmap::createGraphicsContext):
8360         (WebKit::ShareableBitmap::paint):
8361         * Shared/cg/BackingStoreCG.cpp: Removed.
8362         * Shared/cg/ShareableBitmapCG.cpp: Copied from WebKit2/Shared/cg/BackingStoreCG.cpp.
8363         (WebKit::ShareableBitmap::createGraphicsContext):
8364         (WebKit::ShareableBitmap::paint):
8365         * Shared/gtk/BackingStoreGtk.cpp: Removed.
8366         * Shared/gtk/ShareableBitmapGtk.cpp: Copied from WebKit2/Shared/gtk/BackingStoreGtk.cpp.
8367         (WebKit::ShareableBitmap::createGraphicsContext):
8368         (WebKit::ShareableBitmap::paint):
8369         * Shared/qt/BackingStoreQt.cpp: Removed.
8370         * Shared/qt/ShareableBitmapQt.cpp: Copied from WebKit2/Shared/qt/BackingStoreQt.cpp.
8371         (WebKit::ShareableBitmap::createGraphicsContext):
8372         (WebKit::ShareableBitmap::paint):
8373         * UIProcess/FindIndicator.cpp:
8374         (WebKit::FindIndicator::create):
8375         (WebKit::FindIndicator::FindIndicator):
8376         * UIProcess/FindIndicator.h:
8377         (WebKit::FindIndicator::contentImage):
8378         * WebKit2.pro:
8379         * WebKit2.xcodeproj/project.pbxproj:
8380         * WebProcess/Plugins/PluginProxy.cpp:
8381         (WebKit::PluginProxy::geometryDidChange):
8382         * WebProcess/Plugins/PluginProxy.h:
8383         * WebProcess/WebPage/FindController.cpp:
8384         (WebKit::FindController::updateFindIndicator):
8385         * WebProcess/WebPage/WebPage.cpp:
8386         (WebKit::WebPage::snapshotInViewCoordinates):
8387         (WebKit::WebPage::snapshotInDocumentCoordinates):
8388         * win/WebKit2.vcproj:
8389
8390 2011-01-11  John Sullivan  <sullivan@apple.com>
8391
8392         Reviewed by Anders Carlsson.
8393
8394         [WKView setFrameSize:] derefs _page->drawingArea() without null check
8395         <https://bugs.webkit.org/show_bug.cgi?id=52231>
8396
8397         * UIProcess/API/mac/WKView.mm:
8398         (-[WKView setFrameSize:]):
8399         Null check drawingArea(). This is OK because if it doesn't exist then it will be
8400         created later with the correct initial size.
8401
8402 2011-01-07  Enrica Casucci  <enrica@apple.com>
8403
8404         Reviewed by Alexey Proskuryakov.
8405
8406         Paste and drag and drop use different code paths to interact with the pasteboard.
8407         https://bugs.webkit.org/show_bug.cgi?id=52093
8408         The change consists in a refactoring of the code to have only one class that
8409         deals with the pasteboard on Mac.
8410
8411         * WebProcess/WebCoreSupport/WebEditorClient.h:
8412         * WebProcess/WebCoreSupport/mac/WebEditorClientMac.mm: Added two methods to provide to WebCore functionality
8413         exposed by NSURLExtras.
8414         (WebKit::WebEditorClient::canonicalizeURL):
8415         (WebKit::WebEditorClient::canonicalizeURLString):
8416
8417 2011-01-11  Jessie Berlin  <jberlin@apple.com>
8418
8419         Reviewed by Anders Carlsson and Sam Weinig.
8420
8421         Fix crash on launch on Windows.
8422
8423         * UIProcess/win/WebView.cpp:
8424         (WebKit::WebView::onSizeEvent):
8425         The drawing area is no longer initialized before the WebView is created and the first
8426         onSize is receieved.
8427
8428 2011-01-11  Anders Carlsson  <andersca@apple.com>
8429
8430         Reviewed by Dan Bernstein.
8431
8432         Automatically reinitialize the web page on relaunch
8433         https://bugs.webkit.org/show_bug.cgi?id=52224
8434         <rdar://problem/8765695>
8435
8436         * UIProcess/API/mac/WKView.mm:
8437         (-[WKView _didRelaunchProcess]):
8438         Remove call to reinitializeWebPage.
8439
8440         * UIProcess/WebPageProxy.cpp:
8441         (WebKit::WebPageProxy::relaunch):
8442         Call initializeWebPage().
8443
8444         (WebKit::WebPageProxy::initializeWebPage):
8445         Assert that the web page is valid here.
8446
8447         * UIProcess/WebPageProxy.h:
8448         Remove reinitializeWebPage.
8449
8450         * UIProcess/win/WebView.cpp:
8451         (WebKit::WebView::didRelaunchProcess):
8452         Remove call to reinitializeWebPage.
8453
8454 2011-01-10  Anders Carlsson  <andersca@apple.com>
8455
8456         Reviewed by Sam Weinig.
8457
8458         Pass the view size to the DrawingAreaProxy constructor
8459         https://bugs.webkit.org/show_bug.cgi?id=52189
8460
8461         * UIProcess/DrawingAreaProxy.cpp:
8462         (WebKit::DrawingAreaProxy::DrawingAreaProxy):
8463         * UIProcess/WebPageProxy.cpp:
8464         (WebKit::WebPageProxy::viewSize):
8465         * UIProcess/WebPageProxy.h:
8466
8467 2011-01-11  Sam Weinig  <sam@webkit.org>
8468
8469         Roll r75460 back in with build fix.
8470
8471 2011-01-11  Anders Carlsson  <andersca@apple.com>
8472
8473         Reviewed by Andreas Kling.
8474
8475         Work towards having the WebPageProxy decide when to create the DrawingAreaProxy
8476         https://bugs.webkit.org/show_bug.cgi?id=52184
8477
8478         Qt part made my Balazs Kelemen.
8479
8480         * UIProcess/API/mac/PageClientImpl.h:
8481         * UIProcess/API/mac/PageClientImpl.mm:
8482         (WebKit::PageClientImpl::createDrawingAreaProxy):
8483         Call -[WKView _createDrawingAreaProxy].
8484
8485         (WebKit::PageClientImpl::setViewNeedsDisplay):
8486         Call setNeedsDisplayInRect on the WKView.
8487
8488         * UIProcess/API/mac/WKView.mm:
8489         (-[WKView initWithFrame:contextRef:pageGroupRef:]):
8490         No need to set the drawing area proxy anymore.
8491
8492         (-[WKView _createDrawingAreaProxy]):
8493         Create a chunked update drawing area proxy for now.
8494
8495         * UIProcess/API/qt/qgraphicswkview.cpp:
8496         Added a QGraphicsItem* member that is initialized in init to the accociated view.
8497         Implement the new functions. This is a temporary solution, in the long term the view
8498         and the page should be decoupled.
8499         (QGraphicsWKView::QGraphicsWKView):
8500         * UIProcess/API/qt/qwkpage.cpp:
8501         (QWKPagePrivate::QWKPagePrivate):
8502         (QWKPagePrivate::init):
8503         (QWKPagePrivate::createDrawingAreaProxy):
8504         (QWKPagePrivate::setViewNeedsDisplay):
8505         * UIProcess/API/qt/qwkpage.h:
8506         * UIProcess/API/qt/qwkpage_p.h:
8507         
8508         * UIProcess/PageClient.h:
8509         Add new pure virtual member functions.
8510
8511         * UIProcess/WebPageProxy.cpp:
8512         (WebKit::WebPageProxy::initializeWebPage):
8513         (WebKit::WebPageProxy::reinitializeWebPage):
8514         Set the new drawing area proxy.
8515
8516         * UIProcess/win/WebView.cpp:
8517         (WebKit::WebView::WebView):
8518         No need to set the drawing area proxy anymore.
8519
8520         (WebKit::WebView::createDrawingAreaProxy):
8521         Create a chunked update drawing area proxy for now.
8522
8523         (WebKit::WebView::setViewNeedsDisplay):
8524         Invalidate the window.
8525
8526 2011-01-11  Adam Roben  <aroben@apple.com>
8527
8528         Fix a typo in a comment
8529
8530         * WebProcess/WebCoreSupport/WebPlatformStrategies.cpp:
8531
8532 2011-01-10  Sheriff Bot  <webkit.review.bot@gmail.com>
8533
8534         Unreviewed, rolling out r75460.
8535         http://trac.webkit.org/changeset/75460
8536         https://bugs.webkit.org/show_bug.cgi?id=52191
8537
8538         It broke Qt-WK2 build (Requested by Ossy on #webkit).
8539
8540         * Shared/API/c/WKBase.h:
8541         * Shared/APIObject.h:
8542         * UIProcess/API/C/WKAPICast.h:
8543         * UIProcess/API/C/WKGeolocationPermissionRequest.cpp: Removed.
8544         * UIProcess/API/C/WKGeolocationPermissionRequest.h: Removed.
8545         * UIProcess/API/C/WKPage.h:
8546         * UIProcess/API/C/WebKit2.h:
8547         * UIProcess/API/qt/qwkpage.cpp:
8548         (QWKPage::QWKPage):
8549         * UIProcess/GeolocationPermissionRequestManagerProxy.cpp: Removed.
8550         * UIProcess/GeolocationPermissionRequestManagerProxy.h: Removed.
8551         * UIProcess/GeolocationPermissionRequestProxy.cpp: Removed.
8552         * UIProcess/GeolocationPermissionRequestProxy.h: Removed.
8553         * UIProcess/WebPageProxy.cpp:
8554         (WebKit::WebPageProxy::WebPageProxy):
8555         (WebKit::WebPageProxy::close):
8556         (WebKit::WebPageProxy::processDidCrash):
8557         * UIProcess/WebPageProxy.h:
8558         * UIProcess/WebPageProxy.messages.in:
8559         * UIProcess/WebUIClient.cpp:
8560         * UIProcess/WebUIClient.h:
8561         * WebKit2.pro:
8562         * WebKit2.xcodeproj/project.pbxproj:
8563         * WebProcess/Geolocation/GeolocationPermissionRequestManager.cpp: Removed.
8564         * WebProcess/Geolocation/GeolocationPermissionRequestManager.h: Removed.
8565         * WebProcess/Geolocation/WebGeolocationManager.cpp:
8566         * WebProcess/Geolocation/WebGeolocationManager.h:
8567         * WebProcess/WebCoreSupport/WebGeolocationClient.cpp:
8568         (WebKit::WebGeolocationClient::requestPermission):
8569         (WebKit::WebGeolocationClient::cancelPermissionRequest):
8570         * WebProcess/WebCoreSupport/WebGeolocationClient.h:
8571         * WebProcess/WebPage/WebPage.cpp:
8572         (WebKit::WebPage::WebPage):
8573         * WebProcess/WebPage/WebPage.h:
8574         * WebProcess/WebPage/WebPage.messages.in:
8575         * win/WebKit2.vcproj:
8576         * win/WebKit2Generated.make:
8577
8578 2011-01-10  Csaba Osztrogonác  <ossy@webkit.org>
8579
8580         Unreviewed, rolling out r75459
8581         http://trac.webkit.org/changeset/75459
8582
8583         Work towards having the WebPageProxy decide when to create the DrawingAreaProxy
8584         https://bugs.webkit.org/show_bug.cgi?id=52184
8585
8586         * UIProcess/API/mac/PageClientImpl.h:
8587         * UIProcess/API/mac/PageClientImpl.mm:
8588         * UIProcess/API/mac/WKView.mm:
8589         * UIProcess/API/mac/WKViewInternal.h:
8590         * UIProcess/API/qt/qwkpage.cpp:
8591         * UIProcess/API/qt/qwkpage_p.h:
8592         * UIProcess/PageClient.h:
8593         * UIProcess/WebPageProxy.cpp:
8594         (WebKit::WebPageProxy::initializeWebPage):
8595         (WebKit::WebPageProxy::reinitializeWebPage):
8596         * UIProcess/win/WebView.cpp:
8597         (WebKit::WebView::WebView):
8598         * UIProcess/win/WebView.h:
8599
8600 2011-01-10  Anders Carlsson  <andersca@apple.com>
8601
8602         Reviewed by Sam Weinig.
8603
8604         Remove size parameter to WebPageProxy::initializeWebPage
8605         https://bugs.webkit.org/show_bug.cgi?id=52188
8606
8607         * UIProcess/API/mac/WKView.mm:
8608         (-[WKView initWithFrame:contextRef:pageGroupRef:]):
8609         * UIProcess/API/qt/qwkpage.cpp:
8610         (QWKPagePrivate::init):
8611         * UIProcess/WebPageProxy.cpp:
8612         (WebKit::WebPageProxy::initializeWebPage):
8613         * UIProcess/WebPageProxy.h:
8614         * UIProcess/win/WebView.cpp:
8615         (WebKit::WebView::WebView):
8616
8617 2011-01-10  Anders Carlsson  <andersca@apple.com>
8618
8619         Didn't mean to land this.
8620
8621         * UIProcess/WebPageProxy.cpp:
8622         (WebKit::WebPageProxy::initializeWebPage):
8623         * UIProcess/WebPageProxy.h:
8624
8625 2011-01-10  Anders Carlsson  <andersca@apple.com>
8626
8627         Reviewed by Sam Weinig.
8628
8629         WebPageProxy::creationParameters no longer needs to take a size
8630         https://bugs.webkit.org/show_bug.cgi?id=52187
8631
8632         WebPageProxy::creationParameters can just ask the page client for the view size now.
8633
8634         * UIProcess/WebInspectorProxy.cpp:
8635         (WebKit::WebInspectorProxy::createInspectorPage):
8636         * UIProcess/WebPageProxy.cpp:
8637         (WebKit::WebPageProxy::initializeWebPage):
8638         (WebKit::WebPageProxy::reinitializeWebPage):
8639         (WebKit::WebPageProxy::createNewPage):
8640         (WebKit::WebPageProxy::creationParameters):
8641         * UIProcess/WebPageProxy.h:
8642
8643 2011-01-10  Anders Carlsson  <andersca@apple.com>
8644
8645         Reviewed by Sam Weinig.
8646
8647         Pass information about the view in the WebPageCreationParameters
8648         https://bugs.webkit.org/show_bug.cgi?id=52186
8649
8650         * Shared/WebPageCreationParameters.cpp:
8651         (WebKit::WebPageCreationParameters::encode):
8652         (WebKit::WebPageCreationParameters::decode):
8653         Encode and decode the state flags.
8654
8655         * Shared/WebPageCreationParameters.h:
8656         Add new state flags.
8657
8658         * UIProcess/WebPageProxy.cpp:
8659         (WebKit::WebPageProxy::creationParameters):
8660         Initialize the state flags.
8661
8662         * WebProcess/WebPage/WebPage.cpp:
8663         (WebKit::WebPage::WebPage):
8664         Update the page state from the state flags.
8665
8666 2011-01-10  Sam Weinig  <sam@webkit.org>
8667
8668         Reviewed by Anders Carlsson.
8669
8670         Make Geolocation features work in WebKit2
8671         https://bugs.webkit.org/show_bug.cgi?id=52078
8672
8673         Step 2 - Add support for requesting and granting permission for geolocation.
8674
8675         * Shared/API/c/WKBase.h:
8676         * Shared/APIObject.h:
8677         * UIProcess/API/C/WebKit2.h:
8678         * UIProcess/API/C/WKAPICast.h:
8679         * UIProcess/API/C/WKGeolocationPermissionRequest.cpp: Added.
8680         * UIProcess/API/C/WKGeolocationPermissionRequest.h: Added.
8681         Add new API type, WKGeolocationPermissionRequestRef.
8682
8683         * UIProcess/API/C/WKPage.h:
8684         Add new UIClient function for requesting permission.
8685
8686         * UIProcess/API/qt/qwkpage.cpp:
8687         (QWKPage::QWKPage): 
8688         Stub out the UIClient.
8689
8690         * UIProcess/GeolocationPermissionRequestManagerProxy.cpp: Added.
8691         * UIProcess/GeolocationPermissionRequestManagerProxy.h: Added.
8692         * UIProcess/GeolocationPermissionRequestProxy.cpp: Added.
8693         * UIProcess/WebPageProxy.cpp:
8694         * UIProcess/WebPageProxy.h:
8695         * UIProcess/WebPageProxy.messages.in:
8696         * UIProcess/WebUIClient.cpp:
8697         * UIProcess/WebUIClient.h:
8698         * WebProcess/Geolocation/GeolocationPermissionRequestManager.cpp: Added.
8699         * WebProcess/Geolocation/GeolocationPermissionRequestManager.h: Added.
8700         * WebProcess/Geolocation/WebGeolocationManager.cpp:
8701         * WebProcess/Geolocation/WebGeolocationManager.h:
8702         * WebProcess/WebCoreSupport/WebGeolocationClient.cpp:
8703         * WebProcess/WebCoreSupport/WebGeolocationClient.h:
8704         * WebProcess/WebPage/WebPage.cpp:
8705         (WebKit::WebPage::WebPage):
8706         (WebKit::WebPage::didReceiveGeolocationPermissionDecision):
8707         * WebProcess/WebPage/WebPage.h:
8708         (WebKit::WebPage::geolocationPermissionRequestManager):
8709         * WebProcess/WebPage/WebPage.messages.in:
8710         Track the permission request through both sides of the process divide.
8711
8712         * WebKit2.pro:
8713         * WebKit2.xcodeproj/project.pbxproj:
8714         * win/WebKit2.vcproj:
8715         * win/WebKit2Generated.make:
8716         Add new files.
8717
8718 2011-01-10  Anders Carlsson  <andersca@apple.com>
8719
8720         Reviewed by Sam Weinig.
8721
8722         Work towards having the WebPageProxy decide when to create the DrawingAreaProxy
8723         https://bugs.webkit.org/show_bug.cgi?id=52184
8724
8725         * UIProcess/API/mac/PageClientImpl.h:
8726         * UIProcess/API/mac/PageClientImpl.mm:
8727         (WebKit::PageClientImpl::createDrawingAreaProxy):
8728         Call -[WKView _createDrawingAreaProxy].
8729
8730         (WebKit::PageClientImpl::setViewNeedsDisplay):
8731         Call setNeedsDisplayInRect on the WKView.
8732
8733         * UIProcess/API/mac/WKView.mm:
8734         (-[WKView initWithFrame:contextRef:pageGroupRef:]):
8735         No need to set the drawing area proxy anymore.
8736
8737         (-[WKView _createDrawingAreaProxy]):
8738         Create a chunked update drawing area proxy for now.
8739
8740         * UIProcess/API/qt/qwkpage.cpp:
8741         (QWKPagePrivate::createDrawingAreaProxy):
8742         (QWKPagePrivate::setViewNeedsDisplay):
8743         Add stubs.
8744     
8745         * UIProcess/PageClient.h:
8746         Add new pure virtual member functions.
8747
8748         * UIProcess/WebPageProxy.cpp:
8749         (WebKit::WebPageProxy::initializeWebPage):
8750         (WebKit::WebPageProxy::reinitializeWebPage):
8751         Set the new drawing area proxy.
8752
8753         * UIProcess/win/WebView.cpp:
8754         (WebKit::WebView::WebView):
8755         No need to set the drawing area proxy anymore.
8756
8757         (WebKit::WebView::createDrawingAreaProxy):
8758         Create a chunked update drawing area proxy for now.
8759
8760         (WebKit::WebView::setViewNeedsDisplay):
8761         Invalidate the window.
8762
8763 2011-01-10  Anders Carlsson  <andersca@apple.com>
8764
8765         Fix Windows build again.
8766
8767         * UIProcess/win/WebView.cpp:
8768         (WebKit::WebView::isViewWindowActive):
8769
8770 2011-01-10  Anders Carlsson  <andersca@apple.com>
8771
8772         Fix Windows build.
8773
8774         * UIProcess/win/WebView.cpp:
8775         (WebKit::WebView::onShowWindowEvent):
8776
8777 2011-01-10  Anders Carlsson  <andersca@apple.com>
8778
8779         Reviewed by Sam Weinig.
8780
8781         Use a pull model for view state changes
8782         https://bugs.webkit.org/show_bug.cgi?id=52175
8783
8784         Instead of having the WKView call setFocused, setActive etc on the WebPageProxy, the
8785         WKView now simply informs the WebPageProxy what has changed, using the WebPageProxy::viewStateDidChange
8786         function. The WebPageProxy can then fetch the relevant information using newly added PageClient functions.
8787
8788         * UIProcess/API/mac/PageClientImpl.h:
8789         * UIProcess/API/mac/PageClientImpl.mm:
8790         (WebKit::PageClientImpl::viewSize):
8791         (WebKit::PageClientImpl::isViewWindowActive):
8792         (WebKit::PageClientImpl::isViewFocused):
8793         (WebKit::PageClientImpl::isViewVisible):
8794         (WebKit::PageClientImpl::isViewInWindow):
8795         * UIProcess/API/mac/WKView.mm:
8796         (-[WKView initWithFrame:contextRef:pageGroupRef:]):
8797         (-[WKView becomeFirstResponder]):
8798         (-[WKView resignFirstResponder]):
8799         (-[WKView viewDidMoveToWindow]):
8800         (-[WKView _windowDidBecomeKey:]):
8801         (-[WKView _windowDidResignKey:]):
8802         (-[WKView viewDidHide]):
8803         (-[WKView viewDidUnhide]):
8804         (-[WKView _isFocused]):
8805         (-[WKView _didRelaunchProcess]):
8806         * UIProcess/API/mac/WKViewInternal.h:
8807         * UIProcess/API/qt/qgraphicswkview.cpp:
8808         (QGraphicsWKView::focusInEvent):
8809         (QGraphicsWKView::focusOutEvent):
8810         * UIProcess/API/qt/qwkpage.cpp:
8811         (QWKPagePrivate::QWKPagePrivate):
8812         (QWKPagePrivate::viewSize):
8813         (QWKPagePrivate::isViewWindowActive):
8814         (QWKPagePrivate::isViewFocused):
8815         (QWKPagePrivate::isViewVisible):
8816         (QWKPagePrivate::isViewInWindow):
8817         * UIProcess/API/qt/qwkpage_p.h:
8818         * UIProcess/PageClient.h:
8819         * UIProcess/WebContext.cpp:
8820         (WebKit::WebContext::createWebPage):
8821         * UIProcess/WebContext.h:
8822         * UIProcess/WebPageProxy.cpp:
8823         (WebKit::WebPageProxy::create):
8824         (WebKit::WebPageProxy::WebPageProxy):
8825         (WebKit::WebPageProxy::viewStateDidChange):
8826         * UIProcess/WebPageProxy.h:
8827         * UIProcess/WebProcessProxy.cpp:
8828         (WebKit::WebProcessProxy::createWebPage):
8829         * UIProcess/WebProcessProxy.h:
8830         * UIProcess/win/WebView.cpp:
8831         (WebKit::WebView::WebView):
8832         (WebKit::WebView::onSetFocusEvent):
8833         (WebKit::WebView::onKillFocusEvent):
8834         (WebKit::WebView::onShowWindowEvent):
8835         (WebKit::WebView::updateActiveState):
8836         (WebKit::WebView::viewSize):
8837         (WebKit::WebView::isViewWindowActive):
8838         (WebKit::WebView::isViewFocused):
8839         (WebKit::WebView::isViewVisible):
8840         (WebKit::WebView::isViewInWindow):
8841         (WebKit::WebView::didRelaunchProcess):
8842         (WebKit::WebView::setIsInWindow):
8843         * UIProcess/win/WebView.h:
8844
8845 2011-01-10  Adam Roben  <aroben@apple.com>
8846
8847         Don't pass a reference type to va_start
8848
8849         C++ says this results in undefined behavior:
8850
8851             The restrictions that ISO C places on the second parameter to the
8852             va_start() macro in header <stdarg.h> are different in this
8853             International Standard. The parameter parmN is the identifier of
8854             the rightmost parameter in the variable parameter list of the
8855             function definition (the one just before the ...).221) If the
8856             parameter parmN is declared with a function, array, or reference
8857             type, or with a type that is not compatible with the type that
8858             results when passing an argument for which there is no parameter,
8859             the behavior is undefined.
8860
8861         Fixes <http://webkit.org/b/52168> Title of standalone image document
8862         includes bogus image dimensions
8863
8864         Rubber-stamped by Eric Seidel.
8865
8866         * WebProcess/WebCoreSupport/WebPlatformStrategies.cpp:
8867         (WebKit::formatLocalizedString): Don't use a reference type for
8868         |format|.
8869
8870 2011-01-10  Siddharth Mathur  <siddharth.mathur@nokia.com>
8871
8872         Reviewed by Eric Seidel.
8873
8874         Support for ARM's RVCT(ARMCC) compiler in import/export directives
8875         https://bugs.webkit.org/show_bug.cgi?id=52146 
8876
8877         * Shared/API/c/WKBase.h:
8878
8879 2011-01-10  Sam Weinig  <sam@webkit.org>
8880
8881         Fix the build.
8882
8883         * WebProcess/WebPage/WebPage.cpp:
8884         (WebKit::WebPage::WebPage):
8885
8886 2011-01-10  Sam Weinig  <sam@webkit.org>
8887
8888         Reviewed by Anders Carlsson.
8889
8890         Make Geolocation features work in WebKit2
8891         https://bugs.webkit.org/show_bug.cgi?id=52078
8892
8893         Step 1 - Add enough support to get position data from a provider.
8894         This does not include permission support.
8895
8896         * Platform/CoreIPC/HandleMessage.h:
8897         Add #include of Arguments.h for CoreIPC::In and Out definitions.
8898
8899         * Platform/CoreIPC/MessageID.h:
8900         Add new message types.
8901
8902         * Shared/API/c/WKBase.h:
8903         * Shared/APIObject.h:
8904         Add new API types.
8905
8906         * Shared/WebGeolocationPosition.cpp: Added.
8907         * Shared/WebGeolocationPosition.h: Added.
8908         Internal position representation.
8909
8910         * UIProcess/API/C/WKAPICast.h:
8911         Add casts for new API types.
8912
8913         * UIProcess/API/C/WKContext.cpp:
8914         * UIProcess/API/C/WKContext.h:
8915         * UIProcess/API/C/WKGeolocationManager.cpp: Added.
8916         * UIProcess/API/C/WKGeolocationManager.h: Added.
8917         * UIProcess/API/C/WKGeolocationPosition.cpp: Added.
8918         * UIProcess/API/C/WKGeolocationPosition.h: Added.
8919         * UIProcess/API/C/WebKit2.h:
8920         Add API to provide and control geolocation data.
8921
8922         * UIProcess/WebContext.cpp:
8923         (WebKit::WebContext::WebContext):
8924         (WebKit::WebContext::~WebContext):
8925         (WebKit::WebContext::processDidClose):
8926         (WebKit::WebContext::didReceiveMessage):
8927         * UIProcess/WebContext.h:
8928         (WebKit::WebContext::geolocationManagerProxy):
8929         * UIProcess/WebGeolocationManagerProxy.cpp: Added.
8930         (WebKit::WebGeolocationManagerProxy::create):
8931         (WebKit::WebGeolocationManagerProxy::WebGeolocationManagerProxy):
8932         (WebKit::WebGeolocationManagerProxy::~WebGeolocationManagerProxy):
8933         (WebKit::WebGeolocationManagerProxy::invalidate):
8934         (WebKit::WebGeolocationManagerProxy::initializeProvider):
8935         (WebKit::WebGeolocationManagerProxy::providerDidChangePosition):
8936         (WebKit::WebGeolocationManagerProxy::providerDidFailToDeterminePosition):
8937         (WebKit::WebGeolocationManagerProxy::didReceiveMessage):
8938         (WebKit::WebGeolocationManagerProxy::startUpdating):
8939         (WebKit::WebGeolocationManagerProxy::stopUpdating):
8940         * UIProcess/WebGeolocationManagerProxy.h: Added.
8941         (WebKit::WebGeolocationManagerProxy::clearContext):
8942         (WebKit::WebGeolocationManagerProxy::type):
8943         * UIProcess/WebGeolocationManagerProxy.messages.in: Added.
8944         * UIProcess/WebGeolocationProvider.cpp: Added.
8945         (WebKit::WebGeolocationProvider::startUpdating):
8946         (WebKit::WebGeolocationProvider::stopUpdating):
8947         * UIProcess/WebGeolocationProvider.h: Added.
8948         * UIProcess/WebProcessProxy.cpp:
8949         (WebKit::WebProcessProxy::didReceiveMessage):
8950         * WebProcess/Geolocation: Added.
8951         * WebProcess/Geolocation/WebGeolocationManager.cpp: Added.
8952         (WebKit::WebGeolocationManager::WebGeolocationManager):
8953         (WebKit::WebGeolocationManager::~WebGeolocationManager):
8954         (WebKit::WebGeolocationManager::didReceiveMessage):
8955         (WebKit::WebGeolocationManager::registerWebPage):
8956         (WebKit::WebGeolocationManager::unregisterWebPage):
8957         (WebKit::WebGeolocationManager::didChangePosition):
8958         (WebKit::WebGeolocationManager::didFailToDeterminePosition):
8959         * WebProcess/Geolocation/WebGeolocationManager.h: Added.
8960         * WebProcess/Geolocation/WebGeolocationManager.messages.in: Added.
8961         * WebProcess/WebCoreSupport/WebGeolocationClient.cpp: Added.
8962         (WebKit::WebGeolocationClient::geolocationDestroyed):
8963         (WebKit::WebGeolocationClient::startUpdating):
8964         (WebKit::WebGeolocationClient::stopUpdating):
8965         (WebKit::WebGeolocationClient::setEnableHighAccuracy):
8966         (WebKit::WebGeolocationClient::lastPosition):
8967         (WebKit::WebGeolocationClient::requestPermission):
8968         (WebKit::WebGeolocationClient::cancelPermissionRequest):
8969         * WebProcess/WebCoreSupport/WebGeolocationClient.h: Added.
8970         (WebKit::WebGeolocationClient::WebGeolocationClient):
8971         * WebProcess/WebPage/WebPage.cpp:
8972         (WebKit::WebPage::WebPage):
8973         * WebProcess/WebProcess.cpp:
8974         (WebKit::WebProcess::WebProcess):
8975         (WebKit::WebProcess::didReceiveMessage):
8976         * WebProcess/WebProcess.h:
8977         (WebKit::WebProcess::geolocationManager):
8978         Pipe geolocation positions/errors from the UIProcess to the WebProcess.
8979
8980         * DerivedSources.make:
8981         * DerivedSources.pro:
8982         * WebKit2.pro:
8983         * WebKit2.xcodeproj/project.pbxproj:
8984         * win/WebKit2.vcproj:
8985         * win/WebKit2Common.vsprops:
8986          * win/WebKit2Generated.make:
8987         Add new files.
8988
8989 2011-01-10  Martin Robinson  <mrobinson@igalia.com>
8990
8991         GTK+ build fix. Continue to fix 'make dist.'
8992
8993         * GNUmakefile.am: Remove more non-existent files from the WebKit2 build.
8994
8995 2011-01-10  Alejandro G. Castro  <alex@igalia.com>
8996
8997         Reviewed by Martin Robinson.
8998
8999         [GTK] Remove webkit2 files that are still not added to the
9000         repository from the makefile
9001         https://bugs.webkit.org/show_bug.cgi?id=52145
9002
9003         This change is required for the release, we can add the lines
9004         again to the makefiles with the patches adding the files.
9005
9006         * GNUmakefile.am:
9007
9008 2011-01-10  Andreas Kling  <kling@webkit.org>
9009
9010         Reviewed by Simon Hausmann.
9011
9012         [Qt] [WK2] MiniBrowser does not load pages opened in new windows
9013         https://bugs.webkit.org/show_bug.cgi?id=52111
9014
9015         * UIProcess/API/qt/qwkpage.cpp:
9016         (QWKPage::context): Implement this method.
9017
9018 2011-01-09  Dan Bernstein  <mitz@apple.com>
9019
9020         Reviewed by Simon Fraser.
9021
9022         <rdar://problem/8839498> Assertion failure in KURL::KURL when calling WKURLRequestCreateWithWKURL with a non-parsed URL
9023         https://bugs.webkit.org/show_bug.cgi?id=52132
9024
9025         * Shared/API/c/WKURLRequest.cpp:
9026         (WKURLRequestCreateWithWKURL): Parse the URL.
9027         * Shared/WebString.h: Fixed a comment.
9028         * Shared/WebURL.h: Ditto.
9029
9030 2011-01-09  Amruth Raj  <amruthraj@motorola.com> and Ravi Phaneendra Kasibhatla  <ravi.kasibhatla@motorola.com>
9031
9032         Reviewed by Martin Robinson.
9033
9034         Changes to add Process Launcher and Thread Launcher implementation to the WebKit2 GTK port.
9035         The main() implementation for WebKitWebProcess binary to launch Web process from UI process.
9036         https://bugs.webkit.org/show_bug.cgi?id=48511
9037
9038         * UIProcess/Launcher/gtk: Added.
9039         * UIProcess/Launcher/gtk/ProcessLauncherGtk.cpp: Added. GTK (UNIX_X11 specific) implementation
9040         (WebKit::ProcessLauncher::launchProcess):
9041         (WebKit::ProcessLauncher::terminateProcess):
9042         (WebKit::ProcessLauncher::platformInvalidate):
9043         * UIProcess/Launcher/gtk/ThreadLauncherGtk.cpp: Added. Stubbed implementation for GTK port. Yet to implement.
9044         (WebKit::ThreadLauncher::createWebThread):
9045         * WebProcess/gtk: Added.
9046         * WebProcess/gtk/WebProcessGtk.cpp: Added. The stubbed implementations of virtual functions of WebProcess.h for GTK port.
9047         (WebKit::WebProcess::platformSetCacheModel):
9048         (WebKit::WebProcess::platformClearResourceCaches):
9049         (WebKit::WebProcess::platformInitializeWebProcess):
9050         (WebKit::WebProcess::platformShutdown):
9051         * WebProcess/gtk/WebProcessMainGtk.cpp: Added. The WebProcessMain call which initiates the Web Process for GTK port.
9052         (WebKit::WebProcessMainGtk):
9053         * WebProcess/gtk/WebProcessMainGtk.h: Added. The WebProcessMain declaration for Web Process for GTK port.
9054         * gtk/MainGtk.cpp: Added. The main function implementation for binary WebKitWebProcess.
9055         (main):
9056
9057 2011-01-07 Amruth Raj  <amruthraj@motorola.com> and Ravi Phaneendra Kasibhatla  <ravi.kasibhatla@motorola.com>
9058
9059         Reviewed by Martin Robinson.
9060
9061         [GTK] WebKit2 GNUmakefile is out of date from trunk
9062         https://bugs.webkit.org/show_bug.cgi?id=51883
9063
9064         * GNUmakefile.am: Updated sources list as per latest revision
9065         * Platform/gtk/RunLoopGtk.cpp:
9066         (RunLoop::TimerBase::start):
9067         * Platform/gtk/WorkQueueGtk.cpp:
9068         (WorkQueue::scheduleWorkAfterDelay):
9069         * Shared/gtk/BackingStoreGtk.cpp:
9070         (WebKit::BackingStore::paint):
9071         * WebProcess/InjectedBundle/gtk/InjectedBundleGtk.cpp:
9072         (WebKit::InjectedBundle::load):
9073         * WebProcess/Plugins/Netscape/gtk/NetscapePluginGtk.cpp:
9074         (WebKit::NetscapePlugin::platformInvalidate):
9075
9076 2011-01-08  Dan Bernstein  <mitz@apple.com>
9077
9078         Reviewed by Sam Weinig.
9079
9080         <rdar://problem/8812759> In WebKit2, PDF view settings (mode and scale) do not stick
9081         https://bugs.webkit.org/show_bug.cgi?id=52118
9082
9083         * Shared/WebPreferencesStore.cpp:
9084         (WebKit::WebPreferencesStore::encode): Encode the double values map.
9085         (WebKit::WebPreferencesStore::decode): Decode the double values map.
9086         (WebKit::defaultValueForKey): Added double instance.
9087         (WebKit::WebPreferencesStore::setDoubleValueForKey): Added.
9088         (WebKit::WebPreferencesStore::getDoubleValueForKey): Added.
9089         * Shared/WebPreferencesStore.h: Added PDFScaleFactor and PDFDisplayMode preferences.
9090         * UIProcess/API/mac/PDFViewController.mm:
9091         (-[WKPDFView initWithFrame:PDFViewController:WebKit::]): Initialize the _pdfViewController ivar.
9092         (-[WKPDFView invalidate]): Changed 'nil' to '0' in assignment to a non-Objective-C pointer.
9093         (-[WKPDFView setDocument:]): Added.
9094         (-[WKPDFView _applyPDFPreferences]): Added.
9095         (-[WKPDFView _updatePreferences:]): Added.
9096         (-[WKPDFView _updatePreferencesSoon]): Added.
9097         (-[WKPDFView _scaleOrDisplayModeOrPageChanged:]): Added.
9098         (-[WKPDFView viewDidMoveToWindow]): Added. Starts observing the PDF view for changes to scale
9099         and display mode.
9100         (-[WKPDFView viewWillMoveToWindow:]): Added. Stops observing for changes.
9101         (WebKit::PDFViewController::setPDFDocumentData): Changed to call throguh -[WKPDFView setDocument:].
9102         * UIProcess/WebPreferences.cpp:
9103         (WebKit::WebPreferences::updateDoubleValueForKey): Added.
9104         * UIProcess/WebPreferences.h:
9105         * UIProcess/cf/WebPreferencesCF.cpp:
9106         (WebKit::WebPreferences::platformUpdateDoubleValueForKey): Added empty implementation.
9107         * UIProcess/gtk/WebPreferencesGtk.cpp:
9108         (WebKit::WebPreferences::platformUpdateDoubleValueForKey): Added stub.
9109         * UIProcess/mac/WebPreferencesMac.mm:
9110         (WebKit::setDoubleValueIfInUserDefaults): Added.
9111         (WebKit::WebPreferences::platformUpdateDoubleValueForKey): Added.
9112         * UIProcess/qt/WebPreferencesQt.cpp:
9113         (WebKit::WebPreferences::platformUpdateDoubleValueForKey): Added.
9114
9115 2011-01-08  Dan Bernstein  <mitz@apple.com>
9116
9117         Reviewed by Maciej Stachowiak.
9118
9119         In WebKit2, page zooming does not work with PDF
9120         https://bugs.webkit.org/show_bug.cgi?id=52113
9121
9122         * UIProcess/API/C/WKPage.cpp:
9123         (WKPageSupportsTextZoom): Added. Returns whether the page currently supports text-only zoom.
9124         * UIProcess/API/C/WKPage.h:
9125         * UIProcess/API/mac/PDFViewController.h: Made pdfDocumentClass() private and declared new
9126         member functions.
9127         * UIProcess/API/mac/PDFViewController.mm:
9128         (WebKit::PDFViewController::zoomFactor): Added.
9129         (WebKit::PDFViewController::setZoomFactor): Added.
9130         * UIProcess/API/mac/PageClientImpl.h:
9131         * UIProcess/API/mac/PageClientImpl.mm:
9132         (WebKit::PageClientImpl::customRepresentationZoomFactor): Added. Calls through to the WKView.
9133         (WebKit::PageClientImpl::setCustomRepresentationZoomFactor): Ditto.
9134         * UIProcess/API/mac/WKView.mm:
9135         (-[WKView _customRepresentationZoomFactor]): Added. Calls through to the PDFViewController.
9136         (-[WKView _setCustomRepresentationZoomFactor:]): Ditto.
9137         * UIProcess/API/mac/WKViewInternal.h:
9138         * UIProcess/API/qt/qwkpage_p.h:
9139         (QWKPagePrivate::customRepresentationZoomFactor): Added.
9140         (QWKPagePrivate::setCustomRepresentationZoomFactor): Added.
9141         * UIProcess/PageClient.h:
9142         * UIProcess/WebPageProxy.cpp:
9143         (WebKit::WebPageProxy::WebPageProxy): Coding style fix.
9144         (WebKit::WebPageProxy::supportsTextZoom): Added. Returns false if the main frame has a custom
9145         representation or is a standalone image, true otherwise.
9146         (WebKit::WebPageProxy::setTextZoomFactor): Bail out if the main frame has a custom representation.
9147         (WebKit::WebPageProxy::pageZoomFactor): If the main frame has a custom representation, get the
9148         zoom factor from the page client.
9149         (WebKit::WebPageProxy::setPageZoomFactor): If the main frame has a custom representation, have
9150         the client set the zoom factor.
9151         (WebKit::WebPageProxy::setPageAndTextZoomFactors): Ditto.
9152         * UIProcess/WebPageProxy.h:
9153         (WebKit::WebPageProxy::textZoomFactor): Changed to return 1 if the main frame has a custom
9154         representation.
9155         * UIProcess/win/WebView.cpp:
9156         (WebKit::WebView::customRepresentationZoomFactor): Added.
9157         (WebKit::WebView::setCustomRepresentationZoomFactor): Added.
9158         * UIProcess/win/WebView.h:
9159
9160 2011-01-08  Jeff Miller  <jeffm@apple.com>
9161
9162         Reviewed by Jon Honeycutt.
9163
9164         Add WKBundleFrameGetVisibleContentBounds().
9165         https://bugs.webkit.org/show_bug.cgi?id=52089
9166
9167         * WebProcess/InjectedBundle/API/c/WKBundleFrame.cpp:
9168         (WKBundleFrameGetVisibleContentBounds):
9169         * WebProcess/InjectedBundle/API/c/WKBundleFrame.h:
9170         Added WKBundleFrameGetVisibleContentBounds().
9171
9172 2011-01-08  Balazs Kelemen  <kbalazs@webkit.org>
9173
9174         Reviewed by Kenneth Rohde Christiansen.
9175
9176         [Qt][WK2] QWKView does not propagate show and hide events to the drawing area
9177         https://bugs.webkit.org/show_bug.cgi?id=52108
9178
9179         * UIProcess/API/qt/qgraphicswkview.cpp:
9180         (QGraphicsWKView::event): Call setPageIsVisible on the drawing area
9181         if the event is Show or Hide.
9182
9183 2011-01-08  Laszlo Gombos  <laszlo.1.gombos@nokia.com>
9184
9185         Reviewed by Kenneth Rohde Christiansen.
9186
9187         [Qt][Symbian] Make sure WebKit headers are included before platform headers on Symbian
9188         https://bugs.webkit.org/show_bug.cgi?id=31273
9189
9190         On Symbian PREPEND_INCLUDEPATH is the best way to make sure that WebKit headers
9191         are included before platform headers. On all other platforms continue to use
9192         INCLUDEPATH (as before).
9193
9194         * WebKit2.pro:
9195
9196 2011-01-08  Csaba Osztrogonác  <ossy@webkit.org>
9197
9198         [Qt][WK2] Unreviewed buildfix after r75313.
9199
9200         * Scripts/generate-forwarding-headers.pl:
9201
9202 2011-01-08  Adam Barth  <abarth@webkit.org>
9203
9204         Moving WebCore changes the layout of the Qt build directory as well,
9205         which means we need to change where we look for these generated files.
9206
9207         * DerivedSources.pro:
9208
9209 2011-01-07  Adam Barth  <abarth@webkit.org>
9210
9211         Rubber-stamped by Eric Seidel.
9212
9213         Move WebCore to Source
9214         https://bugs.webkit.org/show_bug.cgi?id=52050
9215
9216         * WebKit2.pro:
9217
9218 2011-01-07  Stephanie Lewis  <slewis@apple.com>
9219
9220         Reviewed by Geoff Garen.
9221
9222         <rdar://problem/8649617> Migrate memory tracking from Safari to WebKit
9223         https://bugs.webkit.org/show_bug.cgi?id=50799 Add Memory Sampler to WebKit
9224         
9225         Add a sampler for printing off process memory statistics.
9226         This tool can track:
9227                 
9228                 WebCore
9229                    - FastMalloc allocations bytes              (in use or committed)
9230                 JavaScriptCore
9231                    - Garbage collector heap bytes              (in use or committed)
9232                    - Stack bytes                               (committed only!)
9233                    - JIT Code bytes                            (committed only!)
9234                 Malloc zones
9235                    - In use bytes for the following zones:
9236                        * Default zone                          (in use or committed)
9237                        * DispCon zone                          (in use or committed)
9238                        * Purgable zone                         (in use or committed)
9239                 Task Info
9240                    - Resident size memory (RSIZE)
9241         
9242                 Data collected is dumped to a temporary file.
9243         
9244         Create a sandbox for a temporary file.
9245         * Shared/SandboxExtension.h:
9246         (WebKit::SandboxExtension::createHandleForTemporaryFile):
9247         * Shared/mac/SandboxExtensionMac.mm:
9248         (WebKit::SandboxExtension::createHandleForTemporaryFile):
9249         
9250         Memory Sampler files
9251         
9252         * Shared/WebMemorySampler.cpp: Added.
9253         (WebKit::WebMemorySampler::shared):
9254         (WebKit::WebMemorySampler::WebMemorySampler):
9255         (WebKit::WebMemorySampler::start):
9256         (WebKit::WebMemorySampler::initializeTimers):
9257         (WebKit::WebMemorySampler::stop):
9258         (WebKit::WebMemorySampler::isRunning):
9259         (WebKit::WebMemorySampler::initializeTempLogFile):
9260         (WebKit::WebMemorySampler::initializeSandboxedLogFile):
9261         (WebKit::WebMemorySampler::writeHeaders):
9262         (WebKit::WebMemorySampler::sampleTimerFired):
9263         (WebKit::WebMemorySampler::stopTimerFired):
9264         (WebKit::WebMemorySampler::appendCurrentMemoryUsageToFile):
9265         * Shared/WebMemorySampler.h: Added.
9266         * Shared/mac/WebMemorySampler.mac.mm: Added.
9267         (WebKit::WebMemorySampler::sampleSystemMalloc):
9268         (WebKit::WebMemorySampler::sampleProcessCommittedBytes):
9269         (WebKit::WebMemorySampler::processName):
9270         (WebKit::WebMemorySampler::sampleWebKit):
9271         
9272         API to start and stop UIProcess and WebProcess sampling.
9273         
9274         * UIProcess/API/C/WKContext.cpp:
9275         (WKContextStartMemorySampler):
9276         (WKContextStopMemorySampler):
9277         * UIProcess/API/C/WKContext.h:
9278         
9279         Send messages to WebProcess to start and stop memory sampling.
9280         
9281         * UIProcess/WebContext.cpp:
9282         (WebKit::WebContext::WebContext):
9283         (WebKit::WebContext::processDidFinishLaunching):
9284         (WebKit::WebContext::startMemorySampler):
9285         (WebKit::WebContext::stopMemorySampler):
9286         * UIProcess/WebContext.h:
9287         * WebKit2.xcodeproj/project.pbxproj:
9288         * WebProcess/WebProcess.cpp:
9289         (WebKit::WebProcess::startMemorySampler):
9290         (WebKit::WebProcess::stopMemorySampler):
9291         * WebProcess/WebProcess.h:
9292         * WebProcess/WebProcess.messages.in:
9293
9294 2011-01-07  Jessie Berlin  <jberlin@apple.com>
9295
9296         Reviewed by Dan Bernstein.
9297
9298         WebKit2: Need WKBundleFrameCopyProvisionalURL
9299         https://bugs.webkit.org/show_bug.cgi?id=52083
9300
9301         * WebProcess/InjectedBundle/API/c/WKBundleFrame.cpp:
9302         (WKBundleFrameCopyProvisionalURL):
9303         * WebProcess/InjectedBundle/API/c/WKBundleFrame.h:
9304         * WebProcess/WebPage/WebFrame.cpp:
9305         (WebKit::WebFrame::provisionalURL):
9306         Grab the URL from the provisional document loader.
9307         * WebProcess/WebPage/WebFrame.h:
9308
9309 2011-01-07  James Robinson  <jamesr@chromium.org>
9310
9311         Revert "Implement mozilla's animationTime property"
9312         https://bugs.webkit.org/show_bug.cgi?id=51952
9313
9314         This approach isn't quite right.
9315
9316         * WebProcess/WebPage/ChunkedUpdateDrawingArea.cpp:
9317         (WebKit::ChunkedUpdateDrawingArea::display):
9318         (WebKit::ChunkedUpdateDrawingArea::setSize):
9319         * WebProcess/WebPage/WebPage.cpp:
9320         (WebKit::WebPage::drawRect):
9321         * WebProcess/WebPage/mac/LayerBackedDrawingAreaMac.mm:
9322         (WebKit::LayerBackedDrawingArea::syncCompositingLayers):
9323
9324 2011-01-07 Amruth Raj  <amruthraj@motorola.com> and Ravi Phaneendra Kasibhatla  <ravi.kasibhatla@motorola.com>
9325
9326         Reviewed by Martin Robinson.
9327
9328         [GTK] WebKit2 GNUmakefile is out of date from trunk
9329         Adding new stub files for compiling on latest revision
9330         https://bugs.webkit.org/show_bug.cgi?id=51883
9331
9332         * UIProcess/gtk: Added.
9333         * UIProcess/gtk/TextCheckerGtk.cpp: Added.
9334         (WebKit::TextChecker::state):
9335         (WebKit::TextChecker::isContinuousSpellCheckingAllowed):
9336         (WebKit::TextChecker::setContinuousSpellCheckingEnabled):
9337         (WebKit::TextChecker::setGrammarCheckingEnabled):
9338         (WebKit::TextChecker::uniqueSpellDocumentTag):
9339         (WebKit::TextChecker::closeSpellDocumentWithTag):
9340         (WebKit::TextChecker::checkTextOfParagraph):
9341         (WebKit::TextChecker::updateSpellingUIWithMisspelledWord):
9342         (WebKit::TextChecker::getGuessesForWord):
9343         (WebKit::TextChecker::learnWord):
9344         (WebKit::TextChecker::ignoreWord):
9345         * UIProcess/gtk/WebInspectorGtk.cpp: Added.
9346         (WebKit::WebInspectorProxy::platformCreateInspectorPage):
9347         (WebKit::WebInspectorProxy::platformOpen):
9348         (WebKit::WebInspectorProxy::platformClose):
9349         (WebKit::WebInspectorProxy::inspectorPageURL):
9350         * UIProcess/gtk/WebPageProxyGtk.cpp: Added.
9351         (WebKit::WebPageProxy::standardUserAgent):
9352         * UIProcess/gtk/WebPreferencesGtk.cpp: Added.
9353         (WebKit::WebPreferences::platformInitializeStore):
9354         (WebKit::WebPreferences::platformUpdateStringValueForKey):
9355         (WebKit::WebPreferences::platformUpdateBoolValueForKey):
9356         (WebKit::WebPreferences::platformUpdateUInt32ValueForKey):
9357         * WebProcess/WebCoreSupport/gtk/WebContextMenuClientGtk.cpp: Added.
9358         (WebKit::WebContextMenuClient::lookUpInDictionary):
9359         (WebKit::WebContextMenuClient::isSpeaking):
9360         (WebKit::WebContextMenuClient::speak):
9361         (WebKit::WebContextMenuClient::stopSpeaking):
9362         * WebProcess/WebCoreSupport/gtk/WebDatabaseManagerGtk.cpp: Added.
9363         (WebKit::WebDatabaseManager::databaseDirectory):
9364         * WebProcess/WebCoreSupport/gtk/WebPopupMenuGtk.cpp: Added.
9365         (WebKit::WebPopupMenu::setUpPlatformData):
9366         * WebProcess/WebPage/gtk: Added.
9367         * WebProcess/WebPage/gtk/WebInspectorGtk.cpp: Added.
9368         (WebKit::WebInspector::localizedStringsURL):
9369
9370 2011-01-06  Adam Roben  <aroben@apple.com>
9371
9372         Don't ever call ::SetCursor(0)
9373
9374         Doing so makes the cursor disappear from the screen.
9375
9376         Fixes <http://webkit.org/b/52024> Mouse cursor flashes when moving it
9377         around a WKView before the web process has finished launching
9378
9379         Reviewed by Jon Honeycutt.
9380
9381         * UIProcess/win/WebView.cpp:
9382         (WebKit::WebView::onSetCursor): If we don't have a cursor to set, just
9383         let Windows do its default thing (which is to set the cursor to the
9384         window class's cursor, which in our case is the arrow cursor).
9385         (WebKit::WebView::cursorToShow): Just return 0 when the page has
9386         crashed so that we'll show the default cursor (which is the arrow
9387         cursor). This change has no visible effect, but seems slightly better
9388         conceptually.
9389         (WebKit::WebView::updateNativeCursor): Don't do anything if we don't
9390         have a cursor to set.
9391
9392 2011-01-06  Adam Roben  <aroben@apple.com>
9393
9394         Fill the WKView with white when the web process hasn't drawn anything
9395         yet
9396
9397         Fixes <http://webkit.org/b/52023> WKView accumulates pixel garbage
9398         before web process has had a chance to draw anything (if Aero is
9399         disabled)
9400
9401         Reviewed by Jon Honeycutt.
9402
9403         * UIProcess/ChunkedUpdateDrawingAreaProxy.cpp:
9404         (WebKit::ChunkedUpdateDrawingAreaProxy::paint):
9405         * UIProcess/ChunkedUpdateDrawingAreaProxy.h:
9406         * UIProcess/DrawingAreaProxy.h:
9407         * UIProcess/LayerBackedDrawingAreaProxy.cpp:
9408         (WebKit::LayerBackedDrawingAreaProxy::paint):
9409         * UIProcess/LayerBackedDrawingAreaProxy.h:
9410         * UIProcess/TiledDrawingAreaProxy.cpp:
9411         (WebKit::TiledDrawingAreaProxy::paint):
9412         * UIProcess/TiledDrawingAreaProxy.h:
9413         * UIProcess/mac/ChunkedUpdateDrawingAreaProxyMac.mm:
9414         (WebKit::ChunkedUpdateDrawingAreaProxy::platformPaint):
9415         * UIProcess/qt/ChunkedUpdateDrawingAreaProxyQt.cpp:
9416         (WebKit::ChunkedUpdateDrawingAreaProxy::platformPaint):
9417         * UIProcess/win/ChunkedUpdateDrawingAreaProxyWin.cpp:
9418         (WebKit::ChunkedUpdateDrawingAreaProxy::platformPaint):
9419         * UIProcess/win/LayerBackedDrawingAreaProxyWin.cpp:
9420         (WebKit::LayerBackedDrawingAreaProxy::paint):
9421         Changed these functions to return a boolean indicating whether we
9422         actually painted anything.
9423
9424         * UIProcess/win/WebView.cpp:
9425         (WebKit::WebView::onPaintEvent): Fill with white (and don't call
9426         didDraw) when the DrawingAreaProxy isn't able to paint.
9427
9428 2011-01-06  Jessie Berlin  <jberlin@apple.com>
9429
9430         Reviewed by Jon Honeycutt.
9431
9432         WebKit2: Need WKBundlePagePrivate equivalent of WebKit1's WebViewPrivate's setDefersCallbacks
9433         https://bugs.webkit.org/show_bug.cgi?id=52038
9434
9435         The implementation of WebKit1's WebViewPrivate's setDefersCallbacks on both Windows and Mac
9436         calls WebCore::Page::setDefersLoading.
9437
9438         * WebProcess/InjectedBundle/API/c/WKBundlePage.cpp:
9439         (WKBundlePageSetDefersLoading):
9440         * WebProcess/InjectedBundle/API/c/WKBundlePagePrivate.h:
9441         * WebProcess/WebPage/WebPage.cpp:
9442         (WebKit::WebPage::setDefersLoading):
9443         * WebProcess/WebPage/WebPage.h:
9444
9445 2011-01-06  Brady Eidson  <beidson@apple.com>
9446
9447         Reviewed by Darin Adler.
9448
9449         <rdar://problem/8261624> and https://bugs.webkit.org/show_bug.cgi?id=47355
9450         Change WebKit2 session restoring to restore the full back/forward list.
9451
9452         * UIProcess/WebProcessProxy.cpp:
9453         (WebKit::WebProcessProxy::registerNewWebBackForwardListItem): Let the UIProcess register its own
9454           WebBackForwardListItems in its ID map upon creation.
9455         * UIProcess/WebProcessProxy.h:
9456
9457         * UIProcess/cf/WebPageProxyCF.cpp:
9458         (WebKit::WebPageProxy::restoreFromSessionStateData): Register each new list entry in the
9459           UIProcess ID map.
9460
9461         * WebProcess/WebPage/WebBackForwardListProxy.cpp:
9462         (WebKit::WebBackForwardListProxy::addItemFromUIProcess): Add this method to register UIProcess
9463           created items without doing any of the other work normally associated with adding a new back/forward item
9464           (such as notifying the UIProcess).
9465         * WebProcess/WebPage/WebBackForwardListProxy.h:
9466
9467         * WebProcess/WebPage/WebPage.cpp:
9468         (WebKit::WebPage::restoreSession): Map all of the back/forward list entries from the UIProcess then
9469           cause a load of the current entry.
9470
9471 2011-01-06  Adam Roben  <aroben@apple.com>
9472
9473         Always show the arrow cursor when the web process has crashed
9474
9475         Fixes <http://webkit.org/b/52006> WKView shows a stale cursor when the
9476         web process crashes
9477
9478         Reviewed by Ada Chan.
9479
9480         * UIProcess/win/WebView.cpp:
9481         (WebKit::WebView::processDidCrash):
9482         (WebKit::WebView::didRelaunchProcess):
9483         Update the cursor to reflect the new state.
9484
9485         (WebKit::WebView::cursorToShow): Always show the arrow cursor when the
9486         web process has crashed.
9487
9488 2011-01-06  Adam Roben  <aroben@apple.com>
9489
9490         Reduce code duplication in WebView::updateNativeCursor
9491
9492         Fixes <http://webkit.org/b/52005> It's not easy to add new behavior to
9493         WebView::updateNativeCursor
9494
9495         Reviewed by Ada Chan.
9496
9497         * UIProcess/win/WebView.cpp:
9498         (WebKit::WebView::cursorToShow): Moved code to choose a cursor here...
9499         (WebKit::WebView::updateNativeCursor): ...from here.
9500
9501         * UIProcess/win/WebView.h: Added cursorToShow.
9502
9503 2011-01-06  Adam Roben  <aroben@apple.com>
9504
9505         Make WKView fill with white when the web process has crashed
9506
9507         Previously we would just draw whatever we had last drawn into the
9508         WKView (i.e., a stale picture of the web page), which was confusing
9509         (because the web page would mysteriously not respond to input) and ugly
9510         (because it wouldn't behave properly if the window was resized).
9511
9512         Fixes <http://webkit.org/b/52004> WKView keeps painting a stale
9513         picture of the web page when the web process crashes
9514
9515         Reviewed by Ada Chan.
9516
9517         * UIProcess/win/WebView.cpp:
9518         (WebKit::WebView::onPaintEvent): Ported code from -[WKView drawRect:]
9519         to fill with white if the page is invalid or has no DrawingArea. As a
9520         bonus, also ported the call to WebPageProxy::didDraw from that method.
9521
9522         (WebKit::WebView::processDidCrash):
9523         (WebKit::WebView::didRelaunchProcess):
9524         Invalidate our window so that we'll redraw with white or the new page.
9525
9526 2011-01-06  Adam Roben  <aroben@apple.com>
9527
9528         Make WKViews work on Windows after a crashed web process gets relaunched
9529
9530         Fixes <http://webkit.org/b/52001> Relaunching the web process fails to
9531         revivify WKViews on Windows
9532
9533         Reviewed by Ada Chan.
9534
9535         * UIProcess/win/WebView.cpp:
9536         (WebKit::WebView::didRelaunchProcess): Implemented by porting code from
9537         -[WKView _didRelaunchProcess].
9538
9539 2011-01-06  Adam Roben  <aroben@apple.com>
9540
9541         Remove WebView::m_rect
9542
9543         It was only used in the constructor, and wasn't even kept up-to-date as
9544         the WebView's size changed.
9545
9546         Fixes <http://webkit.org/b/52000> WebView::m_rect is unnecessary
9547
9548         Reviewed by Ada Chan.
9549
9550         * UIProcess/win/WebView.cpp:
9551         * UIProcess/win/WebView.h:
9552
9553 2011-01-05  Brian Weinstein  <bweinstein@apple.com>
9554
9555         Reviewed by Ada Chan.
9556
9557         WebKit2: Should be able to call into injected bundle to ask if we should allow resource loads
9558         https://bugs.webkit.org/show_bug.cgi?id=51969
9559         
9560         Add the ability to call into the injected bundle to ask if we should allow resource loads.
9561         If the injected bundle says we should cancel, we clear out the ResourceRequest that was
9562         passed into willSendRequest, which cancels the resource load.
9563
9564         * WebProcess/InjectedBundle/API/c/WKBundlePage.h: Add the new callback for allowing/cancelling
9565             resource loads.
9566         * WebProcess/InjectedBundle/InjectedBundlePageLoaderClient.cpp:
9567         (WebKit::InjectedBundlePageLoaderClient::shouldLoadResourceForFrame): Calls through to the client.
9568         * WebProcess/InjectedBundle/InjectedBundlePageLoaderClient.h:
9569         * WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
9570         (WebKit::WebFrameLoaderClient::dispatchWillSendRequest): Ask the InjectedBundlePageLoaderClient if we
9571             should load the resource or not.
9572
9573 2011-01-06  Jeff Miller  <jeffm@apple.com>
9574
9575         Reviewed by Darin Adler.
9576
9577         WebKit2: Add APIs to WKBundleFrame to get content bounds and scroll offset
9578         https://bugs.webkit.org/show_bug.cgi?id=51968
9579
9580         * WebProcess/InjectedBundle/API/c/WKBundleFrame.cpp:
9581         (WKBundleFrameGetContentBounds):
9582         (WKBundleFrameGetScrollOffset):
9583         * WebProcess/InjectedBundle/API/c/WKBundleFrame.h:
9584         Add WKBundleFrameGetContentBounds() and WKBundleFrameGetScrollOffset().
9585
9586 2011-01-06  James Robinson  <jamesr@chromium.org>
9587
9588         Reviewed by Simon Fraser.
9589
9590         Implement mozilla's animationTime property
9591         https://bugs.webkit.org/show_bug.cgi?id=51952
9592
9593         Tells the page to clear the current animation time after producing a frame.
9594
9595         * WebProcess/WebPage/WebPage.cpp:
9596         (WebKit::WebPage::drawRect):
9597         * WebProcess/WebPage/ChunkedUpdateDrawingArea.cpp:
9598         (WebKit::ChunkedUpdateDrawingArea::display):
9599         (WebKit::ChunkedUpdateDrawingArea::setSize):
9600         * WebProcess/WebPage/mac/LayerBackedDrawingAreaMac.mm:
9601         (WebKit::LayerBackedDrawingArea::syncCompositingLayers):
9602
9603 2011-01-06  Darin Adler  <darin@apple.com>
9604
9605         Redo the half-done rename from the last check-in.
9606         Sorry for the broken build last night.
9607
9608         * WebProcess/WebPage/WebBackForwardListProxy.cpp:
9609         (WebKit::WebBackForwardListProxy::removeItem): Renamed.
9610         * WebProcess/WebPage/WebBackForwardListProxy.h: Updated
9611         for new name.
9612         * WebProcess/WebPage/WebPage.cpp:
9613         (WebKit::WebPage::didRemoveBackForwardItem): Updated to
9614         use the new name.
9615
9616 2011-01-06  Maciej Stachowiak  <mjs@apple.com>
9617
9618         Rubber stamped by Dan Bernstein.
9619
9620         Fix build for Darin's previous change w/ the obvious renaming.
9621
9622         * WebProcess/WebPage/WebBackForwardListProxy.h:
9623         * WebProcess/WebPage/WebPage.cpp:
9624         (WebKit::WebPage::didRemoveBackForwardItem):
9625
9626 2011-01-05  Darin Adler  <darin@apple.com>
9627
9628         Reviewed by Geoff Garen.
9629
9630         Back/Forward entries in WebKit2 leak
9631         https://bugs.webkit.org/show_bug.cgi?id=51983
9632
9633         Besides fixing the leak, this also fixes a problem where
9634         all history items were sent over to the UI process, but
9635         we wanted to send only back/forward items.
9636
9637         * UIProcess/WebBackForwardList.cpp:
9638         (WebKit::WebBackForwardList::pageClosed): Added.
9639         Tells the web process about all the back/forward
9640         items being removed.
9641         (WebKit::WebBackForwardList::addItem): Ditto.
9642         Also removed a redundant call to didChangeBackForwardList.
9643         (WebKit::WebBackForwardList::clear): Ditto.
9644
9645         * UIProcess/WebBackForwardList.h: Added pageClosed.
9646
9647         * UIProcess/WebPageProxy.cpp:
9648         (WebKit::WebPageProxy::close): Added a call to pageClosed.
9649         (WebKit::WebPageProxy::backForwardRemovedItem): Added.
9650         Sends a message to the web page in the web process.
9651
9652         * UIProcess/WebPageProxy.h: Added backForwardRemovedItem.
9653
9654         * WebProcess/WebPage/WebBackForwardListProxy.cpp:
9655         (WebKit::updateBackForwardItem): Added an itemID argument,
9656         since callers will now be getting it and we don't want to
9657         get it twice. Removed the code to generate an ID. Also
9658         removed some local variables to make the code a little
9659         tighter and clearer.
9660         (WebKit::WK2NotifyHistoryItemChanged): Only call
9661         updateBackForwardItem for items that already have IDs.
9662         We don't want to send cross-process messages for every
9663         history item; just the ones that are top level back/forward
9664         items.
9665         (WebKit::WebBackForwardListProxy::removeItem):
9666         Added. For use when the UI process tells us to remove it.
9667         (WebKit::WebBackForwardListProxy::addItem): Added code to
9668         assign an ID and put this item into the maps. This is called
9669         exactly once on each back/forward item.
9670
9671         * WebProcess/WebPage/WebBackForwardListProxy.h: Added
9672         removeItem.
9673
9674         * WebProcess/WebPage/WebPage.cpp:
9675         (WebKit::WebPage::didRemoveBackForwardItem): Added.
9676
9677         * WebProcess/WebPage/WebPage.h: Added didRemoveBackForwardItem.
9678
9679         * WebProcess/WebPage/WebPage.messages.in: Added
9680         DidRemoveBackForwardItem message.
9681
9682 2011-01-05  Steve Falkenburg  <sfalken@apple.com>
9683
9684         Reviewed by Darin Adler.
9685
9686         Debug and Release builds on Windows clobber each other
9687         https://bugs.webkit.org/show_bug.cgi?id=49185
9688
9689         Changes the structure of WebKitBuild build products directory so we
9690         completely separate each build configuration into independent directories.
9691         
9692         Although we previously had per-configuration directories for obj, this change adds
9693         per-configuration directories for bin, lib, obj, and include. Each configuration's
9694         build products are stored within a directory inside of WebKitBuild.
9695         
9696         Most use of $(WebKitOutputDir) in the build files has been replaced by $(ConfigurationBuildDir),
9697         defined in common.vsprops to be $(WebKitOutputDir)\$(ConfigurationName).
9698
9699         * win/WebKit2.make:
9700         * win/WebKit2.vcproj:
9701         * win/WebKit2Common.vsprops:
9702         * win/WebKit2Generated.make:
9703         * win/WebKit2GeneratedCommon.vsprops:
9704         * win/WebKit2WebProcessPostBuild.cmd:
9705         * win/WebKit2WebProcessPreBuild.cmd:
9706         * win/WebKitPostBuild.cmd:
9707         * win/WebKitPreBuild.cmd:
9708
9709 2011-01-05  Alexey Proskuryakov  <ap@apple.com>
9710
9711         Reviewed by Anders Carlsson.
9712
9713         https://bugs.webkit.org/show_bug.cgi?id=51973
9714         Make main frame PDF printing work
9715
9716         * UIProcess/API/mac/PDFViewController.h:
9717         * UIProcess/API/mac/PDFViewController.mm: (WebKit::PDFViewController::makePrintOperation):
9718         Ask PDFDocument to create an NSPrintOperation.
9719
9720         * UIProcess/API/mac/WKView.h:
9721         * UIProcess/API/mac/WKView.mm:
9722         (-[WKView printOperationWithPrintInfo:forFrame:]): Create a new NSPrintOperation, either
9723         from scratch or from a PDF view.
9724         (-[WKView canPrintHeadersAndFooters]): Report if the view can be re-paginated to add headers
9725         and footers.
9726
9727 2011-01-05  Anders Carlsson  <andersca@apple.com>
9728
9729         Reviewed by Sam Weinig.
9730
9731         <rdar://problem/8750248>
9732         Need a way to create a new DownloadProxy from an arbitrary resource request
9733
9734         <rdar://problem/8750465>
9735         Need a way to start a download in WKDownload
9736         
9737         <rdar://problem/8752204>
9738         WK2 Context Menus - "Save linked file" support
9739
9740         * Shared/ContextMenuState.h: Added.
9741         Add a ContextMenuState struct which contains state for context menus.
9742
9743         * UIProcess/API/C/WKContext.cpp:
9744         (WKContextDownloadURLRequest):
9745         Call WebContext::download.
9746
9747         * UIProcess/WebContext.cpp:
9748         (WebKit::WebContext::download):
9749         Send a DownloadRequest message to the web process.
9750
9751         * UIProcess/WebPageProxy.cpp:
9752         (WebKit::WebPageProxy::showContextMenu):
9753         Set the active context menu state.
9754
9755         (WebKit::WebPageProxy::contextMenuItemSelected):
9756         Handle ContextMenuItemTagDownloadImageToDisk and ContextMenuItemTagDownloadLinkToDisk by calling
9757         WebContext::Download, passing the respective URLs.
9758
9759         * UIProcess/WebPageProxy.messages.in:
9760         ShowContextMenu now takes state as well.
9761
9762         * WebProcess/WebCoreSupport/WebContextMenuClient.cpp:
9763         (WebKit::WebContextMenuClient::downloadURL):
9764         Assert that this is never reached; downloads are handled in the UI process.
9765
9766         * WebProcess/WebPage/WebContextMenu.cpp:
9767         (WebKit::WebContextMenu::show):
9768         Pass the context menu state along when sending the ShowContextMenu message.
9769
9770         * WebProcess/WebProcess.cpp:
9771         (WebKit::WebProcess::downloadRequest):
9772         Call the shared DownloadManager.
9773
9774         * WebProcess/WebProcess.messages.in:
9775         Add DownloadRequest message.
9776
9777         * WebKit2.xcodeproj/project.pbxproj:
9778         * win/WebKit2.vcproj:
9779         Add ContextMenuState.h.
9780
9781 2011-01-05  Laszlo Gombos  <laszlo.1.gombos@nokia.com>
9782
9783         Unreviewed build fix.
9784
9785         [Qt] [Symbian] Fix building NPAPI support
9786
9787         NPEvent is mapped to QAction on Symbian. QAction has no
9788         default constructor, so toNP() fails to build. Add a case for
9789         Symbian behind the OS(SYMBIAN) guard.
9790
9791         * WebProcess/Plugins/Netscape/qt/NetscapePluginQt.cpp:
9792         (WebKit::toNP):
9793
9794 2011-01-05  Jeff Miller  <jeffm@apple.com>
9795
9796         Reviewed by Dan Bernstein.
9797
9798         Copy WKImageCG.h to include\WebKit2 in build output
9799         https://bugs.webkit.org/show_bug.cgi?id=51944
9800
9801         * win/WebKit2Generated.make:
9802         Add xcopy command to copy WKImageCG.h.
9803
9804 2011-01-05  Brady Eidson  <beidson@apple.com>
9805
9806         Reviewed by Sam Weinig.
9807
9808         Part of <rdar://problem/8261624> and https://bugs.webkit.org/show_bug.cgi?id=47355
9809         Change WebKit2 session restoring to restore the full back/forward list
9810
9811         Add a new message to tell the WebProcess to restore a session state:
9812         * WebProcess/WebPage/WebPage.cpp:
9813         (WebKit::WebPage::restoreSession):
9814         * WebProcess/WebPage/WebPage.h:
9815         * WebProcess/WebPage/WebPage.messages.in: Add the new message, AND fix the intentional misspellings.
9816         
9817         Also, Sam sucks.
9818
9819         Change WebProcess back/forward list item ids to be odd (UIProcess's will be even):
9820         * WebProcess/WebPage/WebBackForwardListProxy.cpp:
9821         (WebKit::generateHistoryItemID):
9822
9823         Provide accessors to the entries in the list to pass to the WebProcess:
9824         * UIProcess/WebBackForwardList.h:
9825         (WebKit::WebBackForwardList::entries):
9826         (WebKit::WebBackForwardList::currentIndex):
9827
9828         Add decoding of the saved back/forward list itmes (we already encode them):
9829         * UIProcess/cf/WebBackForwardListCF.cpp:
9830         (WebKit::generateWebBackForwardItemID):
9831         (WebKit::WebBackForwardList::restoreFromCFDictionaryRepresentation):
9832
9833         Instead of loading the current URL, pass the entire last back to the WebProcess:
9834         * UIProcess/cf/WebPageProxyCF.cpp:
9835         (WebKit::WebPageProxy::restoreFromSessionStateData):
9836
9837 2011-01-05  Brady Eidson  <beidson@apple.com>
9838
9839         Reviewed by Darin Adler.
9840
9841         https://bugs.webkit.org/show_bug.cgi?id=51953
9842         Add a "SessionState" object for IPC messaging.
9843
9844         This object includes all data necessary to restore a session state;
9845         For now, this is just the back/forward list to restore.
9846
9847         * Shared/SessionState.cpp: Added.
9848         (WebKit::SessionState::SessionState):
9849         (WebKit::SessionState::encode):
9850         (WebKit::SessionState::decode):
9851         * Shared/SessionState.h: Added.
9852         (WebKit::SessionState::list):
9853         (WebKit::SessionState::currentIndex):
9854
9855         * WebKit2.pro:
9856         * WebKit2.xcodeproj/project.pbxproj:
9857         * win/WebKit2.vcproj:
9858
9859 2011-01-05  Laszlo Gombos  <laszlo.1.gombos@nokia.com>
9860
9861         Unreviewed build fix.
9862
9863         Include unistd.h for _exit() for non-Windows builds.
9864
9865         Build break noticed on QtWebkit Symbian builds.
9866
9867         * Shared/ChildProcess.cpp:
9868
9869 2011-01-05  Brady Eidson  <beidson@apple.com>
9870
9871         Reviewed by Darin Adler.
9872
9873         https://bugs.webkit.org/show_bug.cgi?id=51949
9874         Make WebBackForwardListItem shared, and add encoders and decoders
9875
9876         * Shared/WebBackForwardListItem.cpp: Copied from UIProcess/WebBackForwardListItem.cpp.
9877         (WebKit::WebBackForwardListItem::encode):
9878         (WebKit::WebBackForwardListItem::decode):
9879         * Shared/WebBackForwardListItem.h: Copied from UIProcess/WebBackForwardListItem.h.
9880         * UIProcess/WebBackForwardListItem.cpp: Removed.
9881         * UIProcess/WebBackForwardListItem.h: Removed.
9882
9883         * WebKit2.pro:
9884         * WebKit2.xcodeproj/project.pbxproj:
9885         * win/WebKit2.vcproj:
9886
9887 2011-01-05  Anders Carlsson  <andersca@apple.com>
9888
9889         Reviewed by Sam Weinig.
9890
9891         Handle smart insert/delete
9892         https://bugs.webkit.org/show_bug.cgi?id=51946
9893
9894         * Shared/WebPageCreationParameters.cpp:
9895         (WebKit::WebPageCreationParameters::encode):
9896         (WebKit::WebPageCreationParameters::decode):
9897         * Shared/WebPageCreationParameters.h:
9898         Add isSmartInsertDelete enabled.
9899
9900         * UIProcess/API/mac/WKView.mm:
9901         (-[WKView validateUserInterfaceItem:]):
9902         Handle toggleSmartInsertDelete:.
9903
9904         (-[WKView toggleSmartInsertDelete:]):
9905         Toggle the smart insert/delete state.
9906
9907         * UIProcess/TextChecker.h:
9908         Add isSmartInsertDeleteEnabled and setSmartInsertDeleteEnabled.
9909
9910         * UIProcess/WebPageProxy.cpp:
9911         (WebKit::WebPageProxy::WebPageProxy):
9912         Initialize m_isSmartInsertDeleteEnabled.
9913
9914         (WebKit::WebPageProxy::contextMenuItemSelected):
9915         Handle ContextMenuItemTagSmartCopyPaste.
9916
9917         (WebKit::WebPageProxy::setSmartInsertDeleteEnabled):
9918         Update the state and send a SetSmartInsertDeleteEnabled message.
9919
9920         (WebKit::WebPageProxy::creationParameters):
9921         Initialize isSmartInsertDeleteEnabled.
9922
9923         * UIProcess/WebPageProxy.h:
9924         (WebKit::WebPageProxy::isSmartInsertDeleteEnabled):
9925         Return m_isSmartInsertDeleteEnabled.
9926
9927         * UIProcess/mac/TextCheckerMac.mm:
9928         (WebKit::TextChecker::isSmartInsertDeleteEnabled):
9929         (WebKit::TextChecker::setSmartInsertDeleteEnabled):
9930         Store and fetch the smart insert delete state.
9931
9932         * WebProcess/WebCoreSupport/WebEditorClient.cpp:
9933         (WebKit::WebEditorClient::smartInsertDeleteEnabled):
9934         Call WebPage::isSmartInsertDeleteEnabled.
9935
9936         * WebProcess/WebCoreSupport/mac/WebEditorClientMac.mm:
9937         (WebKit::WebEditorClient::toggleSmartInsertDelete):
9938         Assert that this is never called.
9939
9940         * WebProcess/WebPage/WebPage.cpp:
9941         (WebKit::WebPage::WebPage):
9942         Initialize m_isSmartInsertDeleteEnabled
9943
9944         * WebProcess/WebPage/WebPage.h:
9945         (WebKit::WebPage::isSmartInsertDeleteEnabled):
9946         (WebKit::WebPage::setSmartInsertDeleteEnabled):
9947         Add getter and setter.
9948
9949         * WebProcess/WebPage/WebPage.messages.in:
9950         Add SetSmartInsertDeleteEnabled message.
9951
9952 2011-01-05  Anders Carlsson  <andersca@apple.com>
9953
9954         Fix Windows build.
9955         
9956         * WebProcess/WebPage/WebPage.cpp:
9957
9958 2011-01-05  Anders Carlsson  <andersca@apple.com>
9959
9960         Reviewed by Adele Peterson.
9961
9962         Implement word transformation
9963         https://bugs.webkit.org/show_bug.cgi?id=51943
9964
9965         * UIProcess/API/mac/WKView.mm:
9966         (-[WKView validateUserInterfaceItem:]):
9967         Handle the word transformation selectors.
9968
9969         (-[WKView uppercaseWord:]):
9970         (-[WKView lowercaseWord:]):
9971         (-[WKView capitalizeWord:]):
9972         Call down to the WebPageProxy.
9973
9974         * UIProcess/WebPageProxy.cpp:
9975         (WebKit::WebPageProxy::uppercaseWord):
9976         (WebKit::WebPageProxy::lowercaseWord):
9977         (WebKit::WebPageProxy::capitalizeWord):
9978         Send messages to the WebPage.
9979
9980         * WebProcess/WebCoreSupport/mac/WebEditorClientMac.mm:
9981         (WebKit::changeWordCase):
9982         Add helper function.
9983
9984         (WebKit::WebEditorClient::uppercaseWord):
9985         (WebKit::WebEditorClient::lowercaseWord):
9986         (WebKit::WebEditorClient::capitalizeWord):
9987         Call helper function.
9988
9989         * WebProcess/WebPage/WebPage.cpp:
9990         (WebKit::WebPage::changeSpellingToWord):
9991         Call replaceSelectionWithText.
9992
9993         (WebKit::WebPage::uppercaseWord):
9994         (WebKit::WebPage::lowercaseWord):
9995         (WebKit::WebPage::capitalizeWord):
9996         Call the editor functions.
9997
9998         (WebKit::WebPage::replaceSelectionWithText):
9999         New helper function that replaces the selected string with another string.
10000
10001         * WebProcess/WebPage/WebPage.messages.in:
10002         Add new messages.
10003
10004 2011-01-05  Alexey Proskuryakov  <ap@apple.com>
10005
10006         Reviewed by Anders Carlsson.
10007
10008         https://bugs.webkit.org/show_bug.cgi?id=51935
10009         Add WebKit2 API for largest frame
10010
10011         * UIProcess/API/C/WKPage.cpp:
10012         (WKPageGetFrameSetLargestFrame):
10013         * UIProcess/API/C/WKPage.h:
10014
10015 2011-01-05  Anders Carlsson  <andersca@apple.com>
10016
10017         Reviewed by Sam Weinig.
10018
10019         More work on spelling
10020         https://bugs.webkit.org/show_bug.cgi?id=51939
10021
10022         * UIProcess/API/mac/WKView.mm:
10023         (-[WKView validateUserInterfaceItem:]):
10024         Handle changeSpelling: as well.
10025
10026         (-[WKView showGuessPanel:]):
10027         Show or hide the guess panel.
10028
10029         (-[WKView checkSpelling:]):
10030         Pass false to advanceToNextMisspelling.
10031
10032         (-[WKView changeSpelling:]):
10033         Call changeSpellingToWord.
10034
10035         * UIProcess/TextChecker.h:
10036         * UIProcess/WebPageProxy.cpp:
10037         (WebKit::WebPageProxy::WebPageProxy):
10038         Initialize m_pendingLearnOrIgnoreWordMessageCount.
10039
10040         (WebKit::WebPageProxy::contextMenuItemSelected):
10041         Handle smart toggles directly in the UI process, keep track of whether
10042         we're asked to learn or ignore a word.
10043
10044         (WebKit::WebPageProxy::advanceToNextMisspelling):
10045         Pass the boolean through.
10046
10047         (WebKit::WebPageProxy::changeSpellingToWord):
10048         Send a ChangeSpellingToWord message.
10049
10050         (WebKit::WebPageProxy::learnWord):
10051         (WebKit::WebPageProxy::ignoreWord):
10052         Check that we do have a pending learn or ignore word message. Call through to
10053         the text checker.
10054
10055         (WebKit::WebPageProxy::processDidCrash):
10056         Reset the m_pendingLearnOrIgnoreWordMessageCount variable.
10057
10058         * UIProcess/WebPageProxy.h:
10059         * UIProcess/WebPageProxy.messages.in:
10060         Add new messages.
10061
10062         * UIProcess/mac/TextCheckerMac.mm:
10063         (WebKit::TextChecker::learnWord):
10064         (WebKit::TextChecker::ignoreWord):
10065         Implement in terms of NSSpellChecker.
10066
10067         * WebProcess/WebCoreSupport/WebEditorClient.cpp:
10068         (WebKit::WebEditorClient::ignoreWordInSpellDocument):
10069         (WebKit::WebEditorClient::learnWord):
10070         Send IgnoreWord and LearnWord messages.
10071
10072         * WebProcess/WebCoreSupport/mac/WebEditorClientMac.mm:
10073         (WebKit::WebEditorClient::toggleAutomaticQuoteSubstitution):
10074         (WebKit::WebEditorClient::toggleAutomaticLinkDetection):
10075         (WebKit::WebEditorClient::toggleAutomaticDashSubstitution):
10076         (WebKit::WebEditorClient::toggleAutomaticTextReplacement):
10077         Add assertions.
10078
10079         * WebProcess/WebPage/WebPage.cpp:
10080         (WebKit::WebPage::advanceToNextMisspelling):
10081         Pass the bool along to the Editor.
10082
10083         (WebKit::WebPage::changeSpellingToWord):
10084         Replace the selected text.
10085
10086         * WebProcess/WebPage/WebPage.messages.in:
10087         Add new ChangeSpellingToWord message and add a boolean to AdvanceToNextMisspelling.
10088
10089 2011-01-05  Anders Carlsson  <andersca@apple.com>
10090
10091         Reviewed by Dan Bernstein.
10092
10093         Keep track of active text substitution preferences
10094         https://bugs.webkit.org/show_bug.cgi?id=51931
10095
10096         * Shared/TextCheckerState.h:
10097         * UIProcess/API/mac/WKView.mm:
10098         (-[WKView validateUserInterfaceItem:]):
10099         Handle new selectors, mostly copied from WebKit1 code.
10100
10101         (-[WKView orderFrontSubstitutionsPanel:]):
10102         Open the substitution panel.
10103
10104         (-[WKView isAutomaticQuoteSubstitutionEnabled]):
10105         (-[WKView setAutomaticQuoteSubstitutionEnabled:]):
10106         (-[WKView toggleAutomaticQuoteSubstitution:]):
10107         (-[WKView isAutomaticDashSubstitutionEnabled]):
10108         (-[WKView setAutomaticDashSubstitutionEnabled:]):
10109         (-[WKView toggleAutomaticDashSubstitution:]):
10110         (-[WKView isAutomaticLinkDetectionEnabled]):
10111         (-[WKView setAutomaticLinkDetectionEnabled:]):
10112         (-[WKView toggleAutomaticLinkDetection:]):
10113         (-[WKView isAutomaticTextReplacementEnabled]):
10114         (-[WKView setAutomaticTextReplacementEnabled:]):
10115         (-[WKView toggleAutomaticTextReplacement:]):
10116         Call the text checker, and update the state in the web process if needed.
10117
10118         * UIProcess/TextChecker.h:
10119         Add new flags.
10120
10121         * UIProcess/mac/TextCheckerMac.mm:
10122         (WebKit::initializeState):
10123         Initialize flags from user defaults.
10124
10125         (WebKit::TextChecker::setAutomaticQuoteSubstitutionEnabled):
10126         (WebKit::TextChecker::setAutomaticDashSubstitutionEnabled):
10127         (WebKit::TextChecker::setAutomaticLinkDetectionEnabled):
10128         (WebKit::TextChecker::setAutomaticTextReplacementEnabled):
10129         Update and save the flags.
10130
10131         * WebProcess/WebCoreSupport/mac/WebEditorClientMac.mm:
10132         (WebKit::WebEditorClient::isAutomaticQuoteSubstitutionEnabled):
10133         (WebKit::WebEditorClient::isAutomaticLinkDetectionEnabled):
10134         (WebKit::WebEditorClient::isAutomaticDashSubstitutionEnabled):
10135         (WebKit::WebEditorClient::isAutomaticTextReplacementEnabled):
10136         Get the text checker state.
10137
10138 2011-01-05  Dan Bernstein  <mitz@apple.com>
10139
10140         Rubber-stamped by Darin Adler.
10141
10142         Cleaned up com.apple.WebProcess.sb
10143
10144         * WebProcess/com.apple.WebProcess.sb: Moved the closing parentheses of multi-line blocks to
10145         their own lines. Changed to use WebKit-standard 4-space indentation.
10146
10147 2011-01-05  Alexey Proskuryakov  <ap@apple.com>
10148
10149         Reviewed by Sam Weinig.
10150
10151         https://bugs.webkit.org/show_bug.cgi?id=51903
10152         Tell UI process which subframe is largest
10153
10154         * UIProcess/WebPageProxy.h:
10155         (WebKit::WebPageProxy::frameSetLargestFrame):
10156         Remember largest frame in frameset pages.
10157
10158         * UIProcess/WebPageProxy.cpp:
10159         (WebKit::WebPageProxy::frameDidBecomeFrameSet): Reset stored largest frame if main frame
10160         changes to a frameset or back.
10161         (WebKit::WebPageProxy::frameSetLargestFrameChanged): Store a new largest frame when notified
10162         of a change.
10163
10164         * UIProcess/WebPageProxy.messages.in: Added FrameSetLargestFrameChanged.
10165
10166         * WebProcess/WebCoreSupport/WebChromeClient.cpp:
10167         (WebKit::area): Calculate area of a frame.
10168         (WebKit::findLargestFrameInFrameSet): Find largest first-level subframe in a frameset page.
10169         (WebKit::WebChromeClient::contentsSizeChanged): Recalculate largest frame, and notify UI
10170         process if it changed.
10171
10172         * WebProcess/WebCoreSupport/WebChromeClient.h: Store the latest largest frame.
10173
10174         * WebProcess/WebPage/WebFrame.cpp: (WebKit::WebFrame::size):
10175         * WebProcess/WebPage/WebFrame.h:
10176         Expose frame size.
10177
10178 2011-01-04  Benjamin Poulain  <benjamin.poulain@nokia.com>
10179
10180         Reviewed by Kenneth Rohde Christiansen.
10181
10182         [Qt] [WK2] Add support for non-trivial context menu action
10183         https://bugs.webkit.org/show_bug.cgi?id=51902
10184
10185         Implement a call back from the QAction triggered in the UIProcess to the
10186         action in WebProcess.
10187
10188         A few basic actions have been implemented based on this feature.
10189
10190         * UIProcess/API/qt/qwkpage.cpp:
10191         (contextMenuActionForWebAction):
10192         (QWKPage::triggerAction):
10193         (QWKPage::action):
10194         * UIProcess/API/qt/qwkpage.h:
10195         * UIProcess/qt/WebContextMenuProxyQt.cpp:
10196         (WebKit::webActionForContextMenuAction):
10197
10198 2011-01-04  Siddharth Mathur  <siddharth.mathur@nokia.com>
10199
10200         Reviewed by Laszlo Gombos.
10201
10202         Include unistd.h for sleep() for non-Windows builds.
10203
10204         * WebProcess/WebProcess.cpp:
10205         * WebProcess/qt/WebProcessMainQt.cpp:
10206
10207 2011-01-04  Brian Weinstein  <bweinstein@apple.com>
10208
10209         Windows build fix. Change the inline type of consumePermanently.
10210
10211         * Shared/SandboxExtension.h:
10212         (WebKit::SandboxExtension::consumePermanently):
10213
10214 2011-01-04  Anders Carlsson  <andersca@apple.com>
10215
10216         Reviewed by Dan Bernstein.
10217
10218         <rdar://problem/8821203> Sandbox violations trying to access the Safari cache
10219
10220         * Shared/SandboxExtension.h:
10221         (WebKit::SandboxExtension::consumePermanently):
10222         New function which consumes a sandbox extension and destroys it, making it impossible
10223         to later revoke it.
10224
10225         * Shared/WebProcessCreationParameters.cpp:
10226         (WebKit::WebProcessCreationParameters::encode):
10227         (WebKit::WebProcessCreationParameters::decode):
10228         Encode and decode the path extension handle.
10229
10230         * Shared/mac/SandboxExtensionMac.mm:
10231         (WebKit::SandboxExtension::createHandle):
10232         Standardize the path before creating the handle.
10233
10234         * UIProcess/mac/WebContextMac.mm:
10235         (WebKit::WebContext::platformInitializeWebProcess):
10236         Create a sandbox extension for the cache path.
10237
10238         * WebProcess/mac/WebProcessMac.mm:
10239         (WebKit::WebProcess::platformInitializeWebProcess):
10240         Consume the sandbox extension.
10241
10242 2011-01-04  Anders Carlsson  <andersca@apple.com>
10243
10244         Fix build.
10245
10246         * UIProcess/mac/TextCheckerMac.mm:
10247         (WebKit::TextChecker::getGuessesForWord):
10248
10249 2011-01-04  Jeff Miller  <jeffm@apple.com>
10250
10251         Reviewed by Darin Adler.
10252
10253         Mouse events in WebKit2 on Windows need to know whether the click activated the WebView to match WebKit1 behavior.
10254         https://bugs.webkit.org/show_bug.cgi?id=51228
10255
10256         * Shared/WebEvent.h:
10257         (WebKit::WebMouseEvent::didActivateWebView):
10258         Add m_didActivateWebView to WebMouseEvent on Windows.
10259
10260         * Shared/WebEventConversion.cpp:
10261         (WebKit::WebKit2PlatformMouseEvent::WebKit2PlatformMouseEvent):
10262         Propagate whether the click activated the WebView when converting to a PlatformMouseEvent.
10263
10264         * Shared/WebMouseEvent.cpp:
10265         (WebKit::WebMouseEvent::WebMouseEvent):
10266         Add m_didActivateWebView to WebMouseEvent on Windows.
10267
10268         (WebKit::WebMouseEvent::encode):
10269         (WebKit::WebMouseEvent::decode):
10270         Encode and decode new m_didActivateWebView member variable.
10271
10272         * Shared/win/WebEventFactory.cpp:
10273         (WebKit::WebEventFactory::createWebMouseEvent):
10274         * Shared/win/WebEventFactory.h:
10275         Add didActivateWebView parameter to createWebMouseEvent().
10276
10277         * UIProcess/win/WebView.cpp:
10278         (WebKit::WebView::wndProc):
10279         (WebKit::WebView::WebView):
10280         (WebKit::WebView::onMouseEvent):
10281         * UIProcess/win/WebView.h:
10282         (WebKit::WebView::setWasActivatedByMouseEvent):
10283         Keep track of whether the click activated the WebView.
10284
10285 2011-01-04  Ivan Krstić  <ike@apple.com>
10286
10287         Reviewed and landed by Anders Carlsson.
10288
10289         <rdar://problem/8602585>
10290         <rdar://problem/8711641>
10291
10292         * WebProcess/com.apple.WebProcess.sb:
10293         Fix a misplaced right parenthesis and add a new system path regex.
10294
10295 2011-01-04  Anders Carlsson  <andersca@apple.com>
10296
10297         Reviewed by Sam Weinig.
10298
10299         More work on spelling and grammar
10300         https://bugs.webkit.org/show_bug.cgi?id=51910
10301
10302         * Scripts/webkit2/messages.py:
10303         Add special case for WebCore::TextCheckingResult.
10304
10305         * Shared/NotImplemented.h:
10306         Fix macro so that defining DISABLE_NOT_IMPLEMENTED_WARNINGS to 0 will enable the warnings.
10307         
10308         * Shared/WebCoreArgumentCoders.h:
10309         Add argument coders for WebCore::GrammarDetail and WebCore::TextCheckingResult.
10310
10311         * UIProcess/API/mac/WKView.mm:
10312         (-[WKView checkSpelling:]):
10313         Call advanceToNextMisspelling.
10314
10315         * UIProcess/TextChecker.h:
10316         Add new NSSpellChecker wrappers.
10317
10318         * UIProcess/WebPageProxy.cpp:
10319         (WebKit::WebPageProxy::WebPageProxy):
10320         Initialize the new member variables.
10321
10322         (WebKit::WebPageProxy::~WebPageProxy):
10323         Call TextChecker::closeSpellDocumentWithTag.
10324
10325         (WebKit::WebPageProxy::advanceToNextMisspelling):
10326         Send the AdvanceToNextMisspelling message.
10327
10328         (WebKit::WebPageProxy::spellDocumentTag):
10329         Create a spell document tag if necessary.
10330
10331         (WebKit::WebPageProxy::checkTextOfParagraph):
10332         (WebKit::WebPageProxy::updateSpellingUIWithMisspelledWord):
10333         (WebKit::WebPageProxy::getGuessesForWord):
10334         Call the TextChecker.
10335         
10336         * UIProcess/WebPageProxy.messages.in:
10337         Add new messages.
10338
10339         * UIProcess/mac/TextCheckerMac.mm:
10340         (WebKit::TextChecker::uniqueSpellDocumentTag):
10341         (WebKit::TextChecker::closeSpellDocumentWithTag):
10342         (WebKit::TextChecker::checkTextOfParagraph):
10343         (WebKit::TextChecker::updateSpellingUIWithMisspelledWord):
10344         (WebKit::TextChecker::getGuessesForWord):
10345         Add NSSpellChecker wrappers.
10346
10347         * UIProcess/qt/TextCheckerQt.cpp:
10348         * UIProcess/win/TextCheckerWin.cpp:
10349         Add stubs.
10350
10351         * WebProcess/WebCoreSupport/WebEditorClient.cpp:
10352         (WebKit::WebEditorClient::isContinuousSpellCheckingEnabled):
10353         (WebKit::WebEditorClient::isGrammarCheckingEnabled):
10354         Get the text checking state from the web process.
10355
10356         (WebKit::WebEditorClient::updateSpellingUIWithMisspelledWord):
10357         (WebKit::WebEditorClient::getGuessesForWord):
10358         Proxy calls to the UI process.
10359
10360         * WebProcess/WebCoreSupport/mac/WebEditorClientMac.mm:
10361         (WebKit::WebEditorClient::isAutomaticSpellingCorrectionEnabled):
10362         
10363         (WebKit::WebEditorClient::checkTextOfParagraph):
10364         Proxy calls to the UI process.
10365
10366         * WebProcess/WebPage/WebPage.cpp:
10367         (WebKit::WebPage::advanceToNextMisspelling):
10368         Call the frame.
10369
10370         * WebProcess/WebPage/WebPage.messages.in:
10371         Add AdvanceToNextMisspelling message.
10372
10373         * WebProcess/WebProcess.cpp:
10374         (WebKit::WebProcess::initializeWebProcess):
10375         Set the text checker state.
10376
10377 2011-01-04  Chris Fleizach  <cfleizach@apple.com>
10378
10379         Unreviewed. Build fix.
10380
10381         WK2: Support Accessibility
10382         https://bugs.webkit.org/show_bug.cgi?id=51859
10383
10384         * WebProcess/WebPage/mac/AccessibilityWebPageObject.mm:
10385
10386 2011-01-04  Chris Fleizach  <cfleizach@apple.com>
10387
10388         Unreviewed. Build fix.
10389
10390         WK2: Support Accessibility
10391         https://bugs.webkit.org/show_bug.cgi?id=51859
10392
10393         * WebProcess/WebPage/mac/AccessibilityWebPageObject.mm:
10394         (-[AccessibilityWebPageObject accessibilityAttributeValue:]):
10395
10396 2011-01-04  Chris Fleizach  <cfleizach@apple.com>
10397
10398         Reviewed by Sam Weinig.
10399
10400         WK2: Support Accessibility
10401         https://bugs.webkit.org/show_bug.cgi?id=51859
10402
10403         Implement remote accessibility API to support cross process accessibility
10404         on the Mac platform.
10405
10406         * Shared/WebProcessCreationParameters.cpp:
10407         (WebKit::WebProcessCreationParameters::encode):
10408         (WebKit::WebProcessCreationParameters::decode):
10409         * Shared/WebProcessCreationParameters.h:
10410         * UIProcess/API/mac/PageClientImpl.h:
10411         * UIProcess/API/mac/PageClientImpl.mm:
10412         (WebKit::PageClientImpl::accessibilityChildTokenReceived):
10413         * UIProcess/API/mac/WKView.mm:
10414         (-[WKView initWithFrame:contextRef:pageGroupRef:]):
10415         (-[WKView _updateWindowAndViewFrames]):
10416         (-[WKView _setAccessibilityChildToken:]):
10417         (-[WKView accessibilityIsIgnored]):
10418         (-[WKView accessibilityHitTest:]):
10419         (-[WKView accessibilityAttributeValue:]):
10420         * UIProcess/API/mac/WKViewInternal.h:
10421         * UIProcess/PageClient.h:
10422         * UIProcess/WebContext.cpp:
10423         (WebKit::WebContext::ensureWebProcess):
10424         * UIProcess/WebPageProxy.cpp:
10425         (WebKit::WebPageProxy::windowAndViewFramesChanged):
10426         (WebKit::WebPageProxy::didReceiveAccessibilityPageToken):
10427         (WebKit::WebPageProxy::sendAccessibilityPresenterToken):
10428         * UIProcess/WebPageProxy.h:
10429         * UIProcess/WebPageProxy.messages.in:
10430         * WebKit2.xcodeproj/project.pbxproj:
10431         * WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
10432         (WebKit::WebFrameLoaderClient::accessibilityRemoteObject):
10433         * WebProcess/WebCoreSupport/WebFrameLoaderClient.h:
10434         * WebProcess/WebPage/WebPage.cpp:
10435         (WebKit::WebPage::windowAndViewFramesChanged):
10436         * WebProcess/WebPage/WebPage.h:
10437         (WebKit::WebPage::accessibilityPosition):
10438         * WebProcess/WebPage/WebPage.messages.in:
10439         * WebProcess/WebPage/mac/AccessibilityWebPageObject.h: Added.
10440         * WebProcess/WebPage/mac/AccessibilityWebPageObject.mm: Added.
10441         (-[AccessibilityWebPageObject setWebPage:]):
10442         (-[AccessibilityWebPageObject setRemoteParent:]):
10443         (-[AccessibilityWebPageObject dealloc]):
10444         (-[AccessibilityWebPageObject accessibilityIsIgnored]):
10445         (-[AccessibilityWebPageObject accessibilityAttributeNames]):
10446         (-[AccessibilityWebPageObject accessibilityIsAttributeSettable:]):
10447         (-[AccessibilityWebPageObject accessibilitySetValue:forAttribute:]):
10448         (-[AccessibilityWebPageObject accessibilityActionNames]):
10449         (-[AccessibilityWebPageObject accessibilityChildren]):
10450         (-[AccessibilityWebPageObject accessibilityAttributeValue:]):
10451         (-[AccessibilityWebPageObject accessibilityShouldUseUniqueId]):
10452         (-[AccessibilityWebPageObject accessibilityHitTest:]):
10453         (-[AccessibilityWebPageObject accessibilityFocusedUIElement]):
10454         * WebProcess/WebPage/mac/WebPageMac.mm:
10455         (WebKit::WebPage::platformInitialize):
10456         (WebKit::WebPage::sendAccessibilityPresenterToken):
10457         (WebKit::WebPage::accessibilityRemoteObject):
10458         * WebProcess/WebProcess.cpp:
10459         (WebKit::WebProcess::initializeWebProcess):
10460         * WebProcess/WebProcess.h:
10461         (WebKit::WebProcess::presenterApplicationPid):
10462         * WebProcess/mac/WebProcessMainMac.mm:
10463         (WebKit::WebProcessMain):
10464
10465 2011-01-04  Brady Eidson  <beidson@apple.com>
10466
10467         Reviewed by Darin Adler.
10468
10469         Get rid of an extra copy in the back/forward item IPC message by using a DataReference.
10470
10471         * UIProcess/WebBackForwardListItem.cpp:
10472         (WebKit::WebBackForwardListItem::WebBackForwardListItem):
10473         (WebKit::WebBackForwardListItem::setBackForwardData):
10474         * UIProcess/WebBackForwardListItem.h:
10475
10476         * UIProcess/WebPageProxy.cpp:
10477         (WebKit::WebPageProxy::dataCallback): Get rid of no-longer-needed check for size 0.
10478
10479         * UIProcess/WebProcessProxy.cpp:
10480         (WebKit::WebProcessProxy::addBackForwardItem):
10481         * UIProcess/WebProcessProxy.h:
10482
10483         * UIProcess/WebProcessProxy.messages.in:
10484
10485         * WebProcess/WebPage/EncoderAdapter.cpp:
10486         (WebKit::EncoderAdapter::data):
10487         * WebProcess/WebPage/EncoderAdapter.h:
10488
10489         * WebProcess/WebPage/WebBackForwardListProxy.cpp:
10490
10491 2011-01-04  Brady Eidson  <beidson@apple.com>
10492
10493         Reviewed by Darin Adler.
10494
10495         Store more data per history entry in the session state blob.
10496
10497         * UIProcess/WebBackForwardListItem.cpp:
10498         (WebKit::WebBackForwardListItem::WebBackForwardListItem):
10499         * UIProcess/WebBackForwardListItem.h:
10500         (WebKit::WebBackForwardListItem::create):
10501
10502         * UIProcess/WebProcessProxy.cpp:
10503         (WebKit::WebProcessProxy::addBackForwardItem):
10504
10505         * UIProcess/cf/WebBackForwardListCF.cpp:
10506         (WebKit::WebBackForwardList::createCFDictionaryRepresentation):
10507
10508         * UIProcess/cf/WebPageProxyCF.cpp:
10509
10510 2011-01-04  Darin Adler  <darin@apple.com>
10511
10512         Reviewed by Brady Eidson.
10513
10514         Add back/forward encoding and decoding to WebKit2
10515         https://bugs.webkit.org/show_bug.cgi?id=51901
10516
10517         * GNUmakefile.am: Added new source files.
10518         * WebKit2.pro: Ditto.
10519         * WebKit2.xcodeproj/project.pbxproj: Ditto.
10520         * win/WebKit2.vcproj: Ditto.
10521
10522         * WebProcess/WebPage/DecoderAdapter.cpp: Added.
10523         * WebProcess/WebPage/DecoderAdapter.h: Added.
10524         * WebProcess/WebPage/EncoderAdapter.cpp: Added.
10525         * WebProcess/WebPage/EncoderAdapter.h: Added.
10526
10527         * WebProcess/WebPage/WebBackForwardListProxy.cpp:
10528         (WebKit::updateBackForwardItem): Added code to encode the back/forward
10529         tree and send it along. The code to decode needs to wait on Brady's
10530         current project.
10531
10532 2011-01-04  Anders Carlsson  <andersca@apple.com>
10533
10534         Reviewed by Sam Weinig.
10535
10536         <rdar://problem/8766999> WebKit2: Sandboxing causes certificate error on access to any HTTPS URL
10537
10538         Allow read access to /Library/Preferences/com.apple.security.plist.
10539
10540         * WebProcess/com.apple.WebProcess.sb:
10541
10542 2011-01-04  Anders Carlsson  <andersca@apple.com>
10543
10544         Build fixes.
10545
10546         * UIProcess/qt/TextCheckerQt.cpp:
10547         * UIProcess/win/TextCheckerWin.cpp:
10548
10549 2011-01-04  Anders Carlsson  <andersca@apple.com>
10550
10551         Reviewed by Darin Adler.
10552
10553         Don't use macros for the key names.
10554
10555         * UIProcess/mac/TextCheckerMac.mm:
10556
10557 2011-01-04  Anders Carlsson  <andersca@apple.com>
10558
10559         Reviewed by Sam Weinig.
10560
10561         Send over text checker state to the web process
10562         https://bugs.webkit.org/show_bug.cgi?id=51896
10563
10564         * Platform/CoreIPC/Arguments.h:
10565         Remove 'const' from the argument, this matches all the other Arguments classes.
10566
10567         * Shared/TextCheckerState.h: Added.
10568         New class with text checker state.
10569
10570         * Shared/WebProcessCreationParameters.cpp:
10571         (WebKit::WebProcessCreationParameters::encode):
10572         (WebKit::WebProcessCreationParameters::decode):
10573         * Shared/WebProcessCreationParameters.h:
10574         Add textCheckerState.
10575
10576         * UIProcess/API/mac/WKView.mm:
10577         (-[WKView validateUserInterfaceItem:]):        
10578         (-[WKView toggleContinuousSpellChecking:]):
10579         (-[WKView toggleGrammarChecking:]):
10580         (-[WKView toggleAutomaticSpellingCorrection:]):
10581         Get the needed flags from the text checker state.
10582
10583         * UIProcess/TextChecker.h:
10584         Add state() function, remove getters.
10585
10586         * UIProcess/WebContext.cpp:
10587         (WebKit::WebContext::ensureWebProcess):
10588         Initialize the text checker state.
10589
10590         * UIProcess/WebProcessProxy.cpp:
10591         (WebKit::WebProcessProxy::updateTextCheckerState):
10592         Send the SetTextCheckerState message to the web process.
10593
10594         * UIProcess/mac/TextCheckerMac.mm:
10595         (WebKit::initializeState):
10596         Initialize the state from the user defaults.
10597
10598         (WebKit::TextChecker::state):
10599         Return the state.
10600
10601         (WebKit::TextChecker::setContinuousSpellCheckingEnabled):
10602         (WebKit::TextChecker::setGrammarCheckingEnabled):
10603         (WebKit::TextChecker::setAutomaticSpellingCorrectionEnabled):
10604         Make sure to write the new state.
10605         
10606         * UIProcess/qt/TextCheckerQt.cpp:
10607         (WebKit::TextChecker::state):
10608         * UIProcess/win/TextCheckerWin.cpp:
10609         (WebKit::TextChecker::state):
10610         Add stubs.
10611
10612         * WebKit2.xcodeproj/project.pbxproj:
10613         Add TextCheckerState.h.
10614
10615         * WebProcess/WebProcess.cpp:
10616         (WebKit::WebProcess::WebProcess):
10617         Initialize m_textCheckerState.
10618
10619         (WebKit::WebProcess::setTextCheckerState):
10620         Update.
10621
10622         * WebProcess/WebProcess.messages.in:
10623         Add SetTextCheckerState message.
10624
10625         * win/WebKit2.vcproj:
10626         Add TextCheckerState.h.
10627
10628 2011-01-04  Brady Eidson  <beidson@apple.com>
10629
10630         Rubberstamped by Anders Carlsson.
10631
10632         Attach a radar # to this FIXME:
10633         * WebProcess/WebPage/WebBackForwardListProxy.cpp:
10634
10635 2011-01-04  Anders Carlsson  <andersca@apple.com>
10636
10637         Reviewed by John Sullivan.
10638
10639         Add more spelling/grammar related methods
10640         https://bugs.webkit.org/show_bug.cgi?id=51886
10641
10642         * UIProcess/API/mac/WKView.mm:
10643         (-[WKView validateUserInterfaceItem:]):
10644         Handle more selectors.
10645
10646         (-[WKView showGuessPanel:]):
10647         Add stub.
10648
10649         (-[WKView checkSpelling:]):
10650         Ditto.
10651
10652         (-[WKView toggleAutomaticSpellingCorrection:]):
10653         Toggle automatic spelling correction.
10654
10655         * UIProcess/TextChecker.h:
10656         Add setAutomaticSpellingCorrectionEnabled and isAutomaticSpellingCorrectionEnabled.
10657
10658         * UIProcess/mac/TextCheckerMac.mm:
10659         (WebKit::TextChecker::setAutomaticSpellingCorrectionEnabled):
10660         (WebKit::TextChecker::isAutomaticSpellingCorrectionEnabled):
10661         Update the toggle.
10662
10663         * WebProcess/WebCoreSupport/WebPlatformStrategies.cpp:
10664         * WebProcess/WebCoreSupport/mac/WebErrorsMac.mm:
10665         Add a Radar URL for the localization FIXMEs.
10666
10667 2011-01-04  Brent Fulgham  <bfulgham@webkit.org>
10668
10669         Unreviewed build fix.
10670
10671         * win/WebKit2.vcproj: Correct the missing $(WebKitVSPropsRedirectionDir)
10672         variables that Visual Studio helpfully removes when making changes.
10673
10674 2011-01-04  Brent Fulgham  <bfulgham@webkit.org>
10675
10676         Unreviewed build fix.
10677
10678         * win/WebKit2.vcproj: Disable CG-specific WKImageCG.cpp from
10679         Debug_Cairo_CFLite/Release_Cario_CFLite builds.
10680
10681 2011-01-04  Brady Eidson  <beidson@apple.com>
10682
10683         Reviewed by Darin Adler.
10684
10685         https://bugs.webkit.org/show_bug.cgi?id=51856
10686         Pass encoded back/forward tree data from the WebProcess to the UIProcess
10687
10688         Remove the WKBackForwardListItemCopyOriginalURL API as it's not needed:
10689         * UIProcess/API/C/WKBackForwardListItem.cpp:
10690         * UIProcess/API/C/WKBackForwardListItem.h:
10691         * UIProcess/API/qt/qwkhistory.cpp:
10692         * UIProcess/API/qt/qwkhistory.h:
10693         
10694         * UIProcess/WebBackForwardListItem.cpp:
10695         (WebKit::WebBackForwardListItem::WebBackForwardListItem):
10696         * UIProcess/WebBackForwardListItem.h:
10697         (WebKit::WebBackForwardListItem::create):
10698         (WebKit::WebBackForwardListItem::setBackForwardData):
10699         (WebKit::WebBackForwardListItem::backForwardData):
10700         
10701         * UIProcess/WebProcessProxy.cpp:
10702         (WebKit::WebProcessProxy::addBackForwardItem):
10703         * UIProcess/WebProcessProxy.h:
10704         
10705         * UIProcess/WebProcessProxy.messages.in:
10706         
10707         * WebProcess/WebPage/WebBackForwardListProxy.cpp:
10708         (WebKit::updateBackForwardItem):
10709
10710 2011-01-04  Balazs Kelemen  <kbalazs@webkit.org>
10711
10712         Reviewed by Kenneth Rohde Christiansen.
10713
10714         [Qt][WK2] Incomplete clean up on termination
10715         https://bugs.webkit.org/show_bug.cgi?id=51474
10716
10717         Do not kill the web process to force it's termination.
10718         Fix object destruction and cleanup logic and make the cleanup more reliable.
10719         Do not try to cleanup on crash because it is not reliable.
10720
10721         * Platform/CoreIPC/qt/ConnectionQt.cpp:
10722         (CoreIPC::Connection::platformInvalidate): Do not delete the socket if we
10723         do not own it. This is the case with a server connection.
10724         * Platform/qt/MappedMemoryPool.cpp:
10725         Turn MappedMemoryPool into a QObject so the CleanupHandler can destruct it
10726         in the same way as the other objects.
10727         (WebKit::MappedMemoryPool::instance):
10728         (WebKit::MappedMemoryPool::~MappedMemoryPool):
10729         * Platform/qt/MappedMemoryPool.h:
10730         (WebKit::MappedMemoryPool::MappedMemoryPool):
10731         * Platform/qt/SharedMemoryQt.cpp:
10732         (WebKit::SharedMemory::create): No need to care about QCoreApplication::aboutToQuit.
10733         It is handled by the CleanupHandler.
10734         (WebKit::SharedMemory::~SharedMemory): Ditto.
10735         * Shared/qt/CleanupHandler.cpp: Renamed from WebKit2/Shared/qt/CrashHandler.cpp.
10736         No longer try to handle crash but just normal termination.
10737         (WebKit::CleanupHandler::CleanupHandler): Connect deleteObjects with QCoreApplication::aboutToQuit.
10738         Ensure appropriate thread affinity.
10739         (WebKit::CleanupHandler::sigTermHandler): Stop the main event loop.
10740         (WebKit::CleanupHandler::deleteObjects): Use deleteLater instead of delete since it is more reliable.
10741         * Shared/qt/CleanupHandler.h: Renamed from WebKit2/Shared/qt/CrashHandler.h.
10742         (WebKit::CleanupHandler::instance):
10743         (WebKit::CleanupHandler::markForCleanup):
10744         (WebKit::CleanupHandler::unmark):
10745         * UIProcess/Launcher/qt/ProcessLauncherQt.cpp:
10746         Do not kill the web process immidiately but give it a chance to cleanup.
10747         Use QLocalServer::removeServer for assuring that the socket file will be removed.
10748         (WebKit::ProcessLauncherHelper::serverName):
10749         (WebKit::cleanupAtExit): Renamed from cleanupProcesses. Only kill the web process when it times
10750         out terminating. Fixed the bug of changing the list while iterating it over by disconnecting
10751         from the processStateChanged slot.
10752         (WebKit::QtWebProcess::QtWebProcess): Added missing meta type registration of QProcess::ProcessState.
10753         (WebKit::ProcessLauncherHelper::~ProcessLauncherHelper):
10754         (WebKit::ProcessLauncherHelper::ProcessLauncherHelper): No need to add the the instance to the
10755         CleanupHandler because we will remove the socket file in cleanupAtExit.
10756         (WebKit::ProcessLauncherHelper::instance):
10757         (WebKit::ProcessLauncher::terminateProcess):
10758         * WebKit2.pro:
10759
10760 2011-01-04  Benjamin Poulain  <benjamin.poulain@nokia.com>
10761
10762         Reviewed by Kenneth Rohde Christiansen.
10763
10764         [Qt] [WK2] create an initial implementation of the context menu handling for WebKit 2
10765         https://bugs.webkit.org/show_bug.cgi?id=51825
10766
10767         Implement the necessary methods to get a basic context menu working for Qt.
10768
10769         Only 4 basic WebAction have been added on the UIProcess side: back, forward, stop and reload.
10770
10771         * UIProcess/API/qt/qgraphicswkview.cpp:
10772         (QGraphicsWKView::QGraphicsWKView):
10773         (QGraphicsWKView::showContextMenu):
10774         (QGraphicsWKViewPrivate::QGraphicsWKViewPrivate):
10775         * UIProcess/API/qt/qgraphicswkview.h:
10776         * UIProcess/API/qt/qwkpage.cpp:
10777         (QWKPagePrivate::createContextMenuProxy):
10778         * UIProcess/API/qt/qwkpage.h:
10779         * UIProcess/qt/WebContextMenuProxyQt.cpp:
10780         (WebKit::webActionForContextMenuAction):
10781         (WebKit::WebContextMenuProxyQt::WebContextMenuProxyQt):
10782         (WebKit::WebContextMenuProxyQt::create):
10783         (WebKit::WebContextMenuProxyQt::showContextMenu):
10784         (WebKit::WebContextMenuProxyQt::hideContextMenu):
10785         (WebKit::WebContextMenuProxyQt::createContextMenu):
10786         * UIProcess/qt/WebContextMenuProxyQt.h:
10787
10788 2011-01-03  Yi Shen  <yi.4.shen@nokia.com>
10789
10790         Reviewed by Adam Barth.
10791
10792         [Qt] Add SelectAll option to the context menu for the editor
10793         https://bugs.webkit.org/show_bug.cgi?id=50049
10794
10795         Add WebPlatformStrategies::contextMenuItemTagSelectAll for Qt.
10796
10797         * WebProcess/WebCoreSupport/WebPlatformStrategies.cpp:
10798         (WebKit::WebPlatformStrategies::contextMenuItemTagSelectAll):
10799         * WebProcess/WebCoreSupport/WebPlatformStrategies.h:
10800
10801 2011-01-03  Sam Weinig  <sam@webkit.org>
10802
10803         Reviewed by Anders Carlsson.
10804
10805         Ensure that the correct initial focusable area is focused when tabbing
10806         and shift-tabbing into the WKView.
10807
10808         * UIProcess/API/mac/WKView.mm:
10809         (-[WKView becomeFirstResponder]): Use the keyViewSelectionDirection to set
10810         the initial focus.
10811
10812 2011-01-02  Dan Bernstein  <mitz@apple.com>
10813
10814         Rubber-stamped by Simon Fraser.
10815
10816         <rdar://problem/8812159> Update copyright strings
10817
10818         * Info.plist:
10819         * WebProcess/Info.plist:
10820
10821 2011-01-02  Benjamin Poulain  <benjamin.poulain@nokia.com>
10822
10823         Reviewed by Csaba Osztrogonác.
10824
10825         WebKit 2 does not build on 64bits with a recent GCC
10826         https://bugs.webkit.org/show_bug.cgi?id=51754
10827
10828         Change the argument coding for DatabaseDetails to use explicitly the 64 bits type.
10829
10830         * Shared/OriginAndDatabases.h:
10831         * Shared/WebCoreArgumentCoders.h:
10832
10833 2011-01-02  Csaba Osztrogonác  <ossy@webkit.org>
10834
10835         Reviewed by Adam Barth.
10836
10837         Move JavaScriptCore to Source
10838         https://bugs.webkit.org/show_bug.cgi?id=51604
10839
10840         Workaround until moving all sources to Source directory is finished.
10841
10842         * Scripts/generate-forwarding-headers.pl: Add Sources to searching path for JavaScriptCore.
10843
10844 2011-01-01  Adam Barth  <abarth@webkit.org>
10845
10846         Speculative build fix for Qt.  Add some more include paths.
10847
10848         * WebKit2.pro:
10849
10850 2011-01-01  Adam Barth  <abarth@webkit.org>
10851
10852         Reviewed by Eric Seidel.
10853
10854         Move JavaScriptCore to Source
10855         https://bugs.webkit.org/show_bug.cgi?id=51604
10856
10857         * WebKit2.pro:
10858           - Point to JavaScriptCore in its new location.
10859
10860 2010-12-15  Amruth Raj  <amruthraj@motorola.com> and Ravi Kasibhatla  <ravi.kasibhatla@motorola.com>
10861
10862         Reviewed by Martin Robinson.
10863
10864         [GTK] Enable building whatever already exists of WebKit2
10865         https://bugs.webkit.org/show_bug.cgi?id=37369
10866
10867         * GNUmakefile.am: Added. 
10868         * WebKit2Prefix.h: Included WebCore/config.h for GTK port as the first header
10869         file for WebKit2 sources files.
10870         * gtk: Added.
10871         * gtk/webkit2.pc.in: Added.
10872
10873 2010-12-29  Juha Savolainen  <juha.savolainen@weego.fi>
10874
10875         Reviewed by Kenneth Rohde Christiansen.
10876
10877         [Qt] [WK2] Added more webattributes to the qwkpreferences
10878         https://bugs.webkit.org/show_bug.cgi?id=51697
10879
10880         Added PrivateBrowsingEnabled, DeveloperExtrasEnabled, DnsPrefetchEnabled attributes
10881
10882         * UIProcess/API/qt/qwkpreferences.cpp:
10883         (QWKPreferences::testAttribute): 
10884         (QWKPreferences::setAttribute): 
10885         * UIProcess/API/qt/qwkpreferences.h:
10886
10887 2010-12-27  Sam Weinig  <sam@webkit.org>
10888
10889         Reviewed by Anders Carlsson.
10890
10891         WebKit2 snapshots should contain accelerated content
10892         <rdar://problem/8807393>
10893         https://bugs.webkit.org/show_bug.cgi?id=51660
10894
10895         When creating a snapshot, flatten the layer tree for painting so that
10896         accelerated content is included in the snapshot.
10897
10898         * WebProcess/WebPage/WebPage.cpp:
10899         (WebKit::WebPage::snapshotInViewCoordinates):
10900         (WebKit::WebPage::snapshotInDocumentCoordinates):
10901
10902 2010-12-27  Daniel Bates  <dbates@rim.com>
10903
10904         Attempt to fix the WebKit2 Windows build after changeset 74698
10905         <http://trac.webkit.org/changeset/74698> (bug #51656).
10906
10907         Add "..\Shared\API\c\WKImage.h" to WebKit2Generated.make.
10908
10909         * win/WebKit2Generated.make:
10910
10911 2010-12-27  Sam Weinig  <sam@webkit.org>
10912
10913         Reviewed by Anders Carlsson.
10914
10915         WebKit2: Add API for getting snapshots
10916         https://bugs.webkit.org/show_bug.cgi?id=51656
10917
10918         * Shared/API/c/WKBase.h:
10919         * Shared/API/c/WKImage.cpp: Added.
10920         (WKImageGetTypeID):
10921         (WKImageCreate):
10922         (WKImageGetSize):
10923         * Shared/API/c/WKImage.h: Added.
10924         * Shared/WebImage.cpp: Added.
10925         (WebKit::WebImage::create):
10926         (WebKit::WebImage::size):
10927         * Shared/WebImage.h: Added.
10928         (WebKit::WebImage::backingStore):
10929         (WebKit::WebImage::WebImage):
10930         (WebKit::WebImage::type):
10931         Add a general purpose API image class.
10932
10933         * Shared/API/c/cg: Added.
10934         * Shared/API/c/cg/WKImageCG.cpp: Added.
10935         (WKImageCreateCGImage):
10936         * Shared/API/c/cg/WKImageCG.h: Added.
10937         Add function to convert a WKImageRef to a CGImageRef for platforms that use CG.
10938
10939         * Shared/API/c/WKSharedAPICast.h:
10940         (WebKit::toFloatRect):
10941         (WebKit::toIntSize):
10942         (WebKit::toIntPoint):
10943         (WebKit::toIntRect):
10944         (WebKit::toImageOptions):
10945         Make conversion functions that are ambiguous more explicit.
10946
10947         * Shared/APIObject.h:
10948         * Shared/BackingStore.h:
10949         (WebKit::BackingStore::isBackedBySharedMemory):
10950         * Shared/ImageOptions.h: Added.
10951         * Shared/UserMessageCoders.h:
10952         (WebKit::UserMessageEncoder::baseEncode):
10953         (WebKit::UserMessageDecoder::baseDecode):
10954         Allow a WKImageRef to be passed in user messages.  Right now, it only
10955         works if the image is sharable.
10956
10957         * UIProcess/API/C/WKPage.cpp:
10958         (WKPageScaleWebView):
10959         * UIProcess/WebUIClient.cpp:
10960         (WebKit::WebUIClient::windowFrame):
10961         Use the more explicit conversion function name.
10962
10963         * WebProcess/InjectedBundle/API/c/WKBundlePage.cpp:
10964         (WKBundlePageCreateSnapshotInViewCoordinates):
10965         (WKBundlePageCreateSnapshotInDocumentCoordinates):
10966         * WebProcess/InjectedBundle/API/c/WKBundlePage.h:
10967         * WebProcess/InjectedBundle/API/c/WKBundlePageOverlay.cpp:
10968         (WKBundlePageOverlaySetNeedsDisplay):
10969         * WebProcess/WebPage/WebPage.cpp:
10970         (WebKit::WebPage::snapshotInViewCoordinates):
10971         (WebKit::WebPage::snapshotInDocumentCoordinates):
10972         Add function to take the snapshot.
10973
10974         * WebProcess/WebPage/WebPage.h:
10975         * WebKit2.pro:
10976         * WebKit2.xcodeproj/project.pbxproj:
10977         * win/WebKit2.vcproj:
10978         Add new files.
10979
10980 2010-12-27  Sam Weinig  <sam@webkit.org>
10981
10982         Reviewed by Anders Carlsson.
10983
10984         WebKit2: Add additional API for managing databases
10985         https://bugs.webkit.org/show_bug.cgi?id=51629
10986
10987         - Adds client for the database manager to get notifications
10988           of changes to databases.
10989
10990         * UIProcess/API/C/WKDatabaseManager.cpp:
10991         (WKDatabaseManagerSetClient):
10992         * UIProcess/API/C/WKDatabaseManager.h:
10993         * UIProcess/WebDatabaseManagerProxy.cpp:
10994         (WebKit::WebDatabaseManagerProxy::initializeClient):
10995         (WebKit::WebDatabaseManagerProxy::didModifyOrigin):
10996         (WebKit::WebDatabaseManagerProxy::didModifyDatabase):
10997         * UIProcess/WebDatabaseManagerProxy.h:
10998         * UIProcess/WebDatabaseManagerProxy.messages.in:
10999         * UIProcess/WebDatabaseManagerProxyClient.cpp: Added.
11000         (WebKit::WebDatabaseManagerProxyClient::didModifyOrigin):
11001         (WebKit::WebDatabaseManagerProxyClient::didModifyDatabase):
11002         * UIProcess/WebDatabaseManagerProxyClient.h: Added.
11003         * WebKit2.pro:
11004         * WebKit2.xcodeproj/project.pbxproj:
11005         * WebProcess/WebCoreSupport/WebDatabaseManager.cpp:
11006         (WebKit::WebDatabaseManager::WebDatabaseManager):
11007         (WebKit::WebDatabaseManager::~WebDatabaseManager):
11008         (WebKit::WebDatabaseManager::dispatchDidModifyOrigin):
11009         (WebKit::WebDatabaseManager::dispatchDidModifyDatabase):
11010         * WebProcess/WebCoreSupport/WebDatabaseManager.h:
11011         * win/WebKit2.vcproj:
11012
11013 2010-12-27  Sam Weinig  <sam@webkit.org>
11014
11015         Reviewed by Anders Carlsson.
11016
11017         WebKit2: Add additional API for managing databases
11018         https://bugs.webkit.org/show_bug.cgi?id=51629
11019
11020         - Adds WKDatabaseManagerGetDatabasesByOrigin, which asynchronously returns
11021           an array of dictionaries containing details about each origin using 
11022           databases and details about each database. Keys were added for accessing
11023           the data in the dictionaries.
11024         - Adds WKDatabaseManagerDeleteDatabasesWithNameForOrigin to delete a database
11025           with a specific identifier.
11026         - Adds WKDatabaseManagerSetQuotaForOrigin to set the quota for an origin.
11027
11028         * Shared/OriginAndDatabases.cpp: Added.
11029         (WebKit::OriginAndDatabases::encode):
11030         (WebKit::OriginAndDatabases::decode):
11031         * Shared/OriginAndDatabases.h: Added.
11032         * Shared/WebCoreArgumentCoders.h:
11033         * UIProcess/API/C/WKDatabaseManager.cpp:
11034         (WKDatabaseManagerGetOriginKey):
11035         (WKDatabaseManagerGetOriginQuotaKey):
11036         (WKDatabaseManagerGetOriginUsageKey):
11037         (WKDatabaseManagerGetDatabaseDetailsKey):
11038         (WKDatabaseManagerGetDatabaseDetailsNameKey):
11039         (WKDatabaseManagerGetDatabaseDetailsDisplayNameKey):
11040         (WKDatabaseManagerGetDatabaseDetailsExpectedUsageKey):
11041         (WKDatabaseManagerGetDatabaseDetailsCurrentUsageKey):
11042         (WKDatabaseManagerGetDatabasesByOrigin):
11043         (callGetDatabasesByOriginBlockAndDispose):
11044         (WKDatabaseManagerGetDatabasesByOrigin_b):
11045         (WKDatabaseManagerGetDatabaseOrigins):
11046         (callGetDatabaseOriginsBlockBlockAndDispose):
11047         (WKDatabaseManagerGetDatabaseOrigins_b):
11048         (WKDatabaseManagerDeleteDatabasesWithNameForOrigin):
11049         (WKDatabaseManagerDeleteDatabasesForOrigin):
11050         (WKDatabaseManagerDeleteAllDatabases):
11051         (WKDatabaseManagerSetQuotaForOrigin):
11052         * UIProcess/API/C/WKDatabaseManager.h:
11053         * UIProcess/WebDatabaseManagerProxy.cpp:
11054         (WebKit::WebDatabaseManagerProxy::originKey):
11055         (WebKit::WebDatabaseManagerProxy::originQuotaKey):
11056         (WebKit::WebDatabaseManagerProxy::originUsageKey):
11057         (WebKit::WebDatabaseManagerProxy::databaseDetailsKey):
11058         (WebKit::WebDatabaseManagerProxy::databaseDetailsNameKey):
11059         (WebKit::WebDatabaseManagerProxy::databaseDetailsDisplayNameKey):
11060         (WebKit::WebDatabaseManagerProxy::databaseDetailsExpectedUsageKey):
11061         (WebKit::WebDatabaseManagerProxy::databaseDetailsCurrentUsageKey):
11062         (WebKit::WebDatabaseManagerProxy::invalidate):
11063         (WebKit::WebDatabaseManagerProxy::getDatabasesByOrigin):
11064         (WebKit::WebDatabaseManagerProxy::didGetDatabasesByOrigin):
11065         (WebKit::WebDatabaseManagerProxy::getDatabaseOrigins):
11066         (WebKit::WebDatabaseManagerProxy::didGetDatabaseOrigins):
11067         (WebKit::WebDatabaseManagerProxy::deleteDatabaseWithNameForOrigin):
11068         (WebKit::WebDatabaseManagerProxy::deleteDatabasesForOrigin):
11069         (WebKit::WebDatabaseManagerProxy::setQuotaForOrigin):
11070         * UIProcess/WebDatabaseManagerProxy.h:
11071         * UIProcess/WebDatabaseManagerProxy.messages.in:
11072         * WebKit2.pro:
11073         * WebKit2.xcodeproj/project.pbxproj:
11074         * WebProcess/WebCoreSupport/WebDatabaseManager.cpp:
11075         (WebKit::WebDatabaseManager::getDatabasesByOrigin):
11076         (WebKit::WebDatabaseManager::deleteDatabaseWithNameForOrigin):
11077         (WebKit::WebDatabaseManager::setQuotaForOrigin):
11078         * WebProcess/WebCoreSupport/WebDatabaseManager.h:
11079         * WebProcess/WebCoreSupport/WebDatabaseManager.messages.in:
11080         * win/WebKit2.vcproj:
11081
11082 2010-12-26  Anders Carlsson  <andersca@apple.com>
11083
11084         Reviewed by Dan Bernstein.
11085
11086         Rename DrawingAreaMessage and DrawingAreaLegacyMessage and
11087         DrawingAreaProxyMessage to DrawingAreaProxyLegacyMessage.
11088
11089         * Platform/CoreIPC/MessageID.h:
11090         * Shared/CoreIPCSupport/DrawingAreaMessageKinds.h:
11091         * Shared/CoreIPCSupport/DrawingAreaProxyMessageKinds.h:
11092         * UIProcess/ChunkedUpdateDrawingAreaProxy.cpp:
11093         (WebKit::ChunkedUpdateDrawingAreaProxy::paint):
11094         (WebKit::ChunkedUpdateDrawingAreaProxy::setPageIsVisible):
11095         (WebKit::ChunkedUpdateDrawingAreaProxy::update):
11096         (WebKit::ChunkedUpdateDrawingAreaProxy::sendSetSize):
11097         (WebKit::ChunkedUpdateDrawingAreaProxy::didReceiveMessage):
11098         * UIProcess/LayerBackedDrawingAreaProxy.cpp:
11099         (WebKit::LayerBackedDrawingAreaProxy::sizeDidChange):
11100         (WebKit::LayerBackedDrawingAreaProxy::setPageIsVisible):
11101         (WebKit::LayerBackedDrawingAreaProxy::update):
11102         (WebKit::LayerBackedDrawingAreaProxy::didReceiveMessage):
11103         (WebKit::LayerBackedDrawingAreaProxy::didReceiveSyncMessage):
11104         * UIProcess/TiledDrawingAreaProxy.cpp:
11105         (WebKit::TiledDrawingAreaProxy::sizeDidChange):
11106         (WebKit::TiledDrawingAreaProxy::setPageIsVisible):
11107         (WebKit::TiledDrawingAreaProxy::didReceiveMessage):
11108         (WebKit::TiledDrawingAreaProxy::requestTileUpdate):
11109         (WebKit::TiledDrawingAreaProxy::waitUntilUpdatesComplete):
11110         (WebKit::TiledDrawingAreaProxy::takeSnapshot):
11111         (WebKit::TiledDrawingAreaProxy::removeTile):
11112         * UIProcess/WebPageProxy.cpp:
11113         (WebKit::WebPageProxy::didReceiveMessage):
11114         (WebKit::WebPageProxy::didReceiveSyncMessage):
11115         * WebProcess/WebPage/ChunkedUpdateDrawingArea.cpp:
11116         (WebKit::ChunkedUpdateDrawingArea::display):
11117         (WebKit::ChunkedUpdateDrawingArea::setSize):
11118         (WebKit::ChunkedUpdateDrawingArea::didReceiveMessage):
11119         * WebProcess/WebPage/LayerBackedDrawingArea.cpp:
11120         (WebKit::LayerBackedDrawingArea::setSize):
11121         (WebKit::LayerBackedDrawingArea::didReceiveMessage):
11122         * WebProcess/WebPage/TiledDrawingArea.cpp:
11123         (WebKit::TiledDrawingArea::display):
11124         (WebKit::TiledDrawingArea::setSize):
11125         (WebKit::TiledDrawingArea::updateTile):
11126         (WebKit::TiledDrawingArea::tileUpdateTimerFired):
11127         (WebKit::TiledDrawingArea::didReceiveMessage):
11128         * WebProcess/WebPage/WebPage.cpp:
11129         (WebKit::WebPage::didReceiveMessage):
11130         * WebProcess/WebPage/mac/LayerBackedDrawingAreaMac.mm:
11131         (WebKit::LayerBackedDrawingArea::attachCompositingContext):
11132
11133 2010-12-26  Anders Carlsson  <andersca@apple.com>
11134
11135         Reviewed by Sam Weinig.
11136
11137         Drawing area cleanup. Remove a bunch of redundant functions that just ended
11138         up calling setNeedsDisplay.
11139
11140         * UIProcess/DrawingAreaProxy.h:
11141         * WebProcess/WebCoreSupport/WebChromeClient.cpp:
11142         (WebKit::WebChromeClient::invalidateWindow):
11143         (WebKit::WebChromeClient::invalidateContentsAndWindow):
11144         (WebKit::WebChromeClient::invalidateContentsForSlowScroll):
11145         * WebProcess/WebPage/ChunkedUpdateDrawingArea.cpp:
11146         * WebProcess/WebPage/ChunkedUpdateDrawingArea.h:
11147         * WebProcess/WebPage/DrawingArea.h:
11148         * WebProcess/WebPage/LayerBackedDrawingArea.cpp:
11149         * WebProcess/WebPage/LayerBackedDrawingArea.h:
11150         * WebProcess/WebPage/TiledDrawingArea.cpp:
11151         * WebProcess/WebPage/TiledDrawingArea.h:
11152
11153 2010-12-25  Sam Weinig  <sam@webkit.org>
11154
11155         Reviewed by Dan Bernstein.
11156
11157         Fill in some more preferences for WebKit2
11158         https://bugs.webkit.org/show_bug.cgi?id=51610
11159
11160         * Shared/WebPreferencesStore.h:
11161         * UIProcess/API/C/WKPreferences.cpp:
11162         (WKPreferencesSetAuthorAndUserStylesEnabled):
11163         (WKPreferencesGetAuthorAndUserStylesEnabled):
11164         (WKPreferencesSetWebArchiveDebugModeEnabled):
11165         (WKPreferencesGetWebArchiveDebugModeEnabled):
11166         (WKPreferencesSetLocalFileContentSniffingEnabled):
11167         (WKPreferencesGetLocalFileContentSniffingEnabled):
11168         (WKPreferencesSetPageCacheEnabled):
11169         (WKPreferencesGetPageCacheEnabled):
11170         (WKPreferencesSetPaginateDuringLayoutEnabled):
11171         (WKPreferencesGetPaginateDuringLayoutEnabled):
11172         (WKPreferencesSetDOMPasteAllowedEnabled):
11173         (WKPreferencesGetDOMPasteAllowedEnabled):
11174         * UIProcess/API/C/WKPreferences.h:
11175         * UIProcess/API/C/WKPreferencesPrivate.h:
11176         * WebProcess/WebPage/WebPage.cpp:
11177         (WebKit::WebPage::updatePreferences):
11178         Pipe through some more preferences.
11179
11180 2010-12-24  Dan Bernstein  <mitz@apple.com>
11181
11182         Reviewed by Alexey Proskuryakov.
11183
11184         REGRESSION (r74648): XHR layout test failures
11185         https://bugs.webkit.org/show_bug.cgi?id=51603
11186
11187         Reverted r74648.
11188
11189         * UIProcess/WebPageProxy.cpp:
11190         (WebKit::WebPageProxy::didReceiveAuthenticationChallenge):
11191         * WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
11192         (WebKit::WebFrameLoaderClient::shouldUseCredentialStorage):
11193         * WebProcess/mac/WebProcessMainMac.mm:
11194         (WebKit::WebProcessMain):
11195
11196 2010-12-24  Simon Fraser  <simon.fraser@apple.com>
11197
11198         Fix the Qt build after r74650.
11199
11200         * WebProcess/WebCoreSupport/WebPlatformStrategies.cpp:
11201
11202 2010-12-24  Benjamin Poulain  <ikipou@gmail.com>
11203
11204         Reviewed by Darin Adler.
11205
11206         [Qt] [WK2] WebKit 2 does not build on mac, missing reference to RetainPtr
11207         https://bugs.webkit.org/show_bug.cgi?id=51598
11208
11209         Fix the build, add the missing header.
11210
11211         * WebProcess/WebCoreSupport/WebPlatformStrategies.cpp:
11212
11213 2010-12-24  Dan Bernstein  <mitz@apple.com>
11214
11215         Reviewed by Anders Carlsson.
11216
11217         <rdar://problem/8758386> The web process uses its own credential storage
11218         https://bugs.webkit.org/show_bug.cgi?id=51599
11219
11220         * UIProcess/WebPageProxy.cpp:
11221         (WebKit::WebPageProxy::didReceiveAuthenticationChallenge): Try to answer the challenge using
11222         the UI process’s credential storage first.
11223         * WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
11224         (WebKit::WebFrameLoaderClient::shouldUseCredentialStorage): Prevent the web process from using
11225         its own credential storage.
11226         * WebProcess/mac/WebProcessMainMac.mm:
11227         (WebKit::WebProcessMain): Ditto.
11228
11229 2010-12-23  Dan Bernstein  <mitz@apple.com>
11230
11231         Reviewed by Sam Weinig.
11232
11233         Make dragging work again after r74591.
11234
11235         * UIProcess/WebPageProxy.cpp:
11236         (WebKit::WebPageProxy::didReceiveEvent): Fixed a typo.
11237
11238 2010-12-23  Jessie Berlin  <jberlin@apple.com>
11239
11240         Reviewed by Sam Weinig.
11241
11242         Need WebKit2 API to create a SecurityOrigin from protocol, host, and port
11243         https://bugs.webkit.org/show_bug.cgi?id=51563
11244
11245         Add WKSecurityOriginCreate(WKStringRef protocol, WKStringRef host, int port).
11246
11247         * Shared/API/c/WKSecurityOrigin.cpp:
11248         (WKSecurityOriginCreateFromIdentifier):
11249         Renamed so as not to clash with the new WKSecurityOriginCreate.
11250         (WKSecurityOriginCreate):
11251         * Shared/API/c/WKSecurityOrigin.h:
11252         * Shared/WebSecurityOrigin.h:
11253         (WebKit::WebSecurityOrigin::create):
11254
11255 2010-12-23  Anders Carlsson  <andersca@apple.com>
11256
11257         Reviewed by Simon Fraser.
11258
11259         Ensure that we are not getting too many mouse move events
11260         https://bugs.webkit.org/show_bug.cgi?id=51568
11261         <rdar://problem/7881470>
11262         <rdar://problem/8735512>
11263
11264         Implement throttling of mouse move events.
11265
11266         * UIProcess/WebPageProxy.cpp:
11267         (WebKit::WebPageProxy::WebPageProxy):
11268         Initialize m_processingMouseMoveEvent to false.
11269
11270         (WebKit::WebPageProxy::handleMouseEvent):
11271         If we're already processing a mouse move events, just update 
11272         m_nextMouseMoveEvent and return.
11273  
11274         (WebKit::WebPageProxy::didReceiveEvent):
11275         If we received a mouse move event, send the next mouse move event if there is one.
11276
11277 2010-12-23  Brian Weinstein  <bweinstein@apple.com>
11278
11279         Reviewed by Anders Carlsson.
11280
11281         Assertion when loading www.yahoo.com in WebKit2 under decodeResourceRequest
11282         https://bugs.webkit.org/show_bug.cgi?id=51562
11283         
11284         Don't assert that our data reference isn't empty when we try to get the data from it.
11285         If it is empty, just return 0.
11286         
11287         All callers are safe with this function returning 0.
11288
11289         * Platform/CoreIPC/DataReference.h:
11290         (CoreIPC::DataReference::data): Change the assert to an early return.
11291         * Shared/cf/ArgumentCodersCF.cpp:
11292         (CoreIPC::decode): Add an assert, and remove a ternarny operator because the function now does
11293             this for us (if the data is empty, return 0).
11294
11295 2010-12-23  Sam Weinig  <sam@webkit.org>
11296
11297         Fix incorrect assertion causing all pages with subframes to crash.
11298
11299         * UIProcess/WebFrameProxy.cpp:
11300         (WebKit::WebFrameProxy::appendChild):
11301
11302 2010-12-23  Anders Carlsson  <andersca@apple.com>
11303
11304         Reviewed by Darin Adler.
11305
11306         Clean up the selection handling code
11307         https://bugs.webkit.org/show_bug.cgi?id=51550
11308
11309         * Shared/SelectionState.h: Added.
11310         Add SelectionState class which hold information about the current selection.
11311
11312         * UIProcess/API/mac/PageClientImpl.h:
11313         * UIProcess/API/mac/PageClientImpl.mm:
11314         Remove selectionChanged function.
11315
11316         * UIProcess/API/mac/WKView.mm:
11317         (-[WKView initWithFrame:contextRef:pageGroupRef:]):
11318         Remove all the selection related state; it lives in the WebPageProxy object now.
11319         
11320         (-[WKView insertText:]):
11321         (-[WKView selectedRange]):
11322         (-[WKView hasMarkedText]):
11323         Get the selection information from the WebPageProxy.
11324
11325         * UIProcess/API/mac/WKViewInternal.h:
11326         Remove _selectionChanged declaration.
11327
11328         * UIProcess/PageClient.h:
11329         Remove selectionChanged functions.
11330
11331         * UIProcess/WebPageProxy.cpp:
11332         (WebKit::WebPageProxy::selectionStateChanged):
11333         Update the selection state.
11334
11335         * UIProcess/WebPageProxy.h:
11336         (WebKit::WebPageProxy::selectionState):
11337         Return the selection state.
11338
11339         * UIProcess/WebPageProxy.messages.in:
11340         Add SelectionStateChanged message.
11341
11342         * UIProcess/win/WebView.cpp:
11343         (WebKit::WebView::WebView):
11344         Remove all the selection related state; it lives in the WebPageProxy object now.
11345
11346         (WebKit::WebView::compositionSelectionChanged):
11347         (WebKit::WebView::onIMEComposition):
11348         (WebKit::WebView::onIMEEndComposition):
11349         (WebKit::WebView::onIMERequestCharPosition):
11350         (WebKit::WebView::onIMERequest):
11351         Get the selection information from the WebPageProxy.
11352         
11353         * WebKit2.xcodeproj/project.pbxproj:
11354         Add SelectionState.h
11355
11356         * WebProcess/WebCoreSupport/WebEditorClient.cpp:
11357         (WebKit::WebEditorClient::respondToChangedSelection):
11358         Send a SelectionStateChanged message with the updated state.
11359
11360         * WebProcess/WebCoreSupport/mac/WebEditorClientMac.mm:
11361         Remove mac specific code.
11362
11363         * WebProcess/WebPage/WebPage.cpp:
11364         (WebKit::WebPage::getLocationAndLengthFromRange):
11365         Rename this function from convertRangeToPlatformRange and move it out of WebPageMac.mm
11366
11367         * WebProcess/WebPage/mac/WebPageMac.mm:
11368         (WebKit::WebPage::getMarkedRange):
11369         (WebKit::WebPage::characterIndexForPoint):
11370         Call getLocationAndLengthFromRange.
11371
11372         * win/WebKit2.vcproj:
11373         Add SelectionState.h
11374
11375 2010-12-23  Darin Adler  <darin@apple.com>
11376
11377         Reviewed by Sam Weinig.
11378
11379         WKView should not try to do asynchronous validation for selectors that are not editor commands
11380         https://bugs.webkit.org/show_bug.cgi?id=51555
11381
11382         * UIProcess/API/mac/WKView.mm:
11383         (-[WKView validateUserInterfaceItem:]): Removed the special case for startSpeaking.
11384         Added call to commandIsSupportedFromMenuOrKeyBinding so we only try to do validation
11385         for commands that are supported. Tweaked comments and added some bug numbers.
11386         (-[WKView _setUserInterfaceItemState:enabled:state:]): Tweaked comment and added
11387         bug number.
11388
11389 2010-12-23  Sam Weinig  <sam@webkit.org>
11390
11391         Reviewed by Anders Carlsson.
11392
11393         <rdar://problem/8799032>
11394         REGRESSION(r74436) Crash opening many pages with WebKit2
11395
11396         * Shared/cf/ArgumentCodersCF.cpp:
11397         (CoreIPC::decode):
11398         Fix paste-o. Decode into a CFDataRef not a CFDictionaryRef
11399         when decoding CFDataRefs.
11400
11401 2010-12-22  Sam Weinig  <sam@webkit.org>
11402
11403         Reviewed by Darin Adler.
11404
11405         WebKit2 needs to mirror the frame tree in the UIProcess
11406         https://bugs.webkit.org/show_bug.cgi?id=51546
11407
11408         * UIProcess/API/C/WKFrame.cpp:
11409         (WKFrameCopyChildFrames):
11410         * UIProcess/API/C/WKFrame.h:
11411         Add API to get the child frames of a frame.
11412
11413         * UIProcess/WebFrameProxy.cpp:
11414         (WebKit::WebFrameProxy::WebFrameProxy):
11415         (WebKit::WebFrameProxy::disconnect):
11416         (WebKit::WebFrameProxy::appendChild):
11417         (WebKit::WebFrameProxy::removeChild):
11418         (WebKit::WebFrameProxy::isDescendantOf):
11419         (WebKit::WebFrameProxy::dumpFrameTree):
11420         (WebKit::WebFrameProxy::didRemoveFromHierarchy):
11421         (WebKit::WebFrameProxy::childFrames):
11422         * UIProcess/WebFrameProxy.h:
11423         (WebKit::WebFrameProxy::parentFrame): Add getter.
11424         (WebKit::WebFrameProxy::nextSibling): Add getter.
11425         (WebKit::WebFrameProxy::previousSibling): Add getter.
11426         (WebKit::WebFrameProxy::firstChild): Add getter.
11427         (WebKit::WebFrameProxy::lastChild): Add getter.
11428         Make frames keep track of their subframes.
11429
11430         * UIProcess/WebPageProxy.cpp:
11431         (WebKit::WebPageProxy::didCreateSubframe):
11432         Use the now passed parentID to insert the frame into the hierarchy
11433
11434         (WebKit::WebPageProxy::didSaveFrameToPageCache):
11435         When a frame is added to the page cache, remove it from the hierarchy.
11436
11437         (WebKit::WebPageProxy::didRestoreFrameFromPageCache):
11438         When a frame is restored from the page cache, add it back to the hierarchy.
11439
11440         (WebKit::WebPageProxy::didRemoveFrameFromHierarchy):
11441         Detached frames should also be removed from the hierarchy.
11442
11443         * UIProcess/WebPageProxy.h:
11444         Add new declarations for didSaveFrameToPageCache and didRestoreFrameFromPageCache.
11445
11446         * UIProcess/WebPageProxy.messages.in:
11447         Add messages for DidSaveFrameToPageCache and DidRestoreFrameFromPageCache.
11448
11449         * WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
11450         (WebKit::WebFrameLoaderClient::savePlatformDataToCachedFrame): 
11451         (WebKit::WebFrameLoaderClient::transitionToCommittedFromCachedFrame):
11452         Remove notImplemented, there is no work we need to do here.
11453
11454         (WebKit::WebFrameLoaderClient::didSaveToPageCache): 
11455         (WebKit::WebFrameLoaderClient::didRestoreFromPageCache):
11456         Send message to UIProcess to indicate this happened.
11457         * WebProcess/WebCoreSupport/WebFrameLoaderClient.h:
11458
11459         * WebProcess/WebPage/WebFrame.cpp:
11460         (WebKit::WebFrame::createSubframe):
11461         Send parent frameID in addition to our own in the message to UIProcess.
11462
11463 2010-12-23  Anders Carlsson  <andersca@apple.com>
11464
11465         Reviewed by Sam Weinig.
11466
11467         New popup windows open disproportionately big
11468         https://bugs.webkit.org/show_bug.cgi?id=51547
11469         <rdar://problem/8637029>
11470
11471         * UIProcess/WebPageProxy.cpp:
11472         (WebKit::WebPageProxy::createNewPage):
11473         Pass the correct size back to the UI process.
11474
11475         * WebProcess/WebCoreSupport/WebChromeClient.cpp:
11476         (WebKit::WebChromeClient::pageRect):
11477         Implement this and return the size of the page.
11478
11479 2010-12-23  Anders Carlsson  <andersca@apple.com>
11480
11481         Reviewed by John Sullivan.
11482
11483         Nothing happens clicking "launch live player" on live.cnn.com
11484         https://bugs.webkit.org/show_bug.cgi?id=51540
11485         <rdar://problem/8791086>
11486
11487         Implement NPN_PushPopupsEnabledState/NPN_PopPopupsEnabledState.
11488
11489         * WebProcess/Plugins/Netscape/NetscapeBrowserFuncs.cpp:
11490         (WebKit::NPN_PushPopupsEnabledState):
11491         Call NetscapePlugin::pushPopupsEnabledState.
11492
11493         (WebKit::NPN_PopPopupsEnabledState):
11494         Call NetscapePlugin::popPopupsEnabledState.
11495
11496         * WebProcess/Plugins/Netscape/NetscapePlugin.cpp:
11497         (WebKit::NetscapePlugin::pushPopupsEnabledState):
11498         Append the boolean to the vector.
11499
11500         (WebKit::NetscapePlugin::popPopupsEnabledState):
11501         Remove the last boolean from the vector.
11502
11503         (WebKit::NetscapePlugin::allowPopups):
11504         Return the last boolean from the vector.
11505
11506         * WebProcess/Plugins/Netscape/NetscapePlugin.h:
11507         * WebProcess/Plugins/PluginView.cpp:
11508         (WebKit::PluginView::performJavaScriptURLRequest):
11509         Update the "allowPopupsFromPlugin" state.
11510
11511 2010-12-22  Anders Carlsson  <andersca@apple.com>
11512
11513         Reviewed by Sam Weinig.
11514
11515         Webkit2: WebProcess crashes when Private browsing is turned on on yahoo.com
11516         https://bugs.webkit.org/show_bug.cgi?id=51516
11517         <rdar://problem/8766995>
11518
11519         * WebProcess/Plugins/Netscape/NetscapePlugin.cpp:
11520         (WebKit::NetscapePlugin::NPP_SetValue):
11521         Add a null check for NPP_SetValue.
11522
11523 2010-12-22  Anders Carlsson  <andersca@apple.com>
11524
11525         Reviewed by Sam Weinig.
11526
11527         REGRESSION (WK2): Plugins swallow CMD-W, CMD-Q, and probably other shortcuts
11528         https://bugs.webkit.org/show_bug.cgi?id=51515
11529         <rdar://problem/8740926>
11530
11531         Always return false for keyboard events where the command key is down.
11532
11533         * WebProcess/Plugins/Netscape/mac/NetscapePluginMac.mm:
11534         (WebKit::NetscapePlugin::platformHandleKeyboardEvent):
11535
11536 2010-12-22  Sam Weinig  <sam@webkit.org>
11537
11538         Reviewed by Darin Adler.
11539
11540         WebProcess should be terminated if invalid frameIDs are
11541         passed to the UIProcess.
11542         https://bugs.webkit.org/show_bug.cgi?id=51508
11543
11544         - Introduce a mechanism to mark a messages as invalid due to
11545           reasons other than in ability to decode the message, eg. an
11546           invalid frameID is passed in a message.
11547
11548         * Platform/CoreIPC/Connection.cpp:
11549         (CoreIPC::Connection::Connection):
11550         (CoreIPC::Connection::markCurrentlyDispatchedMessageAsInvalid): Sets
11551         the m_didReceiveInvalidMessage bit so that it can be picked up in 
11552         (CoreIPC::Connection::dispatchMessages): Check for m_didReceiveInvalidMessage in
11553         addition to tainted arguments.
11554         * Platform/CoreIPC/Connection.h:
11555         Add base macro for others to extend, that calls markCurrentlyDispatchedMessageAsInvalid()
11556         ASSERTs, and returns.
11557
11558         * UIProcess/WebPageProxy.cpp:
11559         Add Message checks for all WebFrameProxy's gotten from frameIDs passed
11560         over the wire.
11561         * UIProcess/WebProcessProxy.cpp:
11562         (WebKit::isGoodMapKey):
11563         Checks that the key can be inserted safely into a map (eg. not the empty or deleted value).
11564
11565         (WebKit::WebProcessProxy::webFrame):
11566         Return null for bad keys (eg. 0 or -1).
11567
11568         (WebKit::WebProcessProxy::canCreateFrame):
11569         Added. Checks that the ID is good and not in the map yet. Used
11570         as a consistency check before creating frames.
11571
11572         (WebKit::WebProcessProxy::frameCreated): 
11573         ASSERT that the key is good, in addition to not in the map yet.
11574
11575         (WebKit::WebProcessProxy::didDestroyFrame):
11576         ASSERT that the key is good.
11577
11578         * UIProcess/WebProcessProxy.h:
11579         Move WebFrameProxy HashMap type into a typedef.
11580
11581 2010-12-22  Darin Adler  <darin@apple.com>
11582
11583         Reviewed by Anders Carlsson.
11584
11585         WebKit2 needs a way to return the main resource data
11586         https://bugs.webkit.org/show_bug.cgi?id=51510
11587
11588         * UIProcess/API/C/WKFrame.cpp:
11589         (WKFrameGetMainResourceData): Added.
11590         (callGetMainResourceDataBlockAndDispose): Added.
11591         (WKFrameGetMainResourceData_b): Added.
11592         * UIProcess/API/C/WKFrame.h: Added WKFrameGetMainResourceData.
11593
11594         * UIProcess/WebFrameProxy.cpp:
11595         (WebKit::WebFrameProxy::getMainResourceData): Added.
11596         * UIProcess/WebFrameProxy.h: Ditto.
11597
11598         * UIProcess/WebPageProxy.cpp:
11599         (WebKit::WebPageProxy::getMainResourceDataOfFrame): Added.
11600         (WebKit::WebPageProxy::dataCallback): Replaced the individual callbacks
11601         with just these two.
11602         (WebKit::WebPageProxy::stringCallback): Ditto.
11603         * UIProcess/WebPageProxy.h: Ditto.
11604         * UIProcess/WebPageProxy.messages.in: Ditto.
11605
11606         * WebProcess/WebPage/WebPage.cpp:
11607         (WebKit::WebPage::runJavaScriptInMainFrame): Send the string callback
11608         message instead of a specific one.
11609         (WebKit::WebPage::getContentsAsString): Ditto.
11610         (WebKit::WebPage::getRenderTreeExternalRepresentation): Ditto.
11611         (WebKit::WebPage::getSelectionOrContentsAsString): Ditto.
11612         (WebKit::WebPage::getSourceForFrame): Ditto.
11613         (WebKit::WebPage::getMainResourceDataOfFrame): Added.
11614         (WebKit::WebPage::getWebArchiveOfFrame): Send the data callback message
11615         instead of a specific one.
11616         * WebProcess/WebPage/WebPage.h: Added getMainResourceDataOfFrame.
11617         * WebProcess/WebPage/WebPage.messages.in: Ditto.
11618
11619 2010-12-22  Darin Adler  <darin@apple.com>
11620
11621         * WebProcess/WebPage/WebPage.cpp: Add #if to try to fix non-Mac builds.
11622
11623 2010-12-22  Darin Adler  <darin@apple.com>
11624
11625         Reviewed by Anders Carlsson.
11626
11627         Make Speech menu items work in WebKit2
11628         https://bugs.webkit.org/show_bug.cgi?id=51504
11629
11630         * UIProcess/API/C/WKFrame.cpp:
11631         (WKFrameGetWebArchive): Updated to use new-named typedef.
11632         * UIProcess/API/C/WKPage.cpp:
11633         (WKPageRunJavaScriptInMainFrame): Ditto.
11634         (WKPageRenderTreeExternalRepresentation): Ditto.
11635         (WKPageGetSourceForFrame): Ditto.
11636         (WKPageGetContentsAsString): Ditto.
11637
11638         * UIProcess/API/mac/WKView.mm:
11639         (menuItem): Added. Helper function to make it easy to call menu item
11640         functions on arbitrary user interface items.
11641         (toolbarItem): Ditto.
11642         (-[WKView validateUserInterfaceItem:]): Added validation for startSpeaking
11643         and stopSpeaking commands. Reworked the code to fix a bug where
11644         toggleContinuousSpellChecking would always be enabled even when it should
11645         be disabled. Reworked the asynchronous validation code so it works for
11646         items other than menu items and can also handle more than one item for the
11647         same command. Added some comments.
11648         (speakString): Added. Helper function to be used as a callback when we
11649         get the selection or contents to speak.
11650         (-[WKView startSpeaking:]): Added. Uses getSelectionOrContentsAsString.
11651         (-[WKView stopSpeaking:]): Added.
11652         (-[WKView _setUserInterfaceItemState:enabled:state:]): Reworked to work
11653         with the changes to validateUserInterfaceItem above.
11654
11655         * UIProcess/WebFrameProxy.cpp:
11656         (WebKit::WebFrameProxy::isDisplayingMarkupDocument): Added a FIXME about
11657         a problem I noticed.
11658         (WebKit::WebFrameProxy::didCommitLoad): Tweaked argument name.
11659         (WebKit::WebFrameProxy::getWebArchive): Changed to use new-named typedef.
11660         * UIProcess/WebFrameProxy.h: Changed WebArchiveCallback to DataCallaback.
11661
11662         * UIProcess/WebPageProxy.cpp:
11663         (WebKit::WebPageProxy::close): Invalidate the two callback maps since
11664         we only have two now.
11665         (WebKit::WebPageProxy::runJavaScriptInMainFrame): Changed to use merged
11666         maps and typedefs so we don't need a separate callback map for each function.
11667         (WebKit::WebPageProxy::getRenderTreeExternalRepresentation): Ditto.
11668         (WebKit::WebPageProxy::getSourceForFrame): Ditto.
11669         (WebKit::WebPageProxy::getContentsAsString): Ditto.
11670         (WebKit::WebPageProxy::getSelectionOrContentsAsString): Added.
11671         (WebKit::WebPageProxy::getWebArchiveOfFrame): Ditto.
11672         (WebKit::WebPageProxy::didGetContentsAsString): Ditto.
11673         (WebKit::WebPageProxy::didGetSelectionOrContentsAsString): Ditto.
11674         (WebKit::WebPageProxy::didRunJavaScriptInMainFrame): Ditto.
11675         (WebKit::WebPageProxy::didGetRenderTreeExternalRepresentation): Ditto.
11676         (WebKit::WebPageProxy::didGetSourceForFrame): Ditto.
11677         (WebKit::WebPageProxy::didGetWebArchiveOfFrame): Ditto.
11678         (WebKit::WebPageProxy::processDidCrash): Ditto.
11679
11680         * UIProcess/WebPageProxy.h: Updated for changes above.
11681
11682         * UIProcess/WebPageProxy.messages.in: Added DidGetSelectionOrContentsAsString,
11683         GetIsSpeaking, Speak, and StopSpeaking.
11684
11685         * UIProcess/mac/WebPageProxyMac.mm:
11686         (WebKit::WebPageProxy::getIsSpeaking): Added.
11687         (WebKit::WebPageProxy::speak): Added.
11688         (WebKit::WebPageProxy::stopSpeaking): Added.
11689
11690         * WebProcess/WebCoreSupport/mac/WebContextMenuClientMac.mm:
11691         (WebKit::WebContextMenuClient::isSpeaking): Call WebPage instead of doing
11692         the work directly, so it can run in the UI process.
11693         (WebKit::WebContextMenuClient::speak): Ditto.
11694         (WebKit::WebContextMenuClient::stopSpeaking): Ditto.
11695         (WebKit::WebContextMenuClient::searchWithSpotlight): Added FIXME comment and
11696         changed code to avoid a C-style cast.
11697
11698         * WebProcess/WebPage/WebFrame.cpp:
11699         (WebKit::WebFrame::selectionAsString): Added.
11700         * WebProcess/WebPage/WebFrame.h: Ditto.
11701
11702         * WebProcess/WebPage/WebPage.cpp:
11703         (WebKit::WebPage::changeAcceleratedCompositingMode): Use sendSync in the
11704         modern way instead of explicitly calling WebProcess.
11705         (WebKit::WebPage::getSelectionOrContentsAsString): Added.
11706         (WebKit::WebPage::isSpeaking): Added.
11707         (WebKit::WebPage::speak): Added.
11708         (WebKit::WebPage::stopSpeaking): Added.
11709         * WebProcess/WebPage/WebPage.h: Added functions.
11710
11711         * WebProcess/WebPage/WebPage.messages.in: Added GetSelectionOrContentsAsString.
11712
11713 2010-12-22  Anders Carlsson  <andersca@apple.com>
11714
11715         Fix build.
11716
11717         * Platform/mac/MachUtilities.cpp:
11718
11719 2010-12-22  Anders Carlsson  <andersca@apple.com>
11720
11721         Reviewed by Darin Adler.
11722
11723         Detect WebProcess crashes sooner, without waiting for ReportCrash to finish
11724         https://bugs.webkit.org/show_bug.cgi?id=51505
11725
11726         * Platform/CoreIPC/CoreIPCMessageKinds.h:
11727         Add SetExceptionPort.
11728
11729         * Platform/CoreIPC/mac/ConnectionMac.cpp:
11730         (CoreIPC::Connection::platformInvalidate):
11731         If we have an exception port, unregister it.
11732
11733         (CoreIPC::Connection::platformInitialize):
11734         Set m_exceptionPort to null.
11735
11736         (CoreIPC::Connection::open):
11737         If we have an exception port, register an event handler for it and send it over
11738         to the other side.
11739
11740         (CoreIPC::Connection::receiveSourceEventHandler):
11741         Handle the SetExceptionPort message.
11742
11743         (CoreIPC::Connection::exceptionSourceEventHandler):
11744         Receive the message, forward it to the real exception handler and call connectionDidClose.
11745
11746         (CoreIPC::Connection::setShouldCloseConnectionOnMachExceptions):
11747         Create an exception port.
11748
11749         * Platform/mac/MachUtilities.cpp:
11750         (machExceptionPort):
11751         (setMachExceptionPort):
11752         * Platform/mac/MachUtilities.h:
11753         Add helper functions for getting and setting the mach exception port.
11754
11755         * UIProcess/WebProcessProxy.cpp:
11756         (WebKit::WebProcessProxy::didFinishLaunching):
11757         Call setShouldCloseConnectionOnMachExceptions on Mac.
11758
11759 2010-12-22  Anders Carlsson  <andersca@apple.com>
11760
11761         Reviewed by Sam Weinig.
11762
11763         Move Mach message receiving code out into a new function
11764         https://bugs.webkit.org/show_bug.cgi?id=51502
11765
11766         * Platform/CoreIPC/mac/ConnectionMac.cpp:
11767         (CoreIPC::readFromMachPort):
11768         (CoreIPC::Connection::receiveSourceEventHandler):
11769
11770 2010-12-22  Jeff Miller  <jeffm@apple.com>
11771
11772         Reviewed by Sam Weinig.
11773
11774         InjectedBundle methods should  use the relative URL constructor for KURL instead of the ParsedURLStringTag version
11775         https://bugs.webkit.org/show_bug.cgi?id=51491
11776         
11777         The url passed to various InjectedBundle methods is not from KURL::string(), i.e. it has not already been parsed by KURL,
11778         so we have to use the relative URL constructor for KURL instead of the ParsedURLStringTag version.
11779
11780         * WebProcess/InjectedBundle/InjectedBundle.cpp:
11781         (WebKit::InjectedBundle::addUserScript):
11782         (WebKit::InjectedBundle::addUserStyleSheet):
11783         (WebKit::InjectedBundle::removeUserScript):
11784         (WebKit::InjectedBundle::removeUserStyleSheet):
11785
11786 2010-12-22  Darin Adler  <darin@apple.com>
11787
11788         Reviewed by Sam Weinig.
11789
11790         Move more of WebPageProxy::didCommitLoadForFrame into WebFrameProxy::didCommitLoad.
11791
11792         * UIProcess/WebFrameProxy.cpp:
11793         (WebKit::WebFrameProxy::didCommitLoad): Added type and certificate info arguments,
11794         and set m_MIMEType, m_isFrameSet, and m_certificateInfo.
11795         * UIProcess/WebFrameProxy.h: Removed setMIMEType and setCertificateInfo and added
11796         arguments to didCommitLoad.
11797         * UIProcess/WebPageProxy.cpp:
11798         (WebKit::WebPageProxy::didCommitLoadForFrame): Removed code that is now inside the
11799         WebFrameProxy::didCommitLoad function.
11800
11801 2010-12-21  Darin Adler  <darin@apple.com>
11802
11803         Reviewed by Brady Eidson and Sam Weinig.
11804
11805         Add a way to get a web archive in WebKit2
11806         https://bugs.webkit.org/show_bug.cgi?id=51437
11807
11808         * UIProcess/API/C/WKFrame.cpp:
11809         (WKFrameGetWebArchive): Added.
11810         (callGetWebArchiveBlockAndDispose): Added.
11811         (WKFrameGetWebArchive_b): Added.
11812         * UIProcess/API/C/WKFrame.h: Added functions above.
11813         * UIProcess/WebPageProxy.cpp:
11814         (WebKit::WebPageProxy::close): Clear out m_webArchiveCallbacks.
11815         (WebKit::WebPageProxy::getWebArchiveOfFrame): Added.
11816         (WebKit::WebPageProxy::didGetWebArchiveOfFrame): Added.
11817         (WebKit::WebPageProxy::processDidCrash): Clear out m_webArchiveCallbacks.
11818         * UIProcess/WebPageProxy.h: Added functions above.
11819         * UIProcess/WebPageProxy.messages.in: Added DidGetWebArchiveOfFrame.
11820         * WebProcess/WebPage/WebPage.cpp:
11821         (WebKit::WebPage::getWebArchiveOfFrame): Added.
11822         * WebProcess/WebPage/WebPage.h: Added function above.
11823         * WebProcess/WebPage/WebPage.messages.in: Added GetWebArchiveOfFrame.
11824
11825 2010-12-21  Siddharth Mathur  <siddharth.mathur@nokia.com>
11826
11827         Reviewed by Laszlo Gombos.
11828
11829         [Qt] [WK2] Guard gcc-specific syntax
11830
11831         * WebKit2.pro: Non-gcc based compliers choke on the "-include" 
11832         syntax for preinclude, make sure it has guard around it.
11833
11834 2010-12-21  Anders Carlsson  <andersca@apple.com>
11835
11836         Reviewed by Darin Adler.
11837
11838         Can't stop QT music on santastreefarm.com
11839         https://bugs.webkit.org/show_bug.cgi?id=51438
11840         <rdar://problem/8741152>
11841
11842         Implement NPN_ConvertPoint.
11843
11844         * WebProcess/Plugins/Netscape/NetscapeBrowserFuncs.cpp:
11845         (WebKit::NPN_ConvertPoint):
11846         Call NetscapePlugin::convertPoint.
11847
11848         (WebKit::initializeBrowserFuncs):
11849         Only initialize NPN_ConvertPoint and NPN_PopUpContextMenu on Mac.
11850
11851         * WebProcess/Plugins/Netscape/mac/NetscapePluginMac.mm:
11852         (WebKit::NetscapePlugin::convertPoint):
11853         Implement conversion routines.
11854
11855         (WebKit::NetscapePlugin::windowAndViewFramesChanged):
11856         Keep track of the window and view frames, they are needed to do coordinate conversion.
11857
11858 2010-12-21  Sam Weinig  <weinig@apple.com>
11859
11860         Reviewed by Anders Carlsson.
11861
11862         Implement encoding/decoding of ResourceRequest and 
11863         ResourceResponse for Windows/CFNetwork.
11864
11865         * Shared/win/WebCoreArgumentCodersWin.cpp:
11866         (CoreIPC::encodeResourceRequest):
11867         (CoreIPC::decodeResourceRequest):
11868         (CoreIPC::encodeResourceResponse):
11869         (CoreIPC::decodeResourceResponse):
11870         * win/WebKit2.vcproj:
11871         * win/WebKit2Common.vsprops:
11872
11873 2010-12-21  Darin Adler  <darin@apple.com>
11874
11875         Reviewed by Sam Weinig.
11876
11877         Mac WebKit delivers an extra didCommit when loading web archives
11878         https://bugs.webkit.org/show_bug.cgi?id=51419
11879
11880         * UIProcess/WebFrameProxy.cpp:
11881         (WebKit::WebFrameProxy::didStartProvisionalLoad): Added assertions so we catch
11882         inconsistencies here instead of at the application level. Later, we will have
11883         to decide what to do in cases these assertions fail. The right policy is probably
11884         to consider it a web process failure and do whatever we do for those.
11885         (WebKit::WebFrameProxy::didReceiveServerRedirectForProvisionalLoad): Ditto.
11886         (WebKit::WebFrameProxy::didFailProvisionalLoad): Ditto.
11887         (WebKit::WebFrameProxy::didCommitLoad): Ditto.
11888         (WebKit::WebFrameProxy::didFinishLoad): Ditto.
11889         (WebKit::WebFrameProxy::didFailLoad): Ditto.
11890
11891 2010-12-21  Anders Carlsson  <andersca@apple.com>
11892
11893         Fix Snow Leopard build.
11894
11895         * WebProcess/Plugins/Netscape/NetscapeBrowserFuncs.cpp:
11896         (WebKit::NPN_GetValue):
11897
11898 2010-12-21  Anders Carlsson  <andersca@apple.com>
11899
11900         Reviewed by Dan Bernstein.
11901
11902         Fix crash when a Carbon plug-in fails to initialize correctly
11903         https://bugs.webkit.org/show_bug.cgi?id=51415
11904
11905         * WebProcess/Plugins/Netscape/NetscapeBrowserFuncs.cpp:
11906         (WebKit::NPN_GetValue):
11907         Don't claim to support the QuickDraw event model.
11908
11909         * WebProcess/Plugins/Netscape/mac/NetscapePluginMac.mm:
11910         (WebKit::NetscapePlugin::platformDestroy):
11911         Only try to remove the window from the map if it's not null.
11912
11913 2010-12-21  Anders Carlsson  <andersca@apple.com>
11914
11915         Reviewed by Darin Adler.
11916
11917         Add ArgumentCoder support for CFDataRef
11918         https://bugs.webkit.org/show_bug.cgi?id=51412
11919
11920         * Shared/cf/ArgumentCodersCF.cpp:
11921         (CoreIPC::typeFromCFTypeRef):
11922         (CoreIPC::encode):
11923         (CoreIPC::decode):
11924         * Shared/cf/ArgumentCodersCF.h:
11925
11926 2010-12-21  Anders Carlsson  <andersca@apple.com>
11927
11928         Reviewed by John Sullivan.
11929
11930         Clicking missing plug-in text does not show a sheet
11931         https://bugs.webkit.org/show_bug.cgi?id=51403
11932
11933         * UIProcess/API/C/WKPage.h:
11934         Add missingPluginButtonClicked to WKPageUIClient.
11935
11936         * UIProcess/WebPageProxy.cpp:        
11937         (WebKit::WebPageProxy::missingPluginButtonClicked):
11938         Call the WebUIClient member function.
11939
11940         * UIProcess/WebPageProxy.messages.in:
11941         Add MissingPluginButtonClicked message.
11942
11943         * UIProcess/WebUIClient.cpp:
11944         (WebKit::WebUIClient::missingPluginButtonClicked):
11945         Call the WKPageUIClient callback.
11946
11947         * UIProcess/WebUIClient.h:
11948         * WebProcess/WebCoreSupport/WebChromeClient.cpp:
11949         (WebKit::WebChromeClient::shouldMissingPluginMessageBeButton):
11950         Always return true for now.
11951
11952         (WebKit::WebChromeClient::missingPluginButtonClicked):
11953         Send a MissingPluginButtonClicked message.
11954
11955 2010-12-21  Laszlo Gombos  <laszlo.1.gombos@nokia.com>
11956
11957         Reviewed by Andreas Kling.
11958
11959         [Qt] Set BUILDING_QT__ consistently
11960         https://bugs.webkit.org/show_bug.cgi?id=51341
11961
11962         * WebKit2.pro: Remove the definition of BUILDING_QT__ as it
11963         is already defined in WebKit.pri.
11964
11965 2010-12-20  Sam Weinig  <sam@webkit.org>
11966
11967         Reviewed by Anders Carlsson.
11968
11969         WebKit2: Add resource load client API
11970         https://bugs.webkit.org/show_bug.cgi?id=51370
11971
11972         This just pipes through the basic resource load client data.
11973
11974         * UIProcess/API/C/WKPage.cpp:
11975         (WKPageSetPageResourceLoadClient):
11976         * UIProcess/API/C/WKPage.h:
11977         * UIProcess/WebPageProxy.cpp:
11978         (WebKit::WebPageProxy::initializeResourceLoadClient):
11979         (WebKit::WebPageProxy::didInitiateLoadForResource):
11980         (WebKit::WebPageProxy::didSendRequestForResource):
11981         (WebKit::WebPageProxy::didReceiveResponseForResource):
11982         (WebKit::WebPageProxy::didReceiveContentLengthForResource):
11983         (WebKit::WebPageProxy::didFinishLoadForResource):
11984         (WebKit::WebPageProxy::didFailLoadForResource):
11985         * UIProcess/WebPageProxy.h:
11986         * UIProcess/WebPageProxy.messages.in:
11987         * UIProcess/WebResourceLoadClient.cpp: Added.
11988         (WebKit::WebResourceLoadClient::didInitiateLoadForResource):
11989         (WebKit::WebResourceLoadClient::didSendRequestForResource):
11990         (WebKit::WebResourceLoadClient::didReceiveResponseForResource):
11991         (WebKit::WebResourceLoadClient::didReceiveContentLengthForResource):
11992         (WebKit::WebResourceLoadClient::didFinishLoadForResource):
11993         (WebKit::WebResourceLoadClient::didFailLoadForResource):
11994         * UIProcess/WebResourceLoadClient.h: Added.
11995         * WebKit2.pro:
11996         * WebKit2.xcodeproj/project.pbxproj:
11997         * WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
11998         (WebKit::WebFrameLoaderClient::assignIdentifierToInitialRequest):
11999         (WebKit::WebFrameLoaderClient::dispatchWillSendRequest):
12000         (WebKit::WebFrameLoaderClient::dispatchDidReceiveResponse):
12001         (WebKit::WebFrameLoaderClient::dispatchDidReceiveContentLength):
12002         (WebKit::WebFrameLoaderClient::dispatchDidFinishLoading):
12003         (WebKit::WebFrameLoaderClient::dispatchDidFailLoading):
12004         * win/WebKit2.vcproj:
12005
12006 2010-12-20  Anders Carlsson  <andersca@apple.com>
12007
12008         Reviewed by Sam Weinig.
12009
12010         Add a TextChecker class, hook up spelling and grammar toggling
12011         https://bugs.webkit.org/show_bug.cgi?id=51363
12012
12013         * UIProcess/API/mac/WKView.mm:
12014         (-[WKView validateUserInterfaceItem:]):
12015         (-[WKView toggleContinuousSpellChecking:]):
12016         (-[WKView toggleGrammarChecking:]):
12017         * UIProcess/TextChecker.h: Added.
12018         * UIProcess/WebPageProxy.cpp:
12019         (WebKit::WebPageProxy::unmarkAllMisspellings):
12020         (WebKit::WebPageProxy::unmarkAllBadGrammar):
12021         * UIProcess/WebPageProxy.h:
12022         * UIProcess/mac/TextCheckerMac.mm: Added.
12023         (WebKit::TextChecker::isContinuousSpellCheckingAllowed):
12024         (WebKit::TextChecker::isContinuousSpellCheckingEnabled):
12025         (WebKit::TextChecker::setContinuousSpellCheckingEnabled):
12026         (WebKit::TextChecker::isGrammarCheckingEnabled):
12027         (WebKit::TextChecker::setGrammarCheckingEnabled):
12028         * UIProcess/qt/TextCheckerQt.cpp: Added.
12029         (WebKit::TextChecker::isContinuousSpellCheckingAllowed):
12030         (WebKit::TextChecker::isContinuousSpellCheckingEnabled):
12031         (WebKit::TextChecker::setContinuousSpellCheckingEnabled):
12032         (WebKit::TextChecker::isGrammarCheckingEnabled):
12033         (WebKit::TextChecker::setGrammarCheckingEnabled):
12034         * UIProcess/win/TextCheckerWin.cpp: Added.
12035         (WebKit::TextChecker::isContinuousSpellCheckingAllowed):
12036         (WebKit::TextChecker::isContinuousSpellCheckingEnabled):
12037         (WebKit::TextChecker::setContinuousSpellCheckingEnabled):
12038         (WebKit::TextChecker::isGrammarCheckingEnabled):
12039         (WebKit::TextChecker::setGrammarCheckingEnabled):
12040         * WebKit2.pro:
12041         * WebKit2.xcodeproj/project.pbxproj:
12042         * WebProcess/WebPage/WebPage.cpp:
12043         (WebKit::WebPage::unmarkAllMisspellings):
12044         (WebKit::WebPage::unmarkAllBadGrammar):
12045         * WebProcess/WebPage/WebPage.h:
12046         * WebProcess/WebPage/WebPage.messages.in:
12047         * win/WebKit2.vcproj:
12048
12049 2010-12-20  Anders Carlsson  <andersca@apple.com>
12050
12051         Reviewed by Sam Weinig.
12052
12053         Flash plug-in does not work on YouTube video page when accelerated compositing is disabled
12054         https://bugs.webkit.org/show_bug.cgi?id=51348
12055         <rdar://problem/8787667>
12056
12057         * Platform/CoreIPC/HandleMessage.h:
12058         (CoreIPC::callMemberFunction):
12059         Add new overload.
12060
12061         * PluginProcess/PluginControllerProxy.cpp:
12062         (WebKit::PluginControllerProxy::create):
12063         (WebKit::PluginControllerProxy::PluginControllerProxy):
12064         These now take an additional isAcceleratedCompositingEnabled parameter.
12065
12066         (WebKit::PluginControllerProxy::isAcceleratedCompositingEnabled):
12067         Return m_isAcceleratedCompositingEnabled.
12068
12069         * PluginProcess/PluginControllerProxy.h:
12070         * PluginProcess/WebProcessConnection.cpp:
12071         (WebKit::WebProcessConnection::createPlugin):
12072         This now takes an additional isAcceleratedCompositingEnabled parameter.
12073
12074         * PluginProcess/WebProcessConnection.messages.in:
12075         Add isAcceleratedCompositingEnabled parameter to the CreatePlugin message.
12076
12077         * WebProcess/Plugins/PluginProxy.cpp:
12078         (WebKit::PluginProxy::initialize):
12079         Pass isAcceleratedCompositingEnabled when sending the CreatePlugin message.
12080
12081 2010-12-20  Anders Carlsson  <andersca@apple.com>
12082
12083         Unreviewed, rolling out r74345.
12084         http://trac.webkit.org/changeset/74345
12085         https://bugs.webkit.org/show_bug.cgi?id=51115
12086
12087         Not the correct fix.
12088
12089         * Platform/CoreIPC/Connection.h:
12090         * Platform/CoreIPC/qt/ConnectionQt.cpp:
12091         (CoreIPC::Connection::open):
12092
12093 2010-12-20  Balazs Kelemen  <kbalazs@webkit.org>
12094
12095         Reviewed by Kenneth Rohde Christiansen.
12096
12097         [Qt][WK2] Crash in web process after the connection had been closed
12098         https://bugs.webkit.org/show_bug.cgi?id=51115
12099
12100         Do not call connectionDidClose with a connection that has been explicitly
12101         invalidated on the listener thread.
12102         * Platform/CoreIPC/Connection.h:
12103         * Platform/CoreIPC/qt/ConnectionQt.cpp:
12104         (CoreIPC::Connection::disconnectHandler): Added.
12105         (CoreIPC::Connection::open):
12106
12107 2010-12-19  Dan Bernstein  <mitz@apple.com>
12108
12109         Reviewed by Sam Weinig.
12110
12111         Improve the fix for <rdar://problem/8769525>.
12112
12113         * UIProcess/API/mac/WKView.mm:
12114         (-[WKView performKeyEquivalent:]): Do not retain the view. Doing so is necessary in
12115         -[WebHTMLView performKeyEquivalent:], which this method was based upon, but not here, because
12116         there is no way for the web process to cause the WKView to be released while it is handling
12117         the event.
12118
12119 2010-12-19  Dan Bernstein  <mitz@apple.com>
12120
12121         Reviewed by Sam Weinig.
12122
12123         <rdar://problem/8769525> WKView leak when performing key equivalents
12124         https://bugs.webkit.org/show_bug.cgi?id=51315
12125
12126         * UIProcess/API/mac/WKView.mm:
12127         (-[WKView performKeyEquivalent:]): Use a RetainPtr to ensure that the view is released in the
12128         early return code path.
12129
12130 2010-12-19  Benjamin Poulain  <benjamin.poulain@nokia.com>
12131
12132         Reviewed by Kenneth Rohde Christiansen.
12133
12134         [Qt] [WK2] QWKPagePrivate::paint() does not need to save the graphics context
12135         https://bugs.webkit.org/show_bug.cgi?id=51300
12136
12137         Remove the unnecessary save() and restore() on the QPainter.
12138
12139         * UIProcess/API/qt/qwkpage.cpp:
12140         (QWKPagePrivate::paint):
12141
12142 2010-12-19  Kenneth Rohde Christiansen  <kenneth@webkit.org>
12143
12144         Reviewed by Andreas Kling.
12145
12146         [Qt] [WK2] Client are expected to render their own background for WebPages
12147         https://bugs.webkit.org/show_bug.cgi?id=51296
12148
12149         Remove the rendering of the checkerboard from the tiled DrawingAreaProxy
12150
12151         * UIProcess/TiledDrawingAreaProxy.cpp:
12152         (WebKit::TiledDrawingAreaProxy::paint):
12153         * UIProcess/TiledDrawingAreaTile.h:
12154         * UIProcess/qt/TiledDrawingAreaTileQt.cpp:
12155
12156 2010-12-19  Benjamin Poulain  <benjamin.poulain@nokia.com>
12157
12158         Reviewed by Kenneth Rohde Christiansen.
12159
12160         [Qt] [WK2] Client are expected to render their own background for WebPages
12161         https://bugs.webkit.org/show_bug.cgi?id=51296
12162
12163         Do not render a white background before rendering the page with DrawingAreaProxy.
12164
12165         * UIProcess/API/qt/qwkpage.cpp:
12166         (QWKPagePrivate::paint):
12167
12168 2010-12-17  Darin Adler  <darin@apple.com>
12169
12170         Reviewed by Dan Bernstein.
12171
12172         Window title for image documents shows corrupted characters instead of multiplication sign when using WebKit2
12173         https://bugs.webkit.org/show_bug.cgi?id=43505
12174
12175         * WebProcess/WebCoreSupport/WebPlatformStrategies.cpp: Changed UI_STRING macros to return
12176         WebCore::String objects instead of C strings.
12177         (WebKit::formatLocalizedString): Added. Uses the Core Foundation string formatting function for
12178         reasons explained in the comment.
12179         (WebKit::WebPlatformStrategies::multipleFileUploadText): Use formatLocalizedString instead of
12180         String::format.
12181         (WebKit::WebPlatformStrategies::imageTitle): Ditto.
12182         (WebKit::WebPlatformStrategies::localizedMediaTimeDescription): Ditto.
12183
12184 2010-12-17  Anders Carlsson  <andersca@apple.com>
12185
12186         Reviewed by Sam Weinig.
12187
12188         Resizing a WKView while loading a page can leave the page at a size that doesn't match the window
12189         https://bugs.webkit.org/show_bug.cgi?id=51282
12190         <rdar://problem/8133142>
12191
12192         Fix a race condition in waitForMessage. If we time out on the wait condition, we would keep the
12193         m_waitForMessageMutex mutex unlocked for a brief period of time before taking the lock again and
12194         then removing the messageID/destinationID pair from the hash map. Under some circumstances, the
12195         connection queue would update the hash map right before we removed it, leading to a lost message.
12196         
12197         * Platform/CoreIPC/Connection.cpp:
12198         (CoreIPC::Connection::waitForMessage):
12199
12200 2010-12-17  Anders Carlsson  <andersca@apple.com>
12201
12202         Reviewed by Simon Fraser.
12203
12204         Clean up ChunkedUpdateDrawingAreaProxy
12205         https://bugs.webkit.org/show_bug.cgi?id=51277
12206
12207         Get rid of m_lastSetViewSize since it was always equal to m_size.
12208
12209         * UIProcess/ChunkedUpdateDrawingAreaProxy.cpp:
12210         (WebKit::ChunkedUpdateDrawingAreaProxy::sizeDidChange):
12211         Call sendSetSize().
12212
12213         (WebKit::ChunkedUpdateDrawingAreaProxy::didSetSize):
12214         Call sendSetSize if the size differs.
12215
12216         (WebKit::ChunkedUpdateDrawingAreaProxy::sendSetSize):
12217         Move code from sizeDidChange over here.
12218
12219         * UIProcess/ChunkedUpdateDrawingAreaProxy.h:
12220         * UIProcess/DrawingAreaProxy.cpp:
12221         (WebKit::DrawingAreaProxy::setSize):
12222         Add back the early return if the sizes are equal.
12223
12224 2010-12-17  Brent Fulgham  <bfulgham@webkit.org>
12225
12226         Unreviewed build fix.
12227
12228         * WebProcess/WebPage/win/WebPageWin.cpp:
12229         (WebKit::WebPage::canHandleRequest): Provide alternative for
12230         non-CFNetwork implementation.
12231
12232 2010-12-17  Ada Chan  <adachan@apple.com>
12233
12234         Reviewed by Anders Carlsson.
12235
12236         Implement WKView::setInitialFocus().
12237         https://bugs.webkit.org/show_bug.cgi?id=51274
12238
12239         * UIProcess/API/C/win/WKView.cpp:
12240         (WKViewSetInitialFocus):
12241         * UIProcess/API/C/win/WKView.h:
12242         * UIProcess/WebPageProxy.cpp:
12243         (WebKit::WebPageProxy::setInitialFocus): Send message to the Web Process to set
12244         initial focus.
12245         * UIProcess/WebPageProxy.h:
12246         * UIProcess/win/WebView.cpp:
12247         (WebKit::WebView::setInitialFocus):
12248         * UIProcess/win/WebView.h:
12249         * WebProcess/WebPage/WebPage.cpp:
12250         (WebKit::WebPage::setInitialFocus): Set the focused node to null initially.  Then
12251         ask FocusController to set the initial focus based on the focus direction.
12252         * WebProcess/WebPage/WebPage.h:
12253         * WebProcess/WebPage/WebPage.messages.in: Add a new message for SetInitialFocus.
12254
12255 2010-12-17  Anders Carlsson  <andersca@apple.com>
12256
12257         Reviewed by Sam Weinig.
12258
12259         Remove a check that probably uncovered a resizing bug.
12260
12261         * UIProcess/DrawingAreaProxy.cpp:
12262         (WebKit::DrawingAreaProxy::setSize):
12263
12264 2010-12-17  Brian Weinstein  <bweinstein@apple.com>
12265
12266         Qt build fix.
12267
12268         * UIProcess/qt/WebPopupMenuProxyQt.h:
12269
12270 2010-12-17  Brian Weinstein  <bweinstein@apple.com>
12271
12272         Reviewed by Anders Carlsson.
12273
12274         Text area does not update when you arrow through a <select> in WebKit2
12275         https://bugs.webkit.org/show_bug.cgi?id=51269
12276         <rdar://problem/8612853>
12277         
12278         Patch by Sam Weinig.
12279         
12280         Insteaed of keeping track of the selected index of a <select> just in the UI process, we
12281         need to pass this information along to the web process so that the web process can draw
12282         the correct text in the text field at the top of the select, when the selection changes (via
12283         the arrows or other typing while the select is opened).
12284         
12285         When the selected item in a popup changes, the UI process sends a message to the web process, telling
12286         it about the new selected index. The web process gets this message, and then sets the text that
12287         is visible in the select element.
12288
12289         * UIProcess/API/mac/PageClientImpl.h: CreatePopupMenuProxy now takes a WebPageProxy.
12290         * UIProcess/API/mac/PageClientImpl.mm:
12291         (WebKit::PageClientImpl::createPopupMenuProxy): Pass the WebPageProxy to create.
12292         * UIProcess/API/qt/qwkpage.cpp:
12293         (QWKPagePrivate::createPopupMenuProxy):
12294         * UIProcess/API/qt/qwkpage_p.h: CreatePopupMenuProxy now takes a WebPageProxy.
12295         * UIProcess/PageClient.h: CreatePopupMenuProxy now takes a WebPageProxy.
12296         * UIProcess/WebPageProxy.cpp:
12297         (WebKit::WebPageProxy::valueChangedForPopupMenu): Send that the selected index changed to the 
12298             web process.selected
12299         (WebKit::WebPageProxy::setTextFromItemForPopupMenu): Send that we should update the text for the
12300             active popup menu (with the index of the item to show).
12301         (WebKit::WebPageProxy::showPopupMenu): Pass the WebPageProxy to createPopupMenuProxy.
12302         * UIProcess/WebPageProxy.h:
12303         * UIProcess/WebPopupMenuProxy.h: Add a client who has virtual functions for the state changing of the
12304             popup menu. ShowPopupMenu doesn't take a new selected index anymore, that is handled by the client,
12305             and calling down to the web process.
12306         (WebKit::WebPopupMenuProxy::Client::~Client):
12307         (WebKit::WebPopupMenuProxy::WebPopupMenuProxy): Initialize the client.
12308         * UIProcess/mac/WebPopupMenuProxyMac.h:
12309         (WebKit::WebPopupMenuProxyMac::create): Takes a WebPopupMenuProxy::Client, and passes it to the constructor.
12310         * UIProcess/mac/WebPopupMenuProxyMac.mm:
12311         (WebKit::WebPopupMenuProxyMac::WebPopupMenuProxyMac): Update what's initialized by the constructor.
12312         (WebKit::WebPopupMenuProxyMac::showPopupMenu): Call through to the web process that the value changed.
12313         * UIProcess/qt/WebPopupMenuProxyQt.cpp:
12314         (WebKit::WebPopupMenuProxyQt::WebPopupMenuProxyQt): Update what's initialized by the constructor.
12315         * UIProcess/win/WebPopupMenuProxyWin.cpp:
12316         (WebKit::WebPopupMenuProxyWin::WebPopupMenuProxyWin): Ditto.
12317         (WebKit::WebPopupMenuProxyWin::showPopupMenu): Call through to the web process that the value changed.
12318         (WebKit::WebPopupMenuProxyWin::setFocusedIndex): Resolve a FIXME to set the text of the popup menu.
12319         * UIProcess/win/WebPopupMenuProxyWin.h:
12320         (WebKit::WebPopupMenuProxyWin::create): Take in a WebPopupMenuProxy::client, and pass it to the constructor.
12321         * UIProcess/win/WebView.cpp:
12322         (WebKit::WebView::createPopupMenuProxy): Pass the WebPageProxy to create.
12323         * UIProcess/win/WebView.h:
12324         * WebProcess/WebCoreSupport/WebPopupMenu.cpp:
12325         (WebKit::WebPopupMenu::setTextForIndex): Call through to setTextFromItem to set the select text.
12326         * WebProcess/WebCoreSupport/WebPopupMenu.h:
12327         * WebProcess/WebPage/WebPage.cpp: Call through to setTextForIndex on the active popup menu.
12328         (WebKit::WebPage::setTextForActivePopupMenu):
12329         * WebProcess/WebPage/WebPage.h:
12330         * WebProcess/WebPage/WebPage.messages.in: Add a new message.
12331
12332 2010-12-17  Anders Carlsson  <andersca@apple.com>
12333
12334         Reviewed by Sam Weinig.
12335
12336         DrawingAreaProxy::setSize shouldn't be a virtual member function
12337         https://bugs.webkit.org/show_bug.cgi?id=51275
12338
12339         Add a pure virtual sizeDidChange member function to DrawingAreaProxy, and only
12340         call it if the size changes.
12341
12342         * UIProcess/ChunkedUpdateDrawingAreaProxy.cpp:
12343         (WebKit::ChunkedUpdateDrawingAreaProxy::sizeDidChange):
12344         * UIProcess/ChunkedUpdateDrawingAreaProxy.h:
12345         * UIProcess/DrawingAreaProxy.cpp:
12346         (WebKit::DrawingAreaProxy::setSize):
12347         * UIProcess/DrawingAreaProxy.h:
12348         (WebKit::DrawingAreaProxy::size):
12349         * UIProcess/LayerBackedDrawingAreaProxy.cpp:
12350         (WebKit::LayerBackedDrawingAreaProxy::sizeDidChange):
12351         * UIProcess/LayerBackedDrawingAreaProxy.h:
12352         * UIProcess/TiledDrawingAreaProxy.cpp:
12353         (WebKit::TiledDrawingAreaProxy::sizeDidChange):
12354         * UIProcess/TiledDrawingAreaProxy.h:
12355
12356 2010-12-17  Anders Carlsson  <andersca@apple.com>
12357
12358         Reviewed by Sam Weinig.
12359
12360         Add a WebPageProxy parameter to the DrawingAreaProxy constructor
12361         https://bugs.webkit.org/show_bug.cgi?id=51271
12362
12363         * UIProcess/API/mac/WKView.mm:
12364         (-[WKView initWithFrame:contextRef:pageGroupRef:]):
12365         (-[WKView _switchToDrawingAreaTypeIfNecessary:DrawingAreaInfo::]):
12366         * UIProcess/API/qt/qgraphicswkview.cpp:
12367         (QGraphicsWKView::QGraphicsWKView):
12368         * UIProcess/ChunkedUpdateDrawingAreaProxy.cpp:
12369         (WebKit::ChunkedUpdateDrawingAreaProxy::create):
12370         (WebKit::ChunkedUpdateDrawingAreaProxy::ChunkedUpdateDrawingAreaProxy):
12371         * UIProcess/ChunkedUpdateDrawingAreaProxy.h:
12372         * UIProcess/DrawingAreaProxy.cpp:
12373         (WebKit::DrawingAreaProxy::DrawingAreaProxy):
12374         * UIProcess/DrawingAreaProxy.h:
12375         * UIProcess/LayerBackedDrawingAreaProxy.cpp:
12376         (WebKit::LayerBackedDrawingAreaProxy::create):
12377         (WebKit::LayerBackedDrawingAreaProxy::LayerBackedDrawingAreaProxy):
12378         * UIProcess/LayerBackedDrawingAreaProxy.h:
12379         * UIProcess/TiledDrawingAreaProxy.cpp:
12380         (WebKit::TiledDrawingAreaProxy::create):
12381         (WebKit::TiledDrawingAreaProxy::TiledDrawingAreaProxy):
12382         * UIProcess/TiledDrawingAreaProxy.h:
12383         * UIProcess/win/WebView.cpp:
12384         (WebKit::WebView::WebView):
12385         (WebKit::WebView::switchToDrawingAreaTypeIfNecessary):
12386
12387 2010-12-17  Dan Bernstein  <mitz@apple.com>
12388
12389         Reviewed by Darin Adler.
12390
12391         Add API for "Always Use the Complex Text Code Path"
12392         https://bugs.webkit.org/show_bug.cgi?id=51265
12393
12394         * Shared/WebProcessCreationParameters.cpp:
12395         (WebKit::WebProcessCreationParameters::WebProcessCreationParameters): Initialize shouldAlwaysUseComplexTextCodePath.
12396         (WebKit::WebProcessCreationParameters::encode): Encode shouldAlwaysUseComplexTextCodePath.
12397         (WebKit::WebProcessCreationParameters::decode): Decode shouldAlwaysUseComplexTextCodePath.
12398         * Shared/WebProcessCreationParameters.h:
12399         * UIProcess/API/C/WKContext.cpp: 
12400         (_WKContextSetAlwaysUsesComplexTextCodePath): Added.
12401         * UIProcess/API/C/WKContextPrivate.h:
12402         * UIProcess/WebContext.cpp:
12403         (WebKit::WebContext::WebContext): Initialize m_alwaysUsesComplexTextCodePath.
12404         (WebKit::WebContext::ensureWebProcess): Set shouldAlwaysUseComplexTextCodePath in the creation parameters.
12405         (WebKit::WebContext::setAlwaysUsesComplexTextCodePath): Added. Sets m_alwaysUsesComplexTextCodePath and
12406         sends a message to the WebProcess.
12407         * UIProcess/WebContext.h:
12408         * WebProcess/WebProcess.cpp:
12409         (WebKit::WebProcess::initializeWebProcess): Call setAlwaysUsesComplexTextCodePath() based on the creation
12410         parameters.
12411         (WebKit::WebProcess::setAlwaysUsesComplexTextCodePath): Added.
12412         * WebProcess/WebProcess.h:
12413         * WebProcess/WebProcess.messages.in: Added SetAlwaysUsesComplexTextCodePath.
12414
12415 2010-12-17  Sam Weinig  <sam@webkit.org>
12416
12417         Reviewed by Darin Adler.
12418
12419         WebKit2: Implement a title attribute per frame
12420         https://bugs.webkit.org/show_bug.cgi?id=51266
12421
12422         Cache the title of each frame on the WebFrameProxy. Removes
12423         the WebPageProxy's cache of the main frame title to just
12424         access the main frame.
12425
12426         We clear the cached title on new committed loads and on failures
12427         to load.
12428
12429         * UIProcess/API/C/WKFrame.cpp:
12430         (WKFrameCopyTitle):
12431         * UIProcess/API/C/WKFrame.h:
12432         * UIProcess/WebFrameProxy.cpp:
12433         (WebKit::WebFrameProxy::didCommitLoad):
12434         (WebKit::WebFrameProxy::didFailLoad):
12435         (WebKit::WebFrameProxy::didChangeTitle):
12436         * UIProcess/WebFrameProxy.h:
12437         (WebKit::WebFrameProxy::title):
12438         * UIProcess/WebPageProxy.cpp:
12439         (WebKit::WebPageProxy::close):
12440         (WebKit::WebPageProxy::pageTitle):
12441         (WebKit::WebPageProxy::didReceiveTitleForFrame):
12442         (WebKit::WebPageProxy::processDidCrash):
12443         * UIProcess/WebPageProxy.h:
12444
12445 2010-12-16  Darin Adler  <darin@apple.com>
12446
12447         Reviewed by Maciej Stachowiak.
12448
12449         Add text encoding menu API for WebKit2
12450         https://bugs.webkit.org/show_bug.cgi?id=51226
12451
12452         * UIProcess/API/C/WKPage.cpp:
12453         (WKPageSupportsTextEncoding): Added.
12454         (WKPageCopyCustomTextEncodingName): Added.
12455         (WKPageSetCustomTextEncodingName): Added.
12456         * UIProcess/API/C/WKPage.h: Added the functions above.
12457
12458         * UIProcess/WebPageProxy.cpp:
12459         (WebKit::WebPageProxy::WebPageProxy): Initialize
12460         m_mainFrameHasCustomRepresentation to false.
12461         (WebKit::WebPageProxy::supportsTextEncoding): Added.
12462         (WebKit::WebPageProxy::setCustomTextEncodingName): Added.
12463         (WebKit::WebPageProxy::didCommitLoadForFrame): Set
12464         m_mainFrameHasCustomRepresentation.
12465
12466         * UIProcess/WebPageProxy.h: Added supportsTextEncoding,
12467         setCustomTextEncodingName, customTextEncodingName, and
12468         m_mainFrameHasCustomRepresentation.
12469
12470         * UIProcess/WebPageProxy.messages.in: Tweaked formatting
12471         (added a blank line).
12472
12473         * WebProcess/WebPage/WebPage.cpp:
12474         (WebKit::WebPage::setCustomTextEncodingName): Added.
12475         * WebProcess/WebPage/WebPage.h: Added setCustomTextEncodingName.
12476
12477         * WebProcess/WebPage/WebPage.messages.in: Added the
12478         SetCustomTextEncodingName message. Tweaked formatting of the
12479         dummy message.
12480
12481 2010-12-17  Sheriff Bot  <webkit.review.bot@gmail.com>
12482
12483         Unreviewed, rolling out r74201.
12484         http://trac.webkit.org/changeset/74201
12485         https://bugs.webkit.org/show_bug.cgi?id=51248
12486
12487         It broke ~6000 layout tests (Requested by Ossy_ on #webkit).
12488
12489         * UIProcess/API/qt/qgraphicswkview.cpp:
12490         (QGraphicsWKView::setGeometry):
12491         (QGraphicsWKView::itemChange):
12492
12493 2010-12-16  Sam Weinig  <sam@webkit.org>
12494
12495         Reviewed by Darin Adler.
12496
12497         Add svn:eol-style native to the message.in files as a favor to Darin Adler.
12498
12499         * PluginProcess/PluginControllerProxy.messages.in: Added property svn:eol-style.
12500         * PluginProcess/PluginProcess.messages.in: Added property svn:eol-style.
12501         * PluginProcess/WebProcessConnection.messages.in: Added property svn:eol-style.
12502         * Shared/Plugins/NPObjectMessageReceiver.messages.in: Added property svn:eol-style.
12503         * UIProcess/Downloads/DownloadProxy.messages.in: Added property svn:eol-style.
12504         * UIProcess/Plugins/PluginProcessProxy.messages.in: Added property svn:eol-style.
12505         * UIProcess/WebContext.messages.in: Added property svn:eol-style.
12506         * UIProcess/WebDatabaseManagerProxy.messages.in: Added property svn:eol-style.
12507         * UIProcess/WebInspectorProxy.messages.in: Added property svn:eol-style.
12508         * UIProcess/WebPageProxy.messages.in: Added property svn:eol-style.
12509         * UIProcess/WebProcessProxy.messages.in: Added property svn:eol-style.
12510         * WebProcess/Authentication/AuthenticationManager.messages.in: Added property svn:eol-style.
12511         * WebProcess/Plugins/PluginProxy.messages.in: Added property svn:eol-style.
12512         * WebProcess/WebCoreSupport/WebDatabaseManager.messages.in: Added property svn:eol-style.
12513         * WebProcess/WebPage/WebInspector.messages.in: Added property svn:eol-style.
12514         * WebProcess/WebPage/WebPage.messages.in: Added property svn:eol-style.
12515         * WebProcess/WebProcess.messages.in: Added property svn:eol-style.
12516
12517 2010-12-16  Sam Weinig  <sam@webkit.org>
12518
12519         Reviewed by Anders Carlsson.
12520
12521         Move NSURLCache initialization from the ProcessLauncherMac to the centralized
12522         WebContext initialize WebProcess mechanism.
12523
12524         * Shared/WebProcessCreationParameters.cpp:
12525         (WebKit::WebProcessCreationParameters::WebProcessCreationParameters):
12526         (WebKit::WebProcessCreationParameters::encode):
12527         (WebKit::WebProcessCreationParameters::decode):
12528         * Shared/WebProcessCreationParameters.h:
12529         * UIProcess/Launcher/mac/ProcessLauncherMac.mm:
12530         (WebKit::ProcessLauncher::launchProcess):
12531         * UIProcess/mac/WebContextMac.mm:
12532         (WebKit::WebContext::platformInitializeWebProcess):
12533         * WebProcess/WebProcess.cpp:
12534         (WebKit::WebProcess::initializeWebProcess):
12535         * WebProcess/mac/WebProcessMac.mm:
12536         (WebKit::WebProcess::platformInitializeWebProcess):
12537         * WebProcess/mac/WebProcessMainMac.mm:
12538         (WebKit::WebProcessMain):
12539         * WebProcess/win/WebProcessWin.cpp:
12540         (WebKit::WebProcess::platformInitializeWebProcess):
12541         (WebKit::WebProcess::setShouldPaintNativeControls):
12542
12543 2010-12-16  Anders Carlsson  <andersca@apple.com>
12544
12545         Reviewed by Dan Bernstein.
12546
12547         Defer getting a PluginProcessConnection object until the plug-in is initialized
12548         https://bugs.webkit.org/show_bug.cgi?id=51207
12549         <rdar://problem/8731306>
12550
12551         Before this change, we would pass the PluginProcessConnection to the PluginProxy constructor, but not
12552         call PluginProcessConnection::addPluginProxy (which associates the plug-in proxy with the connection)
12553         until the plug-in is initialized.
12554
12555         This could lead to a PluginProxy holding a reference to a PluginProcessConnection when the PluginProxyConnection
12556         itself did not know anything about the PluginProxy. This would happen when a page with plug-ins is opened in a background
12557         tab, with the plug-ins not yet initialized.
12558
12559         Because of this, we could end up in a weird state, where the PluginProcessConnection would think that there are no
12560         more plug-ins alive, and invalidate (and null out) the underlying CoreIPC connection, which would lead to crashes
12561         when trying to send messages to the connection during later initialization.
12562
12563         The fix is to pass the plug-in path to the PluginProxy constructor, and get the connection from PluginProxy::initialize.
12564         
12565         PluginProcessConnection object 
12566         * WebProcess/Plugins/PluginProxy.cpp:
12567         (WebKit::PluginProxy::create):
12568         (WebKit::PluginProxy::PluginProxy):
12569         (WebKit::PluginProxy::initialize):
12570         * WebProcess/Plugins/PluginProxy.h:
12571         * WebProcess/WebPage/WebPage.cpp:
12572         (WebKit::WebPage::createPlugin):
12573
12574 2010-12-16  Enrica Casucci  <enrica@apple.com>
12575
12576         Reviewed by Maciej Stachowiak.
12577
12578         WebKit2: Cannot copy two successive selections using cmd-c
12579         <rdar://problem/8680309> 
12580         https://bugs.webkit.org/show_bug.cgi?id=51203
12581         
12582         The previous implementation assumed a call sequence from AppKit that
12583         was not always happening.
12584         When the user clicks on the pulldown menu, AppKit sends validateUserInterfaceItem
12585         calls for each element that needs validation and we used to count the number of
12586         validation requests being sent to the web process.
12587         All these calls are made before we have the chance to get one reply from the WebProcess.
12588         We also delayed the menu update until we had received all the replies to the validation requests.
12589         At that point we called update on the menu to trigger the validation one more time with
12590         the data retrived from the WebProcess.
12591         When the user simply presses cmd-c, only one call to vaidateUserInterfaceItem is made
12592         and the menu update triggered the validation of all the menu entries causing the internal
12593         state to be out of sync.
12594         The new implementation is very simple: for each validation request from AppKit we send
12595         a request to the WebProcess and we cache a reference to the menu item being validated.
12596         When the WebProcess replies, we retrieve the menu item from our cache and update its state.
12597         
12598         * UIProcess/API/mac/WKView.mm:
12599         (-[WKView initWithFrame:contextRef:pageGroupRef:]): Removed initialization of deleted memebers.
12600         (-[WKView validateUserInterfaceItem:]): Request validation to the WebProcess and return YES to 
12601         allow AppKit to do the keyBinding processing.
12602         (-[WKView _setUserInterfaceItemState:enabled:state:]): Called when the WebProcess replies to the
12603         validation request to check/uncheck and enable/disable the menu item.
12604
12605 2010-12-16  Anders Carlsson  <andersca@apple.com>
12606
12607         Reviewed by Oliver Hunt.
12608
12609         Don't try to call plug-in member functions if the plug-in hasn't been initialized
12610         https://bugs.webkit.org/show_bug.cgi?id=51205
12611         <rdar://problem/8730204>
12612
12613         Make sure that all PluginView functions that can be called while a plug-in has not been
12614         initialized (if the plug-in page is in a background tab for example) have an additional
12615         check for m_isInitialized.
12616
12617         * WebProcess/Plugins/PluginView.cpp:
12618         (WebKit::PluginView::setWindowIsFocused):
12619         (WebKit::PluginView::windowAndViewFramesChanged):
12620         (WebKit::PluginView::platformLayer):
12621         (WebKit::PluginView::scriptObject):
12622         (WebKit::PluginView::privateBrowsingStateChanged):
12623         (WebKit::PluginView::handleEvent):
12624         (WebKit::PluginView::viewGeometryDidChange):
12625         (WebKit::PluginView::setFocus):
12626
12627 2010-12-16  Anders Carlsson  <andersca@apple.com>
12628
12629         Reviewed by John Sullivan.
12630
12631         Add a bunch of m_isStarted assertions to plug-in code.
12632
12633         * WebProcess/Plugins/Netscape/NetscapePlugin.cpp:
12634         (WebKit::NetscapePlugin::frameDidFinishLoading):
12635         (WebKit::NetscapePlugin::frameDidFail):
12636         (WebKit::NetscapePlugin::didEvaluateJavaScript):
12637         (WebKit::NetscapePlugin::streamDidReceiveResponse):
12638         (WebKit::NetscapePlugin::streamDidReceiveData):
12639         (WebKit::NetscapePlugin::streamDidFinishLoading):
12640         (WebKit::NetscapePlugin::streamDidFail):
12641         (WebKit::NetscapePlugin::manualStreamDidReceiveResponse):
12642         (WebKit::NetscapePlugin::manualStreamDidReceiveData):
12643         (WebKit::NetscapePlugin::manualStreamDidFinishLoading):
12644         (WebKit::NetscapePlugin::manualStreamDidFail):
12645         (WebKit::NetscapePlugin::handleMouseEvent):
12646         (WebKit::NetscapePlugin::handleWheelEvent):
12647         (WebKit::NetscapePlugin::handleMouseEnterEvent):
12648         (WebKit::NetscapePlugin::handleMouseLeaveEvent):
12649         (WebKit::NetscapePlugin::handleKeyboardEvent):
12650         (WebKit::NetscapePlugin::setFocus):
12651         (WebKit::NetscapePlugin::pluginScriptableNPObject):
12652         (WebKit::NetscapePlugin::privateBrowsingStateChanged):
12653
12654 2010-12-16  Anders Carlsson  <andersca@apple.com>
12655
12656         Reviewed by Darin Adler.
12657
12658         Save the manual plug-in stream data and redeliver it when the plug-in is initialized
12659         https://bugs.webkit.org/show_bug.cgi?id=51201
12660
12661         * WebProcess/Plugins/PluginView.cpp:
12662         (WebKit::PluginView::PluginView):
12663         Initialize m_manualStreamState.
12664
12665         (WebKit::PluginView::manualLoadDidReceiveResponse):
12666         If the plug-in hasn't been initialized, store the response.
12667
12668         (WebKit::PluginView::manualLoadDidReceiveData):
12669         If the plug-in hasn't been initialized, store the data.
12670         
12671         (WebKit::PluginView::manualLoadDidFinishLoading):
12672         If the plug-in hasn't been initialized, update the state.
12673
12674         (WebKit::PluginView::manualLoadDidFail):
12675         If the plug-in hasn't been initialized, store the error and update the state.
12676         
12677         (WebKit::PluginView::initializePlugin):
12678         Call redeliverManualStream.
12679
12680         (WebKit::PluginView::redeliverManualStream):
12681         Redeliver the manual stream to the plug-in.
12682
12683         * WebProcess/Plugins/PluginView.h:
12684
12685 2010-12-16  Kimmo Kinnunen  <kimmo.t.kinnunen@nokia.com>
12686
12687         Reviewed by Andreas Kling.
12688
12689         [Qt] Turn off drawing area updates if the item is not visible
12690
12691         The updates are controlled by the QGraphicsItem::visible property.
12692
12693         * UIProcess/API/qt/qgraphicswkview.cpp:
12694         (QGraphicsWKViewPrivate::updateViewportSize):
12695         (QGraphicsWKView::setGeometry):
12696         (QGraphicsWKView::itemChange):
12697
12698 2010-12-15  Dan Bernstein  <mitz@apple.com>
12699
12700         Reviewed by Sam Weinig.
12701
12702         <rdar://problem/8731320> WebProcess’s CFNetwork cache is in ~/Library/Caches/com.apple.WebProcess
12703
12704         * UIProcess/Launcher/mac/ProcessLauncherMac.mm:
12705         (WebKit::ProcessLauncher::launchProcess): Get the location, disk capacity and memory capacity
12706         of the UI process’s NSURLCache and pass them to the WebProcess.
12707         * WebProcess/mac/WebProcessMainMac.mm:
12708         (WebKit::WebProcessMain): If an NSURLCache location was passed on the command line, set the
12709         shared NSURLCache to that path and use the specified capacities as initial values.
12710
12711 2010-12-15  Dan Bernstein  <mitz@apple.com>
12712
12713         Reviewed by Sam “I blame andersca” Weinig.
12714
12715         Allow responses to be cached by the NSURLCache.
12716
12717         * WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
12718         (WebKit::WebFrameLoaderClient::willCacheResponse): Changed to return the response instead of 0.
12719
12720 2010-12-14  Enrica Casucci  <enrica@apple.com>
12721
12722         Reviewed by Adam Roben.
12723
12724         Add IME support to WebKit2 on Windows
12725         https://bugs.webkit.org/show_bug.cgi?id=51049
12726         The implementation is very close to the one in WebKit.
12727         The main change is the addition of handlers for WM_IME_STARTCOMPOSITION,
12728         WM_IME_REQUEST, WM_IME_COMPOSITION, WM_IME_ENDCOMPOSITION,
12729         WM_IME_SELECT, WM_IME_SETCONTEXT and a number of new messages
12730         between the UI process and the WebProcess to send/retrieve
12731         the data being handled by the messages listed above.
12732
12733         * UIProcess/PageClient.h: Added compositionSelectionChanged for Windows platform.
12734         * UIProcess/WebPageProxy.cpp:
12735         The following methods send synchronous messages to the WebProcess.
12736         (WebKit::WebPageProxy::firstRectForCharacterInSelectedRange): Retrieves the rectangle to position
12737         the cnadidates window.
12738         (WebKit::WebPageProxy::getSelectedText): Retrieves the currently selected text.
12739         The following methods send asynchronous messages to the WebProcess.
12740         (WebKit::WebPageProxy::confirmComposition):
12741         (WebKit::WebPageProxy::setComposition):
12742         (WebKit::WebPageProxy::didChangeSelection): Name changed.
12743         (WebKit::WebPageProxy::didChangeCompositionSelection): Called when there is a change
12744         in the composition selection.
12745         * UIProcess/WebPageProxy.messages.in: Added messages corresponding to the methods above.
12746         * UIProcess/win/WebView.cpp:
12747         (WebKit::WebView::wndProc): Added handling of messages for IME.
12748         The following are the handlers for the window message being sent during composition.
12749         (WebKit::WebView::onIMEComposition):
12750         (WebKit::WebView::onIMEEndComposition):
12751         (WebKit::WebView::onIMERequestCharPosition):
12752         (WebKit::WebView::onIMERequestReconvertString):
12753         (WebKit::WebView::onIMERequest):
12754         (WebKit::WebView::onIMESelect):
12755         (WebKit::WebView::onIMESetContext):
12756         * WebProcess/WebCoreSupport/WebEditorClient.cpp:
12757         (WebKit::WebEditorClient::respondToChangedSelection): Added notification
12758         of composition selection changed for Windows.
12759         * WebProcess/WebPage/win/WebPageWin.cpp:
12760         The following are the WebProcess counterparts of the new messages.
12761         (WebKit::WebPage::confirmComposition):
12762         (WebKit::WebPage::setComposition):
12763         (WebKit::WebPage::firstRectForCharacterInSelectedRange):
12764         (WebKit::WebPage::getSelectedText):
12765
12766 2010-12-15  Sam Weinig  <sam@webkit.org>
12767
12768         Reviewed by Brady Eidson.
12769
12770         Loading webkit.org over and over is slower in WebKit2 than WebKit1, looks like page is not cached
12771         <rdar://problem/8774683>
12772         https://bugs.webkit.org/show_bug.cgi?id=51143
12773
12774         * WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
12775         (WebKit::WebFrameLoaderClient::canCachePage): Return true as long as we
12776         are not a custom representation (eg. a PDF).
12777         (WebKit::WebFrameLoaderClient::shouldCacheResponse): Always return true.
12778         * WebProcess/WebPage/WebPage.cpp:
12779         (WebKit::WebPage::updatePreferences): Enable the page cache.
12780
12781 2010-12-15  Simon Fraser  <simon.fraser@apple.com>
12782
12783         Reviewed by Adele Peterson.
12784
12785         WebKit2 in compositing mode no longer has font smoothing
12786         https://bugs.webkit.org/show_bug.cgi?id=50733
12787         
12788         Tell the root GraphicsLayer that its contents are opaque
12789         if the WebPage draws its background, and that background
12790         is not transparent.
12791         
12792         The GraphicsLayer then uses the 'contentsOpaque' setting to
12793         determine whether to use font smoothing.
12794         
12795         Add pageBackgroundTransparencyChanged() to DrawingArea
12796         so that the WebPage can inform the DrawingArea when the
12797         background transparency changes.
12798
12799         * WebProcess/WebPage/DrawingArea.h:
12800         (WebKit::DrawingArea::pageBackgroundTransparencyChanged):
12801         (WebKit::DrawingArea::onPageClose):
12802         * WebProcess/WebPage/LayerBackedDrawingArea.cpp:
12803         (WebKit::LayerBackedDrawingArea::LayerBackedDrawingArea):
12804         (WebKit::LayerBackedDrawingArea::pageBackgroundTransparencyChanged):
12805         * WebProcess/WebPage/LayerBackedDrawingArea.h:
12806         * WebProcess/WebPage/WebPage.cpp:
12807         (WebKit::WebPage::setDrawsBackground):
12808         (WebKit::WebPage::setDrawsTransparentBackground):
12809
12810 2010-12-15  Anders Carlsson  <andersca@apple.com>
12811
12812         Reviewed by Sam Weinig.
12813
12814         Fix assertion in plugins/return-error-from-new-stream-callback-in-full-frame-plugin.html test
12815         https://bugs.webkit.org/show_bug.cgi?id=51136
12816
12817         Ensure that a plug-in that has explicitly cancelled the manual stream won't get any more callbacks.
12818
12819         * PluginProcess/PluginControllerProxy.cpp:
12820         (WebKit::PluginControllerProxy::PluginControllerProxy):
12821         (WebKit::PluginControllerProxy::cancelManualStreamLoad):
12822         (WebKit::PluginControllerProxy::manualStreamDidReceiveResponse):
12823         (WebKit::PluginControllerProxy::manualStreamDidReceiveData):
12824         (WebKit::PluginControllerProxy::manualStreamDidFinishLoading):
12825         (WebKit::PluginControllerProxy::manualStreamDidFail):
12826         * PluginProcess/PluginControllerProxy.h:
12827
12828 2010-12-15  Brian Weinstein  <bweinstein@apple.com>
12829
12830         Windows Build Fix. A .h file was added to the vcproj twice, but not its corresponding cpp file.
12831
12832         * win/WebKit2.vcproj:
12833
12834 2010-12-15  Sam Weinig  <sam@webkit.org>
12835
12836         Reviewed by Anders Carlsson.
12837
12838         WebKit2: Can't add files to an <input type=file>
12839         https://bugs.webkit.org/show_bug.cgi?id=51087
12840
12841         * Scripts/webkit2/messages.py:
12842         Adds new types.
12843
12844         * Shared/API/c/WKBase.h:
12845         Adds WKOpenPanelParametersRef and WKOpenPanelResultListenerRef.
12846
12847         * Shared/APIObject.h:
12848         Adds TypeOpenPanelParameters and TypeOpenPanelResultListener.
12849
12850         * Shared/WebOpenPanelParameters.cpp: Added.
12851         (WebKit::WebOpenPanelParameters::create):
12852         (WebKit::WebOpenPanelParameters::WebOpenPanelParameters):
12853         (WebKit::WebOpenPanelParameters::~WebOpenPanelParameters):
12854         (WebKit::WebOpenPanelParameters::Data::encode):
12855         (WebKit::WebOpenPanelParameters::Data::decode):
12856         * Shared/WebOpenPanelParameters.h: Added.
12857         (WebKit::WebOpenPanelParameters::allowMultipleFiles):
12858         (WebKit::WebOpenPanelParameters::type):
12859         Class representing options one can pass to open panel.
12860
12861         * UIProcess/API/C/WKAPICast.h:
12862         Add casts for WebOpenPanelParameters and WebOpenPanelResultListenerProxy.
12863
12864         * UIProcess/API/C/WKOpenPanelParameters.cpp: Added.
12865         (WKOpenPanelParametersGetTypeID):
12866         (WKOpenPanelParametersGetAllowsMultipleFiles):
12867         * UIProcess/API/C/WKOpenPanelParameters.h: Added.
12868         * UIProcess/API/C/WKOpenPanelResultListener.cpp: Added.
12869         (WKOpenPanelResultListenerGetTypeID):
12870         (WKOpenPanelResultListenerChooseFiles):
12871         (WKOpenPanelResultListenerCancel):
12872         * UIProcess/API/C/WKOpenPanelResultListener.h: Added.
12873         Add API wrappers.
12874
12875         * UIProcess/API/C/WKPage.h:
12876         Add new UI callback, WKPageRunOpenPanelCallback.
12877
12878         * UIProcess/API/C/WebKit2.h:
12879         Add includes for new API headers.
12880
12881         * UIProcess/API/qt/qwkpage.cpp:
12882         (QWKPage::QWKPage):
12883         Stub out the runOpenPanel callback.
12884
12885         * UIProcess/WebOpenPanelResultListenerProxy.cpp: Added.
12886         (WebKit::WebOpenPanelResultListenerProxy::WebOpenPanelResultListenerProxy):
12887         (WebKit::WebOpenPanelResultListenerProxy::~WebOpenPanelResultListenerProxy):
12888         (WebKit::WebOpenPanelResultListenerProxy::chooseFiles):
12889         (WebKit::WebOpenPanelResultListenerProxy::cancel):
12890         (WebKit::WebOpenPanelResultListenerProxy::invalidate):
12891         * UIProcess/WebOpenPanelResultListenerProxy.h: Added.
12892         (WebKit::WebOpenPanelResultListenerProxy::create):
12893         (WebKit::WebOpenPanelResultListenerProxy::type):
12894         Adds the listener used to choose files for <input type=file>
12895
12896         * UIProcess/WebPageProxy.cpp:
12897         (WebKit::WebPageProxy::runOpenPanel):
12898         (WebKit::WebPageProxy::didChooseFilesForOpenPanel):
12899         (WebKit::WebPageProxy::didCancelForOpenPanel):
12900         * UIProcess/WebPageProxy.h:
12901         * UIProcess/WebPageProxy.messages.in:
12902         * UIProcess/WebUIClient.cpp:
12903         (WebKit::WebUIClient::runOpenPanel):
12904         * UIProcess/WebUIClient.h:
12905         * WebProcess/WebCoreSupport/WebChromeClient.cpp:
12906         (WebKit::WebChromeClient::runOpenPanel):
12907         * WebProcess/WebPage/WebOpenPanelResultListener.cpp: Added.
12908         (WebKit::WebOpenPanelResultListener::create):
12909         (WebKit::WebOpenPanelResultListener::WebOpenPanelResultListener):
12910         (WebKit::WebOpenPanelResultListener::~WebOpenPanelResultListener):
12911         (WebKit::WebOpenPanelResultListener::didChooseFiles):
12912         * WebProcess/WebPage/WebOpenPanelResultListener.h: Added.
12913         (WebKit::WebOpenPanelResultListener::disconnectFromPage):
12914         * WebProcess/WebPage/WebPage.cpp:
12915         (WebKit::WebPage::close):
12916         (WebKit::WebPage::setActiveOpenPanelResultListener):
12917         (WebKit::WebPage::didChooseFilesForOpenPanel):
12918         (WebKit::WebPage::didCancelForOpenPanel):
12919         * WebProcess/WebPage/WebPage.h:
12920         (WebKit::WebPage::activeOpenPanelResultListener):
12921         * WebProcess/WebPage/WebPage.messages.in:
12922         Pipe through file choosing.
12923
12924         * WebKit2.pro:
12925         * WebKit2.xcodeproj/project.pbxproj:
12926         * win/WebKit2.vcproj:
12927         * win/WebKit2Generated.make:
12928         Add new files.
12929
12930 2010-12-15  Anders Carlsson  <andersca@apple.com>
12931
12932         Reviewed by Maciej Stachowiak.
12933
12934         Semi-reproducible crash in ChunkedUpdateDrawingArea::paintIntoUpdateChunk closing a particular yahoo page
12935         https://bugs.webkit.org/show_bug.cgi?id=51126
12936         <rdar://problem/8771219>
12937
12938         Laying out the web page can cause the drawing area to change so we need to protect against this.
12939
12940         * WebProcess/WebPage/ChunkedUpdateDrawingArea.cpp:
12941         (WebKit::ChunkedUpdateDrawingArea::display):
12942         * WebProcess/WebPage/LayerBackedDrawingArea.cpp:
12943         (WebKit::LayerBackedDrawingArea::display):
12944         * WebProcess/WebPage/mac/LayerBackedDrawingAreaMac.mm:
12945         (WebKit::LayerBackedDrawingArea::updateLayoutRunLoopObserverFired):
12946
12947 2010-12-15  Brian Weinstein  <bweinstein@apple.com>
12948
12949         Reviewed by Adam Roben.
12950
12951         WebKit2: WebPageWin needs implementations of hasLocalDataForURL and canHandleRequest
12952         https://bugs.webkit.org/show_bug.cgi?id=51090
12953         
12954         Implement these functions for WebKit2 on Windows.
12955
12956         * WebProcess/WebPage/WebPage.cpp:
12957         (WebKit::WebPage::hasLocalDataForURL): Does the cross-platform part of the check for having local
12958             data (file URL or subresource), then calls platformHasLocalDataForURL to let the platform do
12959             their specific checks.
12960         * WebProcess/WebPage/WebPage.h:
12961         * WebProcess/WebPage/mac/WebPageMac.mm:
12962         (WebKit::WebPage::platformHasLocalDataForURL): Moved the cross-platform code from here to WebPage::hasLocalDataForURL.
12963         * WebProcess/WebPage/qt/WebPageQt.cpp:
12964         (WebKit::WebPage::platformHasLocalDataForURL): Renamed from hasLocalDataForURL.
12965         * WebProcess/WebPage/win/WebPageWin.cpp:
12966         (WebKit::WebPage::platformHasLocalDataForURL): Renamed from hasLocalDataForURL and implemented with CFNetwork calls. This is the
12967             CFNetwork equivalent of the code in WebPageMac::platformHasLocalDataForURL.
12968         (WebKit::WebPage::canHandleRequest): Copied the line of code from WebView::canHandleRequest in WebKit1, with a FIXME saying
12969             this might not be enough (although it was in WebKit1 on Windows).
12970
12971 2010-12-15  Sheriff Bot  <webkit.review.bot@gmail.com>
12972
12973         Unreviewed, rolling out r74117.
12974         http://trac.webkit.org/changeset/74117
12975         https://bugs.webkit.org/show_bug.cgi?id=51113
12976
12977         This broke the GTK1 build. (Requested by mrobinson on
12978         #webkit).
12979
12980         * GNUmakefile.am: Removed.
12981         * Scripts/generate-forwarding-headers.pl:
12982         * WebKit2Prefix.h:
12983         * gtk/webkit2.pc.in: Removed.
12984
12985 2010-12-15  Amruth Raj  <amruthraj@motorola.com> and Ravi Kasibhatla  <ravi.kasibhatla@motorola.com>
12986
12987         Reviewed by Martin Robinson.
12988
12989         Changes to enable building WebKit2 for Gtk port.
12990         (https://bugs.webkit.org/show_bug.cgi?id=37369)
12991
12992         * GNUmakefile.am: Added. 
12993         * Scripts/generate-forwarding-headers.pl: For GTK port, taking 1 extra argument for copying network headers.
12994         * WebKit2Prefix.h: Included WebCore/config.h for GTK port as the first header file for WebKit2 sources files.
12995         * gtk: Added.
12996         * gtk/webkit2.pc.in: Added.
12997
12998 2010-12-15  Jan Erik Hanssen  <jhanssen@sencha.com>
12999
13000         Reviewed by Andreas Kling.
13001
13002         [Qt][WK2] webkit2 does not compile on OS X
13003         https://bugs.webkit.org/show_bug.cgi?id=50128
13004
13005         prctl(2) is only available on Linux, so use an atexit handler for killing
13006         all the child processes when the process is exiting.
13007
13008         * UIProcess/Launcher/qt/ProcessLauncherQt.cpp:
13009         (WebKit::cleanupProcesses):
13010         (WebKit::QtWebProcess::QtWebProcess):
13011         (WebKit::QtWebProcess::processStateChanged):
13012         (WebKit::ProcessLauncherHelper::instance):
13013
13014 2010-12-14  Anders Carlsson  <andersca@apple.com>
13015
13016         Fix Windows build.
13017
13018         * win/WebKit2Common.vsprops:
13019
13020 2010-12-14  Anders Carlsson  <andersca@apple.com>
13021
13022         Fix Qt build.
13023
13024         * WebKit2.pro:
13025
13026 2010-12-14  Anders Carlsson  <andersca@apple.com>
13027
13028         Reviewed by TYPO FIX.
13029
13030         Fix a typo.
13031
13032         * Shared/Plugins/Netscape/mac/NetscapePluginModuleMac.mm:
13033         (WebKit::NetscapePluginModule::determineQuirks):
13034
13035 2010-12-14  Anders Carlsson  <andersca@apple.com>
13036
13037         Reviewed by Sam Weinig.
13038
13039         Cannot type into plugin edit field
13040         https://bugs.webkit.org/show_bug.cgi?id=51074
13041         <rdar://problem/8483741>
13042
13043         Add a PrognameShouldBeWebKitPluginHost quirk, since it turns out Flash Player calls getprogname() and checks
13044         if the return value is "WebKitPluginHost" in order to determine when to handle NPCocoaEventKeyDown events.
13045
13046         * PluginProcess/PluginProcess.cpp:
13047         (WebKit::PluginProcess::netscapePluginModule):
13048         If the plug-in module has the PrognameShouldBeWebKitPluginHost quirk, call setprogname("WebKitPluginHost").
13049         
13050         * Shared/Plugins/Netscape/NetscapePluginModule.cpp:
13051         (WebKit::NetscapePluginModule::load):
13052         Call determineQuirks()
13053
13054         * Shared/Plugins/Netscape/mac/NetscapePluginModuleMac.mm:
13055         (WebKit::NetscapePluginModule::determineQuirks):
13056         Add the PrognameShouldBeWebKitPluginHost quirk for Flash.
13057         
13058         * Shared/Plugins/Netscape/win/NetscapePluginModuleWin.cpp:
13059         (WebKit::NetscapePluginModule::determineQuirks):
13060         * Shared/Plugins/Netscape/x11/NetscapePluginModuleX11.cpp:
13061         (WebKit::NetscapePluginModule::determineQuirks):
13062         Add stubs.
13063
13064         * Shared/Plugins/PluginQuirks.h:
13065         Add new PluginQuirks file.
13066
13067         * WebKit2.xcodeproj/project.pbxproj:
13068         Add PluginQuirks.h
13069
13070 2010-12-14  Anders Carlsson  <andersca@apple.com>
13071
13072         Reviewed by Sam Weinig.
13073
13074         Add a NetscapePluginModuleX11 and move the Qt implementation of PluginInfoStore::getPluginInfo there
13075         https://bugs.webkit.org/show_bug.cgi?id=51066
13076
13077         * Shared/Plugins/Netscape/x11/NetscapePluginModuleX11.cpp: Copied from WebKit2/UIProcess/Plugins/qt/PluginInfoStoreQt.cpp.
13078         (WebKit::NetscapePluginModule::getPluginInfo):
13079         * UIProcess/Plugins/qt/PluginInfoStoreQt.cpp:
13080         (WebKit::PluginInfoStore::getPluginInfo):
13081         * WebKit2.pro:
13082
13083 2010-12-14  Anders Carlsson  <andersca@apple.com>
13084
13085         Reviewed by Dan Bernstein.
13086
13087         Move Windows version of getPluginInfo to NetscapePluginModule
13088         https://bugs.webkit.org/show_bug.cgi?id=51073
13089
13090         * Shared/Plugins/Netscape/win/NetscapePluginModuleWin.cpp: Added.
13091         (WebKit::getVersionInfo):
13092         (WebKit::fileVersion):
13093         (WebKit::NetscapePluginModule::getPluginInfo):
13094         * UIProcess/Plugins/win/PluginInfoStoreWin.cpp:
13095         (WebKit::PluginInfoStore::getPluginInfo):
13096         * win/WebKit2.vcproj:
13097
13098 2010-12-14  Alice Liu  <alice.liu@apple.com>
13099
13100         Fix clang++ build.
13101
13102         * UIProcess/WebProcessProxy.h:
13103         (WebKit::WebProcessProxy::sendSync):
13104         Move the default argument to the declaration.
13105
13106 2010-12-14  Anders Carlsson  <andersca@apple.com>
13107
13108         Reviewed by Adam Roben.
13109
13110         Move PluginInfoStore::getPluginInfo to NetscapePluginModule
13111         https://bugs.webkit.org/show_bug.cgi?id=51058
13112
13113         * Shared/Plugins/Netscape/mac/NetscapePluginModuleMac.mm:
13114         Move implementation of PluginInfoStore::getPluginInfo and related
13115         helper functions here.
13116
13117         * UIProcess/Plugins/mac/PluginInfoStoreMac.mm:
13118         (WebKit::PluginInfoStore::getPluginInfo):
13119         Just call NetscapePluginModule::getPluginInfo here for now.
13120
13121         * WebKit2.xcodeproj/project.pbxproj:
13122         Add NetscapePluginModuleMac.mm.
13123
13124 2010-12-14  Anders Carlsson  <andersca@apple.com>
13125
13126         Reviewed by John Sullivan.
13127
13128         Switch name and description order when fetching Carbon plug-in info
13129         https://bugs.webkit.org/show_bug.cgi?id=46211
13130
13131         The plug-in description comes before the name in the Carbon string list resource.
13132
13133         * UIProcess/Plugins/mac/PluginInfoStoreMac.mm:
13134         (WebKit::getPluginInfoFromCarbonResources):
13135
13136 2010-12-14  Anders Carlsson  <andersca@apple.com>
13137
13138         Reviewed by Adam Roben.
13139
13140         Move NetscapePluginModule.{cpp|h} to Shared/Plugins/Netscape
13141         https://bugs.webkit.org/show_bug.cgi?id=51052
13142
13143         * Shared/Plugins/Netscape/NetscapePluginModule.cpp: Renamed from WebKit2/WebProcess/Plugins/Netscape/NetscapePluginModule.cpp.
13144         * Shared/Plugins/Netscape/NetscapePluginModule.h: Renamed from WebKit2/WebProcess/Plugins/Netscape/NetscapePluginModule.h.
13145         * WebKit2.pro:
13146         * WebKit2.xcodeproj/project.pbxproj:
13147         * win/WebKit2.vcproj:
13148         * win/WebKit2Common.vsprops:
13149
13150 2010-12-14  Anders Carlsson  <andersca@apple.com>
13151
13152         Reviewed by Sam Weinig.
13153
13154         Handle complex text input for plug-ins
13155         https://bugs.webkit.org/show_bug.cgi?id=51047
13156
13157         * PluginProcess/PluginControllerProxy.cpp:
13158         (WebKit::PluginControllerProxy::sendComplexTextInput):
13159         Pass along the text input to the plug-in.
13160
13161         * PluginProcess/PluginControllerProxy.messages.in:
13162         Add SendComplexTextInput message.
13163
13164         * UIProcess/API/mac/WKTextInputWindowController.h: Added.
13165         * UIProcess/API/mac/WKTextInputWindowController.mm: Added.
13166         Add text input window controller, mostly copied from WebKit1.
13167         
13168         * UIProcess/API/mac/WKView.mm:
13169         (-[WKView keyDown:]):
13170         If needed, pass along the event to the text input window controller.
13171
13172         (-[WKView inputContext]):
13173         Return the input context of the text input window controller.
13174
13175         (-[WKView _setComplexTextInputEnabled:pluginComplexTextInputIdentifier:]):
13176         Notify the input window controller that the input source changed.
13177
13178         * UIProcess/WebPageProxy.cpp:
13179         (WebKit::WebPageProxy::sendComplexTextInputToPlugin):
13180         Send the complex text input to the web process.
13181
13182         * WebKit2.xcodeproj/project.pbxproj:
13183         Add new files.
13184
13185         * WebProcess/Plugins/Netscape/mac/NetscapePluginMac.mm:
13186         (WebKit::convertStringToKeyCodes):
13187         Convert a string to a vector of key codes in the current encoding.
13188
13189         (WebKit::NetscapePlugin::sendComplexTextInput):
13190         In the Cocoa event model, create and dispatch an NPCocoaEventTextInput event.
13191         In the Carbon event model, convert the string to individual key codes and send them
13192         as key down events.
13193
13194         * WebProcess/Plugins/PluginProxy.cpp:
13195         (WebKit::PluginProxy::sendComplexTextInput):
13196         Send the text to the plug-in controller proxy.
13197
13198         * WebProcess/Plugins/PluginView.cpp:
13199         (WebKit::PluginView::sendComplexTextInput):
13200         If the plug-in has a matching text input identifier, call Plugin::sendComplexTextInput.
13201
13202         * WebProcess/WebPage/WebPage.messages.in:
13203         Add SendComplexTextInputToPlugin message.
13204
13205         * WebProcess/WebPage/mac/WebPageMac.mm:
13206         (WebKit::WebPage::sendComplexTextInputToPlugin):
13207         Iterate over all known plug-in views and try to find one to send the text input to.
13208
13209 2010-12-13  Alexey Proskuryakov  <ap@apple.com>
13210
13211         Reviewed by Adam Barth.
13212
13213         https://bugs.webkit.org/show_bug.cgi?id=50953
13214         DNS Prefetch should be an opt-in feature
13215
13216         Pass the preference through WebKit2.
13217
13218         * Shared/WebPreferencesStore.h:
13219         * UIProcess/API/C/WKPreferences.cpp:
13220         (WKPreferencesSetDNSPrefetchingEnabled):
13221         (WKPreferencesGetDNSPrefetchingEnabled):
13222         * UIProcess/API/C/WKPreferences.h:
13223         * WebProcess/WebPage/WebPage.cpp:
13224         (WebKit::WebPage::updatePreferences):
13225
13226 2010-12-13  Anders Carlsson  <andersca@apple.com>
13227
13228         Reviewed by Kevin Decker.
13229
13230         Pass the complex text input status to the WKView
13231         https://bugs.webkit.org/show_bug.cgi?id=50993
13232
13233         * UIProcess/API/mac/PageClientImpl.h:
13234         * UIProcess/API/mac/PageClientImpl.mm:
13235         (WebKit::PageClientImpl::setComplexTextInputEnabled):
13236         * UIProcess/API/mac/WKView.mm:
13237         (-[WKView _setComplexTextInputEnabled:pluginComplexTextInputIdentifier:]):
13238         * UIProcess/API/mac/WKViewInternal.h:
13239         * UIProcess/PageClient.h:
13240         * UIProcess/WebPageProxy.cpp:
13241         (WebKit::WebPageProxy::setComplexTextInputEnabled):
13242
13243 2010-12-14  Benjamin Poulain  <benjamin.poulain@nokia.com>
13244
13245         Reviewed by Kenneth Rohde Christiansen.
13246
13247         WebKit 2 does not send touch cancel events correctly between processes
13248         https://bugs.webkit.org/show_bug.cgi?id=50235
13249
13250         The classes WebKit2PlatformTouchPoint and WebKit2PlatformTouchEvent
13251         misses the conversion of TouchCancel events and points.
13252
13253         This patch add the missing enums when converting from a WebTouchEvent
13254         to a PlatformTouchEvent.
13255
13256         Testing is already covered by fast/events/touch/send-oncancel-event.html
13257
13258         * Shared/WebEventConversion.cpp:
13259         (WebKit::WebKit2PlatformTouchPoint::WebKit2PlatformTouchPoint):
13260         (WebKit::WebKit2PlatformTouchEvent::WebKit2PlatformTouchEvent):
13261
13262 2010-12-14  Zalan Bujtas  <zbujtas@gmail.com>
13263
13264         Reviewed by Kenneth Rohde Christiansen.
13265
13266         Add loadFinished() for provisional load error
13267         This fixes the hanging UI state, when provisional load error occurs due to
13268         the async nature of policy check.
13269
13270         https://bugs.webkit.org/show_bug.cgi?id=48724
13271
13272         * UIProcess/API/qt/ClientImpl.cpp:
13273         (loadFinished):
13274         (qt_wk_didFailProvisionalLoadWithErrorForFrame):
13275         (qt_wk_didFinishLoadForFrame):
13276         (qt_wk_didFailLoadWithErrorForFrame):
13277
13278 2010-12-13  Sam Weinig  <sam@webkit.org>
13279
13280         Reviewed by Anders Carlsson.
13281
13282         WebKit2: Need to be able to set the application name for the user agent for a WKPage
13283         https://bugs.webkit.org/show_bug.cgi?id=51011
13284
13285         Fixes:
13286             WebKit2: Need to be able to set the application name for the user agent for a WKPage
13287             <rdar://problem/8564532>
13288             WebKit2: Need to be able to get the computed user agent for a WKPage
13289             <rdar://problem/8637285>
13290
13291         Moves user agent computation to the UIProcess and just passes it to the WebProcess
13292         when it has changed.
13293
13294         * Shared/WebPageCreationParameters.cpp:
13295         (WebKit::WebPageCreationParameters::encode):
13296         (WebKit::WebPageCreationParameters::decode):
13297         * Shared/WebPageCreationParameters.h:
13298         Add a user agent to the creation parameters.
13299
13300         * UIProcess/API/C/WKPage.cpp:
13301         (WKPageCopyUserAgent):
13302         (WKPageCopyApplicationNameForUserAgent):
13303         (WKPageSetApplicationNameForUserAgent):
13304         (WKPageSetCustomUserAgent):
13305         * UIProcess/API/C/WKPage.h:
13306         Add new API to set the application name and access the computed user agent.
13307
13308         * UIProcess/WebPageProxy.cpp:
13309         (WebKit::WebPageProxy::WebPageProxy):
13310         (WebKit::WebPageProxy::close):
13311         (WebKit::WebPageProxy::setUserAgent):
13312         (WebKit::WebPageProxy::setApplicationNameForUserAgent):
13313         (WebKit::WebPageProxy::setCustomUserAgent):
13314         (WebKit::WebPageProxy::processDidCrash):
13315         (WebKit::WebPageProxy::creationParameters):
13316         * UIProcess/WebPageProxy.h:
13317         (WebKit::WebPageProxy::userAgent):
13318         (WebKit::WebPageProxy::applicationNameForUserAgent):
13319         * UIProcess/mac/WebPageProxyMac.mm: Added.
13320         * WebProcess/WebPage/WebPage.cpp:
13321         (WebKit::WebPage::WebPage):
13322         (WebKit::WebPage::setUserAgent):
13323         * WebProcess/WebPage/WebPage.h:
13324         (WebKit::WebPage::userAgent):
13325         * WebProcess/WebPage/WebPage.messages.in:
13326         Pipe through user agent.
13327
13328         (WebKit::callGestalt):
13329         (WebKit::macOSXVersionString):
13330         (WebKit::userVisibleWebKitVersionString):
13331         (WebKit::WebPageProxy::standardUserAgent):
13332         * UIProcess/win/WebPageProxyWin.cpp: Added.
13333         (WebKit::windowsVersion):
13334         (WebKit::userVisibleWebKitVersionString):
13335         (WebKit::WebPageProxy::standardUserAgent):
13336         Port standardUserAgent computation from WebKit1.
13337
13338         * UIProcess/qt/WebPageProxyQt.cpp: Added.
13339         (WebKit::WebPageProxy::standardUserAgent):
13340         Stub out the user agent so there is no change in behavior.
13341
13342         * WebKit2.pro:
13343         * WebKit2.xcodeproj/project.pbxproj:
13344         * win/WebKit2.vcproj:
13345         Add new file.
13346
13347 2010-12-13  Brady Eidson  <beidson@apple.com>
13348
13349         Reviewed by Jon Honeycutt (and Brian Weinstein in heart).
13350
13351         <rdar://problem/8752202> and https://bugs.webkit.org/show_bug.cgi?id=50997
13352         Expose "link title" and "link label" to InjectedBundleHitTestResult API
13353
13354         * WebProcess/InjectedBundle/API/c/WKBundleHitTestResult.cpp:
13355         (WKBundleHitTestResultCopyLinkLabel):
13356         (WKBundleHitTestResultCopyLinkTitle):
13357         * WebProcess/InjectedBundle/API/c/WKBundleHitTestResult.h:
13358
13359         * WebProcess/InjectedBundle/InjectedBundleHitTestResult.cpp:
13360         (WebKit::InjectedBundleHitTestResult::linkLabel):
13361         (WebKit::InjectedBundleHitTestResult::linkTitle):
13362         * WebProcess/InjectedBundle/InjectedBundleHitTestResult.h:
13363
13364 2010-12-13  Brian Weinstein  <bweinstein@apple.com>
13365
13366         Windows Build Fix. Add a needed include.
13367
13368         * UIProcess/win/WebView.cpp:
13369
13370 2010-12-13  Sam Weinig  <sam@webkit.org>
13371
13372         Reviewed by Anders Carlsson.
13373
13374         Remove associated page concept from WKView constructor
13375         https://bugs.webkit.org/show_bug.cgi?id=50983
13376
13377         Step 2: Remove WebPageNamespace.  It no longer does anything.
13378
13379         * Shared/APIObject.h:
13380         * UIProcess/API/C/WKPage.h:
13381         * UIProcess/API/mac/WKView.mm:
13382         (-[WKView initWithFrame:contextRef:pageGroupRef:]):
13383         * UIProcess/API/qt/qgraphicswkview.cpp:
13384         * UIProcess/API/qt/qwkcontext.cpp:
13385         (QWKContext::QWKContext):
13386         * UIProcess/API/qt/qwkcontext_p.h:
13387         * UIProcess/API/qt/qwkpage.cpp:
13388         (QWKPagePrivate::QWKPagePrivate):
13389         * UIProcess/API/qt/qwkpage_p.h:
13390         * UIProcess/WebContext.cpp:
13391         (WebKit::WebContext::WebContext):
13392         (WebKit::WebContext::~WebContext):
13393         (WebKit::WebContext::createWebPage):
13394         * UIProcess/WebContext.h:
13395         * UIProcess/WebPageNamespace.cpp: Removed.
13396         * UIProcess/WebPageNamespace.h: Removed.
13397         * UIProcess/WebPageProxy.cpp:
13398         * UIProcess/WebPageProxy.h:
13399         (WebKit::WebPageProxy::context):
13400         * UIProcess/WebProcessProxy.cpp:
13401         (WebKit::WebProcessProxy::createWebPage):
13402         * UIProcess/WebProcessProxy.h:
13403         * UIProcess/win/WebView.cpp:
13404         (WebKit::WebView::WebView):
13405         * UIProcess/win/WebView.h:
13406         * WebKit2.pro:
13407         * WebKit2.xcodeproj/project.pbxproj:
13408         * win/WebKit2.vcproj:
13409
13410 2010-12-13  Sam Weinig  <sam@webkit.org>
13411
13412         Fix windows build.
13413
13414         * UIProcess/win/WebView.h:
13415
13416 2010-12-13  Sam Weinig  <sam@webkit.org>
13417
13418         Fix windows build.
13419
13420         * UIProcess/win/WebInspectorProxyWin.cpp:
13421         (WebKit::WebInspectorProxy::platformCreateInspectorPage):
13422         * UIProcess/win/WebView.h:
13423         (WebKit::WebView::create):
13424
13425 2010-12-13  Sam Weinig  <sam@webkit.org>
13426
13427         Reviewed by Anders Carlsson.
13428
13429         Remove associated page concept from WKView constructor
13430         https://bugs.webkit.org/show_bug.cgi?id=50983
13431
13432         Step 1: Remove associate page constructors from WKView and make
13433         all views use the shared namespace for the context.
13434
13435         * UIProcess/API/C/win/WKView.cpp:
13436         * UIProcess/API/C/win/WKView.h:
13437         * UIProcess/API/mac/WKView.h:
13438         * UIProcess/API/mac/WKView.mm:
13439         (-[WKView initWithFrame:contextRef:pageGroupRef:]):
13440         * UIProcess/API/qt/qwkcontext.cpp:
13441         * UIProcess/API/qt/qwkcontext.h:
13442         * UIProcess/mac/WebInspectorProxyMac.mm:
13443         (WebKit::WebInspectorProxy::platformCreateInspectorPage):
13444         * UIProcess/win/WebView.cpp:
13445         (WebKit::WebView::WebView):
13446         * UIProcess/win/WebView.h:
13447         (WebKit::WebView::create):
13448
13449 2010-12-13  Anders Carlsson  <andersca@apple.com>
13450
13451         Fix build.
13452
13453         * UIProcess/WebPageProxy.h:
13454
13455 2010-12-13  Brian Weinstein  <bweinstein@apple.com>
13456
13457         Reviewed by Adam Roben.
13458
13459         WebKit2: Leaks a WebView when opening/closing Web Inspector on Windows
13460         https://bugs.webkit.org/show_bug.cgi?id=50975
13461         <rdar://problem/8763501>
13462         
13463         Make m_inspectorView be a RefPtr<WebView>, instead of a WebView*.
13464
13465         * UIProcess/WebInspectorProxy.cpp:
13466         (WebKit::WebInspectorProxy::WebInspectorProxy): If we are on Windows, include WebView.h.
13467         * UIProcess/WebInspectorProxy.h: Change the type of m_inspectorView to a RefPtr<WebView>.
13468         * UIProcess/win/WebInspectorProxyWin.cpp:
13469         (WebKit::WebInspectorProxy::platformCreateInspectorPage): Remove the call to leakRef when creating the WebView.
13470
13471 2010-12-13  Anders Carlsson  <andersca@apple.com>
13472
13473         Reviewed by Darin Adler.
13474
13475         Pass the complex text input state all the way to the UI process
13476         https://bugs.webkit.org/show_bug.cgi?id=50980
13477
13478         * PluginProcess/PluginControllerProxy.cpp:
13479         (WebKit::PluginControllerProxy::setComplexTextInputEnabled):
13480         * UIProcess/WebPageProxy.cpp:
13481         (WebKit::WebPageProxy::setComplexTextInputEnabled):
13482         * UIProcess/WebPageProxy.h:
13483         * UIProcess/WebPageProxy.messages.in:
13484         * WebProcess/Plugins/Netscape/NetscapePlugin.h:
13485         * WebProcess/Plugins/Netscape/mac/NetscapePluginMac.mm:
13486         (WebKit::NetscapePlugin::pluginComplexTextInputIdentifier):
13487         * WebProcess/Plugins/Plugin.h:
13488         * WebProcess/Plugins/PluginProxy.cpp:
13489         (WebKit::PluginProxy::pluginComplexTextInputIdentifier):
13490         (WebKit::PluginProxy::setComplexTextInputEnabled):
13491         * WebProcess/Plugins/PluginProxy.h:
13492         * WebProcess/Plugins/PluginProxy.messages.in:
13493         * WebProcess/Plugins/PluginView.cpp:
13494         (WebKit::PluginView::setComplexTextInputEnabled):
13495
13496 2010-12-13  Sam Weinig  <sam@webkit.org>
13497
13498         Reviewed by Anders Carlsson.
13499
13500         Change the WebKit2 public API so there is no explicit WKPageNamespace object
13501         https://bugs.webkit.org/show_bug.cgi?id=50898
13502
13503         * Shared/API/c/WKBase.h: Remove definition of WKPageNamespaceRef.
13504         * UIProcess/API/C/WKAPICast.h: Remove toAPI/toImpl for WKPageNamespaceRef.
13505
13506         * UIProcess/API/C/WKPage.cpp:
13507         * UIProcess/API/C/WKPage.h:
13508         Replace WKPageGetPageNamespace with WKPageGetContext.
13509
13510         * UIProcess/API/C/WKPageNamespace.cpp: Removed.
13511         * UIProcess/API/C/WKPageNamespace.h: Removed.
13512
13513         * UIProcess/API/C/WebKit2.h: Remove #include of WKPageNamespace.h.
13514
13515         * UIProcess/API/C/win/WKView.cpp:
13516         (WKViewCreate): Changed to take a WKContextRef instead of a WKPageNamespaceRef.
13517         (WKViewCreateUsingSharedProcess): Added. Similar to WKViewCreate except that
13518         all callers of it will have their views end up in the same shared process, whereas 
13519         with WKViewCreate, a new internal page namespace will be created and could place
13520         the view's WebPage into a new process.
13521         (WKViewCreateForAssociatedPage): Added. Creates a view that is forced to use the
13522         same process as the passed in page.
13523
13524         * UIProcess/win/WebView.cpp:
13525         (WebKit::WebView::WebView):
13526         (WebKit::WebView::initialize):
13527         * UIProcess/win/WebView.h:
13528         (WebKit::WebView::create):
13529         (WebKit::WebView::createUsingSharedProcess):
13530         (WebKit::WebView::createForAssociatedPage):
13531         Implementation of the WKView create functions.
13532
13533         * UIProcess/API/C/win/WKView.h:
13534         * UIProcess/API/mac/WKView.h:
13535         * UIProcess/API/mac/WKView.mm:
13536         (-[WKView initWithFrame:]):
13537         (-[WKView initWithFrame:contextRef:]):
13538         (-[WKView initWithFrame:contextRef:pageGroupRef:]):
13539         (-[WKView initWithFrame:contextRef:usingSharedProcess:]):
13540         (-[WKView initWithFrame:contextRef:pageGroupRef:usingSharedProcess:]):
13541         (-[WKView initWithFrame:forAssociatedPageRef:]):
13542         (-[WKView initWithFrame:forAssociatedPageRef:pageGroupRef:]):
13543         (-[WKView initWithFrame:pageNamespace:pageGroup:]):
13544         Add new initializers for the objective-c WKView. It follows the same
13545         pattern as WKViewRef.
13546
13547         * UIProcess/API/qt/qwkcontext.cpp:
13548         (QWKContext::QWKContext):
13549         * UIProcess/API/qt/qwkcontext.h:
13550         Remove uses of WKPageNamespaceRef.
13551
13552         * UIProcess/WebContext.cpp:
13553         (WebKit::WebContext::sharedPageNamespace): Returns a shared
13554         page namespace used by the view's createUsingSharedProcess constructions.
13555         (WebKit::WebContext::createPageNamespace): Change to return
13556         a PassRefPtr to make things clearer.
13557         (WebKit::WebContext::pageNamespaceWasDestroyed): Clear the shared
13558         namespace if it is cleared.
13559         * UIProcess/WebContext.h:
13560
13561         * UIProcess/WebPageNamespace.h: Remove unused "struct WKContextStatistics".
13562
13563         * UIProcess/WebPageProxy.cpp:
13564         (WebKit::WebPageProxy::context):
13565         * UIProcess/WebPageProxy.h:
13566         Add context getter.
13567
13568         * UIProcess/mac/WebInspectorProxyMac.mm:
13569         (WebKit::WebInspectorProxy::platformCreateInspectorPage):
13570         * UIProcess/win/WebInspectorProxyWin.cpp:
13571         (WebKit::WebInspectorProxy::platformCreateInspectorPage):
13572         Use forAssociatedPageRef constructor for the WebInspector view.
13573
13574         * WebKit2.pro:
13575         * WebKit2.xcodeproj/project.pbxproj:
13576         * win/WebKit2.vcproj:
13577         * win/WebKit2Generated.make:
13578         Remove WKPageNamespace.h/cpp.
13579
13580 2010-12-13  Brent Fulgham  <bfulgham@webkit.org>
13581
13582         Unreviewed build fix.
13583
13584         * UIProcess/win/WebInspectorProxyWin.cpp: Non-Apple builds
13585         need to include <wtf/RetainPtr.h>.
13586
13587 2010-12-13  Brent Fulgham  <bfulgham@webkit.org>
13588
13589         Unreviewed build fix after r73807.
13590
13591         Added stub implementation of Download object.
13592
13593         * WebProcess/Downloads/curl: Added.
13594         * WebProcess/Downloads/curl/DownloadCurl.cpp: Added.
13595         (WebKit::Download::start):
13596         (WebKit::Download::startWithHandle):
13597         (WebKit::Download::cancel):
13598         (WebKit::Download::platformInvalidate):
13599         * win/WebKit2.vcproj: Exclude DownloadCFNet for Cairo builds,
13600         added DownloadCurl (excluded for regular Apple builds.)
13601
13602 2010-12-13  Anders Carlsson  <andersca@apple.com>
13603
13604         Reviewed by Sam Weinig.
13605
13606         Add the ability for plug-ins to toggle complex text input
13607         https://bugs.webkit.org/show_bug.cgi?id=50966
13608
13609         * PluginProcess/PluginControllerProxy.cpp:
13610         (WebKit::PluginControllerProxy::PluginControllerProxy):
13611         Initialize m_isComplexTextInputEnabled.
13612
13613         (WebKit::PluginControllerProxy::setComplexTextInputEnabled):
13614         Update m_isComplexTextInputEnabled.
13615
13616         * PluginProcess/PluginControllerProxy.h:
13617         * WebProcess/Plugins/Netscape/NetscapePlugin.cpp:
13618         (WebKit::NetscapePlugin::NetscapePlugin):
13619         Initialize m_pluginHasFocus and m_windowHasFocus.
13620
13621         * WebProcess/Plugins/Netscape/NetscapePlugin.h:
13622         (WebKit::NetscapePlugin::isWindowActive):
13623         Return m_windowHasFocus.
13624
13625         * WebProcess/Plugins/Netscape/mac/NetscapePluginMac.mm:
13626         (WebKit::NetscapePlugin::platformSetFocus):
13627         Update m_pluginHasFocus and call setComplexTextInputEnabled.
13628
13629         (WebKit::NetscapePlugin::windowFocusChanged):
13630         Update m_windowHasFocus and call setComplexTextInputEnabled.
13631
13632         * WebProcess/Plugins/PluginController.h:
13633         Add setComplexTextInputEnabled.
13634
13635         * WebProcess/Plugins/PluginView.cpp:
13636         (WebKit::PluginView::setComplexTextInputEnabled):
13637         * WebProcess/Plugins/PluginView.h:
13638         Add setComplexTextInputEnabled
13639
13640 2010-12-13  David Hyatt  <hyatt@apple.com>
13641
13642         Reviewed by Adam Roben.
13643
13644         Remove the space behavior that I added.  It's covered in EventHandler in WebCore
13645         already for Windows.
13646
13647         * WebProcess/WebPage/win/WebPageWin.cpp:
13648         (WebKit::WebPage::performDefaultBehaviorForKeyEvent):
13649
13650 2010-12-13  David Hyatt  <hyatt@apple.com>
13651
13652         Reviewed by Sam Weinig.
13653
13654         https://bugs.webkit.org/show_bug.cgi?id=48545, Home/End, PageUp/PageDwn should respect writing-mode.  Use
13655         logical scrolling instead of physical scrolling for those keys in WebKit2.
13656
13657         * WebProcess/WebPage/mac/WebPageMac.mm:
13658         (WebKit::logicalScroll):
13659         (WebKit::WebPage::performDefaultBehaviorForKeyEvent):
13660         * WebProcess/WebPage/qt/WebPageQt.cpp:
13661         (WebKit::logicalScroll):
13662         (WebKit::WebPage::performDefaultBehaviorForKeyEvent):
13663         * WebProcess/WebPage/win/WebPageWin.cpp:
13664         (WebKit::logicalScroll):
13665         (WebKit::WebPage::performDefaultBehaviorForKeyEvent):
13666
13667 2010-12-13  Brian Weinstein  <bweinstein@apple.com>
13668
13669         Reviewed by Darin Adler.
13670
13671         WebKit2: Focusing Web Inspector window doesn't focus contents on Windows
13672         https://bugs.webkit.org/show_bug.cgi?id=50947
13673         <rdar://problem/8762468>
13674         
13675         When we get the notification that the inspector window has focused, focus the inner inspector view.
13676
13677         * UIProcess/WebInspectorProxy.h:
13678         * UIProcess/win/WebInspectorProxyWin.cpp:
13679         (WebKit::WebInspectorProxy::onSetFocusEvent): Set the focus of the inspector view, because that is what
13680             needs to be focused in the inspector window.
13681
13682 2010-12-13  Dan Bernstein  <mitz@apple.com>
13683
13684         Coding style fix.
13685
13686         * WebProcess/Downloads/mac/DownloadMac.mm:
13687         (WebKit::originatingURLFromBackForwardList):
13688
13689 2010-12-13  Balazs Kelemen  <kbalazs@webkit.org>
13690
13691         Unreviewed trivial build fix (linux, 64 bit, gcc-4.5.1)
13692
13693         * WebProcess/WebCoreSupport/WebChromeClient.cpp:
13694         (WebKit::WebChromeClient::exceededDatabaseQuota):
13695         Don't use unsigned long long as alias for uint64_t.
13696
13697 2010-12-13  Anders Carlsson  <andersca@apple.com>
13698
13699         Reviewed by John Sullivan.
13700
13701         Crash when clicking a download link that targets a new tab
13702         https://bugs.webkit.org/show_bug.cgi?id=50935
13703         <rdar://problem/8760572>
13704
13705         Check for a null history item.
13706
13707         * WebProcess/Downloads/mac/DownloadMac.mm:
13708         (WebKit::originatingURLFromBackForwardList):
13709
13710 2010-12-13  Andras Becsi  <abecsi@webkit.org>
13711
13712         Reviewed by Csaba Osztrogonác.
13713
13714         [Qt][WK2] Fix build if WebKitTools are not available
13715         https://bugs.webkit.org/show_bug.cgi?id=50242
13716
13717         * DerivedSources.pro: Remove dependency to WebKitTools.
13718         * Scripts/generate-forwarding-headers.pl: Moved from WebKitTools/Scripts/generate-forwarding-headers.pl.
13719
13720 2010-12-13  Csaba Osztrogonác  <ossy@webkit.org>
13721
13722         Unreviewed.
13723
13724         * WebKit2.pro: Remove non-existant Shared/DrawingAreaBase.h from build system.
13725
13726 2010-10-28  MORITA Hajime  <morrita@google.com>
13727
13728         Reviewed by Ojan Vafai.
13729
13730         spellcheck does not check pasted text
13731         https://bugs.webkit.org/show_bug.cgi?id=40092
13732
13733         Added a stub implememntation.
13734
13735         * WebProcess/WebCoreSupport/WebEditorClient.cpp:
13736         (WebKit::WebEditorClient::requestCheckingOfString):
13737         * WebProcess/WebCoreSupport/WebEditorClient.h:
13738
13739 2010-12-12  Brian Weinstein  <bweinstein@apple.com>
13740
13741         Reviewed by Tim Hatcher.
13742
13743         WebKit2: Implement WebInspector::localizedStringsURL on Windows
13744         https://bugs.webkit.org/show_bug.cgi?id=50896
13745         
13746         Find the localized strings file using CFBundleCopyResourceURL.
13747
13748         * WebProcess/WebPage/win/WebInspectorWin.cpp:
13749         (WebKit::WebInspector::localizedStringsURL):
13750
13751 2010-12-12  Sam Weinig  <sam@webkit.org>
13752
13753         Reviewed by Anders Carlsson.
13754
13755         Give LogTextInput a sensible flag value.
13756
13757         * Platform/Logging.cpp:
13758
13759 2010-12-12  Sam Weinig  <sam@webkit.org>
13760
13761         Reviewed by Anders Carlsson.
13762
13763         Remove incorrect assertion that has been firing in the API tester.
13764
13765         * UIProcess/WebDatabaseManagerProxy.cpp:
13766         (WebKit::WebDatabaseManagerProxy::~WebDatabaseManagerProxy):
13767
13768 2010-12-12  Sam Weinig  <sam@webkit.org>
13769
13770         Reviewed by Anders Carlsson.
13771
13772         Disable WebKit2 logging by default.
13773         https://bugs.webkit.org/show_bug.cgi?id=50878
13774
13775         * Platform/Logging.cpp:
13776         (initializeLogChannelsIfNecessary):
13777
13778 2010-12-11  Brian Weinstein  <bweinstein@apple.com>
13779
13780         Reviewed by Sam Weinig.
13781
13782         Web Inspector: Make inspector on Windows show and be usable in WebKit2
13783         https://bugs.webkit.org/show_bug.cgi?id=50877
13784         
13785         Hook up the unimplemented methods in WebInspectorProxyWin to get the web inspector
13786         showing and usable in WebKit2 on Windows.
13787
13788         * UIProcess/WebInspectorProxy.cpp:
13789         (WebKit::WebInspectorProxy::WebInspectorProxy): Initialize Windows-specific variables to 0.
13790         * UIProcess/WebInspectorProxy.h:
13791         * UIProcess/win/WebInspectorProxyWin.cpp:
13792         (WebKit::WebInspectorProxy::registerInspectorViewWindowClass): Sets up the inspector view class.
13793         (WebKit::WebInspectorProxy::InspectorViewWndProc): Calls through to the WebInspectorProxy's non-static
13794             WndProc.
13795         (WebKit::WebInspectorProxy::wndProc): Handles WM_SIZE, WM_CLOSE, and WM_GETMINMAXINFO, the rest go to 
13796             ::DefWindowProc.
13797         (WebKit::WebInspectorProxy::onSizeEvent): Resize the WKView that has the inspector page to match the
13798             outer window that was just resized.
13799         (WebKit::WebInspectorProxy::onMinMaxInfoEvent): Set the minimum size the window can be resized to.
13800         (WebKit::WebInspectorProxy::onCloseEvent): Hide the window, and call WebInspectorProxy::close.
13801         (WebKit::WebInspectorProxy::platformCreateInspectorPage): Create a WKView and return its page.
13802         (WebKit::WebInspectorProxy::platformOpen): Create an HWND for the inspector, put the inspector's WKView
13803             inside of it, and show the window.
13804         (WebKit::WebInspectorProxy::platformClose): Destroy the inspector's window (which destroys the child WKView), 
13805             and 0 out instance variables.
13806         (WebKit::WebInspectorProxy::inspectorPageURL): Finds inspector/inspector.html in the WebKit bundle.
13807
13808 2010-12-12  Balazs Kelemen  <kbalazs@webkit.org>
13809
13810         Reviewed by Andreas Kling.
13811
13812         [Qt][WK2] Crash in WebPage constructor.
13813         https://bugs.webkit.org/show_bug.cgi?id=50892
13814
13815         * WebProcess/qt/WebProcessQt.cpp:
13816         (WebKit::WebProcess::platformInitializeWebProcess):
13817         Disable runtime enabled features that have no WebKit2 implementation yet.
13818
13819 2010-12-10  Jon Honeycutt  <jhoneycutt@apple.com>
13820
13821         Select menus with short option titles do not paint properly
13822         https://bugs.webkit.org/show_bug.cgi?id=50860
13823         <rdar://problem/8660807>
13824
13825         The backing stores used for painting the popup menu items were only as
13826         wide as the widest option title, but the popup window that we create is
13827         at least as wide as the <select> element. This adjusts the backing
13828         stores to be at least as wide as the <select>, as well.
13829
13830         Reviewed by Sam Weinig.
13831
13832         * UIProcess/win/WebPopupMenuProxyWin.cpp:
13833         (WebKit::WebPopupMenuProxyWin::paint):
13834         Paint using the width of the backing store.
13835
13836         * WebProcess/WebCoreSupport/WebPopupMenu.cpp:
13837         (WebKit::WebPopupMenu::show):
13838         Pass the page coordinates of the <select> element to
13839         setUpPlatformData().
13840
13841         * WebProcess/WebCoreSupport/WebPopupMenu.h:
13842         Added new parameter to setUpPlatformData().
13843
13844         * WebProcess/WebCoreSupport/mac/WebPopupMenuMac.mm:
13845         (WebKit::WebPopupMenu::setUpPlatformData):
13846         Ditto.
13847
13848         * WebProcess/WebCoreSupport/qt/WebPopupMenuQt.cpp:
13849         (WebKit::WebPopupMenu::setUpPlatformData):
13850         Ditto.
13851
13852         * WebProcess/WebCoreSupport/win/WebPopupMenuWin.cpp:
13853         (WebKit::WebPopupMenu::setUpPlatformData):
13854         Fixed a typo in a comment. Adjust the backing store size to be at least
13855         as wide as the <select> element, and use that width when painting the
13856         items to the backing store.
13857
13858 2010-12-11  Csaba Osztrogonác  <ossy@webkit.org>
13859
13860         Unreviewed Qt buildfix after r73808.
13861
13862         WebKit2: Need a WebKit2 equivalent of the WebKit1 WebDatabaseManager
13863         https://bugs.webkit.org/show_bug.cgi?id=50606
13864
13865         * DerivedSources.pro:
13866
13867 2010-12-11  Sheriff Bot  <webkit.review.bot@gmail.com>
13868
13869         Unreviewed, rolling out r73834.
13870         http://trac.webkit.org/changeset/73834
13871         https://bugs.webkit.org/show_bug.cgi?id=50866
13872
13873         It broke Qt-WebKit2 build, because of missing WK2_DIR variable
13874         (Requested by Ossy on #webkit).
13875
13876         * WebKit2.pro:
13877
13878 2010-12-10  Siddharth Mathur  <siddharth.mathur@nokia.com>
13879
13880         Reviewed by Eric Seidel.
13881
13882         [Qt][WK2] Make WebKit2 static library compile on Symbian
13883         https://bugs.webkit.org/show_bug.cgi?id=50861
13884
13885         * WebKit2.pro:
13886
13887 2010-12-10  Sam Weinig  <sam@webkit.org>
13888
13889         Reviewed by Anders Carlsson.
13890
13891         Ensure that we are not getting too many wheel events
13892         <rdar://problem/7881465>
13893
13894         Add simple coalescing of wheel events being sent to the WebProcess. This 
13895         adds two models, one which drops interim events and one which merges events
13896         together. For now, we are using the simpler dropping model.
13897
13898         * Shared/WebEvent.h:
13899         (WebKit::WebEvent::modifiers):
13900         * UIProcess/WebPageProxy.cpp:
13901         (WebKit::WebPageProxy::WebPageProxy):
13902         (WebKit::coalesceWheelEvents):
13903         (WebKit::WebPageProxy::handleWheelEvent):
13904         (WebKit::WebPageProxy::didReceiveEvent):
13905         * UIProcess/WebPageProxy.h:
13906
13907 2010-12-10  Anders Carlsson  <andersca@apple.com>
13908
13909         Reviewed by John Sullivan.
13910
13911         Make WKContextGetStatistics gather global statistics
13912         https://bugs.webkit.org/show_bug.cgi?id=50850
13913
13914         Change WKContextGetStatistics to work on all objects in the process, and
13915         make it more robust by incrementing/decrementing the counts in the constructor
13916         and destructor respectively. 
13917         
13918         Also, rename WKContextGetStatistics to WKContextGetGlobalStatistics to better match
13919         what it's actually doing.
13920
13921         * UIProcess/API/C/WKContext.cpp:
13922         (WKContextGetStatistics):
13923         * UIProcess/API/C/WKContextPrivate.h:
13924         * UIProcess/API/mac/WKView.mm:
13925         (-[WKView initWithFrame:pageNamespaceRef:pageGroupRef:]):
13926         (-[WKView dealloc]):
13927         * UIProcess/WebContext.cpp:
13928         (WebKit::WebContext::statistics):
13929         * UIProcess/WebContext.h:
13930         * UIProcess/WebFrameProxy.cpp:
13931         (WebKit::WebFrameProxy::WebFrameProxy):
13932         (WebKit::WebFrameProxy::~WebFrameProxy):
13933         * UIProcess/WebPageNamespace.cpp:
13934         * UIProcess/WebPageNamespace.h:
13935         * UIProcess/WebPageProxy.cpp:
13936         (WebKit::WebPageProxy::WebPageProxy):
13937         (WebKit::WebPageProxy::~WebPageProxy):
13938         * UIProcess/WebPageProxy.h:
13939
13940 2010-12-10  Brian Weinstein  <bweinstein@apple.com>
13941
13942         Reviewed by Darin Adler.
13943
13944         WebKit2: Context menu support on Windows
13945         <https://bugs.webkit.org/show_bug.cgi?id=50514>
13946         
13947         Implment showing of the context menu on Windows for WebKit2, and calling through to
13948         WebPageProxy::contextMenuItemSelected.
13949
13950         * UIProcess/win/WebContextMenuProxyWin.cpp:
13951         (WebKit::WebContextMenuProxyWin::WebContextMenuProxyWin): Initialize the member variables.
13952         (WebKit::WebContextMenuProxyWin::populateMenu): Iterate over the vector of WebContextMenuItemData
13953             that was passed in, adding the menu items and recursively calling back into this function to populate
13954             any submenus that are needed. This function also sets up the map from action identifierss to WebContextMenuItemData,
13955             to use to find the WebContextMenuItemData from a selected menu item.
13956         (WebKit::WebContextMenuProxyWin::showContextMenu): Destroy any menu we have already created, populate the menu
13957             to show, and show the context menu. Once TrackPopupMenuEx returns, it returns identifier of the selected menu item.
13958             Look up that identifier in the map we created, and tell the WebPageProxy that a context menu item was selected.
13959         (WebKit::WebContextMenuProxyWin::hideContextMenu): Destroy the HMENU if it is non-null, and clear the identifier map. 
13960         * UIProcess/win/WebContextMenuProxyWin.h:
13961         (WebKit::WebContextMenuProxyWin::create): Call through to the constructor, and change the arguments that it takes.
13962         * UIProcess/win/WebView.cpp:
13963         (WebKit::WebView::createContextMenuProxy): Call with the correct arguments.
13964
13965 2010-12-10  Jessie Berlin  <jberlin@apple.com>
13966
13967         Qt Build Fix. Unreviewed.
13968
13969         * WebKit2.pro:
13970         Add the Messages.h and MessageReceivers.h.
13971
13972 2010-12-10  Jessie Berlin  <jberlin@apple.com>
13973
13974         Reviewed by Adam Roben and Sam Weinig.
13975
13976         WebKit2: Need a WebKit2 equivalent of the WebKit1 WebDatabaseManager
13977         https://bugs.webkit.org/show_bug.cgi?id=50606
13978
13979         Add a WebDatabaseManagerProxy owned by the WebContext.
13980
13981         Expose API (similar to the WebKit1 API) to get a list of origins for which there are
13982         Databases, delete all the databases for a given origin, and delete all the databases.
13983
13984         Add WebDatabaseManager and WebDatabaseManagerProxy as messages receivers.
13985         * DerivedSources.make:
13986         * Platform/CoreIPC/MessageID.h:
13987
13988         Add the WebDatabaseManagerProxy as a UIProcess type (DatabaseManager).
13989         * Shared/API/c/WKBase.h:
13990         * Shared/APIObject.h:
13991         * UIProcess/API/C/WKAPICast.h:
13992
13993         * UIProcess/API/C/WKContext.cpp:
13994         (WKContextGetDatabaseManager):
13995         Expose API to get the DatabaseManager.
13996         * UIProcess/API/C/WKContext.h:
13997
13998         * UIProcess/API/C/WKDatabaseManager.cpp: Added.
13999         (WKDatabaseManagerGetTypeID):
14000         (WKDatabaseManagerGetDatabaseOrigins):
14001         (callGetDatabaseOriginsBlockBlockAndDispose):
14002         (WKDatabaseManagerGetDatabaseOrigins_b):
14003         (WKDatabaseManagerDeleteDatabasesForOrigin):
14004         (WKDatabaseManagerDeleteAllDatabases):
14005         * UIProcess/API/C/WKDatabaseManager.h: Added.
14006
14007         * UIProcess/WebContext.cpp:
14008         (WebKit::WebContext::WebContext):
14009         Create the WebDatabaseManagerProxy.
14010         (WebKit::WebContext::processDidClose):
14011         Invalidate the WebDatabaseManagerProxy.
14012         (WebKit::WebContext::didReceiveMessage):
14013         Forward messages to the WebDatabaseManagerProxy.
14014         * UIProcess/WebContext.h:
14015         (WebKit::WebContext::databaseManagerProxy):
14016
14017         * UIProcess/WebDatabaseManagerProxy.cpp: Added.
14018         (WebKit::WebDatabaseManagerProxy::create):
14019         (WebKit::WebDatabaseManagerProxy::WebDatabaseManagerProxy):
14020         (WebKit::WebDatabaseManagerProxy::~WebDatabaseManagerProxy):
14021         (WebKit::WebDatabaseManagerProxy::invalidate):
14022         Invalidate the map of callbacks for getDatabaseOrigins.
14023         (WebKit::WebDatabaseManagerProxy::getDatabaseOrigins):
14024         Store the callback and send the request for the origins which have databases to the
14025         WebProcess.
14026         (WebKit::WebDatabaseManagerProxy::didGetDatabaseOrigins):
14027         Call the callback function with the SecurityOrigins created from the identifiers received.
14028         (WebKit::WebDatabaseManagerProxy::deleteDatabasesForOrigin):
14029         If the origin exists, send the message on to the WebProcess to delete the databases
14030         associated with that origin.
14031         (WebKit::WebDatabaseManagerProxy::deleteAllDatabases):
14032         Send the message to the WebProcess to delete all the databases.
14033         * UIProcess/WebDatabaseManagerProxy.h: Added.
14034         (WebKit::WebDatabaseManagerProxy::type):
14035         * UIProcess/WebDatabaseManagerProxy.messages.in: Added.
14036
14037         * UIProcess/WebPageProxy.cpp:
14038         Move invalidateCallbackMap from here ...
14039         * UIProcess/GenericCallback.h:
14040         (WebKit::invalidateCallbackMap):
14041         .. to here so that it can be used elsewhere (e.g. by WebDatabaseManagerProxy).
14042
14043         * UIProcess/WebProcessProxy.cpp:
14044         (WebKit::WebProcessProxy::didReceiveMessage):
14045         Forward on all messages destined for the WebDatabaseManagerProxy to the WebContext.
14046
14047         * WebProcess/WebCoreSupport/WebDatabaseManager.cpp:
14048         (WebKit::WebDatabaseManager::didReceiveMessage):
14049         (WebKit::WebDatabaseManager::getDatabaseOrigins):
14050         Send an array of the identifiers for the SecurityOrigins for which there are databases to
14051         the UIProcess.
14052         (WebKit::WebDatabaseManager::deleteDatabasesForOrigin):
14053         If the SecurityOrigin with that identifier exists, tell the DatabaseTracker to delete the
14054         databases for that origin.
14055         (WebKit::WebDatabaseManager::deleteAllDatabases):
14056         Tell the DatabaseTracker to delete the databases for that origin.
14057         * WebProcess/WebCoreSupport/WebDatabaseManager.h:
14058         * WebProcess/WebCoreSupport/WebDatabaseManager.messages.in: Added.
14059         * WebProcess/WebProcess.cpp:
14060         (WebKit::WebProcess::didReceiveMessage):
14061
14062         * WebKit2.pro:
14063         Add WKDatabaseManager.cpp/.h and WebDatabaseManagerProxy.cpp/.h
14064         * WebKit2.xcodeproj/project.pbxproj:
14065         Ditto, also add WebDatabaseManagerProxy.messages.in and WebDatabaseManager.messages.in.
14066         * win/WebKit2.vcproj:
14067         Ditto.
14068         * win/WebKit2Generated.make:
14069         Make sure WKDatabaseManager.h is copied into WebKitBuild on Windows.
14070
14071 2010-12-10  Ada Chan  <adachan@apple.com>
14072
14073         Reviewed by Anders Carlsson.
14074
14075         Implement Download::start() and Download::startWithHandle() on Windows.
14076         https://bugs.webkit.org/show_bug.cgi?id=50844
14077
14078         * WebProcess/Downloads/Download.h:
14079         * WebProcess/Downloads/cf/DownloadCFNet.cpp:
14080         (WebKit::Download::start): Create a CFURLDownloadRef and schedule it.
14081         (WebKit::Download::startWithHandle): Create a CFURLDownloadRef with the loading connection
14082         retrieved from the ResourceHandle.
14083         (WebKit::Download::platformInvalidate):
14084         (WebKit::downloadFromClientInfo):
14085         (WebKit::didStartCallback):
14086         (WebKit::willSendRequestCallback):
14087         (WebKit::didReceiveAuthenticationChallengeCallback):
14088         (WebKit::didReceiveResponseCallback):
14089         (WebKit::willResumeWithResponseCallback):
14090         (WebKit::didReceiveDataCallback):
14091         (WebKit::shouldDecodeDataOfMIMETypeCallback):
14092         (WebKit::decideDestinationWithSuggestedObjectNameCallback):
14093         (WebKit::didCreateDestinationCallback):
14094         (WebKit::didFinishCallback):
14095         (WebKit::didFailCallback):
14096
14097 2010-12-10  Enrica Casucci  <enrica@apple.com>
14098
14099         Windows build fix. Unreviewed.
14100
14101         Adding a dummy synchronous message for platforms
14102         that don't have any.
14103
14104         * WebProcess/WebPage/WebPage.cpp:
14105         (WebKit::WebPage::dummy):
14106         * WebProcess/WebPage/WebPage.h:
14107         * WebProcess/WebPage/WebPage.messages.in:
14108
14109 2010-12-09  Brian Weinstein  <bweinstein@apple.com>
14110
14111         Reviewed by Adam Roben.
14112
14113         Prep for WebKit2: Context menu support on Windows
14114         https://bugs.webkit.org/show_bug.cgi?id=50514
14115         
14116         Update WebKit2 to call the correct code when CROSS_PLATFORM_CONTEXT_MENUS is set.
14117
14118         * Shared/WebContextMenuItemData.cpp:
14119         (WebKit::WebContextMenuItemData::WebContextMenuItemData): Add a branch based on whether or not 
14120             CROSS_PLATFORM_CONTEXT_MENUS is set.
14121         * WebProcess/WebCoreSupport/WebContextMenuClient.cpp:
14122         (WebKit::WebContextMenuClient::customizeMenu): Define different functions based on
14123             whether or not CROSS_PLATFORM_CONTEXT_MENUS. Both of these are stubs, so functionality
14124             doesn't need to be shared.
14125         * WebProcess/WebCoreSupport/WebContextMenuClient.h: Define different functions based on
14126             whether or not CROSS_PLATFORM_CONTEXT_MENUS. 
14127         * WebProcess/WebPage/WebContextMenu.cpp:
14128         (WebKit::WebContextMenu::show): Add a branch based on whether or not 
14129             CROSS_PLATFORM_CONTEXT_MENUS is set.
14130
14131 2010-12-09  Enrica Casucci  <enrica@apple.com>
14132
14133         Reviewed by Alexey Proskuryakov.
14134
14135         Implement IME support for Mac.
14136         <rdar://problem/7660589> WebKit2: Implement IME support for Mac.
14137         https://bugs.webkit.org/show_bug.cgi?id=50788
14138             
14139         This patch addes support for input methods in WebKit2.
14140         In order to support IME, it was necessary to add synchronous calls from the UIProcess
14141         to the WebProcess. These calls all have a timeout of 1 second.
14142         The current implementation still uses the NSTextInput protocol, but the plan is to move
14143         to the NSTextInputClient protocol. This has not been done yet for ease of comparison with
14144         WebKit. attributedSubstringFromRange is the only method that has not been implemented, because
14145         I have not yet decided what is the best way to send an NSAttributedString across the process
14146         boundary.
14147
14148         * Platform/CoreIPC/HandleMessage.h:
14149         (CoreIPC::callMemberFunction): Added template for member function.
14150         with four reply arguments.
14151         * Scripts/webkit2/messages.py: Added CompositionUnderline and relevant header.
14152         * Shared/WebCoreArgumentCoders.h:
14153         (CoreIPC::): Added encoder/decoder for CompositionUnderline.
14154         * UIProcess/API/mac/PageClientImpl.h: Added parameters to interceptKeyEvent and selectionChanged.
14155         * UIProcess/API/mac/PageClientImpl.mm:
14156         (WebKit::PageClientImpl::selectionChanged): Added parameters.
14157         (WebKit::PageClientImpl::interceptKeyEvent): Added parameters.
14158         * UIProcess/API/mac/WKView.mm:
14159         (-[WKView initWithFrame:pageNamespaceRef:pageGroupRef:]): Added initialization of new private members.
14160         (-[WKView insertText:]):
14161         (-[WKView _selectionChanged:isEditable:isPassword:hasMarkedText:range:]): Added parameters.
14162         (-[WKView _interceptKeyEvent:hasComposition:start:end:lines:WebCore::]): Added parameters.
14163         (-[WKView keyDown:]): Modified to reset state on each keyDown.
14164         (-[WKView selectedRange]): Added.
14165         (-[WKView hasMarkedText]): Added.
14166         (-[WKView unmarkText]): Added.
14167         (-[WKView validAttributesForMarkedText]): Added.
14168         (extractUnderlines): Added.
14169         (-[WKView setMarkedText:selectedRange:]): Added.
14170         (-[WKView markedRange]): Added.
14171         (-[WKView attributedSubstringFromRange:]): Added.
14172         (-[WKView characterIndexForPoint:]): Added.
14173         (-[WKView firstRectForCharacterRange:]): Added.
14174         (-[WKView conversationIdentifier]): Added.
14175         * UIProcess/API/mac/WKViewInternal.h: Added parameters to _interceptKeyEvent and _selectionChanged.
14176         * UIProcess/PageClient.h: Added parameters to interpretKeyEvent and selectionChanged.
14177         * UIProcess/WebPageProxy.cpp:
14178         (WebKit::WebPageProxy::getMarkedRange): Added.
14179         (WebKit::WebPageProxy::characterIndexForPoint): Added.
14180         (WebKit::WebPageProxy::firstRectForCharacterRange): Added.
14181         (WebKit::WebPageProxy::interpretKeyEvent): Additional parameters.
14182         (WebKit::WebPageProxy::didSelectionChange): Additional parameters for Mac platform.
14183         * UIProcess/WebPageProxy.h: Added new methods and parameters to didSelectionChange
14184         and interpretKeyEvent.
14185         * UIProcess/WebPageProxy.messages.in: Added parameters to interpretKeyEvent and selectionChanged messages.
14186         * UIProcess/WebProcessProxy.h:
14187         (WebKit::WebProcessProxy::sendSync): Added support for synchronous messages.
14188         The default timeout is 1 second.
14189         * WebProcess/WebCoreSupport/WebEditorClient.cpp: respondToChangedSelection is now
14190         only for non Mac platform.
14191         * WebProcess/WebCoreSupport/mac/WebEditorClientMac.mm:
14192         (WebKit::WebEditorClient::respondToChangedSelection): Added implementation for Mac platform.
14193         * WebProcess/WebPage/WebPage.cpp:
14194         (WebKit::WebPage::didReceiveSyncMessage): Added.
14195         * WebProcess/WebPage/WebPage.h: Added new methods and support for synchronous messages.
14196         * WebProcess/WebPage/WebPage.messages.in: Added new messages.
14197         * WebProcess/WebPage/mac/WebPageMac.mm:
14198         (WebKit::WebPage::interceptEditingKeyboardEvent): Added parameters.
14199         (WebKit::WebPage::convertRangeToPlatformRange): Added.
14200         (WebKit::WebPage::getMarkedRange): Added.
14201         (WebKit::characterRangeAtPoint): Added.
14202         (WebKit::WebPage::characterIndexForPoint): Added.
14203         (WebKit::convertToRange): Added.
14204         (WebKit::WebPage::firstRectForCharacterRange): Added.
14205         * WebProcess/WebProcess.cpp:
14206         (WebKit::WebProcess::didReceiveSyncMessage): Added.
14207         * WebProcess/WebProcess.h: Added didReceiveSyncMessage.
14208
14209 2010-12-10  Jocelyn Turcotte  <jocelyn.turcotte@nokia.com>
14210
14211         Reviewed by Kenneth Rohde Christiansen.
14212
14213         [Qt][WK2] Add the QWKContext API class to wrap the WebContext.
14214         https://bugs.webkit.org/show_bug.cgi?id=50750
14215
14216         * UIProcess/API/qt/WKView.h:
14217         * UIProcess/API/qt/qgraphicswkview.cpp:
14218         (QGraphicsWKView::QGraphicsWKView):
14219         Change the WKPageNamespaceRef argument to QWKContext*
14220         * UIProcess/API/qt/qgraphicswkview.h:
14221         * UIProcess/API/qt/qwkcontext.cpp: Added.
14222         * UIProcess/API/qt/qwkcontext.h: Added.
14223         * UIProcess/API/qt/qwkcontext_p.h: Added.
14224         * UIProcess/API/qt/qwkpage.cpp:
14225         (QWKPagePrivate::QWKPagePrivate):
14226         (QWKPage::QWKPage):
14227         Change the WKPageNamespaceRef argument to QWKContext*
14228         * UIProcess/API/qt/qwkpage.h:
14229         * UIProcess/API/qt/qwkpage_p.h:
14230         * WebKit2.pro:
14231
14232 2010-12-10  Kimmo Kinnunen  <kimmo.t.kinnunen@nokia.com>
14233
14234         Reviewed by Kenneth Rohde Christiansen.
14235
14236         Flush IPC connection send buffer after each message.
14237
14238         [Qt] [WK2] IPC messages are not sent until send buffer fills up
14239         https://bugs.webkit.org/show_bug.cgi?id=50667
14240
14241         * Platform/CoreIPC/qt/ConnectionQt.cpp:
14242         (CoreIPC::Connection::sendOutgoingMessage):
14243
14244 2010-12-09  Jocelyn Turcotte  <jocelyn.turcotte@nokia.com>
14245
14246         Reviewed by Kenneth Rohde Christiansen.
14247
14248         [Qt][WK2] Use a single QNetworkAccessManager per web process.
14249         https://bugs.webkit.org/show_bug.cgi?id=50757
14250
14251         This allows a better management of network resources and the use
14252         of global cookie jar and disk cache across all frames.
14253
14254         * WebProcess/WebCoreSupport/qt/WebFrameNetworkingContext.cpp:
14255         (WebCore::WebFrameNetworkingContext::WebFrameNetworkingContext):
14256         (WebCore::WebFrameNetworkingContext::networkAccessManager):
14257         * WebProcess/WebCoreSupport/qt/WebFrameNetworkingContext.h:
14258         * WebProcess/WebProcess.cpp:
14259         (WebKit::WebProcess::WebProcess):
14260         (WebKit::WebProcess::initializeWebProcess):
14261         (WebKit::WebProcess::shutdownIfPossible):
14262         * WebProcess/WebProcess.h:
14263         (WebKit::WebProcess::networkAccessManager):
14264         * WebProcess/mac/WebProcessMac.mm:
14265         (WebKit::WebProcess::platformInitializeWebProcess):
14266         (WebKit::WebProcess::platformShutdown):
14267         * WebProcess/qt/WebProcessQt.cpp:
14268         (WebKit::WebProcess::platformInitializeWebProcess):
14269         (WebKit::WebProcess::platformShutdown):
14270         * WebProcess/win/WebProcessWin.cpp:
14271         (WebKit::WebProcess::platformInitializeWebProcess):
14272         (WebKit::WebProcess::platformShutdown):
14273
14274 2010-12-09  Mark Rowe  <mrowe@apple.com>
14275
14276         Fix the 32-bit build.
14277
14278         * Shared/cf/ArgumentCodersCF.cpp:
14279         (CoreIPC::sizeForNumberType):
14280
14281 2010-12-09  Maciej Stachowiak  <mjs@apple.com>
14282
14283         Reviewed by Brady Eidson.
14284
14285         WebKit2: Control-click doesn't invoke context menu
14286         https://bugs.webkit.org/show_bug.cgi?id=50793
14287         <rdar://problem/8664800>
14288
14289         * WebProcess/WebPage/WebPage.cpp:
14290         (WebKit::isContextClick): New helper function - on Mac, not only right clicks
14291         but also control-left-clicks are context clicks.
14292         (WebKit::handleMouseEvent): Use above.
14293
14294 2010-12-09  Anders Carlsson  <andersca@apple.com>
14295
14296         Fix clang++ build.
14297
14298         * Scripts/webkit2/messages.py:
14299         DrawingAreaInfo is a struct.
14300
14301         * Shared/WebPreferencesStore.cpp:
14302         (WebKit::valueForKey):
14303         Move valueForKey above code that uses it.
14304
14305         * UIProcess/mac/WebInspectorProxyMac.mm:
14306         (-[WebInspectorProxyObjCAdapter windowWillClose:]):
14307         Remove trailing semicolon.
14308
14309 2010-12-09  Timothy Hatcher  <timothy@apple.com>
14310
14311         Add support for transparent WebKit2 WKViews.
14312
14313         https://webkit.org/b/50785
14314
14315         Reviewed by Anders Carlsson.
14316
14317         * Shared/WebPageCreationParameters.cpp:
14318         (WebKit::WebPageCreationParameters::encode): Encode drawsBackground and drawsTransparentBackground.
14319         (WebKit::WebPageCreationParameters::decode): Decode drawsBackground and drawsTransparentBackground.
14320         * Shared/WebPageCreationParameters.h:
14321         * UIProcess/API/mac/WKView.h:
14322         * UIProcess/API/mac/WKView.mm:
14323         (-[WKView setDrawsBackground:]): Added.
14324         (-[WKView drawsBackground]): Added.
14325         (-[WKView setDrawsTransparentBackground:]): Added.
14326         (-[WKView drawsTransparentBackground]): Added.
14327         (-[WKView drawRect:]): Only fill the background if the WebProcess isn't valid and drawsBackground.
14328         Use white or clear based on setDrawsTransparentBackground.
14329         (-[WKView isOpaque]): Return drawsBackground.
14330         * UIProcess/WebPageProxy.cpp:
14331         (WebKit::WebPageProxy::WebPageProxy): Initialize m_drawsBackground and m_drawsTransparentBackground.
14332         (WebKit::WebPageProxy::setDrawsBackground): Added. Send a SetDrawsBackground message.
14333         (WebKit::WebPageProxy::setDrawsTransparentBackground): Added. Send a SetDrawsTransparentBackground message.
14334         (WebKit::WebPageProxy::creationParameters): Set drawsBackground and drawsTransparentBackground.
14335         * UIProcess/WebPageProxy.h:
14336         (WebKit::WebPageProxy::drawsBackground): Added. Return m_drawsBackground.
14337         (WebKit::WebPageProxy::drawsTransparentBackground): Added. Return m_drawsTransparentBackground.
14338         * UIProcess/mac/ChunkedUpdateDrawingAreaProxyMac.mm:
14339         (WebKit::ChunkedUpdateDrawingAreaProxy::platformPaint): Use the copy blend mode when drawing a background.
14340         (WebKit::ChunkedUpdateDrawingAreaProxy::drawUpdateChunkIntoBackingStore): Use the copy blend mode to replace existing content.
14341         * WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
14342         (WebKit::WebFrameLoaderClient::transitionToCommittedForNewPage): Setup the new view's background color and transparent flag.
14343         * WebProcess/WebPage/WebPage.cpp:
14344         (WebKit::WebPage::WebPage): Initialize m_drawsBackground and m_drawsTransparentBackground.
14345         (WebKit::WebPage::setDrawsBackground): Added. Propagate the flag to the FrameViews.
14346         (WebKit::WebPage::setDrawsTransparentBackground): Added. Propagate the background color to the FrameViews.
14347         * WebProcess/WebPage/WebPage.h:
14348         (WebKit::WebPage::drawsBackground): Added. Return m_drawsBackground.
14349         (WebKit::WebPage::drawsTransparentBackground): Added. Return m_drawsTransparentBackground.
14350         * WebProcess/WebPage/WebPage.messages.in: Added SetDrawsBackground and SetDrawsTransparentBackground.
14351
14352 2010-12-09  Anders Carlsson  <andersca@apple.com>
14353
14354         Reviewed by Sam Weinig.
14355
14356         Cannot use NSKeyedArchiver in WK2 for ResourceResponses
14357         https://bugs.webkit.org/show_bug.cgi?id=50792
14358         <rdar://problem/8741799>
14359
14360         When encoding, first convert the requests and responses to the serializable dictionary representation
14361         and use the newly added CF CoreIPC encoders. When decoding, do the opposite.
14362
14363         * Shared/mac/WebCoreArgumentCodersMac.mm:
14364         (CoreIPC::encodeResourceRequest):
14365         (CoreIPC::decodeResourceRequest):
14366         (CoreIPC::encodeResourceResponse):
14367         (CoreIPC::decodeResourceResponse):
14368
14369 2010-12-09  Anders Carlsson  <andersca@apple.com>
14370
14371         Reviewed by Sam Weinig.
14372
14373         Add CoreIPC coders for CF types
14374         https://bugs.webkit.org/show_bug.cgi?id=50791
14375
14376         * Platform/CoreIPC/ArgumentDecoder.h:
14377         (CoreIPC::ArgumentDecoder::decodeEnum):
14378         * Platform/CoreIPC/ArgumentEncoder.h:
14379         (CoreIPC::ArgumentEncoder::encodeEnum):
14380         * Shared/cf/ArgumentCodersCF.cpp: Added.
14381         (CoreIPC::tokenNullTypeRef):
14382         (CoreIPC::typeFromCFTypeRef):
14383         (CoreIPC::encode):
14384         (CoreIPC::decode):
14385         (CoreIPC::sizeForNumberType):
14386         * Shared/cf/ArgumentCodersCF.h: Added.
14387         * WebKit2.xcodeproj/project.pbxproj:
14388
14389 2010-12-09  Brady Eidson  <beidson@apple.com>
14390
14391         Reviewed by Sam Weinig.
14392
14393         <rdar://problem/8749750> and https://bugs.webkit.org/show_bug.cgi?id=50786
14394         WK2 authentication never consults WebCore session credential storage.
14395
14396         * WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
14397         (WebKit::WebFrameLoaderClient::shouldUseCredentialStorage): Since we don't need to expose this as
14398           API at this time, always return true.
14399
14400 2010-12-09  Sam Weinig  <weinig@apple.com>
14401
14402         Reviewed by Alexey Proskuryakov.
14403
14404         WebKit2: Add support for access keys
14405         https://bugs.webkit.org/show_bug.cgi?id=49832
14406
14407         * WebProcess/WebPage/WebPage.cpp:
14408         (WebKit::handleKeyEvent): Match windows WebKit and call
14409         the event handler's for handleAccessKey function for
14410         system keys. This will never be hit on the Mac.
14411
14412 2010-12-09  Darin Adler  <darin@apple.com>
14413
14414         Qt build fix.
14415
14416         * WebProcess/WebCoreSupport/qt/WebContextMenuClientQt.cpp: Include "NotImplemented.h".
14417
14418 2010-12-09  Steve Falkenburg  <sfalken@apple.com>
14419
14420         Windows build fix.
14421         
14422         * WebProcess/WebCoreSupport/win/WebContextMenuClientWin.cpp:
14423
14424 2010-12-09  Brady Eidson  <beidson@apple.com>
14425
14426         Reviewed by Anders Carlsson.
14427
14428         <rdar://problem/8613779> and https://bugs.webkit.org/show_bug.cgi?id=50777
14429         WebKit2 ContextMenuClient support
14430
14431         Implement google search in a cross platform manner, and add a FIXME for download support:
14432         * WebProcess/WebCoreSupport/WebContextMenuClient.cpp:
14433         (WebKit::WebContextMenuClient::downloadURL):
14434         (WebKit::WebContextMenuClient::searchWithGoogle):
14435
14436         Mac implementations for speaking and searching:
14437         * WebProcess/WebCoreSupport/mac/WebContextMenuClientMac.mm: Added.
14438         (WebKit::WebContextMenuClient::lookUpInDictionary): Add a FIXME for now.
14439         (WebKit::WebContextMenuClient::isSpeaking):
14440         (WebKit::WebContextMenuClient::speak):
14441         (WebKit::WebContextMenuClient::stopSpeaking):
14442         (WebKit::WebContextMenuClient::searchWithSpotlight):
14443
14444         Stubs for Win and Qt:
14445         * WebProcess/WebCoreSupport/qt/WebContextMenuClientQt.cpp: Added.
14446         (WebKit::WebContextMenuClient::lookUpInDictionary):
14447         (WebKit::WebContextMenuClient::isSpeaking):
14448         (WebKit::WebContextMenuClient::speak):
14449         (WebKit::WebContextMenuClient::stopSpeaking):
14450         * WebProcess/WebCoreSupport/win/WebContextMenuClientWin.cpp: Added.
14451         (WebKit::WebContextMenuClient::lookUpInDictionary):
14452         (WebKit::WebContextMenuClient::isSpeaking):
14453         (WebKit::WebContextMenuClient::speak):
14454         (WebKit::WebContextMenuClient::stopSpeaking):
14455
14456         Project file stuffs:
14457         * WebKit2.pro:
14458         * WebKit2.xcodeproj/project.pbxproj:
14459         * win/WebKit2.vcproj:
14460
14461 2010-12-09  Anders Carlsson  <andersca@apple.com>
14462
14463         Reviewed by Sam Weinig.
14464
14465         Don't leak the PDFDocument
14466         https://bugs.webkit.org/show_bug.cgi?id=50771
14467
14468         * UIProcess/API/mac/PDFViewController.mm:
14469         (WebKit::PDFViewController::setPDFDocumentData):
14470
14471 2010-12-09  Anders Carlsson  <andersca@apple.com>
14472
14473         Reviewed by Sam Weinig.
14474
14475         Add a basic implementation of PDF support on Mac
14476         https://bugs.webkit.org/show_bug.cgi?id=50768
14477
14478         * UIProcess/API/mac/PDFViewController.h:
14479         * UIProcess/API/mac/PDFViewController.mm: Added.
14480         (-[WKPDFView initWithFrame:PDFViewController:WebKit::]):
14481         Setup the view hierarchy.
14482
14483         (-[WKPDFView invalidate]):
14484         Set the controller to null.
14485
14486         (-[WKPDFView pdfView]):
14487         Return the PDF view.
14488
14489         (WebKit::PDFViewController::create):
14490         (WebKit::PDFViewController::PDFViewController):
14491         Create a WKPDFView and insert it as a subview of the WKView.
14492
14493         (WebKit::PDFViewController::~PDFViewController):
14494         Remove the WKPDFView from the view hierarchy and invalidate it.
14495
14496         (WebKit::convertPostScriptDataSourceToPDF):
14497         Convert the data in the data reference to PDF and return it as a CFDataRef.
14498
14499         (WebKit::PDFViewController::setPDFDocumentData):
14500         Create a PDFDocument and set it on the PDF view.
14501
14502         (WebKit::PDFViewController::pdfDocumentClass):
14503         (WebKit::PDFViewController::pdfPreviewViewClass):
14504         (WebKit::PDFViewController::pdfKitBundle):
14505         Add soft-linking helper functions.
14506
14507         * UIProcess/API/mac/PageClientImpl.mm:
14508         (WebKit::PageClientImpl::didCommitLoadForMainFrame):
14509         (WebKit::PageClientImpl::didFinishLoadingDataForCustomRepresentation):
14510         Call the WKView methods.
14511         
14512         * UIProcess/API/mac/WKView.mm:
14513         (-[WKView _setPageHasCustomRepresentation:]):
14514         Create a PDF view controller if necessary.
14515
14516         (-[WKView _didFinishLoadingDataForCustomRepresentation:CoreIPC::]):
14517         Pass the data along to the PDF view controller.
14518
14519         * WebKit2.xcodeproj/project.pbxproj:
14520         Add new files.
14521
14522 2010-12-09  Anders Carlsson  <andersca@apple.com>
14523
14524         Reviewed by Sam Weinig.
14525
14526         Add support for custom representation
14527         https://bugs.webkit.org/show_bug.cgi?id=50767
14528
14529         * Shared/WebProcessCreationParameters.cpp:
14530         (WebKit::WebProcessCreationParameters::encode):
14531         (WebKit::WebProcessCreationParameters::decode):
14532         * Shared/WebProcessCreationParameters.h:
14533         Add mimeTypesWithCustomRepresentation and encode and decode accordingly.
14534
14535         * UIProcess/API/mac/PageClientImpl.h:
14536         * UIProcess/API/mac/PageClientImpl.mm:
14537         (WebKit::PageClientImpl::didCommitLoadForMainFrame):
14538         (WebKit::PageClientImpl::didFinishLoadingDataForCustomRepresentation):
14539         Add empty stubs for now.
14540
14541         * UIProcess/API/qt/qwkpage.cpp:
14542         (QWKPagePrivate::didCommitLoadForMainFrame):
14543         (QWKPagePrivate::didFinishLoadingDataForCustomRepresentation):
14544         * UIProcess/API/qt/qwkpage_p.h:
14545         Add empty stubs.
14546
14547         * UIProcess/PageClient.h:
14548         Add new functions for custom representations.
14549
14550         * UIProcess/WebFrameProxy.cpp:
14551         (WebKit::WebFrameProxy::canShowMIMEType):
14552         Check that the mime type is not null.
14553
14554         * UIProcess/WebPageProxy.cpp:
14555         (WebKit::WebPageProxy::didCommitLoadForFrame):
14556         This now takes an additional frameHasCustomRepresentation parameter. 
14557         Call the page client function.
14558
14559         (WebKit::WebPageProxy::didFinishLoadingDataForCustomRepresentation):
14560         Call the page client function.
14561
14562         * UIProcess/WebPageProxy.messages.in:
14563         Change DidCommitLoadForFrame message, add DidFinishLoadingDataForCustomRepresentation message.
14564
14565         * UIProcess/mac/WebContextMac.mm:
14566         (WebKit::WebContext::platformInitializeWebProcess):
14567         We want to use custom representations for PDF and PostScript MIME types.
14568
14569         * UIProcess/win/WebView.cpp:
14570         (WebKit::WebView::didCommitLoadForMainFrame):
14571         (WebKit::WebView::didFinishLoadingDataForCustomRepresentation):
14572         * UIProcess/win/WebView.h:
14573         Add stubs.
14574
14575         * WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
14576         (WebKit::WebFrameLoaderClient::WebFrameLoaderClient):
14577         Initialize m_frameHasCustomRepresentation.
14578
14579         (WebKit::WebFrameLoaderClient::hasHTMLView):
14580         The frame has a HTML view unless it has a custom representation.
14581
14582         (WebKit::WebFrameLoaderClient::dispatchDidCommitLoad):
14583         Pass along whether the frame has a custom representation.
14584
14585         (WebKit::WebFrameLoaderClient::committedLoad):
14586         Don't send data back to WebCore if the frame has a custom representation.
14587
14588         (WebKit::WebFrameLoaderClient::finishedLoading):
14589         Send all the data to the UI process.
14590
14591         (WebKit::WebFrameLoaderClient::transitionToCommittedForNewPage):
14592         Update the m_frameHasCustomRepresentation state based on the MIME type.
14593
14594         * WebProcess/WebCoreSupport/WebFrameLoaderClient.h:
14595         (WebKit::WebFrameLoaderClient::frameHasCustomRepresentation):
14596         Add getter.
14597
14598         * WebProcess/WebPage/mac/ChunkedUpdateDrawingAreaMac.cpp:
14599         (WebKit::ChunkedUpdateDrawingArea::paintIntoUpdateChunk):
14600         Don't do any painting if the main frame has a custom representation.
14601
14602         * WebProcess/WebProcess.cpp:
14603         (WebKit::WebProcess::initializeWebProcess):
14604         Add all the MIME types with custom representations.
14605
14606         * WebProcess/WebProcess.h:
14607         (WebKit::WebProcess::shouldUseCustomRepresentationForMIMEType):
14608         Add getter.
14609
14610 2010-12-09  Maciej Stachowiak  <mjs@apple.com>
14611
14612         Reviewed by Dan Bernstein.
14613
14614         Implement "Use Selection for Find" in WebKit2
14615         https://bugs.webkit.org/show_bug.cgi?id=50737
14616         <rdar://problem/8564881>
14617         
14618         * UIProcess/API/mac/WKView.mm: Add support for the takeFindStringFromSelection:
14619         selector as a command.
14620
14621 2010-12-09  Brady Eidson  <beidson@apple.com>
14622
14623         Reviewed by Maciej Stachowiak.
14624
14625         <rdar://problem/7660733> and https://bugs.webkit.org/show_bug.cgi?id=50191
14626         WebKit2 Authentication Support
14627
14628         Implement authentication-related coders:
14629         * Shared/WebCoreArgumentCoders.h:
14630
14631         Allow the ResourceResponse coders to handle null responses:
14632         * Shared/mac/WebCoreArgumentCodersMac.mm:
14633         (CoreIPC::encodeResourceResponse):
14634         (CoreIPC::decodeResourceResponse):
14635
14636         Add new API and Impl casts for ProtectionSpace and Credential enums:
14637         * UIProcess/API/C/WKAPICast.h:
14638         (WebKit::toAPI):
14639         (WebKit::toCredentialPersistence):
14640
14641         Move the DecisionListener to be accessed off the challenge itself, and fill in other
14642         necessary API:
14643         * UIProcess/API/C/WKAuthenticationChallenge.cpp:
14644         (WKAuthenticationChallengeGetDecisionListener):
14645         (WKAuthenticationChallengeGetProtectionSpace):
14646         (WKAuthenticationChallengeGetProposedCredential):
14647         (WKAuthenticationChallengeGetPreviousFailureCount):
14648         * UIProcess/API/C/WKAuthenticationChallenge.h:
14649         * UIProcess/Authentication/AuthenticationChallengeProxy.cpp:
14650         (WebKit::AuthenticationChallengeProxy::~AuthenticationChallengeProxy):
14651         (WebKit::AuthenticationChallengeProxy::proposedCredential):
14652         (WebKit::AuthenticationChallengeProxy::protectionSpace):
14653         * UIProcess/Authentication/AuthenticationChallengeProxy.h:
14654         (WebKit::AuthenticationChallengeProxy::previousFailureCount):
14655
14656         Fill in some credential API:
14657         * UIProcess/API/C/WKCredential.cpp:
14658         (WKCredentialCreate):
14659         (WKCredentialCopyUser):
14660         * UIProcess/API/C/WKCredential.h:
14661         * UIProcess/API/C/WKCredentialTypes.h: Added.
14662         * UIProcess/Authentication/WebCredential.cpp:
14663         (WebKit::WebCredential::WebCredential):
14664         (WebKit::WebCredential::user):
14665         * UIProcess/Authentication/WebCredential.h:
14666         (WebKit::WebCredential::create):
14667
14668         Fill in some protection space API:
14669         * UIProcess/API/C/WKProtectionSpace.cpp:
14670         (WKProtectionSpaceCopyHost):
14671         (WKProtectionSpaceGetPort):
14672         (WKProtectionSpaceCopyRealm):
14673         (WKProtectionSpaceGetIsProxy):
14674         (WKProtectionSpaceGetServerType):
14675         (WKProtectionSpaceGetReceivesCredentialSecurely):
14676         (WKProtectionSpaceGetAuthenticationScheme):
14677         * UIProcess/API/C/WKProtectionSpace.h:
14678         * UIProcess/API/C/WKProtectionSpaceTypes.h: Added.
14679         * UIProcess/Authentication/WebProtectionSpace.cpp:
14680         (WebKit::WebProtectionSpace::WebProtectionSpace):
14681         (WebKit::WebProtectionSpace::host):
14682         (WebKit::WebProtectionSpace::port):
14683         (WebKit::WebProtectionSpace::realm):
14684         (WebKit::WebProtectionSpace::isProxy):
14685         (WebKit::WebProtectionSpace::serverType):
14686         (WebKit::WebProtectionSpace::receivesCredentialSecurely):
14687         (WebKit::WebProtectionSpace::authenticationScheme):
14688         * UIProcess/Authentication/WebProtectionSpace.h:
14689
14690         Change the authentication challenge callback to reflect the new ownership of
14691         the DecisionListener:
14692         * UIProcess/API/C/WKPage.h:
14693         * UIProcess/WebLoaderClient.cpp:
14694         (WebKit::WebLoaderClient::didReceiveAuthenticationChallengeInFrame):
14695         * UIProcess/WebLoaderClient.h:
14696         * UIProcess/WebPageProxy.cpp:
14697         (WebKit::WebPageProxy::didReceiveAuthenticationChallenge):
14698
14699         * WebKit2.pro:
14700         * WebKit2.xcodeproj/project.pbxproj:
14701         * win/WebKit2.vcproj:
14702         * win/WebKit2Generated.make:
14703
14704 2010-12-08  Sam Weinig  <sam@webkit.org>
14705
14706         Reviewed by Geoffrey "Error" Garen.
14707
14708         Fix typo: Diplaying -> Displaying
14709
14710         * UIProcess/API/C/WKFrame.cpp:
14711         (WKFrameIsDisplayingStandaloneImageDocument):
14712         (WKFrameIsDisplayingMarkupDocument):
14713         * UIProcess/API/C/WKFrame.h:
14714         * UIProcess/WebFrameProxy.cpp:
14715         (WebKit::WebFrameProxy::canProvideSource):
14716         (WebKit::WebFrameProxy::isDisplayingStandaloneImageDocument):
14717         (WebKit::WebFrameProxy::isDisplayingMarkupDocument):
14718         * UIProcess/WebFrameProxy.h:
14719
14720 2010-12-08  Sam Weinig  <sam@webkit.org>
14721
14722         Reviewed by Gavin Barraclough.
14723
14724         Add WebKit2 Preference for TabsToLinks behavior.
14725         <rdar://problem/8664263>
14726
14727         * Shared/WebPreferencesStore.h:
14728         * UIProcess/API/C/WKPreferences.cpp:
14729         (WKPreferencesSetTabsToLinks):
14730         (WKPreferencesGetTabsToLinks):
14731         * UIProcess/API/C/WKPreferences.h:
14732         * WebProcess/WebCoreSupport/WebChromeClient.cpp:
14733         (WebKit::WebChromeClient::tabsToLinks):
14734         * WebProcess/WebPage/WebPage.cpp:
14735         (WebKit::WebPage::WebPage):
14736         (WebKit::WebPage::updatePreferences):
14737         * WebProcess/WebPage/WebPage.h:
14738         (WebKit::WebPage::tabsToLinks):
14739
14740 2010-12-08  Benjamin Poulain  <benjamin.poulain@nokia.com>
14741
14742         Reviewed by Andreas Kling.
14743
14744         WebTouchEvent::isTouchEventType() does not take into account the type TouchCancel
14745         https://bugs.webkit.org/show_bug.cgi?id=50680
14746
14747         Add the missing type check to WebTouchEvent::isTouchEventType().
14748
14749         * Shared/WebTouchEvent.cpp:
14750         (WebKit::WebTouchEvent::isTouchEventType):
14751
14752 2010-12-08  Sam Weinig  <sam@webkit.org>
14753
14754         Reviewed by Darin Adler.
14755
14756         Need a way to get a WKBundleFrameRef from JS HTMLIFrameElement
14757         https://bugs.webkit.org/show_bug.cgi?id=50726
14758
14759         Adds WKBundleNodeHandleCopyDocumentFrame, WKBundleNodeHandleCopyHTMLFrameElementContentFrame
14760         and WKBundleNodeHandleCopyHTMLIFrameElementContentFrame, to handle the document, <frame>
14761         and <iframe> cases.
14762
14763         * WebProcess/InjectedBundle/API/c/WKBundleNodeHandle.cpp:
14764         (WKBundleNodeHandleCopyDocumentFrame):
14765         (WKBundleNodeHandleCopyHTMLFrameElementContentFrame):
14766         (WKBundleNodeHandleCopyHTMLIFrameElementContentFrame):
14767         * WebProcess/InjectedBundle/API/c/WKBundleNodeHandlePrivate.h:
14768         * WebProcess/InjectedBundle/DOM/InjectedBundleNodeHandle.cpp:
14769         (WebKit::InjectedBundleNodeHandle::copyDocumentFrame):
14770         (WebKit::InjectedBundleNodeHandle::copyHTMLFrameElementContentFrame):
14771         (WebKit::InjectedBundleNodeHandle::copyHTMLIFrameElementContentFrame):
14772         * WebProcess/InjectedBundle/DOM/InjectedBundleNodeHandle.h:
14773
14774 2010-12-08  Sam Weinig  <sam@webkit.org>
14775
14776         Reviewed by Gavin Barraclough.
14777
14778         Need a WebKit2 way to test whether a frame is displaying a standalone image
14779         <rdar://problem/8443059>
14780         WebKit2: Need a way to test whether a page or frame is showing HTML content
14781         <rdar://problem/8642563>
14782
14783         Add WKFrameIsDiplayingStandaloneImageDocument and WKFrameIsDiplayingMarkupDocument.
14784
14785         * UIProcess/API/C/WKFrame.cpp:
14786         (WKFrameIsDiplayingStandaloneImageDocument):
14787         (WKFrameIsDiplayingMarkupDocument):
14788         * UIProcess/API/C/WKFrame.h:
14789         * UIProcess/WebFrameProxy.cpp:
14790         (WebKit::WebFrameProxy::canProvideSource): This now just calls isDiplayingMarkupDocument.
14791         (WebKit::WebFrameProxy::isDiplayingStandaloneImageDocument):
14792         (WebKit::WebFrameProxy::isDiplayingMarkupDocument):
14793         * UIProcess/WebFrameProxy.h:
14794
14795 2010-12-08  Anders Carlsson  <andersca@apple.com>
14796
14797         Reviewed by Darin Adler.
14798
14799         WebFrameProxy::canShowMIMEType should return true for PDF MIME types in the main frame
14800         https://bugs.webkit.org/show_bug.cgi?id=50724
14801
14802         * UIProcess/WebContext.cpp:
14803         (WebKit::WebContext::pdfAndPostScriptMIMETypes):
14804         * UIProcess/WebContext.h:
14805         * UIProcess/WebFrameProxy.cpp:
14806         (WebKit::WebFrameProxy::canShowMIMEType):
14807
14808 2010-12-08  Brian Weinstein  <bweinstein@apple.com>
14809
14810         Reviewed by Brady Eidson.
14811
14812         WebMenuTarget implemented in both WebKit and WebKit2
14813         https://bugs.webkit.org/show_bug.cgi?id=50665
14814         <rdar://problem/8742640>
14815         
14816         Rename WebMenuTarget to WKMenuTarget to prevent this warning and stay consistent with
14817         other WebKit2 namings.
14818
14819         * UIProcess/mac/WebContextMenuProxyMac.mm:
14820         (+[WKMenuTarget sharedMenuTarget]):
14821         (WebKit::nsMenuItemVector):
14822         (WebKit::WebContextMenuProxyMac::showContextMenu):
14823
14824 2010-12-08  Anders Carlsson  <andersca@apple.com>
14825
14826         Reviewed by Sam Weinig.
14827
14828         Move canShowMIMEType to Frame
14829         https://bugs.webkit.org/show_bug.cgi?id=50723
14830
14831         * UIProcess/API/C/WKFrame.cpp:
14832         (WKFrameCanShowMIMEType):
14833         * UIProcess/API/C/WKFrame.h:
14834         * UIProcess/API/C/WKPage.cpp:
14835         * UIProcess/API/C/WKPage.h:
14836         * UIProcess/WebFrameProxy.cpp:
14837         (WebKit::WebFrameProxy::canShowMIMEType):
14838         * UIProcess/WebFrameProxy.h:
14839
14840 2010-12-08  Sam Weinig  <sam@webkit.org>
14841
14842         Reviewed by Oliver Hunt.
14843
14844         Rename WKPreferencesGetFTPDirectoryTemplatePath to WKPreferencesCopyFTPDirectoryTemplatePath
14845         since it copies the value.
14846
14847         * UIProcess/API/C/WKPreferences.cpp:
14848         (WKPreferencesCopyFTPDirectoryTemplatePath):
14849         * UIProcess/API/C/WKPreferencesPrivate.h:
14850
14851 2010-12-08  Sam Weinig  <sam@webkit.org>
14852
14853         Reviewed by Brady Eidson.
14854
14855         WebKit2: Can't open ftp directory
14856         <rdar://problem/8489321>
14857
14858         * Shared/WebPreferencesStore.h:
14859         * UIProcess/API/C/WKPreferences.cpp:
14860         (WKPreferencesSetForceFTPDirectoryListings):
14861         (WKPreferencesGetForceFTPDirectoryListings):
14862         (WKPreferencesSetFTPDirectoryTemplatePath):
14863         (WKPreferencesGetFTPDirectoryTemplatePath):
14864         * UIProcess/API/C/WKPreferencesPrivate.h:
14865         * WebProcess/WebPage/WebPage.cpp:
14866         (WebKit::WebPage::updatePreferences):
14867         Pipe through the FTP directory listing preferences.
14868
14869 2010-12-08  Chris Marrin  <cmarrin@apple.com>
14870
14871         Reviewed by Simon Fraser.
14872
14873         Share code between Mac (CA) and Windows (CACF) GraphicsLayer implementations
14874         https://bugs.webkit.org/show_bug.cgi?id=49388
14875
14876         Fixes a build failure because WebChromeClient.cpp uses WebCore::Cursor.
14877         This patch adds an include of QuartzCore/CATransform3D, which includes
14878         a file that has a 'Cursor' object defined. So I had to qualify the
14879         use of Cursor in WebChromeClient.cpp.
14880
14881         * WebProcess/WebCoreSupport/WebChromeClient.cpp:
14882         (WebKit::WebChromeClient::setCursor):
14883
14884 2010-12-07  Brian Weinstein  <bweinstein@apple.com>
14885
14886         Reviewed by John Sullivan.
14887
14888         Layering Violation in ContextMenu - member variable of type HitTestResult
14889         https://bugs.webkit.org/show_bug.cgi?id=50586
14890         
14891         Update users of ContextMenu and ContextMenuController to match where the new functions 
14892         are located.
14893
14894         * Shared/WebContextMenuItemData.cpp:
14895         (WebKit::WebContextMenuItemData::WebContextMenuItemData): Remove the call to checkOrEnableItem, that call will be made when
14896             the ContextMenuItem is added to the ContextMenu through the ContextMenuController.
14897         * WebProcess/WebPage/WebContextMenu.cpp:
14898         (WebKit::WebContextMenu::show):
14899
14900 2010-12-08  Jessie Berlin  <jberlin@apple.com>
14901
14902         Reviewed by Adam Roben.
14903
14904         WebKit2: Implement WebChromeClient::exceededDatabaseQuota
14905         https://bugs.webkit.org/show_bug.cgi?id=50656
14906
14907         The exceededDatabaseQuota call from the WebProcess to the UIProcess needs to be synchronous
14908         because the new quota is checked directly after exceededDatabaseQuota returns in order to
14909         determine if the new Database can be created.
14910
14911         Pass all of the details from the WebProcess to the UIProcess in order to inform the
14912         decision in the UIProcess about the new quota. In WebKit1, these details were
14913         fetched through an additional call to the API detailsForDatabase (which is infeasible in
14914         WebKit2 since exceededDatabaseQuota is a synchronous call).
14915
14916         * Platform/CoreIPC/HandleMessage.h:
14917         (CoreIPC::callMemberFunction):
14918         Add a version that takes 7 parameters.
14919
14920         * UIProcess/API/C/WKPage.h:
14921
14922         * UIProcess/API/qt/qwkpage.cpp:
14923         (QWKPage::QWKPage):
14924         Indicate that exceededDatabaseQuota is not implemented.
14925
14926         * UIProcess/WebPageProxy.cpp:
14927         (WebKit::WebPageProxy::exceededDatabaseQuota):
14928         Call the UIClient's exceededDatabaseQuota
14929         * UIProcess/WebPageProxy.h:
14930         * UIProcess/WebPageProxy.messages.in:
14931
14932         * UIProcess/WebUIClient.cpp:
14933         (WebKit::WebUIClient::exceededDatabaseQuota):
14934         If the client does not implement exceededDatabaseQuota, return a the current quota.
14935         * UIProcess/WebUIClient.h:
14936
14937         * WebProcess/WebCoreSupport/WebChromeClient.cpp:
14938         (WebKit::WebChromeClient::exceededDatabaseQuota):
14939         Send a synchronous message to the UIProcess to ask for the new quota for the origin for the
14940         given frame.
14941
14942 2010-12-07  Anders Carlsson  <andersca@apple.com>
14943
14944         Reviewed by Sam Weinig.
14945
14946         fast/loader/empty-embed-src-attribute.html asserts in debug builds
14947         https://bugs.webkit.org/show_bug.cgi?id=50643
14948
14949         Just always ignore attempts to load requests with empty URLs.
14950
14951         * WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
14952         (WebKit::WebFrameLoaderClient::dispatchDecidePolicyForNavigationAction):
14953
14954 2010-12-07  Jessie Berlin  <jberlin@apple.com>
14955
14956         Build fix. Unreviewed.
14957
14958         * WebKit2.pro:
14959         Added WebDatabaseManagerQt.cpp.
14960         * WebProcess/WebCoreSupport/qt/WebDatabaseManagerQt.cpp: Added.
14961         (WebKit::WebDatabaseManager::databaseDirectory):
14962         Added a FIXME to implement and return an empty string.
14963
14964 2010-12-07  Darin Adler  <darin@apple.com>
14965
14966         Get a bit closer to making Qt WebKit2 compile again.
14967
14968         * WebKit2.pro: Add the WebDatabaseManager source files.
14969         Still missing: The Qt version of the databaseDirectory function.
14970
14971 2010-12-07  Jessie Berlin  <jberlin@apple.com>
14972
14973         Reviewed by Darin Adler.
14974
14975         WebKit2: Need to set the location of the Databases directory when the WebProcess is initialized
14976         https://bugs.webkit.org/show_bug.cgi?id=50604
14977
14978         * WebProcess/WebCoreSupport/WebDatabaseManager.cpp: Added.
14979         (WebKit::WebDatabaseManager::shared):
14980         (WebKit::WebDatabaseManager::WebDatabaseManager):
14981         Initialize the DatabaseTracker with the Database directory.
14982         * WebProcess/WebCoreSupport/WebDatabaseManager.h: Added.
14983         * WebProcess/WebCoreSupport/mac/WebDatabaseManagerMac.mm: Added.
14984         (WebKit::WebDatabaseManager::databaseDirectory):
14985         Copied from WebKitInitializeDatabasesIfNecessary in WebKit/mac/Storage/WebDatabaseManager.mm.
14986         * WebProcess/WebCoreSupport/win/WebDatabaseManagerWin.cpp: Added.
14987         (WebKit::WebDatabaseManager::databaseDirectory):
14988         Copied from WebKitInitializeWebDatabasesIfNecessary in WebKit/win/WebDatabaseManager.cpp.
14989
14990         * WebProcess/WebProcess.cpp:
14991         (WebKit::WebProcess::WebProcess):
14992         Make sure that the Databases directory has been set by calling WebDatabaseManager::shared().
14993
14994         * WebKit2.xcodeproj/project.pbxproj:
14995         Add WebDatabaseManager.cpp/.h/Mac.cpp
14996         * win/WebKit2.vcproj:
14997         Add WebDatabaseManager.cpp/.h/Win.cpp
14998
14999 2010-12-06  Darin Adler  <darin@apple.com>
15000
15001         Reviewed by Sam Weinig.
15002
15003         Pass security origin to make local file decision correctly
15004         https://bugs.webkit.org/show_bug.cgi?id=48603
15005
15006         * WebProcess/Plugins/PluginView.cpp:
15007         (WebKit::PluginView::loadURL): Pass security origin.
15008         * WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
15009         (WebKit::WebFrameLoaderClient::dispatchCreatePage): Ditto.
15010
15011 2010-12-06  Simon Fraser  <simon.fraser@apple.com>
15012
15013         Reviewed by Sam Weinig.
15014
15015         Fix two WebKit2 prefs issues.
15016
15017         * Shared/WebPreferencesStore.h: Include font-family preferences
15018         in the FOR_EACH_WEBKIT_STRING_PREFERENCE macro, actually propagating
15019         font family prefs to WebCore settings.
15020         
15021         * UIProcess/WebPageGroup.cpp:
15022         (WebKit::WebPageGroup::WebPageGroup):
15023         (WebKit::WebPageGroup::~WebPageGroup): Add and remove the WebPageGroup
15024         from the preference object it creates. This allows preference changes
15025         to actually be propagated to the web process.
15026
15027 2010-12-06  Anders Carlsson  <andersca@apple.com>
15028
15029         Reviewed by Sam Weinig.
15030
15031         The plug-in process crashes if it can't load the plug-in module
15032         https://bugs.webkit.org/show_bug.cgi?id=50601
15033         <rdar://problem/8692654>
15034
15035         * PluginProcess/PluginControllerProxy.cpp:
15036         (WebKit::PluginControllerProxy::initialize):
15037         Handle m_plugin being 0.
15038
15039         * PluginProcess/PluginProcess.cpp:
15040         (WebKit::PluginProcess::netscapePluginModule):
15041         Create the plug-in module if it doesn't exist.
15042
15043         (WebKit::PluginProcess::initialize):
15044         Store the plug-in path.
15045
15046         * PluginProcess/PluginProcess.h:
15047         * WebProcess/Plugins/Netscape/NetscapePlugin.cpp:
15048         (WebKit::NetscapePlugin::create):
15049         Return null if the plug-in module doesn't exist.
15050
15051         * WebProcess/Plugins/Netscape/NetscapePlugin.h:
15052         * WebProcess/WebPage/WebPage.cpp:
15053         (WebKit::WebPage::createPlugin):
15054         Simplify code.
15055
15056 2010-12-06  Anders Carlsson  <andersca@apple.com>
15057
15058         Reviewed by Sam Weinig.
15059
15060         WebProcess crash in NPRemoteObjectMap::invalidate when closing tab
15061         https://bugs.webkit.org/show_bug.cgi?id=50597
15062         <rdar://problem/8655584>
15063
15064         When invalidating the NPRemoteObjectMap, we don't want NPObjectMessageReceiver to
15065         release all objects NPObjects blindly because NPJSObjects have already been deallocated by the plug-in view.
15066
15067         This is not an ideal solution; an ideal solution would involve NPJSObjects notifying any NPObjectMessageReceiver objects
15068         that the NPJSObject is being destroyed. The NPObjectMessageReceiver could then simply null out the NPObject pointer.
15069
15070         * Shared/Plugins/NPObjectMessageReceiver.cpp:
15071         (WebKit::NPObjectMessageReceiver::NPObjectMessageReceiver):
15072         (WebKit::NPObjectMessageReceiver::~NPObjectMessageReceiver):
15073         * Shared/Plugins/NPObjectMessageReceiver.h:
15074         * Shared/Plugins/NPRemoteObjectMap.cpp:
15075         (WebKit::NPRemoteObjectMap::NPRemoteObjectMap):
15076         (WebKit::NPRemoteObjectMap::invalidate):
15077         * Shared/Plugins/NPRemoteObjectMap.h:
15078         (WebKit::NPRemoteObjectMap::isInvalidating):
15079
15080 2010-12-06  Sam Weinig  <sam@webkit.org>
15081
15082         Reviewed by Anders Carlsson.
15083
15084         Generalize didChangeLocationWithinPageForFrame for all same document navigations
15085         https://bugs.webkit.org/show_bug.cgi?id=50584
15086
15087           - Rename didChangeLocationWithinPageForFrame callbacks to didSameDocumentNavigationForFrame
15088           - Add WKSameDocumentNavigationType to didChangeLocationWithinPageForFrame.
15089           - Call didSameDocumentNavigationForFrame for HTML session state changes.
15090
15091         * Shared/API/c/WKPageLoadTypes.h: Added.
15092         * Shared/API/c/WKSharedAPICast.h:
15093         (WebKit::toAPI):
15094         Moved WKFrameNavigationType here from WKPage.h and add WKSameDocumentNavigationType.
15095
15096         * Shared/SameDocumentNavigationType.h: Added.
15097         * UIProcess/API/C/WKAPICast.h:
15098         Moved WKFrameNavigationType conversion from here.
15099
15100         * UIProcess/API/C/WKPage.h:
15101         * UIProcess/API/qt/qwkpage.cpp:
15102         (QWKPage::QWKPage):
15103         Update comment.
15104
15105         * UIProcess/WebFrameProxy.cpp:
15106         (WebKit::WebFrameProxy::didSameDocumentNavigation):
15107         * UIProcess/WebFrameProxy.h:
15108         * UIProcess/WebLoaderClient.cpp:
15109         (WebKit::WebLoaderClient::didSameDocumentNavigationForFrame):
15110         * UIProcess/WebLoaderClient.h:
15111         * UIProcess/WebPageProxy.cpp:
15112         (WebKit::WebPageProxy::didSameDocumentNavigationForFrame):
15113         * UIProcess/WebPageProxy.h:
15114         * UIProcess/WebPageProxy.messages.in:
15115         * WebProcess/InjectedBundle/API/c/WKBundlePage.h:
15116         * WebProcess/InjectedBundle/InjectedBundlePageLoaderClient.cpp:
15117         (WebKit::InjectedBundlePageLoaderClient::didSameDocumentNavigationForFrame):
15118         * WebProcess/InjectedBundle/InjectedBundlePageLoaderClient.h:
15119         Pipe new name through.
15120
15121         * WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
15122         (WebKit::WebFrameLoaderClient::dispatchDidChangeLocationWithinPage):
15123         (WebKit::WebFrameLoaderClient::dispatchDidPushStateWithinPage):
15124         (WebKit::WebFrameLoaderClient::dispatchDidReplaceStateWithinPage):
15125         (WebKit::WebFrameLoaderClient::dispatchDidPopStateWithinPage):
15126         Call didChangeLocationWithinPageForFrame for session state changes.
15127
15128         * WebKit2.pro:
15129         * WebKit2.xcodeproj/project.pbxproj:
15130         * win/WebKit2.vcproj:
15131         * win/WebKit2Generated.make:
15132         Add new files.
15133
15134 2010-12-06  Jessie Berlin  <jberlin@apple.com>
15135
15136         Reviewed by Dan Bernstein.
15137
15138         WebKit2: Expose the preference to enable or disable HTML5 Databases.
15139         https://bugs.webkit.org/show_bug.cgi?id=50411
15140
15141         * Shared/WebPreferencesStore.h:
15142         Make the preference to enable HTML5 Databases default ot true.
15143
15144         * UIProcess/API/C/WKPreferences.cpp:
15145         (WKPreferencesSetDatabasesEnabled):
15146         (WKPreferencesGetDatabasesEnabled):
15147         * UIProcess/API/C/WKPreferences.h:
15148
15149         * WebProcess/WebPage/WebPage.cpp:
15150         (WebKit::WebPage::updatePreferences):
15151         Set AbstractDatabase::isAvailable (mimicking how the preference is set in WebKit1).
15152
15153 2010-12-06  Mark Rowe  <mrowe@apple.com>
15154
15155         Build fix.
15156
15157         * WebProcess/Plugins/Netscape/mac/NetscapePluginMac.mm:
15158         (WebKit::NetscapePlugin::platformHandleKeyboardEvent): Wrap Carbon-specific code in #ifndef NP_NO_CARBON.
15159
15160 2010-12-06  Anders Carlsson  <andersca@apple.com>
15161
15162         Reviewed by Adam Roben.
15163
15164         Add a shim for GetCurrentEventButtonState
15165         https://bugs.webkit.org/show_bug.cgi?id=50583
15166
15167         * PluginProcess/mac/PluginProcessMac.mm:
15168         (WebKit::getCurrentEventButtonState):
15169         Get the event button state from the plug-in.
15170
15171         (WebKit::PluginProcess::initializeShim):
15172         Add new shim callback.
15173
15174         * PluginProcess/mac/PluginProcessShim.cpp:
15175         (WebKit::shimGetCurrentEventButtonState):
15176         Add shim.
15177
15178         * PluginProcess/mac/PluginProcessShim.h:
15179         * WebProcess/Plugins/Netscape/NetscapePlugin.h:
15180         * WebProcess/Plugins/Netscape/mac/NetscapePluginMac.mm:
15181         (WebKit::NetscapePlugin::buttonState):
15182         Return the button state.
15183
15184         (WebKit::NetscapePlugin::platformHandleMouseEvent):
15185         Update the button state. Also, make sure to actually pass the modifiers to NPP_HandleEvent.
15186         
15187
15188 2010-12-06  Anders Carlsson  <andersca@apple.com>
15189
15190         Reviewed by Adam Roben.
15191
15192         Add a shim for IsWindowActive
15193         https://bugs.webkit.org/show_bug.cgi?id=50582
15194
15195         * PluginProcess/mac/PluginProcessMac.mm:
15196         (WebKit::isWindowActive):
15197         Get the NetscapePlugin from the WindowRef and check if the plug-in's window is active.
15198
15199         (WebKit::PluginProcess::initializeShim):
15200         * PluginProcess/mac/PluginProcessShim.cpp        
15201         (WebKit::shimIsWindowActive):
15202         Call isWindowActive. If it returns true, return the result value. Otherwise, call the real
15203         IsWindowActive function.
15204
15205         * PluginProcess/mac/PluginProcessShim.h:
15206         * WebProcess/Plugins/Netscape/NetscapePlugin.cpp:
15207         (WebKit::NetscapePlugin::NetscapePlugin):
15208         Initialize m_isWindowactive.
15209
15210         * WebProcess/Plugins/Netscape/NetscapePlugin.h:
15211         (WebKit::NetscapePlugin::isWindowActive):
15212         Return whether the window is active.
15213
15214         * WebProcess/Plugins/Netscape/mac/NetscapePluginMac.mm:
15215         (WebKit::windowMap):
15216         (WebKit::NetscapePlugin::platformPostInitialize):
15217         (WebKit::NetscapePlugin::platformDestroy):
15218         (WebKit::NetscapePlugin::netscapePluginFromWindow):
15219         Add a mapping between windows and the corresponding NetscapePlugin objects.
15220
15221         (WebKit::NetscapePlugin::windowFocusChanged):
15222         Update the window focus member variable.
15223
15224 2010-12-06  Anders Carlsson  <andersca@apple.com>
15225
15226         Reviewed by Dan Bernstein.
15227
15228         REGERSSION (r73310?): Contents of <select> popup menus are upside-down on Windows
15229         https://bugs.webkit.org/show_bug.cgi?id=50544
15230         <rdar://problem/8732336>
15231
15232         * Shared/BackingStore.cpp:
15233         * Shared/BackingStore.h:
15234         * Shared/cairo/BackingStoreCairo.cpp:
15235         Remove BackingStore::createFlippedGraphicsContext.
15236
15237         * WebProcess/WebCoreSupport/win/WebPopupMenuWin.cpp:
15238         (WebKit::WebPopupMenu::setUpPlatformData):
15239         Don't create a flipped graphics context.
15240
15241 2010-12-06  Anders Carlsson  <andersca@apple.com>
15242
15243         Reviewed by Dan Bernstein.
15244
15245         REGRESSION: Text in Find indicator is vertically flipped
15246         https://bugs.webkit.org/show_bug.cgi?id=50524
15247         <rdar://problem/8732978>
15248
15249         Don't flip the graphics context.
15250
15251         * UIProcess/FindIndicator.cpp:
15252         (WebKit::FindIndicator::draw):
15253
15254 2010-12-03  Anders Carlsson  <andersca@apple.com>
15255
15256         Reviewed by Sam Weinig.
15257
15258         Dispatch keyboard events in the Carbon event model
15259         https://bugs.webkit.org/show_bug.cgi?id=50503
15260
15261         * Shared/WebEvent.h:
15262         (WebKit::WebKeyboardEvent::macCharCode):
15263         * Shared/WebKeyboardEvent.cpp:
15264         (WebKit::WebKeyboardEvent::WebKeyboardEvent):
15265         (WebKit::WebKeyboardEvent::encode):
15266         (WebKit::WebKeyboardEvent::decode):
15267         Add macCharCode field.
15268
15269         * Shared/mac/WebEventFactory.mm:
15270         (WebKit::WebEventFactory::createWebKeyboardEvent):
15271         * Shared/qt/WebEventFactoryQt.cpp:
15272         (WebKit::WebEventFactory::createWebKeyboardEvent):
15273         * Shared/win/WebEventFactory.cpp:
15274         (WebKit::WebEventFactory::createWebKeyboardEvent):
15275         Pass along the Mac char code.
15276         
15277         * WebProcess/Plugins/Netscape/mac/NetscapePluginMac.mm:
15278         (WebKit::NetscapePlugin::platformHandleKeyboardEvent):
15279         Convert the event to a Carobn event.
15280
15281 2010-12-03  John Sullivan  <sullivan@apple.com>
15282
15283         Reviewed by Adam Roben.
15284
15285         https://bugs.webkit.org/show_bug.cgi?id=50504
15286         Expose some more WebCore settings in WebKit2 preferences
15287
15288         * Shared/WebPreferencesStore.h:
15289         Changed name of existing FOR_EACH_WEBKIT_STRING_PREFERENCE macro to
15290         FOR_EACH_WEBKIT_FONT_FAMILY_PREFERENCE since it was all about platform-specific
15291         font families, and I'm now introducing a non-platform-spacific string, and
15292         I didn't want to put the new preference in two platform-specific lists. Then
15293         added a new FOR_EACH_WEBKIT_STRING_PREFERENCE to hold the new preference. Note
15294         that the other preferences exposed in this patch were already declared here.
15295         
15296         * UIProcess/API/C/WKPreferences.cpp:
15297         (WKPreferencesSetDefaultFontSize):
15298         New wrapper.
15299         (WKPreferencesGetDefaultFontSize):
15300         Ditto.
15301         (WKPreferencesSetDefaultFixedFontSize):
15302         Ditto.
15303         (WKPreferencesGetDefaultFixedFontSize):
15304         Ditto.
15305         (WKPreferencesSetDefaultTextEncodingName):
15306         Ditto.
15307         (WKPreferencesCopyDefaultTextEncodingName):
15308         Ditto.
15309         
15310         * UIProcess/API/C/WKPreferences.h:
15311         Declare new wrappers.
15312
15313 2010-12-05  Adam Roben  <aroben@apple.com>
15314
15315         Windows production build fix
15316
15317         Put spaces after trailing backslashes when setting
15318         %WebKitVSPropsRedirectionDir%. According to MSDN
15319         <http://msdn.microsoft.com/en-us/library/2kzfk8c7(v=VS.80).aspx>:
15320
15321            A backslash ( \ ) followed by a newline character is interpreted as
15322            a space in the command; use a backslash at the end of a line to
15323            continue a command onto the next line. NMAKE interprets the
15324            backslash literally if any other character, including a space or
15325            tab, follows the backslash.
15326
15327         * win/WebKit2.make:
15328
15329 2010-12-04  Sam Weinig  <sam@webkit.org>
15330
15331         Reviewed by Jon Honeycutt.
15332
15333         WebKit2: Need client functions to notify app when the url changes due to a fragment navigation
15334         https://bugs.webkit.org/show_bug.cgi?id=50511
15335
15336         Pipe didChangeLocationWithinPageForFrame up through the UIProcess to the WKPageLoadClient,
15337         updating the WebFrameProxy's URL on the way.
15338
15339         Test: PageLoadDidChangeLocationWithinPageForFrame
15340
15341         * UIProcess/API/C/WKPage.h:
15342         * UIProcess/API/qt/qwkpage.cpp:
15343         (QWKPage::QWKPage):
15344         * UIProcess/WebFrameProxy.cpp:
15345         (WebKit::WebFrameProxy::didChangeURLWithoutNavigation):
15346         * UIProcess/WebFrameProxy.h:
15347         * UIProcess/WebLoaderClient.cpp:
15348         (WebKit::WebLoaderClient::didChangeLocationWithinPageForFrame):
15349         * UIProcess/WebLoaderClient.h:
15350         * UIProcess/WebPageProxy.cpp:
15351         (WebKit::WebPageProxy::didChangeLocationWithinPageForFrame):
15352         * UIProcess/WebPageProxy.h:
15353         * UIProcess/WebPageProxy.messages.in:
15354         * WebProcess/InjectedBundle/API/c/WKBundlePage.h:
15355         * WebProcess/InjectedBundle/InjectedBundlePageLoaderClient.cpp:
15356         (WebKit::InjectedBundlePageLoaderClient::didChangeLocationWithinPageForFrame):
15357         (WebKit::InjectedBundlePageLoaderClient::didDisplayInsecureContentForFrame):
15358         (WebKit::InjectedBundlePageLoaderClient::didRunInsecureContentForFrame):
15359         * WebProcess/InjectedBundle/InjectedBundlePageLoaderClient.h:
15360         * WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
15361         (WebKit::WebFrameLoaderClient::dispatchDidCancelClientRedirect): Fix typo.
15362         (WebKit::WebFrameLoaderClient::dispatchDidChangeLocationWithinPage):
15363
15364 2010-12-03  Timothy Hatcher  <timothy@apple.com>
15365
15366         Make the Web Inspector window show and be usable on Mac.
15367
15368         https://webkit.org/b/50490
15369
15370         Reviewed by Sam Weinig.
15371
15372         * UIProcess/WebInspectorProxy.cpp:
15373         (WebKit::WebInspectorProxy::invalidate): Call platformClose.
15374         (WebKit::WebInspectorProxy::didLoadInspectorPage): Call platformOpen.
15375         (WebKit::WebInspectorProxy::didClose): Call platformClose.
15376         * UIProcess/WebInspectorProxy.h:
15377         * UIProcess/WebInspectorProxy.messages.in: Added DidClose.
15378         * UIProcess/mac/WebInspectorProxyMac.mm:
15379         (-[WebInspectorProxyObjCAdapter initWithWebInspectorProxy:]): Added.
15380         (-[WebInspectorProxyObjCAdapter windowWillClose:]): Added. Call WebInspectorProxy::close.
15381         (WebKit::WebInspectorProxy::platformOpen): Added.
15382         (WebKit::WebInspectorProxy::platformClose): Added.
15383         * UIProcess/qt/WebInspectorProxyQt.cpp:
15384         (WebKit::WebInspectorProxy::platformOpen): Added stub.
15385         (WebKit::WebInspectorProxy::platformClose): Added stub.
15386         * UIProcess/win/WebInspectorProxyWin.cpp:
15387         (WebKit::WebInspectorProxy::platformOpen): Added stub.
15388         (WebKit::WebInspectorProxy::platformClose): Added stub.
15389         * WebProcess/WebCoreSupport/WebInspectorClient.cpp:
15390         (WebKit::WebInspectorClient::sendMessageToFrontend): Added more null checks to avoid a crash.
15391         * WebProcess/WebCoreSupport/WebInspectorFrontendClient.cpp:
15392         (WebKit::WebInspectorFrontendClient::closeWindow): Call WebInspector::didClose.
15393         (WebKit::WebInspectorFrontendClient::disconnectFromBackend): Ditto.
15394         (WebKit::WebInspectorFrontendClient::sendMessageToBackend): Removed. This does not need to be
15395         implemented by our subclass since we are in a single process.
15396         * WebProcess/WebCoreSupport/WebInspectorFrontendClient.h: Removed sendMessageToBackend.
15397         * WebProcess/WebPage/WebInspector.cpp:
15398         (WebKit::WebInspector::didClose): Added. Send a DidClose message to the UI process.
15399         * WebProcess/WebPage/WebInspector.h:
15400
15401 2010-12-03  Anders Carlsson  <andersca@apple.com>
15402
15403         Reviewed by Sam Weinig and Dan Bernstein.
15404
15405         Clean up the BackingStore implementation
15406         https://bugs.webkit.org/show_bug.cgi?id=50498
15407
15408         * Shared/BackingStore.cpp:
15409         (WebKit::BackingStore::create):
15410         (WebKit::BackingStore::createSharable):
15411         (WebKit::BackingStore::resize):
15412         Use new numBytesForSize helper function.
15413
15414         (WebKit::BackingStore::createFlippedGraphicsContext):
15415         Make this function platform independent.
15416
15417         * Shared/BackingStore.h:
15418         (WebKit::BackingStore::numBytesForSize):
15419         Given a size, return the number of bytes needed for it.
15420
15421         (WebKit::BackingStore::sizeInBytes):
15422         Implement.
15423
15424         * Shared/cg/BackingStoreCG.cpp:
15425         (WebKit::BackingStore::paint):
15426         Don't use CGBitmapContextCreateImage; it creates an extra copy of the image data.
15427
15428         * Shared/qt/BackingStoreQt.cpp:
15429         Remove createFlippedGraphicsContext.
15430
15431 2010-12-03  Siddharth Mathur  <siddharth.mathur@nokia.com>
15432
15433         Reviewed by Laszlo Gombos.
15434
15435         [Qt] [WK2] Build system improvements for non-Unix targets
15436         https://bugs.webkit.org/show_bug.cgi?id=50257
15437
15438         * DerivedSources.pro:
15439         Fix dir seperator errors on Windows build host. Thanks to Laszlo Gombos.
15440
15441 2010-12-03  Sam Weinig  <sam@webkit.org>
15442
15443         Reviewed by Maciej Stachowiak.
15444
15445         Enable <a ping> for Mac/Windows/WebKit2 builds
15446         <rdar://problem/8504473>
15447         https://bugs.webkit.org/show_bug.cgi?id=50488
15448
15449         * Shared/WebPreferencesStore.h:
15450         * UIProcess/API/C/WKPreferences.cpp:
15451         (WKPreferencesSetHyperlinkAuditingEnabled):
15452         (WKPreferencesGetHyperlinkAuditingEnabled):
15453         * UIProcess/API/C/WKPreferences.h:
15454         Add "HyperlinkAuditing" preference and enabled it by default.
15455
15456 2010-12-03  Brady Eidson  <beidson@apple.com>
15457
15458         Reviewed by good sense in fixing builds.
15459
15460         Export the 4 new API headers I added today.
15461
15462         * WebKit2.xcodeproj/project.pbxproj:
15463
15464 2010-12-03  Brady Eidson  <beidson@apple.com>
15465
15466         Reviewed by Sam Weinig.
15467
15468         <rdar://problem/8725679> and https://bugs.webkit.org/show_bug.cgi?id=50482
15469         Crash trying to empty caches with no WebProcess.
15470
15471         * Shared/WebProcessCreationParameters.h: Add the "clear this cache" flags.
15472
15473         * UIProcess/WebContext.cpp:
15474         (WebKit::WebContext::WebContext):
15475         (WebKit::WebContext::ensureWebProcess): If either of the clear cache flags are set when a new WebProcess is
15476           created, include those flags in the parameters.
15477         (WebKit::WebContext::clearResourceCaches): If the current process isn't valid, flag this action to be done later.
15478         (WebKit::WebContext::clearApplicationCache): Ditto.
15479         * UIProcess/WebContext.h:
15480
15481         * WebProcess/WebProcess.cpp:
15482         (WebKit::WebProcess::initializeWebProcess): Clear the caches if told to.
15483
15484 2010-12-03  Sam Weinig  <sam@webkit.org>
15485
15486         Reviewed by Gavin Barraclough.
15487
15488         Fix failing API test. The default san serif font on the mac
15489         should be Helvetica, not Courier.
15490
15491         * Shared/WebPreferencesStore.h:
15492
15493 2010-12-03  Jia Pu  <jpu@apple.com>
15494
15495         Reviewed by Darin Adler.
15496
15497         Need to move all code that applies correction into correction panel callback.
15498         https://bugs.webkit.org/show_bug.cgi?id=50426
15499         <rdar://problem/8720832>
15500
15501         Adopted new signature of dismissCorrectionPanel.
15502
15503         * WebProcess/WebCoreSupport/WebEditorClient.h:
15504         * WebProcess/WebCoreSupport/mac/WebEditorClientMac.mm:
15505         (WebKit::WebEditorClient::dismissCorrectionPanel):
15506
15507 2010-12-03  Jessie Berlin  <jberlin@apple.com>
15508
15509         Windows build fix. Unreviewed.
15510
15511         * win/WebKit2Generated.make:
15512         Add the new API files from http://trac.webkit.org/changeset/73281.
15513
15514 2010-12-03  Brady Eidson  <beidson@apple.com>
15515
15516         Reviewed by Anders Carlsson.
15517
15518         Groundwork for <rdar://problem/7660733> and https://bugs.webkit.org/show_bug.cgi?id=50191
15519         WebKit2 Authentication Support
15520
15521         With this patch in place, authentication challenges are sent up from WebCore and shipped over the IPC layer.
15522         Client apps can implement the related client methods to attempt to continue without credentials or cancel a
15523         challenge.
15524
15525         There's not yet API to inspect a challenge or create a credential to use in reply - that will come later.
15526
15527         Build-system changes:
15528         * DerivedSources.make:
15529         * DerivedSources.pro:
15530         * WebKit2.pro:
15531         * WebKit2.xcodeproj/project.pbxproj:
15532         * win/WebKit2.vcproj:
15533         * win/WebKit2Common.vsprops:
15534
15535         Messages and casts for IPC and APIs:
15536         * Platform/CoreIPC/MessageID.h:
15537         * Shared/API/c/WKBase.h:
15538         * Shared/APIObject.h:
15539         * Shared/WebCoreArgumentCoders.h:
15540         * UIProcess/API/C/WKAPICast.h:
15541         * WebProcess/WebProcess.cpp:
15542         (WebKit::WebProcess::didReceiveMessage):
15543
15544         Stub out the AuthenticationChallenge class family:
15545         * UIProcess/API/C/WKAuthenticationChallenge.cpp: Added.
15546         (WKAuthenticationChallengeGetTypeID):
15547         * UIProcess/API/C/WKAuthenticationChallenge.h: Added.
15548         * UIProcess/API/C/WKCredential.cpp: Added.
15549         (WKCredentialGetTypeID):
15550         * UIProcess/API/C/WKCredential.h: Added.
15551         * UIProcess/API/C/WKProtectionSpace.cpp: Added.
15552         (WKProtectionSpaceGetTypeID):
15553         * UIProcess/API/C/WKProtectionSpace.h: Added.
15554
15555         Add an Authentication listener for the client app to respond to:
15556         * UIProcess/API/C/WKAuthenticationDecisionListener.cpp: Added.
15557         (WKAuthenticationDecisionListenerGetTypeID):
15558         (WKAuthenticationDecisionListenerUseCredential):
15559         (WKAuthenticationDecisionListenerCancel):
15560         * UIProcess/API/C/WKAuthenticationDecisionListener.h: Added.
15561
15562         Add Authentication related methods to the page loader client:
15563         * UIProcess/API/C/WKPage.h:
15564
15565         Add empty implementations of the new API objects:
15566         * UIProcess/Authentication: Added.
15567         * UIProcess/Authentication/AuthenticationChallengeProxy.cpp: Added.
15568         (WebKit::AuthenticationChallengeProxy::AuthenticationChallengeProxy):
15569         (WebKit::AuthenticationChallengeProxy::~AuthenticationChallengeProxy):
15570         (WebKit::AuthenticationChallengeProxy::useCredential):
15571         (WebKit::AuthenticationChallengeProxy::cancel):
15572         * UIProcess/Authentication/AuthenticationChallengeProxy.h: Added.
15573         (WebKit::AuthenticationChallengeProxy::create):
15574         (WebKit::AuthenticationChallengeProxy::listener):
15575         (WebKit::AuthenticationChallengeProxy::type):
15576
15577         * UIProcess/Authentication/WebCredential.cpp: Added.
15578         (WebKit::WebCredential::core):
15579         * UIProcess/Authentication/WebCredential.h: Added.
15580         (WebKit::WebCredential::create):
15581         (WebKit::WebCredential::type):
15582         * UIProcess/Authentication/WebProtectionSpace.cpp: Added.
15583         (WebKit::WebProtectionSpace::WebProtectionSpace):
15584         * UIProcess/Authentication/WebProtectionSpace.h: Added.
15585         (WebKit::WebProtectionSpace::create):
15586         (WebKit::WebProtectionSpace::type):
15587
15588         Add implementation of the Authentication decision listener:
15589         * UIProcess/Authentication/AuthenticationDecisionListener.cpp: Added.
15590         (WebKit::AuthenticationDecisionListener::AuthenticationDecisionListener):
15591         (WebKit::AuthenticationDecisionListener::useCredential):
15592         (WebKit::AuthenticationDecisionListener::cancel):
15593         (WebKit::AuthenticationDecisionListener::detachChallenge):
15594         * UIProcess/Authentication/AuthenticationDecisionListener.h: Added.
15595         (WebKit::AuthenticationDecisionListener::create):
15596         (WebKit::AuthenticationDecisionListener::type):
15597
15598         WebPage and PageLoaderClient glue:
15599         * UIProcess/WebLoaderClient.cpp:
15600         (WebKit::WebLoaderClient::canAuthenticateAgainstProtectionSpaceInFrame):
15601         (WebKit::WebLoaderClient::didReceiveAuthenticationChallengeInFrame):
15602         * UIProcess/WebLoaderClient.h:
15603         * UIProcess/WebPageProxy.cpp:
15604         (WebKit::WebPageProxy::canAuthenticateAgainstProtectionSpaceInFrame):
15605         (WebKit::WebPageProxy::didReceiveAuthenticationChallenge):
15606         * UIProcess/WebPageProxy.h:
15607         * UIProcess/WebPageProxy.messages.in:
15608
15609         Add a manager to map the actual platform authentication challenges to a challenge ID,
15610         as at least some platforms require the object identity to persist:
15611         * WebProcess/Authentication: Added.
15612         * WebProcess/Authentication/AuthenticationManager.cpp: Added.
15613         (WebKit::generateAuthenticationChallengeID):
15614         (WebKit::AuthenticationManager::shared):
15615         (WebKit::AuthenticationManager::AuthenticationManager):
15616         (WebKit::AuthenticationManager::didReceiveMessage):
15617         (WebKit::AuthenticationManager::didReceiveAuthenticationChallenge):
15618         (WebKit::AuthenticationManager::useCredentialForChallenge):
15619         (WebKit::AuthenticationManager::continueWithoutCredentialForChallenge):
15620         (WebKit::AuthenticationManager::cancelChallenge):
15621         * WebProcess/Authentication/AuthenticationManager.h: Added.
15622         * WebProcess/Authentication/AuthenticationManager.messages.in: Added.
15623
15624         Hand off Authentication challenges to the manager to be sent over IPC:
15625         * WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
15626         (WebKit::WebFrameLoaderClient::dispatchDidReceiveAuthenticationChallenge):
15627         (WebKit::WebFrameLoaderClient::canAuthenticateAgainstProtectionSpace):
15628
15629         * UIProcess/API/qt/qwkpage.cpp:
15630
15631 2010-12-03  Anders Carlsson  <andersca@apple.com>
15632
15633         Reviewed by Dan Bernstein.
15634
15635         Flip the destination context when painting a backing store into the destination
15636         https://bugs.webkit.org/show_bug.cgi?id=50491
15637
15638         * Shared/cg/BackingStoreCG.cpp:
15639         (WebKit::BackingStore::paint):
15640
15641 2010-12-03  Anders Carlsson  <andersca@apple.com>
15642
15643         Reviewed by Dan Bernstein.
15644
15645         The chunked update drawing area is flipped twice when drawing
15646         https://bugs.webkit.org/show_bug.cgi?id=50465
15647         <rdar://problem/8726836>
15648
15649         * UIProcess/mac/ChunkedUpdateDrawingAreaProxyMac.mm:
15650         (WebKit::ChunkedUpdateDrawingAreaProxy::platformPaint):
15651         (WebKit::ChunkedUpdateDrawingAreaProxy::drawUpdateChunkIntoBackingStore):
15652         Flip the destination contexts, thus unflipping them. (Turns out two wrongs make a right here).
15653
15654 2010-12-03  Jessie Berlin  <jberlin@apple.com>
15655
15656         Reviewed by Sam Weinig.
15657
15658         Need a WebKit2 Equivalent of WebSecurityOrigin
15659         https://bugs.webkit.org/show_bug.cgi?id=50170
15660
15661         * Shared/API/c/WKBase.h:
15662         Add the WKSecurityOriginRef typedef.
15663
15664         * Shared/APIObject.h:
15665         Add the SecurityOrigin type as a Shared type.
15666
15667         * Shared/API/c/WKSharedAPICast.h::
15668         Add the mapping between WKSecurityOriginRef and WebSecurityOrigin.
15669
15670         * UIProcess/API/C/WKSecurityOrigin.cpp: Added.
15671         (WKSecurityOriginGetTypeID):
15672         (WKSecurityOriginCreate):
15673         (WKSecurityOriginGetProtocol):
15674         (WKSecurityOriginGetHost):
15675         (WKSecurityOriginGetPort):
15676         * UIProcess/API/C/WKSecurityOrigin.h: Added.
15677
15678         * UIProcess/WebSecurityOrigin.h: Added.
15679         (WebKit::WebSecurityOrigin::create):
15680         Create based on the database identifier, which contains the protocol, host and port.
15681         (WebKit::WebSecurityOrigin::protocol):
15682         (WebKit::WebSecurityOrigin::host):
15683         (WebKit::WebSecurityOrigin::port):
15684         (WebKit::WebSecurityOrigin::databaseIdentifier):
15685         (WebKit::WebSecurityOrigin::WebSecurityOrigin):
15686         (WebKit::WebSecurityOrigin::type):
15687
15688         * WebKit2.pro:
15689         Add WKSecurityOrigin.cpp/.h.
15690
15691         * WebKit2.xcodeproj/project.pbxproj:
15692         * win/WebKit2.vcproj:
15693         Add the WebSecurityOrigin.h and WKSecurityOrigin.cpp/.h.
15694
15695         * win/WebKit2Generated.make:
15696         Make sure WKSecurityOrigin.h file gets copied over to the WebKitBuild directory on Windows.
15697
15698 2010-12-02  Laszlo Gombos  <laszlo.1.gombos@nokia.com>
15699
15700         Reviewed by Csaba Osztrogonác.
15701
15702         [Qt] Fix compilation with !ENABLE(OFFLINE_WEB_APPLICATIONS) and 
15703         !ENABLE(TILED_BACKING_STORE) for WebKit2
15704         https://bugs.webkit.org/show_bug.cgi?id=50071
15705
15706         Add appropriate guards. No functional change if guards are set.
15707
15708         * UIProcess/API/qt/qwkpage.cpp:
15709         (QWKPage::setActualVisibleContentsRect):
15710         * UIProcess/TiledDrawingAreaProxy.cpp:
15711         * UIProcess/qt/TiledDrawingAreaProxyQt.cpp:
15712         * UIProcess/qt/TiledDrawingAreaTileQt.cpp:
15713         * UIProcess/qt/WebContextQt.cpp:
15714         (WebKit::WebContext::applicationCacheDirectory):
15715         * WebProcess/WebProcess.cpp:
15716         (WebKit::WebProcess::initializeWebProcess):
15717
15718 2010-12-02  Sam Weinig  <sam@webkit.org>
15719
15720         Fix Qt.
15721
15722         * UIProcess/API/qt/qwkpreferences.cpp:
15723         (QWKPreferencesPrivate::createPreferences):
15724
15725 2010-12-02  Sam Weinig  <sam@webkit.org>
15726
15727         Reviewed by Anders Carlsson.
15728
15729         WebKit2 Preferences should be held off the PageGroup, not the Context
15730         https://bugs.webkit.org/show_bug.cgi?id=50414
15731
15732         - In addition, this now makes the preference held off the PageGroup have
15733           the identifier of the PageGroup and autosave to disk (only on the mac
15734           for now).
15735         - Adds ability to create an arbitrary preference that can be autosaved
15736           via a new WKPreferencesCreateWithIdentifier function.
15737
15738         * UIProcess/API/C/WKContext.cpp:
15739         * UIProcess/API/C/WKContext.h:
15740         Remove preference related code.
15741
15742         * UIProcess/API/C/WKPageGroup.cpp:
15743         (WKPageGroupSetPreferences):
15744         (WKPageGroupGetPreferences):
15745         * UIProcess/API/C/WKPageGroup.h:
15746         Add getter/setter for preferences.
15747
15748         * UIProcess/API/C/WKPreferences.cpp:
15749         (WKPreferencesCreateWithIdentifier):
15750         * UIProcess/API/C/WKPreferences.h:
15751         Add WKPreferencesCreateWithIdentifier and remove WKPreferencesCreateCopy which is
15752         unused.
15753
15754         * UIProcess/WebContext.cpp:
15755         (WebKit::WebContext::WebContext):
15756         (WebKit::WebContext::~WebContext):
15757         * UIProcess/WebContext.h:
15758         Remove preference related code.
15759
15760         * UIProcess/WebPageGroup.cpp:
15761         (WebKit::WebPageGroup::WebPageGroup):
15762         (WebKit::WebPageGroup::addPage):
15763         (WebKit::WebPageGroup::removePage):
15764         (WebKit::WebPageGroup::setPreferences):
15765         (WebKit::WebPageGroup::preferences):
15766         (WebKit::WebPageGroup::preferencesDidChange):
15767         * UIProcess/WebPageGroup.h:
15768         Add preference and page tracking.
15769
15770         * UIProcess/WebPageNamespace.cpp:
15771         * UIProcess/WebPageNamespace.h:
15772         Remove preference change notification code.
15773
15774         * UIProcess/WebPageProxy.cpp:
15775         (WebKit::WebPageProxy::WebPageProxy):
15776         (WebKit::WebPageProxy::~WebPageProxy):
15777         Add/remove self from page group set.
15778
15779         (WebKit::WebPageProxy::preferencesDidChange):
15780         (WebKit::WebPageProxy::creationParameters):
15781         Get preferences from the pageGroup.
15782
15783         * UIProcess/WebPreferences.cpp:
15784         (WebKit::WebPreferences::WebPreferences):
15785         (WebKit::WebPreferences::addPageGroup):
15786         (WebKit::WebPreferences::removePageGroup):
15787         (WebKit::WebPreferences::update):
15788         * UIProcess/WebPreferences.h:
15789         (WebKit::WebPreferences::create):
15790         Change to track page groups instead of contexts.
15791
15792         * UIProcess/mac/WebPreferencesMac.mm:
15793         (WebKit::makeKey): Add ".WebKit2" prefix for keys.
15794
15795 2010-12-02  Anders Carlsson  <andersca@apple.com>
15796
15797         Reviewed by Sam Weinig.
15798
15799         Flash videos on YouTube flicker
15800         https://bugs.webkit.org/show_bug.cgi?id=50409
15801         <rdar://problem/8668757>
15802
15803         When painting from a backing store, we need to add the source location
15804         to the destination point.
15805
15806         * WebProcess/Plugins/PluginProxy.cpp:
15807         (WebKit::PluginProxy::paint):
15808         (WebKit::PluginProxy::update):
15809
15810 2010-12-02  Sam Weinig  <sam@webkit.org>
15811
15812         Reviewed by Anders Carlsson.
15813
15814         WebKit2 needs API to turn on popup blocking
15815         https://bugs.webkit.org/show_bug.cgi?id=50407
15816
15817         Pipe-through a preference for javascript being able to open
15818         windows without user gesture.
15819
15820         * Shared/WebPreferencesStore.h:
15821         * UIProcess/API/C/WKPreferences.cpp:
15822         (WKPreferencesSetJavaScriptCanOpenWindowsAutomatically):
15823         (WKPreferencesGetJavaScriptCanOpenWindowsAutomatically):
15824         * UIProcess/API/C/WKPreferences.h:
15825         * WebProcess/WebPage/WebPage.cpp:
15826         (WebKit::WebPage::updatePreferences):
15827
15828 2010-12-02  Anders Carlsson  <andersca@apple.com>
15829
15830         Reviewed by Sam Weinig.
15831
15832         Plug-ins should be able to update the mouse cursor
15833         https://bugs.webkit.org/show_bug.cgi?id=50399
15834
15835         Call WKEnableSettingCursorWhenInBackground.
15836
15837         * PluginProcess/mac/PluginProcessMainMac.mm:
15838         (WebKit::PluginProcessMain):
15839
15840 2010-12-02  Sam Weinig  <sam@webkit.org>
15841
15842         Reviewed by Anders Carlsson.
15843
15844         https://bugs.webkit.org/show_bug.cgi?id=50368
15845         Overhaul WebKit2 preferences code
15846
15847         - Reduces the number of places you have to touch to add a new preference
15848           (From 9 down to 4, but with a bit of elbow grease, we should get that
15849            down to 2 or 3).
15850         - Add hooks so that platforms can initialize the preferences based on an
15851           identifier. This is currently only used on the Mac to initialize a
15852           preference store from NSUserDefaults and autosave the changes to disk.
15853           It is not yet enabled due to no way to set the identifier from client
15854           code.
15855
15856         * Shared/WebPageCreationParameters.cpp:
15857         Add necessary #include of WebCoreArgumentCoders.h which is now needed
15858         due to cleanup in WebPreferencesStore.h.
15859
15860         * Shared/WebPreferencesStore.cpp:
15861         (WebKit::WebPreferencesStore::WebPreferencesStore):
15862         (WebKit::WebPreferencesStore::encode):
15863         (WebKit::WebPreferencesStore::decode):
15864         (WebKit::defaultValueForKey):
15865         (WebKit::setValueForKey):
15866         (WebKit::valueForKey):
15867         (WebKit::WebPreferencesStore::setStringValueForKey):
15868         (WebKit::WebPreferencesStore::getStringValueForKey):
15869         (WebKit::WebPreferencesStore::setBoolValueForKey):
15870         (WebKit::WebPreferencesStore::getBoolValueForKey):
15871         (WebKit::WebPreferencesStore::setUInt32ValueForKey):
15872         (WebKit::WebPreferencesStore::getUInt32ValueForKey):
15873         * Shared/WebPreferencesStore.h:
15874         Complete overhaul of this class to store the preferences as
15875         a set of HashMaps and use macros to define the keys and default
15876         values.
15877
15878         * UIProcess/API/C/WKPreferences.cpp:
15879         (WKPreferencesGetFontSmoothingLevel):
15880         Add cast to keep conversion function working.
15881
15882         * UIProcess/WebPreferences.cpp:
15883         (WebKit::WebPreferences::WebPreferences): Add identifier constructor.
15884         (WebKit::WebPreferences::updateStringValueForKey):
15885         (WebKit::WebPreferences::updateBoolValueForKey):
15886         (WebKit::WebPreferences::updateUInt32ValueForKey):
15887         Add type based updaters. These currently give hooks to the platform and
15888         call the generic update, but in the future, we can use this to optimize
15889         updating preferences to not send the entire store for each change.
15890
15891         * UIProcess/WebPreferences.h:
15892         Generate the getters and setters via macro instantiation.
15893
15894         * UIProcess/cf/WebPreferencesCF.cpp: Added.
15895         (WebKit::WebPreferences::platformInitializeStore):
15896         (WebKit::WebPreferences::platformUpdateStringValueForKey):
15897         (WebKit::WebPreferences::platformUpdateBoolValueForKey):
15898         (WebKit::WebPreferences::platformUpdateUInt32ValueForKey):
15899         Stubbed out.
15900
15901         * UIProcess/mac/WebPreferencesMac.mm: Added.
15902         (WebKit::makeKey):
15903         (WebKit::setStringValueIfInUserDefaults):
15904         (WebKit::setBoolValueIfInUserDefaults):
15905         (WebKit::setUInt32ValueIfInUserDefaults):
15906         (WebKit::WebPreferences::platformInitializeStore):
15907         (WebKit::WebPreferences::platformUpdateStringValueForKey):
15908         (WebKit::WebPreferences::platformUpdateBoolValueForKey):
15909         (WebKit::WebPreferences::platformUpdateUInt32ValueForKey):
15910         Use the platform hooks to initialize and update the store from
15911         NSUserDefaults.
15912         
15913         * UIProcess/qt/WebPreferencesQt.cpp: Added.
15914         (WebKit::WebPreferences::platformInitializeStore):
15915         (WebKit::WebPreferences::platformUpdateStringValueForKey):
15916         (WebKit::WebPreferences::platformUpdateBoolValueForKey):
15917         (WebKit::WebPreferences::platformUpdateUInt32ValueForKey):
15918         Stubbed out.
15919
15920         * WebProcess/WebPage/WebPage.cpp:
15921         (WebKit::WebPage::updatePreferences):
15922         * WebProcess/WebPage/win/WebPageWin.cpp:
15923         (WebKit::WebPage::platformPreferencesDidChange):
15924         Update to pull the value using the new type based getters.
15925
15926         * WebKit2.pro:
15927         * WebKit2.xcodeproj/project.pbxproj:
15928         * win/WebKit2.vcproj:
15929         Add new files.
15930
15931 2010-12-02  Steve Falkenburg  <sfalken@apple.com>
15932
15933         Mac build fix.
15934
15935         * WebProcess/WebKitMain.cpp:
15936         (enableDataExecutionPrevention):
15937
15938 2010-11-30 Amruth Raj  <amruthraj@motorola.com> and Ravi Kasibhatla  <ravi.kasibhatla@motorola.com>
15939
15940         Reviewed by Martin Robinson.
15941
15942         [GTK] Implement RunLoop, WorkQueue, Connection classes for WebKit2
15943         https://bugs.webkit.org/show_bug.cgi?id=48507
15944
15945         * Platform/CoreIPC/Connection.h: UNIX_X11 specific changes for GTK port.
15946         (CoreIPC::Connection::messageProcessingCompleted):
15947         * Platform/CoreIPC/gtk: Added.
15948         * Platform/CoreIPC/gtk/ConnectionGtk.cpp: Added. Connection class implementation for GTK port (UNIX_X11 specific).
15949         (CoreIPC::readBytesFromSocket):
15950         (CoreIPC::writeBytesToSocket):
15951         (CoreIPC::Connection::platformInitialize):
15952         (CoreIPC::Connection::platformInvalidate):
15953         (CoreIPC::Connection::processCompletedMessage):
15954         (CoreIPC::Connection::readEventHandler):
15955         (CoreIPC::Connection::open):
15956         (CoreIPC::Connection::platformCanSendOutgoingMessages):
15957         (CoreIPC::Connection::sendOutgoingMessage):
15958         * Platform/PlatformProcessIdentifier.h: UNIX_X11 specific changes for GTK port.
15959         * Platform/RunLoop.h: GTK port specific changes.
15960         * Platform/WorkQueue.h: GTK port specific changes.
15961         * Platform/gtk/RunLoopGtk.cpp: Added. Runs an event loop using GMainLoop and handles the incoming messages.
15962         (RunLoop::RunLoop):
15963         (RunLoop::~RunLoop):
15964         (RunLoop::run):
15965         (RunLoop::mainLoop):
15966         (RunLoop::stop):
15967         (RunLoop::queueWork):
15968         (RunLoop::wakeUp):
15969         (RunLoop::TimerBase::TimerBase):
15970         (RunLoop::TimerBase::~TimerBase):
15971         (RunLoop::TimerBase::resetTimerSource):
15972         (RunLoop::TimerBase::oneShotTimerFired):
15973         (RunLoop::TimerBase::repeatingTimerFired):
15974         (RunLoop::TimerBase::start):
15975         (RunLoop::TimerBase::stop):
15976         (RunLoop::TimerBase::isActive):
15977         * Platform/gtk/WorkQueueGtk.cpp: Added. Creates a thread and polls on a given fd using GIOChannel. 
15978         Dispatches the obtained messages to RunLoop's GMainLoop.
15979         (WorkQueue::EventSource::EventSource):
15980         (WorkQueue::EventSource::dispatchSource):
15981         (WorkQueue::EventSource::performWorkOnce):
15982         (WorkQueue::EventSource::performWork):
15983         (WorkQueue::EventSource::deleteEventSource):
15984         (WorkQueue::platformInitialize):
15985         (WorkQueue::platformInvalidate):
15986         (WorkQueue::startWorkQueueThread):
15987         (WorkQueue::workQueueThreadBody):
15988         (WorkQueue::registerEventSourceHandler):
15989         (WorkQueue::unregisterEventSourceHandler):
15990         (WorkQueue::scheduleWork):
15991
15992 2010-12-02  Steve Falkenburg  <sfalken@apple.com>
15993
15994         Reviewed by Adam Roben.
15995
15996         Move enableExecutionPrevention to WebKitMain
15997         https://bugs.webkit.org/show_bug.cgi?id=50392
15998
15999         * WebProcess/WebKitMain.cpp:
16000         (enableDataExecutionPrevention):
16001         (WebKitMain):
16002         * WebProcess/win/WebProcessMainWin.cpp:
16003         (WebKit::WebProcessMain):
16004
16005 2010-12-02  Steve Falkenburg  <sfalken@apple.com>
16006
16007         Reviewed by Adam Roben.
16008
16009         Enable DEP at runtime to allow for compatibility with older versions of ATL
16010         https://bugs.webkit.org/show_bug.cgi?id=50378
16011
16012         * WebProcess/win/WebProcessMainWin.cpp:
16013         (WebKit::enableDataExecutionPrevention):
16014         (WebKit::WebProcessMain):
16015         * win/WebKit2WebProcessCommon.vsprops:
16016
16017 2010-12-01  Sam Weinig  <sam@webkit.org>
16018
16019         Fix 64-bit build.
16020
16021         * WebProcess/Plugins/Netscape/mac/NetscapePluginMac.mm:
16022         (WebKit::NetscapePlugin::windowAndViewFramesChanged):
16023
16024 2010-12-01  Anders Carlsson  <andersca@apple.com>
16025
16026         Reviewed by Sam Weinig.
16027
16028         Give the fake Carbon window the right bounds
16029         https://bugs.webkit.org/show_bug.cgi?id=50361
16030
16031         * PluginProcess/PluginControllerProxy.cpp:
16032         (WebKit::PluginControllerProxy::windowAndViewFramesChanged):
16033         * PluginProcess/PluginControllerProxy.h:
16034         * PluginProcess/PluginControllerProxy.messages.in:
16035         * UIProcess/API/mac/WKView.mm:
16036         (-[WKView _updateWindowAndViewFrames]):
16037         Pass both the window frame and view frame along.
16038
16039         (-[WKView renewGState]):
16040         Call _updateWindowAndViewFrames.
16041
16042         * UIProcess/WebPageProxy.cpp:
16043         (WebKit::WebPageProxy::windowAndViewFramesChanged):
16044         Pass both the window frame and view frame along.
16045
16046         * UIProcess/WebPageProxy.h:
16047         * WebProcess/Plugins/Netscape/NetscapePlugin.h:
16048         * WebProcess/Plugins/Netscape/mac/NetscapePluginMac.mm:
16049         (WebKit::NetscapePlugin::platformPostInitialize):
16050         We don't want a title bar in our fake window.
16051     
16052         (WebKit::computeFakeWindowBoundsRect):
16053         Compute the fake window bounds.
16054
16055         (WebKit::NetscapePlugin::windowAndViewFramesChanged):
16056         Update the fake window bounds.
16057
16058         * WebProcess/Plugins/Plugin.h:
16059         * WebProcess/Plugins/PluginProxy.cpp:
16060         (WebKit::PluginProxy::windowAndViewFramesChanged):
16061         * WebProcess/Plugins/PluginProxy.h:
16062         * WebProcess/Plugins/PluginView.cpp:
16063         (WebKit::PluginView::windowAndViewFramesChanged):
16064         (WebKit::PluginView::initializePlugin):
16065         * WebProcess/Plugins/PluginView.h:
16066         * WebProcess/WebPage/WebPage.cpp:
16067         (WebKit::WebPage::windowAndViewFramesChanged):
16068         * WebProcess/WebPage/WebPage.h:
16069         (WebKit::WebPage::windowFrameInScreenCoordinates):
16070         (WebKit::WebPage::viewFrameInWindowCoordinates):
16071         * WebProcess/WebPage/WebPage.messages.in:
16072         Pass both the window frame and view frame along.
16073
16074 2010-12-01  Jia Pu  <jpu@apple.com>
16075
16076         Reviewed by Darin Adler.
16077
16078         Support multiple correction candidates panel for misspelled word on Mac OS X.
16079         https://bugs.webkit.org/show_bug.cgi?id=50137
16080         <rdar://problem/8568059>
16081
16082         Adopted new function signatures defined in base class.
16083
16084         * WebProcess/WebCoreSupport/WebEditorClient.cpp:
16085         (WebKit::WebEditorClient::getGuessesForWord):
16086         * WebProcess/WebCoreSupport/WebEditorClient.h:
16087         * WebProcess/WebCoreSupport/mac/WebEditorClientMac.mm:
16088         (WebKit::WebEditorClient::showCorrectionPanel):
16089
16090 2010-12-01  Simon Fraser  <simon.fraser@apple.com>
16091
16092         Reviewed by John Sullivan.
16093
16094         Hit testing broken on sibling views of the WKView
16095         <rdar://problem/8718397>
16096         
16097         Make sure that hitView is not null when comparing with the
16098         _layerHostingView.
16099
16100         * UIProcess/API/mac/WKView.mm:
16101         (-[WKView hitTest:]):
16102
16103 2010-12-01  Anders Carlsson  <andersca@apple.com>
16104
16105         Reviewed by Sam Weinig.
16106
16107         Implement the remaining PluginController/Plugin member functions
16108         https://bugs.webkit.org/show_bug.cgi?id=50356
16109
16110         * PluginProcess/PluginControllerProxy.cpp:
16111         (WebKit::PluginControllerProxy::cancelStreamLoad):
16112         (WebKit::PluginControllerProxy::cancelManualStreamLoad):
16113         (WebKit::PluginControllerProxy::setStatusbarText):
16114         (WebKit::PluginControllerProxy::pluginProcessCrashed):
16115         (WebKit::PluginControllerProxy::frameDidFinishLoading):
16116         (WebKit::PluginControllerProxy::frameDidFail):
16117         (WebKit::PluginControllerProxy::manualStreamDidReceiveResponse):
16118         (WebKit::PluginControllerProxy::manualStreamDidReceiveData):
16119         (WebKit::PluginControllerProxy::manualStreamDidFinishLoading):
16120         (WebKit::PluginControllerProxy::manualStreamDidFail):
16121         * PluginProcess/PluginControllerProxy.h:
16122         * PluginProcess/PluginControllerProxy.messages.in:
16123         * WebProcess/Plugins/PluginProxy.cpp:
16124         (WebKit::PluginProxy::frameDidFinishLoading):
16125         (WebKit::PluginProxy::frameDidFail):
16126         (WebKit::PluginProxy::manualStreamDidReceiveResponse):
16127         (WebKit::PluginProxy::manualStreamDidReceiveData):
16128         (WebKit::PluginProxy::manualStreamDidFinishLoading):
16129         (WebKit::PluginProxy::manualStreamDidFail):
16130         (WebKit::PluginProxy::windowFrameChanged):
16131         (WebKit::PluginProxy::cancelStreamLoad):
16132         (WebKit::PluginProxy::cancelManualStreamLoad):
16133         (WebKit::PluginProxy::setStatusbarText):
16134         * WebProcess/Plugins/PluginProxy.h:
16135         * WebProcess/Plugins/PluginProxy.messages.in:
16136
16137 2010-12-01  Steve Falkenburg  <sfalken@apple.com>
16138
16139         Reviewed by Adam Roben.
16140
16141         WinCairo build should not use link-time code generation (LTCG)
16142         https://bugs.webkit.org/show_bug.cgi?id=50353
16143
16144         * win/WebKit2.vcproj:
16145         * win/WebKit2WebProcess.vcproj:
16146
16147 2010-12-01  Anders Carlsson  <andersca@apple.com>
16148
16149         Reviewed by Sam Weinig..
16150
16151         Fix <rdar://problem/8717674>.
16152
16153         * WebProcess/com.apple.WebProcess.sb:
16154         Allow the UI process to issue file-write extensions.
16155
16156 2010-12-01  Sam Weinig  <sam@webkit.org>
16157
16158         Another windows build fix.
16159
16160         * UIProcess/API/C/win/WKView.cpp:
16161         (WKViewCreate):
16162
16163 2010-12-01  Sam Weinig  <sam@webkit.org>
16164
16165         Attempt to fix Windows build.
16166
16167         * UIProcess/API/C/win/WKViewPrivate.cpp:
16168         * UIProcess/API/C/win/WKViewPrivate.h:
16169
16170 2010-12-01  Sam Weinig  <sam@webkit.org>
16171
16172         Reviewed by Anders Carlsson.
16173
16174         Add PageGrouping to WebKit2 API
16175         https://bugs.webkit.org/show_bug.cgi?id=50332
16176
16177         - Adds WKPageGroupRef and WKBundlePageGroupRef API objects
16178           (backed by WebPageGroup and WebPageGroupProxy respectively).
16179         - Moves visibleToInjectedBundle from page to PageGroup.
16180         - Make userScript/userStyleSheet functions take a page group parameter.
16181
16182         * Shared/API/c/WKBase.h:
16183         * Shared/APIObject.h:
16184         * Shared/WebPageCreationParameters.cpp:
16185         (WebKit::WebPageCreationParameters::encode):
16186         (WebKit::WebPageCreationParameters::decode):
16187         * Shared/WebPageCreationParameters.h:
16188         * Shared/WebPageGroupData.cpp: Added.
16189         (WebKit::WebPageGroupData::encode):
16190         (WebKit::WebPageGroupData::decode):
16191         * Shared/WebPageGroupData.h: Added.
16192         * UIProcess/API/C/WKAPICast.h:
16193         * UIProcess/API/C/WKPage.cpp:
16194         (WKPageGetPageGroup):
16195         * UIProcess/API/C/WKPage.h:
16196         * UIProcess/API/C/WKPageGroup.cpp: Added.
16197         (WKPageGroupGetTypeID):
16198         (WKPageGroupCreateWithIdentifier):
16199         (WKPageGroupCopyIdentifier):
16200         * UIProcess/API/C/WKPageGroup.h: Added.
16201         * UIProcess/API/C/WebKit2.h:
16202         * UIProcess/API/C/win/WKView.cpp:
16203         (WKViewCreate):
16204         * UIProcess/API/C/win/WKView.h:
16205         * UIProcess/API/mac/WKView.h:
16206         * UIProcess/API/mac/WKView.mm:
16207         (-[WKView initWithFrame:pageNamespaceRef:pageGroupRef:]):
16208         (-[WKView initWithFrame:pageNamespaceRef:]):
16209         * UIProcess/API/mac/WKViewInternal.h:
16210         * UIProcess/API/qt/qwkpage.cpp:
16211         (QWKPagePrivate::QWKPagePrivate):
16212         * UIProcess/WebContext.cpp:
16213         (WebKit::WebContext::WebContext):
16214         (WebKit::WebContext::createWebPage):
16215         * UIProcess/WebContext.h:
16216         * UIProcess/WebContextUserMessageCoders.h:
16217         (WebKit::WebContextUserMessageEncoder::encode):
16218         (WebKit::WebContextUserMessageDecoder::decode):
16219         * UIProcess/WebInspectorProxy.cpp:
16220         (WebKit::WebInspectorProxy::inspectorPageGroup):
16221         * UIProcess/WebInspectorProxy.h:
16222         * UIProcess/WebPageGroup.cpp: Added.
16223         (WebKit::generatePageGroupID):
16224         (WebKit::webPageGroupMap):
16225         (WebKit::WebPageGroup::create):
16226         (WebKit::WebPageGroup::get):
16227         (WebKit::WebPageGroup::WebPageGroup):
16228         (WebKit::WebPageGroup::~WebPageGroup):
16229         * UIProcess/WebPageGroup.h: Added.
16230         (WebKit::WebPageGroup::identifier):
16231         (WebKit::WebPageGroup::pageGroupID):
16232         (WebKit::WebPageGroup::data):
16233         (WebKit::WebPageGroup::type):
16234         * UIProcess/WebPageNamespace.cpp:
16235         (WebKit::WebPageNamespace::createWebPage):
16236         * UIProcess/WebPageNamespace.h:
16237         * UIProcess/WebPageProxy.cpp:
16238         (WebKit::WebPageProxy::create):
16239         (WebKit::WebPageProxy::WebPageProxy):
16240         (WebKit::WebPageProxy::creationParameters):
16241         * UIProcess/WebPageProxy.h:
16242         (WebKit::WebPageProxy::pageGroup):
16243         * UIProcess/WebProcessProxy.cpp:
16244         (WebKit::WebProcessProxy::createWebPage):
16245         * UIProcess/WebProcessProxy.h:
16246         * UIProcess/mac/WebInspectorProxyMac.mm:
16247         (WebKit::WebInspectorProxy::platformCreateInspectorPage):
16248         * UIProcess/win/WebView.cpp:
16249         (WebKit::WebView::WebView):
16250         * UIProcess/win/WebView.h:
16251         (WebKit::WebView::create):
16252         * WebKit2.pro:
16253         * WebKit2.xcodeproj/project.pbxproj:
16254         * WebProcess/InjectedBundle/API/c/WKBundle.cpp:
16255         (WKBundleAddUserScript):
16256         (WKBundleAddUserStyleSheet):
16257         (WKBundleRemoveUserScript):
16258         (WKBundleRemoveUserStyleSheet):
16259         (WKBundleRemoveUserScripts):
16260         (WKBundleRemoveUserStyleSheets):
16261         (WKBundleRemoveAllUserContent):
16262         (WKBundleOverrideXSSAuditorEnabledForTestRunner):
16263         * WebProcess/InjectedBundle/API/c/WKBundle.h:
16264         * WebProcess/InjectedBundle/API/c/WKBundleAPICast.h:
16265         * WebProcess/InjectedBundle/API/c/WKBundlePage.cpp:
16266         (WKBundlePageGetPageGroup):
16267         * WebProcess/InjectedBundle/API/c/WKBundlePage.h:
16268         * WebProcess/InjectedBundle/API/c/WKBundlePageGroup.cpp: Added.
16269         (WKBundlePageGroupGetTypeID):
16270         (WKBundlePageGroupCopyIdentifier):
16271         * WebProcess/InjectedBundle/API/c/WKBundlePageGroup.h: Added.
16272         * WebProcess/InjectedBundle/API/c/WKBundlePrivate.h:
16273         * WebProcess/InjectedBundle/InjectedBundle.cpp:
16274         (WebKit::InjectedBundle::overrideXSSAuditorEnabledForTestRunner):
16275         (WebKit::InjectedBundle::addUserScript):
16276         (WebKit::InjectedBundle::addUserStyleSheet):
16277         (WebKit::InjectedBundle::removeUserScript):
16278         (WebKit::InjectedBundle::removeUserStyleSheet):
16279         (WebKit::InjectedBundle::removeUserScripts):
16280         (WebKit::InjectedBundle::removeUserStyleSheets):
16281         (WebKit::InjectedBundle::removeAllUserContent):
16282         (WebKit::InjectedBundle::didInitializePageGroup):
16283         * WebProcess/InjectedBundle/InjectedBundle.h:
16284         * WebProcess/InjectedBundle/InjectedBundleClient.cpp:
16285         (WebKit::InjectedBundleClient::didInitializePageGroup):
16286         * WebProcess/InjectedBundle/InjectedBundleClient.h:
16287         * WebProcess/InjectedBundle/InjectedBundleUserMessageCoders.h:
16288         (WebKit::InjectedBundleUserMessageEncoder::encode):
16289         (WebKit::InjectedBundleUserMessageDecoder::decode):
16290         * WebProcess/WebPage/WebPage.cpp:
16291         (WebKit::WebPage::create):
16292         (WebKit::WebPage::WebPage):
16293         (WebKit::WebPage::close):
16294         * WebProcess/WebPage/WebPage.h:
16295         (WebKit::WebPage::pageGroup):
16296         * WebProcess/WebPage/WebPageGroupProxy.cpp: Added.
16297         (WebKit::WebPageGroupProxy::create):
16298         (WebKit::WebPageGroupProxy::~WebPageGroupProxy):
16299         * WebProcess/WebPage/WebPageGroupProxy.h: Added.
16300         (WebKit::WebPageGroupProxy::identifier):
16301         (WebKit::WebPageGroupProxy::pageGroupID):
16302         (WebKit::WebPageGroupProxy::isVisibleToInjectedBundle):
16303         (WebKit::WebPageGroupProxy::WebPageGroupProxy):
16304         (WebKit::WebPageGroupProxy::type):
16305         * WebProcess/WebProcess.cpp:
16306         (WebKit::WebProcess::webPageGroup):
16307         * WebProcess/WebProcess.h:
16308         * win/WebKit2.vcproj:
16309         * win/WebKit2Generated.make:
16310
16311 2010-12-01  Steve Falkenburg  <sfalken@apple.com>
16312
16313         Reviewed by Adam Roben.
16314
16315         vcproj changes can't be applied cleanly by the Windows EWS bot
16316         https://bugs.webkit.org/show_bug.cgi?id=50328
16317
16318         * win/WebKit2.submit.sln: Added property svn:eol-style.
16319         * win/WebKit2.vcproj: Added property svn:eol-style.
16320         * win/WebKit2Apple.vsprops: Added property svn:eol-style.
16321         * win/WebKit2CFLite.vsprops: Added property svn:eol-style.
16322         * win/WebKit2Common.vsprops: Added property svn:eol-style.
16323         * win/WebKit2DirectX.vsprops: Added property svn:eol-style.
16324         * win/WebKit2Generated.vcproj: Added property svn:eol-style.
16325         * win/WebKit2GeneratedCommon.vsprops: Added property svn:eol-style.
16326         * win/WebKit2WebProcess.vcproj: Added property svn:eol-style.
16327         * win/WebKit2WebProcessCommon.vsprops: Added property svn:eol-style.
16328
16329 2010-12-01  Simon Fraser  <simon.fraser@apple.com>
16330
16331         Reviewed by Anders Carlsson.
16332
16333         Size changes on layer-backed drawing areas don't always end up with the correct value
16334         https://bugs.webkit.org/show_bug.cgi?id=50351
16335         <rdar://problem/8692966>
16336         
16337         When the UI process does not receive didSetSize messages promptly, 
16338         LayerBackedDrawingAreaProxy::setSize() bails early based on the
16339         m_isWaitingForDidSetFrameNotification flag.
16340         
16341         In this situation, the final size may be incorrect. didSetSize()
16342         needs to compare the size that the web process has to the expected size,
16343         and send a final setSize if they differ.
16344
16345         * UIProcess/LayerBackedDrawingAreaProxy.cpp:
16346         (WebKit::LayerBackedDrawingAreaProxy::didSetSize):
16347         (WebKit::LayerBackedDrawingAreaProxy::didReceiveMessage):
16348         * UIProcess/LayerBackedDrawingAreaProxy.h:
16349         * WebProcess/WebPage/LayerBackedDrawingArea.cpp:
16350         (WebKit::LayerBackedDrawingArea::setSize):
16351
16352 2010-12-01  Simon Fraser  <simon.fraser@apple.com>
16353
16354         Reviewed by Anders Carlsson.
16355
16356         Crash when closing WebKit2 window with accelerated composting content
16357         https://bugs.webkit.org/show_bug.cgi?id=50307
16358         <rdar://problem/8640126>
16359         
16360         When the web page is closing, notify the drawing area, so that
16361         the layer-backed drawing area can kill the runloop obsever,
16362         then clear it. Clearing it is not sufficient, since the drawing
16363         area is ref-counted.
16364
16365         * WebProcess/WebPage/DrawingArea.h:
16366         (WebKit::DrawingArea::onPageClose):
16367         * WebProcess/WebPage/LayerBackedDrawingArea.h:
16368         * WebProcess/WebPage/WebPage.cpp:
16369         (WebKit::WebPage::close):
16370         * WebProcess/WebPage/mac/LayerBackedDrawingAreaMac.mm:
16371         (WebKit::LayerBackedDrawingArea::platformClear):
16372         (WebKit::LayerBackedDrawingArea::onPageClose):
16373
16374 2010-12-01  Anders Carlsson  <andersca@apple.com>
16375
16376         Reviewed by Darin Adler.
16377
16378         Return a correct user agent if NPN_UserAgent is called with a null NPP from NPP_New.
16379         https://bugs.webkit.org/show_bug.cgi?id=50336
16380
16381         * WebProcess/Plugins/Netscape/NetscapeBrowserFuncs.cpp:
16382         (WebKit::NPN_UserAgent):
16383         Call the static NetscapePlugin::userAgent function instead.
16384
16385         * WebProcess/Plugins/Netscape/NetscapePlugin.cpp:
16386         (WebKit::NetscapePlugin::userAgent):
16387         If the passed in NPP is null, get the NetscapePlugin currently executing NPP_New.
16388
16389         (WebKit::NetscapePlugin::initialize):
16390         Keep track of the plug-in currently executing NPP_New.
16391
16392         * WebProcess/Plugins/Netscape/NetscapePlugin.h:
16393
16394 2010-12-01  Brian Weinstein  <bweinstein@apple.com>
16395
16396         One last Windows build fix.
16397
16398         * UIProcess/win/WebView.cpp:
16399         (WebKit::WebView::switchToDrawingAreaTypeIfNecessary):
16400
16401 2010-12-01  Anders Carlsson  <andersca@apple.com>
16402
16403         Fix Windows build.
16404
16405         * UIProcess/win/WebView.cpp:
16406         (WebKit::WebView::pageDidEnterAcceleratedCompositing):
16407         (WebKit::WebView::pageDidLeaveAcceleratedCompositing):
16408         (WebKit::WebView::switchToDrawingAreaTypeIfNecessary):
16409
16410 2010-12-01  Anders Carlsson  <andersca@apple.com>
16411
16412         Fix build.
16413
16414         * UIProcess/win/WebView.h:
16415
16416 2010-12-01  Anders Carlsson  <andersca@apple.com>
16417
16418         Reviewed by Andreas Kling.
16419
16420         Get rid of DrawingAreaBase
16421         https://bugs.webkit.org/show_bug.cgi?id=50329
16422
16423         * Scripts/webkit2/messages.py:
16424         * Shared/DrawingAreaInfo.h:
16425         (WebKit::DrawingAreaInfo::DrawingAreaInfo):
16426         * Shared/WebPageCreationParameters.h:
16427         * UIProcess/API/mac/WKView.mm:
16428         (-[WKView _switchToDrawingAreaTypeIfNecessary:DrawingAreaInfo::]):
16429         (-[WKView _pageDidEnterAcceleratedCompositing]):
16430         (-[WKView _pageDidLeaveAcceleratedCompositing]):
16431         * UIProcess/API/qt/qgraphicswkview.cpp:
16432         (QGraphicsWKView::takeSnapshot):
16433         (QGraphicsWKViewPrivate::commitScale):
16434         * UIProcess/ChunkedUpdateDrawingAreaProxy.cpp:
16435         (WebKit::ChunkedUpdateDrawingAreaProxy::ChunkedUpdateDrawingAreaProxy):
16436         (WebKit::ChunkedUpdateDrawingAreaProxy::setSize):
16437         (WebKit::ChunkedUpdateDrawingAreaProxy::setPageIsVisible):
16438         (WebKit::ChunkedUpdateDrawingAreaProxy::update):
16439         * UIProcess/DrawingAreaProxy.cpp:
16440         (WebKit::DrawingAreaProxy::DrawingAreaProxy):
16441         (WebKit::DrawingAreaProxy::nextIdentifier):
16442         * UIProcess/DrawingAreaProxy.h:
16443         (WebKit::DrawingAreaProxy::info):
16444         * UIProcess/LayerBackedDrawingAreaProxy.cpp:
16445         (WebKit::LayerBackedDrawingAreaProxy::LayerBackedDrawingAreaProxy):
16446         (WebKit::LayerBackedDrawingAreaProxy::setSize):
16447         (WebKit::LayerBackedDrawingAreaProxy::setPageIsVisible):
16448         (WebKit::LayerBackedDrawingAreaProxy::update):
16449         * UIProcess/TiledDrawingAreaProxy.cpp:
16450         (WebKit::TiledDrawingAreaProxy::TiledDrawingAreaProxy):
16451         * UIProcess/WebPageProxy.cpp:
16452         (WebKit::WebPageProxy::didChangeAcceleratedCompositing):
16453         * UIProcess/WebPageProxy.h:
16454         * UIProcess/WebPageProxy.messages.in:
16455         * UIProcess/win/WebView.cpp:
16456         (WebKit::WebView::switchToDrawingAreaTypeIfNecessary):
16457         * WebProcess/WebPage/ChunkedUpdateDrawingArea.cpp:
16458         (WebKit::ChunkedUpdateDrawingArea::ChunkedUpdateDrawingArea):
16459         (WebKit::ChunkedUpdateDrawingArea::didReceiveMessage):
16460         * WebProcess/WebPage/ChunkedUpdateDrawingArea.h:
16461         * WebProcess/WebPage/DrawingArea.cpp:
16462         (WebKit::DrawingArea::create):
16463         (WebKit::DrawingArea::DrawingArea):
16464         * WebProcess/WebPage/DrawingArea.h:
16465         (WebKit::DrawingArea::info):
16466         * WebProcess/WebPage/LayerBackedDrawingArea.cpp:
16467         (WebKit::LayerBackedDrawingArea::LayerBackedDrawingArea):
16468         (WebKit::LayerBackedDrawingArea::didReceiveMessage):
16469         * WebProcess/WebPage/LayerBackedDrawingArea.h:
16470         * WebProcess/WebPage/TiledDrawingArea.cpp:
16471         (WebKit::TiledDrawingArea::TiledDrawingArea):
16472         * WebProcess/WebPage/TiledDrawingArea.h:
16473         * WebProcess/WebPage/WebPage.cpp:
16474         (WebKit::WebPage::WebPage):
16475         (WebKit::WebPage::changeAcceleratedCompositingMode):
16476
16477 2010-11-30  Ryosuke Niwa  <rniwa@webkit.org>
16478
16479         Unreviewed speculative build fix for Windows.
16480
16481         * UIProcess/win/WebView.cpp:
16482         (WebKit::WebView::pageDidEnterAcceleratedCompositing):
16483         (WebKit::WebView::pageDidLeaveAcceleratedCompositing):
16484         (WebKit::WebView::switchToDrawingAreaTypeIfNecessary):
16485         * UIProcess/win/WebView.h:
16486
16487 2010-11-30  Anders Carlsson  <andersca@apple.com>
16488
16489         Fix Qt build.
16490
16491         * UIProcess/API/qt/qgraphicswkview.cpp:
16492         (QGraphicsWKView::takeSnapshot):
16493         (QGraphicsWKViewPrivate::commitScale):
16494
16495 2010-11-30  Anders Carlsson  <andersca@apple.com>
16496
16497         Reviewed by Sam Weinig.
16498
16499         Change DrawingArea and DrawingAreaProxy to not inherit from DrawingAreaBase
16500         https://bugs.webkit.org/show_bug.cgi?id=50300
16501
16502         * UIProcess/API/mac/WKView.mm:
16503         (-[WKView _switchToDrawingAreaTypeIfNecessary:DrawingAreaBase::]):
16504         (-[WKView _pageDidEnterAcceleratedCompositing]):
16505         (-[WKView _pageDidLeaveAcceleratedCompositing]):
16506         * UIProcess/ChunkedUpdateDrawingAreaProxy.cpp:
16507         (WebKit::ChunkedUpdateDrawingAreaProxy::ChunkedUpdateDrawingAreaProxy):
16508         * UIProcess/DrawingAreaProxy.cpp:
16509         (WebKit::DrawingAreaProxy::DrawingAreaProxy):
16510         (WebKit::DrawingAreaProxy::nextDrawingAreaID):
16511         * UIProcess/DrawingAreaProxy.h:
16512         (WebKit::DrawingAreaProxy::info):
16513         * UIProcess/LayerBackedDrawingAreaProxy.cpp:
16514         (WebKit::LayerBackedDrawingAreaProxy::LayerBackedDrawingAreaProxy):
16515         * WebProcess/WebPage/ChunkedUpdateDrawingArea.cpp:
16516         (WebKit::ChunkedUpdateDrawingArea::ChunkedUpdateDrawingArea):
16517         (WebKit::ChunkedUpdateDrawingArea::didReceiveMessage):
16518         * WebProcess/WebPage/ChunkedUpdateDrawingArea.h:
16519         * WebProcess/WebPage/DrawingArea.cpp:
16520         (WebKit::DrawingArea::create):
16521         (WebKit::DrawingArea::DrawingArea):
16522         * WebProcess/WebPage/DrawingArea.h:
16523         (WebKit::DrawingArea::info):
16524         * WebProcess/WebPage/LayerBackedDrawingArea.cpp:
16525         (WebKit::LayerBackedDrawingArea::LayerBackedDrawingArea):
16526         (WebKit::LayerBackedDrawingArea::didReceiveMessage):
16527         * WebProcess/WebPage/LayerBackedDrawingArea.h:
16528         * WebProcess/WebPage/TiledDrawingArea.cpp:
16529         (WebKit::TiledDrawingArea::TiledDrawingArea):
16530         * WebProcess/WebPage/TiledDrawingArea.h:
16531         * WebProcess/WebPage/WebPage.cpp:
16532         (WebKit::WebPage::changeAcceleratedCompositingMode):
16533
16534 2010-11-30  Simon Fraser  <simon.fraser@apple.com>
16535
16536         Reviewed by Sam Weinig.
16537
16538         Context menus broken after WebKit2 goes into accelerated composting mode.
16539         https://bugs.webkit.org/show_bug.cgi?id=50296
16540         
16541         Override hitTest: on the WKView to exclude the child layer-backed view from
16542         hit testing, so that context menus work.
16543
16544         * UIProcess/API/mac/WKView.mm:
16545         (-[WKView hitTest:]):
16546
16547 2010-11-30  Mark Rowe  <mrowe@apple.com>
16548
16549         Reviewed by Sam Weinig.
16550
16551         Build fix.
16552
16553         * Configurations/BaseTarget.xcconfig: Don't run Copy Files and Run Script build phases
16554         during installhdrs. It's not necessary, and it results in Xcode attempting to copy the
16555         plug-in shim dylib when it has not yet been built.
16556         * WebKit2.xcodeproj/project.pbxproj: Stop copying the .xcconfig file in to the application
16557         wrapper.
16558
16559 2010-11-30  Anders Carlsson  <andersca@apple.com>
16560
16561         Fix build.
16562
16563         * Scripts/webkit2/messages.py:
16564
16565 2010-11-30  Anders Carlsson  <andersca@apple.com>
16566
16567         Reviewed by Sam Weinig.
16568
16569         Rename DrawingAreaBase.h to DrawingAreaInfo.h.
16570
16571         * Shared/DrawingAreaInfo.h: Renamed from WebKit2/Shared/DrawingAreaBase.h.
16572         (WebKit::DrawingAreaBase::DrawingAreaInfo::DrawingAreaInfo):
16573         (WebKit::DrawingAreaBase::~DrawingAreaBase):
16574         (WebKit::DrawingAreaBase::info):
16575         (WebKit::DrawingAreaBase::DrawingAreaBase):
16576         * Shared/WebPageCreationParameters.h:
16577         * UIProcess/DrawingAreaProxy.h:
16578         * WebKit2.xcodeproj/project.pbxproj:
16579         * WebProcess/WebPage/DrawingArea.h:
16580         * win/WebKit2.vcproj:
16581
16582 2010-11-30  Anders Carlsson  <andersca@apple.com>
16583
16584         Fix build.
16585
16586         * PluginProcess/mac/PluginProcessShim.cpp:
16587
16588 2010-11-30  Anders Carlsson  <andersca@apple.com>
16589
16590         Reviewed by Dan Bernstein.
16591
16592         Add a simple shim function for Debugger().
16593         https://bugs.webkit.org/show_bug.cgi?id=50268
16594
16595         * PluginProcess/PluginProcess.h:
16596         * PluginProcess/mac/PluginProcessMac.mm:
16597         (WebKit::initShouldCallRealDebugger):
16598         We only want to call the real Debugger() function when USERBREAK is set.
16599
16600         (WebKit::shouldCallRealDebugger):
16601         Return whether USERBREAK is set.
16602         
16603         (WebKit::PluginProcess::initializeShim):
16604         Initialize the shim.
16605
16606         * PluginProcess/mac/PluginProcessMainMac.mm:
16607         (WebKit::PluginProcessMain):
16608         Call PluginProcess::initializeShim.
16609
16610         * PluginProcess/mac/PluginProcessShim.cpp:
16611         (WebKit::WebKitPluginProcessShimInitialize):
16612         This now takes a struct of callbacks.
16613
16614         (WebKit::shimDebugger):
16615         Call the shouldCallDebugger function. If it returns true, the real Debugger() function should be called.
16616
16617         * PluginProcess/mac/PluginProcessShim.h:
16618         * WebKit2.xcodeproj/project.pbxproj:
16619
16620 2010-11-30  Anders Carlsson  <andersca@apple.com>
16621
16622         Reviewed by Sam Weinig.
16623
16624         Pass the plug-in process shim in DYLD_INSERT_LIBRARIES when launching the plug-in process
16625         https://bugs.webkit.org/show_bug.cgi?id=50262
16626
16627         * UIProcess/Launcher/mac/ProcessLauncherMac.mm:
16628         Add an EnvironmentVariables class that allows for easy modification of the environment variables
16629         passed to posix_spawn.
16630
16631         (WebKit::ProcessLauncher::launchProcess):
16632         When spawning the plug-in process, insert the plug-in process shim.
16633
16634 2010-11-30  Anders Carlsson  <andersca@apple.com>
16635
16636         Reviewed by Sam Weinig.
16637
16638         Add plug-in process shim
16639         https://bugs.webkit.org/show_bug.cgi?id=50261
16640
16641         * Configurations/PluginProcessShim.xcconfig: Added.
16642         * PluginProcess/mac/PluginProcessShim.cpp: Added.
16643         (PluginProcessShimInitialize):
16644         * PluginProcess/mac/PluginProcessShim.h: Added.
16645         * WebKit2.xcodeproj/project.pbxproj:
16646
16647 2010-11-30  Brian Weinstein  <bweinstein@apple.com>
16648
16649         Fix the Windows build by copying WKFindOptions.h into WebKitOutputDir with the other headers.
16650
16651         * win/WebKit2Generated.make:
16652
16653 2010-11-30  Dan Bernstein  <mitz@apple.com>
16654
16655         Try to fix the Windows build.
16656
16657         * win/WebKit2.vcproj:
16658
16659 2010-11-30  Dan Bernstein  <mitz@apple.com>
16660
16661         Reviewed by Anders Carlsson.
16662
16663         Injected bundle support for <rdar://problem/8710645> WebKitTestRunner needs layoutTestController.findString
16664         https://bugs.webkit.org/show_bug.cgi?id=50238
16665
16666         * Shared/API/c/WKFindOptions.h: Added. Moved the definition of WKFindOptions here from WKPage.h.
16667         * Shared/API/c/WKSharedAPICast.h:
16668         (WebKit::toFindOptions): Moved from WKAPICast.h.
16669         * UIProcess/API/C/WKAPICast.h:
16670         * UIProcess/API/C/WKPage.h:
16671         * WebKit2.xcodeproj/project.pbxproj: Added WKFindOptions.h.
16672         * WebProcess/InjectedBundle/API/c/WKBundlePage.cpp:
16673         (WKBundlePageFindString): Added.
16674         * WebProcess/InjectedBundle/API/c/WKBundlePage.h:
16675         * WebProcess/WebPage/WebPage.cpp:
16676         (WebKit::WebPage::findStringFromInjectedBundle): Added.
16677         * WebProcess/WebPage/WebPage.h:
16678
16679 2010-11-30  Andreas Kling  <kling@webkit.org>
16680
16681         Reviewed by Dirk Schulze.
16682
16683         GraphicsContext: Remove "current path" and have strokePath, fillPath and clipPath take a Path argument
16684         https://bugs.webkit.org/show_bug.cgi?id=48516
16685
16686         * UIProcess/FindIndicator.cpp:
16687         (WebKit::FindIndicator::draw):
16688
16689 2010-11-30  Steve Falkenburg  <sfalken@apple.com>
16690
16691         Reviewed by Adam Roben.
16692
16693         All projects on Windows should use cmd files for build events
16694         https://bugs.webkit.org/show_bug.cgi?id=50213
16695
16696         * win/WebKit2Common.vsprops:
16697         * win/WebKit2WebProcessCommon.vsprops:
16698         * win/WebKit2WebProcessPostBuild.cmd: Added.
16699         * win/WebKit2WebProcessPreBuild.cmd: Added.
16700         * win/WebKitPostBuild.cmd: Added.
16701         * win/WebKitPreBuild.cmd: Added.
16702         * win/WebKitPreLink.cmd: Added.
16703
16704 2010-11-30  Kenneth Rohde Christiansen  <kenneth@webkit.org>
16705
16706         Reviewed by Andreas Kling.
16707
16708         [Qt] Early return if setResizesToContentsUsingLayoutSize() is called with already-set size
16709
16710         * WebProcess/WebPage/WebPage.cpp:
16711         (WebKit::WebPage::setResizesToContentsUsingLayoutSize):
16712
16713 2010-11-29  Dan Bernstein  <mitz@apple.com>
16714
16715         Reviewed by Darin Adler.
16716
16717         WebKit2 part of <rdar://problem/8650085> adding word-prefix search options to the text search API.
16718         https://bugs.webkit.org/show_bug.cgi?id=50038
16719         Based on a patch from Darin Adler.
16720
16721         * Shared/WebFindOptions.h: Renamed FindOptions.h to this to account for WebCore’s new private
16722         FindOptions.h. Added and reordered FindOptions and rolled FindDirection into FindOptions.
16723         * UIProcess/API/C/WKAPICast.h: Removed toFindDirection().
16724         (WebKit::toFindOptions): Updated for new values.
16725         * UIProcess/API/C/WKPage.cpp:
16726         (WKPageFindString): Removed separate WKFindDirection.
16727         (WKPageCountStringMatches): Replaces caseInsensitive boolean with WKFindOptions.
16728         * UIProcess/API/C/WKPage.h: Removed WKFindDirection and updated WKFindOptions.
16729         * UIProcess/WebPageProxy.cpp:
16730         (WebKit::WebPageProxy::findString): Removed separate FindDirection.
16731         (WebKit::WebPageProxy::countStringMatches): Replaced caseInsensitive boolean with FindOptions.
16732         * UIProcess/WebPageProxy.h:
16733         * WebKit2.xcodeproj/project.pbxproj: Updated for the header rename.
16734         * WebProcess/WebPage/FindController.cpp:
16735         (WebKit::core): Added. Converts WebKit2 FindOptions to WebCore FindOptions.
16736         (WebKit::FindController::countStringMatches): Changed to use FindOptions.
16737         (WebKit::FindController::findString): Ditto.
16738         * WebProcess/WebPage/FindController.h:
16739         * WebProcess/WebPage/WebPage.cpp:
16740         (WebKit::WebPage::findString): Ditto.
16741         (WebKit::WebPage::countStringMatches): Ditto.
16742         * WebProcess/WebPage/WebPage.h:
16743         * WebProcess/WebPage/WebPage.messages.in: Ditto.
16744
16745 2010-11-29  Brent Fulgham  <bfulgham@webkit.org>
16746
16747         Unreviewed build fix.
16748
16749         * win/WebKit2.vcproj: Add missing vsprops association for
16750         Debug_Cairo_CFLite target.
16751
16752 2010-11-29  Anders Carlsson  <andersca@apple.com>
16753
16754         Reviewed by Sam Weinig.
16755
16756         Cursor does not always change back to arrow when exiting image document
16757         https://bugs.webkit.org/show_bug.cgi?id=50190
16758         <rdar://problem/8665265>
16759
16760         * Shared/mac/WebEventFactory.mm:
16761         (WebKit::mouseEventTypeForEvent):
16762         (WebKit::globalPointForEvent):
16763         (WebKit::pointForEvent):
16764         Handle the NSMouseEntered and NSMouseExited events.
16765
16766         * UIProcess/API/mac/WKView.mm:
16767         (-[WKView initWithFrame:pageNamespaceRef:hiddenFromInjectedBundle:]):
16768         We want entered and exited events for this tracking area.
16769         Add mouseEntered and mouseExited handlers.
16770
16771 2010-11-29  Anders Carlsson  <andersca@apple.com>
16772
16773         Reviewed by Darin Adler.
16774
16775         Should be able to pause and resume downloads
16776         https://bugs.webkit.org/show_bug.cgi?id=50185
16777         <rdar://problem/8691135>
16778
16779         * UIProcess/API/C/WKContext.h:
16780         Add didCancel callback.
16781
16782         * UIProcess/API/C/WKDownload.cpp:
16783         (WKDownloadGetResumeData):
16784         (WKDownloadCancel):
16785         Call the respective DownloadProxy member functions.
16786
16787         * UIProcess/API/C/WKDownload.h:
16788         * UIProcess/Downloads/DownloadProxy.cpp:
16789         (WebKit::DownloadProxy::cancel):
16790         Send Cancel to the WebProcess.
16791
16792         (WebKit::DownloadProxy::didFail):
16793         This now takes a resumeData reference.
16794
16795         (WebKit::DownloadProxy::didCancel):
16796         Set the resume data and call didCancel.
16797
16798         * UIProcess/Downloads/DownloadProxy.h:
16799         (WebKit::DownloadProxy::resumeData):
16800         Return the resume data.
16801
16802         * UIProcess/Downloads/DownloadProxy.messages.in:
16803         Add DidCancel message, Add resume data to DidFail.
16804
16805         * UIProcess/WebDownloadClient.cpp:
16806         (WebKit::WebDownloadClient::didCancel):
16807         Call the didCancel context client function.
16808
16809         * WebProcess/Downloads/Download.cpp:
16810         (WebKit::Download::didFail):
16811         This now takes a resume data argument as well.
16812         
16813         (WebKit::Download::didCancel):
16814         Send DidCancel.
16815
16816         * WebProcess/Downloads/DownloadManager.cpp:
16817         (WebKit::DownloadManager::cancelDownload):
16818         Look up the download and cancel it.
16819
16820         * WebProcess/Downloads/cf/DownloadCFNet.cpp:
16821         (WebKit::Download::cancel):
16822         Add stub.
16823
16824         * WebProcess/Downloads/mac/DownloadMac.mm:
16825         (WebKit::Download::cancel):
16826         Cancel the download.
16827
16828         (-[WKDownloadAsDelegate download:didFailWithError:]):
16829         Pass the resume data along.
16830
16831         * WebProcess/Downloads/qt/DownloadQt.cpp:
16832         (WebKit::Download::cancel):
16833         Add stub.
16834
16835         * WebProcess/WebProcess.cpp:
16836         (WebKit::WebProcess::cancelDownload):
16837         Ask the download manager to cancel the download.
16838
16839         * WebProcess/WebProcess.h:
16840         * WebProcess/WebProcess.messages.in:
16841         Add CancelDownload message.
16842
16843 2010-11-29  Balazs Kelemen  <kbalazs@webkit.org>
16844
16845         Reviewed by Adam Roben.
16846
16847         [WK2] Support repeating timers
16848         https://bugs.webkit.org/show_bug.cgi?id=50024
16849
16850         Added boolean member for TimerBase on PLATFORM(WIN)
16851         and PLATFORM(QT) to be able to differentiate between
16852         repeating and one shot operating mode. Change the confusing
16853         signature of TimerBase::start: use a bool for selecting
16854         operating mode.
16855         * Platform/RunLoop.h:
16856         (RunLoop::TimerBase::startRepeating):
16857         (RunLoop::TimerBase::startOneShot):
16858         * Platform/mac/RunLoopMac.mm:
16859         (RunLoop::TimerBase::start):
16860         * Platform/qt/RunLoopQt.cpp:
16861         (RunLoop::TimerBase::timerFired): Only stop the timer if it
16862         is not in repeating mode.
16863         (RunLoop::TimerBase::TimerBase): 
16864         (RunLoop::TimerBase::start):
16865         * Platform/win/RunLoopWin.cpp:
16866         (RunLoop::TimerBase::timerFired):  Only stop the timer if it
16867         is not in repeating mode.
16868         (RunLoop::TimerBase::TimerBase):
16869         (RunLoop::TimerBase::start):
16870
16871 2010-11-29  Anders Carlsson  <andersca@apple.com>
16872
16873         Reviewed by Sam Weinig.
16874
16875         Downloads: When the web process crashes, call error callbacks for pending downloads
16876         https://bugs.webkit.org/show_bug.cgi?id=50164
16877         <rdar://problem/8691170>
16878
16879         * UIProcess/API/C/WKContext.h:
16880         Add processDidCrash callback.
16881
16882         * UIProcess/Downloads/DownloadProxy.cpp:
16883         (WebKit::DownloadProxy::~DownloadProxy):
16884         Assert that the web context is null.
16885
16886         (WebKit::DownloadProxy::processDidClose):
16887         Call the processDidCrash callback.
16888
16889         (WebKit::DownloadProxy::didFinish):
16890         (WebKit::DownloadProxy::didFail):
16891         Call downloadFinished.
16892
16893         * UIProcess/WebContext.cpp:
16894         (WebKit::WebContext::processDidClose):
16895         Call processDidClose on all pending downloads.
16896
16897         (WebKit::WebContext::downloadFinished):
16898         Remove the download proxy from the map.
16899
16900         * UIProcess/WebDownloadClient.cpp:
16901         (WebKit::WebDownloadClient::processDidCrash):
16902         Call the processDidCrash callback function.
16903
16904 2010-11-29  Laszlo Gombos  <laszlo.1.gombos@nokia.com>
16905
16906         Reviewed by Kenneth Rohde Christiansen.
16907
16908         [Qt] Allow pre-generation for package builds for WebKit2
16909         https://bugs.webkit.org/show_bug.cgi?id=50139
16910
16911         Use a build variable for the generated directory path and set the
16912         value based on CONFIG just like for WebKit1.
16913
16914         For non-package builds use a relative base path for the
16915         genrated directory just like for WebKit1.
16916
16917         * DerivedSources.pro:
16918         * WebKit2.pro:
16919
16920 2010-11-28  Laszlo Gombos  <laszlo.1.gombos@nokia.com>
16921
16922         Reviewed by Kenneth Rohde Christiansen.
16923
16924         [Qt] Move some build logic from Qt to platform independent code
16925         https://bugs.webkit.org/show_bug.cgi?id=50134
16926
16927         Remove the creation of the directories under $$OUTPUT_DIR/include
16928         as these will be handled by the fwheader_generator target.
16929
16930         Remove the explicit generation of $$OUTPUT_DIR/WebKit2/generated as
16931         this is not required.
16932
16933         * DerivedSources.pro:
16934
16935 2010-11-24  Brady Eidson  <beidson@apple.com>
16936
16937         Reviewed implicitly by John Sullivan.
16938
16939         https://bugs.webkit.org/show_bug.cgi?id=50042
16940
16941         * UIProcess/mac/WebContextMenuProxyMac.mm:
16942         (-[WebUserDataWrapper initWithUserData:WebKit::]): Do the proper self = [super init] dance here.
16943
16944 2010-11-24  Brady Eidson  <beidson@apple.com>
16945
16946         Reviewed by Dan Bernstein.
16947
16948         More of <rdar://problem/8613727> and https://bugs.webkit.org/show_bug.cgi?id=50042
16949         WK2 Context Menu Items need a user data object and a client callback for selection.
16950
16951         * Shared/API/c/WKContextMenuItem.cpp:
16952         (WKContextMenuItemGetUserData):
16953         (WKContextMenuItemSetUserData):
16954         * Shared/API/c/WKContextMenuItem.h:
16955
16956         * Shared/WebContextMenuItem.cpp:
16957         (WebKit::WebContextMenuItem::userData):
16958         (WebKit::WebContextMenuItem::setUserData):
16959         * Shared/WebContextMenuItem.h:
16960
16961         * Shared/WebContextMenuItemData.cpp:
16962         (WebKit::WebContextMenuItemData::userData):
16963         (WebKit::WebContextMenuItemData::setUserData):
16964         * Shared/WebContextMenuItemData.h:
16965
16966         * UIProcess/API/C/WKPage.h:
16967
16968         * UIProcess/WebPageContextMenuClient.cpp:
16969         (WebKit::WebPageContextMenuClient::customContextMenuItemSelected): Added for WK2 apps to get a callback.
16970         * UIProcess/WebPageContextMenuClient.h:
16971
16972         * UIProcess/WebPageProxy.cpp:
16973         (WebKit::WebPageProxy::contextMenuItemSelected):
16974         * UIProcess/mac/WebContextMenuProxyMac.mm:
16975         (-[WebUserDataWrapper initWithUserData:WebKit::]): Add an "APIObject" user data wrapper class to associate with the NSMenuItem.
16976         (-[WebUserDataWrapper WebKit::]):
16977         (-[WebMenuTarget forwardContextMenuAction:]): Include the user data object in the created ContextMenuItemData.
16978         (WebKit::nsMenuItemVector):
16979
16980 2010-11-24  Andras Becsi  <abecsi@inf.u-szeged.hu>
16981
16982         Reviewed by Kenneth Rohde Christiansen.
16983
16984         Make WebKit2 compile with !ENABLE(INSPECTOR).
16985         https://bugs.webkit.org/show_bug.cgi?id=49973
16986
16987         * Shared/API/c/WKSharedAPICast.h:
16988         (WebKit::toAPI):
16989         (WebKit::toImpl):
16990         * UIProcess/API/C/WKAPICast.h:
16991         * UIProcess/API/C/WKInspector.cpp:
16992         * UIProcess/API/C/WKInspector.h:
16993         * UIProcess/API/C/WKPage.cpp:
16994         * UIProcess/API/C/WKPage.h:
16995         * UIProcess/WebInspectorProxy.cpp:
16996         * UIProcess/WebInspectorProxy.h:
16997         * UIProcess/WebInspectorProxy.messages.in:
16998         * UIProcess/WebPageProxy.cpp:
16999         (WebKit::WebPageProxy::close):
17000         (WebKit::WebPageProxy::didReceiveMessage):
17001         (WebKit::WebPageProxy::didReceiveSyncMessage):
17002         (WebKit::WebPageProxy::processDidCrash):
17003         * UIProcess/WebPageProxy.h:
17004         * UIProcess/mac/WebInspectorProxyMac.mm:
17005         * UIProcess/qt/WebInspectorProxyQt.cpp:
17006         * UIProcess/win/WebInspectorProxyWin.cpp:
17007         * WebProcess/WebCoreSupport/WebInspectorClient.cpp:
17008         * WebProcess/WebCoreSupport/WebInspectorClient.h:
17009         * WebProcess/WebCoreSupport/WebInspectorFrontendClient.cpp:
17010         * WebProcess/WebCoreSupport/WebInspectorFrontendClient.h:
17011         * WebProcess/WebPage/WebInspector.cpp:
17012         * WebProcess/WebPage/WebInspector.h:
17013         * WebProcess/WebPage/WebInspector.messages.in:
17014         * WebProcess/WebPage/WebPage.cpp:
17015         (WebKit::WebPage::WebPage):
17016         (WebKit::WebPage::close):
17017         (WebKit::WebPage::windowIsFocused):
17018         (WebKit::WebPage::didReceiveMessage):
17019         * WebProcess/WebPage/WebPage.h:
17020         * WebProcess/WebPage/qt/WebInspectorQt.cpp:
17021         * WebProcess/WebPage/win/WebInspectorWin.cpp:
17022
17023 2010-11-24  Andreas Kling  <kling@webkit.org>
17024
17025         Reviewed by Kenneth Rohde Christiansen.
17026
17027         [Qt][WK2] Make deep copies of tile images
17028
17029         We need the tile images we get from UpdateChunk::createImage() to persist,
17030         so we should take a copy() of them.
17031
17032         * UIProcess/qt/TiledDrawingAreaTileQt.cpp:
17033         (WebKit::TiledDrawingAreaTile::updateFromChunk):
17034
17035 2010-11-24  Andreas Kling  <kling@webkit.org>
17036
17037         Reviewed by Kenneth Rohde Christiansen.
17038
17039         [Qt] Fix uninitialized variable in QGraphicsWKViewPrivate
17040
17041         Always initialize QGWKVP::m_isChangingScale in the constructor.
17042
17043         * UIProcess/API/qt/qgraphicswkview.cpp:
17044         (QGraphicsWKViewPrivate::QGraphicsWKViewPrivate):
17045
17046 2010-11-23  Kenneth Rohde Christiansen  <kenneth@webkit.org>
17047
17048         Reviewed by Andreas Kling.
17049
17050         Adapt to setShouldDelegateScrolling not being a real setting anymore.
17051         We now similarily to setUseFixedLayout and setPaintEntireContents
17052         set it on the FrameView wen transitioning to a new page, etc.
17053
17054         * WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
17055         (WebKit::WebFrameLoaderClient::transitionToCommittedForNewPage):
17056         * WebProcess/WebPage/WebPage.cpp:
17057         (WebKit::WebPage::setResizesToContentsUsingLayoutSize):
17058
17059 2010-11-22  Adam Roben  <aroben@apple.com>
17060
17061         Use paths relative to $WebKitVSPropsRedirectionDir to access shared .vsprops files
17062
17063         Apple's Windows build allows placing header files and import libraries for WebKit's
17064         dependencies (CoreGraphics, CFNetwork, SQLite, etc.) outside the source tree via the
17065         $WebKitLibrariesDir environment variable. This is both required for production builds and
17066         convenient for Apple-internal developer builds. Apple's production builds also require that
17067         WebKit's shared .vsprops files be accessed relative to $WebKitLibrariesDir. In production
17068         builds, the files are copied into that directory tree by the
17069         WebKitLibraries/win/tools/WinTools.make file. In Apple-internal developer builds, the
17070         copying is done by
17071         JavaScriptCore/JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCoreGenerated.make.
17072
17073         This .vsprops copying is problematic in one very important case: when a developer updates
17074         their source tree and then tries to build. Visual Studio only reads .vsprops files when a
17075         project is first loaded. So, when Visual Studio is first opened after the .vsprops files are
17076         updated, it reads in the old files that were already residing in $WebKitLibrariesDir. When a
17077         build is started, JavaScriptCoreGenerated.make copies the new .vsprops files into
17078         $WebKitLibrariesDir, but Visual Studio will not pick up the changes.  The rest of the build
17079         will proceed with out-of-date .vsprops files, which will likely result in a build failure.
17080
17081         To fix this, we now use normal relative paths to access the .vsprops files in the source
17082         tree rather than in $WebKitLibrariesDir, but prefix those paths with a new environment
17083         variable, $WebKitVSPropsRedirectionDir. In developer builds, this environment variable is
17084         unset, so the normal relative paths are used to read the .vsprops files out of the source
17085         tree directly. In production builds, this environment variable is set to a fake directory
17086         that will cause the .vsprops files in $WebKitLibrariesDir to be found when the relative path
17087         is resolved.
17088         
17089         For example, JavaScriptCore.vcproj uses this path for FeatureDefines.vsprops:
17090
17091         $(WebKitVSPropsRedirectionDir)..\..\..\WebKitLibraries\win\tools\vsprops\FeatureDefines.vsprops
17092
17093         In developer builds, where $WebKitVSPropsRedirectionDir is unset, this will point to the
17094         files in WebKitLibraries\win\tools\vsprops in the source tree. In production builds,
17095         JavaScriptCore.make sets $WebKitVSPropsRedirectionDir to
17096         "$(SRCROOT)\AppleInternal\tools\vsprops\OpenSource\1\2\3\", so the full path for
17097         FeatureDefines.vsprops becomes:
17098
17099         $(SRCROOT)\AppleInternal\tools\vsprops\OpenSource\1\2\3\..\..\..\WebKitLibraries\win\tools\vsprops\FeatureDefines.vsprops
17100
17101         which resolves to:
17102
17103         $(SRCROOT)\AppleInternal\tools\vsprops\OpenSource\WebKitLibraries\win\tools\vsprops\FeatureDefines.vsprops
17104
17105         (We rely on the fact that Windows doesn't care whether the directories "1", "2", and "3"
17106         actually exist since they are matched by an equal number of ".." path components.)
17107
17108         Note that Visual Studio still won't pick up changes made to .vsprops files while Visual
17109         Studio is open, but that problem hasn't seemed to cause developers many headaches so far.
17110
17111         Fixes <http://webkit.org/b/49181> Windows build fails mysteriously when .vsprops files are
17112         updated
17113
17114         Reviewed by Dave Hyatt.
17115
17116         * win/WebKit2.make: Set $WebKitVSPropsRedirectionDir so that production builds can
17117         find the .vsprops files.
17118
17119         * win/WebKit2.vcproj:
17120         * win/WebKit2WebProcess.vcproj:
17121         Changed to use paths relative to $WebKitVSPropsRedirectionDir to access shared .vsprops
17122         files.
17123
17124 2010-11-22  Kenneth Rohde Christiansen  <kenneth@webkit.org>
17125
17126         Reviewed by Andreas Kling.
17127
17128         Make WebKit2 compile with ENABLE_JAVASCRIPT_DEBUGGER=0
17129
17130         * WebProcess/WebPage/WebInspector.cpp: Add missing ENABLE(JAVASCRIPT_DEBUGGER) guards.
17131         (WebKit::WebInspector::startJavaScriptDebugging):
17132         (WebKit::WebInspector::stopJavaScriptDebugging):
17133         (WebKit::WebInspector::startJavaScriptProfiling):
17134         (WebKit::WebInspector::stopJavaScriptProfiling):
17135
17136 2010-11-21  Sam Weinig  <sam@webkit.org>
17137
17138         Reviewed by Dan Bernstein.
17139
17140         Textareas should be resizable by default
17141         https://bugs.webkit.org/show_bug.cgi?id=49892
17142
17143         Test: WebKit2/WKPreferences
17144
17145         * Shared/WebPreferencesStore.cpp:
17146         (WebKit::WebPreferencesStore::WebPreferencesStore):
17147         (WebKit::WebPreferencesStore::encode):
17148         (WebKit::WebPreferencesStore::decode):
17149         * Shared/WebPreferencesStore.h:
17150         Add textAreasAreResizable bit.
17151
17152         * UIProcess/API/C/WKPreferences.cpp:
17153         (WKPreferencesSetJavaEnabled):
17154         (WKPreferencesGetJavaEnabled):
17155         Fix typo, WKPRe... -> WKPre...
17156
17157         (WKPreferencesSetMinimumFontSize):
17158         (WKPreferencesGetMinimumFontSize):
17159         Fix comment to correctly reflect that the default minimumFontSize is 0, not 1.
17160
17161         (WKPreferencesSetTextAreasAreResizable):
17162         (WKPreferencesGetTextAreasAreResizable):
17163         * UIProcess/API/C/WKPreferences.h:
17164         Add API.
17165
17166         * UIProcess/API/C/WKPreferencesPrivate.h:
17167         Don't use PLATFORM in API headers.
17168
17169         * UIProcess/WebPreferences.cpp:
17170         (WebKit::WebPreferences::setTextAreasAreResizable):
17171         (WebKit::WebPreferences::textAreasAreResizable):
17172         * UIProcess/WebPreferences.h:
17173         * WebProcess/WebPage/WebPage.cpp:
17174         (WebKit::WebPage::updatePreferences):
17175         Pipe bit through to the WebProcess and onto WebCore::Settings.
17176
17177 2010-11-19  Zalan Bujtas  <zbujtas@gmail.com>
17178
17179         Reviewed by Andreas Kling.
17180
17181         WebUIClient::createNewPage() expects a retained WKPageRef. 
17182         https://bugs.webkit.org/show_bug.cgi?id=48549
17183
17184         * UIProcess/API/qt/ClientImpl.cpp:
17185         (qt_wk_createNewPage):
17186
17187 2010-11-19  Anders Carlsson  <andersca@apple.com>
17188
17189         Reviewed by Sam Weinig.
17190
17191         Add a didFail WKContextDownloadClient callback
17192         https://bugs.webkit.org/show_bug.cgi?id=49847
17193
17194         * UIProcess/API/C/WKContext.h:
17195         Add didFail callback.
17196
17197         * UIProcess/Downloads/DownloadProxy.cpp:
17198         (WebKit::DownloadProxy::didFail):
17199         Call WebDownloadClient::didFail.
17200
17201         * UIProcess/WebDownloadClient.cpp:
17202         (WebKit::WebDownloadClient::didFail):
17203         Call the didFail client function.
17204
17205
17206 2010-11-19  Anders Carlsson  <andersca@apple.com>
17207
17208         Reviewed by Sam Weinig.
17209
17210         Extend sandbox when downloading files
17211         https://bugs.webkit.org/show_bug.cgi?id=49844
17212
17213         * Platform/CoreIPC/HandleMessage.h:
17214         (CoreIPC::callMemberFunction):
17215         Add new overload.
17216
17217         * UIProcess/Downloads/DownloadProxy.cpp:
17218         (WebKit::DownloadProxy::decideDestinationWithSuggestedFilename):
17219         Create a sandbox extension handle if necessary.
17220
17221         * UIProcess/Downloads/DownloadProxy.messages.in:
17222         Add a sandbox extension handle out parameter to the DecideDestinationWithSuggestedFilename message.
17223
17224         * WebProcess/Downloads/Download.cpp:
17225         (WebKit::Download::decideDestinationWithSuggestedFilename):
17226         Create and consume the returned sandbox extension handle.
17227
17228         (WebKit::Download::didFinish):
17229         (WebKit::Download::didFail):
17230         Invalidate the sandbox extension handles.
17231
17232         * WebProcess/Downloads/mac/DownloadMac.mm:
17233         (-[WKDownloadAsDelegate download:shouldDecodeSourceDataOfMIMEType:]):
17234         Whoops, fix inverted logic.
17235
17236 2010-11-19  Steve Falkenburg  <sfalken@apple.com>
17237
17238         Reviewed by Adam Roben.
17239
17240         Add Debug_Cairo_CFLite and Release_Cairo_CFLite configurations for all vcproj files
17241         https://bugs.webkit.org/show_bug.cgi?id=49819
17242
17243         * win/WebKit2.vcproj:
17244         * win/WebKit2Generated.vcproj:
17245         * win/WebKit2WebProcess.vcproj:
17246         * win/WebKit2WebProcessCommon.vsprops:
17247
17248 2010-11-19  Brady Eidson  <beidson@apple.com>
17249
17250         Reviewed by Darin Adler.
17251
17252         More of <rdar://problem/8613727> and https://bugs.webkit.org/show_bug.cgi?id=49836
17253         Add WebKit2 API relevant to customization of context menus
17254
17255         * WebProcess/InjectedBundle/API/c/WKBundleFrame.cpp:
17256         (WKBundleFrameAllowsFollowingLink):
17257         * WebProcess/InjectedBundle/API/c/WKBundleFrame.h:
17258
17259         * WebProcess/WebPage/WebFrame.cpp:
17260         (WebKit::WebFrame::allowsFollowingLink):
17261         * WebProcess/WebPage/WebFrame.h:
17262
17263 2010-11-19  Brady Eidson  <beidson@apple.com>
17264
17265         Reviewed by Darin Adler.
17266
17267         <rdar://problem/8613727> and https://bugs.webkit.org/show_bug.cgi?id=49836
17268         Add WebKit2 API relevant to customization of context menus
17269
17270         Most of this is just exposing already-existing concepts in API.
17271
17272         * Shared/API/c/WKURLRequest.cpp:
17273         (WKURLRequestCreateWithWKURL):
17274         * Shared/API/c/WKURLRequest.h:
17275
17276         * Shared/WebURLRequest.cpp:
17277         (WebKit::WebURLRequest::create):
17278         * Shared/WebURLRequest.h:
17279
17280         * WebProcess/InjectedBundle/API/c/WKBundleHitTestResult.cpp:
17281         (WKBundleHitTestResultCopyAbsoluteImageURL):
17282         (WKBundleHitTestResultCopyAbsoluteMediaURL):
17283         (WKBundleHitTestResultGetImageRect):
17284         (WKBundleHitTestResultGetIsSelected):
17285         * WebProcess/InjectedBundle/API/c/WKBundleHitTestResult.h:
17286
17287         * WebProcess/InjectedBundle/API/c/WKBundlePage.cpp:
17288         (WKBundlePageHasLocalDataForURL):
17289         (WKBundlePageCanHandleRequest):
17290         * WebProcess/InjectedBundle/API/c/WKBundlePage.h:
17291
17292         * WebProcess/InjectedBundle/InjectedBundleHitTestResult.cpp:
17293         (WebKit::InjectedBundleHitTestResult::absoluteImageURL):
17294         (WebKit::InjectedBundleHitTestResult::absoluteMediaURL):
17295         (WebKit::InjectedBundleHitTestResult::imageRect):
17296         (WebKit::InjectedBundleHitTestResult::isSelected):
17297         * WebProcess/InjectedBundle/InjectedBundleHitTestResult.h:
17298
17299         * WebProcess/WebPage/WebContextMenu.cpp:
17300         (WebKit::WebContextMenu::show):
17301
17302         * WebProcess/WebPage/WebPage.h:
17303         * WebProcess/WebPage/mac/WebPageMac.mm:
17304         (WebKit::WebPage::hasLocalDataForURL):
17305         (WebKit::WebPage::canHandleRequest):
17306         * WebProcess/WebPage/qt/WebPageQt.cpp:
17307         (WebKit::WebPage::hasLocalDataForURL): Stubbed for now.
17308         (WebKit::WebPage::canHandleRequest): Ditto.
17309         * WebProcess/WebPage/win/WebPageWin.cpp:
17310         (WebKit::WebPage::hasLocalDataForURL): Ditto.
17311         (WebKit::WebPage::canHandleRequest): Ditto.
17312
17313 2010-11-19  Darin Adler  <darin@apple.com>
17314
17315         Reviewed by Sam Weinig.
17316
17317         Need a way to clear disk cache from WebContext
17318         https://bugs.webkit.org/show_bug.cgi?id=49820
17319
17320         * UIProcess/API/C/WKContext.cpp:
17321         (WKContextClearResourceCaches): Added.
17322         (WKContextClearApplicationCache): Added.
17323         * UIProcess/API/C/WKContext.h:
17324         * UIProcess/WebContext.cpp:
17325         (WebKit::WebContext::clearResourceCaches): Added.
17326         (WebKit::WebContext::clearApplicationCache): Added.
17327         * UIProcess/WebContext.h:
17328         * WebProcess/WebProcess.cpp:
17329         (WebKit::WebProcess::clearResourceCaches): Added.
17330         (WebKit::WebProcess::clearApplicationCache): Added.
17331         * WebProcess/WebProcess.h:
17332         * WebProcess/WebProcess.messages.in: Added messages.
17333         * WebProcess/mac/WebProcessMac.mm:
17334         (WebKit::WebProcess::platformClearResourceCaches): Added.
17335         * WebProcess/qt/WebProcessQt.cpp:
17336         (WebKit::WebProcess::platformClearResourceCaches): Added.
17337         * WebProcess/win/WebProcessWin.cpp:
17338         (WebKit::WebProcess::platformClearResourceCaches): Added.
17339
17340 2010-11-19  Anders Carlsson  <andersca@apple.com>
17341
17342         Reviewed by Sam Weinig.
17343
17344         Implement support for loading local files
17345         https://bugs.webkit.org/show_bug.cgi?id=49828
17346         <rdar://problem/8447121>
17347
17348         * UIProcess/WebPageProxy.cpp:
17349         (WebKit::initializeSandboxExtensionHandle):
17350         Given an URL, create a sandbox extension if it's a local file URL.
17351
17352         (WebKit::WebPageProxy::loadURL):
17353         (WebKit::WebPageProxy::loadURLRequest):
17354         Pass along sandbox extension handles to the LoadURL and LoadURLRequest messages.
17355         
17356         * WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
17357         (WebKit::WebFrameLoaderClient::dispatchDidStartProvisionalLoad):
17358         Call SandboxExtensionTracker::didStartProvisionalLoad.
17359
17360         (WebKit::WebFrameLoaderClient::dispatchDidCommitLoad):
17361         Call SandboxExtensionTracker::didCommitProvisionalLoad.
17362
17363         (WebKit::WebFrameLoaderClient::dispatchDidFailProvisionalLoad):
17364         Call SandboxExtensionTracker::didFailProvisionalLoad.
17365
17366         * WebProcess/WebPage/WebPage.cpp:
17367         (WebKit::WebPage::~WebPage):
17368         Invalidate the sandbox extension tracker.
17369
17370         (WebKit::WebPage::close):
17371         Invalidate the sandbox extension tracker.
17372
17373         (WebKit::WebPage::loadURL):
17374         (WebKit::WebPage::loadURLRequest):
17375         Pass the sandbox extension handle to the sandbox extension tracker.
17376
17377         (WebKit::WebPage::SandboxExtensionTracker::~SandboxExtensionTracker):
17378         Invalidate the sandbox extension tracker.
17379
17380         (WebKit::WebPage::SandboxExtensionTracker::invalidate):
17381         invalidate ell the sandbox extensions.
17382         
17383         (WebKit::WebPage::SandboxExtensionTracker::beginLoad):
17384         Create a sandbox extension and store it as the "pending provisional extension".
17385
17386         (WebKit::WebPage::SandboxExtensionTracker::didStartProvisionalLoad):
17387         Consume the pending provisional extension and make it the provisional extension.
17388
17389         (WebKit::WebPage::SandboxExtensionTracker::didCommitProvisionalLoad):
17390         Invalidate the committed extension and make the provisional extension the committed extension.
17391
17392         (WebKit::WebPage::SandboxExtensionTracker::didFailProvisionalLoad):
17393         Invalidate the provisional extension.
17394
17395         * WebProcess/WebPage/WebPage.messages.in:
17396         Add SandboxExtension::Handle parameters to LoadURL and LoadURLRequest.
17397
17398 2010-11-19  Anders Carlsson  <andersca@apple.com>
17399
17400         Reviewed by Darin Adler.
17401
17402         Make it possible to encode null SandboxExtension handles
17403         https://bugs.webkit.org/show_bug.cgi?id=49825
17404
17405         * Shared/mac/SandboxExtensionMac.mm:
17406         (WebKit::SandboxExtension::Handle::encode):
17407         If there's no underlying sandbox extension, just encode an empty byte array.
17408
17409         (WebKit::SandboxExtension::Handle::decode):
17410         If the decoded byte array is empty, don't try to create a sandbox extension.
17411
17412         (WebKit::SandboxExtension::create):
17413         If the handle is null, return null.
17414
17415         (WebKit::SandboxExtension::consume):
17416         Consuming shuld not null out the underlying sandbox extension object.
17417
17418 2010-11-19  Steve Falkenburg  <sfalken@apple.com>
17419
17420         Reviewed by Darin Adler.
17421
17422         Normalize Cairo/CFLite project/solution configuration names
17423         https://bugs.webkit.org/show_bug.cgi?id=49818
17424
17425         * win/WebKit2.vcproj:
17426         * win/WebKit2WebProcess.vcproj:
17427
17428 2010-11-19  Anders Carlsson  <andersca@apple.com>
17429
17430         Reviewed by Sam Weinig.
17431
17432         Add SandboxExtension abstraction and use it for the injected bundle extension
17433         https://bugs.webkit.org/show_bug.cgi?id=49817
17434
17435         * Shared/SandboxExtension.h:
17436         Add SandboxExtension abstraction.
17437         
17438         * Shared/WebProcessCreationParameters.cpp:
17439         (WebKit::WebProcessCreationParameters::encode):
17440         (WebKit::WebProcessCreationParameters::decode):
17441         * Shared/WebProcessCreationParameters.h:
17442         Instead of encoding/decoding a token, encode/decode the sandbox extension handle.
17443
17444         * Shared/mac/SandboxExtensionMac.mm: Added.
17445         Add Mac implementation of SandboxExtension.
17446
17447         * UIProcess/WebContext.cpp:
17448         (WebKit::WebContext::ensureWebProcess):
17449         Create a SandboxExtension::Handle object.
17450
17451         * WebKit2.xcodeproj/project.pbxproj:
17452         Add new files.
17453         
17454         * WebProcess/InjectedBundle/InjectedBundle.h:
17455         (WebKit::InjectedBundle::setSandboxExtension):
17456         Set the sandbox extension.
17457
17458         * WebProcess/InjectedBundle/mac/InjectedBundleMac.cpp:
17459         (WebKit::InjectedBundle::load):
17460         Consume the sandbox extension.
17461
17462         * WebProcess/WebProcess.cpp:
17463         (WebKit::WebProcess::initializeWebProcess):
17464         Create a sandbox extension and set it on the injected bundle.
17465
17466 2010-11-18  Steve Falkenburg  <sfalken@apple.com>
17467
17468         Reviewed by Adam Roben.
17469
17470         Windows vcproj configuration names should be normalized across projects
17471         https://bugs.webkit.org/show_bug.cgi?id=49776
17472
17473         * win/WebKit2.submit.sln:
17474         * win/WebKit2Generated.vcproj:
17475         * win/WebKit2GeneratedCommon.vsprops: Added.
17476
17477 2010-11-18  Anders Carlsson  <andersca@apple.com>
17478
17479         Reviewed by Adam Roben.
17480
17481         Crash in WebKit::PluginView::manualLoadDidReceiveResponse when navigating to a .wav file in WebKit2 on Mac
17482         https://bugs.webkit.org/show_bug.cgi?id=48559
17483         <rdar://problem/8606622>
17484
17485         Add null checks for m_plugin.
17486
17487         * WebProcess/Plugins/PluginView.cpp:
17488         (WebKit::PluginView::manualLoadDidReceiveResponse):
17489         (WebKit::PluginView::manualLoadDidReceiveData):
17490         (WebKit::PluginView::manualLoadDidFinishLoading):
17491         (WebKit::PluginView::manualLoadDidFail):
17492
17493 2010-11-18  Mark Rowe  <mrowe@apple.com>
17494
17495         Rubber-stamped by Adam Roben.
17496
17497         <rdar://problem/8602509&8602717&8602724> Enable compaction support.
17498
17499         * Configurations/WebKit2.xcconfig:
17500
17501 2010-11-18  Brian Weinstein  <bweinstein@apple.com>
17502
17503         Reviewed by Adam Roben.
17504
17505          WebKit2: Safari shouldn't auto-activate plug-ins in background tabs.
17506          https://bugs.webkit.org/show_bug.cgi?id=49770
17507          <rdar://problem/8482424>
17508          
17509          Add an API on Windows to call setIsInWindow, which calls through to WebPage::setIsInWindow.
17510          Remove the !PLATFORM(WIN) check in WebPage, so we don't automatically start plugins that are
17511          loaded in background tabs.
17512
17513         * UIProcess/API/C/win/WKView.cpp:
17514         (WKViewSetIsInWindow): Call through to WebView::setIsInWindow.
17515         * UIProcess/API/C/win/WKView.h:
17516         * UIProcess/win/WebView.cpp:
17517         (WebKit::WebView::setIsInWindow): Call through to WebPage::setIsInWindow.
17518         * UIProcess/win/WebView.h:
17519         * WebProcess/WebPage/WebPage.cpp:
17520         (WebKit::WebPage::WebPage): Remove the !PLATFORM(WIN) check and update the comment.
17521
17522 2010-11-18  Darin Adler  <darin@apple.com>
17523
17524         * WebProcess/WebPage/WebPage.cpp: Fix build by rolling out a change.
17525
17526 2010-11-18  Darin Adler  <darin@apple.com>
17527
17528         Reviewed by Kevin Decker.
17529
17530         REGRESSION (WebKit2): Plug-ins and <video> start playing immediately in background tabs
17531         https://bugs.webkit.org/show_bug.cgi?id=49766
17532
17533         Test: manual-tests/resources/video-tab.html
17534
17535         * WebProcess/WebPage/WebPage.cpp:
17536         (WebKit::WebPage::WebPage): Call setCanStartMedia(false) since the rest of the code
17537         starts out treating the page as "not in a window".
17538
17539 2010-11-18  Steve Falkenburg  <sfalken@apple.com>
17540
17541         Reviewed by Adam Roben.
17542
17543         Remove leftover Windows Debug_Internal configurations
17544         https://bugs.webkit.org/show_bug.cgi?id=49758
17545
17546         * win/WebKit2.vcproj:
17547         * win/WebKit2WebProcess.vcproj:
17548
17549 2010-11-18  Anders Carlsson  <andersca@apple.com>
17550
17551         Reviewed by John Sullivan.
17552
17553         Page overlays should be able to handle mouse events
17554         https://bugs.webkit.org/show_bug.cgi?id=49756
17555
17556         * Shared/API/c/WKSharedAPICast.h:
17557         (WebKit::toAPI):
17558         Add API cast function for converting an IntPoint to a WKPoint.
17559
17560         * WebProcess/InjectedBundle/API/c/WKBundlePageOverlay.cpp:
17561         (PageOverlayClientImpl::mouseEvent):
17562         Call the appropriate callbacks.
17563
17564         * WebProcess/InjectedBundle/API/c/WKBundlePageOverlay.h:
17565         Add new callbacks.
17566
17567 2010-11-18  Anders Carlsson  <andersca@apple.com>
17568
17569         Reviewed by Sam Weinig.
17570
17571         Keep the web process alive if there are active downloads
17572         https://bugs.webkit.org/show_bug.cgi?id=49755
17573
17574         Make sure that Download objects are destroyed when the download finishes or fails.
17575         Don't close the web process if there are live Download objects.
17576         
17577         * UIProcess/Downloads/DownloadProxy.cpp:
17578         (WebKit::DownloadProxy::didFail):
17579         Add stub.
17580
17581         * UIProcess/Downloads/DownloadProxy.h:
17582         * UIProcess/Downloads/DownloadProxy.messages.in:
17583         Add DidFail message.
17584
17585         * WebProcess/Downloads/Download.cpp:
17586         (WebKit::Download::didFinish):
17587         Call DownloadManager::downloadFinished.
17588
17589         (WebKit::Download::didFail):
17590         Send DidFail message and call DownloadManager::downloadFinished.
17591         
17592         * WebProcess/Downloads/Download.h:
17593         (WebKit::Download::destinationID):
17594         Call downloadID().
17595
17596         (WebKit::Download::downloadID):
17597         Return the download ID.
17598
17599         * WebProcess/Downloads/DownloadManager.cpp:
17600         (WebKit::DownloadManager::downloadFinished):
17601         Delete the Download object and call WebProcess::shutdownIfPossible.
17602
17603         * WebProcess/Downloads/DownloadManager.h:
17604         (WebKit::DownloadManager::isDownloading):
17605         Return whether the download manager has any active downloads.
17606
17607         * WebProcess/Downloads/mac/DownloadMac.mm:
17608         (-[WKDownloadAsDelegate download:didFailWithError:]):
17609         Call Download::didFail.
17610
17611         * WebProcess/WebProcess.cpp:
17612         (WebKit::WebProcess::removeWebPage):
17613         Call shutdownIfPossible.
17614
17615         (WebKit::WebProcess::shutdownIfPossible):
17616         New function. Don't shutdown if there are live pages or active downloads.
17617
17618         * WebProcess/WebProcess.h:
17619
17620 2010-11-18  Steve Falkenburg  <sfalken@apple.com>
17621
17622         Reviewed by Adam Roben.
17623
17624         Debug_Internal Windows configuration is unnecessary, should be removed
17625         https://bugs.webkit.org/show_bug.cgi?id=49753
17626
17627         * UIProcess/Launcher/win/ProcessLauncherWin.cpp:
17628         * WebKit2Prefix.h:
17629
17630 2010-11-18  Steve Falkenburg  <sfalken@apple.com>
17631
17632         Reviewed by Adam Roben.
17633
17634         Clean up vcproj errors
17635         https://bugs.webkit.org/show_bug.cgi?id=49741
17636
17637         * win/WebKit2WebProcess.vcproj:
17638
17639 2010-11-18  Benjamin Poulain  <benjamin.poulain@nokia.com>
17640
17641         Reviewed by Laszlo Gombos.
17642
17643         [Qt] [WK2] WebKit 2 would not compile for Qt without ENABLE_TOUCH_EVENT
17644         https://bugs.webkit.org/show_bug.cgi?id=49664
17645
17646         Move the ENABLE(TOUCH_EVENTS) to the code where internal WebKit touch
17647         types are used.
17648
17649         * UIProcess/API/qt/qgraphicswkview.cpp:
17650         (QGraphicsWKView::touchEvent):
17651         * UIProcess/API/qt/qwkpage.cpp:
17652         (QWKPagePrivate::touchEvent):
17653
17654 2010-11-17  Andreas Kling  <kling@webkit.org>
17655
17656         Reviewed by Kenneth Rohde Christiansen.
17657
17658         Reuse the size of the actualVisibleContentRect when loading a new page
17659         or navigating session history.
17660
17661         * WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
17662         (WebKit::WebFrameLoaderClient::transitionToCommittedForNewPage):
17663
17664 2010-11-17  Dimitri Glazkov  <dglazkov@chromium.org>
17665
17666         Reviewed by Darin Adler.
17667
17668         Converge means of querying a parent node into one way, which is Node::parentNode.
17669         https://bugs.webkit.org/show_bug.cgi?id=49686
17670
17671         * WebProcess/WebPage/WebPage.cpp: Changed to use parentNode.
17672         (WebKit::WebPage::findZoomableAreaForPoint): Ditto.
17673
17674 2010-11-17  Timothy Hatcher  <timothy@apple.com>
17675
17676         Remove duplicate Web Inspector message handeling in WebPage::didReceiveMessage.
17677
17678         https://webkit.org/b/49689
17679
17680         Reviewed by Andreas Kling.
17681
17682         * WebProcess/WebPage/WebPage.cpp:
17683         (WebKit::WebPage::didReceiveMessage): Remove duplicate code.
17684
17685 2010-11-17  Timothy Hatcher  <timothy@apple.com>
17686
17687         Fix a crash when closing the inspected page when the Web Inspector
17688         page was never created.
17689
17690         https://bugs.webkit.org/show_bug.cgi?id=49687
17691
17692         Reviewed by John Sullivan.
17693
17694         * WebProcess/WebCoreSupport/WebInspectorClient.cpp:
17695         (WebKit::WebInspectorClient::sendMessageToFrontend): Null check the Inspector WebPage.
17696
17697 2010-11-17  Anders Carlsson  <andersca@apple.com>
17698
17699         Reviewed by John Sullivan.
17700
17701         Don't crash when invalidating a page overlay that hasn't been installed yet
17702         https://bugs.webkit.org/show_bug.cgi?id=49685
17703
17704         Null check the web page.
17705
17706         * WebProcess/WebPage/PageOverlay.cpp:
17707         (WebKit::PageOverlay::setNeedsDisplay):
17708
17709 2010-11-17  Brady Eidson  <beidson@apple.com>
17710
17711         Reviewed by Darin Adler.
17712
17713         https://bugs.webkit.org/show_bug.cgi?id=49682 - Expose "removeItemAtIndex" in WKMutableArray
17714
17715         * Shared/API/c/WKMutableArray.cpp:
17716         (WKArrayRemoveItemAtIndex):
17717         * Shared/API/c/WKMutableArray.h:
17718
17719         * Shared/MutableArray.cpp:
17720         (WebKit::MutableArray::removeItemAtIndex):
17721         * Shared/MutableArray.h:
17722
17723 2010-11-17  Brady Eidson  <beidson@apple.com>
17724
17725         Reviewed by Anders Carlsson.
17726
17727         https://bugs.webkit.org/show_bug.cgi?id=49683 - Export WKContextMenuItem and WKContextMenuItemTypes as public headers
17728
17729         * WebKit2.xcodeproj/project.pbxproj:
17730
17731 2010-11-17  Anders Carlsson  <andersca@apple.com>
17732
17733         Reviewed by Darin Adler.
17734
17735         Need way to invalidate part of a WKOverlayRef so it will be redrawn
17736         https://bugs.webkit.org/show_bug.cgi?id=49679
17737         <rdar://problem/8679152>
17738
17739         * WebProcess/InjectedBundle/API/c/WKBundlePageOverlay.cpp:
17740         (WKBundlePageOverlaySetNeedsDisplay):
17741         * WebProcess/InjectedBundle/API/c/WKBundlePageOverlay.h:
17742         * WebProcess/WebPage/PageOverlay.cpp:
17743         (WebKit::PageOverlay::setNeedsDisplay):
17744         * WebProcess/WebPage/PageOverlay.h:
17745
17746 2010-11-17  Timothy Hatcher  <timothy@apple.com>
17747
17748         Provide a way to create a WKView (WebPage) that is hidden from
17749         the InjectedBundle. This is needed for the Web Inspector.
17750
17751         https://webkit.org/b/49670
17752
17753         Reviewed by Sam Weinig.
17754
17755         * Shared/WebPageCreationParameters.cpp:
17756         (WebKit::WebPageCreationParameters::encode): Added visibleToInjectedBundle.
17757         (WebKit::WebPageCreationParameters::decode): Ditto.
17758         * Shared/WebPageCreationParameters.h: Ditto.
17759         * UIProcess/API/C/win/WKView.cpp:
17760         (WKViewCreate): Pass VisibleToInjectedBundle to the WebView create function.
17761         * UIProcess/API/C/win/WKViewPrivate.cpp:
17762         (WKViewCreateForWebInspector): Added. Not used yet. Passes HiddenFromInjectedBundle
17763         to the WebView create function.
17764         * UIProcess/API/C/win/WKViewPrivate.h: Added WKViewCreateForWebInspector.
17765         * UIProcess/API/mac/WKView.mm:
17766         (-[WKView initWithFrame:pageNamespaceRef:hiddenFromInjectedBundle:]): Added hiddenFromInjectedBundle
17767         parameter and calls WebPageProxy::setVisibleToInjectedBundle.
17768         (-[WKView initWithFrame:pageNamespaceRef:]): Calls initWithFrame:pageNamespaceRef:hiddenFromInjectedBundle:
17769         and passes NO for hiddenFromInjectedBundle.
17770         (-[WKView initWithFrame:]): Cleaned up by removing the local assignment to self and just returns the result.
17771         * UIProcess/API/mac/WKViewInternal.h: Added initWithFrame:pageNamespaceRef:hiddenFromInjectedBundle:.
17772         * UIProcess/WebPageProxy.cpp:
17773         (WebKit::WebPageProxy::WebPageProxy): Initialize m_visibleToInjectedBundle from the creation parameters.
17774         (WebKit::WebPageProxy::creationParameters): Set visibleToInjectedBundle using m_visibleToInjectedBundle.
17775         * UIProcess/WebPageProxy.h: Added m_visibleToInjectedBundle.
17776         (WebKit::WebPageProxy::visibleToInjectedBundle): Added. Return m_visibleToInjectedBundle.
17777         (WebKit::WebPageProxy::setVisibleToInjectedBundle): Added. Set m_visibleToInjectedBundle.
17778         * UIProcess/win/WebView.cpp:
17779         (WebKit::WebView::WebView): Added InjectedBundleVisibility parameter and calls
17780         WebPageProxy::setVisibleToInjectedBundle.
17781         * UIProcess/win/WebView.h: Added InjectedBundleVisibility enum.
17782         (WebKit::WebView::create): Added InjectedBundleVisibility parameter.
17783         * WebProcess/WebPage/WebPage.cpp:
17784         (WebKit::WebPage::create): Checks visibleToInjectedBundle before talking to the injected bundle.
17785         (WebKit::WebPage::WebPage): Initialize m_isVisibleToInjectedBundle from the creation parameters.
17786         (WebKit::WebPage::close): Checks m_isVisibleToInjectedBundle before talking to the injected bundle.
17787         * WebProcess/WebPage/WebPage.h: Added m_isVisibleToInjectedBundle.
17788
17789 2010-11-17  Andras Becsi  <abecsi@webkit.org>
17790
17791         Unreviewed buildfix.
17792
17793         [Qt] D'oh! I screwed up the dependencies.
17794
17795         * DerivedSources.pro:
17796
17797 2010-11-17  Kenneth Rohde Christiansen  <kenneth@webkit.org>
17798
17799         Reviewed by Andreas Kling.
17800
17801         [WK2] Set paintsEntireContents for "resizes to contents" mode
17802
17803         Only relevant for the tiled backing store.
17804
17805         * WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
17806         (WebKit::WebFrameLoaderClient::transitionToCommittedForNewPage):
17807         * WebProcess/WebPage/WebPage.cpp:
17808         (WebKit::WebPage::setResizesToContentsUsingLayoutSize):
17809
17810 2010-11-17  Andras Becsi  <abecsi@webkit.org>
17811
17812         Reviewed by Andreas Kling.
17813
17814         [Qt][WK2] Make it possible to set custom user agent strings in MiniBrowser
17815         https://bugs.webkit.org/show_bug.cgi?id=49627
17816
17817         Copy the MiniBrowser.qrc and QtTestBrowser's useragentlist.txt file
17818         to the build directory of MiniBrowser because it has to be in a
17819         subdirectory of the resource file.
17820         Add a method to QWKPage to retrieve the custom user agent string.
17821
17822         * DerivedSources.pro:
17823         * UIProcess/API/qt/qwkpage.cpp:
17824         (QWKPage::customUserAgent):
17825         * UIProcess/API/qt/qwkpage.h:
17826
17827 2010-11-17  Simon Fraser  <simon.fraser@apple.com>
17828
17829         Reviewed by Adam Roben.
17830
17831         https://bugs.webkit.org/show_bug.cgi?id=45567
17832         Add stubbed-out layer-backed drawing area for Windows.
17833
17834         Add implementations of LayerBackedDrawingArea and
17835         LayerBackedDrawingAreaProxy for Windows, and add them
17836         to the vcproj.
17837
17838         * UIProcess/LayerBackedDrawingAreaProxy.cpp:
17839         * UIProcess/win/LayerBackedDrawingAreaProxyWin.cpp: Added.
17840         (WebKit::LayerBackedDrawingAreaProxy::page):
17841         (WebKit::LayerBackedDrawingAreaProxy::platformSetSize):
17842         (WebKit::LayerBackedDrawingAreaProxy::attachCompositingContext):
17843         (WebKit::LayerBackedDrawingAreaProxy::detachCompositingContext):
17844         (WebKit::LayerBackedDrawingAreaProxy::paint):
17845         * UIProcess/win/WebView.cpp:
17846         (WebKit::WebView::pageDidEnterAcceleratedCompositing):
17847         (WebKit::WebView::pageDidLeaveAcceleratedCompositing):
17848         (WebKit::WebView::switchToDrawingAreaTypeIfNecessary):
17849         * UIProcess/win/WebView.h:
17850         * WebProcess/WebPage/LayerBackedDrawingArea.cpp:
17851         * WebProcess/WebPage/win/LayerBackedDrawingAreaWin.cpp: Added.
17852         (WebKit::LayerBackedDrawingArea::platformInit):
17853         (WebKit::LayerBackedDrawingArea::platformClear):
17854         (WebKit::LayerBackedDrawingArea::attachCompositingContext):
17855         (WebKit::LayerBackedDrawingArea::detachCompositingContext):
17856         (WebKit::LayerBackedDrawingArea::setRootCompositingLayer):
17857         (WebKit::LayerBackedDrawingArea::scheduleCompositingLayerSync):
17858         (WebKit::LayerBackedDrawingArea::syncCompositingLayers):
17859         * win/WebKit2.vcproj:
17860
17861 2010-11-17  Benjamin Poulain  <benjamin.poulain@nokia.com>
17862
17863         Reviewed by Kenneth Rohde Christiansen.
17864
17865         [Qt] [WK2] The focus switching does not seems to work with QGraphicsWKView
17866         https://bugs.webkit.org/show_bug.cgi?id=49545
17867
17868         Implement focus switching with Tab. This is now done asynchronously,
17869         waiting for webkit to call takeFocus() and switching the widget.
17870
17871         Since the focus can change between the Tab press and the callback,
17872         QGraphicsWKView::focusNextPrevChildCallback() make sure the view still has
17873         focus before passing it to the next widget.
17874
17875         * UIProcess/API/qt/qgraphicswkview.cpp:
17876         (QGraphicsWKView::QGraphicsWKView):
17877         (QGraphicsWKView::focusNextPrevChildCallback):
17878         (QGraphicsWKView::focusNextPrevChild):
17879         * UIProcess/API/qt/qgraphicswkview.h:
17880         * UIProcess/API/qt/qwkpage.cpp:
17881         (QWKPagePrivate::takeFocus):
17882         * UIProcess/API/qt/qwkpage.h:
17883         * UIProcess/API/qt/qwkpage_p.h:
17884
17885 2010-11-17  Andreas Kling  <kling@webkit.org>
17886
17887         Reviewed by Kenneth Rohde Christiansen.
17888
17889         Don't prohibit scrolling in tiled backing store mode.
17890
17891         We delegate scrolling instead.
17892
17893         * WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
17894         (WebKit::WebFrameLoaderClient::transitionToCommittedForNewPage):
17895
17896 2010-11-17  Simon Hausmann  <simon.hausmann@nokia.com>
17897
17898         Reviewed by Kenneth Christiansen.
17899
17900         [Qt] Improve painting performance on 16-bit displays
17901
17902         When the default pixmap depth is 16-bit, then use RGB16 instead of
17903         RGB32 for the chunks, to avoid unnecessary conversions and reduce
17904         chunk size. The conversions happen as images as QPixmaps have 16-bit
17905         depth and the tiles on the ui process are also backed by QPixmaps.
17906
17907         * Shared/qt/UpdateChunk.cpp:
17908         (WebKit::UpdateChunk::size):
17909         (WebKit::UpdateChunk::createImage):
17910         * Shared/qt/UpdateChunk.h:
17911
17912 2010-11-16  Sam Weinig  <sam@webkit.org>
17913
17914         Reviewed by Adam Roben.
17915
17916         WebKit2: Support enabling site-specific quirks
17917         <rdar://problem/8451371>
17918         https://bugs.webkit.org/show_bug.cgi?id=46076
17919
17920         * Shared/WebPreferencesStore.cpp:
17921         (WebKit::WebPreferencesStore::WebPreferencesStore):
17922         (WebKit::WebPreferencesStore::encode):
17923         (WebKit::WebPreferencesStore::decode):
17924         * Shared/WebPreferencesStore.h:
17925         Add needsSiteSpecificQuirks;
17926
17927         * UIProcess/API/C/WKAPICast.h:
17928         (WebKit::toFontSmoothingLevel):
17929         (WebKit::toAPI):
17930         Move FontSmoothing conversion functions here.
17931
17932         * UIProcess/API/C/WKPreferences.cpp:
17933         (WKPreferencesSetFontSmoothingLevel):
17934         (WKPreferencesGetFontSmoothingLevel):
17935         (WKPreferencesSetAcceleratedCompositingEnabled):
17936         (WKPreferencesGetAcceleratedCompositingEnabled):
17937         (WKPreferencesSetCompositingBordersVisible):
17938         (WKPreferencesGetCompositingBordersVisible):
17939         (WKPreferencesSetCompositingRepaintCountersVisible):
17940         (WKPreferencesGetCompositingRepaintCountersVisible):
17941         (WKPreferencesSetNeedsSiteSpecificQuirks):
17942         (WKPreferencesGetNeedsSiteSpecificQuirks):
17943         Add WKPreferencesSetNeedsSiteSpecificQuirks/WKPreferencesGetNeedsSiteSpecificQuirks
17944         and move implementations from WKPreferencesPrivate.cpp here.
17945
17946         * UIProcess/API/C/WKPreferencesPrivate.cpp: Removed.
17947
17948         * UIProcess/API/C/WKPreferencesPrivate.h:
17949         Add Add WKPreferencesSetNeedsSiteSpecificQuirks/WKPreferencesGetNeedsSiteSpecificQuirks.
17950
17951         * UIProcess/WebPreferences.cpp:
17952         (WebKit::WebPreferences::setNeedsSiteSpecificQuirks):
17953         (WebKit::WebPreferences::needsSiteSpecificQuirks):
17954         * UIProcess/WebPreferences.h:
17955         * WebProcess/WebPage/WebPage.cpp:
17956         (WebKit::WebPage::updatePreferences):
17957         Pipe through needsSiteSpecificQuirks.
17958
17959         * WebKit2.xcodeproj/project.pbxproj:
17960         * WebKit2.pro:
17961         * win/WebKit2.vcproj:
17962         Update for removed files.
17963
17964 2010-11-16  Adam Roben  <aroben@apple.com>
17965
17966         Fix horizontal scrolling via the mousewheel/trackpad on Windows
17967
17968         Reviewed by Mark Rowe.
17969
17970         * Shared/win/WebEventFactory.cpp: Fixed typo in the
17971         WM_VISTA_MOUSEHWHEEL constant.
17972
17973 2010-11-16  Steve Falkenburg  <sfalken@apple.com>
17974
17975         Reviewed by Adam Roben.
17976
17977         Disable LTCG for Windows Release builds. Add new Release_LTCG configuration.
17978         https://bugs.webkit.org/show_bug.cgi?id=49632
17979
17980         * win/WebKit2.make:
17981         * win/WebKit2.submit.sln:
17982         * win/WebKit2.vcproj:
17983         * win/WebKit2WebProcess.vcproj:
17984
17985 2010-11-16  Anders Carlsson  <andersca@apple.com>
17986
17987         Reviewed by Sam Weinig.
17988
17989         Handle converting a ResourceHandle to a download
17990         https://bugs.webkit.org/show_bug.cgi?id=49631
17991
17992         * WebProcess/Downloads/Download.h:
17993         Add startWithHandle.
17994
17995         * WebProcess/Downloads/DownloadManager.h:
17996         * WebProcess/Downloads/DownloadManager.cpp:
17997         (WebKit::DownloadManager::convertHandleToDownload):
17998         Create a new Download object and call startWithHandle on it.
17999
18000         * WebProcess/Downloads/cf/DownloadCFNet.cpp:
18001         (WebKit::Download::startWithHandle):
18002         Add stub.
18003
18004         * WebProcess/Downloads/mac/DownloadMac.mm:
18005         (WebKit::Download::startWithHandle):
18006         Create an NSURLDownload object from passed in ResourceHandle.
18007
18008         * WebProcess/Downloads/qt/DownloadQt.cpp:
18009         (WebKit::Download::startWithHandle):
18010         Add stub.
18011
18012         * WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
18013         (WebKit::WebFrameLoaderClient::download):
18014         Call WebFrame::convertHandleToDownload.
18015
18016         * WebProcess/WebPage/WebFrame.cpp:
18017         (WebKit::WebFrame::convertHandleToDownload):
18018         Call DownloadManager::convertHandleToDownload.
18019
18020 2010-11-16  Anders Carlsson  <andersca@apple.com>
18021
18022         Reviewed by John Sullivan.
18023
18024         Set the original URL for downloads
18025         https://bugs.webkit.org/show_bug.cgi?id=49628
18026
18027         * WebProcess/Downloads/DownloadManager.cpp:
18028         (WebKit::DownloadManager::startDownload):
18029         * WebProcess/Downloads/DownloadManager.h:
18030         startDownload now takes the originating web page.
18031
18032         * WebProcess/Downloads/cf/DownloadCFNet.cpp:
18033         (WebKit::Download::start):
18034         start now takes the originating web page.
18035
18036         * WebProcess/Downloads/mac/DownloadMac.mm:
18037         (WebKit::originatingURL):
18038         (WebKit::setOriginalURLForDownload):
18039         Port code over from WebKit1 that sets the download URL.
18040
18041         (WebKit::Download::start):
18042         Call setOriginalURLForDownload.
18043
18044         * WebProcess/Downloads/qt/DownloadQt.cpp:
18045         (WebKit::Download::start):
18046         start now takes the originating web page.
18047
18048         * WebProcess/WebPage/WebFrame.cpp:
18049         (WebKit::WebFrame::startDownload):
18050         Pass the web page to DownloadManager::startDownload.
18051
18052 2010-11-16  Dave Hyatt  <hyatt@apple.com>
18053
18054         Reviewed by Dan Bernstein.
18055
18056         https://bugs.webkit.org/show_bug.cgi?id=11004
18057         
18058         font-size:0 is ignored.  Remove the minimum font size of 1 in CSSStyleSelector.
18059         Change the pref value for minimum font size from 1 to 0.  Make sure to never use the NSFont's size,
18060         since it doesn't honor a size of 0.  Instead pass the size in to the FontPlatformData(NSFont*) version
18061         of the constructor rather than using [NSFont pointSize].
18062
18063         https://bugs.webkit.org/show_bug.cgi?id=49582
18064         
18065         Negative leading is not handled correctly.  There are two bugs here.  The first is that
18066         maxAscent and maxDescent can be negative, so we need a notion of whether or not we have
18067         set them before so that we can allow them to be < 0.
18068         
18069         The second issue is that we should understand where fonts will end up relative to
18070         our baseline (excluding line height), and only allow those boxes to impact ascent and
18071         descent if the actual font box (without factoring in line height) is above or below the
18072         root line box baseline.
18073
18074         Added fast/css/negative-leading.html
18075         
18076         These two bug fixes have to land together to keep the Acid 3 test rendering correctly.
18077
18078         * Shared/WebPreferencesStore.cpp:
18079         (WebKit::WebPreferencesStore::WebPreferencesStore):
18080
18081 2010-11-16  Anders Carlsson  <andersca@apple.com>
18082
18083         Fix clang++ build.
18084
18085         * Scripts/webkit2/messages.py:
18086         * WebProcess/WebPage/WebInspector.h:
18087
18088 2010-11-16  Anders Carlsson  <andersca@apple.com>
18089
18090         Reviewed by Sam Weinig.
18091
18092         Add WKPageCanShowMIMEType
18093         https://bugs.webkit.org/show_bug.cgi?id=49612
18094
18095         * UIProcess/API/C/WKPage.cpp:
18096         (WKPageCanShowMIMEType):
18097         * UIProcess/API/C/WKPage.h:
18098         * UIProcess/WebPageProxy.cpp:
18099         (WebKit::WebPageProxy::canShowMIMEType):
18100         * UIProcess/WebPageProxy.h:
18101
18102 2010-11-16  Anders Carlsson  <andersca@apple.com>
18103
18104         Reviewed by Sam Weinig.
18105
18106         Make WebPageProxy::decidePolicyForMIMEType a tad synchronous
18107         https://bugs.webkit.org/show_bug.cgi?id=49605
18108
18109         Change the DecidePolicyForMIMEType message to be synchronous, and if the policy listener is
18110         invoked from within the decidePolicyForMIMEType callback return the policy information as out
18111         parameters. This is needed in order to convert a loading connection to a download.
18112
18113         * Platform/CoreIPC/HandleMessage.h:
18114         (CoreIPC::callMemberFunction):
18115         * UIProcess/WebPageProxy.cpp:
18116         (WebKit::WebPageProxy::WebPageProxy):
18117         (WebKit::WebPageProxy::receivedPolicyDecision):
18118         (WebKit::WebPageProxy::decidePolicyForMIMEType):
18119         * UIProcess/WebPageProxy.h:
18120         * UIProcess/WebPageProxy.messages.in:
18121         * WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
18122         (WebKit::WebFrameLoaderClient::dispatchDecidePolicyForMIMEType):
18123
18124 2010-11-16  Kenneth Rohde Christiansen  <kenneth@webkit.org>, Zalan Bujtas  <zbujtas@gmail.com>
18125
18126         Reviewed by Andreas Kling.
18127
18128         [WK2][Qt] Add API for finding a zoomable area for a given point
18129
18130         This is useful for implementing e.g "double tap zoom"
18131
18132         Only enabled for Qt.
18133
18134         * UIProcess/API/qt/qwkpage.cpp:
18135         (QWKPage::findZoomableAreaForPoint):
18136         (QWKPagePrivate::didFindZoomableArea):
18137         * UIProcess/API/qt/qwkpage.h:
18138         * UIProcess/API/qt/qwkpage_p.h:
18139         * UIProcess/PageClient.h:
18140         * UIProcess/WebPageProxy.cpp:
18141         (WebKit::WebPageProxy::didFindZoomableArea):
18142         (WebKit::WebPageProxy::findZoomableAreaForPoint):
18143         * UIProcess/WebPageProxy.h:
18144         * UIProcess/WebPageProxy.messages.in:
18145         * WebProcess/WebPage/WebPage.cpp:
18146         (WebKit::WebPage::findZoomableAreaForPoint):
18147         * WebProcess/WebPage/WebPage.h:
18148         * WebProcess/WebPage/WebPage.messages.in:
18149
18150 2010-11-16  Andreas Kling  <kling@webkit.org>
18151
18152         Rubber-stamped by Simon Hausmann.
18153
18154         Revert !ENABLE(INSPECTOR) fix- we don't need it right now,
18155         and it was less maintainable than I had though.
18156
18157         * Shared/API/c/WKSharedAPICast.h:
18158         (WebKit::toAPI):
18159         (WebKit::toImpl):
18160         * WebProcess/WebCoreSupport/WebInspectorClient.cpp:
18161         * WebProcess/WebCoreSupport/WebInspectorFrontendClient.cpp:
18162         * WebProcess/WebPage/WebInspector.cpp:
18163
18164 2010-11-16  Andreas Kling  <kling@webkit.org>
18165
18166         Reviewed by Simon Hausmann.
18167
18168         Fix compilation with !ENABLE(INSPECTOR)
18169
18170         * Shared/API/c/WKSharedAPICast.h:
18171         (WebKit::toAPI):
18172         (WebKit::toImpl):
18173         * WebProcess/WebCoreSupport/WebInspectorClient.cpp:
18174         * WebProcess/WebCoreSupport/WebInspectorFrontendClient.cpp:
18175         * WebProcess/WebPage/WebInspector.cpp:
18176
18177 2010-11-16  Andras Becsi  <abecsi@webkit.org>
18178
18179         Reviewed by Andreas Kling.
18180
18181         [Qt] Use SIGINT instead of SIGKILL to let the web process clean up after itself.
18182
18183         * UIProcess/Launcher/qt/ProcessLauncherQt.cpp:
18184         (WebKit::QtWebProcess::setupChildProcess):
18185
18186 2010-11-16  Kenneth Rohde Christiansen  <kenneth@webkit.org>
18187
18188         Reviewed by Andreas Kling.
18189
18190         [WK2][Qt] Expose resizes-to-contents mode in WebKit2
18191
18192         Only available with ENABLE(TILED_BACKING_STORE)
18193
18194         Based on a patch by Antti Koivisto.
18195
18196         * UIProcess/API/qt/qwkpage.cpp:
18197         (QWKPage::setResizesToContentsUsingLayoutSize):
18198         * UIProcess/API/qt/qwkpage.h:
18199         * UIProcess/WebPageProxy.cpp:
18200         (WebKit::WebPageProxy::setResizesToContentsUsingLayoutSize):
18201         * UIProcess/WebPageProxy.h:
18202         * WebProcess/WebCoreSupport/WebChromeClient.cpp:
18203         (WebKit::WebChromeClient::contentsSizeChanged):
18204         * WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
18205         (WebKit::WebFrameLoaderClient::transitionToCommittedForNewPage):
18206         * WebProcess/WebPage/WebPage.cpp:
18207         (WebKit::WebPage::setSize):
18208         (WebKit::WebPage::setResizesToContentsUsingLayoutSize):
18209         (WebKit::WebPage::resizeToContentsIfNeeded):
18210         * WebProcess/WebPage/WebPage.h:
18211         (WebKit::WebPage::resizesToContentsEnabled):
18212         (WebKit::WebPage::resizesToContentsLayoutSize):
18213         * WebProcess/WebPage/WebPage.messages.in:
18214
18215 2010-11-16  Andreas Kling  <kling@webkit.org>
18216
18217         Reviewed by Kenneth Rohde Christiansen.
18218
18219         [Qt][WK2] Get proxy settings from environment (http[s]_proxy)
18220
18221         If http_proxy and/or https_proxy are set in the environment,
18222         pass those in to QNetworkAccessManager.
18223
18224         * WebProcess/qt/WebProcessMainQt.cpp:
18225         (WebKit::EnvHttpProxyFactory::EnvHttpProxyFactory):
18226         (WebKit::EnvHttpProxyFactory::initializeFromEnvironment):
18227         (WebKit::EnvHttpProxyFactory::queryProxy):
18228         (WebKit::initializeProxy):
18229         (WebKit::WebProcessMainQt):
18230
18231 2010-11-16  Andreas Kling  <kling@webkit.org>
18232
18233         Reviewed by Kenneth Rohde Christiansen.
18234
18235         [Qt][WK2] Emit windowCloseRequested signal on window.close()
18236
18237         Original patch by Zalan Bujtas.
18238
18239         * UIProcess/API/qt/ClientImpl.cpp:
18240         (qt_wk_close):
18241         * UIProcess/API/qt/qwkpage.h:
18242
18243 2010-11-15  Andreas Kling  <kling@webkit.org>
18244
18245         Reviewed by Kenneth Rohde Christiansen.
18246
18247         [Qt] Kill the web process if the UI process dies
18248
18249         Connect UI (parent) process death signal to SIGKILL of the web
18250         process (child). This ensures that there's no stale web processes
18251         after the UI process has crashed.
18252
18253         Original patch by Kimmo Kinnunen.
18254
18255         * UIProcess/Launcher/qt/ProcessLauncherQt.cpp:
18256         (WebKit::QtWebProcess::QtWebProcess):
18257         (WebKit::QtWebProcess::setupChildProcess):
18258         (WebKit::ProcessLauncherHelper::launch):
18259
18260 2010-11-16  Simon Hausmann  <simon.hausmann@nokia.com>
18261
18262         Rubber-stamped by Andreas Kling.
18263
18264         [Qt] Trivial build fix for building WebKit2 inside Qt Creator
18265
18266         Similar to WebCore.pro, define a fallback for OUTPUT_DIR.
18267
18268         * WebKit2.pro:
18269
18270 2010-11-15  Andreas Kling  <kling@webkit.org>
18271
18272         Reviewed by Tor Arne Vestbø.
18273
18274         [Qt] Make sure qwkpage.h and qwkpreferences.h are copied into includes/WebKit2
18275
18276         * UIProcess/API/qt/WKView.h:
18277
18278 2010-11-15  Andreas Kling  <kling@webkit.org>
18279
18280         Reviewed by Tor Arne Vestbø.
18281
18282         [Qt] Use $${PYTHON} rather than "python" to execute Python scripts
18283
18284         Fixes building with the old Python that currently ships with Scratchbox.
18285
18286         * DerivedSources.pro:
18287
18288 2010-11-15  Brady Eidson  <beidson@apple.com>
18289
18290         Reviewed by a better attempt at a Windows build fix.
18291
18292         * win/WebKit2Generated.make:
18293
18294 2010-11-15  Brady Eidson  <beidson@apple.com>
18295
18296         Reviewed by my attempt to fix the Windows build
18297
18298         * win/WebKit2Generated.make: Add new API headers here.
18299
18300 2010-11-15  Brady Eidson  <beidson@apple.com>
18301
18302         Reviewed by Sam Weinig.
18303
18304         Finish off <rdar://problem/8613727> and https://bugs.webkit.org/show_bug.cgi?id=48720
18305         Customizable context menu support in WebKit2.
18306
18307         - Adds an API-level WKContextMenuItem.
18308         - Round trips through both the InjectedBundle client and the new PageContextMenuClient before
18309           actually displaying the menu.
18310
18311         * WebKit2.pro:
18312         * WebKit2.xcodeproj/project.pbxproj:
18313         * win/WebKit2.vcproj:
18314
18315         * Shared/API/c/WKBase.h:
18316         * Shared/API/c/WKContextMenuItem.cpp: Added.
18317         (WKContextMenuItemGetTypeID):
18318         (WKContextMenuItemCreateAsAction):
18319         (WKContextMenuItemCreateAsCheckableAction):
18320         (WKContextMenuItemCreateAsSubmenu):
18321         (WKContextMenuItemSeparatorItem):
18322         (WKContextMenuItemGetTag):
18323         (WKContextMenuItemGetType):
18324         (WKContextMenuItemCopyTitle):
18325         (WKContextMenuItemGetEnabled):
18326         (WKContextMenuItemGetChecked):
18327         (WKContextMenuCopySubmenuItems):
18328         * Shared/API/c/WKContextMenuItem.h: Added.
18329         * Shared/API/c/WKContextMenuItemTypes.h: Added.
18330
18331         * Shared/API/c/WKSharedAPICast.h:
18332         (WebKit::toAPI):
18333         (WebKit::toImpl):
18334
18335         * Shared/WebContextMenuItem.cpp:
18336         (WebKit::WebContextMenuItem::create):
18337         (WebKit::WebContextMenuItem::separatorItem):
18338         (WebKit::WebContextMenuItem::submenuItemsAsImmutableArray):
18339         * Shared/WebContextMenuItem.h:
18340
18341         * UIProcess/API/C/WKPage.cpp:
18342         (WKPageSetPageContextMenuClient):
18343         (WKPageSetPageFindClient):
18344         (WKPageSetPageLoaderClient):
18345         (WKPageSetPagePolicyClient):
18346         (WKPageSetPageUIClient):
18347         * UIProcess/API/C/WKPage.h:
18348
18349         * UIProcess/WebPageContextMenuClient.cpp: Added.
18350         (WebKit::WebPageContextMenuClient::getContextMenuFromProposedMenu):
18351         * UIProcess/WebPageContextMenuClient.h: Added.
18352
18353         * UIProcess/WebPageProxy.cpp:
18354         (WebKit::WebPageProxy::initializeContextMenuClient):
18355         (WebKit::WebPageProxy::showContextMenu):
18356         * UIProcess/WebPageProxy.h:
18357         * UIProcess/WebPageProxy.messages.in:
18358
18359         * WebProcess/InjectedBundle/API/c/WKBundlePage.h:
18360         * WebProcess/InjectedBundle/InjectedBundlePageContextMenuClient.cpp:
18361         (WebKit::InjectedBundlePageContextMenuClient::getCustomMenuFromDefaultItems):
18362         * WebProcess/InjectedBundle/InjectedBundlePageContextMenuClient.h:
18363
18364         * WebProcess/WebCoreSupport/WebContextMenuClient.cpp:
18365         (WebKit::WebContextMenuClient::getCustomMenuFromDefaultItems):
18366         * WebProcess/WebPage/WebContextMenu.cpp:
18367         (WebKit::WebContextMenu::show):
18368
18369 2010-11-15  Anders Carlsson  <andersca@apple.com>
18370
18371         Reviewed by Sam Weinig.
18372
18373         Add shouldDecodeSourceDataOfMIMEType WKContextDownloadClient callback
18374         https://bugs.webkit.org/show_bug.cgi?id=49558
18375
18376         * UIProcess/API/C/WKContext.h:
18377         Add shouldDecodeSourceDataOfMIMEType callback.
18378
18379         * UIProcess/Downloads/DownloadProxy.cpp:
18380         (WebKit::DownloadProxy::shouldDecodeSourceDataOfMIMEType):
18381         Call WebDownloadClient::shouldDecodeSourceDataOfMIMEType.
18382
18383         (WebKit::DownloadProxy::decideDestinationWithSuggestedFilename):
18384         Add allowOverwrite out parameter.
18385
18386         * UIProcess/Downloads/DownloadProxy.h:
18387         * UIProcess/Downloads/DownloadProxy.messages.in:
18388         Add ShouldDecodeSourceDataOfMIMEType message.
18389
18390         * UIProcess/WebDownloadClient.cpp:
18391         (WebKit::WebDownloadClient::shouldDecodeSourceDataOfMIMEType):
18392         Call the WKContextDownloadClient.
18393
18394         (WebKit::WebDownloadClient::decideDestinationWithSuggestedFilename):
18395         Add allowOverwrite out parameter.
18396
18397         * UIProcess/WebDownloadClient.h:
18398         * WebProcess/Downloads/Download.cpp:
18399         (WebKit::Download::shouldDecodeSourceDataOfMIMEType):
18400         Send the ShouldDecodeSourceDataOfMIMEType message.
18401
18402         (WebKit::Download::decideDestinationWithSuggestedFilename):
18403         Add allowOverwrite reply parameter.
18404
18405         * WebProcess/Downloads/mac/DownloadMac.mm:
18406         (-[WKDownloadAsDelegate download:shouldDecodeSourceDataOfMIMEType:]):
18407         Call Download::shouldDecodeSourceDataOfMIMEType.
18408
18409         (-[WKDownloadAsDelegate download:decideDestinationWithSuggestedFilename:]):
18410         Add allowOverwrite parameter.
18411
18412 2010-11-15  Anders Carlsson  <andersca@apple.com>
18413
18414         Reviewed by Sam Weinig.
18415
18416         Add decideDestinationWithSuggestedFilename WKContextDownloadClient callback
18417         https://bugs.webkit.org/show_bug.cgi?id=49554
18418
18419         * Platform/CoreIPC/MessageSender.h:
18420         (CoreIPC::MessageSender::sendSync):
18421         Add sendSync capabilities to Messagesender.
18422         
18423         * UIProcess/API/C/WKContext.h:
18424         Add decideDestinationWithSuggestedFilename callback.
18425
18426         * UIProcess/Downloads/DownloadProxy.cpp:
18427         (WebKit::DownloadProxy::decideDestinationWithSuggestedFilename):
18428         Call WebDownloadClient::decideDestinationWithSuggestedFilename.
18429
18430         * UIProcess/Downloads/DownloadProxy.messages.in:
18431         Add DecideDestinationWithSuggestedFilename.
18432
18433         * UIProcess/WebContext.cpp:
18434         (WebKit::WebContext::didReceiveSyncMessage):
18435         Process MessageClassDownloadProxy messages.
18436
18437         * UIProcess/WebDownloadClient.cpp:
18438         (WebKit::WebDownloadClient::decideDestinationWithSuggestedFilename):
18439         Ask the WKContextDownloadClient for the destination.
18440
18441         * UIProcess/WebProcessProxy.cpp:
18442         (WebKit::WebProcessProxy::didReceiveSyncMessage):
18443         MessageClassDownloadProxy messages should go to the WebContext.
18444
18445         * WebProcess/Downloads/Download.cpp:
18446         (WebKit::Download::decideDestinationWithSuggestedFilename):
18447         Send the DecideDestinationWithSuggestedFilename message.
18448
18449         * WebProcess/Downloads/Download.h:
18450         * WebProcess/Downloads/mac/DownloadMac.mm:
18451         (-[WKDownloadAsDelegate download:decideDestinationWithSuggestedFilename:]):
18452         call Download::decideDestinationWithSuggestedFilename and set the destination.
18453
18454 2010-11-15  Andreas Kling  <kling@webkit.org>
18455
18456         Reviewed by Kenneth Rohde Christiansen.
18457
18458         [WK2][Qt] Add "page snapshot" functionality to tiled backing store
18459
18460         Original patch by Antti Koivisto.
18461
18462         Add a way to take a snapshot of a specific part of the page, at a specific scale.
18463         Only implemented for the tiled drawing area.
18464
18465         * Shared/CoreIPCSupport/DrawingAreaMessageKinds.h:
18466         New message: TakeSnapshot.
18467
18468         * Shared/CoreIPCSupport/DrawingAreaProxyMessageKinds.h:
18469         New message: SnapshotTaken.
18470
18471         * UIProcess/API/qt/qgraphicswkview.h:
18472         * UIProcess/API/qt/qgraphicswkview.cpp:
18473         (QGraphicsWKView::takeSnapshot):
18474         Expose the snapshot functionality.
18475
18476         * UIProcess/TiledDrawingAreaProxy.cpp:
18477         (WebKit::TiledDrawingAreaProxy::didReceiveMessage):
18478         (WebKit::TiledDrawingAreaProxy::takeSnapshot):
18479         * UIProcess/TiledDrawingAreaProxy.h:
18480         * UIProcess/qt/TiledDrawingAreaProxyQt.cpp:
18481         (WebKit::TiledDrawingAreaProxy::snapshotTaken):
18482         * WebProcess/WebPage/TiledDrawingArea.cpp:
18483         (WebKit::TiledDrawingArea::didReceiveMessage):
18484
18485 2010-11-15  Andreas Kling  <andreas.kling@nokia.com>
18486
18487         Reviewed by Kenneth Rohde Christiansen.
18488
18489         [WK2][Qt] WebKit2 implementation of tiled backing store
18490         https://bugs.webkit.org/show_bug.cgi?id=49526
18491
18492         Basic opt-in tiling implementation for WebKit2/Qt.
18493
18494         Original patch by Antti Koivisto.
18495
18496         * Shared/CoreIPCSupport/DrawingAreaMessageKinds.h:
18497         New messages: RequestTileUpdate and CancelTileUpdate.
18498
18499         * Shared/CoreIPCSupport/DrawingAreaProxyMessageKinds.h:
18500         New messages: Invalidate, TileUpdated, AllTileUpdatesProcessed.
18501
18502         * Shared/DrawingAreaBase.h:
18503         New area type: TiledDrawingAreaType.
18504
18505         * UIProcess/API/qt/qgraphicswkview.h:
18506         * UIProcess/API/qt/qgraphicswkview.cpp:
18507         (QGraphicsWKView::QGraphicsWKView):
18508         (QGraphicsWKView::setGeometry):
18509         (QGraphicsWKViewPrivate::QGraphicsWKViewPrivate):
18510         (QGraphicsWKView::prepareScaleChange):
18511         (QGraphicsWKView::commitScaleChange):
18512         (QGraphicsWKViewPrivate::onScaleChanged):
18513         (QGraphicsWKViewPrivate::commitScale):
18514         Support for tiled backing store.
18515
18516         * UIProcess/TiledDrawingAreaProxy.cpp: Added.
18517         (WebKit::TiledDrawingAreaProxy::create):
18518         (WebKit::TiledDrawingAreaProxy::TiledDrawingAreaProxy):
18519         (WebKit::TiledDrawingAreaProxy::~TiledDrawingAreaProxy):
18520         (WebKit::TiledDrawingAreaProxy::setSize):
18521         (WebKit::TiledDrawingAreaProxy::setPageIsVisible):
18522         (WebKit::TiledDrawingAreaProxy::didSetSize):
18523         (WebKit::TiledDrawingAreaProxy::didReceiveMessage):
18524         (WebKit::TiledDrawingAreaProxy::didReceiveSyncMessage):
18525         (WebKit::TiledDrawingAreaProxy::requestTileUpdate):
18526         (WebKit::TiledDrawingAreaProxy::waitUntilUpdatesComplete):
18527         (WebKit::TiledDrawingAreaProxy::createTile):
18528         (WebKit::TiledDrawingAreaProxy::setTileSize):
18529         (WebKit::TiledDrawingAreaProxy::setTileCreationDelay):
18530         (WebKit::TiledDrawingAreaProxy::setKeepAndCoverAreaMultipliers):
18531         (WebKit::TiledDrawingAreaProxy::invalidate):
18532         (WebKit::TiledDrawingAreaProxy::updateTileBuffers):
18533         (WebKit::TiledDrawingAreaProxy::tileBufferUpdateComplete):
18534         (WebKit::TiledDrawingAreaProxy::paint):
18535         (WebKit::TiledDrawingAreaProxy::adjustVisibleRect):
18536         (WebKit::TiledDrawingAreaProxy::setContentsScale):
18537         (WebKit::TiledDrawingAreaProxy::removeAllTiles):
18538         (WebKit::TiledDrawingAreaProxy::tileDistance):
18539         (WebKit::TiledDrawingAreaProxy::calculateKeepRect):
18540         (WebKit::TiledDrawingAreaProxy::calculateCoverRect):
18541         (WebKit::TiledDrawingAreaProxy::createTiles):
18542         (WebKit::TiledDrawingAreaProxy::resizeEdgeTiles):
18543         (WebKit::TiledDrawingAreaProxy::dropTilesOutsideRect):
18544         (WebKit::TiledDrawingAreaProxy::tileAt):
18545         (WebKit::TiledDrawingAreaProxy::setTile):
18546         (WebKit::TiledDrawingAreaProxy::removeTile):
18547         (WebKit::TiledDrawingAreaProxy::mapToContents):
18548         (WebKit::TiledDrawingAreaProxy::mapFromContents):
18549         (WebKit::TiledDrawingAreaProxy::contentsRect):
18550         (WebKit::TiledDrawingAreaProxy::tileRectForCoordinate):
18551         (WebKit::TiledDrawingAreaProxy::tileCoordinateForPoint):
18552         (WebKit::TiledDrawingAreaProxy::startTileBufferUpdateTimer):
18553         (WebKit::TiledDrawingAreaProxy::tileBufferUpdateTimerFired):
18554         (WebKit::TiledDrawingAreaProxy::startTileCreationTimer):
18555         (WebKit::TiledDrawingAreaProxy::tileCreationTimerFired):
18556         (WebKit::TiledDrawingAreaProxy::hasPendingUpdates):
18557         * UIProcess/TiledDrawingAreaProxy.h: Added.
18558         (WebKit::TiledDrawingAreaProxy::contentsScale):
18559         (WebKit::TiledDrawingAreaProxy::attachCompositingContext):
18560         (WebKit::TiledDrawingAreaProxy::detachCompositingContext):
18561         (WebKit::TiledDrawingAreaProxy::tileSize):
18562         (WebKit::TiledDrawingAreaProxy::tileCreationDelay):
18563         (WebKit::TiledDrawingAreaProxy::getKeepAndCoverAreaMultipliers):
18564         * UIProcess/TiledDrawingAreaTile.h: Added.
18565         (WebKit::TiledDrawingAreaTile::create):
18566         (WebKit::TiledDrawingAreaTile::hasBackBufferUpdatePending):
18567         (WebKit::TiledDrawingAreaTile::coordinate):
18568         (WebKit::TiledDrawingAreaTile::rect):
18569         (WebKit::TiledDrawingAreaTile::ID):
18570         * WebProcess/WebPage/DrawingArea.cpp:
18571         (WebKit::DrawingArea::create):
18572         * WebProcess/WebPage/TiledDrawingArea.cpp: Added.
18573         (WebKit::TiledDrawingArea::TiledDrawingArea):
18574         (WebKit::TiledDrawingArea::~TiledDrawingArea):
18575         (WebKit::TiledDrawingArea::invalidateWindow):
18576         (WebKit::TiledDrawingArea::invalidateContentsAndWindow):
18577         (WebKit::TiledDrawingArea::invalidateContentsForSlowScroll):
18578         (WebKit::TiledDrawingArea::scroll):
18579         (WebKit::TiledDrawingArea::setNeedsDisplay):
18580         (WebKit::TiledDrawingArea::display):
18581         (WebKit::TiledDrawingArea::scheduleDisplay):
18582         (WebKit::TiledDrawingArea::setSize):
18583         (WebKit::TiledDrawingArea::suspendPainting):
18584         (WebKit::TiledDrawingArea::resumePainting):
18585         (WebKit::TiledDrawingArea::didUpdate):
18586         (WebKit::TiledDrawingArea::updateTile):
18587         (WebKit::TiledDrawingArea::tileUpdateTimerFired):
18588         (WebKit::TiledDrawingArea::didReceiveMessage):
18589         * WebProcess/WebPage/TiledDrawingArea.h: Added.
18590         (WebKit::TiledDrawingArea::attachCompositingContext):
18591         (WebKit::TiledDrawingArea::detachCompositingContext):
18592         (WebKit::TiledDrawingArea::setRootCompositingLayer):
18593         (WebKit::TiledDrawingArea::scheduleCompositingLayerSync):
18594         (WebKit::TiledDrawingArea::syncCompositingLayers):
18595         * WebProcess/WebPage/qt/TiledDrawingAreaQt.cpp: Added.
18596         (WebKit::TiledDrawingArea::paintIntoUpdateChunk):
18597         * WebKit2.pro:
18598         * UIProcess/qt/TiledDrawingAreaTileQt.cpp: Added.
18599         (WebKit::checkeredPixmap):
18600         (WebKit::TiledDrawingAreaTile::TiledDrawingAreaTile):
18601         (WebKit::TiledDrawingAreaTile::~TiledDrawingAreaTile):
18602         (WebKit::TiledDrawingAreaTile::isDirty):
18603         (WebKit::TiledDrawingAreaTile::isReadyToPaint):
18604         (WebKit::TiledDrawingAreaTile::hasReadyBackBuffer):
18605         (WebKit::TiledDrawingAreaTile::invalidate):
18606         (WebKit::TiledDrawingAreaTile::resize):
18607         (WebKit::TiledDrawingAreaTile::swapBackBufferToFront):
18608         (WebKit::TiledDrawingAreaTile::paint):
18609         (WebKit::TiledDrawingAreaTile::paintCheckerPattern):
18610         (WebKit::TiledDrawingAreaTile::updateFromChunk):
18611         (WebKit::TiledDrawingAreaTile::updateBackBuffer):
18612         * UIProcess/qt/TiledDrawingAreaProxyQt.cpp: Added.
18613         (WebKit::TiledDrawingAreaProxy::updateWebView):
18614         (WebKit::TiledDrawingAreaProxy::webViewVisibleRect):
18615         (WebKit::TiledDrawingAreaProxy::page):
18616
18617 2010-11-12  Benjamin Poulain  <benjamin.poulain@nokia.com>
18618
18619         Reviewed by Andreas Kling.
18620
18621         [Qt] Need to implement WebKit::pluginWillHandleLoadError for WebKit2
18622         https://bugs.webkit.org/show_bug.cgi?id=48764
18623
18624         Add the missing error to Qt support.
18625
18626         * WebProcess/WebCoreSupport/qt/WebErrorsQt.cpp:
18627         (WebKit::pluginWillHandleLoadError):
18628
18629 2010-11-12  John Sullivan  <sullivan@apple.com>
18630
18631         Reviewed by Anders Carlsson.
18632
18633         Fixed Target for WKBundlePageOverlay.cpp.
18634
18635         * WebKit2.xcodeproj/project.pbxproj:
18636         Changed Target for WKBundlePageOverlay.cpp from WebProcess to WebKit2.
18637
18638 2010-11-12  Anders Carlsson  <andersca@apple.com>
18639
18640         Reviewed by John Sullivan.
18641
18642         Need a way that WKBundlePageOverlayRef clients can make sure they only uninstall the overlay they installed
18643         https://bugs.webkit.org/show_bug.cgi?id=49461
18644         <rdar://problem/8662760>
18645
18646         * WebProcess/InjectedBundle/API/c/WKBundlePage.cpp:
18647         (WKBundlePageUninstallPageOverlay):
18648         * WebProcess/InjectedBundle/API/c/WKBundlePage.h:
18649         * WebProcess/WebPage/FindController.cpp:
18650         (WebKit::FindController::findString):
18651         (WebKit::FindController::hideFindUI):
18652         * WebProcess/WebPage/WebPage.cpp:
18653         (WebKit::WebPage::uninstallPageOverlay):
18654         * WebProcess/WebPage/WebPage.h:
18655
18656 2010-11-12  Anders Carlsson  <andersca@apple.com>
18657
18658         Reviewed by Sam Weinig.
18659
18660         Allow MessageSender to override sendMessage
18661         https://bugs.webkit.org/show_bug.cgi?id=49457
18662
18663         Change MessageSender::send to encode the message and then call sendMessage.
18664         This allows for clients to override sendMessage, something which WebProcessProxy
18665         will be able to take advantage of.
18666
18667         * Platform/CoreIPC/MessageSender.h:
18668         (CoreIPC::MessageSender::send):
18669         (CoreIPC::MessageSender::sendMessage):
18670
18671 2010-11-12  Anders Carlsson  <andersca@apple.com>
18672
18673         Reviewed by Sam Weinig.
18674
18675         CoreIPC cleanup
18676         https://bugs.webkit.org/show_bug.cgi?id=49455
18677
18678         Add a static create function to ArgumentEncoder. 
18679         Factor sync message argument encoder creation out into a new function,
18680         createSyncMessageArgumentEncoder.
18681         
18682         * Platform/CoreIPC/ArgumentEncoder.cpp:
18683         (CoreIPC::ArgumentEncoder::create):
18684         * Platform/CoreIPC/ArgumentEncoder.h:
18685         * Platform/CoreIPC/Connection.cpp:
18686         (CoreIPC::Connection::createSyncMessageArgumentEncoder):
18687         (CoreIPC::Connection::dispatchSyncMessage):
18688         * Platform/CoreIPC/Connection.h:
18689         (CoreIPC::Connection::send):
18690         (CoreIPC::Connection::sendSync):
18691         * UIProcess/WebProcessProxy.h:
18692         (WebKit::WebProcessProxy::send):
18693
18694 2010-11-12  Sam Weinig  <sam@webkit.org>
18695
18696         Reviewed by Anders Carlsson.
18697
18698         ASSERTION when converting some WKStringRefs returned from willSubmitForm to CFStringRef
18699         <rdar://problem/8662180>
18700         https://bugs.webkit.org/show_bug.cgi?id=49454
18701
18702         Enforce the invariant that a WebString never contains a null WTF::String at a
18703         lower level, in the WebString constructor, instead of relying on the callers of
18704         WebString::create to do it.
18705
18706         * Shared/API/c/WKSharedAPICast.h:
18707         (WebKit::toAPI):
18708         (WebKit::toCopiedAPI): Remove null string check...
18709
18710         * Shared/WebString.h:
18711         (WebKit::WebString::WebString): ... and move it to the constructor.
18712
18713         * Shared/API/c/WKURL.cpp:
18714         (WKURLCopyString): Use toCopiedAPI() instead of calling WebString directly
18715         to match other similar uses.
18716
18717 2010-11-12  Andreas Kling  <kling@webkit.org>
18718
18719         Reviewed by Antonio Gomes.
18720
18721         [Qt][WK2] Fix leaking of mapped files
18722
18723         MappedMemory::fileName was never set on the receiving side, which led
18724         the MappedMemoryPool to call QFile::map() again when reusing an existing file.
18725
18726         * Platform/qt/MappedMemoryPool.cpp:
18727         (WebKit::MappedMemoryPool::mapFile):
18728
18729 2010-11-12  Adam Roben  <aroben@apple.com>
18730
18731         Windows build fix
18732
18733         * win/WebKit2Generated.make: Copy WKBundlePageOverlay.h.
18734
18735 2010-11-12  Benjamin Poulain  <benjamin.poulain@nokia.com>
18736
18737         Unreviewed fix after r71857.
18738
18739         * UIProcess/qt/WebInspectorProxyQt.cpp:
18740         * WebProcess/WebPage/qt/WebInspectorQt.cpp:
18741
18742 2010-11-11  Anders Carlsson  <andersca@apple.com>
18743
18744         Reviewed by Darin Adler.
18745
18746         Add didReceiveResponse and didReceiveData to the download client
18747         https://bugs.webkit.org/show_bug.cgi?id=49418
18748
18749         * UIProcess/API/C/WKContext.h:
18750         Add didReceiveResponse and didReceiveData to WKContextDownloadClient.
18751
18752         * UIProcess/Downloads/DownloadProxy.cpp:
18753         (WebKit::DownloadProxy::didReceiveResponse):
18754         (WebKit::DownloadProxy::didReceiveData):
18755         Call WebDownloadClient member functions.
18756
18757         * UIProcess/Downloads/DownloadProxy.messages.in:
18758         Add DidReceiveResponse and DidReceiveData messages.
18759
18760         * UIProcess/WebDownloadClient.cpp:
18761         (WebKit::WebDownloadClient::didReceiveResponse):
18762         (WebKit::WebDownloadClient::didReceiveData):
18763         Call client functions.
18764
18765         * WebKit2.xcodeproj/project.pbxproj:
18766         Let Xcode update the file.
18767
18768         * WebProcess/Downloads/Download.cpp:
18769         (WebKit::Download::didReceiveResponse):
18770         (WebKit::Download::didReceiveData):
18771         Send messages.
18772
18773         * WebProcess/Downloads/mac/DownloadMac.mm:
18774         (WebKit::Download::start):
18775         Set deletesFileUponFailure to NO.
18776
18777         (-[WKDownloadAsDelegate download:didReceiveResponse:]):
18778         Call didReceiveResponse.
18779
18780 2010-11-11  Anders Carlsson  <andersca@apple.com>
18781
18782         Reviewed by Sam Weinig.
18783
18784         Add an argument coder for ResourceResponse.
18785         https://bugs.webkit.org/show_bug.cgi?id=49415
18786
18787         * Shared/WebCoreArgumentCoders.h:
18788         * Shared/gtk/WebCoreArgumentCodersGtk.cpp:
18789         (CoreIPC::encodeResourceResponse):
18790         (CoreIPC::decodeResourceResponse):
18791         * Shared/mac/WebCoreArgumentCodersMac.mm:
18792         (CoreIPC::encodeResourceResponse):
18793         (CoreIPC::decodeResourceResponse):
18794         * Shared/qt/WebCoreArgumentCodersQt.cpp:
18795         (CoreIPC::encodeResourceResponse):
18796         (CoreIPC::decodeResourceResponse):
18797         * Shared/win/WebCoreArgumentCodersWin.cpp:
18798         (CoreIPC::encodeResourceResponse):
18799         (CoreIPC::decodeResourceResponse):
18800
18801 2010-11-11  Ryosuke Niwa  <rniwa@webkit.org>
18802
18803         Unreviewed build fix for r71587.
18804
18805         * WebKit2.xcodeproj/project.pbxproj: No longer uses absolute path.
18806
18807 2010-11-11  Csaba Osztrogonác  <ossy@webkit.org>
18808
18809         [Qt] Unreviewed WebKit2 buildfix after r71587.
18810
18811         * UIProcess/qt/WebInspectorProxyQt.cpp:
18812         * WebKit2.pro:
18813
18814 2010-11-11  Brian Weinstein  <bweinstein@apple.com>
18815
18816         More Windows build fixing. Change another #import to a #include, and remove an unneeded
18817         namespace.
18818
18819         * UIProcess/win/WebInspectorProxyWin.cpp:
18820         * WebProcess/WebPage/win/WebInspectorWin.cpp:
18821
18822 2010-11-11  Brent Fulgham  <bfulgham@webkit.org>
18823
18824         Windows [Cairo] build fix. Unreviewed.
18825
18826         Provide stubs for two BackingStore methods.
18827
18828         * Shared/cairo/BackingStoreCairo.cpp:
18829         (WebKit::BackingStore::createFlippedGraphicsContext):
18830         (WebKit::BackingStore::paint):
18831
18832 2010-11-11  Brian Weinstein  <bweinstein@apple.com>
18833
18834         Windows Build Fix. Change #imports to #includes.
18835
18836         * UIProcess/win/WebInspectorProxyWin.cpp:
18837
18838 2010-11-08  Timothy Hatcher  <timothy@apple.com>
18839
18840         Create and load the Web Inspector page.
18841
18842         https://webkit.org/b/49207
18843
18844         Reviewed by Anders Carlsson.
18845
18846         * UIProcess/WebInspectorProxy.cpp:
18847         (WebKit::WebInspectorProxy::createInspectorPage): Added. Call platformCreateInspectorPage and then
18848         call WebPageProxy::loadURL with inspectorPageURL.
18849         (WebKit::WebInspectorProxy::didLoadInspectorPage): Added stub.
18850         * UIProcess/WebInspectorProxy.h:
18851         * UIProcess/WebInspectorProxy.messages.in: Added.
18852         * UIProcess/WebPageProxy.cpp:
18853         (WebKit::WebPageProxy::didReceiveMessage): Call WebInspectorProxy::didReceiveWebInspectorProxyMessage.
18854         (WebKit::WebPageProxy::didReceiveSyncMessage): Call WebInspectorProxy::didReceiveSyncWebInspectorProxyMessage.
18855         * UIProcess/WebPageProxy.h: Made creationParameters public so WebInspectorProxy can use it.
18856
18857         * UIProcess/mac/WebInspectorProxyMac.mm:
18858         (WebKit::WebInspectorProxy::platformCreateInspectorPage): Make a WkView and return the WebPageProxy.
18859         (WebKit::WebInspectorProxy::inspectorPageURL): Return the file URL for the inspector.html file.
18860         * UIProcess/qt/WebInspectorProxyQt.cpp:
18861         (WebKit::WebInspectorProxy::platformCreateInspectorPage): Added stub.
18862         (WebKit::WebInspectorProxy::inspectorPageURL): Ditto.
18863         * UIProcess/win/WebInspectorProxyWin.cpp:
18864         (WebKit::WebInspectorProxy::platformCreateInspectorPage): Added stub.
18865         (WebKit::WebInspectorProxy::inspectorPageURL): Ditto.
18866
18867         * WebProcess/WebCoreSupport/WebInspectorClient.cpp:
18868         (WebKit::WebInspectorClient::openInspectorFrontend): Call WebInspector::createInspectorPage and set up the WebInspectorFrontendClient.
18869         (WebKit::WebInspectorClient::sendMessageToFrontend): Call doDispatchMessageOnFrontendPage in the base class.
18870         * WebProcess/WebCoreSupport/WebInspectorFrontendClient.cpp:
18871         (WebKit::WebInspectorFrontendClient::frontendLoaded): Call WebInspector::didLoadInspectorPage.
18872         (WebKit::WebInspectorFrontendClient::localizedStringsURL): Call WebInspector::localizedStringsURL.
18873         * WebProcess/WebCoreSupport/WebInspectorFrontendClient.h:
18874
18875         * WebProcess/WebPage/WebInspector.cpp:
18876         (WebKit::WebInspector::WebInspector):
18877         (WebKit::WebInspector::createInspectorPage): Send a sync WebInspectorProxy::CreateInspectorPage message and set up
18878         the WebPage using the result page ID.
18879         (WebKit::WebInspector::didLoadInspectorPage): Send a WebInspectorProxy::DidLoadInspectorPage message.
18880         * WebProcess/WebPage/WebInspector.h:
18881         (WebKit::WebInspector::inspectorPage): Added.
18882         * WebProcess/WebPage/WebPage.cpp:
18883         (WebKit::WebPage::didReceiveMessage): Call WebInspector::didReceiveWebInspectorMessage.
18884
18885         * WebProcess/WebPage/mac/WebInspectorMac.mm:
18886         (WebKit::WebInspector::localizedStringsURL): Return the file URL for the localizedStrings.js file.
18887         * WebProcess/WebPage/qt/WebInspectorQt.cpp:
18888         (WebKit::WebInspector::localizedStringsURL): Added stub.
18889         * WebProcess/WebPage/win/WebInspectorWin.cpp:
18890         (WebKit::WebInspector::localizedStringsURL): Added stub.
18891
18892         * DerivedSources.make: Added WebInspectorProxy.messages.in.
18893         * DerivedSources.pro: Ditto.
18894
18895         * WebKit2.pro: Added new files.
18896         * WebKit2.xcodeproj/project.pbxproj: Ditto.
18897         * win/WebKit2.vcproj: Ditto.
18898
18899 2010-11-11  Sam Weinig  <sam@webkit.org>
18900
18901         Reviewed by Anders Carlsson.
18902
18903         Move the remaining API client classes to use the APIClient base class.
18904         https://bugs.webkit.org/show_bug.cgi?id=49404
18905
18906         Also moves InjectedBundleClient into its own class to match other API clients.
18907
18908         * UIProcess/WebContextInjectedBundleClient.cpp:
18909         * UIProcess/WebContextInjectedBundleClient.h:
18910         * UIProcess/WebHistoryClient.cpp:
18911         (WebKit::WebHistoryClient::didNavigateWithNavigationData):
18912         (WebKit::WebHistoryClient::didPerformClientRedirect):
18913         (WebKit::WebHistoryClient::didPerformServerRedirect):
18914         (WebKit::WebHistoryClient::didUpdateHistoryTitle):
18915         (WebKit::WebHistoryClient::populateVisitedLinks):
18916         * UIProcess/WebHistoryClient.h:
18917         (WebKit::WebHistoryClient::shouldTrackVisitedLinks):
18918         * WebKit2.pro:
18919         * WebKit2.xcodeproj/project.pbxproj:
18920         * WebProcess/InjectedBundle/InjectedBundle.cpp:
18921         (WebKit::InjectedBundle::initializeClient):
18922         (WebKit::InjectedBundle::reportException):
18923         (WebKit::InjectedBundle::didCreatePage):
18924         (WebKit::InjectedBundle::willDestroyPage):
18925         (WebKit::InjectedBundle::didReceiveMessage):
18926         * WebProcess/InjectedBundle/InjectedBundle.h:
18927         * WebProcess/InjectedBundle/InjectedBundleClient.cpp: Added.
18928         (WebKit::InjectedBundleClient::didCreatePage):
18929         (WebKit::InjectedBundleClient::willDestroyPage):
18930         (WebKit::InjectedBundleClient::didReceiveMessage):
18931         * WebProcess/InjectedBundle/InjectedBundleClient.h: Added.
18932         * win/WebKit2.vcproj:
18933
18934 2010-11-11  Anders Carlsson  <andersca@apple.com>
18935
18936         Reviewed by Adam Roben.
18937
18938         Remove an unneeded CFAllocatorRef parameter.
18939
18940         * Shared/API/c/mac/WKURLResponseNS.h:
18941         * Shared/API/c/mac/WKURLResponseNS.mm:
18942         (WKURLResponseCopyNSURLResponse):
18943
18944 2010-11-11  Anders Carlsson  <andersca@apple.com>
18945
18946         Reviewed by Adam Roben.
18947
18948         Add and implement WKDownloadCopyRequest
18949         https://bugs.webkit.org/show_bug.cgi?id=49393
18950
18951         * Shared/API/c/mac/WKURLRequestNS.h:
18952         * Shared/API/c/mac/WKURLRequestNS.mm:
18953         (WKURLRequestCopyNSURLRequest):
18954         Remove unneeded CFAllocator parameter.
18955
18956         * Shared/WebURLRequest.cpp:
18957         (WebKit::WebURLRequest::WebURLRequest):
18958         * Shared/WebURLRequest.h:
18959         (WebKit::WebURLRequest::create):
18960         Change create to take a ResourceRequest instead.
18961
18962         * UIProcess/API/C/WKDownload.cpp:
18963         (WKDownloadCopyRequest):
18964         Return a copied WKURLRequest.
18965
18966         * UIProcess/API/C/WKDownload.h:
18967         * UIProcess/Downloads/DownloadProxy.cpp:
18968         (WebKit::DownloadProxy::didStart):
18969         Set the request.
18970
18971         * UIProcess/Downloads/DownloadProxy.h:
18972         (WebKit::DownloadProxy::request):
18973         Return the request.
18974
18975         * UIProcess/Downloads/DownloadProxy.messages.in:
18976         * WebProcess/Downloads/Download.cpp:
18977         (WebKit::Download::didStart):
18978         Pass the request along when sending the DidStart message.
18979
18980 2010-11-11  John Sullivan  <sullivan@apple.com>
18981
18982         Rubber-stamped by Anders Carlsson.
18983
18984         * WebKit2.xcodeproj/project.pbxproj:
18985         Added WKBundlePageOverlay.h to the WebKit2 Target and made it public.
18986
18987 2010-11-11  Anders Carlsson  <andersca@apple.com>
18988
18989         Reviewed by John Sullivan.
18990
18991         Move GraphicsContext setup code to PageOverlay::drawRect
18992         https://bugs.webkit.org/show_bug.cgi?id=49389
18993
18994         * WebProcess/InjectedBundle/API/c/WKBundlePageOverlay.h:
18995         * WebProcess/WebPage/FindController.cpp:
18996         (WebKit::FindController::drawRect):
18997         * WebProcess/WebPage/PageOverlay.cpp:
18998         (WebKit::PageOverlay::drawRect):
18999
19000 2010-11-11  Adam Roben  <aroben@apple.com>
19001
19002         Build fix after r71816
19003
19004         * WebProcess/WebPage/WebPage.messages.in: Compile out
19005         SetActualVisibleContentRect when ENABLE(TILED_BACKING_STORE) is
19006         turned off.
19007
19008 2010-11-11  Balazs Kelemen  <kbalazs@webkit.org>
19009
19010         Reviewed by Andreas Kling.
19011
19012         [Qt][WK2] Implement BackingStore
19013         https://bugs.webkit.org/show_bug.cgi?id=49377
19014
19015         * Shared/qt/BackingStoreQt.cpp:
19016         (WebKit::createQImage): Added static helper. Creates a QImage
19017         from the shared memory buffer.
19018         (WebKit::BackingStore::createGraphicsContext):
19019         (WebKit::BackingStore::createFlippedGraphicsContext): Leave
19020         unimplemented with an ASSERT_NOT_REACHED since this is only
19021         needed for the CoreGraphics backend.
19022         (WebKit::BackingStore::paint):
19023
19024 2010-11-11  Kenneth Rohde Christiansen  <kenneth@webkit.org>
19025
19026         Reviewed by Andreas Kling.
19027
19028         [Qt] Add a Qt WebKit2 API for overriding the actual visible content rect
19029         https://bugs.webkit.org/show_bug.cgi?id=49381
19030
19031         Add an Qt WebKit2 API for overriding the actual visible content rect in
19032         WebCore. This is supposed to be used in combination with tiling.
19033
19034         * UIProcess/API/qt/qwkpage.cpp:
19035         (QWKPage::setActualVisibleContentsRect):
19036         * UIProcess/API/qt/qwkpage.h:
19037         * UIProcess/WebPageProxy.cpp:
19038         (WebKit::WebPageProxy::setActualVisibleContentRect):
19039         * UIProcess/WebPageProxy.h:
19040         * WebProcess/WebPage/WebPage.cpp:
19041         (WebKit::WebPage::setActualVisibleContentRect):
19042         * WebProcess/WebPage/WebPage.h:
19043         * WebProcess/WebPage/WebPage.messages.in:
19044
19045 2010-11-10  Beth Dakin  <bdakin@apple.com>
19046
19047         Reviewed by Simon Fraser.
19048
19049         Fix for https://bugs.webkit.org/show_bug.cgi?id=49356 
19050         -[WebView _scaleWebView:] should take and origin and scroll the 
19051         document
19052         -and corresponding-
19053         <rdar://problem/8643921>
19054
19055         * Shared/API/c/WKSharedAPICast.h:
19056         (WebKit::toImpl):
19057         * UIProcess/API/C/WKPage.cpp:
19058         (WKPageScaleWebView):
19059         * UIProcess/API/C/WKPage.h:
19060         * UIProcess/WebPageProxy.cpp:
19061         (WebKit::WebPageProxy::scaleWebView):
19062         * UIProcess/WebPageProxy.h:
19063         * WebProcess/WebPage/WebPage.cpp:
19064         (WebKit::WebPage::scaleWebView):
19065         * WebProcess/WebPage/WebPage.h:
19066         * WebProcess/WebPage/WebPage.messages.in:
19067
19068 2010-11-10  Ada Chan  <adachan@apple.com>
19069         
19070         Fix Windows build.
19071
19072         * win/WebKit2Generated.make:
19073
19074 2010-11-10  Simon Fraser  <simon.fraser@apple.com>
19075
19076         Reviewed by Anders Carlsson.
19077
19078         Misc drawing area cleanup
19079         https://bugs.webkit.org/show_bug.cgi?id=49349
19080         
19081         * UIProcess/LayerBackedDrawingAreaProxy.cpp:
19082         (WebKit::LayerBackedDrawingAreaProxy::setSize):
19083         (WebKit::LayerBackedDrawingAreaProxy::setPageIsVisible):
19084         (WebKit::LayerBackedDrawingAreaProxy::update):
19085         Call process()->send() instead of process()->connection()->send() in case
19086         the web process has not been launched yet.
19087         
19088         * WebProcess/WebPage/WebPage.cpp:
19089         (WebKit::WebPage::WebPage): Delay creation of the drawing area
19090         until after other WebPage state has been initialized, in case
19091         the DrawingArea creation needs to call back to the WebPage.
19092
19093 2010-11-10  Simon Fraser  <simon.fraser@apple.com>
19094
19095         Reviewed by Adam Roben.
19096
19097         Push m_viewSize down to DrawingAreaProxy base class
19098         https://bugs.webkit.org/show_bug.cgi?id=49347
19099         
19100         Some refactoring so that the various drawing area classes
19101         can share m_size.
19102
19103         * UIProcess/ChunkedUpdateDrawingAreaProxy.cpp:
19104         (WebKit::ChunkedUpdateDrawingAreaProxy::setSize):
19105         * UIProcess/ChunkedUpdateDrawingAreaProxy.h:
19106         * UIProcess/DrawingAreaProxy.h:
19107         (WebKit::DrawingAreaProxy::setSize):
19108         (WebKit::DrawingAreaProxy::size):
19109         * UIProcess/LayerBackedDrawingAreaProxy.cpp:
19110         (WebKit::LayerBackedDrawingAreaProxy::setSize):
19111         * UIProcess/LayerBackedDrawingAreaProxy.h:
19112         * UIProcess/mac/ChunkedUpdateDrawingAreaProxyMac.mm:
19113         (WebKit::ChunkedUpdateDrawingAreaProxy::ensureBackingStore):
19114         (WebKit::ChunkedUpdateDrawingAreaProxy::drawUpdateChunkIntoBackingStore):
19115         * UIProcess/mac/LayerBackedDrawingAreaProxyMac.mm:
19116         (WebKit::LayerBackedDrawingAreaProxy::platformSetSize):
19117         (WebKit::LayerBackedDrawingAreaProxy::attachCompositingContext):
19118         * UIProcess/win/ChunkedUpdateDrawingAreaProxyWin.cpp:
19119         (WebKit::ChunkedUpdateDrawingAreaProxy::ensureBackingStore):
19120         * UIProcess/qt/ChunkedUpdateDrawingAreaProxyQt.cpp:
19121         (WebKit::ChunkedUpdateDrawingAreaProxy::ensureBackingStore):
19122
19123 2010-11-10  Anders Carlsson  <andersca@apple.com>
19124
19125         Reviewed by Dan Bernstein.
19126
19127         Closing tabs sometimes crashes the WebProcess in invalidateContentsAndWindow
19128         https://bugs.webkit.org/show_bug.cgi?id=49335
19129         <rdar://problem/8646621>
19130
19131         * WebProcess/WebPage/WebPage.cpp:
19132         (WebKit::WebPage::changeAcceleratedCompositingMode):
19133         If we fail to send the DidChangeAcceleratedCompositing message, don't null out the
19134         drawing area. This will happen during page teardown.
19135
19136 2010-11-10  Csaba Osztrogonác  <ossy@webkit.org>
19137
19138         Reviewed by David Hyatt.
19139
19140         HTML5 Ruby support should be mandatory feature
19141         https://bugs.webkit.org/show_bug.cgi?id=49272
19142
19143         Remove Ruby as optional feature.
19144
19145         * Configurations/FeatureDefines.xcconfig:
19146         * WebKit2Prefix.h: Touch it to avoid incremental build failure on Windows.
19147
19148 2010-11-10  Sam Weinig  <sam@webkit.org>
19149
19150         Reviewed by Anders Carlsson.
19151
19152         Add license to DerivedSources.make.
19153
19154         * DerivedSources.make:
19155
19156 2010-11-09  Sam Weinig  <sam@webkit.org>
19157
19158         Reviewed by Adam Roben.
19159
19160         Convert client classes to use APIClient base class.
19161         https://bugs.webkit.org/show_bug.cgi?id=49322
19162
19163         * UIProcess/WebFormClient.cpp:
19164         (WebKit::WebFormClient::willSubmitForm):
19165         * UIProcess/WebFormClient.h:
19166         * UIProcess/WebLoaderClient.cpp:
19167         * UIProcess/WebLoaderClient.h:
19168         * UIProcess/WebPolicyClient.cpp:
19169         * UIProcess/WebPolicyClient.h:
19170         * UIProcess/WebUIClient.cpp:
19171         * UIProcess/WebUIClient.h:
19172         * WebProcess/InjectedBundle/InjectedBundlePageContextMenuClient.cpp:
19173         * WebProcess/InjectedBundle/InjectedBundlePageContextMenuClient.h:
19174         * WebProcess/InjectedBundle/InjectedBundlePageEditorClient.cpp:
19175         * WebProcess/InjectedBundle/InjectedBundlePageEditorClient.h:
19176         * WebProcess/InjectedBundle/InjectedBundlePageFormClient.cpp:
19177         * WebProcess/InjectedBundle/InjectedBundlePageFormClient.h:
19178         * WebProcess/InjectedBundle/InjectedBundlePageLoaderClient.cpp:
19179         * WebProcess/InjectedBundle/InjectedBundlePageLoaderClient.h:
19180         * WebProcess/InjectedBundle/InjectedBundlePageUIClient.cpp:
19181         * WebProcess/InjectedBundle/InjectedBundlePageUIClient.h:
19182
19183 2010-11-10  Andreas Kling  <kling@webkit.org>
19184
19185         Reviewed by Kenneth Rohde Christiansen.
19186
19187         [Qt][WK2] Fix re-use of memory-mapped files
19188         https://bugs.webkit.org/show_bug.cgi?id=49310
19189
19190         QTemporaryFile::fileName() returns an empty string after close()
19191         so we have to keep separate track of the filename.
19192
19193         Also, we can't reopen the file if it's been QFile::remove()d,
19194         so we defer unlinking until the MappedMemoryPool is destroyed or
19195         the CrashHandler kicks in.
19196
19197         This makes re-use of memory-mapped files work (after we kill an
19198         assertion that the file size == the new mmap size - it's fine if
19199         the file is larger, too.)
19200
19201         * Platform/qt/MappedMemoryPool.cpp:
19202         (WebKit::MappedMemoryPool::~MappedMemoryPool):
19203         (WebKit::MappedMemoryPool::clear):
19204         (WebKit::MappedMemoryPool::mapMemory):
19205         (WebKit::MappedMemoryPool::mapFile):
19206         * Platform/qt/MappedMemoryPool.h:
19207         (WebKit::MappedMemory::mappedFileName):
19208         * Shared/qt/CrashHandler.cpp:
19209         (WebKit::CrashHandler::deleteObjects):
19210         * Shared/qt/UpdateChunk.cpp:
19211         (WebKit::UpdateChunk::encode):
19212
19213 2010-11-09  Brady Eidson  <beidson@apple.com>
19214
19215         Reviewed by the ever-picky Windows build-bot.
19216
19217         Windows build bot was complaining about this.
19218
19219         * Shared/WebContextMenuItemData.cpp:
19220         (WebKit::WebContextMenuItemData::core):
19221
19222 2010-11-09  Anders Carlsson  <andersca@apple.com>
19223
19224         Reviewed by John Sullivan.
19225
19226         WKDownload.h should be a public header.
19227
19228         * WebKit2.xcodeproj/project.pbxproj:
19229
19230 2010-11-09  Brady Eidson  <beidson@apple.com>
19231
19232         Reviewed by Darin Adler.
19233
19234         Part of <rdar://problem/8613727> and https://bugs.webkit.org/show_bug.cgi?id=48720
19235         Customizable context menu support in WebKit2.
19236
19237         This adds a BundlePageContextMenu client and lets WebKit2 consult it with the proposed
19238         list of WebContextMenuItems.
19239         There is no realistic API for the embedding app to actually inspect or create new
19240         WebContextMenuItems (will be "WKContextMenuItem") and that ability will come later.
19241
19242         * WebKit2.pro:
19243         * WebKit2.xcodeproj/project.pbxproj:
19244         * win/WebKit2.vcproj:
19245
19246         * Platform/Logging.cpp:
19247         (initializeLogChannelsIfNecessary):
19248         * Platform/Logging.h:
19249
19250         * Shared/APIObject.h:
19251
19252         * Shared/MutableArray.cpp:
19253         (WebKit::MutableArray::reserveCapacity):
19254         * Shared/MutableArray.h:
19255
19256         * Shared/WebContextMenuItem.cpp: Added.
19257         (WebKit::WebContextMenuItem::WebContextMenuItem):
19258         (WebKit::WebContextMenuItem::data):
19259         * Shared/WebContextMenuItem.h: Added.
19260         (WebKit::WebContextMenuItem::create):
19261         (WebKit::WebContextMenuItem::type):
19262
19263         * Shared/WebContextMenuItemData.cpp:
19264         (WebKit::WebContextMenuItemData::core):
19265         (WebKit::kitItems):
19266         (WebKit::coreItems):
19267         * Shared/WebContextMenuItemData.h:
19268
19269         * WebProcess/InjectedBundle/API/c/WKBundlePage.cpp:
19270         (WKBundlePageSetContextMenuClient):
19271         * WebProcess/InjectedBundle/API/c/WKBundlePage.h:
19272
19273         * WebProcess/InjectedBundle/InjectedBundlePageContextMenuClient.cpp: Added.
19274         (WebKit::InjectedBundlePageContextMenuClient::InjectedBundlePageContextMenuClient):
19275         (WebKit::InjectedBundlePageContextMenuClient::initialize):
19276         (WebKit::InjectedBundlePageContextMenuClient::getCustomMenuFromDefaultItems):
19277         * WebProcess/InjectedBundle/InjectedBundlePageContextMenuClient.h: Added.
19278
19279         * WebProcess/WebCoreSupport/WebContextMenuClient.cpp:
19280         (WebKit::WebContextMenuClient::getCustomMenuFromDefaultItems): Call through to the injected bundle client
19281           with the default items and convert the returned items back for WebCore to use.
19282
19283         * WebProcess/WebPage/WebPage.cpp:
19284         (WebKit::WebPage::initializeInjectedBundleContextMenuClient):
19285         * WebProcess/WebPage/WebPage.h:
19286         (WebKit::WebPage::injectedBundleContextMenuClient):
19287
19288 2010-11-09  Sam Weinig  <sam@webkit.org>
19289
19290         Add some stylistic flourish to the last patch as suggested by Lord Darin Adler.
19291
19292         * UIProcess/API/C/WKPage.cpp:
19293         (WKPageGetSourceForFrame):
19294         (WKPageGetContentsAsString):
19295         * UIProcess/WebPageProxy.cpp:
19296         (WebKit::invalidateCallbackMap):
19297         * WebProcess/WebPage/WebFrame.cpp:
19298         (WebKit::WebFrame::contentsAsString):
19299
19300 2010-11-09  Sam Weinig  <sam@webkit.org>
19301
19302         Reviewed by Anders Carlsson.
19303
19304         Need WebKit2 mechanism for getting the visible page text
19305         <rdar://problem/8646928>
19306         https://bugs.webkit.org/show_bug.cgi?id=49275
19307
19308         * UIProcess/API/C/WKPage.cpp:
19309         (WKPageGetContentsAsString):
19310         (callContentsAsStringBlockBlockAndDispose):
19311         (WKPageGetContentsAsString_b):
19312         * UIProcess/API/C/WKPage.h:
19313         Add GetContentsAsString callback function declaration and forwarding.
19314
19315         * UIProcess/WebPageProxy.cpp:
19316         (WebKit::invalidateCallbackMap):
19317         (WebKit::WebPageProxy::close):
19318         (WebKit::WebPageProxy::getContentsAsString):
19319         (WebKit::WebPageProxy::didGetContentsAsString):
19320         (WebKit::WebPageProxy::processDidCrash):
19321         * UIProcess/WebPageProxy.h:
19322         Add GetContentsAsString callback and generalize invalidating the callback
19323         maps into a standalone function.
19324
19325         * UIProcess/WebPageProxy.messages.in:
19326         Add DidGetContentsAsString return message.
19327
19328         * WebProcess/WebPage/WebFrame.h:
19329         * WebProcess/WebPage/WebFrame.cpp:
19330         (WebKit::WebFrame::contentsAsString):
19331         Gets the string content of all the subframes.
19332
19333         (WebKit::WebFrame::isFrameSet):
19334         Call through to the document.
19335
19336         * WebProcess/WebPage/WebPage.h:
19337         * WebProcess/WebPage/WebPage.cpp:
19338         (WebKit::WebPage::getContentsAsString):
19339         Forward to the the main frames contentsAsString function.
19340
19341         * WebProcess/WebPage/WebPage.messages.in:
19342         Add GetContentsAsString and collect all callback messages together.
19343
19344 2010-11-09  Sam Weinig  <sam@webkit.org>
19345
19346         Fix mac build.
19347
19348         * WebProcess/mac/WebProcessMac.mm:
19349         (WebKit::WebProcess::platformSetCacheModel):
19350
19351 2010-11-09  Simon Fraser  <simon.fraser@apple.com>
19352
19353         Reviewed by Darin Adler, Dan Bernstein.
19354
19355         <rdar://problem/8360145> Pages using accelerated compositing missing content on Windows
19356
19357         Disable accelerated compositing on Windows until we have cross-process
19358         rendering implemented.
19359
19360         * WebProcess/WebPage/WebPage.cpp:
19361         (WebKit::WebPage::updatePreferences):
19362
19363 2010-11-09  Anders Carlsson  <andersca@apple.com>
19364
19365         Reviewed by Sam Weinig.
19366
19367         Add injected bundle API for creating page overlays
19368         https://bugs.webkit.org/show_bug.cgi?id=49282
19369
19370         * Shared/API/c/WKBase.h:
19371         Add WKBundlePageOverlayRef.
19372
19373         * Shared/APIObject.h:
19374         Add TypeBundlePageOverlay.
19375
19376         * WebKit2.pro:
19377         * WebKit2.xcodeproj/project.pbxproj:
19378         Add new files.
19379
19380         * WebProcess/InjectedBundle/API/c/WKBundleAPICast.h:
19381         Add WKBundlePageOverlayRef mapping.
19382
19383         * WebProcess/InjectedBundle/API/c/WKBundlePage.cpp:
19384         (WKBundlePageInstallPageOverlay):
19385         Install the passed in page overlay.
19386
19387         (WKBundlePageUninstallPageOverlay):
19388         Uninstall the passed in page overlay.
19389
19390         * WebProcess/InjectedBundle/API/c/WKBundlePageOverlay.cpp: Added.
19391         (PageOverlayClientImpl::create):
19392         (PageOverlayClientImpl::PageOverlayClientImpl):
19393         (PageOverlayClientImpl::pageOverlayDestroyed):
19394         (PageOverlayClientImpl::willMoveToWebPage):
19395         (PageOverlayClientImpl::didMoveToWebPage):
19396         (PageOverlayClientImpl::drawRect):
19397         (PageOverlayClientImpl::mouseEvent):
19398         Add a PageOverlay::Client subclass that forwards everything to its client.
19399
19400         (WKBundlePageOverlayGetTypeID):
19401         (WKBundlePageOverlayCreate):
19402         Create a page overlay.
19403
19404         * WebProcess/WebPage/FindController.cpp:
19405         (WebKit::FindController::pageOverlayDestroyed):
19406         * WebProcess/WebPage/FindController.h:
19407         Add stub.
19408
19409         * WebProcess/WebPage/PageOverlay.h:
19410         Inherit from APIObject.
19411
19412         (WebKit::PageOverlay::type):
19413         return TypeBundlePageOverlay.
19414
19415         * win/WebKit2.vcproj:
19416         Add new files.
19417
19418 2010-11-09  Anders Carlsson  <andersca@apple.com>
19419
19420         Reviewed by Sam Weinig.
19421
19422         Get rid of FindPageOverlay
19423         https://bugs.webkit.org/show_bug.cgi?id=49268
19424
19425         * WebKit2.pro:
19426         * WebKit2.xcodeproj/project.pbxproj:
19427         Remove files.
19428
19429         * WebProcess/WebPage/FindController.cpp:
19430         (WebKit::FindController::findString):
19431         Create a PageOverlay with the FindController as its client.
19432
19433         (WebKit::FindController::willMoveToWebPage):
19434         Null out the find page overlay if the web page is null.
19435
19436         (WebKit::FindController::didMoveToWebPage):
19437         Add stub.
19438
19439         * WebProcess/WebPage/FindController.h:
19440         FindController is now a PageOverlay::Client.
19441
19442         * WebProcess/WebPage/FindPageOverlay.cpp: Removed.
19443         * WebProcess/WebPage/FindPageOverlay.h: Removed.
19444         * WebProcess/WebPage/PageOverlay.cpp:
19445         (WebKit::PageOverlay::setPage):
19446         Call the willMoveToWebPage and didMoveToWebPage client functions.
19447
19448         (WebKit::PageOverlay::setNeedsDisplay):
19449         Pass the page overlay bounds instead of the web page size.
19450
19451         * WebProcess/WebPage/WebPage.cpp:
19452         (WebKit::WebPage::installPageOverlay):
19453         Clear the page of the previous page overlay.
19454
19455         (WebKit::WebPage::uninstallPageOverlay):
19456         Clear the page of the previous page overlay.
19457
19458         * WebProcess/WebPage/WebPage.h:
19459         The page overlay is now refcounted.
19460
19461         * win/WebKit2.vcproj:
19462         Remove files.
19463
19464 2010-11-09  Sam Weinig  <sam@webkit.org>
19465
19466         Fix windows build.
19467
19468         * WebProcess/win/WebProcessWin.cpp:
19469         (WebKit::WebProcess::platformSetCacheModel):
19470
19471 2010-11-09  Sam Weinig  <sam@webkit.org>
19472
19473         Reviewed by Adam Roben.
19474
19475         Factor calculation of cache sizes based on cache model into shared function
19476         https://bugs.webkit.org/show_bug.cgi?id=48706
19477
19478         * WebProcess/WebProcess.cpp:
19479         (WebKit::WebProcess::calculateCacheSizes):
19480         * WebProcess/WebProcess.h:
19481         * WebProcess/mac/WebProcessMac.mm:
19482         (WebKit::volumeFreeSize):
19483         (WebKit::WebProcess::platformSetCacheModel):
19484         * WebProcess/win/WebProcessWin.cpp:
19485         (WebKit::memorySize):
19486         (WebKit::volumeFreeSize):
19487         (WebKit::WebProcess::platformSetCacheModel):
19488
19489 2010-11-09  Sam Weinig  <sam@webkit.org>
19490
19491         Reviewed by Anders Carlsson.
19492
19493         Context menus show up in the wrong place when the page is scrolled
19494         https://bugs.webkit.org/show_bug.cgi?id=49264
19495
19496         Convert the hitTestResult point into 'window' coordinates before sending over
19497         to the UIProcess to show the menu.
19498
19499         * WebProcess/WebPage/WebContextMenu.cpp:
19500         (WebKit::WebContextMenu::show):
19501         Convert to use message sender interface.
19502
19503         (WebKit::WebContextMenu::itemSelected):
19504         Remove unnecessary WebCore::'s.
19505
19506 2010-11-09  Sam Weinig  <sam@webkit.org>
19507
19508         Reviewed by Anders Carlsson.
19509
19510         Send messages directly to the WebContext
19511         https://bugs.webkit.org/show_bug.cgi?id=49262
19512
19513         * Platform/CoreIPC/MessageID.h:
19514         Temporarily add MessageClassWebContextLegacy.
19515
19516         * Shared/CoreIPCSupport/WebContextMessageKinds.h:
19517         Rename adding Legacy prefix.
19518
19519         * UIProcess/WebContext.cpp:
19520         (WebKit::WebContext::didNavigateWithNavigationData):
19521         (WebKit::WebContext::didPerformClientRedirect):
19522         (WebKit::WebContext::didPerformServerRedirect):
19523         (WebKit::WebContext::didUpdateHistoryTitle):
19524         (WebKit::WebContext::setCacheModel):
19525         (WebKit::WebContext::addVisitedLink):
19526         (WebKit::WebContext::addVisitedLinkHash):
19527         (WebKit::WebContext::getPlugins):
19528         (WebKit::WebContext::getPluginPath):
19529         (WebKit::WebContext::didReceiveMessage):
19530         (WebKit::WebContext::didReceiveSyncMessage):
19531         * UIProcess/WebContext.h:
19532         * UIProcess/WebContext.messages.in: Added.
19533         * UIProcess/WebProcessProxy.cpp:
19534         (WebKit::WebProcessProxy::getPluginProcessConnection):
19535         (WebKit::WebProcessProxy::didReceiveMessage):
19536         (WebKit::WebProcessProxy::didReceiveSyncMessage):
19537         * UIProcess/WebProcessProxy.h:
19538         * UIProcess/WebProcessProxy.messages.in:
19539         * WebProcess/InjectedBundle/InjectedBundle.cpp:
19540         (WebKit::InjectedBundle::postMessage):
19541         (WebKit::InjectedBundle::postSynchronousMessage):
19542         * WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
19543         (WebKit::WebFrameLoaderClient::updateGlobalHistory):
19544         (WebKit::WebFrameLoaderClient::updateGlobalHistoryRedirectLinks):
19545         (WebKit::WebFrameLoaderClient::setTitle):
19546         * WebProcess/WebCoreSupport/WebPlatformStrategies.cpp:
19547         (WebKit::WebPlatformStrategies::populatePluginCache):
19548         * WebProcess/WebPage/WebPage.cpp:
19549         (WebKit::WebPage::createPlugin):
19550         * WebProcess/WebProcess.cpp:
19551         (WebKit::WebProcess::addVisitedLink):
19552         Move context related messages to be sent directly to the context.
19553
19554         * DerivedSources.make:
19555         * DerivedSources.pro:
19556         * WebKit2.pro:
19557         * WebKit2.xcodeproj/project.pbxproj:
19558         * win/WebKit2.vcproj:
19559         Add new files.
19560
19561 2010-11-09  Anders Carlsson  <andersca@apple.com>
19562
19563         Reviewed by John Sullivan.
19564
19565         Move the find page overlay code to FindController
19566         https://bugs.webkit.org/show_bug.cgi?id=49266
19567
19568         * WebProcess/WebPage/FindController.cpp:
19569         (WebKit::FindController::~FindController):
19570         (WebKit::FindController::rectsForTextMatches):
19571         (WebKit::overlayBackgroundColor):
19572         (WebKit::FindController::drawRect):
19573         (WebKit::FindController::mouseEvent):
19574         * WebProcess/WebPage/FindController.h:
19575         * WebProcess/WebPage/FindPageOverlay.cpp:
19576         (WebKit::FindPageOverlay::drawRect):
19577         (WebKit::FindPageOverlay::mouseEvent):
19578         * WebProcess/WebPage/FindPageOverlay.h:
19579         * WebProcess/WebPage/PageOverlay.cpp:
19580         (WebKit::PageOverlay::bounds):
19581         (WebKit::PageOverlay::drawRect):
19582         (WebKit::PageOverlay::mouseEvent):
19583         * WebProcess/WebPage/PageOverlay.h:
19584
19585 2010-11-09  Anders Carlsson  <andersca@apple.com>
19586
19587         Reviewed by John Sullivan.
19588
19589         Add a PageOverlay::Client object in preparation of not allowing subclassing of PageOverlay
19590         https://bugs.webkit.org/show_bug.cgi?id=49263
19591
19592         * WebProcess/WebPage/FindPageOverlay.cpp:
19593         (WebKit::FindPageOverlay::FindPageOverlay):
19594         Call the PageOverlay constructor.
19595
19596         (WebKit::FindPageOverlay::drawRect):
19597         (WebKit::FindPageOverlay::mouseEvent):
19598         These now take a PageOverlay callback.
19599
19600         * WebProcess/WebPage/FindPageOverlay.h:
19601         FindPageOverlay now inherits from PageOverlay::Client.
19602
19603         * WebProcess/WebPage/PageOverlay.cpp:
19604         (WebKit::PageOverlay::create):
19605         Add create function.
19606
19607         (WebKit::PageOverlay::PageOverlay):
19608         The constructor now takes a client.
19609
19610         (WebKit::PageOverlay::drawRect):
19611         (WebKit::PageOverlay::mouseEvent):
19612         Call the client methods.
19613
19614         * WebProcess/WebPage/PageOverlay.h:
19615         Add Client class.
19616
19617 2010-11-09  Dan Bernstein  <mitz@apple.com>
19618
19619         Rubber-stamped by Darin Adler.
19620
19621         <rdar://problem/8646456> WebProcess crashes reproducibly on complex text
19622
19623         * WebProcess/WebCoreSupport/mac/WebSystemInterface.mm:
19624         (InitWebCoreSystemInterface): Initialize wkCreateCTTypesetterWithUniCharProviderAndOptions
19625         and wkCreateCTLineWithUniCharProvider.
19626
19627 2010-11-09  Sam Weinig  <sam@webkit.org>
19628
19629         Fix Windows build.
19630
19631         * win/WebKit2.vcproj:
19632
19633 2010-11-09  Sam Weinig  <sam@webkit.org>
19634
19635         Fix Qt build.
19636
19637         * WebKit2.pro:
19638
19639 2010-11-09  Sam Weinig  <sam@webkit.org>
19640
19641         Reviewed by Anders Carlsson.
19642
19643         Windows Popup widget support (<select>)
19644         <rdar://problem/8559439>
19645         https://bugs.webkit.org/show_bug.cgi?id=48701
19646
19647         Port WebCore's PopupMenuWin's implementation to work within the confines of WebKit2.
19648         Since we currently can't draw text using WebCore in the UIProcess, this approach uses
19649         the WebProcess to create two bitmaps representing the full popup menu (both unselected and 
19650         selected) and sends them to the UIProcess to be drawn in an HWND.
19651
19652         * Shared/BackingStore.h:
19653         * Shared/cg/BackingStoreCG.cpp:
19654         * Shared/qt/BackingStoreQt.cpp:
19655
19656         Add new function to create a flipped graphics context from the backing store, 
19657         and add additional parameters to paint, to allow more control of how the backing
19658         store is painted into the destination context.
19659
19660         * Shared/PlatformPopupMenuData.cpp: Added.
19661         (WebKit::PlatformPopupMenuData::PlatformPopupMenuData):
19662         (WebKit::PlatformPopupMenuData::encode):
19663         (WebKit::PlatformPopupMenuData::decode):
19664         * Shared/PlatformPopupMenuData.h: Added.
19665         Add struct so platforms can send platform specific data to their popup menu implementations.
19666
19667         * Shared/WebPopupItem.cpp:
19668         (WebKit::WebPopupItem::WebPopupItem):
19669         (WebKit::WebPopupItem::encode):
19670         (WebKit::WebPopupItem::decode):
19671         * Shared/WebPopupItem.h:
19672         Add isLabel for each menu item.
19673
19674         * UIProcess/FindIndicator.cpp:
19675         (WebKit::FindIndicator::draw):
19676         Update for new BackingStore::paint signature.
19677
19678         * UIProcess/WebPageProxy.cpp:
19679         (WebKit::WebPageProxy::showPopupMenu):
19680         * UIProcess/WebPageProxy.h:
19681         * UIProcess/WebPageProxy.messages.in:
19682         * UIProcess/WebPopupMenuProxy.h:
19683         * UIProcess/mac/WebPopupMenuProxyMac.h:
19684         * UIProcess/mac/WebPopupMenuProxyMac.mm:
19685         (WebKit::WebPopupMenuProxyMac::showPopupMenu):
19686         * UIProcess/qt/WebPopupMenuProxyQt.cpp:
19687         (WebKit::WebPopupMenuProxyQt::showPopupMenu):
19688         * UIProcess/qt/WebPopupMenuProxyQt.h:
19689         Pass through the new PlatformPopupMenuData.
19690
19691         * UIProcess/win/WebPopupMenuProxyWin.cpp:
19692         * UIProcess/win/WebPopupMenuProxyWin.h:
19693         Port implementation from WebCore.
19694
19695         * UIProcess/win/WebView.cpp:
19696         (WebKit::WebView::createPopupMenuProxy):
19697         Pass the WebView to the WebPopupMenuProxyWin.
19698
19699         * WebProcess/Plugins/PluginProxy.cpp:
19700         (WebKit::PluginProxy::paint):
19701         (WebKit::PluginProxy::update):
19702         Update for new BackingStore::paint signature.
19703
19704         * WebProcess/WebCoreSupport/WebPopupMenu.cpp:
19705         (WebKit::WebPopupMenu::populateItems): Add isLabel for each item.
19706         (WebKit::WebPopupMenu::show): Give each platform a chance to add platform specific data.
19707         * WebProcess/WebCoreSupport/WebPopupMenu.h:
19708
19709         * WebProcess/WebCoreSupport/mac/WebPopupMenuMac.mm: Added.
19710         (WebKit::WebPopupMenu::setUpPlatformData):
19711         * WebProcess/WebCoreSupport/qt/WebPopupMenuQt.cpp: Added.
19712         (WebKit::WebPopupMenu::setUpPlatformData):
19713         Add stubbed out setUpPlatformData.
19714
19715         * WebProcess/WebCoreSupport/win/WebPopupMenuWin.cpp: Added.
19716         (WebKit::WebPopupMenu::setUpPlatformData):
19717         Compute data needed in the UIProcess including generating the bitmaps.
19718
19719         * WebKit2.pro:
19720         * WebKit2.xcodeproj/project.pbxproj:
19721         * win/WebKit2.vcproj:
19722         Add new files.
19723
19724 2010-11-09  Balazs Kelemen  <kbalazs@webkit.org>
19725
19726         Reviewed by Csaba Osztrogonác.
19727
19728         [Qt][WK2] ASSERT fail in fast/frames/lots-of-objects.html
19729         https://bugs.webkit.org/show_bug.cgi?id=49253
19730
19731         * Platform/qt/SharedMemoryQt.cpp:
19732         (WebKit::SharedMemory::create): Do not assert
19733         when the attach was unsuccessful but return with 0.
19734
19735 2010-11-09  Balazs Kelemen  <kbalazs@webkit.org>
19736
19737         Reviewed by Andreas Kling.
19738
19739         [Qt][WK2] WebKitTestRunner is dead
19740         https://bugs.webkit.org/show_bug.cgi?id=49129
19741
19742         * Platform/qt/SharedMemoryQt.cpp:
19743         (WebKit::SharedMemory::~SharedMemory):
19744         Follow up fix: do not access the QSharedMemory object
19745         in an assert if it has been deleted.
19746
19747 2010-11-08  Kenneth Rohde Christiansen  <kenneth@webkit.org>
19748
19749         Reviewed by Andreas Kling.
19750
19751         Send page scroll requests to the PageClient when scroll delegation is turned on
19752         https://bugs.webkit.org/show_bug.cgi?id=49171
19753
19754         Implement the IPC and API required for making scroll delegation work
19755         with WebKit2. This is only used when you have tiling enabled.
19756
19757         * UIProcess/API/qt/qwkpage.cpp:
19758         (QWKPagePrivate::pageDidRequestScroll):
19759         * UIProcess/API/qt/qwkpage.h:
19760         * UIProcess/API/qt/qwkpage_p.h:
19761         * UIProcess/PageClient.h:
19762         * UIProcess/WebPageProxy.cpp:
19763         (WebKit::WebPageProxy::pageDidRequestScroll):
19764         * UIProcess/WebPageProxy.h:
19765         * UIProcess/WebPageProxy.messages.in:
19766         * WebProcess/WebCoreSupport/WebChromeClient.cpp:
19767         (WebKit::WebChromeClient::delegatedScrollRequested):
19768         * WebProcess/WebPage/WebPage.cpp:
19769         (WebKit::WebPage::pageDidRequestScroll):
19770         * WebProcess/WebPage/WebPage.h:
19771
19772 2010-11-08  Ivan Krstić  <ike@apple.com>
19773
19774         Reviewed by Mark Rowe.
19775
19776         <rdar://problem/8531943> Enable partial symbolication for sandbox violations in WebProcess.
19777
19778         * WebProcess/com.apple.WebProcess.sb:
19779
19780 2010-11-08  Juha Savolainen  <juha.savolainen@weego.fi>
19781
19782         Reviewed by Andreas Kling.
19783
19784         [Qt] Added new methods to QWKHistory and made QWKHistoryItemPrivate to shared object.
19785         https://bugs.webkit.org/show_bug.cgi?id=49063
19786
19787         Added more functionality to the QWKHistory and changed QWKHistoryItemPrivate to shared object.
19788         This is needed because we cannot delete the QWKHistoryItemPrivate pointer in destructor of QWKHistoryItem,
19789         there may have other history instances which share same private implementation.
19790
19791         * UIProcess/API/qt/qwkhistory.cpp:
19792         (QWKHistoryItemPrivate::~QWKHistoryItemPrivate):
19793         (QWKHistoryItem::QWKHistoryItem):
19794         (QWKHistoryItem::QWKHistoryItem::operator=):
19795         (QWKHistory::currentItem): Added
19796         (QWKHistory::backItem): Added
19797         (QWKHistory::forwardItem): Added
19798         (QWKHistory::itemAt): Added
19799         (QWKHistory::backItems): Added
19800         (QWKHistory::forwardItems): Added
19801         * UIProcess/API/qt/qwkhistory.h:
19802         * UIProcess/API/qt/qwkhistory_p.h:
19803
19804 2010-11-08  Anders Carlsson  <andersca@apple.com>
19805
19806         Reviewed by Dan Bernstein.
19807
19808         Add WKDownloadClient API
19809         https://bugs.webkit.org/show_bug.cgi?id=49227
19810
19811         * Shared/API/c/WKBase.h:
19812         Add WKDownloadRef.
19813
19814         * UIProcess/API/C/WKAPICast.h:
19815         Add WKDownloadRef <-> DownloadProxy mapping.
19816         
19817         * UIProcess/API/C/WKContext.cpp:
19818         (WKContextSetDownloadClient):
19819         Initialize the download client.
19820
19821         * UIProcess/API/C/WKContext.h:
19822         Add new WKContextDownloadClient API.
19823         
19824         * UIProcess/API/C/WKDownload.cpp: Added.
19825         * UIProcess/API/C/WKDownload.h:
19826         Add WKDownload files.
19827
19828         * UIProcess/Downloads/DownloadProxy.cpp:
19829         (WebKit::DownloadProxy::didStart):
19830         (WebKit::DownloadProxy::didCreateDestination):
19831         (WebKit::DownloadProxy::didFinish):
19832         Call down to the the WebDownloadClient.
19833         
19834         * UIProcess/Downloads/DownloadProxy.messages.in:
19835         Rename DidBegin to DidStart.
19836
19837         * UIProcess/WebContext.cpp:
19838         (WebKit::WebContext::initializeDownloadClient):
19839         Initialize the download client.
19840
19841         * UIProcess/WebContext.h:
19842         (WebKit::WebContext::downloadClient):
19843         Add getter.
19844
19845         * UIProcess/WebDownloadClient.cpp:
19846         (WebKit::WebDownloadClient::didStart):
19847         (WebKit::WebDownloadClient::didCreateDestination):
19848         (WebKit::WebDownloadClient::didFinish):
19849         Call the relevant WKContextDownloadClient functions.
19850
19851         * WebKit2.pro:
19852         * WebKit2.xcodeproj/project.pbxproj:
19853         Add new files.
19854
19855         * WebProcess/Downloads/Download.cpp:
19856         (WebKit::Download::didStart):
19857         * WebProcess/Downloads/Download.h:
19858         * WebProcess/Downloads/mac/DownloadMac.mm:
19859         (-[WKDownloadAsDelegate downloadDidBegin:]):
19860         Rename Download::didBegin to Download::didStart.
19861
19862         * win/WebKit2.vcproj:
19863         Add new files.
19864
19865 2010-11-08  Brady Eidson  <beidson@apple.com>
19866
19867         Reviewed by Anders Carlsson.
19868
19869         Part of https://bugs.webkit.org/show_bug.cgi?id=49222
19870         Rename "WebContextMenuItem" to "WebContextMenuItemData"
19871
19872         * WebKit2.pro:
19873         * WebKit2.xcodeproj/project.pbxproj:
19874         * win/WebKit2.vcproj:
19875
19876         * Shared/WebContextMenuItem.cpp: Removed.
19877         * Shared/WebContextMenuItem.h: Removed.
19878         * Shared/WebContextMenuItemData.cpp: Copied from Shared/WebContextMenuItem.cpp.
19879         (WebKit::WebContextMenuItemData::WebContextMenuItemData):
19880         (WebKit::WebContextMenuItemData::encode):
19881         (WebKit::WebContextMenuItemData::decode):
19882         (WebKit::kitItems):
19883         * Shared/WebContextMenuItemData.h: Copied from Shared/WebContextMenuItem.h.
19884         (WebKit::WebContextMenuItemData::submenu):
19885
19886         * UIProcess/WebContextMenuProxy.h:
19887
19888         * UIProcess/WebPageProxy.cpp:
19889         (WebKit::WebPageProxy::showContextMenu):
19890         (WebKit::WebPageProxy::contextMenuItemSelected):
19891         * UIProcess/WebPageProxy.h:
19892         * UIProcess/WebPageProxy.messages.in:
19893
19894         * UIProcess/mac/WebContextMenuProxyMac.h:
19895         * UIProcess/mac/WebContextMenuProxyMac.mm:
19896         (-[WebMenuTarget forwardContextMenuAction:]):
19897         (WebKit::WebContextMenuProxyMac::contextMenuItemSelected):
19898         (WebKit::nsMenuItemVector):
19899         (WebKit::WebContextMenuProxyMac::populate):
19900         (WebKit::WebContextMenuProxyMac::showContextMenu):
19901
19902         * UIProcess/qt/WebContextMenuProxyQt.cpp:
19903         (WebKit::WebContextMenuProxyQt::showContextMenu):
19904         * UIProcess/qt/WebContextMenuProxyQt.h:
19905
19906         * UIProcess/win/WebContextMenuProxyWin.cpp:
19907         (WebKit::WebContextMenuProxyWin::showContextMenu):
19908         * UIProcess/win/WebContextMenuProxyWin.h:
19909
19910         * WebProcess/WebPage/WebContextMenu.cpp:
19911         (WebKit::WebContextMenu::itemSelected):
19912         * WebProcess/WebPage/WebContextMenu.h:
19913
19914         * WebProcess/WebPage/WebPage.cpp:
19915         (WebKit::WebPage::didSelectItemFromActiveContextMenu):
19916         * WebProcess/WebPage/WebPage.h:
19917         * WebProcess/WebPage/WebPage.messages.in:
19918
19919 2010-11-08  Anders Carlsson  <andersca@apple.com>
19920
19921         Reviewed by John Sullivan and Dan Bernstein.
19922
19923         Find in Page: scrolling the page with the scrollbar while overlay is up dismisses the overlay
19924         https://bugs.webkit.org/show_bug.cgi?id=49219
19925         <rdar://problem/8569550>
19926
19927         * WebProcess/WebPage/FindPageOverlay.cpp:
19928         (WebKit::FindPageOverlay::bounds):
19929         Return the bounds of the find page overlay, excluding any scrollbars.
19930
19931         (WebKit::FindPageOverlay::drawRect):
19932         Call bounds.
19933
19934         (WebKit::FindPageOverlay::mouseEvent):
19935         Only dismiss the find UI if the mouse down event happens inside the overlay bounds.
19936
19937 2010-11-08  Anders Carlsson  <andersca@apple.com>
19938
19939         Reviewed by Adam Roben.
19940
19941         Add the ability to send messages to DownloadProxy objects
19942         https://bugs.webkit.org/show_bug.cgi?id=49213
19943
19944         * DerivedSources.make:
19945         * DerivedSources.pro:
19946         Add Download.messages.in.
19947
19948         * Platform/CoreIPC/MessageID.h:
19949         Add MessageClassDownloadProxy message class.
19950
19951         * Platform/CoreIPC/MessageSender.h:
19952         Include Connection.h directly since it's required.
19953
19954         * UIProcess/Downloads/DownloadProxy.cpp:
19955         (WebKit::DownloadProxy::didBegin):
19956         (WebKit::DownloadProxy::didCreateDestination):
19957         (WebKit::DownloadProxy::didFinish):
19958         Add stubs.
19959
19960         * UIProcess/Downloads/DownloadProxy.messages.in: Added.
19961
19962         * UIProcess/WebContext.cpp:
19963         (WebKit::WebContext::didReceiveMessage):
19964         Handle DownloadProxy messages.
19965
19966         * UIProcess/WebProcessProxy.cpp:
19967         (WebKit::WebProcessProxy::didReceiveMessage):
19968         Hand DownloadProxy messages off to the context.
19969
19970         * WebKit2.pro:
19971         * WebKit2.xcodeproj/project.pbxproj:
19972         Add new files.
19973
19974         * WebProcess/Downloads/Download.cpp:
19975         (WebKit::Download::didBegin):
19976         (WebKit::Download::didReceiveData):
19977         (WebKit::Download::didCreateDestination):
19978         (WebKit::Download::didFinish):
19979         Send messages.
19980
19981         * WebProcess/Downloads/mac/DownloadMac.mm:
19982         (-[WKDownloadAsDelegate download:didCreateDestination:]):
19983         Call Download::didCreateDestination.
19984
19985         * win/WebKit2.vcproj:
19986         Add new files.
19987
19988 2010-11-08  Anders Carlsson  <andersca@apple.com>
19989
19990         Reviewed by Adam Roben.
19991
19992         Add DownloadProxy object
19993         https://bugs.webkit.org/show_bug.cgi?id=49211
19994
19995         DownloadProxy will be the implementation of the forthcoming WKDownloadRef object.
19996
19997         * Shared/APIObject.h:
19998         Add TypeDownload.
19999
20000         * UIProcess/Downloads/DownloadProxy.cpp:
20001         (WebKit::generateDownloadID):
20002         Generate a unique download ID.
20003
20004         (WebKit::DownloadProxy::invalidate):
20005         Null out the web context.
20006
20007         * UIProcess/Downloads/DownloadProxy.h:
20008         (WebKit::WebContext::processDidClose):
20009         Invalidate all downloads.
20010
20011         (WebKit::WebContext::createDownloadProxy):
20012         Create a WebDownload object.
20013
20014         * UIProcess/WebPageProxy.cpp:
20015         (WebKit::WebPageProxy::receivedPolicyDecision):
20016         Call createDownloadProxy instead.
20017
20018         * WebKit2.pro:
20019         * WebKit2.xcodeproj/project.pbxproj:
20020         * win/WebKit2.vcproj:
20021         Add new files.
20022
20023         * win/WebKit2Common.vsprops:
20024         Add new include path.
20025
20026 2010-11-08  Alexey Proskuryakov  <ap@apple.com>
20027
20028         Reviewed by Darin Adler.
20029
20030         https://bugs.webkit.org/show_bug.cgi?id=49201
20031         Crash when closing a page
20032
20033         Handle null frame by passing a 0 frame id (normal ones start from 1).
20034
20035         * UIProcess/WebPageProxy.cpp:
20036         (WebKit::WebPageProxy::focusedFrameChanged):
20037         * WebProcess/WebCoreSupport/WebChromeClient.cpp:
20038         (WebKit::WebChromeClient::focusedFrameChanged):
20039
20040 2010-11-08  Nate Chapin  <japhet@chromium.org>
20041
20042         Reviewed by Alexey Proskuryakov.
20043
20044         Function call update for 
20045         https://bugs.webkit.org/show_bug.cgi?id=27165.
20046
20047         * WebProcess/Plugins/PluginView.cpp:
20048         (WebKit::PluginView::Stream::start):
20049
20050 2010-11-08  Anders Carlsson  <andersca@apple.com>
20051
20052         Reviewed by Adam Roben.
20053
20054         NPClass::construct and NPClass::invokeDefault never called with out-of-process plug-ins in WebKit2
20055         https://bugs.webkit.org/show_bug.cgi?id=49198
20056
20057         * Shared/Plugins/NPObjectMessageReceiver.cpp:
20058         (WebKit::NPObjectMessageReceiver::invokeDefault):
20059         Call NPClass::invokeDefault.
20060
20061         (WebKit::NPObjectMessageReceiver::construct):
20062         Call NPClass::construct
20063         
20064         * Shared/Plugins/NPObjectMessageReceiver.messages.in:
20065         Add InvokeDefault and Construct messages.
20066
20067         * Shared/Plugins/NPObjectProxy.cpp:
20068         (WebKit::NPObjectProxy::invokeDefault):
20069         Send the InvokeDefault message.
20070
20071         (WebKit::NPObjectProxy::construct):
20072         Send the Construct message.
20073
20074         (WebKit::NPObjectProxy::NP_InvokeDefault):
20075         Call NPObjectProxy::invokeDefault.
20076
20077         (WebKit::NPObjectProxy::NP_Construct):
20078         Call NPObjectProxy::construct.
20079
20080 2010-11-08  Anders Carlsson  <andersca@apple.com>
20081
20082         Reviewed by Dan Bernstein.
20083
20084         Plug-in views should not assume that plugins are RenderEmbeddedObjects
20085         https://bugs.webkit.org/show_bug.cgi?id=49196
20086         <rdar://problem/8638467>
20087
20088         * WebProcess/Plugins/PluginView.cpp:
20089         (WebKit::PluginView::pluginProcessCrashed):
20090
20091 2010-11-08  Anders Carlsson  <andersca@apple.com>
20092
20093         Reviewed by Adam Roben.
20094
20095         NPN_Evaluate doesn't work with out-of-process plugins in WebKit2
20096         https://bugs.webkit.org/show_bug.cgi?id=49193
20097
20098         * PluginProcess/PluginControllerProxy.cpp:
20099         (WebKit::PluginControllerProxy::evaluate):
20100         Send an Evaluate message.
20101
20102         * WebProcess/Plugins/PluginProxy.cpp:
20103         (WebKit::PluginProxy::evaluate):
20104         Call Evaluate on the plug-in proxy.
20105
20106         * WebProcess/Plugins/PluginProxy.h:
20107         * WebProcess/Plugins/PluginProxy.messages.in:
20108         Add Evaluate message.
20109
20110 2010-11-08  Anders Carlsson  <andersca@apple.com>
20111
20112         Reviewed by John Sullivan.
20113
20114         Correctly convert NPObjectProxy to NPVariantData
20115         https://bugs.webkit.org/show_bug.cgi?id=49190
20116
20117         * Shared/Plugins/NPObjectMessageReceiver.h:
20118         (WebKit::NPObjectMessageReceiver::npObject):
20119         Add NPObject getter.
20120
20121         * Shared/Plugins/NPObjectProxy.h:
20122         (WebKit::NPObjectProxy::npObjectID):
20123         Add NPObjectID getter.
20124
20125         * Shared/Plugins/NPRemoteObjectMap.cpp:
20126         (WebKit::NPRemoteObjectMap::npVariantToNPVariantData):
20127         Handle the case where the NPObject is an NPObjectProxy.
20128
20129         (WebKit::NPRemoteObjectMap::npVariantDataToNPVariant):
20130         Handle NPVariantData::LocalNPObjectID.
20131
20132         * Shared/Plugins/NPVariantData.cpp:
20133         (WebKit::NPVariantData::makeRemoteNPObjectID):
20134         * Shared/Plugins/NPVariantData.h:
20135         New function for creating an NPVariantData that contains a remote NPObject ID.
20136
20137 2010-11-08  Alexey Proskuryakov  <ap@apple.com>
20138
20139         Reviewed by Darin Adler.
20140
20141         https://bugs.webkit.org/show_bug.cgi?id=48685
20142         Notify UI process about focused frame
20143
20144         Handle notifications, store the current one in WebPageProxy in UI process.
20145
20146         * UIProcess/API/C/WKPage.cpp:
20147         (WKPageGetFocusedFrame):
20148         * UIProcess/API/C/WKPage.h:
20149         * UIProcess/WebPageProxy.cpp:
20150         (WebKit::WebPageProxy::focusedFrameChanged):
20151         * UIProcess/WebPageProxy.h:
20152         (WebKit::WebPageProxy::focusedFrame):
20153         * UIProcess/WebPageProxy.messages.in:
20154         * WebProcess/WebCoreSupport/WebChromeClient.cpp:
20155         (WebKit::WebChromeClient::focusedFrameChanged):
20156         * WebProcess/WebCoreSupport/WebChromeClient.h:
20157
20158 2010-11-07  Adam Barth  <abarth@webkit.org>
20159
20160         Reviewed by Eric Seidel.
20161
20162         Rename Cache to MemoryCache
20163         https://bugs.webkit.org/show_bug.cgi?id=49159
20164
20165         * WebProcess/WebProcess.cpp:
20166         * WebProcess/mac/WebProcessMac.mm:
20167         * WebProcess/win/WebProcessWin.cpp:
20168
20169 2010-11-06  Balazs Kelemen  <kbalazs@webkit.org>
20170
20171         Reviewed by Andreas Kling.
20172
20173         [Qt][WK2] WebKitTestRunner is dead
20174         https://bugs.webkit.org/show_bug.cgi?id=49129
20175
20176         * Platform/qt/SharedMemoryQt.cpp:
20177         (WebKit::SharedMemory::~SharedMemory):
20178         Avoid double deletion when deleteLater has
20179         already been called.
20180
20181 2010-11-05  Chris Marrin  <cmarrin@apple.com>
20182
20183         Reviewed by Simon Fraser.
20184
20185         suspendAnimations/resumeAnimations not present in WebKit2
20186         https://bugs.webkit.org/show_bug.cgi?id=49109
20187
20188         * WebProcess/InjectedBundle/API/c/WKBundleFrame.cpp:
20189         (WKBundleFrameSuspendAnimations):
20190         (WKBundleFrameResumeAnimations):
20191         * WebProcess/InjectedBundle/API/c/WKBundleFramePrivate.h:
20192         * WebProcess/WebPage/WebFrame.cpp:
20193         (WebKit::WebFrame::suspendAnimations):
20194         (WebKit::WebFrame::resumeAnimations):
20195         * WebProcess/WebPage/WebFrame.h:
20196
20197 2010-11-05  Anders Carlsson  <andersca@apple.com>
20198
20199         Reviewed by Darin Adler.
20200
20201         WebProcess won't kill itself if UIProcess goes away while WebProcess is spinning
20202         https://bugs.webkit.org/show_bug.cgi?id=49090
20203         <rdar://problem/7834575>
20204
20205         * Platform/CoreIPC/Connection.cpp:
20206         (CoreIPC::Connection::connectionDidClose):
20207         Call Client::didCloseOnConnectionWorkQueue.
20208
20209         * Platform/CoreIPC/Connection.h:
20210         (CoreIPC::Connection::Client::didCloseOnConnectionWorkQueue):
20211         Add new client function. Will be called on the connection work queue when the connection is closed.
20212
20213         * Platform/WorkItem.h:
20214         (FunctionWorkItem0::FunctionWorkItem0):
20215         (FunctionWorkItem0::execute):
20216         (WorkItem::create):
20217         Add a new WorkItem subclass that will invoke a C function.
20218
20219         * Platform/WorkQueue.h:
20220         * Platform/mac/WorkQueueMac.cpp:
20221         (WorkQueue::scheduleWorkAfterDelay):
20222         New function which will schedule the given work item to be executed in at least 'delay' seconds.
20223
20224         * Platform/qt/WorkQueueQt.cpp:
20225         (WorkQueue::scheduleWorkAfterDelay):
20226         Add empty stub.
20227         
20228         * Platform/win/WorkQueueWin.cpp:
20229         (WorkQueue::scheduleWorkAfterDelay):
20230         Ditto.
20231
20232         * PluginProcess/PluginProcess.h:
20233         Derive from ChildProcess.
20234
20235         * Shared/ChildProcess.cpp: Added.
20236         (WebKit::ChildProcess::ChildProcess):
20237         (WebKit::ChildProcess::~ChildProcess):
20238         (WebKit::watchdogCallback):
20239         Call _exit.
20240
20241         (WebKit::ChildProcess::didCloseOnConnectionWorkQueue):
20242         When the connection is closed, schedule a work item to be run in 10 seconds. If the process hasn't
20243         exited normally by then, we'll exit.
20244
20245         * Shared/ChildProcess.h: 
20246         Add new ChildProcess class which is a common base class of WebProcess and PluginProcess and which contains
20247         the watchdog timer logic.
20248
20249         * WebKit2.pro:
20250         * WebKit2.xcodeproj/project.pbxproj:
20251         Add new files.
20252
20253         * WebProcess/WebProcess.h:
20254         Derive from ChildProcess.
20255
20256         * win/WebKit2.vcproj:
20257         Add new files.
20258
20259 2010-11-05  Adam Roben  <aroben@apple.com>
20260
20261         Implement PluginInfoStore::shouldUsePlugin on Windows
20262
20263         Fixes <http://webkit.org/b/43509> <rdar://problem/8273822> WebKit2
20264         should refuse to load the same plugins that old-WebKit refuses to load
20265
20266         Reviewed by Anders Carlsson.
20267
20268         * UIProcess/Plugins/win/PluginInfoStoreWin.cpp:
20269         (WebKit::fileVersion): Helper function to construct a 64-bit file
20270         version from two 32-bit numbers.
20271         (WebKit::PluginInfoStore::getPluginInfo): Ported code from
20272         WebCore::PluginPackage::fetchInfo to get the plugin's version. We now
20273         store it in Plugin::fileVersion.
20274
20275         (WebKit::isOldWindowsMediaPlayerPlugin):
20276         (WebKit::isNewWindowsMediaPlayerPlugin):
20277         Added these helpers. The code came from
20278         WebCore::PluginDatabase::getPluginPathsInDirectories.
20279
20280         (WebKit::PluginInfoStore::shouldUsePlugin): Implemented. The code was
20281         ported from WebCore::PluginDatabase::getPluginPathsInDirectories and
20282         WebCore::PluginPackage::isPluginBlacklisted.
20283
20284 2010-11-05  Adam Roben  <aroben@apple.com>
20285
20286         Operate on m_plugins directly in PluginInfoStore::shouldUsePlugin
20287
20288         We'll need to operate on m_plugins if we ever want to unload an
20289         already-loaded plugin before loading the new one.
20290
20291         Fixes <http://webkit.org/b/49076> loadedPlugins parameter to
20292         PluginInfoStore::shouldUsePlugin is redundant
20293
20294         Reviewed by Anders Carlsson.
20295
20296         * UIProcess/Plugins/PluginInfoStore.cpp:
20297         (WebKit::PluginInfoStore::loadPlugin):
20298         * UIProcess/Plugins/PluginInfoStore.h:
20299         * UIProcess/Plugins/gtk/PluginInfoStoreGtk.cpp:
20300         (WebKit::PluginInfoStore::shouldUsePlugin):
20301         * UIProcess/Plugins/mac/PluginInfoStoreMac.mm:
20302         (WebKit::PluginInfoStore::shouldUsePlugin):
20303         * UIProcess/Plugins/qt/PluginInfoStoreQt.cpp:
20304         (WebKit::PluginInfoStore::shouldUsePlugin):
20305         * UIProcess/Plugins/win/PluginInfoStoreWin.cpp:
20306         (WebKit::PluginInfoStore::shouldUsePlugin):
20307         Removed the loadedPlugins parameter from shouldUsePlugin. The single
20308         implementation (Mac) now uses m_plugins directly.
20309
20310 2010-11-05  Anders Carlsson  <andersca@apple.com>
20311
20312         Reviewed by Adam Roben.
20313
20314         Implement pluginElementNPObject
20315         https://bugs.webkit.org/show_bug.cgi?id=49077
20316
20317         * PluginProcess/PluginControllerProxy.cpp:
20318         (WebKit::PluginControllerProxy::pluginElementNPObject):
20319         Send the GetPluginElementNPObject message.
20320
20321         * WebProcess/Plugins/PluginProxy.cpp:
20322         (WebKit::PluginProxy::getPluginElementNPObject):
20323         Get the plug-in element NPObject and expose it to the other side of the connection.
20324
20325         * WebProcess/Plugins/PluginProxy.messages.in:
20326         Add GetPluginElementNPObject.
20327
20328 2010-11-04  Anders Carlsson  <andersca@apple.com>
20329
20330         Reviewed by Oliver Hunt.
20331
20332         Implement NP_RemoveProperty and NP_Enumerate
20333         https://bugs.webkit.org/show_bug.cgi?id=49046
20334
20335         * Shared/Plugins/NPObjectMessageReceiver.cpp:
20336         (WebKit::NPObjectMessageReceiver::removeProperty):
20337         Call the removeProperty NPClass function.
20338
20339         (WebKit::NPObjectMessageReceiver::enumerate):
20340         Call the enumerate NPClass function.
20341
20342         * Shared/Plugins/NPObjectMessageReceiver.messages.in:
20343         Add RemoveProperty and Enumerate messages.
20344
20345         * Shared/Plugins/NPObjectProxy.cpp:
20346         (WebKit::NPObjectProxy::removeProperty):
20347         Send the RemoveProperty message.
20348
20349         (WebKit::NPObjectProxy::enumerate):
20350         Send the Enumerate message.
20351
20352         (WebKit::NPObjectProxy::NP_RemoveProperty):
20353         Call removeProperty.
20354
20355         (WebKit::NPObjectProxy::NP_Enumerate):
20356         Call enumerate.
20357
20358 2010-11-05  Sam Weinig  <sam@webkit.org>
20359
20360         Fix failing python tests.
20361
20362         * Scripts/webkit2/messages.py:
20363         * Scripts/webkit2/messages_unittest.py:
20364
20365 2010-11-05  Sam Weinig  <sam@webkit.org>
20366
20367         Reviewed by Adam Roben..
20368
20369         Generate the messages sent to the WebProcessProxy
20370         https://bugs.webkit.org/show_bug.cgi?id=49062
20371
20372         * Platform/CoreIPC/MessageID.h:
20373         Temporarily add MessageClassWebProcessProxyLegacy while we still can't
20374         support GetPluginProcessConnection (and deferred sync replies) in the
20375         general mechanism.
20376
20377         * Scripts/webkit2/messages.py:
20378         Add support for WebCore::PluginData and WebKit::WebNavigationDataStore.
20379
20380         * Shared/CoreIPCSupport/WebProcessProxyMessageKinds.h:
20381         Remove now unused kinds. Rename to MessageClassWebProcessProxyLegacy.
20382
20383         * UIProcess/WebProcessProxy.cpp:
20384         (WebKit::WebProcessProxy::getPluginPath):
20385         (WebKit::WebProcessProxy::addBackForwardItem):
20386         (WebKit::WebProcessProxy::didNavigateWithNavigationData):
20387         (WebKit::WebProcessProxy::didPerformClientRedirect):
20388         (WebKit::WebProcessProxy::didPerformServerRedirect):
20389         (WebKit::WebProcessProxy::didUpdateHistoryTitle):
20390         (WebKit::WebProcessProxy::didReceiveMessage):
20391         (WebKit::WebProcessProxy::didReceiveSyncMessage):
20392         (WebKit::WebProcessProxy::didDestroyFrame):
20393         * UIProcess/WebProcessProxy.h:
20394         * UIProcess/WebProcessProxy.messages.in: Added.
20395         Move implementations to their own functions.
20396
20397         * WebProcess/Plugins/PluginProcessConnectionManager.cpp:
20398         (WebKit::PluginProcessConnectionManager::getPluginProcessConnection):
20399         Change to use WebProcessProxyLegacyMessage.
20400
20401         * WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
20402         (WebKit::WebFrameLoaderClient::updateGlobalHistory):
20403         (WebKit::WebFrameLoaderClient::updateGlobalHistoryRedirectLinks):
20404         (WebKit::WebFrameLoaderClient::setTitle):
20405         * WebProcess/WebCoreSupport/WebPlatformStrategies.cpp:
20406         (WebKit::WebPlatformStrategies::populatePluginCache):
20407         * WebProcess/WebPage/WebBackForwardListProxy.cpp:
20408         (WebKit::updateBackForwardItem):
20409         * WebProcess/WebPage/WebPage.cpp:
20410         (WebKit::WebPage::createPlugin):
20411         * WebProcess/WebProcess.cpp:
20412         (WebKit::WebProcess::addVisitedLink):
20413         (WebKit::WebProcess::removeWebFrame):
20414         Use generated messages.
20415
20416         * DerivedSources.make:
20417         * DerivedSources.pro:
20418         * WebKit2.pro:
20419         * WebKit2.xcodeproj/project.pbxproj:
20420         * win/WebKit2.vcproj:
20421         Add new files.
20422
20423 2010-11-04  Adam Roben  <aroben@apple.com>
20424
20425         Use a window region to clip windowed plugins
20426
20427         Fixes <http://webkit.org/b/49024> <rdar://problem/8487847> Windowed
20428         plugins aren't clipped in WebKit2 on Windows
20429
20430         Reviewed by Jon Honeycutt.
20431
20432         * WebProcess/Plugins/Netscape/win/NetscapePluginWin.cpp:
20433         (WebKit::registerPluginView): Removed the CS_PARENTDC style. This style
20434         makes Windows ignore the window region and always clip to the parent
20435         window. Also pass WebKit.dll's HINSTANCE as part of the WNDCLASSW
20436         struct so that the window class will be specific to WebKit.dll rather
20437         than to WebKit2WebProcess.exe. This is useful for testing, but also
20438         more pedantically correct.
20439         (WebKit::setWindowRegion): Helper function to set a window region and
20440         deal with ownership of the HRGN correctly.
20441         (WebKit::NetscapePlugin::platformGeometryDidChange): Make an HRGN that
20442         corresponds to m_clipRect and set it on the plugin's window.
20443
20444 2010-11-05  Balazs Kelemen  <kbalazs@webkit.org>
20445
20446         Reviewed by Andreas Kling.
20447
20448         [Qt][WK2] Left over files and shared memory segments
20449         https://bugs.webkit.org/show_bug.cgi?id=48985
20450
20451         * Platform/qt/SharedMemoryQt.cpp:
20452         (WebKit::SharedMemory::create): Force deletion of the QSharedMemory
20453         object on terminate by connecting QCoreApplication::aboutToQuit with
20454         deleteLater. Add the object to the CrashHandler as well to release the
20455         shared memory segment even on crash.
20456         (WebKit::SharedMemory::~SharedMemory):
20457         * Shared/qt/CrashHandler.cpp: Added.
20458         CrashHandler has a container for QObjects that we want to
20459         destroy on crash. When we got a signal that we interpret as
20460         a crash then it destroys those objects.
20461         (WebKit::CrashHandler::CrashHandler):
20462         (WebKit::CrashHandler::signalHandler):
20463         (WebKit::CrashHandler::deleteObjects):
20464         * Shared/qt/CrashHandler.h: Added.
20465         (WebKit::CrashHandler::instance):
20466         (WebKit::CrashHandler::didDelete):
20467         (WebKit::CrashHandler::markForDeletionOnCrash):
20468         * UIProcess/Launcher/qt/ProcessLauncherQt.cpp:
20469         (WebKit::ProcessLauncherHelper::ProcessLauncherHelper):
20470         Add the object itself to the CrashHandler to close the QLocalServer
20471         even on crash. Without that the QLocalServer leaves over socket files on the disk.
20472         (WebKit::ProcessLauncherHelper::~ProcessLauncherHelper):
20473         * WebKit2.pro:
20474
20475 2010-11-04  Jia Pu  <jpu@apple.com>
20476
20477         Reviewed by Dan Bernstein.
20478
20479         reversion bubble in WebViews
20480         https://bugs.webkit.org/show_bug.cgi?id=47630
20481         <rdar://problem/8530960>
20482
20483         This patch is to add reversion to correction panel. Please see WebCore/ChangeLog for detail.
20484
20485         * WebProcess/WebCoreSupport/WebEditorClient.h: Adopted new signature of base class method.
20486         * WebProcess/WebCoreSupport/mac/WebEditorClientMac.mm: Ditto.
20487         (WebKit::WebEditorClient::showCorrectionPanel):
20488         (WebKit::WebEditorClient::dismissCorrectionPanel):
20489
20490 2010-11-04  Kenneth Rohde Christiansen  <kenneth@webkit.org>
20491
20492         Reviewed by David Hyatt.
20493
20494         Delegate scrolling via a separate method
20495         https://bugs.webkit.org/show_bug.cgi?id=48988
20496
20497         Add delegatedScrollRequested method to WebChromeClient,
20498         which is only used in conjunging with tiling, and thus ifdef'ed.
20499
20500         * WebProcess/WebCoreSupport/WebChromeClient.cpp:
20501         (WebKit::WebChromeClient::delegatedScrollRequested):
20502         * WebProcess/WebCoreSupport/WebChromeClient.h:
20503
20504 2010-11-03  Enrica Casucci  <enrica@apple.com>
20505
20506         Reviewed by Alexey Proskuryakov.
20507
20508         Need a way to test in WebKit2 whether a form field contains marked text
20509         <rdar://problem/8555293>
20510         https://bugs.webkit.org/show_bug.cgi?id=48969
20511         
20512         Added a selection changed notification from the Web process to the UI process.
20513         The message being sent contains information about the current selection.
20514         Event though for this specific bug the only information required is the marked text,
20515         I've added other selection information that will be needed to support IME.
20516         All the stubbed methods are required methods by the NSTextInput protocol.
20517         
20518         * UIProcess/API/mac/PageClientImpl.h:
20519         * UIProcess/API/mac/PageClientImpl.mm:
20520         (WebKit::PageClientImpl::selectionChanged): Added.
20521         * UIProcess/API/mac/WKView.h:
20522         * UIProcess/API/mac/WKView.mm:
20523         (-[WKView initWithFrame:pageNamespaceRef:]): Added initialization of new members.
20524         (-[WKView _selectionChanged:isEditable:isPassword:hasMarkedText:]): Stores the values from
20525         the selection changed message.
20526         (-[WKView selectedRange]): Added stub.
20527         (-[WKView hasMarkedText]): Implemented.
20528         (-[WKView unmarkText]): Added stub.
20529         (-[WKView validAttributesForMarkedText]): Added stub.
20530         (-[WKView setMarkedText:selectedRange:]): Added stub.
20531         (-[WKView markedRange]): Added stub.
20532         (-[WKView attributedSubstringFromRange:]): Added stub.
20533         (-[WKView conversationIdentifier]): Added stub.
20534         (-[WKView characterIndexForPoint:]): Added stub.
20535         (-[WKView firstRectForCharacterRange:]): Added stub.
20536         * UIProcess/API/mac/WKViewInternal.h:
20537         * UIProcess/API/qt/qwkpage.cpp:
20538         (QWKPagePrivate::selectionChanged): Added.
20539         * UIProcess/API/qt/qwkpage_p.h:
20540         * UIProcess/PageClient.h:
20541         * UIProcess/WebPageProxy.cpp:
20542         (WebKit::WebPageProxy::didSelectionChange): New message handler.
20543         * UIProcess/WebPageProxy.h:
20544         * UIProcess/WebPageProxy.messages.in:
20545         * UIProcess/win/WebView.cpp:
20546         (WebKit::WebView::selectionChanged): Added.
20547         * UIProcess/win/WebView.h:
20548         * WebProcess/WebCoreSupport/WebEditorClient.cpp:
20549         (WebKit::WebEditorClient::respondToChangedSelection): Added implementation.
20550
20551 2010-11-04  Balazs Kelemen  <kbalazs@webkit.org>
20552
20553         Reviewed by Andreas Kling.
20554
20555         [Qt][WK2] Cleanup UpdateChunk and MappedMemoryPool
20556         https://bugs.webkit.org/show_bug.cgi?id=48994
20557
20558         * Platform/qt/MappedMemoryPool.cpp:
20559         (WebKit::MappedMemoryPool::mapMemory):
20560         Removed argument with default value that was always
20561         used with the default value.
20562         (WebKit::MappedMemoryPool::mapFile): Ditto and
20563         add some asserts.
20564         * Platform/qt/MappedMemoryPool.h:
20565         Encapsulating MappedMemory and remove the unused
20566         MappedMemoryPool::searchForMappedMemory method.
20567         (WebKit::MappedMemory::mappedFile):
20568         (WebKit::MappedMemory::markFree):
20569         (WebKit::MappedMemory::data):
20570         (WebKit::MappedMemory::MappedMemory):
20571         (WebKit::MappedMemory::markUsed):
20572         (WebKit::MappedMemory::mapSize):
20573         (WebKit::MappedMemory::isFree):
20574         (WebKit::MappedMemoryPool::instance):
20575         * Shared/qt/UpdateChunk.cpp:
20576         Removed the unused data method besides other cleanups.
20577         (WebKit::UpdateChunk::UpdateChunk):
20578         (WebKit::UpdateChunk::encode):
20579         (WebKit::UpdateChunk::decode):
20580         (WebKit::UpdateChunk::createImage):
20581         * Shared/qt/UpdateChunk.h:
20582
20583 2010-11-04  Andreas Kling  <kling@webkit.org>
20584
20585         Reviewed by Tor Arne Vestbø.
20586
20587         [Qt] Add a stub WebContextMenuProxy
20588
20589         This is the Qt equivalent of r71333.
20590
20591         * UIProcess/API/qt/qwkpage.cpp:
20592         (QWKPagePrivate::createContextMenuProxy):
20593         * UIProcess/qt/WebContextMenuProxyQt.cpp: Added.
20594         (WebKit::WebContextMenuProxyQt::WebContextMenuProxyQt):
20595         (WebKit::WebContextMenuProxyQt::create):
20596         (WebKit::WebContextMenuProxyQt::showContextMenu):
20597         (WebKit::WebContextMenuProxyQt::hideContextMenu):
20598         * UIProcess/qt/WebContextMenuProxyQt.h: Added.
20599         * WebKit2.pro:
20600
20601 2010-11-04  Adam Roben  <aroben@apple.com>
20602
20603         Add a do-nothing WebContextMenuProxy implementation on Windows
20604
20605         Fixes <http://webkit.org/b/48992> REGRESSION (r71041): Crash in
20606         WebPageProxy::showContextMenu when right-clicking in WebKit2 on
20607         Windows
20608
20609         Reviewed by Dan Bernstein.
20610
20611         * UIProcess/win/WebContextMenuProxyWin.cpp: Added.
20612         (WebKit::WebContextMenuProxyWin::WebContextMenuProxyWin):
20613         (WebKit::WebContextMenuProxyWin::create):
20614         (WebKit::WebContextMenuProxyWin::showContextMenu):
20615         (WebKit::WebContextMenuProxyWin::hideContextMenu):
20616         * UIProcess/win/WebContextMenuProxyWin.h: Added.
20617         Just stubbed-out this class.
20618
20619         * UIProcess/win/WebView.cpp:
20620         (WebKit::WebView::createContextMenuProxy): Create a new
20621         WebContextMenuProxyWin and return it. Returning 0 results in a crash.
20622
20623         * win/WebKit2.vcproj: Added WebContextMenuProxyWin.
20624
20625 2010-11-04  Tor Arne Vestbø  <tor.arne.vestbo@nokia.com>
20626
20627         Reviewed by Andreas Kling..
20628
20629         [Qt] Build Webkit2 both in debug and release on Mac
20630
20631         On Mac OS X we build QtWebKit in both debug and release, so
20632         we need to also build the webkit2 library in both configs.
20633
20634         * WebKit2.pro:
20635
20636 2010-11-04  Adam Roben  <aroben@apple.com>
20637
20638         Remove lame puts()s from WebPageProxy
20639
20640         Rubber-stamped by Anders Carlsson.
20641
20642         * UIProcess/WebPageProxy.cpp:
20643         (WebKit::WebPageProxy::loadURL):
20644         (WebKit::WebPageProxy::loadURLRequest):
20645
20646 2010-11-03  Alice Liu  <alice.liu@apple.com>
20647
20648         Fix clang++ build 
20649
20650         * PluginProcess/PluginProcess.h:
20651         * UIProcess/Plugins/PluginProcessProxy.h:
20652         * UIProcess/WebContextMenuProxy.h:
20653         Change class to struct and vise versa where needed.
20654
20655 2010-11-03  Anders Carlsson  <andersca@apple.com>
20656
20657         Reviewed by Adam Roben.
20658
20659         Implement NP_SetProperty
20660         https://bugs.webkit.org/show_bug.cgi?id=48956
20661
20662         * Shared/Plugins/NPObjectMessageReceiver.cpp:
20663         (WebKit::NPObjectMessageReceiver::setProperty):
20664         Call the NPClass setProperty function.
20665
20666         * Shared/Plugins/NPObjectMessageReceiver.messages.in:
20667         Add SetProperty message.
20668
20669         * Shared/Plugins/NPObjectProxy.cpp:
20670         (WebKit::NPObjectProxy::setProperty):
20671         Send a SetProperty message.
20672
20673         (WebKit::NPObjectProxy::NP_SetProperty):
20674         Call NPObjectProxy::setProperty.
20675
20676 2010-11-03  Anders Carlsson  <andersca@apple.com>
20677
20678         Reviewed by Simon Fraser.
20679
20680         Out of process plug-ins don't support the CA drawing model
20681         https://bugs.webkit.org/show_bug.cgi?id=48950
20682         <rdar://problem/8626019>
20683
20684         * Platform/CoreIPC/HandleMessage.h:
20685         (CoreIPC::callMemberFunction):
20686         Add new overload.
20687
20688         * PluginProcess/PluginControllerProxy.cpp:
20689         (WebKit::PluginControllerProxy::initialize):
20690         Call platformInitialize().
20691
20692         (WebKit::PluginControllerProxy::destroy):
20693         Call platformDestroy().
20694
20695         (WebKit::PluginControllerProxy::isAcceleratedCompositingEnabled):
20696         Assume that accelerated compositing is available if we have a render server port.
20697
20698         (WebKit::PluginControllerProxy::geometryDidChange):
20699         Call platformGeometryDidChange().
20700
20701         * PluginProcess/PluginProcess.h:
20702         * PluginProcess/WebProcessConnection.cpp:
20703         (WebKit::WebProcessConnection::createPlugin):
20704         Pass back the remote layer client ID.
20705
20706         * PluginProcess/WebProcessConnection.messages.in:
20707         Add a remoteLayerClientID out parameter to CreatePlugin.
20708
20709         * PluginProcess/mac/PluginControllerProxyMac.mm: Added.
20710         (WebKit::PluginControllerProxy::platformInitialize):
20711         If the plug-in has a layer, create a remote layer client and associate it with the layer.
20712
20713         (WebKit::PluginControllerProxy::platformDestroy):
20714         Invalidate the remote layer client.
20715
20716         (WebKit::PluginControllerProxy::remoteLayerClientID):
20717         Return the remote layer client ID if one exists.
20718
20719         (WebKit::PluginControllerProxy::platformGeometryDidChange):
20720         Update the layer bounds.
20721
20722         * WebKit2.xcodeproj/project.pbxproj:
20723         Add new files.
20724
20725         * WebProcess/Plugins/Netscape/mac/PluginProxyMac.mm: Added.
20726         (WebKit::PluginProxy::pluginLayer):
20727         Create a render layer if needed.
20728
20729         (WebKit::PluginProxy::needsBackingStore):
20730         Return whether the plug-in needs a backing store. (It doesn't need a backing store if it's a CA plug-in).
20731
20732         * WebProcess/Plugins/PluginProxy.cpp:
20733         (WebKit::PluginProxy::PluginProxy):
20734         Initialize m_remoteLayerClientID.
20735
20736         (WebKit::PluginProxy::initialize):
20737         Set m_remoteLayerClientID.
20738
20739         (WebKit::PluginProxy::paint):
20740         Bail if the plug-in doesn't need a backing store.
20741
20742         (WebKit::PluginProxy::geometryDidChange):
20743         Don't create a backing store if the plug-in doesn't need one.
20744
20745         * WebProcess/WebPage/LayerBackedDrawingArea.cpp:
20746         (WebKit::LayerBackedDrawingArea::LayerBackedDrawingArea):
20747         Remove RetainPtr initialization.
20748
20749         * WebProcess/WebPage/mac/LayerBackedDrawingAreaMac.mm:
20750         (WebKit::LayerBackedDrawingArea::platformClear):
20751         Use nullptr instead of 0.
20752
20753 2010-11-03  Anders Carlsson  <andersca@apple.com>
20754
20755         Reviewed by Simon Fraser.
20756
20757         Crash when layout in response to setSize changes the drawing area
20758         https://bugs.webkit.org/show_bug.cgi?id=48947
20759
20760         This is tested by compositing/plugins/small-to-large-composited-plugin.html.
20761
20762         * WebProcess/WebPage/ChunkedUpdateDrawingArea.cpp:
20763         (WebKit::ChunkedUpdateDrawingArea::setSize):
20764         * WebProcess/WebPage/LayerBackedDrawingArea.cpp:
20765         (WebKit::LayerBackedDrawingArea::setSize):
20766
20767 2010-11-03  Anders Carlsson  <andersca@apple.com>
20768
20769         Reviewed by Adam Roben.
20770
20771         Pass the accelerated compositing render server port to the plug-in process at startup
20772         https://bugs.webkit.org/show_bug.cgi?id=48925
20773
20774         * PluginProcess/PluginProcess.cpp:
20775         (WebKit::PluginProcess::PluginProcess):
20776         Initialize m_compositingRenderServerPort to MACH_PORT_NULL.
20777
20778         (WebKit::PluginProcess::initialize):
20779         Get the plug-in path and render server port from the creation parameters.
20780         
20781         * PluginProcess/PluginProcess.messages.in:
20782         Change the Initialize message to take a PluginProcessCreationParameters struct.
20783
20784         * Shared/Plugins/PluginProcessCreationParameters.cpp: Added.
20785         * Shared/Plugins/PluginProcessCreationParameters.h: Added.
20786         Add new PluginProcessCreationParameters struct.
20787
20788         * UIProcess/Plugins/PluginProcessProxy.cpp:
20789         (WebKit::PluginProcessProxy::didFinishLaunching):
20790         Initialize now takes a PluginProcessCreationParameters struct.
20791
20792         * UIProcess/Plugins/mac/PluginProcessProxyMac.mm: Added.
20793         (WebKit::PluginProcessProxy::platformInitializePluginProcess):
20794         Initialize the render server port.
20795
20796         * WebKit2.xcodeproj/project.pbxproj:
20797         Add new files.
20798
20799 2010-11-03  Tor Arne Vestbø  <tor.arne.vestbo@nokia.com>
20800
20801         Reviewed by Kenneth Rohde Christiansen.
20802
20803         [Qt] Add the webkit2 library to LIBS instead of QMAKE_LFLAGS
20804
20805         Otherwise the library order will get messed up and cause
20806         missing symbols on Mac OS X.
20807
20808         * WebKit2.pri:
20809         * WebKit2.pro:
20810
20811 2010-11-02  Daniel Bates  <dbates@rim.com>
20812
20813         Reviewed by Adam Barth.
20814
20815         For unnamed frames, window.name returns a generated name
20816         https://bugs.webkit.org/show_bug.cgi?id=6751
20817
20818         Part 1 of 2.
20819
20820         Substitute FrameTree::uniqueName() for FrameTree::name() in WebKit2.
20821
20822         * WebProcess/WebPage/WebFrame.cpp:
20823         (WebKit::WebFrame::name):
20824
20825 2010-11-02  Amruth Raj  <amruthraj@motorola.com> and Ravi Kasibhatla  <ravi.kasibhatla@motorola.com>
20826
20827         Reviewed by Martin Robinson.
20828
20829         Changes to enable building WebKit2 for Gtk port.
20830         (https://bugs.webkit.org/show_bug.cgi?id=37369)
20831
20832         * Platform/gtk: Added.
20833         * Platform/gtk/SharedMemoryGtk.cpp: Added.  Stubbed implementation for GTK port. Yet to implement.
20834         (WebKit::SharedMemory::Handle::Handle):
20835         (WebKit::SharedMemory::Handle::~Handle):
20836         (WebKit::SharedMemory::Handle::encode):
20837         (WebKit::SharedMemory::Handle::decode):
20838         (WebKit::SharedMemory::create):
20839         (WebKit::SharedMemory::~SharedMemory):
20840         (WebKit::SharedMemory::createHandle):
20841         (WebKit::SharedMemory::systemPageSize):
20842         * Shared/gtk: Added.
20843         * Shared/gtk/BackingStoreGtk.cpp: Added. Stubbed implementation for GTK port. Yet to implement.
20844         (WebKit::BackingStore::createGraphicsContext):
20845         (WebKit::BackingStore::paint):
20846         * Shared/gtk/PlatformCertificateInfo.h: Added. Added. Stubbed implementation for GTK port. Yet to implement.
20847         (WebKit::PlatformCertificateInfo::PlatformCertificateInfo):
20848         (WebKit::PlatformCertificateInfo::encode):
20849         (WebKit::PlatformCertificateInfo::decode):
20850         * Shared/gtk/WebCoreArgumentCodersGtk.cpp: Added. Stubbed implementation for GTK port. Yet to implement.
20851         (CoreIPC::encodeResourceRequest):
20852         (CoreIPC::decodeResourceRequest):
20853         * UIProcess/Plugins/gtk: Added.
20854         * UIProcess/Plugins/gtk/PluginInfoStoreGtk.cpp: Added.  Stubbed implementation for GTK port. Yet to implement.
20855         (WebKit::PluginInfoStore::pluginsDirectories):
20856         (WebKit::PluginInfoStore::pluginPathsInDirectory):
20857         (WebKit::PluginInfoStore::individualPluginPaths):
20858         (WebKit::PluginInfoStore::getPluginInfo):
20859         (WebKit::PluginInfoStore::shouldUsePlugin):
20860         * WebProcess/InjectedBundle/InjectedBundle.h:
20861         * WebProcess/InjectedBundle/gtk: Added.
20862         * WebProcess/InjectedBundle/gtk/InjectedBundleGtk.cpp: Added. Stubbed implementation for GTK port. Yet to implement.
20863         (WebKit::InjectedBundle::load):
20864         (WebKit::InjectedBundle::activateMacFontAscentHack):
20865         * WebProcess/Plugins/Netscape/gtk: Added.
20866         * WebProcess/Plugins/Netscape/gtk/NetscapePluginGtk.cpp: Added.  Stubbed implementation for GTK port. Yet to implement.
20867         (WebKit::NetscapePlugin::platformPostInitialize):
20868         (WebKit::NetscapePlugin::platformDestroy):
20869         (WebKit::NetscapePlugin::platformGeometryDidChange):
20870         (WebKit::NetscapePlugin::platformPaint):
20871         (WebKit::toNP):
20872         (WebKit::NetscapePlugin::platformHandleMouseEvent):
20873         (WebKit::NetscapePlugin::platformHandleWheelEvent):
20874         (WebKit::NetscapePlugin::platformSetFocus):
20875         (WebKit::NetscapePlugin::platformHandleMouseEnterEvent):
20876         (WebKit::NetscapePlugin::platformHandleMouseLeaveEvent):
20877         (WebKit::NetscapePlugin::platformHandleKeyboardEvent):
20878         * WebProcess/WebCoreSupport/gtk: Added.
20879         * WebProcess/WebCoreSupport/gtk/WebFrameNetworkingContext.h: Added. Added. Stubbed implementation for GTK port. Yet to implement.
20880         (WebFrameNetworkingContext::create):
20881         (WebFrameNetworkingContext::WebFrameNetworkingContext):
20882
20883 2010-11-02  Jing Jin  <jjin@apple.com>
20884
20885         Reviewed by Alexey Proskuryakov.
20886
20887         Key down calls are not being sent to the application.
20888         https://bugs.webkit.org/show_bug.cgi?id=48867
20889
20890         * UIProcess/API/mac/WKView.mm:
20891         (-[WKView keyDown:]): Call super when ignoring a key down.
20892
20893 2010-11-02  Anders Carlsson  <andersca@apple.com>
20894
20895         Reviewed by John Sullivan.
20896
20897         Add Null and Int32 to NPVariantData
20898         https://bugs.webkit.org/show_bug.cgi?id=48887
20899
20900         * Shared/Plugins/NPRemoteObjectMap.cpp:
20901         (WebKit::NPRemoteObjectMap::npVariantToNPVariantData):
20902         (WebKit::NPRemoteObjectMap::npVariantDataToNPVariant):
20903         * Shared/Plugins/NPVariantData.cpp:
20904         (WebKit::NPVariantData::NPVariantData):
20905         (WebKit::NPVariantData::makeNull):
20906         (WebKit::NPVariantData::makeInt32):
20907         (WebKit::NPVariantData::encode):
20908         (WebKit::NPVariantData::decode):
20909         * Shared/Plugins/NPVariantData.h:
20910         (WebKit::NPVariantData::int32Value):
20911
20912 2010-11-02  Anders Carlsson  <andersca@apple.com>
20913
20914         Reviewed by Adam Roben.
20915
20916         Add support for NP_HasMethod and NP_Invoke
20917         https://bugs.webkit.org/show_bug.cgi?id=48882
20918
20919         * Platform/CoreIPC/HandleMessage.h:
20920         (CoreIPC::callMemberFunction):
20921         Add new overload.
20922
20923         * Shared/Plugins/NPObjectMessageReceiver.cpp:
20924         (WebKit::NPObjectMessageReceiver::hasMethod):
20925         Call hasMethod and return the result.
20926
20927         (WebKit::NPObjectMessageReceiver::invoke):
20928         Convert the arguments, call invoke and return the result.
20929
20930         (WebKit::NPObjectMessageReceiver::getProperty):
20931         Release the converted variant.
20932
20933         * Shared/Plugins/NPObjectMessageReceiver.messages.in:
20934         Add HasMethod and Invoke messages.
20935         
20936         * Shared/Plugins/NPObjectProxy.cpp:
20937         (WebKit::NPObjectProxy::hasMethod):
20938         Send the HasMethod message.
20939
20940         (WebKit::NPObjectProxy::invoke):
20941         Send the Invoke message.
20942
20943         (WebKit::NPObjectProxy::NP_HasMethod):
20944         Call hasMethod.
20945
20946         (WebKit::NPObjectProxy::NP_Invoke):
20947         Call invoke.
20948
20949 2010-11-02  Anders Carlsson  <andersca@apple.com>
20950
20951         Reviewed by Sam Weinig.
20952
20953         Implement NP_HasProperty for NPObjectProxy
20954         https://bugs.webkit.org/show_bug.cgi?id=48876
20955
20956         * Shared/Plugins/NPObjectMessageReceiver.cpp:
20957         (WebKit::NPObjectMessageReceiver::hasProperty):
20958         Call The hasProperty callback function.
20959
20960         * Shared/Plugins/NPObjectMessageReceiver.messages.in:
20961         Add HasProperty message.
20962
20963         * Shared/Plugins/NPObjectProxy.cpp:
20964         (WebKit::NPObjectProxy::hasProperty):
20965         Send the HasProperty message.
20966
20967         (WebKit::NPObjectProxy::NP_HasProperty):
20968         Call hasProperty.
20969
20970
20971 2010-11-02  Sam Weinig  <sam@webkit.org>
20972
20973         Reviewed by Anders Carlsson.
20974
20975         Add a way to send startup messages on the context which can be posted when a process launches
20976         <rdar://problem/8617928>
20977         https://bugs.webkit.org/show_bug.cgi?id=48838
20978
20979         Adds WKContextSetInitializationUserDataForInjectedBundle which sets an
20980         APIObject on WebContext to be sent to the InjectedBundle's WKBundleInitialize
20981         function each time a process starts up. This can help in cases where
20982         the WebProcess dies, and will be helpful in the world where there are
20983         multiple WebProcess's per context.
20984
20985         * Scripts/webkit2/messages.py:
20986         * UIProcess/API/C/WKContext.cpp:
20987         (WKContextSetInitializationUserDataForInjectedBundle):
20988         * UIProcess/API/C/WKContext.h:
20989         * UIProcess/WebContext.cpp:
20990         (WebKit::WebContext::ensureWebProcess):
20991         * UIProcess/WebContext.h:
20992         (WebKit::WebContext::setInjectedBundleInitializationUserData):
20993         (WebKit::WebContext::injectedBundleInitializationUserData):
20994         * WebProcess/InjectedBundle/API/c/WKBundleInitialize.h:
20995         * WebProcess/InjectedBundle/InjectedBundle.h:
20996         * WebProcess/InjectedBundle/mac/InjectedBundleMac.cpp:
20997         (WebKit::InjectedBundle::load):
20998         * WebProcess/InjectedBundle/qt/InjectedBundleQt.cpp:
20999         (WebKit::InjectedBundle::load):
21000         * WebProcess/InjectedBundle/win/InjectedBundleWin.cpp:
21001         (WebKit::InjectedBundle::load):
21002         * WebProcess/WebProcess.cpp:
21003         (WebKit::WebProcess::initializeWebProcess):
21004         * WebProcess/WebProcess.h:
21005         * WebProcess/WebProcess.messages.in:
21006
21007 2010-11-02  Anders Carlsson  <andersca@apple.com>
21008
21009         Reviewed by Sam Weinig.
21010
21011         Implement PluginProxy::pluginScriptableNPObject
21012         https://bugs.webkit.org/show_bug.cgi?id=48874
21013
21014         * PluginProcess/PluginControllerProxy.cpp:
21015         (WebKit::PluginControllerProxy::getPluginScriptableNPObject):
21016         Ask the plug-in for its scriptable NPObject, register it with the map and return its object ID.
21017
21018         * PluginProcess/PluginControllerProxy.messages.in:
21019         Add GetPluginScriptableNPObject message.
21020
21021         * WebProcess/Plugins/PluginProxy.cpp:
21022         (WebKit::PluginProxy::pluginScriptableNPObject):
21023         Send the GetPluginScriptableNPObject message.
21024
21025 2010-11-02  Anders Carlsson  <andersca@apple.com>
21026
21027         Reviewed by Dan Bernstein.
21028
21029         Add strings to NPVariantData
21030         https://bugs.webkit.org/show_bug.cgi?id=48871
21031
21032         * Shared/Plugins/NPRemoteObjectMap.cpp:
21033         (WebKit::NPRemoteObjectMap::npVariantToNPVariantData):
21034         (WebKit::NPRemoteObjectMap::npVariantDataToNPVariant):
21035         * Shared/Plugins/NPVariantData.cpp:
21036         (WebKit::NPVariantData::makeString):
21037         (WebKit::NPVariantData::encode):
21038         (WebKit::NPVariantData::decode):
21039         * Shared/Plugins/NPVariantData.h:
21040         (WebKit::NPVariantData::stringValue):
21041
21042 2010-11-02  Anders Carlsson  <andersca@apple.com>
21043
21044         Reviewed by Dan Bernstein.
21045
21046         Add convenience functions for allocating NPAPI memory
21047         https://bugs.webkit.org/show_bug.cgi?id=48870
21048
21049         Add npnMemAlloc, npnMemFree and createNPString functions and 
21050         npnMemNew, npnMemNewArray function templates.
21051
21052         * WebProcess/Plugins/Netscape/JSNPObject.cpp:
21053         (WebKit::JSNPObject::getOwnPropertyNames):
21054         Use npnMemFree.
21055
21056         * WebProcess/Plugins/Netscape/NPJSObject.cpp:
21057         (WebKit::NPJSObject::enumerate):
21058         Use npnMemNewArray.
21059
21060         * WebProcess/Plugins/Netscape/NPRuntimeObjectMap.cpp:
21061         (WebKit::NPRuntimeObjectMap::convertJSValueToNPVariant):
21062         Use createNPString.
21063
21064         * WebProcess/Plugins/Netscape/NPRuntimeUtilities.cpp:
21065         (WebKit::npnMemAlloc):
21066         Call malloc.
21067
21068         (WebKit::npnMemFree):
21069         Call free.
21070
21071         (WebKit::createNPString):
21072         Allocate the characters for a new NPString.
21073
21074         (WebKit::createNPObject):
21075         Call npnMemNew.
21076
21077         (WebKit::deallocateNPObject):
21078         Call npnMemFree.
21079
21080         (WebKit::releaseNPVariantValue):
21081         Call npnMemFree.
21082
21083         * WebProcess/Plugins/Netscape/NPRuntimeUtilities.h:
21084         (WebKit::npnMemNew):
21085         (WebKit::npnMemNewArray):
21086         Add new functions.
21087
21088         * WebProcess/Plugins/Netscape/NetscapeBrowserFuncs.cpp:
21089         (WebKit::NPN_MemAlloc):
21090         Call npnMemAlloc.
21091
21092         (WebKit::NPN_MemFree):
21093         Call npnMemFree.
21094
21095         (WebKit::NPN_UTF8FromIdentifier):
21096         Call npnMemNewArray.
21097
21098         (WebKit::copyCString):
21099         Call npnMemNewArray. Correctly initialize the "len" out parameter.
21100
21101 2010-11-02  Jessie Berlin  <jberlin@apple.com>
21102
21103         Windows build fix. Unreviewed.
21104
21105         * win/WebKit2Generated.make:
21106         Add WKInspector.h so that it is copied over to the WebKitBuild directory.
21107
21108 2010-11-02  Anders Carlsson  <andersca@apple.com>
21109
21110         Reviewed by Adam Roben.
21111
21112         Add some support for remote and local NPObjects to NPRemoteObjectMap
21113         https://bugs.webkit.org/show_bug.cgi?id=48864
21114
21115         * Shared/Plugins/NPRemoteObjectMap.cpp:
21116         (WebKit::NPRemoteObjectMap::npVariantToNPVariantData):
21117         If the NPVariant contains an NPObject that isn't an NPObjectProxy, register it
21118         and return its ID.
21119
21120         (WebKit::NPRemoteObjectMap::npVariantDataToNPVariant):
21121         If the NPVariantData contains a remote object, create an NPObjectProxy and return it.
21122
21123         * Shared/Plugins/NPVariantData.cpp:
21124         (WebKit::NPVariantData::NPVariantData):
21125         Initialize m_localNPObjectIDValue and m_remoteNPObjectIDValue.
21126
21127         (WebKit::NPVariantData::makeLocalNPObjectID):
21128         Create an NPVariantData that contains a local NPObject ID.
21129
21130         (WebKit::NPVariantData::encode):
21131         Handle local and remote NPObject IDs.
21132
21133         (WebKit::NPVariantData::decode):
21134         Decode local and remote NPObject IDs and "swap them" so an encoded remote NPObject ID is
21135         decoded as a local NPObjectID (and vice versa).
21136
21137         * Shared/Plugins/NPVariantData.h:
21138         (WebKit::NPVariantData::localNPObjectIDValue):
21139         (WebKit::NPVariantData::remoteNPObjectIDValue):
21140
21141 2010-11-02  Anders Carlsson  <andersca@apple.com>
21142
21143         Attempt to fix a GCC release only warning.
21144
21145         * Shared/Plugins/NPVariantData.cpp:
21146         (WebKit::NPVariantData::NPVariantData):
21147
21148 2010-11-02  Anders Carlsson  <andersca@apple.com>
21149
21150         Reviewed by John Sullivan.
21151
21152         Invalidate the NPRemoteObjectMap
21153         https://bugs.webkit.org/show_bug.cgi?id=48856
21154
21155         * Shared/Plugins/NPObjectMessageReceiver.cpp:
21156         (WebKit::NPObjectMessageReceiver::~NPObjectMessageReceiver):
21157         Remove FIXME. The NPRemoteObjectMap always outlives the NPObjectMessageReceiver.
21158
21159         * Shared/Plugins/NPObjectProxy.cpp:
21160         (WebKit::NPObjectProxy::~NPObjectProxy):
21161         Call npObjectProxyDestroyed here.
21162
21163         (WebKit::NPObjectProxy::invalidate):
21164         Null out m_npRemoteObjectMap.
21165
21166         * Shared/Plugins/NPRemoteObjectMap.cpp:
21167         (WebKit::NPRemoteObjectMap::~NPRemoteObjectMap):
21168         Add assertions.
21169
21170         (WebKit::NPRemoteObjectMap::createNPObjectProxy):
21171         Keep track of the NPObjectProxy by adding it to the m_npObjectProxies set.
21172
21173         (WebKit::NPRemoteObjectMap::npObjectProxyDestroyed):
21174         Remove the NPObjectProxy from the m_npObjectProxies set.
21175
21176         (WebKit::NPRemoteObjectMap::invalidate):
21177         Delete all NPObjectMessageReceivers. Iterate over all NPObjectProxy objects and invalidate them.
21178
21179 2010-11-02  Mike Thole  <mthole@apple.com>
21180
21181         Reviewed by Anders Carlsson.
21182
21183         WebProcessManager informed about crashes too late (pages may have already tried to load a new URL)
21184         https://bugs.webkit.org/show_bug.cgi?id=48853
21185
21186         This also fixes: <rdar://problem/8610451> Webkit2: Crash in WebKit!WebKit::WebProcessProxy::sendMessage opening google.com page
21187
21188         * UIProcess/WebProcessProxy.cpp:
21189         (WebKit::WebProcessProxy::~WebProcessProxy):
21190         Removed invalid assertion that is hit when the WebProcess dies unexpectedly.
21191         (WebKit::WebProcessProxy::didClose):
21192         Reordered so that the individual pages are informed that the processDidCrash() after the shared
21193         WebProcessManager has been. This allows the pages to properly trigger a new process to be launched.
21194
21195 2010-11-02  Enrica Casucci  <enrica@apple.com>
21196
21197         Reviewed by Alexey Proskuryakov.
21198
21199         WebKit2: Repeated cmd-key presses lead to unusable UI state
21200         https://bugs.webkit.org/show_bug.cgi?id=48811
21201         <rdar://problem/8611924>
21202
21203         Given the asynchronous nature of every interaction with the WebProcess,
21204         we could re-send a keyDown event to AppKit that maps to an
21205         action that is currently disabled and therefore will not trigger an action
21206         but a call to the keyDown method of the NSView. We need to detect this
21207         situation to avoid an infinite loop.
21208
21209         * UIProcess/API/mac/WKView.mm:
21210         (-[WKView performKeyEquivalent:]): Delay the release of the last processed event
21211         to the moment we receive another event.
21212         (-[WKView keyDown:]): Added early return in case the event is one we have re-sent.
21213
21214 2010-11-02  Anders Carlsson  <andersca@apple.com>
21215
21216         Reviewed by John Sullivan.
21217
21218         Handle boolean values in NPVariant and NPVariantData
21219         https://bugs.webkit.org/show_bug.cgi?id=48852
21220
21221         * Shared/Plugins/NPRemoteObjectMap.cpp:
21222         (WebKit::NPRemoteObjectMap::npVariantToNPVariantData):
21223         (WebKit::NPRemoteObjectMap::npVariantDataToNPVariant):
21224         * Shared/Plugins/NPVariantData.cpp:
21225         (WebKit::NPVariantData::makeBool):
21226         (WebKit::NPVariantData::encode):
21227         (WebKit::NPVariantData::decode):
21228         * Shared/Plugins/NPVariantData.h:
21229         (WebKit::NPVariantData::boolValue):
21230
21231 2010-11-02  Anders Carlsson  <andersca@apple.com>
21232
21233         Reviewed by John Sullivan.
21234
21235         Assertion hit in WebProcessProxy::~WebProcessProxy()
21236         https://bugs.webkit.org/show_bug.cgi?id=48849
21237         <rdar://problem/8617676>
21238
21239         It is perfectly valid for the page map to contain pages if the web process proxy
21240         goes away, this can happen if the process crashes for example.
21241
21242         * UIProcess/WebProcessProxy.cpp:
21243         (WebKit::WebProcessProxy::~WebProcessProxy):
21244         Remove the assertion.
21245
21246 2010-11-02  Christian Sejersen  <christian.webkit@gmail.com>
21247
21248         Reviewed by Andreas Kling.
21249
21250         The previous patch only took into account arm targets. This one
21251         now checks whether the build is done inside Scratchbox.
21252         https://bugs.webkit.org/show_bug.cgi?id=47895
21253
21254         * DerivedSources.pro:
21255
21256 2010-11-02  Anders Carlsson  <andersca@apple.com>
21257
21258         Reviewed by Adam Roben.
21259
21260         More NPRuntime work
21261         https://bugs.webkit.org/show_bug.cgi?id=48847
21262
21263         * PluginProcess/WebProcessConnection.cpp:
21264         (WebKit::WebProcessConnection::~WebProcessConnection):
21265         Add assertions.
21266
21267         (WebKit::WebProcessConnection::removePluginControllerProxy):
21268         If we have no more plug-in controller proxies, invalidate the remote object map.
21269
21270         * Shared/Plugins/NPIdentifierData.cpp:
21271         (WebKit::NPIdentifierData::createNPIdentifier):
21272         Create an NPIdentifier from the given NPIdentifierData.
21273
21274         * Shared/Plugins/NPObjectMessageReceiver.cpp:
21275         (WebKit::NPObjectMessageReceiver::create):
21276         (WebKit::NPObjectMessageReceiver::NPObjectMessageReceiver):
21277         This now takes the NPRemoteObjectMap as well as the npObjectID of the object.
21278
21279         (WebKit::NPObjectMessageReceiver::~NPObjectMessageReceiver):
21280         Unregister the object.
21281
21282         (WebKit::NPObjectMessageReceiver::deallocate):
21283         Delete the object.
21284
21285         (WebKit::NPObjectMessageReceiver::getProperty):
21286         Ask the NPObject for the property and convert it back to an NPVariantData.
21287
21288         * Shared/Plugins/NPObjectProxy.cpp:
21289         (WebKit::NPObjectProxy::~NPObjectProxy):
21290         Send a Deallocate message to the corresponding message receiver on the other side.
21291
21292         (WebKit::NPObjectProxy::getProperty):
21293         Convert the NPVariantData back to an NPVariant and return it.
21294
21295         * Shared/Plugins/NPRemoteObjectMap.cpp:
21296         (WebKit::NPRemoteObjectMap::registerNPObject):
21297         Pass the NPRemoteObjectMap and the npObjectID to NPObjectMessageReceiver::create.
21298
21299         (WebKit::NPRemoteObjectMap::unregisterNPObject):
21300         Remove the given object from the map of registered objects.
21301
21302         (WebKit::NPRemoteObjectMap::npVariantToNPVariantData):
21303         Given an NPVariant, create an NPVariantData. Only supports void and double types right now.
21304
21305         (WebKit::NPRemoteObjectMap::npVariantDataToNPVariant):
21306         Given an NPVariantData, create an NPVariant. Only supports void and double types right now.
21307
21308         (WebKit::NPRemoteObjectMap::invalidate):
21309         Add stub.
21310
21311         * Shared/Plugins/NPVariantData.cpp:
21312         (WebKit::NPVariantData::NPVariantData):
21313         Set the type to void by default.
21314
21315         (WebKit::NPVariantData::makeVoid):
21316         Return a void NPVariantData.
21317
21318         (WebKit::NPVariantData::makeDouble):
21319         Return an NPVariantData that contains a double value.
21320
21321         (WebKit::NPVariantData::encode):
21322         Encode the NPVariantData.
21323
21324         (WebKit::NPVariantData::decode):
21325         Decode the NPVariantData.
21326
21327         * Shared/Plugins/NPVariantData.h:
21328         (WebKit::NPVariantData::type):
21329         Return the type of the NPVariantData.
21330
21331         (WebKit::NPVariantData::doubleValue):
21332         Return the double value of the NPVariantData.
21333         
21334         * UIProcess/WebProcessProxy.cpp:
21335         (WebKit::WebProcessProxy::didClose):
21336         Use nullptr instead of 0.
21337
21338         * WebProcess/Plugins/PluginProcessConnection.cpp:
21339         (WebKit::PluginProcessConnection::~PluginProcessConnection):
21340         Assert that the connection and the remote object map are both null.
21341
21342         (WebKit::PluginProcessConnection::removePluginProxy):
21343         If this was the last plug-in proxy, invalidate the remote object map.
21344
21345         * WebProcess/WebProcess.cpp:
21346         (WebKit::WebProcess::shutdown):
21347         Use nullptr instead of 0.
21348
21349 2010-11-02  Balazs Kelemen  <kbalazs@webkit.org>
21350
21351         Unreviewed Qt buildfix.
21352
21353         * DerivedSources.pro: Add WebInspector to the list of
21354         message recievers.
21355
21356 2010-11-02  Balazs Kelemen  <kbalazs@webkit.org>
21357
21358         Reviewed by Andreas Kling.
21359
21360         [Qt][WK2] SharedMemory is broken
21361         https://bugs.webkit.org/show_bug.cgi?id=48520
21362
21363         Implement SharedMemory with QSharedMemory to correctly handle
21364         ownership and to avoid extra allocation for page size requests.
21365         * Platform/SharedMemory.h:
21366         * Platform/qt/SharedMemoryQt.cpp:
21367         (WebKit::SharedMemory::Handle::Handle):
21368         (WebKit::SharedMemory::Handle::isNull):
21369         (WebKit::SharedMemory::Handle::encode):
21370         (WebKit::SharedMemory::Handle::decode):
21371         (WebKit::createUniqueKey):
21372         (WebKit::SharedMemory::create):
21373         (WebKit::accessMode):
21374         (WebKit::SharedMemory::~SharedMemory):
21375         (WebKit::SharedMemory::createHandle):
21376
21377 2010-11-02  Timothy Hatcher  <timothy@apple.com>
21378
21379         Add WKInspector public APIs.
21380
21381         https://webkit.org/b/48718
21382
21383         Reviewed by Pavel Feldman.
21384
21385         * DerivedSources.make: Added WebInspector to MESSAGE_RECEIVERS section.
21386         * UIProcess/API/C/WKInspector.cpp:
21387         (WKInspectorIsVisible): Added.
21388         (WKInspectorShow): Added.
21389         (WKInspectorClose): Added.
21390         (WKInspectorShowConsole): Added.
21391         (WKInspectorIsAttached): Added.
21392         (WKInspectorAttach): Added.
21393         (WKInspectorDetach): Added.
21394         (WKInspectorIsDebuggingJavaScript): Added.
21395         (WKInspectorToggleJavaScriptDebugging): Added.
21396         (WKInspectorIsProfilingJavaScript): Added.
21397         (WKInspectorToggleJavaScriptProfiling): Added.
21398         (WKInspectorIsProfilingPage): Added.
21399         (WKInspectorTogglePageProfiling): Added.
21400         * UIProcess/API/C/WKInspector.h: Added new functions.
21401         * UIProcess/WebInspectorProxy.cpp:
21402         (WebKit::WebInspectorProxy::WebInspectorProxy): Initialize new booleans.
21403         (WebKit::WebInspectorProxy::invalidate): Reset new booleans.
21404         (WebKit::WebInspectorProxy::show): Added.
21405         (WebKit::WebInspectorProxy::close): Added.
21406         (WebKit::WebInspectorProxy::showConsole): Added.
21407         (WebKit::WebInspectorProxy::attach): Added.
21408         (WebKit::WebInspectorProxy::detach): Added.
21409         (WebKit::WebInspectorProxy::toggleJavaScriptDebugging): Added.
21410         (WebKit::WebInspectorProxy::toggleJavaScriptProfiling): Added.
21411         (WebKit::WebInspectorProxy::togglePageProfiling): Added.
21412         * UIProcess/WebInspectorProxy.h:
21413         (WebKit::WebInspectorProxy::isVisible): Added.
21414         (WebKit::WebInspectorProxy::isAttached): Added.
21415         (WebKit::WebInspectorProxy::isDebuggingJavaScript): Added.
21416         (WebKit::WebInspectorProxy::isProfilingJavaScript): Added.
21417         (WebKit::WebInspectorProxy::isProfilingPage): Added.
21418         * UIProcess/WebPageProxy.cpp:
21419         (WebKit::WebPageProxy::close): Invalidate the WebInspectorProxy.
21420         (WebKit::WebPageProxy::inspector): Return 0 if closed or invalid.
21421         * WebKit2.pro: Added new files.
21422         * WebKit2.xcodeproj/project.pbxproj: Added new Files.
21423         * WebProcess/WebPage/WebInspector.cpp:
21424         (WebKit::WebInspector::show): Added.
21425         (WebKit::WebInspector::close): Added.
21426         (WebKit::WebInspector::showConsole): Added.
21427         (WebKit::WebInspector::startJavaScriptDebugging): Added.
21428         (WebKit::WebInspector::stopJavaScriptDebugging): Added.
21429         (WebKit::WebInspector::startJavaScriptProfiling): Added.
21430         (WebKit::WebInspector::stopJavaScriptProfiling): Added.
21431         (WebKit::WebInspector::startPageProfiling): Added.
21432         (WebKit::WebInspector::stopPageProfiling): Added.
21433         * WebProcess/WebPage/WebInspector.h:
21434         (WebKit::WebInspector::page): Added.
21435         * WebProcess/WebPage/WebInspector.messages.in: Added.
21436         * WebProcess/WebPage/WebPage.cpp:
21437         (WebKit::WebPage::close): Destroy the WebInspector.
21438         (WebKit::WebPage::inspector): Return 0 if closed.
21439         (WebKit::WebPage::didReceiveMessage): Send the message to the WebInspector
21440         if the message class is MessageClassWebInspector.
21441         * win/WebKit2.vcproj: Added new files.
21442
21443 2010-11-02  Timothy Hatcher  <timothy@apple.com>
21444
21445         Make WebInspectorFrontendClient inherit from InspectorFrontendClientLocal.
21446
21447         We can do this since the Web Inspector WebPage will share the same process
21448         with the inspected WebPage.
21449
21450         https://webkit.org/b/48652
21451
21452         Reviewed by Pavel Feldman.
21453
21454         * WebProcess/WebCoreSupport/WebInspectorFrontendClient.cpp:
21455         (WebKit::WebInspectorFrontendClient::WebInspectorFrontendClient):
21456         Call the InspectorFrontendClientLocal constructor.
21457         (WebKit::WebInspectorFrontendClient::attachWindow): Added.
21458         (WebKit::WebInspectorFrontendClient::detachWindow): Added.
21459         (WebKit::WebInspectorFrontendClient::setAttachedWindowHeight): Added.
21460         * WebProcess/WebCoreSupport/WebInspectorFrontendClient.h:
21461
21462 2010-11-01  Juha Savolainen  <juha.savolainen@weego.fi>
21463
21464         Reviewed by Kenneth Rohde Christiansen.
21465
21466         Initial implementation of QWKHistoryItem.
21467         https://bugs.webkit.org/show_bug.cgi?id=48620
21468
21469         The QWkHistoryItem represents one item in the history of QWKPage.
21470
21471         * UIProcess/API/qt/qwkhistory.cpp:
21472         (QWKHistoryItemPrivate::QWKHistoryItemPrivate):
21473         (QWKHistoryItem::QWKHistoryItem):
21474         (QWKHistoryItem::~QWKHistoryItem):
21475         (QWKHistoryItem::title): The page title
21476         (QWKHistoryItem::url): The URL of the page.
21477         (QWKHistoryItem::originalUrl): The URL used to access the page.
21478         * UIProcess/API/qt/qwkhistory.h:
21479         * UIProcess/API/qt/qwkhistory_p.h:
21480         * WebKit2.pro: Added WKBackForwardListItem.h and WKBackForwardListItem.cpp
21481
21482 2010-11-01  Anders Carlsson  <andersca@apple.com>
21483
21484         Reviewed by Oliver Hunt.
21485
21486         Make NPRemoteObjectMap a ref counted object
21487         https://bugs.webkit.org/show_bug.cgi?id=48808
21488
21489         * PluginProcess/PluginControllerProxy.cpp:
21490         (WebKit::PluginControllerProxy::windowScriptNPObject):
21491         * PluginProcess/WebProcessConnection.cpp:
21492         (WebKit::WebProcessConnection::WebProcessConnection):
21493         (WebKit::WebProcessConnection::didReceiveSyncMessage):
21494         * PluginProcess/WebProcessConnection.h:
21495         (WebKit::WebProcessConnection::npRemoteObjectMap):
21496         * Shared/Plugins/NPRemoteObjectMap.cpp:
21497         (WebKit::NPRemoteObjectMap::create):
21498         (WebKit::NPRemoteObjectMap::~NPRemoteObjectMap):
21499         (WebKit::NPRemoteObjectMap::createNPObjectProxy):
21500         * Shared/Plugins/NPRemoteObjectMap.h:
21501         * WebProcess/Plugins/PluginProcessConnection.cpp:
21502         (WebKit::PluginProcessConnection::PluginProcessConnection):
21503         (WebKit::PluginProcessConnection::didReceiveSyncMessage):
21504         * WebProcess/Plugins/PluginProcessConnection.h:
21505         (WebKit::PluginProcessConnection::npRemoteObjectMap):
21506         * WebProcess/Plugins/PluginProxy.cpp:
21507         (WebKit::PluginProxy::getWindowScriptNPObject):
21508
21509 2010-11-01  Anders Carlsson  <andersca@apple.com>
21510
21511         Reviewed by John Sullivan.
21512
21513         Respond to NP_GetProperty by sending a GetProperty message
21514         https://bugs.webkit.org/show_bug.cgi?id=48797
21515
21516         * Platform/CoreIPC/HandleMessage.h:
21517         (CoreIPC::callMemberFunction):
21518         Add new sync message overload.
21519
21520         * PluginProcess/WebProcessConnection.cpp:
21521         (WebKit::WebProcessConnection::didReceiveSyncMessage):
21522         If the message class is MessageClassNPObjectMessageReceiver, pass it to the NPRemoteObjectMap.
21523
21524         * Shared/Plugins/NPIdentifierData.cpp:
21525         * Shared/Plugins/NPIdentifierData.h:
21526         Add NPIdentifierData, a CoreIPC representation of an NPIdentifier.
21527
21528         * Shared/Plugins/NPObjectMessageReceiver.cpp:
21529         (WebKit::NPObjectMessageReceiver::getProperty):
21530         Add stub.
21531
21532         * Shared/Plugins/NPObjectMessageReceiver.messages.in:
21533         Add GetProperty.
21534
21535         * Shared/Plugins/NPObjectProxy.cpp:
21536         (WebKit::NPObjectProxy::create):
21537         (WebKit::NPObjectProxy::NPObjectProxy):
21538         (WebKit::NPObjectProxy::initialize):
21539         NPObjectProxy now takes an NPRemoteObjectMap in its create function.
21540
21541         (WebKit::NPObjectProxy::getProperty):
21542         Send a GetProperty message.
21543
21544         (WebKit::NPObjectProxy::NP_GetProperty):
21545         Call getProperty.
21546
21547         * Shared/Plugins/NPRemoteObjectMap.cpp:
21548         (WebKit::NPRemoteObjectMap::createNPObjectProxy):
21549         Pass the NPRemoteObjectMap.
21550
21551         (WebKit::NPRemoteObjectMap::didReceiveSyncMessage):
21552         Find the right message receiver and dispatch the message to it.
21553
21554         * Shared/Plugins/NPVariantData.cpp:
21555         * Shared/Plugins/NPVariantData.h:
21556         Add NPVariantData, which will be a CoreIPC representation of an NPVariant.
21557         
21558         * WebKit2.xcodeproj/project.pbxproj:
21559         Add new files.
21560
21561         * WebProcess/Plugins/PluginProcessConnection.cpp:
21562         (WebKit::PluginProcessConnection::didReceiveSyncMessage):
21563         If the message class is MessageClassNPObjectMessageReceiver, pass it to the NPRemoteObjectMap.
21564
21565 2010-11-01  Anders Carlsson  <andersca@apple.com>
21566
21567         Reviewed by Sam Weinig.
21568
21569         Add ArgumentCoder specialization for WTF::CString
21570         https://bugs.webkit.org/show_bug.cgi?id=48796
21571
21572         * Platform/CoreIPC/ArgumentCoders.h:
21573
21574 2010-11-01  Anders Carlsson  <andersca@apple.com>
21575
21576         Fix build.
21577
21578         * WebKit2.xcodeproj/project.pbxproj:
21579
21580 2010-11-01  Anders Carlsson  <andersca@apple.com>
21581
21582         Reviewed by Adam Roben.
21583
21584         Add NPObjectMessageReceiver.messages.in
21585         https://bugs.webkit.org/show_bug.cgi?id=48782
21586
21587         * DerivedSources.make:
21588         Add NPObjectMessageReceiver.
21589
21590         * Platform/CoreIPC/MessageID.h:
21591         Add MessageClassNPObjectMessageReceiver message class.
21592
21593         * Shared/Plugins/NPObjectMessageReceiver.cpp:
21594         (WebKit::NPObjectMessageReceiver::deallocate):
21595         Add stubbed out deallocate member function.
21596
21597         * Shared/Plugins/NPObjectMessageReceiver.messages.in: Added.
21598
21599         * WebKit2.xcodeproj/project.pbxproj:
21600         Add NPObjectMessageReceiver.messages.in.
21601
21602 2010-11-01  Anders Carlsson  <andersca@apple.com>
21603
21604         Reviewed by Adam Roben.
21605
21606         Start stubbing out NPClass functions in NPObjectProxy
21607         https://bugs.webkit.org/show_bug.cgi?id=48778
21608
21609         * PluginProcess/PluginControllerProxy.cpp:
21610         (WebKit::PluginControllerProxy::windowScriptNPObject):
21611         getOrCreateNPObjectProxy is now createNPObjectProxy.
21612
21613         * Shared/Plugins/NPObjectProxy.cpp:
21614         (WebKit::NPObjectProxy::create):
21615         Allocate and initialize an NPObjectProxy object.
21616
21617         (WebKit::NPObjectProxy::NPObjectProxy):
21618         Initialize m_npObjectID to 0.
21619
21620         (WebKit::NPObjectProxy::isNPObjectProxy):
21621         Check the class.
21622
21623         (WebKit::NPObjectProxy::initialize):
21624         Set m_npObjectID.
21625
21626         (WebKit::NPObjectProxy::npClass):
21627         Return the NPClass with all functions filled in.
21628
21629         (WebKit::NPObjectProxy::NP_Allocate):
21630         Create a new NPObjectProxy object.
21631
21632         (WebKit::NPObjectProxy::NP_Deallocate):
21633         Deallocate the NPObjectProxy object.
21634
21635         (WebKit::NPObjectProxy::NP_HasMethod):
21636         (WebKit::NPObjectProxy::NP_Invoke):
21637         (WebKit::NPObjectProxy::NP_InvokeDefault):
21638         (WebKit::NPObjectProxy::NP_HasProperty):
21639         (WebKit::NPObjectProxy::NP_GetProperty):
21640         (WebKit::NPObjectProxy::NP_SetProperty):
21641         (WebKit::NPObjectProxy::NP_RemoveProperty):
21642         (WebKit::NPObjectProxy::NP_Enumerate):
21643         (WebKit::NPObjectProxy::NP_Construct):
21644         Add stubs.
21645
21646         * Shared/Plugins/NPRemoteObjectMap.cpp:
21647         (WebKit::NPRemoteObjectMap::createNPObjectProxy):
21648         * Shared/Plugins/NPRemoteObjectMap.h:
21649         Rename getOrCreateNPObjectProxy to createNPObjectProxy.
21650
21651         * WebProcess/Plugins/Netscape/NPJSObject.cpp:
21652         (WebKit::NPJSObject::NP_Allocate):
21653         Remove unused parameter.
21654
21655 2010-11-01  Anders Carlsson  <andersca@apple.com>
21656
21657         Reviewed by Adam Roben.
21658
21659         Both the WebProcessConnection and PluginProcessConnection should have NPRemoteObjectMaps
21660         https://bugs.webkit.org/show_bug.cgi?id=48775
21661
21662         * PluginProcess/PluginControllerProxy.cpp:
21663         (WebKit::PluginControllerProxy::windowScriptNPObject):
21664         Ask for an NPObjectProxy for the window script NPObject.
21665
21666         * PluginProcess/WebProcessConnection.cpp:
21667         (WebKit::WebProcessConnection::WebProcessConnection):
21668         Initialize m_npRemoteObjectMap.
21669
21670         * Shared/Plugins/NPObjectMessageReceiver.cpp:
21671         (WebKit::NPObjectMessageReceiver::create):
21672         Add a create member function that takes an NPObject.
21673
21674         (WebKit::NPObjectMessageReceiver::NPObjectMessageReceiver):
21675         Retain the NPObject.
21676
21677         (WebKit::NPObjectMessageReceiver::~NPObjectMessageReceiver):
21678         Release the NPObject.
21679
21680         * Shared/Plugins/NPRemoteObjectMap.cpp:
21681         (WebKit::generateNPObjectID):
21682         Generate a unique 64-bit NPObject ID.
21683
21684         (WebKit::NPRemoteObjectMap::getOrCreateNPObjectProxy):
21685         Add stub.
21686
21687         (WebKit::NPRemoteObjectMap::registerNPObject):
21688         Create a NPObjectMessageReceiver and add it to the map.
21689
21690         * WebKit2.xcodeproj/project.pbxproj:
21691         Set the correct target for NPRuntime related files.
21692
21693         * WebProcess/Plugins/PluginProcessConnection.cpp:
21694         (WebKit::PluginProcessConnection::PluginProcessConnection):
21695         Initialize m_npRemoteObjectMap
21696
21697         * WebProcess/Plugins/PluginProxy.cpp:
21698         (WebKit::PluginProxy::getWindowScriptNPObject):
21699         Ask the real plug-in controller for the window script NPObject and register it.
21700
21701 2010-11-01  John Sullivan  <sullivan@apple.com>
21702
21703         Reviewed by Anders Carlsson.
21704
21705         https://bugs.webkit.org/show_bug.cgi?id=48774
21706         minimFontSize preference needs to be exposed in WebKit2
21707
21708         * UIProcess/WebPreferences.cpp:
21709         (WebKit::WebPreferences::setMinimumFontSize):
21710         New function, parallel to existing functions for other preferences.
21711         (WebKit::WebPreferences::minimumFontSize):
21712         Ditto.
21713
21714         * UIProcess/WebPreferences.h:
21715         Declared new function.
21716
21717         * UIProcess/API/C/WKPreferences.cpp:
21718         (WKPreferencesSetMinimumFontSize):
21719         New UI process wrapper for new function.
21720         (WKPreferencesGetMinimumFontSize):
21721         Ditto.
21722
21723         * UIProcess/API/C/WKPreferences.h:
21724         Declared new functions.
21725
21726 2010-11-01  Anders Carlsson  <andersca@apple.com>
21727
21728         Reviewed by John Sullivan.
21729
21730         Tear down the related WebProcessProxy when a WebContext is deallocated
21731         https://bugs.webkit.org/show_bug.cgi?id=48769
21732
21733         * UIProcess/WebContext.cpp:
21734         (WebKit::WebContext::~WebContext):
21735         Call WebProcessManager::contextWasDestroyed.
21736
21737         (WebKit::WebContext::didNavigateWithNavigationData):
21738         (WebKit::WebContext::didPerformClientRedirect):
21739         (WebKit::WebContext::didPerformServerRedirect):
21740         (WebKit::WebContext::didUpdateHistoryTitle):
21741         It is valid for a frame to have a null page here, if the frame has outlived
21742         its page.
21743
21744         * UIProcess/WebProcessManager.cpp:
21745         (WebKit::WebProcessManager::contextWasDestroyed):
21746         Remove the context from the map.
21747
21748         * UIProcess/WebProcessProxy.cpp:
21749         (WebKit::WebProcessProxy::~WebProcessProxy):
21750         It's OK for the connection to be non-null here if the process goes away because
21751         the context has been deallocated.
21752
21753 2010-11-01  Brady Eidson  <beidson@apple.com>
21754
21755         Windows build fix.
21756
21757         * UIProcess/win/WebView.cpp:
21758
21759 2010-11-01  Brady Eidson  <beidson@apple.com>
21760
21761         Reviewed by Anders Carlsson.
21762
21763         <rdar://problem/7660547> and https://bugs.webkit.org/show_bug.cgi?id=48699
21764         Context menu support for WebKit 2.
21765
21766         * WebKit2.pro:
21767         * WebKit2.xcodeproj/project.pbxproj:
21768         * win/WebKit2.vcproj:
21769
21770         * Shared/WebContextMenuItem.cpp: Added.
21771         (WebKit::WebContextMenuItem::WebContextMenuItem):
21772         (WebKit::WebContextMenuItem::encode):
21773         (WebKit::WebContextMenuItem::decode):
21774         (WebKit::kitItems):
21775         * Shared/WebContextMenuItem.h: Added.
21776
21777         * UIProcess/API/mac/PageClientImpl.h:
21778         * UIProcess/API/mac/PageClientImpl.mm:
21779         (WebKit::PageClientImpl::createContextMenuProxy):
21780         * UIProcess/API/qt/qwkpage.cpp:
21781         (QWKPagePrivate::createContextMenuProxy): Stub to keep the build working.
21782         * UIProcess/API/qt/qwkpage_p.h:
21783         * UIProcess/PageClient.h:
21784
21785         * UIProcess/WebContextMenuProxy.cpp: Added.
21786         (WebKit::WebContextMenuProxy::~WebContextMenuProxy):
21787         (WebKit::WebContextMenuProxy::WebContextMenuProxy):
21788         * UIProcess/WebContextMenuProxy.h: Added.
21789
21790         * UIProcess/WebPageProxy.cpp:
21791         (WebKit::WebPageProxy::showContextMenu): Shows the menu after receiving the message from the WebProcess.
21792         (WebKit::WebPageProxy::contextMenuItemSelected): Sends info about the selected menu item to the WebProcess
21793         * UIProcess/WebPageProxy.h:
21794         * UIProcess/WebPageProxy.messages.in:
21795
21796         * UIProcess/mac/WebContextMenuProxyMac.h: Added.
21797         (WebKit::WebContextMenuProxyMac::create):
21798         * UIProcess/mac/WebContextMenuProxyMac.mm: Added.
21799         (+[WebMenuTarget sharedMenuTarget]):
21800         (-[WebMenuTarget WebKit::]):
21801         (-[WebMenuTarget setMenuProxy:WebKit::]):
21802         (-[WebMenuTarget forwardContextMenuAction:]):
21803         (WebKit::WebContextMenuProxyMac::WebContextMenuProxyMac):
21804         (WebKit::WebContextMenuProxyMac::~WebContextMenuProxyMac):
21805         (WebKit::WebContextMenuProxyMac::contextMenuItemSelected):
21806         (WebKit::populateNSMenu):
21807         (WebKit::nsMenuItemVector):
21808         (WebKit::WebContextMenuProxyMac::populate):
21809         (WebKit::WebContextMenuProxyMac::showContextMenu):
21810         (WebKit::WebContextMenuProxyMac::hideContextMenu):
21811
21812         * UIProcess/win/WebView.cpp:
21813         (WebKit::WebView::createContextMenuProxy): Stub for now.
21814         * UIProcess/win/WebView.h:
21815
21816         * WebProcess/WebCoreSupport/WebChromeClient.cpp:
21817         (WebKit::WebChromeClient::showContextMenu):
21818         * WebProcess/WebCoreSupport/WebChromeClient.h:
21819
21820         * WebProcess/WebCoreSupport/WebContextMenuClient.cpp:
21821         (WebKit::WebContextMenuClient::getCustomMenuFromDefaultItems): Return the WebCore-provided default
21822           menu for now. Embedding app customization will come later (see bug 48720)
21823
21824         * WebProcess/WebPage/WebContextMenu.cpp: Added.
21825         (WebKit::WebContextMenu::WebContextMenu):
21826         (WebKit::WebContextMenu::~WebContextMenu):
21827         (WebKit::WebContextMenu::show):
21828         (WebKit::WebContextMenu::itemSelected):
21829         * WebProcess/WebPage/WebContextMenu.h: Added.
21830         (WebKit::WebContextMenu::create):
21831
21832         * WebProcess/WebPage/WebPage.cpp:
21833         (WebKit::WebPage::contextMenu):
21834         (WebKit::handleMouseEvent): Pass right mouse presses along to WebCore as both a mouse event and context menu event, 
21835           the same way WebKit1 does.
21836         (WebKit::WebPage::didSelectItemFromActiveContextMenu):
21837         * WebProcess/WebPage/WebPage.h:
21838         * WebProcess/WebPage/WebPage.messages.in:
21839
21840 2010-11-01  Adam Roben  <aroben@apple.com>
21841
21842         Cancel main resource loads after we hand them off to the media engine
21843
21844         This is the WebKit2 equivalent of r51104. Clearly this code should be
21845         moved to a cross-platform location someday.
21846
21847         Fixes <http://webkit.org/b/48561> <rdar://problem/8606679> Assertion
21848         failure in DocumentLoader::commitData when loading a media document in
21849         WebKit2
21850
21851         Reviewed by Eric Carlson.
21852
21853         * WebProcess/WebCoreSupport/WebErrors.h: Added pluginWillHandleLoadError.
21854
21855         * WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
21856         (WebFrameLoaderClient::committedLoad): Cancel the main resource load
21857         after handing off the load to the media engine. This code originally
21858         came from -[WebHTMLRepresentation receivedData:withDataSource:].
21859         (WebKit::WebFrameLoaderClient::pluginWillHandleLoadError): Call through to WebErrors.
21860         (WebKit::WebFrameLoaderClient::shouldFallBack): Implemented. We fall
21861         back for all errors except when the load was cancelled or we handed it
21862         off to the media engine or a plugin.
21863
21864         * WebProcess/WebCoreSupport/mac/WebErrorsMac.mm:
21865         (WebKit::pluginWillHandleLoadError): Implemented.
21866
21867         * WebProcess/WebCoreSupport/qt/WebErrorsQt.cpp:
21868         (WebKit::pluginWillHandleLoadError): Stubbed out.
21869
21870         * WebProcess/WebCoreSupport/win/WebErrorsWin.cpp:
21871         (WebKit::pluginWillHandleLoadError): Implemented.
21872
21873 2010-11-01  Andreas Kling  <kling@webkit.org>
21874
21875         Reviewed by Kenneth Rohde Christiansen.
21876
21877         [Qt][WK2] Cleanup viewportAttributesForSize API
21878
21879         Change QSize argument to a const QSize&.
21880
21881         * UIProcess/API/qt/qwkpage.cpp:
21882         (QWKPage::viewportAttributesForSize):
21883         * UIProcess/API/qt/qwkpage.h:
21884
21885 2010-10-31  Darin Adler  <darin@apple.com>
21886
21887         Reviewed by Dan Bernstein.
21888
21889         Visited links not populated correctly in new web processes after the first
21890         https://bugs.webkit.org/show_bug.cgi?id=48735
21891         rdar://problem/8442177
21892
21893         * UIProcess/VisitedLinkProvider.cpp:
21894         (WebKit::VisitedLinkProvider::VisitedLinkProvider): Initialize
21895         m_webProcessHasVisitedLinkState.
21896         (WebKit::VisitedLinkProvider::processDidFinishLaunching): Renamed
21897         from populateVisitedLinksIfNeeded. Set m_webProcessHasVisitedLinkState
21898         to false, since this is a new process, and also start the timer
21899         so the visited links messages will be sent.
21900         (WebKit::VisitedLinkProvider::processDidClose): Renamed from
21901         stopVisitedLinksTimer.
21902         (WebKit::VisitedLinkProvider::pendingVisitedLinksTimerFired):
21903         Added logic so we send SetVisitedLinkTable and
21904         AllVisitedLinkStateChanged once to each new process and to set
21905         m_webProcessHasVisitedLinkState to true once that is done.
21906
21907         * UIProcess/VisitedLinkProvider.h: Updated for above changes.
21908
21909         * UIProcess/WebContext.cpp:
21910         (WebKit::WebContext::processDidFinishLaunching): Called
21911         VisitedLinkProvider function under its new name. Also used
21912         ASSERT_UNUSED rather than ASSERT since the argument is used
21913         only for the assertion.
21914         (WebKit::WebContext::processDidClose): Ditto.
21915
21916 2010-10-30  Andreas Kling  <kling@webkit.org>
21917
21918         Reviewed by Kenneth Rohde Christiansen.
21919
21920         [Qt][WK2] Crash in drawUpdateChunkIntoBackingStore
21921         https://bugs.webkit.org/show_bug.cgi?id=48707
21922
21923         UpdateChunk images have to be created using the QImage constructor
21924         that takes a bytesPerLine (stride) value, or the data length won't
21925         match UpdateChunk::size().
21926
21927         * Shared/qt/UpdateChunk.cpp:
21928         (WebKit::UpdateChunk::createImage):
21929
21930 2010-10-29  Daniel Bates  <dbates@rim.com>
21931
21932         No review, rolling out 70971.
21933         http://trac.webkit.org/changeset/70971
21934         https://bugs.webkit.org/show_bug.cgi?id=6751
21935
21936         Rolling out changeset 70971 <http://trac.webkit.org/changeset/70971> since
21937         it caused layout test failures on all bots. In particular, the
21938         child count in a generated frame name differs after this patch. We need
21939         to look into this further.
21940
21941         * WebProcess/WebPage/WebFrame.cpp:
21942         (WebKit::WebFrame::name):
21943
21944 2010-10-29  Daniel Bates  <dbates@rim.com>
21945
21946         Reviewed by Adam Barth.
21947
21948         For unnamed frames, window.name returns a generated name
21949         https://bugs.webkit.org/show_bug.cgi?id=6751
21950
21951         Modified WebKit2 to use FrameTree::uniqueName().
21952
21953         * WebProcess/WebPage/WebFrame.cpp:
21954         (WebKit::WebFrame::name):
21955
21956 2010-10-29  Sam Weinig  <weinig@apple.com>
21957
21958         Reviewed by Simon Fraser.
21959
21960         Implement WebProcess::platformSetCacheModel for windows
21961         <rdar://problem/8605796>
21962         https://bugs.webkit.org/show_bug.cgi?id=48703
21963
21964         * WebProcess/win/WebProcessWin.cpp:
21965         (WebKit::memorySize):
21966         (WebKit::volumeFreeSize):
21967         (WebKit::WebProcess::platformSetCacheModel):
21968         Add implemenation based on the version in WebKit/win/WebView.cpp.
21969
21970 2010-10-29  Andreas Kling  <kling@webkit.org>
21971
21972         Reviewed by Anders Carlsson.
21973
21974         WK2: Unbreak compilation of WebPlatformTouchPoint::decode()
21975
21976         * Shared/WebPlatformTouchPoint.cpp:
21977         (WebKit::WebPlatformTouchPoint::decode):
21978
21979 2010-10-29  Darin Adler  <darin@apple.com>
21980
21981         Reviewed by Sam Weinig.
21982
21983         More back/forward refactoring
21984
21985         * WebKit2.pro: Removed WebBackForwardControllerClient.cpp and .h.
21986         * WebKit2.xcodeproj/project.pbxproj: Ditto.
21987
21988         * WebProcess/WebCoreSupport/WebBackForwardControllerClient.cpp: Removed.
21989         * WebProcess/WebCoreSupport/WebBackForwardControllerClient.h: Removed.
21990
21991         * WebProcess/InjectedBundle/InjectedBundleBackForwardList.cpp:
21992         (WebKit::InjectedBundleBackForwardList::itemAtIndex): Use backForward.
21993         (WebKit::InjectedBundleBackForwardList::backListCount): Ditto.
21994         (WebKit::InjectedBundleBackForwardList::forwardListCount): Ditto.
21995         (WebKit::InjectedBundleBackForwardList::clear): Ditto.
21996
21997         * WebProcess/WebPage/WebBackForwardListProxy.h: Added newly-needed include.
21998
21999         * WebProcess/WebPage/WebPage.cpp:
22000         (WebKit::WebPage::WebPage): Set up backForwardClient.
22001
22002 2010-10-29  Adam Roben  <aroben@apple.com>
22003
22004         Stop using encode/decodeBytes for WebEvent subclasses
22005
22006         The use of encode/decodeBytes was making these classes sensitive to
22007         differences in padding on different architectures (e.g., 32-bit vs.
22008         64-bit). By encoding each data member explicitly we remove this
22009         sensitivity, allowing these classes to be passed between processes
22010         with different padding.
22011
22012         Fixes <http://webkit.org/b/48552> <rdar://problem/8606571> Mouse
22013         events never reach Flash in WebKit2 on Mac (asserts in Debug builds)
22014
22015         Reviewed by Anders Carlsson.
22016
22017         * Platform/CoreIPC/Arguments.h:
22018         (CoreIPC::Arguments8::Arguments8):
22019         (CoreIPC::Arguments8::encode):
22020         (CoreIPC::Arguments8::decode):
22021         (CoreIPC::In):
22022         (CoreIPC::Out):
22023         Added Arguments8, the biggest Arguments yet.
22024
22025         * Shared/WebEvent.cpp:
22026         (WebKit::WebEvent::encode):
22027         (WebKit::WebEvent::decode):
22028         * Shared/WebKeyboardEvent.cpp:
22029         (WebKit::WebKeyboardEvent::encode):
22030         (WebKit::WebKeyboardEvent::decode):
22031         * Shared/WebMouseEvent.cpp:
22032         (WebKit::WebMouseEvent::encode):
22033         (WebKit::WebMouseEvent::decode):
22034         * Shared/WebPlatformTouchPoint.cpp:
22035         (WebKit::WebPlatformTouchPoint::encode):
22036         (WebKit::WebPlatformTouchPoint::decode):
22037         * Shared/WebTouchEvent.cpp:
22038         (WebKit::WebTouchEvent::encode):
22039         (WebKit::WebTouchEvent::decode):
22040         * Shared/WebWheelEvent.cpp:
22041         (WebKit::WebWheelEvent::encode):
22042         (WebKit::WebWheelEvent::decode):
22043         Changed all encode/decode function to use CoreIPC::In/Out to
22044         encode/decode data members individually.
22045
22046 2010-10-29  Adam Roben  <aroben@apple.com>
22047
22048         Use only CoreIPC-sanctioned types in WebEvent subclasses
22049
22050         Fixes <http://webkit.org//48694> WebEvent subclasses should not use
22051         architecture-dependent types
22052
22053         Reviewed by Anders Carlsson.
22054
22055         * Shared/WebEvent.h:
22056         (WebKit::WebEvent::type):
22057         (WebKit::WebMouseEvent::button):
22058         (WebKit::WebMouseEvent::clickCount):
22059         (WebKit::WebWheelEvent::granularity):
22060         (WebKit::WebPlatformTouchPoint::id):
22061         (WebKit::WebPlatformTouchPoint::state):
22062         Replaced enums, ints, and unsigneds with uint32_ts, int32_ts, and
22063         uint32_ts, respectively.
22064
22065 2010-10-29  Anders Carlsson  <andersca@apple.com>
22066
22067         Reviewed by Adam Roben.
22068
22069         Generate a DelayedReply struct for sync messages marked delayed
22070         https://bugs.webkit.org/show_bug.cgi?id=48696
22071
22072         * Scripts/webkit2/messages.py:
22073         If we encounter a sync message marked delayed, generate a DelayedReply struct with a send member funciton
22074         that can be used for sending the reply.
22075
22076         * Scripts/webkit2/messages_unittest.py:
22077         Update expected results.
22078
22079 2010-10-29  Anders Carlsson  <andersca@apple.com>
22080
22081         Reviewed by Adam Roben.
22082
22083         Use WebPage::send in a couple of more places.
22084
22085         * WebProcess/WebCoreSupport/WebChromeClient.cpp:
22086         (WebKit::WebChromeClient::setWindowRect):
22087         (WebKit::WebChromeClient::takeFocus):
22088         (WebKit::WebChromeClient::setToolbarsVisible):
22089         (WebKit::WebChromeClient::setStatusbarVisible):
22090         (WebKit::WebChromeClient::setMenubarVisible):
22091         (WebKit::WebChromeClient::setResizable):
22092         (WebKit::WebChromeClient::setStatusbarText):
22093         (WebKit::WebChromeClient::contentsSizeChanged):
22094         (WebKit::WebChromeClient::mouseDidMoveOverElement):
22095         (WebKit::WebChromeClient::setToolTip):
22096         (WebKit::WebChromeClient::setCursor):
22097         (WebKit::WebChromeClient::dispatchViewportDataDidChange):
22098         * WebProcess/WebCoreSupport/WebEditorClient.cpp:
22099         (WebKit::WebEditorClient::registerCommandForUndo):
22100         (WebKit::WebEditorClient::clearUndoRedoOperations):
22101         * WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
22102         (WebKit::WebFrameLoaderClient::detachedFromParent2):
22103         (WebKit::WebFrameLoaderClient::dispatchDidReceiveServerRedirectForProvisionalLoad):
22104         (WebKit::WebFrameLoaderClient::dispatchDidStartProvisionalLoad):
22105         (WebKit::WebFrameLoaderClient::dispatchDidReceiveTitle):
22106         (WebKit::WebFrameLoaderClient::dispatchDidCommitLoad):
22107         (WebKit::WebFrameLoaderClient::dispatchDidFailProvisionalLoad):
22108         (WebKit::WebFrameLoaderClient::dispatchDidFailLoad):
22109         (WebKit::WebFrameLoaderClient::dispatchDidFinishDocumentLoad):
22110         (WebKit::WebFrameLoaderClient::dispatchDidFinishLoad):
22111         (WebKit::WebFrameLoaderClient::dispatchDidFirstLayout):
22112         (WebKit::WebFrameLoaderClient::dispatchDidFirstVisuallyNonEmptyLayout):
22113         (WebKit::WebFrameLoaderClient::dispatchDecidePolicyForMIMEType):
22114         (WebKit::WebFrameLoaderClient::dispatchDecidePolicyForNewWindowAction):
22115         (WebKit::WebFrameLoaderClient::dispatchDecidePolicyForNavigationAction):
22116         (WebKit::WebFrameLoaderClient::dispatchWillSubmitForm):
22117         (WebKit::WebFrameLoaderClient::postProgressStartedNotification):
22118         (WebKit::WebFrameLoaderClient::postProgressEstimateChangedNotification):
22119         (WebKit::WebFrameLoaderClient::postProgressFinishedNotification):
22120         (WebKit::WebFrameLoaderClient::didDisplayInsecureContent):
22121         (WebKit::WebFrameLoaderClient::didRunInsecureContent):
22122         (WebKit::WebFrameLoaderClient::dispatchDidBecomeFrameset):
22123         * WebProcess/WebPage/FindController.cpp:
22124         (WebKit::FindController::findString):
22125         (WebKit::FindController::hideFindIndicator):
22126         * WebProcess/WebPage/WebBackForwardListProxy.cpp:
22127         (WebKit::WebBackForwardListProxy::addItem):
22128         (WebKit::WebBackForwardListProxy::goToItem):
22129         (WebKit::WebBackForwardListProxy::clear):
22130         * WebProcess/WebPage/WebFrame.cpp:
22131         (WebKit::WebFrame::createMainFrame):
22132         (WebKit::WebFrame::createSubframe):
22133         * WebProcess/WebPage/WebPage.cpp:
22134         (WebKit::WebPage::sendClose):
22135         (WebKit::WebPage::pageDidScroll):
22136         (WebKit::WebPage::mouseEvent):
22137         (WebKit::WebPage::wheelEvent):
22138         (WebKit::WebPage::keyEvent):
22139         (WebKit::WebPage::validateMenuItem):
22140         (WebKit::WebPage::touchEvent):
22141         (WebKit::WebPage::show):
22142         (WebKit::WebPage::runJavaScriptInMainFrame):
22143         (WebKit::WebPage::getRenderTreeExternalRepresentation):
22144         (WebKit::WebPage::getSourceForFrame):
22145
22146 2010-10-29  Anders Carlsson  <andersca@apple.com>
22147
22148         Reviewed by Adam Roben.
22149
22150         Add a MessageSender class template
22151         https://bugs.webkit.org/show_bug.cgi?id=48683
22152
22153         * Platform/CoreIPC/MessageSender.h: Added.
22154         (CoreIPC::MessageSender::send):
22155         Add send overloads for simple message sending.
22156
22157         * WebKit2.pro:
22158         * WebKit2.xcodeproj/project.pbxproj:
22159         Add MessageSender.h
22160
22161         * WebProcess/WebPage/FindController.cpp:
22162         (WebKit::FindController::countStringMatches):
22163         (WebKit::FindController::findString):
22164         (WebKit::FindController::updateFindIndicator):
22165         Call send on the web page.
22166
22167         * WebProcess/WebPage/WebPage.cpp:
22168         (WebKit::WebPage::connection):
22169         Add connection(), used by the MessageSender.
22170         
22171         * WebProcess/WebPage/WebPage.h:
22172         (WebKit::WebPage::destinationID):
22173         Add destinationID(), used by the MessageSender.
22174
22175         * win/WebKit2.vcproj:
22176         Add MessageSender.h
22177
22178 2010-10-29  Adam Roben  <aroben@apple.com>
22179
22180         Remove redundant data members from WebTouchEvent
22181
22182         WebEvent already stores the Type and timestamp.
22183
22184         Fixes <http://webkit.org/b/48671> WebTouchEvent duplicates data from
22185         WebEvent
22186
22187         Reviewed by Anders Carlsson.
22188
22189         * Shared/WebEvent.h:
22190         * Shared/WebTouchEvent.cpp:
22191         (WebKit::WebTouchEvent::WebTouchEvent):
22192         Removed m_type and m_timestamp (which was never even getting
22193         initialized!).
22194
22195 2010-10-29  Anders Carlsson  <andersca@apple.com>
22196
22197         Reviewed by Adam Roben.
22198
22199         Add the plug-in proxy to the map before sending the CreatePlugin message
22200         https://bugs.webkit.org/show_bug.cgi?id=48678
22201
22202         * WebProcess/Plugins/PluginProxy.cpp:
22203         (WebKit::PluginProxy::initialize):
22204
22205 2010-10-29  Anders Carlsson  <andersca@apple.com>
22206
22207         Reviewed by Adam Roben.
22208
22209         Add GetWindowScriptNPObject message
22210         https://bugs.webkit.org/show_bug.cgi?id=48670
22211
22212         * PluginProcess/PluginControllerProxy.cpp:
22213         (WebKit::PluginControllerProxy::windowScriptNPObject):
22214         Send the GetWindowScriptNPObject message.
22215
22216         * WebProcess/Plugins/PluginProxy.cpp:
22217         (WebKit::PluginProxy::getWindowScriptNPObject):
22218         Add stub.
22219
22220         * WebProcess/Plugins/PluginProxy.messages.in:
22221         Add GetWindowScriptNPObject message.
22222
22223 2010-10-29  Anders Carlsson  <andersca@apple.com>
22224
22225         Reviewed by Dan Bernstein.
22226
22227         Change the Connection::sendSync timeout parameter to have the NoTimeout argument as a default
22228         argument and update all the call sites.
22229
22230         * Platform/CoreIPC/Connection.h:
22231         * PluginProcess/PluginControllerProxy.cpp:
22232         (WebKit::PluginControllerProxy::proxiesForURL):
22233         (WebKit::PluginControllerProxy::cookiesForURL):
22234         * WebProcess/InjectedBundle/InjectedBundle.cpp:
22235         (WebKit::InjectedBundle::postSynchronousMessage):
22236         * WebProcess/Plugins/PluginProcessConnectionManager.cpp:
22237         (WebKit::PluginProcessConnectionManager::getPluginProcessConnection):
22238         * WebProcess/Plugins/PluginProxy.cpp:
22239         (WebKit::PluginProxy::initialize):
22240         (WebKit::PluginProxy::destroy):
22241         (WebKit::PluginProxy::paint):
22242         (WebKit::PluginProxy::handleMouseEvent):
22243         (WebKit::PluginProxy::handleWheelEvent):
22244         (WebKit::PluginProxy::handleMouseEnterEvent):
22245         (WebKit::PluginProxy::handleMouseLeaveEvent):
22246         (WebKit::PluginProxy::handleKeyboardEvent):
22247         * WebProcess/WebCoreSupport/WebChromeClient.cpp:
22248         (WebKit::WebChromeClient::windowRect):
22249         (WebKit::WebChromeClient::createWindow):
22250         (WebKit::WebChromeClient::toolbarsVisible):
22251         (WebKit::WebChromeClient::statusbarVisible):
22252         (WebKit::WebChromeClient::menubarVisible):
22253         (WebKit::WebChromeClient::canRunBeforeUnloadConfirmPanel):
22254         (WebKit::WebChromeClient::runBeforeUnloadConfirmPanel):
22255         (WebKit::WebChromeClient::runJavaScriptAlert):
22256         (WebKit::WebChromeClient::runJavaScriptConfirm):
22257         (WebKit::WebChromeClient::runJavaScriptPrompt):
22258         * WebProcess/WebCoreSupport/WebPlatformStrategies.cpp:
22259         (WebKit::WebPlatformStrategies::populatePluginCache):
22260         * WebProcess/WebPage/WebBackForwardListProxy.cpp:
22261         (WebKit::WebBackForwardListProxy::itemAtIndex):
22262         (WebKit::WebBackForwardListProxy::backListCount):
22263         (WebKit::WebBackForwardListProxy::forwardListCount):
22264         * WebProcess/WebPage/WebPage.cpp:
22265         (WebKit::WebPage::createPlugin):
22266         (WebKit::WebPage::changeAcceleratedCompositingMode):
22267         * WebProcess/WebPage/mac/LayerBackedDrawingAreaMac.mm:
22268         (WebKit::LayerBackedDrawingArea::attachCompositingContext):
22269         * WebProcess/WebPage/mac/WebPageMac.mm:
22270         (WebKit::WebPage::interceptEditingKeyboardEvent):
22271
22272 2010-10-29  John Sullivan  <sullivan@apple.com>
22273
22274         Reviewed by Anders Carlsson.
22275
22276         https://bugs.webkit.org/show_bug.cgi?id=48666
22277         WebKit2 should provide counterpart getter to WKBundleNodeHandleSetHTMLInputElementAutofilled
22278
22279         * WebProcess/InjectedBundle/API/c/WKBundleNodeHandle.cpp:
22280         (WKBundleNodeHandleGetHTMLInputElementAutofilled):
22281         New function, calls through to InjectedBundleNodeHandle.
22282
22283         * WebProcess/InjectedBundle/API/c/WKBundleNodeHandlePrivate.h:
22284         Declared new function.
22285
22286         * WebProcess/InjectedBundle/DOM/InjectedBundleNodeHandle.cpp:
22287         (WebKit::InjectedBundleNodeHandle::isHTMLInputElementAutofilled):
22288         New function, calls through to HTMLInputElement.
22289
22290         * WebProcess/InjectedBundle/DOM/InjectedBundleNodeHandle.h:
22291         Declared new function.
22292
22293 2010-10-29  Jessie Berlin  <jberlin@apple.com>
22294
22295         Reviewed by Anders Carlsson.
22296
22297         ASSERTION FAILURE in WebProcessProxy::frameDestroyed when a Page is closed before it can send
22298         the DidCreateMainFrame messsage to the UIProcess.
22299         https://bugs.webkit.org/show_bug.cgi?id=48654
22300
22301         WebProcessProxy::frameDestroyed was asserting that the frameID it was called with was
22302         registered in WebProcessProxy::frameCreated (which is called when the WebPageProxy is
22303         created). However, in the case where we close the page before it's had the chance to send
22304         the DidCreateMainFrame message back to the UI process, the UI Process will get the
22305         DidDestroyFrame message because it's sent directly to the WebProcessProxy and doesn't go
22306         through WebPageProxy.
22307
22308         Remove the assert because it is invalid in this case.
22309
22310         * UIProcess/WebProcessProxy.cpp:
22311         (WebKit::WebProcessProxy::frameDestroyed):
22312
22313 2010-10-29  Adam Roben  <aroben@apple.com>
22314
22315         Build fix when Carbon plugins are disabled
22316
22317         * WebProcess/Plugins/Netscape/mac/NetscapePluginMac.mm:
22318         (WebKit::NetscapePlugin::platformHandleMouseEvent):
22319
22320 2010-10-29  Adam Roben  <aroben@apple.com>
22321
22322         Move NPRuntime-related files into WebProcess/Plugins/Netscape
22323
22324         Fixes <http://webkit.org/b/48645>.
22325
22326         Reviewed by Anders Carlsson.
22327
22328         * WebKit2.pro:
22329         * WebKit2.xcodeproj/project.pbxproj:
22330         * win/WebKit2.vcproj:
22331         Updated the files' paths.
22332
22333         * WebProcess/Plugins/Netscape/JSNPMethod.cpp: Renamed from WebKit2/WebProcess/Plugins/JSNPMethod.cpp.
22334         * WebProcess/Plugins/Netscape/JSNPMethod.h: Renamed from WebKit2/WebProcess/Plugins/JSNPMethod.h.
22335         * WebProcess/Plugins/Netscape/JSNPObject.cpp: Renamed from WebKit2/WebProcess/Plugins/JSNPObject.cpp.
22336         * WebProcess/Plugins/Netscape/JSNPObject.h: Renamed from WebKit2/WebProcess/Plugins/JSNPObject.h.
22337         * WebProcess/Plugins/Netscape/NPJSObject.cpp: Renamed from WebKit2/WebProcess/Plugins/NPJSObject.cpp.
22338         * WebProcess/Plugins/Netscape/NPJSObject.h: Renamed from WebKit2/WebProcess/Plugins/NPJSObject.h.
22339         * WebProcess/Plugins/Netscape/NPRuntimeObjectMap.cpp: Renamed from WebKit2/WebProcess/Plugins/NPRuntimeObjectMap.cpp.
22340         * WebProcess/Plugins/Netscape/NPRuntimeObjectMap.h: Renamed from WebKit2/WebProcess/Plugins/NPRuntimeObjectMap.h.
22341         * WebProcess/Plugins/Netscape/NPRuntimeUtilities.cpp: Renamed from WebKit2/WebProcess/Plugins/NPRuntimeUtilities.cpp.
22342         * WebProcess/Plugins/Netscape/NPRuntimeUtilities.h: Renamed from WebKit2/WebProcess/Plugins/NPRuntimeUtilities.h.
22343
22344 2010-10-29  Alexey Proskuryakov  <ap@apple.com>
22345
22346         Reviewed by Darin Adler.
22347
22348         https://bugs.webkit.org/show_bug.cgi?id=48576
22349         Let WebKit2 client know when a frame is a frameset
22350
22351         * UIProcess/WebFrameProxy.cpp:
22352         (WebKit::WebFrameProxy::WebFrameProxy):
22353         * UIProcess/WebFrameProxy.h:
22354         (WebKit::WebFrameProxy::setIsFrameSet):
22355         (WebKit::WebFrameProxy::isFrameSet):
22356         Remember whether the frame is currently a frameset.
22357
22358         * UIProcess/API/C/WKFrame.cpp: (WKFrameIsFrameSet):
22359         * UIProcess/API/C/WKFrame.h:
22360         Added client API.
22361
22362         * UIProcess/WebPageProxy.cpp:
22363         (WebKit::WebPageProxy::didCommitLoadForFrame):
22364         (WebKit::WebPageProxy::frameDidBecomeFrameSet):
22365         * UIProcess/WebPageProxy.h:
22366         * UIProcess/WebPageProxy.messages.in:
22367         * WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
22368         (WebKit::WebFrameLoaderClient::dispatchDidBecomeFrameset):
22369         * WebProcess/WebCoreSupport/WebFrameLoaderClient.h:
22370         Pass notification from web process to UI process.
22371
22372 2010-10-28  Adam Roben  <aroben@apple.com>
22373
22374         Use IntPoint/FloatSize in WebEvent subclasses
22375
22376         This is nicer than passing around pairs of ints/floats.
22377
22378         Fixes <http://webkit.org/b/48611>.
22379
22380         Reviewed by Anders Carlsson.
22381
22382         * Shared/WebEvent.h:
22383         * Shared/WebMouseEvent.cpp:
22384         * Shared/WebPlatformTouchPoint.cpp:
22385         * Shared/WebWheelEvent.cpp:
22386         Changed all x/y pairs to either use IntPoint or FloatSize, as
22387         appropriate.
22388
22389         * Shared/WebEventConversion.cpp:
22390         * Shared/mac/WebEventFactory.mm:
22391         * Shared/qt/WebEventFactoryQt.cpp:
22392         * Shared/win/WebEventFactory.cpp:
22393         * WebProcess/Plugins/Netscape/mac/NetscapePluginMac.mm:
22394         * WebProcess/Plugins/Netscape/win/NetscapePluginWin.cpp:
22395         Updated for WebEvent changes.
22396
22397 2010-10-29  Adam Roben  <aroben@apple.com>
22398
22399         Touch WebKit2Prefix.h to fix incremental builds on Windows
22400
22401         * WebKit2Prefix.h:
22402
22403 2010-10-28  Adam Roben  <aroben@apple.com>
22404
22405         Remove unnecessary #includes from WebEvent.h
22406
22407         Fixes <http://webkit.org/b/48609> WebEvent.h #includes things it
22408         doesn't need
22409
22410         Reviewed by Sam Weinig.
22411
22412         * Scripts/webkit2/messages.py:
22413         (MessageReceiver.iterparameters): Merged iterreplyparameters into this
22414         function. All callers to iterparameters are really interested in the
22415         reply parameters, too. This will cause us to, e.g., add
22416         forward-declarations for types used in sync replies.
22417         (headers_for_type): Added a special case for WebCore::KeypressCommand.
22418
22419         * Scripts/webkit2/messages_unittest.py: Added a test to cover the
22420         failing case that inspired the above changes.
22421
22422         * Shared/WebEvent.h: Replaced #includes with forward-declarations.
22423
22424         * Shared/API/c/WKSharedAPICast.h:
22425         * Shared/NativeWebKeyboardEvent.h:
22426         * Shared/WebEvent.cpp:
22427         * Shared/WebKeyboardEvent.cpp:
22428         * Shared/WebMouseEvent.cpp:
22429         * Shared/WebPlatformTouchPoint.cpp:
22430         * Shared/WebTouchEvent.cpp:
22431         * Shared/WebWheelEvent.cpp:
22432         * Shared/qt/WebEventFactoryQt.cpp:
22433         * Shared/win/WebEventFactory.cpp:
22434         * UIProcess/API/qt/qwkpage.cpp:
22435         * UIProcess/LayerBackedDrawingAreaProxy.cpp:
22436         * UIProcess/WebUIClient.cpp:
22437         * UIProcess/WebUIClient.h:
22438         * UIProcess/win/WebView.cpp:
22439         * WebProcess/WebPage/FindController.cpp:
22440         * WebProcess/WebPage/mac/WebPageMac.mm:
22441         Added now-needed #includes and declarations.
22442
22443 2010-10-29  Csaba Osztrogonác  <ossy@webkit.org>
22444
22445         Reviewed by Adam Roben and David Kilzer.
22446
22447         Fix and cleanup of build systems
22448         https://bugs.webkit.org/show_bug.cgi?id=48342
22449
22450         * Configurations/FeatureDefines.xcconfig: Remove unnecessary ENABLE_SANDBOX and add missing features.
22451
22452 2010-10-28  Dan Bernstein  <mitz@apple.com>
22453
22454         LLVM compiler build fix
22455
22456         * WebProcess/Downloads/mac/DownloadMac.mm:
22457         (-[WKDownloadAsDelegate download:didReceiveResponse:]): Removed a stray semicolon.
22458
22459 2010-10-28  Adam Roben  <aroben@apple.com>
22460
22461         Move some function definitions from WebEvent.h into new .cpp files
22462
22463         Someday maybe we'll split the classes into their own header files,
22464         too.
22465
22466         Fixes <http://webkit.org/b/48604>.
22467
22468         Reviewed by Anders Carlsson.
22469
22470         * Shared/WebEvent.h: Moved code from here...
22471
22472         * Shared/WebEvent.cpp: Added.
22473         * Shared/WebKeyboardEvent.cpp: Added.
22474         * Shared/WebMouseEvent.cpp: Added.
22475         * Shared/WebPlatformTouchPoint.cpp: Added.
22476         * Shared/WebTouchEvent.cpp: Added.
22477         * Shared/WebWheelEvent.cpp: Added.
22478         ...to here. Also changed WebTouchEvent::touchPoints not to copy the
22479         Vector.
22480
22481         * WebKit2.pro:
22482         * WebKit2.xcodeproj/project.pbxproj:
22483         * win/WebKit2.vcproj:
22484         Added the new files.
22485
22486 2010-10-28  Anders Carlsson  <andersca@apple.com>
22487
22488         Reviewed by Adam Roben.
22489
22490         Connection::sendSyncMessage needs to dispatch incoming sync messages
22491         https://bugs.webkit.org/show_bug.cgi?id=48606
22492
22493         * Platform/CoreIPC/Connection.cpp:
22494         (CoreIPC::Connection::sendSyncMessage):
22495         Protect the connection when waiting for a reply. Schedule for any remaining incoming sync messages
22496         to be sent once the bottom-most waitForSyncReply calls returns.
22497
22498         (CoreIPC::Connection::waitForSyncReply):
22499         Make sure to dispatch any incoming sync messages.
22500
22501         (CoreIPC::Connection::processIncomingMessage):
22502         If the incoming message is a sync message and we're waiting for a sync reply, add the message to the
22503         queue of "sync messages received while waiting for sync reply" and wake up the client thread.
22504
22505         * Platform/CoreIPC/Connection.h:
22506
22507 2010-10-28  Anders Carlsson  <andersca@apple.com>
22508
22509         Reviewed by Adam Roben.
22510
22511         Move code to dispatch a sync message out into a separate function
22512         https://bugs.webkit.org/show_bug.cgi?id=48605
22513
22514         * Platform/CoreIPC/Connection.cpp:
22515         (CoreIPC::Connection::dispatchSyncMessage):
22516         Factor code out from dispatchMessage. Handle receiving a message with an invalid reply ID.
22517
22518         (CoreIPC::Connection::dispatchMessages):
22519         Call dispatchSyncMessage.
22520
22521         * Platform/CoreIPC/Connection.h:
22522
22523 2010-10-28  Anders Carlsson  <andersca@apple.com>
22524
22525         Reviewed by Darin Adler.
22526
22527         Add NPObjectMessageReceiver class.
22528         https://bugs.webkit.org/show_bug.cgi?id=48599
22529
22530         * Shared/Plugins/NPObjectMessageReceiver.cpp: Added.
22531         (WebKit::NPObjectMessageReceiver::NPObjectMessageReceiver):
22532         (WebKit::NPObjectMessageReceiver::~NPObjectMessageReceiver):
22533         * Shared/Plugins/NPObjectMessageReceiver.h: Added.
22534         * WebKit2.xcodeproj/project.pbxproj:
22535
22536 2010-10-28  Anders Carlsson  <andersca@apple.com>
22537
22538         Reviewed by Sam Weinig.
22539
22540         Add NPObjectProxy class
22541         https://bugs.webkit.org/show_bug.cgi?id=48558
22542
22543         * Shared/Plugins/NPObjectProxy.cpp: Added.
22544         (WebKit::NPObjectProxy::NPObjectProxy):
22545         (WebKit::NPObjectProxy::~NPObjectProxy):
22546         * Shared/Plugins/NPObjectProxy.h: Added.
22547         * WebKit2.xcodeproj/project.pbxproj:
22548
22549 2010-10-28  Anders Carlsson  <andersca@apple.com>
22550
22551         Reviewed by Sam Weinig.
22552
22553         Add NPRemoteObjectMap class
22554         https://bugs.webkit.org/show_bug.cgi?id=48553
22555
22556         * Shared/Plugins/NPRemoteObjectMap.cpp: Added.
22557         (WebKit::NPRemoteObjectMap::NPRemoteObjectMap):
22558         * Shared/Plugins/NPRemoteObjectMap.h: Added.
22559         * WebKit2.xcodeproj/project.pbxproj:
22560
22561 2010-10-28  Sam Weinig  <sam@webkit.org>
22562
22563         Reviewed by Anders Carlsson.
22564
22565         WKURLRefs should be allowed to be null
22566         <rdar://problem/8575621>
22567         https://bugs.webkit.org/show_bug.cgi?id=48535
22568
22569         * Shared/API/c/WKSharedAPICast.h:
22570         (WebKit::toURLRef):
22571         (WebKit::toCopiedURLAPI):
22572         Turn a null WTF::String into a null WKURLRef.
22573
22574 2010-10-28  Sam Weinig  <sam@webkit.org>
22575
22576         Reviewed by Anders Carlsson.
22577
22578         Add WebKit2 API for window feature getter/setters
22579         <rdar://problem/8590373>
22580         https://bugs.webkit.org/show_bug.cgi?id=48496
22581
22582         * UIProcess/API/C/WKPage.h:
22583         * UIProcess/WebPageProxy.cpp:
22584         (WebKit::WebPageProxy::setToolbarsAreVisible):
22585         (WebKit::WebPageProxy::getToolbarsAreVisible):
22586         (WebKit::WebPageProxy::setMenuBarIsVisible):
22587         (WebKit::WebPageProxy::getMenuBarIsVisible):
22588         (WebKit::WebPageProxy::setStatusBarIsVisible):
22589         (WebKit::WebPageProxy::getStatusBarIsVisible):
22590         (WebKit::WebPageProxy::setIsResizable):
22591         (WebKit::WebPageProxy::getIsResizable):
22592         * UIProcess/WebPageProxy.h:
22593         * UIProcess/WebPageProxy.messages.in:
22594         * UIProcess/WebUIClient.cpp:
22595         (WebKit::WebUIClient::toolbarsAreVisible):
22596         (WebKit::WebUIClient::setToolbarsAreVisible):
22597         (WebKit::WebUIClient::menuBarIsVisible):
22598         (WebKit::WebUIClient::setMenuBarIsVisible):
22599         (WebKit::WebUIClient::statusBarIsVisible):
22600         (WebKit::WebUIClient::setStatusBarIsVisible):
22601         (WebKit::WebUIClient::isResizable):
22602         (WebKit::WebUIClient::setIsResizable):
22603         * UIProcess/WebUIClient.h:
22604         * WebProcess/WebCoreSupport/WebChromeClient.cpp:
22605         (WebKit::WebChromeClient::setToolbarsVisible):
22606         (WebKit::WebChromeClient::toolbarsVisible):
22607         (WebKit::WebChromeClient::setStatusbarVisible):
22608         (WebKit::WebChromeClient::statusbarVisible):
22609         (WebKit::WebChromeClient::setMenubarVisible):
22610         (WebKit::WebChromeClient::menubarVisible):
22611         (WebKit::WebChromeClient::setResizable):
22612         Plumb through the calls.
22613
22614 2010-10-28  Dan Bernstein  <mitz@apple.com>
22615
22616         Build fix.
22617
22618         * win/WebKit2Common.vsprops:
22619
22620 2010-10-28  Dan Bernstein  <mitz@apple.com>
22621
22622         Reviewed by Adam Roben.
22623
22624         No longer soft-link zlib
22625         https://bugs.webkit.org/show_bug.cgi?id=48004
22626
22627         * win/WebKit2Common.vsprops: Added zlib.lib to AdditionalDependencies.
22628
22629 2010-10-28  Adam Roben  <aroben@apple.com>
22630
22631         Make PluginView retain its HTMLPlugInElement
22632
22633         This matches WebKit/mac's WebBaseNetscapePluginView. WebCore didn't do
22634         this, but had a very different mechanism for implementing NPRuntime
22635         that didn't require it.
22636
22637         Fixes <http://webkit.org/b/46672> <rdar://problem/8484208> Crash
22638         (preceded by assertion) in Node::document when running
22639         plugins/document-open.html in WebKit2 on Windows
22640
22641         Reviewed by Anders Carlsson.
22642
22643         * WebProcess/Plugins/PluginView.cpp:
22644         (WebKit::PluginView::create): Moved here from the header file so that
22645         clients of the header file won't have to pull in HTMLPlugInElement.h.
22646         Changed to take a PassRefPtr<HTMLPlugInElement>.
22647         (WebKit::PluginView::PluginView): Changed to take a
22648         PassRefPtr<HTMLPlugInElement> and to use m_pluginElement later (because
22649         the parameter to the function will be nulled-out after assigning into
22650         m_pluginElement).
22651         (WebKit::PluginView::pluginElementNPObject): Updated for change to m_pluginElement.
22652
22653         * WebProcess/Plugins/PluginView.h: Made m_pluginElement a RefPtr.
22654
22655 2010-10-28  Kenneth Rohde Christiansen  <kenneth@webkit.org>
22656
22657         Reviewed by Andreas Kling.
22658
22659         Make Qt viewportAttributesForSize not assert on (0, 0) size
22660         https://bugs.webkit.org/show_bug.cgi?id=48524
22661
22662         We now return an invalid (isValid() == false) ViewportAttributes
22663         instance when the supplied size is (0, 0).
22664
22665         * UIProcess/API/qt/qwkpage.cpp:
22666         (QWKPage::viewportAttributesForSize):
22667
22668 2010-10-28  Balazs Kelemen  <kbalazs@webkit.org>
22669
22670         Reviewed by Andreas Kling.
22671
22672         [Qt][WK2] SharedMemory should be released by the receiving process
22673         https://bugs.webkit.org/show_bug.cgi?id=48520
22674
22675         * Platform/qt/SharedMemoryQt.cpp:
22676         (WebKit::SharedMemory::~SharedMemory):
22677         (WebKit::SharedMemory::createHandle):
22678
22679 2010-10-28  Kimmo Kinnunen  <kimmo.t.kinnunen@nokia.com>
22680
22681          Reviewed by Kenneth Rohde Christiansen.
22682
22683          [Qt] Web process cannot be debugged if it crashes in initialization
22684          https://bugs.webkit.org/show_bug.cgi?id=47399
22685
22686          Wait 3 seconds for the debugger on debug mode if
22687          WEBKIT2_PAUSE_WEB_PROCESS_ON_LAUNCH environment variable is set.
22688
22689          The debugging can be initiated for example in following way:
22690           export WEBKIT2_PAUSE_WEB_PROCESS_ON_LAUNCH=1
22691           ./MiniBrowser & while [ -z `pidof QtWebProcess` ]; do sleep 1; done; \
22692            gdb --pid=`pidof QtWebProcess`
22693
22694          * WebProcess/qt/WebProcessMainQt.cpp:
22695          (WebKit::WebProcessMainQt):
22696
22697 2010-10-28  Mark Rowe  <mrowe@apple.com>
22698
22699         32-bit build fix.
22700
22701         Qualify references to Rect to avoid ambiguity between WebCore::Rect and Carbon's Rect.
22702
22703         * WebProcess/Plugins/Netscape/mac/NetscapePluginMac.mm:
22704         (WebKit::NetscapePlugin::platformPostInitialize):
22705         (WebKit::NetscapePlugin::windowFrameChanged):
22706
22707 2010-10-28  Ivan Krstić  <ike@apple.com>
22708
22709         Reviewed by Mark Rowe.
22710
22711         Remove unused experimental proxied panel interface.
22712         <rdar://problem/7237059>
22713
22714         * WebProcess/WebCoreSupport/mac/WebSystemInterface.mm:
22715         (InitWebCoreSystemInterface):
22716
22717 2010-10-27  Mark Rowe  <mrowe@apple.com>
22718
22719         Build fix.
22720
22721         * UIProcess/API/mac/PageClientImpl.mm: Reference the file using the correct case.
22722
22723 2010-10-27  Anders Carlsson  <andersca@apple.com>
22724
22725         Reviewed by Sam Weinig.
22726
22727         Find indicators do not bounce
22728         https://bugs.webkit.org/show_bug.cgi?id=48490
22729         <rdar://problem/8564276>
22730
22731         * UIProcess/API/mac/FindIndicatorWindow.h:
22732         * UIProcess/API/mac/FindIndicatorWindow.mm:
22733         (-[WebFindIndicatorWindowAnimation _initWithFindIndicatorWindow:WebKit::animationDuration:animationProgressCallback:WebKit::FindIndicatorWindow::animationDidEndCallback:WebKit::FindIndicatorWindow::]):
22734         Add an animationDuration parameter.
22735         
22736         (WebKit::FindIndicatorWindow::FindIndicatorWindow):
22737         Initialize m_bounceAnimationContext.
22738
22739         (WebKit::FindIndicatorWindow::setFindIndicator):
22740         Create a bounce animation and start it.
22741
22742         (WebKit::FindIndicatorWindow::closeWindow):
22743         Stop the bounce animation and destroy the bounce animation context.
22744
22745         (WebKit::FindIndicatorWindow::startFadeOutTimerFired):
22746         pass the fade out duration.
22747
22748         (WebKit::FindIndicatorWindow::bounceAnimationCallback):
22749         Set the bounce animation progress.
22750
22751         (WebKit::FindIndicatorWindow::bounceAnimationDidEnd):
22752         Destroy the bounce animation context.
22753
22754 2010-10-27  Kenneth Rohde Christiansen  <kenneth@webkit.org>
22755
22756         Reviewed by Andreas Kling.
22757
22758         Remove the reference to the pageNamespace in the QWKPagePrivate.
22759         Access it through the WebPageProxy instead which holds a strong
22760         ref to it.
22761
22762         * UIProcess/API/qt/qwkpage.cpp:
22763         (QWKPagePrivate::QWKPagePrivate):
22764         (QWKPage::preferences):
22765         * UIProcess/API/qt/qwkpage_p.h:
22766
22767 2010-10-27  Enrica Casucci  <enrica@apple.com>
22768
22769         Reviewed by Alexey Proskuryakov.
22770
22771         Support Appkit key bindings and custom key bindings in WebKit2
22772         https://bugs.webkit.org/show_bug.cgi?id=48271
22773         <rdar://problem/7660723>
22774         
22775         We need to support AppKit key bindings and custom key bindings in WebKit2.
22776         Every keyboard event is first sent to the WebProcess and we inform AppKit that
22777         we don't need further processing. When the event is processed by the WebProcess and no handler consumes it,
22778         we send a synchronous message back to the UI process to let AppKit perform the key bindings.
22779         This operation can result in one or more editing commands to execute or a noop.
22780         The WebProcess then replies back to the UI process to inform whether further processing is required, in
22781         which case the event is sent back to the application to be mapped.
22782         There is a potential for a race condition: in case the WebProcess is very slow to process the key events, the UI
22783         process could be in a completely different state when the event is being resent (for example it might not have the
22784         keyboard focus anymore) and the command could be lost. We should look out for user experience impact.
22785
22786         * Scripts/webkit2/messages.py: Added header file in the generated file.
22787         * Shared/WebCoreArgumentCoders.h: Added encoder/decoder for KeypressCommand.
22788         * UIProcess/API/mac/PageClientImpl.h:
22789         * UIProcess/API/mac/PageClientImpl.mm:
22790         (WebKit::PageClientImpl::interceptKeyEvent): Pass-through call to WKView.
22791         (WebKit::PageClientImpl::didNotHandleKeyEvent): Added logic to resend the event to the application.
22792         * UIProcess/API/mac/WKView.mm:
22793         (-[WKView validateUserInterfaceItem:]): Changed the default return value to YES, otherwise no menu shortcut is performed.
22794         (-[WKView doCommandBySelector:]): Added.
22795         (-[WKView insertText:]): Added.
22796         (-[WKView _handleStyleKeyEquivalent:]): Added to handle command-B and command-I.
22797         (-[WKView performKeyEquivalent:]): Added to intercept key binding sequences.
22798         (-[WKView _setEventBeingResent:]):
22799         (-[WKView _interceptKeyEvent:]):
22800         * UIProcess/API/mac/WKViewInternal.h:
22801         * UIProcess/PageClient.h:
22802         * UIProcess/WebPageProxy.cpp:
22803         (WebKit::WebPageProxy::interpretKeyEvent):
22804         * UIProcess/WebPageProxy.h:
22805         * UIProcess/WebPageProxy.messages.in:
22806         * WebProcess/WebCoreSupport/WebEditorClient.cpp:
22807         * WebProcess/WebCoreSupport/mac/WebEditorClientMac.mm:
22808         (WebKit::WebEditorClient::handleKeyboardEvent):
22809         (WebKit::WebEditorClient::handleInputMethodKeydown):
22810         * WebProcess/WebPage/WebPage.cpp:
22811         * WebProcess/WebPage/WebPage.h:
22812         * WebProcess/WebPage/mac/WebPageMac.mm: Moved handleKeyboardEvent and handleInputMethodKeydown
22813         to the Mac specific implementation.
22814         (WebKit::WebPage::interceptEditingKeyboardEvent): Added.
22815
22816 2010-10-27  Brian Weinstein  <bweinstein@apple.com>
22817
22818         More Windows build fixage. Copy another new header into WebKitOutputDir.
22819
22820         * win/WebKit2Generated.make:
22821
22822 2010-10-27  Brian Weinstein  <bweinstein@apple.com>
22823
22824         Windows build fix. Copy a new header into WebKitOutputDir.
22825
22826         * win/WebKit2Generated.make:
22827
22828 2010-10-26  Darin Adler  <darin@apple.com>
22829
22830         Reviewed by Sam Weinig.
22831
22832         WebKitTestRunner needs to support layoutTestController.dumpBackForwardList
22833         https://bugs.webkit.org/show_bug.cgi?id=42322
22834         rdar://problem/8193631
22835
22836         WebKitTestRunner needs to support layoutTestController.clearBackForwardList
22837         https://bugs.webkit.org/show_bug.cgi?id=42333
22838         rdar://problem/8193643
22839
22840         * Shared/API/c/WKBase.h: Added WKBundleBackForwardListRef and
22841         WKBundleBackForwardListItemRef.
22842
22843         * Shared/API/c/WKURL.cpp:
22844         (WKURLCopyString): Added.
22845         * Shared/API/c/WKURL.h: Added WKURLCopyString.
22846
22847         * Shared/API/c/cf/WKURLCF.h: Fixed incorrect argument name.
22848
22849         * Shared/APIObject.h: Added TypeBundleBackForwardList and
22850         TypeBundleBackForwardListItem.
22851
22852         * Shared/ImmutableArray.h: Marked destructor virtual explicitly.
22853         * Shared/ImmutableDictionary.h: Ditto.
22854         * UIProcess/WebBackForwardListItem.h: Ditto.
22855         * UIProcess/WebContext.h: Ditto.
22856         * UIProcess/WebFrameProxy.h: Ditto.
22857         * UIProcess/WebNavigationData.h: Ditto.
22858         * UIProcess/WebPageNamespace.h: Ditto.
22859         * UIProcess/WebPreferences.h: Ditto.
22860         * WebProcess/InjectedBundle/InjectedBundleScriptWorld.h: Ditto.
22861         * WebProcess/InjectedBundle/DOM/InjectedBundleNodeHandle.h: Ditto.
22862         * WebProcess/InjectedBundle/DOM/InjectedBundleRangeHandle.h: Ditto.
22863
22864         * UIProcess/WebBackForwardList.cpp: Removed unneeded backListWithLimit
22865         and forwardListWithLimit functions.
22866         (WebKit::WebBackForwardList::clear): Added.
22867         * UIProcess/WebBackForwardList.h: Marked destructor virtual explicitly.
22868         Added clear, removed backListWithLimit and forwardListWithLimit functions.
22869
22870         * UIProcess/WebPageProxy.cpp: Removed unneeded backForwardBackItem,
22871         backForwardCurrentItem, and backForwardForwardItem functions.
22872         (WebKit::WebPageProxy::backForwardClear): Added.
22873         * UIProcess/WebPageProxy.h: Ditto.
22874         * UIProcess/WebPageProxy.messages.in: Ditto.
22875
22876         * WebKit2.pro: Added new files.
22877         * WebKit2.xcodeproj/project.pbxproj: Ditto.
22878         * win/WebKit2.vcproj: Ditto.
22879
22880         * WebProcess/InjectedBundle/API/c/WKBundleAPICast.h: Added
22881         WKBundleBackForwardListRef and WKBundleBackForwardListItemRef.
22882
22883         * WebProcess/InjectedBundle/API/c/WKBundleBackForwardList.cpp:
22884         Started with a copy of from WebKit2/UIProcess/API/C/WKBackForwardList.cpp.
22885         * WebProcess/InjectedBundle/API/c/WKBundleBackForwardList.h:
22886         Started with a copy of WebKit2/UIProcess/API/C/WKBackForwardList.h.
22887
22888         * WebProcess/InjectedBundle/API/c/WKBundleBackForwardListItem.cpp:
22889         Started with a copy of WebKit2/UIProcess/API/C/WKBackForwardListItem.cpp.
22890         * WebProcess/InjectedBundle/API/c/WKBundleBackForwardListItem.h:
22891         Started with a copy of WebKit2/UIProcess/API/C/WKBackForwardListItem.h.
22892
22893         * WebProcess/InjectedBundle/API/c/WKBundlePage.cpp:
22894         (WKBundlePageGetBackForwardList): Added.
22895         * WebProcess/InjectedBundle/API/c/WKBundlePage.h: Ditto.
22896
22897
22898         * WebProcess/InjectedBundle/InjectedBundleBackForwardList.cpp:
22899         Started with a copy of WebKit2/UIProcess/WebBackForwardList.cpp.
22900         * WebProcess/InjectedBundle/InjectedBundleBackForwardList.h:
22901         Started with a copy of WebKit2/UIProcess/WebBackForwardList.h.
22902
22903         * WebProcess/InjectedBundle/InjectedBundleBackForwardListItem.cpp:
22904         Started with a copy of WebKit2/UIProcess/WebBackForwardListItem.cpp.
22905         * WebProcess/InjectedBundle/InjectedBundleBackForwardListItem.h:
22906         Started with a copy of WebKit2/UIProcess/WebBackForwardListItem.h.
22907
22908         * WebProcess/WebPage/WebBackForwardListProxy.cpp: Removed
22909         many unneeded functions.
22910         (WebKit::WebBackForwardListProxy::WebBackForwardListProxy):
22911         Removed unneeded initialization of m_closed.
22912         (WebKit::WebBackForwardListProxy::addItem): Added a check for
22913         the case of a capacity of 0.
22914         (WebKit::WebBackForwardListProxy::goToItem): Added a check for
22915         when the proxy outlives its page.
22916         (WebKit::WebBackForwardListProxy::itemAtIndex): Ditto.
22917         (WebKit::WebBackForwardListProxy::backListCount): Ditto.
22918         (WebKit::WebBackForwardListProxy::forwardListCount): Ditto.
22919         (WebKit::WebBackForwardListProxy::close): Removed unneeded code
22920         setting m_closed.
22921         (WebKit::WebBackForwardListProxy::isActive): Added.
22922         (WebKit::WebBackForwardListProxy::clear): Added.
22923
22924         * WebProcess/WebPage/WebBackForwardListProxy.h: Added clear,
22925         isActive, and detach functions. Removed many other unneeded
22926         function and data members.
22927
22928         * WebProcess/WebPage/WebPage.cpp:
22929         (WebKit::WebPage::~WebPage): Added call to detach on the
22930         back/forward list.
22931         (WebKit::WebPage::backForwardList): Added.
22932         * WebProcess/WebPage/WebPage.h: Added backForwardList function
22933         and m_backForwardList data member.
22934
22935 2010-10-27  Beth Dakin  <bdakin@apple.com>
22936
22937         Reviewed by Darin Adler.
22938
22939         Fix for https://bugs.webkit.org/show_bug.cgi?id=48385 Add WebKit 
22940         SPI to scale a WebView
22941         -and corresponding-
22942         <rdar://problem/8107667>
22943
22944         This patch adds SPI to Mac WebKit that scales the page by the given 
22945         scale factor.
22946
22947         Implement scaleWebView(), which tells WebCore::Frame to scale, and 
22948         viewScaleFactor() which returns the current scale factor.
22949         * Shared/API/c/WKSharedAPICast.h:
22950         * UIProcess/API/C/WKPage.cpp:
22951         (WKPageScaleWebView):
22952         (WKPageGetViewScaleFactor):
22953         * UIProcess/API/C/WKPage.h:
22954         * UIProcess/WebPageProxy.cpp:
22955         (WebKit::WebPageProxy::WebPageProxy):
22956         (WebKit::WebPageProxy::scaleWebView):
22957         * UIProcess/WebPageProxy.h:
22958         (WebKit::WebPageProxy::viewScaleFactor):
22959         * WebProcess/WebPage/WebPage.cpp:
22960         (WebKit::WebPage::scaleWebView):
22961         (WebKit::WebPage::viewScaleFactor):
22962         * WebProcess/WebPage/WebPage.h:
22963         * WebProcess/WebPage/WebPage.messages.in:
22964
22965 2010-10-27  Jessie Berlin  <jberlin@apple.com>
22966
22967         Reviewed by Sam Weinig.
22968
22969         Fix the WebKit2 API tests.
22970         https://bugs.webkit.org/show_bug.cgi?id=48461
22971
22972         The API tests were failing because the tests expect to be able to send messages before the
22973         WebProcess finishes launching.
22974
22975         Instead of dispatching the pending messages in processDidFinishLaunching, dispatch them in
22976         ensureWebProcess but do not make messages pending if the process is launching.
22977
22978         * UIProcess/WebContext.cpp:
22979         (WebKit::WebContext::processDidFinishLaunching):
22980         Move dispatching the pending messages back from here ...
22981         (WebKit::WebContext::ensureWebProcess):
22982         ... to here.
22983         (WebKit::WebContext::postMessageToInjectedBundle):
22984         Check whether the process can send messages in order to determine if a message needs to be
22985         sent later.
22986
22987         * UIProcess/WebProcessProxy.h:
22988         (WebKit::WebProcessProxy::canSendMessage):
22989         The WebProcessProxy can send a message if it is valid or if it is launching.
22990
22991 2010-10-27  Anders Carlsson  <andersca@apple.com>
22992
22993         Reviewed by Sam Weinig.
22994
22995         More work on downloads
22996         https://bugs.webkit.org/show_bug.cgi?id=48480
22997
22998         * WebProcess/Downloads/Download.cpp:
22999         (WebKit::Download::~Download):
23000         Call platformInvalidate().
23001
23002         (WebKit::Download::didBegin):
23003         (WebKit::Download::didReceiveData):
23004         (WebKit::Download::didFinish):
23005         Add empty stubs.
23006
23007         * WebProcess/Downloads/DownloadManager.cpp:
23008         (WebKit::DownloadManager::startDownload):
23009         Create a Download object and insert it into the m_downloads map.
23010
23011         * WebProcess/Downloads/cf/DownloadCFNet.cpp:
23012         (WebKit::Download::platformInvalidate):
23013         Add empty stub.
23014         
23015         * WebProcess/Downloads/mac/DownloadMac.mm:
23016         (WebKit::Download::platformInvalidate):
23017         Tell the WKDownloadAsDelegate object that we're being invalidated.
23018
23019         (-[WKDownloadAsDelegate downloadDidBegin:]):
23020         Call Download::didBegin.
23021
23022         (-[WKDownloadAsDelegate download:didReceiveDataOfLength:]):
23023         Call Download::didReceiveData.
23024
23025         (-[WKDownloadAsDelegate downloadDidFinish:]):
23026         Call Download::didFinish.
23027
23028         * WebProcess/Downloads/qt/DownloadQt.cpp:
23029         (WebKit::Download::platformInvalidate):
23030         Add empty stub.
23031
23032 2010-10-27  Anders Carlsson  <andersca@apple.com>
23033
23034         Reviewed by Sam Weinig.
23035
23036         WebPageProxy::isValid should return false if the page has been explicitly closed
23037         https://bugs.webkit.org/show_bug.cgi?id=48458
23038
23039         * UIProcess/WebPageProxy.cpp:
23040         (WebKit::WebPageProxy::WebPageProxy):
23041         (WebKit::WebPageProxy::isValid):
23042         (WebKit::WebPageProxy::relaunch):
23043         (WebKit::WebPageProxy::close):
23044         (WebKit::WebPageProxy::processDidCrash):
23045         * UIProcess/WebPageProxy.h:
23046         (WebKit::WebPageProxy::isClosed):
23047
23048 2010-10-27  Anders Carlsson  <andersca@apple.com>
23049
23050         Reviewed by Adam Roben.
23051
23052         Begin stubbing out the Download class
23053         https://bugs.webkit.org/show_bug.cgi?id=48447
23054
23055         * WebKit2.pro:
23056         * WebKit2.xcodeproj/project.pbxproj:
23057         Add new files.
23058         
23059         * WebKit2Prefix.h:
23060         Include WebCore/EmptyProtocolDefinitions.h
23061         
23062         * WebProcess/Downloads/Download.cpp: Added.
23063         * WebProcess/Downloads/Download.h: Added.
23064
23065         * WebProcess/Downloads/DownloadManager.cpp:
23066         (WebKit::DownloadManager::startDownload):
23067         Create a Download object and start it.
23068
23069         * WebProcess/Downloads/mac/DownloadMac.mm: Added.
23070         (WebKit::Download::start):
23071         Create an NSURLDownload.
23072     
23073         * WebProcess/WebPage/WebFrame.cpp:
23074         (WebKit::WebFrame::startDownload):
23075         Ask the download manager to start downloading.
23076
23077         * win/WebKit2.vcproj:
23078         * win/WebKit2Common.vsprops:
23079         Add new files.
23080
23081 2010-10-27  Adam Roben  <aroben@apple.com>
23082
23083         Don't allow setting NetscapePlugin::m_isWindowed after NPP_New has
23084         completed
23085
23086         In Firefox, Chrome, and WebKit1 trying to set this value after NPP_New
23087         does not actually affect whether the plugin is windowed.
23088
23089         Fixes <http://webkit.org/b/46673> <rdar://problem/8484211> Assertion
23090         failure in NetscapePlugin::platformDestroy when running
23091         plugins/mouse-events.html in WebKit2 on Windows
23092
23093         Reviewed by Anders Carlsson.
23094
23095         * WebProcess/Plugins/Netscape/NetscapePlugin.cpp:
23096         (WebKit::NetscapePlugin::setIsWindowed): Moved here from the header.
23097         Bail out if m_isStarted is true, indicating that NPP_New has already
23098         finished.
23099
23100         * WebProcess/Plugins/Netscape/NetscapePlugin.h: Removed the
23101         implementation of setIsWindowed.
23102
23103 2010-10-27  Timothy Hatcher  <timothy@apple.com>
23104
23105         Add API for enabling the developer extras (Web Inspector).
23106
23107         http://webkit.org/b/48439
23108
23109         Reviewed by John Sullivan.
23110
23111         * Shared/WebPreferencesStore.cpp:
23112         (WebKit::WebPreferencesStore::WebPreferencesStore):
23113         (WebKit::WebPreferencesStore::encode):
23114         (WebKit::WebPreferencesStore::decode):
23115         * Shared/WebPreferencesStore.h:
23116         * UIProcess/API/C/WKPreferences.cpp:
23117         (WKPreferencesSetDeveloperExtrasEnabled):
23118         (WKPreferencesGetDeveloperExtrasEnabled):
23119         * UIProcess/API/C/WKPreferences.h:
23120         * UIProcess/WebPreferences.cpp:
23121         (WebKit::WebPreferences::setDeveloperExtrasEnabled):
23122         (WebKit::WebPreferences::developerExtrasEnabled):
23123         * UIProcess/WebPreferences.h:
23124         * WebProcess/WebPage/WebPage.cpp:
23125         (WebKit::WebPage::updatePreferences):
23126
23127 2010-10-27  Kenneth Rohde Christiansen  <kenneth@webkit.org>
23128
23129         Reviewed by Anders Carlsson.
23130
23131         Move contentsSizeChange from the UIClient into the PageClient and
23132         and make it a private Qt-only API in the process.
23133
23134         Make WKPageContentsSizeChangedCallback be a private API
23135         https://bugs.webkit.org/show_bug.cgi?id=48409
23136
23137         * UIProcess/API/C/WKPage.h:
23138         * UIProcess/API/qt/qwkpage.cpp:
23139         (QWKPagePrivate::didChangeContentsSize):
23140         (QWKPage::QWKPage):
23141         * UIProcess/API/qt/qwkpage_p.h:
23142         * UIProcess/PageClient.h:
23143         * UIProcess/WebPageProxy.cpp:
23144         (WebKit::WebPageProxy::didChangeContentsSize):
23145         * UIProcess/WebPageProxy.h:
23146         * UIProcess/WebPageProxy.messages.in:
23147         * UIProcess/WebUIClient.cpp:
23148         * WebProcess/WebCoreSupport/WebChromeClient.cpp:
23149         (WebKit::WebChromeClient::contentsSizeChanged):
23150
23151 2010-10-26  Brian Weinstein  <bweinstein@apple.com>
23152
23153         Reviewed by Adam Roben.
23154
23155         WebKit2 shouldn't try to send an empty user agent
23156         https://bugs.webkit.org/show_bug.cgi?id=48397
23157         
23158         Change the check of the custom user agent to an empty check instead of a null check. When the client application
23159         sets a custom user agent and then resets it, the custom user agent is set to an empty string. If all we do
23160         is check for a null string, then we will think we have a custom user agent (which is empty) and send an empty
23161         user agent.
23162
23163         * WebProcess/WebPage/WebPage.cpp:
23164         (WebKit::WebPage::userAgent):
23165
23166 2010-10-27  Adam Roben  <aroben@apple.com>
23167
23168         Don't call NPP_GetValue if the plugin didn't provide an implementation
23169
23170         Fixes <http://webkit.org/b/48433> Crash in
23171         NetscapePlugin::shouldLoadSrcURL when using Shockwave Director 10.3 in
23172         WebKit2 on Windows
23173
23174         Reviewed by Eric Carlson.
23175
23176         * WebProcess/Plugins/Netscape/NetscapePlugin.cpp:
23177         (WebKit::NetscapePlugin::NPP_GetValue): Null-check the getvalue pointer
23178         before using it to call NPP_GetValue.
23179
23180 2010-10-27  Balazs Kelemen  <kbalazs@webkit.org>
23181
23182         Reviewed by Andreas Kling.
23183
23184         [Qt] Assert due to multiple initialization of WebPlatformStrategies
23185         https://bugs.webkit.org/show_bug.cgi?id=48327
23186
23187         We are using the LocalizationStrategy in the UI process
23188         so the previous attempt to fix this (http://trac.webkit.org/changeset/70620)
23189         was wrong.
23190         * UIProcess/API/qt/qwkpage.cpp:
23191         (initializePlatformStrategiesIfNeeded):
23192         Call WebPlatformStrategies::initialize exactly once.
23193         (QWKPagePrivate::QWKPagePrivate):
23194
23195 2010-10-27  Kimmo Kinnunen  <kimmo.t.kinnunen@nokia.com>
23196
23197         Reviewed by Andreas Kling.
23198
23199         [Qt] WebKit2 UI process crashes if web process crashes
23200         https://bugs.webkit.org/show_bug.cgi?id=48400
23201
23202         Check the success of socket write operations.
23203         Avoids crashing the UI process if web process has crashed.
23204         Qt socket code segfaults when write is called for a socket
23205         that has had an error.
23206
23207         * Platform/CoreIPC/qt/ConnectionQt.cpp:
23208         (CoreIPC::Connection::platformInvalidate):
23209         Reset m_socket after deletion.
23210
23211         (CoreIPC::Connection::sendOutgoingMessage):
23212         Check error status of write operations and
23213         invalidate socket if writes fail.
23214
23215 2010-10-27  Kimmo Kinnunen  <kimmo.t.kinnunen@nokia.com>
23216
23217         Reviewed by Andreas Kling.
23218
23219         [Qt] Type mismatch while serializing/deserializing message id size
23220         https://bugs.webkit.org/show_bug.cgi?id=48401
23221
23222         Use correct types when reading data from connection buffer.
23223
23224         The message id is written as uint32_t, thus the buffer size should be
23225         calculated based on sizeof(uint32_t) and not sizeof(MessageID).
23226
23227         * Platform/CoreIPC/qt/ConnectionQt.cpp:
23228         (CoreIPC::Connection::readyReadHandler):
23229
23230 2010-10-27  Zalan Bujtas  <zbujtas@gmail.com>
23231
23232         Reviewed by Kenneth Rohde Christiansen.
23233
23234         Multiple WebPlatformStrategy initialization triggers assert in WebCore/PlatformStrategies. 
23235         Remove the code for now, as it is not used at all.
23236         https://bugs.webkit.org/show_bug.cgi?id=48327
23237
23238         * UIProcess/API/qt/qwkpage.cpp:
23239         (QWKPagePrivate::QWKPagePrivate):
23240
23241 2010-10-26  Brent Fulgham  <bfulgham@webkit.org>
23242
23243         Unreviewed build fix.
23244
23245         * WebProcess/WebCoreSupport/win/WebErrorsWin.cpp:
23246         (WebKit::cancelledError): Conditionalize use of CFNetwork calls
23247         and includes.
23248
23249 2010-10-26  Alexey Proskuryakov  <ap@apple.com>
23250
23251         Build fix.
23252
23253         * WebProcess/InjectedBundle/API/c/WKBundlePage.h: Modified original file, not its framework
23254         copy this time.
23255
23256 2010-10-26  Anders Carlsson  <andersca@apple.com>
23257
23258         Reviewed by Sam Weinig.
23259
23260         Add DownloadManager class
23261         https://bugs.webkit.org/show_bug.cgi?id=48388
23262
23263         * WebKit2.pro:
23264         * WebKit2.xcodeproj/project.pbxproj:
23265         Add new files.
23266
23267         * WebProcess/Downloads/DownloadManager.cpp: Added.
23268         (WebKit::DownloadManager::shared):
23269         (WebKit::DownloadManager::DownloadManager):
23270         * WebProcess/Downloads/DownloadManager.h: Added.
23271
23272         * win/WebKit2.vcproj:
23273         * win/WebKit2Common.vsprops:
23274         Add new files.
23275
23276 2010-10-26  Anders Carlsson  <andersca@apple.com>
23277
23278         Reviewed by Sam Weinig.
23279
23280         Pass a downloadID to the web process whenever a download is requested
23281         https://bugs.webkit.org/show_bug.cgi?id=48380
23282
23283         * UIProcess/WebContext.cpp:
23284         (WebKit::WebContext::generateDownloadID):
23285         Generate a unique download ID.
23286
23287         * UIProcess/WebPageProxy.cpp:
23288         (WebKit::WebPageProxy::receivedPolicyDecision):
23289         Pass along a download ID if needed.
23290
23291         * WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
23292         (WebKit::WebFrameLoaderClient::startDownload):
23293         Call the web frame member function.
23294
23295         * WebProcess/WebPage/WebFrame.cpp:
23296         (WebKit::WebFrame::WebFrame):
23297         Initialize m_policyDownloadID.
23298
23299         (WebKit::WebFrame::invalidatePolicyListener):
23300         Reset m_policyDownloadID.
23301
23302         (WebKit::WebFrame::didReceivePolicyDecision):
23303         Set m_policyDownloadID.
23304
23305         (WebKit::WebFrame::startDownload):
23306         Assert that m_policyDownloadID is not zero.
23307
23308         * WebProcess/WebPage/WebPage.cpp:
23309         (WebKit::WebPage::didReceivePolicyDecision):
23310         Pass along the download ID.
23311
23312         * WebProcess/WebPage/WebPage.messages.in:
23313         Add the download ID.
23314
23315 2010-10-26  Alexey Proskuryakov  <ap@apple.com>
23316
23317         Reviewed by Sam Weinig.
23318
23319         https://bugs.webkit.org/show_bug.cgi?id=48375
23320         <rdar://problem/8392724> Need delegate calls in PageLoaderClient to indicate if we have
23321         loaded insecure content
23322
23323         Added the delegate. Just like the bundle version, it misses WebOrigin parameter that Mac
23324         delegate call used to have. It doesn't seem necessary for clients.
23325
23326         * UIProcess/API/C/WKPage.h:
23327         * UIProcess/API/qt/qwkpage.cpp:
23328         (QWKPage::QWKPage):
23329         * UIProcess/WebLoaderClient.cpp:
23330         (WebKit::WebLoaderClient::didDisplayInsecureContentForFrame):
23331         (WebKit::WebLoaderClient::didRunInsecureContentForFrame):
23332         * UIProcess/WebLoaderClient.h:
23333         * UIProcess/WebPageProxy.cpp:
23334         (WebKit::WebPageProxy::didDisplayInsecureContentForFrame):
23335         (WebKit::WebPageProxy::didRunInsecureContentForFrame):
23336         * UIProcess/WebPageProxy.h:
23337         * UIProcess/WebPageProxy.messages.in:
23338         * WebProcess/InjectedBundle/API/c/WKBundlePage.h:
23339         * WebProcess/InjectedBundle/InjectedBundlePageLoaderClient.cpp:
23340         (WebKit::InjectedBundlePageLoaderClient::didDisplayInsecureContentForFrame):
23341         (WebKit::InjectedBundlePageLoaderClient::didRunInsecureContentForFrame):
23342         * WebProcess/InjectedBundle/InjectedBundlePageLoaderClient.h:
23343         * WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
23344         (WebKit::WebFrameLoaderClient::didDisplayInsecureContent):
23345         (WebKit::WebFrameLoaderClient::didRunInsecureContent):
23346
23347 2010-10-26  Jenn Braithwaite  <jennb@chromium.org>
23348
23349         Reviewed by Dmitry Titov.
23350
23351         Resource tracking failure when trying to move a frame between documents
23352         https://bugs.webkit.org/show_bug.cgi?id=44713
23353
23354         * WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
23355         (WebKit::WebFrameLoaderClient::transferLoadingResourceFromPage):
23356         Empty method.
23357         * WebProcess/WebCoreSupport/WebFrameLoaderClient.h:
23358
23359 2010-10-26  Jessie Berlin  <jberlin@apple.com>
23360
23361         Reviewed by Darin Adler.
23362
23363         Post any pending messages to the Injected Bundle in WebContext::processDidFinishLaunching
23364         instead of in WebContext::ensureWebProcess.
23365         https://bugs.webkit.org/show_bug.cgi?id=48367
23366
23367         Send pending injected bundle messages after the process finished launching instead of of
23368         directly after creating it.
23369
23370         * UIProcess/WebContext.cpp:
23371         (WebKit::WebContext::ensureWebProcess):
23372         Move the logic to dispatch pending injected bundle messages from here ...
23373         (WebKit::WebContext::processDidFinishLaunching):
23374         ... to here.
23375         Also use a reference instead of a pointer when sending the pending messages.
23376
23377 2010-10-26  Anders Carlsson  <andersca@apple.com>
23378
23379         Reviewed by Sam Weinig.
23380
23381         pageDidScroll callback should be on the UI process client rather than (or in addition to) the web process client
23382         https://bugs.webkit.org/show_bug.cgi?id=48366
23383
23384         * UIProcess/API/qt/qwkpage.cpp:
23385         (QWKPage::QWKPage):
23386         Add zero initializer.
23387
23388         * UIProcess/WebPageProxy.cpp:
23389         (WebKit::WebPageProxy::pageDidScroll):
23390         Call the pageDidScroll client function.
23391
23392         * UIProcess/WebPageProxy.messages.in:
23393         Add PageDidScroll message.
23394
23395         * WebProcess/WebPage/WebPage.cpp:
23396         (WebKit::WebPage::pageDidScroll):
23397         Send the PageDidScroll message.
23398
23399 2010-10-26  Brian Weinstein  <bweinstein@apple.com>
23400
23401         Reviewed by Darin Adler.
23402
23403         Need a way to retrieve custom user agent from a WKPage
23404         https://bugs.webkit.org/show_bug.cgi?id=48360
23405         <rdar://problem/8466537>
23406         
23407         Add an exported function on WKPage to get the page's custom user agent.
23408
23409         * UIProcess/API/C/WKPage.cpp:
23410         (WKPageCopyCustomUserAgent): Exported function that returns the custom user
23411             agent.
23412         * UIProcess/API/C/WKPage.h:
23413         * UIProcess/WebPageProxy.cpp:
23414         (WebKit::WebPageProxy::close): Clear the custom user agent string.
23415         (WebKit::WebPageProxy::processDidCrash): Ditto.
23416         (WebKit::WebPageProxy::setCustomUserAgent): Add a new early return if we're setting
23417             the custom user agent to what it was before, and set the custom user agent member
23418             variable.
23419         * UIProcess/WebPageProxy.h:
23420         (WebKit::WebPageProxy::customUserAgent): Returns the custom user agent.
23421
23422 2010-10-26  Simon Fraser  <simon.fraser@apple.com>
23423
23424         Reviewed by Sam Weinig.
23425
23426         Support layoutTestController.layerTreeAsText in WebKitTestRunner
23427         https://bugs.webkit.org/show_bug.cgi?id=42145
23428         
23429         Expose layerTreeAsText() as private API so that 
23430         WebKitTestRunner can use it.
23431
23432         * WebProcess/InjectedBundle/API/c/WKBundleFrame.cpp:
23433         (WKBundleFrameCopyLayerTreeAsText):
23434         * WebProcess/InjectedBundle/API/c/WKBundleFramePrivate.h:
23435         * WebProcess/WebPage/WebFrame.cpp:
23436         (WebKit::WebFrame::numberOfActiveAnimations):
23437         (WebKit::WebFrame::layerTreeAsText):
23438         (WebKit::WebFrame::pendingUnloadCount):
23439         * WebProcess/WebPage/WebFrame.h:
23440
23441 2010-10-26  Anders Carlsson  <andersca@apple.com>
23442
23443         Reviewed by Sam Weinig.
23444
23445         Enable the plug-in process on Mac
23446         https://bugs.webkit.org/show_bug.cgi?id=48350
23447
23448         * WebKit2Prefix.h:
23449         Flip the switch and enable the plug-in process on Mac.
23450
23451         * WebProcess/Plugins/Netscape/mac/NetscapePluginMac.mm:
23452         (WebKit::NetscapePlugin::platformDestroy):
23453         Fix a bogus assert.
23454
23455 2010-10-26  Zoltan Horvath  <zoltan@webkit.org>
23456
23457         Reviewed by Kenneth Rohde Christiansen.
23458
23459         [Qt] Implement SharedMemory for WebKit2
23460         https://bugs.webkit.org/show_bug.cgi?id=47345
23461
23462         Implement unimplemented functions in SharedMemoryQt.cpp.
23463         Rename MappedMemory.h to MappedMemoryPool.h, move MappedMemoryPool.{h|cpp} from
23464         Shared/qt to Platform/qt. Modify affected lines of WebKit2.pro.
23465         Move MappedMemory implementation into MappedMemoryPool. Remove unnecessary 
23466         methods of MappedMemoryPool.
23467
23468         * Platform/SharedMemory.h: Add a handle member for Qt.
23469         * Platform/qt/MappedMemoryPool.cpp: Copied from WebKit2/Shared/qt/MappedMemoryPool.cpp.
23470         (WebKit::MappedMemoryPool::searchForMappedMemory):
23471         (WebKit::MappedMemoryPool::mapMemory):
23472         (WebKit::MappedMemoryPool::mapFile):
23473         * Platform/qt/MappedMemoryPool.h: Copied from WebKit2/Shared/qt/MappedMemory.h.
23474         (WebKit::MappedMemoryPool::MappedMemory::mapSize):
23475         (WebKit::MappedMemoryPool::MappedMemory::markUsed):
23476         (WebKit::MappedMemoryPool::MappedMemory::markFree):
23477         (WebKit::MappedMemoryPool::MappedMemory::isFree):
23478         (WebKit::MappedMemoryPool::MappedMemory::data):
23479         (WebKit::MappedMemoryPool::MappedMemoryPool):
23480         Move MappedMemory implementation into MappedMemoryPool.
23481         * Platform/qt/SharedMemoryQt.cpp:
23482         (WebKit::SharedMemory::Handle::Handle): Implement.
23483         (WebKit::SharedMemory::Handle::~Handle):
23484         (WebKit::SharedMemory::Handle::isNull): Implement.
23485         (WebKit::SharedMemory::Handle::encode): Implement.
23486         (WebKit::SharedMemory::Handle::decode): Implement.
23487         (WebKit::SharedMemory::create): Implement.
23488         (WebKit::mapProtection): Added.
23489         (WebKit::SharedMemory::~SharedMemory): Implement.
23490         (WebKit::SharedMemory::createHandle): Implement.
23491         (WebKit::SharedMemory::systemPageSize): Implement.
23492         * Shared/qt/MappedMemory.h: Removed.
23493         * Shared/qt/MappedMemoryPool.cpp: Removed.
23494         * Shared/qt/UpdateChunk.cpp:
23495         (WebKit::UpdateChunk::UpdateChunk):
23496         (WebKit::UpdateChunk::decode):
23497         Modify to use MappedMemoryPool.
23498         * Shared/qt/UpdateChunk.h:
23499         * WebKit2.pro:
23500         Modify affected lines.
23501
23502 2010-10-25  Anders Carlsson  <andersca@apple.com>
23503
23504         Reviewed by Sam Weinig.
23505
23506         WebKit2 callbacks for findString() and countMatchesForString() should report whether the match count was exceeded
23507         https://bugs.webkit.org/show_bug.cgi?id=48285
23508         <rdar://problem/8576318>
23509
23510         * UIProcess/API/C/WKPage.h:
23511         Add a kWKMoreThanMaximumMatchCount constant.
23512
23513         * WebProcess/WebPage/FindController.cpp:
23514         (WebKit::FindController::findString):
23515         If we get back more matches than allowed, send kWKMoreThanMaximumMatchCount as the match constant.
23516
23517 2010-10-25  Dan Bernstein  <mitz@apple.com>
23518
23519         Non-Carbon build fix.
23520
23521         * WebProcess/Plugins/Netscape/mac/NetscapePluginMac.mm:
23522         (WebKit::NetscapePlugin::windowFrameChanged):
23523
23524 2010-10-25  Timothy Hatcher  <timothy@apple.com>
23525
23526         Stub out WebInspector objects and WKInspectorRef API.
23527
23528         https://webkit.org/b/48265
23529
23530         Reviewed by Anders Carlsson.
23531
23532         * Platform/CoreIPC/MessageID.h: Added MessageClassWebInspector and MessageClassWebInspectorProxy.
23533         * Shared/API/c/WKBase.h: Added WKInspectorRef.
23534         * Shared/APIObject.h: Added TypeInspector.
23535         * UIProcess/API/C/WKAPICast.h: Added WKInspectorRef to WebInspectorProxy mapping.
23536         * UIProcess/API/C/WKInspector.cpp: Added.
23537         (WKInspectorGetTypeID):
23538         (WKInspectorGetPage):
23539         * UIProcess/API/C/WKInspector.h: Added.
23540         * UIProcess/API/C/WKPage.cpp:
23541         (WKPageGetInspector): Added.
23542         * UIProcess/API/C/WKPage.h:
23543         * UIProcess/WebInspectorProxy.cpp: Added.
23544         (WebKit::WebInspectorProxy::WebInspectorProxy):
23545         (WebKit::WebInspectorProxy::~WebInspectorProxy):
23546         (WebKit::WebInspectorProxy::invalidate):
23547         * UIProcess/WebInspectorProxy.h:
23548         (WebKit::WebInspectorProxy::create):
23549         (WebKit::WebInspectorProxy::page):
23550         (WebKit::WebInspectorProxy::type):
23551         * UIProcess/WebPageProxy.cpp:
23552         (WebKit::WebPageProxy::inspector): Lazily create the WebInspectorProxy.
23553         * UIProcess/WebPageProxy.h:
23554         * WebKit2.pro: Added new files.
23555         * WebKit2.xcodeproj/project.pbxproj: Added new files.
23556         * WebProcess/WebPage/WebInspector.cpp: Added.
23557         (WebKit::WebInspector::WebInspector):
23558         * WebProcess/WebPage/WebInspector.h: Added.
23559         * WebProcess/WebPage/WebPage.cpp:
23560         (WebKit::WebPage::inspector): Lazily create the WebInspector.
23561         * WebProcess/WebPage/WebPage.h:
23562         * win/WebKit2.vcproj: Added new files.
23563
23564 2010-10-25  Anders Carlsson  <andersca@apple.com>
23565
23566         Reviewed by Dan Bernstein.
23567
23568         Update the fake Carbon window when the window frame changes
23569         https://bugs.webkit.org/show_bug.cgi?id=48273
23570
23571         * UIProcess/API/mac/WKView.mm:
23572         (screenForWindow):
23573         (-[WKView _updateWindowFrame]):
23574         Pass the window frame in Carbon coordinates.
23575
23576         * WebProcess/Plugins/Netscape/mac/NetscapePluginMac.mm:
23577         (WebKit::NetscapePlugin::windowFrameChanged):
23578         Update the window bounds.
23579
23580         * WebProcess/Plugins/PluginView.cpp:
23581         (WebKit::PluginView::setWindowFrame):
23582         Call the plug-in.
23583
23584         (WebKit::PluginView::platformLayer):
23585         Fix a crash when WebCore asked for the layer before it was initialized.
23586
23587 2010-10-25  Oliver Hunt  <oliver@apple.com>
23588
23589         Reviewed by Gavin Barraclough.
23590
23591         Remove exec and globalData arguments from jsNumber
23592         https://bugs.webkit.org/show_bug.cgi?id=48270
23593
23594         Mechanical removal of exec parameter to jsNumber
23595
23596         * WebProcess/Plugins/NPRuntimeObjectMap.cpp:
23597         (WebKit::NPRuntimeObjectMap::convertNPVariantToJSValue):
23598
23599 2010-10-25  Anders Carlsson  <andersca@apple.com>
23600
23601         Reviewed by Darin Adler.
23602
23603         Replace matchCountDidChange with didFindString/didFailToFindString
23604         https://bugs.webkit.org/show_bug.cgi?id=48262
23605         <rdar://problem/8568928>
23606
23607         * UIProcess/API/C/WKPage.h:
23608         * UIProcess/WebFindClient.cpp:
23609         (WebKit::WebFindClient::didFindString):
23610         (WebKit::WebFindClient::didFailToFindString):
23611         * UIProcess/WebFindClient.h:
23612         * UIProcess/WebPageProxy.cpp:
23613         (WebKit::WebPageProxy::didFindString):
23614         (WebKit::WebPageProxy::didFailToFindString):
23615         * UIProcess/WebPageProxy.h:
23616         * UIProcess/WebPageProxy.messages.in:
23617         * WebProcess/WebPage/FindController.cpp:
23618         (WebKit::FindController::findString):
23619
23620 2010-10-25  Anders Carlsson  <andersca@apple.com>
23621
23622         Reviewed by Adam Roben.
23623
23624         Add a pageDidScroll BundleUIClient callback
23625         https://bugs.webkit.org/show_bug.cgi?id=48260
23626         <rdar://problem/8531159>
23627
23628         * WebProcess/InjectedBundle/API/c/WKBundlePage.h:
23629         * WebProcess/InjectedBundle/InjectedBundlePageUIClient.cpp:
23630         (WebKit::InjectedBundlePageUIClient::pageDidScroll):
23631         Call the pageDidScroll callback.
23632
23633         * WebProcess/InjectedBundle/InjectedBundlePageUIClient.h:
23634         * WebProcess/WebCoreSupport/WebChromeClient.cpp:
23635         (WebKit::WebChromeClient::invalidateContentsForSlowScroll):
23636         (WebKit::WebChromeClient::scroll):
23637         Call pageDidScroll.
23638
23639         * WebProcess/WebPage/WebPage.cpp:
23640         (WebKit::WebPage::pageDidScroll):
23641         Hide the find banner UI and call the BundleUIClient pageDidScroll callback.
23642
23643 2010-10-25  Brian Weinstein  <bweinstein@apple.com>
23644
23645         Reviewed by Adam Roben.
23646
23647         Control + Mousewheel shouldn't be handled in WebKit2
23648         https://bugs.webkit.org/show_bug.cgi?id=48253
23649         
23650         Don't handle a wheel event if Control is pressed, pass the message back to DefWindowProc.
23651
23652         * UIProcess/win/WebView.cpp:
23653         (WebKit::WebView::onWheelEvent):
23654
23655 2010-10-25  Sam Weinig  <sam@webkit.org>
23656
23657         Reviewed by Dan Bernstein.
23658
23659         cancelledError for WebKit2 on windows should use kCFErrorDomainCFNetwork instead of webKitErrorDomain
23660         https://bugs.webkit.org/show_bug.cgi?id=48254
23661
23662         * WebProcess/WebCoreSupport/win/WebErrorsWin.cpp:
23663         (WebKit::cancelledError): Use kCFErrorDomainCFNetwork instead of webKitErrorDomain and switch over
23664         to using kCFURLErrorCancelled instead of a hard coded constant.
23665
23666 2010-10-25  Sam Weinig  <sam@webkit.org>
23667
23668         Reviewed by Anders Carlsson.
23669
23670         Need WebKit2 API to figure out if a frame can provide source
23671         <rdar://problem/8424632>
23672         https://bugs.webkit.org/show_bug.cgi?id=48252
23673
23674         * UIProcess/API/C/WKFrame.cpp:
23675         (WKFrameCanProvideSource):
23676         * UIProcess/API/C/WKFrame.h:
23677         * UIProcess/WebFrameProxy.cpp:
23678         (WebKit::WebFrameProxy::canProvideSource):
23679         * UIProcess/WebFrameProxy.h:
23680         Add API to figure out if a frame can provide source based on its
23681         MIME type.
23682
23683 2010-10-25  Anders Carlsson  <andersca@apple.com>
23684
23685         Reviewed by Dan Bernstein.
23686
23687         Java applets don't display on the page
23688         https://bugs.webkit.org/show_bug.cgi?id=48251
23689         <rdar://problem/8483759>
23690
23691         Add WKPreferencesSetJavaEnabled and initialize it to true by default, matching old WebKit.
23692
23693         * Shared/WebPreferencesStore.cpp:
23694         (WebKit::WebPreferencesStore::WebPreferencesStore):
23695         Initialize javaEnabled.
23696
23697         (WebKit::WebPreferencesStore::encode):
23698         Encode javaEnabled.
23699
23700         (WebKit::WebPreferencesStore::decode):
23701         Decode javaEnabled.
23702
23703         * Shared/WebPreferencesStore.h:
23704         Add javaEnabled.
23705
23706         * UIProcess/API/C/WKPreferences.cpp:
23707         (WKPReferencesSetJavaEnabled):
23708         (WKPReferencesGetJavaEnabled):
23709         Call the WebPreferences functions.
23710
23711         * WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
23712         (WebKit::WebFrameLoaderClient::createJavaAppletWidget):
23713         Just call createPlugin.
23714
23715         * WebProcess/WebPage/WebPage.cpp:
23716         (WebKit::WebPage::updatePreferences):
23717         Call Settings::setJavaEnabled.
23718
23719 2010-10-25  Patrick Gansterer  <paroga@webkit.org>
23720
23721         Reviewed by David Kilzer.
23722
23723         Replace _countof with WTF_ARRAY_LENGTH
23724         https://bugs.webkit.org/show_bug.cgi?id=48229
23725
23726         * UIProcess/Launcher/win/ProcessLauncherWin.cpp:
23727         (WebKit::ProcessLauncher::launchProcess):
23728         * UIProcess/Plugins/win/PluginInfoStoreWin.cpp:
23729         (WebKit::safariPluginsDirectory):
23730         (WebKit::addMozillaPluginDirectories):
23731         (WebKit::addWindowsMediaPlayerPluginDirectory):
23732         (WebKit::addAdobeAcrobatPluginDirectory):
23733         (WebKit::addMacromediaPluginDirectories):
23734         (WebKit::addPluginPathsFromRegistry):
23735         * WebProcess/WebPage/win/WebPageWin.cpp:
23736         (WebKit::WebPage::interpretKeyEvent):
23737
23738 2010-10-25  Adam Roben  <aroben@apple.com>
23739
23740         Stop copying .messages.in files into WebKit2's framework bundle
23741
23742         Fixes <http://webkit.org/b/48232> Several .messages.in files end up in
23743         WebKit2's framework bundle
23744
23745         Reviewed by Dan Bernstein.
23746
23747         * WebKit2.xcodeproj/project.pbxproj:
23748
23749 2010-10-25  Andras Becsi  <abecsi@webkit.org>
23750
23751         Reviewed by Csaba Osztrogonác.
23752
23753         [Qt] Fix the WebKit2 build after sheriffbot messed up the rollout patch.
23754         https://bugs.webkit.org/show_bug.cgi?id=48238
23755
23756         * Shared/qt/MappedMemory.h: Renamed from WebKit2/Platform/qt/MappedMemoryPool.h.
23757         (WebKit::MappedMemory::mapSize):
23758         (WebKit::MappedMemory::markUsed):
23759         (WebKit::MappedMemory::markFree):
23760         (WebKit::MappedMemory::isFree):
23761         (WebKit::MappedMemory::data):
23762
23763 2010-10-25  Sheriff Bot  <webkit.review.bot@gmail.com>
23764
23765         Unreviewed, rolling out r70450.
23766         http://trac.webkit.org/changeset/70450
23767         https://bugs.webkit.org/show_bug.cgi?id=48238
23768
23769         Causes WTR to crash on tests which use SharedMemory.
23770         (Requested by bbandix on #webkit).
23771
23772         * Platform/SharedMemory.h:
23773         * Platform/qt/MappedMemoryPool.cpp: Removed.
23774         * Platform/qt/SharedMemoryQt.cpp:
23775         (WebKit::SharedMemory::Handle::Handle):
23776         (WebKit::SharedMemory::Handle::~Handle):
23777         (WebKit::SharedMemory::Handle::encode):
23778         (WebKit::SharedMemory::Handle::decode):
23779         (WebKit::SharedMemory::create):
23780         (WebKit::SharedMemory::~SharedMemory):
23781         (WebKit::SharedMemory::createHandle):
23782         (WebKit::SharedMemory::systemPageSize):
23783         * Shared/qt/MappedMemory.h: Renamed from WebKit2/Platform/qt/MappedMemoryPool.h.
23784         (WebKit::MappedMemory::mapSize):
23785         (WebKit::MappedMemory::markUsed):
23786         (WebKit::MappedMemory::markFree):
23787         (WebKit::MappedMemory::isFree):
23788         (WebKit::MappedMemory::data):
23789         * Shared/qt/MappedMemoryPool.cpp: Added.
23790         (WebKit::MappedMemoryPool::MappedMemoryPool):
23791         (WebKit::MappedMemoryPool::instance):
23792         (WebKit::MappedMemoryPool::size):
23793         (WebKit::MappedMemoryPool::at):
23794         (WebKit::MappedMemoryPool::append):
23795         (WebKit::MappedMemoryPool::cleanUp):
23796         * Shared/qt/UpdateChunk.cpp:
23797         (WebKit::mapMemory):
23798         (WebKit::mapFile):
23799         (WebKit::UpdateChunk::UpdateChunk):
23800         (WebKit::UpdateChunk::decode):
23801         * Shared/qt/UpdateChunk.h:
23802         * WebKit2.pro:
23803
23804 2010-10-25  Zoltan Horvath  <zoltan@webkit.org>
23805
23806         Reviewed by Kenneth Rohde Christiansen.
23807
23808         [Qt] Implement SharedMemory for WebKit2
23809         https://bugs.webkit.org/show_bug.cgi?id=47345
23810
23811         Implement unimplemented functions in SharedMemoryQt.cpp.
23812         Rename MappedMemory.h to MappedMemoryPool.h, move MappedMemoryPool.{h|cpp} from
23813         Shared/qt to Platform/qt. Modify affected lines of WebKit2.pro.
23814         Move MappedMemory implementation into MappedMemoryPool. Remove unnecessary 
23815         methods of MappedMemoryPool.
23816
23817         * Platform/SharedMemory.h: Add a handle member for Qt.
23818         * Platform/qt/MappedMemoryPool.cpp: Copied from WebKit2/Shared/qt/MappedMemoryPool.cpp.
23819         (WebKit::MappedMemoryPool::searchForMappedMemory):
23820         (WebKit::MappedMemoryPool::mapMemory):
23821         (WebKit::MappedMemoryPool::mapFile):
23822         * Platform/qt/MappedMemoryPool.h: Copied from WebKit2/Shared/qt/MappedMemory.h.
23823         (WebKit::MappedMemoryPool::MappedMemory::mapSize):
23824         (WebKit::MappedMemoryPool::MappedMemory::markUsed):
23825         (WebKit::MappedMemoryPool::MappedMemory::markFree):
23826         (WebKit::MappedMemoryPool::MappedMemory::isFree):
23827         (WebKit::MappedMemoryPool::MappedMemory::data):
23828         (WebKit::MappedMemoryPool::MappedMemoryPool):
23829         Move MappedMemory implementation into MappedMemoryPool.
23830         * Platform/qt/SharedMemoryQt.cpp:
23831         (WebKit::SharedMemory::Handle::Handle): Implement.
23832         (WebKit::SharedMemory::Handle::~Handle):
23833         (WebKit::SharedMemory::Handle::isNull): Implement.
23834         (WebKit::SharedMemory::Handle::encode): Implement.
23835         (WebKit::SharedMemory::Handle::decode): Implement.
23836         (WebKit::SharedMemory::create): Implement.
23837         (WebKit::mapProtection): Added.
23838         (WebKit::SharedMemory::~SharedMemory): Implement.
23839         (WebKit::SharedMemory::createHandle): Implement.
23840         (WebKit::SharedMemory::systemPageSize): Implement.
23841         * Shared/qt/MappedMemory.h: Removed.
23842         * Shared/qt/MappedMemoryPool.cpp: Removed.
23843         * Shared/qt/UpdateChunk.cpp:
23844         (WebKit::UpdateChunk::UpdateChunk):
23845         (WebKit::UpdateChunk::decode):
23846         Modify to use MappedMemoryPool.
23847         * Shared/qt/UpdateChunk.h:
23848         * WebKit2.pro:
23849         Modify affected lines.
23850
23851 2010-10-24  Sam Weinig  <sam@webkit.org>
23852
23853         Reviewed by Dan Bernstein.
23854
23855         Need a way to determine the screen rect for a form control in WebKit2
23856         <rdar://problem/8530670>
23857         https://bugs.webkit.org/show_bug.cgi?id=48216
23858
23859         * Shared/API/c/WKSharedAPICast.h:
23860         (WebKit::toAPI):
23861         Add conversion from IntRect to WKRect.
23862
23863         * WebProcess/InjectedBundle/API/c/WKBundleNodeHandle.cpp:
23864         (WKBundleNodeHandleGetElementBounds):
23865         * WebProcess/InjectedBundle/API/c/WKBundleNodeHandlePrivate.h:
23866         * WebProcess/InjectedBundle/DOM/InjectedBundleNodeHandle.cpp:
23867         (WebKit::InjectedBundleNodeHandle::elementBounds):
23868         * WebProcess/InjectedBundle/DOM/InjectedBundleNodeHandle.h:
23869         Add SPI to get the rect in window space. The client can then convert this to screen
23870         space if they wish to.
23871
23872 2010-10-23  Xan Lopez  <xlopez@igalia.com>
23873
23874         Reviewed by Sam Weinig.
23875
23876         Unify globalData APIs
23877         https://bugs.webkit.org/show_bug.cgi?id=47969
23878
23879         Adapt code to JSGlobalObject::globalData returning a reference
23880         instead of a pointer.
23881
23882         * WebProcess/Plugins/NPRuntimeObjectMap.cpp:
23883         (WebKit::NPRuntimeObjectMap::getOrCreateJSObject):
23884         (WebKit::NPRuntimeObjectMap::evaluate):
23885
23886 2010-10-23  Alexey Proskuryakov  <ap@apple.com>
23887
23888         Reviewed by Anders Carlsson.
23889
23890         https://bugs.webkit.org/show_bug.cgi?id=48083
23891         <rdar://problem/8489082> Need WebKit2 API for private browsing (48083)
23892
23893         * WebProcess/WebCoreSupport/mac/WebSystemInterface.mm: (InitWebCoreSystemInterface):
23894         Initialize the new method.
23895
23896 2010-10-21  Timothy Hatcher  <timothy@apple.com>
23897
23898         Stub out WebInspectorFrontendClient.
23899
23900         https://bugs.webkit.org/show_bug.cgi?id=48091
23901
23902         Reviewed by Adam Roben.
23903
23904         * WebKit2.pro: Added WebInspectorFrontendClient.{cpp,h}.
23905         * WebKit2.xcodeproj/project.pbxproj: Added WebInspectorFrontendClient.{cpp,h}.
23906         * WebProcess/WebCoreSupport/WebInspectorFrontendClient.cpp: Added.
23907         (WebKit::WebInspectorFrontendClient::windowObjectCleared): Added.
23908         (WebKit::WebInspectorFrontendClient::frontendLoaded): Added.
23909         (WebKit::WebInspectorFrontendClient::moveWindowBy): Added.
23910         (WebKit::WebInspectorFrontendClient::localizedStringsURL): Added.
23911         (WebKit::WebInspectorFrontendClient::hiddenPanels): Added.
23912         (WebKit::WebInspectorFrontendClient::bringToFront): Added.
23913         (WebKit::WebInspectorFrontendClient::closeWindow): Added.
23914         (WebKit::WebInspectorFrontendClient::disconnectFromBackend): Added.
23915         (WebKit::WebInspectorFrontendClient::requestAttachWindow): Added.
23916         (WebKit::WebInspectorFrontendClient::requestDetachWindow): Added.
23917         (WebKit::WebInspectorFrontendClient::changeAttachedWindowHeight): Added.
23918         (WebKit::WebInspectorFrontendClient::inspectedURLChanged): Added.
23919         (WebKit::WebInspectorFrontendClient::sendMessageToBackend): Added.
23920         * WebProcess/WebCoreSupport/WebInspectorFrontendClient.h: Added.
23921         (WebKit::WebInspectorFrontendClient::WebInspectorFrontendClient): Added.
23922         * win/WebKit2.vcproj: Added WebInspectorFrontendClient.{cpp,h}.
23923
23924 2010-10-21  Timothy Hatcher  <timothy@apple.com>
23925
23926         Remove stale stubs that are not longer part of InspectorClient.
23927
23928         https://bugs.webkit.org/show_bug.cgi?id=48090
23929
23930         Reviewed by Adam Roben.
23931
23932         * WebProcess/WebCoreSupport/WebInspectorClient.cpp:
23933         * WebProcess/WebCoreSupport/WebInspectorClient.h:
23934
23935 2010-10-22  Andy Estes  <aestes@apple.com>
23936
23937         Reviewed by Adam Roben and Sam Weinig.
23938
23939         WebKit shouldn't load a plug-in based on file extension if a MIME type
23940         is specified.
23941         https://bugs.webkit.org/show_bug.cgi?id=48046
23942
23943         The fix landed in r70332 only covered the Mac port. Implement this fix
23944         for WebKit2 as well.
23945
23946         * UIProcess/Plugins/PluginInfoStore.cpp:
23947         (WebKit::PluginInfoStore::findPlugin):
23948
23949 2010-10-22  Anders Carlsson  <andersca@apple.com>
23950
23951         Fix clang++ build.
23952
23953         * Scripts/webkit2/messages.py:
23954
23955 2010-10-22  Anders Carlsson  <andersca@apple.com>
23956
23957         Fix build.
23958
23959         * UIProcess/API/qt/qwkpage_p.h:
23960         (QWKPagePrivate::didRelaunchProcess):
23961         * UIProcess/win/WebView.cpp:
23962         (WebKit::WebView::didRelaunchProcess):
23963         * UIProcess/win/WebView.h:
23964         * WebKit2.xcodeproj/project.pbxproj:
23965
23966 2010-10-22  Anders Carlsson  <andersca@apple.com>
23967
23968         Reviewed by Sam Weinig.
23969
23970         WebContext::ensureWebProcess shouldn't send multiple InitializeWebProcess messages.
23971         https://bugs.webkit.org/show_bug.cgi?id=48158
23972         <rdar://problem/8512572>
23973
23974         If the web process was launching when another call to ensureWebProcess is sent, we
23975         would end up sending another InitializeWebProcess message to it which would result
23976         in assertions firing. Fix this by only checking for m_process, and not requiring a process
23977         to be valid (which it won't be until it's finished launching).
23978         
23979         * UIProcess/WebContext.cpp:
23980         (WebKit::WebContext::ensureWebProcess):
23981
23982 2010-10-22  Anders Carlsson  <andersca@apple.com>
23983
23984         Reviewed by Sam Weinig.
23985
23986         Rename revive to relaunch everywhere.
23987
23988         * UIProcess/API/mac/PageClientImpl.h:
23989         * UIProcess/API/mac/PageClientImpl.mm:
23990         (WebKit::PageClientImpl::didRelaunchProcess):
23991         * UIProcess/API/mac/WKView.mm:
23992         (-[WKView _didRelaunchProcess]):
23993         * UIProcess/API/mac/WKViewInternal.h:
23994         * UIProcess/PageClient.h:
23995         * UIProcess/WebContext.cpp:
23996         (WebKit::WebContext::relaunchProcessIfNecessary):
23997         * UIProcess/WebContext.h:
23998         * UIProcess/WebPageNamespace.h:
23999         * UIProcess/WebPageProxy.cpp:
24000         (WebKit::WebPageProxy::relaunch):
24001         (WebKit::WebPageProxy::initializeWebPage):
24002         (WebKit::WebPageProxy::loadURL):
24003         (WebKit::WebPageProxy::loadURLRequest):
24004         * UIProcess/WebPageProxy.h:
24005
24006 2010-10-22  Anders Carlsson  <andersca@apple.com>
24007
24008         Reviewed by Adam Roben.
24009
24010         Fix assert when a NetscapePluginModule loses its last NetscapePlugin.
24011         https://bugs.webkit.org/show_bug.cgi?id=48155
24012
24013         (The assert in question is ASSERT(pluginModuleIndex != notFound) in 
24014         NetscapePluginModule::shutdown()).
24015
24016         * WebProcess/Plugins/Netscape/NetscapePluginModule.cpp:
24017         (WebKit::NetscapePluginModule::pluginCreated):
24018         If we didn't have any live plug-ins, load the plug-in module.
24019
24020         (WebKit::NetscapePluginModule::pluginDestroyed):
24021         If this was the last plug-in, unload the plug-in module.
24022
24023         (WebKit::NetscapePluginModule::shutdown):
24024         Set m_isInitialized to false.
24025
24026         (WebKit::NetscapePluginModule::load):
24027         Don't do anything if the plug-in module has already been initialized.
24028
24029         (WebKit::NetscapePluginModule::unload):
24030         Assert that we're not initialized.
24031
24032         * WebProcess/Plugins/Netscape/mac/NetscapePluginMac.mm:
24033         (WebKit::NetscapePlugin::platformPostInitialize):
24034         Assert that we successfully created the window.
24035
24036 2010-10-22  Jessie Berlin  <jberlin@apple.com>
24037
24038         Reviewed by Anders Carlsson.
24039
24040         Crash in Connection::isValid when called in response to
24041         VisitedLinksProvider::pendingVisitedLinksTimerFired after WebProcessProxy::didClose was
24042         already called.
24043         https://bugs.webkit.org/show_bug.cgi?id=48153
24044
24045         * UIProcess/VisitedLinkProvider.cpp:
24046         (WebKit::VisitedLinkProvider::stopVisitedLinksTimer):
24047         * UIProcess/VisitedLinkProvider.h:
24048
24049         * UIProcess/WebContext.cpp:
24050         (WebKit::WebContext::processDidClose):
24051         Stop the pendingVisitedLinksTimer and null out the process.
24052         * UIProcess/WebContext.h:
24053
24054         * UIProcess/WebProcessProxy.cpp:
24055         (WebKit::WebProcessProxy::didClose):
24056         Tell the WebContext that the WebProcess did close.
24057
24058 2010-10-22  Sam Weinig  <sam@webkit.org>
24059
24060         Fix Qt build.
24061
24062         * UIProcess/API/qt/ClientImpl.h:
24063
24064 2010-10-22  Sam Weinig  <sam@webkit.org>
24065
24066         Reviewed by Anders Carlsson.
24067
24068         WebKit2 needs to pass the current event modifier flags when requesting a new window
24069         https://bugs.webkit.org/show_bug.cgi?id=48140
24070
24071         In addition to passing modifier flags from the now passed NavigationAction, also pass
24072         the WindowFeatures to the UIProcess.
24073
24074         * Platform/CoreIPC/HandleMessage.h:
24075         (CoreIPC::callMemberFunction):
24076         * Shared/WebCoreArgumentCoders.h:
24077         * Shared/WebEvent.h:
24078         (WebKit::WebEvent::modifiers):
24079         * UIProcess/API/C/WKPage.h:
24080         * UIProcess/WebPageProxy.cpp:
24081         (WebKit::WebPageProxy::createNewPage):
24082         * UIProcess/WebPageProxy.h:
24083         * UIProcess/WebPageProxy.messages.in:
24084         * UIProcess/WebUIClient.cpp:
24085         (WebKit::WebUIClient::createNewPage):
24086         * UIProcess/WebUIClient.h:
24087         * WebProcess/WebCoreSupport/WebChromeClient.cpp:
24088         (WebKit::WebChromeClient::createWindow):
24089         * WebProcess/WebCoreSupport/WebChromeClient.h:
24090         * WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
24091         (WebKit::WebFrameLoaderClient::dispatchCreatePage):
24092         (WebKit::modifiersForNavigationAction):
24093         (WebKit::mouseButtonForNavigationAction):
24094         * WebProcess/WebCoreSupport/WebFrameLoaderClient.h:
24095
24096 2010-10-22  Anders Carlsson  <andersca@apple.com>
24097
24098         Reviewed by Sam Weinig.
24099
24100         Rename processDidExit to processDidCrash
24101         https://bugs.webkit.org/show_bug.cgi?id=48146
24102
24103         * UIProcess/API/C/WKPage.h:
24104         * UIProcess/API/mac/PageClientImpl.h:
24105         * UIProcess/API/mac/PageClientImpl.mm:
24106         (WebKit::PageClientImpl::processDidCrash):
24107         * UIProcess/API/mac/WKView.mm:
24108         (-[WKView _processDidCrash]):
24109         * UIProcess/API/mac/WKViewInternal.h:
24110         * UIProcess/API/qt/qwkpage.cpp:
24111         (QWKPage::QWKPage):
24112         * UIProcess/API/qt/qwkpage_p.h:
24113         (QWKPagePrivate::processDidCrash):
24114         * UIProcess/PageClient.h:
24115         * UIProcess/WebLoaderClient.cpp:
24116         (WebKit::WebLoaderClient::processDidBecomeUnresponsive):
24117         (WebKit::WebLoaderClient::processDidBecomeResponsive):
24118         (WebKit::WebLoaderClient::processDidCrash):
24119         * UIProcess/WebLoaderClient.h:
24120         * UIProcess/WebPageProxy.cpp:
24121         (WebKit::WebPageProxy::processDidBecomeUnresponsive):
24122         (WebKit::WebPageProxy::processDidBecomeResponsive):
24123         (WebKit::WebPageProxy::processDidCrash):
24124         * UIProcess/WebPageProxy.h:
24125         * UIProcess/WebProcessProxy.cpp:
24126         (WebKit::WebProcessProxy::didClose):
24127         * UIProcess/win/WebView.cpp:
24128         (WebKit::WebView::processDidCrash):
24129         * UIProcess/win/WebView.h:
24130
24131 2010-10-22  Dan Bernstein  <mitz@apple.com>
24132
24133         Reviewed by Sam Weinig.
24134
24135         Corrected target dependencies.
24136
24137         * WebKit2.xcodeproj/project.pbxproj: Made WebKit2 depend on DerivedSources and removed
24138         the explicit dependency of All on DerivedSources and WebKit2, since WebProcess depends on
24139         them.
24140
24141 2010-10-20  Jon Honeycutt  <jhoneycutt@apple.com>
24142
24143         <rdar://problem/8423766> Cursor does not become "busy" when a page is
24144         loading with WebKit2
24145
24146         Reviewed by Sam Weinig.
24147
24148         * UIProcess/API/C/win/WKViewPrivate.cpp: Added.
24149         (WKViewSetOverrideCursor):
24150         Call the WebView's setOverrideCursor().
24151
24152         * UIProcess/API/C/win/WKViewPrivate.h: Added.
24153         Declare WKViewSetOVerrideCursor().
24154
24155         * UIProcess/win/WebView.cpp:
24156         (WebKit::WebView::WebView):
24157         Initialize new member vars to 0.
24158         (WebKit::WebView::updateNativeCursor):
24159         If there is an override cursor, and the last cursor set from the web
24160         process was the arrow cursor, use the override cursor. Otherwise, use
24161         the cursor from the web process.
24162         (WebKit::WebView::setCursor):
24163         Record the web process's cursor, and call updateNativeCursor().
24164         (WebKit::WebView::setOverrideCursor):
24165         Record the override cursor, and call updateNativeCursor().
24166
24167         * UIProcess/win/WebView.h:
24168         Declare setOverrideCursor() and updateNativeCursor(). Add members to
24169         hold the last cursor set from the web process and the override cursor.
24170
24171         * win/WebKit2.vcproj:
24172         Add new files to project.
24173
24174         * win/WebKit2Generated.make:
24175         Copy WKViewPrivate.h with other headers.
24176
24177 2010-10-21  Anders Carlsson  <andersca@apple.com>
24178
24179         Reviewed by Adam Roben.
24180
24181         Crash evaluating JavaScript string that throws an exception
24182         https://bugs.webkit.org/show_bug.cgi?id=48092
24183         <rdar://problem/8487657>
24184
24185         * UIProcess/WebProcessProxy.cpp:
24186         (WebKit::WebProcessProxy::sendMessage):
24187         m_connection can be null here; just return false if that is the case.
24188     
24189         * WebProcess/WebPage/WebPage.cpp:
24190         (WebKit::WebPage::runJavaScriptInMainFrame):
24191         If the JSValue returned is null we just send along a null string.
24192
24193 2010-10-21  Adam Roben  <aroben@apple.com>
24194
24195         Invalidate the plugin's HWND when NPN_InvalidateRect is called
24196
24197         Fixes <http://webkit.org/b/48086> <rdar://problem/8482944> Silverlight
24198         doesn't repaint in WebKit2
24199
24200         Reviewed by Anders Carlsson.
24201
24202         * WebProcess/Plugins/Netscape/NetscapePlugin.cpp:
24203         (WebKit::NetscapePlugin::invalidate): Call platformInvalidate before
24204         invalidating via the PluginController.
24205
24206         * WebProcess/Plugins/Netscape/NetscapePlugin.h: Added platformInvalidate.
24207
24208         * WebProcess/Plugins/Netscape/mac/NetscapePluginMac.mm:
24209         (WebKit::NetscapePlugin::platformInvalidate):
24210         * WebProcess/Plugins/Netscape/qt/NetscapePluginQt.cpp:
24211         (WebKit::NetscapePlugin::platformInvalidate):
24212         Stubbed out.
24213
24214         * WebProcess/Plugins/Netscape/win/NetscapePluginWin.cpp:
24215         (WebKit::NetscapePlugin::platformInvalidate): If the plugin is
24216         windowed, invalidate its HWND via ::InvalidateRect.
24217
24218 2010-10-21  Anders Carlsson  <andersca@apple.com>
24219
24220         Reviewed by John Sullivan.
24221
24222         Find indicator does not draw found text in WebKit2 when page is not scrolled to top
24223         <rdar://problem/8562647>
24224         https://bugs.webkit.org/show_bug.cgi?id=48089
24225
24226         We always want the selection rectangle in "WebCore window coordinates" which is the same
24227         as WKView coordinates in WebKit2.
24228
24229         * WebProcess/WebPage/FindController.cpp:
24230         (WebKit::FindController::updateFindIndicator):
24231
24232 2010-10-21  Anders Carlsson  <andersca@apple.com>
24233
24234         Reviewed by David Hyatt.
24235
24236         Always clear the selection when the find string isn't found
24237         https://bugs.webkit.org/show_bug.cgi?id=48087
24238         <rdar://problem/8564640>
24239
24240         * WebProcess/WebPage/FindController.cpp:
24241         (WebKit::FindController::findString):
24242
24243 2010-10-21  Alexey Proskuryakov  <ap@apple.com>
24244
24245         Reviewed by John Sullivan.
24246
24247         https://bugs.webkit.org/show_bug.cgi?id=48083
24248         <rdar://problem/8489082> Need WebKit2 API for private browsing
24249
24250         This just adds glue code for passing the preference from embedder to WebCore. The aspects of
24251         private browsing that WebCore is responsible for do work, but cookies are not handled yet.
24252
24253         * Shared/WebPreferencesStore.cpp:
24254         (WebKit::WebPreferencesStore::WebPreferencesStore):
24255         (WebKit::WebPreferencesStore::encode):
24256         (WebKit::WebPreferencesStore::decode):
24257         * Shared/WebPreferencesStore.h:
24258         * UIProcess/API/C/WKPreferences.cpp:
24259         (WKPreferencesSetPrivateBrowsingEnabled):
24260         (WKPreferencesGetPrivateBrowsingEnabled):
24261         * UIProcess/API/C/WKPreferences.h:
24262         * UIProcess/WebPreferences.cpp:
24263         (WebKit::WebPreferences::setPrivateBrowsingEnabled):
24264         (WebKit::WebPreferences::privateBrowsingEnabled):
24265         * UIProcess/WebPreferences.h:
24266         * WebProcess/WebPage/WebPage.cpp:
24267         (WebKit::WebPage::updatePreferences):
24268         Do what it takes to pass a single boolean from WebKit2 to WebCore. And we aren't even syncing
24269         the preference to user defaults yet.
24270
24271 2010-10-20  Adam Roben  <aroben@apple.com>
24272
24273         Ask the UI client to close the page when the WKView receives a WM_CLOSE
24274         message
24275
24276         Fixes <http://webkit.org/b/48044> <rdar://problem/8488446> Pressing
24277         Ctrl+W when viewing a full-page PDF destroys the WKView but doesn't
24278         close its parent window
24279
24280         Reviewed by Jon Honeycutt.
24281
24282         * UIProcess/win/WebView.cpp:
24283         (WebKit::WebView::wndProc): Call through to WebPageProxy::tryClose when
24284         we receive a WM_CLOSE message, rather than passing the message along to
24285         ::DefWindowProcW. tryClose will end up asking the UI client to close
24286         the page, while ::DefWindowProcW would destroy us synchronously without
24287         notifying the UI client at all. One case where we'll get sent a
24288         WM_CLOSE message is when the user presses Ctrl+W when using the Adobe
24289         Reader plugin to view a PDF.
24290
24291 2010-10-20  Adam Roben  <aroben@apple.com>
24292
24293         Remove confusing and redundant "host window" terminology from WKView on
24294         Windows
24295
24296         WKView's "host window" is really just its HWND's parent window. The
24297         terminology has been updated to reflect this. The unnecessary
24298         WKViewGetHostWindow function has been removed, as it was a synonym for
24299         ::GetParent(WKViewGetWindow(view)).
24300
24301         Fixes <http://webkit.org/b/48039> WKView's "host window" API is
24302         confusing
24303
24304         Reviewed by Sam Weinig.
24305
24306         * UIProcess/API/C/win/WKView.cpp:
24307         (WKViewCreate):
24308         (WKViewSetParentWindow):
24309         * UIProcess/API/C/win/WKView.h:
24310         Replaced "host window" with "parent window". Removed
24311         WKViewGetHostWindow.
24312
24313         * UIProcess/win/WebView.cpp:
24314         (WebKit::WebView::WebView):
24315         (WebKit::WebView::setParentWindow):
24316         (WebKit::WebView::windowAncestryDidChange):
24317         (WebKit::WebView::close):
24318         * UIProcess/win/WebView.h:
24319         (WebKit::WebView::create):
24320         Replaced "host window" with "parent window". Removed m_hostWindow and
24321         hostWindow().
24322
24323 2010-10-21  Sam Weinig  <sam@webkit.org>
24324
24325         Reviewed by Adam Roben.
24326
24327         Null frame passed when running alert from UserScript run at document start
24328         <rdar://problem/8573809>
24329         https://bugs.webkit.org/show_bug.cgi?id=48036
24330
24331         Don't initialize a Frame until after we have notified the UIProcess of its creation.
24332         This is necessary since arbitrary actions can happen during the call to Frame::init()
24333         such as the running of UserScripts.
24334
24335         * WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
24336         (WebKit::WebFrameLoaderClient::createFrame):
24337         * WebProcess/WebPage/WebFrame.cpp:
24338         (WebKit::WebFrame::createMainFrame):
24339         (WebKit::WebFrame::createSubframe):
24340         (WebKit::WebFrame::create):
24341         (WebKit::WebFrame::WebFrame):
24342         (WebKit::WebFrame::init):
24343         * WebProcess/WebPage/WebFrame.h:
24344         * WebProcess/WebPage/WebPage.cpp:
24345         (WebKit::WebPage::WebPage):
24346
24347 2010-10-21  Balazs Kelemen  <kbalazs@webkit.org>
24348
24349         Reviewed by Andreas Kling.
24350
24351         [Qt] PluginInfoStore does not set up mime types for plugins
24352         https://bugs.webkit.org/show_bug.cgi?id=48063
24353
24354         * UIProcess/Plugins/qt/PluginInfoStoreQt.cpp:
24355         (WebKit::PluginInfoStore::getPluginInfo): Store the mime types
24356         that are supported by the plugin into the plugin argument.
24357
24358 2010-10-21  Juha Savolainen  <juha.savolainen@weego.fi>
24359
24360         Reviewed by Kenneth Rohde Christiansen.
24361
24362         This is initial implementation of QWKHistory. The QWKHistory class represents the history of a QWKPage.
24363         https://bugs.webkit.org/show_bug.cgi?id=47716
24364
24365         Each QWKPage instance contains a history of a visited pages that can be accessed by QWKHistory::history().
24366         The QWKPagePrivate class creates QWKHistory in constructor.
24367
24368         * UIProcess/API/qt/qwkhistory.cpp: Added.
24369         (QWKHistoryPrivate::QWKHistoryPrivate):
24370         (QWKHistoryPrivate::createHistory): Creates history object.
24371         (QWKHistoryPrivate::~QWKHistoryPrivate):
24372         (QWKHistory::QWKHistory):
24373         (QWKHistory::~QWKHistory):
24374         (QWKHistory::backListCount): Gets items count in back.
24375         (QWKHistory::forwardListCount): Gets items count in forward.
24376         (QWKHistory::count): Gets items count.
24377         * UIProcess/API/qt/qwkhistory.h: Added.
24378         * UIProcess/API/qt/qwkhistory_p.h: Added.
24379         * UIProcess/API/qt/qwkpage.cpp:
24380         (QWKPagePrivate::QWKPagePrivate):
24381         (QWKPagePrivate::~QWKPagePrivate):
24382         (QWKPage::history): Returns history object.
24383         * UIProcess/API/qt/qwkpage.h:
24384         * UIProcess/API/qt/qwkpage_p.h: Added history member variable.
24385         * WebKit2.pro: Added WKBackForwardList.h, WKBackForwardList.cpp and new files.
24386
24387 2010-10-14  Adam Roben  <aroben@apple.com>
24388
24389         Don't require the plugin to always use the same NPP struct we gave it
24390         in NPP_New
24391
24392         Neither WebCore, nor WebKit/mac, nor Firefox requires this, and
24393         Shockwave (at least) seems to use a different NPP struct that contains
24394         the same ndata member. So we shouldn't enforce it, either.
24395
24396         Fixes <http://webkit.org/b/47690> <rdar://problem/8553020> Assertion
24397         failure in NetscapePlugin::fromNPP when using Shockwave in WebKit2
24398
24399         Reviewed by John Sullivan.
24400
24401         * WebProcess/Plugins/Netscape/NetscapePlugin.cpp:
24402         (WebKit::NetscapePlugin::fromNPP): Removed the bogus assertion.
24403
24404 2010-10-20  Anders Carlsson  <andersca@apple.com>
24405
24406         Fix clang++ build.
24407
24408         * UIProcess/API/C/WKNativeEvent.h:
24409
24410 2010-10-20  Eric Carlson  <eric.carlson@apple.com>
24411
24412         Reviewed by Simon Fraser.
24413
24414         Crash closing page with <video> element
24415         https://bugs.webkit.org/show_bug.cgi?id=47960
24416         <rdar://problem/8573297>
24417
24418         I couldn't think of a good way to make a layout test for this because the
24419         crash isn't triggered by closing an iframe.
24420
24421         * WebProcess/WebCoreSupport/WebChromeClient.cpp:
24422         (WebKit::WebChromeClient::scheduleCompositingLayerSync): NULL check drawingArea().
24423
24424 2010-10-20  Anders Carlsson  <andersca@apple.com>
24425
24426         Reviewed by Darin Adler.
24427
24428         Out of process plug-ins are never asked to initially paint
24429         https://bugs.webkit.org/show_bug.cgi?id=47993
24430         <rdar://problem/8570342>
24431
24432         * Platform/CoreIPC/HandleMessage.h:
24433         (CoreIPC::callMemberFunction):
24434         Add new callMemberFunction overload.
24435
24436         * PluginProcess/PluginControllerProxy.cpp:
24437         (WebKit::PluginControllerProxy::paintEntirePlugin):
24438         Set the dirty rect to be the entire plug-in rect and then paint the plug-in.
24439
24440         * PluginProcess/PluginControllerProxy.messages.in:
24441         Add PaintEntirePlugin message.
24442
24443         * WebProcess/Plugins/PluginProxy.cpp:
24444         (WebKit::PluginProxy::PluginProxy):
24445         Initialize m_pluginBackingStoreContainsValidData to false.
24446
24447         (WebKit::PluginProxy::paint):
24448         If m_pluginBackingStoreContainsValidData is false, synchronously ask the plug-in to paint,
24449         then blit the plug-in backing store into our own backing store.
24450
24451         (WebKit::PluginProxy::geometryDidChange):
24452         Set m_pluginBackingStoreContainsValidData to false.
24453
24454         (WebKit::PluginProxy::update):
24455         Set m_pluginBackingStoreContainsValidData to true if the plug-in has painted its entire area.
24456
24457 2010-10-19  Jessie Berlin  <jberlin@apple.com>
24458
24459         Reviewed by Geoffrey Garen.
24460
24461         ASSERTION FAILURE: !m_adoptionIsRequired for the WebFrame under the
24462         InjectedBundlePageLoaderClient::didClearWindowObjectForFrame callback.
24463         https://bugs.webkit.org/show_bug.cgi?id=47960
24464
24465         Do not try to initialize the coreFrame (which results in the
24466         InjectedBundlePageLoaderClient::didClearWindowObjectForFrame being called) until after the
24467         WebFrame constructor has returned and the WebFrame has been adopted.
24468
24469         * WebProcess/WebPage/WebFrame.cpp:
24470         (WebKit::WebFrame::create):
24471         Moved the call to init the coreFrame here ...
24472         (WebKit::WebFrame::WebFrame):
24473         ... from here.
24474
24475 2010-10-20  Dirk Schulze  <krit@webkit.org>
24476
24477         Reviewed by Nikolas Zimmermann.
24478
24479         Merge ColorSpace and ImageColorSpace enums
24480         https://bugs.webkit.org/show_bug.cgi?id=47922
24481
24482         Renamed ColorSpace enum entries DeviceColorSpace and sRGBColorSpace to ColorSpaceDeviceRGB and ColorSpaceSRGB
24483         to follow webkit style rules.
24484
24485         * UIProcess/FindIndicator.cpp:
24486         (WebKit::FindIndicator::draw):
24487         * WebProcess/WebPage/FindPageOverlay.cpp:
24488         (WebKit::FindPageOverlay::drawRect):
24489
24490 2010-10-20  Nikolas Zimmermann  <nzimmermann@rim.com>
24491
24492         Not reviewed.
24493
24494         Fix Qt/WebKit2 build, also needs a svg/properties include.
24495
24496         * WebKit2.pro:
24497
24498 2010-10-19  Anders Carlsson  <andersca@apple.com>
24499
24500         Reviewed by Sam Weinig.
24501
24502         Fix MiniBrowser crashes during startup and shutdown
24503         https://bugs.webkit.org/show_bug.cgi?id=47954
24504
24505         * UIProcess/WebContext.cpp:
24506         (WebKit::WebContext::sharedProcessContext):
24507         Initialize the main thread.
24508         
24509         (WebKit::WebContext::create):
24510         Ditto.
24511
24512         (WebKit::WebContext::WebContext):
24513         Add the language observer here so we know that it will always be set up.
24514
24515         (WebKit::WebContext::ensureWebProcess):
24516         Remove code.
24517
24518         * UIProcess/WebContext.h:
24519
24520 2010-10-19  Anders Carlsson  <andersca@apple.com>
24521
24522         Reviewed by Sam Weinig.
24523
24524         Coalesce plug-in drawing
24525         https://bugs.webkit.org/show_bug.cgi?id=47939
24526
24527         Coalesce plug-in drawing in the same manner as we do it in the chunked update drawing area.
24528
24529         * PluginProcess/PluginControllerProxy.cpp:
24530         (WebKit::PluginControllerProxy::PluginControllerProxy):
24531         Initialize m_waitingForDidUpdate to false.
24532
24533         (WebKit::PluginControllerProxy::startPaintTimer):
24534         Move code from invalidate out to here. Don't start the paint timer if m_waitingForDidUpdate is true.
24535
24536         (WebKit::PluginControllerProxy::invalidate):
24537         Call startPaintTimer.
24538
24539         (WebKit::PluginControllerProxy::didUpdate):
24540         Set m_waitingForDidUpdate to false and start the paint timer.
24541
24542         * PluginProcess/PluginControllerProxy.messages.in:
24543         Add DidUpdate message.
24544
24545         * WebProcess/Plugins/PluginProxy.cpp:
24546         (WebKit::PluginProxy::PluginProxy):
24547         Initialize m_waitingForPaintInResponseToUpdate to false.
24548
24549         (WebKit::PluginProxy::paint):
24550         If m_waitingForPaintInResponseToUpdate is true, send a DidUpdate message.
24551
24552         (WebKit::PluginProxy::update):
24553         Set m_waitingForPaintInResponseToUpdate to true.
24554
24555 2010-10-19  Sam Weinig  <sam@webkit.org>
24556
24557         Reviewed by Anders Carlsson.
24558
24559         Add alternateHTMLString and unreachableURL API to WebKit2
24560         <rdar://problem/8557864>
24561         https://bugs.webkit.org/show_bug.cgi?id=47938
24562
24563         * UIProcess/API/C/WKFrame.cpp:
24564         (WKFrameCopyUnreachableURL):
24565         * UIProcess/API/C/WKFrame.h:
24566         Add accessor for the unreachableURL if one is set. It will only be
24567         set during a loadAlternateHTMLString and will be unset on the next normal
24568         didStartProvisionalLoadForFrame call.
24569
24570         * UIProcess/API/C/WKPage.cpp:
24571         (WKPageLoadHTMLString): Remove whitespace.
24572         (WKPageLoadAlternateHTMLString):
24573         * UIProcess/API/C/WKPage.h:
24574         Add function to load a string as "alternate", meant for use as error pages.
24575
24576         * UIProcess/WebFrameProxy.h:
24577         (WebKit::WebFrameProxy::setUnreachableURL): 
24578         (WebKit::WebFrameProxy::unreachableURL):
24579         Add setter/getter for the unreachableURL.
24580
24581         * UIProcess/WebPageProxy.cpp:
24582         (WebKit::WebPageProxy::loadAlternateHTMLString):
24583         Plumb through the call to loadAlternateHTMLString to the WebProcess
24584         and set the main frame's unreachableURL. This does nothing if no pages
24585         have ever been loaded in this page.
24586
24587         (WebKit::WebPageProxy::didStartProvisionalLoadForFrame):
24588         If this is not a provisional load of substitute data for an unreachableURL
24589         (e.g. someone who called WKPageLoadAlternateHTMLString), reset the
24590         frame's unreachableURL.
24591
24592         * UIProcess/WebPageProxy.h:
24593         * UIProcess/WebPageProxy.messages.in:
24594         Update function signatures.
24595
24596         * WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
24597         (WebKit::WebFrameLoaderClient::dispatchDidStartProvisionalLoad):
24598         Pass whether or not this is a load of SubstituteData for an unreachableURL
24599         to the UIProcess.
24600
24601         * WebProcess/WebPage/WebPage.cpp:
24602         (WebKit::WebPage::loadData):
24603         (WebKit::WebPage::loadAlternateHTMLString):
24604         * WebProcess/WebPage/WebPage.h:
24605         * WebProcess/WebPage/WebPage.messages.in:
24606         Plumb through the loading of the alternate HTML string. 
24607
24608 2010-10-19  Alexey Proskuryakov  <ap@apple.com>
24609
24610         Reviewed by Anders Carlsson.
24611
24612         https://bugs.webkit.org/show_bug.cgi?id=47933
24613         <rdar://problem/8494337> navigator.language doesn't work in WebKit2
24614
24615         * Shared/WebProcessCreationParameters.cpp:
24616         (WebKit::WebProcessCreationParameters::encode):
24617         (WebKit::WebProcessCreationParameters::decode):
24618         * Shared/WebProcessCreationParameters.h:
24619         Pass language code when creating a web process.
24620
24621         * UIProcess/WebContext.cpp:
24622         (WebKit::WebContext::~WebContext): Don't send language change notifications to the destroyed
24623         process.
24624         (WebKit::languageChanged): Make web process know about the change.
24625         (WebKit::WebContext::ensureWebProcess): Fill WebProcessCreationParameters, and register for
24626         change notifications.
24627
24628         * WebProcess/WebCoreSupport/mac/WebSystemInterface.mm: (InitWebCoreSystemInterface):
24629         Initialize wkCopyCFLocalizationPreferredName.
24630
24631         * WebProcess/WebProcess.cpp:
24632         (WebKit::WebProcess::initializeWebProcess): Use passed in language as an override. Web process
24633         doesn't know about per-application settings, so it depends on UI process for those.
24634         (WebKit::WebProcess::languageChanged): Update the language override when messaged.
24635
24636         * WebProcess/WebProcess.h:
24637         * WebProcess/WebProcess.messages.in:
24638         Added LanguageChanged message.
24639
24640 2010-10-19  Anders Carlsson  <andersca@apple.com>
24641
24642         Reviewed by Adam Roben.
24643
24644         Stop waiting for sync replies if the connection is closed
24645         https://bugs.webkit.org/show_bug.cgi?id=47930
24646
24647         * Platform/CoreIPC/Connection.cpp:
24648         (CoreIPC::Connection::Connection):
24649         Initialize m_shouldWaitForSyncReplies to true.
24650
24651         (CoreIPC::Connection::sendSyncMessage):
24652         Don't attempt to send a message if m_shouldWaitForSyncReplies is false.
24653
24654         (CoreIPC::Connection::waitForSyncReply):
24655         Return if m_shouldWaitForSyncReplies was set to false.
24656
24657         (CoreIPC::Connection::connectionDidClose):
24658         Set m_shouldWaitForSyncReplies to true and signal the semaphore.
24659
24660         * Platform/CoreIPC/Connection.h:
24661
24662 2010-10-19  Adam Roben  <aroben@apple.com>
24663
24664         Windows build fix
24665
24666         * WebProcess/WebCoreSupport/win/WebErrorsWin.cpp:
24667         (WebKit::interruptForPolicyChangeError): Add a missing comma.
24668
24669 2010-10-19  Sam Weinig  <sam@webkit.org>
24670
24671         Reviewed by Anders Carlsson.
24672
24673         Part 2 of:
24674         Need to include WKErrorRef in the WKPageDidFail... functions
24675         <rdar://problem/8564110>
24676         https://bugs.webkit.org/show_bug.cgi?id=47871
24677
24678         * Shared/API/c/WKError.cpp:
24679         (WKErrorCopyWKErrorDomain):
24680         * Shared/API/c/WKError.h:
24681         * Shared/WebError.cpp: Added.
24682         (WebKit::WebError::webKitErrorDomain):
24683         * Shared/WebError.h:
24684         * WebKit2.pro:
24685         * WebKit2.xcodeproj/project.pbxproj:
24686         * WebProcess/WebCoreSupport/mac/WebErrorsMac.mm:
24687         (+[NSError _webKitErrorWithCode:failingURL:]):
24688         (registerErrors):
24689         (WebKit::blockedError):
24690         (WebKit::cannotShowURLError):
24691         (WebKit::interruptForPolicyChangeError):
24692         (WebKit::cannotShowMIMETypeError):
24693         * WebProcess/WebCoreSupport/win/WebErrorsWin.cpp:
24694         (WebKit::cancelledError):
24695         (WebKit::blockedError):
24696         (WebKit::cannotShowURLError):
24697         (WebKit::interruptForPolicyChangeError):
24698         * win/WebKit2.vcproj:
24699
24700 2010-10-19  Sam Weinig  <sam@webkit.org>
24701
24702         Reviewed by Dan Bernstein.
24703
24704         Need to include WKErrorRef in the WKPageDidFail... functions
24705         <rdar://problem/8564110>
24706         https://bugs.webkit.org/show_bug.cgi?id=47871
24707
24708         Give WebError a WebCore::ResourceError backing and start passing it over the wire
24709         for failure cases.  Also, fill out the WKError API to include domain, errorCode, 
24710         failingURL and localizedDescription.
24711
24712         * Shared/API/c/WKError.cpp:
24713         (WKErrorCopyDomain):
24714         (WKErrorGetErrorCode):
24715         (WKErrorCopyFailingURL):
24716         (WKErrorCopyLocalizedDescription):
24717         * Shared/API/c/WKError.h:
24718         * Shared/API/c/WKSharedAPICast.h:
24719         (WebKit::toAPI):
24720         * Shared/WebCoreArgumentCoders.h:
24721         * Shared/WebError.h:
24722         (WebKit::WebError::create):
24723         (WebKit::WebError::domain):
24724         (WebKit::WebError::errorCode):
24725         (WebKit::WebError::failingURL):
24726         (WebKit::WebError::localizedDescription):
24727         (WebKit::WebError::platformError):
24728         (WebKit::WebError::WebError):
24729         * UIProcess/API/C/WKPage.h:
24730         * UIProcess/API/qt/ClientImpl.cpp:
24731         (qt_wk_didFailProvisionalLoadWithErrorForFrame):
24732         (qt_wk_didFailLoadWithErrorForFrame):
24733         * UIProcess/API/qt/ClientImpl.h:
24734         * UIProcess/WebLoaderClient.cpp:
24735         (WebKit::WebLoaderClient::didFailProvisionalLoadWithErrorForFrame):
24736         (WebKit::WebLoaderClient::didFailLoadWithErrorForFrame):
24737         * UIProcess/WebLoaderClient.h:
24738         * UIProcess/WebPageProxy.cpp:
24739         (WebKit::WebPageProxy::didFailProvisionalLoadForFrame):
24740         (WebKit::WebPageProxy::didFailLoadForFrame):
24741         * UIProcess/WebPageProxy.h:
24742         * UIProcess/WebPageProxy.messages.in:
24743         * WebProcess/InjectedBundle/API/c/WKBundlePage.h:
24744         * WebProcess/InjectedBundle/InjectedBundlePageLoaderClient.cpp:
24745         (WebKit::InjectedBundlePageLoaderClient::didFailProvisionalLoadWithErrorForFrame):
24746         (WebKit::InjectedBundlePageLoaderClient::didFailLoadWithErrorForFrame):
24747         * WebProcess/InjectedBundle/InjectedBundlePageLoaderClient.h:
24748         * WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
24749         (WebKit::WebFrameLoaderClient::dispatchDidFailProvisionalLoad):
24750         (WebKit::WebFrameLoaderClient::dispatchDidFailLoad):
24751
24752 2010-10-19  Christian Sejersen  <christian.webkit@gmail.com>
24753
24754         Reviewed by Kenneth Rohde Christiansen.
24755
24756         Scratchbox has an old version of python as the default one, so
24757         force it to use version 2.6.
24758         https://bugs.webkit.org/show_bug.cgi?id=47895
24759
24760         * DerivedSources.pro:
24761
24762 2010-10-19  Luiz Agostini  <luiz.agostini@openbossa.org>
24763
24764         Reviewed by Antti Koivisto.
24765
24766         [Qt] WebKit2 MacOS build fix
24767         https://bugs.webkit.org/show_bug.cgi?id=47897
24768
24769         Qt WebKit2 MacOS build fix.
24770
24771         * UIProcess/WebPageProxy.cpp:
24772         * WebKit2.pri:
24773         * WebKit2.pro:
24774
24775 2010-10-18  Anders Carlsson  <andersca@apple.com>
24776
24777         Reviewed by Sam Weinig.
24778
24779         Initialize the API client.
24780
24781         * Shared/APIClient.h:
24782         (WebKit::APIClient::APIClient):
24783
24784 2010-10-18  Anders Carlsson  <andersca@apple.com>
24785
24786         Reviewed by John Sullivan.
24787
24788         WebKit2 should handle dismissing the Find overlay on mouse-down
24789         https://bugs.webkit.org/show_bug.cgi?id=47854
24790
24791         * WebProcess/WebPage/FindPageOverlay.cpp:
24792         (WebKit::FindPageOverlay::mouseEvent):
24793         Dismiss the find UI on MouseDown.
24794
24795         * WebProcess/WebPage/WebPage.cpp:
24796         (WebKit::WebPage::mouseEvent):
24797         If there's a page overlay, let it have a go at the event.
24798
24799 2010-10-18  Anders Carlsson  <andersca@apple.com>
24800
24801         Fix clang build.
24802
24803         * UIProcess/API/mac/FindIndicatorWindow.mm:
24804         (-[WebFindIndicatorWindowAnimation _initWithFindIndicatorWindow:WebKit::animationProgressCallback:WebKit::FindIndicatorWindow::animationDidEndCallback:WebKit::FindIndicatorWindow::]):
24805         (WebKit::FindIndicatorWindow::setFindIndicator):
24806         * UIProcess/WebPageProxy.h:
24807         * UIProcess/WebPopupMenuProxy.h:
24808         * WebProcess/WebCoreSupport/WebPopupMenu.h:
24809
24810 2010-10-18  Sam Weinig  <sam@webkit.org>
24811
24812         Fix Qt build.
24813
24814         * WebKit2.pro:
24815
24816 2010-10-18  Anders Carlsson  <andersca@apple.com>
24817
24818         Reviewed by Simon Fraser.
24819
24820         Don't try to change accelerated compositing mode if the web page is closed
24821         https://bugs.webkit.org/show_bug.cgi?id=47852
24822
24823         changeAcceleratedCompositingMode ends up sending a sync message to the UI process which is unnecessary if
24824         the UI process is being torn down.
24825         
24826         * WebProcess/WebPage/WebPage.cpp:
24827         (WebKit::WebPage::WebPage):
24828         (WebKit::WebPage::changeAcceleratedCompositingMode):
24829         (WebKit::WebPage::close):
24830         * WebProcess/WebPage/WebPage.h:
24831
24832 2010-10-18  Anders Carlsson  <andersca@apple.com>
24833
24834         Reviewed by Sam Weinig.
24835
24836         <rdar://problem/8036034>
24837         WebKit2's WebProcess dies immediately on Mac due to DYLD_FRAMEWORK_PATH problem
24838
24839         Pass the path to the WebKit2 framework along to the web process and don't rely on DYLD_FRAMEWORK_PATH being set.
24840
24841         * Shared/mac/CommandLineMac.cpp:
24842         (WebKit::CommandLine::parse):
24843         * UIProcess/Launcher/mac/ProcessLauncherMac.mm:
24844         (WebKit::ProcessLauncher::launchProcess):
24845         * mac/MainMac.cpp:
24846         (main):
24847
24848 2010-10-18  Jessie Berlin  <jberlin@apple.com>
24849
24850         Reviewed by Sam Weinig.
24851
24852         Need a WebKit2 equivalent of the WebKit1 WebUserContentURLPattern.
24853         https://bugs.webkit.org/show_bug.cgi?id=47783
24854
24855         * Shared/API/c/WKBase.h:
24856
24857         * Shared/API/c/WKSharedAPICast.h:
24858
24859         * Shared/API/c/WKUserContentURLPattern.cpp: Added.
24860         (WKUserContentURLPatternGetTypeID):
24861         (WKUserContentURLPatternCreate):
24862         (WKUserContentURLPatternMatchesURL):
24863         * Shared/API/c/WKUserContentURLPattern.h: Added.
24864
24865         * Shared/APIObject.h:
24866
24867         * Shared/UserMessageCoders.h:
24868         Use the original pattern string to encode and decode a UserContentURLPattern.
24869         (WebKit::UserMessageEncoder::baseEncode):
24870         (WebKit::UserMessageDecoder::baseDecode):
24871
24872         * Shared/WebUserContentURLPattern.h: Added.
24873         (WebKit::WebUserContentURLPattern::create):
24874         (WebKit::WebUserContentURLPattern::matchesURL):
24875         Use WebCore::UserContentURLPattern::matches.
24876         (WebKit::WebUserContentURLPattern::patternString):
24877         Expose the pattern string used to create the UserContentURLPattern for the purpose of
24878         encoding and decoding.
24879         (WebKit::WebUserContentURLPattern::WebUserContentURLPattern):
24880         (WebKit::WebUserContentURLPattern::type):
24881
24882         * WebKit2.pro:
24883         * WebKit2.xcodeproj/project.pbxproj:
24884         * win/WebKit2.vcproj:
24885         Add WKUserContentURLPattern.h/.cpp and WebUserContentURLPattern.h
24886
24887         * win/WebKit2Generated.make:
24888         Copy over WKUsercontentURLPattern into the output directory.
24889
24890 2010-10-18  Anders Carlsson  <andersca@apple.com>
24891
24892         Fix build.
24893
24894         * WebProcess/Plugins/Netscape/mac/NetscapePluginMac.mm:
24895         (WebKit::NetscapePlugin::platformHandleMouseEnterEvent):
24896         (WebKit::NetscapePlugin::platformHandleMouseLeaveEvent):
24897         (WebKit::NetscapePlugin::platformSetFocus):
24898
24899 2010-10-18  Anders Carlsson  <andersca@apple.com>
24900
24901         Reviewed by Darin Adler.
24902
24903         Add matchCountDidChange callback
24904         https://bugs.webkit.org/show_bug.cgi?id=47840
24905
24906         * UIProcess/API/C/WKPage.h:
24907         Add matchCountDidChange WKPageFindClient callback.
24908         
24909         * UIProcess/WebFindClient.cpp:
24910         (WebKit::WebFindClient::matchCountDidChange):
24911         Call the WKPageFindClient callback.
24912
24913         * UIProcess/WebPageProxy.messages.in:
24914         Add MatchCountDidChange message.
24915
24916         * WebProcess/WebPage/FindController.cpp:
24917         (WebKit::FindController::countStringMatches):
24918         Move code here from WebPage.
24919
24920         (WebKit::FindController::findString):
24921         Send the MatchCountDidChange message.
24922         
24923         * WebProcess/WebPage/WebPage.cpp:
24924         (WebKit::WebPage::countStringMatches):
24925         Move this code over to FindController.
24926
24927 2010-10-18  Anders Carlsson  <andersca@apple.com>
24928
24929         Reviewed by Darin Adler.
24930
24931         Use nullptr instead of 0.
24932
24933         * UIProcess/API/mac/FindIndicatorWindow.mm:
24934         (WebKit::FindIndicatorWindow::closeWindow):
24935         * UIProcess/API/mac/WKView.mm:
24936         (-[WKView renewGState]):
24937         * WebProcess/Plugins/PluginProcessConnection.cpp:
24938         (WebKit::PluginProcessConnection::removePluginProxy):
24939
24940 2010-10-15  Sam Weinig  <sam@webkit.org>
24941
24942         Fix Qt build.
24943
24944         * UIProcess/API/qt/qwkpage.cpp:
24945         (QWKPagePrivate::createPopupMenuProxy):
24946
24947 2010-10-15  Sam Weinig  <sam@webkit.org>
24948
24949         Reviewed by Anders Carlsson.
24950
24951         Popup widget support (<select>)
24952         <rdar://problem/8147746>
24953         https://bugs.webkit.org/show_bug.cgi?id=47740
24954
24955         Add initial support for popup menus. Only works on the mac at this time.
24956
24957         * Shared/WebPopupItem.cpp: Added.
24958         (WebKit::WebPopupItem::WebPopupItem):
24959         (WebKit::WebPopupItem::encode):
24960         (WebKit::WebPopupItem::decode):
24961         * Shared/WebPopupItem.h: Added.
24962         Serializable representation of a menu item.
24963
24964         * UIProcess/API/mac/PageClientImpl.h:
24965         * UIProcess/API/mac/PageClientImpl.mm:
24966         (WebKit::PageClientImpl::createPopupMenuProxy):
24967         Create a WebPopupMenuProxyMac.
24968
24969         * UIProcess/API/qt/qwkpage.cpp:
24970         (WebView::createPopupMenuProxy):
24971         * UIProcess/API/qt/qwkpage_p.h:
24972         Create a WebPopupMenuProxyQt (which is just a stub right now).
24973
24974         (WebKit::WebPopupMenuProxyWin::create):
24975         * UIProcess/win/WebView.cpp:
24976         (WebKit::WebView::createPopupMenuProxy):
24977         * UIProcess/win/WebView.h:
24978         Create a WebPopupMenuProxyWin (which is just a stub right now).
24979
24980         * UIProcess/PageClient.h:
24981         Add new client function to get a platform specific WebPopupMenuProxy.
24982
24983         * UIProcess/WebPageProxy.cpp:
24984         (WebKit::WebPageProxy::close):
24985         (WebKit::WebPageProxy::showPopupMenu):
24986         (WebKit::WebPageProxy::hidePopupMenu):
24987         (WebKit::WebPageProxy::processDidExit):
24988         * UIProcess/WebPageProxy.h:
24989         * UIProcess/WebPageProxy.messages.in:
24990         Pipe through calls to set up the menu.
24991
24992         * UIProcess/mac/WebPopupMenuProxyMac.h: Added.
24993         (WebKit::WebPopupMenuProxyMac::create):
24994         * UIProcess/mac/WebPopupMenuProxyMac.mm: Added.
24995         (WebKit::WebPopupMenuProxyMac::WebPopupMenuProxyMac):
24996         (WebKit::WebPopupMenuProxyMac::~WebPopupMenuProxyMac):
24997         (WebKit::WebPopupMenuProxyMac::populate):
24998         (WebKit::WebPopupMenuProxyMac::showPopupMenu):
24999         (WebKit::WebPopupMenuProxyMac::hidePopupMenu):
25000         Add UI process side implementation. Currently this does not support
25001         custom fonts as the old implementation did.
25002
25003         * UIProcess/qt/WebPopupMenuProxyQt.cpp: Added.
25004         (WebKit::WebPopupMenuProxyQt::WebPopupMenuProxyQt):
25005         (WebKit::WebPopupMenuProxyQt::~WebPopupMenuProxyQt):
25006         (WebKit::WebPopupMenuProxyQt::showPopupMenu):
25007         (WebKit::WebPopupMenuProxyQt::hidePopupMenu):
25008         * UIProcess/qt/WebPopupMenuProxyQt.h: Added.
25009         (WebKit::WebPopupMenuProxyQt::create):
25010         * UIProcess/win/WebPopupMenuProxyWin.cpp: Added.
25011         (WebKit::WebPopupMenuProxyWin::WebPopupMenuProxyWin):
25012         (WebKit::WebPopupMenuProxyWin::~WebPopupMenuProxyWin):
25013         (WebKit::WebPopupMenuProxyWin::showPopupMenu):
25014         (WebKit::WebPopupMenuProxyWin::hidePopupMenu):
25015         * UIProcess/win/WebPopupMenuProxyWin.h: Added.
25016         Add stubbed out implementations for Qt and windows.
25017
25018         * WebProcess/WebCoreSupport/WebChromeClient.cpp:
25019         (WebKit::WebChromeClient::createPopupMenu):
25020         (WebKit::WebChromeClient::createSearchPopupMenu):
25021         Pass the page in the create function.
25022
25023         * WebProcess/WebCoreSupport/WebPopupMenu.cpp:
25024         (WebKit::WebPopupMenu::create):
25025         (WebKit::WebPopupMenu::WebPopupMenu):
25026         (WebKit::WebPopupMenu::didChangeSelectedIndex):
25027         (WebKit::WebPopupMenu::populateItems):
25028         (WebKit::WebPopupMenu::show):
25029         (WebKit::WebPopupMenu::hide):
25030         * WebProcess/WebCoreSupport/WebPopupMenu.h:
25031         (WebKit::WebPopupMenu::disconnectFromPage):
25032         * WebProcess/WebCoreSupport/WebSearchPopupMenu.cpp:
25033         (WebKit::WebSearchPopupMenu::create):
25034         (WebKit::WebSearchPopupMenu::WebSearchPopupMenu):
25035         (WebKit::WebSearchPopupMenu::popupMenu):
25036         * WebProcess/WebCoreSupport/WebSearchPopupMenu.h:
25037         * WebProcess/WebPage/WebPage.cpp:
25038         (WebKit::WebPage::close):
25039         (WebKit::WebPage::setActivePopupMenu):
25040         (WebKit::WebPage::didChangeSelectedIndexForActivePopupMenu):
25041         * WebProcess/WebPage/WebPage.h:
25042         * WebProcess/WebPage/WebPage.messages.in:
25043         Pipe through calls to set up the menu.
25044
25045         * WebKit2.pro:
25046         * WebKit2.xcodeproj/project.pbxproj:
25047         * win/WebKit2.vcproj:
25048         Add new files.
25049
25050 2010-10-15  Anders Carlsson  <andersca@apple.com>
25051
25052         Fix build.
25053
25054         * UIProcess/API/mac/FindIndicatorWindow.mm:
25055         (-[WebFindIndicatorWindowAnimation setCurrentProgress:]):
25056
25057 2010-10-15  Simon Fraser  <simon.fraser@apple.com>
25058
25059         Reviewed by Dan Bernstein.
25060
25061         Add 'didDraw' callback for framerate tracking
25062         https://bugs.webkit.org/show_bug.cgi?id=47478
25063         
25064         Hook up the 'didDraw' callback for WebKit2 on Mac.
25065
25066         * UIProcess/API/C/WKPage.h:
25067         * UIProcess/API/mac/WKView.mm:
25068         (-[WKView drawRect:]):
25069         * UIProcess/API/qt/qwkpage.cpp:
25070         (QWKPage::QWKPage):
25071         * UIProcess/WebPageProxy.cpp:
25072         (WebKit::WebPageProxy::didDraw):
25073         * UIProcess/WebPageProxy.h:
25074         * UIProcess/WebUIClient.cpp:
25075         (WebKit::WebUIClient::didDraw):
25076         * UIProcess/WebUIClient.h:
25077
25078 2010-10-15  Anders Carlsson  <andersca@apple.com>
25079
25080         Reviewed by Sam Weinig.
25081
25082         Make the find indicator window fade out when requested
25083         https://bugs.webkit.org/show_bug.cgi?id=47747
25084
25085         * UIProcess/API/mac/FindIndicatorWindow.h:
25086         * UIProcess/API/mac/FindIndicatorWindow.mm:
25087         Add WebFindIndicatorWindowAnimation - an NSAnimation subclass that takes two
25088         C++ member function pointers and invokes them the animation progress changes and
25089         when the animation stops.
25090
25091         (-[WebFindIndicatorWindowAnimation setCurrentProgress:]):
25092         Call the _animationProgressCallback.
25093
25094         (-[WebFindIndicatorWindowAnimation animationDidEnd:]):
25095         Call the _animationDidEndCallback.
25096
25097         (WebKit::FindIndicatorWindow::FindIndicatorWindow):
25098         Initialize the fade out start timer.
25099
25100         (WebKit::FindIndicatorWindow::setFindIndicator):
25101         When asked to fade out, we start the fade out timer.
25102
25103         (WebKit::FindIndicatorWindow::closeWindow):
25104         Stop the fade out timer and the fade out animation.
25105
25106         (WebKit::FindIndicatorWindow::startFadeOutTimerFired):
25107         Create a fade out animation.
25108
25109         (WebKit::FindIndicatorWindow::fadeOutAnimationCallback):
25110         Update the window alpha.
25111
25112         (WebKit::FindIndicatorWindow::fadeOutAnimationDidEnd):
25113         Close the window.
25114
25115 2010-10-15  Anders Carlsson  <andersca@apple.com>
25116
25117         Reviewed by Sam Weinig.
25118
25119         Move find indicator window logic to WKView
25120         https://bugs.webkit.org/show_bug.cgi?id=47739
25121
25122         * UIProcess/API/mac/PageClientImpl.h:
25123         * UIProcess/API/mac/PageClientImpl.mm:
25124         (WebKit::PageClientImpl::setFindIndicator):
25125         Call -[WKView _setFindIndicator:fadeOut:].
25126
25127         * UIProcess/API/mac/WKView.mm:
25128         (-[WKView renewGState]):
25129         Hide the find indicator.
25130
25131         (-[WKView _setFindIndicator:fadeOut:]):
25132         Move the find indicator logic here.
25133
25134 2010-10-15  Anders Carlsson  <andersca@apple.com>
25135
25136         Reviewed by Sam Weinig.
25137
25138         Hide the find indicator/overlay when necessary
25139         https://bugs.webkit.org/show_bug.cgi?id=47737
25140
25141         * WebProcess/WebCoreSupport/WebChromeClient.cpp:
25142         (WebKit::WebChromeClient::invalidateContentsForSlowScroll):
25143         Hide the find indicator.
25144
25145         (WebKit::WebChromeClient::scroll):
25146         Ditto.
25147
25148         * WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
25149         (WebKit::WebFrameLoaderClient::dispatchDidStartProvisionalLoad):
25150         Hide the find indicator and the find overlay.
25151
25152         * WebProcess/WebPage/FindController.cpp:
25153         (WebKit::FindController::findString):
25154         Always hide all previous find matches. Only clear the selection if the string
25155         not found wasn't empty.
25156
25157         (WebKit::FindController::hideFindUI):
25158         Uninstall the page overlay and hide the find indicator.
25159
25160         (WebKit::FindController::hideFindIndicator):
25161         Rename resetFindIndicator to hideFindIndicator.
25162
25163         * WebProcess/WebPage/WebPage.cpp:
25164         (WebKit::WebPage::uninstallPageOverlay):
25165         Invalidate the entire page.
25166
25167 2010-10-15  Anders Carlsson  <andersca@apple.com>
25168
25169         Reviewed by Sam Weinig.
25170
25171         Add FindIndicatorWindow class
25172         https://bugs.webkit.org/show_bug.cgi?id=47731
25173
25174         * UIProcess/API/mac/FindIndicatorWindow.h: Added.
25175         * UIProcess/API/mac/FindIndicatorWindow.mm: Added.
25176         (-[WebFindIndicatorView _initWithFindIndicator:WebKit::]):
25177         Initialize the find indicator view.
25178
25179         (-[WebFindIndicatorView drawRect:]):
25180         Ask the find indicator to draw.
25181
25182         (-[WebFindIndicatorView isFlipped]):
25183         Return YES.
25184
25185         (WebKit::FindIndicatorWindow::~FindIndicatorWindow):
25186         Make sure to close the window.
25187
25188         (WebKit::FindIndicatorWindow::setFindIndicator):
25189         Update the find indicator window.
25190
25191         (WebKit::FindIndicatorWindow::closeWindow):
25192         Close and release the window.
25193
25194         * UIProcess/API/mac/PageClientImpl.h:
25195         * UIProcess/API/mac/PageClientImpl.mm:
25196         (WebKit::PageClientImpl::setFindIndicator):
25197         Create a find indicator window.
25198
25199         * WebKit2.xcodeproj/project.pbxproj:
25200         Add new files.
25201
25202 2010-10-15  Anders Carlsson  <andersca@apple.com>
25203
25204         Fix build.
25205
25206         * UIProcess/API/qt/qwkpage.cpp:
25207         * UIProcess/win/WebView.cpp:
25208
25209 2010-10-15  Anders Carlsson  <andersca@apple.com>
25210
25211         Reviewed by Sam Weinig.
25212
25213         Add a FindIndicator class
25214         https://bugs.webkit.org/show_bug.cgi?id=47635
25215
25216         * Shared/BackingStore.h:
25217         (WebKit::BackingStore::bounds):
25218         New function that returns the bounds of the backing store.
25219
25220         * UIProcess/API/mac/PageClientImpl.mm:
25221         (WebKit::PageClientImpl::setFindIndicator):
25222         Add stub.
25223
25224         * UIProcess/API/qt/qwkpage.cpp:
25225         (QWKPagePrivate::setFindIndicator):
25226         Add stub.
25227
25228         * UIProcess/FindIndicator.cpp: Added.
25229         * UIProcess/FindIndicator.h:
25230
25231         * UIProcess/PageClient.h:
25232         Add setFindIndicator client member function.
25233
25234         * UIProcess/WebPageProxy.cpp:
25235         (WebKit::WebPageProxy::setFindIndicator):
25236         Call PageClient::setFindIndicator.
25237
25238         * UIProcess/WebPageProxy.messages.in:
25239         Add a fadeOut boolean to the message.
25240
25241         * UIProcess/win/WebView.cpp:
25242         (WebKit::WebView::setFindIndicator):
25243         Add stub.
25244
25245         * UIProcess/win/WebView.h:
25246         * WebKit2.pro:
25247         * WebKit2.xcodeproj/project.pbxproj:
25248         * WebProcess/WebPage/FindController.cpp:
25249         (WebKit::FindController::findString):
25250         (WebKit::FindController::updateFindIndicator):
25251         (WebKit::FindController::resetFindIndicator):
25252         * WebProcess/WebPage/FindController.h:
25253         * win/WebKit2.vcproj:
25254
25255 2010-10-14  Simon Fraser  <simon.fraser@apple.com>
25256
25257         Reviewed by Sam Weinig.
25258
25259         Plumb accelerated compositing prefs through WebKit2
25260         https://bugs.webkit.org/show_bug.cgi?id=46860
25261         <rdar://problem/8495312>
25262         
25263         Wire up the prefs to enable accelerated compositing, and
25264         show debug borders and repaint counters.
25265
25266         * Shared/WebPreferencesStore.cpp:
25267         (WebKit::WebPreferencesStore::WebPreferencesStore):
25268         (WebKit::WebPreferencesStore::encode):
25269         (WebKit::WebPreferencesStore::decode):
25270         * Shared/WebPreferencesStore.h:
25271         * UIProcess/API/C/WKPreferencesPrivate.cpp:
25272         (WKPreferencesSetAcceleratedCompositingEnabled):
25273         (WKPreferencesGetAcceleratedCompositingEnabled):
25274         (WKPreferencesSetCompositingBordersVisible):
25275         (WKPreferencesGetCompositingBordersVisible):
25276         (WKPreferencesSetCompositingRepaintCountersVisible):
25277         (WKPreferencesGetCompositingRepaintCountersVisible):
25278         * UIProcess/API/C/WKPreferencesPrivate.h:
25279         * UIProcess/WebPreferences.cpp:
25280         (WebKit::WebPreferences::setAcceleratedCompositingEnabled):
25281         (WebKit::WebPreferences::acceleratedCompositingEnabled):
25282         (WebKit::WebPreferences::setCompositingBordersVisible):
25283         (WebKit::WebPreferences::compositingBordersVisible):
25284         (WebKit::WebPreferences::setCompositingRepaintCountersVisible):
25285         (WebKit::WebPreferences::compositingRepaintCountersVisible):
25286         * UIProcess/WebPreferences.h:
25287         * WebProcess/WebPage/WebPage.cpp:
25288         (WebKit::WebPage::WebPage):
25289         (WebKit::WebPage::preferencesDidChange):
25290         (WebKit::WebPage::updatePreferences):
25291         * WebProcess/WebPage/WebPage.h:
25292
25293 2010-10-14  Ada Chan  <adachan@apple.com>
25294
25295         Reviewed by Sam Weinig.
25296
25297         WebKit2: Store the certificate chain in PlatformCertificateInfo.
25298         https://bugs.webkit.org/show_bug.cgi?id=47603
25299
25300         * Shared/API/c/win/WKCertificateInfoWin.cpp:
25301         (WKCertificateInfoGetCertificateChainLength):
25302         (WKCertificateInfoGetCertificateContextAtIndex):
25303         * Shared/API/c/win/WKCertificateInfoWin.h:
25304         * Shared/win/PlatformCertificateInfo.cpp:
25305         (WebKit::PlatformCertificateInfo::PlatformCertificateInfo): Get the chain context from the response and duplicate the certificate contexts
25306         in the chain to store in m_certificateChain.
25307         (WebKit::PlatformCertificateInfo::~PlatformCertificateInfo): Free all the certificate contexts in the chain.
25308         (WebKit::PlatformCertificateInfo::operator=): Duplicate the certificate contexts from the other PlatformCertificateInfo's certificate chain
25309         to store in m_certificateChain.
25310         (WebKit::PlatformCertificateInfo::encode):
25311         (WebKit::PlatformCertificateInfo::decode):
25312         (WebKit::PlatformCertificateInfo::clearCertificateChain): Free all the certificate contexts in the chain and clear the vector.
25313         * Shared/win/PlatformCertificateInfo.h:
25314         (WebKit::PlatformCertificateInfo::certificateChain):
25315
25316 2010-10-14  Adam Roben  <aroben@apple.com>
25317
25318         Make sure WebKit2 only loads each plugin once
25319
25320         Fixes <http://webkit.org/b/47677> <rdar://problem/8552178> WebKit2 can
25321         load the same plugin multiple times
25322
25323         Reviewed by Sam Weinig.
25324
25325         * UIProcess/Plugins/PluginInfoStore.cpp:
25326         (WebKit::addFromVector): Helper function that adds all the elements
25327         from a Vector to a HashSet.
25328         (WebKit::PluginInfoStore::loadPluginsIfNecessary): Put all the plugin
25329         paths into a HashSet, then load the plugins specified in the HashSet.
25330         On Windows, the HashSet is case-insensitive, just like the file
25331         system.
25332
25333         * UIProcess/Plugins/PluginInfoStore.h: Removed loadPluginsInDirectory,
25334         which is no longer used.
25335
25336         * UIProcess/Plugins/win/PluginInfoStoreWin.cpp:
25337         (WebKit::addPluginPathsFromRegistry):
25338         (WebKit::PluginInfoStore::individualPluginPaths):
25339         Changed to store the paths in a Vector instead of a HashSet now that
25340         loadPluginsIfNecessary will handle duplicates for us.
25341
25342 2010-10-14  Adam Roben  <aroben@apple.com>
25343
25344         Load plugins that are specified in the MozillaPlugins registry key
25345
25346         Fixes <http://webkit.org/b/44271> <rdar://problem/8329750> WebKit2
25347         should load plugins specified in the MozillaPlugins registry key (like
25348         old WebKit does)
25349
25350         I couldn't think of a good way to test this.
25351
25352         Reviewed by Steve Falkenburg.
25353
25354         * UIProcess/Plugins/PluginInfoStore.cpp:
25355         (WebKit::PluginInfoStore::loadPluginsIfNecessary): Also load plugins
25356         specified by individualPluginPaths.
25357
25358         * UIProcess/Plugins/PluginInfoStore.h: Added individualPluginPaths and
25359         some comments.
25360
25361         * UIProcess/Plugins/mac/PluginInfoStoreMac.mm:
25362         (WebKit::PluginInfoStore::individualPluginPaths):
25363         * UIProcess/Plugins/qt/PluginInfoStoreQt.cpp:
25364         (WebKit::PluginInfoStore::individualPluginPaths):
25365         Stubbed out.
25366
25367         * UIProcess/Plugins/win/PluginInfoStoreWin.cpp:
25368         (WebKit::addPluginPathsFromRegistry):
25369         (WebKit::PluginInfoStore::individualPluginPaths):
25370         Ported this code from WebCore's PluginDatabaseWin.cpp. I slightly
25371         cleaned it up and changed it to use a case-insensitive hash, since
25372         paths on Windows are case-insensitive.
25373
25374 2010-10-14  Adam Roben  <aroben@apple.com>
25375
25376         Call ::DefWindowProcW for unhandled key events
25377
25378         ::DefWindowProcW does important things for at least some key events
25379         (e.g., it generates a WM_SYSCOMMAND message when the Alt key is
25380         released), so we need to make sure to call it when we don't handle key
25381         events.
25382
25383         Fixes <http://webkit.org/b/47671> <rdar://problem/8435594> Pressing
25384         the Alt key when MiniBrowser's WKView is focused doesn't send focus to
25385         the menu bar
25386
25387         Reviewed by Steve Falkenburg.
25388
25389         * UIProcess/API/mac/PageClientImpl.h:
25390         * UIProcess/API/mac/PageClientImpl.mm:
25391         (WebKit::PageClientImpl::didNotHandleKeyEvent):
25392         * UIProcess/API/qt/qwkpage.cpp:
25393         (QWKPagePrivate::didNotHandleKeyEvent):
25394         * UIProcess/API/qt/qwkpage_p.h:
25395         Stubbed out didNotHandleKeyEvent.
25396
25397         * UIProcess/PageClient.h: Added didNotHandleKeyEvent.
25398
25399         * UIProcess/WebPageProxy.cpp:
25400         (WebKit::WebPageProxy::didReceiveEvent): Tell the PageClient about the
25401         unhandled event.
25402
25403         * UIProcess/win/WebView.cpp:
25404         (WebKit::WebView::onKeyEvent): Added a comment.
25405         (WebKit::WebView::didNotHandleKeyEvent): Pass the event to
25406         ::DefWindowProcW.
25407
25408         * UIProcess/win/WebView.h: Added didNotHandleKeyEvent.
25409
25410 2010-10-13  Sam Weinig  <sam@webkit.org>
25411
25412         Reviewed by Jon Honeycutt.
25413
25414         Memory smasher in WebKit2 InjectedBundleHitTestResult::absoluteLinkURL
25415         https://bugs.webkit.org/show_bug.cgi?id=47648
25416
25417         * WebProcess/InjectedBundle/InjectedBundleHitTestResult.cpp:
25418         (WebKit::InjectedBundleHitTestResult::absoluteLinkURL):
25419         * WebProcess/InjectedBundle/InjectedBundleHitTestResult.h: Return a String instead of
25420         a const String&.
25421
25422 2010-10-13  Sam Weinig  <sam@webkit.org>
25423
25424         Reviewed by Jon Honeycutt.
25425
25426         PlatformMouseEvents need to contain modifier flags
25427         https://bugs.webkit.org/show_bug.cgi?id=47651
25428
25429         * Shared/WebEventConversion.cpp:
25430         (WebKit::WebKit2PlatformMouseEvent::WebKit2PlatformMouseEvent):
25431         Fill in m_modifierFlags.
25432
25433 2010-10-13  Anders Carlsson  <andersca@apple.com>
25434
25435         Reviewed by John Sullivan.
25436
25437         Draw the find overlay holes
25438         https://bugs.webkit.org/show_bug.cgi?id=47631
25439
25440         * WebProcess/WebPage/FindPageOverlay.cpp:
25441         (WebKit::FindPageOverlay::drawRect):
25442         Draw the white frames and the holes.
25443
25444 2010-10-13  Anders Carlsson  <andersca@apple.com>
25445
25446         Reviewed by Darin Adler.
25447
25448         Use WKSI to get wheel event deltas
25449         https://bugs.webkit.org/show_bug.cgi?id=47617
25450
25451         * Shared/mac/WebEventFactory.mm:
25452         (WebKit::WebEventFactory::createWebWheelEvent):
25453         Call WKGetWheelEventDeltas.
25454
25455         * UIProcess/API/mac/WKView.mm:
25456         (-[WKView initWithFrame:pageNamespaceRef:]):
25457         Call InitWebCoreSystemInterface.
25458
25459         * WebProcess/WebCoreSupport/mac/WebSystemInterface.mm:
25460         (InitWebCoreSystemInterface):
25461         Use dispatch_once.
25462
25463 2010-10-13  Adam Roben  <aroben@apple.com>
25464
25465         Fix the Cairo build
25466
25467         * Shared/cairo/BackingStoreCairo.cpp: Added.
25468         (WebKit::BackingStore::createGraphicsContext):
25469         (WebKit::BackingStore::paint):
25470         Stubbed out.
25471
25472         * win/WebKit2.vcproj: Build BackingStoreCG.cpp in CG builds and
25473         BackingStoreCairo.cpp in Cairo builds.
25474
25475 2010-10-13  Anders Carlsson  <andersca@apple.com>
25476
25477         Build fix.
25478
25479         * Shared/cg/BackingStoreCG.cpp:
25480
25481 2010-10-13  Gavin Barraclough  <barraclough@apple.com>
25482
25483         Reviewed by Oliver Hunt.
25484
25485         https://bugs.webkit.org/show_bug.cgi?id=43987
25486         Switch XMLHttpRequest, FileReader, and FileReaderSync to use a Stringbuilder
25487         to construct their internal result string.  Remove ScriptString (this is now
25488         redundant).
25489
25490         * WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
25491         (WebKit::WebFrameLoaderClient::dispatchDidLoadResourceByXMLHttpRequest):
25492         * WebProcess/WebCoreSupport/WebFrameLoaderClient.h:
25493
25494 2010-10-13  Anders Carlsson  <andersca@apple.com>
25495
25496         Reviewed by Sam Weinig.
25497
25498         Send over find indicator information to the UI process
25499         https://bugs.webkit.org/show_bug.cgi?id=47612
25500
25501         * UIProcess/WebPageProxy.cpp:
25502         (WebKit::WebPageProxy::setFindIndicator):
25503         Add stub.
25504
25505         * UIProcess/WebPageProxy.messages.in:
25506         Add SetFindIndicator.
25507
25508         * WebProcess/WebPage/FindController.cpp:
25509         (WebKit::FindController::FindController):
25510         Initialize m_isShowingFindIndicator.
25511
25512         (WebKit::FindController::findString):
25513         Update the find indicator if needed.
25514
25515         (WebKit::FindController::updateFindIndicator):
25516         Compute find indicator information, paint the find indicator text into a 
25517         backing store and send it over.
25518
25519         (WebKit::FindController::resetFindIndicator):
25520         Send a SetFindIndicator message with a null backing store.
25521
25522 2010-10-13  Anders Carlsson  <andersca@apple.com>
25523
25524         Reviewed by Sam Weinig.
25525
25526         Add BackingStoreQt.cpp file with stubbed out BackingStore member functions
25527         https://bugs.webkit.org/show_bug.cgi?id=47614
25528
25529         * Shared/BackingStore.h:
25530         Remove unused include.
25531
25532         * Shared/qt/BackingStoreQt.cpp: Added.
25533         (WebKit::BackingStore::createGraphicsContext):
25534         (WebKit::BackingStore::paint):
25535
25536         * WebKit2.pro:
25537         Add BackingStore.cpp, BackingStore.h and BackingStoreQt.cpp
25538
25539 2010-10-13  Brent Fulgham  <bfulgham@webkit.org>
25540
25541         Unreviewed build fixes after r69538.
25542
25543         * UIProcess/WebBackForwardList.h: Add missing include directive
25544         for CoreFoundation.
25545         * UIProcess/cf/WebBackForwardListCF.cpp: Add missing include
25546         directives for RetainPtr.h and CoreFoundation.
25547         * UIProcess/cf/WebPageProxyCF.cpp: Add missing include directive
25548         for RetainPtr.h.
25549
25550 2010-10-13  Adam Roben  <aroben@apple.com>
25551
25552         Start compiling BackingStore on Windows
25553
25554         Rubber-stamped by Anders Carlsson.
25555
25556         * win/WebKit2.vcproj: Added BackingStore.
25557
25558 2010-10-13  Adam Roben  <aroben@apple.com>
25559
25560         Rename BackingStoreMac.mm to BackingStoreCG.cpp
25561
25562         There's nothing Mac-specific about this file.
25563
25564         Rubber-stamped by Anders Carlsson.
25565
25566         * Shared/cg/BackingStoreCG.cpp: Renamed from WebKit2/Shared/mac/BackingStoreMac.mm.
25567
25568         * WebKit2.xcodeproj/project.pbxproj: Updated for rename.
25569
25570 2010-10-13  Anders Carlsson  <andersca@apple.com>
25571
25572         Reviewed by Sam Weinig.
25573
25574         Allow all signals to be delivered to the web process
25575         https://bugs.webkit.org/show_bug.cgi?id=47602
25576         <rdar://problem/8546399>
25577
25578         * UIProcess/Launcher/mac/ProcessLauncherMac.mm:
25579         (WebKit::ProcessLauncher::launchProcess):
25580
25581 2010-10-12  Adam Roben  <aroben@apple.com>
25582
25583         Let WebCore handle scrolling when the spacebar is pressed on Windows
25584
25585         WebCore already has code to do this, and WebKit2 was doing it on
25586         keydown instead of keypress, which caused problems with text fields.
25587
25588         WebCore's spacebar-handling code is currently compiled out on Mac and
25589         Qt, so we continue to handle spacebar in WebKit2 on those platforms.
25590
25591         Fixes <http://webkit.org/b/47544> <rdar://problem/8540645> REGRESSION:
25592         Pressing spacebar in a text field in WebKit2 does not insert a space,
25593         scrolls the page instead
25594
25595         Test: WebKit2/SpacebarScrolling
25596
25597         Reviewed by Sam Weinig.
25598
25599         * WebProcess/WebPage/win/WebPageWin.cpp:
25600         (WebKit::WebPage::performDefaultBehaviorForKeyEvent):
25601         Removed handling for spacebar presses. WebCore already does this for
25602         us, and does it better.
25603
25604 2010-10-12  Jessie Berlin  <jberlin@apple.com>
25605
25606         Reviewed by Jon Honeycutt.
25607
25608         Add ability for WK2 to set domain relaxation forbidden for a URL scheme.
25609         https://bugs.webkit.org/show_bug.cgi?id=47562
25610
25611         Add the schemes for which domain relaxation is forbidden to the
25612         WebProcessCreationParameters.
25613         * Shared/WebProcessCreationParameters.cpp:
25614         (WebKit::WebProcessCreationParameters::encode):
25615         (WebKit::WebProcessCreationParameters::decode):
25616         * Shared/WebProcessCreationParameters.h:
25617
25618         * UIProcess/API/C/WKContext.cpp:
25619         (WKContextSetDomainRelaxationForbiddenForURLScheme):
25620         * UIProcess/API/C/WKContextPrivate.h:
25621
25622         * UIProcess/WebContext.cpp:
25623         (WebKit::WebContext::ensureWebProcess):
25624         Copy over the schemes for which domain relaxation is forbidden to
25625         WebProcessCreationParameters.
25626         (WebKit::WebContext::setDomainRelaxationForbiddenForURLScheme):
25627         Only send a message to the WebProcess if it is valid.
25628         * UIProcess/WebContext.h:
25629
25630         * WebProcess/WebProcess.cpp:
25631         (WebKit::WebProcess::initializeWebProcess):
25632         Set domain relaxation forbidden for the schemes in
25633         WebProcesCreationParameters.urlSchemesForWhichDomainRelaxationIsForbidden.
25634         (WebKit::WebProcess::setDomainRelaxationForbiddenForURLScheme):
25635         * WebProcess/WebProcess.h:
25636
25637         * WebProcess/WebProcess.messages.in:
25638         Add the SetDomainRelaxationFobiddenForURLScheme message.
25639
25640 2010-10-13  Csaba Osztrogonác  <ossy@webkit.org>
25641
25642         Reviewed by Kenneth Rohde Christiansen.
25643
25644         [Qt] Simplify code generation in WebKit2/DerivedSources.pro
25645         https://bugs.webkit.org/show_bug.cgi?id=47543
25646
25647         * DerivedSources.pro: General generator rules added instead of copy/paste code to converge Makefile.DerivedSources.
25648         * WebKit2.pro: PluginProcess' headers and sources added.
25649
25650 2010-10-13  Andreas Kling  <kling@webkit.org>
25651
25652         Reviewed by Kenneth Rohde Christiansen.
25653
25654         [Qt] Use flag instead of magic word to mark memory map free/used
25655
25656         Original patch by Antti Koivisto.
25657
25658         * Shared/qt/MappedMemory.h:
25659         (WebKit::MappedMemory::mapSize):
25660         (WebKit::MappedMemory::markUsed):
25661         (WebKit::MappedMemory::markFree):
25662         (WebKit::MappedMemory::isFree):
25663         (WebKit::MappedMemory::data):
25664         * Shared/qt/MappedMemoryPool.cpp:
25665         (WebKit::MappedMemoryPool::cleanUp):
25666         * Shared/qt/UpdateChunk.cpp:
25667         (WebKit::mapMemory):
25668         (WebKit::mapFile):
25669         (WebKit::UpdateChunk::data):
25670         (WebKit::UpdateChunk::decode):
25671
25672 2010-10-12  Jon Honeycutt  <jhoneycutt@apple.com>
25673
25674         Build fix. Unreviewed.
25675
25676         * win/WebKit2Generated.make:
25677         Copy over WKBundleHitTestResult.h.
25678
25679 2010-10-12  Sam Weinig  <sam@webkit.org>
25680
25681         Reviewed by Gavin "Sometimes" Barraclough.
25682
25683         Add API to get the target frame from a HitTestResult.
25684
25685         * WebProcess/InjectedBundle/API/c/WKBundleHitTestResult.cpp:
25686         (WKBundleHitTestResultGetFrame):
25687         (WKBundleHitTestResultGetTargetFrame):
25688         * WebProcess/InjectedBundle/API/c/WKBundleHitTestResult.h:
25689         * WebProcess/InjectedBundle/InjectedBundleHitTestResult.cpp:
25690         (WebKit::InjectedBundleHitTestResult::frame): Rename from webFrame.
25691         (WebKit::InjectedBundleHitTestResult::targetFrame):
25692         * WebProcess/InjectedBundle/InjectedBundleHitTestResult.h:
25693
25694 2010-10-12  Anders Carlsson  <andersca@apple.com>
25695
25696         Reviewed by Dan Bernstein.
25697
25698         Paint the find overlay background
25699         https://bugs.webkit.org/show_bug.cgi?id=47565
25700
25701         * WebProcess/WebPage/FindController.cpp:
25702         (WebKit::FindController::findString):
25703         Don't show the overlay if we have too many matches.
25704
25705         * WebProcess/WebPage/FindPageOverlay.cpp:
25706         (WebKit::FindPageOverlay::rectsForTextMatches):
25707         Get the rects for all text matches.
25708
25709         (WebKit::FindPageOverlay::drawRect):
25710         Assert that we're only being called if there are any text matches.
25711         Paint the background.
25712
25713 2010-10-12  Sam Weinig  <sam@webkit.org>
25714
25715         Reviewed by Dan Bernstein.
25716
25717         When a provisional load fails, the provisional URL returned
25718         from WKFrameCopyProvisionalURL should be empty
25719         <rdar://problem/8540878>
25720         https://bugs.webkit.org/show_bug.cgi?id=47546
25721
25722         API Tests: FailedLoad (updated).
25723
25724         * UIProcess/WebFrameProxy.cpp:
25725         (WebKit::WebFrameProxy::didFailProvisionalLoad): Empty out the provisional URL.
25726
25727 2010-10-12  Anders Carlsson  <andersca@apple.com>
25728
25729         Reviewed by Sam Weinig.
25730
25731         Start fleshing out find page overlays
25732         https://bugs.webkit.org/show_bug.cgi?id=47559
25733
25734         * UIProcess/API/C/WKAPICast.h:
25735         (WebKit::toFindOptions):
25736         Handle the kWKFindOptionsShowFindIndicator flag.
25737
25738         * WebKit2.pro:
25739         * WebKit2.xcodeproj/project.pbxproj:
25740         Add new files.
25741         
25742         * WebProcess/WebPage/FindController.cpp:
25743         (WebKit::FindController::FindController):
25744         Initialize the find page overlay.
25745
25746         (WebKit::FindController::findString):
25747         Hide or show the find page overlay.
25748
25749         (WebKit::FindController::findPageOverlayDestroyed):
25750         Null out the find page overlay.
25751
25752         * WebProcess/WebPage/FindPageOverlay.cpp: Added.
25753         * WebProcess/WebPage/FindPageOverlay.h: Added.
25754         Add stubbed out FindPageOverlay class.
25755
25756         * WebProcess/WebPage/PageOverlay.cpp: Added.
25757         (WebKit::PageOverlay::setPage):
25758         Set the parent web page.
25759
25760         (WebKit::PageOverlay::setNeedsDisplay):
25761         Invalidate the parent web page.
25762
25763         * WebProcess/WebPage/WebPage.cpp:
25764         (WebKit::WebPage::drawRect):
25765         If there's a page overlay, ask it to draw on top of the page contents.
25766
25767         (WebKit::WebPage::installPageOverlay):
25768         Set the page overlay.
25769
25770         (WebKit::WebPage::uninstallPageOverlay):
25771         Clear the page overlay.
25772
25773         * win/WebKit2.vcproj:
25774         Add new files.
25775
25776 2010-10-12  Jessie Berlin  <jberlin@apple.com>
25777
25778         Reviewed by Jon Honeycutt.
25779
25780         Add ability for WK2 to register a scheme as secure.
25781         https://bugs.webkit.org/show_bug.cgi?id=47557
25782
25783         Add the schemes that need to be registered as secure to the WebProcessCreationParameters.
25784         * Shared/WebProcessCreationParameters.cpp:
25785         (WebKit::WebProcessCreationParameters::encode):
25786         (WebKit::WebProcessCreationParameters::decode):
25787         * Shared/WebProcessCreationParameters.h:
25788
25789         * UIProcess/API/C/WKContext.cpp:
25790         (WKContextRegisterURLSchemeAsSecure):
25791         * UIProcess/API/C/WKContextPrivate.h:
25792
25793         * UIProcess/WebContext.cpp:
25794         (WebKit::WebContext::ensureWebProcess):
25795         Copy over the schemes that are to be registered as secure to the
25796         WebProcessCreationParameters.
25797         (WebKit::WebContext::registerURLSchemeAsSecure):
25798         Only send a message to the WebProcess if it is valid.
25799         * UIProcess/WebContext.h:
25800
25801         * WebProcess/WebProcess.cpp:
25802         (WebKit::WebProcess::initializeWebProcess):
25803         Register the schemes that need to be registered as secure from the
25804         WebProcessCreationParameters.
25805         (WebKit::WebProcess::registerURLSchemeAsSecure):
25806         * WebProcess/WebProcess.h:
25807
25808         * WebProcess/WebProcess.messages.in:
25809         Add the RegisterURLSchemeAsSecure message.
25810
25811 2010-10-12  John Sullivan  <sullivan@apple.com>
25812
25813         Reviewed by Anders Carlsson.
25814
25815         https://bugs.webkit.org/show_bug.cgi?id=47556
25816         WKBundleNodeHandlePrivate.h should be marked private, not project
25817
25818         * WebKit2.xcodeproj/project.pbxproj:
25819         Marked WKBundleNodeHandlePrivate.h as private.
25820
25821 2010-10-12  Anders Carlsson  <andersca@apple.com>
25822
25823         Reviewed by Sam Weinig.
25824
25825         Add FindController class
25826         https://bugs.webkit.org/show_bug.cgi?id=47555
25827
25828         * WebKit2.pro:
25829         * WebKit2.xcodeproj/project.pbxproj:
25830         Add new files.
25831
25832         * WebProcess/WebPage/FindController.cpp: Added.
25833         (WebKit::FindController::FindController):
25834         (WebKit::FindController::findString):
25835         Ask WebCore to find the given string for us.
25836
25837         (WebKit::FindController::hideFindUI):
25838         Add stub.
25839
25840         * WebProcess/WebPage/WebPage.cpp:
25841         (WebKit::WebPage::WebPage):
25842         Initialize the find controller.
25843
25844         (WebKit::WebPage::findString):
25845         (WebKit::WebPage::hideFindUI):
25846         Call the find controller.
25847         
25848         * win/WebKit2.vcproj:
25849         Add new files.
25850
25851 2010-10-12  Sam Weinig  <sam@webkit.org>
25852
25853         Reviewed by Anders Carlsson.
25854
25855         Need WebKit2 API to get the cell above a table cell
25856         <rdar://problem/8537111>
25857         https://bugs.webkit.org/show_bug.cgi?id=47532
25858
25859         * WebProcess/InjectedBundle/API/c/WKBundleNodeHandle.cpp:
25860         (WKBundleNodeHandleCopyHTMLTableCellElementCellAbove):
25861         * WebProcess/InjectedBundle/API/c/WKBundleNodeHandlePrivate.h:
25862         * WebProcess/InjectedBundle/DOM/InjectedBundleNodeHandle.cpp:
25863         (WebKit::InjectedBundleNodeHandle::copyHTMLTableCellElementCellAbove):
25864         * WebProcess/InjectedBundle/DOM/InjectedBundleNodeHandle.h:
25865
25866 2010-10-11  Anders Carlsson  <andersca@apple.com>
25867
25868         Reviewed by Sam Weinig.
25869
25870         Add BinarySemaphore class to CoreIPC and use it in Connection::waitForSyncReply
25871         https://bugs.webkit.org/show_bug.cgi?id=47526
25872
25873         * Platform/CoreIPC/BinarySemaphore.cpp: Added.
25874         * Platform/CoreIPC/BinarySemaphore.h: Added.
25875         Add BinarySemaphore class.
25876
25877         * Platform/CoreIPC/Connection.cpp:
25878         (CoreIPC::Connection::sendSyncMessage):
25879         (CoreIPC::Connection::waitForSyncReply):
25880         (CoreIPC::Connection::processIncomingMessage):
25881         Use the binary semaphore and the newly added m_pendingSyncRepliesMutex.
25882
25883         * WebKit2.pro:
25884         * WebKit2.xcodeproj/project.pbxproj:
25885         * win/WebKit2.vcproj:
25886         Add new files.
25887
25888 2010-10-12  Adam Roben  <aroben@apple.com>
25889
25890         Bring WebKit2 .vcproj files up-to-date with reality
25891
25892         * win/WebKit2.vcproj:
25893         * win/WebKit2Generated.vcproj:
25894         Added missing files, removed non-existent files.
25895
25896 2010-10-12  Mark Rowe  <mrowe@apple.com>
25897
25898         Fix the 32-bit WebKit2 build.
25899
25900         * UIProcess/cf/WebBackForwardListCF.cpp:
25901         (WebKit::WebBackForwardList::restoreFromCFDictionaryRepresentation): Change currentIndex to be of
25902         type CFIndex and specify kCFNumberCFIndexType when calling CFNumberGetValue. This avoids a warning
25903         when comparing currentIndex with another variable of type CFIndex later in the function.
25904
25905 2010-10-12  Mark Rowe  <mrowe@apple.com>
25906
25907         Fix class vs struct forward declaration issues in WebKit2 observed when using clang.
25908
25909         * Scripts/webkit2/messages.py: Add WebCore::ViewportArguments to the set of structs.
25910         * UIProcess/PageClient.h:
25911         * UIProcess/WebPageProxy.h:
25912
25913 2010-10-12  Juha Savolainen  <juha.savolainen@weego.fi>
25914
25915         Reviewed by Antti Koivisto.
25916
25917         [Qt] Adding Qt WebKit2 API for zooming.
25918         https://bugs.webkit.org/show_bug.cgi?id=47539
25919
25920         Adding zoom methods to QWKPage.
25921         
25922         * UIProcess/API/qt/qwkpage.cpp:
25923         (QWKPage::textZoomFactor): Added
25924         (QWKPage::setTextZoomFactor): Added
25925         (QWKPage::pageZoomFactor): Added
25926         (QWKPage::setPageZoomFactor): Added
25927         (QWKPage::setPageAndTextZoomFactors): Added
25928         * UIProcess/API/qt/qwkpage.h:
25929
25930 2010-10-11  Brady Eidson  <beidson@apple.com>
25931
25932         Reviewed by Darin Adler of the past.
25933
25934         Address some of Darin's review feedback in https://bugs.webkit.org/show_bug.cgi?id=47354
25935         that wasn't left till after my original commit.
25936
25937         * UIProcess/API/C/WKPage.cpp:
25938         (WKPageCopySessionState): Nuke the temporary variable.
25939         * UIProcess/API/C/WKPage.h:
25940
25941         * UIProcess/WebPageProxy.h: Fix up function declarations.
25942         
25943         * UIProcess/cf/WebPageProxyCF.cpp:
25944         (WebKit::WebPageProxy::sessionStateData): Use sizeof(UInt32) instead of 4.
25945         (WebKit::WebPageProxy::restoreFromSessionStateData): Ditto.
25946
25947 2010-10-11  Brady Eidson  <beidson@apple.com>
25948
25949         Reviewed by BUILD FIX.
25950
25951         Build fix for Windows in https://bugs.webkit.org/show_bug.cgi?id=47354
25952
25953         * UIProcess/cf/WebPageProxyCF.cpp:
25954         (WebKit::WebPageProxy::sessionStateData): Change to use CF APIs that exist on Windows.
25955         (WebKit::WebPageProxy::restoreFromSessionStateData): Ditto.
25956
25957 2010-10-11  Sam Weinig  <sam@webkit.org>
25958
25959         Reviewed by Anders Carlsson.
25960
25961         Add WebKit2 equivalents for setValueForUser and setAutofilled
25962         <rdar://problem/8475934>
25963         https://bugs.webkit.org/show_bug.cgi?id=47524
25964
25965         * WebProcess/InjectedBundle/API/c/WKBundleNodeHandle.cpp:
25966         (WKBundleNodeHandleSetHTMLInputElementValueForUser):
25967         (WKBundleNodeHandleSetHTMLInputElementAutofilled):
25968         * WebProcess/InjectedBundle/API/c/WKBundleNodeHandlePrivate.h:
25969         * WebProcess/InjectedBundle/DOM/InjectedBundleNodeHandle.cpp:
25970         (WebKit::InjectedBundleNodeHandle::setHTMLInputElementValueForUser):
25971         (WebKit::InjectedBundleNodeHandle::setHTMLInputElementAutofilled):
25972         * WebProcess/InjectedBundle/DOM/InjectedBundleNodeHandle.h:
25973
25974 2010-10-11  Brian Weinstein  <bweinstein@apple.com>
25975
25976         Windows build fix. Add a needed include.
25977
25978         * UIProcess/cf/WebPageProxyCF.cpp:
25979
25980 2010-10-11  Brian Weinstein  <bweinstein@apple.com>
25981
25982         Windows build fix. Wrap calls to CFSTR in parentheses.
25983
25984         * UIProcess/cf/WebBackForwardListCF.cpp:
25985         * UIProcess/cf/WebPageProxyCF.cpp:
25986
25987 2010-10-11  Sam Weinig  <sam@webkit.org>
25988
25989         Reviewed by Anders Carlsson.
25990
25991         Add ability to convert from a JSObjectRef back to a WKBundleNodeHandleRef
25992         https://bugs.webkit.org/show_bug.cgi?id=47509
25993
25994         Add SPI to convert a JSObjectRef to a WKBundleNodeHandleRef.
25995
25996         * DerivedSources.pro:
25997         * WebKit2.pro:
25998         * WebKit2.xcodeproj/project.pbxproj:
25999         * WebProcess/InjectedBundle/API/c/WKBundleNodeHandle.cpp:
26000         (WKBundleNodeHandleCreate):
26001         * WebProcess/InjectedBundle/API/c/WKBundleNodeHandlePrivate.h: Added.
26002         * WebProcess/InjectedBundle/DOM/InjectedBundleNodeHandle.cpp:
26003         (WebKit::InjectedBundleNodeHandle::getOrCreate):
26004         * WebProcess/InjectedBundle/DOM/InjectedBundleNodeHandle.h:
26005         * win/WebKit2.vcproj:
26006         * win/WebKit2Generated.make:
26007
26008 2010-10-11  Brady Eidson  <beidson@apple.com>
26009
26010         Reviewed by Darin Adler and Sam Weinig.
26011
26012         <rdar://problem/8262202> and https://bugs.webkit.org/show_bug.cgi?id=47354
26013         Need WKPage API for serializing and restoring a page's state
26014
26015         * WebKit2.xcodeproj/project.pbxproj:
26016         * win/WebKit2.vcproj:
26017
26018         * WebKit2Prefix.h: Add DEFINE_STATIC_GETTER convenience.
26019
26020         * UIProcess/API/C/WKPage.cpp:
26021         (WKPageGetSessionHistoryURLValueType):
26022         (WKPageCopySessionState): Change to use a filter function to allow the API client to decide what
26023           types of things get serialized as session state.  For now it only filters based on URL in
26024           session history entries.
26025         (WKPageRestoreFromSessionState):
26026         * UIProcess/API/C/WKPage.h:
26027
26028         * UIProcess/WebBackForwardList.h:
26029         (WebKit::WebBackForwardList::restoredCurrentURL):
26030
26031         * UIProcess/WebPageProxy.cpp:
26032         (WebKit::WebPageProxy::sessionStateData): Leave stubs for non-CF platform builds.
26033         (WebKit::WebPageProxy::restoreFromSessionStateData): Ditto.
26034         * UIProcess/WebPageProxy.h:
26035
26036         * UIProcess/cf: Added.
26037         * UIProcess/cf/WebBackForwardListCF.cpp: Added.
26038         (WebKit::WebBackForwardList::createCFDictionaryRepresentation): Store back/forward list info CF property list style.
26039         (WebKit::WebBackForwardList::restoreFromCFDictionaryRepresentation): Restore from that data - but for now we don't 
26040           actually put the back/forward list back into place and instead only remember the current URL.
26041
26042         * UIProcess/cf/WebPageProxyCF.cpp: Added.
26043         (WebKit::WebPageProxy::sessionStateData): Create the sessions state date CF property list style, plus a version header.
26044         (WebKit::WebPageProxy::restoreFromSessionStateData): Restore from that property list style session state data.
26045
26046 2010-10-11  Adam Roben  <aroben@apple.com>
26047
26048         Implement SharedMemory on Windows
26049
26050         This makes visited links be colored correctly.
26051
26052         Fixes <http://webkit.org/b/47499> <rdar://problem/8422725>.
26053
26054         Reviewed by Anders Carlsson.
26055
26056         * Platform/SharedMemory.h: Add Windows-specific members to
26057         SharedMemory and SharedMemory::Handle.
26058
26059         * Platform/win/SharedMemoryWin.cpp:
26060         (WebKit::SharedMemory::Handle::Handle): Initialize our members.
26061         (WebKit::SharedMemory::Handle::~Handle): Close our HANDLE if we have
26062         one.
26063         (WebKit::SharedMemory::Handle::encode): Encode our size, HANDLE, and
26064         PID. Null out our HANDLE member, as it is now the receiving process's
26065         responsibility to close the HANDLE.
26066         (WebKit::SharedMemory::Handle::decode): Copy the handle from the
26067         sending process into the receiving process and close the HANDLE the
26068         sending process gave us.
26069         (WebKit::SharedMemory::create): Map some memory and store it in a new
26070         SharedMemory object.
26071         (WebKit::accessRights): Helper function to convert a
26072         SharedMemory::Protection to a file-mapping access right.
26073         (WebKit::SharedMemory::create): Map the memory represented by the
26074         Handle, and adopt the HANDLE from it.
26075         (WebKit::SharedMemory::~SharedMemory): Clean up our memory mapping.
26076         (WebKit::SharedMemory::createHandle): Give the Handle a copy of our
26077         HANDLE with the specified protection.
26078
26079 2010-10-11  Adam Roben  <aroben@apple.com>
26080
26081         Make it possible to restart a RunLoop::Timer on Windows
26082
26083         Fixes <http://webkit.org/b/47505> RunLoop::Timer only ever fires once
26084         on Windows
26085
26086         Reviewed by Anders Carlsson.
26087
26088         * Platform/win/RunLoopWin.cpp:
26089         (RunLoop::TimerBase::timerFired): Remove non-repeating timers from the
26090         set of active timers when they fire, just like we do when stopping
26091         them manually.
26092
26093 2010-10-11  Jessie Berlin  <jberlin@apple.com>
26094
26095         Reviewed by Darin Adler.
26096
26097         Add Private API for creating a WebKit2 WebSerializedScriptValue from the internal
26098         representation of a WebKit1 WebSerializedJSValue.
26099         https://bugs.webkit.org/show_bug.cgi?id=47439
26100
26101         * Shared/API/c/WKSerializedScriptValue.cpp:
26102         (WKSerializedScriptValueCreateWithInternalRepresentation):
26103         Use the existing WebSerializedScriptValue constructor that takes a pointer to the internal
26104         representation (a WebCore::SerializedScriptValue).
26105         * Shared/API/c/WKSerializedScriptValuePrivate.h:
26106
26107 2010-10-11  Mike Thole  <mthole@apple.com>
26108
26109         Reviewed by Darin Adler.
26110
26111         Rename WKCertificateInfoGetPeerCertificates() to WKCertificateInfoGetCertificateChain()
26112         https://bugs.webkit.org/show_bug.cgi?id=47495
26113
26114         * Shared/API/c/mac/WKCertificateInfoMac.h:
26115         Renamed WKCertificateInfoGetPeerCertificates() to WKCertificateInfoGetCertificateChain()
26116         * Shared/API/c/mac/WKCertificateInfoMac.mm:
26117         (WKCertificateInfoGetCertificateChain): Updated for name change.
26118         * Shared/mac/PlatformCertificateInfo.h:
26119         (WebKit::PlatformCertificateInfo::certificateChain): Renamed from peerCertificates()
26120         * Shared/mac/PlatformCertificateInfo.mm:
26121         (WebKit::PlatformCertificateInfo::PlatformCertificateInfo): Updated for name change.
26122         (WebKit::PlatformCertificateInfo::encode): Ditto.
26123         (WebKit::PlatformCertificateInfo::decode): Ditto.
26124         (WebKit::PlatformCertificateInfo::dump): Ditto.
26125
26126 2010-10-11  Balazs Kelemen  <kbalazs@webkit.org>
26127
26128         Reviewed by Kenneth Rohde Christiansen.
26129
26130         [Qt] Issue a warning when an InjectedBundle can't be loaded.
26131         https://bugs.webkit.org/show_bug.cgi?id=47497
26132
26133         The original author of the patch is Jocelyn Turcotte <jocelyn.turcotte@nokia.com>.
26134
26135         * WebProcess/InjectedBundle/qt/InjectedBundleQt.cpp:
26136         (WebKit::InjectedBundle::load):
26137
26138 2010-10-11  Sam Weinig  <sam@webkit.org>
26139
26140         Reviewed by Simon Fraser.
26141
26142         Rename transformToDeviceSpace to convertToDeviceSpace and 
26143         transformToUserSpace to convertToUserSpace at Simon's request.
26144
26145         * UIProcess/API/mac/PageClientImpl.h:
26146         * UIProcess/API/mac/PageClientImpl.mm:
26147         (WebKit::PageClientImpl::convertToDeviceSpace):
26148         (WebKit::PageClientImpl::convertToUserSpace):
26149         * UIProcess/API/mac/WKView.mm:
26150         (-[WKView _convertToDeviceSpace:]):
26151         (-[WKView _convertToUserSpace:]):
26152         * UIProcess/API/mac/WKViewInternal.h:
26153         * UIProcess/API/qt/qwkpage.cpp:
26154         (QWKPagePrivate::convertToDeviceSpace):
26155         (QWKPagePrivate::convertToUserSpace):
26156         * UIProcess/API/qt/qwkpage_p.h:
26157         * UIProcess/PageClient.h:
26158         * UIProcess/WebPageProxy.cpp:
26159         (WebKit::WebPageProxy::setWindowFrame):
26160         (WebKit::WebPageProxy::getWindowFrame):
26161         * UIProcess/win/WebView.cpp:
26162         (WebKit::WebView::convertToDeviceSpace):
26163         (WebKit::WebView::convertToUserSpace):
26164         * UIProcess/win/WebView.h:
26165
26166 2010-10-11  Sam Weinig  <sam@webkit.org>
26167
26168         Try to fix the Mac release build.
26169
26170         * UIProcess/API/mac/WKView.mm:
26171         (-[WKView _transformToDeviceSpace:]):
26172         (-[WKView _transformToUserSpace:]):
26173         * UIProcess/API/mac/WKViewInternal.h:
26174
26175 2010-10-11  Balazs Kelemen  <kbalazs@webkit.org>
26176
26177         Reviewed by Kenneth Rohde Christiansen.
26178
26179         WebProcess ASSERTs with a null application cache dir creation parameter
26180         https://bugs.webkit.org/show_bug.cgi?id=47489
26181
26182         * WebProcess/WebProcess.cpp:
26183         (WebKit::WebProcess::initializeWebProcess):
26184
26185 2010-10-11  Kenneth Rohde Christiansen  <kenneth.christiansen@openbossa.org>
26186
26187         Reviewed by Andreas Kling.
26188
26189         Unlink the files used for I/O mapped memory as soon as they are
26190         created.
26191
26192         * Shared/qt/UpdateChunk.cpp:
26193         (WebKit::mapMemory):
26194         (WebKit::mapFile):
26195
26196 2010-10-11  Kenneth Rohde Christiansen  <kenneth.christiansen@openbossa.org>
26197
26198         Rubberstamped by Andreas Kling.
26199
26200         Build fix when using MeeGo Touch
26201
26202         * WebProcess/qt/WebProcessMainQt.cpp:
26203
26204 2010-10-11  Kenneth Rohde Christiansen  <kenneth.christiansen@openbossa.org>
26205
26206         Reviewed by Andreas Kling.
26207
26208         Use raster for the QtWebProcess.
26209
26210         * WebProcess/qt/WebProcessMainQt.cpp:
26211         (WebKit::WebProcessMainQt):
26212
26213 2010-10-11  Kenneth Rohde Christiansen  <kenneth.christiansen@openbossa.org>
26214
26215         Unreviewed win build fix.
26216
26217         * WebProcess/WebCoreSupport/WebChromeClient.cpp:
26218
26219 2010-10-08  Kenneth Rohde Christiansen  <kenneth.christiansen@openbossa.org>
26220
26221         Reviewed by Sam Weinig.
26222
26223         Adding Qt WebKit2 API for dealing with viewport meta info
26224         https://bugs.webkit.org/show_bug.cgi?id=47202
26225
26226         Add new API for setting scale and layout viewport given the data
26227         provided by the viewport meta tag.
26228
26229         Any Qt view components who wants to support this, will need to
26230         compute the viewport attributes before first load using
26231         viewportAttributesForSize(..), and then again everytime
26232         the viewport attributes gets invalidates (loading a new page,
26233         navigating page cache) or every time on of the browser
26234         attributes change, such as when the device is rotates (which
26235         changes the actual visible viewport). A signal
26236         viewportChangeRequested() is provided for the former.
26237
26238         * Shared/WebCoreArgumentCoders.h:
26239         * UIProcess/API/mac/PageClientImpl.h:
26240         * UIProcess/API/mac/PageClientImpl.mm:
26241         (WebKit::PageClientImpl::setViewportArguments):
26242         * UIProcess/API/qt/qwkpage.cpp:
26243         (QWKPagePrivate::setViewportArguments):
26244         (QWKPage::ViewportAttributes::ViewportAttributes):
26245         (QWKPage::ViewportAttributes::~ViewportAttributes):
26246         (QWKPage::ViewportAttributes::operator=):
26247         (QWKPage::viewportAttributesForSize):
26248         * UIProcess/API/qt/qwkpage.h:
26249         * UIProcess/API/qt/qwkpage_p.h:
26250         (QtViewportAttributesPrivate::QtViewportAttributesPrivate):
26251         * UIProcess/PageClient.h:
26252         * UIProcess/WebPageProxy.cpp:
26253         (WebKit::WebPageProxy::didReceiveMessage):
26254         (WebKit::WebPageProxy::didChangeViewportData):
26255         * UIProcess/WebPageProxy.h:
26256         * UIProcess/WebPageProxy.messages.in:
26257         * UIProcess/win/WebView.cpp:
26258         (WebKit::WebView::setViewportArguments):
26259         * UIProcess/win/WebView.h:
26260         * WebProcess/WebCoreSupport/WebChromeClient.cpp:
26261         (WebKit::WebChromeClient::dispatchViewportDataDidChange):
26262         * WebProcess/WebCoreSupport/WebChromeClient.h:
26263
26264 2010-10-11  Csaba Osztrogonác  <ossy@webkit.org>
26265
26266         Reviewed by Andreas Kling.
26267
26268         [Qt] WebKit2 build scripts are buggy
26269         https://bugs.webkit.org/show_bug.cgi?id=47377
26270
26271         Generated sources must depends on WebKit2/Scripts/webkit2/messages.py too.
26272
26273         * DerivedSources.pro: Missing dependencies added.
26274
26275 2010-10-09  Sam Weinig  <sam@webkit.org>
26276
26277         Reviewed by Dan Bernstein.
26278
26279         WKFrameGetFrameLoadState() returns kWKFrameLoadStateCommitted after the load has been stopped
26280         <rdar://problem/8173667>
26281         https://bugs.webkit.org/show_bug.cgi?id=47461
26282
26283         API Test: WebKit2/FailedLoad
26284
26285         * UIProcess/WebFrameProxy.cpp:
26286         (WebKit::WebFrameProxy::didFailProvisionalLoad):
26287         (WebKit::WebFrameProxy::didFailLoad):
26288         * UIProcess/WebFrameProxy.h:
26289         * UIProcess/WebPageProxy.cpp:
26290         (WebKit::WebPageProxy::didFailProvisionalLoadForFrame):
26291         (WebKit::WebPageProxy::didFailLoadForFrame):
26292         Set the frame load state to LoadStateFinished for both didFailProvisionalLoadForFrame
26293         and didFailLoadForFrame.
26294
26295 2010-10-09  Sam Weinig  <sam@webkit.org>
26296
26297         Reviewed by Dan Bernstein.
26298
26299         Add WebKit2 version of runBeforeUnloadConfirmPanelWithMessage
26300         <rdar://problem/8447690>
26301         https://bugs.webkit.org/show_bug.cgi?id=47459
26302
26303         * UIProcess/API/C/WKPage.h:
26304         * UIProcess/API/qt/qwkpage.cpp:
26305         (QWKPage::QWKPage):
26306         * UIProcess/WebPageProxy.cpp:
26307         (WebKit::WebPageProxy::setWindowFrame):
26308         (WebKit::WebPageProxy::getWindowFrame):
26309         (WebKit::WebPageProxy::canRunBeforeUnloadConfirmPanel):
26310         (WebKit::WebPageProxy::runBeforeUnloadConfirmPanel):
26311         * UIProcess/WebPageProxy.h:
26312         * UIProcess/WebPageProxy.messages.in:
26313         * UIProcess/WebUIClient.cpp:
26314         (WebKit::WebUIClient::canRunBeforeUnloadConfirmPanel):
26315         (WebKit::WebUIClient::runBeforeUnloadConfirmPanel):
26316         * UIProcess/WebUIClient.h:
26317         * WebProcess/WebCoreSupport/WebChromeClient.cpp:
26318         (WebKit::WebChromeClient::canRunBeforeUnloadConfirmPanel):
26319         (WebKit::WebChromeClient::runBeforeUnloadConfirmPanel):
26320         Pipe calls through to the UIProcess.
26321
26322 2010-10-09  Sam Weinig  <sam@webkit.org>
26323
26324         Reviewed by Dan Bernstein.
26325
26326         Need implementation of ChromeClient windowRect related functions.
26327         <rdar://problem/8469476>
26328         https://bugs.webkit.org/show_bug.cgi?id=47386
26329
26330         * Shared/API/c/WKGeometry.h: Added.
26331         Adds WKPoint, WKSize and WKRect structs.
26332
26333         * Shared/API/c/WKSharedAPICast.h:
26334         (WebKit::toImpl):
26335         (WebKit::toAPI):
26336         Add conversion functions for WKRect.
26337
26338         * Shared/WebCoreArgumentCoders.h:
26339         Add encoding for FloatPoint, FloatSize and FloatRect.
26340
26341         * UIProcess/API/C/WKPage.h:
26342         * UIProcess/API/mac/PageClientImpl.h:
26343         * UIProcess/API/mac/PageClientImpl.mm:
26344         (WebKit::PageClientImpl::transformToDeviceSpace):
26345         (WebKit::PageClientImpl::transformToUserSpace):
26346         * UIProcess/API/mac/WKView.mm:
26347         (-[WKView _transformToDeviceSpace:]):
26348         (-[WKView _transformToUserSpace:]):
26349         * UIProcess/API/mac/WKViewInternal.h:
26350         * UIProcess/API/qt/qwkpage.cpp:
26351         (QWKPagePrivate::transformToDeviceSpace):
26352         (QWKPagePrivate::transformToUserSpace):
26353         (QWKPage::QWKPage):
26354         * UIProcess/API/qt/qwkpage_p.h:
26355         * UIProcess/PageClient.h:
26356         * UIProcess/WebPageProxy.cpp:
26357         (WebKit::WebPageProxy::setWindowFrame):
26358         (WebKit::WebPageProxy::getWindowFrame):
26359         * UIProcess/WebPageProxy.h:
26360         * UIProcess/WebPageProxy.messages.in:
26361         * UIProcess/WebUIClient.cpp:
26362         (WebKit::WebUIClient::setWindowFrame):
26363         (WebKit::WebUIClient::windowFrame):
26364         * UIProcess/WebUIClient.h:
26365         * UIProcess/win/WebView.cpp:
26366         (WebKit::WebView::setEditCommandState):
26367         (WebKit::WebView::transformToDeviceSpace):
26368         (WebKit::WebView::transformToUserSpace):
26369         * UIProcess/win/WebView.h:
26370         * WebProcess/WebCoreSupport/WebChromeClient.cpp:
26371         (WebKit::WebChromeClient::setWindowFrame):
26372         (WebKit::WebChromeClient::windowFrame):
26373         Pipe calls through to the UIProcess, and give ports a chance to transform
26374         the rect (via the PageClient) before it is passed on.
26375
26376         * WebKit2.pro:
26377         * WebKit2.xcodeproj/project.pbxproj:
26378         * win/WebKit2.vcproj:
26379         * win/WebKit2Generated.make:
26380         Add new files.
26381
26382 2010-10-07  Jessie Berlin  <jberlin@apple.com>
26383
26384         Reviewed by Sam Weinig.
26385
26386         Add Private API for creating a WebKit1 WebSerializedJSValue from the internal
26387         representation of a WebKit2 WebSerializedScriptValue.
26388         https://bugs.webkit.org/show_bug.cgi?id=47390
26389
26390         * Shared/API/c/WKSerializedScriptValue.cpp:
26391         (WKSerializedScriptValueGetInternalRepresentation):
26392         * Shared/API/c/WKSerializedScriptValuePrivate.h: Added.
26393
26394         * Shared/WebSerializedScriptValue.h:
26395         (WebKit::WebSerializedScriptValue::internalRepresentation):
26396         Return the WebCore::SerializedScriptValue as a void* so that it can be passed through the
26397         API.
26398
26399         * WebKit2.xcodeproj/project.pbxproj:
26400         Add WKSerializedScriptValuePrivate.h.
26401         * win/WebKit2.vcproj:
26402         Ditto, also some sorting.
26403
26404         * win/WebKit2Generated.make:
26405         Copy over WKSerializedScriptValuePrivate.h.
26406
26407 2010-10-08  Jocelyn Turcotte  <jocelyn.turcotte@nokia.com>
26408
26409         Reviewed by Andreas Kling.
26410
26411         [Qt] Fix WKStringQt.h and WKURLQt.h API problems.
26412         https://bugs.webkit.org/show_bug.cgi?id=47412
26413
26414         * UIProcess/API/cpp/qt/WKStringQt.h:
26415         Remove the extern "C"
26416         * UIProcess/API/cpp/qt/WKURLQt.h:
26417         Remove the extern "C"
26418         * UIProcess/API/qt/qgraphicswkview.h:
26419         Fix the forwarded declaration
26420
26421 2010-10-08  Jocelyn Turcotte  <jocelyn.turcotte@nokia.com>
26422
26423         Reviewed by Kenneth Rohde Christiansen.
26424
26425         [Qt] Don't use -whole-archive to link-in libWebKit2.a except for libQtWebKit.so
26426         https://bugs.webkit.org/show_bug.cgi?id=47347
26427
26428         * WebKit2.pri:
26429
26430 2010-10-08  Kimmo Kinnunen  <kimmo.t.kinnunen@nokia.com>
26431
26432         Reviewed by Andreas Kling.
26433
26434         Notify WebPage when QGraphicsWKView gains focus. Set both
26435         active flag and focused flag, similar to QWebPage behavior.
26436
26437         [Qt] WebKit2 should support focusing
26438         https://bugs.webkit.org/show_bug.cgi?id=47168
26439
26440         * UIProcess/API/qt/qgraphicswkview.cpp:
26441         (QGraphicsWKView::focusInEvent): Added.
26442         (QGraphicsWKView::focusOutEvent): Added.
26443         * UIProcess/API/qt/qgraphicswkview.h: Added declarations.
26444
26445 2010-10-07  Ivan Krstić  <ike@apple.com>
26446
26447         Reviewed by Mark Rowe.
26448
26449         <rdar://problem/8349882> Many WebProcess sandbox violations during basic browsing operations.
26450
26451         * WebProcess/com.apple.WebProcess.sb:
26452         * WebProcess/mac/WebProcessMainMac.mm:
26453         (WebKit::WebProcessMain):
26454
26455 2010-10-07  Brady Eidson  <beidson@apple.com>
26456
26457         Build fix.
26458
26459         GCC continued to mask the fact that I still hadn't declared the correct symbol.
26460
26461         * Platform/Logging.cpp:
26462         (initializeLogChannel):
26463         * Platform/Logging.h:
26464
26465 2010-10-07  Brian Weinstein  <bweinstein@apple.com>
26466
26467         Build Fix. Fix the vcproj to make it valid and openable by Visual Studio.
26468
26469         * win/WebKit2.vcproj:
26470
26471 2010-10-07  Anders Carlsson  <andersca@apple.com>
26472
26473         Reviewed by Sam Weinig.
26474
26475         Add a WKPageFindClient, hook up WKPageCountStringMatches
26476         https://bugs.webkit.org/show_bug.cgi?id=47373
26477
26478         * Shared/APIClient.h: Added.
26479         Add an APIClient class template which can be used to reduce duplicated
26480         code in the client wrappers.
26481
26482         * UIProcess/API/C/WKPage.cpp:
26483         (WKPageSetPageFindClient):
26484         Initialize the page find client.
26485
26486         * UIProcess/API/C/WKPage.h:
26487         * UIProcess/WebFindClient.cpp: Added.
26488         (WebKit::WebFindClient::didCountStringMatches):
26489         Call the WKPageFindClient function.
26490
26491         * UIProcess/WebFindClient.h: Added.
26492         * UIProcess/WebPageProxy.cpp:
26493         (WebKit::WebPageProxy::initializeFindClient):
26494         Initialize the WebFindClient.
26495
26496         (WebKit::WebPageProxy::findString):
26497         Send a FindString message.
26498
26499         (WebKit::WebPageProxy::hideFindUI):
26500         Send a HideFindUI message.
26501
26502         (WebKit::WebPageProxy::countStringMatches):
26503         Send a CountStringMatches message.
26504
26505         (WebKit::WebPageProxy::didCountStringMatches):
26506         Call the find client.
26507
26508         * UIProcess/WebPageProxy.messages.in:
26509         Add new message.
26510
26511         * WebKit2.pro:
26512         * WebKit2.xcodeproj/project.pbxproj:
26513         Add new files.
26514
26515         * WebProcess/WebPage/WebPage.cpp:
26516         (WebKit::WebPage::findString):
26517         (WebKit::WebPage::hideFindUI):
26518         Add stubs.
26519
26520         (WebKit::WebPage::countStringMatches):
26521         Figure out the number of matches and send them back in the DidCountStringMatches msessage.
26522
26523         * WebProcess/WebPage/WebPage.h:
26524         * WebProcess/WebPage/WebPage.messages.in:
26525         Add new messages.
26526
26527         * win/WebKit2.vcproj:
26528         Add new files.
26529
26530 2010-10-07  Sam Weinig  <sam@webkit.org>
26531
26532         Update unit tests results.
26533
26534         * Scripts/webkit2/messages_unittest.py:
26535
26536 2010-10-07  Brady Eidson  <beidson@apple.com>
26537
26538         Reviewed by BUILD FIX for non-gcc builds.
26539
26540         * Platform/Logging.cpp:
26541         (initializeLogChannel):  GCC optimized out the only caller of this function. Windows doesn't, and is breaking.
26542
26543 2010-10-07  Darin Adler  <darin@apple.com>
26544
26545         Fix include mistake that makes build fail with non-Objective-C.
26546
26547         * Shared/API/c/mac/WKCertificateInfoMac.h: Include CoreFoundation.h,
26548         not Foundation.h.
26549
26550 2010-10-07  Sam Weinig  <sam@webkit.org>
26551
26552         Reviewed by Anders Carlsson.
26553
26554         Generate the messages sent to the WebPageProxy
26555         https://bugs.webkit.org/show_bug.cgi?id=47239
26556
26557         * DerivedSources.make:
26558         * DerivedSources.pro:
26559         * Platform/CoreIPC/Arguments.h:
26560         * Platform/CoreIPC/HandleMessage.h:
26561         (CoreIPC::handleMessage):
26562         * Scripts/webkit2/messages.py:
26563         * Shared/CoreIPCSupport/WebPageProxyMessageKinds.h: Removed.
26564         * Shared/StringPairVector.h: Added.
26565         * UIProcess/API/mac/PageClientImpl.h:
26566         * UIProcess/API/mac/PageClientImpl.mm:
26567         (WebKit::PageClientImpl::registerEditCommand):
26568         * UIProcess/API/qt/qwkpage.cpp:
26569         (QWKPagePrivate::registerEditCommand):
26570         * UIProcess/API/qt/qwkpage_p.h:
26571         * UIProcess/PageClient.h:
26572         * UIProcess/WebEditCommandProxy.cpp:
26573         (WebKit::WebEditCommandProxy::unapply):
26574         (WebKit::WebEditCommandProxy::reapply):
26575         * UIProcess/WebFormClient.cpp:
26576         (WebKit::WebFormClient::willSubmitForm):
26577         * UIProcess/WebFormClient.h:
26578         * UIProcess/WebPageProxy.cpp:
26579         * UIProcess/WebPageProxy.h:
26580         * UIProcess/WebPageProxy.messages.in: Added.
26581         * UIProcess/win/WebView.cpp:
26582         (WebKit::WebView::registerEditCommand):
26583         * UIProcess/win/WebView.h:
26584         * WebKit2.pro:
26585         * WebKit2.xcodeproj/project.pbxproj:
26586         * WebProcess/WebCoreSupport/WebChromeClient.cpp:
26587         * WebProcess/WebCoreSupport/WebEditorClient.cpp:
26588         (WebKit::WebEditorClient::registerCommandForUndo):
26589         (WebKit::WebEditorClient::clearUndoRedoOperations):
26590         * WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
26591         * WebProcess/WebPage/WebBackForwardListProxy.cpp:
26592         * WebProcess/WebPage/WebPage.cpp:
26593         * win/WebKit2.vcproj:
26594
26595 2010-10-07  Brady Eidson  <beidson@apple.com>
26596
26597         Reviewed by BUILD FIX.
26598
26599         Forgot this to keep the build working.
26600
26601         * WebKit2Prefix.h:
26602
26603 2010-10-07  Anders Carlsson  <andersca@apple.com>
26604
26605         Reviewed by John Sullivan.
26606
26607         Start stubbing out the find API
26608         https://bugs.webkit.org/show_bug.cgi?id=47366
26609         <rdar://problem/8524998>
26610
26611         * Shared/FindOptions.h: Added.
26612         * UIProcess/API/C/WKAPICast.h:
26613         (WebKit::toFindDirection):
26614         (WebKit::toFindOptions):
26615         * UIProcess/API/C/WKPage.cpp:
26616         (WKPageFindString):
26617         (WKPageHideFindUI):
26618         (WKPageCountStringMatches):
26619         * UIProcess/API/C/WKPage.h:
26620         * UIProcess/WebPageProxy.cpp:
26621         (WebKit::WebPageProxy::findString):
26622         (WebKit::WebPageProxy::hideFindUI):
26623         (WebKit::WebPageProxy::countStringMatches):
26624         * UIProcess/WebPageProxy.h:
26625
26626 2010-10-07  Jocelyn Turcotte  <jocelyn.turcotte@nokia.com>, Andras Becsi  <abecsi@webkit.org>, Balazs Kelemen  <kbalazs@webkit.org>
26627
26628         Reviewed by Kenneth Rohde Christiansen.
26629
26630         [Qt] Add WTR's InjectedBundle build files.
26631         https://bugs.webkit.org/show_bug.cgi?id=47333
26632
26633         * WebKit2.pro:
26634
26635 2010-10-07  Brady Eidson  <beidson@apple.com>
26636
26637         Reviewed by Sam Weinig.
26638
26639         Part of https://bugs.webkit.org/show_bug.cgi?id=47354 - Add WebCore/WebKit1 style logging channel mechanism0 to WebKit2, 
26640         including the first channel to be used for SessionState work.
26641
26642         * Platform/Logging.cpp: Added.
26643         (initializeLogChannelsIfNecessary):
26644         * Platform/Logging.h: Added.
26645
26646         * WebKit2.pro:
26647         * WebKit2.xcodeproj/project.pbxproj:
26648         * win/WebKit2.vcproj:
26649
26650 2010-10-07  Sheriff Bot  <webkit.review.bot@gmail.com>
26651
26652         Unreviewed, rolling out r69315.
26653         http://trac.webkit.org/changeset/69315
26654         https://bugs.webkit.org/show_bug.cgi?id=47363
26655
26656         Forgot to add the new files (Requested by kbalazs on #webkit).
26657
26658         * WebKit2.pro:
26659
26660 2010-10-07  Luiz Agostini  <luiz.agostini@openbossa.org>
26661
26662         Reviewed by Kenneth Rohde Christiansen.
26663
26664         Fixing viewport meta tag user-scalable handling
26665         https://bugs.webkit.org/show_bug.cgi?id=47330
26666
26667         user-scalable attribute was not considered in viewport meta tag handling.
26668
26669         * UIProcess/API/qt/qwkpage.cpp:
26670         (QWKPage::viewportConfigurationForSize):
26671
26672 2010-10-07  Jocelyn Turcotte  <jocelyn.turcotte@nokia.com>, Andras Becsi  <abecsi@webkit.org>, Balazs Kelemen  <kbalazs@webkit.org>
26673
26674         Reviewed by Kenneth Rohde Christiansen.
26675
26676         [Qt] Add WTR's InjectedBundle build files.
26677         https://bugs.webkit.org/show_bug.cgi?id=47333
26678
26679         * WebKit2.pro:
26680
26681 2010-10-07  Luiz Agostini  <luiz.agostini@openbossa.org>
26682
26683         Reviewed by Kenneth Rohde Christiansen.
26684
26685         Some viewport meta tag api refactoring
26686         https://bugs.webkit.org/show_bug.cgi?id=47334
26687
26688         WebCore::findConfigurationForViewportData renamed to computeViewportAttributes.
26689         WebCore::ViewportAttributes::layoutViewport renamed to layoutSize.
26690
26691         * UIProcess/API/qt/qwkpage.cpp:
26692         (QWKPage::viewportConfigurationForSize):
26693
26694 2010-10-06  Jessie Berlin  <jberlin@apple.com>
26695
26696         Reviewed by John Sullivan.
26697
26698         Bundle should expose a reportException method.
26699         https://bugs.webkit.org/show_bug.cgi?id=46769
26700
26701         * WebProcess/InjectedBundle/API/c/WKBundle.cpp:
26702         (WKBundleReportException):
26703         * WebProcess/InjectedBundle/API/c/WKBundle.h:
26704
26705         * WebProcess/InjectedBundle/InjectedBundle.cpp:
26706         (WebKit::InjectedBundle::reportException):
26707         Mimic the behavior of WebView::reportException.
26708         * WebProcess/InjectedBundle/InjectedBundle.h:
26709
26710 2010-10-07  Luiz Agostini  <luiz.agostini@openbossa.org>
26711
26712         Reviewed by Adam Roben.
26713
26714         [Qt] Webkit2 MacOS build fix
26715         https://bugs.webkit.org/show_bug.cgi?id=47167
26716
26717         There were two problems when building Qt WebKit2 in Mac. The first was that
26718         ld does not support flag -whole-archive and it needed to be replaced by flag -all_load.
26719         The second problem was that __APPLE__ is been used to identify safari builds and, when
26720         building Qt in MacOS, Qt was ending up using the wrong typedef. The solution was to use
26721         a Qt specific WKNativeEvent.h that only has the proper Qt typedef instead of the original one.
26722
26723         * UIProcess/API/C/qt/WKNativeEvent.h: Added.
26724         * WebKit2.pri:
26725         * WebKit2.pro:
26726
26727 2010-10-07  Balazs Kelemen  <kbalazs@webkit.org>
26728
26729         Reviewed by Kenneth Rohde Christiansen.
26730
26731         WebKitTestRunner should be portable
26732         https://bugs.webkit.org/show_bug.cgi?id=45393
26733
26734         Introducing additional URL API.
26735         * Shared/API/c/WKURL.cpp:
26736         (WKURLCreateWithUTF8CString):
26737         (WKURLIsEqual):
26738         * Shared/API/c/WKURL.h:
26739
26740 2010-10-06  Balazs Kelemen  <kbalazs@webkit.org>
26741
26742         Reviewed by Kenneth Rohde Christiansen.
26743
26744         [Qt] Add WebKitTestRunner's build files
26745         https://bugs.webkit.org/show_bug.cgi?id=44155
26746
26747         * DerivedSources.pro: Changes according the new location
26748         of generate-forwarding-headers.pl.
26749         * UIProcess/API/C/WebKit2.h: Do not check the value of the
26750         __APPLE__ define if it is not defined.
26751         * WebKit2.pro: Changes according the new location
26752         of generate-forwarding-headers.pl. Added missing files
26753         to the build that provides API that is used by WTR.
26754         * generate-forwarding-headers.pl: Moved to WebKitTools/Scripts
26755         since from now this is not only used by WebKit2.
26756
26757 2010-10-06  Anders Carlsson  <andersca@apple.com>
26758
26759         Reviewed by Sam Weinig.
26760
26761         Separate actually calling the member function from decoding/encoding arguments
26762         and remove any ambiguities when calling the function.
26763
26764         * Platform/CoreIPC/Arguments.h:
26765         * Platform/CoreIPC/HandleMessage.h:
26766         (CoreIPC::callMemberFunction):
26767         (CoreIPC::handleMessage):
26768
26769 2010-10-06  Anders Carlsson  <andersca@apple.com>
26770
26771         Reviewed by Sam Weinig.
26772
26773         More Arguments.h cleanup.
26774
26775         * Platform/CoreIPC/Arguments.h:
26776         * Platform/CoreIPC/HandleMessage.h:
26777         Remove unnecessary typedefs, simplify.
26778
26779         * Scripts/webkit2/messages.py:
26780         * UIProcess/WebContext.h:
26781         Fix clang++ build.
26782
26783 2010-10-06  Anders Carlsson  <andersca@apple.com>
26784
26785         Reviewed by Sam Weinig.
26786
26787         Start cleaning up Arguments.h
26788         https://bugs.webkit.org/show_bug.cgi?id=47304
26789
26790         This is a first step towards simplifying all the handleMessage overloads we have.
26791
26792         * Platform/CoreIPC/Arguments.h:
26793         (CoreIPC::Arguments1):
26794         Make Arguments1 a struct and get rid of the FirstArgumentType typedef. Instead, add a
26795         ValueType typedef which is defined to an Arguments1 type whose type parameter is not
26796         a reference type.
26797
26798         * Platform/CoreIPC/HandleMessage.h:
26799         (CoreIPC::handleMessage):
26800         Update for the Arguments1 change. Rename "arguments" to "argumentDecoder" and "reply" to
26801         "replyEncoder".
26802
26803 2010-10-06  Andras Becsi  <abecsi@webkit.org>
26804
26805         Reviewed by Kenneth Rohde Christiansen.
26806
26807         [Qt] Fix the build after API changes introduced in r69214.
26808
26809         * UIProcess/API/cpp/qt/WKStringQt.cpp:
26810         (WKStringCreateWithQString):
26811         * UIProcess/API/cpp/qt/WKURLQt.cpp:
26812         (WKURLCreateWithQUrl):
26813
26814 2010-10-06  Sheriff Bot  <webkit.review.bot@gmail.com>
26815
26816         Unreviewed, rolling out r69210.
26817         http://trac.webkit.org/changeset/69210
26818         https://bugs.webkit.org/show_bug.cgi?id=47297
26819
26820         This patch broke Windows (Requested by andersca on #webkit).
26821
26822         * DerivedSources.make:
26823         * DerivedSources.pro:
26824         * Platform/CoreIPC/Arguments.h:
26825         * Platform/CoreIPC/HandleMessage.h:
26826         (CoreIPC::handleMessage):
26827         * Scripts/webkit2/messages.py:
26828         * Scripts/webkit2/messages_unittest.py:
26829         * Shared/CoreIPCSupport/WebPageProxyMessageKinds.h: Added.
26830         * Shared/StringPairVector.h: Removed.
26831         * UIProcess/API/mac/PageClientImpl.h:
26832         * UIProcess/API/mac/PageClientImpl.mm:
26833         (WebKit::PageClientImpl::registerEditCommand):
26834         * UIProcess/API/qt/qwkpage.cpp:
26835         (QWKPagePrivate::registerEditCommand):
26836         * UIProcess/API/qt/qwkpage_p.h:
26837         * UIProcess/PageClient.h:
26838         * UIProcess/WebEditCommandProxy.cpp:
26839         (WebKit::WebEditCommandProxy::unapply):
26840         (WebKit::WebEditCommandProxy::reapply):
26841         * UIProcess/WebFormClient.cpp:
26842         (WebKit::WebFormClient::willSubmitForm):
26843         * UIProcess/WebFormClient.h:
26844         * UIProcess/WebPageProxy.cpp:
26845         (WebKit::WebPageProxy::didReceiveMessage):
26846         (WebKit::WebPageProxy::didReceiveSyncMessage):
26847         (WebKit::WebPageProxy::didStartProvisionalLoadForFrame):
26848         (WebKit::WebPageProxy::didReceiveServerRedirectForProvisionalLoadForFrame):
26849         (WebKit::WebPageProxy::didFailProvisionalLoadForFrame):
26850         (WebKit::WebPageProxy::didCommitLoadForFrame):
26851         (WebKit::WebPageProxy::didFinishDocumentLoadForFrame):
26852         (WebKit::WebPageProxy::didFinishLoadForFrame):
26853         (WebKit::WebPageProxy::didFailLoadForFrame):
26854         (WebKit::WebPageProxy::didReceiveTitleForFrame):
26855         (WebKit::WebPageProxy::didFirstLayoutForFrame):
26856         (WebKit::WebPageProxy::didFirstVisuallyNonEmptyLayoutForFrame):
26857         (WebKit::WebPageProxy::didRemoveFrameFromHierarchy):
26858         (WebKit::WebPageProxy::decidePolicyForNavigationAction):
26859         (WebKit::WebPageProxy::decidePolicyForNewWindowAction):
26860         (WebKit::WebPageProxy::decidePolicyForMIMEType):
26861         (WebKit::WebPageProxy::willSubmitForm):
26862         (WebKit::WebPageProxy::createNewPage):
26863         (WebKit::WebPageProxy::runJavaScriptAlert):
26864         (WebKit::WebPageProxy::runJavaScriptConfirm):
26865         (WebKit::WebPageProxy::runJavaScriptPrompt):
26866         (WebKit::WebPageProxy::mouseDidMoveOverElement):
26867         (WebKit::WebPageProxy::contentsSizeChanged):
26868         (WebKit::WebPageProxy::addItemToBackForwardList):
26869         (WebKit::WebPageProxy::goToItemInBackForwardList):
26870         (WebKit::WebPageProxy::registerEditCommandForUndo):
26871         (WebKit::WebPageProxy::registerEditCommandForRedo):
26872         (WebKit::WebPageProxy::didReceiveEvent):
26873         (WebKit::WebPageProxy::didChangeAcceleratedCompositing):
26874         * UIProcess/WebPageProxy.h:
26875         * UIProcess/WebPageProxy.messages.in: Removed.
26876         * UIProcess/win/WebView.cpp:
26877         (WebKit::WebView::registerEditCommand):
26878         * UIProcess/win/WebView.h:
26879         * WebKit2.pro:
26880         * WebKit2.xcodeproj/project.pbxproj:
26881         * WebProcess/WebCoreSupport/WebChromeClient.cpp:
26882         (WebKit::WebChromeClient::setWindowRect):
26883         (WebKit::WebChromeClient::takeFocus):
26884         (WebKit::WebChromeClient::createWindow):
26885         (WebKit::WebChromeClient::runJavaScriptAlert):
26886         (WebKit::WebChromeClient::runJavaScriptConfirm):
26887         (WebKit::WebChromeClient::runJavaScriptPrompt):
26888         (WebKit::WebChromeClient::setStatusbarText):
26889         (WebKit::WebChromeClient::contentsSizeChanged):
26890         (WebKit::WebChromeClient::mouseDidMoveOverElement):
26891         (WebKit::WebChromeClient::setToolTip):
26892         (WebKit::WebChromeClient::setCursor):
26893         * WebProcess/WebCoreSupport/WebEditorClient.cpp:
26894         (WebKit::WebEditorClient::registerCommandForUndo):
26895         (WebKit::WebEditorClient::clearUndoRedoOperations):
26896         * WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
26897         (WebKit::WebFrameLoaderClient::detachedFromParent2):
26898         (WebKit::WebFrameLoaderClient::dispatchDidReceiveServerRedirectForProvisionalLoad):
26899         (WebKit::WebFrameLoaderClient::dispatchDidStartProvisionalLoad):
26900         (WebKit::WebFrameLoaderClient::dispatchDidReceiveTitle):
26901         (WebKit::WebFrameLoaderClient::dispatchDidCommitLoad):
26902         (WebKit::WebFrameLoaderClient::dispatchDidFailProvisionalLoad):
26903         (WebKit::WebFrameLoaderClient::dispatchDidFailLoad):
26904         (WebKit::WebFrameLoaderClient::dispatchDidFinishDocumentLoad):
26905         (WebKit::WebFrameLoaderClient::dispatchDidFinishLoad):
26906         (WebKit::WebFrameLoaderClient::dispatchDidFirstLayout):
26907         (WebKit::WebFrameLoaderClient::dispatchDidFirstVisuallyNonEmptyLayout):
26908         (WebKit::WebFrameLoaderClient::dispatchDecidePolicyForMIMEType):
26909         (WebKit::WebFrameLoaderClient::dispatchDecidePolicyForNewWindowAction):
26910         (WebKit::WebFrameLoaderClient::dispatchDecidePolicyForNavigationAction):
26911         (WebKit::WebFrameLoaderClient::dispatchWillSubmitForm):
26912         (WebKit::WebFrameLoaderClient::postProgressStartedNotification):
26913         (WebKit::WebFrameLoaderClient::postProgressEstimateChangedNotification):
26914         (WebKit::WebFrameLoaderClient::postProgressFinishedNotification):
26915         (WebKit::WebFrameLoaderClient::createFrame):
26916         * WebProcess/WebPage/WebBackForwardListProxy.cpp:
26917         (WebKit::WebBackForwardListProxy::addItem):
26918         (WebKit::WebBackForwardListProxy::goToItem):
26919         (WebKit::WebBackForwardListProxy::backItem):
26920         (WebKit::WebBackForwardListProxy::currentItem):
26921         (WebKit::WebBackForwardListProxy::forwardItem):
26922         (WebKit::WebBackForwardListProxy::itemAtIndex):
26923         (WebKit::WebBackForwardListProxy::backListCount):
26924         (WebKit::WebBackForwardListProxy::forwardListCount):
26925         * WebProcess/WebPage/WebPage.cpp:
26926         (WebKit::WebPage::WebPage):
26927         (WebKit::WebPage::changeAcceleratedCompositingMode):
26928         (WebKit::WebPage::enterAcceleratedCompositingMode):
26929         (WebKit::WebPage::sendClose):
26930         (WebKit::WebPage::mouseEvent):
26931         (WebKit::WebPage::wheelEvent):
26932         (WebKit::WebPage::keyEvent):
26933         (WebKit::WebPage::validateMenuItem):
26934         (WebKit::WebPage::touchEvent):
26935         (WebKit::WebPage::show):
26936         (WebKit::WebPage::runJavaScriptInMainFrame):
26937         (WebKit::WebPage::getRenderTreeExternalRepresentation):
26938         (WebKit::WebPage::getSourceForFrame):
26939         * win/WebKit2.vcproj:
26940
26941 2010-10-06  Jessie Berlin  <jberlin@apple.com>
26942
26943         Rubber-stamped by Dan Bernstein.
26944
26945         WKSerializedScriptValue.h needs to be copied over into the WEBKITOUTPUTDIR on Windows.
26946         https://bugs.webkit.org/show_bug.cgi?id=47287
26947
26948         * win/WebKit2Generated.make:
26949         Copy WKSerializedScriptValue.h into $(WEBKITOUTPUTDIR)\include\WebKit2.
26950
26951 2010-10-06  Anders Carlsson  <andersca@apple.com>
26952
26953         Reviewed by Sam Weinig.
26954
26955         Rename toRef/toWK to toAPI/toImpl
26956         https://bugs.webkit.org/show_bug.cgi?id=47281
26957
26958         * Shared/API/c/WKArray.cpp:
26959         * Shared/API/c/WKCertificateInfo.cpp:
26960         * Shared/API/c/WKData.cpp:
26961         * Shared/API/c/WKDictionary.cpp:
26962         * Shared/API/c/WKError.cpp:
26963         * Shared/API/c/WKMutableArray.cpp:
26964         * Shared/API/c/WKMutableDictionary.cpp:
26965         * Shared/API/c/WKNumber.cpp:
26966         * Shared/API/c/WKSerializedScriptValue.cpp:
26967         * Shared/API/c/WKSharedAPICast.h:
26968         * Shared/API/c/WKString.cpp:
26969         * Shared/API/c/WKType.cpp:
26970         * Shared/API/c/WKURL.cpp:
26971         * Shared/API/c/WKURLRequest.cpp:
26972         * Shared/API/c/WKURLResponse.cpp:
26973         * Shared/API/c/cf/WKStringCF.cpp:
26974         * Shared/API/c/cf/WKURLCF.cpp:
26975         * Shared/API/c/cf/WKURLRequestCF.cpp:
26976         * Shared/API/c/cf/WKURLResponseCF.cpp:
26977         * Shared/API/c/mac/WKCertificateInfoMac.mm:
26978         * Shared/API/c/mac/WKURLRequestNS.mm:
26979         * Shared/API/c/mac/WKURLResponseNS.mm:
26980         * Shared/API/c/win/WKCertificateInfoWin.cpp:
26981         * UIProcess/API/C/WKAPICast.h:
26982         * UIProcess/API/C/WKBackForwardList.cpp:
26983         * UIProcess/API/C/WKBackForwardListItem.cpp:
26984         * UIProcess/API/C/WKContext.cpp:
26985         * UIProcess/API/C/WKFormSubmissionListener.cpp:
26986         * UIProcess/API/C/WKFrame.cpp:
26987         * UIProcess/API/C/WKFramePolicyListener.cpp:
26988         * UIProcess/API/C/WKNavigationData.cpp:
26989         * UIProcess/API/C/WKPage.cpp:
26990         * UIProcess/API/C/WKPageNamespace.cpp:
26991         * UIProcess/API/C/WKPreferences.cpp:
26992         * UIProcess/API/C/WKPreferencesPrivate.cpp:
26993         * UIProcess/API/C/win/WKContextWin.cpp:
26994         * UIProcess/API/C/win/WKView.cpp:
26995         * UIProcess/API/cpp/qt/WKStringQt.cpp:
26996         * UIProcess/API/cpp/qt/WKURLQt.cpp:
26997         * UIProcess/API/mac/PageClientImpl.mm:
26998         * UIProcess/API/mac/WKView.mm:
26999         * UIProcess/API/qt/ClientImpl.cpp:
27000         * UIProcess/API/qt/qwkpage.cpp:
27001         * UIProcess/GenericCallback.h:
27002         * UIProcess/WebContextInjectedBundleClient.cpp:
27003         * UIProcess/WebFormClient.cpp:
27004         * UIProcess/WebHistoryClient.cpp:
27005         * UIProcess/WebLoaderClient.cpp:
27006         * UIProcess/WebPolicyClient.cpp:
27007         * UIProcess/WebUIClient.cpp:
27008         * UIProcess/mac/ChunkedUpdateDrawingAreaProxyMac.mm:
27009         * UIProcess/mac/LayerBackedDrawingAreaProxyMac.mm:
27010         * UIProcess/qt/ChunkedUpdateDrawingAreaProxyQt.cpp:
27011         * WebProcess/InjectedBundle/API/c/WKBundle.cpp:
27012         * WebProcess/InjectedBundle/API/c/WKBundleAPICast.h:
27013         * WebProcess/InjectedBundle/API/c/WKBundleFrame.cpp:
27014         * WebProcess/InjectedBundle/API/c/WKBundleHitTestResult.cpp:
27015         * WebProcess/InjectedBundle/API/c/WKBundleNodeHandle.cpp:
27016         * WebProcess/InjectedBundle/API/c/WKBundlePage.cpp:
27017         * WebProcess/InjectedBundle/API/c/WKBundleRangeHandle.cpp:
27018         * WebProcess/InjectedBundle/API/c/WKBundleScriptWorld.cpp:
27019         * WebProcess/InjectedBundle/InjectedBundle.cpp:
27020         * WebProcess/InjectedBundle/InjectedBundlePageEditorClient.cpp:
27021         * WebProcess/InjectedBundle/InjectedBundlePageFormClient.cpp:
27022         * WebProcess/InjectedBundle/InjectedBundlePageLoaderClient.cpp:
27023         * WebProcess/InjectedBundle/InjectedBundlePageUIClient.cpp:
27024         * WebProcess/InjectedBundle/mac/InjectedBundleMac.cpp:
27025         * WebProcess/InjectedBundle/qt/InjectedBundleQt.cpp:
27026         * WebProcess/InjectedBundle/win/InjectedBundleWin.cpp:
27027
27028 2010-10-06  Luiz Agostini  <luiz.agostini@openbossa.org>
27029
27030         Reviewed by Kenneth Rohde Christiansen.
27031
27032         Renaming WebCore::ViewportConfiguration to WebCore::ViewportAttributes
27033         https://bugs.webkit.org/show_bug.cgi?id=47268
27034
27035         Renaming WebCore::ViewportConfiguration to WebCore::ViewportAttributes
27036
27037         * UIProcess/API/qt/qwkpage.cpp:
27038         (QWKPage::viewportConfigurationForSize):
27039
27040 2010-10-06  Sam Weinig  <sam@webkit.org>
27041
27042         Reviewed by Adam Roben.
27043
27044         Generate the messages sent to the WebPageProxy
27045         https://bugs.webkit.org/show_bug.cgi?id=47239
27046
27047         * Platform/CoreIPC/Arguments.h:
27048         Add additional typedefs.
27049
27050         * Platform/CoreIPC/HandleMessage.h:
27051         (CoreIPC::handleMessage):
27052         Add more handleMessage implementations.
27053
27054         * Scripts/webkit2/messages.py:
27055         * Scripts/webkit2/messages_unittest.py:
27056         Add headers for reply argument types.
27057
27058         * Shared/CoreIPCSupport/WebPageProxyMessageKinds.h: Removed.
27059
27060         * Shared/StringPairVector.h: Added.
27061         This file is a hack to work around a deficiency in the generator
27062         which can't deal with class templates with more than one argument.
27063
27064         * UIProcess/API/mac/PageClientImpl.h:
27065         * UIProcess/API/mac/PageClientImpl.mm:
27066         * UIProcess/API/qt/qwkpage.cpp:
27067         * UIProcess/API/qt/qwkpage_p.h:
27068         * UIProcess/PageClient.h:
27069         * UIProcess/WebEditCommandProxy.cpp:
27070         * UIProcess/WebFormClient.cpp:
27071         * UIProcess/WebFormClient.h:
27072         * UIProcess/WebPageProxy.cpp:
27073         * UIProcess/WebPageProxy.h:
27074         * WebProcess/WebCoreSupport/WebChromeClient.cpp:
27075         * WebProcess/WebCoreSupport/WebEditorClient.cpp:
27076         * WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
27077         * WebProcess/WebPage/WebBackForwardListProxy.cpp:
27078         * WebProcess/WebPage/WebPage.cpp:
27079         Migrate to generated calls.
27080
27081         * UIProcess/WebPageProxy.messages.in: Added.
27082         New messages definitions file.
27083
27084         * DerivedSources.make:
27085         * DerivedSources.pro:
27086         * win/WebKit2.vcproj:
27087         * WebKit2.pro:
27088         * WebKit2.xcodeproj/project.pbxproj:
27089         Add new files.
27090
27091 2010-10-05  Anders Carlsson  <andersca@apple.com>
27092
27093         Reviewed by Sam Weinig.
27094
27095         Send null events and mouse events
27096         https://bugs.webkit.org/show_bug.cgi?id=47223
27097
27098         * WebKit2.xcodeproj/project.pbxproj:
27099         Add "-Wno-deprecated-declarations" to the COMPILER_FLAGS for NetscapePluginMac.mm since
27100         we call Button() which is deprecated.
27101
27102         * WebProcess/Plugins/Netscape/NetscapePlugin.cpp:
27103         (WebKit::NetscapePlugin::NetscapePlugin):
27104         Initialize the null event timer.
27105
27106         * WebProcess/Plugins/Netscape/mac/NetscapePluginMac.mm:
27107         (WebKit::NetscapePlugin::platformPostInitialize):
27108         Start the null event timer.
27109
27110         (WebKit::NetscapePlugin::platformDestroy):
27111         Stop the null event timer.
27112
27113         (WebKit::NetscapePlugin::platformHandleMouseEvent):
27114         Initialize the event record and call NPP_HandleEvent.
27115
27116         (WebKit::NetscapePlugin::nullEventTimerFired):
27117         Send a null event with the current mouse position.
27118
27119 2010-10-05  Anders Carlsson  <andersca@apple.com>
27120
27121         Reviewed by Sam Weinig.
27122
27123         Start sending Carbon plug-in events in th Carbon event model
27124         https://bugs.webkit.org/show_bug.cgi?id=47209
27125         <rdar://problem/8515677>
27126
27127         * WebProcess/Plugins/Netscape/NetscapePlugin.cpp:
27128         (WebKit::NetscapePlugin::NetscapePlugin):
27129         Initialize the NP_CGContext struct.
27130
27131         * WebProcess/Plugins/Netscape/mac/NetscapePluginMac.mm:
27132         (WebKit::NetscapePlugin::platformPostInitialize):
27133         Create a fake Carbon window.
27134
27135         (WebKit::NetscapePlugin::platformDestroy):
27136         Destroy the Carbon window.
27137
27138         (WebKit::modifiersForEvent):
27139         Given a WebEvent, return the EventRecord modifiers.
27140
27141         (WebKit::NetscapePlugin::platformPaint):
27142         (WebKit::NetscapePlugin::platformHandleMouseEvent):
27143         (WebKit::NetscapePlugin::platformHandleWheelEvent):
27144         (WebKit::NetscapePlugin::platformHandleMouseEnterEvent):
27145         (WebKit::NetscapePlugin::platformHandleMouseLeaveEvent):
27146         (WebKit::NetscapePlugin::platformSetFocus):
27147         (WebKit::NetscapePlugin::windowFocusChanged):
27148         Create Carbon EventRecords and call NPP_HandleEvent.
27149
27150 2010-10-05  Sam Weinig  <sam@webkit.org>
27151
27152         Reviewed by Mark Rowe.
27153
27154         Add MIMEType accessor to WKFrame
27155         <rdar://problem/8347683>
27156         https://bugs.webkit.org/show_bug.cgi?id=47138
27157
27158         Tests: WebKit2/FrameMIMETypePNG
27159                WebKit2/FrameMIMETypeHTML
27160
27161         * UIProcess/API/C/WKFrame.cpp:
27162         (WKFrameCopyMIMEType):
27163         * UIProcess/API/C/WKFrame.h:
27164         * UIProcess/WebFrameProxy.h:
27165         (WebKit::WebFrameProxy::setMIMEType):
27166         (WebKit::WebFrameProxy::mimeType):
27167         * UIProcess/WebPageProxy.cpp:
27168         (WebKit::WebPageProxy::didReceiveMessage):
27169         (WebKit::WebPageProxy::didCommitLoadForFrame):
27170         * UIProcess/WebPageProxy.h:
27171         * WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
27172         (WebKit::WebFrameLoaderClient::dispatchDidCommitLoad):
27173
27174 2010-10-05  Kimmo Kinnunen  <kimmo.t.kinnunen@nokia.com>
27175
27176         Reviewed by Kenneth Rohde Christiansen.
27177
27178         Implement API call for setting custom user agent
27179         (QWKPage::setCustomUserAgent)
27180
27181         [Qt] Ability to set custom userAgent for WebKit2/WebKit
27182         https://bugs.webkit.org/show_bug.cgi?id=44265
27183
27184         * UIProcess/API/qt/qwkpage.cpp:
27185         (QWKPage::setCustomUserAgent): Added.
27186         * UIProcess/API/qt/qwkpage.h: Add setCustomUserAgent.
27187
27188 2010-10-05  Sheriff Bot  <webkit.review.bot@gmail.com>
27189
27190         Unreviewed, rolling out r69103.
27191         http://trac.webkit.org/changeset/69103
27192         https://bugs.webkit.org/show_bug.cgi?id=47177
27193
27194         Breaking Windows and Mac build. (Requested by lca on #webkit).
27195
27196         * UIProcess/API/C/WKNativeEvent.h:
27197         * UIProcess/API/qt/qwkpage.cpp:
27198         * UIProcess/API/qt/qwkpage.h:
27199         * WebKit2.pri:
27200
27201 2010-10-05  Luiz Agostini  <luiz.agostini@openbossa.org>
27202
27203         Reviewed by Antti Koivisto.
27204
27205         [Qt] Webkit2 MacOS build fix
27206         https://bugs.webkit.org/show_bug.cgi?id=47167
27207
27208         Qt WebKit2 MacOS build fix.
27209
27210         * UIProcess/API/C/WKNativeEvent.h:
27211         * UIProcess/API/qt/qwkpage.cpp:
27212         * UIProcess/API/qt/qwkpage.h:
27213         * WebKit2.pri:
27214
27215 2010-10-04  Mark Rowe  <mrowe@apple.com>
27216
27217         Reviewed by Sam Weinig.
27218
27219         Fix the build when sandboxing is enabled.
27220
27221         * UIProcess/WebContext.cpp:
27222         (WebKit::WebContext::ensureWebProcess):
27223         * UIProcess/WebProcessProxy.cpp:
27224
27225 2010-10-04  Andras Becsi  <abecsi@webkit.org>
27226
27227         Reviewed Csaba Osztrogonác.
27228
27229         [Qt] Build fix after r69037.
27230         Also remove dummy setUpAcceleratedCompositing() from the source file,
27231         since it has been removed from the header.
27232
27233         * UIProcess/WebProcessProxy.cpp:
27234
27235 2010-10-04  Andras Becsi  <abecsi@webkit.org>
27236
27237         Rubber-stamped by Csaba Osztrogonác.
27238
27239         [Qt] Fix the WebKit2 build after r69029.
27240
27241         * DerivedSources.pro:
27242
27243 2010-10-04  Sam Weinig  <sam@webkit.org>
27244
27245         Reviewed by Anders Carlsson.
27246
27247         Change WebProcess initialization to be done with an
27248         auxiliary struct.
27249
27250         * Platform/CoreIPC/mac/MachPort.h:
27251         * Shared/WebProcessCreationParameters.cpp: Added.
27252         (WebKit::WebProcessCreationParameters::WebProcessCreationParameters):
27253         (WebKit::WebProcessCreationParameters::encode):
27254         (WebKit::WebProcessCreationParameters::decode):
27255         * Shared/WebProcessCreationParameters.h: Added.
27256         * UIProcess/WebContext.cpp:
27257         (WebKit::WebContext::ensureWebProcess):
27258         * UIProcess/WebContext.h:
27259         * UIProcess/WebProcessProxy.cpp:
27260         (WebKit::WebProcessProxy::WebProcessProxy):
27261         * UIProcess/WebProcessProxy.h:
27262         * UIProcess/mac/WebContextMac.mm:
27263         (WebKit::WebContext::platformInitializeWebProcess):
27264         * UIProcess/mac/WebProcessProxyMac.mm: Removed.
27265         * UIProcess/qt/WebContextQt.cpp:
27266         (WebKit::WebContext::applicationCacheDirectory):
27267         (WebKit::WebContext::platformInitializeWebProcess):
27268         * UIProcess/win/WebContextWin.cpp:
27269         (WebKit::WebContext::platformInitializeWebProcess):
27270         * WebKit2.pro:
27271         * WebKit2.xcodeproj/project.pbxproj:
27272         * WebProcess/WebProcess.cpp:
27273         (WebKit::WebProcess::initializeWebProcess):
27274         * WebProcess/WebProcess.h:
27275         * WebProcess/WebProcess.messages.in:
27276         * win/WebKit2.vcproj:
27277
27278 2010-10-04  Brent Fulgham  <bfulgham@webkit.org>
27279
27280         Unreviewed build fixes after r68260 and r68686.
27281
27282         * Platform/CoreIPC/DataReference.h: Add include directive for
27283         <inttypes.h>, needed for WinCairo build.
27284         * Shared/win/PlatformCertificateInfo.cpp:
27285         (WebKit::PlatformCertificateInfo::PlatformCertificateInfo):
27286         Conditionalize logic specific to WebKitSystemInterface and
27287         add a stub implementation for WinCairo.
27288
27289 2010-10-04  Sam Weinig  <sam@webkit.org>
27290
27291         Reviewed by Adam Roben.
27292
27293         Generate messages sent to the WebProcess class.
27294         https://bugs.webkit.org/show_bug.cgi?id=47097
27295
27296         * DerivedSources.make:
27297         Add new file to generate and new directory to search.
27298
27299         * Scripts/webkit2/messages.py:
27300         (forward_declarations_and_headers): Special case class templates.
27301         (headers_for_type): Special case Vector.
27302         * Scripts/webkit2/messages_unittest.py:
27303         Make this script work for passing a templated type.
27304
27305         * Shared/CoreIPCSupport/WebProcessMessageKinds.h: Removed.
27306
27307         * UIProcess/VisitedLinkProvider.cpp:
27308         (WebKit::VisitedLinkProvider::pendingVisitedLinksTimerFired):
27309         * UIProcess/WebContext.cpp:
27310         (WebKit::WebContext::initializeHistoryClient):
27311         (WebKit::WebContext::ensureWebProcess):
27312         (WebKit::WebContext::registerURLSchemeAsEmptyDocument):
27313         (WebKit::WebContext::setCacheModel):
27314         * UIProcess/WebPageProxy.cpp:
27315         (WebKit::WebPageProxy::initializeWebPage):
27316         (WebKit::WebPageProxy::reinitializeWebPage):
27317         * UIProcess/WebProcessProxy.cpp:
27318         (WebKit::WebProcessProxy::WebProcessProxy): Always pass both
27319         the bundle path and a key, even if the key is null, which it will be for
27320         all non-mac builds for now.
27321         * UIProcess/mac/WebProcessProxyMac.mm:
27322         (WebKit::WebProcessProxy::setUpAcceleratedCompositing):
27323         * UIProcess/win/WebContextWin.cpp:
27324         (WebKit::WebContext::setShouldPaintNativeControls):
27325         (WebKit::WebContext::platformSetUpWebProcess):
27326         Use the new syntax for sending the messages.
27327
27328         * WebProcess/WebProcess.cpp:
27329         (WebKit::WebProcess::setShouldTrackVisitedLinks):
27330         (WebKit::WebProcess::setCacheModel):
27331         (WebKit::WebProcess::setupAcceleratedCompositingPort):
27332         (WebKit::WebProcess::setShouldPaintNativeControls):
27333         (WebKit::WebProcess::didReceiveMessage):
27334         * WebProcess/WebProcess.h:
27335         Convert to using generated didReceiveWebProcessMessage.
27336
27337         * WebProcess/WebProcess.messages.in: Added.
27338
27339         * WebKit2.pro:
27340         * WebKit2.xcodeproj/project.pbxproj:
27341         * win/WebKit2.vcproj:
27342         Update projects.
27343
27344 2010-10-04  Sam Weinig  <sam@webkit.org>
27345
27346         Fix the Mac build.
27347
27348         * WebProcess/mac/WebProcessMac.mm:
27349
27350 2010-10-04  Sam Weinig  <sam@webkit.org>
27351
27352         Reviewed by Anders Carlsson.
27353
27354         Add ability to set the CacheModel in Webkit2
27355         https://bugs.webkit.org/show_bug.cgi?id=47066
27356
27357         Add WKContext function to set the cache model for the context.
27358
27359         * Shared/CacheModel.h: Added.
27360         * Shared/CoreIPCSupport/WebProcessMessageKinds.h:
27361         * UIProcess/API/C/WKAPICast.h:
27362         (WebKit::toCacheModel):
27363         (WebKit::toRef):
27364         * UIProcess/API/C/WKContext.cpp:
27365         (WKContextSetCacheModel):
27366         (WKContextGetCacheModel):
27367         * UIProcess/API/C/WKContext.h:
27368         * UIProcess/WebContext.cpp:
27369         (WebKit::WebContext::WebContext):
27370         (WebKit::WebContext::ensureWebProcess):
27371         (WebKit::WebContext::setCacheModel):
27372         * UIProcess/WebContext.h:
27373         (WebKit::WebContext::cacheModel):
27374         * WebKit2.pro:
27375         * WebKit2.xcodeproj/project.pbxproj:
27376         * WebProcess/WebProcess.cpp:
27377         (WebKit::WebProcess::WebProcess):
27378         (WebKit::WebProcess::setCacheModel):
27379         (WebKit::WebProcess::didReceiveMessage):
27380         * WebProcess/WebProcess.h:
27381         * WebProcess/mac/WebProcessMac.mm: Added.
27382         (WebKit::memorySize):
27383         (WebKit::volumeFreeSize):
27384         (WebKit::WebProcess::platformSetCacheModel):
27385         * WebProcess/qt/WebProcessQt.cpp: Added.
27386         (WebKit::WebProcess::platformSetCacheModel):
27387         * WebProcess/win/WebProcessWin.cpp: Added.
27388         (WebKit::WebProcess::platformSetCacheModel):
27389         * win/WebKit2.vcproj:
27390
27391 2010-10-03  Anders Carlsson  <andersca@apple.com>
27392
27393         Reviewed by Sam Weinig.
27394
27395         Implement newly added Plugin/PluginController member functions for out of process plug-ins
27396         https://bugs.webkit.org/show_bug.cgi?id=47065
27397         <rdar://problem/8507194>
27398
27399         * Platform/CoreIPC/Arguments.h:
27400         Add typedefs.
27401
27402         * Platform/CoreIPC/HandleMessage.h:
27403         (CoreIPC::handleMessage):
27404         Add new handleMessage overload.
27405
27406         * PluginProcess/PluginControllerProxy.cpp:
27407         (WebKit::PluginControllerProxy::create):
27408         Add an isPrivateBrowsingEnabled boolean.
27409         
27410         (WebKit::PluginControllerProxy::PluginControllerProxy):
27411         Add an isPrivateBrowsingEnabled boolean.
27412
27413         (WebKit::PluginControllerProxy::proxiesForURL):
27414         (WebKit::PluginControllerProxy::cookiesForURL):
27415         (WebKit::PluginControllerProxy::setCookiesForURL):
27416         Send messages to the web process.
27417
27418         (WebKit::PluginControllerProxy::isPrivateBrowsingEnabled):
27419         Return whether private browsing is enabled or not.
27420
27421         (WebKit::PluginControllerProxy::handleKeyboardEvent):
27422         Call Plugin::handleKeyboardEvent.
27423
27424         (WebKit::PluginControllerProxy::privateBrowsingStateChanged):
27425         Call Plugin::privateBrowsingStateChanged.
27426
27427         * PluginProcess/PluginControllerProxy.messages.in:
27428         Add new messages.
27429
27430         * PluginProcess/WebProcessConnection.cpp:
27431         (WebKit::WebProcessConnection::createPlugin):
27432         Pass the isPrivateBrowsingEnabled flag.
27433
27434         * PluginProcess/WebProcessConnection.h:
27435         * PluginProcess/WebProcessConnection.messages.in:
27436         Update CreatePlugin message parameters.
27437
27438         * WebProcess/Plugins/PluginProcessConnection.cpp:
27439         (WebKit::PluginProcessConnection::didReceiveMessage):
27440         (WebKit::PluginProcessConnection::didReceiveSyncMessage):
27441         It's OK for a plug-in to not get a sync message.
27442
27443         * WebProcess/Plugins/PluginProcessConnection.h:
27444         * WebProcess/Plugins/PluginProxy.cpp:
27445         (WebKit::PluginProxy::handleKeyboardEvent):
27446         (WebKit::PluginProxy::privateBrowsingStateChanged):
27447         Send messages.
27448
27449         (WebKit::PluginProxy::proxiesForURL):
27450         (WebKit::PluginProxy::cookiesForURL):
27451         (WebKit::PluginProxy::setCookiesForURL):
27452         Call the plug-in controller.
27453
27454         * WebProcess/Plugins/PluginProxy.messages.in:
27455         Add new messages.
27456
27457 2010-10-03  Anders Carlsson  <andersca@apple.com>
27458
27459         Reviewed by Sam Weinig.
27460
27461         Send keyboard events to plug-ins
27462         https://bugs.webkit.org/show_bug.cgi?id=47064
27463         <rdar://problem/8507148>
27464
27465         * WebProcess/Plugins/Netscape/NetscapePlugin.cpp:
27466         (WebKit::NetscapePlugin::handleKeyboardEvent):
27467         Call platformHandleKeyboardEvent.
27468
27469         * WebProcess/Plugins/Netscape/mac/NetscapePluginMac.mm:
27470         (WebKit::modifierFlags):
27471         Return the modifier flags given a WebKeyboardEvent.
27472
27473         (WebKit::initializeKeyboardEvent):
27474         Initialize an NPCocoaEvent from a WebKeyboardEvent.
27475
27476         (WebKit::NetscapePlugin::platformHandleKeyboardEvent):
27477         Initialize the event and dispatch it using NPP_HandleEvent.
27478
27479         * WebProcess/Plugins/Netscape/qt/NetscapePluginQt.cpp:
27480         (WebKit::NetscapePlugin::platformHandleKeyboardEvent):
27481         Add stub.
27482
27483         * WebProcess/Plugins/Netscape/win/NetscapePluginWin.cpp:
27484         (WebKit::NetscapePlugin::platformHandleKeyboardEvent):
27485         Add stub.
27486         
27487         * WebProcess/Plugins/Plugin.h:
27488         Add handleKeyboardEvent.
27489
27490         * WebProcess/Plugins/PluginView.cpp:
27491         (WebKit::PluginView::handleEvent):
27492         Call Plugin::handleKeyboardEvent if we see a keydown or keyup event.
27493
27494 2010-10-01  Mark Rowe  <mrowe@apple.com>
27495
27496         Build fix.
27497
27498         Clear the executable bit from a number of source files.
27499
27500         * WebProcess/WebCoreSupport/win/WebFrameNetworkingContext.h:
27501
27502 2010-10-01  Anders Carlsson  <andersca@apple.com>
27503
27504         Reviewed by Sam Weinig.
27505
27506         Plug-ins should have access to the private browsing state.
27507         https://bugs.webkit.org/show_bug.cgi?id=47031
27508         <rdar://problem/8505405>
27509     
27510         * WebProcess/Plugins/Netscape/NetscapeBrowserFuncs.cpp:
27511         (WebKit::NPN_GetValue):
27512         Handle NPNVprivateModeBool.
27513
27514         * WebProcess/Plugins/Netscape/NetscapePlugin.cpp:
27515         (WebKit::NetscapePlugin::isPrivateBrowsingEnabled):
27516         Call PluginController::isPrivateBrowsingEnabled.
27517
27518         (WebKit::NetscapePlugin::NPP_SetValue):
27519         Add NPP_SetValue wrapper.
27520
27521         (WebKit::NetscapePlugin::privateBrowsingStateChanged):
27522         Call NPP_SetValue with the updated state.
27523
27524         * WebProcess/Plugins/Plugin.h:
27525         Add privateBrowsingStateChanged pure virtual member function.
27526
27527         * WebProcess/Plugins/PluginController.h:
27528         Add isPrivateBrowsingEnabled pure virtual member function.
27529
27530         * WebProcess/Plugins/PluginView.cpp:
27531         (WebKit::PluginView::privateBrowsingStateChanged):
27532         Call Plugin::privateBrowsingStateChanged.
27533
27534 2010-10-01  Sam Weinig  <sam@webkit.org>
27535
27536         Reviewed by Anders Carlsson.
27537
27538         Add SPI to convert a WKStringRef to a JSStringRef and vice-versa.
27539
27540         API Test: WebKit2/WKStringJSString
27541
27542         * Shared/API/c/WKString.cpp:
27543         (WKStringCreateWithJSString):
27544         (WKStringCopyJSString):
27545         * Shared/API/c/WKStringPrivate.h: Added.
27546         * Shared/WebString.h:
27547         (WebKit::WebString::create):
27548         (WebKit::WebString::createJSString):
27549         * WebKit2.pro:
27550         * WebKit2.xcodeproj/project.pbxproj:
27551         * win/WebKit2.vcproj:
27552         * win/WebKit2Generated.make:
27553
27554 2010-10-01  Anders Carlsson  <andersca@apple.com>
27555
27556         Reviewed by Sam Weinig.
27557
27558         Implement proxiesForURL, cookiesForURL and setCookiesForURL
27559         https://bugs.webkit.org/show_bug.cgi?id=47029
27560
27561         * WebProcess/Plugins/PluginView.cpp:
27562         (WebKit::PluginView::proxiesForURL):
27563         (WebKit::PluginView::cookiesForURL):
27564         (WebKit::PluginView::setCookiesForURL):
27565
27566 2010-10-01  Sam Weinig  <sam@webkit.org>
27567
27568         Reviewed by Kenneth Rohde Christiansen.
27569
27570         Add additional WKString API
27571         https://bugs.webkit.org/show_bug.cgi?id=46958
27572
27573         API Test: WebKit2/WKString
27574
27575         * Shared/API/c/WKString.cpp:
27576         (WKStringCreateWithUTF8CString):
27577         (WKStringGetMaximumUTF8CStringSize):
27578         (WKStringGetUTF8CString):
27579         (WKStringIsEqual):
27580         (WKStringIsEqualToUTF8CString):
27581         * Shared/API/c/WKString.h:
27582         * Shared/WebString.h:
27583         (WebKit::WebString::createFromUTF8String):
27584         (WebKit::WebString::maximumUTF8CStringSize):
27585         (WebKit::WebString::getUTF8CString):
27586         (WebKit::WebString::equal):
27587         (WebKit::WebString::equalToUTF8String):
27588
27589 2010-10-01  Anders Carlsson  <andersca@apple.com>
27590
27591         Reviewed by Dan Bernstein.
27592
27593         Implement NPN_GetValueForURL/NPN_SetValueForURL and stub out PluginController functions
27594         https://bugs.webkit.org/show_bug.cgi?id=46992
27595
27596         * WebProcess/Plugins/Netscape/NetscapeBrowserFuncs.cpp:
27597         (WebKit::copyCString):
27598         Helper function for allocating a string using NPN_MemAlloc.
27599
27600         (WebKit::NPN_GetValueForURL):
27601         Ask the plug-in for either the proxy or the cookies given an URL.
27602
27603         (WebKit::NPN_SetValueForURL):
27604         * WebProcess/Plugins/Netscape/NetscapePlugin.cpp:
27605         Tell the plug-in to set the cookies for the given URL.
27606
27607         (WebKit::NetscapePlugin::proxiesForURL):
27608         (WebKit::NetscapePlugin::cookiesForURL):
27609         (WebKit::NetscapePlugin::setCookiesForURL):
27610         Call the corresponding PluginController functions.
27611
27612         * WebProcess/Plugins/PluginController.h:
27613         Add new pure virtual member functions.
27614
27615         * WebProcess/Plugins/PluginView.cpp:
27616         (WebKit::PluginView::proxiesForURL):
27617         (WebKit::PluginView::cookiesForURL):
27618         (WebKit::PluginView::setCookiesForURL):
27619         Add stubbed out implementations of the new PluginController functions.
27620
27621         * WebProcess/Plugins/PluginView.h:
27622
27623 2010-10-01  Adam Roben  <aroben@apple.com>
27624
27625         Implement NPN_GetValue(NPNVnetscapeWindow)
27626
27627         Fixes <http://webkit.org/b/46726> <rdar://problem/8486319>
27628         Right-clicking on windowless Flash plugin in WebKit2 makes a context
27629         menu appear in the bottom-right corner of the screen
27630
27631         Test: platform/win/plugins/get-value-netscape-window.html
27632
27633         Reviewed by Anders Carlsson.
27634
27635         * WebProcess/Plugins/Netscape/NetscapeBrowserFuncs.cpp:
27636         (WebKit::NPN_GetValue): Added case for NPNVnetscapeWindow that calls
27637         through to NetscapePlugin::containingWindow.
27638
27639         * WebProcess/Plugins/Netscape/NetscapePlugin.h: Added containingWindow
27640         on Windows.
27641
27642         * WebProcess/Plugins/Netscape/win/NetscapePluginWin.cpp:
27643         (WebKit::NetscapePlugin::containingWindow): Added. Calls through to
27644         the PluginController.
27645         (WebKit::NetscapePlugin::platformPostInitialize): Changed to use
27646         containingWindow.
27647
27648 2010-09-30  Simon Fraser  <simon.fraser@apple.com>
27649
27650         Reviewed by Darin Adler.
27651
27652         Background doesn't draw when entering accelerated compositing
27653         https://bugs.webkit.org/show_bug.cgi?id=45848
27654         
27655         LayerBackedDrawingArea::setSize() is normally called in response
27656         to a message from the UI process, so this can come some time after
27657         LayerBackedDrawingArea creation. Depending on the timing, we could
27658         end up being at size 0x0 for the first invalidate and paint, resulting
27659         in missing content.
27660         
27661         The fix is to size the backing layer on creation, using the WebView's size.
27662         
27663         Also changed various calls to syncCompositingStateForThisLayerOnly()
27664         to do lazy updates via scheduleCompositingLayerSync().
27665         
27666         Also add the fix for https://bugs.webkit.org/show_bug.cgi?id=46226 (r68028)
27667         to the WebKit2 code, in scheduleUpdateLayoutRunLoopObserver().
27668
27669         * WebProcess/WebPage/LayerBackedDrawingArea.cpp:
27670         (WebKit::LayerBackedDrawingArea::LayerBackedDrawingArea):
27671         (WebKit::LayerBackedDrawingArea::setNeedsDisplay):
27672         (WebKit::LayerBackedDrawingArea::setSize):
27673         * WebProcess/WebPage/mac/LayerBackedDrawingAreaMac.mm:
27674         (WebKit::LayerBackedDrawingArea::platformInit):
27675         (WebKit::LayerBackedDrawingArea::attachCompositingContext):
27676         (WebKit::LayerBackedDrawingArea::detachCompositingContext):
27677         (WebKit::LayerBackedDrawingArea::setRootCompositingLayer):
27678         (WebKit::LayerBackedDrawingArea::syncCompositingLayers):
27679         (WebKit::LayerBackedDrawingArea::scheduleUpdateLayoutRunLoopObserver):
27680
27681 2010-09-29  Jon Honeycutt  <jhoneycutt@apple.com>
27682
27683         WebKit2 on Windows should use Windows fonts for the various standard
27684         font families
27685         https://bugs.webkit.org/show_bug.cgi?id=43499
27686         <rdar://problem/8272758>
27687
27688         Reviewed by Adam Roben.
27689
27690         * Shared/WebPreferencesStore.cpp:
27691         (WebKit::WebPreferencesStore::WebPreferencesStore):
27692         Use Windows fonts on Windows.
27693
27694 2010-09-30  Brady Eidson  <beidson@apple.com>
27695
27696         Reviewed by Sam Weinig.
27697
27698         https://bugs.webkit.org/show_bug.cgi?id=46774 - Add WKStringIsEqual API
27699
27700         * Shared/API/c/WKString.cpp:
27701         (WKStringIsEqual):
27702         * Shared/API/c/WKString.h:
27703
27704 2010-09-30  Anders Carlsson  <andersca@apple.com>
27705
27706         Reviewed by Adam Roben.
27707
27708         Forward declare structs with 'struct' in the message headers
27709         https://bugs.webkit.org/show_bug.cgi?id=46925
27710         <rdar://problem/8497940>
27711
27712         * Scripts/webkit2/messages.py:
27713         (struct_or_class): New function which given a type and a namespace returns the correct
27714         forward declaration syntax (struct or class).
27715
27716         * Scripts/webkit2/messages_unittest.py:
27717         Update expected results.
27718
27719 2010-09-30  Kenneth Rohde Christiansen  <kenneth@webkit.org>
27720
27721         Reviewed by Antti Koivisto.
27722
27723         Original patch by Zalan Bujtas.
27724
27725         The m_readBuffer might be smaller than the incoming message size and
27726         thus result in memory corruption. Do a similar fix as the win port,
27727         resizing the m_readBuffer to have room for the message.
27728
27729         * Platform/CoreIPC/qt/ConnectionQt.cpp:
27730         (CoreIPC::Connection::readyReadHandler):
27731
27732 2010-09-29  Anders Carlsson  <andersca@apple.com>
27733
27734         Reviewed by Simon Fraser.
27735
27736         Calling Connection::send/sendSync from Connection::Client::didClose should always fail
27737         https://bugs.webkit.org/show_bug.cgi?id=46859
27738         <rdar://problem/8212583>
27739
27740         * Platform/CoreIPC/Connection.cpp:
27741         (CoreIPC::Connection::dispatchConnectionDidClose):
27742
27743 2010-09-29  Simon Fraser  <simon.fraser@apple.com>
27744
27745         Reviewed by Anders Carlsson.
27746
27747         Assertion then crash closing WebKit2 window with accelerated compositing in
27748         https://bugs.webkit.org/show_bug.cgi?id=46857
27749         
27750         Fix two issues when closing a WebKit2 window using accelerated
27751         compositing.
27752         
27753         The first is that the response to the sync DidChangeAcceleratedCompositing message
27754         sent by changeAcceleratedCompositingMode() may be empty, because the corresponding
27755         page may have been destroyed already in the UI process. In that case newDrawingAreaInfo
27756         is not filled in, so we get a DrawingArea::Type of None. Don't attempt to make a new
27757         drawing area in that case.
27758         
27759         We then have to null-check the drawing area in WebPage::didReceiveMessage(),
27760         in the case where the UI process is calling back with a SuspendPainting message,
27761         before our page has gone away.
27762         
27763         * WebProcess/WebPage/WebPage.cpp:
27764         (WebKit::WebPage::changeAcceleratedCompositingMode):
27765         (WebKit::WebPage::didReceiveMessage):
27766
27767 2010-09-29  Anders Carlsson  <andersca@apple.com>
27768
27769         Reviewed by Sam Weinig.
27770
27771         Implement more of PluginProxy and PLuginControllerProxy.
27772
27773         * Platform/CoreIPC/ArgumentDecoder.cpp:
27774         (CoreIPC::ArgumentDecoder::decodeBytes):
27775         * Platform/CoreIPC/ArgumentDecoder.h:
27776         Add new overload that takes a DataReference. Wrap the debug function in #ifndef NDEBUG.
27777
27778         * Platform/CoreIPC/ArgumentEncoder.cpp:
27779         * Platform/CoreIPC/ArgumentEncoder.h:
27780         Wrap the debug function in #ifndef NDEBUG.
27781
27782         * Platform/CoreIPC/Arguments.h:
27783         Add new typedefs.
27784         
27785         * Platform/CoreIPC/DataReference.cpp:
27786         * Platform/CoreIPC/DataReference.h:
27787         Add a DataReference class.
27788     
27789         * Platform/CoreIPC/HandleMessage.h:
27790         (CoreIPC::handleMessage):
27791         Add new overload.
27792
27793         * PluginProcess/PluginControllerProxy.cpp:
27794         (WebKit::PluginControllerProxy::didEvaluateJavaScript):
27795         (WebKit::PluginControllerProxy::streamDidReceiveResponse):
27796         (WebKit::PluginControllerProxy::streamDidReceiveData):
27797         (WebKit::PluginControllerProxy::streamDidFinishLoading):
27798         (WebKit::PluginControllerProxy::streamDidFail):
27799         call Plugin member functions.
27800
27801         * PluginProcess/PluginControllerProxy.messages.in:
27802         Add new messages.
27803         
27804         * WebKit2.pro:
27805         * WebKit2.xcodeproj/project.pbxproj:
27806         * win/WebKit2.vcproj:
27807         Add DataReference.cpp and DataReference.h
27808
27809         * WebProcess/Plugins/PluginProxy.cpp:
27810         (WebKit::PluginProxy::didEvaluateJavaScript):
27811         (WebKit::PluginProxy::streamDidReceiveResponse):
27812         (WebKit::PluginProxy::streamDidReceiveData):
27813         (WebKit::PluginProxy::streamDidFinishLoading):
27814         (WebKit::PluginProxy::streamDidFail):
27815         Send messages.
27816
27817 2010-09-29  Anders Carlsson  <andersca@apple.com>
27818
27819         Update expected results.
27820
27821         * Scripts/webkit2/messages_unittest.py:
27822
27823 2010-09-29  Anders Carlsson  <andersca@apple.com>
27824
27825         Reviewed by Sam Weinig.
27826
27827         Implement LoadURL
27828         https://bugs.webkit.org/show_bug.cgi?id=46826
27829
27830         * Platform/CoreIPC/ArgumentCoders.h:
27831         Move String argument coder here from WebCoreArgumentCoders.h. Add
27832         argument coder for AtomicString.
27833
27834         * Platform/CoreIPC/Arguments.h:
27835         Add typedefs for Arguments7.
27836
27837         * Platform/CoreIPC/HandleMessage.h:
27838         (CoreIPC::handleMessage):
27839         Add handleMessage overload that takes 7 parameters.
27840
27841         * PluginProcess/PluginControllerProxy.cpp:
27842         (WebKit::PluginControllerProxy::loadURL):
27843         Send the LoadURL message.
27844
27845         * Scripts/webkit2/messages.py:
27846         (parse_parameter_string): Use rsplit in case the type name contains spaces.
27847         (argument_coder_headers_for_type): Special case Vector.
27848         
27849         * Scripts/webkit2/messages_unittest.py:
27850         Update results.
27851
27852         * Shared/WebCoreArgumentCoders.h:
27853         Add argument coder for HTTPHeaderMap.
27854
27855         * WebProcess/Plugins/PluginProxy.cpp:
27856         (WebKit::PluginProxy::loadURL):
27857         Ask the plug-in controller to load the URL.
27858
27859         * WebProcess/Plugins/PluginProxy.messages.in:
27860         Add LoadURL message.
27861
27862 2010-09-29  Anders Carlsson  <andersca@apple.com>
27863
27864         Reviewed by Sam Weinig.
27865
27866         Handle getting the user agent in the plug-in process
27867         https://bugs.webkit.org/show_bug.cgi?id=46819
27868
27869         * Platform/CoreIPC/HandleMessage.h:
27870         (CoreIPC::handleMessage):
27871         Add new handleMessage overload.
27872
27873         * PluginProcess/PluginControllerProxy.cpp:
27874         (WebKit::PluginControllerProxy::create):
27875         (WebKit::PluginControllerProxy::PluginControllerProxy):
27876         Pass the user agent to the plug-in controller proxy.
27877
27878         (WebKit::PluginControllerProxy::userAgent):
27879         Return the user agent.
27880
27881         * PluginProcess/WebProcessConnection.cpp:
27882         (WebKit::WebProcessConnection::createPlugin):
27883         Pass the user agent when creating the plug-in controller proxy.
27884
27885         * PluginProcess/WebProcessConnection.messages.in:
27886         Add userAgent.
27887
27888         * WebProcess/Plugins/Netscape/NetscapePlugin.cpp:
27889         (WebKit::NetscapePlugin::userAgent):
27890         * WebProcess/Plugins/PluginController.h:
27891         Remove the URL parameter to userAgent.
27892
27893         * WebProcess/Plugins/PluginProxy.cpp:
27894         (WebKit::PluginProxy::initialize):
27895         Pass the user agent to WebProcessConnection::CreatePlugin.
27896
27897         * WebProcess/Plugins/PluginView.cpp:
27898         (WebKit::PluginView::userAgent):
27899         Remove url parameter.
27900
27901 2010-09-29  Anders Carlsson  <andersca@apple.com>
27902
27903         Reviewed by Sam Weinig.
27904
27905         Implement more PluginProxy member functions
27906         https://bugs.webkit.org/show_bug.cgi?id=46815
27907
27908         * Platform/CoreIPC/HandleMessage.h:
27909         (CoreIPC::handleMessage):
27910         * PluginProcess/PluginControllerProxy.cpp:
27911         (WebKit::PluginControllerProxy::handleMouseEvent):
27912         (WebKit::PluginControllerProxy::handleWheelEvent):
27913         (WebKit::PluginControllerProxy::handleMouseEnterEvent):
27914         (WebKit::PluginControllerProxy::handleMouseLeaveEvent):
27915         (WebKit::PluginControllerProxy::setFocus):
27916         (WebKit::PluginControllerProxy::windowFocusChanged):
27917         (WebKit::PluginControllerProxy::windowFrameChanged):
27918         (WebKit::PluginControllerProxy::windowVisibilityChanged):
27919         Call the appropriate Plugin member functions.
27920
27921         * PluginProcess/PluginControllerProxy.messages.in:
27922         Add new messages.
27923
27924         * PluginProcess/WebProcessConnection.cpp:
27925         (WebKit::WebProcessConnection::didReceiveMessage):
27926         It's OK to get a message for a plug-in controller proxy that has gone away.
27927
27928         (WebKit::WebProcessConnection::didReceiveSyncMessage):
27929         Forward the message to the PluginControllerProxy handler.
27930
27931         * WebProcess/Plugins/PluginProxy.cpp:
27932         (WebKit::PluginProxy::handleMouseEvent):
27933         (WebKit::PluginProxy::handleWheelEvent):
27934         (WebKit::PluginProxy::handleMouseEnterEvent):
27935         (WebKit::PluginProxy::handleMouseLeaveEvent):
27936         (WebKit::PluginProxy::setFocus):
27937         (WebKit::PluginProxy::windowFocusChanged):
27938         (WebKit::PluginProxy::windowFrameChanged):
27939         (WebKit::PluginProxy::windowVisibilityChanged):
27940         Send messages to the plug-in process.
27941         
27942         (WebKit::PluginProxy::controller):
27943         Return the plug-in controller.
27944
27945 2010-09-29  Adam Roben  <aroben@apple.com>
27946
27947         Look for WebKit.dll (not WebKit_debug.dll) when launching the web
27948         process in Debug builds
27949
27950         Fixes <http://webkit.org/b/46809> <rdar://problem/8491809> REGRESSION
27951         (r67979): All tests crashing on Windows WebKit2 test bot
27952
27953         Reviewed by Sam Weinig.
27954
27955         * UIProcess/Launcher/win/ProcessLauncherWin.cpp: WebKit_debug.dll is
27956         only used in Debug_All builds (but WebKit2WebProcess_debug.exe is used
27957         in all non-Debug_Internal debug-style builds).
27958
27959 2010-09-28  Anders Carlsson  <andersca@apple.com>
27960
27961         Reviewed by Sam Weinig.
27962
27963         Paint the plug-in backing store into the WebProcess backing store
27964         https://bugs.webkit.org/show_bug.cgi?id=46768
27965
27966         * DerivedSources.make:
27967         Add PluginProxy.
27968         
27969         * Platform/CoreIPC/MessageID.h:
27970         Add PluginProxy message class.
27971
27972         * PluginProcess/PluginControllerProxy.cpp:
27973         (WebKit::PluginControllerProxy::paint):
27974         Let the web process know that we've painted.
27975
27976         * WebKit2.xcodeproj/project.pbxproj:
27977         Add new files.
27978
27979         * WebProcess/Plugins/PluginProcessConnection.cpp:
27980         (WebKit::PluginProcessConnection::didReceiveMessage):
27981         Pass the message on to a plug-in proxy.
27982
27983         * WebProcess/Plugins/PluginProxy.cpp:
27984         (WebKit::PluginProxy::paint):
27985         Paint our backing store into the graphics context.
27986
27987         (WebKit::PluginProxy::controller):
27988         Add notImplemented().
27989
27990         (WebKit::PluginProxy::update):
27991         Blit the plug-in backing store into the local backing store and tell the plug-in
27992         controller that we want to repaint.
27993
27994         * WebProcess/Plugins/PluginProxy.messages.in: Added.
27995
27996 2010-09-28  Jenn Braithwaite  <jennb@chromium.org>
27997
27998         Reviewed by Dmitry Titov.
27999
28000         Added oldPage param to FrameLoaderClient::didTransferChildFrameToNewDocument.
28001         https://bugs.webkit.org/show_bug.cgi?id=46663
28002
28003         * WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
28004         (WebKit::WebFrameLoaderClient::didTransferChildFrameToNewDocument):
28005         * WebProcess/WebCoreSupport/WebFrameLoaderClient.h:
28006
28007 2010-09-28  Anders Carlsson  <andersca@apple.com>
28008
28009         Reviewed by Sam Weinig.
28010
28011         Begin hooking up painting in the plug-in process
28012         https://bugs.webkit.org/show_bug.cgi?id=46766
28013
28014         * DerivedSources.make:
28015         Add PluginControllerProxy.
28016     
28017         * Platform/CoreIPC/MessageID.h:
28018         Add a MessageClassPluginControllerProxy message class.
28019
28020         * PluginProcess/PluginControllerProxy.cpp:
28021         (WebKit::PluginControllerProxy::PluginControllerProxy):
28022         Initialize the paint timer.
28023
28024         (WebKit::PluginControllerProxy::paint):
28025         Create a graphics context referencing our backing store and paint into it.
28026
28027         (WebKit::PluginControllerProxy::invalidate):
28028         Update the dirty rect and start the paint timer if necessary.
28029
28030         (WebKit::PluginControllerProxy::geometryDidChange):
28031         If we're passed a new backing store handle, reinitialize the backing store.
28032
28033         * PluginProcess/PluginControllerProxy.messages.in: Added.
28034         * PluginProcess/WebProcessConnection.cpp:
28035         (WebKit::WebProcessConnection::didReceiveMessage):
28036         If the message has a destination ID, forward it to the plug-in controller proxy.
28037
28038         * Scripts/webkit2/messages.py:
28039         Always include WebCoreArgumentCoders.h if the type is in the WebCore namespace.
28040
28041         * WebKit2.xcodeproj/project.pbxproj:
28042         Add new files.
28043
28044         * WebProcess/Plugins/PluginProxy.cpp:
28045         (WebKit::PluginProxy::geometryDidChange):
28046         Update the size of the backing store. Create a new plug-in backing store if needed and send
28047         it over to the plug-in process.
28048         
28049 2010-09-28  Anders Carlsson  <andersca@apple.com>
28050
28051         Reviewed by Sam Weinig.
28052
28053         ASSERT when launching the plugin process
28054         https://bugs.webkit.org/show_bug.cgi?id=46754
28055         <rdar://problem/8484570>
28056
28057         * UIProcess/Launcher/mac/ProcessLauncherMac.mm:
28058         (WebKit::ProcessLauncher::launchProcess):
28059         Don't assert if we fail to launch the process. Instead, set the connection identifier
28060         and process ID to null and deallocate the port we created.
28061
28062         * UIProcess/Plugins/PluginProcessProxy.cpp:
28063         (WebKit::PluginProcessProxy::pluginProcessCrashedOrFailedToLaunch):
28064         Move all code from didClose here.
28065
28066         (WebKit::PluginProcessProxy::didClose):
28067         Call pluginProcessCrashedOrFailedToLaunch.
28068
28069         (WebKit::PluginProcessProxy::didFinishLaunching):
28070         If we failed to launch, call pluginProcessCrashedOrFailedToLaunch.
28071
28072 2010-09-28  Anders Carlsson  <andersca@apple.com>
28073
28074         Reviewed by Sam Weinig.
28075
28076         Differentiate waitForSyncReply from waitForReply
28077         https://bugs.webkit.org/show_bug.cgi?id=46752
28078
28079         Since waitForSyncReply is going to need to dispatch incoming sync messages while
28080         waiting for the correct reply, we need to add a new waitForSyncReply function that
28081         can do this.
28082
28083         * Platform/CoreIPC/Connection.cpp:
28084         (CoreIPC::Connection::sendSyncMessage):
28085         Push the pending sync reply information on the m_pendingSyncReplies stack,
28086         send the message, wait for a reply and pop the information off the stack.
28087
28088         (CoreIPC::Connection::waitForSyncReply):
28089         Block while waiting for a reply to the sync message with the given ID.
28090         
28091         (CoreIPC::Connection::processIncomingMessage):
28092         If the incoming message is a sync reply, set the didReceiveReply flag and the replyDecoder
28093         members in the pending sync reply and signal the client thread to wakeup.
28094
28095         * Platform/CoreIPC/Connection.h:
28096         Add a stack of PendingSyncReply structs.
28097
28098 2010-09-28  Sam Weinig  <sam@webkit.org>
28099
28100         Reviewed by Darin Adler and Dave Hyatt.
28101
28102         Vertical scroll bar on apple.com is too short with WebKit2
28103         <rdar://problem/8379230>
28104         https://bugs.webkit.org/show_bug.cgi?id=46739
28105
28106         This gets us most of the way to having correct scroll corner behavior. We should
28107         follow this up by moving to painting the window re-sizer in WebCore.
28108
28109         * UIProcess/API/mac/WKView.mm:
28110         (-[WKView _ownsWindowGrowBox]):
28111         (-[WKView _updateGrowBoxForWindowFrameChange]): Calculate whether we should
28112         be taking the scroll corner into account when laying out scrollbars.
28113         * UIProcess/WebPageProxy.cpp:
28114         (WebKit::WebPageProxy::setWindowResizerSize):
28115         * UIProcess/WebPageProxy.h:
28116         * WebProcess/WebPage/WebPage.cpp:
28117         (WebKit::WebPage::setWindowResizerSize):
28118         (WebKit::WebPage::windowResizerRect): This now returns IntRect() for
28119         non-mac platforms (or any platform that never sends a setWindowResizerSize
28120         message).
28121         * WebProcess/WebPage/WebPage.h:
28122         * WebProcess/WebPage/WebPage.messages.in:
28123
28124 2010-09-28  Adam Roben  <aroben@apple.com>
28125
28126         Tell the UI client when a key event is not handled
28127
28128         When the web process receives an event, it sends a
28129         WebPageProxyMessage::DidReceiveEvent message back to the UI process.
28130         That message is now sent after handling the event, and includes a
28131         boolean signifying whether or not the event was actually handled.
28132
28133         Every time WebPageProxy receives a key event, it adds it to a queue.
28134         When it receives a WebPageProxyMessage::DidReceiveEvent for a key
28135         event, the event is removed from the queue. If the event was not
28136         handled, we tell the UI client.
28137
28138         Fixes <http://webkit.org/b/46660> <rdar://problem/8483465> Need API to
28139         tell a WebKit2 client application that a key event was not handled
28140
28141         Reviewed by Kenneth Rohde Christiansen and Sam Weinig.
28142
28143         * Shared/NativeWebKeyboardEvent.h: Added. This class wraps a
28144         WebKeyboardEvent and the native event that was used to construct it.
28145         (WebKit::NativeWebKeyboardEvent::nativeEvent): Simple getter.
28146
28147         * Shared/WebEvent.h: Made isKeyboardEventType public for
28148         WebPageProxy's benefit.
28149
28150         * Shared/mac/NativeWebKeyboardEventMac.mm: Added.
28151         (WebKit::NativeWebKeyboardEvent::NativeWebKeyboardEvent):
28152         * Shared/qt/NativeWebKeyboardEventQt.cpp: Added.
28153         (WebKit::NativeWebKeyboardEvent::NativeWebKeyboardEvent):
28154         * Shared/win/NativeWebKeyboardEventWin.cpp: Added.
28155         (WebKit::NativeWebKeyboardEvent::NativeWebKeyboardEvent):
28156         The constructor creates a WebKeyboardEvent and stores the native
28157         event.
28158
28159         * UIProcess/API/C/WKNativeEvent.h: Added.
28160
28161         * UIProcess/API/C/WKPage.h: Added WKPageDidNotHandleKeyEventCallback
28162         and WKPageUIClient::didNotHandleKeyEvent.
28163
28164         * UIProcess/API/mac/WKView.mm:
28165         (-[WKView keyUp:]):
28166         (-[WKView keyDown:]):
28167         * UIProcess/win/WebView.cpp:
28168         (WebKit::WebView::onKeyEvent):
28169         * UIProcess/API/qt/qwkpage.cpp:
28170         (QWKPagePrivate::keyPressEvent):
28171         (QWKPagePrivate::keyReleaseEvent):
28172         Changed to use NativeWebKeyboardEvent.
28173
28174         (QWKPage::QWKPage): Updated for addition of didNotHandleKeyEvent.
28175
28176         * UIProcess/WebPageProxy.cpp:
28177         (WebKit::WebPageProxy::handleKeyboardEvent): Changed to take a
28178         NativeWebKeyboardEvent and to add it to m_keyEventQueue.
28179         (WebKit::WebPageProxy::didReceiveMessage): Changed to expect a boolean
28180         parameter in WebPageProxyMessage::DidReceiveEvent.
28181         (WebKit::WebPageProxy::didReceiveEvent): Added a boolean "handled"
28182         parameter. If the event was a keyboard event, we remove it from
28183         m_keyEventQueue, and if it wasn't handled by WebCore, we tell the UI
28184         client.
28185
28186         * UIProcess/WebPageProxy.h: Added m_keyEventQueue.
28187
28188         * UIProcess/WebUIClient.cpp:
28189         (WebKit::WebUIClient::didNotHandleKeyEvent):
28190         * UIProcess/WebUIClient.h:
28191         Added. Just calls through to the WKPageUIClient.
28192
28193         * WebProcess/WebPage/WebPage.cpp:
28194         (WebKit::handleMouseEvent):
28195         (WebKit::WebPage::mouseEvent):
28196         (WebKit::handleWheelEvent):
28197         (WebKit::WebPage::wheelEvent):
28198         (WebKit::handleKeyEvent):
28199         (WebKit::WebPage::keyEvent):
28200         (WebKit::handleTouchEvent):
28201         (WebKit::WebPage::touchEvent):
28202         Moved code from the *Event functions into new helper handle*Event
28203         functions, and changed to pass a boolean to
28204         WebPageProxyMessage::DidReceiveEvent signaling whether the event was
28205         handled or not.
28206
28207         * WebKit2.pro:
28208         * WebKit2.xcodeproj/project.pbxproj:
28209         * win/WebKit2.vcproj:
28210         * win/WebKit2Generated.make:
28211         Added WKNativeEvent.h and NativeWebKeyboardEvent.
28212
28213 2010-09-28  Anders Carlsson  <andersca@apple.com>
28214
28215         Reviewed by Adam Roben.
28216
28217         Implement PluginProxy::destroy
28218         https://bugs.webkit.org/show_bug.cgi?id=46737
28219
28220         * Platform/CoreIPC/HandleMessage.h:
28221         (CoreIPC::handleMessage):
28222         Add overload for a sync message with one in parameter and no out parameters.
28223
28224         * PluginProcess/WebProcessConnection.cpp:
28225         (WebKit::WebProcessConnection::destroyPluginControllerProxy):
28226         Rename this to avoid conflicts with the destroyPlugin message handler.
28227
28228         (WebKit::WebProcessConnection::destroyPlugin):
28229         Call destroyPluginControllerProxy.
28230
28231         * PluginProcess/WebProcessConnection.messages.in:
28232         Add DestroyPlugin message.
28233
28234         * WebProcess/Plugins/PluginProcessConnection.cpp:
28235         (WebKit::PluginProcessConnection::didClose):
28236         
28237         * WebProcess/Plugins/PluginProxy.cpp:
28238         (WebKit::PluginProxy::PluginProxy):
28239         (WebKit::PluginProxy::~PluginProxy):
28240         Don't add and/the plug-in proxy from the map in the constructor/destructor. Instead,
28241         do it in initialize/destroy, since otherwise we could be calling pluginProcessCrashed on a
28242         PluginController that had already been freed.
28243
28244         (WebKit::PluginProxy::initialize):
28245         (WebKit::PluginProxy::destroy):
28246         send the DestroyPlugin message.
28247
28248 2010-09-28  Anders Carlsson  <andersca@apple.com>
28249
28250         Reviewed by Adam Roben.
28251
28252         Improve plug-in process lifecycle handling
28253         https://bugs.webkit.org/show_bug.cgi?id=46734
28254
28255         * PluginProcess/WebProcessConnection.cpp:
28256         (WebKit::WebProcessConnection::destroyPlugin):
28257         Destroy and delete the plug-in.
28258
28259         (WebKit::WebProcessConnection::didClose):
28260         Our web process crashed, go through and delete all plug-in instances.
28261
28262         * UIProcess/Plugins/PluginProcessProxy.cpp:
28263         (WebKit::PluginProcessProxy::didClose):
28264         The plug-in process crashed. Go through all pending replies and send them so the
28265         web processes won't be blocked waiting for a reply.
28266
28267         (WebKit::PluginProcessProxy::didCreateWebProcessConnection):
28268         We need to remove the pending reply connection once we've sent the reply.
28269
28270         * WebProcess/Plugins/PluginProcessConnection.cpp:
28271         (WebKit::PluginProcessConnection::didClose):
28272         The plug-in process crashed. Iterate over all proxies and let them know that the plug-in
28273         process has crashed.
28274
28275         * WebProcess/Plugins/PluginProxy.cpp:
28276         (WebKit::PluginProxy::pluginProcessCrashed):
28277         Tell our controller that the plug-in process crashed.
28278
28279         (WebKit::PluginProxy::destroy):
28280         Null out the controller.
28281
28282 2010-09-28  Anders Carlsson  <andersca@apple.com>
28283
28284         Reviewed by Adam Roben.
28285
28286         Implement PluginControllerProxy::initialize and have it create a plug-in
28287         https://bugs.webkit.org/show_bug.cgi?id=46731
28288
28289         * PluginProcess/PluginControllerProxy.cpp:
28290         (WebKit::PluginControllerProxy::initialize):
28291         Create the plug-in and try to initialize it.
28292
28293         (WebKit::PluginControllerProxy::destroy):
28294         Destroy the plug-in.
28295
28296         * PluginProcess/WebProcessConnection.cpp:
28297         (WebKit::WebProcessConnection::addPluginControllerProxy):
28298         Add the given plug-in controller proxy to the map and assume ownership of it.
28299
28300         (WebKit::WebProcessConnection::removePluginControllerProxy):
28301         Remove the given plug-in controller proxy from the map and delete it.
28302
28303         (WebKit::WebProcessConnection::createPlugin):
28304         Create a plug-in controller proxy and try to initialize it.
28305
28306 2010-09-28  Anders Carlsson  <andersca@apple.com>
28307
28308         Reviewed by Adam Roben.
28309
28310         Add PluginControllerProxy class
28311         https://bugs.webkit.org/show_bug.cgi?id=46728
28312
28313         * PluginProcess/PluginControllerProxy.cpp: Added.
28314         * PluginProcess/PluginControllerProxy.h: Added.
28315         Add stubbed out PluginControllerProxy class.
28316         
28317         * PluginProcess/WebProcessConnection.cpp:
28318         (WebKit::WebProcessConnection::~WebProcessConnection):
28319         Assert that we don't have any live plug-in controller proxies.
28320
28321         (WebKit::WebProcessConnection::addPluginControllerProxy):
28322         Add the plug-in controller proxy to the map.
28323                 
28324         (WebKit::WebProcessConnection::removePluginControllerProxy):
28325         Remove the plug-in controller proxy from the map. If the last plug-in controller
28326         proxy went away, invalidate the connection.
28327         
28328         * WebKit2.xcodeproj/project.pbxproj:
28329         Add files.
28330
28331 2010-09-28  Adam Roben  <aroben@apple.com>
28332
28333         Don't call NPP_SetWindow until the plugin's HWND has been
28334         sized/positioned
28335
28336         Test: platform/win/plugins/window-geometry-initialized-before-set-window.html
28337
28338         Reviewed by Anders Carlsson.
28339
28340         Fixes <http://webkit.org/b/46716> <rdar://problem/8482014> Full-page
28341         Adobe Reader does not paint until window is resized
28342
28343         * WebProcess/Plugins/Netscape/NetscapePlugin.cpp:
28344         (WebKit::NetscapePlugin::geometryDidChange): Call NPP_SetWindow after
28345         updating the platform (HWND) geometry.
28346
28347 2010-09-28  Anders Carlsson  <andersca@apple.com>
28348
28349         Out of process plug-ins shouldn't be turned on just yet...
28350
28351         * WebKit2Prefix.h:
28352
28353 2010-09-28  Andras Becsi  <abecsi@webkit.org>
28354
28355         Reviewed by Kenneth Rohde Christiansen.
28356
28357         [Qt] ProcessLauncherHelper should not leave stray socket files in /tmp.
28358         https://bugs.webkit.org/show_bug.cgi?id=46722
28359
28360         * UIProcess/Launcher/qt/ProcessLauncherQt.cpp:
28361         (WebKit::ProcessLauncherHelper::~ProcessLauncherHelper): close the socket.
28362         (WebKit::ProcessLauncherHelper::ProcessLauncherHelper): delete the helper on exit.
28363
28364 2010-09-28  Benjamin Poulain  <benjamin.poulain@nokia.com>
28365
28366         Reviewed by Andreas Kling.
28367
28368         [Qt] Remove support for Qt 4.5
28369         https://bugs.webkit.org/show_bug.cgi?id=46718
28370
28371         Remove the code for versions of Qt prior to 4.6.
28372
28373         * UIProcess/API/qt/qgraphicswkview.cpp:
28374         (QGraphicsWKView::event):
28375         * UIProcess/API/qt/qwkpage.cpp:
28376         * UIProcess/API/qt/qwkpage_p.h:
28377
28378 2010-09-28  Andras Becsi  <abecsi@webkit.org>
28379
28380         Reviewed by Csaba Osztrogonác.
28381
28382         [Qt] Fix generation of WebPageMessages.h and WebPageMessageReceiver.cpp
28383         to avoid rebuilding them every time.
28384
28385         * DerivedSources.pro: add target to extra compilers.
28386
28387 2010-09-27  Brady Eidson  <beidson@apple.com>
28388
28389         Reviewed by Sam Weinig.
28390
28391         https://bugs.webkit.org/show_bug.cgi?id=46688 - Add an API to get the WKBackForwardItem at an arbitrary index.
28392
28393         * UIProcess/API/C/WKBackForwardList.cpp:
28394         (WKBackForwardListGetItemAtIndex):
28395         * UIProcess/API/C/WKBackForwardList.h:
28396
28397 2010-09-27  Anders Carlsson  <andersca@apple.com>
28398
28399         Turns out people other than me might want to build this thing.
28400
28401         * WebKit2.xcodeproj/project.pbxproj:
28402
28403 2010-09-27  Darin Adler  <darin@apple.com>
28404
28405         * Scripts/webkit2: Added property svn:ignore.
28406
28407 2010-09-27  Anders Carlsson  <andersca@apple.com>
28408
28409         Reviewed by Sam Weinig.
28410
28411         * Platform/CoreIPC/Connection.h:
28412         (CoreIPC::Connection::sendSync):
28413         Add new sendSync overload that takes a message struct.
28414
28415         * PluginProcess/WebProcessConnection.cpp:
28416         (WebKit::WebProcessConnection::didReceiveSyncMessage):
28417         Call didReceiveSyncWebProcessConnectionMessage.
28418         
28419         * WebProcess/Plugins/PluginProcessConnection.cpp:
28420         (WebKit::PluginProcessConnection::addPluginProxy):
28421         Add the plug-in proxy to the map.
28422
28423         (WebKit::PluginProcessConnection::removePluginProxy):
28424         Remove the plug-in proxy from the map. If the map is empty, disconnect from the
28425         plug-in process.
28426
28427         * WebProcess/Plugins/PluginProxy.cpp:
28428         (WebKit::generatePluginInstanceID):
28429         Generate a unique plug-in instance ID.
28430
28431         (WebKit::PluginProxy::PluginProxy):
28432         Add the plug-in proxy to the map.
28433         
28434         (WebKit::PluginProxy::~PluginProxy):
28435         Remove the plug-in proxy from the map.
28436
28437         (WebKit::PluginProxy::initialize):
28438         Ask the plug-in process to create a plug-in.
28439
28440 2010-09-27  Sam Weinig  <sam@webkit.org>
28441
28442         Reviewed by Anders Carlsson.
28443
28444         Add remaining event handlers to WKView.
28445
28446         Also fixes <rdar://problem/8467058>
28447         Does not get decidePolicyForNavigationAction callback when middle clicking a link
28448
28449         - Adds otherButton and rightButton NSResponder event handlers to WKView.
28450         - Renames WebPageProxy event handlers to use the handle prefix.
28451         - Uses a macro to reduce duplicate code for WKView event handlers.
28452         - Add view parameter to WebEventFactory::createWebKeyboardEvent on the mac
28453           for uniformity.
28454
28455         * Shared/mac/WebEventFactory.h:
28456         * Shared/mac/WebEventFactory.mm:
28457         (WebKit::WebEventFactory::createWebKeyboardEvent):
28458         * UIProcess/API/mac/WKView.mm:
28459         * UIProcess/API/qt/qwkpage.cpp:
28460         (QWKPagePrivate::keyPressEvent):
28461         (QWKPagePrivate::keyReleaseEvent):
28462         (QWKPagePrivate::mouseMoveEvent):
28463         (QWKPagePrivate::mousePressEvent):
28464         (QWKPagePrivate::mouseReleaseEvent):
28465         (QWKPagePrivate::mouseDoubleClickEvent):
28466         (QWKPagePrivate::wheelEvent):
28467         (QWKPagePrivate::touchEvent):
28468         * UIProcess/WebPageProxy.cpp:
28469         (WebKit::WebPageProxy::handleMouseEvent):
28470         (WebKit::WebPageProxy::handleWheelEvent):
28471         (WebKit::WebPageProxy::handleKeyboardEvent):
28472         (WebKit::WebPageProxy::handleTouchEvent):
28473         * UIProcess/WebPageProxy.h:
28474         * UIProcess/win/WebView.cpp:
28475         (WebKit::WebView::onMouseEvent):
28476         (WebKit::WebView::onWheelEvent):
28477         (WebKit::WebView::onKeyEvent):
28478
28479 2010-09-27  Ivan Krstić  <ike@apple.com>
28480
28481         Reviewed by Mark Rowe.
28482
28483         <rdar://problem/8348990> / <http://webkit.org/b/46633> Make it possible to disable sandboxing of
28484         web process via runtime flag.
28485
28486         Enable sandboxing of the web process only if the DisableSandbox user default is not set for the
28487         web process.
28488
28489         * WebProcess/mac/WebProcessMainMac.mm:
28490         (WebKit::WebProcessMain):
28491
28492 2010-09-27  Anders Carlsson  <andersca@apple.com>
28493
28494         Reviewed by Adam Roben.
28495
28496         Add WebProcessConnection CreatePlugin message
28497         https://bugs.webkit.org/show_bug.cgi?id=46668
28498
28499         * DerivedSources.make:
28500         Add WebProcessConnection.
28501
28502         * Platform/CoreIPC/HandleMessage.h:
28503         Add handleMessage overload for a sync message with two input parameters
28504         and one output parameter.
28505
28506         (CoreIPC::handleMessage):
28507         * Platform/CoreIPC/MessageID.h:
28508         Add MessageClassWebProcessConnection.
28509
28510         * PluginProcess/WebProcessConnection.cpp:
28511         (WebKit::WebProcessConnection::createPlugin):
28512         Add stub.
28513
28514         * PluginProcess/WebProcessConnection.messages.in: Added.
28515         * Scripts/webkit2/messages.py:
28516         Include headers directly for types that we believe are nested structs.
28517
28518         * Scripts/webkit2/messages_unittest.py:
28519         Update expected results.
28520
28521         * WebKit2.xcodeproj/project.pbxproj:
28522         Add new files.
28523
28524 2010-09-27  Anders Carlsson  <andersca@apple.com>
28525
28526         Reviewed by Adam Roben.
28527
28528         Add support for autogenerating synchronous message handlers
28529         https://bugs.webkit.org/show_bug.cgi?id=46654
28530
28531         * Scripts/webkit2/messages.py:
28532         (reply_type): Renamed from reply_base_class.
28533         (delayed_reply_type): Renamed from delayed_reply_base_class.
28534         (message_to_struct_declaration): Add a Reply type typedef.
28535         (async_case_statement): Rename from case_statement.
28536         (generate_message_handler): Generate a sync message handler as well.
28537
28538         * Scripts/webkit2/messages_unittest.py:
28539         Update expected results.
28540
28541 2010-09-27  Andras Becsi  <abecsi@webkit.org>
28542
28543         Reviewed by Csaba Osztrogonác.
28544
28545         [Qt] Make generate-forwarding-headers.pl aware of moved headers
28546         https://bugs.webkit.org/show_bug.cgi?id=46621
28547
28548         * generate-forwarding-headers.pl:
28549
28550 2010-09-27  Sam Weinig  <sam@webkit.org>
28551
28552         Reviewed by Anders Carlsson.
28553
28554         The mouseDidMoveOverElement callback in the injected bundle should include modifier info
28555         https://bugs.webkit.org/show_bug.cgi?id=46629
28556
28557         - Moves event related API enums to WKEvent.h which can be shared between
28558           both the bundle and the main API.
28559
28560         * Shared/API/c/WKEvent.h: Added.
28561         * Shared/API/c/WKSharedAPICast.h:
28562         (WebKit::toRef):
28563         * UIProcess/API/C/WKAPICast.h:
28564         * UIProcess/API/C/WKPage.h:
28565         * WebKit2.xcodeproj/project.pbxproj:
28566         * WebProcess/InjectedBundle/API/c/WKBundlePage.h:
28567         * WebProcess/InjectedBundle/InjectedBundlePageUIClient.cpp:
28568         (WebKit::InjectedBundlePageUIClient::mouseDidMoveOverElement):
28569         * WebProcess/InjectedBundle/InjectedBundlePageUIClient.h:
28570         * WebProcess/WebCoreSupport/WebChromeClient.cpp:
28571         (WebKit::WebChromeClient::mouseDidMoveOverElement):
28572         * win/WebKit2.vcproj:
28573         * win/WebKit2Generated.make:
28574
28575 2010-09-27  Adam Roben  <aroben@apple.com>
28576
28577         Give mouse wheel events the right coordinates on Windows
28578
28579         Fixes <http://webkit.org/b/46625> <rdar://problem/8481161> Placing
28580         mouse cursor inside a scrollable area and scrolling the mouse wheel
28581         generally doesn't scroll the area
28582
28583         Reviewed by Sam Weinig.
28584
28585         * Shared/win/WebEventFactory.cpp:
28586         (WebKit::point): Renamed from positionForEvent. The old name implied
28587         that all events used the same relative origin, which is untrue.
28588         (WebKit::WebEventFactory::createWebMouseEvent): Changed to use point
28589         and ::ClientToScreen explicitly rather than relying on
28590         positionForEvent/globalPositionForEvent.
28591         (WebKit::WebEventFactory::createWebWheelEvent): Changed to use point
28592         and ::ScreenToClient. The old code was assuming that wheel event
28593         points are relative to the client area, but they are in fact relative
28594         to the screen.
28595
28596 2010-09-27  Sam Weinig  <sam@webkit.org>
28597
28598         Reviewed by Adam Roben.
28599
28600         Opening links in a new window asserts while decoding decidePolicyForNewWindowAction.
28601         <rdar://problem/8479445>
28602         https://bugs.webkit.org/show_bug.cgi?id=46623
28603
28604         * UIProcess/WebPageProxy.cpp:
28605         (WebKit::WebPageProxy::didReceiveMessage): Fix the order of decoding to
28606         match the order of encoding. (Swapping url and mouseButton).
28607
28608 2010-09-27  Adam Roben  <aroben@apple.com>
28609
28610         Stop leaking the web process's process handle on Windows
28611
28612         Fixes <http://webkit.org/b/46133> <rdar://problem/8455343>
28613
28614         Reviewed by Anders Carlsson.
28615
28616         * UIProcess/Launcher/ProcessLauncher.cpp:
28617         (WebKit::ProcessLauncher::invalidate): Call platformInvalidate.
28618
28619         * UIProcess/Launcher/ProcessLauncher.h: Added platformInvalidate.
28620
28621         * UIProcess/Launcher/mac/ProcessLauncherMac.mm:
28622         (WebKit::ProcessLauncher::platformInvalidate):
28623         * UIProcess/Launcher/qt/ProcessLauncherQt.cpp:
28624         (WebKit::ProcessLauncher::platformInvalidate):
28625         Stubbed out.
28626
28627         * UIProcess/Launcher/win/ProcessLauncherWin.cpp:
28628         (WebKit::ProcessLauncher::platformInvalidate): Close the process
28629         handle like MSDN says we should.
28630
28631 2010-09-27  Adam Roben  <aroben@apple.com>
28632
28633         Don't double-free CERT_CONTEXTs when copying PlatformCertificateInfos
28634         on Windows
28635
28636         Fixes <http://webkit.org/b/46536> <rdar://problem/8477292> REGRESSION
28637         (r68260): Crash in PlatformCertificateInfo::~PlatformCertificateInfo
28638         when navigating away from Gmail
28639
28640         Reviewed by Sam Weinig.
28641
28642         * Shared/win/PlatformCertificateInfo.cpp:
28643         (WebKit::PlatformCertificateInfo::PlatformCertificateInfo):
28644         (WebKit::PlatformCertificateInfo::operator=):
28645         * Shared/win/PlatformCertificateInfo.h:
28646         Added a copy constructor and assigment operator to handle correctly
28647         reffing/dereffing the CERT_CONTEXTs when copying a
28648         PlatformCertificateInfo.
28649
28650 2010-09-26  Sam Weinig  <sam@webkit.org>
28651
28652         Reviewed by Simon Fraser.
28653
28654         MiniBrowser crashes when opening main menu item
28655         https://bugs.webkit.org/show_bug.cgi?id=46588
28656
28657         * UIProcess/API/mac/PageClientImpl.mm:
28658         (WebKit::PageClientImpl::setEditCommandState): Don't allow default
28659         String -> NSString conversion to take place, and use the increasingly
28660         misnamed nsStringFromWebCoreString instead.
28661
28662 2010-09-26  Sam Weinig  <sam@webkit.org>
28663
28664         Another windows build fix windows attempt.
28665
28666         * win/WebKit2Common.vsprops:
28667
28668 2010-09-26  Sam Weinig  <sam@webkit.org>
28669
28670         Another windows build fix windows attempt.
28671
28672         * win/WebKit2Generated.make:
28673
28674 2010-09-26  Sam Weinig  <sam@webkit.org>
28675
28676         Attempt to fix windows build.
28677
28678         * win/WebKit2Common.vsprops:
28679
28680 2010-09-26  Sam Weinig  <sam@webkit.org>
28681
28682         Attempt to fix Qt build.
28683
28684         * WebKit2.pro:
28685
28686 2010-09-26  Sam Weinig  <sam@webkit.org>
28687
28688         Reviewed by Anders Carlsson.
28689
28690         Move shared WebKit2 API (used by both bundle and main API) to WebKit2/Shared/API
28691         https://bugs.webkit.org/show_bug.cgi?id=46587
28692
28693         - Moves shared types (WKArrayRef, WKDictionaryRef, etc) to Shared/API/c.
28694         - Removes WKBundleBase.h and moves all opaque type declarations to WKBase.h (which
28695           moves to Shared/API/c).
28696         - Adds WKSharedAPICast.h which includes shared API casting logic and is included
28697           by both WKAPICast.h and WKBundleAPICast.h now. Moved to using macros for API 
28698           mappings to reduce verbosity.
28699         - Move windows c API files from UIProcess/API/win to UIProcess/API/C/win.
28700
28701         * Shared/API: Added.
28702         * Shared/API/c: Added.
28703         * Shared/API/c/WKArray.cpp: Copied from UIProcess/API/C/WKArray.cpp.
28704         * Shared/API/c/WKArray.h: Copied from UIProcess/API/C/WKArray.h.
28705         * Shared/API/c/WKBase.h: Copied from UIProcess/API/C/WKBase.h.
28706         * Shared/API/c/WKCertificateInfo.cpp: Copied from UIProcess/API/C/WKCertificateInfo.cpp.
28707         * Shared/API/c/WKCertificateInfo.h: Copied from UIProcess/API/C/WKCertificateInfo.h.
28708         * Shared/API/c/WKData.cpp: Copied from UIProcess/API/C/WKData.cpp.
28709         * Shared/API/c/WKData.h: Copied from UIProcess/API/C/WKData.h.
28710         * Shared/API/c/WKDictionary.cpp: Copied from UIProcess/API/C/WKDictionary.cpp.
28711         * Shared/API/c/WKDictionary.h: Copied from UIProcess/API/C/WKDictionary.h.
28712         * Shared/API/c/WKError.cpp: Copied from UIProcess/API/C/WKError.cpp.
28713         * Shared/API/c/WKError.h: Copied from UIProcess/API/C/WKError.h.
28714         * Shared/API/c/WKMutableArray.cpp: Copied from UIProcess/API/C/WKMutableArray.cpp.
28715         * Shared/API/c/WKMutableArray.h: Copied from UIProcess/API/C/WKMutableArray.h.
28716         * Shared/API/c/WKMutableDictionary.cpp: Copied from UIProcess/API/C/WKMutableDictionary.cpp.
28717         * Shared/API/c/WKMutableDictionary.h: Copied from UIProcess/API/C/WKMutableDictionary.h.
28718         * Shared/API/c/WKNumber.cpp: Copied from UIProcess/API/C/WKNumber.cpp.
28719         * Shared/API/c/WKNumber.h: Copied from UIProcess/API/C/WKNumber.h.
28720         * Shared/API/c/WKSerializedScriptValue.cpp: Copied from UIProcess/API/C/WKSerializedScriptValue.cpp.
28721         * Shared/API/c/WKSerializedScriptValue.h: Copied from UIProcess/API/C/WKSerializedScriptValue.h.
28722         * Shared/API/c/WKSharedAPICast.h: Copied from UIProcess/API/C/WKAPICast.h.
28723         * Shared/API/c/WKString.cpp: Copied from UIProcess/API/C/WKString.cpp.
28724         * Shared/API/c/WKString.h: Copied from UIProcess/API/C/WKString.h.
28725         * Shared/API/c/WKType.cpp: Copied from UIProcess/API/C/WKType.cpp.
28726         * Shared/API/c/WKType.h: Copied from UIProcess/API/C/WKType.h.
28727         * Shared/API/c/WKURL.cpp: Copied from UIProcess/API/C/WKURL.cpp.
28728         * Shared/API/c/WKURL.h: Copied from UIProcess/API/C/WKURL.h.
28729         * Shared/API/c/WKURLRequest.cpp: Copied from UIProcess/API/C/WKURLRequest.cpp.
28730         * Shared/API/c/WKURLRequest.h: Copied from UIProcess/API/C/WKURLRequest.h.
28731         * Shared/API/c/WKURLResponse.cpp: Copied from UIProcess/API/C/WKURLResponse.cpp.
28732         * Shared/API/c/WKURLResponse.h: Copied from UIProcess/API/C/WKURLResponse.h.
28733         * Shared/API/c/cf: Copied from UIProcess/API/C/cf.
28734         * Shared/API/c/mac: Copied from UIProcess/API/C/mac.
28735         * Shared/API/c/win: Added.
28736         * Shared/API/c/win/WKBaseWin.h: Copied from UIProcess/API/win/WKBaseWin.h.
28737         * Shared/API/c/win/WKCertificateInfoWin.cpp: Copied from UIProcess/API/C/win/WKCertificateInfoWin.cpp.
28738         * Shared/API/c/win/WKCertificateInfoWin.h: Copied from UIProcess/API/C/win/WKCertificateInfoWin.h.
28739         * UIProcess/API/C/WKAPICast.h: Replaced.
28740         * UIProcess/API/C/WKArray.cpp: Removed.
28741         * UIProcess/API/C/WKArray.h: Removed.
28742         * UIProcess/API/C/WKBase.h: Removed.
28743         * UIProcess/API/C/WKCertificateInfo.cpp: Removed.
28744         * UIProcess/API/C/WKCertificateInfo.h: Removed.
28745         * UIProcess/API/C/WKData.cpp: Removed.
28746         * UIProcess/API/C/WKData.h: Removed.
28747         * UIProcess/API/C/WKDictionary.cpp: Removed.
28748         * UIProcess/API/C/WKDictionary.h: Removed.
28749         * UIProcess/API/C/WKError.cpp: Removed.
28750         * UIProcess/API/C/WKError.h: Removed.
28751         * UIProcess/API/C/WKMutableArray.cpp: Removed.
28752         * UIProcess/API/C/WKMutableArray.h: Removed.
28753         * UIProcess/API/C/WKMutableDictionary.cpp: Removed.
28754         * UIProcess/API/C/WKMutableDictionary.h: Removed.
28755         * UIProcess/API/C/WKNumber.cpp: Removed.
28756         * UIProcess/API/C/WKNumber.h: Removed.
28757         * UIProcess/API/C/WKSerializedScriptValue.cpp: Removed.
28758         * UIProcess/API/C/WKSerializedScriptValue.h: Removed.
28759         * UIProcess/API/C/WKString.cpp: Removed.
28760         * UIProcess/API/C/WKString.h: Removed.
28761         * UIProcess/API/C/WKType.cpp: Removed.
28762         * UIProcess/API/C/WKType.h: Removed.
28763         * UIProcess/API/C/WKURL.cpp: Removed.
28764         * UIProcess/API/C/WKURL.h: Removed.
28765         * UIProcess/API/C/WKURLRequest.cpp: Removed.
28766         * UIProcess/API/C/WKURLRequest.h: Removed.
28767         * UIProcess/API/C/WKURLResponse.cpp: Removed.
28768         * UIProcess/API/C/WKURLResponse.h: Removed.
28769         * UIProcess/API/C/cf: Removed.
28770         * UIProcess/API/C/cf/WKStringCF.cpp: Removed.
28771         * UIProcess/API/C/cf/WKStringCF.h: Removed.
28772         * UIProcess/API/C/cf/WKURLCF.cpp: Removed.
28773         * UIProcess/API/C/cf/WKURLCF.h: Removed.
28774         * UIProcess/API/C/cf/WKURLRequestCF.cpp: Removed.
28775         * UIProcess/API/C/cf/WKURLRequestCF.h: Removed.
28776         * UIProcess/API/C/cf/WKURLResponseCF.cpp: Removed.
28777         * UIProcess/API/C/cf/WKURLResponseCF.h: Removed.
28778         * UIProcess/API/C/mac: Removed.
28779         * UIProcess/API/C/mac/WKCertificateInfoMac.h: Removed.
28780         * UIProcess/API/C/mac/WKCertificateInfoMac.mm: Removed.
28781         * UIProcess/API/C/mac/WKURLRequestNS.h: Removed.
28782         * UIProcess/API/C/mac/WKURLRequestNS.mm: Removed.
28783         * UIProcess/API/C/mac/WKURLResponseNS.h: Removed.
28784         * UIProcess/API/C/mac/WKURLResponseNS.mm: Removed.
28785         * UIProcess/API/C/win/WKAPICastWin.h: Copied from UIProcess/API/win/WKAPICastWin.h.
28786         * UIProcess/API/C/win/WKBaseWin.h: Copied from UIProcess/API/win/WKBaseWin.h.
28787         * UIProcess/API/C/win/WKCertificateInfoWin.cpp: Removed.
28788         * UIProcess/API/C/win/WKCertificateInfoWin.h: Removed.
28789         * UIProcess/API/C/win/WKView.cpp: Copied from UIProcess/API/win/WKView.cpp.
28790         * UIProcess/API/C/win/WKView.h: Copied from UIProcess/API/win/WKView.h.
28791         * UIProcess/API/win: Removed.
28792         * UIProcess/API/win/WKAPICastWin.h: Removed.
28793         * UIProcess/API/win/WKBaseWin.h: Removed.
28794         * UIProcess/API/win/WKView.cpp: Removed.
28795         * UIProcess/API/win/WKView.h: Removed.
28796         * WebKit2.pro:
28797         * WebKit2.xcodeproj/project.pbxproj:
28798         * WebProcess/InjectedBundle/API/c/WKBundle.h:
28799         * WebProcess/InjectedBundle/API/c/WKBundleAPICast.h:
28800         * WebProcess/InjectedBundle/API/c/WKBundleBase.h: Removed.
28801         * WebProcess/InjectedBundle/API/c/WKBundleFrame.h:
28802         * WebProcess/InjectedBundle/API/c/WKBundleFramePrivate.h:
28803         * WebProcess/InjectedBundle/API/c/WKBundleHitTestResult.h:
28804         * WebProcess/InjectedBundle/API/c/WKBundleInitialize.h:
28805         * WebProcess/InjectedBundle/API/c/WKBundleNodeHandle.h:
28806         * WebProcess/InjectedBundle/API/c/WKBundlePage.h:
28807         * WebProcess/InjectedBundle/API/c/WKBundlePagePrivate.h:
28808         * WebProcess/InjectedBundle/API/c/WKBundlePrivate.h:
28809         * WebProcess/InjectedBundle/API/c/WKBundleRangeHandle.h:
28810         * WebProcess/InjectedBundle/API/c/WKBundleScriptWorld.h:
28811         * win/WebKit2.vcproj:
28812         * win/WebKit2Generated.make:
28813
28814 2010-09-26  Anders Carlsson  <andersca@apple.com>
28815
28816         Fix non-Mac builds.
28817
28818         * Platform/SharedMemory.h:
28819         * Platform/mac/SharedMemoryMac.cpp:
28820         (WebKit::SharedMemory::Handle::isNull):
28821
28822 2010-09-26  Anders Carlsson  <andersca@apple.com>
28823
28824         Reviewed by Sam Weinig.
28825
28826         Add PluginProxy class
28827         https://bugs.webkit.org/show_bug.cgi?id=46586
28828
28829         * WebKit2.xcodeproj/project.pbxproj:
28830         Add files.
28831
28832         * WebProcess/Plugins/PluginProxy.cpp: Added.
28833         * WebProcess/Plugins/PluginProxy.h: Added.
28834
28835         * WebProcess/WebPage/WebPage.cpp:
28836         (WebKit::WebPage::createPlugin):
28837         Create a PluginProxy wrapper.
28838
28839 2010-09-26  Anders Carlsson  <andersca@apple.com>
28840
28841         Reviewed by Sam Weinig.
28842
28843         Make it possible to encode null SharedMemory::Handle objects
28844         https://bugs.webkit.org/show_bug.cgi?id=46585
28845
28846         * Platform/SharedMemory.h:
28847         (WebKit::SharedMemory::Handle::isNull):
28848         Add isNull.
28849
28850         * Platform/mac/SharedMemoryMac.cpp:
28851         (WebKit::SharedMemory::Handle::encode):
28852         Remove asserts.
28853
28854         (WebKit::SharedMemory::create):
28855         Bail if we see a null handle. Also work around a kernel bug where
28856         mach_vm_map fails if the given address to map is already mapped, even if
28857         VM_FLAG_ANYWHERE is set.
28858
28859 2010-09-26  Anders Carlsson  <andersca@apple.com>
28860
28861         Reviewed by Sam Weinig.
28862
28863         Add BackingStore class
28864         https://bugs.webkit.org/show_bug.cgi?id=46584
28865
28866         * Shared/BackingStore.cpp: Added.
28867         (WebKit::BackingStore::create):
28868         Create a backing store backed by fastMalloc memory.
28869
28870         (WebKit::BackingStore::createSharable):
28871         Create a backing store backed by shared memory.
28872
28873         (WebKit::BackingStore::createHandle):
28874         Create a handle that can be sent over the wire.
28875
28876         (WebKit::BackingStore::resize):
28877         Resize the backing store memory.
28878
28879         (WebKit::BackingStore::data):
28880         Return the backing store data.
28881
28882         * Shared/mac/BackingStoreMac.mm: Added.
28883         (WebKit::BackingStore::createGraphicsContext):
28884         Create a graphics context that will paint into the backing store.
28885
28886         (WebKit::BackingStore::paint):
28887         Paint the backing store in a graphics context.
28888
28889         * WebKit2.xcodeproj/project.pbxproj:
28890         Add files.
28891
28892 2010-09-26  Anders Carlsson  <andersca@apple.com>
28893
28894         Reviewed by Sam Weinig.
28895
28896         Establish a connection between the plug-in process and the web process
28897         https://bugs.webkit.org/show_bug.cgi?id=46583
28898
28899         * PluginProcess/PluginProcess.cpp:
28900         (WebKit::PluginProcess::didReceiveMessage):
28901         Call the auto-generated didReceivePluginProcessMessage.
28902
28903         * PluginProcess/PluginProcess.h:
28904         Add didReceivePluginProcessMessage declaration.
28905
28906         * PluginProcess/PluginProcess.messages.in:
28907         Add new "CreateWebProcessConnection" message.
28908
28909         * PluginProcess/WebProcessConnection.cpp:
28910         (WebKit::WebProcessConnection::didReceiveMessage):
28911         (WebKit::WebProcessConnection::didReceiveSyncMessage):
28912         (WebKit::WebProcessConnection::didClose):
28913         (WebKit::WebProcessConnection::didReceiveInvalidMessage):
28914         Add stubbed out member functions.
28915
28916         * UIProcess/Plugins/PluginProcessManager.cpp:
28917         (WebKit::PluginProcessManager::getPluginProcessConnection):
28918         Ask the plug-in process proxy to create a connection.
28919
28920         * UIProcess/Plugins/PluginProcessProxy.cpp:
28921         (WebKit::PluginProcessProxy::createWebProcessConnection):
28922         Add the WebProcessProxy and the reply encoder to the queue of pending replies.
28923         If the process is still launching, keep track of how many pending requests we have, otherwise
28924         just send the request.
28925
28926         (WebKit::PluginProcessProxy::didReceiveMessage):
28927         Call the auto-generated didReceivePluginProcessMessage.
28928
28929         (WebKit::PluginProcessProxy::didFinishLaunching):
28930         Send all pending connection requests.
28931
28932         (WebKit::PluginProcessProxy::didCreateWebProcessConnection):
28933         Get the first pending reply and send it with the mach port.
28934
28935         * WebKit2.xcodeproj/project.pbxproj:
28936         Actually compile PluginProcessMessageReceiver.
28937
28938         * WebProcess/Plugins/PluginProcessConnection.cpp:
28939         (WebKit::PluginProcessConnection::PluginProcessConnection):
28940         Create a CoreIPC connection.
28941
28942         (WebKit::PluginProcessConnection::didReceiveMessage):
28943         (WebKit::PluginProcessConnection::didClose):
28944         (WebKit::PluginProcessConnection::didReceiveInvalidMessage):
28945         Add stubbed out member functions.
28946
28947         * WebProcess/WebPage/WebPage.cpp:
28948         (WebKit::WebPage::createPlugin):
28949         Ask the plug-in process connection manager for a connection.
28950
28951 2010-09-26  Anders Carlsson  <andersca@apple.com>
28952
28953         Reviewed by Sam Weinig.
28954
28955         Generated message handlers should include argument coder headers for some types
28956         https://bugs.webkit.org/show_bug.cgi?id=46582
28957
28958         * Scripts/webkit2/messages.py:
28959         When determining which headers to use when generating a message handler, consider the
28960         argument coder headers.
28961
28962         * Scripts/webkit2/messages_unittest.py:
28963         Update test result.
28964
28965 2010-09-24  Sam Weinig  <sam@webkit.org>
28966
28967         Fix release build.
28968
28969         * WebProcess/InjectedBundle/API/c/WKBundlePage.h:
28970
28971 2010-09-24  Enrica Casucci  <enrica@apple.com>
28972
28973         One more build fix.
28974
28975         * UIProcess/API/qt/qwkpage.cpp:
28976         (QWKPagePrivate::setEditCommandState):
28977
28978 2010-09-24  Sam Weinig  <sam@webkit.org>
28979
28980         Reviewed by Darin Adler.
28981
28982         Implement WebKit2 callback equivalent to -[WebUIDelegate mouseDidMoveOverElement:modifierFlags:]
28983         <rdar://problem/8359279>
28984         https://bugs.webkit.org/show_bug.cgi?id=46546
28985
28986         - Adds new WKBundleHitTestResultRef object to represent a content under a cursor.
28987         - Adds new Bundle and UI level mouseDidMoveOverElement UIClient callbacks, with
28988           pass through userData to communicate context up to the UIProcess
28989
28990         * Shared/APIObject.h:
28991         * Shared/CoreIPCSupport/WebPageProxyMessageKinds.h:
28992         * UIProcess/API/C/WKPage.h:
28993         * UIProcess/API/qt/qwkpage.cpp:
28994         (QWKPage::QWKPage):
28995         * UIProcess/WebPageProxy.cpp:
28996         (WebKit::WebPageProxy::didReceiveMessage):
28997         (WebKit::WebPageProxy::mouseDidMoveOverElement):
28998         * UIProcess/WebPageProxy.h:
28999         * UIProcess/WebUIClient.cpp:
29000         (WebKit::WebUIClient::mouseDidMoveOverElement):
29001         * UIProcess/WebUIClient.h:
29002         * WebKit2.pro:
29003         * WebKit2.xcodeproj/project.pbxproj:
29004         * WebProcess/InjectedBundle/API/c/WKBundleAPICast.h:
29005         * WebProcess/InjectedBundle/API/c/WKBundleBase.h:
29006         * WebProcess/InjectedBundle/API/c/WKBundleHitTestResult.cpp: Added.
29007         (WKBundleHitTestResultGetTypeID):
29008         (WKBundleHitTestResultGetNodeHandle):
29009         (WKBundleHitTestResultGetFrame):
29010         (WKBundleHitTestResultCopyAbsoluteLinkURL):
29011         * WebProcess/InjectedBundle/API/c/WKBundleHitTestResult.h: Added.
29012         * WebProcess/InjectedBundle/API/c/WKBundlePage.h:
29013         * WebProcess/InjectedBundle/InjectedBundleHitTestResult.cpp: Added.
29014         (WebKit::InjectedBundleHitTestResult::create):
29015         (WebKit::InjectedBundleHitTestResult::nodeHandle):
29016         (WebKit::InjectedBundleHitTestResult::webFrame):
29017         (WebKit::InjectedBundleHitTestResult::absoluteLinkURL):
29018         * WebProcess/InjectedBundle/InjectedBundleHitTestResult.h: Added.
29019         (WebKit::InjectedBundleHitTestResult::coreHitTestResult):
29020         (WebKit::InjectedBundleHitTestResult::InjectedBundleHitTestResult):
29021         (WebKit::InjectedBundleHitTestResult::type):
29022         * WebProcess/InjectedBundle/InjectedBundlePageUIClient.cpp:
29023         (WebKit::InjectedBundlePageUIClient::mouseDidMoveOverElement):
29024         * WebProcess/InjectedBundle/InjectedBundlePageUIClient.h:
29025         * WebProcess/WebCoreSupport/WebChromeClient.cpp:
29026         (WebKit::WebChromeClient::mouseDidMoveOverElement):
29027         * win/WebKit2.vcproj:
29028
29029 2010-09-24  Enrica Casucci  <enrica@apple.com>
29030
29031         Build fix.
29032
29033         * UIProcess/API/qt/qwkpage_p.h:
29034         * UIProcess/win/WebView.cpp:
29035         (WebKit::WebView::setEditCommandState):
29036         * UIProcess/win/WebView.h:
29037
29038 2010-09-24  Enrica Casucci  <enrica@apple.com>
29039
29040         Reviewed by Darin Adler.
29041
29042         Maui: Pasteboard support (42317)
29043         <rdar://problem/7660537>
29044         https://bugs.webkit.org/show_bug.cgi?id=42317
29045         
29046         This is the final piece of the pasteboard support for WebKit2.
29047         The menu validation has been hooked up for Mac. The validation is
29048         performed asynchronously and the menu entries updated while the menu
29049         is visible. I've created a generic mechanism to call editing commands
29050         that will make it easy to add new commands we will support in the future.
29051         The commands supported now are copy, cut, paste, pasteAsPlainText, delete
29052         and selectAll.
29053
29054         * Shared/CoreIPCSupport/WebPageProxyMessageKinds.h: Added DidValidateMenuItem.
29055         * UIProcess/API/mac/PageClientImpl.h: Added setEditCommandState.
29056         * UIProcess/API/mac/PageClientImpl.mm: Added setEditCommandState implementation.
29057         (WebKit::PageClientImpl::setEditCommandState): Added.
29058         * UIProcess/API/mac/WKView.mm:
29059         (WebCore::MenuItemInfo::MenuItemInfo):
29060         (-[WKView initWithFrame:pageNamespaceRef:]):
29061         (createSelectorExceptionMap): Added.
29062         (commandNameForSelector): Added.
29063         (-[WKView validateUserInterfaceItem:]): Added implementation.
29064         (-[WKView _setUserInterfaceItemState:enabled:state:]): Added.
29065         * UIProcess/API/mac/WKViewInternal.h:
29066         * UIProcess/PageClient.h:
29067         * UIProcess/WebPageProxy.cpp:
29068         (WebKit::WebPageProxy::validateMenuItem):
29069         (WebKit::WebPageProxy::executeEditCommand):
29070         (WebKit::WebPageProxy::didReceiveMessage): Now processing also
29071         DidValidateMenuItem.
29072         * UIProcess/WebPageProxy.h:
29073         * WebProcess/WebPage/WebPage.cpp:
29074         (WebKit::WebPage::executeEditingCommand): Fixed.
29075         (WebKit::WebPage::isEditingCommandEnabled): Fixed.
29076         (WebKit::WebPage::validateMenuItem): Added.
29077         (WebKit::WebPage::executeEditCommand): Added.
29078         * WebProcess/WebPage/WebPage.h: Removed cut, copy, paste, selectAll.
29079         Added validateMenuItem and executeEditCommand.
29080         * WebProcess/WebPage/WebPage.messages.in: Added new messages.
29081         * UIProcess/API/qt/qwkpage.cpp:
29082         (WebKit::QWKPage::setEditCommandState): Added.
29083         * UIProcess/API/qt/qwkpage_p.h: Added 
29084         
29085
29086 2010-09-24  Anders Carlsson  <andersca@apple.com>
29087
29088         Build fix.
29089
29090         * WebKit2.xcodeproj/project.pbxproj:
29091
29092 2010-09-24  Adam Roben  <aroben@apple.com>
29093
29094         Give windowed Netscape plugins their own window
29095
29096         The plugin window is a child of the WebView's window. The WebView's
29097         window is in the UI process, and the plugin's window is in the web
29098         process (though someday it will be in the plugin process), but Windows
29099         mostly handles this just fine. Right now we move the plugin's window
29100         in the web process, but we need to do it at paint time in the UI
29101         process instead so that the plugin windows will stay in sync with the
29102         web page's contents. There are also a whole bunch of plugin quirks
29103         that WebKit1 supports that we don't support yet, but that's a task for
29104         another day.
29105
29106         Fixes <http://webkit.org/b/44428> Get basic in-process windowed
29107         plugins working in WebKit2 on Windows
29108
29109         Reviewed by Anders Carlsson.
29110
29111         * WebProcess/Plugins/Netscape/NetscapePlugin.cpp:
29112         (WebKit::NetscapePlugin::destroy):
29113         (WebKit::NetscapePlugin::geometryDidChange):
29114         Call the new platform-specific functions.
29115
29116         * WebProcess/Plugins/Netscape/NetscapePlugin.h: Added
29117         platformDestroy/platformGeometryDidChange, and an m_window member on
29118         Windows to hold our window.
29119
29120         * WebProcess/Plugins/Netscape/mac/NetscapePluginMac.mm:
29121         (WebKit::NetscapePlugin::platformDestroy):
29122         (WebKit::NetscapePlugin::platformGeometryDidChange):
29123         * WebProcess/Plugins/Netscape/qt/NetscapePluginQt.cpp:
29124         (WebKit::NetscapePlugin::platformDestroy):
29125         (WebKit::NetscapePlugin::platformGeometryDidChange):
29126         Stubbed these out.
29127
29128         * WebProcess/Plugins/Netscape/win/NetscapePluginWin.cpp:
29129         (WebKit::registerPluginView): Added. The code came from
29130         WebCore's PluginViewWin.cpp, though I changed it to add one to
29131         COLOR_WINDOW, since that's what MSDN says we should do.
29132         (WebKit::NetscapePlugin::platformPostInitialize): If we're windowed,
29133         create a window for the plugin and make it a child of the WebView's
29134         window. If we're not windowed, just set m_window to 0.
29135         (WebKit::NetscapePlugin::platformDestroy): Destroy our window if we
29136         have one and it hasn't been destroyed already.
29137         (WebKit::NetscapePlugin::platformGeometryDidChange): Update our
29138         window's size and position.
29139
29140         * WebProcess/Plugins/PluginController.h:
29141         * WebProcess/Plugins/PluginView.cpp:
29142         (WebKit::PluginView::nativeParentWindow):
29143         * WebProcess/Plugins/PluginView.h:
29144         Added nativeParentWindow on Windows to return the WebView's window.
29145
29146 2010-09-24  Adam Roben  <aroben@apple.com>
29147
29148         Pass the WebView's HWND over to the web process
29149
29150         The HWND is packaged up in the WebPageCreationParameters and stored in
29151         the WebPage. It will eventually be used by windowed plugins.
29152
29153         Fixes <http://webkit.org/b/46512> WebPage needs access to its
29154         corresponding HWND from the UI process
29155
29156         Reviewed by Anders Carlsson.
29157
29158         * Shared/WebPageCreationParameters.cpp:
29159         (WebKit::WebPageCreationParameters::encode):
29160         (WebKit::WebPageCreationParameters::decode):
29161         Encode and decode the HWND as a uint64_t.
29162
29163         * Shared/WebPageCreationParameters.h: Added a nativeWindow member to
29164         store the HWND.
29165
29166         * UIProcess/PageClient.h: Added a nativeWindow function on Windows.
29167
29168         * UIProcess/WebPageProxy.cpp:
29169         (WebKit::WebPageProxy::creationParameters): Store the HWND from the
29170         page client in the struct to be sent to the web process.
29171
29172         * UIProcess/win/WebView.cpp:
29173         (WebKit::WebView::WebView): Moved the call to initializeWebPage after
29174         we've created our window so that our window will be ready when
29175         WebPageProxy asks for it to send it to the web process.
29176         (WebKit::WebView::nativeWindow): Added. Just returns our window.
29177
29178         * UIProcess/win/WebView.h: Added nativeWindow.
29179
29180         * WebProcess/WebPage/WebPage.cpp:
29181         (WebKit::WebPage::WebPage): Store the HWND in the new m_nativeWindow
29182         member.
29183
29184         * WebProcess/WebPage/WebPage.h:
29185         (WebKit::WebPage::nativeWindow): Added this simple getter.
29186
29187 2010-09-24  Adam Roben  <aroben@apple.com>
29188
29189         Add WebPageProxy::creationParameters
29190
29191         Fixes <http://webkit.org/b/46510> WebPageProxy has a bunch of
29192         duplicated WebPageCreationParameters code
29193
29194         Reviewed by Anders Carlsson.
29195
29196         * UIProcess/WebPageProxy.cpp:
29197         (WebKit::WebPageProxy::initializeWebPage):
29198         (WebKit::WebPageProxy::reinitializeWebPage):
29199         (WebKit::WebPageProxy::didReceiveSyncMessage):
29200         Use creationParameters.
29201
29202         (WebKit::WebPageProxy::creationParameters):
29203         * UIProcess/WebPageProxy.h:
29204         Added creationParameters.
29205
29206 2010-09-24  Adam Roben  <aroben@apple.com>
29207
29208         Make WebPage::create take a WebPageCreationParameter struct
29209
29210         It only makes sense, after all.
29211
29212         Fixes <http://webkit.org/b/46502>.
29213
29214         Reviewed by Anders Carlsson.
29215
29216         * WebProcess/WebPage/WebPage.cpp:
29217         (WebKit::WebPage::create):
29218         (WebKit::WebPage::WebPage):
29219         * WebProcess/WebPage/WebPage.h:
29220         Changed to take a WebPageCreationParameters struct.
29221
29222         * WebProcess/WebProcess.cpp:
29223         (WebKit::WebProcess::createWebPage): Changed to pass a
29224         WebPageCreationParameters struct.
29225
29226 2010-09-24  Kenneth Rohde Christiansen  <kenneth.christiansen@openbossa.org>
29227
29228         Reviewed by Andreas Kling.
29229
29230         Expose all WebKit2 C API preferences via the Qt API.
29231
29232         Also rename a wrongly named C method (was using Web instead of WK).
29233
29234         * UIProcess/API/C/WKPreferences.cpp:
29235         (WKPreferencesCopyStandardFontFamily):
29236         * UIProcess/API/C/WKPreferences.h:
29237         * UIProcess/API/qt/qwkpreferences.cpp:
29238         (QWKPreferences::setFontFamily):
29239         (QWKPreferences::fontFamily):
29240         (QWKPreferences::testAttribute):
29241         (QWKPreferences::setAttribute):
29242         * UIProcess/API/qt/qwkpreferences.h:
29243
29244 2010-09-24  Anders Carlsson  <andersca@apple.com>
29245
29246         Reviewed by Adam Roben.
29247
29248         Fill in more of PluginProcess
29249         https://bugs.webkit.org/show_bug.cgi?id=46534
29250
29251         * DerivedSources.make:
29252         Add PluginProcessProxy.
29253
29254         * Platform/CoreIPC/MessageID.h:
29255         Add a MessageClassPluginProcessProxy message class.
29256
29257         * PluginProcess/PluginProcess.cpp:
29258         (WebKit::PluginProcess::PluginProcess):
29259         Initialize the shutdown timer.
29260
29261         (WebKit::PluginProcess::initializeConnection):
29262         Rename this to initializeConnection to avoid conflicts in the CoreIPC message handler.
29263
29264         (WebKit::PluginProcess::removeWebProcessConnection):
29265         Remove the given web process connection from our vector.
29266
29267         (WebKit::PluginProcess::initialize):
29268         Create the plug-in module.
29269
29270         (WebKit::PluginProcess::createWebProcessConnection):
29271         Create a connection handle and send it to the UI process.
29272
29273         (WebKit::PluginProcess::shutdownTimerFired):
29274         Quit.
29275
29276         * PluginProcess/mac/PluginProcessMainMac.mm:
29277         (WebKit::PluginProcessMain):
29278         Call initializeConnection.
29279
29280         * Scripts/webkit2/messages.py:
29281         Add CoreIPC::MachPort as a special case.
29282
29283         * Scripts/webkit2/messages_unittest.py:
29284         Add test case.
29285
29286         * UIProcess/Plugins/PluginProcessProxy.cpp:
29287         (WebKit::PluginProcessProxy::didCreateWebProcessConnection):
29288         Add empty function.
29289
29290         * UIProcess/Plugins/PluginProcessProxy.messages.in: Added.
29291         * WebKit2.xcodeproj/project.pbxproj:
29292         Add PluginProcessProxy.messages.in.
29293
29294         * WebKit2Prefix.h:
29295         Add an ENABLE_PLUGIN_PROCESS #define which is 0 for now.
29296
29297 2010-09-24  Anders Carlsson  <andersca@apple.com>
29298
29299         Reviewed by Adam Roben.
29300
29301         messages_unittest.py should compare the generated results against expected results
29302         https://bugs.webkit.org/show_bug.cgi?id=46490
29303
29304         * Scripts/webkit2/messages_unittest.py:
29305
29306 2010-09-24  Kenneth Rohde Christiansen  <kenneth.christiansen@openbossa.org>
29307
29308         Reviewed by Antonio Gomes.
29309
29310         Make it possible to get the page preferences for Qt WebKit2 port.
29311
29312         * UIProcess/API/qt/qwkpage.cpp:
29313         (QWKPagePrivate::QWKPagePrivate):
29314         (QWKPage::preferences):
29315         * UIProcess/API/qt/qwkpage.h:
29316         * UIProcess/API/qt/qwkpage_p.h:
29317         * UIProcess/API/qt/qwkpreferences.cpp:
29318         (QWKPreferencesPrivate::createPreferences):
29319         (QWKPreferencesPrivate::createSharedPreferences):
29320         (QWKPreferences::sharedPreferences):
29321         (QWKPreferences::QWKPreferences):
29322         * UIProcess/API/qt/qwkpreferences.h:
29323
29324 2010-09-24  Kenneth Rohde Christiansen  <kenneth.christiansen@openbossa.org>
29325
29326         Reviewed by Sam Weinig.
29327
29328         Add WebKit2 C API for setting/getting frame flattening and plugin settings.
29329         http://webkit.org/b/46477
29330
29331         NOTE: The plugin setting was partly done but there was no C API.
29332
29333         * Shared/WebPreferencesStore.cpp:
29334         (WebKit::WebPreferencesStore::WebPreferencesStore):
29335         (WebKit::WebPreferencesStore::encode):
29336         (WebKit::WebPreferencesStore::decode):
29337         * Shared/WebPreferencesStore.h:
29338         * UIProcess/API/C/WKPreferences.cpp:
29339         (WKPreferencesSetFrameFlatteningEnabled):
29340         (WKPreferencesGetFrameFlatteningEnabled):
29341         (WKPreferencesSetPluginsEnabled):
29342         (WKPreferencesGetPluginsEnabled):
29343         * UIProcess/API/C/WKPreferences.h:
29344         * UIProcess/WebPreferences.cpp:
29345         (WebKit::WebPreferences::setFrameFlatteningEnabled):
29346         (WebKit::WebPreferences::frameFlatteningEnabled):
29347         (WebKit::WebPreferences::setPluginsEnabled):
29348         (WebKit::WebPreferences::pluginsEnabled):
29349         * UIProcess/WebPreferences.h:
29350         * WebProcess/WebPage/WebPage.cpp:
29351         (WebKit::WebPage::WebPage):
29352         (WebKit::WebPage::preferencesDidChange):
29353
29354 2010-09-24  Adam Roben  <aroben@apple.com>
29355
29356         Add WebPageCreationParameters
29357
29358         This struct is used in any messages that end up creating a WebPage.
29359         Using a struct instead of individual parameters will make it easier to
29360         add platform-specific data, such as an HWND on Windows.
29361
29362         Fixes <http://webkit.org/b/46470> Pass parameters for creating a
29363         WebPage in a single struct
29364
29365         Reviewed by Anders Carlsson.
29366
29367         * Shared/WebPageCreationParameters.cpp: Added.
29368         (WebKit::WebPageCreationParameters::encode):
29369         (WebKit::WebPageCreationParameters::decode):
29370         Simple encode/decode functions.
29371
29372         * Shared/WebPageCreationParameters.h: Added.
29373
29374         * UIProcess/WebPageProxy.cpp:
29375         (WebKit::WebPageProxy::initializeWebPage):
29376         (WebKit::WebPageProxy::reinitializeWebPage):
29377         (WebKit::WebPageProxy::didReceiveSyncMessage):
29378         * WebProcess/WebCoreSupport/WebChromeClient.cpp:
29379         (WebKit::WebChromeClient::createWindow):
29380         * WebProcess/WebProcess.cpp:
29381         (WebKit::WebProcess::createWebPage):
29382         (WebKit::WebProcess::didReceiveMessage):
29383         * WebProcess/WebProcess.h:
29384         Changed to use WebPageCreationParameters instead of passing the
29385         values individually.
29386
29387         * WebKit2.pro:
29388         * WebKit2.xcodeproj/project.pbxproj:
29389         * win/WebKit2.vcproj:
29390         Added WebPageCreationParameters.
29391
29392 2010-09-24  Adam Roben  <aroben@apple.com>
29393
29394         Stop pretending that we know how to encode a DrawingArea and just
29395         encode the DrawingAreaInfo directly
29396
29397         DrawingAreaBase and friends were trying to hide the fact that they
29398         were just encoding/decoding a DrawingAreaInfo behind the scenes, but
29399         everyone knew what was going on and it was getting embarassing.
29400
29401         Fixes <http://webkit.org/b/46469> Code to encode/decode a
29402         DrawingAreaInfo is confusing
29403
29404         Reviewed by Anders Carlsson.
29405
29406         * Shared/DrawingAreaBase.cpp: Removed.
29407         * Shared/DrawingAreaBase.h: Removed encode/decode.
29408         * UIProcess/ChunkedUpdateDrawingAreaProxy.h: Removed encode override.
29409
29410         * UIProcess/WebPageProxy.cpp:
29411         (WebKit::WebPageProxy::initializeWebPage):
29412         (WebKit::WebPageProxy::reinitializeWebPage):
29413         (WebKit::WebPageProxy::didReceiveSyncMessage):
29414         Changed to encode the DrawingAreaInfo directly.
29415
29416         * WebKit2.pro:
29417         * WebKit2.xcodeproj/project.pbxproj:
29418         * win/WebKit2.vcproj:
29419         Removed DrawingAreaBase.cpp.
29420
29421 2010-09-24  Adam Roben  <aroben@apple.com>
29422
29423         Expose a whole DrawingAreaInfo instead of its constituent parts from
29424         DrawingAreaBase
29425
29426         This is just a step toward cleaning up how drawing areas are
29427         encoded/ecoded.
29428
29429         Fixes <http://webkit.org/b/46468> DrawingAreaInfo should be used in
29430         more places
29431
29432         Reviewed by Anders Carlsson.
29433
29434         * Shared/DrawingAreaBase.cpp:
29435         (WebKit::DrawingAreaBase::encode): Changed to use info().
29436
29437         * Shared/DrawingAreaBase.h:
29438         (WebKit::DrawingAreaBase::info): Added. Replaces type() and id().
29439         (WebKit::DrawingAreaBase::DrawingAreaBase): Changed to store a
29440         DrawingAreaInfo instead of storing its constituent parts.
29441
29442         * UIProcess/API/mac/WKView.mm:
29443         * UIProcess/ChunkedUpdateDrawingAreaProxy.cpp:
29444         * UIProcess/LayerBackedDrawingAreaProxy.cpp:
29445         * WebProcess/WebPage/ChunkedUpdateDrawingArea.cpp:
29446         * WebProcess/WebPage/LayerBackedDrawingArea.cpp:
29447         * WebProcess/WebPage/WebPage.cpp:
29448         Updated to use info().
29449
29450 2010-09-24  Anders Carlsson  <andersca@apple.com>
29451
29452         Reviewed by Sam Weinig.
29453
29454         Add WebProcessConnection class
29455         https://bugs.webkit.org/show_bug.cgi?id=46478
29456
29457         * PluginProcess/WebProcessConnection.cpp: Added.
29458         * PluginProcess/WebProcessConnection.h: Added.
29459         Add stubbed out WebProcessConnection class.
29460
29461         * WebKit2.xcodeproj/project.pbxproj:
29462         Add files.
29463
29464 2010-09-24  Anders Carlsson  <andersca@apple.com>
29465
29466         Reviewed by Sam Weinig.
29467
29468         Add PluginProcess class
29469         https://bugs.webkit.org/show_bug.cgi?id=46476
29470
29471         * PluginProcess/PluginProcess.cpp: Added.
29472         * PluginProcess/PluginProcess.h: Added.
29473         Add stubbed out PluginProcess class.
29474
29475         * PluginProcess/mac/PluginProcessMainMac.mm:
29476         (WebKit::PluginProcessMain):
29477         Initialize the plug-in process.
29478
29479         * WebKit2.xcodeproj/project.pbxproj:
29480         Add files.
29481
29482         * WebProcess/Plugins/PluginProcessConnection.h:
29483         Add a comment about which connection this is.
29484
29485 2010-09-24  Sam Weinig  <sam@webkit.org>
29486
29487         Fix windows build.
29488
29489         * Shared/win/PlatformCertificateInfo.cpp:
29490         (WebKit::PlatformCertificateInfo::PlatformCertificateInfo):
29491
29492 2010-09-23  Sam Weinig  <sam@webkit.org>
29493
29494         Reviewed by Adam Roben.
29495
29496         Add Windows implementation of PlatformCertificateInfo
29497         Part of <rdar://problem/8350189>
29498         https://bugs.webkit.org/show_bug.cgi?id=46450
29499
29500         * Shared/win/PlatformCertificateInfo.cpp: Added.
29501         (WebKit::PlatformCertificateInfo::PlatformCertificateInfo):
29502         (WebKit::PlatformCertificateInfo::~PlatformCertificateInfo):
29503         (WebKit::PlatformCertificateInfo::encode):
29504         (WebKit::PlatformCertificateInfo::decode):
29505         (WebKit::organizationNameForCertificate):
29506         * Shared/win/PlatformCertificateInfo.h:
29507         (WebKit::PlatformCertificateInfo::certificateContext):
29508         * UIProcess/API/C/win/WKCertificateInfoWin.cpp: Added.
29509         (WKCertificateInfoGetCertificateContext):
29510         * UIProcess/API/C/win/WKCertificateInfoWin.h: Added.
29511         * win/WebKit2.vcproj:
29512         * win/WebKit2Generated.make:
29513
29514 2010-09-23  Kenneth Rohde Christiansen  <kenneth.christiansen@openbossa.org>
29515
29516         Reviewed by Sam Weinig.
29517
29518         Add WebKit2 C API for setting the font families.
29519         https://bugs.webkit.org/show_bug.cgi?id=46408
29520
29521         * UIProcess/API/C/WKPreferences.cpp:
29522         (WKPreferencesSetStandardFontFamily):
29523         (WebPreferencesCopyStandardFontFamily):
29524         (WKPreferencesSetFixedFontFamily):
29525         (WKPreferencesCopyFixedFontFamily):
29526         (WKPreferencesSetSerifFontFamily):
29527         (WKPreferencesCopySerifFontFamily):
29528         (WKPreferencesSetSansSerifFontFamily):
29529         (WKPreferencesCopySansSerifFontFamily):
29530         (WKPreferencesSetCursiveFontFamily):
29531         (WKPreferencesCopyCursiveFontFamily):
29532         (WKPreferencesSetFantasyFontFamily):
29533         (WKPreferencesCopyFantasyFontFamily):
29534         * UIProcess/API/C/WKPreferences.h:
29535         * UIProcess/WebPreferences.cpp:
29536         (WebKit::WebPreferences::setStandardFontFamily):
29537         (WebKit::WebPreferences::standardFontFamily):
29538         (WebKit::WebPreferences::setFixedFontFamily):
29539         (WebKit::WebPreferences::fixedFontFamily):
29540         (WebKit::WebPreferences::setSerifFontFamily):
29541         (WebKit::WebPreferences::serifFontFamily):
29542         (WebKit::WebPreferences::setSansSerifFontFamily):
29543         (WebKit::WebPreferences::sansSerifFontFamily):
29544         (WebKit::WebPreferences::setCursiveFontFamily):
29545         (WebKit::WebPreferences::cursiveFontFamily):
29546         (WebKit::WebPreferences::setFantasyFontFamily):
29547         (WebKit::WebPreferences::fantasyFontFamily):
29548         * UIProcess/WebPreferences.h:
29549         * WebProcess/WebPage/WebPage.cpp:
29550         (WebKit::WebPage::preferencesDidChange):
29551
29552 2010-09-23  Csaba Osztrogonác  <ossy@webkit.org>
29553
29554         Unreviewed buildfix after r68220 on WebKit2.
29555
29556         WebKit2 API: Need way to know when a frame is removed from the hierarchy
29557         https://bugs.webkit.org/show_bug.cgi?id=46432
29558
29559         [Qt] qt_wk_didRemoveFrameFromHierarchy needs to be implemented
29560
29561         * UIProcess/API/qt/ClientImpl.cpp:
29562         (qt_wk_didRemoveFrameFromHierarchy):
29563         * UIProcess/API/qt/ClientImpl.h:
29564         * UIProcess/API/qt/qwkpage.cpp:
29565         (QWKPage::QWKPage):
29566
29567 2010-09-23  Sam Weinig  <sam@webkit.org>
29568
29569         Reviewed by Anders Carlsson.
29570
29571         WebKit2 API: Need way to know when a frame is removed from the hierarchy
29572         <rdar://problem/8414062>
29573         https://bugs.webkit.org/show_bug.cgi?id=46432
29574
29575         * Shared/CoreIPCSupport/WebPageProxyMessageKinds.h:
29576         * UIProcess/API/C/WKPage.h:
29577         * UIProcess/WebLoaderClient.cpp:
29578         (WebKit::WebLoaderClient::didRemoveFrameFromHierarchy):
29579         * UIProcess/WebLoaderClient.h:
29580         * UIProcess/WebPageProxy.cpp:
29581         (WebKit::WebPageProxy::didReceiveMessage):
29582         (WebKit::WebPageProxy::didRemoveFrameFromHierarchy):
29583         * UIProcess/WebPageProxy.h:
29584         * WebProcess/InjectedBundle/API/c/WKBundlePage.h:
29585         * WebProcess/InjectedBundle/InjectedBundlePageLoaderClient.cpp:
29586         (WebKit::InjectedBundlePageLoaderClient::didRemoveFrameFromHierarchy):
29587         * WebProcess/InjectedBundle/InjectedBundlePageLoaderClient.h:
29588         * WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
29589         (WebKit::WebFrameLoaderClient::detachedFromParent2):
29590         (WebKit::WebFrameLoaderClient::didTransferChildFrameToNewDocument):
29591
29592 2010-09-23  Anders Carlsson  <andersca@apple.com>
29593
29594         Reviewed by Sam Weinig.
29595
29596         Add PluginProcessConnection and PluginProcessConnectionManager
29597         https://bugs.webkit.org/show_bug.cgi?id=46425
29598
29599         * WebKit2.xcodeproj/project.pbxproj:
29600         Add files.
29601
29602         * WebProcess/Plugins/PluginProcessConnection.cpp:
29603         Add empty file for now.
29604         
29605         * WebProcess/Plugins/PluginProcessConnection.h:
29606         Add header.
29607
29608         * WebProcess/Plugins/PluginProcessConnectionManager.cpp: Added.
29609         (WebKit::PluginProcessConnectionManager::getPluginProcessConnection):
29610         Check for an existing plug-in process connection. If we don't have one, ask the 
29611         UI process to create one.
29612         
29613         (WebKit::PluginProcessConnectionManager::removePluginProcessConnection):
29614         Remove the connection from our global vector.
29615
29616 2010-09-23  Adam Roben  <aroben@apple.com>
29617
29618         Remove the DrawingAreaProxy parameter to
29619         WebPagProxy::initializeWebPage
29620
29621         Callers are now required to set the drawing area via
29622         WebPageProxy::setDrawingArea before calling initializeWebPage. This
29623         will allow us to delay calling initializeWebPage on Windows until
29624         after we've created the WebView's HWND, which in turn will allow us to
29625         send the HWND over to the web process when the page is created. (The
29626         drawing area must be set before creating the HWND so that its size can
29627         be updated, etc., as the window is created.)
29628
29629         Fixes <http://webkit.org/b/46409> DrawingAreaProxy parameter to
29630         initializeWebPage is unnecessary, and causes problems on Windows
29631
29632         Reviewed by Anders Carlsson.
29633
29634         * UIProcess/API/mac/WKView.mm:
29635         (-[WKView initWithFrame:pageNamespaceRef:]):
29636         * UIProcess/API/qt/qwkpage.cpp:
29637         (QWKPagePrivate::init):
29638         * UIProcess/win/WebView.cpp:
29639         (WebKit::WebView::WebView):
29640         Added explicit calls to setDrawingArea.
29641
29642         * UIProcess/WebPageProxy.cpp:
29643         (WebKit::WebPageProxy::initializeWebPage):
29644         * UIProcess/WebPageProxy.h:
29645         Removed the DrawingAreaProxy parameter and a stray puts(), and added
29646         an assertion.
29647
29648 2010-09-23  Anders Carlsson  <andersca@apple.com>
29649
29650         Reviewed by Darin Adler.
29651
29652         Implement handlers for the GetPluginProcessConnection message
29653         https://bugs.webkit.org/show_bug.cgi?id=46415
29654
29655         * Shared/CoreIPCSupport/WebProcessProxyMessageKinds.h:
29656         Add GetPluginProcessConnection message kind
29657
29658         * UIProcess/Plugins/PluginProcessManager.cpp:
29659         (WebKit::PluginProcessManager::PluginProcessManager):
29660         Add missing constructor.
29661
29662         * UIProcess/WebProcessProxy.cpp:
29663         (WebKit::WebProcessProxy::getPluginProcessConnection):
29664         Ask the plug-in process manager for a connection.
29665         
29666         (WebKit::WebProcessProxy::didReceiveSyncMessage):
29667         Call getPluginProcessConnection.
29668
29669         * UIProcess/WebProcessProxy.h:
29670         * WebProcess/WebPage/WebPage.cpp:
29671         (WebKit::WebPage::createPlugin):
29672         Send the GetPluginProcessConnection message.
29673
29674 2010-09-23  Matthew Delaney  <mdelaney@apple.com>
29675
29676         Reviewed by Simon Fraser.
29677
29678         Reduce minimum DOMTimer interval
29679         https://bugs.webkit.org/show_bug.cgi?id=45362
29680
29681         * WebProcess/WebPage/WebPage.cpp:
29682         Updating set interval call to use Settings' static version.
29683
29684 2010-09-23  Adam Roben  <aroben@apple.com>
29685
29686         Try to fix the Windows build
29687
29688         * win/WebKit2Common.vsprops: Add WebKit2/PluginProcess to the include
29689         path.
29690
29691 2010-09-23  Anders Carlsson  <andersca@apple.com>
29692
29693         Reviewed by Sam Weinig.
29694
29695         Add PluginProcessMain files
29696         https://bugs.webkit.org/show_bug.cgi?id=46379
29697
29698         * PluginProcess/PluginProcessMain.h: Added.
29699         * PluginProcess/mac/PluginProcessMainMac.mm: Added.
29700         
29701         * WebKit2.xcodeproj/project.pbxproj:
29702         Add PluginProcessMain files. Remove PluginProcess.messages.in from the target so it
29703         won't be installed in the WebKit2.framework bundle.
29704
29705         * WebProcess/WebKitMain.cpp:
29706         (WebKitMain):
29707         Call PluginProcessMain if the process type is ProcessLauncher::PluginProcess.
29708
29709 2010-09-23  Anders Carlsson  <andersca@apple.com>
29710
29711         Reviewed by Sam Weinig.
29712
29713         Add PluginProcessProxy class
29714         https://bugs.webkit.org/show_bug.cgi?id=46377
29715
29716         * DerivedSources.make:
29717         Add PluginProcess.
29718
29719         * Platform/CoreIPC/Connection.h:
29720         (CoreIPC::Connection::send):
29721         Add send overload that takes a message.
29722
29723         * Platform/CoreIPC/MessageID.h:
29724         Add MessageClassPluginProcess message kind.
29725
29726         * PluginProcess/PluginProcess.messages.in: Added.
29727         Add PluginProcess messages.
29728
29729         * UIProcess/Plugins/PluginInfoStore.cpp:
29730         (WebKit::PluginInfoStore::infoForPluginWithPath):
29731         * UIProcess/Plugins/PluginInfoStore.h:
29732         New function that returns the plug-in info for a plug-in with the given path.
29733
29734         * UIProcess/Plugins/PluginProcessManager.cpp:
29735         (WebKit::PluginProcessManager::getPluginProcessConnection):
29736         Look for an existing plug-in process proxy.
29737
29738         * UIProcess/Plugins/PluginProcessProxy.cpp: Added.
29739         (WebKit::PluginProcessProxy::create):
29740         Launch the process.
29741
29742         (WebKit::PluginProcessProxy::didReceiveMessage):
29743         (WebKit::PluginProcessProxy::didReceiveInvalidMessage):
29744         Add stubbed out functions.
29745
29746         (WebKit::PluginProcessProxy::didClose):
29747         Delete the plug-in process proxy.
29748         
29749         (WebKit::PluginProcessProxy::didFinishLaunching):
29750         Open a connection to the plug-in process proxy.
29751
29752         * UIProcess/Plugins/PluginProcessProxy.h: Added.
29753         (WebKit::PluginProcessProxy::pluginInfo):
29754         Return the plug-in info.
29755
29756         * UIProcess/WebProcessProxy.h:
29757         (WebKit::WebProcessProxy::context):
29758         Add a context getter.
29759
29760         * WebKit2.xcodeproj/project.pbxproj:
29761         Add new files.
29762
29763 2010-09-23  Jessie Berlin  <jberlin@apple.com>
29764
29765         Reviewed by Sam Weinig.
29766
29767         Expose the BundlePage on the BundleFrame in the API.
29768         https://bugs.webkit.org/show_bug.cgi?id=46366
29769
29770         * WebProcess/InjectedBundle/API/c/WKBundleFrame.cpp:
29771         (WKBundleFrameGetPage):
29772         * WebProcess/InjectedBundle/API/c/WKBundleFrame.h:
29773
29774 2010-09-23  Kenneth Rohde Christiansen  <kenneth.christiansen@openbossa.org>
29775
29776         Reviewed by Andreas Kling.
29777
29778         Add a preference class for Qt for WebKit2.
29779
29780         * UIProcess/API/qt/qwkpreferences.cpp: Added.
29781         (QWKPreferences::globalPreferences):
29782         (QWKPreferences::QWKPreferences):
29783         (QWKPreferences::~QWKPreferences):
29784         (QWKPreferences::testAttribute):
29785         (QWKPreferences::setAttribute):
29786         * UIProcess/API/qt/qwkpreferences.h: Added.
29787         * WebKit2.pro:
29788
29789 2010-09-23  Anders Carlsson  <andersca@apple.com>
29790
29791         Reviewed by Adam Roben.
29792
29793         It should be possible to conditionally define an entire group of messages
29794         https://bugs.webkit.org/show_bug.cgi?id=46368
29795
29796         * Scripts/webkit2/messages.py:
29797         Check for a condition when parsing the "messages -> " string and set it as the
29798         message receiver condition.
29799
29800         * Scripts/webkit2/messages_unittest.py:
29801         Add test.
29802
29803 2010-09-23  Anders Carlsson  <andersca@apple.com>
29804
29805         Reviewed by Adam Roben.
29806
29807         Message autogeneration script should parse sync message syntax
29808         https://bugs.webkit.org/show_bug.cgi?id=46359
29809
29810         * Scripts/webkit2/messages.py:
29811         (MessageReceiver.parse): Expand the regular expression to handle sync messages.
29812         (function_parameter_type): Use a const reference for all parameters except the known builtins.
29813         (base_class): Returns the base class for a sync message reply struct.
29814         (delayed_base_class): Returns the base class for a delayed sync message reply struct.
29815         
29816         * Scripts/webkit2/messages_unittest.py:
29817         Add unit tests for various sync messages.
29818
29819 2010-09-22  Andras Becsi  <abecsi@webkit.org>
29820
29821         Unreviewed build fix after r68079.
29822
29823         [Qt] Also generate WebPage's message-receiving code and message types
29824         for the Qt port of WebKit2.
29825
29826         * DerivedSources.pro:
29827         * WebKit2.pro:
29828
29829 2010-09-22  Anders Carlsson  <andersca@apple.com>
29830
29831         Reviewed by Adam Roben.
29832
29833         Stub out a PluginProcessManager class
29834         https://bugs.webkit.org/show_bug.cgi?id=46305
29835
29836         * UIProcess/Plugins/PluginProcessManager.cpp: Added.
29837         (WebKit::PluginProcessManager::shared):
29838         (WebKit::PluginProcessManager::getPluginProcessConnection):
29839         (WebKit::PluginProcessManager::removePluginProcessProxy):
29840         * UIProcess/Plugins/PluginProcessManager.h: Added.
29841         * WebKit2.xcodeproj/project.pbxproj:
29842
29843 2010-09-22  Kenneth Rohde Christiansen  <kenneth@webkit.org>
29844
29845         Reviewed by Antonio Gomes.
29846
29847         Add a ViewportConfiguration class for the Qt WebKit2 API, which
29848         currently calculated a fallback viewport configuration.
29849
29850         * UIProcess/API/qt/qwkpage.cpp:
29851         (QWKPage::ViewportConfiguration::ViewportConfiguration):
29852         (QWKPage::ViewportConfiguration::~ViewportConfiguration):
29853         (QWKPage::ViewportConfiguration::operator=):
29854         (QWKPage::viewportConfigurationForSize):
29855         * UIProcess/API/qt/qwkpage.h:
29856         * UIProcess/API/qt/qwkpage_p.h:
29857         (QtViewportConfigurationPrivate::QtViewportConfigurationPrivate):
29858
29859 2010-09-22  Adam Roben  <aroben@apple.com>
29860
29861         Windows build fix
29862
29863         * WebProcess/WebKitMain.cpp:
29864         (WebKitMain): Fix typo
29865
29866 2010-09-22  Adam Roben  <aroben@apple.com>
29867
29868         Autogenerate WebPage's message-receiving code and message types
29869
29870         This patch encompasses several changes that allow message types and
29871         receiving code to be generated by a script, and add some type-safety
29872         as a bonus. Messages are now represented by structs instead of an ID +
29873         ArgumentCoder. The struct contains the arguments and the ID together,
29874         and has a constructor that enforces the use of correct types.
29875         Correspondingly, a new overload of WebProcessProxy::send that takes a
29876         message struct (instead of a message ID and separate arguments) has
29877         been added. Eventually all callers should use this overload and the
29878         old one can be removed.
29879
29880         This patch only touches WebPage's messages. We should transition other
29881         message receivers over to this new system eventually.
29882
29883         Fixes <http://webkit.org/b/43636> <rdar://problem/8282462> Add a
29884         type-safe IPC mechanism to WebKit2
29885
29886         Reviewed by Anders Carlsson.
29887
29888         * DerivedSources.make: Added. Calls generate-message-receiver.py and
29889         generate-messages-header.py for each message receiver it knows about
29890         (just WebPage for now).
29891
29892         * Platform/CoreIPC/Arguments.h: Added First/Second/ThirdArgumentType
29893         typedefs for use in handleMessage.
29894
29895         * Platform/CoreIPC/HandleMessage.h: Added.
29896         (CoreIPC::handleMessage): This overloaded function template decodes
29897         arguments and passes them along to the specified function.
29898
29899         * Scripts/generate-message-receiver.py: Added.
29900         * Scripts/generate-messages-header.py: Added.
29901         These scripts just wrap functionality in messages.py.
29902
29903         * Scripts/webkit2/__init__.py: Added. This just exists so that Python
29904         will treat this directory as a package.
29905
29906         * Scripts/webkit2/messages.py: Added. Contains the code to parse
29907         messages files and generate .cpp/.h files from them.
29908         (MessageReceiver.__init__): This class represents a single receiver of
29909         messages.
29910         (MessageReceiver.iterparameters): Returns a generator that can be used
29911         to iterate over all the parameters of all the messages of this
29912         receiver.
29913         (MessageReceiver.parse): Reads a messages file from a file-like object
29914         and parses it into a MessageReceiver object.
29915         (Message.__init__): This class represents a single message.
29916         (Message.id): Returns the ID name for this message.
29917         (Parameter.__init__): This class represents a single parameter for a
29918         message.
29919         (messages_header_filename): Returns the name of the header that
29920         defines the messages for a given receiver.
29921         (surround_in_condition): Surrounds the given string in #if/#endif if
29922         there is an associated condition.
29923         (messages_to_kind_enum): Returns a string that defines the Kind enum
29924         for these messages.
29925         (function_parameter_type): Returns the type that should be used when
29926         passing a value of the given type as a parameter to a function.
29927         (base_class): Returns the base class for a message struct.
29928         (message_to_struct_declaration): Returns a string that declares the
29929         struct for this message.
29930         (forward_declarations_for_namespace): Returns a string that contains
29931         forward-declarations for a set of types in a given namespace.
29932         (forward_declarations): Returns a string that contains all the
29933         forward-declarations needed in order to declare all the message
29934         structs for this receiver.
29935         (generate_header_file): Returns a string containing the messages
29936         header file for this receiver.
29937         (handler_function): Returns the name of the function that handles a
29938         given message for a given receiver.
29939         (case_statement): Returns a string containing a case statement for
29940         handling the given message.
29941         (header_for_type): Returns the header needed to define a given type,
29942         enclosed in quotes or angle brackets as needed.
29943         (generate_message_handler): Returns a string containing the contents
29944         of a .cpp file that defines a didReceive*Message function.
29945
29946         * Scripts/webkit2/messages_unittest.py: Added. Contains tests for
29947         messages.py.
29948
29949         * Shared/CoreIPCSupport/WebPageMessageKinds.h: Removed. This has been
29950         replaced by a generated WebPageMessages.h header.
29951
29952         * UIProcess/WebEditCommandProxy.cpp:
29953         * UIProcess/WebPageProxy.cpp:
29954         Updated to use the new message structs and WebProcessProxy::send
29955         overload.
29956
29957         * UIProcess/WebProcessProxy.h:
29958         (WebKit::WebProcessProxy::send): Added this new overload that takes a
29959         message struct.
29960
29961         * WebKit2.xcodeproj/project.pbxproj: Added a Derived Sources shell
29962         script target that invokes DerivedSources.make. Added "Derived
29963         Sources" and "Scripts" groups that contain the various new files.
29964
29965         * WebProcess/WebPage/WebPage.cpp:
29966         (WebKit::WebPage::didReceivePolicyDecision):
29967         (WebKit::WebPage::getSourceForFrame):
29968         Changed these functions to take the raw IPC types and do the necessary
29969         translation themselves. This keeps the generated code from need to
29970         know how to perform the translation.
29971
29972         (WebKit::WebPage::didReceiveMessage): Replaced handling of WebPage
29973         messages with a call to didReceiveWebPageMessage, whose implementation
29974         is generated by the scripts.
29975
29976         * WebProcess/WebPage/WebPage.h: Added didReceiveWebPageMessage.
29977
29978         * WebProcess/WebPage/WebPage.messages.in: Added. This file declares
29979         all of the messages that WebPage receives, roughly grouped by
29980         functionality.
29981
29982         * win/WebKit2.vcproj: Added "Derived Sources" and "Scripts" filters
29983         that contain the various new files. Let VS resort some other files.
29984
29985         * win/WebKit2Common.vsprops: Added
29986         $(WebKitOutputDir)\obj\$(ProjectName)\DerivedSources to the include
29987         path so that the generated messages header can be found.
29988
29989         * win/WebKit2.make: Copy the generated source files to $(DSTROOT).
29990
29991         * win/WebKit2Generated.make: Added a call to build-generated-files.sh.
29992
29993         * win/WebKit2Generated.vcproj: Added build-generated-files.sh.
29994
29995         * win/build-generated-files.sh: Added. Invokes DerivedSources.make.
29996
29997 2010-09-22  Anders Carlsson  <andersca@apple.com>
29998
29999         Reviewed by Darin Adler.
30000
30001         Enhance ProcessLauncher to be able to launch plug-in processes
30002         https://bugs.webkit.org/show_bug.cgi?id=46295
30003
30004         * UIProcess/Launcher/ProcessLauncher.cpp:
30005         (WebKit::ProcessLauncher::ProcessLauncher):
30006         Make the ProcessLauncher constructor take a LaunchOptions struct.
30007
30008         (WebKit::ProcessLauncher::processTypeAsString):
30009         Given a process type, return its string representation.
30010
30011         (WebKit::ProcessLauncher::getProcessTypeFromString):
30012         And vice versa.
30013
30014         * UIProcess/Launcher/mac/ProcessLauncherMac.mm:
30015         (WebKit::ProcessLauncher::launchProcess):
30016         Rename "mode" to "type" and pass the type as a string based on the LaunchOptions struct.
30017         Also, set the launch architecture from the LaunchOptions struct.
30018
30019         * UIProcess/Launcher/win/ProcessLauncherWin.cpp:
30020         (WebKit::ProcessLauncher::launchProcess):
30021         Rename "mode" to "type."
30022
30023         * UIProcess/WebProcessProxy.cpp:
30024         (WebKit::WebProcessProxy::connect):
30025         Initialize a LaunchOptions struct.
30026
30027         * WebProcess/WebKitMain.cpp:
30028         (WebKitMain):
30029         Factor code that can be shared between the mac and windows WebKitMain code out into a
30030         WebKitMain overload that takes a CommandLine.
30031
30032         * WebProcess/WebProcessMain.h:
30033         * WebProcess/mac/WebProcessMainMac.mm:
30034         (WebKit::WebProcessMain):
30035         * WebProcess/win/WebProcessMainWin.cpp:
30036         (WebKit::WebProcessMain):
30037         Change WebProcessMain to take a const CommandLine reference instead of a pointer.
30038
30039 2010-09-22  Anders Carlsson  <andersca@apple.com>
30040
30041         Reviewed by Adam Roben.
30042
30043         Rename GetPluginHostConnection to GetPluginPath
30044         https://bugs.webkit.org/show_bug.cgi?id=46292
30045
30046         Rename GetPluginHostConnection to GetPluginPath since this message will always get the
30047         plug-in path. We'll add another message to actually get the connection.
30048
30049         * Shared/CoreIPCSupport/WebProcessProxyMessageKinds.h:
30050         * UIProcess/WebProcessProxy.cpp:
30051         (WebKit::WebProcessProxy::getPluginPath):
30052         (WebKit::WebProcessProxy::didReceiveMessage):
30053         (WebKit::WebProcessProxy::didReceiveSyncMessage):
30054         * UIProcess/WebProcessProxy.h:
30055         * WebProcess/WebPage/WebPage.cpp:
30056         (WebKit::WebPage::createPlugin):
30057
30058 2010-09-22  Anders Carlsson  <andersca@apple.com>
30059
30060         Reviewed by Adam Roben.
30061
30062         Move plug-in creation to WebPage::createPlugin
30063         https://bugs.webkit.org/show_bug.cgi?id=46289
30064
30065         * WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
30066         (WebKit::WebFrameLoaderClient::createPlugin):
30067         Call WebPage::createPlugin.
30068
30069         * WebProcess/WebPage/WebPage.cpp:
30070         (WebKit::WebPage::createPlugin):
30071         Create the plug-in.
30072
30073 2010-09-22  Anders Carlsson  <andersca@apple.com>
30074
30075         Reviewed by Darin Adler.
30076
30077         Random plug-in cleanups
30078         https://bugs.webkit.org/show_bug.cgi?id=46279
30079
30080         * WebProcess/Plugins/Plugin.cpp:
30081         (WebKit::Plugin::Parameters::encode):
30082         (WebKit::Plugin::Parameters::decode):
30083         Add CoreIPC coding support for the Plugin::Parameters struct.
30084
30085         * WebProcess/Plugins/PluginController.h:
30086         Add pluginProcessCrashed pure virtual member function.
30087
30088         * WebProcess/Plugins/PluginView.cpp:
30089         (WebKit::PluginView::handleEvent):
30090         handleEvent can be called when m_plugin is null.
30091
30092         (WebKit::PluginView::pluginProcessCrashed):
30093         Ask the renderer to show the crashed plug-in indicator.
30094         
30095 2010-09-22  Anders Carlsson  <andersca@apple.com>
30096
30097         Reviewed by John Sullivan.
30098
30099         Don't listen for some window notifications on all windows
30100         https://bugs.webkit.org/show_bug.cgi?id=46277
30101
30102         Only listen for NSWindowDidBecomeKeyNotification and NSWindowDidResignKeyNotification notifications
30103         on all windows; this matches old WebKit and fixes a crash where we would send notifications to views whose
30104         underlying pages were invalid.
30105
30106         * UIProcess/API/mac/WKView.mm:
30107         (-[WKView addWindowObserversForWindow:]):
30108         (-[WKView removeWindowObservers]):
30109
30110 2010-09-22  Anders Carlsson  <andersca@apple.com>
30111
30112         Reviewed by Adam Roben.
30113
30114         Crash when running plug-in layout tests
30115         https://bugs.webkit.org/show_bug.cgi?id=46269
30116
30117         Store the web page directly in the PluginView class, instead of getting it from the frame
30118         of the plug-in element; this fixes two crashes, one where the plug-in element had been deallocated
30119         before the plug-in view, and another where the plug-in element's document did not have a frame.
30120
30121         This also makes things more robust since we're asserting in the WebPage destructor that no plug-ins have
30122         an outstanding reference to it.
30123         
30124         * WebProcess/Plugins/PluginView.cpp:
30125         (WebKit::webPage):
30126         (WebKit::PluginView::PluginView):
30127         (WebKit::PluginView::~PluginView):
30128         (WebKit::PluginView::initializePlugin):
30129         * WebProcess/Plugins/PluginView.h:
30130
30131 2010-09-22  Anders Carlsson  <andersca@apple.com>
30132
30133         Reviewed by Adam Roben.
30134
30135         Change a bunch of Vector<char> to Vector<uint8_t> to better indicate that we're
30136         dealing with raw bytes.
30137
30138         * WebProcess/Plugins/Netscape/NetscapeBrowserFuncs.cpp:
30139         (WebKit::parsePostBuffer):
30140         (WebKit::NPN_GetURL):
30141         (WebKit::NPN_PostURL):
30142         (WebKit::NPN_GetURLNotify):
30143         (WebKit::NPN_PostURLNotify):
30144         * WebProcess/Plugins/Netscape/NetscapePlugin.cpp:
30145         (WebKit::NetscapePlugin::loadURL):
30146         (WebKit::NetscapePlugin::initialize):
30147         * WebProcess/Plugins/Netscape/NetscapePlugin.h:
30148         * WebProcess/Plugins/Netscape/NetscapePluginStream.cpp:
30149         (WebKit::NetscapePluginStream::deliverData):
30150         (WebKit::NetscapePluginStream::deliverDataToPlugin):
30151         * WebProcess/Plugins/Netscape/NetscapePluginStream.h:
30152         * WebProcess/Plugins/PluginController.h:
30153         * WebProcess/Plugins/PluginView.cpp:
30154         (WebKit::PluginView::loadURL):
30155         * WebProcess/Plugins/PluginView.h:
30156
30157 2010-09-22  Anders Carlsson  <andersca@apple.com>
30158
30159         Reviewed by Adam Roben.
30160
30161         Assertion fails in [WKView _updateWindowFrame] when closing a WebKit2 window
30162         https://bugs.webkit.org/show_bug.cgi?id=46264
30163         <rdar://problem/8463534>
30164
30165         * UIProcess/API/mac/WKView.mm:
30166         (-[WKView viewDidMoveToWindow]):
30167         Only update window visibility and frame when we're moving to a window.
30168
30169 2010-09-22  Balazs Kelemen  <kb@inf.u-szeged.hu>
30170
30171         Reviewed by Kenneth Rohde Christiansen.
30172
30173         [Qt] PluginStrategy implementation is broken
30174         https://bugs.webkit.org/show_bug.cgi?id=46078
30175
30176         * UIProcess/API/qt/qwkpage.cpp:
30177         (QWKPagePrivate::QWKPagePrivate):
30178         Initialize the WebPlatformStrategies at the UI side as well because
30179         we are using the LocalizationStrategy in the UI process.
30180         Added a FIXME since this should be fixed in the future.
30181
30182 2010-09-22  Balazs Kelemen  <kb@inf.u-szeged.hu>
30183
30184         Reviewed by Kenneth Rohde Christiansen.
30185
30186         PluginStrategy should satisfy the needs of Qt
30187         https://bugs.webkit.org/show_bug.cgi?id=45857
30188         No new functionality so no new tests.
30189
30190         * WebProcess/WebCoreSupport/WebPlatformStrategies.cpp:
30191         (WebKit::WebPlatformStrategies::getPluginInfo):
30192         * WebProcess/WebCoreSupport/WebPlatformStrategies.h:
30193
30194 2010-09-21  Steve Falkenburg  <sfalken@apple.com>
30195
30196         Rubber stamped by Simon Fraser.
30197
30198         Add DirectX SDK include path.
30199
30200         * win/WebKit2DirectX.vsprops:
30201
30202 2010-09-21  Anders Carlsson  <andersca@apple.com>
30203
30204         Reviewed by Dan Bernstein.
30205
30206         Forward window focus changes to the plug-in
30207         https://bugs.webkit.org/show_bug.cgi?id=46227
30208
30209         * WebProcess/Plugins/Netscape/mac/NetscapePluginMac.mm:
30210         (WebKit::NetscapePlugin::windowFocusChanged):
30211         Send the NPCocoaEventWindowFocusChanged event.
30212
30213         (WebKit::NetscapePlugin::windowFrameChanged):
30214         (WebKit::NetscapePlugin::windowVisibilityChanged):
30215         Add stubs.
30216
30217         * WebProcess/Plugins/Plugin.h:
30218         Add windowFocusChanged, windowFrameChanged and windowVisibilityChanged.
30219
30220         * WebProcess/Plugins/PluginView.cpp:
30221         (WebKit::PluginView::webPage):
30222         Make webPage a member function instead.
30223
30224         (WebKit::PluginView::setWindowIsFocused):
30225         Call the plug-in member function.
30226
30227         (WebKit::PluginView::initializePlugin):
30228         When the plug-in has been initialized, update its window frame, window visibility 
30229         and window focus states.
30230
30231         (WebKit::PluginView::setParent):
30232         Move viewGeometryDidChange to initializePlugin.
30233         
30234         * WebProcess/Plugins/PluginView.h:
30235         * WebProcess/WebPage/WebPage.cpp:
30236         (WebKit::WebPage::setActive):
30237         Tell all plug-in views about the new window focus state.
30238
30239         (WebKit::WebPage::windowIsFocused):
30240         Return whether the window is focused or not.
30241
30242         * WebProcess/WebPage/WebPage.h:
30243         (WebKit::WebPage::windowIsVisible):
30244         (WebKit::WebPage::windowFrame):
30245         Add getters.
30246
30247 2010-09-21  Anders Carlsson  <andersca@apple.com>
30248
30249         Reviewed by John Sullivan.
30250
30251         Handle booleans in injected bundle messages
30252         https://bugs.webkit.org/show_bug.cgi?id=46213
30253
30254         * Shared/UserMessageCoders.h:
30255         (WebKit::UserMessageEncoder::baseEncode):
30256         (WebKit::UserMessageDecoder::baseDecode):
30257
30258 2010-09-21  Brian Weinstein  <bweinstein@apple.com>
30259
30260         Reviewed by Adam Roben.
30261
30262         WebKit2 should look for WebKit2WebProcess.exe next to WebKit.dll
30263         https://bugs.webkit.org/show_bug.cgi?id=46209
30264         <rdar://problem/8445639>
30265         
30266         Find WebKit2WebProcess.exe by getting the full path to WebKit.dll, and then
30267         removing the last path component and replacing it with WebKit2WebProcess.exe.
30268
30269         * UIProcess/Launcher/win/ProcessLauncherWin.cpp:
30270         (WebKit::ProcessLauncher::launchProcess):
30271
30272 2010-09-21  Anders Carlsson  <andersca@apple.com>
30273
30274         Reviewed by Adam Roben.
30275
30276         Send window visibility and window frame change sizes to the plug-in
30277         https://bugs.webkit.org/show_bug.cgi?id=46202
30278
30279         * Shared/CoreIPCSupport/WebPageMessageKinds.h:
30280         * UIProcess/API/mac/WKView.mm:
30281         (-[WKView _updateWindowVisibility]):
30282         Call WebPageProxy::setWindowIsVisible.
30283
30284         (-[WKView addWindowObserversForWindow:]):
30285         Add additional observers.
30286
30287         (-[WKView removeWindowObservers]):
30288         Remove observers.
30289
30290         (-[WKView _updateWindowFrame]):
30291         Call WebPageProxy::setWindowFrame.
30292
30293         (-[WKView viewDidMoveToWindow]):
30294         Update the window visibility and the web frame.
30295
30296         (-[WKView _windowDidMiniaturize:]):
30297         (-[WKView _windowDidDeminiaturize:]):
30298         Update the window visibility.
30299
30300         (-[WKView _windowFrameDidChange:]):
30301         Update the window frame.
30302
30303         * UIProcess/WebPageProxy.cpp:
30304         (WebKit::WebPageProxy::setWindowIsVisible):
30305         (WebKit::WebPageProxy::setWindowFrame):
30306         Send messages along to the web process.
30307
30308         * WebProcess/Plugins/PluginView.cpp:
30309         (WebKit::PluginView::PluginView):
30310         Register the plug-in view.
30311
30312         (WebKit::PluginView::~PluginView):
30313         Unregister the plug-in view.
30314
30315         (WebKit::PluginView::setWindowIsVisible):
30316         (WebKit::PluginView::setWindowFrame):
30317         Add empty stubs.
30318
30319         * WebProcess/WebPage/WebPage.cpp:
30320         (WebKit::WebPage::WebPage):
30321         Initialize m_windowIsVisible.
30322
30323         (WebKit::WebPage::~WebPage):
30324         Assert that all plug-in views have been removed.
30325
30326         (WebKit::WebPage::setWindowIsVisible):
30327         Notify all plug-ins about the window visibility change.
30328         
30329         (WebKit::WebPage::setWindowFrame):
30330         Notify all plug-ins about the window frame change.
30331         
30332         (WebKit::WebPage::didReceiveMessage):
30333         Handle setWindowIsVisible and setWindowFrame.
30334
30335 2010-09-21  Anders Carlsson  <andersca@apple.com>
30336
30337         Reviewed by Mark Rowe.
30338
30339         * Configurations/WebKit2.xcconfig:
30340         Add a note about keeping the path in MainMac.cpp in sync with the install path.
30341
30342         * mac/MainMac.cpp:
30343         (main):
30344         Use the correct framework path.
30345
30346 2010-09-21  Anders Carlsson  <andersca@apple.com>
30347
30348         Fix build.
30349
30350         * mac/MainMac.cpp:
30351         (closeUnusedFileDescriptors):
30352         Move this out into a separate function.
30353
30354         (main):
30355         Don't use the soft linking macros, they were bringing in WTFReportAssertionFailure.
30356
30357 2010-09-20  Anders Carlsson  <andersca@apple.com>
30358
30359         Reviewed by Dan Bernstein.
30360
30361         Zombie WebProcesses are left around
30362         https://bugs.webkit.org/show_bug.cgi?id=46148
30363         <rdar://problem/8455898>
30364
30365         * UIProcess/Launcher/mac/ProcessLauncherMac.mm:
30366         (WebKit::setupTerminationNotificationHandler):
30367         Register a dispatch handler that calls waitpid when the child process exits. This prevents zombies from
30368         staying around after the child process has quit.
30369
30370         (WebKit::ProcessLauncher::launchProcess):
30371         Pass POSIX_SPAWN_START_SUSPENDED to posix_spawn to avoid race conditions when setting up the termination
30372         notification handler. When the handler is set up we send the SIGCONT signal to the child process.
30373         
30374         * mac/MainMac.cpp:
30375         (main):
30376         Loop through all file descriptors except for stdin, stdout and stderr and close them.
30377
30378         * WebKit2.xcodeproj/project.pbxproj:
30379         Soft-link the Web process with WebKit2. We do this so we can ensure that we won't accidentally close any
30380         file descriptors opened by initialization code that would have been called before main().
30381
30382 2010-09-21  Andras Becsi  <abecsi@inf.u-szeged.hu>
30383
30384         Reviewed by Csaba Osztrogonác.
30385
30386         [Qt] QtWebProcess should clean up shared memory map files on close
30387         https://bugs.webkit.org/show_bug.cgi?id=45984
30388
30389         Relocate MappedMemory struct code to it's own header and implement
30390         a singleton pool class (MappedMemoryPool) which tracks shared memory
30391         to be able to clean up map files from disk if RunLoop stops.
30392
30393         * Shared/qt/MappedMemory.h: Added.
30394         (WebKit::MappedMemory::markUsed):
30395         (WebKit::MappedMemory::markFree):
30396         (WebKit::MappedMemory::isFree):
30397         * Shared/qt/MappedMemoryPool.cpp: Added.
30398         (WebKit::MappedMemoryPool::MappedMemoryPool):
30399         (WebKit::MappedMemoryPool::instance):
30400         (WebKit::MappedMemoryPool::size):
30401         (WebKit::MappedMemoryPool::at):
30402         (WebKit::MappedMemoryPool::append):
30403         (WebKit::MappedMemoryPool::cleanUp):
30404         * Shared/qt/UpdateChunk.cpp:
30405         (WebKit::mapMemory):
30406         (WebKit::mapFile):
30407         * Shared/qt/UpdateChunk.h:
30408         * WebKit2.pro:
30409
30410 2010-09-20  Philippe Normand  <pnormand@igalia.com>
30411
30412         Reviewed by Eric Carlson.
30413
30414         [GTK] enhanced context menu for media elements
30415         https://bugs.webkit.org/show_bug.cgi?id=45021
30416
30417         New localized strings for the media element context-menu.
30418
30419         * WebProcess/WebCoreSupport/WebPlatformStrategies.cpp:
30420         (WebKit::WebPlatformStrategies::contextMenuItemTagOpenVideoInNewWindow):
30421         (WebKit::WebPlatformStrategies::contextMenuItemTagOpenAudioInNewWindow):
30422         (WebKit::WebPlatformStrategies::contextMenuItemTagCopyVideoLinkToClipboard):
30423         (WebKit::WebPlatformStrategies::contextMenuItemTagCopyAudioLinkToClipboard):
30424         (WebKit::WebPlatformStrategies::contextMenuItemTagToggleMediaControls):
30425         (WebKit::WebPlatformStrategies::contextMenuItemTagToggleMediaLoop):
30426         (WebKit::WebPlatformStrategies::contextMenuItemTagEnterVideoFullscreen):
30427         (WebKit::WebPlatformStrategies::contextMenuItemTagMediaPlay):
30428         (WebKit::WebPlatformStrategies::contextMenuItemTagMediaPause):
30429         (WebKit::WebPlatformStrategies::contextMenuItemTagMediaMute):
30430         (WebKit::WebPlatformStrategies::contextMenuItemTagMediaUnMute):
30431         * WebProcess/WebCoreSupport/WebPlatformStrategies.h:
30432
30433 2010-09-20  Anders Carlsson  <andersca@apple.com>
30434
30435         Reviewed by Adam Roben.
30436
30437         Add a way to delay sending replies to sync requests
30438         https://bugs.webkit.org/show_bug.cgi?id=46117
30439
30440         Change the didReceiveSyncMessage client message to return a SyncReplyMode. If the SyncReplyMode is 
30441         AutomaticReply, the reply will be sent when the didReceiveSyncMessage function returns. However, if it is
30442         ManualReply, then the client is handed ownership of the reply ArgumentEncoder and can choose to send it 
30443         at a later time using Connection::sendSyncReply.
30444
30445         * Platform/CoreIPC/Connection.cpp:
30446         (CoreIPC::Connection::sendSyncReply):
30447         Send the message as a sync reply.
30448
30449         (CoreIPC::Connection::dispatchMessages):
30450         Check the return value of didReceiveSyncMessage. If it is AutomaticReply, immediately send the reply.
30451
30452         * Platform/CoreIPC/Connection.h:
30453         (CoreIPC::Connection::MessageReceiver::didReceiveSyncMessage):
30454         Change return type.
30455
30456         * UIProcess/WebProcessProxy.cpp:
30457         (WebKit::WebProcessProxy::didReceiveSyncMessage):
30458         * UIProcess/WebProcessProxy.h:
30459         Update for changed return type.
30460
30461 2010-09-20  Anders Carlsson  <andersca@apple.com>
30462
30463         Reviewed by Adam Roben.
30464
30465         Don't use bufferIsLargeEnoughToContain for Vectors with variable sized elements
30466         https://bugs.webkit.org/show_bug.cgi?id=46109
30467
30468         Add a new VectorArgumentCoder class template, with specializations based on whether the
30469         element is fixed size or not. Then update the ArgumentEncoder<Vector<T>> specialization to choose the
30470         right VectorArgumentCoder specialization. To determine this, we use the "IsArithmetic" type trait, 
30471         which holds true for all integer types and all floating point types. 
30472         
30473         * Platform/CoreIPC/ArgumentCoders.h:
30474
30475 2010-09-20  Enrica Casucci  <enrica@apple.com>
30476
30477         Reviewed by Sam Weinig.
30478
30479         Pasteboard doesn't work in WebKit2.
30480         https://bugs.webkit.org/show_bug.cgi?id=42317
30481         <rdar://problem/7660537>
30482
30483         Adding support for RTF, RTFD and NSUrl formats on the Mac.
30484         Still missing the selective enabling of the menu entries.
30485
30486         * WebKit2.xcodeproj/project.pbxproj: Added WebEditorClientMac.mm.
30487         * WebProcess/WebCoreSupport/WebEditorClient.cpp: Removed Mac only methods
30488         that are now in WebEditorClientMac.mm
30489         * WebProcess/WebCoreSupport/WebEditorClient.h: Fixed style and changed parameter
30490         type in documentFragmentFromAttributedString to be a Vector of RefPtr.
30491         * WebProcess/WebCoreSupport/mac/WebEditorClientMac.mm: Added.
30492         All the following methods have been moved from WebEditorClient.cpp.
30493         (WebKit::WebEditorClient::userVisibleString): Added implementation.
30494         (WebKit::createExcludedElementsForAttributedStringConversion): Added.
30495         (WebKit::WebEditorClient::documentFragmentFromAttributedString): Added implementation.
30496         (WebKit::WebEditorClient::setInsertionPasteboard):
30497         (WebKit::WebEditorClient::pasteboardTypesForSelection):
30498         (WebKit::WebEditorClient::uppercaseWord):
30499         (WebKit::WebEditorClient::lowercaseWord):
30500         (WebKit::WebEditorClient::capitalizeWord):
30501         (WebKit::WebEditorClient::showSubstitutionsPanel):
30502         (WebKit::WebEditorClient::substitutionsPanelIsShowing):
30503         (WebKit::WebEditorClient::toggleSmartInsertDelete):
30504         (WebKit::WebEditorClient::isAutomaticQuoteSubstitutionEnabled):
30505         (WebKit::WebEditorClient::toggleAutomaticQuoteSubstitution):
30506         (WebKit::WebEditorClient::isAutomaticLinkDetectionEnabled):
30507         (WebKit::WebEditorClient::toggleAutomaticLinkDetection):
30508         (WebKit::WebEditorClient::isAutomaticDashSubstitutionEnabled):
30509         (WebKit::WebEditorClient::toggleAutomaticDashSubstitution):
30510         (WebKit::WebEditorClient::isAutomaticTextReplacementEnabled):
30511         (WebKit::WebEditorClient::toggleAutomaticTextReplacement):
30512         (WebKit::WebEditorClient::isAutomaticSpellingCorrectionEnabled):
30513         (WebKit::WebEditorClient::toggleAutomaticSpellingCorrection):
30514         (WebKit::WebEditorClient::checkTextOfParagraph):
30515         (WebKit::WebEditorClient::showCorrectionPanel):
30516         (WebKit::WebEditorClient::dismissCorrectionPanel):
30517         (WebKit::WebEditorClient::isShowingCorrectionPanel):
30518
30519 2010-09-20  Andy Estes  <aestes@apple.com>
30520
30521         Reviewed by Darin Adler.
30522
30523         Fix a style issue and add a FIXME to make the AppleConnect plug-in
30524         workaround dependent on site-specific quirks being enabled, which
30525         WebKit2 does not yet support in its WebPreferences implementation.
30526         https://bugs.webkit.org/show_bug.cgi?id=45960
30527
30528         * WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
30529         (WebKit::WebFrameLoaderClient::createPlugin):
30530
30531 2010-09-20  Sam Weinig  <sam@webkit.org>
30532
30533         Reviewed by Adam Roben.
30534
30535         Add WebKit2 API to load a string as plain text
30536         https://bugs.webkit.org/show_bug.cgi?id=46091
30537
30538         * Shared/CoreIPCSupport/WebPageMessageKinds.h:
30539         * UIProcess/API/C/WKPage.cpp:
30540         (WKPageLoadPlainTextString):
30541         * UIProcess/API/C/WKPage.h:
30542         * UIProcess/WebPageProxy.cpp:
30543         (WebKit::WebPageProxy::loadPlainTextString):
30544         * UIProcess/WebPageProxy.h:
30545         * WebProcess/WebPage/WebPage.cpp:
30546         (WebKit::WebPage::loadData):
30547         (WebKit::WebPage::loadHTMLString):
30548         (WebKit::WebPage::loadPlainTextString):
30549         (WebKit::WebPage::didReceiveMessage):
30550         * WebProcess/WebPage/WebPage.h:
30551
30552 2010-09-19  Sam Weinig  <sam@webkit.org>
30553
30554         Fix windows build.
30555
30556         * UIProcess/API/C/WKPage.h:
30557
30558 2010-09-19  Sam Weinig  <sam@webkit.org>
30559
30560         Attempt to fix Qt build.
30561
30562         * WebProcess/WebCoreSupport/WebEditorClient.cpp:
30563         (WebKit::WebEditorClient::doTextFieldCommandFromEvent):
30564
30565 2010-09-19  Sam Weinig  <sam@webkit.org>
30566
30567         Reviewed by Anders Carlsson.
30568
30569         Add WebKit2 equivalent of the WebFormDelegate's doCommandBySelector
30570         <rdar://problem/8377088>
30571         https://bugs.webkit.org/show_bug.cgi?id=46073
30572
30573         Add bundle client to match the behavior of:
30574           - (BOOL)textField:(DOMHTMLInputElement *)element doCommandBySelector:(SEL)commandSelector inFrame:(WebFrame *)frame;
30575
30576         * WebProcess/InjectedBundle/API/c/WKBundlePage.h:
30577         * WebProcess/InjectedBundle/InjectedBundlePageFormClient.cpp:
30578         (WebKit::InjectedBundlePageFormClient::shouldPerformActionInTextField):
30579         * WebProcess/InjectedBundle/InjectedBundlePageFormClient.h:
30580         * WebProcess/WebCoreSupport/WebEditorClient.cpp:
30581         (WebKit::getActionTypeForKeyEvent):
30582         (WebKit::WebEditorClient::doTextFieldCommandFromEvent):
30583         (WebKit::WebEditorClient::textWillBeDeletedInTextField):
30584
30585 2010-09-19  Sam Weinig  <sam@webkit.org>
30586
30587         Reviewed by Anders Carlsson.
30588
30589         WebKit2 decidePolicyForNavigationAction should include mouse button information
30590         <rdar://problem/8413165>
30591         https://bugs.webkit.org/show_bug.cgi?id=46060
30592
30593         * UIProcess/API/C/WKAPICast.h:
30594         (WebKit::toRef):
30595         * UIProcess/API/C/WKPage.h:
30596         * UIProcess/WebPageProxy.cpp:
30597         (WebKit::WebPageProxy::didReceiveMessage):
30598         (WebKit::WebPageProxy::decidePolicyForNavigationAction):
30599         (WebKit::WebPageProxy::decidePolicyForNewWindowAction):
30600         * UIProcess/WebPageProxy.h:
30601         * UIProcess/WebPolicyClient.cpp:
30602         (WebKit::WebPolicyClient::decidePolicyForNavigationAction):
30603         (WebKit::WebPolicyClient::decidePolicyForNewWindowAction):
30604         * UIProcess/WebPolicyClient.h:
30605         * WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
30606         (WebKit::findMouseEvent):
30607         (WebKit::mouseButtonForNavigationAction):
30608         (WebKit::WebFrameLoaderClient::dispatchDecidePolicyForNewWindowAction):
30609         (WebKit::WebFrameLoaderClient::dispatchDecidePolicyForNavigationAction):
30610
30611 2010-09-19  Csaba Osztrogonác  <ossy@webkit.org>
30612
30613         [Qt] Unreviewed buildfix after r67813.
30614
30615         Replace WKBundleRangeRef with WKBundleRangeHandleRef.
30616         https://bugs.webkit.org/show_bug.cgi?id=46054
30617
30618         * DerivedSources.pro: Add WebCore/generated/JSRange.h to WEBCORE_GENERATED_HEADERS_FOR_WEBKIT2
30619
30620 2010-09-19  Csaba Osztrogonác  <ossy@webkit.org>
30621
30622         [Qt] Unreviewed buildfix after r67802.
30623
30624         WebKit2: Improve/unify the PageLoadClient interfaces.
30625         https://bugs.webkit.org/show_bug.cgi?id=46043
30626
30627         * UIProcess/API/qt/ClientImpl.h:
30628
30629 2010-09-19  Sam Weinig  <sam@webkit.org>
30630
30631         Reviewed by Anders Carlsson.
30632
30633         Replace WKBundleRangeRef with WKBundleRangeHandleRef.
30634         https://bugs.webkit.org/show_bug.cgi?id=46054
30635
30636         The new one acts like WKBundleNodeHandleRef and allows for getting a
30637         wrapper in a specific world for the handle.
30638
30639         * Shared/APIObject.h:
30640         * WebKit2.pro:
30641         * WebKit2.xcodeproj/project.pbxproj:
30642         * WebProcess/InjectedBundle/API/c/WKBundleAPICast.h:
30643         * WebProcess/InjectedBundle/API/c/WKBundleBase.h:
30644         * WebProcess/InjectedBundle/API/c/WKBundleFrame.cpp:
30645         (WKBundleFrameGetJavaScriptWrapperForRangeForWorld):
30646         * WebProcess/InjectedBundle/API/c/WKBundleFrame.h:
30647         * WebProcess/InjectedBundle/API/c/WKBundlePage.h:
30648         * WebProcess/InjectedBundle/API/c/WKBundleRange.cpp: Removed.
30649         * WebProcess/InjectedBundle/API/c/WKBundleRange.h: Removed.
30650         * WebProcess/InjectedBundle/API/c/WKBundleRangeHandle.cpp: Added.
30651         (WKBundleRangeHandleGetTypeID):
30652         * WebProcess/InjectedBundle/API/c/WKBundleRangeHandle.h: Added.
30653         * WebProcess/InjectedBundle/DOM/InjectedBundleNodeHandle.cpp:
30654         (WebKit::InjectedBundleNodeHandle::getOrCreate):
30655         * WebProcess/InjectedBundle/DOM/InjectedBundleNodeHandle.h:
30656         * WebProcess/InjectedBundle/DOM/InjectedBundleRangeHandle.cpp: Added.
30657         (WebKit::domHandleCache):
30658         (WebKit::InjectedBundleRangeHandle::getOrCreate):
30659         (WebKit::InjectedBundleRangeHandle::create):
30660         (WebKit::InjectedBundleRangeHandle::InjectedBundleRangeHandle):
30661         (WebKit::InjectedBundleRangeHandle::~InjectedBundleRangeHandle):
30662         (WebKit::InjectedBundleRangeHandle::coreRange):
30663         * WebProcess/InjectedBundle/DOM/InjectedBundleRangeHandle.h: Added.
30664         (WebKit::InjectedBundleRangeHandle::type):
30665         * WebProcess/InjectedBundle/InjectedBundlePageEditorClient.cpp:
30666         (WebKit::InjectedBundlePageEditorClient::shouldBeginEditing):
30667         (WebKit::InjectedBundlePageEditorClient::shouldEndEditing):
30668         (WebKit::InjectedBundlePageEditorClient::shouldInsertNode):
30669         (WebKit::InjectedBundlePageEditorClient::shouldInsertText):
30670         (WebKit::InjectedBundlePageEditorClient::shouldDeleteRange):
30671         (WebKit::InjectedBundlePageEditorClient::shouldChangeSelectedRange):
30672         (WebKit::InjectedBundlePageEditorClient::shouldApplyStyle):
30673         * WebProcess/WebPage/WebFrame.cpp:
30674         (WebKit::WebFrame::jsWrapperForWorld):
30675         * WebProcess/WebPage/WebFrame.h:
30676         * win/WebKit2.vcproj:
30677         * win/WebKit2Generated.make:
30678
30679 2010-09-18  Sam Weinig  <sam@webkit.org>
30680
30681         Reviewed by Dan Bernstein.
30682
30683         Improve/unify the PageLoadClient interfaces.
30684         https://bugs.webkit.org/show_bug.cgi?id=46043
30685
30686         - Ensure that all the PageLoadClient functions (that are load related)
30687           have bundle API equivalents (this meant adding didFirstLayoutForFrame
30688           and didFirstVisuallyNonEmptyLayoutForFrame to the BundlePageLoadClient).
30689         - Add a userData out parameters to all the now paired BundlePageLoadClient
30690           functions, and a matching userData parameter to the PageLoadClient ones.
30691
30692         * UIProcess/API/C/WKPage.h:
30693         * UIProcess/API/qt/ClientImpl.cpp:
30694         (qt_wk_didStartProvisionalLoadForFrame):
30695         (qt_wk_didReceiveServerRedirectForProvisionalLoadForFrame):
30696         (qt_wk_didFailProvisionalLoadWithErrorForFrame):
30697         (qt_wk_didCommitLoadForFrame):
30698         (qt_wk_didFinishDocumentLoadForFrame):
30699         (qt_wk_didFinishLoadForFrame):
30700         (qt_wk_didFailLoadWithErrorForFrame):
30701         (qt_wk_didReceiveTitleForFrame):
30702         (qt_wk_didFirstLayoutForFrame):
30703         (qt_wk_didFirstVisuallyNonEmptyLayoutForFrame):
30704         * UIProcess/WebLoaderClient.cpp:
30705         (WebKit::WebLoaderClient::didStartProvisionalLoadForFrame):
30706         (WebKit::WebLoaderClient::didReceiveServerRedirectForProvisionalLoadForFrame):
30707         (WebKit::WebLoaderClient::didFailProvisionalLoadWithErrorForFrame):
30708         (WebKit::WebLoaderClient::didCommitLoadForFrame):
30709         (WebKit::WebLoaderClient::didFinishDocumentLoadForFrame):
30710         (WebKit::WebLoaderClient::didFinishLoadForFrame):
30711         (WebKit::WebLoaderClient::didFailLoadWithErrorForFrame):
30712         (WebKit::WebLoaderClient::didReceiveTitleForFrame):
30713         (WebKit::WebLoaderClient::didFirstLayoutForFrame):
30714         (WebKit::WebLoaderClient::didFirstVisuallyNonEmptyLayoutForFrame):
30715         (WebKit::WebLoaderClient::didStartProgress):
30716         (WebKit::WebLoaderClient::didChangeProgress):
30717         (WebKit::WebLoaderClient::didFinishProgress):
30718         (WebKit::WebLoaderClient::didBecomeUnresponsive):
30719         (WebKit::WebLoaderClient::didBecomeResponsive):
30720         (WebKit::WebLoaderClient::processDidExit):
30721         (WebKit::WebLoaderClient::didChangeBackForwardList):
30722         * UIProcess/WebLoaderClient.h:
30723         * UIProcess/WebPageProxy.cpp:
30724         (WebKit::WebPageProxy::didReceiveMessage):
30725         (WebKit::WebPageProxy::didStartProvisionalLoadForFrame):
30726         (WebKit::WebPageProxy::didReceiveServerRedirectForProvisionalLoadForFrame):
30727         (WebKit::WebPageProxy::didFailProvisionalLoadForFrame):
30728         (WebKit::WebPageProxy::didCommitLoadForFrame):
30729         (WebKit::WebPageProxy::didFinishDocumentLoadForFrame):
30730         (WebKit::WebPageProxy::didFinishLoadForFrame):
30731         (WebKit::WebPageProxy::didFailLoadForFrame):
30732         (WebKit::WebPageProxy::didReceiveTitleForFrame):
30733         (WebKit::WebPageProxy::didFirstLayoutForFrame):
30734         (WebKit::WebPageProxy::didFirstVisuallyNonEmptyLayoutForFrame):
30735         * UIProcess/WebPageProxy.h:
30736         * WebProcess/InjectedBundle/API/c/WKBundlePage.h:
30737         * WebProcess/InjectedBundle/InjectedBundlePageLoaderClient.cpp:
30738         (WebKit::InjectedBundlePageLoaderClient::didStartProvisionalLoadForFrame):
30739         (WebKit::InjectedBundlePageLoaderClient::didReceiveServerRedirectForProvisionalLoadForFrame):
30740         (WebKit::InjectedBundlePageLoaderClient::didFailProvisionalLoadWithErrorForFrame):
30741         (WebKit::InjectedBundlePageLoaderClient::didCommitLoadForFrame):
30742         (WebKit::InjectedBundlePageLoaderClient::didFinishDocumentLoadForFrame):
30743         (WebKit::InjectedBundlePageLoaderClient::didFinishLoadForFrame):
30744         (WebKit::InjectedBundlePageLoaderClient::didFailLoadWithErrorForFrame):
30745         (WebKit::InjectedBundlePageLoaderClient::didReceiveTitleForFrame):
30746         (WebKit::InjectedBundlePageLoaderClient::didFirstLayoutForFrame):
30747         (WebKit::InjectedBundlePageLoaderClient::didFirstVisuallyNonEmptyLayoutForFrame):
30748         (WebKit::InjectedBundlePageLoaderClient::didClearWindowObjectForFrame):
30749         (WebKit::InjectedBundlePageLoaderClient::didCancelClientRedirectForFrame):
30750         (WebKit::InjectedBundlePageLoaderClient::willPerformClientRedirectForFrame):
30751         (WebKit::InjectedBundlePageLoaderClient::didChangeLocationWithinPageForFrame):
30752         (WebKit::InjectedBundlePageLoaderClient::didHandleOnloadEventsForFrame):
30753         (WebKit::InjectedBundlePageLoaderClient::didDisplayInsecureContentForFrame):
30754         (WebKit::InjectedBundlePageLoaderClient::didRunInsecureContentForFrame):
30755         * WebProcess/InjectedBundle/InjectedBundlePageLoaderClient.h:
30756         * WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
30757         (WebKit::WebFrameLoaderClient::dispatchDidReceiveServerRedirectForProvisionalLoad):
30758         (WebKit::WebFrameLoaderClient::dispatchDidStartProvisionalLoad):
30759         (WebKit::WebFrameLoaderClient::dispatchDidReceiveTitle):
30760         (WebKit::WebFrameLoaderClient::dispatchDidCommitLoad):
30761         (WebKit::WebFrameLoaderClient::dispatchDidFailProvisionalLoad):
30762         (WebKit::WebFrameLoaderClient::dispatchDidFailLoad):
30763         (WebKit::WebFrameLoaderClient::dispatchDidFinishDocumentLoad):
30764         (WebKit::WebFrameLoaderClient::dispatchDidFinishLoad):
30765         (WebKit::WebFrameLoaderClient::dispatchDidFirstLayout):
30766         (WebKit::WebFrameLoaderClient::dispatchDidFirstVisuallyNonEmptyLayout):
30767
30768 2010-09-18  Ademar de Souza Reis Jr  <ademar.reis@openbossa.org>
30769
30770         Reviewed by Kenneth Rohde Christiansen.
30771
30772         Enable Platform Strategies on Qt
30773
30774         [Qt] Turn on PLATFORM_STRATEGIES
30775         https://bugs.webkit.org/show_bug.cgi?id=45831
30776
30777         * WebKit2.pro: Added Added WebPlatformStrategies.{cpp,h}
30778
30779 2010-09-17  Sam Weinig  <sam@webkit.org>
30780
30781         Reviewed by Jon Honeycutt.
30782
30783         Need a way to load data (as plain text) in a WKPage
30784         <rdar://problem/8424239>
30785
30786         * Shared/CoreIPCSupport/WebPageMessageKinds.h:
30787         * UIProcess/API/C/WKPage.cpp:
30788         (WKPageLoadHTMLString):
30789         * UIProcess/API/C/WKPage.h:
30790         * UIProcess/WebPageProxy.cpp:
30791         (WebKit::WebPageProxy::loadHTMLString):
30792         * UIProcess/WebPageProxy.h:
30793         * WebProcess/WebPage/WebPage.cpp:
30794         (WebKit::WebPage::loadHTMLString):
30795         (WebKit::WebPage::didReceiveMessage):
30796         * WebProcess/WebPage/WebPage.h:
30797
30798 2010-09-17  Sam Weinig  <sam@webkit.org>
30799
30800         Rubber-stamped by Anders Carlsson.
30801
30802         Replace all uses of WTF::String and WTF::AtomicString with
30803         String and AtomicString.
30804
30805         * Platform/Module.h:
30806         * Shared/CommandLine.h:
30807         (WebKit::CommandLine::operator[]):
30808         * Shared/WebCoreArgumentCoders.h:
30809         * Shared/WebEvent.h:
30810         (WebKit::WebKeyboardEvent::WebKeyboardEvent):
30811         (WebKit::WebKeyboardEvent::text):
30812         (WebKit::WebKeyboardEvent::unmodifiedText):
30813         (WebKit::WebKeyboardEvent::keyIdentifier):
30814         (WebKit::WebKeyboardEvent::decode):
30815         * Shared/WebNavigationDataStore.h:
30816         * Shared/WebPreferencesStore.h:
30817         * Shared/WebString.h:
30818         (WebKit::WebString::create):
30819         (WebKit::WebString::string):
30820         (WebKit::WebString::WebString):
30821         * Shared/WebURL.h:
30822         (WebKit::WebURL::create):
30823         (WebKit::WebURL::string):
30824         (WebKit::WebURL::WebURL):
30825         * UIProcess/API/C/WKAPICast.h:
30826         (WebKit::toRef):
30827         (WebKit::toURLRef):
30828         (WebKit::toCopiedRef):
30829         (WebKit::toCopiedURLRef):
30830         (WebKit::toWTFString):
30831         * UIProcess/API/C/WKContext.cpp:
30832         (WKContextCreate):
30833         * UIProcess/API/mac/PageClientImpl.h:
30834         * UIProcess/API/mac/PageClientImpl.mm:
30835         (WebKit::nsStringFromWebCoreString):
30836         * UIProcess/PageClient.h:
30837         * UIProcess/Plugins/PluginInfoStore.cpp:
30838         (WebKit::PluginInfoStore::setAdditionalPluginsDirectories):
30839         * UIProcess/Plugins/PluginInfoStore.h:
30840         * UIProcess/Plugins/mac/PluginInfoStoreMac.mm:
30841         (WebKit::PluginInfoStore::getPluginInfo):
30842         (WebKit::PluginInfoStore::getMIMETypeForExtension):
30843         * UIProcess/WebBackForwardListItem.h:
30844         (WebKit::WebBackForwardListItem::create):
30845         (WebKit::WebBackForwardListItem::setOriginalURL):
30846         (WebKit::WebBackForwardListItem::originalURL):
30847         (WebKit::WebBackForwardListItem::setURL):
30848         (WebKit::WebBackForwardListItem::url):
30849         (WebKit::WebBackForwardListItem::setTitle):
30850         (WebKit::WebBackForwardListItem::title):
30851         * UIProcess/WebContext.cpp:
30852         (WebKit::WebContext::WebContext):
30853         (WebKit::WebContext::setAdditionalPluginsDirectory):
30854         * UIProcess/WebContext.h:
30855         (WebKit::WebContext::injectedBundlePath):
30856         * UIProcess/WebContextInjectedBundleClient.h:
30857         * UIProcess/WebFrameProxy.cpp:
30858         (WebKit::WebFrameProxy::didReceiveTitle):
30859         * UIProcess/WebFrameProxy.h:
30860         (WebKit::WebFrameProxy::url):
30861         (WebKit::WebFrameProxy::provisionalURL):
30862         * UIProcess/WebHistoryClient.h:
30863         * UIProcess/WebLoaderClient.cpp:
30864         (WebKit::WebLoaderClient::didReceiveTitleForFrame):
30865         * UIProcess/WebLoaderClient.h:
30866         * UIProcess/WebNavigationData.h:
30867         (WebKit::WebNavigationData::title):
30868         (WebKit::WebNavigationData::url):
30869         * UIProcess/WebPageProxy.h:
30870         (WebKit::WebPageProxy::pageTitle):
30871         (WebKit::WebPageProxy::toolTip):
30872         (WebKit::WebPageProxy::urlAtProcessExit):
30873         * UIProcess/WebPolicyClient.h:
30874         * UIProcess/WebProcessProxy.cpp:
30875         (WebKit::WebProcessProxy::getPluginHostConnection):
30876         * UIProcess/WebProcessProxy.h:
30877         * UIProcess/WebUIClient.h:
30878         * WebProcess/InjectedBundle/InjectedBundle.h:
30879         (WebKit::InjectedBundle::create):
30880         (WebKit::InjectedBundle::setSandboxToken):
30881         * WebProcess/InjectedBundle/InjectedBundlePageEditorClient.h:
30882         * WebProcess/InjectedBundle/InjectedBundlePageLoaderClient.cpp:
30883         (WebKit::InjectedBundlePageLoaderClient::willPerformClientRedirectForFrame):
30884         * WebProcess/InjectedBundle/InjectedBundlePageLoaderClient.h:
30885         * WebProcess/InjectedBundle/InjectedBundlePageUIClient.h:
30886         * WebProcess/Plugins/NPRuntimeObjectMap.h:
30887         * WebProcess/Plugins/Netscape/NetscapePlugin.h:
30888         * WebProcess/Plugins/Netscape/NetscapePluginModule.h:
30889         * WebProcess/Plugins/Netscape/NetscapePluginStream.cpp:
30890         (WebKit::NetscapePluginStream::start):
30891         * WebProcess/Plugins/Netscape/NetscapePluginStream.h:
30892         * WebProcess/Plugins/Plugin.h:
30893         * WebProcess/Plugins/PluginController.h:
30894         * WebProcess/Plugins/PluginView.h:
30895         * WebProcess/WebCoreSupport/WebChromeClient.h:
30896         * WebProcess/WebCoreSupport/WebContextMenuClient.h:
30897         * WebProcess/WebCoreSupport/WebDragClient.h:
30898         * WebProcess/WebCoreSupport/WebEditorClient.cpp:
30899         (WebKit::WebEditorClient::showCorrectionPanel):
30900         * WebProcess/WebCoreSupport/WebEditorClient.h:
30901         * WebProcess/WebCoreSupport/WebFrameLoaderClient.h:
30902         * WebProcess/WebCoreSupport/WebInspectorClient.h:
30903         * WebProcess/WebCoreSupport/WebPlatformStrategies.h:
30904         * WebProcess/WebCoreSupport/WebSearchPopupMenu.cpp:
30905         (WebKit::WebSearchPopupMenu::saveRecentSearches):
30906         (WebKit::WebSearchPopupMenu::loadRecentSearches):
30907         * WebProcess/WebCoreSupport/WebSearchPopupMenu.h:
30908         * WebProcess/WebPage/WebFrame.h:
30909         * WebProcess/WebPage/WebPage.cpp:
30910         (WebKit::WebPage::runJavaScriptInMainFrame):
30911         * WebProcess/WebPage/WebPage.h:
30912         * WebProcess/WebProcess.cpp:
30913         (WebKit::WebProcess::registerURLSchemeAsEmptyDocument):
30914         * WebProcess/WebProcess.h:
30915
30916 2010-09-17  Sam Weinig  <sam@webkit.org>
30917
30918         Fix Windows and Qt builds.
30919
30920         * Shared/qt/PlatformCertificateInfo.h:
30921         (WebKit::PlatformCertificateInfo::decode):
30922         * Shared/win/PlatformCertificateInfo.h:
30923         (WebKit::PlatformCertificateInfo::decode):
30924
30925 2010-09-17  Darin Adler  <darin@apple.com>
30926
30927         Reviewed by Sam Weinig.
30928
30929         REGRESSION (r60104): Zoom level is unexpectedly reset on page reload
30930         https://bugs.webkit.org/show_bug.cgi?id=42863
30931
30932         * WebProcess/WebPage/WebPage.cpp:
30933         (WebKit::WebPage::textZoomFactor):
30934         (WebKit::WebPage::setTextZoomFactor):
30935         (WebKit::WebPage::pageZoomFactor):
30936         (WebKit::WebPage::setPageZoomFactor):
30937         (WebKit::WebPage::setPageAndTextZoomFactors):
30938         Call functions on Frame instead of FrameView.
30939
30940 2010-09-17  Sam Weinig  <sam@webkit.org>
30941
30942         Reviewed by Anders Carlsson.
30943
30944         Resize corner jiggles when resizing slowly in WebKit2
30945         <rdar://problem/7897425>
30946         https://bugs.webkit.org/show_bug.cgi?id=45601
30947
30948         * WebProcess/WebCoreSupport/WebChromeClient.cpp:
30949         (WebKit::WebChromeClient::windowResizerRect):
30950         * WebProcess/WebPage/WebPage.cpp:
30951         (WebKit::WebPage::windowResizerRect):
30952         * WebProcess/WebPage/WebPage.h:
30953         Move resize corner logic to WebPage and use the FrameView's size instead of the WebPages
30954         stored size, which doesn't get updated at the right time. This is in line with all other
30955         scrollbar metrics which are in terms of the FrameView's size.
30956
30957 2010-09-17  Sam Weinig  <sam@webkit.org>
30958
30959         Reviewed by Anders Carlsson.
30960
30961         Make certificate data available to the WKFrameRef after it is committed
30962         Part of <rdar://problem/8350189>
30963         https://bugs.webkit.org/show_bug.cgi?id=45998
30964
30965         * Shared/APIObject.h:
30966         Add new type.
30967
30968         * Shared/WebCertificateInfo.h: Added.
30969         (WebKit::WebCertificateInfo::create):
30970         (WebKit::WebCertificateInfo::platformCertificateInfo):
30971         (WebKit::WebCertificateInfo::WebCertificateInfo):
30972         (WebKit::WebCertificateInfo::type):
30973         Add API type for vending.
30974
30975         * Shared/mac/PlatformCertificateInfo.h: Added.
30976         (WebKit::PlatformCertificateInfo::peerCertificates):
30977         * Shared/mac/PlatformCertificateInfo.mm: Added.
30978         (WebKit::PlatformCertificateInfo::PlatformCertificateInfo):
30979         (WebKit::PlatformCertificateInfo::encode):
30980         (WebKit::PlatformCertificateInfo::decode):
30981         (WebKit::PlatformCertificateInfo::dump):
30982         * Shared/qt/PlatformCertificateInfo.h: Added.
30983         (WebKit::PlatformCertificateInfo::PlatformCertificateInfo):
30984         (WebKit::PlatformCertificateInfo::encode):
30985         (WebKit::PlatformCertificateInfo::decode):
30986         * Shared/win/PlatformCertificateInfo.h: Added.
30987         (WebKit::PlatformCertificateInfo::PlatformCertificateInfo):
30988         (WebKit::PlatformCertificateInfo::encode):
30989         (WebKit::PlatformCertificateInfo::decode):
30990         Add platform specific holder for certificate data and encode/decode functions
30991         to send it over the wire. Right now, this only implemented for the mac.
30992
30993         * UIProcess/API/C/WKAPICast.h:
30994         * UIProcess/API/C/WKBase.h:
30995         * UIProcess/API/C/WKCertificateInfo.cpp: Added.
30996         (WKCertificateInfoGetTypeID):
30997         * UIProcess/API/C/WKCertificateInfo.h: Added.
30998         Add wrapper for WebCertificateInfo.
30999
31000         * UIProcess/API/C/WKFrame.cpp:
31001         (WKFrameGetCertificateInfo):
31002         * UIProcess/API/C/WKFrame.h:
31003         Add getter for a WKCertificateInfo.
31004
31005         * UIProcess/API/C/mac/WKCertificateInfoMac.h: Added.
31006         * UIProcess/API/C/mac/WKCertificateInfoMac.mm: Added.
31007         (WKCertificateInfoGetPeerCertificates):
31008         Add mac specific getters for the platform specific certificate
31009         data.
31010
31011         * UIProcess/WebFrameProxy.cpp:
31012         (WebKit::WebFrameProxy::setCertificateInfo):
31013         * UIProcess/WebFrameProxy.h:
31014         (WebKit::WebFrameProxy::certificateInfo):
31015         * UIProcess/WebPageProxy.cpp:
31016         (WebKit::WebPageProxy::didReceiveMessage):
31017         (WebKit::WebPageProxy::didCommitLoadForFrame):
31018         * UIProcess/WebPageProxy.h:
31019         * WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
31020         (WebKit::WebFrameLoaderClient::dispatchDidCommitLoad):
31021         * WebProcess/WebCoreSupport/WebFrameLoaderClient.h:
31022         Pipe the certificate info through to the WebFrameProxy on
31023         commit.
31024
31025         * WebKit2.pro:
31026         * WebKit2.xcodeproj/project.pbxproj:
31027         * win/WebKit2.vcproj:
31028         * win/WebKit2Generated.make:
31029         Add new files.
31030
31031 2010-09-17  Matthew Delaney  <mdelaney@apple.com>
31032
31033         Reviewed by Simon Fraser.
31034
31035         Reduce minimum DOMTimer interval
31036         https://bugs.webkit.org/show_bug.cgi?id=45362
31037
31038         * WebProcess/WebPage/WebPage.cpp: Added in a call to set the mimimum allowed DOMTimer to 4ms.
31039
31040 2010-09-17  Anders Carlsson  <andersca@apple.com>
31041
31042         Reviewed by Sam Weinig.
31043
31044         CoreIPC argument coder improvements
31045         https://bugs.webkit.org/show_bug.cgi?id=45999
31046
31047         * Platform/CoreIPC/ArgumentCoders.h:
31048         Add explicit specialization for a vector of bytes.
31049
31050         * Platform/CoreIPC/Arguments.h:
31051         (CoreIPC::Arguments1::decode):
31052         (CoreIPC::Arguments2::decode):
31053         (CoreIPC::Arguments3::decode):
31054         (CoreIPC::Arguments4::decode):
31055         (CoreIPC::Arguments5::decode):
31056         (CoreIPC::Arguments6::decode):
31057         Use the injected class name for less typing.
31058
31059         (CoreIPC::Arguments7::Arguments7):
31060         (CoreIPC::Arguments7::encode):
31061         (CoreIPC::Arguments7::decode):
31062         (CoreIPC::In):
31063         (CoreIPC::Out):
31064         Add Arguments7 class.
31065
31066 2010-09-17  Andy Estes  <aestes@apple.com>
31067
31068         Reviewed by Darin Adler.
31069
31070         <rdar://problem/8440903> WK2: REGRESSION (r66156): Web sites using
31071         AppleConnect fail to log in: "HTTP Status 404 - /ssowebapp/scriptFrame"
31072         https://bugs.webkit.org/show_bug.cgi?id=45960
31073
31074         * WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
31075         (WebKit::WebFrameLoaderClient::createPlugin):
31076
31077 2010-09-17  Sam Weinig  <sam@webkit.org>
31078
31079         Reviewed by Anders Carlsson.
31080
31081         Make WebNumbers immutable matching CF.
31082
31083         * Shared/WebNumber.h:
31084         (WebKit::WebNumber::value):
31085         (WebKit::WebNumber::WebNumber):
31086         * UIProcess/API/C/WKNumber.cpp:
31087         (WKUInt64GetValue):
31088         * UIProcess/API/C/WKNumber.h:
31089
31090 2010-09-17  Sam Weinig  <sam@webkit.org>
31091
31092         Reviewed by John Sullivan.
31093
31094         Add bool wrapper for WebKit2 API
31095         https://bugs.webkit.org/show_bug.cgi?id=45985
31096
31097         * Shared/APIObject.h:
31098         * Shared/WebNumber.h:
31099         * UIProcess/API/C/WKAPICast.h:
31100         * UIProcess/API/C/WKBase.h:
31101         * UIProcess/API/C/WKNumber.cpp:
31102         (WKBooleanGetTypeID):
31103         (WKBooleanCreate):
31104         (WKBooleanGetValue):
31105         (WKBooleanSetValue):
31106         * UIProcess/API/C/WKNumber.h:
31107
31108 2010-09-16  Sam Weinig  <sam@webkit.org>
31109
31110         Reviewed by Anders Carlsson.
31111
31112         Add support for sending synchronous messages from the InjectedBundle to the WKContext
31113         <rdar://problem/8365320>
31114         https://bugs.webkit.org/show_bug.cgi?id=44785
31115
31116         * Shared/CoreIPCSupport/WebContextMessageKinds.h:
31117         * UIProcess/API/C/WKContext.h:
31118         * UIProcess/WebContext.cpp:
31119         (WebKit::WebContext::didReceiveSynchronousMessageFromInjectedBundle):
31120         (WebKit::WebContext::didReceiveMessage):
31121         (WebKit::WebContext::didReceiveSyncMessage):
31122         * UIProcess/WebContext.h:
31123         * UIProcess/WebContextInjectedBundleClient.cpp:
31124         (WebKit::WebContextInjectedBundleClient::didReceiveSynchronousMessageFromInjectedBundle):
31125         * UIProcess/WebContextInjectedBundleClient.h:
31126         * UIProcess/WebProcessProxy.cpp:
31127         (WebKit::WebProcessProxy::didReceiveSyncMessage):
31128         * WebProcess/InjectedBundle/API/c/WKBundle.cpp:
31129         (WKBundlePostSynchronousMessage):
31130         * WebProcess/InjectedBundle/API/c/WKBundle.h:
31131         * WebProcess/InjectedBundle/InjectedBundle.cpp:
31132         (WebKit::InjectedBundle::postSynchronousMessage):
31133         * WebProcess/InjectedBundle/InjectedBundle.h:
31134
31135 2010-09-16  Balazs Kelemen  <kbalazs@webkit.org>
31136
31137         Unreviewed trivial typo fix.
31138
31139         Remove old debug helper code inside |#if 0| from ConnectionQt.cpp
31140
31141         * Platform/CoreIPC/qt/ConnectionQt.cpp:
31142         (CoreIPC::Connection::readyReadHandler):
31143
31144 2010-09-15  Enrica Casucci  <enrica@apple.com>
31145
31146         Reviewed by Sam Weinig.
31147
31148         Pasteboard doesn't work in WebKit2.
31149         https://bugs.webkit.org/show_bug.cgi?id=42317
31150         <rdar://problem/7660537>
31151         
31152         Initial work to support cut, copy, paste and selectAll in WebKit2.
31153         It still does not support RTF and RTFD format for Mac and the selective
31154         enabling of the editing menu entries.
31155         
31156         * Shared/CoreIPCSupport/WebPageMessageKinds.h: Added messages to support the
31157         new editing commands.
31158         * UIProcess/API/mac/WKView.mm:
31159         (-[WKView validateUserInterfaceItem:]): Added.
31160         (-[WKView copy:]): Added.
31161         (-[WKView cut:]): Added.
31162         (-[WKView paste:]): Addded.
31163         (-[WKView selectAll:]): Added.
31164         * UIProcess/WebPageProxy.cpp: Added all the proxy methods.
31165         (WebKit::WebPageProxy::selectAll):
31166         (WebKit::WebPageProxy::copy):
31167         (WebKit::WebPageProxy::cut):
31168         (WebKit::WebPageProxy::paste):
31169         * UIProcess/WebPageProxy.h:
31170         * WebProcess/WebCoreSupport/WebEditorClient.cpp:
31171         (WebKit::WebEditorClient::documentFragmentFromAttributedString): Added but not
31172         implemented. This is needed to support RTF and RTFD.
31173         (WebKit::WebEditorClient::setInsertionPasteboard): Added but not implemented.
31174         This is needed only to support Mail on the Mac.
31175         * WebProcess/WebPage/WebPage.cpp: Added all the stub methods.
31176         (WebKit::WebPage::selectAll):
31177         (WebKit::WebPage::copy):
31178         (WebKit::WebPage::cut):
31179         (WebKit::WebPage::paste):
31180         (WebKit::WebPage::didReceiveMessage): Modified to handle the new messages from
31181         the UI process.
31182         * WebProcess/WebPage/WebPage.h:
31183
31184 2010-09-16  Eric Uhrhane  <ericu@chromium.org>
31185
31186         Reviewed by Jian Li.
31187
31188         Unify FILE_SYSTEM and FILE_WRITER enables under the name FILE_SYSTEM.
31189         https://bugs.webkit.org/show_bug.cgi?id=45798
31190
31191         * Configurations/FeatureDefines.xcconfig:
31192
31193 2010-09-15  Jessie Berlin  <jberlin@apple.com>
31194
31195         Reviewed by Sam Weinig.
31196
31197         WebKit2 should be able to encode and decode objects of type APIObject::TypeURL.
31198         https://bugs.webkit.org/show_bug.cgi?id=45819
31199
31200         * Shared/UserMessageCoders.h:
31201         Add the ability to encode and decode the URL type.
31202         (WebKit::UserMessageEncoder::baseEncode):
31203         (WebKit::UserMessageDecoder::baseDecode):
31204
31205 2010-09-15  Sam Weinig  <sam@webkit.org>
31206
31207         Reviewed by Jon Honeycutt.
31208
31209         Add user message coding for WebUInt64 type.
31210
31211         * Shared/UserMessageCoders.h:
31212         (WebKit::UserMessageEncoder::baseEncode):
31213         (WebKit::UserMessageDecoder::baseDecode):
31214
31215 2010-09-15  Jessie Berlin  <jberlin@apple.com>
31216
31217         Reviewed by Jon Honeycutt.
31218
31219         We should save messages that can't be sent when postMessageToInjectedBundle is called and
31220         send them in ensureWebProcess.
31221         https://bugs.webkit.org/show_bug.cgi?id=45822
31222
31223         * UIProcess/WebContext.cpp:
31224         (WebKit::WebContext::ensureWebProcess):
31225         Post any messages to the Injected Bundle that couldn't be sent earlier because the
31226         WebProcess hadn't been initialized yet.
31227         (WebKit::WebContext::postMessageToInjectedBundle):
31228         * UIProcess/WebContext.h:
31229
31230 2010-09-15  Simon Fraser  <simon.fraser@apple.com>
31231
31232         Reviewed by Sam Weinig.
31233
31234         <rdar://problem/8214099> Mousewheel scrolling in WebKit2 is wonky
31235         
31236         Use floats so that fractional scrollwheel deltas don't get lost.
31237
31238         * Shared/mac/WebEventFactory.mm:
31239         (WebKit::WebEventFactory::createWebWheelEvent):
31240
31241 2010-09-15  Sam Weinig  <sam@webkit.org>
31242
31243         Reviewed by Jon Honeycutt.
31244
31245         Add WKUInt64Ref wrapper for sending uint64_ts.
31246
31247         * Shared/APIObject.h:
31248         * Shared/WebNumber.h:
31249         * UIProcess/API/C/WKAPICast.h:
31250         * UIProcess/API/C/WKBase.h:
31251         * UIProcess/API/C/WKNumber.cpp:
31252         (WKUInt64GetTypeID):
31253         (WKUInt64Create):
31254         (WKUInt64GetValue):
31255         (WKUInt64SetValue):
31256         * UIProcess/API/C/WKNumber.h:
31257
31258 2010-09-15  Simon Fraser  <simon.fraser@apple.com>
31259
31260         Reviewed by Adam Roben.
31261
31262         https://bugs.webkit.org/show_bug.cgi?id=44715
31263         maps.google.com flips upside down when zooming map using trackpad in WebKit2 on Mac
31264         
31265         Move geometry flipping to platform-specific code.
31266
31267         * WebProcess/WebPage/LayerBackedDrawingArea.cpp:
31268         (WebKit::LayerBackedDrawingArea::LayerBackedDrawingArea):
31269         * WebProcess/WebPage/mac/LayerBackedDrawingAreaMac.mm:
31270         (WebKit::LayerBackedDrawingArea::platformInit):
31271
31272 2010-09-14  Jia Pu  <jpu@apple.com>
31273
31274         Reviewed by Dan Bernstein.
31275
31276         Only intercept ESC key press when autocorrection UI is visible.
31277         https://bugs.webkit.org/show_bug.cgi?id=45071
31278
31279         * WebProcess/WebCoreSupport/WebEditorClient.cpp:
31280         (WebKit::WebEditorClient::isShowingCorrectionPanel): Dummy implementation.
31281
31282         * WebProcess/WebCoreSupport/WebEditorClient.h: Adopt new method delcared in base class.
31283
31284 2010-09-14  Sam Weinig  <sam@webkit.org>
31285
31286         Fix windows build.
31287
31288         * win/WebKit2Generated.make:
31289
31290 2010-09-14  Sam Weinig  <sam@webkit.org>
31291
31292         Reviewed by Anders Carlsson.
31293
31294         Remove WKBundleNodeRef, replacing uses with WKBundleNodeHandleRef.
31295         https://bugs.webkit.org/show_bug.cgi?id=45785
31296
31297         * WebKit2.xcodeproj/project.pbxproj:
31298         * win/WebKit2.vcproj:
31299         Remove files.
31300
31301         * WebProcess/InjectedBundle/API/c/WKBundleAPICast.h:
31302         * WebProcess/InjectedBundle/API/c/WKBundleBase.h:
31303         * WebProcess/InjectedBundle/API/c/WKBundleNode.cpp: Removed.
31304         * WebProcess/InjectedBundle/API/c/WKBundleNode.h: Removed.
31305         * WebProcess/InjectedBundle/API/c/WKBundlePage.h:
31306         * WebProcess/InjectedBundle/API/c/WKBundleRange.cpp:
31307         (WKBundleRangeCopyStartContainer):
31308         (WKBundleRangeCopyEndContainer):
31309         * WebProcess/InjectedBundle/API/c/WKBundleRange.h:
31310         * WebProcess/InjectedBundle/InjectedBundlePageEditorClient.cpp:
31311         (WebKit::InjectedBundlePageEditorClient::shouldInsertNode):
31312         Change to be in terms of WKBundleNodeHandleRef.
31313
31314 2010-09-14  Jessie Berlin  <jberlin@apple.com>
31315
31316         Reviewed by Adam Roben.
31317
31318         Exceptions are getting ignored on 64-bit Windows in the Web Process
31319         https://bugs.webkit.org/show_bug.cgi?id=45779
31320
31321         * WebProcess/WebKitMain.cpp:
31322         (disableProcessCallbackFilterForExceptions):
31323         Clear the PROCESS_CALLBACK_FILTER_ENABLED flag so that exceptions thrown in callback routines
31324         are not ignored, as described in http://support.microsoft.com/kb/976038 and
31325         http://blog.paulbetts.org/index.php/2010/07/20/the-case-of-the-disappearing-onload-exception-user-mode-callback-exceptions-in-x64/.
31326         (WebKitMain):
31327
31328 2010-09-14  Brent Fulgham  <bfulgham@webkit.org>
31329
31330         Build correction, no review.
31331
31332         * win/WebKit2.vcproj: Disable build for Cairo targets of
31333         the WebURLRequestWin.cpp and WebURLResponseWin.cpp files.
31334
31335 2010-09-14  Eric Seidel  <eric@webkit.org>
31336
31337         Unreviewed, reverting changes r67451 and r67451.
31338         Broke lots of builders.
31339
31340         Only intercept ESC key press when autocorrection UI is visible.
31341         https://bugs.webkit.org/show_bug.cgi?id=45071
31342
31343         * WebProcess/WebCoreSupport/WebEditorClient.cpp:
31344         (WebKit::WebEditorClient::dismissCorrectionPanel):
31345         * WebProcess/WebCoreSupport/WebEditorClient.h:
31346
31347 2010-09-14  Jia Pu  <jpu@apple.com>
31348
31349         Reviewed by Dan Bernstein.
31350
31351         Only intercept ESC key press when autocorrection UI is visible.
31352         https://bugs.webkit.org/show_bug.cgi?id=45071
31353
31354         * WebProcess/WebCoreSupport/WebEditorClient.cpp:
31355         (WebKit::WebEditorClient::isShowingCorrectionPanel): Dummy implementation.
31356
31357         * WebProcess/WebCoreSupport/WebEditorClient.h: Adopt new method delcared in base class.
31358
31359 2010-09-13  Sam Weinig  <sam@webkit.org>
31360
31361         Reviewed by Jon Honeycutt.
31362
31363         URL in address bar doesn't update when navigating to http://webkit.org/new-bug when using WebKit2
31364         <rdar://problem/8272775>
31365         https://bugs.webkit.org/show_bug.cgi?id=45729
31366
31367         Pass an updated provisional url while notifying the UIProcess of
31368         didReceiveServerRedirectForProvisionalLoadForFrame.
31369
31370         * UIProcess/WebFrameProxy.cpp:
31371         (WebKit::WebFrameProxy::didReceiveServerRedirectForProvisionalLoad):
31372         * UIProcess/WebFrameProxy.h:
31373         * UIProcess/WebPageProxy.cpp:
31374         (WebKit::WebPageProxy::didReceiveMessage):
31375         (WebKit::WebPageProxy::didReceiveServerRedirectForProvisionalLoadForFrame):
31376         * UIProcess/WebPageProxy.h:
31377         * WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
31378         (WebKit::WebFrameLoaderClient::dispatchDidReceiveServerRedirectForProvisionalLoad):
31379
31380 2010-09-13  Sam Weinig  <sam@webkit.org>
31381
31382         Fix windows build.
31383
31384         * UIProcess/Launcher/win/ProcessLauncherWin.cpp:
31385
31386 2010-09-13  Sam Weinig  <sam@webkit.org>
31387
31388         Reviewed by Jon Honeycutt.
31389
31390         Threaded mode should work in WebKit2 MiniBrowser
31391         https://bugs.webkit.org/show_bug.cgi?id=45727
31392
31393         - Make starting the web thread more like starting a new
31394           process (encapsulate it in a thread launcher class).
31395         - Make the call to didFinishLaunching asynchronous so that
31396           WebProcess is fully constructed before it is called.
31397
31398         * Platform/WorkItem.h:
31399         (MemberFunctionWorkItem1::MemberFunctionWorkItem1):
31400         (MemberFunctionWorkItem1::~MemberFunctionWorkItem1):
31401         (MemberFunctionWorkItem1::execute):
31402         (WorkItem::create):
31403         * UIProcess/Launcher/ProcessLauncher.h:
31404         * UIProcess/Launcher/ThreadLauncher.cpp: Added.
31405         (WebKit::ThreadLauncher::ThreadLauncher):
31406         (WebKit::ThreadLauncher::launchThread):
31407         (WebKit::ThreadLauncher::didFinishLaunchingThread):
31408         (WebKit::ThreadLauncher::invalidate):
31409         * UIProcess/Launcher/ThreadLauncher.h: Added.
31410         (WebKit::ThreadLauncher::Client::~Client):
31411         (WebKit::ThreadLauncher::create):
31412         (WebKit::ThreadLauncher::isLaunching):
31413         * UIProcess/Launcher/mac/ProcessLauncherMac.mm:
31414         (WebKit::ProcessLauncher::terminateProcess):
31415         * UIProcess/Launcher/mac/ThreadLauncherMac.mm: Added.
31416         (WebKit::webThreadBody):
31417         (WebKit::ThreadLauncher::createWebThread):
31418         * UIProcess/Launcher/qt/ProcessLauncherQt.cpp:
31419         * UIProcess/Launcher/qt/ThreadLauncherQt.cpp: Added.
31420         (WebKit::webThreadBody):
31421         (WebKit::ProcessLauncher::createWebThread):
31422         * UIProcess/Launcher/win/ProcessLauncherWin.cpp:
31423         * UIProcess/Launcher/win/ThreadLauncherWin.cpp: Added.
31424         (WebKit::webThreadBody):
31425         (WebKit::ProcessLauncher::createWebThread):
31426         * UIProcess/WebProcessProxy.cpp:
31427         (WebKit::WebProcessProxy::~WebProcessProxy):
31428         (WebKit::WebProcessProxy::connect):
31429         (WebKit::WebProcessProxy::isLaunching):
31430         (WebKit::WebProcessProxy::didFinishLaunching):
31431         * UIProcess/WebProcessProxy.h:
31432         * WebKit2.pro:
31433         * WebKit2.xcodeproj/project.pbxproj:
31434         * win/WebKit2.vcproj:
31435
31436 2010-09-13  Sam Weinig  <sam@webkit.org>
31437
31438         Reviewed by Anders Carlsson.
31439
31440         didFinishDocumentLoadForFrame() is not being sent by WebKit2
31441         <rdar://problem/8424171>
31442
31443         Finish wiring up didFinishDocumentLoad to the UIProcess.
31444
31445         * WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
31446         (WebKit::WebFrameLoaderClient::dispatchDidFinishDocumentLoad):
31447
31448 2010-09-13  Enrica Casucci  <enrica@apple.com>
31449
31450         Reviewed by Sam Weinig.
31451
31452         Paste should be implemented in WebCore like Copy and Cut for Mac also.
31453         https://bugs.webkit.org/show_bug.cgi?id=45494
31454         <rdar://problem/7660537>
31455
31456         On the Mac platform, the implementation of the paste operation is all done
31457         at the WebKit level. In order to support it on WebKit2 it is necessary to
31458         refactor the code and move this functionality at the level of WebCore like
31459         we already have on Windows.
31460         The original code relies on some in AppKit functions that call back into
31461         WebKit causing problems in WebKit2. All this functionality has been moved
31462         at the level of the editor client where it can be dealt with appropriately.
31463
31464         * WebProcess/WebCoreSupport/WebEditorClient.cpp:
31465         (WebKit::WebEditorClient::documentFragmentFromAttributedString): Added.
31466         (WebKit::WebEditorClient::setInsertionPasteboard): Added.
31467         * WebProcess/WebCoreSupport/WebEditorClient.h:
31468         * WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
31469         (WebKit::WebFrameLoaderClient::canShowMIMETypeAsHTML): Added.
31470         * WebProcess/WebCoreSupport/WebFrameLoaderClient.h:
31471
31472 2010-09-11  Daniel Bates  <dbates@rim.com>
31473
31474         Attempt to fix the Qt Linux Release build after changeset 67312 <http://trac.webkit.org/changeset/67312>.
31475
31476         * UIProcess/API/qt/qwkpage.cpp:
31477         (QWKPage::QWKPage): Add missing ',' in WKPageUIClient initialization list.
31478
31479 2010-09-11  Adam Barth  <abarth@webkit.org>
31480
31481         Reviewed by Sam Weinig.
31482
31483         Make SecurityOrigin::canDisplay an instance function
31484         https://bugs.webkit.org/show_bug.cgi?id=45219
31485
31486         * WebProcess/Plugins/PluginView.cpp:
31487         (WebKit::PluginView::performFrameLoadURLRequest):
31488
31489 2010-09-11  Sam Weinig  <sam@webkit.org>
31490
31491         Reviewed by Dan Bernstein.
31492
31493         Implement WebKit2 callback equivalent to - [WebUIDelegate webView:setStatusText:]
31494         <rdar://problem/8359252>
31495         https://bugs.webkit.org/show_bug.cgi?id=45605
31496
31497         * Shared/CoreIPCSupport/WebPageProxyMessageKinds.h:
31498         * UIProcess/API/C/WKPage.h:
31499         * UIProcess/API/qt/qwkpage.cpp:
31500         (QWKPage::QWKPage):
31501         * UIProcess/WebPageProxy.cpp:
31502         (WebKit::WebPageProxy::didReceiveMessage):
31503         (WebKit::WebPageProxy::setStatusText):
31504         * UIProcess/WebPageProxy.h:
31505         * UIProcess/WebUIClient.cpp:
31506         (WebKit::WebUIClient::setStatusText):
31507         * UIProcess/WebUIClient.h:
31508         * WebProcess/WebCoreSupport/WebChromeClient.cpp:
31509         (WebKit::WebChromeClient::setStatusbarText):
31510
31511 2010-09-11  Sam Weinig  <sam@webkit.org>
31512
31513         Reviewed by Dan Bernstein.
31514
31515         Add callback mechanism for the getting the source of a frame
31516         <rdar://problem/8364681>
31517         https://bugs.webkit.org/show_bug.cgi?id=45604
31518
31519         * Shared/CoreIPCSupport/WebPageMessageKinds.h:
31520         * Shared/CoreIPCSupport/WebPageProxyMessageKinds.h:
31521         * UIProcess/API/C/WKPage.cpp:
31522         (WKPageGetSourceForFrame):
31523         (callGetSourceForFrameBlockBlockAndDispose):
31524         (WKPageGetSourceForFrame_b):
31525         * UIProcess/API/C/WKPage.h:
31526         * UIProcess/WebPageProxy.cpp:
31527         (WebKit::WebPageProxy::close):
31528         (WebKit::WebPageProxy::getSourceForFrame):
31529         (WebKit::WebPageProxy::didReceiveMessage):
31530         (WebKit::WebPageProxy::didGetSourceForFrame):
31531         (WebKit::WebPageProxy::processDidExit):
31532         * UIProcess/WebPageProxy.h:
31533         * WebProcess/WebPage/WebFrame.cpp:
31534         (WebKit::WebFrame::source):
31535         * WebProcess/WebPage/WebFrame.h:
31536         * WebProcess/WebPage/WebPage.cpp:
31537         (WebKit::WebPage::getSourceForFrame):
31538         (WebKit::WebPage::didReceiveMessage):
31539         * WebProcess/WebPage/WebPage.h:
31540
31541 2010-09-10  Jesus Sanchez-Palencia <jesus.palencia@openbossa.org>
31542
31543         Reviewed by Darin Adler.
31544
31545         Add NetworkingContext to avoid layer violations
31546         https://bugs.webkit.org/show_bug.cgi?id=42292
31547
31548         * WebProcess/WebCoreSupport/win/WebFrameNetworkingContext.cpp:
31549         * WebProcess/WebCoreSupport/win/WebFrameNetworkingContext.h:
31550         (WebFrameNetworkingContext::create):
31551
31552 2010-09-10  Sam Weinig  <sam@webkit.org>
31553
31554         Reviewed by Dan Bernstein.
31555
31556         Add zoom support to WebKit2 API
31557         <rdar://problem/7660657>
31558         https://bugs.webkit.org/show_bug.cgi?id=45585
31559
31560         - Add UIProcess API for setting zoom factors.
31561         - Change bundle zoom API to be in terms of doubles
31562           for consistency.
31563
31564         * Shared/CoreIPCSupport/WebPageMessageKinds.h:
31565         * UIProcess/API/C/WKPage.cpp:
31566         (WKPageGetTextZoomFactor):
31567         (WKPageSetTextZoomFactor):
31568         (WKPageGetPageZoomFactor):
31569         (WKPageSetPageZoomFactor):
31570         (WKPageSetPageAndTextZoomFactors):
31571         * UIProcess/API/C/WKPage.h:
31572         * UIProcess/WebPageProxy.cpp:
31573         (WebKit::WebPageProxy::WebPageProxy):
31574         (WebKit::WebPageProxy::setTextZoomFactor):
31575         (WebKit::WebPageProxy::setPageZoomFactor):
31576         (WebKit::WebPageProxy::setPageAndTextZoomFactors):
31577         * UIProcess/WebPageProxy.h:
31578         (WebKit::WebPageProxy::textZoomFactor):
31579         (WebKit::WebPageProxy::pageZoomFactor):
31580         * WebProcess/InjectedBundle/API/c/WKBundlePage.cpp:
31581         (WKBundlePageGetTextZoomFactor):
31582         (WKBundlePageSetTextZoomFactor):
31583         (WKBundlePageGetPageZoomFactor):
31584         (WKBundlePageSetPageZoomFactor):
31585         * WebProcess/InjectedBundle/API/c/WKBundlePagePrivate.h:
31586         * WebProcess/WebPage/WebPage.cpp:
31587         (WebKit::WebPage::textZoomFactor):
31588         (WebKit::WebPage::setTextZoomFactor):
31589         (WebKit::WebPage::pageZoomFactor):
31590         (WebKit::WebPage::setPageZoomFactor):
31591         (WebKit::WebPage::setPageAndTextZoomFactors):
31592         (WebKit::WebPage::didReceiveMessage):
31593         * WebProcess/WebPage/WebPage.h:
31594
31595 2010-09-10  Balazs Kelemen  <kb@inf.u-szeged.hu>
31596
31597         Reviewed by Andreas Kling.
31598
31599         Application cache directory should be checked before sending to the web process
31600         https://bugs.webkit.org/show_bug.cgi?id=45462
31601
31602         * UIProcess/WebProcessProxy.cpp:
31603         (WebKit::WebProcessProxy::WebProcessProxy): Check the return value of
31604         m_context->applicationCacheDirectoy() to avoid sending a null string
31605         to the web process what makes it asserting.
31606
31607 2010-09-10  Sam Weinig  <sam@webkit.org>
31608
31609         Reviewed by Darin Adler.
31610
31611         Remove unnecessary constraint in WebCore of choosing either text zoom or full page zoom.
31612         Precursor to <rdar://problem/7660657>
31613         https://bugs.webkit.org/show_bug.cgi?id=45522
31614
31615         Now that WebCore doesn't require a mode, change the bundle API for zoom to not
31616         require one either.
31617
31618         * WebProcess/InjectedBundle/API/c/WKBundleAPICast.h:
31619         * WebProcess/InjectedBundle/API/c/WKBundlePage.cpp:
31620         (WKBundlePageStopLoading):
31621         (WKBundlePageGetTextZoomFactor):
31622         (WKBundlePageSetTextZoomFactor):
31623         (WKBundlePageGetPageZoomFactor):
31624         (WKBundlePageSetPageZoomFactor):
31625         * WebProcess/InjectedBundle/API/c/WKBundlePagePrivate.h:
31626         * WebProcess/WebPage/WebPage.cpp:
31627         (WebKit::WebPage::WebPage):
31628         (WebKit::WebPage::textZoomFactor):
31629         (WebKit::WebPage::setTextZoomFactor):
31630         (WebKit::WebPage::pageZoomFactor):
31631         (WebKit::WebPage::setPageZoomFactor):
31632         * WebProcess/WebPage/WebPage.h:
31633
31634 2010-09-10  Balazs Kelemen  <kb@inf.u-szeged.hu>
31635
31636         Reviewed by Andreas Kling.
31637
31638         [Qt] Implement port specific part of WebKit::InjectedBundle
31639         https://bugs.webkit.org/show_bug.cgi?id=45541
31640
31641         * WebProcess/InjectedBundle/InjectedBundle.h: Typedef PlatformBundle as QLibrary for qt.
31642         * WebProcess/InjectedBundle/qt/InjectedBundleQt.cpp:
31643         (WebKit::InjectedBundle::load): Implemented.
31644
31645 2010-09-10  Balazs Kelemen  <kb@inf.u-szeged.hu>
31646
31647         Reviewed by Andreas Kling.
31648
31649         [Qt] MiniBrowser crashes with multiply windows when closing one of them
31650         https://bugs.webkit.org/show_bug.cgi?id=45536
31651
31652         * UIProcess/API/qt/qwkpage.cpp:
31653         (QWKPage::~QWKPage): Do not call WKPageTerminate since this is designed
31654         to terminate the web process. We are correctly detaching the page without
31655         this call anyway.
31656
31657 2010-09-10  Adam Barth  <abarth@webkit.org>
31658
31659         Reviewed by Darin Fisher.
31660
31661         Move code from WebKit-layer to DocumentLoader
31662         https://bugs.webkit.org/show_bug.cgi?id=45569
31663
31664         This code looks copy/pasted from Mac.  It's unclear whether whether all
31665         the complexity is needed here, but I don't have a good way to find out.
31666
31667         * WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
31668         (WebKit::WebFrameLoaderClient::committedLoad):
31669         * WebProcess/WebCoreSupport/WebFrameLoaderClient.h:
31670
31671 2010-09-10  Anders Carlsson  <andersca@apple.com>
31672
31673         Reviewed by Mark Rowe and Darin Adler.
31674
31675         Set the visible name for the web process
31676         https://bugs.webkit.org/show_bug.cgi?id=45564
31677         <rdar://problem/8416970>
31678
31679         * UIProcess/Launcher/mac/ProcessLauncherMac.mm:
31680         (WebKit::processName):
31681         Add a thread safe implementation of -[NSProcessInfo processName].
31682
31683         (WebKit::ProcessLauncher::launchProcess):
31684         Pass the process name to the child process.
31685
31686         * WebProcess/mac/WebProcessMainMac.mm:
31687         (WebKit::WebProcessMain):
31688         Set the visible name.
31689
31690 2010-09-10  Adam Barth  <abarth@webkit.org>
31691
31692         Reviewed by Eric Seidel.
31693
31694         Main resource bytes shouldn't bounce through FrameLoader
31695         https://bugs.webkit.org/show_bug.cgi?id=45496
31696
31697         Now return the bytes to the DocumentLoader.
31698
31699         * WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
31700         (WebKit::WebFrameLoaderClient::receivedData):
31701
31702 2010-09-10  Adam Roben  <aroben@apple.com>
31703
31704         Don't crash when a frame is destroyed after the UI process has
31705         disconnected
31706
31707         Fixes <http://webkit.org/b/45535> <rdar://problem/8412928> Crash in
31708         WebProcess::removeWebFrame on exit with WebKit2 (Release builds only)
31709
31710         Reviewed by Darin Adler.
31711
31712         * WebProcess/WebProcess.cpp:
31713         (WebKit::WebProcess::removeWebFrame): Null-check m_connection before
31714         dereferencing it.
31715
31716 2010-09-09  Simon Fraser  <simon.fraser@apple.com>
31717
31718         Reviewed by Adam Roben.
31719
31720         Scrollbars fail to render in composited iframes.
31721         https://bugs.webkit.org/show_bug.cgi?id=45335
31722
31723         Use LocalWindowsContext when painting the plugin.
31724
31725         * WebProcess/Plugins/Netscape/win/NetscapePluginWin.cpp:
31726         (WebKit::NetscapePlugin::platformPaint):
31727
31728 2010-09-09  Sam Weinig  <sam@webkit.org>
31729
31730         Reviewed by Anders Carlsson.
31731
31732         Allow passing WebDoubles via postMessage.
31733
31734         * Shared/UserMessageCoders.h:
31735         (WebKit::UserMessageEncoder::baseEncode):
31736         (WebKit::UserMessageDecoder::baseDecode):
31737
31738 2010-09-08  Sam Weinig  <sam@webkit.org>
31739
31740         Reviewed by Dan Bernstein.
31741
31742         WebKit2 needs a way to box numbers (for Array, Dictionary, etc.)
31743         <rdar://problem/8408844>
31744         https://bugs.webkit.org/show_bug.cgi?id=45429
31745
31746         This adds a generic WebNumber class that can be used for any scalar
31747         numeric type. Right now, we are only exposing a double version, but it
31748         is designed to allow more.
31749
31750         * Shared/APIObject.h:
31751         * Shared/WebNumber.h: Added.
31752         (WebKit::WebNumber::create):
31753         (WebKit::WebNumber::value):
31754         (WebKit::WebNumber::setValue):
31755         (WebKit::WebNumber::WebNumber):
31756         (WebKit::WebNumber::type):
31757         * UIProcess/API/C/WKAPICast.h:
31758         * UIProcess/API/C/WKBase.h:
31759         * UIProcess/API/C/WKNumber.cpp: Added.
31760         (WKDoubleGetTypeID):
31761         (WKDoubleCreate):
31762         (WKDoubleGetValue):
31763         (WKDoubleSetValue):
31764         * UIProcess/API/C/WKNumber.h: Added.
31765         * UIProcess/API/C/WebKit2.h:
31766         * WebKit2.pro:
31767         * WebKit2.xcodeproj/project.pbxproj:
31768         * win/WebKit2.vcproj:
31769         * win/WebKit2Generated.make:
31770
31771 2010-09-08  Anders Carlsson  <andersca@apple.com>
31772
31773         Don't include the std namespace in a header. This hopefully fixes the Windows build.
31774
31775         * Shared/WebCoreArgumentCoders.h:
31776
31777 2010-09-08  Anders Carlsson  <andersca@apple.com>
31778
31779         Suggested and reviewed by Darin Adler.
31780
31781         Fix an overflow bug in bufferIsLargeEnoughToContain.
31782
31783         * Platform/CoreIPC/ArgumentDecoder.h:
31784         (CoreIPC::ArgumentDecoder::bufferIsLargeEnoughToContain):
31785
31786 2010-09-08  Anders Carlsson  <andersca@apple.com>
31787
31788         Reviewed by Darin Adler.
31789
31790         Improve CoreIPC encoding of strings
31791         https://bugs.webkit.org/show_bug.cgi?id=45418
31792
31793         Encode and decode null Strings. Check that the string length isn't bogus.
31794
31795         * Platform/CoreIPC/ArgumentCoders.h:
31796         * Platform/CoreIPC/ArgumentDecoder.cpp:
31797         (CoreIPC::ArgumentDecoder::bufferIsLargeEnoughToContain):
31798         * Platform/CoreIPC/ArgumentDecoder.h:
31799         (CoreIPC::ArgumentDecoder::bufferIsLargeEnoughToContain):
31800         * Shared/WebCoreArgumentCoders.h:
31801
31802 2010-09-08  Adam Roben  <aroben@apple.com>
31803
31804         Add a way to cause the web process to crash at a random time
31805
31806         Setting the WEBKIT2_CRASH_WEB_PROCESS_RANDOMLY environment variable
31807         will cause the web process to crash at a random point up to 3 minutes
31808         after launching.
31809
31810         Fixes <http://webkit.org/b/43058> <rdar://problem/8240150>
31811
31812         Reviewed by Darin Adler.
31813
31814         * WebProcess/WebProcess.cpp:
31815         (WebKit::sleep): Added an implementation of this function for Windows.
31816         It just calls through to ::Sleep.
31817         (WebKit::randomCrashThread): Added. Sleeps for a random amount of time
31818         up to 3 minutes, then crashes.
31819         (WebKit::startRandomCrashThreadIfRequested): Added. Starts the crash
31820         thread if the WEBKIT2_CRASH_WEB_PROCESS_RANDOMLY environment variable
31821         is set.
31822         (WebKit::WebProcess::initialize): Added a call to
31823         startRandomCrashThreadIfRequested.
31824
31825 2010-09-08  Adam Roben  <aroben@apple.com>
31826
31827         Fix potential ref-counting issues with WorkItemWin
31828
31829         Reviewed by Anders Carlsson.
31830
31831         * Platform/WorkQueue.h: Changed WorkItemWin to inherit from
31832         ThreadSafeShared instead of RefCounted so that its ref-count will stay
31833         consistent when used on multiple threads.
31834
31835 2010-09-08  Adam Roben  <aroben@apple.com>
31836
31837         Teach WorkQueue how to stop waiting on objects on Windows
31838
31839         WorkQueue now uses a subclass of WorkItemWin, HandleWorkItem, to hold
31840         the waited-upon HANDLE and its corresponding wait handle. When a
31841         HANDLE is unregistered, we use the HandleWorkItem to cancel the wait
31842         and destroy the HANDLE.
31843
31844         Fixes <http://webkit.org/b/42826> <rdar://problem/8222253> Crash in
31845         thread pool because WorkQueue keeps waiting on closed HANDLEs
31846
31847         Reviewed by Anders Carlsson.
31848
31849         * Platform/CoreIPC/win/ConnectionWin.cpp:
31850         (CoreIPC::Connection::platformInvalidate): Changed to call
31851         WorkQueue::unregisterAndCloseHandle instead of closing our handles
31852         manually.
31853
31854         (CoreIPC::Connection::readEventHandler):
31855         (CoreIPC::Connection::writeEventHandler):
31856         Handle cases where the pipe has already closed by just bailing out.
31857         This can happen if a WorkItem to call one of these functions has
31858         already been scheduled before platformInvalidate is called.
31859
31860         * Platform/WorkQueue.h: Gave WorkItemWin a virtual destructor, added
31861         HandleWorkItem, changed m_handles to hold HandleWorkItems, and added
31862         functions for unregistering waits.
31863
31864         * Platform/win/WorkQueueWin.cpp:
31865         (WorkQueue::WorkItemWin::~WorkItemWin): Added. This virtual destructor
31866         ensures that HandleWorkItem's destructor gets called.
31867
31868         (WorkQueue::HandleWorkItem::HandleWorkItem):
31869         (WorkQueue::HandleWorkItem::createByAdoptingHandle):
31870         Added simple constructor/creator.
31871
31872         (WorkQueue::HandleWorkItem::~HandleWorkItem): Closes the handle we
31873         adopted.
31874         (WorkQueue::registerHandle): Changed to create a HandleWorkItemWin and
31875         to store the wait handle in it.
31876         (WorkQueue::unregisterAndCloseHandle): Added. Removes the
31877         HandleWorkItem for this HANDLE from m_handles and then schedules its
31878         wait to be unregistered and the item to be destroyed.
31879         (WorkQueue::platformInvalidate): Added an assertion and removed an
31880         obsolete FIXME.
31881         (WorkQueue::unregisterWaitAndDestroyItemSoon): Added. Calls
31882         unregisterWaitAndDestroyItemCallback on a worker thread, passing it
31883         ownership of the HandleWorkItem.
31884         (WorkQueue::unregisterWaitAndDestroyItemCallback): Added. Adopts the
31885         passed-in HandleWorkItem, then unregisters the handle's wait, then
31886         destroys the HandleWorkItem when the RefPtr holding it goes out of
31887         scope. Destroying the HandleWorkItem closes the handle.
31888
31889 2010-09-08  Adam Roben  <aroben@apple.com>
31890
31891         Remove WKSerializedScriptValue.cpp/h from the Copy Files build phase
31892
31893         * WebKit2.xcodeproj/project.pbxproj:
31894
31895 2010-09-08  Adam Roben  <aroben@apple.com>
31896
31897         Get rid of WorkQueue::m_performWorkEvent
31898
31899         We were signaling m_performWorkEvent to spawn a worker thread. We can
31900         use ::QueueUserWorkItem to spawn the thread instead.
31901
31902         Fixes <http://webkit.org/b/45407> WorkQueue::m_performWorkEvent is
31903         unnecessary
31904
31905         Reviewed by Anders Carlsson.
31906
31907         * Platform/WorkQueue.h: Removed m_performWorkEvent.
31908
31909         * Platform/win/WorkQueueWin.cpp:
31910         (WorkQueue::workThreadCallback): Replaced eventCallback with this
31911         function. Its functionality is unchanged.
31912
31913         (WorkQueue::platformInitialize):
31914         (WorkQueue::platformInvalidate):
31915         Removed code to set up and clean up m_performWorkEvent.
31916
31917         (WorkQueue::scheduleWork): Use ::QueueUserWorkItem instead of
31918         signaling m_performWorkEvent to spawn a worker thread.
31919
31920 2010-09-08  Adam Roben  <aroben@apple.com>
31921
31922         Fix WebKit2Common.vsprops line-endings
31923
31924         * win/WebKit2Common.vsprops: Made all line-endings be CRLF, as this is
31925         the format Visual Studio wants.
31926
31927 2010-09-07  Oliver Hunt  <oliver@apple.com>
31928
31929         Reviewed by Anders Carlsson.
31930
31931         Support SerializedScriptValue in WebKit2
31932         https://bugs.webkit.org/show_bug.cgi?id=45340
31933
31934         Add wrappers and IPC serialization for SerializedScriptValue
31935
31936         * Shared/APIObject.h:
31937         * Shared/UserMessageCoders.h:
31938         (WebKit::UserMessageEncoder::baseEncode):
31939         (WebKit::UserMessageDecoder::baseDecode):
31940         * Shared/WebSerializedScriptValue.h: Added.
31941         (WebKit::WebSerializedScriptValue::create):
31942         (WebKit::WebSerializedScriptValue::adopt):
31943         (WebKit::WebSerializedScriptValue::deserialize):
31944         (WebKit::WebSerializedScriptValue::data):
31945         (WebKit::WebSerializedScriptValue::WebSerializedScriptValue):
31946         (WebKit::WebSerializedScriptValue::type):
31947         * UIProcess/API/C/WKAPICast.h:
31948         * UIProcess/API/C/WKBase.h:
31949         * UIProcess/API/C/WKSerializedScriptValue.cpp: Added.
31950         (WKSerializedScriptValueGetTypeID):
31951         (WKSerializedScriptValueCreate):
31952         (WKSerializedScriptValueDeserialize):
31953         * UIProcess/API/C/WKSerializedScriptValue.h: Added.
31954         * WebKit2.xcodeproj/project.pbxproj:
31955
31956 2010-09-08  Sam Weinig  <sam@webkit.org>
31957
31958         Reviewed by Jon Honeycutt.
31959
31960         Would like WKBundleFrameRef to turn into WKFrameRef across postMessage boundary, a la PageRef
31961         <rdar://problem/8402804>
31962         https://bugs.webkit.org/show_bug.cgi?id=45370
31963
31964         * UIProcess/WebContextUserMessageCoders.h:
31965         (WebKit::WebContextUserMessageEncoder::encode):
31966         (WebKit::WebContextUserMessageDecoder::decode):
31967         * WebProcess/InjectedBundle/InjectedBundleUserMessageCoders.h:
31968         (WebKit::InjectedBundleUserMessageEncoder::encode):
31969         (WebKit::InjectedBundleUserMessageDecoder::decode):
31970
31971 2010-09-07  Kinuko Yasuda  <kinuko@chromium.org>
31972
31973         Unreviewed, another Qt release build fix attempt.
31974
31975         * UIProcess/API/cpp/qt/WKURLQt.cpp:
31976
31977 2010-09-07  Kinuko Yasuda  <kinuko@chromium.org>
31978
31979         Unreviewed, attempt to fix Qt release build.
31980
31981         * UIProcess/API/cpp/qt/WKStringQt.cpp:
31982
31983 2010-09-07  Brent Fulgham  <bfulgham@webkit.org>
31984
31985         Build correction, no review.
31986
31987         * win/WebKit2.vcproj: Disable two unused files for
31988         the WinCairo target.
31989
31990 2010-09-07  Anders Carlsson  <andersca@apple.com>
31991
31992         Reviewed by Sam Weinig.
31993
31994         Fix clang++ build.
31995
31996         * UIProcess/API/C/WKAPICast.h:
31997         Move all functions into the WebKit namespace.
31998         
31999         * UIProcess/API/C/cf/WKStringCF.cpp:
32000         Add using namespace WebKit.
32001
32002         * WebProcess/InjectedBundle/API/c/WKBundleAPICast.h:
32003         Move all functions into the WebKit namespace.
32004
32005 2010-09-07  Anders Carlsson  <andersca@apple.com>
32006
32007         Reviewed by Darin Adler.
32008
32009         <rdar://problem/8381749> -Wcast-align warning emitted when building with clang
32010
32011         Remove the -Wcast-align-warning since it isn't really useful, and clang is more aggressive about warning than gcc.
32012
32013         * Configurations/Base.xcconfig:
32014
32015 2010-09-07  Sam Weinig  <sam@webkit.org>
32016
32017         Another windows fix.
32018
32019         * UIProcess/win/WebView.cpp:
32020
32021 2010-09-07  Sam Weinig  <sam@webkit.org>
32022
32023         Try and fix windows.
32024
32025         * UIProcess/WebEditCommandProxy.h:
32026
32027 2010-09-07  Sam Weinig  <sam@webkit.org>
32028
32029         Reviewed by Darin Adler.
32030
32031         Fix incorrect parameter name.
32032
32033         * UIProcess/API/mac/PageClientImpl.mm:
32034
32035 2010-09-07  Sam Weinig  <sam@webkit.org>
32036
32037         Reviewed by Darin Adler.
32038
32039         Add support for Undo/Redo
32040         <rdar://problem/7660519>
32041         https://bugs.webkit.org/show_bug.cgi?id=42781
32042
32043         Adds platform independent parts of Undo/Redo support and the mac
32044         platform support.
32045
32046         To work around the common assumption made by platforms, that a redo
32047         item will be added synchronously while an undo is in progress, we
32048         ignore the calls from WebCore to add redo items, and instead add add
32049         them after telling WebCore to unapply the EditCommand. We similarly
32050         need to ignore undos, that take place during a redo, and force the
32051         addition ourselves.
32052
32053         * Shared/CoreIPCSupport/WebPageMessageKinds.h:
32054         * Shared/CoreIPCSupport/WebPageProxyMessageKinds.h:
32055         Add new messages.
32056
32057         * UIProcess/API/mac/PageClientImpl.h:
32058         * UIProcess/API/mac/PageClientImpl.mm:
32059         (-[WebEditCommandObjC initWithWebEditCommandProxy:WebKit::]):
32060         (-[WebEditCommandObjC WebKit::]):
32061         (-[WebEditorUndoTargetObjC undoEditing:]):
32062         (-[WebEditorUndoTargetObjC redoEditing:]):
32063         (WebKit::PageClientImpl::PageClientImpl):
32064         (WebKit::nameForEditAction):
32065         (WebKit::PageClientImpl::registerEditCommand):
32066         (WebKit::PageClientImpl::clearAllEditCommands):
32067         * UIProcess/API/qt/qwkpage.cpp:
32068         (QWKPagePrivate::registerEditCommand):
32069         (QWKPagePrivate::clearAllEditCommands):
32070         * UIProcess/API/qt/qwkpage_p.h:
32071         * UIProcess/PageClient.h:
32072         * UIProcess/win/WebView.cpp:
32073         (WebKit::WebView::registerEditCommand):
32074         (WebKit::WebView::clearAllEditCommands):
32075         * UIProcess/win/WebView.h:
32076         Add platform specific hooks for undo/redo.
32077
32078         * UIProcess/WebEditCommandProxy.cpp: Added.
32079         (WebKit::WebEditCommandProxy::WebEditCommandProxy):
32080         (WebKit::WebEditCommandProxy::~WebEditCommandProxy):
32081         (WebKit::WebEditCommandProxy::unapply):
32082         (WebKit::WebEditCommandProxy::reapply):
32083         * UIProcess/WebEditCommandProxy.h: Added.
32084         (WebKit::WebEditCommandProxy::create):
32085         (WebKit::WebEditCommandProxy::commandID):
32086         (WebKit::WebEditCommandProxy::editAction):
32087         (WebKit::WebEditCommandProxy::invalidate):
32088         A proxy for the WebEditCommands in the WebProcess. These are owned
32089         by the platform back/forward list, with a weak reference back to the
32090         WebPageProxy (which holds a weakset of live WebEditCommandProxys).
32091
32092         * UIProcess/WebPageProxy.cpp:
32093         (WebKit::WebPageProxy::close):
32094         (WebKit::WebPageProxy::didReceiveMessage):
32095         (WebKit::WebPageProxy::registerEditCommandForUndo):
32096         (WebKit::WebPageProxy::clearAllEditCommands):
32097         (WebKit::WebPageProxy::registerEditCommandForRedo):
32098         (WebKit::WebPageProxy::addEditCommand):
32099         (WebKit::WebPageProxy::removeEditCommand):
32100         (WebKit::WebPageProxy::processDidExit):
32101         * UIProcess/WebPageProxy.h:
32102         Forward messages.
32103
32104         * WebProcess/WebCoreSupport/WebEditorClient.cpp:
32105         (WebKit::WebEditorClient::registerCommandForUndo):
32106         (WebKit::WebEditorClient::registerCommandForRedo):
32107         (WebKit::WebEditorClient::clearUndoRedoOperations):
32108         Send undo/redo registration and clearing to the UIProcess.
32109
32110         * WebProcess/WebPage/WebEditCommand.cpp: Added.
32111         (WebKit::generateCommandID):
32112         (WebKit::WebEditCommand::WebEditCommand):
32113         * WebProcess/WebPage/WebEditCommand.h: Added.
32114         (WebKit::WebEditCommand::create):
32115         (WebKit::WebEditCommand::command):
32116         (WebKit::WebEditCommand::commandID):
32117         Wrapper for WebCore::EditCommand, with an added unique ID.
32118
32119         * WebProcess/WebPage/WebPage.cpp:
32120         (WebKit::WebPage::WebPage):
32121         (WebKit::WebPage::webEditCommand):
32122         (WebKit::WebPage::addWebEditCommand):
32123         (WebKit::WebPage::removeWebEditCommand):
32124         (WebKit::WebPage::unapplyEditCommand):
32125         (WebKit::WebPage::reapplyEditCommand):
32126         (WebKit::WebPage::didRemoveEditCommand):
32127         (WebKit::WebPage::didReceiveMessage):
32128         * WebProcess/WebPage/WebPage.h:
32129         (WebKit::WebPage::isInRedo):
32130         Forward messages.
32131
32132         * WebKit2.pro:
32133         * WebKit2.xcodeproj/project.pbxproj:
32134         * win/WebKit2.vcproj:
32135         Add new files.
32136
32137 2010-09-07  Jessie Berlin  <jberlin@apple.com>
32138
32139         Reviewed by Darin Adler.
32140
32141         Indicate which one of the ScriptWorlds for a Frame the Window Object has been cleared for
32142         https://bugs.webkit.org/show_bug.cgi?id=45217
32143
32144         * WebProcess/InjectedBundle/API/c/WKBundlePage.h:
32145
32146         * WebProcess/InjectedBundle/InjectedBundlePageLoaderClient.cpp:
32147         (WebKit::InjectedBundlePageLoaderClient::didClearWindowObjectForFrame):
32148         * WebProcess/InjectedBundle/InjectedBundlePageLoaderClient.h:
32149
32150         * WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
32151         (WebKit::WebFrameLoaderClient::dispatchDidClearWindowObjectInWorld):
32152
32153 2010-09-06  Adam Barth  <abarth@webkit.org>
32154
32155         Reviewed by Darin Adler.
32156
32157         Rename SecurityOrigin::canLoad to canDisplay
32158         https://bugs.webkit.org/show_bug.cgi?id=45214
32159
32160         Propagate name change.
32161
32162         * WebProcess/Plugins/PluginView.cpp:
32163         (WebKit::PluginView::performFrameLoadURLRequest):
32164
32165 2010-09-04  Sam Weinig  <sam@webkit.org>
32166
32167         Reviewed by Anders Carlsson.
32168
32169         Allow passing null to postMessage API functions
32170         https://bugs.webkit.org/show_bug.cgi?id=45234
32171
32172         * Shared/APIObject.h: Add TypeNull to enum. This is only used
32173         for serialization purposes, and does not represent a concrete subclass
32174         of APIObject.
32175
32176         * Shared/CoreIPCSupport/WebPageProxyMessageKinds.h: Remove WillSubmitFormWithUserData
32177         now that it is not needed.
32178
32179         * Shared/UserMessageCoders.h:
32180         (WebKit::UserMessageEncoder::baseEncode):
32181         (WebKit::UserMessageDecoder::baseDecode):
32182         Add explicit encoding/decoding of null for user messages.
32183
32184         * UIProcess/WebContextUserMessageCoders.h:
32185         (WebKit::WebContextUserMessageEncoder::encode):
32186         (WebKit::WebContextUserMessageDecoder::decode):
32187         * WebProcess/InjectedBundle/InjectedBundleUserMessageCoders.h:
32188         (WebKit::InjectedBundleUserMessageEncoder::encode):
32189         (WebKit::InjectedBundleUserMessageDecoder::decode):
32190         Update UserMessageCoders subclasses to call the base class in the correct
32191         way to work with null messages. This means moving the encoding/decoding
32192         of the type down to the base class, which is a nice cleanup.
32193
32194         * UIProcess/WebPageProxy.cpp:
32195         (WebKit::WebPageProxy::didReceiveMessage):
32196         Remove now redundant WillSubmitFormWithUserData implementation.
32197
32198         * WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
32199         (WebKit::WebFrameLoaderClient::dispatchWillSubmitForm):
32200         Ditto.
32201
32202 2010-09-03  Jesus Sanchez-Palencia  <jesus.palencia@openbossa.org>
32203
32204         Reviewed by Darin Adler.
32205
32206         Add NetworkingContext to avoid layer violations
32207         https://bugs.webkit.org/show_bug.cgi?id=42292
32208
32209         Add FrameNetworkingContext implementation.
32210
32211         * WebKit2.pro:
32212         * WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
32213         (WebKit::WebFrameLoaderClient::createNetworkingContext):
32214         * WebProcess/WebCoreSupport/WebFrameLoaderClient.h:
32215         * WebProcess/WebCoreSupport/mac/WebFrameNetworkingContext.mm:
32216         (WebKit::WebFrameNetworkingContext::needsSiteSpecificQuirks):
32217         (WebKit::WebFrameNetworkingContext::localFileContentSniffingEnabled):
32218         (WebKit::WebFrameNetworkingContext::scheduledRunLoopPairs):
32219         (WebKit::WebFrameNetworkingContext::blockedError):
32220         * WebProcess/WebCoreSupport/qt/WebFrameNetworkingContext.cpp: Added.
32221         (WebCore::WebFrameNetworkingContext::WebFrameNetworkingContext):
32222         (WebCore::WebFrameNetworkingContext::create):
32223         (WebCore::WebFrameNetworkingContext::originatingObject):
32224         (WebCore::WebFrameNetworkingContext::networkAccessManager):
32225         * WebProcess/WebCoreSupport/qt/WebFrameNetworkingContext.h: Added.
32226         * WebProcess/WebCoreSupport/win/WebFrameNetworkingContext.cpp: Added.
32227         * WebProcess/WebCoreSupport/win/WebFrameNetworkingContext.h: Added.
32228         (WebFrameNetworkingContext::create):
32229         (WebFrameNetworkingContext::WebFrameNetworkingContext):
32230         * win/WebKit2.vcproj:
32231         * win/WebKit2Common.vsprops:
32232
32233 2010-09-03  Sam Weinig  <sam@webkit.org>
32234
32235         Reviewed by Dan Bernstein.
32236
32237         Add ability to send UserData to willSubmitForm
32238         https://bugs.webkit.org/show_bug.cgi?id=45222
32239
32240         - Adds a willSubmitForm callback to the BundlePageFormClient with an out
32241           parameter WKTypeRef* parameter.
32242         - That out parameter gets serialized and then passed to the PageFormClient's
32243           willSubmitForm, which now has WKTypeRef parameter.
32244
32245         - Temporarily adds a new WillSubmitFormWithUserData message kind. This will
32246           be replaced by the ability to explicitly serialize null as a UserMessage.
32247
32248         * Platform/CoreIPC/Arguments.h:
32249         (CoreIPC::Arguments6::Arguments6):
32250         (CoreIPC::Arguments6::encode):
32251         (CoreIPC::Arguments6::decode):
32252         (CoreIPC::In):
32253         (CoreIPC::Out):
32254         * Shared/CoreIPCSupport/WebPageProxyMessageKinds.h:
32255         * UIProcess/API/C/WKPage.h:
32256         * UIProcess/WebFormClient.cpp:
32257         (WebKit::WebFormClient::willSubmitForm):
32258         * UIProcess/WebFormClient.h:
32259         * UIProcess/WebPageProxy.cpp:
32260         (WebKit::WebPageProxy::didReceiveMessage):
32261         (WebKit::WebPageProxy::willSubmitForm):
32262         * UIProcess/WebPageProxy.h:
32263         * WebProcess/InjectedBundle/API/c/WKBundlePage.h:
32264         * WebProcess/InjectedBundle/InjectedBundlePageFormClient.cpp:
32265         (WebKit::InjectedBundlePageFormClient::textFieldDidBeginEditing):
32266         (WebKit::InjectedBundlePageFormClient::textFieldDidEndEditing):
32267         (WebKit::InjectedBundlePageFormClient::textDidChangeInTextField):
32268         (WebKit::InjectedBundlePageFormClient::textDidChangeInTextArea):
32269         (WebKit::InjectedBundlePageFormClient::willSubmitForm):
32270         * WebProcess/InjectedBundle/InjectedBundlePageFormClient.h:
32271         * WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
32272         (WebKit::WebFrameLoaderClient::dispatchWillSubmitForm):
32273
32274 2010-09-03  Sam Weinig  <sam@webkit.org>
32275
32276         Reviewed by Gavin Barraclough.
32277
32278         Change WKDictionaryIsMutable to take a WKDictionaryRef instead of a WKMutableDictionaryRef.
32279         If the type is already states it is mutable, there would be no reason for the check.
32280
32281         * UIProcess/API/C/WKMutableDictionary.cpp:
32282         (WKDictionaryIsMutable):
32283         * UIProcess/API/C/WKMutableDictionary.h:
32284
32285 2010-09-02  Sam Weinig  <sam@webkit.org>
32286
32287         Reviewed by Anders Carlsson.
32288
32289         Add ability to send WKDictionaryRefs via post message.
32290         https://bugs.webkit.org/show_bug.cgi?id=45151
32291
32292         * Shared/ImmutableDictionary.cpp:
32293         (WebKit::ImmutableDictionary::ImmutableDictionary):
32294         * Shared/ImmutableDictionary.h:
32295         (WebKit::ImmutableDictionary::adopt): Remove tag, it wasn't doing anything.
32296         (WebKit::ImmutableDictionary::isMutable):
32297         (WebKit::ImmutableDictionary::map): Add accessor of internal
32298         map for encoder.
32299
32300         * Shared/UserMessageCoders.h:
32301         (WebKit::UserMessageEncoder::baseEncode):
32302         (WebKit::UserMessageDecoder::baseDecode):
32303         Add encoder/decoder.
32304
32305 2010-09-02  Sam Weinig  <sam@webkit.org>
32306
32307         Reviewed by Anders Carlsson.
32308
32309         Share the common parts of UserMessage coding between both processes.
32310         https://bugs.webkit.org/show_bug.cgi?id=45139
32311
32312         Add base classes UserMessageEncoder and UserMessageDecoder which implement
32313         encoding/decoding of ImmutableArray and String (soon to be others as well, such
32314         as ImmutableDictionary, Data, etc.) and add derived classes which implement the
32315         process specific bits such as Page -> BundlePage conversion.
32316
32317         * Shared/UserMessageCoders.h: Copied from WebProcess/InjectedBundle/InjectedBundle.cpp.
32318         (WebKit::UserMessageEncoder::baseEncode):
32319         (WebKit::UserMessageEncoder::UserMessageEncoder):
32320         (WebKit::UserMessageDecoder::baseDecode):
32321         (WebKit::UserMessageDecoder::UserMessageDecoder):
32322         * UIProcess/WebContext.cpp:
32323         (WebKit::WebContext::postMessageToInjectedBundle):
32324         (WebKit::WebContext::didReceiveMessage):
32325         * UIProcess/WebContextUserMessageCoders.h: Copied from UIProcess/WebContext.cpp.
32326         (WebKit::WebContextUserMessageEncoder::WebContextUserMessageEncoder):
32327         (WebKit::WebContextUserMessageEncoder::encode):
32328         (WebKit::WebContextUserMessageDecoder::WebContextUserMessageDecoder):
32329         (WebKit::WebContextUserMessageDecoder::decode):
32330         * WebKit2.pro:
32331         * WebKit2.xcodeproj/project.pbxproj:
32332         * WebProcess/InjectedBundle/InjectedBundle.cpp:
32333         (WebKit::InjectedBundle::postMessage):
32334         (WebKit::InjectedBundle::didReceiveMessage):
32335         * WebProcess/InjectedBundle/InjectedBundleUserMessageCoders.h: Copied from WebProcess/InjectedBundle/InjectedBundle.cpp.
32336         (WebKit::InjectedBundleUserMessageEncoder::InjectedBundleUserMessageEncoder):
32337         (WebKit::InjectedBundleUserMessageEncoder::encode):
32338         (WebKit::InjectedBundleUserMessageDecoder::InjectedBundleUserMessageDecoder):
32339         (WebKit::InjectedBundleUserMessageDecoder::decode):
32340         * win/WebKit2.vcproj:
32341
32342 2010-09-02  Sam Weinig  <sam@webkit.org>
32343
32344         Reviewed by Anders Carlsson.
32345
32346         Simplify ownership semantics of some WebKit2 types
32347         https://bugs.webkit.org/show_bug.cgi?id=45120
32348
32349         - Make ImmutableArray and MutableArray use a Vector<RefPtr<APIObject> > and
32350           therefore ref any items it takes in.
32351         - Make the PostMessageDecoder operate on a RefPtr<APIObject>& to avoid the odd
32352           leaking semantics.
32353
32354         * Shared/ImmutableArray.cpp:
32355         (WebKit::ImmutableArray::ImmutableArray): This constructor now uses a for-loop
32356         instead of memcpy to ref each item.
32357         (WebKit::ImmutableArray::~ImmutableArray): No longer necessary to manually deref.
32358         * Shared/ImmutableArray.h:
32359         (WebKit::ImmutableArray::adopt):
32360         (WebKit::ImmutableArray::at):
32361         Changes to accommodate entries being changed to a Vector<RefPtr<APIObject> >.
32362
32363         * Shared/ImmutableDictionary.cpp:
32364         (WebKit::ImmutableDictionary::keys):
32365         Build a Vector<RefPtr<APIObject> >.
32366
32367         * UIProcess/WebBackForwardList.cpp:
32368         (WebKit::WebBackForwardList::backListAsImmutableArrayWithLimit):
32369         (WebKit::WebBackForwardList::forwardListAsImmutableArrayWithLimit):
32370         Ditto.
32371
32372         * UIProcess/WebContext.cpp:
32373         (WebKit::PostMessageEncoder::PostMessageDecoder::PostMessageDecoder):
32374         (WebKit::PostMessageEncoder::PostMessageDecoder::decode):
32375         (WebKit::WebContext::didReceiveMessage):
32376         APIObject>& to avoid the odd leaking semantics.
32377
32378         * WebProcess/InjectedBundle/InjectedBundle.cpp:
32379         (WebKit::PostMessageEncoder::PostMessageDecoder::PostMessageDecoder):
32380         (WebKit::PostMessageEncoder::PostMessageDecoder::decode):
32381         (WebKit::InjectedBundle::didReceiveMessage):
32382         Ditto.
32383
32384         * WebProcess/WebPage/WebFrame.cpp:
32385         (WebKit::WebFrame::childFrames):
32386         Build a Vector<RefPtr<APIObject> >.
32387
32388 2010-09-02  Sam Weinig  <sam@webkit.org>
32389
32390         Reviewed by Anders Carlsson.
32391
32392         Add WKMutableDictionary API for WebKit2
32393         https://bugs.webkit.org/show_bug.cgi?id=45117
32394
32395         Add WKMutableDictionary API that inherits from WKDictionaryRef
32396         the same way WKMutableArrayRef inherits from WKArrayRef.
32397
32398         * Shared/ImmutableDictionary.h:
32399         (WebKit::ImmutableDictionary::get):
32400         (WebKit::ImmutableDictionary::isMutable):
32401         * Shared/MutableDictionary.cpp: Added.
32402         (WebKit::MutableDictionary::MutableDictionary):
32403         (WebKit::MutableDictionary::~MutableDictionary):
32404         (WebKit::MutableDictionary::add):
32405         (WebKit::MutableDictionary::set):
32406         * Shared/MutableDictionary.h: Added.
32407         (WebKit::MutableDictionary::create):
32408         (WebKit::MutableDictionary::isMutable):
32409         * UIProcess/API/C/WKAPICast.h:
32410         (toWK):
32411         * UIProcess/API/C/WKBase.h:
32412         * UIProcess/API/C/WKMutableDictionary.cpp: Added.
32413         (WKMutableDictionaryCreate):
32414         (WKDictionaryIsMutable):
32415         (WKDictionaryAddItem):
32416         (WKDictionarySetItem):
32417         * UIProcess/API/C/WKMutableDictionary.h: Added.
32418         * UIProcess/API/C/WebKit2.h:
32419         * WebKit2.pro:
32420         * WebKit2.xcodeproj/project.pbxproj:
32421         * win/WebKit2.vcproj:
32422         * win/WebKit2Generated.make:
32423
32424 2010-09-02  Jessie Berlin  <jberlin@apple.com>
32425
32426         Windows build fix. Unreviewed.
32427
32428         * UIProcess/API/win/WKAPICastWin.h:
32429         (toWK):
32430         * UIProcess/API/win/WKBaseWin.h:
32431
32432 2010-09-01  Jia Pu  <jpu@apple.com>
32433
32434         Reviewed by Dan Bernstein.
32435
32436         Add support for autocorrection UI on Mac OS X.
32437         https://bugs.webkit.org/show_bug.cgi?id=44958
32438         <rdar://problem/7326847>
32439
32440         See detailed high level description in WebCore/ChangeLog.
32441
32442         * WebProcess/WebCoreSupport/WebEditorClient.cpp:
32443         (WebKit::WebEditorClient::showCorrectionPanel): Dummy implementation.
32444         (WebKit::WebEditorClient::dismissCorrectionPanel): Ditto
32445
32446         * WebProcess/WebCoreSupport/WebEditorClient.h: Added new methods declared in base class.
32447
32448 2010-09-01  Sam Weinig  <sam@webkit.org>
32449
32450         Fix the build.
32451
32452         As with CF, const struct OpaqueType* should be the default type
32453         so that const_casts are not necessary in user code.
32454
32455         * UIProcess/API/C/WKArray.cpp:
32456         (WKArrayCreate):
32457         * UIProcess/API/C/WKBase.h:
32458         * UIProcess/API/C/WKType.cpp:
32459         (WKGetTypeID):
32460         (WKRetain):
32461         (WKRelease):
32462         * WebProcess/InjectedBundle/API/c/WKBundleAPICast.h:
32463         (toWK):
32464         * WebProcess/InjectedBundle/API/c/WKBundleBase.h:
32465
32466 2010-09-01  Sam Weinig  <sam@webkit.org>
32467
32468         Reviewed by Adam Roben.
32469
32470         Add mutable array API to WebKit2
32471         https://bugs.webkit.org/show_bug.cgi?id=45082
32472
32473         Add a mutable API to WebKit2 called WKMutableArrayRef. Make it "inherit" from 
32474         WKArrayRef in the same way JSObjectRef can inherit from JSValueRef in the JSC
32475         API, by abusing the c type system (WKArrayRef is defined as a const version of
32476         WKMutableArrayRef). Add very basic mutable API to go along with it.
32477
32478         * Shared/ImmutableArray.h:
32479         (WebKit::ImmutableArray::isMutable):
32480         Add ability to ask it an array is mutable.
32481
32482         * Shared/MutableArray.cpp: Added.
32483         (WebKit::MutableArray::MutableArray):
32484         (WebKit::MutableArray::~MutableArray):
32485         (WebKit::MutableArray::append):
32486         * Shared/MutableArray.h: Added.
32487         (WebKit::MutableArray::create):
32488         (WebKit::MutableArray::isMutable):
32489         Sketch out the mutable array interface.
32490
32491         * UIProcess/API/C/WKAPICast.h:
32492         (toWK):
32493         Now that the opaque types can be const, use template magic to const_cast
32494         it away.
32495
32496         * UIProcess/API/C/WKBase.h:
32497         Add new type and re-type WKArrayRef as const.
32498
32499         * UIProcess/API/C/WKMutableArray.cpp: Added.
32500         (WKMutableArrayCreate):
32501         (WKArrayIsMutable):
32502         (WKArrayAppendItem):
32503         * UIProcess/API/C/WKMutableArray.h: Added.
32504         Fill in basic API.
32505
32506         * WebKit2.pro:
32507         * WebKit2.xcodeproj/project.pbxproj:
32508         * win/WebKit2.vcproj:
32509         * win/WebKit2Generated.make:
32510         Add files.
32511
32512 2010-09-01  Balazs Kelemen  <kb@inf.u-szeged.hu>
32513
32514         Reviewed by Kenneth Rohde Christiansen.
32515
32516         [Qt] Implement PluginInfoStore for UNIX
32517         https://bugs.webkit.org/show_bug.cgi?id=45038
32518
32519         This implementation is generally just reusing the logic in WebCore since
32520         there is no way to get informations from a UNIX plugin without loading it
32521         - in contrast to mac bundles and windows dll-s.
32522         * UIProcess/Plugins/qt/PluginInfoStoreQt.cpp:
32523         (WebKit::PluginInfoStore::pluginsDirectories):
32524         (WebKit::PluginInfoStore::pluginPathsInDirectory):
32525         (WebKit::PluginInfoStore::getPluginInfo):
32526         (WebKit::PluginInfoStore::shouldUsePlugin):
32527
32528 2010-09-01  Mark Rowe  <mrowe@apple.com>
32529
32530         Reviewed by Sam Weinig.
32531
32532         Allow the web process to load frameworks other than WebKit2.framework from the build directory
32533         when running engineering builds.
32534
32535         * WebProcess/mac/WebProcessMainMac.mm:
32536         (WebKit::WebProcessMain): Pass the path containing WebKit2.framework to the sandbox rather than
32537         the path of the WebKit2.framework itself.
32538
32539 2010-09-01  Sam Weinig  <sam@webkit.org>
32540
32541         Reviewed by John Sullivan.
32542
32543         Change ImmutableArray to be backed by a Vector
32544         https://bugs.webkit.org/show_bug.cgi?id=45064
32545
32546         Change ImmutableArray to be backed by a Vector to work toward having 
32547         a mutable subclass and to improve the API when working with it in WebKit2
32548         itself.
32549
32550         - Also remove WKArrayCreateAdoptingValues which was confusing and unused.
32551
32552         * Shared/ImmutableArray.cpp:
32553         (WebKit::ImmutableArray::ImmutableArray):
32554         (WebKit::ImmutableArray::~ImmutableArray):
32555         * Shared/ImmutableArray.h:
32556         (WebKit::ImmutableArray::adopt):
32557         (WebKit::ImmutableArray::at):
32558         (WebKit::ImmutableArray::size):
32559         * Shared/ImmutableDictionary.cpp:
32560         (WebKit::ImmutableDictionary::keys):
32561         * UIProcess/API/C/WKArray.cpp:
32562         * UIProcess/API/C/WKArray.h:
32563         * UIProcess/WebBackForwardList.cpp:
32564         (WebKit::WebBackForwardList::backListAsImmutableArrayWithLimit):
32565         (WebKit::WebBackForwardList::forwardListAsImmutableArrayWithLimit):
32566         * UIProcess/WebContext.cpp:
32567         (WebKit::PostMessageEncoder::PostMessageDecoder::decode):
32568         * WebProcess/InjectedBundle/InjectedBundle.cpp:
32569         (WebKit::PostMessageEncoder::PostMessageDecoder::decode):
32570         * WebProcess/WebPage/WebFrame.cpp:
32571         (WebKit::WebFrame::childFrames):
32572
32573 2010-09-01  Sam Weinig  <sam@webkit.org>
32574
32575         Reviewed by Anders Carlsson.
32576
32577         Add URLResponse API for WebKit2
32578         https://bugs.webkit.org/show_bug.cgi?id=45062
32579
32580         Add WebURLResponse class and WKURLResponseRef C API to go with it. Right now,
32581         instance of WKURLResponseRef are manipulated via platform types just like
32582         WKURLRequestRef.
32583
32584         This just adds the type and conversion functions, no uses yet.
32585
32586         * Shared/APIObject.h:
32587         * Shared/WebCoreArgumentCoders.h:
32588         * Shared/WebURLResponse.cpp: Added.
32589         (WebKit::WebURLResponse::WebURLResponse):
32590         * Shared/WebURLResponse.h: Added.
32591         (WebKit::WebURLResponse::create):
32592         (WebKit::WebURLResponse::resourceResponse):
32593         (WebKit::WebURLResponse::type):
32594         * Shared/mac/WebCoreArgumentCodersMac.mm:
32595         (CoreIPC::encodeWithNSKeyedArchiver):
32596         (CoreIPC::decodeWithNSKeyedArchiver):
32597         (CoreIPC::encodeResourceRequest):
32598         (CoreIPC::decodeResourceRequest):
32599         * Shared/mac/WebURLResponseMac.mm: Added.
32600         (WebKit::WebURLResponse::WebURLResponse):
32601         (WebKit::WebURLResponse::platformResponse):
32602         * Shared/qt/WebURLResponseQt.cpp: Added.
32603         (WebKit::WebURLResponse::WebURLResponse):
32604         (WebKit::WebURLResponse::platformResponse):
32605         * Shared/win/WebURLResponseWin.cpp: Added.
32606         (WebKit::WebURLResponse::WebURLResponse):
32607         (WebKit::WebURLResponse::platformResponse):
32608         * UIProcess/API/C/WKURLResponse.cpp: Added.
32609         (WKURLResponseGetTypeID):
32610         * UIProcess/API/C/WKURLResponse.h: Added.
32611         * UIProcess/API/C/cf/WKURLResponseCF.cpp: Added.
32612         (WKURLResponseCreateWithCFURLResponse):
32613         (WKURLResponseCopyCFURLResponse):
32614         * UIProcess/API/C/cf/WKURLResponseCF.h: Added.
32615         * UIProcess/API/C/mac/WKURLResponseNS.h: Added.
32616         * UIProcess/API/C/mac/WKURLResponseNS.mm: Added.
32617         (WKURLResponseCreateWithNSURLResponse):
32618         (WKURLResponseCopyNSURLResponse):
32619         * WebKit2.pro:
32620         * WebKit2.xcodeproj/project.pbxproj:
32621         * win/WebKit2.vcproj:
32622         * win/WebKit2Generated.make:
32623
32624 2010-09-01  Andras Becsi  <abecsi@webkit.org>
32625
32626         Reviewed by Antti Koivisto.
32627
32628         [Qt] Auto-generate WebKit2 forwarding headers
32629         https://bugs.webkit.org/show_bug.cgi?id=44692
32630
32631         * DerivedSources.pro: let the generate-forwarding-headers.pl
32632         script generate forwarding headers.
32633         * generate-forwarding-headers.pl: Added.
32634
32635 2010-08-31  Dave Hyatt  <hyatt@apple.com>
32636
32637         Reviewed by Sam Weinig.
32638
32639         https://bugs.webkit.org/show_bug.cgi?id=44863
32640
32641         * WebProcess/WebPage/WebPage.cpp:
32642         (WebKit::WebPage::layoutIfNeeded):
32643
32644 2010-08-31  Jon Honeycutt  <jhoneycutt@apple.com>
32645
32646         Fix some copy/paste errors.
32647
32648         Reviewed by Steve Falkenburg.
32649
32650         * WebProcess/InjectedBundle/InjectedBundlePageFormClient.cpp:
32651         (WebKit::InjectedBundlePageFormClient::textFieldDidEndEditing):
32652         Null check the correct callback.
32653         (WebKit::InjectedBundlePageFormClient::textDidChangeInTextField):
32654         Ditto.
32655         (WebKit::InjectedBundlePageFormClient::textDidChangeInTextArea):
32656         Ditto.
32657
32658 2010-08-31  Jon Honeycutt  <jhoneycutt@apple.com>
32659
32660         Crash when closing a page with a form field when using WebKit2.
32661
32662         Reviewed by Anders Carlsson.
32663
32664         The crash came from accessing a BundlePageFormClient that had been
32665         destroyed. The client was intended to be cleared by a call to
32666         WKBundlePageSetFormClient, but a null check there caused it not to be
32667         cleared.
32668
32669         I fixed this and all of the other WK "set client" functions.
32670
32671         * UIProcess/API/C/WKContext.cpp:
32672         (WKContextSetInjectedBundleClient):
32673         Return early if the caller passed a client with a version not equal to
32674         0.
32675         (WKContextSetHistoryClient):
32676         Ditto.
32677
32678         * UIProcess/API/C/WKPage.cpp:
32679         (WKPageSetPageLoaderClient):
32680         Ditto.
32681         (WKPageSetPagePolicyClient):
32682         Ditto.
32683         (WKPageSetPageFormClient):
32684         Ditto.
32685         (WKPageSetPageUIClient):
32686         Ditto.
32687
32688         * WebProcess/InjectedBundle/API/c/WKBundle.cpp:
32689         (WKBundleSetClient):
32690         Ditto.
32691
32692         * WebProcess/InjectedBundle/API/c/WKBundlePage.cpp:
32693         (WKBundlePageSetEditorClient):
32694         Ditto.
32695         (WKBundlePageSetFormClient):
32696         Ditto.
32697         (WKBundlePageSetLoaderClient):
32698         Ditto.
32699         (WKBundlePageSetUIClient):
32700         Ditto.
32701
32702 2010-08-31  Alexey Proskuryakov  <ap@apple.com>
32703
32704         Build fix.
32705
32706         * Shared/WebPreferencesStore.h: Actually remove encode(), which has been moved to WebPreferencesStore.cpp.
32707
32708 2010-08-31  Alexey Proskuryakov  <ap@apple.com>
32709
32710         Reviewed by Sam Weinig.
32711
32712         https://bugs.webkit.org/show_bug.cgi?id=42195
32713         <rdar://problem/8186761> WebKitTestRunner needs to support layoutTestController.setXSSAuditorEnabled
32714
32715         * Shared/WebPreferencesStore.cpp:
32716         (WebKit::WebPreferencesStore::WebPreferencesStore): Initialize xssAuditorEnabled.
32717         (WebKit::WebPreferencesStore::decode): Moved from header, added xssAuditorEnabled.
32718         (WebKit::WebPreferencesStore::encode): Ditto.
32719         (WebKit::WebPreferencesStore::overrideXSSAuditorEnabledForTestRunner): Set an override, so
32720         that decoding a WebPreferencesStore in the process will give the override result. WebProcess
32721         doesn't hold to WebPreferencesStore, so there are no existing ones to patch.
32722         (WebKit::WebPreferencesStore::removeTestRunnerOverrides): Remove the override.
32723
32724         * Shared/WebPreferencesStore.h: Added xssAuditorEnabled.
32725
32726         * UIProcess/API/C/WKPreferences.cpp:
32727         (WKPreferencesSetXSSAuditorEnabled):
32728         (WKPreferencesGetXSSAuditorEnabled):
32729         * UIProcess/API/C/WKPreferences.h:
32730         Added an API method to change xssAuditorEnabled preference.
32731
32732         * UIProcess/WebPageProxy.cpp: (WebKit::WebPageProxy::preferencesDidChange): Added a comment
32733         explaining how making this method smarter could affect WebKitTestRunner.
32734
32735         * UIProcess/WebPreferences.cpp:
32736         (WebKit::WebPreferences::setXSSAuditorEnabled):
32737         (WebKit::WebPreferences::xssAuditorEnabled):
32738         * UIProcess/WebPreferences.h:
32739         Implemented xssAuditorEnabled preference accessors.
32740
32741         * WebProcess/InjectedBundle/API/c/WKBundle.cpp: (WKBundleOverrideXSSAuditorEnabledForTestRunner):
32742         * WebProcess/InjectedBundle/API/c/WKBundlePrivate.h:
32743         Added a private methods to temporarily change xssAuditor setting from an injected bundle,
32744         not notifying UIProcess about the change.
32745
32746         * WebProcess/InjectedBundle/InjectedBundle.cpp: (WebKit::InjectedBundle::overrideXSSAuditorEnabledForTestRunner):
32747         * WebProcess/InjectedBundle/InjectedBundle.h:
32748         Change the setting in existing pages, and override it for future ones.
32749
32750         * WebProcess/WebPage/WebPage.cpp:
32751         (WebKit::WebPage::WebPage): Take xssAuditorEnabled from preferences store.
32752         (WebKit::WebPage::preferencesDidChange): If preferences change, forget our override. This only
32753         happens in WKRT when the next test begins.
32754
32755 2010-08-31  Sam Weinig  <sam@webkit.org>
32756
32757         Reviewed by Gavin Barraclough.
32758
32759         WebKitTestRunner needs layoutTestController.addUserStyleSheet
32760         https://bugs.webkit.org/show_bug.cgi?id=42680
32761
32762         WebKitTestRunner needs layoutTestController.addUserScript
32763         https://bugs.webkit.org/show_bug.cgi?id=42681
32764
32765         Improve UserContent APIs to allow passing null in the same places
32766         the WebKit1 API allowed. Add convenience function toWTFString to do
32767         WKStringRef conversion with correct null string behavior.
32768
32769         * UIProcess/API/C/WKAPICast.h:
32770         (toWTFString):
32771         * WebProcess/InjectedBundle/API/c/WKBundle.cpp:
32772         (WKBundleAddUserScript):
32773         (WKBundleAddUserStyleSheet):
32774         (WKBundleRemoveUserScript):
32775         (WKBundleRemoveUserStyleSheet):
32776         * WebProcess/InjectedBundle/InjectedBundle.cpp:
32777         (WebKit::toStringVector):
32778
32779 2010-08-31  Steve Falkenburg  <sfalken@apple.com>
32780
32781         Rubber stamped by Sam Weinig.
32782
32783         Remove library directive from def file to fix Debug_All build.
32784
32785         * win/WebKit2.def:
32786
32787 2010-08-31  Adam Roben  <aroben@apple.com>
32788
32789         Handle WM_PRINTCLIENT in WebKit2 on Windows
32790
32791         Reviewed by Sam Weinig.
32792
32793         * UIProcess/win/WebView.cpp:
32794         (WebKit::WebView::wndProc): Call through to onPrintClientEvent when we
32795         get a WM_PRINTCLIENT message.
32796         (WebKit::WebView::onPrintClientEvent): Added. Paints the entire view
32797         into the HDC provided by Windows.
32798
32799         * UIProcess/win/WebView.h: Added onPrintClientEvent.
32800
32801 2010-08-27  Adam Roben  <aroben@apple.com>
32802
32803         Don't send messages to the injected bundle if the web process has
32804         exited
32805
32806         Fixes <http://webkit.org/b/43046> <rdar://problem/8239455> Crash in
32807         WKContextPostMessageToInjectedBundle if the web process has exited
32808
32809         Reviewed by Sam Weinig.
32810
32811         * UIProcess/WebContext.cpp:
32812         (WebKit::WebContext::postMessageToInjectedBundle): Only send messages
32813         when we have a valid web process.
32814
32815 2010-08-27  Adam Roben  <aroben@apple.com>
32816
32817         Use the Windows thread pool instead of a dedicated thread for
32818         WorkQueue on Windows
32819
32820         WorkQueue now uses ::RegisterWaitForSingleObject to find out when work
32821         items need to be executed. This causes Windows to wait on the objects
32822         on a thread pool wait thread, and then to spawn a thread pool worker
32823         thread when an object is signaled. This is more efficient than using
32824         our own dedicated thread to perform the wait and the work because
32825         multiple WorkQueues (and even other parts of WebKit or other modules)
32826         can all share the same wait thread and worker thread pool.
32827
32828         Each time WorkQueue::m_performWorkEvent or any handle in
32829         WorkQueue::m_handles is signaled, a worker thread will be spawned.
32830         To maintain WorkQueue's serial nature, only one worker thread is
32831         allowed to perform work items at a time. (The worker thread that is
32832         actually performing work items is called the queue's "work thread".)
32833         To accomplish this, worker threads must register as the queue's work
32834         thread before performing work items.
32835         WorkQueue::m_isWorkThreadRegistered is used as an atomic guard to make
32836         sure that only one worker thread is registered at a time.
32837         
32838         Fixes <http://webkit.org/b/43150> <rdar://problem/8247280>.
32839
32840         Reviewed by Anders Carlsson.
32841
32842         * Platform/WorkQueue.h:
32843           - Added the WorkItemWin class, which is used to wrap WorkItems for
32844             WorkQueue's Windows implementation
32845           - Changed m_workItemQueue and m_handles to hold
32846             RefPtr<WorkItemWin>s
32847           - Replaced "work queue thread"-related members with new members that
32848             handle our thread pool code
32849
32850         * Platform/win/WorkQueueWin.cpp:
32851         (WorkQueue::WorkItemWin::WorkItemWin):
32852         (WorkQueue::WorkItemWin::create):
32853         Added simple constructor/creator.
32854
32855         (WorkQueue::handleCallback): Added. This function is called whenever a
32856         handle in WorkQueue::m_handles is signaled. We add the WorkItemWin
32857         that corresponds to the handle (passed via the context parameter) to
32858         the work item queue, then try to register as the work thread and
32859         perform any queued work. If another thread is already registered as
32860         the work thread, we just exit and let that thread handle the work we
32861         queued.
32862         (WorkQueue::registerHandle): Changed to wrap the WorkItem in a
32863         WorkItemWin, and to use ::RegisterWaitForSingleObject to wait on the
32864         handle.
32865         (WorkQueue::eventCallback): Added. This function is called whenever
32866         m_performWorkEvent is signaled. We try to register as the work thread
32867         and perfom any queued work. If another thread is already registered as
32868         the work thread, we just exit and let that thread handle the work.
32869         (WorkQueue::performWorkOnRegisteredWorkThread): Added. Performs any
32870         queued work in a loop until either the queue becomes invalid or no
32871         work is left to perform. Unregisters as the work thread before exiting
32872         so that other threads can perform work in the future.
32873         (WorkQueue::platformInitialize): Added initialization of
32874         m_isWorkThreadRegistered. Replaced code to spawn the old work queue
32875         thread with a call to ::RegisterWaitForSingleObject so that a worker
32876         thread from the thread pool will be spawned when m_performWorkEvent is
32877         signaled.
32878         (WorkQueue::tryRegisterAsWorkThread): Added. Attempts an atomic
32879         compare-and-swap to change m_isWorkThreadRegistered from 0 to 1. If
32880         sucessful, we return true to indicate that this thread is now
32881         registered as the work thread.
32882         (WorkQueue::unregisterAsWorkThread): Added. Uses an atomic
32883         compare-and-swap to change m_isWorkThreadRegistered back from 1 to 0.
32884         (WorkQueue::scheduleWork): Changed to wrap the WorkItem in a
32885         WorkItemWin. Also added an optimization to avoid signaling
32886         m_performWorkEvent when a work thread is already performing work, as
32887         it will pick up the item we just queued without us having to do
32888         anything.
32889
32890 2010-08-31  Csaba Osztrogonác  <ossy@webkit.org>
32891
32892         Reviewed by Antonio Gomes.
32893
32894         [Qt] Fix warnings in WebKit2 directory
32895         https://bugs.webkit.org/show_bug.cgi?id=44593
32896
32897         * Platform/CoreIPC/qt/ConnectionQt.cpp: Mark unused variables for compiler.
32898         (CoreIPC::Connection::readyReadHandler):
32899         (CoreIPC::Connection::sendOutgoingMessage):
32900         * Shared/qt/WebEventFactoryQt.cpp:
32901         (WebKit::WebEventFactory::createWebTouchEvent): Initialize state variable. Default case added.
32902         * WebProcess/Plugins/Netscape/qt/NetscapePluginQt.cpp:
32903         (WebKit::toNP): Return initialized NPEvent.
32904
32905 2010-08-31  Andras Becsi  <abecsi@webkit.org>
32906
32907         Reviewed by Antonio Gomes.
32908
32909         [Qt] Determine application path of MiniBrowser at runtime and use that path
32910         for QtWebProcess if the executable exists in that path.
32911
32912         * UIProcess/Launcher/qt/ProcessLauncherQt.cpp:
32913         (WebKit::ProcessLauncherHelper::launch):
32914
32915 2010-08-31  Zoltan Horvath  <zoltan@webkit.org>
32916
32917         Build fix after r66448 on WebKit2.
32918
32919         [Qt] qt_wk_didFinishDocumentLoadForFrame needs to be implemented 
32920         https://bugs.webkit.org/show_bug.cgi?id=44934
32921
32922         * UIProcess/API/qt/ClientImpl.cpp:
32923         (qt_wk_didFinishDocumentLoadForFrame):
32924         * UIProcess/API/qt/ClientImpl.h:
32925
32926 2010-08-30  Alice Liu  <alice.liu@apple.com>
32927
32928         Reviewed by Darin Adler.
32929
32930         Add missing parts of didFinishDocumentLoadForFrame
32931         https://bugs.webkit.org/show_bug.cgi?id=44913
32932
32933         * Shared/CoreIPCSupport/WebPageProxyMessageKinds.h: Added new kind
32934         * UIProcess/API/C/WKPage.h:
32935         * UIProcess/API/qt/qwkpage.cpp:
32936         (QWKPage::QWKPage): Updated struct
32937         * UIProcess/WebLoaderClient.cpp:
32938         (WebKit::WebLoaderClient::didFinishDocumentLoadForFrame): Added
32939         * UIProcess/WebLoaderClient.h:
32940         * UIProcess/WebPageProxy.cpp:
32941         (WebKit::WebPageProxy::didReceiveMessage): Added case for WebPageProxyMessage::DidFinishDocumentLoadForFrame
32942         (WebKit::WebPageProxy::didFinishDocumentLoadForFrame): Added
32943         * UIProcess/WebPageProxy.h:
32944
32945         Just rearranging existing code in these:
32946         * WebProcess/InjectedBundle/API/c/WKBundlePage.h:
32947         * WebProcess/InjectedBundle/InjectedBundlePageLoaderClient.cpp:
32948         (WebKit::InjectedBundlePageLoaderClient::didFinishDocumentLoadForFrame):
32949         * WebProcess/InjectedBundle/InjectedBundlePageLoaderClient.h:
32950
32951 2010-08-30  Sam Weinig  <sam@webkit.org>
32952
32953         Try and fix the WebKit2 buildbot.
32954
32955         * WebProcess/WebCoreSupport/mac/WebSystemInterface.mm:
32956         (InitWebCoreSystemInterface): Add missing initialization of QTMovieDisableComponent.
32957
32958 2010-08-30  Sam Weinig  <sam@webkit.org>
32959
32960         Reviewed by Anders Carlsson.
32961
32962         Add URLRequest API for WebKit2
32963         https://bugs.webkit.org/show_bug.cgi?id=44910
32964
32965         Add WebURLRequest class and WKURLRequestRef C API to go with it. Right now,
32966         instance of WKURLRequestRef are manipulated via platform types, a la the
32967         WKStringRef and WKURLRef types.
32968
32969         - Pipes WKPageLoadURLRequest through to the WebProcess.
32970
32971         * Shared/APIObject.h:
32972         * Shared/CoreIPCSupport/WebPageMessageKinds.h:
32973         * Shared/WebCoreArgumentCoders.h:
32974         * Shared/WebURLRequest.cpp: Added.
32975         (WebKit::WebURLRequest::WebURLRequest):
32976         * Shared/WebURLRequest.h: Added.
32977         (WebKit::WebURLRequest::create):
32978         (WebKit::WebURLRequest::resourceRequest):
32979         (WebKit::WebURLRequest::type):
32980         * Shared/mac/WebCoreArgumentCodersMac.mm: Added.
32981         (CoreIPC::encodeResourceRequest):
32982         (CoreIPC::decodeResourceRequest):
32983         * Shared/mac/WebURLRequestMac.mm: Added.
32984         (WebKit::WebURLRequest::WebURLRequest):
32985         (WebKit::WebURLRequest::platformRequest):
32986         * Shared/qt/WebCoreArgumentCodersQt.cpp: Added.
32987         (CoreIPC::encodeResourceRequest):
32988         (CoreIPC::decodeResourceRequest):
32989         * Shared/qt/WebURLRequestQt.cpp: Added.
32990         (WebKit::WebURLRequest::WebURLRequest):
32991         (WebKit::WebURLRequest::platformRequest):
32992         * Shared/win/WebCoreArgumentCodersWin.cpp: Added.
32993         (CoreIPC::encodeResourceRequest):
32994         (CoreIPC::decodeResourceRequest):
32995         * Shared/win/WebURLRequestWin.cpp: Added.
32996         (WebKit::WebURLRequest::WebURLRequest):
32997         (WebKit::WebURLRequest::platformRequest):
32998         * UIProcess/API/C/WKAPICast.h:
32999         * UIProcess/API/C/WKBase.h:
33000         * UIProcess/API/C/WKPage.cpp:
33001         (WKPageLoadURLRequest):
33002         * UIProcess/API/C/WKPage.h:
33003         * UIProcess/API/C/WKURLRequest.cpp: Added.
33004         (WKURLRequestGetTypeID):
33005         * UIProcess/API/C/WKURLRequest.h: Added.
33006         * UIProcess/API/C/WebKit2.h:
33007         * UIProcess/API/C/cf/WKURLRequestCF.cpp: Added.
33008         (WKURLRequestCreateWithCFURLRequest):
33009         (WKURLRequestCopyCFURLRequest):
33010         * UIProcess/API/C/cf/WKURLRequestCF.h: Added.
33011         * UIProcess/API/C/mac: Added.
33012         * UIProcess/API/C/mac/WKURLRequestNS.h: Added.
33013         * UIProcess/API/C/mac/WKURLRequestNS.mm: Added.
33014         (WKURLRequestCreateWithNSURLRequest):
33015         (WKURLRequestCopyNSURLRequest):
33016         * UIProcess/WebPageProxy.cpp:
33017         (WebKit::WebPageProxy::loadURL):
33018         (WebKit::WebPageProxy::loadURLRequest):
33019         * UIProcess/WebPageProxy.h:
33020         * WebKit2.pro:
33021         * WebKit2.xcodeproj/project.pbxproj:
33022         * WebProcess/WebPage/WebPage.cpp:
33023         (WebKit::WebPage::loadURL):
33024         (WebKit::WebPage::loadURLRequest):
33025         (WebKit::WebPage::didReceiveMessage):
33026         * WebProcess/WebPage/WebPage.h:
33027         * win/WebKit2.vcproj:
33028         * win/WebKit2Generated.make:
33029
33030 2010-08-30  Anders Carlsson  <andersca@apple.com>
33031
33032         Reviewed by Sam Weinig.
33033
33034         WorkQueue leaks its dispatch queue
33035         <rdar://problem/8358509>
33036         https://bugs.webkit.org/show_bug.cgi?id=44689
33037
33038         * Platform/mac/WorkQueueMac.cpp:
33039         (WorkQueue::platformInvalidate):
33040
33041 2010-08-27  Sam Weinig  <sam@webkit.org>
33042
33043         Reviewed by Dan Bernstein.
33044
33045         Add UserContent API to WebKit2 InjectedBundle
33046         <rdar://problem/8367587>
33047         https://bugs.webkit.org/show_bug.cgi?id=44810
33048
33049         The new API differs from the version in WebKit1 in that the function do not take
33050         a group name since we currently do not expose a way to make multiple PageGroups in
33051         the API.
33052
33053         * WebProcess/InjectedBundle/API/c/WKBundleAPICast.h:
33054         (toUserScriptInjectionTime):
33055         (toUserContentInjectedFrames):
33056         Add conversion functions for enums.
33057
33058         * WebProcess/InjectedBundle/API/c/WKBundle.cpp:
33059         (WKBundleAddUserScript):
33060         (WKBundleAddUserStyleSheet):
33061         (WKBundleRemoveUserScript):
33062         (WKBundleRemoveUserStyleSheet):
33063         (WKBundleRemoveUserScripts):
33064         (WKBundleRemoveUserStyleSheets):
33065         (WKBundleRemoveAllUserContent):
33066         * WebProcess/InjectedBundle/API/c/WKBundlePrivate.h:
33067         * WebProcess/InjectedBundle/InjectedBundle.cpp:
33068         (WebKit::toStringVector):
33069         (WebKit::InjectedBundle::addUserScript):
33070         (WebKit::InjectedBundle::addUserStyleSheet):
33071         (WebKit::InjectedBundle::removeUserScript):
33072         (WebKit::InjectedBundle::removeUserStyleSheet):
33073         (WebKit::InjectedBundle::removeUserScripts):
33074         (WebKit::InjectedBundle::removeUserStyleSheets):
33075         (WebKit::InjectedBundle::removeAllUserContent):
33076         * WebProcess/InjectedBundle/InjectedBundle.h:
33077         Forward API to PageGroup.
33078
33079         * WebProcess/WebProcess.cpp:
33080         (WebKit::WebProcess::sharedPageGroup):
33081         (WebKit::WebProcess::visitedLinkStateChanged):
33082         (WebKit::WebProcess::allVisitedLinkStateChanged):
33083         * WebProcess/WebProcess.h: Ad accessor for global PageGroup.
33084
33085 2010-08-27  Sam Weinig  <sam@webkit.org>
33086
33087         Reviewed by Gavin Barraclough.
33088
33089         Move WKBundle didCreatePage callback to outside the WebPage
33090         constructor to avoid adoptRef errors.
33091
33092         * WebProcess/WebPage/WebPage.cpp:
33093         (WebKit::WebPage::create):
33094         (WebKit::WebPage::WebPage):
33095
33096 2010-08-27  Brady Eidson  <beidson@apple.com>
33097
33098         Reviewed by Sam Weinig.
33099
33100         <rdar://problem/8147879> - Null URL passed to WebKit2 HistoryDelegate
33101
33102         * WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
33103         (WebKit::WebFrameLoaderClient::dispatchDecidePolicyForMIMEType): WK2 now loads initial about:blank document's synchronously,
33104           without consulting the policy delegate.
33105         (WebKit::WebFrameLoaderClient::dispatchDecidePolicyForNavigationAction): Ditto.
33106
33107 2010-08-27  Adam Roben  <aroben@apple.com>
33108
33109         Handle ERROR_IO_INCOMPLETE more correctly in Connection
33110
33111         We still don't know exactly why we're getting this error, but at least
33112         we can do something sensible when we do.
33113
33114         Fixes <http://webkit.org/b/44776> Occasional crash in
33115         Connection::readEventHandler or assertion failure in
33116         Connection::writeEventHandler due to ERROR_IO_INCOMPLETE
33117
33118         Reviewed by Sam Weinig.
33119
33120         * Platform/CoreIPC/win/ConnectionWin.cpp:
33121         (CoreIPC::Connection::readEventHandler): Bail out of this function
33122         entirely when we get ERROR_IO_INCOMPLETE. We'll get called back later
33123         when the read completes. Continuing in the function at this point
33124         would cause us to treat an incomplete read as a complete one, leading
33125         to a crash. Added an assertion to make the crash more understandable
33126         in the future.
33127         (CoreIPC::Connection::writeEventHandler): Bail out when we get
33128         ERROR_IO_INCOMPLETE. We'll get called back later when the write
33129         completes.
33130
33131 2010-08-27  Adam Roben  <aroben@apple.com>
33132
33133         Make the web process pause on launch when the
33134         WEBKIT2_PAUSE_WEB_PROCESS_ON_LAUNCH environment variable is set
33135
33136         This is a bit easier to use than holding Ctrl-Alt-Shift during launch,
33137         since the process can sometimes take a long time to launch under the
33138         debugger. Ctrl-Alt-Shift still works, however.
33139
33140         Fixes <http://webkit.org/b/44774> Would like an easier way to pause
33141         the web process on launch
33142
33143         Reviewed by Sam Weinig.
33144
33145         * WebProcess/WebKitMain.cpp:
33146         (WebKitMain):
33147
33148 2010-08-27  Sam Weinig  <sam@webkit.org>
33149
33150         Rubber-stamped by Adam Roben.
33151
33152         * WebKit2.xcodeproj/project.pbxproj: Make WKBundleScriptWorld.h public.
33153
33154 2010-08-26  Daniel Bates  <dbates@rim.com>
33155
33156         Attempt to fix the Qt WebKit2 build.
33157
33158         * WebProcess/WebPage/qt/WebPageQt.cpp:
33159         (WebKit::WebPage::performDefaultBehaviorForKeyEvent): Pass m_page.get() to WebKit::scroll()
33160         instead of m_page since it expects a raw pointer.
33161
33162 2010-08-26  Gavin Barraclough  <barraclough@apple.com>
33163
33164         Speculative windows build fix.
33165
33166         * UIProcess/win/WebView.cpp:
33167         (WebKit::WebView::WebView):
33168
33169 2010-08-26  Sam Weinig  <sam@webkit.org>
33170
33171         Reviewed by Darin Adler.
33172
33173         Adopt more uses OwnPtr/OwnArray in WebKit2.
33174         https://bugs.webkit.org/show_bug.cgi?id=44728
33175
33176         Also clears up weird create vs. adoption semantics. Now both create
33177         and adopt both don't ref their pointers, adoption is just about the
33178         buffer.
33179
33180         * Shared/ImmutableArray.cpp:
33181         (WebKit::ImmutableArray::ImmutableArray):
33182         (WebKit::ImmutableArray::~ImmutableArray):
33183         * Shared/ImmutableArray.h:
33184         (WebKit::ImmutableArray::adopt):
33185         * Shared/ImmutableDictionary.cpp:
33186         (WebKit::ImmutableDictionary::keys):
33187         * Shared/WebData.h:
33188         * UIProcess/API/mac/PageClientImpl.h:
33189         * UIProcess/API/mac/PageClientImpl.mm:
33190         (WebKit::PageClientImpl::create):
33191         * UIProcess/API/mac/WKView.mm:
33192         (-[WKView initWithFrame:pageNamespaceRef:]):
33193         (-[WKView _switchToDrawingAreaTypeIfNecessary:DrawingAreaProxy::]):
33194         * UIProcess/API/qt/qgraphicswkview.cpp:
33195         (QGraphicsWKView::QGraphicsWKView):
33196         * UIProcess/API/qt/qwkpage.cpp:
33197         (QWKPagePrivate::init):
33198         * UIProcess/API/qt/qwkpage_p.h:
33199         * UIProcess/ChunkedUpdateDrawingAreaProxy.cpp:
33200         (WebKit::ChunkedUpdateDrawingAreaProxy::create):
33201         * UIProcess/ChunkedUpdateDrawingAreaProxy.h:
33202         * UIProcess/LayerBackedDrawingAreaProxy.cpp:
33203         (WebKit::LayerBackedDrawingAreaProxy::create):
33204         * UIProcess/LayerBackedDrawingAreaProxy.h:
33205         * UIProcess/WebBackForwardList.cpp:
33206         (WebKit::WebBackForwardList::backListAsImmutableArrayWithLimit):
33207         (WebKit::WebBackForwardList::forwardListAsImmutableArrayWithLimit):
33208         * UIProcess/WebContext.cpp:
33209         (WebKit::PostMessageEncoder::PostMessageDecoder::decode):
33210         * WebProcess/InjectedBundle/InjectedBundle.cpp:
33211         (WebKit::PostMessageEncoder::PostMessageDecoder::decode):
33212         * WebProcess/WebCoreSupport/WebChromeClient.cpp:
33213         (WebKit::WebChromeClient::createPopupMenu):
33214         (WebKit::WebChromeClient::createSearchPopupMenu):
33215         * WebProcess/WebCoreSupport/WebPopupMenu.cpp:
33216         (WebKit::WebPopupMenu::create):
33217         * WebProcess/WebCoreSupport/WebPopupMenu.h:
33218         * WebProcess/WebCoreSupport/WebSearchPopupMenu.cpp:
33219         (WebKit::WebSearchPopupMenu::create):
33220         (WebKit::WebSearchPopupMenu::WebSearchPopupMenu):
33221         * WebProcess/WebCoreSupport/WebSearchPopupMenu.h:
33222         * WebProcess/WebPage/WebFrame.cpp:
33223         (WebKit::WebFrame::childFrames):
33224         * WebProcess/WebPage/WebPage.cpp:
33225         (WebKit::WebPage::WebPage):
33226         (WebKit::WebPage::close):
33227         * WebProcess/WebPage/WebPage.h:
33228         (WebKit::WebPage::corePage):
33229         * WebProcess/WebPage/mac/WebPageMac.mm:
33230         (WebKit::WebPage::performDefaultBehaviorForKeyEvent):
33231         * WebProcess/WebPage/win/WebPageWin.cpp:
33232         (WebKit::WebPage::performDefaultBehaviorForKeyEvent):
33233
33234 2010-08-26  Alexey Proskuryakov  <ap@apple.com>
33235
33236         Reviewed by Sam Weinig.
33237
33238         https://bugs.webkit.org/show_bug.cgi?id=44726
33239         <rdar://problem/7935518> WebFrameProxies aren't destroyed until a page is destroyed
33240
33241         Since frames can be moved across documents, they are not really a Page level concept.
33242         Moved frame tracking to WebProcess/WebProcessProxy.
33243
33244         * Shared/CoreIPCSupport/WebProcessProxyMessageKinds.h:
33245         (WebProcessProxyMessage::):
33246         * UIProcess/WebPageProxy.cpp:
33247         (WebKit::WebPageProxy::close):
33248         (WebKit::WebPageProxy::getStatistics):
33249         (WebKit::WebPageProxy::didReceiveMessage):
33250         (WebKit::WebPageProxy::didReceiveSyncMessage):
33251         (WebKit::WebPageProxy::didCreateMainFrame):
33252         (WebKit::WebPageProxy::didCreateSubFrame):
33253         (WebKit::WebPageProxy::processDidExit):
33254         * UIProcess/WebPageProxy.h:
33255         * UIProcess/WebProcessProxy.cpp:
33256         (WebKit::WebProcessProxy::didReceiveMessage):
33257         (WebKit::WebProcessProxy::didReceiveSyncMessage):
33258         (WebKit::WebProcessProxy::didClose):
33259         (WebKit::WebProcessProxy::webFrame):
33260         (WebKit::WebProcessProxy::frameCreated):
33261         (WebKit::WebProcessProxy::frameDestroyed):
33262         (WebKit::WebProcessProxy::disconnectFramesFromPage):
33263         (WebKit::WebProcessProxy::frameCountInPage):
33264         * UIProcess/WebProcessProxy.h:
33265         * WebProcess/WebPage/WebFrame.cpp:
33266         (WebKit::WebFrame::WebFrame):
33267         (WebKit::WebFrame::invalidate):
33268         * WebProcess/WebPage/WebPage.cpp:
33269         (WebKit::WebPage::didReceiveMessage):
33270         * WebProcess/WebPage/WebPage.h:
33271         * WebProcess/WebProcess.cpp:
33272         (WebKit::WebProcess::webFrame):
33273         (WebKit::WebProcess::addWebFrame):
33274         (WebKit::WebProcess::removeWebFrame):
33275         * WebProcess/WebProcess.h:
33276
33277 2010-08-26  Sam Weinig  <sam@webkit.org>
33278
33279         Reviewed by Darin Adler.
33280
33281         Add PassOwnArrayPtr
33282         https://bugs.webkit.org/show_bug.cgi?id=44627
33283
33284         * UIProcess/WebContext.cpp:
33285         (WebKit::PostMessageEncoder::PostMessageDecoder::decode):
33286         * WebProcess/InjectedBundle/InjectedBundle.cpp:
33287         (WebKit::PostMessageEncoder::PostMessageDecoder::decode):
33288
33289 2010-08-26  Peter Kasting  <pkasting@google.com>
33290
33291         Reviewed by Dimitri Glazkov.
33292
33293         Misc. cleanup split off from bug 32356.
33294         https://bugs.webkit.org/show_bug.cgi?id=44696
33295
33296         * WebProcess/WebPage/qt/WebPageQt.cpp:
33297         (WebKit::WebPage::performDefaultBehaviorForKeyEvent):
33298
33299 2010-08-25  Brent Fulgham  <bfulgham@webkit.org>
33300
33301         Build fix, no review.
33302
33303         Add conditional guards around Safari-specific
33304         include files.
33305
33306         * WebProcess/WebPage/win/WebPageWin.cpp:
33307
33308 2010-08-25  Adam Roben  <aroben@apple.com>
33309
33310         Clean up Connection::open on Windows
33311
33312         Fixes <http://webkit.org/b/44185>.
33313
33314         Reviewed by Steve Falkenburg.
33315
33316         * Platform/CoreIPC/win/ConnectionWin.cpp:
33317         (CoreIPC::Connection::platformInitialize): Set m_isConnected to true
33318         since the pipe got connected before it was even given to us.
33319         (CoreIPC::Connection::readEventHandler): Removed code that will never
33320         run now that m_isConnected is always true when this function is
33321         called. Since no outgoing messages will have been queued before
33322         m_isConnected is set to true, there's no need to send them explicitly
33323         here; they'll get sent as they're queued.
33324         (CoreIPC::Connection::open): Removed the call to ::ConnectNamedPipe,
33325         since the pipe is already connected by this point. Changed to schedule
33326         a read in the server and client the same way (rather than using
33327         ::SetEvent in the server).
33328
33329 2010-08-19  Adam Roben  <aroben@apple.com>
33330
33331         Call NP_GetEntryPoints before NP_Initialize on Windows
33332
33333         Doing otherwise will cause Flash and QuickTime to crash inside
33334         NP_Initialize.
33335
33336         Fixes <http://webkit.org/b/44270> <rdar://problem/8330393> Crash in
33337         NP_Initialize when loading QuickTime when running
33338         plugins/embed-attributes-setting.html in WebKit2 on Windows
33339
33340         Reviewed by John Sullivan.
33341
33342         * WebProcess/Plugins/Netscape/NetscapePluginModule.cpp:
33343         (WebKit::NetscapePluginModule::tryLoad): On Windows, first call
33344         NP_GetEntryPoints, then NP_Initialize. Do the reverse on Mac to
33345         prevent Silverlight (e.g.) from crashing (see r38858).
33346
33347 2010-08-25  Balazs Kelemen  <kb@inf.u-szeged.hu>
33348
33349         Reviewed by Kenneth Rohde Christiansen.
33350
33351         [Qt] Implement WebKit::Module for qt
33352         https://bugs.webkit.org/show_bug.cgi?id=44527
33353
33354         * Platform/Module.h:
33355         * Platform/qt/ModuleQt.cpp:
33356         (WebKit::Module::load):
33357         (WebKit::Module::unload):
33358         (WebKit::Module::platformFunctionPointer):
33359
33360 2010-08-24  Sam Weinig  <sam@webkit.org>
33361
33362         Reviewed by Mark Rowe.
33363
33364         WebKit2 should launch the WebProcess in 32-bit mode if the UIProcess is in 32-bit mode
33365         <rdar://problem/8348100>
33366         https://bugs.webkit.org/show_bug.cgi?id=44537
33367
33368         * UIProcess/Launcher/mac/ProcessLauncherMac.mm:
33369         (WebKit::ProcessLauncher::launchProcess): Use posix_spawnattr_setbinpref_np
33370         to tell posix_spawn to launch the WebProcess in 32-bit mode when the UIProcess
33371         is running in 32-bit mode.
33372
33373 2010-08-24  Mark Rowe  <mrowe@apple.com>
33374
33375         Rubber-stamped by Sam Weinig.
33376
33377         Set the install path of WebKit2.framework to the build directory for debug and release builds
33378         to match our other frameworks.
33379
33380         * WebKit2.xcodeproj/project.pbxproj:
33381
33382 2010-08-24  Sam Weinig  <sam@webkit.org>
33383
33384         Reviewed by John Sullivan.
33385
33386         Update profile.
33387
33388         * WebProcess/com.apple.WebProcess.sb:
33389
33390 2010-08-23  Darin Adler  <darin@apple.com>
33391
33392         Reviewed by Geoff Garen.
33393
33394         * WebProcess/InjectedBundle/API/c/WKBundleNode.cpp:
33395         (WKBundleNodeGetParent): Update since parent now returns a
33396         ContainerNode*. The toRef function is a bit too picky to convert
33397         it without a bit of help.
33398
33399 2010-08-23  Sheriff Bot  <webkit.review.bot@gmail.com>
33400
33401         Unreviewed, rolling out r65703.
33402         http://trac.webkit.org/changeset/65703
33403         https://bugs.webkit.org/show_bug.cgi?id=44460
33404
33405         "Causing lots of crashes on Snow Leopard when running the
33406         layout tests" (Requested by eseidel2 on #webkit).
33407
33408         * WebProcess/Plugins/Netscape/NetscapePluginModule.cpp:
33409         (WebKit::NetscapePluginModule::tryLoad):
33410
33411 2010-08-23  Jon Honeycutt  <jhoneycutt@apple.com>
33412
33413         Layout tests do not run when using WebKitTestRunner in a Debug build.
33414         https://bugs.webkit.org/show_bug.cgi?id=44409
33415
33416         Reviewed by Dan Bernstein.
33417
33418         * UIProcess/Launcher/win/ProcessLauncherWin.cpp:
33419         (WebKit::ProcessLauncher::launchProcess):
33420         Use WebKit2WebProcess_debug.exe when building Debug.
33421
33422 2010-08-23  Daniel Bates  <dbates@rim.com>
33423
33424         Rubber-stamped by Adam Roben.
33425
33426         Substitute "sizeof("javascript:") - 1" for the hardcoded constant 11 when
33427         extracting the JavaScript code portion of a JavaScript URL so as to make
33428         it clearer that the 11 represents the length of the scheme portion of
33429         a JavaScript URL.
33430
33431         * WebProcess/Plugins/PluginView.cpp:
33432         (WebKit::PluginView::performJavaScriptURLRequest):
33433
33434 2010-08-23  Balazs Kelemen  <kb@inf.u-szeged.hu>
33435
33436         Reviewed by Ariya Hidayat.
33437
33438         [Qt] Find needed forwarding headers for WebKit2 automatically
33439         https://bugs.webkit.org/show_bug.cgi?id=44336
33440
33441         * DerivedSources.pro: Use the new enumerate-included-framework-headers script for generating
33442         the list of forwarding headers we want to create.
33443
33444 2010-08-23  Zoltan Horvath  <zoltan@webkit.org>
33445
33446         [Qt] Build fix.
33447
33448         * DerivedSources.pro:
33449         * WebKit2.pro:
33450         * WebProcess/Plugins/Netscape/qt: Added.
33451         * WebProcess/Plugins/Netscape/qt/NetscapePluginQt.cpp: Added.
33452         (WebKit::NetscapePlugin::platformPostInitialize):
33453         (WebKit::NetscapePlugin::platformPaint):
33454         (WebKit::toNP):
33455         (WebKit::NetscapePlugin::platformHandleMouseEvent):
33456         (WebKit::NetscapePlugin::platformHandleWheelEvent):
33457         (WebKit::NetscapePlugin::platformSetFocus):
33458         (WebKit::NetscapePlugin::platformHandleMouseEnterEvent):
33459         (WebKit::NetscapePlugin::platformHandleMouseLeaveEvent):
33460
33461 2010-08-22  Juha Savolainen  <juha.savolainen@weego.fi>
33462
33463         Reviewed by Kenneth Rohde Christiansen.
33464
33465         [Qt] Add QTouchEvents support for WebKit2
33466         https://bugs.webkit.org/show_bug.cgi?id=44330
33467
33468         This patch adds support for QTouchEvents in WebKit2. A new WebEvent-class
33469         is created for touchevents, WebTouchEvent. Also touchpoints needed a new
33470         class, WebPlatformTouchPoint. This is similar solution like in other
33471         events(like MouseEvent) on WebKit2. These classes are introduced in WebEvent.h 
33472         Also there was a need to create an empty constructor to PlatformTouchPoint-class.
33473
33474         * DerivedSources.pro:
33475         * Shared/CoreIPCSupport/WebPageMessageKinds.h:
33476         (WebPageMessage::):
33477         * Shared/WebEvent.h:
33478         (WebKit::WebEvent::):
33479         (WebKit::WebTouchPoint::):
33480         (WebKit::WebTouchPoint::WebTouchPoint):
33481         (WebKit::WebTouchPoint::id):
33482         (WebKit::WebTouchPoint::state):
33483         (WebKit::WebTouchPoint::screenPosX):
33484         (WebKit::WebTouchPoint::screenPosY):
33485         (WebKit::WebTouchPoint::posX):
33486         (WebKit::WebTouchPoint::posY):
33487         (WebKit::WebTouchPoint::setState):
33488         (WebKit::WebTouchPoint::encode):
33489         (WebKit::WebTouchPoint::decode):
33490         (WebKit::WebTouchEvent::WebTouchEvent):
33491         (WebKit::WebTouchEvent::type):
33492         (WebKit::WebTouchEvent::touchPoints):
33493         (WebKit::WebTouchEvent::encode):
33494         (WebKit::WebTouchEvent::decode):
33495         (WebKit::WebTouchEvent::isTouchEventType):
33496         * Shared/WebEventConversion.cpp:
33497         (WebKit::WebKit2PlatformTouchPoint::WebKit2PlatformTouchPoint):
33498         (WebKit::WebKit2PlatformTouchEvent::WebKit2PlatformTouchEvent):
33499         (WebKit::platform):
33500         * Shared/WebEventConversion.h:
33501         * Shared/qt/WebEventFactoryQt.cpp:
33502         (WebKit::webEventTypeForEvent):
33503         (WebKit::WebEventFactory::createWebTouchEvent):
33504         * Shared/qt/WebEventFactoryQt.h:
33505         * UIProcess/API/qt/qgraphicswkview.cpp:
33506         (QGraphicsWKView::event):
33507         (QGraphicsWKView::touchEvent):
33508         * UIProcess/API/qt/qgraphicswkview.h:
33509         * UIProcess/API/qt/qwkpage.cpp:
33510         (QWKPagePrivate::touchEvent):
33511         * UIProcess/API/qt/qwkpage_p.h:
33512         * UIProcess/WebPageProxy.cpp:
33513         (WebKit::WebPageProxy::touchEvent):
33514         * UIProcess/WebPageProxy.h:
33515         * WebProcess/WebPage/WebPage.cpp:
33516         (WebKit::WebPage::touchEvent):
33517         (WebKit::WebPage::didReceiveMessage):
33518         * WebProcess/WebPage/WebPage.h:
33519
33520 2010-08-21  Sam Weinig  <sam@webkit.org>
33521
33522         Reviewed by Dan Bernstein.
33523
33524         Remove specialized retain/release functions in favor of a single one for WKTypeRefs
33525         https://bugs.webkit.org/show_bug.cgi?id=44386
33526
33527         * UIProcess/API/C/WKArray.cpp:
33528         (WKArrayGetSize):
33529         * UIProcess/API/C/WKArray.h:
33530         * UIProcess/API/C/WKBackForwardList.cpp:
33531         (WKBackForwardListCopyForwardListWithLimit):
33532         * UIProcess/API/C/WKBackForwardList.h:
33533         * UIProcess/API/C/WKBackForwardListItem.cpp:
33534         (WKBackForwardListItemCopyTitle):
33535         * UIProcess/API/C/WKBackForwardListItem.h:
33536         * UIProcess/API/C/WKBase.h:
33537         * UIProcess/API/C/WKContext.cpp:
33538         * UIProcess/API/C/WKContext.h:
33539         * UIProcess/API/C/WKData.cpp:
33540         (WKDataGetSize):
33541         * UIProcess/API/C/WKData.h:
33542         * UIProcess/API/C/WKDictionary.cpp:
33543         (WKDictionaryCopyKeys):
33544         * UIProcess/API/C/WKDictionary.h:
33545         * UIProcess/API/C/WKError.h:
33546         * UIProcess/API/C/WKFormSubmissionListener.cpp:
33547         (WKFormSubmissionListenerContinue):
33548         * UIProcess/API/C/WKFormSubmissionListener.h:
33549         * UIProcess/API/C/WKFrame.cpp:
33550         (WKFrameGetPage):
33551         * UIProcess/API/C/WKFrame.h:
33552         * UIProcess/API/C/WKFramePolicyListener.cpp:
33553         (WKFramePolicyListenerIgnore):
33554         * UIProcess/API/C/WKFramePolicyListener.h:
33555         * UIProcess/API/C/WKNavigationData.cpp:
33556         (WKNavigationDataCopyURL):
33557         * UIProcess/API/C/WKNavigationData.h:
33558         * UIProcess/API/C/WKPage.cpp:
33559         * UIProcess/API/C/WKPage.h:
33560         * UIProcess/API/C/WKPageNamespace.cpp:
33561         (WKPageNamespaceGetContext):
33562         * UIProcess/API/C/WKPageNamespace.h:
33563         * UIProcess/API/C/WKPreferences.cpp:
33564         (WKPreferencesCreate):
33565         (WKPreferencesGetLocalStorageEnabled):
33566         * UIProcess/API/C/WKPreferences.h:
33567         * UIProcess/API/C/WKString.cpp:
33568         * UIProcess/API/C/WKString.h:
33569         * UIProcess/API/C/WKType.cpp:
33570         (WKRetain):
33571         (WKRelease):
33572         * UIProcess/API/C/WKType.h:
33573         * UIProcess/API/C/WKURL.cpp:
33574         (WKURLGetTypeID):
33575         * UIProcess/API/C/WKURL.h:
33576         * UIProcess/API/cpp/WKRetainPtr.h:
33577         * UIProcess/API/win/WKView.cpp:
33578         * UIProcess/API/win/WKView.h:
33579         * UIProcess/WebPreferences.cpp:
33580         (WebKit::WebPreferences::shared):
33581         * WebProcess/InjectedBundle/API/c/WKBundleNodeHandle.cpp:
33582         (WKBundleNodeHandleGetTypeID):
33583         * WebProcess/InjectedBundle/API/c/WKBundleNodeHandle.h:
33584         * WebProcess/InjectedBundle/API/c/WKBundleScriptWorld.cpp:
33585         (WKBundleScriptWorldNormalWorld):
33586         * WebProcess/InjectedBundle/API/c/WKBundleScriptWorld.h:
33587
33588 2010-08-20  Balazs Kelemen  <kb@inf.u-szeged.hu>
33589
33590         Reviewed by Antonio Gomes.
33591
33592         [Qt] Implement cursor change in WebKit2
33593         https://bugs.webkit.org/show_bug.cgi?id=44263
33594
33595         Implemented PageClient::setCursor.
33596         * UIProcess/API/qt/qgraphicswkview.cpp: Added updateCursor slot to be connected to the QWKPage::setCursor signal.
33597         (QGraphicsWKView::QGraphicsWKView):
33598         (QGraphicsWKView::updateCursor): Sets the cursor of the widget.
33599         * UIProcess/API/qt/qgraphicswkview.h:
33600         * UIProcess/API/qt/qwkpage.cpp:
33601         (QWKPagePrivate::setCursor): Added implementation for PageClient::setCursor. Emitting singal through the QWKPage.
33602         * UIProcess/API/qt/qwkpage.h: Added setCursor signal.
33603         * UIProcess/API/qt/qwkpage_p.h:
33604
33605 2010-08-19  David Kilzer  <ddkilzer@apple.com>
33606
33607         BUILD FIX: Fix Mac build after Windows WebKit2 changes for Netscape Plug-ins
33608
33609         * WebProcess/Plugins/Netscape/mac/NetscapePluginMac.mm:
33610         (WebKit::NetscapePlugin::platformPaint): Changed frameRect() to
33611         m_frameRect.
33612
33613 2010-08-19  Adam Roben  <aroben@apple.com>
33614
33615         Send mouse events to windowless plugins on Windows
33616
33617         This seems to have been the last issue blocking us from playing videos
33618         on vimeo.com.
33619
33620         Fixes <http://webkit.org/b/44276> <rdar://problem/8330398> Can't click
33621         play button in vimeo.com Flash video player in WebKit2 on Windows
33622
33623         Reviewed by Sam Weinig.
33624
33625         * WebProcess/Plugins/Netscape/win/NetscapePluginWin.cpp:
33626         (WebKit::toNP): Added. Converts a WebMouseEvent to an NPEvent. Code
33627         was adapted from WebCore's PluginViewWin.cpp.
33628
33629         (WebKit::NetscapePlugin::platformHandleMouseEvent):
33630         (WebKit::NetscapePlugin::platformHandleMouseEnterEvent):
33631         (WebKit::NetscapePlugin::platformHandleMouseLeaveEvent):
33632         Convert the WebMouseEvent to an NPEvent and send it to the plugin.
33633
33634 2010-08-19  Adam Roben  <aroben@apple.com>
33635
33636         Add support for painting windowless plugins on Windows
33637
33638         This gets the video on the front page of vimeo.com painting (though
33639         you can't make it play because we don't support mouse events yet).
33640
33641         Fixes <http://webkit.org/b/44274> <rdar://problem/8330395> Windowless
33642         plugins don't paint in WebKit2 on Windows
33643
33644         Reviewed by Sam Weinig.
33645
33646         * WebProcess/Plugins/Netscape/NetscapeBrowserFuncs.cpp:
33647         (WebKit::NPN_GetValue): Tell the plugin that we support windowless
33648         mode on Windows.
33649         (WebKit::NPN_SetValue): Implemented handling of NPPVpluginWindowBool
33650         by calling through to NetscapePlugin::setIsWindowed.
33651
33652         * WebProcess/Plugins/Netscape/NetscapePlugin.cpp:
33653         (WebKit::NetscapePlugin::NetscapePlugin): Added initialization of
33654         m_isWindowed. It defaults to false on Mac and true on other platforms,
33655         matching WebCore's PluginView.
33656
33657         * WebProcess/Plugins/Netscape/NetscapePlugin.h: Added m_isWindowed.
33658         (WebKit::NetscapePlugin::setIsWindowed): Added standard setter.
33659
33660         * WebProcess/Plugins/Netscape/mac/NetscapePluginMac.mm:
33661         (WebKit::NetscapePlugin::platformPaint): Moved Mac-specific context
33662         translation code here from PluginView::paint.
33663
33664         * WebProcess/Plugins/Netscape/win/NetscapePluginWin.cpp:
33665         (WebKit::NetscapePlugin::platformPaint): Implemented. Code was ported
33666         from WebCore's PluginViewWin.cpp.
33667
33668         * WebProcess/Plugins/Plugin.h: Updated the comment for Plugin::paint
33669         to explain the coordinate system of the context.
33670
33671         * WebProcess/Plugins/PluginView.cpp:
33672         (WebKit::PluginView::paint): Changed to translate the context from
33673         document to window coordinates. We were previously trying to translate
33674         to plugin-local coordinates, but this only worked for documents whose
33675         origin was the same as the window's origin (i.e., the main frame). The
33676         plugin takes care of any further translations needed. (Mac translates
33677         the context into plugin-local coordinates, and Windows leaves it in
33678         window coordinates.)
33679
33680 2010-08-19  Adam Roben  <aroben@apple.com>
33681
33682         Implement PluginInfoStore::pluginsDirectories
33683
33684         This makes WebKit2 able to find and load Flash on Windows.
33685
33686         Note that we aren't yet respecting the MozillaPlugins registry key.
33687         That's covered by <http://webkit.org/b/44271>.
33688
33689         Fixes <http://webkit.org/b/43510> <rdar://problem/8273827> WebKit2
33690         should load plugins from the same directories as old-WebKit
33691
33692         Reviewed by Jon Honeycutt and Ada Chan.
33693
33694         * UIProcess/Plugins/win/PluginInfoStoreWin.cpp:
33695         (WebKit::parseVersionString):
33696         (WebKit::compareVersions):
33697         (WebKit::safariPluginsDirectory):
33698         (WebKit::addMozillaPluginDirectories):
33699         (WebKit::addWindowsMediaPlayerPluginDirectory):
33700         (WebKit::addQuickTimePluginDirectory):
33701         (WebKit::addAdobeAcrobatPluginDirectory):
33702         (WebKit::addMacromediaPluginDirectories):
33703         (WebKit::PluginInfoStore::pluginsDirectories):
33704         Ported (and ever-so-slightly cleaned up) code from WebCore's
33705         PluginDatabaseWin.cpp.
33706
33707 2010-08-19  Adam Roben  <aroben@apple.com>
33708
33709         Call NP_GetEntryPoints before NP_Initialize on Windows
33710
33711         Doing otherwise will cause Flash and QuickTime to crash inside
33712         NP_Initialize.
33713
33714         Fixes <http://webkit.org/b/44270> <rdar://problem/8330393> Crash in
33715         NP_Initialize when loading QuickTime when running
33716         plugins/embed-attributes-setting.html in WebKit2 on Windows
33717
33718         Reviewed by Sam Weinig.
33719
33720         * WebProcess/Plugins/Netscape/NetscapePluginModule.cpp:
33721         (WebKit::NetscapePluginModule::tryLoad): On Windows, first call
33722         NP_GetEntryPoints, then NP_Initialize. Do the reverse on Mac to
33723         prevent Silverlight (e.g.) from crashing (see r38858).
33724
33725 2010-08-19  Adam Roben  <aroben@apple.com>
33726
33727         Add NetscapePluginWin.cpp
33728
33729         Fixes <http://webkit.org/b/44269> <rdar://problem/8330391>
33730         NetscapePlugin.h contains functions that should be in
33731         NetscapePluginWin.cpp
33732
33733         Reviewed by Sam Weinig.
33734
33735         * WebProcess/Plugins/Netscape/NetscapePlugin.h: Moved functions from
33736         here...
33737         * WebProcess/Plugins/Netscape/win/NetscapePluginWin.cpp: ...to here.
33738
33739         * win/WebKit2.vcproj: Added NetscapePluginWin.cpp and let VS reorder
33740         the file list.
33741
33742 2010-08-19  Sam Weinig  <sam@webkit.org>
33743
33744         Reviewed by Adam Roben.
33745
33746         Add modifier key info to policy client functions in WebKit2
33747         <rdar://problem/8185298>
33748         https://bugs.webkit.org/show_bug.cgi?id=44280
33749
33750         * UIProcess/API/C/WKAPICast.h:
33751         Add conversion function for modifiers and rename an incorrectly named
33752         toWK to toRef.
33753
33754         * UIProcess/API/C/WKPage.h:
33755         Add WKEventModifiers enum.
33756
33757         * UIProcess/WebPageProxy.cpp:
33758         (WebKit::WebPageProxy::didReceiveMessage):
33759         (WebKit::WebPageProxy::decidePolicyForNavigationAction):
33760         (WebKit::WebPageProxy::decidePolicyForNewWindowAction):
33761         * UIProcess/WebPageProxy.h:
33762         * UIProcess/WebPolicyClient.cpp:
33763         (WebKit::WebPolicyClient::decidePolicyForNavigationAction):
33764         (WebKit::WebPolicyClient::decidePolicyForNewWindowAction):
33765         * UIProcess/WebPolicyClient.h:
33766         Pipe through modifier info.
33767
33768         * WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
33769         (WebKit::modifiersForNavigationAction):
33770         (WebKit::WebFrameLoaderClient::dispatchDecidePolicyForNewWindowAction):
33771         (WebKit::WebFrameLoaderClient::dispatchDecidePolicyForNavigationAction):
33772         Get modifier info out of the NavigationInfo class in the same manner as
33773         WebKit1.
33774
33775 2010-08-18  Sam Weinig  <sam@webkit.org>
33776
33777         Reviewed by Adam Roben.
33778
33779         Add ability to get all the keys from a WKDictionaryRef
33780         https://bugs.webkit.org/show_bug.cgi?id=44221
33781
33782         * Shared/ImmutableDictionary.cpp:
33783         (WebKit::ImmutableDictionary::keys):
33784         * Shared/ImmutableDictionary.h:
33785         Add keys function.
33786
33787         * UIProcess/API/C/WKDictionary.cpp:
33788         (WKDictionaryCopyKeys):
33789         * UIProcess/API/C/WKDictionary.h:
33790         Wrap keys function.
33791
33792 2010-08-18  Sam Weinig  <sam@webkit.org>
33793
33794         Reviewed by Jon Honeycutt.
33795
33796         Add ability to set custom userAgent for WebKit2
33797         https://bugs.webkit.org/show_bug.cgi?id=44215
33798
33799         * Shared/CoreIPCSupport/WebPageMessageKinds.h:
33800         (WebPageMessage::):
33801         * UIProcess/API/C/WKPage.cpp:
33802         (WKPageSetCustomUserAgent):
33803         * UIProcess/API/C/WKPage.h:
33804         * UIProcess/WebPageProxy.cpp:
33805         (WebKit::WebPageProxy::setCustomUserAgent):
33806         * UIProcess/WebPageProxy.h:
33807         * WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
33808         (WebKit::WebFrameLoaderClient::userAgent):
33809         * WebProcess/WebPage/WebPage.cpp:
33810         (WebKit::WebPage::setCustomUserAgent):
33811         (WebKit::WebPage::userAgent):
33812         (WebKit::WebPage::didReceiveMessage):
33813         * WebProcess/WebPage/WebPage.h:
33814
33815 2010-08-18  Sam Weinig  <sam@webkit.org>
33816
33817         Rubber-stamped by John Sullivan.
33818
33819         Make WKBundleNodeHandleRef usable from WKRetainPtr.
33820
33821         * WebKit2.xcodeproj/project.pbxproj: Make WKBundleNodeHandle.h public.
33822         * WebProcess/InjectedBundle/API/c/WKBundleNodeHandle.h: Add WKRetain/WKRelease overloads.
33823
33824 2010-08-18  Zoltan Horvath  <zoltan@webkit.org>
33825
33826         Reviewed by Kenneth Rohde Christiansen.
33827
33828         [Qt] Forwards QtWebProcess' stdout, stderr onto the UI process
33829         https://bugs.webkit.org/show_bug.cgi?id=44159
33830
33831         For debugging purposes forwards stdout and stderr of QtWebProcess onto the UI process.
33832
33833         * UIProcess/Launcher/qt/ProcessLauncherQt.cpp:
33834         (WebKit::ProcessLauncherHelper::launch):
33835
33836 2010-08-17  Jesus Sanchez-Palencia  <jesus.palencia@openbossa.org>
33837
33838         Reviewed by Darin Adler.
33839
33840         Add NetworkingContext to avoid layer violations
33841         https://bugs.webkit.org/show_bug.cgi?id=42292
33842
33843         Preparation: Just add the files to the build system.
33844
33845         * WebKit2.xcodeproj/project.pbxproj: Added new files.
33846         * WebProcess/WebCoreSupport/mac/WebFrameNetworkingContext.h: Added.
33847         Placeholder with tentative code that might be changed when landing
33848         the rest of it.
33849         * WebProcess/WebCoreSupport/mac/WebFrameNetworkingContext.mm: Added.
33850         Empty placeholder for now.
33851
33852 2010-08-16  Jon Honeycutt  <jhoneycutt@apple.com>
33853
33854         Allow some tests to pass in WebKitTestRunner before SharedMemory and
33855         PluginInfoStore are implemented on Windows.
33856
33857         Reviewed by Sam Weinig.
33858
33859         * Platform/win/SharedMemoryWin.cpp:
33860         Disable not implemented warnings.
33861         * UIProcess/Plugins/win/PluginInfoStoreWin.cpp:
33862         Ditto.
33863
33864 2010-08-16  Gavin Barraclough  <barraclough@apple.com>
33865
33866         Rubber stamped by Sam Weinig
33867
33868         Remove unnecessary includes from UString.h, add new includes as necessary.
33869
33870         * WebProcess/Plugins/Netscape/NetscapePlugin.h:
33871
33872 2010-08-16  Sam Weinig  <sam@webkit.org>
33873
33874         Fix windows build.
33875
33876         * Shared/win/CommandLineWin.cpp:
33877
33878 2010-08-16  Sam Weinig  <sam@webkit.org>
33879
33880         Reviewed by Gavin Barraclough.
33881
33882         Remove #includes of <WebCore/PlatformString.h> in favor of <wtf/text/WTFString.h>
33883
33884         * Platform/Module.cpp:
33885         * Platform/Module.h:
33886         * Shared/CommandLine.h:
33887         * Shared/WebCoreArgumentCoders.h:
33888         * Shared/WebEvent.h:
33889         * Shared/WebNavigationDataStore.h:
33890         * Shared/WebPreferencesStore.h:
33891         * Shared/WebString.h:
33892         * Shared/WebURL.h:
33893         * Shared/mac/CommandLineMac.cpp:
33894         * Shared/qt/UpdateChunk.cpp:
33895         * UIProcess/API/C/WKContext.cpp:
33896         * UIProcess/API/C/cf/WKStringCF.cpp:
33897         * UIProcess/API/C/cf/WKURLCF.cpp:
33898         * UIProcess/API/cpp/qt/WKStringQt.cpp:
33899         * UIProcess/API/cpp/qt/WKURLQt.cpp:
33900         * UIProcess/API/mac/PageClientImpl.mm:
33901         * UIProcess/API/qt/qgraphicswkview.cpp:
33902         * UIProcess/Launcher/mac/ProcessLauncherMac.mm:
33903         * UIProcess/Launcher/qt/ProcessLauncherQt.cpp:
33904         * UIProcess/Launcher/win/ProcessLauncherWin.cpp:
33905         * UIProcess/WebBackForwardListItem.cpp:
33906         * UIProcess/WebBackForwardListItem.h:
33907         * UIProcess/WebContext.h:
33908         * UIProcess/WebContextInjectedBundleClient.cpp:
33909         * UIProcess/WebFrameProxy.cpp:
33910         * UIProcess/WebFrameProxy.h:
33911         * UIProcess/WebPageProxy.h:
33912         * UIProcess/WebPolicyClient.cpp:
33913         * UIProcess/WebProcessProxy.cpp:
33914         * UIProcess/WebUIClient.cpp:
33915         * UIProcess/win/WebView.cpp:
33916         * WebProcess/InjectedBundle/API/c/WKBundlePage.cpp:
33917         * WebProcess/InjectedBundle/InjectedBundle.h:
33918         * WebProcess/InjectedBundle/InjectedBundlePageEditorClient.cpp:
33919         * WebProcess/InjectedBundle/InjectedBundlePageLoaderClient.cpp:
33920         * WebProcess/InjectedBundle/InjectedBundlePageUIClient.cpp:
33921         * WebProcess/InjectedBundle/mac/InjectedBundleMac.cpp:
33922         * WebProcess/Plugins/JSNPObject.cpp:
33923         * WebProcess/Plugins/NPJSObject.cpp:
33924         * WebProcess/Plugins/Netscape/NetscapePluginModule.cpp:
33925         * WebProcess/Plugins/Netscape/NetscapePluginModule.h:
33926         * WebProcess/WebCoreSupport/WebChromeClient.h:
33927         * WebProcess/WebKitMain.cpp:
33928         * WebProcess/win/WebProcessMainWin.cpp:
33929
33930 2010-08-16  Sam Weinig  <sam@webkit.org>
33931
33932         Reviewed by Gavin Barraclough.
33933
33934         Null CFURLRef returned from provisionalURL after searching on zillow.com
33935         <rdar://problem/8261812>
33936         https://bugs.webkit.org/show_bug.cgi?id=44072
33937
33938         Conversion from WKURLRef to CFRURLRef was breaking on URLs using characters
33939         such as '{'.
33940
33941         * UIProcess/API/C/cf/WKURLCF.cpp:
33942         (WKURLCopyCFURL): Use code similar to that found in KURLCFNet.cpp for conversion.
33943
33944 2010-08-16  Sam Weinig  <sam@webkit.org>
33945
33946         Reviewed by Gavin Barraclough.
33947
33948         Remove unnecessary copy constructor, assignment operator and swap function.
33949         The defaults (for all except swap) should do just fine.
33950
33951         * Shared/WebPreferencesStore.cpp:
33952         * Shared/WebPreferencesStore.h:
33953
33954 2010-08-16  Balazs Kelemen  <kb@inf.u-szeged.hu>
33955
33956         Reviewed by Kenneth Rohde Christiansen.
33957
33958         Handle content size change in WebKit2
33959         Re-landing after fix.
33960
33961         https://bugs.webkit.org/show_bug.cgi?id=43198
33962
33963         Based on the work of Antti Koivisto.
33964         Send message to the UI client when the contents size has changed through the WebChromeClient
33965         and propagate it to the WKPageUIClient.
33966
33967         * Shared/CoreIPCSupport/WebPageProxyMessageKinds.h:
33968         (WebPageProxyMessage::): Added ContentsSizeChanged message kind.
33969         * UIProcess/API/C/WKPage.h: Added WKPageContentsSizeChangedCallback callback to the WKPageUIClient.
33970         * UIProcess/API/qt/qwkpage.cpp:
33971         (QWKPage::QWKPage): Initialize the new callback to 0.
33972         * UIProcess/WebPageProxy.cpp:
33973         (WebKit::WebPageProxy::didReceiveMessage): Handle ContentsSizeChanged message. Calls contetsSizeChanged.
33974         (WebKit::WebPageProxy::contentsSizeChanged): Added. Propagate the event to the the UI client.
33975         * UIProcess/WebPageProxy.h:
33976         * UIProcess/WebUIClient.cpp:
33977         (WebKit::WebUIClient::contentsSizeChanged): Added. Propagate the event forward to the WKPageUIClient.
33978         * UIProcess/WebUIClient.h:
33979         * WebProcess/WebCoreSupport/WebChromeClient.cpp:
33980         (WebKit::WebChromeClient::contentsSizeChanged): Implemented.
33981
33982 2010-08-16  Sheriff Bot  <webkit.review.bot@gmail.com>
33983
33984         Unreviewed, rolling out r65419.
33985         http://trac.webkit.org/changeset/65419
33986         https://bugs.webkit.org/show_bug.cgi?id=44053
33987
33988         Broke the Windows build (Requested by bbandix on #webkit).
33989
33990         * Shared/CoreIPCSupport/WebPageProxyMessageKinds.h:
33991         (WebPageProxyMessage::):
33992         * UIProcess/API/C/WKPage.h:
33993         * UIProcess/API/qt/qwkpage.cpp:
33994         (QWKPage::QWKPage):
33995         * UIProcess/WebPageProxy.cpp:
33996         (WebKit::WebPageProxy::didReceiveMessage):
33997         * UIProcess/WebPageProxy.h:
33998         * UIProcess/WebUIClient.cpp:
33999         * UIProcess/WebUIClient.h:
34000         * WebProcess/WebCoreSupport/WebChromeClient.cpp:
34001         (WebKit::WebChromeClient::contentsSizeChanged):
34002
34003 2010-08-16  Balazs Kelemen  <kb@inf.u-szeged.hu>
34004
34005         Reviewed by Kenneth Rohde Christiansen.
34006
34007         Handle content size change in WebKit2
34008
34009         https://bugs.webkit.org/show_bug.cgi?id=43198
34010
34011         Based on the work of Antti Koivisto.
34012         Send message to the UI client when the contents size has changed through the WebChromeClient
34013         and propagate it to the WKPageUIClient.
34014
34015         * Shared/CoreIPCSupport/WebPageProxyMessageKinds.h:
34016         (WebPageProxyMessage::): Added ContentsSizeChanged message kind.
34017         * UIProcess/API/C/WKPage.h: Added WKPageContentsSizeChangedCallback callback to the WKPageUIClient.
34018         * UIProcess/API/qt/qwkpage.cpp:
34019         (QWKPage::QWKPage): Initialize the new callback to 0.
34020         * UIProcess/WebPageProxy.cpp:
34021         (WebKit::WebPageProxy::didReceiveMessage): Handle ContentsSizeChanged message. Calls contetsSizeChanged.
34022         (WebKit::WebPageProxy::contentsSizeChanged): Added. Propagate the event to the the UI client.
34023         * UIProcess/WebPageProxy.h:
34024         * UIProcess/WebUIClient.cpp:
34025         (WebKit::WebUIClient::contentsSizeChanged): Added. Propagate the event forward to the WKPageUIClient.
34026         * UIProcess/WebUIClient.h:
34027         * WebProcess/WebCoreSupport/WebChromeClient.cpp:
34028         (WebKit::WebChromeClient::contentsSizeChanged): Implemented.
34029
34030 2010-08-16  Balazs Kelemen  <kb@inf.u-szeged.hu>
34031
34032         Unreviewed Qt WebKit2 build fix.
34033
34034         * UIProcess/qt/WebContextQt.cpp:
34035         (WebKit::WebContext::platformSetUpWebProcess): Added empty stub implementation.
34036         * WebKit2.pro: Enumerate new files, include WebKit.pri for correct define macro set.
34037
34038 2010-08-15  Dan Bernstein  <mitz@apple.com>
34039
34040         Revised build fix from r65363 based on suggestion from Darin Adler.
34041
34042         * UIProcess/API/C/WKArray.h: Include stddef.h.
34043         * UIProcess/API/C/WKBase.h: Uninclude ctype.h.
34044         * UIProcess/API/C/WKData.h: Include stddef.h.
34045         * UIProcess/API/C/WKDictionary.h: Ditto.
34046
34047 2010-08-14  Dan Bernstein  <mitz@apple.com>
34048
34049         Reviewed by Anders Carlsson in Sweden.
34050
34051         Clean build of WebKitTestRunner fails with “'size_t' has not been declared” in WKArray.h
34052         https://bugs.webkit.org/show_bug.cgi?id=44005
34053
34054         * UIProcess/API/C/WKBase.h: Include ctype.h.
34055
34056 2010-08-13  Sam Weinig  <sam@webkit.org>
34057
34058         Fix build.
34059
34060         * WebKit2.xcodeproj/project.pbxproj: Make WKDictionary.h public.
34061
34062 2010-08-13  Sam Weinig  <sam@webkit.org>
34063
34064         Reviewed by Brady Eidson.
34065
34066         Pass values map to willSubmitForm in WebKit2 API
34067         Part of <rdar://problem/8255932>
34068         https://bugs.webkit.org/show_bug.cgi?id=43995
34069
34070         * Platform/CoreIPC/ArgumentCoders.h:
34071         (CoreIPC::):
34072         Add overload for std::pair.
34073
34074         * Shared/ImmutableDictionary.h:
34075         (WebKit::ImmutableDictionary::adopt):
34076         Fix function signature by removing size parameter.
34077
34078         * UIProcess/API/C/WKPage.h:
34079         Add dictionary parameter to callback.
34080
34081         * UIProcess/WebFormClient.cpp:
34082         (WebKit::WebFormClient::willSubmitForm):
34083         Create an ImmutableDictionary from the vector of string pairs.
34084
34085         * UIProcess/WebFormClient.h:
34086         * UIProcess/WebPageProxy.cpp:
34087         (WebKit::WebPageProxy::didReceiveMessage):
34088         (WebKit::WebPageProxy::willSubmitForm):
34089         * UIProcess/WebPageProxy.h:
34090         * WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
34091         (WebKit::WebFrameLoaderClient::dispatchWillSubmitForm):
34092         Plumb through the values vector.
34093
34094 2010-08-13  Sam Weinig  <sam@webkit.org>
34095
34096         Reviewed by Brady Eidson.
34097
34098         Add dictionary API type
34099         https://bugs.webkit.org/show_bug.cgi?id=43990
34100
34101         Add an immutable dictionary type (WKStringRef -> WKTypeRef).
34102
34103         * Shared/APIObject.h:
34104         (WebKit::APIObject::):
34105         Add new APIType.
34106
34107         * Shared/ImmutableDictionary.cpp: Added.
34108         (WebKit::ImmutableDictionary::ImmutableDictionary):
34109         (WebKit::ImmutableDictionary::~ImmutableDictionary):
34110         * Shared/ImmutableDictionary.h: Added.
34111         (WebKit::ImmutableDictionary::create):
34112         (WebKit::ImmutableDictionary::adopt):
34113         (WebKit::ImmutableDictionary::get):
34114         (WebKit::ImmutableDictionary::size):
34115         (WebKit::ImmutableDictionary::):
34116         (WebKit::ImmutableDictionary::type):
34117         Add basic implementation
34118
34119         * UIProcess/API/C/WKAPICast.h:
34120         (WebKit::):
34121         Add new mappings.
34122
34123         * UIProcess/API/C/WKBase.h:
34124         Add new opaque type.
34125
34126         * UIProcess/API/C/WKDictionary.cpp: Added.
34127         (WKDictionaryGetTypeID):
34128         (WKDictionaryGetItemForKey):
34129         (WKDictionaryGetSize):
34130         (WKDictionaryRetain):
34131         (WKDictionaryRelease):
34132         * UIProcess/API/C/WKDictionary.h: Added.
34133         Add API wrappings.
34134     
34135         * UIProcess/API/C/WebKit2.h:
34136         Add missing public headers.
34137
34138         * WebKit2.xcodeproj/project.pbxproj:
34139         * win/WebKit2.vcproj:
34140         * win/WebKit2Generated.make:
34141         Add new files.
34142
34143 2010-08-13  Sam Weinig  <sam@webkit.org>
34144
34145         Reviewed by Jon Honeycutt.
34146
34147         Add form submission listener to WebKit2
34148         Part of <rdar://problem/8255932>
34149         https://bugs.webkit.org/show_bug.cgi?id=43947
34150
34151         * Shared/APIObject.h:
34152         Add TypeFormSubmissionListener APIType.
34153         
34154         * Shared/CoreIPCSupport/WebPageProxyMessageKinds.h:
34155         Add WillSubmitForm message kind.
34156
34157         * UIProcess/API/C/WKAPICast.h:
34158         Add new mappings for WKFormSubmissionListenerRef -> WebFormSubmissionListener
34159
34160         * UIProcess/API/C/WKBase.h:
34161         Add OpaqueWKFormSubmissionListener and rename the other opaque types to match.
34162
34163         * UIProcess/API/C/WKFormSubmissionListener.cpp: Added.
34164         (WKFormSubmissionListenerGetTypeID):
34165         (WKFormSubmissionListenerContinue):
34166         (WKFormSubmissionListenerRetain):
34167         (WKFormSubmissionListenerRelease):
34168         * UIProcess/API/C/WKFormSubmissionListener.h: Added.
34169         Add C wrapper for WebFormSubmissionListener.
34170
34171         * UIProcess/API/C/WKPage.cpp:
34172         (WKPageSetPageFormClient):
34173         * UIProcess/API/C/WKPage.h:
34174         Add WKPageFormClient with willSubmitForm callback. Additional callbacks will be added as
34175         needed.
34176
34177         * UIProcess/API/C/WebKit2.h:
34178         Add include for WKFormSubmissionListener.h
34179
34180         * UIProcess/WebFormClient.cpp: Added.
34181         (WebKit::WebFormClient::WebFormClient):
34182         (WebKit::WebFormClient::initialize):
34183         (WebKit::WebFormClient::willSubmitForm):
34184         * UIProcess/WebFormClient.h: Added.
34185         Add client for form related delagations.
34186
34187         * UIProcess/WebFormSubmissionListenerProxy.cpp: Added.
34188         (WebKit::WebFormSubmissionListenerProxy::WebFormSubmissionListenerProxy):
34189         (WebKit::WebFormSubmissionListenerProxy::continueSubmission):
34190         * UIProcess/WebFormSubmissionListenerProxy.h: Added.
34191         (WebKit::WebFormSubmissionListenerProxy::create):
34192         (WebKit::WebFormSubmissionListenerProxy::type):
34193         * UIProcess/WebFrameListenerProxy.cpp: Copied from UIProcess/WebFramePolicyListenerProxy.cpp.
34194         Add new type of listener for form submissions. It inherits from the new base class
34195         for listeners, WebFrameListenerProxy.
34196
34197         (WebKit::WebFrameListenerProxy::WebFrameListenerProxy):
34198         (WebKit::WebFrameListenerProxy::~WebFrameListenerProxy):
34199         (WebKit::WebFrameListenerProxy::invalidate):
34200         (WebKit::WebFrameListenerProxy::receivedPolicyDecision):
34201         * UIProcess/WebFrameListenerProxy.h: Copied from UIProcess/WebFramePolicyListenerProxy.h.
34202         Move logic that would have to be shared between WebFramePolicyListenerProxy and
34203         WebFormSubmissionListenerProxy into shared base class.
34204
34205         * UIProcess/WebFramePolicyListenerProxy.cpp:
34206         (WebKit::WebFramePolicyListenerProxy::WebFramePolicyListenerProxy):
34207         * UIProcess/WebFramePolicyListenerProxy.h:
34208         (WebKit::WebFramePolicyListenerProxy::create):
34209         (WebKit::WebFramePolicyListenerProxy::type):
34210         Move to inheriting from WebFrameListenerProxy.
34211
34212         * UIProcess/WebFrameProxy.cpp:
34213         (WebKit::WebFrameProxy::disconnect):
34214         (WebKit::WebFrameProxy::receivedPolicyDecision):
34215         (WebKit::WebFrameProxy::setUpPolicyListenerProxy):
34216         (WebKit::WebFrameProxy::setUpFormSubmissionListenerProxy):
34217         * UIProcess/WebFrameProxy.h:
34218         Change listener functions to act on WebFrameListenerProxys and add setUpFormSubmissionListenerProxy.
34219
34220         * UIProcess/WebPageProxy.cpp:
34221         (WebKit::WebPageProxy::initializeFormClient):
34222         (WebKit::WebPageProxy::didReceiveMessage):
34223         (WebKit::WebPageProxy::willSubmitForm):
34224         * UIProcess/WebPageProxy.h:
34225         Plumb through willSubmitForm call as we do with the other listeners.
34226
34227         * WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
34228         (WebKit::WebFrameLoaderClient::dispatchWillSubmitForm):
34229         Ditto.
34230
34231         * WebKit2.xcodeproj/project.pbxproj: Add new files.
34232         * win/WebKit2.vcproj: Add new files.
34233         * win/WebKit2Generated.make: Ditto.
34234
34235 2010-08-13  Gavin Barraclough  <barraclough@apple.com>
34236
34237         Reviewed by Sam Weinig
34238
34239         Unify UString::UTF8String() & String::utf8() methods,
34240         remove UString::cost() & make atArrayIndex a free function.
34241
34242         * WebProcess/Plugins/JSNPObject.cpp:
34243         (WebKit::npIdentifierFromIdentifier):
34244         * WebProcess/Plugins/NPJSObject.cpp:
34245         (WebKit::NPJSObject::enumerate):
34246         * WebProcess/Plugins/NPRuntimeObjectMap.cpp:
34247         (WebKit::NPRuntimeObjectMap::convertJSValueToNPVariant):
34248
34249 2010-08-12  Sheriff Bot  <webkit.review.bot@gmail.com>
34250
34251         Unreviewed, rolling out r65295.
34252         http://trac.webkit.org/changeset/65295
34253         https://bugs.webkit.org/show_bug.cgi?id=43950
34254
34255         It broke 4 sputnik tests (Requested by Ossy on #webkit).
34256
34257         * WebProcess/Plugins/JSNPObject.cpp:
34258         (WebKit::npIdentifierFromIdentifier):
34259         * WebProcess/Plugins/NPJSObject.cpp:
34260         (WebKit::NPJSObject::enumerate):
34261         * WebProcess/Plugins/NPRuntimeObjectMap.cpp:
34262         (WebKit::NPRuntimeObjectMap::convertJSValueToNPVariant):
34263
34264 2010-08-12  Gavin Barraclough  <barraclough@apple.com>
34265
34266         Reviewed by Sam Weinig
34267
34268         Unify UString::UTF8String() & String::utf8() methods,
34269         remove UString::cost() & make atArrayIndex a free function.
34270
34271         * WebProcess/Plugins/JSNPObject.cpp:
34272         (WebKit::npIdentifierFromIdentifier):
34273         * WebProcess/Plugins/NPJSObject.cpp:
34274         (WebKit::NPJSObject::enumerate):
34275         * WebProcess/Plugins/NPRuntimeObjectMap.cpp:
34276         (WebKit::NPRuntimeObjectMap::convertJSValueToNPVariant):
34277
34278 2010-08-12  Maciej Stachowiak  <mjs@apple.com>
34279
34280         Reviewed by Sam Weinig.
34281
34282         WebKit2 crashes when WebFrame outlives WebPage
34283         https://bugs.webkit.org/show_bug.cgi?id=43939
34284
34285         * WebProcess/WebCoreSupport/WebChromeClient.h:
34286         (WebKit::WebChromeClient::page): Add this method, to allow
34287         WebFrame to retrieve its WebPage following WebCore pointers.
34288         * WebProcess/WebPage/WebFrame.cpp:
34289         (WebKit::WebFrame::WebFrame): Do not initialize m_page (it's gone).
34290         (WebKit::WebFrame::page): Don't use the data member, get it from
34291         WebCore.
34292         (WebKit::WebFrame::invalidate): Use method to get page() and null check.
34293         (WebKit::WebFrame::isMainFrame): ditto
34294         * WebProcess/WebPage/WebFrame.h:
34295
34296 2010-08-12  Jon Honeycutt  <jhoneycutt@apple.com>
34297
34298         WebKit2 needs to initialize SafariTheme
34299         https://bugs.webkit.org/show_bug.cgi?id=43901
34300
34301         Reviewed by Sam Weinig.
34302
34303         * WebProcess/win/WebProcessMainWin.cpp:
34304         (WebKit::initializeSafariTheme):
34305         Copied from old WebKit.
34306         (WebKit::WebProcessMain):
34307         If we're using SafariTheme, initialize it.
34308
34309 2010-08-12  Jon Honeycutt  <jhoneycutt@apple.com>
34310
34311         WebKitTestRunner needs to run tests without using native controls
34312         https://bugs.webkit.org/show_bug.cgi?id=43772
34313
34314         Reviewed by Sam Weinig.
34315
34316         * Shared/CoreIPCSupport/WebProcessMessageKinds.h:
34317         (WebProcessMessage::):
34318         Add a new message.
34319
34320         * UIProcess/API/C/win/WKContextPrivateWin.h: Added.
34321         Declare WKContextSetShouldPaintNativeControls().
34322
34323         * UIProcess/API/C/win/WKContextWin.cpp: Added.
34324         (WKContextSetShouldPaintNativeControls):
34325         Call the WebContext's setShouldPaintNativeControls().
34326
34327         * UIProcess/WebContext.cpp:
34328         (WebKit::WebContext::WebContext):
34329         Initialize m_shouldPaintNativeControls.
34330         (WebKit::WebContext::ensureWebProcess):
34331         If we created a web process, call platformSetUpWebProcess().
34332
34333         * UIProcess/WebContext.h:
34334         Declare new functions and a member to store whether we should paint
34335         native controls.
34336
34337         * UIProcess/mac/WebContextMac.mm:
34338         (WebKit::WebContext::platformSetUpWebProcess):
34339         Stubbed.
34340
34341         * UIProcess/win/WebContextWin.cpp:
34342         (WebKit::WebContext::setShouldPaintNativeControls):
34343         Set m_shouldPaintNativeControls. If we have a valid web process, send a
34344         SetShouldPaintNativeControls message.
34345         (WebKit::WebContext::platformSetUpWebProcess):
34346         Send a SetShouldPaintNativeControls message.
34347
34348         * WebProcess/WebProcess.cpp:
34349         (WebKit::WebProcess::didReceiveMessage):
34350         If this is a SetShouldPaintNativeControls message, decode the argument,
34351         and call Settings::setShouldPaintNativeControls().
34352
34353         * win/WebKit2.vcproj:
34354         Add WKContextPrivateWin.h and WKContextWin.cpp to project.
34355
34356         * win/WebKit2Generated.make:
34357         Copy WKContextPrivateWin.h.
34358
34359 2010-08-11  Sam Weinig  <sam@webkit.org>
34360
34361         Reviewed by Gavin Barraclough.
34362
34363         Add SPI to stop loading from the InjectedBundle.
34364
34365         * WebProcess/InjectedBundle/API/c/WKBundlePage.cpp:
34366         (WKBundlePageStopLoading):
34367         * WebProcess/InjectedBundle/API/c/WKBundlePagePrivate.h:
34368         * WebProcess/WebPage/WebPage.h:
34369
34370 2010-08-11  Sam Weinig  <sam@webkit.org>
34371
34372         Reviewed by Gavin Barraclough.
34373
34374         WKPageStopLoading always asserts
34375
34376         * WebProcess/WebPage/WebPage.cpp:
34377         (WebKit::WebPage::didReceiveMessage): Switch break to return, break made us
34378         hit the ASSERT_NOT_REACHED at the end of the function.
34379
34380 2010-08-11  Balazs Kelemen  <kb@inf.u-szeged.hu>
34381
34382         Unreviewed build fix.
34383
34384         [Qt] Update WebKit2 build environment, add stub implementation of SharedMemory.
34385
34386         * DerivedSources.pro:
34387         * Platform/qt/SharedMemoryQt.cpp: Added.
34388         (WebKit::SharedMemory::Handle::Handle):
34389         (WebKit::SharedMemory::Handle::~Handle):
34390         (WebKit::SharedMemory::Handle::encode):
34391         (WebKit::SharedMemory::Handle::decode):
34392         (WebKit::SharedMemory::create):
34393         (WebKit::SharedMemory::~SharedMemory):
34394         (WebKit::SharedMemory::createHandle):
34395         (WebKit::SharedMemory::systemPageSize):
34396         * WebKit2.pro:
34397         * WebKit2Prefix.h:
34398
34399 2010-08-11  Mark Rowe  <mrowe@apple.com>
34400
34401         Build fix.  Update references to StringHash.h.
34402
34403         * Shared/CommandLine.h:
34404         * UIProcess/WebContext.h:
34405         * WebProcess/Plugins/Netscape/NetscapePlugin.h:
34406         * WebProcess/win/WebProcessMainWin.cpp:
34407
34408 2010-08-10  Darin Adler  <darin@apple.com>
34409
34410         Reviewed by Sam Weinig.
34411
34412         Add leakRef and clear to all RefPtr variants
34413         https://bugs.webkit.org/show_bug.cgi?id=42389
34414
34415         * UIProcess/API/cpp/WKRetainPtr.h: Changed all uses of "template <...>" to
34416         "template<...>". Defined many of the inlined functions outside the class
34417         definition, to avoid style checker warnings about multiple statements on
34418         a single line and for slightly better clarity of the class definition itself.
34419         Renamed releaseRef to leakRef. Added a releaseRef that calls leakRef so we
34420         don't have to rename all callers at once. Added a clear function.
34421
34422 2010-08-10  Balazs Kelemen  <kb@inf.u-szeged.hu>
34423
34424         Reviewed by Antonio Gomes.
34425
34426         [Qt] Build WebKit2 into a static lib
34427
34428         https://bugs.webkit.org/show_bug.cgi?id=43621
34429
34430         * WebKit2.pri: Added. Defined addWebKit2Lib function that defines how to link against the static lib.
34431         * WebKit2.pro:  Build specification for the WebKit2 framework.
34432         * WebProcess.pro: Copied from WebKit2/WebKit2.pro. Build specification for the WebProcess binary.
34433
34434 2010-08-09  Sam Weinig  <sam@webkit.org>
34435
34436         Reviewed by Geoffrey Garen.
34437
34438         Add zoom support for injected bundle
34439         https://bugs.webkit.org/show_bug.cgi?id=43759
34440
34441         Add SPI to change the zoom factor for a page.
34442
34443         * WebProcess/InjectedBundle/API/c/WKBundleAPICast.h:
34444         (toZoomMode):
34445         * WebProcess/InjectedBundle/API/c/WKBundlePage.cpp:
34446         (WKBundlePageGetZoomFactor):
34447         (WKBundlePageSetZoomFactor):
34448         (WKBundlePageSetZoomMode):
34449         * WebProcess/InjectedBundle/API/c/WKBundlePagePrivate.h:
34450         * WebProcess/WebPage/WebPage.cpp:
34451         (WebKit::WebPage::zoomFactor):
34452         (WebKit::WebPage::setZoomFactor):
34453         (WebKit::WebPage::setZoomMode):
34454         * WebProcess/WebPage/WebPage.h:
34455
34456 2010-08-06  Gavin Barraclough  <barraclough@apple.com>
34457
34458         Rubber stamped by Sam Weinig
34459
34460         Bug 43594 - Add string forwards to Forward.h
34461         This allows us to remove forward declarations for these classes from
34462         WebCore/WebKit (a step in moving these class from WebCore:: to WTF::).
34463
34464         * UIProcess/PageClient.h:
34465         * UIProcess/VisitedLinkProvider.h:
34466         * UIProcess/WebContextInjectedBundleClient.h:
34467         * UIProcess/WebFrameProxy.h:
34468         * UIProcess/WebHistoryClient.h:
34469         * UIProcess/WebLoaderClient.h:
34470         * UIProcess/WebPolicyClient.h:
34471         * UIProcess/WebProcessProxy.h:
34472         * UIProcess/WebUIClient.h:
34473         * UIProcess/win/WebView.h:
34474         * WebProcess/InjectedBundle/InjectedBundlePageEditorClient.h:
34475         * WebProcess/InjectedBundle/InjectedBundlePageLoaderClient.h:
34476         * WebProcess/InjectedBundle/InjectedBundlePageUIClient.h:
34477         * WebProcess/Plugins/NPRuntimeObjectMap.h:
34478         * WebProcess/Plugins/Netscape/NetscapePluginStream.h:
34479         * WebProcess/Plugins/PluginController.h:
34480         * WebProcess/WebPage/WebFrame.h:
34481         * WebProcess/WebPage/WebPage.h:
34482         * WebProcess/WebProcess.h:
34483
34484 2010-08-09  Balazs Kelemen  <kb@inf.u-szeged.hu>
34485
34486         Reviewed by Kenneth Rohde Christiansen.
34487
34488         [Qt] No need for PageClientImpl
34489
34490         https://bugs.webkit.org/show_bug.cgi?id=43728
34491
34492         Remove PageClientImpl, take the implementation of WebKit::PageClient into QWKPagePrivate.
34493
34494         * UIProcess/API/qt/qwkpage.cpp:
34495         (QWKPagePrivate::QWKPagePrivate):
34496         (QWKPagePrivate::toolTipChanged):
34497         * UIProcess/API/qt/qwkpage_p.h:
34498         (QWKPagePrivate::pageDidEnterAcceleratedCompositing):
34499         (QWKPagePrivate::pageDidLeaveAcceleratedCompositing):
34500         (QWKPagePrivate::processDidExit):
34501         (QWKPagePrivate::processDidRevive):
34502         (QWKPagePrivate::setCursor):
34503         (QWKPagePrivate::takeFocus):
34504
34505 2010-08-07  Sam Weinig  <sam@webkit.org>
34506
34507         Reviewed by Anders Carlsson.
34508
34509         WebKitTestRunner needs to print onunload handler information
34510         <rdar://problem/8213831>
34511         https://bugs.webkit.org/show_bug.cgi?id=42703
34512
34513         Add SPI to get the number of pending unload events.
34514
34515         * WebProcess/InjectedBundle/API/c/WKBundleFrame.cpp:
34516         (WKBundleFrameGetPendingUnloadCount):
34517         * WebProcess/InjectedBundle/API/c/WKBundleFramePrivate.h:
34518         * WebProcess/WebPage/WebFrame.cpp:
34519         (WebKit::WebFrame::pendingUnloadCount):
34520         * WebProcess/WebPage/WebFrame.h:
34521
34522 2010-08-07  Sam Weinig  <sam@webkit.org>
34523
34524         Reviewed by Anders Carlsson.
34525
34526         Add additional loader client functions need to complete WebKitTestRunner
34527         https://bugs.webkit.org/show_bug.cgi?id=43684
34528
34529         * WebProcess/InjectedBundle/API/c/WKBundlePage.h:
34530         * WebProcess/InjectedBundle/InjectedBundlePageLoaderClient.cpp:
34531         (WebKit::InjectedBundlePageLoaderClient::didCancelClientRedirectForFrame):
34532         (WebKit::InjectedBundlePageLoaderClient::willPerformClientRedirectForFrame):
34533         (WebKit::InjectedBundlePageLoaderClient::didChangeLocationWithinPageForFrame):
34534         (WebKit::InjectedBundlePageLoaderClient::didFinishDocumentLoadForFrame):
34535         (WebKit::InjectedBundlePageLoaderClient::didHandleOnloadEventsForFrame):
34536         (WebKit::InjectedBundlePageLoaderClient::didDisplayInsecureContentForFrame):
34537         (WebKit::InjectedBundlePageLoaderClient::didRunInsecureContentForFrame):
34538         * WebProcess/InjectedBundle/InjectedBundlePageLoaderClient.h:
34539         * WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
34540         (WebKit::WebFrameLoaderClient::dispatchDidHandleOnloadEvents):
34541         (WebKit::WebFrameLoaderClient::dispatchDidCancelClientRedirect):
34542         (WebKit::WebFrameLoaderClient::dispatchWillPerformClientRedirect):
34543         (WebKit::WebFrameLoaderClient::dispatchDidChangeLocationWithinPage):
34544         (WebKit::WebFrameLoaderClient::dispatchDidFinishDocumentLoad):
34545         (WebKit::WebFrameLoaderClient::didDisplayInsecureContent):
34546         (WebKit::WebFrameLoaderClient::didRunInsecureContent):
34547
34548 2010-08-07  Sam Weinig  <sam@webkit.org>
34549
34550         Another fix for the windows build.
34551
34552         * WebProcess/Plugins/Netscape/NetscapePlugin.cpp:
34553         (WebKit::NetscapePlugin::isAcceleratedCompositingEnabled):
34554
34555 2010-08-07  Sam Weinig  <sam@webkit.org>
34556
34557         Fix windows build.
34558
34559         * WebProcess/Plugins/PluginView.cpp:
34560         (WebKit::PluginView::platformLayer):
34561         * WebProcess/Plugins/PluginView.h:
34562
34563 2010-08-07  Sam Weinig  <sam@webkit.org>
34564
34565         Reviewed by Anders Carlsson.
34566
34567         WebKitTestRunner needs GCController
34568         <rdar://problem/8213834>
34569         https://bugs.webkit.org/show_bug.cgi?id=42701
34570
34571         * WebProcess/InjectedBundle/API/c/WKBundle.cpp:
34572         (WKBundleGarbageCollectJavaScriptObjects):
34573         (WKBundleGarbageCollectJavaScriptObjectsOnAlternateThreadForDebugging):
34574         (WKBundleGetJavaScriptObjectsCount):
34575         * WebProcess/InjectedBundle/API/c/WKBundlePrivate.h:
34576         * WebProcess/InjectedBundle/InjectedBundle.cpp:
34577         (WebKit::InjectedBundle::garbageCollectJavaScriptObjects):
34578         (WebKit::InjectedBundle::garbageCollectJavaScriptObjectsOnAlternateThreadForDebugging):
34579         (WebKit::InjectedBundle::javaScriptObjectsCount):
34580         * WebProcess/InjectedBundle/InjectedBundle.h:
34581
34582 2010-08-07  Anders Carlsson  <andersca@apple.com>
34583
34584         Reviewed by Sam Weinig.
34585
34586         CA drawing model support for Mac Plugins
34587         https://bugs.webkit.org/show_bug.cgi?id=43678
34588         <rdar://problem/7929701>
34589
34590         * WebProcess/Plugins/Netscape/NetscapeBrowserFuncs.cpp:
34591         (WebKit::NPN_GetValue):
34592         Handle WKNVSupportsCompositingCoreAnimationPluginsBool and 
34593         NPNVsupportsCoreAnimationBool and return true if accelerated compositing is enabled.
34594
34595         * WebProcess/Plugins/Netscape/NetscapePlugin.cpp:
34596         (WebKit::NetscapePlugin::isAcceleratedCompositingEnabled):
34597         Call PluginController::isAcceleratedCompositingEnabled.
34598
34599         * WebProcess/Plugins/Netscape/mac/NetscapePluginMac.mm:
34600         (WebKit::NetscapePlugin::platformPostInitialize):
34601         If the plug-in uses the Core Animation drawing model, ask it for its layer.
34602
34603         (WebKit::NetscapePlugin::platformPaint):
34604         Don't send draw events if the Core Animation drawing model is used.
34605
34606         (WebKit::NetscapePlugin::pluginLayer):
34607         Return the plug-in layer.
34608
34609         * WebProcess/Plugins/Plugin.h:
34610         Add a pluginLayer pure virtual member function.
34611
34612         * WebProcess/Plugins/PluginController.h:
34613         Add an isAcceleratedCompositingEnabled pure virtual member function.
34614
34615         * WebProcess/Plugins/PluginView.cpp:
34616         (WebKit::PluginView::initializePlugin):
34617         If the plug-in has a layer, enter compositing mode.
34618
34619         (WebKit::PluginView::platformLayer):
34620         Ask the plug-in for its layer.
34621
34622         (WebKit::PluginView::isAcceleratedCompositingEnabled):
34623         Call Settings::acceleratedCompositingEnabled.
34624
34625         * WebProcess/Plugins/PluginView.h:
34626
34627 2010-08-06  Sam Weinig  <sam@webkit.org>
34628
34629         Reviewed by Anders Carlsson.
34630
34631         Delete key doesn't go Back in WebKit2
34632         <rdar://problem/8272978>
34633         https://bugs.webkit.org/show_bug.cgi?id=43665
34634
34635         - Adds support for delete key going back (mac only for now)
34636         - Adds support for command-left/command right going back/forward
34637         - Flesh out scrolling due to arrow keys on the mac to match old webkit.
34638         - Made performDefaultBehaviorForKeyEvent platform specific and added
34639           a boolean return value which will be used later to inform the UI process
34640           about what events have been processed.
34641
34642         * Shared/CoreIPCSupport/WebPageProxyMessageKinds.h:
34643         (WebPageProxyMessage::):
34644         * UIProcess/API/mac/WKView.mm:
34645         (-[WKView _wantsKeyDownForEvent:]):
34646         * UIProcess/WebPageProxy.cpp:
34647         (WebKit::WebPageProxy::didReceiveSyncMessage):
34648         * WebProcess/WebPage/WebBackForwardListProxy.cpp:
34649         (WebKit::WebBackForwardListProxy::backItem):
34650         (WebKit::WebBackForwardListProxy::forwardItem):
34651         * WebProcess/WebPage/WebPage.cpp:
34652         (WebKit::WebPage::keyEvent):
34653         * WebProcess/WebPage/WebPage.h:
34654         * WebProcess/WebPage/mac/WebPageMac.mm:
34655         (WebKit::scroll):
34656         (WebKit::WebPage::performDefaultBehaviorForKeyEvent):
34657         * WebProcess/WebPage/qt/WebPageQt.cpp:
34658         (WebKit::scroll):
34659         (WebKit::WebPage::performDefaultBehaviorForKeyEvent):
34660         * WebProcess/WebPage/win/WebPageWin.cpp:
34661         (WebKit::scroll):
34662         (WebKit::WebPage::performDefaultBehaviorForKeyEvent):
34663
34664 2010-08-07  Sheriff Bot  <webkit.review.bot@gmail.com>
34665
34666         Unreviewed, rolling out r64904.
34667         http://trac.webkit.org/changeset/64904
34668         https://bugs.webkit.org/show_bug.cgi?id=43671
34669
34670         Broke the Qt Windows builders. (Requested by bbandix on
34671         #webkit).
34672
34673         * WebKit2.pri: Removed.
34674         * WebKit2.pro:
34675         * WebProcess.pro: Removed.
34676
34677 2010-08-07  Balazs Kelemen  <kb@inf.u-szeged.hu>
34678
34679         Reviewed by Eric Seidel.
34680
34681         NPAPI headers should be included through npruntime_internal.h
34682
34683         https://bugs.webkit.org/show_bug.cgi?id=43620
34684
34685         * DerivedSources.pro:
34686         * WebProcess/Plugins/NPJSObject.h:
34687         * WebProcess/Plugins/NPRuntimeUtilities.h:
34688         * WebProcess/Plugins/Netscape/NetscapePluginStream.h:
34689
34690 2010-08-07  Balazs Kelemen  <kb@inf.u-szeged.hu>
34691
34692         Reviewed by Eric Seidel.
34693
34694         [Qt] Build WebKit2 into a static lib
34695
34696         https://bugs.webkit.org/show_bug.cgi?id=43621
34697
34698         * WebKit2.pri: Added. Defined addWebKit2Lib function that defines how to link against the static lib.
34699         * WebKit2.pro:  Build specification for the WebKit2 framework.
34700         * WebProcess.pro: Copied from WebKit2/WebKit2.pro. Build specification for the WebProcess binary.
34701
34702 2010-08-05  Jon Honeycutt  <jhoneycutt@apple.com>
34703
34704         WebKitTestRunner needs to be able to set the font smoothing type
34705         https://bugs.webkit.org/show_bug.cgi?id=43406
34706
34707         Reviewed by Adam Roben.
34708
34709         * Shared/FontSmoothingLevel.h: Added.
34710         (WebKit::):
34711
34712         * Shared/WebPreferencesStore.cpp:
34713         (WebKit::WebPreferencesStore::WebPreferencesStore):
34714         Initialize fontSmoothingLevel.
34715         (WebKit::WebPreferencesStore::swap):
34716         Copy fontSmoothingLevel.
34717
34718         * Shared/WebPreferencesStore.h:
34719         (WebKit::WebPreferencesStore::encode):
34720         Encode fontSmoothingLevel.
34721         (WebKit::WebPreferencesStore::decode):
34722         Decode it.
34723
34724         * UIProcess/API/C/WKPreferencesPrivate.cpp: Added.
34725         (WKPreferencesSetFontSmoothingLevel):
34726         Get the font smoothing level from the WKFontSmoothingLevel, and call
34727         WebPreferences::setFontSmoothingLevel().
34728         (WKPreferencesGetFontSmoothingLevel):
34729         Get the font smoothing level from WebPreferences, and translate it to a
34730         WKFontSmoothingLevel.
34731
34732         * UIProcess/API/C/WKPreferencesPrivate.h: Added.
34733         Declare the font smoothing levels, and declare functions to get and set
34734         the level.
34735
34736         * UIProcess/WebPreferences.cpp:
34737         (WebKit::WebPreferences::setFontSmoothingLevel):
34738         Set fontSmoothingLevel and call update().
34739         (WebKit::WebPreferences::fontSmoothingLevel):
34740         Return the level.
34741
34742         * UIProcess/WebPreferences.h:
34743         Declare getter and setter for fontSmoothingLevel.
34744
34745         * WebKit2.xcodeproj/project.pbxproj:
34746         Add new files to project.
34747
34748         * WebProcess/WebPage/WebPage.cpp:
34749         (WebKit::WebPage::preferencesDidChange):
34750         Call platformPreferencesDidChange().
34751
34752         * WebProcess/WebPage/WebPage.h:
34753         Declare platformPreferencesDidChange().
34754
34755         * WebProcess/WebPage/mac/WebPageMac.mm:
34756         (WebKit::WebPage::platformPreferencesDidChange):
34757         Stubbed.
34758
34759         * WebProcess/WebPage/qt/WebPageQt.cpp:
34760         (WebKit::WebPage::platformPreferencesDidChange):
34761         Stubbed.
34762
34763         * WebProcess/WebPage/win/WebPageWin.cpp:
34764         (WebKit::WebPage::platformPreferencesDidChange):
34765         On CG platforms, call wkSetFontSmoothingLevel(). This matches the code
34766         in old WebKit's WebPreferences. Set the font rendering mode to either
34767         normal (CG) or alternative (GDI) based on the font smoothing level. This
34768         matches what was done in old WebKit's WebView.
34769
34770         * win/WebKit2.vcproj:
34771         Add FontSmoothingLevel.h and WKPreferencesPrivate.{h,cpp} to project.
34772
34773         * win/WebKit2Generated.make:
34774         Copy WKPreferencesPrivate.h.
34775
34776 2010-08-06  Anders Carlsson  <andersca@apple.com>
34777
34778         Build fixes.
34779
34780         * Platform/win/SharedMemoryWin.cpp:
34781         (WebKit::SharedMemory::Handle::encode):
34782         (WebKit::SharedMemory::Handle::decode):
34783         * Shared/qt/UpdateChunk.cpp:
34784         (WebKit::UpdateChunk::encode):
34785         (WebKit::UpdateChunk::decode):
34786         * Shared/qt/UpdateChunk.h:
34787         * Shared/win/UpdateChunk.cpp:
34788         (WebKit::UpdateChunk::encode):
34789         (WebKit::UpdateChunk::decode):
34790         * Shared/win/UpdateChunk.h:
34791
34792 2010-08-06  Anders Carlsson  <andersca@apple.com>
34793
34794         Reviewed by Sam Weinig.
34795
34796         Change all ArgumentEncoder and ArgumentDecoder references to pointers
34797         https://bugs.webkit.org/show_bug.cgi?id=43651
34798
34799         * Platform/CoreIPC/ArgumentCoder.h:
34800         * Platform/CoreIPC/ArgumentDecoder.h:
34801         * Platform/CoreIPC/Arguments.h:
34802         * Platform/CoreIPC/Attachment.cpp:
34803         * Platform/CoreIPC/Attachment.h:
34804         * Platform/CoreIPC/mac/MachPort.h:
34805         * Platform/SharedMemory.h:
34806         * Platform/mac/SharedMemoryMac.cpp:
34807         * Shared/DrawingAreaBase.cpp:
34808         * Shared/DrawingAreaBase.h:
34809         * Shared/WebEvent.h:
34810         * Shared/WebNavigationDataStore.h:
34811         * Shared/WebPreferencesStore.h:
34812         * Shared/mac/UpdateChunk.cpp:
34813         * Shared/mac/UpdateChunk.h:
34814         * UIProcess/ChunkedUpdateDrawingAreaProxy.cpp:
34815         * UIProcess/ChunkedUpdateDrawingAreaProxy.h:
34816         * UIProcess/DrawingAreaProxy.h:
34817         * UIProcess/LayerBackedDrawingAreaProxy.cpp:
34818         * UIProcess/LayerBackedDrawingAreaProxy.h:
34819         * UIProcess/WebContext.cpp:
34820         * UIProcess/WebContext.h:
34821         * UIProcess/WebPageProxy.cpp:
34822         * UIProcess/WebPageProxy.h:
34823         * UIProcess/WebProcessProxy.cpp:
34824         * WebProcess/InjectedBundle/InjectedBundle.cpp:
34825         * WebProcess/InjectedBundle/InjectedBundle.h:
34826         * WebProcess/WebPage/ChunkedUpdateDrawingArea.cpp:
34827         * WebProcess/WebPage/ChunkedUpdateDrawingArea.h:
34828         * WebProcess/WebPage/DrawingArea.h:
34829         * WebProcess/WebPage/LayerBackedDrawingArea.cpp:
34830         * WebProcess/WebPage/LayerBackedDrawingArea.h:
34831         * WebProcess/WebPage/WebPage.cpp:
34832         * WebProcess/WebPage/WebPage.h:
34833         * WebProcess/WebProcess.cpp:
34834
34835 2010-08-06  Anders Carlsson  <andersca@apple.com>
34836
34837         Reviewed by Sam Weinig.
34838
34839         Don't try to allocate a vector unless we know the buffer can contain it
34840         https://bugs.webkit.org/show_bug.cgi?id=43647
34841
34842         * Platform/CoreIPC/ArgumentCoders.h:
34843         (CoreIPC::):
34844         Check that the argument decoder buffer actually can hold all the vector elements.
34845
34846         * Platform/CoreIPC/ArgumentDecoder.cpp:
34847         (CoreIPC::ArgumentDecoder::bufferIsLargeEnoughtToContain):
34848         Align the current position to the given alignment, add the size and check if the position is
34849         past the end of the buffer.
34850
34851         * Platform/CoreIPC/ArgumentDecoder.h:
34852         (CoreIPC::ArgumentDecoder::bufferIsLargeEnoughtToContain):
34853         Get the size and alignment and call the other bufferIsLargeEnoughtToContain overload.
34854
34855 2010-08-06  Anders Carlsson  <andersca@apple.com>
34856
34857         Reviewed by Adam Roben.
34858
34859         Detect invalid CoreIPC messages and call didReceiveInvalidMessage
34860         https://bugs.webkit.org/show_bug.cgi?id=43643
34861         <rdar://problem/7891069>
34862
34863         * Platform/CoreIPC/ArgumentDecoder.cpp:
34864         (CoreIPC::ArgumentDecoder::alignBufferPosition):
34865         If we can't correctly align the buffer position, mark the decoder as invalid.
34866
34867         * Platform/CoreIPC/ArgumentDecoder.h:
34868         (CoreIPC::ArgumentDecoder::isInvalid):
34869         Check if the argument decoder is valid.
34870
34871         (CoreIPC::ArgumentDecoder::markInvalid):
34872         Mark the argument decoder as invalid, by setting its buffer position past its end position.
34873
34874         * Platform/CoreIPC/Connection.cpp:
34875         (CoreIPC::Connection::dispatchMessages):
34876         Check if m_client is null before dispatching messages. If an argument decoder was marked invalid, call
34877         Connection::Client::didReceiveInvalidMessage.
34878
34879         * Platform/CoreIPC/Connection.h:
34880         (CoreIPC::Connection::Message::releaseArguments):
34881         Rename destroy to releaseArguments and make it return a PassOwnPtr.
34882
34883         * UIProcess/WebProcessProxy.cpp:
34884         (WebKit::WebProcessProxy::~WebProcessProxy):
34885         Call releaseArguments instead of destroy.
34886
34887         (WebKit::WebProcessProxy::didReceiveInvalidMessage):
34888         Kill the web process and invalidate its connection.
34889
34890         * WebProcess/WebProcess.cpp:
34891         (WebKit::WebProcess::didReceiveInvalidMessage):
34892         Don't do anything, if the UI process is sending invalid messages there's not much we can do.
34893
34894         * WebProcess/WebProcess.h:
34895
34896 2010-08-06  Anders Carlsson  <andersca@apple.com>
34897
34898         Reviewed by Adam Roben.
34899
34900         Add CoreIPC::MessageReceiver class
34901         https://bugs.webkit.org/show_bug.cgi?id=43637
34902
34903         * Platform/CoreIPC/Connection.h:
34904         (CoreIPC::Connection::MessageReceiver::~MessageReceiver):
34905         Add MessageReceiver class and make Client inherit from it.
34906
34907         (CoreIPC::Connection::MessageReceiver::didReceiveSyncMessage):
34908         Change didReceiveSyncMessage from being a pure virtual member function and make it
34909         assert by default instead.
34910
34911         * UIProcess/ChunkedUpdateDrawingAreaProxy.cpp:
34912         * UIProcess/ChunkedUpdateDrawingAreaProxy.h:
34913         Remove ChunkedUpdateDrawingAreaProxy::didReceiveSyncMessage.
34914
34915         * Shared/DrawingAreaBase.h:
34916         Include "Connection.h" instead.
34917
34918         * UIProcess/DrawingAreaProxy.h:
34919         (WebKit::DrawingAreaProxy::didReceiveSyncMessage):
34920         Change didReceiveSyncMessage from being a pure virtual member function and make it
34921         assert by default instead.
34922
34923         * WebProcess/WebProcess.cpp:
34924         * WebProcess/WebProcess.h:
34925         Remove didReceiveSyncMessage.
34926
34927 2010-08-06  Jessie Berlin  <jberlin@apple.com>
34928
34929         Roll out http://trac.webkit.org/changeset/64801, which broke the Safari Windows Build.
34930         Unreviewed.
34931
34932         * UIProcess/PageClient.h:
34933         * UIProcess/VisitedLinkProvider.h:
34934         * UIProcess/WebContextInjectedBundleClient.h:
34935         * UIProcess/WebFrameProxy.h:
34936         * UIProcess/WebHistoryClient.h:
34937         * UIProcess/WebLoaderClient.h:
34938         * UIProcess/WebPolicyClient.h:
34939         * UIProcess/WebProcessProxy.h:
34940         * UIProcess/WebUIClient.h:
34941         * UIProcess/win/WebView.h:
34942         * WebProcess/InjectedBundle/InjectedBundlePageEditorClient.h:
34943         * WebProcess/InjectedBundle/InjectedBundlePageLoaderClient.h:
34944         * WebProcess/InjectedBundle/InjectedBundlePageUIClient.h:
34945         * WebProcess/Plugins/NPRuntimeObjectMap.h:
34946         * WebProcess/Plugins/Netscape/NetscapePluginStream.h:
34947         * WebProcess/Plugins/PluginController.h:
34948         * WebProcess/WebPage/WebFrame.h:
34949         * WebProcess/WebPage/WebPage.h:
34950         * WebProcess/WebProcess.h:
34951
34952 2010-08-05  Sam Weinig  <sam@webkit.org>
34953
34954         Reviewed by Anders Carlsson.
34955
34956         Add form client for injected bundle code
34957         https://bugs.webkit.org/show_bug.cgi?id=43603
34958
34959         * WebKit2.xcodeproj/project.pbxproj:
34960         * WebProcess/InjectedBundle/API/c/WKBundlePage.cpp:
34961         (WKBundlePageSetFormClient):
34962         * WebProcess/InjectedBundle/API/c/WKBundlePage.h:
34963         * WebProcess/InjectedBundle/InjectedBundlePageFormClient.cpp: Added.
34964         (WebKit::InjectedBundlePageFormClient::InjectedBundlePageFormClient):
34965         (WebKit::InjectedBundlePageFormClient::initialize):
34966         (WebKit::InjectedBundlePageFormClient::textFieldDidBeginEditing):
34967         (WebKit::InjectedBundlePageFormClient::textFieldDidEndEditing):
34968         (WebKit::InjectedBundlePageFormClient::textDidChangeInTextField):
34969         (WebKit::InjectedBundlePageFormClient::textDidChangeInTextArea):
34970         * WebProcess/InjectedBundle/InjectedBundlePageFormClient.h: Added.
34971         * WebProcess/WebCoreSupport/WebEditorClient.cpp:
34972         (WebKit::WebEditorClient::textFieldDidBeginEditing):
34973         (WebKit::WebEditorClient::textFieldDidEndEditing):
34974         (WebKit::WebEditorClient::textDidChangeInTextField):
34975         (WebKit::WebEditorClient::textDidChangeInTextArea):
34976         * WebProcess/WebPage/WebPage.cpp:
34977         (WebKit::WebPage::initializeInjectedBundleFormClient):
34978         * WebProcess/WebPage/WebPage.h:
34979         (WebKit::WebPage::injectedBundleFormClient):
34980         * win/WebKit2.vcproj:
34981
34982 2010-08-05  Sam Weinig  <sam@webkit.org>
34983
34984         Reviewed by Anders Carlsson.
34985
34986         Add ability to get a JSValueRef for a node handle and a world
34987         https://bugs.webkit.org/show_bug.cgi?id=43591
34988
34989         - Add API to get a JSValueRef for a world, node and frame (the
34990           frame is currently necessary to pick the right globalObject for
34991           the node wrapper).
34992         - Add API to a JSGlobalContextRef for a world and a frame.
34993
34994         * WebProcess/InjectedBundle/API/c/WKBundleFrame.cpp:
34995         (WKBundleFrameGetJavaScriptContextForWorld):
34996         (WKBundleFrameGetJavaScriptWrapperForNodeForWorld):
34997         * WebProcess/InjectedBundle/API/c/WKBundleFrame.h:
34998         * WebProcess/InjectedBundle/API/c/WKBundleNodeHandle.h:
34999         * WebProcess/InjectedBundle/DOM/InjectedBundleNodeHandle.cpp:
35000         (WebKit::InjectedBundleNodeHandle::coreNode):
35001         * WebProcess/InjectedBundle/DOM/InjectedBundleNodeHandle.h:
35002         * WebProcess/InjectedBundle/InjectedBundleScriptWorld.cpp:
35003         (WebKit::InjectedBundleScriptWorld::coreWorld):
35004         * WebProcess/InjectedBundle/InjectedBundleScriptWorld.h:
35005         * WebProcess/WebPage/WebFrame.cpp:
35006         (WebKit::WebFrame::jsContext):
35007         (WebKit::WebFrame::jsContextForWorld):
35008         (WebKit::WebFrame::jsWrapperForWorld):
35009         * WebProcess/WebPage/WebFrame.h:
35010
35011 2010-08-05  Gavin Barraclough  <barraclough@apple.com>
35012
35013         Rubber stamped by Sam Weinig
35014
35015         Bug 43594 - Add string forwards to Forward.h
35016         This allows us to remove forward declarations for these classes from
35017         WebCore/WebKit (a step in moving these class from WebCore:: to WTF::).
35018
35019         * UIProcess/PageClient.h:
35020         * UIProcess/VisitedLinkProvider.h:
35021         * UIProcess/WebContextInjectedBundleClient.h:
35022         * UIProcess/WebFrameProxy.h:
35023         * UIProcess/WebHistoryClient.h:
35024         * UIProcess/WebLoaderClient.h:
35025         * UIProcess/WebPolicyClient.h:
35026         * UIProcess/WebProcessProxy.h:
35027         * UIProcess/WebUIClient.h:
35028         * UIProcess/win/WebView.h:
35029         * WebProcess/InjectedBundle/InjectedBundlePageEditorClient.h:
35030         * WebProcess/InjectedBundle/InjectedBundlePageLoaderClient.h:
35031         * WebProcess/InjectedBundle/InjectedBundlePageUIClient.h:
35032         * WebProcess/Plugins/NPRuntimeObjectMap.h:
35033         * WebProcess/Plugins/Netscape/NetscapePluginStream.h:
35034         * WebProcess/Plugins/PluginController.h:
35035         * WebProcess/WebPage/WebFrame.h:
35036         * WebProcess/WebPage/WebPage.h:
35037         * WebProcess/WebProcess.h:
35038
35039 2010-08-05  Anders Carlsson  <andersca@apple.com>
35040
35041         Reviewed by Sam Weinig.
35042
35043         Use the visited link provider for visited links
35044         https://bugs.webkit.org/show_bug.cgi?id=43583
35045
35046         * Shared/CoreIPCSupport/WebProcessMessageKinds.h:
35047         (WebProcessMessage::):
35048         Remove AddVisitedLink.
35049
35050         * Shared/CoreIPCSupport/WebProcessProxyMessageKinds.h:
35051         (WebProcessProxyMessage::):
35052         Remove PopulateVisitedLinks and add AddVisitedLink.
35053
35054         * UIProcess/WebContext.cpp:
35055         (WebKit::WebContext::sharedProcessContext):
35056         Initialize the main run loop before creating the context.
35057         
35058         (WebKit::WebContext::sharedThreadContext):
35059         Ditto.
35060         
35061         (WebKit::WebContext::create):
35062         Ditto.
35063
35064         (WebKit::WebContext::WebContext):
35065         Initialize the visited link provider.
35066
35067         (WebKit::WebContext::processDidFinishLaunching):
35068         Ask the visited link provider to populate visited links.
35069
35070         (WebKit::WebContext::addVisitedLink):
35071         Ask the visited link provider to add the visited link.
35072
35073         * UIProcess/WebProcessProxy.cpp:
35074         (WebKit::WebProcessProxy::addVisitedLink):
35075         Call WebContext::addVisitedLink.
35076
35077         (WebKit::WebProcessProxy::didReceiveMessage):
35078         Handle AddVisitedLink.
35079
35080         (WebKit::WebProcessProxy::didFinishLaunching):
35081         Call WebContext::processdidFinishLaunching.
35082
35083         * UIProcess/WebProcessProxy.h:
35084         * WebProcess/WebCoreSupport/WebChromeClient.cpp:
35085         (WebKit::WebChromeClient::populateVisitedLinks):
35086         Don't send the WebProcessProxyMessage::PopulateVisitedLinks message.
35087
35088         * WebProcess/WebCoreSupport/WebPlatformStrategies.cpp:
35089         (WebKit::WebPlatformStrategies::isLinkVisited):
35090         Call WebProcess::isLinkVisited.
35091         
35092         (WebKit::WebPlatformStrategies::addVisitedLink):
35093         Call WebProcess::addVisitedLink.
35094
35095         * WebProcess/WebProcess.cpp:
35096         (WebKit::WebProcess::setVisitedLinkTable):
35097         Create a shared memory object and tell the visited link table about it.
35098
35099         (WebKit::WebProcess::visitedLinkStateChanged):
35100         Go through the link hashes and call Page::visitedStateChanged.
35101
35102         (WebKit::WebProcess::allVisitedLinkStateChanged):
35103         Call Page::allVisitedStateChanged.
35104
35105         (WebKit::WebProcess::isLinkVisited):
35106         Call VisitedLinkTable::isLinkVisited.
35107
35108         (WebKit::WebProcess::addVisitedLink):
35109         Inform the UI process about the added link.
35110
35111         (WebKit::WebProcess::didReceiveMessage):
35112         Handle new messages.
35113
35114 2010-08-05  Steve Falkenburg  <sfalken@apple.com>
35115
35116         Windows build fix.
35117         Add missing include path.
35118
35119         * win/WebKit2Common.vsprops:
35120
35121 2010-08-05  Brady Eidson  <beidson@apple.com>
35122
35123         Rubberstamped by Sam Weinig.
35124
35125         Export WKError.h
35126
35127         * WebKit2.xcodeproj/project.pbxproj:
35128
35129 2010-08-05  Steve Falkenburg  <sfalken@apple.com>
35130
35131         Windows build fix.
35132         Correct vcproj nesting.
35133
35134         * win/WebKit2.vcproj:
35135
35136 2010-08-05  Sam Weinig  <sam@webkit.org>
35137
35138         Reviewed by Gavin Barraclough.
35139
35140         Add script world API for injected bundles
35141         https://bugs.webkit.org/show_bug.cgi?id=43577
35142
35143         * Shared/APIObject.h:
35144         (WebKit::APIObject::):
35145         * WebKit2.xcodeproj/project.pbxproj:
35146         * WebProcess/InjectedBundle/API/c/WKBundleAPICast.h:
35147         (WebKit::):
35148         * WebProcess/InjectedBundle/API/c/WKBundleBase.h:
35149         * WebProcess/InjectedBundle/API/c/WKBundleScriptWorld.cpp: Added.
35150         (WKBundleScriptWorldGetTypeID):
35151         (WKBundleScriptWorldCreateWorld):
35152         (WKBundleScriptWorldNormalWorld):
35153         (WKBundleScriptWorldRetain):
35154         (WKBundleScriptWorldRelease):
35155         * WebProcess/InjectedBundle/API/c/WKBundleScriptWorld.h: Added.
35156         * WebProcess/InjectedBundle/DOM/InjectedBundleNodeHandle.cpp:
35157         * WebProcess/InjectedBundle/InjectedBundleScriptWorld.cpp: Added.
35158         (WebKit::allWorlds):
35159         (WebKit::InjectedBundleScriptWorld::create):
35160         (WebKit::InjectedBundleScriptWorld::getOrCreate):
35161         (WebKit::InjectedBundleScriptWorld::normalWorld):
35162         (WebKit::InjectedBundleScriptWorld::InjectedBundleScriptWorld):
35163         (WebKit::InjectedBundleScriptWorld::~InjectedBundleScriptWorld):
35164         * WebProcess/InjectedBundle/InjectedBundleScriptWorld.h: Added.
35165         (WebKit::InjectedBundleScriptWorld::type):
35166         * win/WebKit2.vcproj:
35167         * win/WebKit2Generated.make:
35168
35169 2010-08-05  Sam Weinig  <sam@webkit.org>
35170
35171         Reviewed Anders Carlsson.
35172
35173         Add DOM Node wrapper class for injected bundle
35174         https://bugs.webkit.org/show_bug.cgi?id=43524
35175
35176         - This class should not expose any DOM APIs, but just be a handle that can be used to get a JS
35177           wrapper for the node in a specific world.
35178
35179         * Shared/APIObject.h:
35180         (WebKit::APIObject::):
35181         * WebKit2.xcodeproj/project.pbxproj:
35182         * WebProcess/InjectedBundle/API/c/WKBundleAPICast.h:
35183         (WebKit::):
35184         * WebProcess/InjectedBundle/API/c/WKBundleBase.h:
35185         * WebProcess/InjectedBundle/API/c/WKBundleNode.h:
35186         * WebProcess/InjectedBundle/API/c/WKBundleNodeHandle.cpp: Added.
35187         (WKBundleNodeHandleGetTypeID):
35188         (WKBundleNodeHandleRetain):
35189         (WKBundleNodeHandleRelease):
35190         * WebProcess/InjectedBundle/API/c/WKBundleNodeHandle.h: Added.
35191         * WebProcess/InjectedBundle/DOM: Added.
35192         * WebProcess/InjectedBundle/DOM/InjectedBundleNodeHandle.cpp: Added.
35193         (WebKit::domHandleCache):
35194         (WebKit::getDOMHandle):
35195         (WebKit::setDOMHandle):
35196         (WebKit::removeDOMHandle):
35197         (WebKit::InjectedBundleNodeHandle::getOrCreate):
35198         (WebKit::InjectedBundleNodeHandle::create):
35199         (WebKit::InjectedBundleNodeHandle::InjectedBundleNodeHandle):
35200         (WebKit::InjectedBundleNodeHandle::~InjectedBundleNodeHandle):
35201         * WebProcess/InjectedBundle/DOM/InjectedBundleNodeHandle.h: Added.
35202         (WebKit::InjectedBundleNodeHandle::type):
35203         * win/WebKit2.vcproj:
35204         * win/WebKit2Generated.make:
35205
35206 2010-08-05  Anders Carlsson  <andersca@apple.com>
35207
35208         Build fix.
35209
35210         * Platform/mac/SharedMemoryMac.cpp:
35211
35212 2010-08-05  Anders Carlsson  <andersca@apple.com>
35213
35214         Reviewed by Sam Weinig.
35215
35216         Add VisitedLinkProvider class
35217         https://bugs.webkit.org/show_bug.cgi?id=43570
35218
35219         * Shared/CoreIPCSupport/WebProcessMessageKinds.h:
35220         (WebProcessMessage::):
35221         Add SetVisitedLinkTable, VisitedLinkStateChanged and AllVisitedLinkStateChanged.
35222
35223         * UIProcess/VisitedLinkProvider.cpp: Added.
35224         (WebKit::VisitedLinkProvider::VisitedLinkProvider):
35225         Initialize table.
35226
35227         (WebKit::VisitedLinkProvider::populateVisitedLinksIfNeeded):
35228         Ask the context to populate visited links.
35229
35230         (WebKit::VisitedLinkProvider::addVisitedLink):
35231         Add the link hash to the set of pending visited links and start the timer.
35232
35233         (WebKit::nextPowerOf2):
35234         Add helper function.
35235
35236         (WebKit::tableSizeForKeyCount):
35237         Given a key count, returns a table size. The table size is always a power of two, and
35238         is chosen so that the table is always at least half empty.
35239
35240         (WebKit::VisitedLinkProvider::pendingVisitedLinksTimerFired):
35241         First, check if we need to resize the hash table and allocate new shared memory for it if that is the case.
35242         Then, go through the pending link hash vector and insert all the elements in the table. Finally, notify the web
35243         process about visited links whose state have changed.
35244
35245         * WebProcess/WebProcess.cpp:
35246         (WebKit::WebProcess::didReceiveMessage):
35247         Add case statements.
35248
35249         * win/WebKit2.vcproj:
35250         * WebKit2.xcodeproj/project.pbxproj:
35251         Add VisitedLinkProvider.cpp and VisitedLinkProvider.h.
35252
35253 2010-08-05  Anders Carlsson  <andersca@apple.com>
35254
35255         Reviewed by Sam Weinig.
35256
35257         Add VisitedLinkTable class
35258         https://bugs.webkit.org/show_bug.cgi?id=43566
35259
35260         * Shared/VisitedLinkTable.cpp: Added.
35261         (WebKit::VisitedLinkTable::VisitedLinkTable):
35262         (WebKit::VisitedLinkTable::~VisitedLinkTable):
35263         Add out of line constructors so we won't have to include SharedMemory.h in the 
35264         VisitedLinkTable.h header.
35265
35266         (WebKit::isPowerOf2):
35267         Add helper function.
35268
35269         (WebKit::VisitedLinkTable::setSharedMemory):
35270         Set the new shared memory and update the table size and hash.
35271
35272         (WebKit::doubleHash):
35273         Add helper function from the WTF HashTable.
35274
35275         (WebKit::VisitedLinkTable::addLinkHash):
35276         Add a link hash to the table.
35277
35278         (WebKit::VisitedLinkTable::isLinkVisited):
35279         See if there is an entry for the given link hash.
35280
35281         * Shared/VisitedLinkTable.h: Added.
35282         (WebKit::VisitedLinkTable::sharedMemory):
35283         * WebKit2.xcodeproj/project.pbxproj:
35284         * win/WebKit2.vcproj:
35285         Add VisitedLinkTable.cpp and VisitedLinkTable.h
35286
35287 2010-08-04  Anders Carlsson  <andersca@apple.com>
35288
35289         Reviewed by Adam Roben.
35290
35291         Add shared memory abstraction
35292         https://bugs.webkit.org/show_bug.cgi?id=43535
35293         <rdar://problem/8275295>
35294
35295         * Platform/SharedMemory.h: Added.
35296         (WebKit::SharedMemory::):
35297         (WebKit::SharedMemory::size):
35298         Return the size, in bytes, of the shared memory object.
35299         
35300         (WebKit::SharedMemory::data):
35301         Return a pointer to the shared memory object.
35302         
35303         * Platform/mac/SharedMemoryMac.cpp: Added.
35304         (WebKit::SharedMemory::Handle):
35305         A shared memory handle, which can be passed in a CoreIPC Connection.
35306
35307         (WebKit::SharedMemory::create):
35308         Allocate the shared memory.
35309
35310         (WebKit::SharedMemory::~SharedMemory):
35311         Deallocate the shared memory.
35312
35313         (WebKit::SharedMemory::createHandle):
35314         Create a mach port and pass it to the handle.
35315
35316         (WebKit::SharedMemory::systemPageSize):
35317         Return the system page size, in bytes.
35318         
35319         * Platform/win/SharedMemoryWin.cpp: Added.
35320         Add stubbed out version.
35321
35322         * WebKit2.xcodeproj/project.pbxproj:
35323         * win/WebKit2.vcproj:
35324         Add files.
35325
35326 2010-08-05  Jian Li  <jianli@chromium.org>
35327
35328         Reviewed by David Levin.
35329
35330         Unify blob related feature defines to ENABLE(BLOB).
35331         https://bugs.webkit.org/show_bug.cgi?id=43081
35332
35333         * Configurations/FeatureDefines.xcconfig:
35334
35335 2010-08-05  Balazs Kelemen  <kb@inf.u-szeged.hu>
35336
35337         Rubber-stamped by Kenneth Rohde Christiansen.
35338
35339         [Qt] Remove redundant include paths from WebKit2.pro.
35340
35341         * WebKit2.pro:
35342
35343 2010-08-04  Adam Roben  <aroben@apple.com>
35344
35345         Teach WebKit2 how to load the TestNetscapePlugin
35346
35347         Fixes <http://webkit.org/b/43513> WebKitTestRunner on Windows fails to
35348         load TestNetscapePlugin
35349
35350         Reviewed by Jon Honeycutt.
35351
35352         * Platform/Module.cpp:
35353         (WebKit::Module::Module): Initialize m_module on Windows.
35354
35355         * Platform/Module.h: Added m_module on Windows.
35356
35357         * Platform/win/ModuleWin.cpp:
35358         (WebKit::Module::load): Implemented using ::LoadLibraryExW.
35359         (WebKit::Module::unload): Implemented using ::FreeLibrary.
35360         (WebKit::Module::platformFunctionPointer): Implemented using
35361         ::GetProcAddress.
35362
35363         * Platform/win/RunLoopWin.cpp:
35364         (RunLoop::TimerBase::timerFired): Kill the native timer before calling
35365         the fired callback. This makes all our timers non-repeating, but
35366         that's all we need currently.
35367         (RunLoop::TimerBase::start): Added an assertion to help us figure out
35368         when we need to implement repeating timers. Also fixed a typo.
35369
35370         * UIProcess/Plugins/win/PluginInfoStoreWin.cpp:
35371         (WebKit::PluginInfoStore::pluginsDirectories): Added a FIXME.
35372
35373         (WebKit::PathWalker::PathWalker):
35374         (WebKit::PathWalker::~PathWalker):
35375         (WebKit::PathWalker::isValid):
35376         (WebKit::PathWalker::data):
35377         (WebKit::PathWalker::step):
35378         Added. This class wraps the ::FindFirstFile/::FindNextFile APIs.
35379
35380         (WebKit::PluginInfoStore::pluginPathsInDirectory): Implemented by
35381         porting logic from
35382         WebCore::PluginDatabase::getPluginPathsInDirectories.
35383         (WebKit::getVersionInfo): Copied from PluginDatabaseWin.cpp.
35384         (WebKit::PluginInfoStore::getPluginInfo): Implemented by porting logic
35385         from WebCore::PluginPackage::fetchInfo.
35386         (WebKit::PluginInfoStore::shouldUsePlugin): Changed to always return
35387         true for now. Added a FIXME about implementing this for real.
35388
35389         * UIProcess/WebProcessProxy.cpp:
35390         (WebKit::WebProcessProxy::didReceiveSyncMessage):
35391         * WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
35392         (WebKit::WebFrameLoaderClient::createPlugin):
35393         Removed PLATFORM(MAC) guards around plugin code.
35394
35395         * win/WebKit2.vcproj: Let VS sort the file.
35396
35397 2010-08-05  Antti Koivisto  <koivisto@iki.fi>
35398
35399         Reviewed by Kenneth Rohde Christiansen.
35400
35401         Use toCopiedRef for making WK objects
35402         https://bugs.webkit.org/show_bug.cgi?id=43552
35403
35404         * UIProcess/API/cpp/qt/WKStringQt.cpp:
35405         (WKStringCreateWithQString):
35406         * UIProcess/API/cpp/qt/WKURLQt.cpp:
35407         (WKURLCreateWithQUrl):
35408
35409 2010-08-04  Brady Eidson  <beidson@apple.com>
35410
35411         Reviewed by Sam Weinig.
35412
35413         Change callback APIs to include an Error object in one callback, instead of having a second callback for failure.
35414         https://bugs.webkit.org/show_bug.cgi?id=43522
35415
35416         This includes adding a WKErrorRef object which - for now - either exists or doesn't.
35417         In the future, it may contain useful information about the error.
35418         
35419         * WebKit2.xcodeproj/project.pbxproj:
35420         * win/WebKit2.vcproj:
35421         * win/WebKit2Generated.make:
35422         
35423         * Shared/APIObject.h:
35424         (WebKit::APIObject::):
35425         * UIProcess/API/C/WKAPICast.h:
35426         * UIProcess/API/C/WKBase.h:
35427         
35428         * Shared/WebError.h: Added.
35429         (WebKit::WebError::create):
35430         (WebKit::WebError::WebError):
35431         (WebKit::WebError::type):
35432         
35433         * UIProcess/API/C/WKError.cpp: Added.
35434         (WKErrorGetTypeID):
35435         * UIProcess/API/C/WKError.h: Added.
35436         
35437         * UIProcess/API/C/WKPage.cpp:
35438         (WKPageRunJavaScriptInMainFrame):
35439         (callRunJavaScriptBlockAndRelease):
35440         (WKPageRunJavaScriptInMainFrame_b):
35441         (WKPageRenderTreeExternalRepresentation):
35442         (callRenderTreeExternalRepresentationBlockAndDispose):
35443         (WKPageRenderTreeExternalRepresentation_b):
35444         * UIProcess/API/C/WKPage.h:
35445         * UIProcess/API/C/WKPagePrivate.h:
35446         
35447         * UIProcess/GenericCallback.h:
35448         (WebKit::GenericCallback::create):
35449         (WebKit::GenericCallback::performCallbackWithReturnValue):
35450         (WebKit::GenericCallback::invalidate):
35451         (WebKit::GenericCallback::GenericCallback):
35452
35453 2010-08-04  Ada Chan  <adachan@apple.com>
35454
35455         Windows build fix        
35456
35457         * win/WebKit2Generated.make:
35458
35459 2010-08-04  John Sullivan  <sullivan@apple.com>
35460
35461         Build fix, rubber-stamped by Brady Eidson.
35462
35463         * WebKit2.xcodeproj/project.pbxproj:
35464         Made WKData.h a public header.
35465
35466 2010-08-04  Adam Roben  <aroben@apple.com>
35467
35468         Windows build fix
35469
35470         * WebProcess/Plugins/Netscape/NetscapeBrowserFuncs.cpp:
35471         (WebKit::NPN_SetValue): Removed unreachable code.
35472
35473 2010-08-04  Adam Roben  <aroben@apple.com>
35474
35475         Windows build fix
35476
35477         * WebProcess/Plugins/Netscape/NetscapeBrowserFuncs.cpp:
35478         (WebKit::NPN_SetValue): Added some case statements that are compiled
35479         on Windows to avoid a warning about having default but not cases.
35480
35481 2010-08-04  Adam Roben  <aroben@apple.com>
35482
35483         Windows build fix
35484
35485         * win/WebKit2.vcproj: Added NetscapeBrowserFuncs.
35486
35487 2010-08-04  Adam Roben  <aroben@apple.com>
35488
35489         Windows build fix
35490
35491         The functions in NetscapePluginModuleWin.cpp have been moved to
35492         NetscapePluginModule.cpp.
35493
35494         * WebProcess/Plugins/Netscape/win/NetscapePluginModuleWin.cpp: Removed.
35495         * win/WebKit2.vcproj: Removed NetscapePluginModuleWin.
35496
35497 2010-08-04  Adam Roben  <aroben@apple.com>
35498
35499         Move bundle-loading code from NetscapePluginModule to a new Module
35500         class
35501
35502         This allows more NetscapePluginModule code to be cross-platform.
35503
35504         Fixes <http://webkit.org/b/43497> NetscapePluginModule::try/unload
35505         should be cross-platform
35506
35507         Reviewed by Anders Carlsson.
35508
35509         * Platform/Module.cpp: Added.
35510         (WebKit::Module::Module): Store our path.
35511         (WebKit::Module::~Module): Unload our native module.
35512
35513         * Platform/Module.h: Added.
35514         (WebKit::Module::leakBundle): Does what it says.
35515         (WebKit::Module::functionPointer): Returns a pointer to the named
35516         function, with the right type.
35517
35518         * Platform/mac/ModuleMac.mm: Added.
35519         (WebKit::Module::load): Code was moved here from
35520         NetscapePluginModule::tryLoad.
35521         (WebKit::Module::unload): Just clears our bundle.
35522         (WebKit::Module::platformFunctionPointer): Code was moved here from
35523         NetscapePluginModuleMac.cpp.
35524
35525         * Platform/qt/ModuleQt.cpp: Added.
35526         (WebKit::Module::load):
35527         (WebKit::Module::unload):
35528         (WebKit::Module::platformFunctionPointer):
35529         * Platform/win/ModuleWin.cpp: Added.
35530         (WebKit::Module::load):
35531         (WebKit::Module::unload):
35532         (WebKit::Module::platformFunctionPointer):
35533         Just stubbed out these functions.
35534
35535         * WebKit2.xcodeproj/project.pbxproj: Added Module.
35536
35537         * WebProcess/Plugins/Netscape/NetscapePluginModule.cpp:
35538         (WebKit::NetscapePluginModule::tryLoad):
35539         (WebKit::NetscapePluginModule::unload):
35540         Moved here from NetscapePluginModuleMac.cpp. Now uses the
35541         cross-platform m_module member.
35542
35543         * WebProcess/Plugins/Netscape/NetscapePluginModule.h: Replaced
35544         m_bundle with m_module.
35545
35546         * WebProcess/Plugins/Netscape/mac/NetscapePluginModuleMac.cpp: Removed.
35547
35548         * win/WebKit2.vcproj: Added Module.
35549
35550 2010-08-04  Brady Eidson  <beidson@apple.com>
35551
35552         Reviewed by Sam Weinig.
35553
35554         Lay the groundwork for saving/restoring page session state to WK2
35555         https://bugs.webkit.org/show_bug.cgi?id=43495
35556
35557         * WebKit2.xcodeproj/project.pbxproj:
35558         * win/WebKit2.vcproj:
35559
35560         * Shared/APIObject.h:
35561         (WebKit::APIObject::):
35562         * UIProcess/API/C/WKAPICast.h:
35563         * UIProcess/API/C/WKBase.h:
35564         
35565         Arbitrary byte buffer:
35566         * Shared/WebData.h: Added.
35567         (WebKit::WebData::create):
35568         (WebKit::WebData::bytes):
35569         (WebKit::WebData::size):
35570         (WebKit::WebData::WebData):
35571         (WebKit::WebData::type):
35572         
35573         API facing object to act as a byte buffer:
35574         * UIProcess/API/C/WKData.cpp: Added.
35575         (WKDataGetTypeID):
35576         (WKDataCreate):
35577         (WKDataGetBytes):
35578         (WKDataGetSize):
35579         (WKDataRetain):
35580         (WKDataRelease):
35581         * UIProcess/API/C/WKData.h: Added.
35582
35583         API for saving/restoring state:
35584         * UIProcess/API/C/WKPage.cpp:
35585         (WKPageCopySessionState):
35586         (WKPageRestoreFromSessionState):
35587         * UIProcess/API/C/WKPage.h:
35588
35589         These will be filled in later:
35590         * UIProcess/WebPageProxy.cpp:
35591         (WebKit::WebPageProxy::sessionState):
35592         (WebKit::WebPageProxy::restoreFromSessionState):
35593         * UIProcess/WebPageProxy.h:
35594
35595
35596 2010-08-04  Sam Weinig  <sam@webkit.org>
35597
35598         Reviewed by Anders Carlsson.
35599
35600         Set correct default minimumFontSize.
35601
35602         * Shared/WebPreferencesStore.cpp:
35603         (WebKit::WebPreferencesStore::WebPreferencesStore):
35604
35605 2010-08-03  Adam Roben  <aroben@apple.com>
35606
35607         Turn on PLATFORM_STRATEGIES on Windows
35608
35609         Fixes <http://webkit.org/b/43431>.
35610
35611         Reviewed by Anders Carlsson.
35612
35613         * win/WebKit2.vcproj: Added WebPlatformStrategies. Also let VS reorder
35614         this file as it saw fit.
35615
35616 2010-08-03  Balazs Kelemen  <kb@inf.u-szeged.hu>
35617
35618         Reviewed by Kenneth Rohde Christiansen.
35619
35620         [Qt] Close the WebProcess
35621
35622         https://bugs.webkit.org/show_bug.cgi?id=41690
35623
35624         * Platform/CoreIPC/qt/ConnectionQt.cpp:
35625         (CoreIPC::Connection::open): Registered connectionDidClose to be called when the client disconnected.
35626         * Platform/qt/RunLoopQt.cpp:
35627         (RunLoop::stop): Implemented by calling QCoreApplication::exit.
35628
35629 2010-08-03  Jon Honeycutt  <jhoneycutt@apple.com>
35630
35631         WebKitTestRunner needs to activate the Mac font ascent hack
35632         https://bugs.webkit.org/show_bug.cgi?id=43404
35633
35634         Reviewed by Darin Adler.
35635
35636         * WebProcess/InjectedBundle/API/c/WKBundle.cpp:
35637         (WKBundleActivateMacFontAscentHack):
35638         Get the InjectedBundle, and calls its activateMacFontAscentHack().
35639
35640         * WebProcess/InjectedBundle/API/c/WKBundlePrivate.h:
35641         Declare WKBundleActivateMacFontAscentHack().
35642
35643         * WebProcess/InjectedBundle/InjectedBundle.h:
35644         Declare activateMacFontAscentHack().
35645
35646         * WebProcess/InjectedBundle/mac/InjectedBundleMac.cpp:
35647         (WebKit::InjectedBundle::activateMacFontAscentHack):
35648         Stubbed.
35649
35650         * WebProcess/InjectedBundle/qt/InjectedBundleQt.cpp:
35651         (WebKit::InjectedBundle::activateMacFontAscentHack):
35652         Stubbed.
35653
35654         * WebProcess/InjectedBundle/win/InjectedBundleWin.cpp:
35655         (WebKit::InjectedBundle::activateMacFontAscentHack):
35656         Activate the ascent hack.
35657
35658 2010-08-03  Simon Fraser  <simon.fraser@apple.com>
35659
35660         Fix typo in typo fix.
35661
35662         * Shared/DrawingAreaBase.h:
35663         (WebKit::DrawingAreaBase::DrawingAreaInfo::DrawingAreaInfo):
35664         (WebKit::DrawingAreaBase::DrawingAreaBase):
35665
35666 2010-08-03  Simon Fraser  <simon.fraser@apple.com>
35667
35668         Fix typo in previous commit.
35669
35670         * Shared/DrawingAreaBase.h:
35671         (WebKit::DrawingAreaBase::DrawingAreaInfo::DrawingAreaInfo):
35672         (WebKit::DrawingAreaBase::DrawingAreaBase):
35673
35674 2010-08-03  Simon Fraser  <simon.fraser@apple.com>
35675
35676         Reviewed by Anders Carlsson.
35677
35678         Compositing iframe layout test crashes in WebKit2
35679         https://bugs.webkit.org/show_bug.cgi?id=42860
35680         
35681         Fix assertion caused by a DrawingArea handling a message that was targetted at an older DrawingArea
35682         that it has replaced.
35683         
35684         This was done by assigning a unique ID to each DrawingAreaProxy that gets created, and passing
35685         this ID, along with the type, to the WebProcess via an encoded DrawingAreaInfo. Each message
35686         also includes this ID. Messages with an ID that doesn't match that of the current DrawingArea are ignored.
35687         
35688         Refactored some common code and data into a DrawingAreaBase class which is shared, and adding
35689         encode/decode of DrawingAreaInfo.
35690
35691         * Shared/DrawingAreaBase.cpp: Added.
35692         (WebKit::DrawingAreaBase::encode):
35693         (WebKit::DrawingAreaBase::decode):
35694         * Shared/DrawingAreaBase.h: Added.
35695         (WebKit::DrawingAreaBase::):
35696         (WebKit::DrawingAreaBase::~DrawingAreaBase):
35697         (WebKit::DrawingAreaBase::type):
35698         (WebKit::DrawingAreaBase::id):
35699         (WebKit::DrawingAreaBase::DrawingAreaInfo::DrawingAreaInfo):
35700         (WebKit::DrawingAreaBase::DrawingAreaBase):
35701         (CoreIPC::):
35702         * UIProcess/ChunkedUpdateDrawingAreaProxy.cpp:
35703         (WebKit::ChunkedUpdateDrawingAreaProxy::setSize):
35704         (WebKit::ChunkedUpdateDrawingAreaProxy::setPageIsVisible):
35705         (WebKit::ChunkedUpdateDrawingAreaProxy::update):
35706         * UIProcess/DrawingAreaProxy.cpp:
35707         (WebKit::DrawingAreaProxy::DrawingAreaProxy):
35708         (WebKit::DrawingAreaProxy::nextDrawingAreaID):
35709         * UIProcess/DrawingAreaProxy.h:
35710         * UIProcess/LayerBackedDrawingAreaProxy.cpp:
35711         (WebKit::LayerBackedDrawingAreaProxy::setSize):
35712         (WebKit::LayerBackedDrawingAreaProxy::setPageIsVisible):
35713         (WebKit::LayerBackedDrawingAreaProxy::update):
35714         * UIProcess/LayerBackedDrawingAreaProxy.h:
35715         * UIProcess/WebPageProxy.cpp:
35716         (WebKit::WebPageProxy::didReceiveSyncMessage):
35717         * WebKit2.xcodeproj/project.pbxproj:
35718         * WebProcess/WebCoreSupport/WebChromeClient.cpp:
35719         (WebKit::WebChromeClient::createWindow):
35720         * WebProcess/WebPage/ChunkedUpdateDrawingArea.cpp:
35721         (WebKit::ChunkedUpdateDrawingArea::ChunkedUpdateDrawingArea):
35722         (WebKit::ChunkedUpdateDrawingArea::didReceiveMessage):
35723         * WebProcess/WebPage/ChunkedUpdateDrawingArea.h:
35724         * WebProcess/WebPage/DrawingArea.cpp:
35725         (WebKit::DrawingArea::create):
35726         (WebKit::DrawingArea::DrawingArea):
35727         * WebProcess/WebPage/DrawingArea.h:
35728         * WebProcess/WebPage/LayerBackedDrawingArea.cpp:
35729         (WebKit::LayerBackedDrawingArea::LayerBackedDrawingArea):
35730         (WebKit::LayerBackedDrawingArea::didReceiveMessage):
35731         * WebProcess/WebPage/LayerBackedDrawingArea.h:
35732         * WebProcess/WebPage/WebPage.cpp:
35733         (WebKit::WebPage::create):
35734         (WebKit::WebPage::WebPage):
35735         (WebKit::WebPage::changeAcceleratedCompositingMode):
35736         * WebProcess/WebPage/WebPage.h:
35737         * WebProcess/WebProcess.cpp:
35738         (WebKit::WebProcess::createWebPage):
35739         (WebKit::WebProcess::didReceiveMessage):
35740         * WebProcess/WebProcess.h:
35741         * win/WebKit2.vcproj:
35742
35743 2010-08-03  Alex Milowski  <alex@milowski.com>
35744
35745         Reviewed by Beth Dakin.
35746
35747         Changed the ENABLE_MATHML value to enable MathML by default.
35748
35749         * Configurations/FeatureDefines.xcconfig:
35750
35751 2010-08-03  Simon Fraser  <simon.fraser@apple.com>
35752
35753         Reviewed by Sam Weinig.
35754
35755         Compositing iframe layout test crashes in WebKit2
35756         https://bugs.webkit.org/show_bug.cgi?id=42860
35757         
35758         Part one of the fix: make DrawingArea ref-counted, so that the object
35759         can survide a swap in drawing areas inside the run loop observer callback.
35760
35761         * WebProcess/WebPage/DrawingArea.cpp:
35762         (WebKit::DrawingArea::create):
35763         * WebProcess/WebPage/DrawingArea.h:
35764         * WebProcess/WebPage/WebPage.h:
35765         * WebProcess/WebPage/mac/LayerBackedDrawingAreaMac.mm:
35766         (WebKit::LayerBackedDrawingArea::platformClear):
35767         (WebKit::LayerBackedDrawingArea::updateLayoutRunLoopObserverCallback):
35768         (WebKit::LayerBackedDrawingArea::updateLayoutRunLoopObserverFired):
35769
35770 2010-08-03  Anders Carlsson  <andersca@apple.com>
35771
35772         Reviewed by Adam Roben.
35773
35774         Frequent ASSERT_NOT_REACHED in Connection::processIncomingMessage when running regression tests
35775         https://bugs.webkit.org/show_bug.cgi?id=42926
35776         <rdar://problem/8237329>
35777
35778         Remove this assert, it's bogus. It would fire when a reply came in on the connection queue before 
35779         waitForReply was called on the client thread, but that case is already covered.
35780
35781         * Platform/CoreIPC/Connection.cpp:
35782         (CoreIPC::Connection::processIncomingMessage):
35783
35784 2010-08-03  Adam Roben  <aroben@apple.com>
35785
35786         Compile out two Mac-only localized strings on non-Mac platforms
35787
35788         Fixes <http://webkit.org/b/43433> copyImageUnknownFileLabel and
35789         AXARIAContentGroupText should only be compiled on Mac
35790
35791         Reviewed by Anders Carlsson.
35792
35793         * WebProcess/WebCoreSupport/WebPlatformStrategies.cpp:
35794         * WebProcess/WebCoreSupport/WebPlatformStrategies.h:
35795         Wrapped copyImageUnknownFileLabel and AXARIAContentGroupText in
35796         PLATFORM(MAC).
35797
35798 2010-08-03  Balazs Kelemen  <kb@inf.u-szeged.hu>
35799
35800         [Qt] Unreviewed typo fix in the WebKit2/DerivedSources.pro project file.
35801
35802         Use QMAKE_MKDIR as the command for directory creation.
35803
35804         * DerivedSources.pro:
35805
35806 2010-08-02  Brady Eidson  <beidson@apple.com>
35807
35808         Reviewed by Anders Carlsson.
35809
35810         Add VisitedLinkStrategy for each platform to implement
35811         https://bugs.webkit.org/show_bug.cgi?id=43393
35812
35813         * WebProcess/WebCoreSupport/WebPlatformStrategies.cpp:
35814         (WebKit::WebPlatformStrategies::createVisitedLinkStrategy):
35815         (WebKit::WebPlatformStrategies::isLinkVisited): Call back into PageGroup's visited links, for now.
35816         (WebKit::WebPlatformStrategies::addVisitedLink): Ditto.
35817         * WebProcess/WebCoreSupport/WebPlatformStrategies.h:
35818
35819 2010-07-27  Luiz Agostini  <luiz.agostini@openbossa.org>
35820
35821         Reviewed by Darin Fisher.
35822
35823         PopupMenu refactoring in preparation to WebKit2
35824         https://bugs.webkit.org/show_bug.cgi?id=42592
35825
35826         Classes WebPopupMenu and WebSearchPopupMenu inherit from PopupMenu and
35827         SearchPopupMenu respectively. At this point they are just empty implementations.
35828
35829         * WebProcess/WebCoreSupport/WebPopupMenu.cpp: Added.
35830         (WebKit::WebPopupMenu::WebPopupMenu):
35831         (WebKit::WebPopupMenu::~WebPopupMenu):
35832         (WebKit::WebPopupMenu::disconnectClient):
35833         (WebKit::WebPopupMenu::show):
35834         (WebKit::WebPopupMenu::hide):
35835         (WebKit::WebPopupMenu::updateFromElement):
35836         * WebProcess/WebCoreSupport/WebPopupMenu.h: Added.
35837         * WebProcess/WebCoreSupport/WebSearchPopupMenu.cpp: Added.
35838         (WebKit::WebSearchPopupMenu::WebSearchPopupMenu):
35839         (WebKit::WebSearchPopupMenu::popupMenu):
35840         (WebKit::WebSearchPopupMenu::saveRecentSearches):
35841         (WebKit::WebSearchPopupMenu::loadRecentSearches):
35842         (WebKit::WebSearchPopupMenu::enabled):
35843         * WebProcess/WebCoreSupport/WebSearchPopupMenu.h: Added.
35844
35845         As ChromeClient was made responsible for providing PopupMenu and SearchPopupMenu
35846         instances, concrete classes that inherit from ChromeClient needed to be changed to
35847         implement the new methods.
35848
35849         * WebProcess/WebCoreSupport/WebChromeClient.cpp:
35850         (WebKit::WebChromeClient::selectItemWritingDirectionIsNatural):
35851         (WebKit::WebChromeClient::createPopupMenu):
35852         (WebKit::WebChromeClient::createSearchPopupMenu):
35853         * WebProcess/WebCoreSupport/WebChromeClient.h:
35854
35855         build issues:
35856
35857         * WebKit2.xcodeproj/project.pbxproj:
35858         * win/WebKit2.vcproj:
35859
35860 2010-08-02  Anders Carlsson  <andersca@apple.com>
35861
35862         Reviewed by Sam Weinig.
35863
35864         Fix plug-in test failures and remove tests from the Skipped list
35865         https://bugs.webkit.org/show_bug.cgi?id=43389
35866
35867         * WebProcess/Plugins/JSNPMethod.cpp:
35868         JSNPMethod::s_info should specify InternalFunction::info as its parent.
35869
35870         * WebProcess/Plugins/Netscape/NetscapePlugin.cpp:
35871         (WebKit::NetscapePlugin::cancelStreamLoad):
35872         Special-case the manual stream and call PluginController::cancelManualStreamLoad.
35873
35874         * WebProcess/Plugins/Netscape/NetscapePluginStream.cpp:
35875         (WebKit::NetscapePluginStream::stop):
35876         It's OK to call stop on a stream that hasn't been started. Remove assertion and return early.
35877         
35878         * WebProcess/Plugins/PluginController.h:
35879         Add cancelManualStreamLoad.
35880
35881         * WebProcess/Plugins/PluginView.cpp:
35882         (WebKit::PluginView::cancelManualStreamLoad):
35883         Tell the document loader to cancel the main resource load.
35884
35885         * WebProcess/WebPage/WebFrame.cpp:
35886         (WebKit::WebFrame::innerText):
35887         Check for a null document element.
35888
35889 2010-08-02  Anders Carlsson  <andersca@apple.com>
35890
35891         Reviewed by Sam Weinig.
35892
35893         Add support for loading manual streams
35894         https://bugs.webkit.org/show_bug.cgi?id=43380
35895
35896         * WebProcess/Plugins/Netscape/NetscapePlugin.cpp:
35897         (WebKit::NetscapePlugin::NetscapePlugin):
35898         Initialize m_loadManually to false.
35899
35900         (WebKit::NetscapePlugin::removePluginStream):
35901         Special case the manual stream.
35902
35903         (WebKit::NetscapePlugin::initialize):
35904         Don't request the stream if we're already loading.
35905
35906         (WebKit::NetscapePlugin::manualStreamDidReceiveResponse):
35907         Create the manual stream and pass the response to it.
35908
35909         (WebKit::NetscapePlugin::manualStreamDidReceiveData):
35910         Pass the data to the manual stream.
35911
35912         (WebKit::NetscapePlugin::manualStreamDidFinishLoading):
35913         Call the manual stream.
35914
35915         (WebKit::NetscapePlugin::manualStreamDidFail):
35916         Ditto.
35917
35918         * WebProcess/Plugins/Plugin.h:
35919         Add pure virtual member functions for manual stream loading.
35920
35921         * WebProcess/Plugins/PluginView.cpp:
35922         (WebKit::buildHTTPHeaders):
35923         Put code in a function so both PluginView::Stream::didReceiveResponse and 
35924         manualLoadDidReceiveResponse can call it.
35925
35926         (WebKit::PluginView::Stream::didReceiveResponse):
35927         Call buildHTTPHeaders.
35928
35929         (WebKit::PluginView::Stream::didFinishLoading):
35930         Protect the plug-in when calling destroyStream.
35931
35932         (WebKit::PluginView::manualLoadDidReceiveResponse):
35933         Call Plugin::manualStreamDidReceiveResponse.
35934
35935         (WebKit::PluginView::manualLoadDidReceiveData):
35936         Call Plugin::manualStreamDidReceiveData.
35937
35938         (WebKit::PluginView::manualLoadDidFinishLoading):
35939         Call Plugin::manualStreamDidFinishLoading.
35940
35941         (WebKit::PluginView::manualLoadDidFail):
35942         Call Plugin::manualStreamDidFail.
35943
35944         * WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
35945         (WebKit::WebFrameLoaderClient::WebFrameLoaderClient):
35946         Initialize m_hasSentResponseToPluginView to false.
35947
35948         (WebKit::WebFrameLoaderClient::setMainDocumentError):
35949         Call PluginView::manualLoadDidFail.
35950
35951         (WebKit::WebFrameLoaderClient::committedLoad):
35952         Call PluginView::manualLoadDidReceiveResponse.
35953
35954         (WebKit::WebFrameLoaderClient::finishedLoading):
35955         Call PluginView::manualLoadDidFinishLoading.
35956
35957         (WebKit::WebFrameLoaderClient::redirectDataToPlugin):
35958         Keep track of the plug-in view.
35959
35960 2010-08-02  Brady Eidson  <beidson@apple.com>
35961
35962         Reviewed by Anders Carlsson.
35963
35964         Basic WK2 visited link coloring
35965         https://bugs.webkit.org/show_bug.cgi?id=43377
35966
35967         Add simple API that allows the WK2 app to add 1 visited link at a time.
35968         For now, this just pipes each individual LinkHash down to WebCore.
35969         
35970         * Shared/CoreIPCSupport/WebProcessMessageKinds.h:
35971         (WebProcessMessage::):
35972
35973         * UIProcess/API/C/WKContext.cpp:
35974         (WKContextAddVisitedLink):
35975         * UIProcess/API/C/WKContext.h:
35976
35977         * UIProcess/WebContext.cpp:
35978         (WebKit::WebContext::addVisitedLink):
35979         * UIProcess/WebContext.h:
35980
35981         * WebProcess/WebProcess.cpp:
35982         (WebKit::WebProcess::addVisitedLinkHash):
35983         (WebKit::WebProcess::didReceiveMessage):
35984         * WebProcess/WebProcess.h:
35985
35986 2010-08-02  Darin Adler  <darin@apple.com>
35987
35988         Reviewed by Sam Weinig.
35989
35990         WebKitTestRunner needs layoutTestController.setCanOpenWindows
35991         https://bugs.webkit.org/show_bug.cgi?id=42321
35992
35993         WebKitTestRunner needs layoutTestController.setCloseRemainingWindowsWhenComplete
35994         https://bugs.webkit.org/show_bug.cgi?id=42779
35995
35996         Implemented window.close, added a function that does a similar operation on behalf
35997         of injected bundle code named WKBundlePageClose, and fixed the reference counting of
35998         the result of the createNewPage client function.
35999
36000         * UIProcess/API/cpp/WKRetainPtr.h: Added clear. Tweaked formatting. Renamed
36001         releaseRef to leakRef.
36002
36003         * UIProcess/API/mac/WKView.mm:
36004         (-[WKView _updateVisibility]): Handle the case where drawing area is 0. This
36005         came up in WebKitTestRunner and other functions handle drawing area of 0.
36006
36007         * UIProcess/WebPageProxy.cpp:
36008         (WebKit::WebPageProxy::didReceiveSyncMessage): Update now that createNewPage
36009         returns a PassRefPtr.
36010         (WebKit::WebPageProxy::createNewPage): Changed to return a PassRefPtr.
36011         * UIProcess/WebPageProxy.h: Ditto.
36012
36013         * UIProcess/WebUIClient.cpp:
36014         (WebKit::WebUIClient::createNewPage): Changed to return a PassRefPtr and adopt
36015         the WKPageRef passed from the client. This follows the "create rule".
36016         * UIProcess/WebUIClient.h: Ditto.
36017
36018         * WebProcess/InjectedBundle/API/c/WKBundlePage.cpp:
36019         (WKBundlePageClose): Added.
36020         * WebProcess/InjectedBundle/API/c/WKBundlePagePrivate.h: Added WKBundlePageClose
36021         and re-sorted the other functions in this file.
36022
36023         * WebProcess/WebCoreSupport/WebChromeClient.cpp:
36024         (WebKit::WebChromeClient::closeWindowSoon): Implemented this.
36025
36026         * WebProcess/WebPage/WebPage.cpp:
36027         (WebKit::WebPage::WebPage): Called setJavaScriptCanOpenWindowsAutomatically(true).
36028         I suppose we will need to revisit this later when we implement pop-up blocking.
36029         (WebKit::WebPage::tryClose): Factored out the part of this that sends a message
36030         to the other process.
36031         (WebKit::WebPage::sendClose): This is where the part that sends a message went.
36032         * WebProcess/WebPage/WebPage.h: Added sendClose, used by both closeWindowSoon
36033         and WKBundlePageClose.
36034
36035 2010-08-02  John Sullivan  <sullivan@apple.com>
36036
36037         https://bugs.webkit.org/show_bug.cgi?id=43369
36038         WebBackForwardList::forwardListAsImmutableArrayWithLimit can return partly-uninitialized array
36039         
36040         Reviewed by Ada Chan.
36041
36042         * UIProcess/WebBackForwardList.cpp:
36043         (WebKit::WebBackForwardList::forwardListAsImmutableArrayWithLimit):
36044         Use a simpler and correct expression to determine "last".
36045
36046 2010-08-02  Anders Carlsson  <andersca@apple.com>
36047
36048         Reviewed by Sam Weinig.
36049
36050         Protect the plug-in from being destroyed while in plug-in code
36051         https://bugs.webkit.org/show_bug.cgi?id=43370
36052
36053         Add a PluginProtector to NPRuntimeObjectMap and use it in JSNPObject.
36054         
36055         * WebProcess/Plugins/JSNPObject.cpp:
36056         (WebKit::JSNPObject::callMethod):
36057         (WebKit::JSNPObject::callObject):
36058         (WebKit::JSNPObject::callConstructor):
36059         (WebKit::JSNPObject::put):
36060         (WebKit::JSNPObject::getOwnPropertyNames):
36061         (WebKit::JSNPObject::propertyGetter):
36062         Add PluginProtector declarations.
36063
36064         * WebProcess/Plugins/NPRuntimeObjectMap.cpp:
36065         (WebKit::NPRuntimeObjectMap::PluginProtector::PluginProtector):
36066         Ref the plug-in view (unless it's being destroyed).
36067
36068         (WebKit::NPRuntimeObjectMap::PluginProtector::~PluginProtector):
36069         * WebProcess/Plugins/NPRuntimeObjectMap.h:
36070
36071         * WebProcess/Plugins/PluginView.cpp:
36072         (WebKit::PluginView::PluginView):
36073         Initialize m_isBeingDestroyed.
36074
36075         (WebKit::PluginView::~PluginView):
36076         Set m_isBeingDestroyed to true.
36077
36078         (WebKit::PluginView::scriptObject):
36079         Don't crash if the plug-in failed to initialize.
36080
36081         (WebKit::PluginView::evaluate):
36082         Remove comment.
36083
36084         * WebProcess/Plugins/PluginView.h:
36085         (WebKit::PluginView::isBeingDestroyed):
36086
36087 2010-08-02  Anders Carlsson  <andersca@apple.com>
36088
36089         Reviewed by Sam Weinig.
36090
36091         Cache JSNPObjects and fix bugs in the object map
36092         https://bugs.webkit.org/show_bug.cgi?id=43368
36093
36094         * WebProcess/Plugins/JSNPObject.cpp:
36095         (WebKit::JSNPObject::JSNPObject):
36096         Assert that we're not trying to wrap an NPJSObject.
36097
36098         (WebKit::JSNPObject::~JSNPObject):
36099         Tell the object map that we're gone.
36100
36101         (WebKit::JSNPObject::invalidate):
36102         Release the NPObject and null out the pointer.
36103
36104         * WebProcess/Plugins/NPJSObject.cpp:
36105         (WebKit::NPJSObject::create):
36106         Assert that we're not trying to wrap a JSNPObject.
36107
36108         * WebProcess/Plugins/NPRuntimeObjectMap.cpp:
36109         (WebKit::NPRuntimeObjectMap::getOrCreateNPObject):
36110         If we're passed a JSNPObject, just extract its NPObject.
36111
36112         (WebKit::NPRuntimeObjectMap::getOrCreateJSObject):
36113         If we're passed an NPJSObject, just extract its JSObject. Otherwise, check if we already have
36114         a JSObject for this NPObject and return it.
36115
36116         (WebKit::NPRuntimeObjectMap::jsNPObjectDestroyed):
36117         Remove the object from the map.
36118
36119         (WebKit::NPRuntimeObjectMap::convertNPVariantToJSValue):
36120         getOrCreateJSObject now checks for wrapped objects.
36121
36122         (WebKit::NPRuntimeObjectMap::convertJSValueToNPVariant):
36123         getOrCreateNPObject now checks for wrapped objects.
36124
36125         (WebKit::NPRuntimeObjectMap::invalidate):
36126         Invalidate JSNPObjects as well.
36127
36128 2010-08-02  Jeremy Orlow  <jorlow@chromium.org>
36129
36130         Speculative revert of 64425 due to Chromium instability
36131         https://bugs.webkit.org/show_bug.cgi?id=43347
36132
36133         * WebKit2.xcodeproj/project.pbxproj:
36134         * WebProcess/WebCoreSupport/WebChromeClient.cpp:
36135         * WebProcess/WebCoreSupport/WebChromeClient.h:
36136         * WebProcess/WebCoreSupport/WebPopupMenu.cpp: Removed.
36137         * WebProcess/WebCoreSupport/WebPopupMenu.h: Removed.
36138         * WebProcess/WebCoreSupport/WebSearchPopupMenu.cpp: Removed.
36139         * WebProcess/WebCoreSupport/WebSearchPopupMenu.h: Removed.
36140         * win/WebKit2.vcproj:
36141
36142 2010-08-02  Balazs Kelemen  <kb@inf.u-szeged.hu>
36143
36144         Reviewed by Simon Hausmann.
36145
36146         [Qt] Generate forwarding headers for WebKit2
36147
36148         https://bugs.webkit.org/show_bug.cgi?id=43336
36149
36150         * DerivedSources.pro: Added.
36151
36152 2010-08-01  Anders Carlsson  <andersca@apple.com>
36153
36154         Reviewed by Sam Weinig.
36155
36156         Implement NPN_SetException
36157         https://bugs.webkit.org/show_bug.cgi?id=43320
36158
36159         * WebProcess/Plugins/JSNPObject.cpp:
36160         (WebKit::JSNPObject::callConstructor):
36161         (WebKit::JSNPObject::put):
36162         (WebKit::JSNPObject::getOwnPropertyNames):
36163         (WebKit::JSNPObject::propertyGetter):
36164         Call NPRuntimeObjectMap::moveGlobalExceptionToExecState.
36165
36166         * WebProcess/Plugins/NPRuntimeObjectMap.cpp:
36167         (WebKit::globalExceptionString):
36168         Add static global.
36169
36170         (WebKit::NPRuntimeObjectMap::setGlobalException):
36171         Set the global exception string.
36172
36173         (WebKit::NPRuntimeObjectMap::moveGlobalExceptionToExecState):
36174         Create an error from the exception string.
36175
36176         * WebProcess/Plugins/NPRuntimeObjectMap.h:
36177         * WebProcess/Plugins/Netscape/NetscapeBrowserFuncs.cpp:
36178         (WebKit::NPN_SetException):
36179         Call NetscapePlugin::setException.
36180
36181         * WebProcess/Plugins/Netscape/NetscapePlugin.cpp:
36182         (WebKit::NetscapePlugin::setException):
36183         Call NPRuntimeObjectMap::setGlobalException.
36184
36185 2010-08-01  Sam Weinig  <sam@webkit.org>
36186
36187         Roll r64446 out. It broke the test runner.
36188
36189         * UIProcess/WebContext.cpp:
36190         (WebKit::WebContext::postMessageToInjectedBundle):
36191
36192 2010-08-01  Sam Weinig  <sam@webkit.org>
36193
36194         Reviewed by Anders Carlsson.
36195
36196         Don't send user messages to the injected bundle if the process is not active
36197         https://bugs.webkit.org/show_bug.cgi?id=43317
36198
36199         * UIProcess/WebContext.cpp:
36200         (WebKit::WebContext::postMessageToInjectedBundle):
36201
36202 2010-08-01  Sam Weinig  <sam@webkit.org>
36203
36204         Reviewed by Anders Carlsson.
36205
36206         Add ability to reset frame names for WebKitTestRunner
36207         https://bugs.webkit.org/show_bug.cgi?id=43316
36208
36209         * WebProcess/InjectedBundle/API/c/WKBundlePage.cpp:
36210         (WKBundlePageClearMainFrameName):
36211         * WebProcess/InjectedBundle/API/c/WKBundlePagePrivate.h:
36212         * WebProcess/WebPage/WebPage.cpp:
36213         (WebKit::WebPage::clearMainFrameName):
36214         * WebProcess/WebPage/WebPage.h:
36215
36216 2010-08-01  Anders Carlsson  <andersca@apple.com>
36217
36218         Reviewed by Sam Weinig.
36219
36220         Minor NPRuntime fixes
36221         https://bugs.webkit.org/show_bug.cgi?id=43318
36222
36223         * WebProcess/Plugins/JSNPObject.h:
36224         (WebKit::JSNPObject::npObject):
36225         * WebProcess/Plugins/NPRuntimeObjectMap.cpp:
36226         (WebKit::NPRuntimeObjectMap::convertJSValueToNPVariant):
36227         If we see an JSNPObject, extract the NPObject.
36228
36229         * WebProcess/Plugins/Netscape/NetscapeBrowserFuncs.cpp:
36230         (WebKit::NPN_GetProperty):
36231         Don't check for whether the property exists before getting it.
36232
36233 2010-08-01  Anders Carlsson  <andersca@apple.com>
36234
36235         Reviewed by Sam Weinig.
36236
36237         Implement NPN_RemoveProperty
36238         https://bugs.webkit.org/show_bug.cgi?id=43315
36239
36240         * WebProcess/Plugins/NPJSObject.cpp:
36241         (WebKit::NPJSObject::removeProperty):
36242         Try to remove the property.
36243
36244         (WebKit::NPJSObject::npClass):
36245         Add NP_RemoveProperty.
36246
36247         (WebKit::NPJSObject::NP_RemoveProperty):
36248         Call NPJSObject::removeProperty.
36249
36250         * WebProcess/Plugins/Netscape/NetscapeBrowserFuncs.cpp:
36251         (WebKit::NPN_RemoveProperty):
36252         Call the NPClass::removeProperty function.
36253
36254 2010-07-31  Sam Weinig  <sam@webkit.org>
36255
36256         Reviewed by Darin Adler.
36257
36258         Crash due to calling StringImpl::createCFString() from non-main thread in plug-in code
36259         https://bugs.webkit.org/show_bug.cgi?id=43306
36260         <rdar://problem/8259687>
36261
36262         * UIProcess/Plugins/PluginInfoStore.cpp:
36263         (WebKit::PluginInfoStore::getMIMETypeForExtension):
36264         (WebKit::PluginInfoStore::findPlugin):
36265         * UIProcess/Plugins/PluginInfoStore.h:
36266         * UIProcess/Plugins/mac/PluginInfoStoreMac.mm:
36267         (WebKit::safeCreateCFString):
36268         (WebKit::PluginInfoStore::getMIMETypeForExtension):
36269         Bypass MIMETypeRegistry in the UIProcess until we can safely convert Strings
36270         to CFStringRefs.
36271
36272 2010-07-31  Sam Weinig  <sam@webkit.org>
36273
36274         Reviewed by Dan Bernstein.
36275
36276         Patch for https://bugs.webkit.org/show_bug.cgi?id=43305
36277         Add back WKBundleFrameCopyInnerText to fix ~50 test failures
36278         due to SVGElements not having the innerText function.
36279
36280         * WebProcess/InjectedBundle/API/c/WKBundleFrame.cpp:
36281         (WKBundleFrameCopyInnerText):
36282         * WebProcess/InjectedBundle/API/c/WKBundleFramePrivate.h:
36283         * WebProcess/WebPage/WebFrame.cpp:
36284         (WebKit::WebFrame::innerText):
36285         * WebProcess/WebPage/WebFrame.h:
36286
36287 2010-07-27  Luiz Agostini  <luiz.agostini@openbossa.org>
36288
36289         Reviewed by Darin Fisher.
36290
36291         PopupMenu refactoring in preparation to WebKit2
36292         https://bugs.webkit.org/show_bug.cgi?id=42592
36293
36294         Classes WebPopupMenu and WebSearchPopupMenu inherit from PopupMenu and
36295         SearchPopupMenu respectively. At this point they are just empty implementations.
36296
36297         * WebProcess/WebCoreSupport/WebPopupMenu.cpp: Added.
36298         (WebKit::WebPopupMenu::WebPopupMenu):
36299         (WebKit::WebPopupMenu::~WebPopupMenu):
36300         (WebKit::WebPopupMenu::disconnectClient):
36301         (WebKit::WebPopupMenu::show):
36302         (WebKit::WebPopupMenu::hide):
36303         (WebKit::WebPopupMenu::updateFromElement):
36304         * WebProcess/WebCoreSupport/WebPopupMenu.h: Added.
36305         * WebProcess/WebCoreSupport/WebSearchPopupMenu.cpp: Added.
36306         (WebKit::WebSearchPopupMenu::WebSearchPopupMenu):
36307         (WebKit::WebSearchPopupMenu::popupMenu):
36308         (WebKit::WebSearchPopupMenu::saveRecentSearches):
36309         (WebKit::WebSearchPopupMenu::loadRecentSearches):
36310         (WebKit::WebSearchPopupMenu::enabled):
36311         * WebProcess/WebCoreSupport/WebSearchPopupMenu.h: Added.
36312
36313         As ChromeClient was made responsible for providing PopupMenu and SearchPopupMenu
36314         instances, concrete classes that inherit from ChromeClient needed to be changed to
36315         implement the new methods.
36316
36317         * WebProcess/WebCoreSupport/WebChromeClient.cpp:
36318         (WebKit::WebChromeClient::selectItemWritingDirectionIsNatural):
36319         (WebKit::WebChromeClient::createPopupMenu):
36320         (WebKit::WebChromeClient::createSearchPopupMenu):
36321         * WebProcess/WebCoreSupport/WebChromeClient.h:
36322
36323         build issues:
36324
36325         * WebKit2.xcodeproj/project.pbxproj:
36326         * win/WebKit2.vcproj:
36327
36328 2010-07-31  Sheriff Bot  <webkit.review.bot@gmail.com>
36329
36330         Unreviewed, rolling out r64422.
36331         http://trac.webkit.org/changeset/64422
36332         https://bugs.webkit.org/show_bug.cgi?id=43304
36333
36334         Build fixes are needed for Snow Leopard and Windows.
36335         (Requested by lca on #webkit).
36336
36337         * WebKit2.xcodeproj/project.pbxproj:
36338         * WebProcess/WebCoreSupport/WebChromeClient.cpp:
36339         * WebProcess/WebCoreSupport/WebChromeClient.h:
36340         * WebProcess/WebCoreSupport/WebPopupMenu.cpp: Removed.
36341         * WebProcess/WebCoreSupport/WebPopupMenu.h: Removed.
36342         * WebProcess/WebCoreSupport/WebSearchPopupMenu.cpp: Removed.
36343         * WebProcess/WebCoreSupport/WebSearchPopupMenu.h: Removed.
36344         * win/WebKit2.vcproj:
36345
36346 2010-07-27  Luiz Agostini  <luiz.agostini@openbossa.org>
36347
36348         Reviewed by Darin Fisher.
36349
36350         PopupMenu refactoring in preparation to WebKit2
36351         https://bugs.webkit.org/show_bug.cgi?id=42592
36352
36353         Classes WebPopupMenu and WebSearchPopupMenu inherit from PopupMenu and
36354         SearchPopupMenu respectively. At this point they are just empty implementations.
36355
36356         * WebProcess/WebCoreSupport/WebPopupMenu.cpp: Added.
36357         (WebKit::WebPopupMenu::WebPopupMenu):
36358         (WebKit::WebPopupMenu::~WebPopupMenu):
36359         (WebKit::WebPopupMenu::disconnectClient):
36360         (WebKit::WebPopupMenu::show):
36361         (WebKit::WebPopupMenu::hide):
36362         (WebKit::WebPopupMenu::updateFromElement):
36363         * WebProcess/WebCoreSupport/WebPopupMenu.h: Added.
36364         * WebProcess/WebCoreSupport/WebSearchPopupMenu.cpp: Added.
36365         (WebKit::WebSearchPopupMenu::WebSearchPopupMenu):
36366         (WebKit::WebSearchPopupMenu::popupMenu):
36367         (WebKit::WebSearchPopupMenu::saveRecentSearches):
36368         (WebKit::WebSearchPopupMenu::loadRecentSearches):
36369         (WebKit::WebSearchPopupMenu::enabled):
36370         * WebProcess/WebCoreSupport/WebSearchPopupMenu.h: Added.
36371
36372         As ChromeClient was made responsible for providing PopupMenu and SearchPopupMenu
36373         instances, concrete classes that inherit from ChromeClient needed to be changed to
36374         implement the new methods.
36375
36376         * WebProcess/WebCoreSupport/WebChromeClient.cpp:
36377         (WebKit::WebChromeClient::selectItemWritingDirectionIsNatural):
36378         (WebKit::WebChromeClient::createPopupMenu):
36379         (WebKit::WebChromeClient::createSearchPopupMenu):
36380         * WebProcess/WebCoreSupport/WebChromeClient.h:
36381
36382         build issues:
36383
36384         * WebKit2.xcodeproj/project.pbxproj:
36385         * win/WebKit2.vcproj:
36386
36387 2010-07-30  Darin Fisher  <darin@chromium.org>
36388
36389         Reviewed by Darin Adler.
36390
36391         Eliminate BackForwardList::pushStateItem
36392         https://bugs.webkit.org/show_bug.cgi?id=43282
36393
36394         * WebProcess/WebPage/WebBackForwardListProxy.cpp:
36395         * WebProcess/WebPage/WebBackForwardListProxy.h:
36396
36397 2010-07-30  Joseph Pecoraro  <joepeck@webkit.org>
36398
36399         Reviewed by David Kilzer.
36400
36401         Limit ApplicationCache Total and Per-Origin Storage Capacity (Quotas)
36402         https://bugs.webkit.org/show_bug.cgi?id=40627
36403
36404         * WebProcess/WebCoreSupport/WebChromeClient.cpp:
36405         (WebKit::WebChromeClient::reachedApplicationCacheOriginQuota):
36406         * WebProcess/WebCoreSupport/WebChromeClient.h:
36407
36408 2010-07-30  Sam Weinig  <sam@webkit.org>
36409
36410         Reviewed by Maciej Stachowiak.
36411
36412         Patch for https://bugs.webkit.org/show_bug.cgi?id=43290
36413         Add structured message passing from the injected bundle to UIProcess
36414
36415         * Platform/CoreIPC/MessageID.h:
36416         * Shared/CoreIPCSupport/WebContextMessageKinds.h: Added.
36417         * Shared/CoreIPCSupport/WebProcessProxyMessageKinds.h:
36418         (WebProcessProxyMessage::):
36419         * UIProcess/API/C/WKContext.h:
36420         * UIProcess/WebContext.cpp:
36421         (WebKit::):
36422         (WebKit::PostMessageEncoder::PostMessageDecoder::PostMessageDecoder):
36423         (WebKit::PostMessageEncoder::PostMessageDecoder::decode):
36424         (WebKit::WebContext::didReceiveMessageFromInjectedBundle):
36425         (WebKit::WebContext::didReceiveMessage):
36426         * UIProcess/WebContext.h:
36427         * UIProcess/WebContextInjectedBundleClient.cpp:
36428         (WebKit::WebContextInjectedBundleClient::didReceiveMessageFromInjectedBundle):
36429         * UIProcess/WebContextInjectedBundleClient.h:
36430         * UIProcess/WebProcessProxy.cpp:
36431         (WebKit::WebProcessProxy::didReceiveMessage):
36432         (WebKit::WebProcessProxy::didReceiveSyncMessage):
36433         * UIProcess/WebProcessProxy.h:
36434         * WebKit2.xcodeproj/project.pbxproj:
36435         * WebProcess/InjectedBundle/API/c/WKBundle.cpp:
36436         (WKBundlePostMessage):
36437         * WebProcess/InjectedBundle/API/c/WKBundle.h:
36438         * WebProcess/InjectedBundle/InjectedBundle.cpp:
36439         (WebKit::):
36440         (WebKit::InjectedBundle::InjectedBundle):
36441         (WebKit::InjectedBundle::~InjectedBundle):
36442         (WebKit::InjectedBundle::initializeClient):
36443         (WebKit::InjectedBundle::postMessage):
36444         (WebKit::InjectedBundle::setShouldTrackVisitedLinks):
36445         (WebKit::InjectedBundle::removeAllVisitedLinks):
36446         (WebKit::InjectedBundle::didCreatePage):
36447         (WebKit::InjectedBundle::willDestroyPage):
36448         (WebKit::InjectedBundle::didReceiveMessage):
36449         * WebProcess/InjectedBundle/InjectedBundle.h:
36450
36451 2010-07-30  Andy Estes  <aestes@apple.com>
36452
36453         Reviewed by David Kilzer.
36454
36455         Add support to Xcode for compiling WebKit against iOS SDKs.
36456         https://bugs.webkit.org/show_bug.cgi?id=42796
36457
36458         * Configurations/FeatureDefines.xcconfig:
36459
36460 2010-07-30  Brady Eidson  <beidson@apple.com>
36461
36462         Reviewed by Sam Weinig.
36463
36464         Cast the return value for the templated ImmutableArray::at().
36465
36466         * Shared/ImmutableArray.h:
36467         (WebKit::ImmutableArray::at):
36468
36469 2010-07-30  Sam Weinig  <sam@webkit.org>
36470
36471         Reviewed by Anders Carlsson.
36472
36473         Patch for https://bugs.webkit.org/show_bug.cgi?id=43283
36474         Add APIObject template introspection support.
36475
36476         Add a way to get the type the APIObject::Type from the APIObject subclass typenames
36477         for template fun. Use this to make a type checking version of ImmutableArray::at.
36478
36479         * Shared/ImmutableArray.h:
36480         (WebKit::ImmutableArray::at):
36481         (WebKit::ImmutableArray::type):
36482         * Shared/WebString.h:
36483         (WebKit::WebString::type):
36484         * Shared/WebURL.h:
36485         (WebKit::WebURL::type):
36486         * UIProcess/API/C/WKArray.cpp:
36487         (WKArrayGetTypeID):
36488         * UIProcess/API/C/WKBackForwardList.cpp:
36489         (WKBackForwardListGetTypeID):
36490         * UIProcess/API/C/WKBackForwardListItem.cpp:
36491         (WKBackForwardListItemGetTypeID):
36492         * UIProcess/API/C/WKContext.cpp:
36493         (WKContextGetTypeID):
36494         * UIProcess/API/C/WKFrame.cpp:
36495         (WKFrameGetTypeID):
36496         * UIProcess/API/C/WKFramePolicyListener.cpp:
36497         (WKFramePolicyListenerGetTypeID):
36498         * UIProcess/API/C/WKNavigationData.cpp:
36499         (WKNavigationDataGetTypeID):
36500         * UIProcess/API/C/WKPage.cpp:
36501         (WKPageGetTypeID):
36502         * UIProcess/API/C/WKPageNamespace.cpp:
36503         (WKPageNamespaceGetTypeID):
36504         * UIProcess/API/C/WKPreferences.cpp:
36505         (WKPreferencesGetTypeID):
36506         * UIProcess/API/C/WKString.cpp:
36507         (WKStringGetTypeID):
36508         * UIProcess/API/C/WKURL.cpp:
36509         (WKURLGetTypeID):
36510         * UIProcess/WebBackForwardList.h:
36511         (WebKit::WebBackForwardList::type):
36512         * UIProcess/WebBackForwardListItem.h:
36513         (WebKit::WebBackForwardListItem::type):
36514         * UIProcess/WebContext.h:
36515         (WebKit::WebContext::type):
36516         * UIProcess/WebFramePolicyListenerProxy.h:
36517         (WebKit::WebFramePolicyListenerProxy::type):
36518         * UIProcess/WebFrameProxy.h:
36519         (WebKit::WebFrameProxy::type):
36520         * UIProcess/WebNavigationData.h:
36521         (WebKit::WebNavigationData::type):
36522         * UIProcess/WebPageNamespace.h:
36523         (WebKit::WebPageNamespace::type):
36524         * UIProcess/WebPageProxy.h:
36525         (WebKit::WebPageProxy::type):
36526         * UIProcess/WebPreferences.h:
36527         (WebKit::WebPreferences::type):
36528         * WebProcess/InjectedBundle/API/c/WKBundle.cpp:
36529         (WKBundleGetTypeID):
36530         * WebProcess/InjectedBundle/API/c/WKBundleFrame.cpp:
36531         (WKBundleFrameGetTypeID):
36532         * WebProcess/InjectedBundle/API/c/WKBundlePage.cpp:
36533         (WKBundlePageGetTypeID):
36534         * WebProcess/InjectedBundle/InjectedBundle.h:
36535         (WebKit::InjectedBundle::type):
36536         * WebProcess/WebPage/WebFrame.h:
36537         (WebKit::WebFrame::type):
36538         * WebProcess/WebPage/WebPage.h:
36539         (WebKit::WebPage::type):
36540
36541 2010-07-30  Sam Weinig  <sam@webkit.org>
36542
36543         Reviewed by Anders Carlsson.
36544
36545         Patch for https://bugs.webkit.org/show_bug.cgi?id=43275
36546         Make WKArrayRef more usable.
36547
36548         - Add Create functions.
36549         - Make WKArrayGetItemAtIndex return a WKTypeRef.
36550
36551         * UIProcess/API/C/WKArray.cpp:
36552         (WKArrayCreate):
36553         (WKArrayCreateAdoptingValues):
36554         (WKArrayGetItemAtIndex):
36555         * UIProcess/API/C/WKArray.h:
36556
36557 2010-07-30  Ada Chan  <adachan@apple.com>
36558
36559         Reviewed by John Sullivan.
36560
36561         Fix issue with populating the back list when limit is a huge number.
36562         https://bugs.webkit.org/show_bug.cgi?id=43270
36563
36564         * UIProcess/WebBackForwardList.cpp:
36565         (WebKit::WebBackForwardList::backListAsImmutableArrayWithLimit):
36566
36567 2010-07-29  Sam Weinig  <sam@webkit.org>
36568
36569         Reviewed by Anders Carlsson.
36570
36571         Patch for https://bugs.webkit.org/show_bug.cgi?id=43274
36572         Add first pass of structured message passing.
36573
36574         - Only supports passing messages from the UIProcess -> InjectedBundle
36575         - Only supports passing Strings, Arrays, and WebPage references (NOTE: There
36576           currently isn't a way to make an array).
36577         - Changed ImmutableArray to operate on APIObjects instead of void*'s and 
36578           removed the retain/release abstraction.
36579
36580         * Platform/CoreIPC/MessageID.h:
36581         (CoreIPC::):
36582         * Shared/CoreIPCSupport/InjectedBundleMessageKinds.h: Added.
36583         (InjectedBundleMessage::):
36584         (CoreIPC::):
36585         * Shared/CoreIPCSupport/WebProcessMessageKinds.h:
36586         (WebProcessMessage::):
36587         * Shared/ImmutableArray.cpp:
36588         (WebKit::ImmutableArray::ImmutableArray):
36589         (WebKit::ImmutableArray::~ImmutableArray):
36590         * Shared/ImmutableArray.h:
36591         (WebKit::ImmutableArray::create):
36592         (WebKit::ImmutableArray::adopt):
36593         (WebKit::ImmutableArray::at):
36594         * UIProcess/API/C/WKBase.h:
36595         * UIProcess/API/C/WKContext.cpp:
36596         (WKContextPostMessageToInjectedBundle):
36597         * UIProcess/API/C/WKContext.h:
36598         * UIProcess/API/C/WKType.cpp:
36599         (WKGetTypeID):
36600         * UIProcess/API/C/WebKit2.h:
36601         * UIProcess/WebBackForwardList.cpp:
36602         (WebKit::WebBackForwardList::backListAsImmutableArrayWithLimit):
36603         (WebKit::WebBackForwardList::forwardListAsImmutableArrayWithLimit):
36604         * UIProcess/WebContext.cpp:
36605         (WebKit::WebContext::postMessageToInjectedBundle):
36606         (WebKit::WebContext::didReceiveMessageFromInjectedBundle):
36607         * UIProcess/WebContext.h:
36608         * WebKit2.xcodeproj/project.pbxproj:
36609         * WebProcess/InjectedBundle/API/c/WKBundle.h:
36610         * WebProcess/InjectedBundle/InjectedBundle.cpp:
36611         (WebKit::InjectedBundle::didReceiveMessage):
36612         * WebProcess/InjectedBundle/InjectedBundle.h:
36613         * WebProcess/WebPage/WebFrame.cpp:
36614         (WebKit::WebFrame::childFrames):
36615         * WebProcess/WebProcess.cpp:
36616         (WebKit::WebProcess::didReceiveMessage):
36617         * WebProcess/WebProcess.h:
36618         * win/WebKit2.vcproj:
36619
36620 2010-07-30  Anders Carlsson  <andersca@apple.com>
36621
36622         Reviewed by Sam Weinig.
36623
36624         Implement NPN_Evaluate
36625         https://bugs.webkit.org/show_bug.cgi?id=43268
36626
36627         * WebProcess/Plugins/NPRuntimeObjectMap.cpp:
36628         (WebKit::NPRuntimeObjectMap::evaluate):
36629         Evaluate the passed in string.
36630
36631         * WebProcess/Plugins/Netscape/NetscapeBrowserFuncs.cpp:
36632         (WebKit::NPN_Evaluate):
36633         Call NetscapePlugin::evaluate.
36634
36635         * WebProcess/Plugins/Netscape/NetscapePlugin.cpp:
36636         (WebKit::NetscapePlugin::evaluate):
36637         Call PluginController::evaluate.
36638
36639         * WebProcess/Plugins/PluginController.h:
36640         Add evaluate pure virtual member function.
36641
36642         * WebProcess/Plugins/PluginView.cpp:
36643         (WebKit::PluginView::evaluate):
36644         Update the popup window state and call NPRuntimeObjectMap::evaluate.
36645
36646 2010-07-30  Anders Carlsson  <andersca@apple.com>
36647
36648         Reviewed by Sam Weinig.
36649
36650         Implement NPN_InvokeDefault
36651         https://bugs.webkit.org/show_bug.cgi?id=43266
36652
36653         * WebProcess/Plugins/JSNPObject.cpp:
36654         (WebKit::JSNPObject::JSNPObject):
36655         Remove ExecState parameter.
36656
36657         (WebKit::JSNPObject::callObject):
36658         Call the NPClass::invokeDefault function.
36659
36660         (WebKit::callNPJSObject):
36661         Call JSNPObject::callObject.
36662
36663         (WebKit::JSNPObject::getCallData):
36664         Check if the NPClass has an invokeDefault function.
36665
36666         * WebProcess/Plugins/JSNPObject.h:
36667         * WebProcess/Plugins/NPRuntimeObjectMap.cpp:
36668         (WebKit::NPRuntimeObjectMap::getOrCreateJSObject):
36669         Remove ExecState parameter.
36670
36671         (WebKit::NPRuntimeObjectMap::convertNPVariantToJSValue):
36672         Remove ExecState parameter.
36673
36674         * WebProcess/Plugins/PluginView.cpp:
36675         (WebKit::PluginView::scriptObject):
36676         Remove ExecState parameter.
36677
36678 2010-07-30  Adam Roben  <aroben@apple.com>
36679
36680         Roll our r64361 and r64363
36681
36682         We can't make these changes until QuartzCore.lib is included in
36683         WebKitSupportLibrary.
36684
36685 2010-07-30  Adam Roben  <aroben@apple.com>
36686
36687         Windows build fix
36688
36689         * win/WebKit2Apple.vsprops: Always link against QuartzCore, since
36690         WebKitSystemInterface requires it.
36691
36692 2010-07-30  Balazs Kelemen  <kb@inf.u-szeged.hu>
36693
36694         Unreviewed build fix.
36695
36696         [Qt] Build fix for recent API changes in WebKit2.
36697
36698         * UIProcess/API/cpp/qt/WKStringQt.cpp:
36699         (WKStringCopyQString):
36700         * UIProcess/API/cpp/qt/WKURLQt.cpp:
36701         (WKURLCopyQUrl):
36702         * UIProcess/API/qt/qwkpage.cpp:
36703         (QWKPage::QWKPage):
36704
36705 2010-07-29  Brady Eidson  <beidson@apple.com>
36706
36707         Reviewed by Sam Weinig.
36708
36709         Setting empty document schemes on the WKContext shouldn't start the WebProcess
36710         <rdar://problem/8253734> and https://bugs.webkit.org/show_bug.cgi?id=43222
36711         
36712         * UIProcess/WebContext.cpp:
36713         (WebKit::WebContext::ensureWebProcess):
36714         (WebKit::WebContext::registerURLSchemeAsEmptyDocument):
36715         * UIProcess/WebContext.h:
36716
36717 2010-07-29  Brady Eidson  <beidson@apple.com>
36718
36719         Reviewed by Sam Weinig.
36720
36721         Make all public facing client setters take const pointers
36722         https://bugs.webkit.org/show_bug.cgi?id=43219
36723
36724         * UIProcess/API/C/WKContext.cpp:
36725         (WKContextSetInjectedBundleClient):
36726         (WKContextSetHistoryClient):
36727         * UIProcess/API/C/WKContext.h:
36728
36729         * UIProcess/API/C/WKPage.cpp:
36730         (WKPageSetPageLoaderClient):
36731         (WKPageSetPagePolicyClient):
36732         (WKPageSetPageUIClient):
36733         * UIProcess/API/C/WKPage.h:
36734
36735         * UIProcess/WebContext.cpp:
36736         (WebKit::WebContext::initializeInjectedBundleClient):
36737         (WebKit::WebContext::initializeHistoryClient):
36738         * UIProcess/WebContext.h:
36739
36740         * UIProcess/WebContextInjectedBundleClient.cpp:
36741         (WebKit::WebContextInjectedBundleClient::initialize):
36742         * UIProcess/WebContextInjectedBundleClient.h:
36743
36744         * UIProcess/WebHistoryClient.cpp:
36745         (WebKit::WebHistoryClient::initialize):
36746         * UIProcess/WebHistoryClient.h:
36747
36748         * UIProcess/WebLoaderClient.cpp:
36749         (WebKit::WebLoaderClient::initialize):
36750         * UIProcess/WebLoaderClient.h:
36751
36752         * UIProcess/WebPageProxy.cpp:
36753         (WebKit::WebPageProxy::initializeLoaderClient):
36754         (WebKit::WebPageProxy::initializePolicyClient):
36755         (WebKit::WebPageProxy::initializeUIClient):
36756         * UIProcess/WebPageProxy.h:
36757
36758         * UIProcess/WebPolicyClient.cpp:
36759         (WebKit::WebPolicyClient::initialize):
36760         * UIProcess/WebPolicyClient.h:
36761
36762         * UIProcess/WebUIClient.cpp:
36763         (WebKit::WebUIClient::initialize):
36764         * UIProcess/WebUIClient.h:
36765
36766 2010-07-29  Anders Carlsson  <andersca@apple.com>
36767
36768         Reviewed by Sam Weinig.
36769
36770         Implement NPN_SetProperty
36771         https://bugs.webkit.org/show_bug.cgi?id=43217
36772
36773         * WebProcess/Plugins/NPJSObject.cpp:
36774         (WebKit::NPJSObject::setProperty):
36775         Convert the NPVariant to a JSValue and set it on the underlying JSObject.
36776
36777         (WebKit::NPJSObject::NP_SetProperty):
36778         Call NPJSObject::setProperty.
36779
36780         * WebProcess/Plugins/Netscape/NetscapeBrowserFuncs.cpp:
36781         (WebKit::NPN_GetProperty):
36782         Remove unused parameter name.
36783
36784         (WebKit::NPN_SetProperty):
36785         Call the NPClass::setProperty function.
36786
36787 2010-07-29  Anders Carlsson  <andersca@apple.com>
36788
36789         Reviewed by Sam Weinig.
36790
36791         Implement NPN_Enumerate
36792         https://bugs.webkit.org/show_bug.cgi?id=43215
36793
36794         * WebProcess/Plugins/JSNPObject.cpp:
36795         (WebKit::npIdentifierFromIdentifier):
36796         Get the UTF-8 string representation instead of the lossy ASCII representation.
36797         
36798         (WebKit::JSNPObject::getOwnPropertyNames):
36799         Implement by calling the NPClass::enumerate function.
36800
36801         * WebProcess/Plugins/JSNPObject.h:
36802         * WebProcess/Plugins/NPJSObject.cpp:
36803         (WebKit::NPJSObject::enumerate):
36804         Implement by calling JSObject::getPropertyNames.
36805
36806         (WebKit::NPJSObject::npClass):
36807         (WebKit::NPJSObject::NP_Enumerate):
36808         Call NPJSObject::enumerate.
36809
36810         * WebProcess/Plugins/NPJSObject.h:
36811         * WebProcess/Plugins/NPRuntimeUtilities.cpp:
36812         (WebKit::createNPObject):
36813         Fix a comment.
36814
36815         * WebProcess/Plugins/Netscape/NetscapeBrowserFuncs.cpp:
36816         (WebKit::NPN_Enumerate):
36817         Call the NPClass::enumerate function.
36818
36819 2010-07-29  John Sullivan  <sullivan@apple.com>
36820
36821         <https://bugs.webkit.org/show_bug.cgi?id=43203>
36822         WebBackForwardList::back/ForwardListWithLimit() crashes if passed a limit larger than max int
36823
36824         Reviewed by Sam Weinig.
36825
36826         * UIProcess/WebBackForwardList.cpp:
36827         (WebKit::WebBackForwardList::backListAsImmutableArrayWithLimit):
36828         Fixed casting so that a large unsigned won't become a negative int.
36829         (WebKit::WebBackForwardList::forwardListAsImmutableArrayWithLimit):
36830         Ditto.
36831
36832 2010-07-29  Anders Carlsson  <andersca@apple.com>
36833
36834         Reviewed by Sam Weinig.
36835
36836         Implement NPN_Status
36837         https://bugs.webkit.org/show_bug.cgi?id=43205
36838
36839         * WebProcess/Plugins/Netscape/NetscapeBrowserFuncs.cpp:
36840         (WebKit::NPN_Status):
36841         Convert the message char* to a String and call NetscapePlugin::setStatusbarText.
36842
36843         * WebProcess/Plugins/Netscape/NetscapePlugin.cpp:
36844         (WebKit::NetscapePlugin::setStatusbarText):
36845         Call PluginController::setStatusbarText.
36846     
36847         * WebProcess/Plugins/PluginController.h:
36848         Add setStatusbarText.
36849
36850         * WebProcess/Plugins/PluginView.cpp:
36851         (WebKit::PluginView::setStatusbarText):
36852         Call the Chrome member function.
36853
36854 2010-07-29  Adam Roben  <aroben@apple.com>
36855
36856         Always say "plugins directory" when referring to a directory
36857         containing one or more plugins
36858
36859         Fixes <http://webkit.org/b/43197> WebKit2 often says "plugin
36860         directory" when it means "plugins directory"
36861
36862         Reviewed by John Sullivan.
36863
36864         * UIProcess/API/C/WKContext.cpp:
36865         (_WKContextSetAdditionalPluginsDirectory):
36866         * UIProcess/API/C/WKContextPrivate.h:
36867         Renamed from _WKContextSetAdditionalPluginDirectory.
36868
36869         * UIProcess/Plugins/PluginInfoStore.cpp:
36870         (WebKit::PluginInfoStore::setAdditionalPluginsDirectories): Renamed
36871         from setAdditionalPluginDirectories.
36872         (WebKit::PluginInfoStore::loadPluginsIfNecessary): Updated for rename.
36873
36874         * UIProcess/Plugins/PluginInfoStore.h: Renamed
36875         m_additionalPluginDirectories to m_additionalPluginsDirectories.
36876
36877         * UIProcess/Plugins/mac/PluginInfoStoreMac.mm:
36878         (WebKit::PluginInfoStore::pluginsDirectories):
36879         * UIProcess/Plugins/qt/PluginInfoStoreQt.cpp:
36880         (WebKit::PluginInfoStore::pluginsDirectories):
36881         * UIProcess/Plugins/win/PluginInfoStoreWin.cpp:
36882         (WebKit::PluginInfoStore::pluginsDirectories):
36883         Renamed from pluginDirectories.
36884
36885         * UIProcess/WebContext.cpp:
36886         (WebKit::WebContext::setAdditionalPluginsDirectory):
36887         * UIProcess/WebContext.h:
36888         Renamed from setAdditionalPluginDirectory.
36889
36890 2010-07-29  Adam Roben  <aroben@apple.com>
36891
36892         Always say "directory" when referring to a plugin directory
36893
36894         Fixes <http://webkit.org/b/43195> WebKit2 often says "plugin path"
36895         when it means "plugin directory"
36896
36897         Reviewed by John Sullivan.
36898
36899         * UIProcess/API/C/WKContext.cpp:
36900         (_WKContextSetAdditionalPluginDirectory):
36901         * UIProcess/API/C/WKContextPrivate.h:
36902         Renamed from _WKContextSetAdditionalPluginPath.
36903
36904         * UIProcess/Plugins/PluginInfoStore.cpp:
36905         (WebKit::PluginInfoStore::setAdditionalPluginDirectories): Renamed
36906         from setAdditionalPluginPaths.
36907         (WebKit::PluginInfoStore::loadPluginsIfNecessary): Updated for rename.
36908
36909         * UIProcess/Plugins/PluginInfoStore.h: Renamed m_additionalPluginPaths
36910         to m_additionalPluginDirectories.
36911
36912         * UIProcess/WebContext.cpp:
36913         (WebKit::WebContext::setAdditionalPluginDirectory):
36914         * UIProcess/WebContext.h:
36915         Renamed from setAdditionalPluginPath, and updated for PluginInfoStore
36916         rename.
36917
36918 2010-07-29  Adam Roben  <aroben@apple.com>
36919
36920         Remove PluginInfoStore::mimeTypeFromExtension
36921
36922         WebCore::MIMETypeRegistry already provides a cross-platform interface
36923         for this.
36924
36925         Fixes <http://webkit.org/b/43188>
36926         PluginInfoStore::mimeTypeFromExtension is unnecessary
36927
36928         Reviewed by Nikolas Zimmermann.
36929
36930         * UIProcess/Plugins/PluginInfoStore.cpp:
36931         (WebKit::PluginInfoStore::findPlugin): Changed to use
36932         MIMETypeRegistry.
36933
36934         * UIProcess/Plugins/PluginInfoStore.h:
36935         * UIProcess/Plugins/mac/PluginInfoStoreMac.mm:
36936         * UIProcess/Plugins/qt/PluginInfoStoreQt.cpp:
36937         * UIProcess/Plugins/win/PluginInfoStoreWin.cpp:
36938         Removed mimeTypeFromExtension.
36939
36940 2010-07-28  Sam Weinig  <sam@webkit.org>
36941
36942         Another Windows build fix.
36943
36944         * UIProcess/API/C/WKBase.h:
36945         * win/WebKit2Generated.make:
36946
36947 2010-07-28  Sam Weinig  <sam@webkit.org>
36948
36949         Fix builds.
36950
36951         * UIProcess/API/C/WKAPICast.h:
36952         (WebKit::ProxyingRefPtr::operator APIType):
36953         (toURLRef):
36954         (toCopiedRef):
36955         (toCopiedURLRef):
36956         * UIProcess/win/WebView.h:
36957         (WebKit::WebView::type):
36958
36959 2010-07-28  Sam Weinig  <sam@webkit.org>
36960
36961         Reviewed by Darin Adler.
36962
36963         Patch for https://bugs.webkit.org/show_bug.cgi?id=43163
36964         Add a CF-style base type (WKTypeRef) as a base for polymorphic functions.
36965
36966         - Add first polymorphic function, WKGetTypeID.
36967         - Add functions to each WK type to get their respective TypeIDs.
36968         - Adds WebURL to complement WebString.
36969
36970         * Shared/APIObject.h:
36971         (WebKit::APIObject::):
36972         (WebKit::APIObject::~APIObject):
36973         * Shared/ImmutableArray.h:
36974         (WebKit::ImmutableArray::type):
36975         * Shared/WebString.h:
36976         (WebKit::WebString::type):
36977         * Shared/WebURL.h: Added.
36978         (WebKit::WebURL::create):
36979         (WebKit::WebURL::type):
36980         (WebKit::WebURL::isNull):
36981         (WebKit::WebURL::isEmpty):
36982         (WebKit::WebURL::string):
36983         (WebKit::WebURL::WebURL):
36984         * UIProcess/API/C/WKAPICast.h:
36985         (WebKit::ProxyingRefPtr::ProxyingRefPtr):
36986         (WebKit::ProxyingRefPtr::operator APIType):
36987         (toRef):
36988         (toURLRef):
36989         (toCopiedURLRef):
36990         * UIProcess/API/C/WKArray.cpp:
36991         (WKArrayGetTypeID):
36992         * UIProcess/API/C/WKArray.h:
36993         * UIProcess/API/C/WKBackForwardList.cpp:
36994         (WKBackForwardListGetTypeID):
36995         * UIProcess/API/C/WKBackForwardList.h:
36996         * UIProcess/API/C/WKBackForwardListItem.cpp:
36997         (WKBackForwardListItemGetTypeID):
36998         * UIProcess/API/C/WKBackForwardListItem.h:
36999         * UIProcess/API/C/WKBase.h:
37000         * UIProcess/API/C/WKContext.cpp:
37001         (WKContextGetTypeID):
37002         * UIProcess/API/C/WKContext.h:
37003         * UIProcess/API/C/WKFrame.cpp:
37004         (WKFrameGetTypeID):
37005         * UIProcess/API/C/WKFrame.h:
37006         * UIProcess/API/C/WKFramePolicyListener.cpp:
37007         (WKFramePolicyListenerGetTypeID):
37008         * UIProcess/API/C/WKFramePolicyListener.h:
37009         * UIProcess/API/C/WKNavigationData.cpp:
37010         (WKNavigationDataGetTypeID):
37011         * UIProcess/API/C/WKNavigationData.h:
37012         * UIProcess/API/C/WKPage.cpp:
37013         (WKPageGetTypeID):
37014         * UIProcess/API/C/WKPage.h:
37015         * UIProcess/API/C/WKPageNamespace.cpp:
37016         (WKPageNamespaceGetTypeID):
37017         * UIProcess/API/C/WKPageNamespace.h:
37018         * UIProcess/API/C/WKPreferences.cpp:
37019         (WKPreferencesGetTypeID):
37020         * UIProcess/API/C/WKPreferences.h:
37021         * UIProcess/API/C/WKString.cpp:
37022         (WKStringGetTypeID):
37023         * UIProcess/API/C/WKString.h:
37024         * UIProcess/API/C/WKType.cpp: Added.
37025         (WKGetTypeID):
37026         * UIProcess/API/C/WKType.h: Added.
37027         * UIProcess/API/C/WKURL.cpp:
37028         (WKURLGetTypeID):
37029         * UIProcess/API/C/WKURL.h:
37030         * UIProcess/API/win/WKView.cpp:
37031         (WKViewGetTypeID):
37032         * UIProcess/API/win/WKView.h:
37033         * UIProcess/WebBackForwardList.h:
37034         (WebKit::WebBackForwardList::type):
37035         * UIProcess/WebBackForwardListItem.h:
37036         (WebKit::WebBackForwardListItem::type):
37037         * UIProcess/WebContext.h:
37038         (WebKit::WebContext::type):
37039         * UIProcess/WebFramePolicyListenerProxy.h:
37040         (WebKit::WebFramePolicyListenerProxy::type):
37041         * UIProcess/WebFrameProxy.h:
37042         (WebKit::WebFrameProxy::type):
37043         * UIProcess/WebNavigationData.h:
37044         (WebKit::WebNavigationData::type):
37045         * UIProcess/WebPageNamespace.h:
37046         (WebKit::WebPageNamespace::type):
37047         * UIProcess/WebPageProxy.h:
37048         (WebKit::WebPageProxy::type):
37049         * UIProcess/WebPreferences.h:
37050         (WebKit::WebPreferences::type):
37051         * WebKit2.xcodeproj/project.pbxproj:
37052         * WebProcess/InjectedBundle/API/c/WKBundle.cpp:
37053         (WKBundleGetTypeID):
37054         * WebProcess/InjectedBundle/API/c/WKBundle.h:
37055         * WebProcess/InjectedBundle/API/c/WKBundleFrame.cpp:
37056         (WKBundleFrameGetTypeID):
37057         * WebProcess/InjectedBundle/API/c/WKBundleFrame.h:
37058         * WebProcess/InjectedBundle/API/c/WKBundlePage.cpp:
37059         (WKBundlePageGetTypeID):
37060         (WKBundlePageSetEditorClient):
37061         (WKBundlePageSetLoaderClient):
37062         (WKBundlePageSetUIClient):
37063         * WebProcess/InjectedBundle/API/c/WKBundlePage.h:
37064         * WebProcess/WebPage/WebFrame.h:
37065         (WebKit::WebFrame::type):
37066         * WebProcess/WebPage/WebPage.h:
37067         (WebKit::WebPage::type):
37068         * win/WebKit2.vcproj:
37069
37070 2010-07-28  Darin Adler  <darin@apple.com>
37071
37072         Reviewed by Sam Weinig.
37073
37074         WebKitTestRunner needs to support layoutTestController.execCommand
37075         <https://bugs.webkit.org/show_bug.cgi?id=42538>
37076
37077         WebKitTestRunner needs layoutTestController.isCommandEnabled
37078         <https://bugs.webkit.org/show_bug.cgi?id=42671>
37079
37080         * WebProcess/InjectedBundle/API/c/WKBundlePage.cpp:
37081         (WKBundlePageExecuteEditingCommand): Added.
37082         (WKBundlePageIsEditingCommandEnabled): Added.
37083         * WebProcess/InjectedBundle/API/c/WKBundlePagePrivate.h: Ditto.
37084
37085         * WebProcess/WebPage/WebPage.cpp:
37086         (WebKit::WebPage::executeEditingCommand): Added.
37087         (WebKit::WebPage::isEditingCommandEnabled): Added.
37088         * WebProcess/WebPage/WebPage.h: Ditto.
37089
37090 2010-07-28  Anders Carlsson  <andersca@apple.com>
37091
37092         Fix 64-bit build.
37093
37094         * WebProcess/Plugins/Netscape/NetscapeBrowserFuncs.cpp:
37095         (WebKit::NPN_GetValue):
37096
37097 2010-07-28  Brady Eidson  <beidson@apple.com>
37098
37099         Reviewed by Darin Adler.
37100
37101         First pass at visited link support for WK2
37102         https://bugs.webkit.org/show_bug.cgi?id=43157
37103
37104         * Shared/CoreIPCSupport/WebPageProxyMessageKinds.h:
37105         (WebPageProxyMessage::):
37106         * Shared/CoreIPCSupport/WebProcessMessageKinds.h:
37107         (WebProcessMessage::):
37108         * Shared/CoreIPCSupport/WebProcessProxyMessageKinds.h:
37109         (WebProcessProxyMessage::):
37110
37111         Move HistoryClient support from the page...:
37112         * UIProcess/API/C/WKPage.cpp:
37113         * UIProcess/API/C/WKPage.h:
37114         
37115         ...to the Context
37116         * UIProcess/API/C/WKContext.cpp:
37117         (WKContextSetHistoryClient):
37118         * UIProcess/API/C/WKContext.h:
37119
37120         * UIProcess/WebContext.cpp:
37121         (WebKit::WebContext::initializeHistoryClient):
37122         (WebKit::WebContext::ensureWebProcess): When a new WebProcess is created, set its "should track visited links" mode.
37123         (WebKit::WebContext::didNavigateWithNavigationData):
37124         (WebKit::WebContext::didPerformClientRedirect):
37125         (WebKit::WebContext::didPerformServerRedirect):
37126         (WebKit::WebContext::didUpdateHistoryTitle):
37127         (WebKit::WebContext::populateVisitedLinks):
37128         * UIProcess/WebContext.h:
37129         (WebKit::WebContext::hasValidProcess):
37130
37131         * UIProcess/WebHistoryClient.cpp:
37132         (WebKit::WebHistoryClient::initialize):
37133         (WebKit::WebHistoryClient::didNavigateWithNavigationData):
37134         (WebKit::WebHistoryClient::didPerformClientRedirect):
37135         (WebKit::WebHistoryClient::didPerformServerRedirect):
37136         (WebKit::WebHistoryClient::didUpdateHistoryTitle):
37137         (WebKit::WebHistoryClient::populateVisitedLinks):
37138         * UIProcess/WebHistoryClient.h:
37139         (WebKit::WebHistoryClient::shouldTrackVisitedLinks):
37140
37141         * UIProcess/WebPageProxy.cpp:
37142         (WebKit::WebPageProxy::didReceiveMessage):
37143         * UIProcess/WebPageProxy.h:
37144
37145         * UIProcess/WebProcessProxy.cpp:
37146         (WebKit::WebProcessProxy::didReceiveMessage):
37147         (WebKit::WebProcessProxy::didReceiveSyncMessage):
37148
37149         * WebProcess/WebCoreSupport/WebChromeClient.cpp:
37150         (WebKit::WebChromeClient::populateVisitedLinks):
37151
37152         * WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
37153         (WebKit::WebFrameLoaderClient::updateGlobalHistory):
37154         (WebKit::WebFrameLoaderClient::updateGlobalHistoryRedirectLinks):
37155         (WebKit::WebFrameLoaderClient::setTitle):
37156
37157         * WebProcess/WebProcess.cpp:
37158         (WebKit::WebProcess::didReceiveMessage):
37159
37160 2010-07-28  Anders Carlsson  <andersca@apple.com>
37161
37162         Reviewed by Sam Weinig.
37163
37164         Add JSNPObject::getConstructData
37165         https://bugs.webkit.org/show_bug.cgi?id=43165
37166
37167         * WebProcess/Plugins/JSNPObject.cpp:
37168         (WebKit::JSNPObject::callMethod):
37169         Add a null check for m_npObject.
37170         
37171         (WebKit::JSNPObject::callConstructor):
37172         Call NPClass::construct.
37173
37174         (WebKit::JSNPObject::getConstructData):
37175         Set up the construct data.
37176
37177         (WebKit::JSNPObject::propertyGetter):
37178         convertNPVariantToJSValue now takes a JSGlobalObject as well.
37179         
37180         * WebProcess/Plugins/NPJSObject.cpp:
37181         (WebKit::NPJSObject::invoke):
37182         (WebKit::NPJSObject::invokeDefault):
37183         (WebKit::NPJSObject::construct):
37184         convertNPVariantToJSValue now takes a JSGlobalObject as well.
37185         
37186         * WebProcess/Plugins/NPJSObject.h:
37187         Make isNPJSObject and toNPJSObject public.
37188
37189         * WebProcess/Plugins/NPRuntimeObjectMap.cpp:
37190         (WebKit::NPRuntimeObjectMap::convertNPVariantToJSValue):
37191         Convert NPObjects correctly.
37192         
37193         (WebKit::NPRuntimeObjectMap::globalObject):
37194         Get the globalObject from the frame.
37195
37196         (WebKit::NPRuntimeObjectMap::globalExec):
37197         Call globalObject.
37198
37199         * WebProcess/Plugins/NPRuntimeObjectMap.h:
37200
37201 2010-07-28  Anders Carlsson  <andersca@apple.com>
37202
37203         Reviewed by Sam Weinig.
37204
37205         Implement NPN_InvokeDefault and NPN_Construct
37206         https://bugs.webkit.org/show_bug.cgi?id=43160
37207
37208         * WebProcess/Plugins/NPJSObject.cpp:
37209         (WebKit::NPJSObject::invoke):
37210         Just call invoke directly.
37211
37212         (WebKit::NPJSObject::invokeDefault):
37213         Call invoke.
37214
37215         (WebKit::NPJSObject::construct):
37216         Implement this.
37217
37218         (WebKit::NPJSObject::invoke):
37219         Add new invoke overload that takes the function as a JSValue.
37220
37221         (WebKit::NPJSObject::npClass):
37222         Add NP_Construct.
37223
37224         (WebKit::NPJSObject::NP_InvokeDefault):
37225         Call NPJSObject::invokeDefault.
37226
37227         (WebKit::NPJSObject::NP_Construct):
37228         Call NPJSObject::construct.
37229
37230         * WebProcess/Plugins/NPJSObject.h:
37231         * WebProcess/Plugins/Netscape/NetscapeBrowserFuncs.cpp:
37232         (WebKit::NPN_GetValue):
37233         Handle the Core Animation drawing model and the Carbon event model.
37234
37235         (WebKit::NPN_InvokeDefault):
37236         Call the NPClass::invokeDefault function.
37237
37238         (WebKit::NPN_Construct):
37239         Call the NPClass::construct function.
37240
37241 2010-07-28  Anders Carlsson  <andersca@apple.com>
37242
37243         Reviewed by Sam Weinig.
37244
37245         Implement NPN_Invoke
37246         https://bugs.webkit.org/show_bug.cgi?id=43158
37247
37248         * WebProcess/Plugins/NPJSObject.cpp:
37249         (WebKit::NPJSObject::hasMethod):
37250         Use the free getCallData function.
37251
37252         (WebKit::NPJSObject::invoke):
37253         Get the JavaScript function and call it.
37254
37255         (WebKit::NPJSObject::NP_Invoke):
37256         Call NPJSObject::invoke.
37257
37258         * WebProcess/Plugins/Netscape/NetscapeBrowserFuncs.cpp:
37259         (WebKit::NPN_Invoke):
37260         Call the NPClass::invoke function.
37261
37262 2010-07-28  Anders Carlsson  <andersca@apple.com>
37263
37264         Reviewed by Sam Weinig.
37265
37266         Implement NPN_HasMethod
37267         https://bugs.webkit.org/show_bug.cgi?id=43155
37268
37269         * WebProcess/Plugins/NPJSObject.cpp:
37270         (WebKit::NPJSObject::hasMethod):
37271         Check if the JSObject has a property with the given name. If it does, check that the value is a function.
37272     
37273         (WebKit::NPJSObject::hasProperty):
37274         Add a JSLock.
37275
37276         (WebKit::NPJSObject::npClass):
37277         Add some stubbed out functions.
37278
37279         (WebKit::NPJSObject::NP_HasMethod):
37280         Call NPJSObject::hasMethod.
37281
37282         (WebKit::NPJSObject::NP_Invoke):
37283         (WebKit::NPJSObject::NP_InvokeDefault):
37284         (WebKit::NPJSObject::NP_SetProperty):
37285         Stub out functions.
37286
37287         * WebProcess/Plugins/Netscape/NetscapeBrowserFuncs.cpp:
37288         (WebKit::NPN_HasMethod):
37289         Call the NPClass::hasMethod function.
37290
37291 2010-07-28  Brady Eidson  <beidson@apple.com>
37292
37293         Rubberstamped by Sam Weinig.
37294
37295         Make sure new pages are always added to the same PageGroup (for now).
37296
37297         * WebProcess/WebPage/WebPage.cpp:
37298         (WebKit::WebPage::WebPage):
37299
37300 2010-07-28  Sam Weinig  <sam@webkit.org>
37301
37302         Reviewed by Anders Carlsson.
37303
37304         Patch for https://bugs.webkit.org/show_bug.cgi?id=43097
37305         Make all objects in the WebKit2 API inherit from a single base class
37306
37307         - Adds an APIObject base class for all objects which one can get through
37308           the C API to inherit from.
37309         - Adds a WebString class which wraps WebCore::String for now. I am not too fond of
37310           this solution, so we should continue to iterate on it.
37311         - This is a first step toward make a CF-style base type (eg. CFTypeRef) for the C-API.
37312
37313         * Shared/APIObject.h: Added.
37314         (WebKit::APIObject::APIObject):
37315         Base class for API objects.
37316
37317         * Shared/ImmutableArray.h:
37318         Make inherit from APIObject.
37319
37320         * Shared/WebString.h: Added.
37321         (WebKit::WebString::create):
37322         (WebKit::WebString::isNull):
37323         (WebKit::WebString::isEmpty):
37324         (WebKit::WebString::string):
37325         (WebKit::WebString::WebString):
37326         Wraps a WebCore::String so that it can be passed out to the API
37327         and still inherit from APIObject.
37328
37329         * UIProcess/API/C/WKAPICast.h:
37330         (WebKit::WebStringAdaptor::WebStringAdaptor):
37331         (WebKit::WebStringAdaptor::operator WKStringRef):
37332         (WebKit::WebStringAdaptor::operator WKURLRef):
37333         Update conversion methods to deal in terms of WebStrings. Added WebStringAdaptor
37334         to ease passing strings to client functions.
37335
37336         * UIProcess/API/C/WKContext.cpp:
37337         (WKContextCreateWithInjectedBundlePath):
37338         (WKContextPostMessageToInjectedBundle):
37339         (_WKContextSetAdditionalPluginPath):
37340         (_WKContextRegisterURLSchemeAsEmptyDocument): 
37341         Get the WebCore::String from the WebString.
37342
37343         * UIProcess/API/C/WKPage.cpp:
37344         (WKPageLoadURL):
37345         Ditto.
37346
37347         * UIProcess/API/C/WKString.cpp:
37348         (WKStringIsEmpty):
37349         Implement in terms of WebString.
37350
37351         * UIProcess/API/C/WKURL.cpp:
37352         * UIProcess/API/C/cf/WKStringCF.cpp:
37353         (WKStringCreateWithCFString):
37354         (WKStringCopyCFString):
37355         Ditto.
37356     
37357         * UIProcess/API/C/cf/WKURLCF.cpp:
37358         (WKURLCreateWithCFURL):
37359         (WKURLCopyCFURL):
37360         Ditto.
37361
37362         * UIProcess/WebBackForwardList.h:
37363         Make inherit from APIObject.
37364
37365         * UIProcess/WebBackForwardListItem.h:
37366         Ditto.
37367
37368         * UIProcess/WebContext.cpp:
37369         (WebKit::WebContext::didReceiveMessageFromInjectedBundle):
37370         (WebKit::WebContext::postMessageToInjectedBundle):
37371         (WebKit::WebContext::registerURLSchemeAsEmptyDocument):
37372         Use String instead of StringImpl to be consistent.
37373
37374         * UIProcess/WebContext.h:
37375         Make inherit from APIObject.
37376
37377         * UIProcess/WebFramePolicyListenerProxy.h:
37378         Ditto.
37379
37380         * UIProcess/WebFrameProxy.h:
37381         Ditto.
37382
37383         * UIProcess/WebNavigationData.h:
37384         Ditto.
37385
37386         * UIProcess/WebPageNamespace.h:
37387         Ditto.
37388
37389         * UIProcess/WebPageProxy.h:
37390         Ditto.
37391
37392         * UIProcess/WebPreferences.h:
37393         Ditto.
37394
37395         * UIProcess/WebUIClient.cpp:
37396         (WebKit::WebUIClient::runJavaScriptPrompt):
37397         Implement in terms of WebString.
37398
37399         * UIProcess/win/WebView.h:
37400         Make inherit from APIObject.
37401
37402         * WebKit2.xcodeproj/project.pbxproj:
37403         Add new files.
37404
37405         * WebProcess/InjectedBundle/API/c/WKBundle.cpp:
37406         (WKBundlePostMessage):
37407         Get the WebCore::String from the WebString.
37408
37409         * WebProcess/InjectedBundle/API/c/WKBundleFrame.cpp:
37410         (WKBundleFramePauseAnimationOnElementWithId):
37411         Ditto.
37412
37413         * WebProcess/InjectedBundle/InjectedBundle.cpp:
37414         (WebKit::InjectedBundle::postMessage):
37415         * WebProcess/InjectedBundle/InjectedBundle.h:
37416         Use String instead of StringImpl to be consistent.
37417
37418         * WebProcess/WebPage/WebFrame.h:
37419         Make inherit from APIObject.
37420
37421         * WebProcess/WebPage/WebPage.h:
37422         Make inherit from APIObject.
37423
37424         * win/WebKit2.vcproj:
37425         Add new files.
37426
37427 2010-07-28  Anders Carlsson  <andersca@apple.com>
37428
37429         Reviewed by Sam Weinig.
37430
37431         Implement JSNPObject::put
37432         https://bugs.webkit.org/show_bug.cgi?id=43149
37433
37434         * WebProcess/Plugins/JSNPObject.cpp:
37435         (WebKit::JSNPObject::getOwnPropertySlot):
37436         Fix a typo.
37437
37438         (WebKit::JSNPObject::getOwnPropertyDescriptor):
37439         Implement this in the same way as it's implemented in RuntimeObject.
37440
37441         (WebKit::JSNPObject::put):
37442         Implement this, call NPClass::setProperty.
37443
37444         * WebProcess/Plugins/JSNPObject.h:
37445
37446 2010-07-28  Anders Carlsson  <andersca@apple.com>
37447
37448         Reviewed by Sam Weinig.
37449
37450         Add support for calling NPObject methods
37451         https://bugs.webkit.org/show_bug.cgi?id=43145
37452
37453         * WebKit2.xcodeproj/project.pbxproj:
37454         Add JSNPMethod.cpp and JSNPMethod.h
37455     
37456         * WebProcess/Plugins/JSNPMethod.cpp: Added.
37457         * WebProcess/Plugins/JSNPMethod.h: Added.
37458         * WebProcess/Plugins/JSNPObject.cpp:
37459         (WebKit::):
37460         Add a ClassInfo static variable for JSNPObject.
37461
37462         (WebKit::JSNPObject::callMethod):
37463         Convert the passed in arguments, call the method and convert the result back.
37464
37465         (WebKit::JSNPObject::getOwnPropertySlot):
37466         Check if the NPObject has a method.
37467
37468         (WebKit::JSNPObject::methodGetter):
37469         Return a new JSNPMethod.
37470
37471         * WebProcess/Plugins/JSNPObject.h:
37472         (WebKit::JSNPObject::classInfo):
37473         Return the s_info.
37474
37475         * WebProcess/Plugins/NPJSObject.cpp:
37476         (WebKit::NPJSObject::getProperty):
37477         Get the property from the JSObject.
37478
37479         * WebProcess/Plugins/NPRuntimeObjectMap.cpp:
37480         (WebKit::NPRuntimeObjectMap::convertJSValueToNPVariant):
37481         Convert the given JSValue to an NPVariant.
37482
37483         * win/WebKit2.vcproj:
37484         Add JSNPMethod.cpp and JSNPMethod.h
37485
37486 2010-07-28  Adam Roben  <aroben@apple.com>
37487
37488         Teach CoreIPC how to handle with a pipe closing during a write
37489
37490         Fixes <http://webkit.org/b/43131> Assertion failure in
37491         Connection::sendOutgoingMessage if the other process exits at just the
37492         wrong time
37493
37494         Reviewed by Darin Adler.
37495
37496         * Platform/CoreIPC/win/ConnectionWin.cpp:
37497         (CoreIPC::Connection::sendOutgoingMessage): If ::WriteFile fails with
37498         ERROR_NO_DATA, the pipe (and thus the connection) has closed.
37499
37500 2010-07-28  Adam Roben  <aroben@apple.com>
37501
37502         Teach CoreIPC the right way to send large messages on Windows
37503
37504         r63776 added support for ::WriteFile failing with ERROR_IO_PENDING,
37505         but it had a major flaw: we didn't ensure that the data being sent
37506         (which is owned by the ArgumentEncoder) stayed around until the write
37507         finished. We'd destroy the data immediately, leading to ::WriteFile
37508         accessing that freed memory later. This seemed to always manifest
37509         itself as a crash in ::WaitForMultipleObjects.
37510
37511         The correct solution (as hinted above) is to make sure that the data
37512         being written is not destroyed until the write completes. When
37513         ::WriteFile fails with ERROR_IO_PENDING, we store the data being sent
37514         in Connection::m_pendingWriteArguments, and don't send any more
37515         messages until that write completes. We use an event in the OVERLAPPED
37516         structure passed to ::WriteFile to detect when the write has completed
37517         (similar to what we do for reads).
37518
37519         Fixes <http://webkit.org/b/42785> <rdar://problem/8218522> Crash in
37520         WebKit2WebProcess in WaitForMultipleObjects beneath
37521         WorkQueue::workQueueThreadBody when running tests that produce a lot
37522         of output
37523
37524         Reviewed by Anders Carlsson.
37525
37526         * Platform/CoreIPC/Connection.cpp:
37527         (CoreIPC::Connection::canSendOutgoingMessages): Added. This calls out
37528         to a platform-specific function to allow each platform to have its own
37529         policy for when messages can and can't be sent.
37530         (CoreIPC::Connection::sendOutgoingMessages): Use the new
37531         canSendOutgoingMessages to determine whether we can send any messages
37532         right now. We now remove one message at a time from m_outgoingMessages
37533         and send it. We stop sending messages when sendOutgoingMessage returns
37534         false.
37535
37536         * Platform/CoreIPC/Connection.h: Added m_pendingWriteArguments and
37537         m_writeState on Windows.
37538         (CoreIPC::Connection::Message::Message): Added this default
37539         constructor.
37540
37541         * Platform/CoreIPC/MessageID.h:
37542         (CoreIPC::MessageID::MessageID): Made the default constructor public
37543         for Message's benefit.
37544
37545         * Platform/CoreIPC/mac/ConnectionMac.cpp:
37546         (CoreIPC::Connection::platformCanSendOutgoingMessages): Added. Always
37547         returns true.
37548         (CoreIPC::Connection::sendOutgoingMessage): Changed to return a
37549         boolean indicating whether more messages can be sent at this time.
37550
37551         * Platform/CoreIPC/qt/ConnectionQt.cpp:
37552         (CoreIPC::Connection::platformCanSendOutgoingMessages): Added. Returns
37553         true if we have a socket.
37554         (CoreIPC::Connection::sendOutgoingMessage): Changed a null-check of
37555         m_socket to an assertion since it should be checked for null in
37556         platformCanSendOutgoingMessages. Changed to return a boolean
37557         indicating whether more messages can be sent at this time.
37558
37559         * Platform/CoreIPC/win/ConnectionWin.cpp:
37560         (CoreIPC::Connection::platformInitialize): Added initialization of
37561         m_writeState.
37562         (CoreIPC::Connection::platformInvalidate): Close m_writeState's event
37563         handle.
37564         (CoreIPC::Connection::writeEventHandler): Added. Checks if the pending
37565         write has completed, cleans up our pending write state, and sends any
37566         remaining messages.
37567         (CoreIPC::Connection::open): Register our write event with the
37568         WorkQueue so that writeEventHandler will be called when the event is
37569         signaled.
37570         (CoreIPC::Connection::platformCanSendOutgoingMessages): Added. We can
37571         only send messages if there isn't a write pending.
37572         (CoreIPC::Connection::sendOutgoingMessage): Changed to return a
37573         boolean indicating whether more messages can be sent at this time. We
37574         now pass m_writeState to ::WriteFile instead of an empty OVERLAPPED
37575         struct so that our write event will be signaled when the write
37576         completes. We also no longer pass a pointer to receive how many bytes
37577         were written, as recommended by MSDN. If ::WriteFile fails with
37578         ERROR_IO_PENDING, we save the ArgumentEncoder for this message and
37579         return false to indicate that no more messages can be sent at this
37580         time.
37581
37582 2010-07-28  Adam Roben  <aroben@apple.com>
37583
37584         Stop leaking Connection::m_readState.hEvent on Windows
37585
37586         Fixes <http://webkit.org/b/43129> CoreIPC::Connection leaks its read
37587         event on Windows
37588
37589         Reviewed by Darin Adler.
37590
37591         * Platform/CoreIPC/win/ConnectionWin.cpp:
37592         (CoreIPC::Connection::platformInvalidate): Close the event handle.
37593
37594 2010-07-26  Steve Block  <steveblock@google.com>
37595
37596        Reviewed by Jeremy Orlow.
37597
37598        Page clients should be passed to Page constructor via structure of pointers
37599        https://bugs.webkit.org/show_bug.cgi?id=42834
37600
37601        * WebKit2/WebProcess/WebPage/WebPage.cpp:
37602        (WebPage::WebPage):
37603
37604 2010-07-28  Andras Becsi  <abecsi@webkit.org>
37605
37606         Unreviewed trivial build fix.
37607
37608         [Qt] Follow the API changes after r64172.
37609
37610         * UIProcess/API/qt/qwkpage.cpp:
37611         (QWKPage::url):
37612         (QWKPage::title):
37613
37614 2010-07-27  Anders Carlsson  <andersca@apple.com>
37615
37616         Fix Windows build.
37617
37618         * WebProcess/Plugins/JSNPObject.cpp:
37619         (WebKit::JSNPObject::propertyGetter):
37620         Remove unreachable code.
37621
37622 2010-07-27  Anders Carlsson  <andersca@apple.com>
37623
37624         Reviewed by Sam Weinig.
37625
37626         Implement JSNPObject::propertyGetter
37627         https://bugs.webkit.org/show_bug.cgi?id=43091
37628
37629         * WebProcess/Plugins/JSNPObject.cpp:
37630         (WebKit::JSNPObject::propertyGetter):
37631         Ask the NPObject for its property.
37632
37633         * WebProcess/Plugins/NPRuntimeObjectMap.cpp:
37634         (WebKit::NPRuntimeObjectMap::jsNPObjectDestroyed):
37635         Add a stub.
37636
37637         (WebKit::NPRuntimeObjectMap::convertNPVariantToValue):
37638         Implement this for everything except objects.
37639
37640 2010-07-27  Sam Weinig  <sam@webkit.org>
37641
37642         Reviewed by Anders Carlsson.
37643
37644         Patch for https://bugs.webkit.org/show_bug.cgi?id=43087
37645         Clean up handling of strings at the WebKit2 API layer.
37646
37647         - Always use the "copy" rule for functions that return WKStringRefs or WKURLRefs.
37648         - Never return a null WKStringRef or WKURLRef.
37649
37650         * UIProcess/API/C/WKAPICast.h:
37651         (toRef):
37652         (toURLRef):
37653         (toCopiedRef):
37654         (toCopiedURLRef):
37655         * UIProcess/API/C/WKBackForwardListItem.cpp:
37656         (WKBackForwardListItemCopyOriginalURL):
37657         (WKBackForwardListItemCopyURL):
37658         (WKBackForwardListItemCopyTitle):
37659         * UIProcess/API/C/WKBackForwardListItem.h:
37660         * UIProcess/API/C/WKFrame.cpp:
37661         (WKFrameIsMainFrame):
37662         (WKFrameCopyProvisionalURL):
37663         (WKFrameCopyURL):
37664         (WKFrameGetPage):
37665         (WKFrameRetain):
37666         (WKFrameRelease):
37667         * UIProcess/API/C/WKFrame.h:
37668         * UIProcess/API/C/WKNavigationData.cpp:
37669         (WKNavigationDataCopyTitle):
37670         (WKNavigationDataCopyURL):
37671         * UIProcess/API/C/WKNavigationData.h:
37672         * UIProcess/API/C/WKPage.cpp:
37673         (WKPageCopyTitle):
37674         * UIProcess/API/C/WKPage.h:
37675         * WebProcess/InjectedBundle/API/c/WKBundleFrame.cpp:
37676         (WKBundleFrameCopyURL):
37677         (WKBundleFrameCopyName):
37678         (WKBundleFrameCopyCounterValue):
37679         (WKBundleFrameCopyMarkerText):
37680         * WebProcess/InjectedBundle/API/c/WKBundleFrame.h:
37681         * WebProcess/InjectedBundle/API/c/WKBundleNode.cpp:
37682         (WKBundleNodeCopyNodeName):
37683         * WebProcess/InjectedBundle/API/c/WKBundlePage.cpp:
37684         (WKBundlePageCopyRenderTreeExternalRepresentation):
37685
37686 2010-07-27  Adam Roben  <aroben@apple.com>
37687
37688         Fix PageClient ownership in WebPageProxy
37689
37690         WKView now owns the PageClient, similar to how things work on Windows
37691         (where the WebView is the PageClient).
37692
37693         Fixes <http://webkit.org/b/40185> WebPageProxy should keep a weak
37694         reference to the PageClient
37695
37696         Reviewed by Anders Carlsson.
37697
37698         * UIProcess/API/mac/WKView.mm:
37699         (-[WKView initWithFrame:pageNamespaceRef:]): Store the PageClientImpl
37700         on our WKViewData object and pass it to the WebPageProxy.
37701
37702         * UIProcess/WebPageProxy.cpp:
37703         (WebKit::WebPageProxy::setPageClient):
37704         * UIProcess/WebPageProxy.h:
37705         Removed Mac-specific code that put the PageClient in an OwnPtr. We now
37706         store it in a bare pointer just like on Windows.
37707
37708 2010-07-27  Anders Carlsson  <andersca@apple.com>
37709
37710         Reviewed by Sam Weinig.
37711
37712         Add JSNPObject, a JSObject that wraps an NPObject
37713         https://bugs.webkit.org/show_bug.cgi?id=43079
37714
37715         * WebKit2.xcodeproj/project.pbxproj:
37716         Add JSNPObject.cpp and JSNPObject.h
37717         
37718         * WebProcess/Plugins/JSNPObject.cpp: Added.
37719         (WebKit::npIdentifierFromIdentifier):
37720         (WebKit::JSNPObject::JSNPObject):
37721         (WebKit::JSNPObject::~JSNPObject):
37722         (WebKit::JSNPObject::getOwnPropertySlot):
37723         Check if the NPObject has the given property.
37724
37725         (WebKit::JSNPObject::propertyGetter):
37726         (WebKit::JSNPObject::throwInvalidAccessError):
37727         * WebProcess/Plugins/JSNPObject.h: Added.
37728         (WebKit::JSNPObject::createStructure):
37729         * WebProcess/Plugins/NPJSObject.h:
37730         
37731         * win/WebKit2.vcproj:
37732         Add JSNPObject.cpp and JSNPObject.h
37733
37734 2010-07-27  Anders Carlsson  <andersca@apple.com>
37735
37736         Reviewed by Sam Weinig.
37737
37738         Expose interface for returning the plug-in script JSObject
37739         https://bugs.webkit.org/show_bug.cgi?id=43074
37740
37741         * WebProcess/Plugins/NPRuntimeObjectMap.cpp:
37742         (WebKit::NPRuntimeObjectMap::getOrCreateJSObject):
37743         Add empty stub.
37744
37745         * WebProcess/Plugins/NPRuntimeObjectMap.h:
37746         * WebProcess/Plugins/Netscape/NetscapePlugin.cpp:
37747         (WebKit::NetscapePlugin::pluginScriptableNPObject):
37748         Ask the plug-in for it's scriptable NPObject.
37749
37750         * WebProcess/Plugins/Netscape/NetscapePlugin.h:
37751         * WebProcess/Plugins/Plugin.h:
37752         Add pluginScritableNPObject.
37753
37754         * WebProcess/Plugins/PluginView.cpp:
37755         (WebKit::PluginView::PluginView):
37756         Call PluginViewBase constructor.
37757
37758         (WebKit::PluginView::scriptObject):
37759         Ask the plug-in for its scriptable object and wrap it.
37760
37761         * WebProcess/Plugins/PluginView.h:
37762         PluginView now inherits from PluginViewBase.
37763
37764 2010-07-27  Anders Carlsson  <andersca@apple.com>
37765
37766         Reviewed by Adam Roben.
37767
37768         Move NPJSObject out into separate files
37769         https://bugs.webkit.org/show_bug.cgi?id=43068
37770
37771         * WebKit2.xcodeproj/project.pbxproj:
37772         * WebProcess/Plugins/NPJSObject.cpp: Added.
37773         (WebKit::NPJSObject::create):
37774         (WebKit::NPJSObject::NPJSObject):
37775         (WebKit::NPJSObject::~NPJSObject):
37776         (WebKit::NPJSObject::isNPJSObject):
37777         (WebKit::NPJSObject::initialize):
37778         (WebKit::identifierFromIdentifierRep):
37779         (WebKit::NPJSObject::hasProperty):
37780         (WebKit::NPJSObject::getProperty):
37781         (WebKit::NPJSObject::npClass):
37782         (WebKit::NPJSObject::NP_Allocate):
37783         (WebKit::NPJSObject::NP_Deallocate):
37784         (WebKit::NPJSObject::NP_HasProperty):
37785         (WebKit::NPJSObject::NP_GetProperty):
37786         * WebProcess/Plugins/NPJSObject.h: Added.
37787         (WebKit::NPJSObject::jsObject):
37788         (WebKit::NPJSObject::toNPJSObject):
37789         * WebProcess/Plugins/NPRuntimeObjectMap.cpp:
37790         (WebKit::NPRuntimeObjectMap::npJSObjectDestroyed):
37791         (WebKit::NPRuntimeObjectMap::globalExec):
37792         * WebProcess/Plugins/NPRuntimeObjectMap.h:
37793         * win/WebKit2.vcproj:
37794
37795 2010-07-27  Anders Carlsson  <andersca@apple.com>
37796
37797         Reviewed by Adam Roben.
37798
37799         Rename NPJSObjectMap to NPRuntimeObjectMap
37800         https://bugs.webkit.org/show_bug.cgi?id=43066
37801
37802         * WebKit2.xcodeproj/project.pbxproj:
37803         * WebProcess/Plugins/NPJSObjectMap.cpp: Removed.
37804         * WebProcess/Plugins/NPJSObjectMap.h: Removed.
37805         * WebProcess/Plugins/NPRuntimeObjectMap.cpp: Added.
37806         (WebKit::NPJSObject::NPJSObject):
37807         (WebKit::NPJSObject::~NPJSObject):
37808         (WebKit::NPJSObject::toNPJSObject):
37809         (WebKit::NPJSObject::create):
37810         (WebKit::NPJSObject::isNPJSObject):
37811         (WebKit::NPJSObject::initialize):
37812         (WebKit::identifierFromIdentifierRep):
37813         (WebKit::NPJSObject::hasProperty):
37814         (WebKit::NPJSObject::getProperty):
37815         (WebKit::NPJSObject::npClass):
37816         (WebKit::NPJSObject::NP_Allocate):
37817         (WebKit::NPJSObject::NP_Deallocate):
37818         (WebKit::NPJSObject::NP_HasProperty):
37819         (WebKit::NPJSObject::NP_GetProperty):
37820         (WebKit::NPRuntimeObjectMap::NPRuntimeObjectMap):
37821         (WebKit::NPRuntimeObjectMap::getOrCreateNPObject):
37822         (WebKit::NPRuntimeObjectMap::invalidate):
37823         * WebProcess/Plugins/NPRuntimeObjectMap.h: Added.
37824         * WebProcess/Plugins/PluginView.cpp:
37825         (WebKit::PluginView::PluginView):
37826         (WebKit::PluginView::~PluginView):
37827         (WebKit::PluginView::windowScriptNPObject):
37828         (WebKit::PluginView::pluginElementNPObject):
37829         * WebProcess/Plugins/PluginView.h:
37830         * win/WebKit2.vcproj:
37831
37832 2010-07-27  Adam Roben  <aroben@apple.com>
37833
37834         Make preferences APIs robust against web process crashes
37835
37836         Fixes <http://webkit.org/b/43049> Crash in
37837         WebPageNamespace::preferencesDidChange if preferences are changed
37838         after the web process crashes
37839
37840         Reviewed by Anders Carlsson.
37841
37842         * UIProcess/WebContext.cpp:
37843         (WebKit::WebContext::preferencesDidChange): Bail out if we don't have
37844         a web process. The new preference values will get propogated to the
37845         web process if and when it launches.
37846
37847 2010-07-27  Adam Roben  <aroben@apple.com>
37848
37849         Add a ProcessDidExit callback to the WKPageLoaderClient
37850
37851         Fixes <http://webkit.org/b/43048> UI process needs a way to find out
37852         when the web process crashes
37853
37854         Reviewed by Anders Carlsson.
37855
37856         * UIProcess/API/C/WKPage.h: Added WKPageProcessDidExitCallback, and a
37857         processDidExit member of that type to WKPageLoaderClient.
37858
37859         * UIProcess/WebLoaderClient.cpp:
37860         (WebKit::WebLoaderClient::processDidExit): Added. Calls through to the
37861         WKPageLoaderClient.
37862
37863         * UIProcess/WebLoaderClient.h: Added processDidExit.
37864
37865         * UIProcess/WebPageProxy.cpp:
37866         (WebKit::WebPageProxy::processDidExit): Tell the loader client the
37867         process exited.
37868
37869 2010-07-27  Andras Becsi  <abecsi@webkit.org>
37870
37871         Reviewed by Kenneth Rohde Christiansen.
37872
37873         [Qt] WebEventFactory::createWebMouseEvent should follow WebKit2 API changes
37874         https://bugs.webkit.org/show_bug.cgi?id=43042
37875
37876         * Shared/qt/WebEventFactoryQt.cpp:
37877         (WebKit::WebEventFactory::createWebMouseEvent):
37878         Set deltaX, deltaY and deltaZ arguments.
37879
37880 2010-07-27  Balazs Kelemen  <kb@inf.u-szeged.hu>
37881
37882         Reviewed by Kenneth Rohde Christiansen.
37883
37884         [Qt] WebKit::PageClient implementation needs a dedicated class
37885
37886         https://bugs.webkit.org/show_bug.cgi?id=42974
37887
37888         * UIProcess/API/qt/qwkpage.cpp:
37889         (PageClientImpl::PageClientImpl): Added.
37890         (PageClientImpl::pageDidEnterAcceleratedCompositing): Moved from QWKPagePrivate.
37891         (PageClientImpl::pageDidLeaveAcceleratedCompositing): Ditto.
37892         (PageClientImpl::processDidExit): Ditto.
37893         (PageClientImpl::processDidRevive): Ditto.
37894         (PageClientImpl::setCursor): Ditto.
37895         (PageClientImpl::takeFocus): Ditto.
37896         (PageClientImpl::toolTipChanged): Ditto.
37897         (QWKPagePrivate::QWKPagePrivate): Set a new instance of the PageClientImpl as PageClient rather than 'this'.
37898         * UIProcess/API/qt/qwkpage_p.h: Removed PageClient implementation methods from QWKPagePrivate.
37899
37900 2010-07-26  Darin Adler  <darin@apple.com>
37901
37902         Reviewed by Sam Weinig.
37903
37904         WebKitTestRunner needs to support layoutTestController.counterValueForElementById
37905         https://bugs.webkit.org/show_bug.cgi?id=42537
37906
37907         WebKitTestRunner needs layoutTestController.markerTextForListItem
37908         https://bugs.webkit.org/show_bug.cgi?id=42549
37909
37910         * UIProcess/API/C/WKString.cpp:
37911         (WKStringIsEmpty): Added.
37912         * UIProcess/API/C/WKString.h: Added WKStringIsEmpty.
37913
37914         * WebProcess/InjectedBundle/API/c/WKBundleFrame.cpp:
37915         (copiedString): Added. Helper for functions that return a
37916         WKStringRef that follows the copy rule.
37917         (WKBundleFrameCopyName): Use copiedString.
37918         (WKBundleFrameCopyCounterValue): Added. Calls counterValue.
37919         (WKBundleFrameCopyMarkerText): Added. Calls markerText.
37920         * WebProcess/InjectedBundle/API/c/WKBundleFramePrivate.h:
37921         Added WKBundleFrameCopyCounterValue and WKBundleFrameCopyMarkerText.
37922
37923         * WebProcess/WebPage/WebFrame.cpp:
37924         (WebKit::WebFrame::computedStyleIncludingVisitedInfo):
37925         Renamed argument to streamline function a bit.
37926         (WebKit::WebFrame::counterValue): Added.
37927         (WebKit::WebFrame::markerText): Added.
37928         * WebProcess/WebPage/WebFrame.h: Added counterValue and markerText.
37929
37930 2010-07-26  Sam Weinig  <sam@webkit.org>
37931
37932         Reviewed by Anders Carlsson.
37933
37934         Part 2 of https://bugs.webkit.org/show_bug.cgi?id=43013
37935         <rdar://problem/8152434>
37936         Add support for scrolling using the keyboard in WebKit2
37937
37938         Add support for scrolling with the space bar and ensure that we don't scroll
37939         if WebCore is handling the event in another way.
37940
37941         * WebProcess/WebPage/WebPage.cpp:
37942         (WebKit::WebPage::keyEvent):
37943         (WebKit::getScrollMapping):
37944         (WebKit::WebPage::performDefaultBehaviorForKeyEvent):
37945         * WebProcess/WebPage/WebPage.h:
37946
37947 2010-07-26  Sam Weinig  <sam@webkit.org>
37948
37949         Reviewed by Anders Carlsson.
37950
37951         Patch for https://bugs.webkit.org/show_bug.cgi?id=43013
37952         Part of <rdar://problem/8152434>
37953         Add support for scrolling using the keyboard in WebKit2
37954
37955         * WebProcess/WebPage/WebPage.cpp:
37956         (WebKit::getScrollMapping):
37957         (WebKit::WebPage::keyEvent):
37958         Scroll the page in response to keyDown.
37959         * WebProcess/WebPage/WebPage.h:
37960         * WebProcess/WebPage/mac/WebPageMac.mm:
37961         Use WindowsKeyboardCodes.h instead of redefining the constants.
37962
37963 2010-07-26  Ada Chan  <adachan@apple.com>
37964
37965         Fix Windows build.
37966
37967         * win/WebKit2Generated.make:
37968
37969 2010-07-26  Anders Carlsson  <andersca@apple.com>
37970
37971         Fix Windows build.
37972
37973         * WebProcess/Plugins/Netscape/NetscapePlugin.h:
37974         (WebKit::NetscapePlugin::platformHandleMouseEnterEvent):
37975         (WebKit::NetscapePlugin::platformHandleMouseLeaveEvent):
37976
37977 2010-07-26  Anders Carlsson  <andersca@apple.com>
37978
37979         Reviewed by Sam Weinig.
37980
37981         Handle mouseenter/mouseleave + focus events
37982         https://bugs.webkit.org/show_bug.cgi?id=42997
37983
37984         * WebProcess/Plugins/Netscape/NetscapePlugin.cpp:
37985         (WebKit::NetscapePlugin::handleMouseEnterEvent):
37986         Call platformHandleMouseEnterEvent.
37987         
37988         (WebKit::NetscapePlugin::handleMouseLeaveEvent):
37989         Call platformHandleMouseExitEvent.
37990
37991         (WebKit::NetscapePlugin::setFocus):
37992         Call platformSetFocus.
37993
37994         * WebProcess/Plugins/Netscape/mac/NetscapePluginMac.mm:
37995         (WebKit::fillInCocoaEventFromMouseEvent):
37996         Factor out code that fills in an NPCocoaEvent from a WebMouseEvent.
37997
37998         (WebKit::initializeMouseEvent):
37999         Call fillInCocoaEventFromMouseEvent.
38000         
38001         (WebKit::NetscapePlugin::platformHandleMouseEnterEvent):
38002         Send an NPCocoaEventMouseEntered event.
38003     
38004         (WebKit::NetscapePlugin::platformHandleMouseLeaveEvent):
38005         Send an NPCocoaEventMouseExited event.
38006
38007         (WebKit::NetscapePlugin::platformSetFocus):
38008         Send an NPCocoaEventFocusChanged.
38009
38010         * WebProcess/Plugins/Plugin.h:
38011         * WebProcess/Plugins/PluginView.cpp:
38012         (WebKit::PluginView::handleEvent):
38013         Dispatch mouse enter and mouse leave events. Call focusPluginElement on mousedown.
38014
38015         (WebKit::PluginView::focusPluginElement):
38016         Focus the plug-in's containing frame and its element.
38017
38018         (WebKit::PluginView::setFocus):
38019         Call Plugin::setFocus.
38020
38021 2010-07-26  Brady Eidson  <beidson@apple.com>
38022
38023         Reviewed by Sam Weinig.
38024
38025         Add ability for WK2 to register a scheme to always be displayed as an empty document
38026         https://bugs.webkit.org/show_bug.cgi?id=42995
38027
38028         * Shared/CoreIPCSupport/WebProcessMessageKinds.h:
38029         (WebProcessMessage::):
38030         
38031         * UIProcess/API/C/WKContext.cpp:
38032         (_WKContextRegisterURLSchemeAsEmptyDocument):
38033         * UIProcess/API/C/WKContextPrivate.h:
38034         
38035         * UIProcess/WebContext.cpp:
38036         (WebKit::WebContext::registerURLSchemeAsEmptyDocument):
38037         * UIProcess/WebContext.h:
38038         
38039         * WebProcess/WebProcess.cpp:
38040         (WebKit::WebProcess::registerURLSchemeAsEmptyDocument):
38041         (WebKit::WebProcess::didReceiveMessage):
38042         * WebProcess/WebProcess.h:
38043
38044 2010-07-26  Anders Carlsson  <andersca@apple.com>
38045
38046         Reviewed by Adam Roben.
38047
38048         Get rid of the dummy plug-in.
38049
38050         * WebKit2.xcodeproj/project.pbxproj:
38051         * WebProcess/Plugins/DummyPlugin.cpp: Removed.
38052         * WebProcess/Plugins/DummyPlugin.h: Removed.
38053         * win/WebKit2.vcproj:
38054
38055 2010-07-26  Sam Weinig  <sam@webkit.org>
38056
38057         Reviewed by Anders Carlsson.
38058
38059         Move some non-APIish functions into private headers.
38060
38061         * WebKit2.xcodeproj/project.pbxproj:
38062         * WebProcess/InjectedBundle/API/c/WKBundle.cpp:
38063         * WebProcess/InjectedBundle/API/c/WKBundle.h:
38064         * WebProcess/InjectedBundle/API/c/WKBundleFrame.cpp:
38065         * WebProcess/InjectedBundle/API/c/WKBundleFrame.h:
38066         * WebProcess/InjectedBundle/API/c/WKBundleFramePrivate.h: Copied from WebProcess/InjectedBundle/API/c/WKBundleFrame.h.
38067         * WebProcess/InjectedBundle/API/c/WKBundlePrivate.h: Copied from WebProcess/InjectedBundle/API/c/WKBundle.h.
38068         * win/WebKit2.vcproj:
38069
38070 2010-07-26  Sam Weinig  <sam@webkit.org>
38071
38072         Reviewed by Anders Carlsson.
38073
38074         Fix for https://bugs.webkit.org/show_bug.cgi?id=42986
38075         Add prompt and confirm client functions to WebKit2
38076
38077         * Shared/CoreIPCSupport/WebPageProxyMessageKinds.h:
38078         (WebPageProxyMessage::):
38079         * UIProcess/API/C/WKPage.h:
38080         * UIProcess/WebPageProxy.cpp:
38081         (WebKit::WebPageProxy::didReceiveSyncMessage):
38082         (WebKit::WebPageProxy::runJavaScriptAlert):
38083         (WebKit::WebPageProxy::runJavaScriptConfirm):
38084         (WebKit::WebPageProxy::runJavaScriptPrompt):
38085         * UIProcess/WebPageProxy.h:
38086         * UIProcess/WebUIClient.cpp:
38087         (WebKit::WebUIClient::runJavaScriptAlert):
38088         (WebKit::WebUIClient::runJavaScriptConfirm):
38089         (WebKit::WebUIClient::runJavaScriptPrompt):
38090         * UIProcess/WebUIClient.h:
38091         * WebKit2.xcodeproj/project.pbxproj:
38092         * WebProcess/WebCoreSupport/WebChromeClient.cpp:
38093         (WebKit::WebChromeClient::runJavaScriptConfirm):
38094         (WebKit::WebChromeClient::runJavaScriptPrompt):
38095
38096 2010-07-26  Adam Roben  <aroben@apple.com>
38097
38098         Windows build fix
38099
38100         * win/WebKit2.vcproj:
38101         * win/WebKit2WebProcess.vcproj:
38102         Removed empty attributes so the values will be picked up from the
38103         vsprops files. (Also removed a couple of attributes that accidentally
38104         duplicated values from the vsprops files.)
38105
38106 2010-07-26  Simon Fraser  <simon.fraser@apple.com>
38107
38108         Reviewed by Anders Carlsson.
38109
38110         Composited layers don't scroll in WebKit2
38111         https://bugs.webkit.org/show_bug.cgi?id=42771
38112         
38113         In WebKit2, do the compositing layer geometry flipping on the drawing area's main 
38114         backing layer. This both avoids us having to flip the layer contents, and also avoids issues
38115         with the positioning of the root platform layer, which we want top-left. Doing the flipping
38116         lower down would require that the root platform layer know where the scrollbar is.
38117
38118         * WebProcess/WebPage/LayerBackedDrawingArea.cpp:
38119         (WebKit::LayerBackedDrawingArea::LayerBackedDrawingArea):
38120
38121 2010-07-26  Anders Carlsson  <andersca@apple.com>
38122
38123         Reviewed by Sam Weinig.
38124
38125         Deliver mouse and wheel events to plug-ins
38126         https://bugs.webkit.org/show_bug.cgi?id=42988
38127
38128         * Shared/WebEvent.h:
38129         (WebKit::WebMouseEvent::WebMouseEvent):
38130         (WebKit::WebMouseEvent::deltaX):
38131         (WebKit::WebMouseEvent::deltaY):
38132         (WebKit::WebMouseEvent::deltaZ):
38133         * Shared/mac/WebEventFactory.mm:
38134         (WebKit::WebEventFactory::createWebMouseEvent):
38135         Add deltaX, deltaY and deltaZ member variables to WebMosueEvent.
38136
38137         * WebKit2.xcodeproj/project.pbxproj:
38138         Rename NetscapePluginMac.cpp to NetscapePluginMac.mm.
38139         
38140         * WebProcess/Plugins/Netscape/NetscapePlugin.cpp:
38141         (WebKit::NetscapePlugin::NPP_HandleEvent):
38142         Add NPP_ wrapper.
38143
38144         (WebKit::NetscapePlugin::handleMouseEvent):
38145         (WebKit::NetscapePlugin::handleWheelEvent):
38146         Call the platform variants.
38147     
38148         * WebProcess/Plugins/Netscape/mac/NetscapePluginMac.mm: Added.
38149         (WebKit::modifierFlags):        
38150         (WebKit::buttonNumber):
38151         (WebKit::initializeMouseEvent):
38152         (WebKit::NetscapePlugin::platformHandleMouseEvent):
38153         Create an NPCocoaEvent and send it to the plug-in.
38154         
38155         (WebKit::NetscapePlugin::platformHandleWheelEvent):
38156         Ditto.
38157
38158         * WebProcess/Plugins/PluginView.cpp:
38159         (WebKit::PluginView::handleEvent):
38160         Get the current WebEvent and send it to the plug-in if necessary.
38161
38162         * WebProcess/WebPage/WebPage.cpp:
38163         (WebKit::WebPage::currentEvent):
38164         (WebKit::CurrentEvent::CurrentEvent):
38165         (WebKit::CurrentEvent::~CurrentEvent):
38166         (WebKit::WebPage::mouseEvent):
38167         (WebKit::WebPage::wheelEvent):
38168         (WebKit::WebPage::keyEvent):
38169         * WebProcess/WebPage/WebPage.h:
38170         Add RAII object for keeping track of the current event.
38171
38172 2010-07-26  Anders Carlsson  <andersca@apple.com>
38173
38174         Reviewed by Sam Weinig.
38175
38176         Clean up event handling functions
38177         https://bugs.webkit.org/show_bug.cgi?id=42977
38178
38179         * WebProcess/WebPage/WebPage.cpp:
38180         (WebKit::WebPage::mouseEvent):
38181         (WebKit::WebPage::wheelEvent):
38182         (WebKit::WebPage::keyEvent):
38183         (WebKit::WebPage::didReceiveMessage):
38184         * WebProcess/WebPage/WebPage.h:
38185
38186 2010-07-25  Darin Adler  <darin@apple.com>
38187
38188         Reviewed by Maciej Stachowiak.
38189
38190         WebKitTestRunner needs to support layoutTestController.keepWebHistory
38191         https://bugs.webkit.org/show_bug.cgi?id=42323
38192
38193         Added WKBundleSetShouldTrackVisitedLinks, WKBundleRemoveAllVisitedLinks,
38194         and WKBundleFrameGetComputedStyleIncludingVisitedInfo.
38195
38196         Also fixed misspellings of the word "receive".
38197
38198         * WebProcess/InjectedBundle/API/c/WKBundle.cpp:
38199         (WKBundleSetShouldTrackVisitedLinks): Added.
38200         (WKBundleRemoveAllVisitedLinks): Added.
38201         * WebProcess/InjectedBundle/API/c/WKBundle.h: Added functions and
38202         fixed mispellings of receive.
38203
38204         * WebProcess/InjectedBundle/API/c/WKBundleFrame.cpp:
38205         (WKBundleFrameGetJavaScriptContext): Moved the code from here into WebFrame,
38206         to be consistent with the rest of the functions in this file.
38207         (WKBundleFrameGetComputedStyleIncludingVisitedInfo): Added.
38208         * WebProcess/InjectedBundle/API/c/WKBundleFrame.h: Added
38209         WKBundleFrameGetComputedStyleIncludingVisitedInfo and tried to rearrange the
38210         file to be more logically ordered and grouped.
38211
38212         * WebProcess/InjectedBundle/InjectedBundle.cpp:
38213         (WebKit::InjectedBundle::setShouldTrackVisitedLinks): Added.
38214         (WebKit::InjectedBundle::removeAllVisitedLinks): Added.
38215         (WebKit::InjectedBundle::didReceiveMessage): Fixed mispellings of receive.
38216         * WebProcess/InjectedBundle/InjectedBundle.h: Ditto.
38217
38218         * WebProcess/WebPage/WebFrame.cpp:
38219         (WebKit::WebFrame::jsContext): Added. Contains the code that used to be in
38220         WKBundleFrameGetJavaScriptContext.
38221         (WebKit::WebFrame::computedStyleIncludingVisitedInfo): Added.
38222         * WebProcess/WebPage/WebFrame.h: Ditto.
38223
38224         * UIProcess/API/C/WKContext.h: Fixed misspellings of receive.
38225         * UIProcess/WebContext.cpp:
38226         (WebKit::WebContext::didReceiveMessageFromInjectedBundle): Ditto.
38227         * UIProcess/WebContext.h: Ditto.
38228         * UIProcess/WebContextInjectedBundleClient.cpp:
38229         (WebKit::WebContextInjectedBundleClient::didReceiveMessageFromInjectedBundle): Ditto.
38230         * UIProcess/WebContextInjectedBundleClient.h: Ditto.
38231         * UIProcess/WebProcessProxy.cpp:
38232         (WebKit::WebProcessProxy::forwardMessageToWebContext): Ditto.
38233         * WebProcess/WebProcess.cpp:
38234         (WebKit::WebProcess::forwardMessageToInjectedBundle): Ditto.
38235
38236 2010-07-25  Alexey Proskuryakov  <ap@apple.com>
38237
38238         Reviewed by Sam Weinig.
38239
38240         https://bugs.webkit.org/show_bug.cgi?id=42193
38241         Support layoutTestController.dumpEditingDelegates in WebKitTestRunner
38242
38243         Step 2 - add the rest of editing delegates.
38244
38245         * WebProcess/InjectedBundle/API/c/WKBundleAPICast.h:
38246         * WebProcess/InjectedBundle/API/c/WKBundleBase.h:
38247         Added enums for EditorInsertAction and EAffinity. Also added a dummy type for
38248         CSSStyleDeclaration - neither DumpRenderTree not WebKitTestRunner actually use that.
38249
38250         * WebProcess/InjectedBundle/API/c/WKBundlePage.h:
38251         * WebProcess/InjectedBundle/InjectedBundlePageEditorClient.cpp:
38252         (WebKit::InjectedBundlePageEditorClient::shouldBeginEditing):
38253         (WebKit::InjectedBundlePageEditorClient::shouldEndEditing):
38254         (WebKit::InjectedBundlePageEditorClient::shouldInsertNode):
38255         (WebKit::InjectedBundlePageEditorClient::shouldInsertText):
38256         (WebKit::InjectedBundlePageEditorClient::shouldDeleteRange):
38257         (WebKit::InjectedBundlePageEditorClient::shouldChangeSelectedRange):
38258         (WebKit::InjectedBundlePageEditorClient::shouldApplyStyle):
38259         (WebKit::InjectedBundlePageEditorClient::didBeginEditing):
38260         (WebKit::InjectedBundlePageEditorClient::didEndEditing):
38261         (WebKit::InjectedBundlePageEditorClient::didChange):
38262         (WebKit::InjectedBundlePageEditorClient::didChangeSelection):
38263         * WebProcess/InjectedBundle/InjectedBundlePageEditorClient.h:
38264         * WebProcess/WebCoreSupport/WebEditorClient.cpp:
38265         (WebKit::WebEditorClient::shouldDeleteRange):
38266         (WebKit::WebEditorClient::shouldEndEditing):
38267         (WebKit::WebEditorClient::shouldInsertNode):
38268         (WebKit::WebEditorClient::shouldInsertText):
38269         (WebKit::WebEditorClient::shouldChangeSelectedRange):
38270         (WebKit::WebEditorClient::shouldApplyStyle):
38271         (WebKit::WebEditorClient::didBeginEditing):
38272         (WebKit::WebEditorClient::respondToChangedContents):
38273         (WebKit::WebEditorClient::respondToChangedSelection):
38274         (WebKit::WebEditorClient::didEndEditing):
38275         Added remaining delagates that are needed for WebKitTestRunner.
38276
38277 2010-07-19 Balazs Kelemen <kb@inf.u-szeged.hu>
38278
38279         Reviewed by Kenneth Rohde Christiansen.
38280
38281         [Qt] Setup the QtWebProcess
38282
38283         https://bugs.webkit.org/show_bug.cgi?id=42623
38284
38285         * UIProcess/Launcher/qt/ProcessLauncherQt.cpp:
38286         Remove the framework entry point from here to WebProcess/qt/WebProcessMainQt.cpp to match with with the mac and the win port.
38287         * WebKit2.pro: Added.
38288         * WebProcess/qt/WebProcessMainQt.cpp: Added.
38289         (WebKit::WebProcessMainQt): Framework entry point for Qt.
38290         * qt/MainQt.cpp: Added.
38291         (main):
38292
38293 2010-07-22  Darin Adler  <darin@apple.com>
38294
38295         Reviewed by Sam Weinig.
38296
38297         Eliminate unneeded WKBundleFrameCopyInnerText function from WebKit2
38298         https://bugs.webkit.org/show_bug.cgi?id=42847
38299
38300         * WebProcess/InjectedBundle/API/c/WKBundleFrame.cpp: Removed WKBundleFrameCopyInnerText.
38301         * WebProcess/InjectedBundle/API/c/WKBundleFrame.h: Ditto.
38302         * WebProcess/WebPage/WebFrame.cpp: Removed innerText.
38303         * WebProcess/WebPage/WebFrame.h: Ditto.
38304
38305 2010-07-22  Alexey Proskuryakov  <ap@apple.com>
38306
38307         More Windows build fixing.
38308
38309         * win/WebKit2Generated.make: Copy the new public headers to $(WEBKITOUTPUTDIR)\include\WebKit2.
38310
38311 2010-07-22  Alexey Proskuryakov  <ap@apple.com>
38312
38313         Windows build fix.
38314
38315         * win/WebKit2.vcproj: Added new files.
38316
38317 2010-07-22  Alexey Proskuryakov  <ap@apple.com>
38318
38319         Reviewed by Sam Weinig and Darin Adler.
38320
38321         https://bugs.webkit.org/show_bug.cgi?id=42193
38322         Support layoutTestController.dumpEditingDelegates in WebKitTestRunner
38323
38324         Step 1: Add the method, and implement one actual delegate call as proof of concept. No tests
38325         fixed, but this makes difference one line smaller on many editing tests.
38326
38327         * WebKit2.xcodeproj/project.pbxproj:
38328         * WebProcess/InjectedBundle/API/c/WKBundleAPICast.h:
38329         * WebProcess/InjectedBundle/API/c/WKBundleBase.h:
38330         * WebProcess/InjectedBundle/API/c/WKBundleNode.cpp: Added.
38331         (WKBundleNodeCopyNodeName):
38332         (WKBundleNodeGetParent):
38333         * WebProcess/InjectedBundle/API/c/WKBundleNode.h: Added.
38334         * WebProcess/InjectedBundle/API/c/WKBundlePage.cpp:
38335         (WKBundlePageSetEditorClient):
38336         * WebProcess/InjectedBundle/API/c/WKBundlePage.h:
38337         * WebProcess/InjectedBundle/API/c/WKBundleRange.cpp: Added.
38338         (WKBundleRangeGetStartOffset):
38339         (WKBundleRangeGetStartContainer):
38340         (WKBundleRangeGetEndOffset):
38341         (WKBundleRangeGetEndContainer):
38342         * WebProcess/InjectedBundle/API/c/WKBundleRange.h: Added.
38343         Added WKBundleRangeRef and WKBundleNodeRef types for injected bundles. These are just pointers
38344         to respective WebCore objects, without any WebKit2 wrappers.
38345
38346         * WebProcess/InjectedBundle/InjectedBundlePageEditorClient.cpp: Added.
38347         (WebKit::InjectedBundlePageEditorClient::InjectedBundlePageEditorClient):
38348         (WebKit::InjectedBundlePageEditorClient::initialize):
38349         (WebKit::InjectedBundlePageEditorClient::shouldBeginEditing):
38350         * WebProcess/InjectedBundle/InjectedBundlePageEditorClient.h: Added.
38351         * WebProcess/WebCoreSupport/WebEditorClient.cpp:
38352         (WebKit::WebEditorClient::shouldBeginEditing):
38353         * WebProcess/WebPage/WebPage.cpp:
38354         (WebKit::WebPage::initializeInjectedBundleEditorClient):
38355         * WebProcess/WebPage/WebPage.h:
38356         (WebKit::WebPage::injectedBundleEditorClient):
38357         Added the plumbing for invoking injected bundle code for editor client. There is no real API
38358         for editor client yet.
38359
38360 2010-07-22  Ivan Krstić  <ike@apple.com>
38361
38362         Reviewed by Anders Carlsson.
38363
38364         Adapt sandbox for new WebProcess bootstrap service naming scheme.
38365         <rdar://problem/8225000>
38366
38367         * WebProcess/com.apple.WebProcess.sb:
38368
38369 2010-07-22  Anders Carlsson  <andersca@apple.com>
38370
38371         Reviewed by Adam Roben.
38372
38373         It should be possible to attach to the WebProcess in gdb during startup
38374         https://bugs.webkit.org/show_bug.cgi?id=42853
38375
38376         Create an unique bootstrap service name and pass it to the web process, instead of registering a per process
38377         name (which was incorrect anyway). This lets us get rid of the requirement that the UI process always should be
38378         the parent process of the web process, something which is false when running under the debugger.
38379
38380         * UIProcess/Launcher/mac/ProcessLauncherMac.mm:
38381         (WebKit::ProcessLauncher::launchProcess):
38382         * WebProcess/mac/WebProcessMainMac.mm:
38383         (WebKit::WebProcessMain):
38384
38385 2010-07-22  Anders Carlsson  <andersca@apple.com>
38386
38387         Reviewed by Sam Weinig.
38388
38389         Don't assert when Connection::invalidate is called before Connection::dispatchConnectionDidClose
38390         https://bugs.webkit.org/show_bug.cgi?id=42851
38391
38392         * Platform/CoreIPC/Connection.cpp:
38393         (CoreIPC::Connection::dispatchConnectionDidClose):
38394         Just return early if m_client is 0.
38395
38396 2010-07-22  Adam Roben  <aroben@apple.com>
38397
38398         Use ::MessageBox instead of ::DebugBreak to make the web process wait
38399         for a debugger
38400
38401         While ::DebugBreak can make it easier to attach a debugger (because it
38402         brings up the Just-in-Time debugger window), using ::MessageBox has
38403         two advantages:
38404           1) It explains to the user what's going on, so it's harder to
38405              mistake this debugging aid for a bug.
38406           2) It allows you to debug the UI process and the web process using
38407              the same debugger, if desired.
38408
38409         Special thanks to John Sullivan for help with the text that's shown in
38410         the alert.
38411
38412         Fixes <http://webkit.org/b/42848> WebKit2's wait-for-debugger
38413         debugging aid should explain to the user what's happening
38414
38415         Reviewed by John Sullivan and Anders Carlsson.
38416
38417         * WebProcess/WebKitMain.cpp:
38418         (WebKitMain): Use a ::MessageBox instead of a ::DebugBreak to wait for
38419         the debugger. The alert explains to the user what's going on.
38420
38421 2010-07-22  Adam Roben  <aroben@apple.com>
38422
38423         Make WorkQueue aware of potential errors with ::WaitForMultipleObjects
38424
38425         Fixes <http://webkit.org/b/42846> WorkQueue should detect
38426         ::WaitForMultipleObject failures
38427
38428         Reviewed by Anders Carlsson.
38429
38430         * Platform/win/WorkQueueWin.cpp:
38431         (WorkQueue::workQueueThreadBody): Added some assertions about the
38432         various things that can fail with ::WaitForMultipleObjects,
38433         specifically:
38434           - Passing too many objects
38435           - Timeouts (which shouldn't happen since we pass a timeout interval
38436             of INFINITE)
38437           - Abandoned mutexes (which shouldn't happen since we don't wait on
38438             any mutexes currently)
38439           - Miscellaneous failures
38440
38441 2010-07-22  Sam Weinig  <sam@webkit.org>
38442
38443         Reviewed by Anders Carlsson.
38444
38445         Patch for https://bugs.webkit.org/show_bug.cgi?id=42836
38446         Add localized strings stubs for WebKit2.
38447
38448         Gets us below 200 tests failing in WebKitTestRunner.
38449
38450         * WebProcess/WebCoreSupport/WebPlatformStrategies.cpp:
38451         * WebProcess/WebCoreSupport/WebPlatformStrategies.h:
38452
38453 2010-07-22  Andras Becsi  <abecsi@webkit.org>
38454
38455         Unreviewed trivial build fix.
38456
38457         [Qt] Mend remaining issues to fix the WebKit2 build.
38458
38459         * Shared/qt/UpdateChunk.h: add missing function
38460         (WebKit::UpdateChunk::isEmpty):
38461         * UIProcess/API/qt/qwkpage_p.h: Add stub implementation
38462         (QWKPagePrivate::pageDidEnterAcceleratedCompositing):
38463         (QWKPagePrivate::pageDidLeaveAcceleratedCompositing):
38464
38465 2010-07-22  Andras Becsi  <abecsi@webkit.org>
38466
38467         Reviewed by Antonio Gomes.
38468
38469         [Qt] Implement WebContext::applicationCacheDirectory() for the Qt port of WebKit2.
38470         https://bugs.webkit.org/show_bug.cgi?id=42830
38471
38472         * UIProcess/qt/WebContextQt.cpp: Added.
38473         (WebKit::WebContext::applicationCacheDirectory):
38474
38475 2010-07-22  Balazs Kelemen  <kb@inf.u-szeged.hu>
38476
38477         Unreviewed build fix.
38478
38479         [Qt] Fix WebKit2 build
38480
38481         https://bugs.webkit.org/show_bug.cgi?id=42638
38482
38483         * UIProcess/API/qt/qwkpage_p.h:
38484         (QWKPagePrivate::setCursor): Added empty implementation.
38485
38486 2010-07-22  Balazs Kelemen  <kb@inf.u-szeged.hu>
38487
38488         Reviewed by Antonio Gomes.
38489
38490         Lazy cursor creation should be guarded by #if USE(LAZY_NATIVE_CURSOR) in WebKit2
38491
38492         https://bugs.webkit.org/show_bug.cgi?id=42622
38493
38494         * Shared/WebCoreArgumentCoders.h:
38495         * UIProcess/WebPageProxy.cpp:
38496         (WebKit::WebPageProxy::didReceiveMessage):
38497         * WebProcess/WebCoreSupport/WebChromeClient.cpp:
38498         (WebKit::WebChromeClient::setCursor):
38499
38500 2010-07-22  Jon Honeycutt  <jhoneycutt@apple.com>
38501
38502         Build fix. Unreviewed.
38503
38504         * win/WebKit2WebProcess.vcproj:
38505         Remove the pre- and post-build events, so that they will use the value
38506         inherited from the vsprops.
38507
38508 2010-07-21  Darin Adler  <darin@apple.com>
38509
38510         Reviewed by Sam Weinig.
38511
38512         WebKitTestRunner needs layoutTestController.dumpChildFrameScrollPositions
38513         https://bugs.webkit.org/show_bug.cgi?id=42548
38514
38515         Added WKBundleFrameCopyName.
38516
38517         * WebProcess/InjectedBundle/API/c/WKBundleFrame.cpp:
38518         (WKBundleFrameCopyName): Added.
38519         * WebProcess/InjectedBundle/API/c/WKBundleFrame.h: Ditto.
38520
38521         * WebProcess/WebPage/WebFrame.cpp:
38522         (WebKit::WebFrame::name): Added.
38523         * WebProcess/WebPage/WebFrame.h: Ditto.
38524
38525 2010-07-21  Darin Adler  <darin@apple.com>
38526
38527         Reviewed by Sam Weinig.
38528
38529         WebKitTestRunner needs to support dumping of scroll position
38530         https://bugs.webkit.org/show_bug.cgi?id=42514
38531
38532         Added WKBundleFrameGetJavaScriptContext function.
38533
38534         * WebKit2.xcodeproj: Added property svn:ignore.
38535
38536         * WebProcess/InjectedBundle/API/c/WKBundleFrame.cpp:
38537         (WKBundleFrameGetJavaScriptContext): Added.
38538         * WebProcess/InjectedBundle/API/c/WKBundleFrame.h: Ditto.
38539
38540         * WebProcess/InjectedBundle/API/c/WKBundlePage.h:
38541         * WebProcess/InjectedBundle/InjectedBundlePageLoaderClient.cpp:
38542         (WebKit::InjectedBundlePageLoaderClient::didClearWindowObjectForFrame):
38543         * WebProcess/InjectedBundle/InjectedBundlePageLoaderClient.h:
38544         * WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
38545         (WebKit::WebFrameLoaderClient::dispatchDidClearWindowObjectInWorld):
38546         Use JSGlobalContextRef instead of JSContextRef and context instead of ct.
38547
38548 2010-07-21  Adam Roben  <aroben@apple.com>
38549
38550         Handle broken pipes in more places in CoreIPC
38551
38552         Fixes <http://webkit.org/b/42784> Assertion failure in
38553         Connection::readEventHandler when WebKitTestRunner exits
38554
38555         Reviewed by Anders Carlsson.
38556
38557         * Platform/CoreIPC/win/ConnectionWin.cpp:
38558         (CoreIPC::Connection::readEventHandler): Check for a broken pipe
38559         whenever we call ::PeekNamedPipe.
38560
38561 2010-07-21  Adam Roben  <aroben@apple.com>
38562
38563         Teach CoreIPC how to handle messages that are larger than the pipe's
38564         buffer
38565
38566         ::GetOverlappedResult and ::ReadFile can fail with ERROR_MORE_DATA
38567         when there is more data available on the pipe than was requested in
38568         the read operation. In those cases, the appropriate response is to
38569         perform another read operation to read the extra data. We now do this.
38570
38571         Also, MSDN says that, because we are doing asynchronous read
38572         operations, we should not pass a pointer to ::ReadFile to find out how
38573         many bytes were read. Instead we should always call
38574         ::GetOverlappedResult to find this out. I've changed
38575         Connection::readEventHandler to have a single loop that calls
38576         ::GetOverlappedResult and ::ReadFile in alternation, rather than
38577         sometimes calling ::ReadFile multiple times in a row, to satisfy this
38578         requirement.
38579
38580         In order to simplify the logic in this function, I've made us request
38581         only a single byte from the pipe when there are no messages already in
38582         the pipe. (Previously we were requesting 4096 bytes in this case.)
38583         This allows us not to have to consider the case where the received
38584         message is smaller than our read buffer. If we decide that this has a
38585         negative impact on performance, we can of course change it. I've
38586         mitigated this somewhat by using ::PeekNamedMessage to find out the
38587         size of the next message in the pipe (if any), so that we can read it
38588         all in one read operation.
38589
38590         Fixes <http://webkit.org/b/42710> <rdar://problem/8197571> Assertion
38591         in Connection::readEventHandler when launching WebKitTestRunner
38592
38593         Reviewed by Anders Carlsson.
38594
38595         * Platform/CoreIPC/win/ConnectionWin.cpp:
38596         (CoreIPC::Connection::readEventHandler): Put the call to
38597         ::GetOverlappedResult in the same loop as ::ReadFile so that we will
38598         call them alternately. If ::GetOverlappedResult fails with
38599         ERROR_MORE_DATA, use ::PeekNamedPipe to determine the size of the rest
38600         of the message, then read it from the pipe. After dispatching the
38601         message, use ::PeekNamedPipe to find out the size of the next message
38602         in the pipe so we can read it all in one operation. If there's no
38603         message in the pipe, we'll request just a single byte of the next
38604         message that becomes available, and Windows will tell us when the rest
38605         of the message is ready. If ::ReadFile fails with ERROR_MORE_DATA it
38606         means there is data available now even though we didn't think there
38607         was any. We go back to the top of the loop in this case and call
38608         ::GetOverlappedResult again to retrieve the available data.
38609
38610 2010-07-21  Sam Weinig  <sam@webkit.org>
38611
38612         Reviewed by Anders Carlsson.
38613
38614         Patch for https://bugs.webkit.org/show_bug.cgi?id=42539
38615         WebKitTestRunner needs to support printing ALERT, PROMPT and CONFIRM messages
38616
38617         - Convert injected bundle UIClient functions to will-style, at least until we establish
38618           more concrete use cases for them past the TestRunner.
38619
38620         * WebProcess/InjectedBundle/API/c/WKBundlePage.h:
38621         * WebProcess/InjectedBundle/InjectedBundlePageUIClient.cpp:
38622         (WebKit::InjectedBundlePageUIClient::willAddMessageToConsole):
38623         (WebKit::InjectedBundlePageUIClient::willSetStatusbarText):
38624         (WebKit::InjectedBundlePageUIClient::willRunJavaScriptAlert):
38625         (WebKit::InjectedBundlePageUIClient::willRunJavaScriptConfirm):
38626         (WebKit::InjectedBundlePageUIClient::willRunJavaScriptPrompt):
38627         * WebProcess/InjectedBundle/InjectedBundlePageUIClient.h:
38628         * WebProcess/WebCoreSupport/WebChromeClient.cpp:
38629         (WebKit::WebChromeClient::addMessageToConsole):
38630         (WebKit::WebChromeClient::runJavaScriptAlert):
38631         (WebKit::WebChromeClient::runJavaScriptConfirm):
38632         (WebKit::WebChromeClient::runJavaScriptPrompt):
38633         (WebKit::WebChromeClient::setStatusbarText):
38634
38635 2010-07-21  Simon Fraser  <simon.fraser@apple.com>
38636
38637         Windows build fix.
38638
38639         Need to supply implementations of PageClient::pageDidEnterAcceleratedCompositing()
38640         and pageDidLeaveAcceleratedCompositing() for WebView on Windows.
38641
38642         * UIProcess/win/WebView.cpp:
38643         (WebKit::WebView::pageDidEnterAcceleratedCompositing):
38644         (WebKit::WebView::pageDidLeaveAcceleratedCompositing):
38645         * UIProcess/win/WebView.h:
38646
38647 2010-07-21  Anders Carlsson  <andersca@apple.com>
38648
38649         Reviewed by Sam Weinig.
38650
38651         Don't assert when clicking on a plug-in in WebKit2
38652         https://bugs.webkit.org/show_bug.cgi?id=42762
38653
38654         Add stub for PluginView::handleEvent.
38655
38656         * WebProcess/Plugins/PluginView.cpp:
38657         (WebKit::PluginView::handleEvent):
38658         * WebProcess/Plugins/PluginView.h:
38659
38660 2010-07-21  Simon Fraser  <simon.fraser@apple.com>
38661
38662         Reviewed by Anders Carlsson.
38663
38664         Get accelerated compositing working with webkit2
38665         https://bugs.webkit.org/show_bug.cgi?id=41084
38666         
38667         Hook up dynamic DrawingArea switching, so that when the WebProcess hits a page
38668         that requires accelerated compositing, we switch to the LayerBackedDrawingArea.
38669         
38670         * Shared/CoreIPCSupport/DrawingAreaProxyMessageKinds.h:
38671         (DrawingAreaProxyMessage::):
38672         * Shared/CoreIPCSupport/WebPageProxyMessageKinds.h:
38673         (WebPageProxyMessage::):
38674         * UIProcess/API/mac/PageClientImpl.h:
38675         * UIProcess/API/mac/PageClientImpl.mm:
38676         (WebKit::PageClientImpl::pageDidEnterAcceleratedCompositing):
38677         (WebKit::PageClientImpl::pageDidLeaveAcceleratedCompositing):
38678         * UIProcess/API/mac/WKView.mm:
38679         (-[WKView _startAcceleratedCompositing:]):
38680         (-[WKView _switchToDrawingAreaTypeIfNecessary:DrawingAreaProxy::]):
38681         (-[WKView _pageDidEnterAcceleratedCompositing]):
38682         (-[WKView _pageDidLeaveAcceleratedCompositing]):
38683         * UIProcess/API/mac/WKViewInternal.h:
38684         * UIProcess/ChunkedUpdateDrawingAreaProxy.cpp:
38685         (WebKit::ChunkedUpdateDrawingAreaProxy::didReceiveSyncMessage):
38686         * UIProcess/ChunkedUpdateDrawingAreaProxy.h:
38687         * UIProcess/DrawingAreaProxy.h:
38688         (WebKit::DrawingAreaProxy::):
38689         (WebKit::DrawingAreaProxy::type):
38690         * UIProcess/LayerBackedDrawingAreaProxy.cpp:
38691         (WebKit::LayerBackedDrawingAreaProxy::didSetSize):
38692         (WebKit::LayerBackedDrawingAreaProxy::didReceiveMessage):
38693         (WebKit::LayerBackedDrawingAreaProxy::didReceiveSyncMessage):
38694         * UIProcess/LayerBackedDrawingAreaProxy.h:
38695         * UIProcess/PageClient.h:
38696         * UIProcess/WebPageProxy.cpp:
38697         (WebKit::WebPageProxy::setDrawingArea):
38698         (WebKit::WebPageProxy::didReceiveSyncMessage):
38699         (WebKit::WebPageProxy::didEnterAcceleratedCompositing):
38700         (WebKit::WebPageProxy::didLeaveAcceleratedCompositing):
38701         * UIProcess/WebPageProxy.h:
38702         * UIProcess/mac/LayerBackedDrawingAreaProxyMac.mm:
38703         (WebKit::LayerBackedDrawingAreaProxy::attachCompositingContext):
38704         * WebProcess/WebCoreSupport/WebChromeClient.cpp:
38705         (WebKit::WebChromeClient::attachRootGraphicsLayer):
38706         * WebProcess/WebPage/ChunkedUpdateDrawingArea.h:
38707         (WebKit::ChunkedUpdateDrawingArea::attachCompositingContext):
38708         (WebKit::ChunkedUpdateDrawingArea::setRootCompositingLayer):
38709         * WebProcess/WebPage/DrawingArea.cpp:
38710         (WebKit::DrawingArea::create):
38711         * WebProcess/WebPage/DrawingArea.h:
38712         (WebKit::DrawingArea::):
38713         (WebKit::DrawingArea::type):
38714         * WebProcess/WebPage/LayerBackedDrawingArea.cpp:
38715         (WebKit::LayerBackedDrawingArea::LayerBackedDrawingArea):
38716         (WebKit::LayerBackedDrawingArea::setNeedsDisplay):
38717         (WebKit::LayerBackedDrawingArea::setSize):
38718         (WebKit::LayerBackedDrawingArea::didUpdate):
38719         (WebKit::LayerBackedDrawingArea::setRootCompositingLayer):
38720         * WebProcess/WebPage/LayerBackedDrawingArea.h:
38721         * WebProcess/WebPage/WebPage.cpp:
38722         (WebKit::WebPage::changeAcceleratedCompositingMode):
38723         (WebKit::WebPage::enterAcceleratedCompositingMode):
38724         (WebKit::WebPage::exitAcceleratedCompositingMode):
38725         * WebProcess/WebPage/WebPage.h:
38726         * WebProcess/WebPage/mac/LayerBackedDrawingAreaMac.mm:
38727         (WebKit::LayerBackedDrawingArea::platformInit):
38728         (WebKit::LayerBackedDrawingArea::attachCompositingContext):
38729         (WebKit::LayerBackedDrawingArea::detachCompositingContext):
38730         (WebKit::LayerBackedDrawingArea::setRootCompositingLayer):
38731
38732 2010-07-20  Steve Falkenburg  <sfalken@apple.com>
38733
38734         Reviewed by Adam Roben.
38735
38736         WebKit on Windows should build optionally with an unversioned ICU DLL
38737         https://bugs.webkit.org/show_bug.cgi?id=42722
38738         <rdar://problem/8211767> WebKit needs to link against unversioned ICU
38739
38740         To get the proper value for U_DISABLE_RENAMING into all source files, we force
38741         the include of ICUVersion.h (our generated header) via the compiler options.
38742
38743         Since the versioned and unversioned ICU have different filenames (libicuuc.lib vs icuuc.lib)
38744         we copy the ICU lib to an intermediate location under obj with a common name. This
38745         allows us to link properly with either without adding a new build configuration.
38746
38747         * win/WebKit2Common.vsprops:
38748         Copy ICU libs into a common location with a common name.
38749         Add additional library search path to pick up icu lib.
38750         Change ICU library filename specified to linker.
38751         Add forced include of ICUVersion.h.        
38752
38753 2010-07-21  Adam Roben  <aroben@apple.com>
38754
38755         Windows build fix
38756
38757         * Shared/win/UpdateChunk.h:
38758         (WebKit::UpdateChunk::isEmpty): Added to match the Mac definition.
38759
38760 2010-07-21  Anders Carlsson  <andersca@apple.com>
38761
38762         Land file I forgot to add.
38763
38764         * WebProcess/com.apple.WebProcess.sb: Added.
38765
38766 2010-07-21  Adam Roben  <aroben@apple.com>
38767
38768         Move WebKit2WebProcess's settings to a vsprops file
38769
38770         Fixes <http://webkit.org/b/42751> WebKit2WebProcess should use vsprops
38771         files
38772
38773         Reviewed by Darin Adler.
38774
38775         * win/WebKit2WebProcess.vcproj: Moved settings from here...
38776         * win/WebKit2WebProcessCommon.vsprops: ...to here.
38777
38778 2010-07-20  Ivan Krstić  <ike@apple.com>
38779
38780         Reviewed and tweaked by Anders Carlsson and Sam Weinig.
38781
38782         Put WebProcess in a sandbox. All of the following changes are
38783         Mac-only.
38784         <rdar://problem/7865269>
38785
38786         * UIProcess/WebProcessProxy.cpp:
38787         (WebKit::WebProcessProxy::WebProcessProxy):
38788         Send Sandbox extension for injected bundle to WebProcess.
38789
38790         * WebKit2.xcodeproj/project.pbxproj:
38791         Add Sandbox profile to Resources for WebProcess.
38792
38793         * WebProcess/InjectedBundle/InjectedBundle.h:
38794         New function InjectedBundle::setSandboxToken.
38795
38796         * WebProcess/InjectedBundle/mac/InjectedBundleMac.cpp:
38797         (WebKit::InjectedBundle::load):
38798         Consume Sandbox token for the bundle if present.
38799
38800         (WebKit::InjectedBundle::setSandboxToken):
38801         Set Sandbox token for the bundle.
38802
38803         * WebProcess/WebProcess.cpp:
38804         (WebKit::WebProcess::loadInjectedBundle):
38805         Extra function parameter for Sandbox token.
38806
38807         (WebKit::WebProcess::didReceiveMessage):
38808         Pass Sandbox token to loadInjectedBundle().
38809
38810         * WebProcess/WebProcess.h:
38811         Extra function parameter for Sandbox token in loadInjectedBundle().
38812
38813         * WebProcess/com.apple.WebProcess.sb: Added.
38814         Sandbox profile for WebProcess.
38815
38816         * WebProcess/mac/WebProcessMainMac.mm:
38817         (WebKit::WebProcessMain):
38818         Initialize Sandbox, exit on failure.
38819
38820 2010-07-20  Sam Weinig  <sam@webkit.org>
38821
38822         Reviewed by Brady Eidson.
38823
38824         Patch for https://bugs.webkit.org/show_bug.cgi?id=42719
38825         Make Acid2 pass in WebKit2
38826
38827         * WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
38828         (WebKit::WebFrameLoaderClient::objectContentType): Check for supported image mimetypes
38829         before falling back to plugins.
38830
38831 2010-07-20  Adam Roben  <aroben@apple.com>
38832
38833         Remove WebKit2.sln
38834
38835         WebKit.sln builds all the same projects.
38836
38837         Rubber-stamped in advance by Steve Falkenburg.
38838
38839         * WebKit2.sln: Removed.
38840
38841 2010-07-20  Adam Roben  <aroben@apple.com>
38842
38843         Make the web process break into the debugger when Ctrl-Alt-Shift is
38844         held during launch
38845
38846         Fixes <http://webkit.org/b/42670> Would like a way to break into the
38847         debugger when the web process launches
38848
38849         Reviewed by Anders Carlsson.
38850
38851         * WebProcess/WebKitMain.cpp:
38852         (WebKitMain): If the Control, Alt, and Shift keys are held down in a
38853         Debug build, call DebugBreak() so that we will break into the
38854         debugger.
38855
38856 2010-07-20  Adam Roben  <aroben@apple.com>
38857
38858         Teach Connection how to handle a slow receiver
38859
38860         Fixes <http://webkit.org/b/42667> Assertion in
38861         Connection::sendOutgoingMessage when browser or web process is paused
38862
38863         Reviewed by Anders Carlsson.
38864
38865         * Platform/CoreIPC/win/ConnectionWin.cpp:
38866         (CoreIPC::Connection::sendOutgoingMessage): If WriteFile returns FALSE
38867         and the last error is ERROR_IO_PENDING, Windows will write the data as
38868         soon as the current write operation is completed. We don't need to do
38869         anything special in this case, so there's no need to assert about it.
38870
38871 2010-07-20  Anders Carlsson  <andersca@apple.com>
38872
38873         Reviewed by Dan Bernstein.
38874
38875         Handle WKView visibility changes
38876         <rdar://problem/7891077>
38877     
38878         * Shared/mac/UpdateChunk.h:
38879         (WebKit::UpdateChunk::isEmpty):
38880         Add convenience getter.
38881
38882         * UIProcess/API/mac/WKView.mm:
38883         (-[WKView viewDidMoveToWindow]):
38884         Reorder the calls to _updateActiveState and _updateVisibility based on whether the view is moved to
38885         a window or away from a window.
38886
38887         * UIProcess/ChunkedUpdateDrawingAreaProxy.cpp:
38888         (WebKit::ChunkedUpdateDrawingAreaProxy::ChunkedUpdateDrawingAreaProxy):
38889         Initialize m_forceRepaintWhenResumingPainting to false.
38890
38891         (WebKit::ChunkedUpdateDrawingAreaProxy::setPageIsVisible):
38892         Pass the m_forceRepaintWhenResumingPainting along to the DrawingAreaMessage::ResumePainting message.
38893
38894         (WebKit::ChunkedUpdateDrawingAreaProxy::didSetSize):
38895         Don't try to paint empty update chunks.
38896
38897         (WebKit::ChunkedUpdateDrawingAreaProxy::update):
38898         Don't paint the update chunk if we're not visible. Instead, make sure that the entire page is being redrawn
38899         when its shown again.
38900
38901         * UIProcess/ChunkedUpdateDrawingAreaProxy.h:
38902         * WebProcess/WebPage/ChunkedUpdateDrawingArea.cpp:
38903         (WebKit::ChunkedUpdateDrawingArea::ChunkedUpdateDrawingArea):
38904         (WebKit::ChunkedUpdateDrawingArea::display):
38905         (WebKit::ChunkedUpdateDrawingArea::suspendPainting):
38906         Rename m_shouldPaint to m_isPaintingSuspended and invert its logic.
38907         
38908         (WebKit::ChunkedUpdateDrawingArea::scheduleDisplay):
38909         Don't schedule a display timer if the dirty rect is empty.
38910
38911         (WebKit::ChunkedUpdateDrawingArea::setSize):
38912         If painting is suspended, just send back an empty update chunk in the DidSetSize message.
38913
38914         (WebKit::ChunkedUpdateDrawingArea::resumePainting):
38915         If forceRepaint is true, repaint the entire drawing area.
38916
38917 2010-07-20  Anders Carlsson  <andersca@apple.com>
38918
38919         Reviewed by Dan Bernstein.
38920
38921         Implement NPN_GetURL and NPN_PostURL
38922         https://bugs.webkit.org/show_bug.cgi?id=42650
38923
38924         * WebProcess/Plugins/Netscape/NetscapeBrowserFuncs.cpp:
38925         (WebKit::parsePostBuffer):
38926         Add a FIXME about deleting the file.
38927
38928         (WebKit::makeURLString):
38929         Move this static method before NPN_GetURL.
38930
38931         (WebKit::NPN_GetURL):
38932         Call NetscapePLugin::LoadURL.
38933         
38934         (WebKit::NPN_PostURL):
38935         Ditto.
38936
38937         (WebKit::NPN_PostURLNotify):
38938         * WebProcess/Plugins/Netscape/NetscapePluginStream.cpp:
38939         Remove unreached code.
38940
38941         (WebKit::NetscapePluginStream::deliverDataToPlugin):
38942         Stop the stream if the plug-in returns -1 from NPP_Write.
38943
38944 2010-07-19  Anders Carlsson  <andersca@apple.com>
38945
38946         Reviewed by Sam Weinig.
38947
38948         WebKitTestRunner and WebProcess simultaneously stall in CoreIPC::Connection::sendOutgoingMessage
38949         https://bugs.webkit.org/show_bug.cgi?id=42356
38950
38951         Up the port queue length from 5 to 1024. While this does solve the problem, we should still try to
38952         make sendOutgoingMessage not block. I've filed https://bugs.webkit.org/show_bug.cgi?id=42611 to track 
38953         doing this on Mac and Windows.
38954
38955         * Platform/CoreIPC/mac/ConnectionMac.cpp:
38956         (CoreIPC::Connection::open):
38957         Call setMachPortQueueLength.
38958
38959         * Platform/mac/MachUtilities.cpp: Added.
38960         (setMachPortQueueLength):
38961         Given a mach port receive right, sets the port queue length.
38962
38963         * Platform/mac/MachUtilities.h: Added.
38964         
38965         * WebKit2.xcodeproj/project.pbxproj:
38966         Add MachUtilities.cpp and MachUtilities.h
38967
38968 2010-07-19  Anders Carlsson  <andersca@apple.com>
38969
38970         Reviewed by Darin Adler, Adam Roben, Dan Bernstein and Sam Weinig.
38971
38972         Handle NP_ASFILE and NP_ASFILEONLY transfer modes
38973         https://bugs.webkit.org/show_bug.cgi?id=42587
38974
38975         * WebProcess/Plugins/Netscape/NetscapePlugin.cpp:
38976         (WebKit::NetscapePlugin::NPP_StreamAsFile):
38977         * WebProcess/Plugins/Netscape/NetscapePlugin.h:
38978         Add NPP_ wrapper.
38979
38980         * WebProcess/Plugins/Netscape/NetscapePluginStream.cpp:
38981         (WebKit::NetscapePluginStream::NetscapePluginStream):
38982         Initialize m_fileHandle.
38983
38984         (WebKit::isSupportedTransferMode):
38985         NP_ASFILE and NP_ASFILEONLY is now supported.
38986
38987         (WebKit::NetscapePluginStream::deliverData):
38988         Call deliverDataToFile if necessary.
38989
38990         (WebKit::NetscapePluginStream::deliverDataToFile):
38991         Create a temporary file and write the data into it.
38992
38993         (WebKit::NetscapePluginStream::stop):
38994         If the transfer mode is either NP_ASFILE or NP_ASFILEONLY, make sure to
38995         call NPP_StreamAsFile and close the file and delete it.
38996
38997         * WebProcess/Plugins/PluginView.cpp:
38998         (WebKit::PluginView::cancelStreamLoad):
38999         Keep a reference to the Stream since cancelling it will remove it from the map.
39000
39001 2010-07-19  Anders Carlsson  <andersca@apple.com>
39002
39003         Reviewed by Sam Weinig.
39004
39005         Implement NPN_PostURLNotify
39006         https://bugs.webkit.org/show_bug.cgi?id=42602
39007
39008         * WebProcess/Plugins/Netscape/NetscapeBrowserFuncs.cpp:
39009         (WebKit::parsePostBuffer):
39010         Read the buffer from a file if necessary and parse it.
39011
39012         (WebKit::NPN_GetURLNotify):
39013         Add extra arguments.
39014
39015         (WebKit::NPN_PostURLNotify):
39016         Parse the post buffer, then call NetscapePlugin::loadURL.
39017
39018         * WebProcess/Plugins/Netscape/NetscapePlugin.cpp:
39019         (WebKit::NetscapePlugin::loadURL):
39020         Pass the method, the header fields and form data along.
39021
39022         (WebKit::NetscapePlugin::allowPopups):
39023         Just return false for now.
39024
39025         (WebKit::NetscapePlugin::initialize):
39026         Pass extra arguments to loadURL.
39027
39028         * WebProcess/Plugins/Netscape/NetscapePlugin.h:
39029         * WebProcess/Plugins/PluginController.h:
39030         Add method, header fields and form data.
39031
39032         * WebProcess/Plugins/PluginView.cpp:
39033         (WebKit::PluginView::loadURL):
39034         Set the method, add the header fields and set the body.
39035
39036 2010-07-19  Sam Weinig  <sam@webkit.org>
39037
39038         Reviewed by Darin Adler.
39039
39040         Add local storage support for WebKit2
39041         https://bugs.webkit.org/show_bug.cgi?id=42584
39042
39043         * Shared/WebPreferencesStore.cpp:
39044         (WebKit::WebPreferencesStore::WebPreferencesStore):
39045         (WebKit::WebPreferencesStore::swap):
39046         * Shared/WebPreferencesStore.h:
39047         (WebKit::WebPreferencesStore::encode):
39048         (WebKit::WebPreferencesStore::decode):
39049         * UIProcess/API/C/WKPreferences.cpp:
39050         (WKPreferencesSetLocalStorageEnabled):
39051         (WKPreferencesGetLocalStorageEnabled):
39052         * UIProcess/API/C/WKPreferences.h:
39053         * UIProcess/WebPreferences.cpp:
39054         (WebKit::WebPreferences::setLocalStorageEnabled):
39055         (WebKit::WebPreferences::localStorageEnabled):
39056         * UIProcess/WebPreferences.h:
39057         * WebProcess/WebPage/WebPage.cpp:
39058         (WebKit::WebPage::WebPage):
39059         (WebKit::WebPage::preferencesDidChange):
39060
39061 2010-07-19  Simon Fraser  <simon.fraser@apple.com>
39062
39063         Reviewed by Anders Carlsson.
39064
39065         Uae an OwnPtr for the drawing area in WebPage (fixes a leak!).
39066
39067         * WebProcess/WebPage/WebPage.h:
39068         (WebKit::WebPage::drawingArea):
39069
39070 2010-07-19  Anders carlsson  <andersca@apple.com>
39071
39072         Reviewed by Adam Roben.
39073
39074         WebKit2 does not have application cache
39075         https://bugs.webkit.org/show_bug.cgi?id=42552
39076
39077         * Shared/CoreIPCSupport/WebProcessMessageKinds.h:
39078         (WebProcessMessage::):
39079         Add SetApplicationCacheDirectory.
39080
39081         * Shared/WebPreferencesStore.h:
39082         (WebKit::WebPreferencesStore::encode):
39083         (WebKit::WebPreferencesStore::decode):
39084         add offlineWebApplicationCacheEnabled.
39085
39086         * UIProcess/API/C/WKPreferences.cpp:
39087         (WKPreferencesSetOfflineWebApplicationCacheEnabled):
39088         (WKPreferencesGetOfflineWebApplicationCacheEnabled):
39089         * UIProcess/API/C/WKPreferences.h:
39090         Add getters/setters for whether the application cache is enabled.
39091
39092         * UIProcess/WebContext.h:
39093         * UIProcess/WebPreferences.cpp:
39094         (WebKit::WebPreferences::setOfflineWebApplicationCacheEnabled):
39095         Update the store and call update().
39096         
39097         * UIProcess/WebPreferences.h:
39098         * UIProcess/WebProcessProxy.cpp:
39099         (WebKit::WebProcessProxy::WebProcessProxy):
39100         Ask the web process to set the application cache directory.
39101
39102         * UIProcess/mac/WebContextMac.mm: Added.
39103         (WebKit::WebContext::applicationCacheDirectory):
39104         Return the application cache directory.
39105
39106         * UIProcess/win/WebContextWin.cpp: Added.
39107         (WebKit::WebContext::applicationCacheDirectory):
39108         Ditto.
39109
39110         * WebKit2.xcodeproj/project.pbxproj:
39111         Add WebContextMac.mm
39112
39113         * WebProcess/WebPage/WebPage.cpp:
39114         (WebKit::WebPage::preferencesDidChange):
39115         
39116         (WebKit::WebPage::didReceiveMessage):
39117         Handle PreferencesDidChange. Get rid of the default: case statement so we'll
39118         get warnings if we have unhandled message kinds.
39119
39120         * WebProcess/WebProcess.cpp:
39121         (WebKit::WebProcess::setApplicationCacheDirectory):
39122         Set the application cache directory.
39123
39124         (WebKit::WebProcess::didReceiveMessage):
39125         Handle SetApplicationCacheDirectory.
39126
39127         win/WebKit2.vcproj:
39128         Add WebContextWin.cpp
39129
39130 2010-07-18  Anders Carlsson  <andersca@apple.com>
39131
39132         Another attempt at fixing the Windows build.
39133
39134         * WebProcess/Plugins/NPJSObjectMap.h:
39135
39136 2010-07-18  Anders Carlsson  <andersca@apple.com>
39137
39138         Try to fix Windows build.
39139
39140         * win/WebKit2.vcproj:
39141
39142 2010-07-18  Anders Carlsson  <andersca@apple.com>
39143
39144         Reviewed by Sam Weinig.
39145
39146         More NPRuntime work
39147         https://bugs.webkit.org/show_bug.cgi?id=42526
39148
39149         * WebProcess/Plugins/NPJSObjectMap.cpp:
39150         (WebKit::identifierFromIdentifierRep):
39151         (WebKit::NPJSObject::hasProperty):
39152         Check if the JSObject has the given property.
39153
39154         (WebKit::NPJSObject::getProperty):
39155         Add stubbed out function.
39156
39157         (WebKit::NPJSObject::npClass):
39158         Add NP_HasProperty and NP_GetProperty.
39159
39160         (WebKit::NPJSObject::NP_HasProperty):
39161         Call NPJSObject::hasProperty.
39162
39163         (WebKit::NPJSObject::NP_GetProperty):
39164         Call NPJSObject::getProperty.
39165
39166         * WebProcess/Plugins/NPRuntimeUtilities.cpp:
39167         (WebKit::releaseNPVariantValue):
39168         Release the given NPVariant.
39169
39170         * WebProcess/Plugins/NPRuntimeUtilities.h:
39171         * WebProcess/Plugins/Netscape/NetscapeBrowserFuncs.cpp:
39172         (WebKit::NPN_GetProperty):
39173         Call the NPClass GetProperty function.
39174
39175         (WebKit::NPN_HasProperty):
39176         Call the NPClass HasProperty function.
39177         
39178         (WebKit::NPN_ReleaseVariantValue):
39179         Call releaseNPVariantValue.
39180
39181 2010-07-18  Anders Carlsson  <andersca@apple.com>
39182
39183         Reviewed by Sam Weinig.
39184
39185         Add NPJSObjectMap class
39186         https://bugs.webkit.org/show_bug.cgi?id=42524
39187
39188         * WebKit2.xcodeproj/project.pbxproj:
39189         Add files.
39190
39191         * WebProcess/Plugins/NPJSObjectMap.cpp: Added.
39192         * WebProcess/Plugins/NPJSObjectMap.h: Added.
39193         Add NPJSObjectMap, a map which contains NPObjects that wrap JavaScript objects.
39194
39195         * WebProcess/Plugins/PluginView.cpp:
39196         (WebKit::PluginView::PluginView):
39197         Initialize the map.
39198
39199         (WebKit::PluginView::~PluginView):
39200         Invalidate the map.
39201
39202         (WebKit::PluginView::frame):
39203         Add frame getter.
39204
39205         (WebKit::PluginView::windowScriptNPObject):
39206         Wrap the window object.
39207
39208         (WebKit::PluginView::pluginElementNPObject):
39209         Wrap the plug-in element object.
39210
39211         * WebProcess/Plugins/PluginView.h:
39212
39213 2010-07-18  Anders Carlsson  <andersca@apple.com>
39214
39215         Reviewed by Sam Weinig.
39216
39217         Implement more NPRuntime related NPN_ functions
39218         https://bugs.webkit.org/show_bug.cgi?id=42520
39219
39220         * WebKit2.xcodeproj/project.pbxproj:
39221         * WebProcess/Plugins/NPRuntimeUtilities.cpp: Added.
39222         * WebProcess/Plugins/NPRuntimeUtilities.h: Added.
39223         Add new file with NPRuntime related utility functions.
39224
39225         * WebProcess/Plugins/Netscape/NetscapeBrowserFuncs.cpp:
39226         (WebKit::NPN_CreateObject):
39227         (WebKit::NPN_RetainObject):
39228         (WebKit::NPN_ReleaseObject):
39229         Call the corresponding NPRuntimeUtilities functions.
39230
39231 2010-07-18  Anders Carlsson  <andersca@apple.com>
39232
39233         Reviewed by Dan Bernstein.
39234
39235         Begin work on NPRuntime support
39236         https://bugs.webkit.org/show_bug.cgi?id=42519
39237
39238         * WebProcess/Plugins/Netscape/NetscapeBrowserFuncs.cpp:
39239         (WebKit::NPN_GetValue):
39240         Handle NPNVWindowNPObject and NPNVPluginElementNPObject.
39241
39242         * WebProcess/Plugins/Netscape/NetscapePlugin.cpp:
39243         (WebKit::NetscapePlugin::windowScriptNPObject):
39244         (WebKit::NetscapePlugin::pluginElementNPObject):
39245         Call the plug-in controller.
39246
39247         * WebProcess/Plugins/PluginController.h:
39248         Add new windowScriptNPObject and pluginElementNPObject functions.
39249
39250         * WebProcess/Plugins/PluginView.cpp:
39251         (WebKit::PluginView::windowScriptNPObject):
39252         (WebKit::PluginView::pluginElementNPObject):
39253         Add stubbed out functions.
39254
39255 2010-07-18  Anders Carlsson  <andersca@apple.com>
39256
39257         Reviewed by Dan Bernstein.
39258
39259         Implement some NPRuntime related NPN_ functions
39260         https://bugs.webkit.org/show_bug.cgi?id=42518
39261
39262         * WebProcess/Plugins/Netscape/NetscapeBrowserFuncs.cpp:
39263         (WebKit::NPN_GetStringIdentifier):
39264         (WebKit::NPN_GetStringIdentifiers):
39265         (WebKit::NPN_GetIntIdentifier):
39266         (WebKit::NPN_IdentifierIsString):
39267         (WebKit::NPN_UTF8FromIdentifier):
39268         (WebKit::NPN_IntFromIdentifier):
39269         (WebKit::NPN_CreateObject):
39270
39271 2010-07-18  Anders Carlsson  <andersca@apple.com>
39272
39273         Reviewed by Dan Bernstein.
39274
39275         Add dumping of statusbar text to WebKitTestRunner
39276         https://bugs.webkit.org/show_bug.cgi?id=42516
39277
39278         * WebProcess/InjectedBundle/API/c/WKBundlePage.h:
39279         Add setStatusbarText callback to WKBundlePageUIClient.
39280
39281         * WebProcess/InjectedBundle/InjectedBundlePageUIClient.cpp:
39282         (WebKit::InjectedBundlePageUIClient::setStatusbarText):
39283         Call setStatusbarText.
39284
39285         * WebProcess/InjectedBundle/InjectedBundlePageUIClient.h:
39286         * WebProcess/WebCoreSupport/WebChromeClient.cpp:
39287         (WebKit::WebChromeClient::setStatusbarText):
39288         Call the bundle page UI client.
39289
39290 2010-07-17  Anders Carlsson  <andersca@apple.com>
39291
39292         Reviewed by Maciej Stachowiak.
39293
39294         WebKitTestRunner should load the test plug-in
39295         https://bugs.webkit.org/show_bug.cgi?id=42509
39296
39297         * UIProcess/API/C/WKContext.cpp:
39298         (_WKContextSetAdditionalPluginPath):
39299         Add a private function for setting a single additional plug-in path. the WebKit1 SPI that does the
39300         same thing takes an array of paths, but this is good enough for now.
39301
39302         * UIProcess/Plugins/PluginInfoStore.cpp:
39303         (WebKit::PluginInfoStore::setAdditionalPluginPaths):
39304         Set the additional plug-in paths vector and refresh the database.
39305         
39306         (WebKit::PluginInfoStore::loadPluginsIfNecessary):
39307         First try to load plug-ins in the additional plug-in paths.
39308         
39309         * UIProcess/WebContext.cpp:
39310         (WebKit::WebContext::setAdditionalPluginPath):
39311         Call PluginInfoStore::setAdditionalPluginPaths.
39312
39313         * UIProcess/WebContext.h:
39314         (WebKit::WebContext::pluginInfoStore):
39315         Make the plug-in info store per context instead of having a single shared info store.
39316
39317         * UIProcess/WebProcessProxy.cpp:
39318         (WebKit::WebProcessProxy::getPlugins):
39319         (WebKit::WebProcessProxy::getPluginHostConnection):
39320         * UIProcess/WebProcessProxy.h:
39321         Get the plug-in info store from the context.
39322
39323 2010-07-17  Anders Carlsson  <andersca@apple.com>
39324
39325         Reviewed by Dan Bernstein.
39326
39327         Stop all NPStreams before destroying a plug-in
39328         https://bugs.webkit.org/show_bug.cgi?id=42504
39329
39330         * WebProcess/Plugins/Netscape/NetscapePlugin.cpp:
39331         (WebKit::NetscapePlugin::stopAllStreams):
39332         Go through all streams and stop them.
39333
39334         (WebKit::NetscapePlugin::destroy):
39335         Call stopAllStreams.
39336
39337         * WebProcess/Plugins/Netscape/NetscapePlugin.h:
39338         Add stopAllStreams.
39339         
39340         * WebProcess/Plugins/Netscape/NetscapePluginStream.h:
39341         Make stop public.
39342
39343 2010-07-17  Anders Carlsson  <andersca@apple.com>
39344
39345         Reviewed by Dan Bernstein.
39346
39347         Open streams should not keep a plug-in view alive
39348         https://bugs.webkit.org/show_bug.cgi?id=42503
39349
39350         PluginView::Stream now has a weak reference to its PluginView.
39351
39352         * WebProcess/Plugins/PluginView.cpp:
39353         (WebKit::PluginView::Stream::~Stream):
39354         Assert that the plug-in view is null.
39355
39356         (WebKit::PluginView::Stream::didFail):
39357         After calling removeStream, set the plug-in view member variable to 0. This is OK to do
39358         since we keep a reference to the Stream, so we're sure that the call to removeStream does not
39359         destroy the stream.
39360
39361         (WebKit::PluginView::Stream::didFinishLoading):
39362         Ditto .
39363
39364         (WebKit::PluginView::~PluginView):
39365         Cancel all streams.
39366         
39367         (WebKit::PluginView::cancelAllStreams):
39368         Cancel all streams.
39369
39370 2010-07-16  Zhe Su  <suzhe@chromium.org>
39371
39372         Reviewed by Darin Adler.
39373
39374         REGRESSION(r61484): Broke focus behaviour on Qt and probably other platforms
39375         https://bugs.webkit.org/show_bug.cgi?id=42253
39376
39377         Dummy implementation of EditorClient::willSetInputMethodState.
39378
39379         * WebProcess/WebCoreSupport/WebEditorClient.cpp:
39380         (WebKit::WebEditorClient::willSetInputMethodState):
39381         * WebProcess/WebCoreSupport/WebEditorClient.h:
39382
39383 2010-07-16  Alice Liu  <alice.liu@apple.com>
39384
39385         Build fix, not reviewed.
39386
39387         Reverted http://trac.webkit.org/changeset/63585 because getopt isn't 
39388         available in the OpenSource support libraries
39389
39390         * WebKit2.sln:
39391
39392 2010-07-16  Sam Weinig  <sam@webkit.org>
39393
39394         Reviewed by Anders Carlsson.
39395
39396         Fix for https://bugs.webkit.org/show_bug.cgi?id=42482
39397         <rdar://problem/8197701>
39398         Add notification of when the BackForwardList changes
39399         to aid invalidation of Back/Forward related UI elements.
39400
39401         * UIProcess/API/C/WKPage.h:
39402         Add didChangeBackForwardList to the WKPageLoaderClient. This 
39403         fires whenever an item is added or removed from the back forward
39404         list or when the cursor changes position.
39405
39406         * UIProcess/WebBackForwardList.cpp:
39407         (WebKit::WebBackForwardList::addItem):
39408         (WebKit::WebBackForwardList::goToItem):
39409         * UIProcess/WebLoaderClient.cpp:
39410         (WebKit::WebLoaderClient::didChangeBackForwardList):
39411         * UIProcess/WebLoaderClient.h:
39412         * UIProcess/WebPageProxy.cpp:
39413         (WebKit::WebPageProxy::didChangeBackForwardList):
39414         * UIProcess/WebPageProxy.h:
39415         Pipe changes to the WebBackForwardList up to the page load client.
39416
39417 2010-07-16  Alice Liu  <alice.liu@apple.com>
39418
39419         Reviewed by Sam Weinig.
39420
39421         Add WebKitTestRunner to the WebKit2 solution
39422
39423         * WebKit2.sln: Add InjectedBundle and WebKitTestRunner projects.  Also change the build dependency order from
39424         DumpRunderTree --> WebKitAPITest to
39425         DumpRenderTree --> InjectedBundle --> WebKitTestRunner --> WebKitAPITest
39426
39427 2010-07-15  Anders Carlsson  <andersca@apple.com>
39428
39429         Reviewed by Dan Bernstein.
39430
39431         Set notifyData to the stream's notification data
39432         https://bugs.webkit.org/show_bug.cgi?id=42429
39433
39434         * WebProcess/Plugins/Netscape/NetscapePluginStream.cpp:
39435         (WebKit::NetscapePluginStream::start):
39436
39437 2010-07-15  Brent Fulgham  <bfulgham@webkit.org>
39438
39439         Build fix.  Don't include CoreGraphics.h on non-CG builds.
39440
39441         * WebKit2Prefix.h: Conditionalize include of CoreGraphics.h
39442         to avoid build break on WinCairo.
39443
39444 2010-07-15  Anders Carlsson  <andersca@apple.com>
39445
39446         Reviewed by Sam Weinig.
39447
39448         If needed, NPN_GetURL the src URL
39449         https://bugs.webkit.org/show_bug.cgi?id=42424
39450
39451         * WebProcess/Plugins/Netscape/NetscapePlugin.cpp:
39452         (WebKit::NetscapePlugin::NPP_GetValue):
39453         Add NPP_GetValue wrapper.
39454
39455         (WebKit::NetscapePlugin::shouldLoadSrcURL):
39456         Check whether the src url should be cancelled.
39457
39458         (WebKit::NetscapePlugin::initialize):
39459         If the src URL should be loaded, then load it.
39460         
39461 2010-07-15  Anders Carlsson  <andersca@apple.com>
39462
39463         Reviewed by Sam Weinig.
39464
39465         Stop the plug-in stream when it's finished loading
39466         https://bugs.webkit.org/show_bug.cgi?id=42423
39467
39468         * WebProcess/Plugins/DummyPlugin.cpp:
39469         (WebKit::DummyPlugin::streamDidFinishLoading):
39470         * WebProcess/Plugins/DummyPlugin.h:
39471         Add empty stub.
39472         
39473         * WebProcess/Plugins/Netscape/NetscapePlugin.cpp:
39474         (WebKit::NetscapePlugin::streamDidFinishLoading):
39475         Call NetscapePluginStream::didFinishLoading.
39476
39477         * WebProcess/Plugins/Netscape/NetscapePluginStream.cpp:
39478         (WebKit::NetscapePluginStream::didFinishLoading):
39479         Stop the stream with NPRES_DONE.
39480
39481         * WebProcess/Plugins/Plugin.h:
39482         Add streamDidFinishLoading.
39483
39484         * WebProcess/Plugins/PluginView.cpp:
39485         (WebKit::PluginView::Stream::didFinishLoading):
39486         Call Plugin::streamDidFinishLoading.
39487
39488 2010-07-15  Anders Carlsson  <andersca@apple.com>
39489
39490         Reviewed by Sam Weinig.
39491
39492         Pass URL stream data to the plug-in
39493         https://bugs.webkit.org/show_bug.cgi?id=42420
39494
39495         * WebProcess/Plugins/DummyPlugin.cpp:
39496         (WebKit::DummyPlugin::streamDidReceiveData):
39497         * WebProcess/Plugins/DummyPlugin.h:
39498         Add empty stub.
39499
39500         * WebProcess/Plugins/Netscape/NetscapePlugin.cpp:
39501         (WebKit::NetscapePlugin::streamDidReceiveData):
39502         Call NetscapePluginStream::didReceiveData.
39503
39504         * WebProcess/Plugins/Netscape/NetscapePluginStream.cpp:
39505         (WebKit::NetscapePluginStream::didReceiveData):
39506         Deliver the data to the plug-in.
39507
39508         * WebProcess/Plugins/Plugin.h:
39509         Add pure virtual streamDidReceiveData member function.
39510
39511         * WebProcess/Plugins/PluginView.cpp:
39512         (WebKit::PluginView::Stream::didReceiveData):
39513         Call Plugin::streamDidReceiveData.
39514
39515 2010-07-15  Anders Carlsson  <andersca@apple.com>
39516
39517         Reviewed by Sam Weinig.
39518
39519         Handle failed loads correctly
39520         https://bugs.webkit.org/show_bug.cgi?id=42418
39521
39522         * WebProcess/Plugins/DummyPlugin.cpp:
39523         (WebKit::DummyPlugin::streamDidFail):
39524         * WebProcess/Plugins/DummyPlugin.h:
39525         Add empty stub.
39526
39527         * WebProcess/Plugins/Netscape/NetscapePlugin.cpp:
39528         (WebKit::NetscapePlugin::streamDidFail):
39529         Call NetscapePluginStream::didFail.
39530     
39531         * WebProcess/Plugins/Netscape/NetscapePluginStream.cpp:
39532         (WebKit::NetscapePluginStream::didReceiveResponse):
39533         Take a reference to the plug-in stream in case starting it causes it to be destroyed.
39534         
39535         (WebKit::NetscapePluginStream::didFail):
39536         Take a reference to the plug-in stream in case stopping it causes it to be destroyed.
39537
39538         (WebKit::NetscapePluginStream::destroy):
39539         Cancel the stream.
39540
39541         (WebKit::NetscapePluginStream::start):
39542         If we fail to start the stream, cancel the load.
39543
39544         (WebKit::NetscapePluginStream::cancel):
39545         Call NetscapePlugin::cancelStreamLoad.
39546
39547         (WebKit::NetscapePluginStream::notifyAndDestroyStream):
39548         Don't call cancel here. notifyAndDestroyStream can be called when we don't want to cancel the
39549         load, such as when it's already failed to load.
39550
39551         * WebProcess/Plugins/Netscape/NetscapePluginStream.h:
39552         Add didFail.
39553
39554         * WebProcess/Plugins/Plugin.h:
39555         Add pure virtual streamDidFail member function.
39556
39557         * WebProcess/Plugins/PluginView.cpp:
39558         (WebKit::PluginView::Stream::Stream):
39559         Initialize m_streamWasCancelled to false.
39560
39561         (WebKit::PluginView::Stream::cancel):
39562         Set m_streamWasCancelled to true.
39563
39564         (WebKit::PluginView::Stream::didFail):
39565         Call Plugin::streamDidFail.
39566
39567 2010-07-15  Sam Weinig  <sam@webkit.org>
39568
39569         Reviewed by Anders Carlsson.
39570
39571         Fix for https://bugs.webkit.org/show_bug.cgi?id=42358
39572         <rdar://problem/8194512>
39573         Hyphenation tests crash the Web process
39574
39575         * WebProcess/WebCoreSupport/mac/WebSystemInterface.mm:
39576         (InitWebCoreSystemInterface): Add missing initializer.
39577
39578 2010-07-15  Anders Carlsson  <andersca@apple.com>
39579
39580         Attempt to fix the Windows build.
39581
39582         * WebProcess/Plugins/PluginView.cpp:
39583         (WebKit::PluginView::Stream::didReceiveResponse):
39584         expectedContentLength should be a signed long long.
39585
39586 2010-07-15  Anders Carlsson  <andersca@apple.com>
39587
39588         Reviewed by Sam Weinig.
39589
39590         Cancel stream loads when destroying NetscapePluginStreams
39591         https://bugs.webkit.org/show_bug.cgi?id=42413
39592
39593         * WebProcess/Plugins/Netscape/NetscapePlugin.cpp:
39594         (WebKit::NetscapePlugin::cancelStreamLoad):
39595         Call PluginController::cancelStreamLoad.
39596
39597         (WebKit::NetscapePlugin::streamDidReceiveResponse):
39598         Call NetscapePluginStream::didReceiveResponse.
39599
39600         * WebProcess/Plugins/Netscape/NetscapePluginStream.cpp:
39601         (WebKit::NetscapePluginStream::didReceiveResponse):
39602         Try to start the stream.
39603
39604         (WebKit::NetscapePluginStream::sendJavaScriptStream):
39605         Don't stop the stream if it can't be started. start handles that now.
39606
39607         (WebKit::isSupportedTransferMode):
39608         Return whether the given transfer mode is supported.
39609
39610         (WebKit::NetscapePluginStream::start):
39611         If the stream fails to start, call notifyAndDestroyStream. If it starts successfully but has
39612         an unsupported transfer mode, call stop.
39613         
39614         (WebKit::NetscapePluginStream::notifyAndDestroyStream):
39615         Cancel the stream load unless it's being destroyed because it has finished loading.
39616
39617         * WebProcess/Plugins/PluginController.h:
39618         Add cancelStreamLoad pure virtual member function.
39619
39620         * WebProcess/Plugins/PluginView.cpp:
39621         (WebKit::PluginView::Stream::cancel):
39622         Tell the stream loader to cancel and null it out.
39623
39624         (WebKit::PluginView::cancelStreamLoad):
39625         Get the stream and cancel it.
39626
39627         * WebProcess/Plugins/PluginView.h:
39628
39629 2010-07-15  Anders Carlsson  <andersca@apple.com>
39630
39631         Reviewed by Sam Weinig.
39632
39633         Start loading plug-in streams
39634         https://bugs.webkit.org/show_bug.cgi?id=42407
39635
39636         * WebProcess/Plugins/DummyPlugin.cpp:
39637         (WebKit::DummyPlugin::streamDidReceiveResponse):
39638         * WebProcess/Plugins/DummyPlugin.h:
39639         Add empty stub.
39640
39641         * WebProcess/Plugins/Netscape/NetscapePlugin.cpp:
39642         (WebKit::NetscapePlugin::streamDidReceiveResponse):
39643         * WebProcess/Plugins/Netscape/NetscapePlugin.h:
39644         Add empty stub.
39645
39646         * WebProcess/Plugins/Plugin.h:
39647         Add streamDidReceiveResponse pure virtual member function.
39648
39649         * WebProcess/Plugins/PluginView.cpp:
39650         Make PluginView::Stream a NetscapePlugInStreamLoaderClient.
39651
39652         (WebKit::PluginView::Stream::start):
39653         Create a plug-in loader and start loading.
39654
39655         (WebKit::PluginView::Stream::didReceiveResponse):
39656         Get the necessary data out of the resource response and call streamDidReceiveResponse.
39657
39658         (WebKit::PluginView::Stream::didReceiveData):
39659         (WebKit::PluginView::Stream::didFail):
39660         (WebKit::PluginView::Stream::didFinishLoading):
39661         Add empty stubs.
39662
39663 2010-07-15  Sam Weinig  <sam@webkit.org>
39664
39665         Reviewed by Anders Carlsson.
39666
39667         Patch for https://bugs.webkit.org/show_bug.cgi?id=42396
39668         Give the navigation type in the policy client callbacks meaning. 
39669
39670         - Use the new WKFrameNavigationType instead of just uint32_t.
39671
39672         * UIProcess/API/C/WKAPICast.h:
39673         (toWK):
39674         Add conversion method from WebCore::NavigationType to WKFrameNavigationType.
39675         * UIProcess/API/C/WKPage.h:
39676         * UIProcess/WebPageProxy.cpp:
39677         (WebKit::WebPageProxy::didReceiveMessage):
39678         (WebKit::WebPageProxy::decidePolicyForNavigationAction):
39679         (WebKit::WebPageProxy::decidePolicyForNewWindowAction):
39680         * UIProcess/WebPageProxy.h:
39681         * UIProcess/WebPolicyClient.cpp:
39682         (WebKit::WebPolicyClient::decidePolicyForNavigationAction):
39683         (WebKit::WebPolicyClient::decidePolicyForNewWindowAction):
39684         * UIProcess/WebPolicyClient.h:
39685         * WebProcess/InjectedBundle/API/c/WKBundlePage.h:
39686
39687 2010-07-15  Anders Carlsson  <andersca@apple.com>
39688
39689         Reviewed by Sam Weinig.
39690
39691         Add a PluginView::Stream class
39692         https://bugs.webkit.org/show_bug.cgi?id=42398
39693
39694         * WebProcess/Plugins/PluginView.cpp:
39695         Add the Stream class.
39696
39697         (WebKit::PluginView::performURLRequest):
39698         Create the stream and start it.
39699
39700         (WebKit::PluginView::addStream):
39701         Add the stream to the map.
39702
39703         (WebKit::PluginView::removeStream):
39704         Remove the stream from the map.
39705
39706         * WebProcess/Plugins/PluginView.h:
39707         Add Stream forward declaration and the m_streams map.
39708
39709 2010-07-15  Anders Carlsson  <andersca@apple.com>
39710
39711         Reviewed by Sam Weinig.
39712
39713         Don't allow multiple calls to NetscapePluginStream::stop
39714         https://bugs.webkit.org/show_bug.cgi?id=42395
39715
39716         * WebProcess/Plugins/Netscape/NetscapePluginStream.cpp:
39717         (WebKit::NetscapePluginStream::NetscapePluginStream):
39718         Initialize m_urlNotifyHasBeenCalled.
39719
39720         (WebKit::NetscapePluginStream::~NetscapePluginStream):
39721         Assert that the stream didn't need a URL notification or that one was sent.
39722
39723         (WebKit::NetscapePluginStream::sendJavaScriptStream):
39724         Don't call stop in the JS failure case because the stream won't be started.
39725
39726         (WebKit::NetscapePluginStream::stop):
39727         Remove m_isStarted check and add an assertion instead. Move code that calls NPP_URLNotify and
39728         destroys the stream out to a separate function.
39729
39730         (WebKit::NetscapePluginStream::notifyAndDestroyStream):
39731         Call NPP_URLNotify if necessary and destroy the stream.
39732
39733         * WebProcess/Plugins/Netscape/NetscapePluginStream.h:
39734
39735 2010-07-15  Anders Carlsson  <andersca@apple.com>
39736
39737         Reviewed by Sam Weinig.
39738
39739         Implement NPN_DestroyStream
39740         https://bugs.webkit.org/show_bug.cgi?id=42393
39741
39742         * WebProcess/Plugins/Netscape/NetscapeBrowserFuncs.cpp:
39743         (WebKit::NPN_DestroyStream):
39744         Call NetscapePlugin::destroyStream.
39745
39746         * WebProcess/Plugins/Netscape/NetscapePlugin.cpp:
39747         (WebKit::NetscapePlugin::destroyStream):
39748         Check if the stream is valid, and if it is call NetscapePluginStream::destroy.
39749
39750         * WebProcess/Plugins/Netscape/NetscapePluginStream.cpp:
39751         (WebKit::NetscapePluginStream::sendJavaScriptStream):
39752         Keep a reference to the stream in case it's destroyed by an NPP_ call.
39753
39754         (WebKit::NetscapePluginStream::destroy):
39755         Verify that the stream can be destroyed and stop it.
39756
39757         (WebKit::NetscapePluginStream::deliverDataToPlugin):
39758         Add m_isStarted checks after any calls to NPP_ functions.
39759
39760         (WebKit::NetscapePluginStream::stop):
39761         Set m_isStarted to false before calling NPP_DestroyStream.
39762         
39763         * WebProcess/Plugins/Netscape/NetscapePluginStream.h:
39764         (WebKit::NetscapePluginStream::npStream):
39765         Add NPStream getter.
39766
39767 2010-07-15  Anders Carlsson  <andersca@apple.com>
39768
39769         Reviewed by Darin Adler.
39770
39771         WebKitTestRunner goes off the deep end, spinning in a dispatch queue thread
39772         https://bugs.webkit.org/show_bug.cgi?id=42355
39773
39774         Sometimes, when receiving a message whose size is very close to the inlineMessageMaxSize,
39775         mach_msg would return with MACH_RCV_TOO_LARGE. In debug builds we would assert, but in release
39776         builds we would just bail and the receiveSourceEventHandler would be run again shortly since we didn't
39777         actually pull the message off the mach message queue.
39778
39779         Fix this by setting the receive source buffer size to include the maximum message trailer size, which
39780         mach_msg requires. Also, handle mach_msg returning MACH_RCV_TOO_LARGE (even though in theory it would never happen
39781         now that the receivedBufferSize always includes the maximum message trailer size.
39782
39783         * Platform/CoreIPC/mac/ConnectionMac.cpp:
39784         (CoreIPC::Connection::receiveSourceEventHandler):
39785         Use a Vector with inline data instead of a char array. This way we can resize the Vector if the message received
39786         is too big.
39787
39788 2010-07-15  Anders Carlsson  <andersca@apple.com>
39789
39790         Reviewed by Darin Adler.
39791
39792         Send JavaScript stream data to plug-ins
39793         https://bugs.webkit.org/show_bug.cgi?id=42384
39794
39795         * WebProcess/Plugins/Netscape/NetscapePlugin.cpp:
39796         (WebKit::NetscapePlugin::NPP_WriteReady):
39797         (WebKit::NetscapePlugin::NPP_Write):
39798         * WebProcess/Plugins/Netscape/NetscapePlugin.h:
39799         Add NPP_ wrappers.
39800         
39801         * WebProcess/Plugins/Netscape/NetscapePluginStream.cpp:
39802         (WebKit::NetscapePluginStream::NetscapePluginStream):
39803         Initialize m_deliveryDataTimer and m_stopstreamWhenDoneDelivering.
39804
39805         (WebKit::NetscapePluginStream::sendJavaScriptStream):
39806         Call deliverData and stop.
39807
39808         (WebKit::NetscapePluginStream::deliverData):
39809         Add the data to m_deliveryData and call deliverDataToPlugin.
39810
39811         (WebKit::NetscapePluginStream::deliverDataToPlugin):
39812         Deliver the data in m_deliveryData to the plug-in. Call NPP_WriteReady to see how much
39813         data the plug-in can handle right now. If the plug-in returns zero or a negative value, delay the
39814         delivery using the delivery data timer. Otherwise, call NPP_Write in chunks until all the data has been
39815         delivered, then stop the stream if needed.
39816
39817         (WebKit::NetscapePluginStream::stop):
39818         If the reason for stopping the stream is that it's finished and the plug-in hasn't processed all the data,
39819         don't close the stream now. Instead, set m_stopStreamWhenDoneDelivering to true which will cause the stream to be
39820         closed once all data has been delivered.
39821
39822         * WebProcess/Plugins/Netscape/NetscapePluginStream.h:
39823         Add member functions and member variables.
39824
39825 2010-07-14  Brent Fulgham  <bfulgham@webkit.org>
39826
39827         Reviewed by Steve Falkenburg.
39828
39829         Patch for https://bugs.webkit.org/show_bug.cgi?id=42299
39830         Correct WinCairo build for new WebKit2 project structure.
39831
39832         * win/WebKit2Apple.vsprops: Put WebKit2.def here.
39833         * win/WebKit2CFLite.def: Added CFLite version of def file.
39834         * win/WebKit2CFLite.vsprops: Add new WebKit2CFLite.def here.
39835         * win/WebKit2Common.vsprops: Remove WebKit2.def definition as
39836           WinCairo and Apple need different versions of this.
39837         * win/WebKit2WebProcess.vcproj: Add a new Debug_Cairo target
39838           for the WebKit2WebProcess project.
39839
39840 2010-07-15  Mark Rowe  <mrowe@apple.com>
39841
39842         Update the sorting in the Xcode project files.
39843
39844         * WebKit2.xcodeproj/project.pbxproj:
39845
39846 2010-07-14  Sam Weinig  <sam@webkit.org>
39847
39848         Reviewed by Dan Bernstein.
39849
39850         Patch for https://bugs.webkit.org/show_bug.cgi?id=42315
39851         <rdar://problem/8185281>
39852         All text in WebKit2 draws with no subpixel antialiasing
39853
39854         - Change CGBitmapInfo passed to CGBitmapContextCreate and CGImageCreate
39855           from kCGImageAlphaPremultipliedLast to kCGImageAlphaPremultipliedFirst | kCGBitmapByteOrder32Host.
39856
39857         * Shared/mac/UpdateChunk.cpp:
39858         (WebKit::UpdateChunk::createImage):
39859         * UIProcess/mac/ChunkedUpdateDrawingAreaProxyMac.mm:
39860         (WebKit::ChunkedUpdateDrawingAreaProxy::ensureBackingStore):
39861         * WebProcess/WebPage/mac/ChunkedUpdateDrawingAreaMac.cpp:
39862         (WebKit::ChunkedUpdateDrawingArea::paintIntoUpdateChunk):
39863
39864 2010-07-14  Maciej Stachowiak  <mjs@apple.com>
39865
39866         Reviewed by Mark Rowe.
39867
39868         - Fix WebKitTestRunner build
39869
39870         * WebProcess/InjectedBundle/API/c/WKBundlePage.h: Add stdint.h include.
39871
39872 2010-07-14  Anders Carlsson  <andersca@apple.com>
39873
39874         Try to fix Windows build.
39875
39876         * win/WebKit2.vcproj:
39877
39878 2010-07-14  Anders Carlsson  <andersca@apple.com>
39879
39880         Reviewed by Sam Weinig.
39881
39882         More work on plug-in streams
39883         https://bugs.webkit.org/show_bug.cgi?id=42308
39884
39885         * WebProcess/Plugins/Netscape/NetscapePlugin.cpp:
39886         (WebKit::NetscapePlugin::loadURL):
39887         If the target is null, create a NetscapePluginStream and add it to the m_streams map.
39888
39889         (WebKit::NetscapePlugin::removePluginStream):
39890         Remove the given NetscapePluginStream from the m_streams map.
39891
39892         (WebKit::NetscapePlugin::NPP_NewStream):
39893         (WebKit::NetscapePlugin::NPP_DestroyStream):
39894         Add NPP_ wrappers.
39895
39896         (WebKit::NetscapePlugin::streamFromID):
39897         Return the plug-in stream given a stream ID.
39898
39899         (WebKit::NetscapePlugin::didEvaluateJavaScript):
39900         Find the plug-in stream and call sendJavaScriptStream.
39901
39902         * WebProcess/Plugins/Netscape/NetscapePluginStream.cpp:
39903         (WebKit::NetscapePluginStream::NetscapePluginStream):
39904         Initialize member variables.
39905
39906         (WebKit::NetscapePluginStream::~NetscapePluginStream):
39907         Assert that we aren't started.
39908
39909         (WebKit::NetscapePluginStream::sendJavaScriptStream):
39910         If the JavaScript request was successful, start the stream. Otherwise call stop() which just
39911         ends up calling NPP_URLNotify when the stream isn't started.
39912
39913         (WebKit::NetscapePluginStream::start):
39914         Set up the NPStream object. Call NPP_NewStream. Return false if the call was not successful, or if
39915         the requested stream type is one that we don't yet support.
39916
39917         (WebKit::NetscapePluginStream::stop):
39918         Call NPP_DestroyStream if the stream is started. Call NPP_URLNotify if necessary.
39919
39920         * WebProcess/Plugins/PluginView.cpp:
39921         (WebKit::PluginView::performJavaScriptURLRequest):
39922         Remove unneeded comment.
39923
39924 2010-07-14  Sam Weinig  <sam@webkit.org>
39925
39926         Reviewed by John Sullivan.
39927
39928         Make Back/Forward work.
39929
39930         * UIProcess/WebPageProxy.cpp:
39931         (WebKit::WebPageProxy::goForward): Pass the item ID to avoid roundtrip.
39932         (WebKit::WebPageProxy::goBack): Ditto.
39933         (WebKit::WebPageProxy::didReceiveMessage): Implement WebPageProxyMessage::BackForwardGoToItem.
39934         * WebProcess/WebPage/WebPage.cpp:
39935         (WebKit::WebPage::WebPage):
39936         (WebKit::WebPage::goForward): Use m_page->goToItem with the correct type instead of the Page shortcut.
39937         (WebKit::WebPage::goBack): Ditto.
39938         (WebKit::WebPage::didReceiveMessage):
39939         * WebProcess/WebPage/WebPage.h:
39940         Remove unused m_canGoBack and m_canGoForward.
39941
39942 2010-07-14  Anders Carlsson  <andersca@apple.com>
39943
39944         Reviewed by Darin Adler.
39945
39946         Add NetscapePluginStream class
39947         https://bugs.webkit.org/show_bug.cgi?id=42296
39948
39949         * WebKit2.xcodeproj/project.pbxproj:
39950         * WebProcess/Plugins/Netscape/NetscapePluginStream.cpp: Added.
39951         (WebKit::NetscapePluginStream::NetscapePluginStream):
39952         (WebKit::NetscapePluginStream::~NetscapePluginStream):
39953         * WebProcess/Plugins/Netscape/NetscapePluginStream.h: Added.
39954         (WebKit::NetscapePluginStream::create):
39955
39956 2010-07-14  Sam Weinig  <sam@webkit.org>
39957
39958         Reviewed by Darin Adler.
39959
39960         Patch for https://bugs.webkit.org/show_bug.cgi?id=42297
39961         <rdar://problem/8187355>
39962         Make titles in WebBackForwardListItems work.
39963
39964         - Make WebBackForwardListItemMap per WebProcessProxy to allow updating
39965           them separate from a page. They are conceptually per process anyway.
39966         - Add a message to add or update a WebBackForwardListItemMap triggered
39967           by the WebCore::notifyHistoryItemChanged mechanism.
39968
39969         * Shared/CoreIPCSupport/WebProcessProxyMessageKinds.h:
39970         (WebProcessProxyMessage::):
39971         Add AddOrUpdateBackForwardItem message.
39972
39973         * UIProcess/WebBackForwardListItem.h:
39974         (WebKit::WebBackForwardListItem::setOriginalURL):
39975         (WebKit::WebBackForwardListItem::setURL):
39976         (WebKit::WebBackForwardListItem::setTitle):
39977         Add setters.
39978
39979         * UIProcess/WebPageProxy.cpp:
39980         (WebKit::WebPageProxy::didReceiveMessage):
39981         BackForwardAddItem now assumes the item has already been created, so
39982         now just forwards the add message onto the WebBackForwardList.
39983
39984         (WebKit::WebPageProxy::addItemToBackForwardList): Take a WebBackForwardList instead of an ID.
39985         (WebKit::WebPageProxy::goToItemInBackForwardList): Ditto.
39986         * UIProcess/WebPageProxy.h: Ditto.
39987
39988         * UIProcess/WebProcessProxy.cpp:
39989         (WebKit::WebProcessProxy::webBackForwardItem):
39990         (WebKit::WebProcessProxy::addOrUpdateBackForwardListItem):
39991         (WebKit::WebProcessProxy::didReceiveMessage):
39992         (WebKit::WebProcessProxy::didReceiveSyncMessage):
39993         * UIProcess/WebProcessProxy.h:
39994         Have the WebProcessProxy manage the WebBackForwardListItems.
39995
39996         * WebProcess/WebPage/WebBackForwardListProxy.cpp:
39997         (WebKit::updateBackForwardItem):
39998         (WebKit::WK2NotifyHistoryItemChanged): Use this to notify UIProcess
39999         of HistoryItem changes (such as the title being added).
40000         (WebKit::WebBackForwardListProxy::WebBackForwardListProxy):
40001         Register the notifyHistoryItemChanged function.
40002         (WebKit::WebBackForwardListProxy::addItem):
40003         Just send the ID as the updateBackForwardItem is already going to have
40004         been called by this time.
40005
40006 2010-07-14  Anders Carlsson  <andersca@apple.com>
40007
40008         Reviewed by Sam Weinig.
40009
40010         Call NPN_URLNotify for frame loads initiated by plug-ins
40011         https://bugs.webkit.org/show_bug.cgi?id=42291
40012
40013         * WebProcess/Plugins/Netscape/NetscapePlugin.cpp:
40014         (WebKit::NetscapePlugin::loadURL):
40015         If needed, keep track of the request ID and URL so we can call NPP_URLNotify at a later point.
40016
40017         (WebKit::NetscapePlugin::frameDidFinishLoading):
40018         Get the notification data and the URL from the map and call NPP_URLNotify.
40019
40020         (WebKit::NetscapePlugin::frameDidFail):
40021         Get the notification data and the URL from the map and call NPP_URLNotify.
40022
40023         * WebProcess/Plugins/Netscape/NetscapePlugin.h:
40024
40025 2010-07-14  Anders Carlsson  <andersca@apple.com>
40026
40027         Reviewed by Sam Weinig.
40028
40029         Add NetscapePlugin::NPP_ member functions for calling into the plug-in
40030         https://bugs.webkit.org/show_bug.cgi?id=42287
40031
40032         * WebProcess/Plugins/Netscape/NetscapePlugin.cpp:
40033         (WebKit::NetscapePlugin::NPP_New):
40034         (WebKit::NetscapePlugin::NPP_Destroy):
40035         (WebKit::NetscapePlugin::NPP_SetWindow):
40036         (WebKit::NetscapePlugin::NPP_URLNotify):
40037         (WebKit::NetscapePlugin::callSetWindow):
40038         (WebKit::NetscapePlugin::initialize):
40039         (WebKit::NetscapePlugin::destroy):
40040         * WebProcess/Plugins/Netscape/NetscapePlugin.h:
40041
40042 2010-07-14  Anders Carlsson  <andersca@apple.com>
40043
40044         Reviewed by Sam Weinig.
40045
40046         Send JavaScript url request results back to the plug-in
40047         https://bugs.webkit.org/show_bug.cgi?id=42277
40048
40049         * WebProcess/Plugins/DummyPlugin.cpp:
40050         (WebKit::DummyPlugin::didEvaluateJavaScript):
40051         * WebProcess/Plugins/DummyPlugin.h:
40052         Add empty stub.
40053
40054         * WebProcess/Plugins/Netscape/NetscapePlugin.cpp:
40055         (WebKit::NetscapePlugin::didEvaluateJavaScript):
40056         * WebProcess/Plugins/Netscape/NetscapePlugin.h:
40057         Add Empty stub.
40058
40059         * WebProcess/Plugins/Plugin.h:
40060         Add didEvaluateJavaScript pure virtual member function.
40061
40062         * WebProcess/Plugins/PluginView.cpp:
40063         (WebKit::PluginView::performJavaScriptURLRequest):
40064         If target is not null, Call Plugin::frameDidFail or Plugin::frameDidFinishLoading.
40065         If target is null, call didEvaluateJavaScript with the result string.
40066
40067 2010-07-14  Sam Weinig  <sam@webkit.org>
40068
40069         Reviewed by Darin Adler.
40070
40071         Patch for https://bugs.webkit.org/show_bug.cgi?id=42232
40072         Make changing Cursors work in WebKit2.
40073
40074         * Shared/CoreIPCSupport/WebPageProxyMessageKinds.h:
40075         Add SetCursor message.
40076
40077         * Shared/WebCoreArgumentCoders.h:
40078         Add encoding/decoding of Cursors. For now we don't support Custom
40079         cursors.
40080
40081         * UIProcess/API/mac/PageClientImpl.h:
40082         * UIProcess/API/mac/PageClientImpl.mm:
40083         (WebKit::PageClientImpl::setCursor):
40084         * UIProcess/PageClient.h:
40085         Add pass through functions to get the cursor from the WebPageProxy
40086         to the WKView.
40087
40088         * UIProcess/API/mac/WKView.mm:
40089         (-[WKView _setCursor:]):
40090         * UIProcess/API/mac/WKViewInternal.h:
40091         Implement changing the cursor.
40092
40093         * UIProcess/WebPageProxy.cpp:
40094         (WebKit::WebPageProxy::didReceiveMessage):
40095         (WebKit::WebPageProxy::setCursor):
40096         * UIProcess/WebPageProxy.h:
40097         Decode the cursor.
40098
40099         * UIProcess/win/WebView.cpp:
40100         (WebKit::WebView::wndProc):
40101         (WebKit::WebView::WebView):
40102         (WebKit::WebView::onSetCursor):
40103         (WebKit::WebView::setCursor):
40104         * UIProcess/win/WebView.h:
40105         Implement changing the cursor.
40106
40107         * WebProcess/WebCoreSupport/WebChromeClient.cpp:
40108         (WebKit::WebChromeClient::setCursor):
40109         (WebKit::WebChromeClient::setLastSetCursorToCurrentCursor):
40110         * WebProcess/WebCoreSupport/WebChromeClient.h:
40111         Encode the cursor when setCursor is called.
40112
40113 2010-07-13  Anders Carlsson  <andersca@apple.com>
40114
40115         Reviewed by Sam Weinig.
40116
40117         Add support for loading javascript: URLs
40118         https://bugs.webkit.org/show_bug.cgi?id=42221
40119
40120         * WebProcess/Plugins/DummyPlugin.cpp:
40121         (WebKit::DummyPlugin::controller):
40122         * WebProcess/Plugins/DummyPlugin.h:
40123         Add stub function.
40124
40125         * WebProcess/Plugins/Netscape/NetscapePlugin.cpp:
40126         (WebKit::NetscapePlugin::destroy):
40127         Set the plug-in controller to 0.
40128
40129         (WebKit::NetscapePlugin::controller):
40130         Return the plug-in controller.
40131
40132         * WebProcess/Plugins/Netscape/NetscapePlugin.h:
40133         Add controller() member function.
40134
40135         * WebProcess/Plugins/Plugin.h:
40136         Add controller() pure virtual member function.
40137         
40138         * WebProcess/Plugins/PluginView.cpp:
40139         (WebKit::PluginView::performURLRequest):
40140         If the given URL request has a javascript: protocol, call
40141         performJavaScriptURLRequest.
40142
40143         (WebKit::PluginView::performFrameLoadURLRequest):
40144         Add a security origin check.
40145
40146         (WebKit::PluginView::performJavaScriptURLRequest):
40147         Evaluate the JavaScript code, Get the resulting string.
40148
40149         * WebProcess/Plugins/PluginView.h:
40150         Add performJavaScriptURLRequest.
40151
40152 2010-07-13  Anders Carlsson  <andersca@apple.com>
40153
40154         Reviewed by Sam Weinig.
40155
40156         Add support for URL frame loading using NPN_GetURLNotify
40157         https://bugs.webkit.org/show_bug.cgi?id=42192
40158
40159         * WebProcess/Plugins/DummyPlugin.cpp:
40160         (WebKit::DummyPlugin::frameDidFinishLoading):
40161         (WebKit::DummyPlugin::frameDidFail):
40162         * WebProcess/Plugins/DummyPlugin.h:
40163         Add empty stubs.
40164         
40165         * WebProcess/Plugins/Netscape/NetscapeBrowserFuncs.cpp:
40166         Implement NPN_GetURLNotify and have it call NetscapePlugin::loadURL.
40167
40168         * WebProcess/Plugins/Netscape/NetscapePlugin.cpp:
40169         (WebKit::NetscapePlugin::NetscapePlugin):
40170         Initialize m_nextRequestID to 0.
40171
40172         (WebKit::NetscapePlugin::loadURL):
40173         Ask the plug-in controller to load the URL.
40174
40175         (WebKit::NetscapePlugin::frameDidFinishLoading):
40176         (WebKit::NetscapePlugin::frameDidFail):
40177         Add empty stubs for now.
40178
40179         * WebProcess/Plugins/Plugin.h:
40180         Add new member functions for frame load notifications.
40181
40182         * WebProcess/Plugins/PluginController.h:
40183         Add loadURL.
40184
40185         * WebProcess/Plugins/PluginView.cpp:
40186         (WebKit::PluginView::URLRequest::URLRequest):
40187         Add class that represents an URL request.
40188
40189         (WebKit::PluginView::PluginView):
40190         Initialize m_pendingURLRequestsTimer.
40191
40192         (WebKit::PluginView::~PluginView):
40193         Unset all active load listeners.
40194
40195         (WebKit::PluginView::pendingURLRequestsTimerFired):
40196         Take the first request in the queue and process it.
40197
40198         (WebKit::PluginView::performURLRequest):
40199         Call performFrameLoadURLRequest if necessary.
40200
40201         (WebKit::PluginView::performFrameLoadURLRequest):
40202         Find a frame to load the request in. If a frame doesn't exist try to create a new frame.
40203
40204         (WebKit::PluginView::loadURL):
40205         Create a URLRequest and add it to the queue.
40206
40207         (WebKit::PluginView::didFinishLoad):
40208         Get the pending frame load request and call Plugin::frameDidFinishLoading.
40209
40210         (WebKit::PluginView::didFailLoad):
40211         Get the pending frame load request and call Plugin::frameDidFail.
40212
40213         * WebProcess/Plugins/PluginView.h:
40214         Inherit from WebFrame::LoadListener.
40215
40216         * WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
40217         (WebKit::WebFrameLoaderClient::dispatchDidFailProvisionalLoad):
40218         (WebKit::WebFrameLoaderClient::dispatchDidFailLoad):
40219         (WebKit::WebFrameLoaderClient::dispatchDidFinishLoad):
40220         (WebKit::WebFrameLoaderClient::didFinishLoad):
40221         Call the WebFrame's load listener if needed.
40222
40223         * WebProcess/WebPage/WebFrame.cpp:
40224         (WebKit::WebFrame::WebFrame):
40225         Initialize m_loadListener to 0.
40226
40227         * WebProcess/WebPage/WebFrame.h:
40228         Add a LoadListener class that the plug-in view can use to track frame loads.
40229
40230         (WebKit::WebFrame::LoadListener::~LoadListener):
40231         (WebKit::WebFrame::setLoadListener):
40232         (WebKit::WebFrame::loadListener):
40233
40234 2010-07-13  Diego Gonzalez  <diegohcg@webkit.org>
40235
40236         Reviewed by Kenneth Rohde Christiansen.
40237
40238         [Qt] [WebKit2] Hook up navigation actions
40239         https://bugs.webkit.org/show_bug.cgi?id=42183
40240
40241         Make Back, Forward, Stop and Reload being enable/disabled according
40242         page loading.
40243
40244         * UIProcess/API/qt/ClientImpl.cpp:
40245         (qt_wk_didStartProvisionalLoadForFrame):
40246         (qt_wk_didCommitLoadForFrame):
40247         (qt_wk_didFinishLoadForFrame):
40248         (qt_wk_didFailLoadWithErrorForFrame):
40249         * UIProcess/API/qt/qwkpage.cpp:
40250         (QWKPagePrivate::updateAction):
40251
40252 2010-07-13  John Sullivan  <sullivan@apple.com>
40253
40254         Written by Simon Fraser, reviewed by me.
40255
40256         Cleaner fix for previous check-in.
40257
40258         * UIProcess/WebBackForwardList.cpp:
40259         (WebKit::WebBackForwardList::backListAsImmutableArrayWithLimit):
40260         Use std::max<int> for int-casting brevity.
40261
40262 2010-07-13  John Sullivan  <sullivan@apple.com>
40263
40264         Reviewed by Sam Weinig.
40265
40266         Fixed signed/unsigned problem that led to bogus contents in the array
40267         returned by WKBackForwardListCopyBackListWithLimit().
40268
40269         * UIProcess/WebBackForwardList.cpp:
40270         (WebKit::WebBackForwardList::backListAsImmutableArrayWithLimit):
40271         Cast m_current and limit to signed values in std::max call.
40272
40273 2010-07-13  Steve Falkenburg  <sfalken@apple.com>
40274
40275         Reviewed by Ada Chan.
40276
40277         Fix missing resources causing layout test failures
40278         https://bugs.webkit.org/show_bug.cgi?id=42179
40279         
40280         Quick fix to get the layout tests going again.
40281         I'll work on getting resource.h from WebKit into a cross-project
40282         propagated header after this lands.
40283
40284         * win/WebKit2.rc:
40285         * win/resource.h: Copied from WebKit/win/WebKit.vcproj/resource.h.
40286
40287 2010-07-13  Anders Carlsson  <andersca@apple.com>
40288
40289         Reviewed by Adam Roben.
40290
40291         Make all NPN_ functions static.
40292
40293         * WebProcess/Plugins/Netscape/NetscapeBrowserFuncs.cpp:
40294
40295 2010-07-13  Anders Carlsson  <andersca@apple.com>
40296
40297         Reviewed by Adam Roben.
40298
40299         Document the member functions of the abstract Plugin and PluginController classes.
40300
40301         * WebProcess/Plugins/Plugin.h:
40302         * WebProcess/Plugins/PluginController.h:
40303
40304 2010-07-13  Simon Hausmann  <simon.hausmann@nokia.com>
40305
40306         [Qt] Trivial build fix.
40307
40308         Provide a stub for mimeTypeFromExtension() that uses notImplemented().
40309
40310         * UIProcess/Plugins/qt/PluginInfoStoreQt.cpp:
40311         (WebKit::PluginInfoStore::mimeTypeFromExtension):
40312
40313 2010-07-13  Simon Hausmann  <simon.hausmann@nokia.com>
40314
40315         Reviewed by Kenneth Rohde Christiansen.
40316
40317         [Qt] Tweaks needed to compile WebKit2 with Qt
40318         https://bugs.webkit.org/show_bug.cgi?id=41604
40319
40320         * UIProcess/Launcher/qt/ProcessLauncherQt.cpp:
40321         (WebKit::ProcessLauncherHelper::launch): Adjust to PassOwnPtr API changes.
40322         * WebProcess/InjectedBundle/API/c/WKBundlePage.h: Don't include JavaScriptCore.h,
40323         as it unconditionally includes JSStringRefCF. Instead include JavaScript.h.
40324
40325 2010-07-12  Steve Falkenburg  <sfalken@apple.com>
40326
40327         Windows build fix.
40328         Don't build MiniBrowser except for Debug_Internal.
40329
40330         * WebKit2.sln:
40331
40332 2010-07-12  Steve Falkenburg  <sfalken@apple.com>
40333
40334         Reviewed by Maciej Stachowiak.
40335
40336         Make WebKit2 be built by build-webkit (so it will be built by build.webkit.org bots)
40337         https://bugs.webkit.org/show_bug.cgi?id=40922
40338         
40339         Add additional dependent projects. Necessary since our WebKit build on
40340         Windows is packaged into a DLL with WebKit2.
40341
40342         * WebKit2.sln:
40343
40344 2010-07-12  Mark Rowe  <mrowe@apple.com>
40345
40346         Rubber-stamped by Maciej Stachowiak.
40347
40348         Fix WebKit2 to use the same compiler-selection logic as the other projects.
40349
40350         * WebKit2.xcodeproj/project.pbxproj: Don't hard-code WebKit2 to build with GCC 4.2.
40351
40352 2010-07-12  Maciej Stachowiak  <mjs@apple.com>
40353
40354         Reviewed by Anders Carlsson.
40355
40356         WKView should override setFrameSize: instead of setFrame:
40357         https://bugs.webkit.org/show_bug.cgi?id=42127
40358
40359         * UIProcess/API/mac/WKView.mm:
40360         (-[WKView setFrameSize:]): Override this method instead of setFrame:,
40361         since that is the right way to do it.
40362
40363 2010-07-12  Steve Falkenburg  <sfalken@apple.com>
40364
40365         Reviewed by Alice Liu.
40366
40367         <rdar://problem/8113038> WebKit1 and WebKit2 should build as a single DLL
40368         https://bugs.webkit.org/show_bug.cgi?id=40921
40369         
40370         Pre-WebKit2 WebKit now builds into a static library named WebKitLib.lib.
40371         WebKit.dll now links in WebCore.lib, WebKitLib.lib and WebKit2 code.
40372
40373         This is a first step. We'll likely want to migrate the remainder of
40374         the non-deprecated WebKit code (strings, DLLMain, resources) into WebKit2.
40375
40376         * UIProcess/API/C/WKBase.h: Updated to new BUILDING_ name.
40377         * WebProcess/InjectedBundle/API/c/WKBundleBase.h: Updated to new BUILDING_ name.
40378         * WebProcess/WebCoreSupport/win/WebCoreLocalizedStrings.cpp: Removed.
40379         * WebProcess/win/DllMain.cpp: Removed. Overlaps with implementation in WebKitLib.lib.
40380         * WebProcess/win/WebLocalizableStrings.cpp: Removed. Overlaps with implementation in WebKitLib.lib.
40381         * WebProcess/win/WebLocalizableStrings.h: Removed. Overlaps with implementation in WebKitLib.lib.
40382         * win/WebKit2.def: Added. Copied from WebKit project.
40383         * win/WebKit2.rc: Added resources previously in WebKit.
40384         * win/WebKit2.vcproj: Changed project name to WebKit so we will link output to WebKit.dll.
40385         Removed implementations overlapping with WebKitLib (WebCoreLocalizedStrings, DllMain, WebLocalizableStrings, WebProcessMain).
40386         * win/WebKit2Common.vsprops: Use a framework name of WebKit instead of WebKit2 to reflect project name.
40387         Renamed BUILDING_WEBKIT2 to BUILDING_WEBKIT since there is now just a single WebKit.dll.
40388         * win/WebKit2WebProcess.vcproj: Link against WebKit instead of WebKit2 due to renaming.        
40389         * win/deleteButton.png: Copied from ../WebKit/win/WebKit.vcproj/deleteButton.png.
40390         * win/deleteButtonPressed.png: Copied from ../WebKit/win/WebKit.vcproj/deleteButtonPressed.png.
40391         * win/fsVideoAudioVolumeHigh.png: Copied from ../WebKit/win/WebKit.vcproj/fsVideoAudioVolumeHigh.png.
40392         * win/fsVideoAudioVolumeLow.png: Copied from ../WebKit/win/WebKit.vcproj/fsVideoAudioVolumeLow.png.
40393         * win/fsVideoExitFullscreen.png: Copied from ../WebKit/win/WebKit.vcproj/fsVideoExitFullscreen.png.
40394         * win/fsVideoPause.png: Copied from ../WebKit/win/WebKit.vcproj/fsVideoPause.png.
40395         * win/fsVideoPlay.png: Copied from ../WebKit/win/WebKit.vcproj/fsVideoPlay.png.
40396         * win/missingImage.png: Copied from ../WebKit/win/WebKit.vcproj/missingImage.png.
40397         * win/nullplugin.png: Copied from ../WebKit/win/WebKit.vcproj/nullplugin.png.
40398         * win/panEastCursor.png: Copied from ../WebKit/win/WebKit.vcproj/panEastCursor.png.
40399         * win/panIcon.png: Copied from ../WebKit/win/WebKit.vcproj/panIcon.png.
40400         * win/panNorthCursor.png: Copied from ../WebKit/win/WebKit.vcproj/panNorthCursor.png.
40401         * win/panNorthEastCursor.png: Copied from ../WebKit/win/WebKit.vcproj/panNorthEastCursor.png.
40402         * win/panNorthWestCursor.png: Copied from ../WebKit/win/WebKit.vcproj/panNorthWestCursor.png.
40403         * win/panSouthCursor.png: Copied from ../WebKit/win/WebKit.vcproj/panSouthCursor.png.
40404         * win/panSouthEastCursor.png: Copied from ../WebKit/win/WebKit.vcproj/panSouthEastCursor.png.
40405         * win/panSouthWestCursor.png: Copied from ../WebKit/win/WebKit.vcproj/panSouthWestCursor.png.
40406         * win/panWestCursor.png: Copied from ../WebKit/win/WebKit.vcproj/panWestCursor.png.
40407         * win/searchCancel.png: Copied from ../WebKit/win/WebKit.vcproj/searchCancel.png.
40408         * win/searchCancelPressed.png: Copied from ../WebKit/win/WebKit.vcproj/searchCancelPressed.png.
40409         * win/searchMagnifier.png: Copied from ../WebKit/win/WebKit.vcproj/searchMagnifier.png.
40410         * win/searchMagnifierResults.png: Copied from ../WebKit/win/WebKit.vcproj/searchMagnifierResults.png.
40411         * win/textAreaResizeCorner.png: Copied from ../WebKit/win/WebKit.vcproj/textAreaResizeCorner.png.
40412         * win/verticalTextCursor.png: Copied from ../WebKit/win/WebKit.vcproj/verticalTextCursor.png.
40413         * win/zoomInCursor.png: Copied from ../WebKit/win/WebKit.vcproj/zoomInCursor.png.
40414         * win/zoomOutCursor.png: Copied from ../WebKit/win/WebKit.vcproj/zoomOutCursor.png.
40415
40416 2010-07-12  Maciej Stachowiak  <mjs@apple.com>
40417
40418         Reviewed by Anders Carlsson.
40419
40420         Get rid of auto_ptr use in WebKit2
40421         https://bugs.webkit.org/show_bug.cgi?id=42119
40422         
40423         Replace all use of auto_ptr with OwnPtr/PassOwnPtr.
40424
40425         * Platform/CoreIPC/Connection.cpp:
40426         (CoreIPC::Connection::sendMessage):
40427         (CoreIPC::Connection::waitForMessage):
40428         (CoreIPC::Connection::sendSyncMessage):
40429         (CoreIPC::Connection::processIncomingMessage):
40430         (CoreIPC::Connection::sendOutgoingMessages):
40431         (CoreIPC::Connection::dispatchMessages):
40432         * Platform/CoreIPC/Connection.h:
40433         (CoreIPC::Connection::Message::Message):
40434         (CoreIPC::Connection::send):
40435         (CoreIPC::Connection::sendSync):
40436         (CoreIPC::Connection::waitFor):
40437         * Platform/CoreIPC/mac/ConnectionMac.cpp:
40438         (CoreIPC::Connection::sendOutgoingMessage):
40439         (CoreIPC::createArgumentDecoder):
40440         (CoreIPC::Connection::receiveSourceEventHandler):
40441         * Platform/CoreIPC/qt/ConnectionQt.cpp:
40442         (CoreIPC::Connection::readyReadHandler):
40443         (CoreIPC::Connection::sendOutgoingMessage):
40444         * Platform/CoreIPC/win/ConnectionWin.cpp:
40445         (CoreIPC::Connection::readEventHandler):
40446         (CoreIPC::Connection::sendOutgoingMessage):
40447         * Platform/RunLoop.cpp:
40448         (RunLoop::performWork):
40449         (RunLoop::scheduleWork):
40450         * Platform/RunLoop.h:
40451         * Platform/WorkItem.h:
40452         (WorkItem::create):
40453         * Platform/WorkQueue.h:
40454         * Platform/mac/WorkQueueMac.cpp:
40455         (WorkQueue::executeWorkItem):
40456         (WorkQueue::scheduleWork):
40457         (WorkQueue::EventSource::EventSource):
40458         (WorkQueue::registerMachPortEventHandler):
40459         * Platform/qt/WorkQueueQt.cpp:
40460         (WorkQueue::connectSignal):
40461         (WorkQueue::scheduleWork):
40462         * Platform/win/WorkQueueWin.cpp:
40463         (WorkQueue::registerHandle):
40464         (WorkQueue::scheduleWork):
40465         (WorkQueue::performWork):
40466         * UIProcess/ChunkedUpdateDrawingAreaProxy.cpp:
40467         (WebKit::ChunkedUpdateDrawingAreaProxy::paint):
40468         * UIProcess/WebProcessProxy.cpp:
40469         (WebKit::WebProcessProxy::sendMessage):
40470         (WebKit::WebProcessProxy::didFinishLaunching):
40471         * UIProcess/WebProcessProxy.h:
40472         (WebKit::WebProcessProxy::send):
40473
40474 2010-07-12  Ada Chan  <adachan@apple.com>
40475
40476         Build fix.  Copy WKArray.h to the include directory.
40477
40478         * win/WebKit2Generated.make:
40479
40480 2010-07-12  Mark Rowe  <mrowe@apple.com>
40481
40482         Re-do an Xcode project change that Xcode decided not to save.
40483
40484         * WebKit2.xcodeproj/project.pbxproj: Remove WebKit2.exp from the project.
40485         For some reason it was being copied in to the framework wrapper.
40486
40487 2010-07-12  Mark Rowe  <mrowe@apple.com>
40488
40489         Reviewed by Sam Weinig.
40490
40491         Remove the exports file from WebKit2.
40492
40493         * Configurations/Base.xcconfig: Have symbols default to hidden visibility.
40494         * Configurations/WebKit2.xcconfig: Remove the export file.
40495         * UIProcess/API/mac/WKView.h: Export the WKView class.
40496         * WebProcess/WebKitMain.cpp: Export the WebKitMain function.
40497         * mac/WebKit2.exp: Removed.
40498
40499 2010-07-12  Adam Roben  <aroben@apple.com>
40500
40501         Move WebKit2.vcproj's settings into .vsprops files
40502
40503         This makes it easier to make changes that affect all configurations.
40504
40505         Fixes <http://webkit.org/b/42097> WebKit2 should use .vsprops files
40506
40507         Reviewed by Steve Falkenburg.
40508
40509         * win/WebKit2.vcproj: Moved settings from here to the files below.
40510         * win/WebKit2Apple.vsprops: Added. Links against Apple-specific
40511         libraries.
40512         * win/WebKit2CFLite.vsprops: Added. Links against CFLite.
40513         * win/WebKit2Common.vsprops: Added. Contains settings shared by all
40514         configurations.
40515         * win/WebKit2DirectX.vsprops: Added. Contains settings to help with
40516         linking against DirectX.
40517
40518 2010-07-12  Adam Roben  <aroben@apple.com>
40519
40520         Stop generating stripped symbols for Release builds
40521
40522         It turns out we can strip the symbols after-the-fact using PDBCopy.
40523
40524         Fixes <http://webkit.org/b/42085>.
40525
40526         Reviewed by Steve Falkenburg.
40527
40528         * win/WebKit2.vcproj: Removed the no-longer-needed Release override of
40529         the StripPrivateSymbols attribute. (This attribute is no longer set in
40530         release.vsprops, so doesn't need to be overridden.)
40531
40532 2010-07-12  Brian Weinstein  <bweinstein@apple.com>
40533
40534         WebKit2 build fix for Windows.
40535
40536         * WebProcess/Plugins/Netscape/NetscapePlugin.cpp: Remove some stub function definitions.
40537         * win/WebKit2.vcproj: Add PluginController.h to the vcproj.
40538
40539 2010-07-12  Anders Carlsson  <andersca@apple.com>
40540
40541         Reviewed by Adam Roben.
40542
40543         Add a PluginController class, use it for invalidation and getting the user agent
40544         https://bugs.webkit.org/show_bug.cgi?id=42084
40545
40546         * WebKit2.xcodeproj/project.pbxproj:
40547         Add PluginController.h
40548
40549         * WebProcess/Plugins/DummyPlugin.cpp:
40550         (WebKit::DummyPlugin::initialize):
40551         * WebProcess/Plugins/DummyPlugin.h:
40552         Pass the PluginController to initialize.
40553
40554         * WebProcess/Plugins/Netscape/NetscapeBrowserFuncs.cpp:
40555         Implement NPN_UserAgent, NPN_MemAlloc, NPN_MemFree, NPN_InvalidateRect and NPN_InvalidateRegion.
40556
40557         * WebProcess/Plugins/Netscape/NetscapePlugin.cpp:
40558         (WebKit::NetscapePlugin::NetscapePlugin):
40559         Initialize m_pluginController to null.
40560
40561         (WebKit::NetscapePlugin::invalidate):
40562         Ask the plug-in controller to invalidate.
40563
40564         (WebKit::NetscapePlugin::userAgent):´
40565         Ask the plug-in controller for the user agent.
40566
40567         (WebKit::NetscapePlugin::initialize):
40568         Set the m_pluginController member variable.
40569
40570         * WebProcess/Plugins/Plugin.h:
40571         Make initialize take a PluginController.
40572
40573         * WebProcess/Plugins/PluginController.h: Added.
40574
40575         * WebProcess/Plugins/PluginView.cpp:
40576         (WebKit::PluginView::initializePlugin):
40577         Pass the PluginController to initialize.
40578
40579         (WebKit::PluginView::invalidateRect):
40580         Tell the host window to invalidate the given rect.
40581
40582         (WebKit::PluginView::invalidate):
40583         Call invalidateRect.
40584
40585         (WebKit::PluginView::userAgent):
40586         Ask the frame loader client for the user agent.
40587
40588         * WebProcess/Plugins/PluginView.h:
40589
40590 2010-07-12  Adam Roben  <aroben@apple.com>
40591
40592         Windows build fix
40593
40594         * WebProcess/Plugins/Netscape/win/NetscapePluginModuleWin.cpp: Added.
40595         (WebKit::NetscapePluginModule::tryLoad):
40596         (WebKit::NetscapePluginModule::unload):
40597         Stubbed these out.
40598
40599         * win/WebKit2.vcproj: Added a Netscape filter beneath
40600         WebProcess/Plugins, and moved NetscapePlugin into it. Added
40601         NetscapePluginModule to the new Netscape filter. Added
40602         WebProcess/Plugins to the include path for all configurations (it was
40603         only added to Release and Debug_Internal previously) and added
40604         WebProcess/Plugins/Netscape to the include path for all
40605         configurations.
40606
40607 2010-07-11  Maciej Stachowiak  <mjs@apple.com>
40608
40609         Reviewed by Dan Bernstein.
40610
40611         Implement animation-related methods for WebKitTestRunner
40612         https://bugs.webkit.org/show_bug.cgi?id=42053
40613
40614         Implemented some helpers for WebKitTestRunner;
40615         
40616         * WebProcess/InjectedBundle/API/c/WKBundleFrame.cpp:
40617         (WKBundleFrameGetNumberOfActiveAnimations):
40618         (WKBundleFramePauseAnimationOnElementWithId):
40619         * WebProcess/InjectedBundle/API/c/WKBundleFrame.h:
40620         * WebProcess/WebPage/WebFrame.cpp:
40621         (WebKit::WebFrame::numberOfActiveAnimations):
40622         (WebKit::WebFrame::pauseAnimationOnElementWithId):
40623         * WebProcess/WebPage/WebFrame.h:
40624         * mac/WebKit2.exp:
40625
40626 2010-07-10  Anders Carlsson  <andersca@apple.com>
40627
40628         Reviewed by Sam Weinig.
40629
40630         Don't initialize plug-ins until allowed by the page
40631         https://bugs.webkit.org/show_bug.cgi?id=42033
40632
40633         * WebProcess/Plugins/Netscape/NetscapePlugin.cpp:
40634         (WebKit::NetscapePlugin::paint):
40635         (WebKit::NetscapePlugin::geometryDidChange):
40636         Assert that the plug-in is started.
40637
40638         * WebProcess/Plugins/PluginView.cpp:
40639         (WebKit::PluginView::PluginView):
40640         Initialize m_isWaitingUntilMediaCanStart.
40641         
40642         (WebKit::PluginView::~PluginView):
40643         If necessary, remove the plug-in view as a MediaCanStartListener.
40644
40645         (WebKit::PluginView::initializePlugin):
40646         If we're not allowed to initialize the plug-in, add the plug-in view as a MediaCanStartListener.
40647
40648         (WebKit::PluginView::paint):
40649         Check that the plug-in is initialized.
40650
40651         (WebKit::PluginView::viewGeometryDidChange):
40652         Ditto.
40653
40654         (WebKit::PluginView::mediaCanStart):
40655         Initialize the plug-in.
40656
40657         * WebProcess/Plugins/PluginView.h:
40658
40659 2010-07-10  Anders Carlsson  <andersca@apple.com>
40660
40661         Reviewed by Dan Bernstein.
40662
40663         Have the plug-in view initialize the plug-in
40664         https://bugs.webkit.org/show_bug.cgi?id=42030
40665
40666         * WebProcess/Plugins/DummyPlugin.cpp:
40667         (WebKit::DummyPlugin::initialize):
40668         * WebProcess/Plugins/DummyPlugin.h:
40669         Plugin::initialize now takes a struct.
40670         
40671         * WebProcess/Plugins/Netscape/NetscapePlugin.cpp:
40672         (WebKit::NetscapePlugin::initialize):        
40673         * WebProcess/Plugins/Netscape/NetscapePlugin.h:
40674         Plugin::initialize now takes a struct.
40675         
40676         * WebProcess/Plugins/Plugin.h:
40677         Add Parameters struct.
40678
40679         * WebProcess/Plugins/PluginView.cpp:
40680         (WebKit::PluginView::PluginView):
40681         Add Parameters parameter.
40682
40683         (WebKit::PluginView::~PluginView):
40684         Add m_plugin null check.
40685
40686         (WebKit::PluginView::initializePlugin):
40687         Try to initialize the plug-in and zero out the plug-in if initialization fails.
40688
40689         (WebKit::PluginView::paint):
40690         Add m_plugin null check.
40691         
40692         (WebKit::PluginView::setParent):
40693         Initialize the plug-in.
40694     
40695         * WebProcess/Plugins/PluginView.h:
40696         (WebKit::PluginView::create):
40697         * WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
40698         (WebKit::WebFrameLoaderClient::createPlugin):
40699         Don't initialize the plug-in here.
40700
40701 2010-07-10  Anders Carlsson  <andersca@apple.com>
40702
40703         Reviewed by Oliver Hunt.
40704
40705         Call Page::canStartMedia when the WKView is added to/removed from a window
40706         https://bugs.webkit.org/show_bug.cgi?id=42029
40707
40708         * Shared/CoreIPCSupport/WebPageMessageKinds.h:
40709         (WebPageMessage::):
40710         Add SetIsInWindow.
40711
40712         * UIProcess/API/mac/WKView.mm:
40713         (-[WKView initWithFrame:pageNamespaceRef:]):
40714         Call setIsInWindow.
40715
40716         (-[WKView _updateVisibility]):
40717         Call setIsInWindow.
40718
40719         * UIProcess/WebPageProxy.cpp:
40720         (WebKit::WebPageProxy::WebPageProxy):
40721         Initialize m_isInWindow.
40722
40723         (WebKit::WebPageProxy::setIsInWindow):
40724         Send WebPageMessage::SetIsInWindow.
40725
40726         * UIProcess/WebPageProxy.h:
40727         * WebProcess/WebPage/WebPage.cpp:
40728         (WebKit::WebPage::setIsInWindow):
40729         Call Page::canStartMedia.
40730
40731         (WebKit::WebPage::didReceiveMessage):
40732         Handle the SetIsInWindow message.
40733
40734         * WebProcess/WebPage/WebPage.h:
40735
40736 2010-07-10  Anders Carlsson  <andersca@apple.com>
40737
40738         Reviewed by Dan Bernstein.
40739
40740         Reuse initialized NetscapePluginModules, pass parameters to NPP_New
40741         https://bugs.webkit.org/show_bug.cgi?id=42028
40742
40743         * WebProcess/Plugins/Netscape/NetscapePlugin.cpp:
40744         (WebKit::NetscapePlugin::NetscapePlugin):
40745         Let the plug-in module know that a plug-in has been created.
40746
40747         (WebKit::NetscapePlugin::~NetscapePlugin):
40748         Let the plug-in module know that a plug-in has been destroyed.
40749
40750         (WebKit::NetscapePlugin::initialize):
40751         Pass the MIME type and parameters to the plug-in.
40752
40753         * WebProcess/Plugins/Netscape/NetscapePluginModule.cpp:
40754         (WebKit::initializedNetscapePluginModules):
40755         Add list of initialized plug-in modules.
40756
40757         (WebKit::NetscapePluginModule::NetscapePluginModule):
40758         Initialize m_pluginCount to 0.
40759
40760         (WebKit::NetscapePluginModule::~NetscapePluginModule):
40761         Assert that we're not in the list of initialized plug-ins.
40762
40763         (WebKit::NetscapePluginModule::pluginCreated):
40764         Increment the plug-in count.
40765
40766         (WebKit::NetscapePluginModule::pluginDestroyed):
40767         Decrement the plug-in count and call shutdown if it's 0.
40768
40769         (WebKit::NetscapePluginModule::shutdown):
40770         Call NP_Shutdown and remove the plug-in from the list of initialized plug-ins.
40771
40772         (WebKit::NetscapePluginModule::getOrCreate):
40773         Look for an already initialized plug-in module before creating one.
40774
40775         (WebKit::NetscapePluginModule::load):
40776         Set m_isInitialized to true.
40777
40778         * WebProcess/Plugins/Netscape/mac/NetscapePluginModuleMac.cpp:
40779         (WebKit::NetscapePluginModule::unload):
40780         Leak the CFBundleRef to avoid possible crashes.
40781
40782         * WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
40783         (WebKit::WebFrameLoaderClient::createPlugin):
40784         Call getOrCreate instead of create.
40785
40786 2010-07-09  Leon Clarke  <leonclarke@google.com>
40787
40788         Reviewed by Adam Barth.
40789
40790         add support for link prefetching
40791         https://bugs.webkit.org/show_bug.cgi?id=3652
40792
40793         * Configurations/FeatureDefines.xcconfig:
40794
40795 2010-07-09  Anders Carlsson  <andersca@apple.com>
40796
40797         Reviewed by Sam Weinig and Dan Bernstein.
40798
40799         Handle setting of drawing and event models
40800         https://bugs.webkit.org/show_bug.cgi?id=41994
40801
40802         * WebProcess/Plugins/Netscape/NetscapeBrowserFuncs.cpp:
40803         Handle NPPVpluginDrawingModel and NPPVpluginEventModel.
40804
40805         * WebProcess/Plugins/Netscape/NetscapePlugin.cpp:
40806         (WebKit::NetscapePlugin::NetscapePlugin):
40807         Initialize m_inNPPNew.
40808
40809         (WebKit::NetscapePlugin::~NetscapePlugin):
40810         Assert that we aren't still running.
40811
40812         (WebKit::NetscapePlugin::fromNPP):
40813         New function that returns a NetscapePlugin object given a NPP pointer.
40814
40815         (WebKit::NetscapePlugin::initialize):
40816         * WebProcess/Plugins/Netscape/mac/NetscapePluginMac.cpp:
40817         (WebKit::NetscapePlugin::setDrawingModel):
40818         Set the drawing model.
40819
40820         (WebKit::NetscapePlugin::setEventModel):
40821         Set the event model.
40822
40823         (WebKit::initializeEvent):
40824         (WebKit::NetscapePlugin::platformPaint):
40825         Only send the Cocoa event when using the Cocoa event model.
40826
40827 2010-07-09  Sam Weinig  <sam@webkit.org>
40828
40829         Reviewed by Anders Carlsson.
40830
40831         Patch for https://bugs.webkit.org/show_bug.cgi?id=41971
40832         Add really basic BackForwardList support.
40833
40834         * Shared/CoreIPCSupport/WebPageMessageKinds.h:
40835         (WebPageMessage::):
40836         Add new message kind.
40837
40838         * Shared/CoreIPCSupport/WebPageProxyMessageKinds.h:
40839         (WebPageProxyMessage::):
40840         Add new message kinds. Remove DidChangeCanGoBack and DidChangeCanGoForward.
40841
40842         * UIProcess/API/C/WKPage.cpp:
40843         (WKPageGoToBackForwardListItem):
40844         * UIProcess/API/C/WKPage.h:
40845         Add function to initiate a navigation to a BackForward item.  The
40846         BackForward list will be updated to use this as the current item
40847         asynchronously. 
40848
40849         * UIProcess/WebBackForwardList.cpp:
40850         (WebKit::WebBackForwardList::WebBackForwardList):
40851         (WebKit::WebBackForwardList::addItem): Added.
40852         (WebKit::WebBackForwardList::goToItem): Added.
40853         (WebKit::WebBackForwardList::itemAtIndex): Added.
40854         (WebKit::WebBackForwardList::backListCount): Changed to return int matching WebCore.
40855         (WebKit::WebBackForwardList::forwardListCount): Ditto.
40856         (WebKit::WebBackForwardList::backListWithLimit): Add cast to int.
40857         (WebKit::WebBackForwardList::forwardListWithLimit): Ditto.
40858         (WebKit::WebBackForwardList::backListAsImmutableArrayWithLimit): Ditto.
40859         (WebKit::WebBackForwardList::forwardListAsImmutableArrayWithLimit): Ditto.
40860         * UIProcess/WebBackForwardList.h:
40861
40862         * UIProcess/WebBackForwardListItem.cpp:
40863         (WebKit::WebBackForwardListItem::WebBackForwardListItem):
40864         * UIProcess/WebBackForwardListItem.h:
40865         (WebKit::WebBackForwardListItem::create):
40866         (WebKit::WebBackForwardListItem::itemID):
40867         Added itemID.
40868
40869         * UIProcess/WebPageProxy.cpp:
40870         (WebKit::WebPageProxy::WebPageProxy):
40871         (WebKit::WebPageProxy::close):
40872         (WebKit::WebPageProxy::canGoForward):
40873         (WebKit::WebPageProxy::canGoBack):
40874         (WebKit::WebPageProxy::goToBackForwardItem):
40875         (WebKit::WebPageProxy::didReceiveMessage):
40876         (WebKit::WebPageProxy::didReceiveSyncMessage):
40877         (WebKit::WebPageProxy::addItemToBackForwardList):
40878         (WebKit::WebPageProxy::goToItemInBackForwardList):
40879         (WebKit::WebPageProxy::processDidExit):
40880         * UIProcess/WebPageProxy.h:
40881         - Removed m_canGoBack and m_canGoForward booleans and instead use the BackForwardList.
40882         - Forward goToBackForwardItem to the WebProcess.
40883         - Respond to messages from the WebBackForwardListProxy in the WebProcess,
40884           forwarding to the WebBackForwardList.
40885
40886         * WebProcess/WebCoreSupport/WebBackForwardControllerClient.cpp:
40887         (WebKit::WebBackForwardControllerClient::createBackForwardList):
40888         Start using a WebBackForwardListProxy instead of a BackForwardListImpl.
40889
40890         * WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
40891         (WebKit::WebFrameLoaderClient::dispatchDidAddBackForwardItem):
40892         (WebKit::WebFrameLoaderClient::dispatchDidRemoveBackForwardItem):
40893         (WebKit::WebFrameLoaderClient::dispatchDidChangeBackForwardIndex):
40894         Remove calls backForwardListDidChange() now that we communicate much more
40895         information than just this state.
40896
40897         * WebProcess/WebPage/WebBackForwardListProxy.cpp:
40898         (WebKit::idToHistoryItemMap):
40899         (WebKit::historyItemToIDMap):
40900         (WebKit::generateHistoryItemID):
40901         (WebKit::getIDForHistoryItem):
40902         (WebKit::WebBackForwardListProxy::itemForID):
40903         Add leaking cached maps of HistoryItems to IDs, the life time of these
40904         objects will be improved in a subsequent patch.
40905
40906         (WebKit::WebBackForwardListProxy::WebBackForwardListProxy):
40907         (WebKit::WebBackForwardListProxy::addItem):
40908         (WebKit::WebBackForwardListProxy::goBack):
40909         (WebKit::WebBackForwardListProxy::goForward):
40910         (WebKit::WebBackForwardListProxy::goToItem):
40911         (WebKit::WebBackForwardListProxy::backItem):
40912         (WebKit::WebBackForwardListProxy::currentItem):
40913         (WebKit::WebBackForwardListProxy::forwardItem):
40914         (WebKit::WebBackForwardListProxy::itemAtIndex):
40915         (WebKit::WebBackForwardListProxy::backListWithLimit):
40916         (WebKit::WebBackForwardListProxy::forwardListWithLimit):
40917         (WebKit::WebBackForwardListProxy::capacity):
40918         (WebKit::WebBackForwardListProxy::setCapacity):
40919         (WebKit::WebBackForwardListProxy::enabled):
40920         (WebKit::WebBackForwardListProxy::setEnabled):
40921         (WebKit::WebBackForwardListProxy::backListCount):
40922         (WebKit::WebBackForwardListProxy::forwardListCount):
40923         (WebKit::WebBackForwardListProxy::containsItem):
40924         (WebKit::WebBackForwardListProxy::close):
40925         (WebKit::WebBackForwardListProxy::closed):
40926         (WebKit::WebBackForwardListProxy::removeItem):
40927         (WebKit::WebBackForwardListProxy::entries):
40928         (WebKit::WebBackForwardListProxy::pushStateItem):
40929         * WebProcess/WebPage/WebBackForwardListProxy.h:
40930         Forward functions to the UIProcess.
40931
40932         * WebProcess/WebPage/WebPage.cpp:
40933         (WebKit::WebPage::goToBackForwardItem):
40934         (WebKit::WebPage::didReceiveMessage):
40935         * WebProcess/WebPage/WebPage.h:
40936         Respond to GoToBackForwardItem message.
40937
40938         * mac/WebKit2.exp: Add new API function.
40939
40940 2010-07-09  Anders Carlsson  <andersca@apple.com>
40941
40942         Reviewed by Sam Weinig.
40943
40944         Verify drawing coordinates, add crude painting support
40945         https://bugs.webkit.org/show_bug.cgi?id=41984
40946     
40947         * WebKit2.xcodeproj/project.pbxproj:
40948         Add NetscapePluginMac.cpp.
40949
40950         * WebProcess/Plugins/Netscape/NetscapePlugin.cpp:
40951         (WebKit::NetscapePlugin::NetscapePlugin):
40952         Initialize drawing and event models.
40953
40954         (WebKit::NetscapePlugin::initialize):
40955         Call platformPostInitialize.
40956
40957         (WebKit::NetscapePlugin::destroy):
40958         Call NPP_Destroy.
40959
40960         (WebKit::NetscapePlugin::paint):
40961         Call platformPaint.
40962
40963         * WebProcess/Plugins/Netscape/NetscapePlugin.h:
40964         Add member functions.
40965
40966         * WebProcess/Plugins/Netscape/mac/NetscapePluginMac.cpp: Added.
40967         (WebKit::NetscapePlugin::platformPostInitialize):
40968         Set default event and drawing models and verify that they are compatible.
40969         
40970         (WebKit::NetscapePlugin::platformPaint):
40971         Send a paint event (assuming the Cocoa event model currently).
40972
40973         * WebProcess/Plugins/PluginView.cpp:
40974         (WebKit::PluginView::paint):
40975         Change the paint rect to be in window coordinates.
40976
40977         (WebKit::PluginView::viewGeometryDidChange):
40978         (WebKit::PluginView::clipRectInWindowCoordinates):
40979         * WebProcess/Plugins/PluginView.h:
40980
40981 2010-07-09  Anders Carlsson  <andersca@apple.com>
40982
40983         Reviewed by Sam Weinig.
40984
40985         Pass a clip rect to the plugin and call NPP_SetWindow
40986         https://bugs.webkit.org/show_bug.cgi?id=41969
40987
40988         * WebProcess/Plugins/DummyPlugin.cpp:
40989         (WebKit::DummyPlugin::geometryDidChange):
40990         * WebProcess/Plugins/DummyPlugin.h:
40991         Add clip rect parameter.
40992
40993         * WebProcess/Plugins/Netscape/NetscapePlugin.cpp:
40994         (WebKit::NetscapePlugin::NetscapePlugin):
40995         Initialize m_npWindow.
40996
40997         (WebKit::NetscapePlugin::callSetWindow):
40998         Call NPP_SetWindow.
40999
41000         (WebKit::NetscapePlugin::initialize):
41001         Set the window type to NPWindowTypeDrawable for now.
41002
41003         (WebKit::NetscapePlugin::geometryDidChange):
41004         Update the frame and clip rects and call NPP_SetWindow.
41005
41006         * WebProcess/Plugins/Netscape/NetscapePlugin.h:
41007         Add an NPWindow member variable.
41008
41009         * WebProcess/Plugins/Plugin.h:
41010         Add a clipRect parameter to geometryDidChange.
41011
41012         * WebProcess/Plugins/PluginView.cpp:
41013         (WebKit::PluginView::PluginView):
41014         Add the plug-in element to the constructor.
41015         
41016         (WebKit::PluginView::viewGeometryDidChange):
41017         Compute the clip rect and pass it to the plug-in.
41018
41019         * WebProcess/Plugins/PluginView.h:
41020         (WebKit::PluginView::create):
41021         Pass the plug-in element to the constructor.
41022
41023         * WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
41024         (WebKit::WebFrameLoaderClient::createPlugin):
41025         Pass the plug-in element to PluginView::create.
41026
41027 2010-07-09  Anders Carlsson  <andersca@apple.com>
41028
41029         Reviewed by Simon Fraser.
41030
41031         Instantiate Netscape plug-ins, pass geometry information to Plugin
41032         https://bugs.webkit.org/show_bug.cgi?id=41960
41033
41034         * WebProcess/Plugins/Netscape/NetscapeBrowserFuncs.cpp:
41035         Handle NPNVsupportsCoreGraphicsBool and NPNVsupportsCocoaBool.
41036
41037         * WebProcess/Plugins/Netscape/NetscapePlugin.cpp:
41038         (WebKit::NetscapePlugin::NetscapePlugin):
41039         Set npp.ndata.
41040
41041         (WebKit::NetscapePlugin::initialize):
41042         Try to instantiate the plug-in by calling NPP_New.
41043
41044         * WebProcess/Plugins/Netscape/NetscapePlugin.h:
41045         Store the NetscapePluginModule and the NPP struct.
41046
41047         * WebProcess/Plugins/Netscape/NetscapePluginModule.h:
41048         Add a getter for the NPPluginFuncs vtable.
41049
41050         * WebProcess/Plugins/PluginView.cpp:
41051         (WebKit::PluginView::frameRectsChanged):
41052         Make sure to call viewGeometryDidChange.
41053
41054         (WebKit::PluginView::setParent):
41055         Ditto.
41056
41057         (WebKit::PluginView::viewGeometryDidChange):
41058         Convert the frame rect to window coordinates and pass it to the plug-in.
41059
41060         * WebProcess/Plugins/PluginView.h:
41061         Add function declarations.
41062
41063 2010-07-08  Diego Gonzalez  <diegohcg@webkit.org>
41064
41065         Reviewed by Kenneth Rohde Christiansen.
41066
41067         [Qt] [WebKit2] Make QWKPage call _q_webActionTriggered as a private slot
41068         https://bugs.webkit.org/show_bug.cgi?id=41880
41069
41070         * UIProcess/API/qt/qwkpage.cpp:
41071         * UIProcess/API/qt/qwkpage.h:
41072
41073 2010-07-09  Antti Koivisto  <koivisto@iki.fi>
41074
41075         Not reviewed.
41076
41077         Build fix.
41078
41079         * UIProcess/API/qt/qwkpage.h:
41080
41081 2010-07-08  Brian Weinstein  <bweinstein@apple.com>
41082
41083         WebKit2 build fix for Windows.
41084
41085         * WebProcess/Plugins/PluginView.h: Change the forward declaration of Plugin
41086             to an include.
41087         * win/WebKit2.vcproj: Update the include paths for Release to match Debug, and
41088             add some files to the vcproj that were added on Mac.
41089
41090 2010-07-08  Sam Weinig  <sam@webkit.org>
41091
41092         Attempt to fix the windows build.
41093
41094         * WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
41095         (WebKit::WebFrameLoaderClient::createPlugin):
41096
41097 2010-07-08  Anders Carlsson  <andersca@apple.com>
41098
41099         Reviewed by Sam Weinig.
41100
41101         Add NetscapePlugin class
41102         https://bugs.webkit.org/show_bug.cgi?id=41919
41103
41104         * WebKit2.xcodeproj/project.pbxproj:
41105         * WebProcess/Plugins/Netscape/NetscapePlugin.cpp: Added.
41106         (WebKit::NetscapePlugin::NetscapePlugin):
41107         (WebKit::NetscapePlugin::~NetscapePlugin):
41108         (WebKit::NetscapePlugin::initialize):
41109         (WebKit::NetscapePlugin::destroy):
41110         (WebKit::NetscapePlugin::paint):
41111         (WebKit::NetscapePlugin::geometryDidChange):
41112         * WebProcess/Plugins/Netscape/NetscapePlugin.h: Added.
41113         (WebKit::NetscapePlugin::create):
41114         * WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
41115         (WebKit::WebFrameLoaderClient::createPlugin):
41116
41117 2010-07-08  Anders Carlsson  <andersca@apple.com>
41118
41119         Reviewed by Sam Weinig.
41120
41121         Enable notImplemented messages by default and have the various clients explicitly disable them.
41122
41123         * Shared/NotImplemented.h:
41124         * WebProcess/WebCoreSupport/WebChromeClient.cpp:
41125         * WebProcess/WebCoreSupport/WebContextMenuClient.cpp:
41126         * WebProcess/WebCoreSupport/WebDragClient.cpp:
41127         * WebProcess/WebCoreSupport/WebEditorClient.cpp:
41128         * WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
41129         * WebProcess/WebCoreSupport/WebInspectorClient.cpp:
41130
41131 2010-07-08  Anders Carlsson  <andersca@apple.com>
41132
41133         Reviewed by Sam Weinig.
41134
41135         Add stubbed out NPN functions
41136         https://bugs.webkit.org/show_bug.cgi?id=41917
41137
41138         * WebKit2.xcodeproj/project.pbxproj:
41139         * WebProcess/Plugins/Netscape/NetscapeBrowserFuncs.cpp: Added.
41140         (WebKit::initializeBrowserFuncs):
41141         (WebKit::netscapeBrowserFuncs):
41142         * WebProcess/Plugins/Netscape/NetscapeBrowserFuncs.h: Added.
41143         * WebProcess/Plugins/Netscape/mac/NetscapePluginModuleMac.cpp:
41144         (WebKit::NetscapePluginModule::tryLoad):
41145
41146 2010-07-08  Anders Carlsson  <andersca@apple.com>
41147
41148         Fix Windows build.
41149
41150         * WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
41151
41152 2010-07-08  Luiz Agostini  <luiz.agostini@openbossa.org>
41153
41154         Reviewed by Kenneth Rohde Christiansen.
41155
41156         [Qt] Spelling and style correction
41157         https://bugs.webkit.org/show_bug.cgi?id=41891
41158
41159         Correcting a spelling and a style mistakes.
41160
41161         * UIProcess/Launcher/ProcessLauncher.h:
41162         * UIProcess/Launcher/qt/ProcessLauncherQt.cpp:
41163
41164 2010-07-08  Anders Carlsson  <andersca@apple.com>
41165
41166         Reviewed by Sam Weinig.
41167
41168         Implement more of NetscapePluginModule
41169         https://bugs.webkit.org/show_bug.cgi?id=41910
41170
41171         * WebKit2.xcodeproj/project.pbxproj:
41172         * WebProcess/Plugins/Netscape/NetscapePluginModule.cpp:
41173         (WebKit::NetscapePluginModule::create):
41174         (WebKit::NetscapePluginModule::load):
41175         * WebProcess/Plugins/Netscape/NetscapePluginModule.h:
41176         * WebProcess/Plugins/Netscape/mac/NetscapePluginModuleMac.cpp: Added.
41177         (WebKit::NetscapePluginModule::unload):
41178         (WebKit::pointerToFunction):
41179         (WebKit::NetscapePluginModule::tryLoad):
41180         * WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
41181         (WebKit::WebFrameLoaderClient::createPlugin):
41182
41183 2010-07-08  Anders Carlsson  <andersca@apple.com>
41184
41185         Reviewed by Sam Weinig.
41186
41187         Add stubbed out NetscapePluginModule class
41188         https://bugs.webkit.org/show_bug.cgi?id=41901
41189
41190         * WebKit2.xcodeproj/project.pbxproj:
41191         * WebProcess/Plugins/Netscape/NetscapePluginModule.cpp: Added.
41192         (WebKit::NetscapePluginModule::NetscapePluginModule):
41193         * WebProcess/Plugins/Netscape/NetscapePluginModule.h: Added.
41194         (WebKit::NetscapePluginModule::create):
41195         * WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
41196         (WebKit::WebFrameLoaderClient::createPlugin):
41197
41198 2010-07-08  Luiz Agostini  <luiz.agostini@openbossa.org>
41199
41200         Reviewed by Kenneth Rohde Christiansen.
41201
41202         [Qt] Move socket objects to connection's thread
41203         https://bugs.webkit.org/show_bug.cgi?id=41897
41204
41205         To receive network related notifications in the WorkQueue thread, the
41206         QLocalSocket instances must be moved to that thread.
41207
41208         * Platform/CoreIPC/qt/ConnectionQt.cpp:
41209         (CoreIPC::Connection::open):
41210         * Platform/WorkQueue.h:
41211         * Platform/qt/WorkQueueQt.cpp:
41212         (WorkQueue::moveSocketToWorkThread):
41213
41214 2010-07-08  Alice Liu  <alice.liu@apple.com>
41215
41216         Reviewed by Sam Weinig.
41217
41218         https://bugs.webkit.org/show_bug.cgi?id=41653
41219         Add new WebKitTestRunner project for Windows
41220
41221         * win/WebKit2Generated.make: Add files needed for WebKitTestRunner
41222
41223 2010-07-08  Anders Carlsson  <andersca@apple.com>
41224
41225         Reviewed by Sam Weinig.
41226
41227         Add a GetPluginHostConnection WebProcessProxy message
41228         https://bugs.webkit.org/show_bug.cgi?id=41893
41229         
41230         * Shared/CoreIPCSupport/WebProcessProxyMessageKinds.h:
41231         (WebProcessProxyMessage::):
41232         * UIProcess/WebProcessProxy.cpp:
41233         (WebKit::WebProcessProxy::getPluginHostConnection):
41234         (WebKit::WebProcessProxy::didReceiveMessage):
41235         (WebKit::WebProcessProxy::didReceiveSyncMessage):
41236         * UIProcess/WebProcessProxy.h:
41237         * WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
41238         (WebKit::WebFrameLoaderClient::createPlugin):
41239
41240 2010-07-08  Anders Carlsson  <andersca@apple.com>
41241
41242         Reviewed by Sam Weinig.
41243
41244         Add more parameters to Plugin::initialize
41245         https://bugs.webkit.org/show_bug.cgi?id=41890
41246
41247         * WebProcess/Plugins/DummyPlugin.cpp:
41248         (WebKit::DummyPlugin::initialize):
41249         * WebProcess/Plugins/DummyPlugin.h:
41250         * WebProcess/Plugins/Plugin.h:
41251         * WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
41252         (WebKit::WebFrameLoaderClient::createPlugin):
41253
41254 2010-07-08  Anders Carlsson  <andersca@apple.com>
41255
41256         Fix build.
41257
41258         * WebProcess/Plugins/DummyPlugin.h:
41259
41260 2010-07-08  Anders Carlsson  <andersca@apple.com>
41261
41262         Reviewed by Sam Weinig.
41263
41264         Add a Plugin abstract base class and a DummyPlugin that implements it
41265         https://bugs.webkit.org/show_bug.cgi?id=41885
41266
41267         * WebKit2.xcodeproj/project.pbxproj:
41268         Add files.
41269
41270         * WebProcess/Plugins/DummyPlugin.cpp: Added.
41271         (WebKit::DummyPlugin::paint):
41272         Paint a red rectangle.
41273         
41274         * WebProcess/Plugins/Plugin.cpp: Added.
41275         * WebProcess/Plugins/Plugin.h: Added.
41276         Add Plugin, an abstract baseclass.
41277
41278         * WebProcess/Plugins/PluginView.cpp:
41279         (WebKit::PluginView::PluginView):
41280         (WebKit::PluginView::~PluginView):
41281         (WebKit::PluginView::paint):
41282         (WebKit::PluginView::viewGeometryDidChange):
41283         * WebProcess/Plugins/PluginView.h:
41284         (WebKit::PluginView::create):
41285         Add a Plugin member function and forward PluginView calls to it.
41286
41287         * WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
41288         (WebKit::WebFrameLoaderClient::createPlugin):
41289         Make a DummyPlugin and pass it to the PluginView.
41290
41291         * win/WebKit2.vcproj:
41292         Add files.
41293         
41294 2010-07-08  Anders Carlsson  <andersca@apple.com>
41295
41296         Reviewed by Sam Weinig.
41297
41298         Add stubbed out PluginView class
41299         https://bugs.webkit.org/show_bug.cgi?id=41879
41300
41301         * WebKit2.xcodeproj/project.pbxproj:
41302         Add PluginView.cpp and PluginView.h
41303
41304         * WebProcess/Plugins/PluginView.cpp: Added.
41305         (WebKit::PluginView::PluginView):
41306         (WebKit::PluginView::~PluginView):
41307         (WebKit::PluginView::setFrameRect):
41308         (WebKit::PluginView::paint):
41309         (WebKit::PluginView::viewGeometryDidChange):
41310         (WebKit::PluginView::invalidateRect):
41311         Stub out these functions.
41312
41313         * WebProcess/Plugins/PluginView.h: Added.
41314         (WebKit::PluginView::create):
41315         * WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
41316         (WebKit::WebFrameLoaderClient::createPlugin):
41317         Create a plug-in view.
41318         
41319         * win/WebKit2.vcproj:
41320         Add PluginView.cpp and PluginView.h.
41321
41322 2010-07-08  Steve Falkenburg  <sfalken@apple.com>
41323
41324         Reviewed by Adam Roben.
41325
41326         WebKit2 on Windows needs a version resource
41327         https://bugs.webkit.org/show_bug.cgi?id=41870
41328         <rdar://problem/8170501>
41329
41330         * win/WebKit2.rc: Added.
41331         * win/WebKit2.vcproj:
41332         * win/WebKit2WebProcess.rc: Added.
41333         * win/WebKit2WebProcess.vcproj:
41334
41335 2010-07-08  Sam Weinig  <sam@webkit.org>
41336
41337         Reviewed by Anders Carlsson.
41338
41339         Patch for https://bugs.webkit.org/show_bug.cgi?id=41874
41340         Add stubbed out WebBackForwardListProxy
41341
41342         - No behavior change.
41343         - Rename the old WebBackForwardListProxy to WebBackForwardList since it
41344           will be the implementation, not the proxy.
41345
41346         * UIProcess/API/C/WKAPICast.h:
41347         * UIProcess/API/C/WKBackForwardList.cpp:
41348         * UIProcess/API/C/WKPage.cpp:
41349         * UIProcess/WebBackForwardList.cpp: Copied from UIProcess/WebBackForwardListProxy.cpp.
41350         * UIProcess/WebBackForwardList.h: Copied from UIProcess/WebBackForwardListProxy.h.
41351         (WebKit::WebBackForwardList::create):
41352         * UIProcess/WebBackForwardListProxy.cpp: Removed.
41353         * UIProcess/WebBackForwardListProxy.h: Removed.
41354         * UIProcess/WebPageProxy.cpp:
41355         (WebKit::WebPageProxy::WebPageProxy):
41356         * UIProcess/WebPageProxy.h:
41357         (WebKit::WebPageProxy::backForwardList):
41358         * WebKit2.xcodeproj/project.pbxproj:
41359         * WebProcess/WebPage/WebBackForwardListProxy.cpp: Added.
41360         * WebProcess/WebPage/WebBackForwardListProxy.h: Added.
41361         (WebKit::WebBackForwardListProxy::create):
41362         * win/WebKit2.vcproj:
41363
41364 2010-07-08  Sam Weinig  <sam@webkit.org>
41365
41366         Reviewed by Anders Carlsson.
41367
41368         Pass Page to BackForwardControllerClient::createBackForwardList since it
41369         may be called before implementations of BackForwardControllerClient have
41370         access to a Page.
41371
41372         * WebProcess/WebCoreSupport/WebBackForwardControllerClient.cpp:
41373         (WebKit::WebBackForwardControllerClient::createBackForwardList):
41374         * WebProcess/WebCoreSupport/WebBackForwardControllerClient.h:
41375
41376 2010-07-08  Anders Carlsson  <andersca@apple.com>
41377
41378         Reviewed by Sam Weinig.
41379
41380         Fix fallout from Darin's adoptRef assertion changes.
41381
41382         * UIProcess/WebContext.cpp:
41383         (WebKit::WebContext::sharedProcessContext):
41384         (WebKit::WebContext::sharedThreadContext):
41385         * WebProcess/WebPage/WebFrame.cpp:
41386         (WebKit::WebFrame::createMainFrame):
41387         (WebKit::WebFrame::createSubframe):
41388         (WebKit::WebFrame::create):
41389         (WebKit::WebFrame::WebFrame):
41390         * WebProcess/WebPage/WebFrame.h:
41391
41392 2010-07-08  Steve Falkenburg  <sfalken@apple.com>
41393
41394         Reviewed by Mark Rowe.
41395
41396         WebKit2 should enable DEP (Data Execution Prevention) on Windows via /NXCOMPAT
41397         https://bugs.webkit.org/show_bug.cgi?id=41837
41398         <rdar://problem/8170505>
41399
41400         * win/WebKit2WebProcess.vcproj:
41401
41402 2010-07-08  Sam Weinig  <sam@webkit.org>
41403
41404         Reviewed by Anders Carlsson.
41405
41406         Patch for https://bugs.webkit.org/show_bug.cgi?id=41826
41407         Convert BackForwardList to an abstract base class and add BackForwardListImpl
41408         as the concrete implementation of it.
41409
41410         * WebProcess/WebCoreSupport/WebBackForwardControllerClient.cpp:
41411         (WebKit::WebBackForwardControllerClient::createBackForwardList):
41412
41413 2010-07-08  Luiz Agostini  <luiz@webkit.org>, Kenneth Rohde Christiansen <kenneth@webkit.org>
41414
41415         Reviewed by Antti Koivisto.
41416
41417         [Qt] Improve QtWebkit2 secondary process launching procedure
41418         https://bugs.webkit.org/show_bug.cgi?id=41853
41419
41420         Changing secondary process launching procedure to make sure that the method
41421         ProcessLauncher::didFinishLaunchingProcess will only be called after secondary
41422         process has been launched and the connection has been stablished between the
41423         UIProcess and WebProcess.
41424
41425         This solves the timing issues ocasionaly observed when launching MiniBrowser.
41426
41427         QLocalServer object and related code has been removed from the class Connection.
41428         Server instances of the Connection class now get the QLocalSocket via ProcessLauncher.
41429
41430         * Platform/CoreIPC/Connection.h:
41431         * Platform/CoreIPC/qt/ConnectionQt.cpp:
41432         (CoreIPC::Connection::platformInitialize):
41433         (CoreIPC::Connection::platformInvalidate):
41434         (CoreIPC::Connection::open):
41435
41436         Using QProcess* as PlatformProcessIdentifier.
41437
41438         * Platform/PlatformProcessIdentifier.h:
41439
41440         A new singleton class named ProcessLauncherHelper was created to handle the QLocalServer
41441         object used to receive connections. This class launches the process and waits for it to connect
41442         before calling ProcessLauncher::didFinishLaunchingProcess.
41443
41444         * UIProcess/Launcher/ProcessLauncher.h:
41445         * UIProcess/Launcher/qt/ProcessLauncherQt.cpp:
41446         (WebKit::ProcessLauncherHelper::launch):
41447         (WebKit::ProcessLauncherHelper::takePendingConnection):
41448         (WebKit::ProcessLauncherHelper::ProcessLauncherHelper):
41449         (WebKit::ProcessLauncherHelper::instance):
41450         (WebKit::ProcessLauncherHelper::newConnection):
41451         (WebKit::ProcessLauncher::launchProcess):
41452         (WebKit::ProcessLauncher::terminateProcess):
41453         (_qt_takePendingConnection):
41454
41455 2010-07-08  Antti Koivisto  <koivisto@iki.fi>
41456
41457         Reviewed by Kenneth Rohde Christiansen.
41458
41459         [Qt] Initial WebKit2 implementation
41460         https://bugs.webkit.org/show_bug.cgi?id=40233
41461     
41462         Random build fixes.
41463
41464         * Shared/qt/WebEventFactoryQt.cpp:
41465         * UIProcess/API/qt/ClientImpl.cpp:
41466         * UIProcess/API/qt/qwkpage.cpp:
41467         * UIProcess/API/qt/qwkpage.h:
41468         * UIProcess/DrawingAreaProxy.h:
41469         * UIProcess/qt/ChunkedUpdateDrawingAreaProxyQt.cpp:
41470         * WebProcess/WebProcess.cpp:
41471
41472 2010-07-07  Zoltan Horvath  <zoltan@webkit.org>
41473
41474         Reviewed by Kenneth Rohde Christiansen.
41475
41476         [Qt] Terminate QtWebProcess on exit
41477         https://bugs.webkit.org/show_bug.cgi?id=41766
41478
41479         Call WKPageTerminate to terminate QtWebProcess on exit.
41480
41481         * UIProcess/API/qt/qwkpage.cpp:
41482         (QWKPage::~QWKPage):
41483
41484 2010-07-07  Steve Falkenburg  <sfalken@apple.com>
41485
41486         Windows release build fix.
41487         Don't generate public symbols since this is exceeding address space on our builders.
41488
41489         * win/WebKit2.vcproj:
41490
41491 2010-07-07  Sam Weinig  <sam@webkit.org>
41492
41493         Reviewed by Anders Carlsson.
41494
41495         Patch for https://bugs.webkit.org/show_bug.cgi?id=41772
41496         Add basic piping for BackForwardControllerClient.
41497
41498         - Add very basic WebBackForwardControllerClient.
41499
41500         * WebKit2.xcodeproj/project.pbxproj:
41501         * WebProcess/WebCoreSupport/WebBackForwardControllerClient.cpp: Added.
41502         (WebKit::WebBackForwardControllerClient::backForwardControllerDestroyed):
41503         (WebKit::WebBackForwardControllerClient::createBackForwardList):
41504         * WebProcess/WebCoreSupport/WebBackForwardControllerClient.h: Added.
41505         (WebKit::WebBackForwardControllerClient::WebBackForwardControllerClient):
41506         * WebProcess/WebPage/WebPage.cpp:
41507         (WebKit::WebPage::WebPage):
41508         * win/WebKit2.vcproj:
41509
41510 2010-07-07  Antti Koivisto  <koivisto@iki.fi>
41511
41512         Reviewed by Kenneth Rohde Christiansen.
41513
41514         [Qt] Initial WebKit2 implementation
41515         https://bugs.webkit.org/show_bug.cgi?id=40233
41516         
41517         Add Qt section to the prefix header.
41518
41519         * WebKit2Prefix.h:
41520
41521 2010-07-07  Antti Koivisto  <koivisto@iki.fi>
41522
41523         Not reviewed.
41524
41525         Fix build, remove some left over debugging code.
41526
41527         * Platform/CoreIPC/qt/ConnectionQt.cpp:
41528         (CoreIPC::Connection::readyReadHandler):
41529         (CoreIPC::Connection::sendOutgoingMessage):
41530
41531 2010-07-07  Antti Koivisto  <koivisto@iki.fi>
41532
41533         Reviewed by Kenneth Rohde Christiansen.
41534
41535         [Qt] Initial WebKit2 implementation
41536         https://bugs.webkit.org/show_bug.cgi?id=40233
41537         
41538         Implement WebPage for Qt.
41539
41540         * WebProcess/WebPage/qt/WebPageQt.cpp: Added.
41541         (WebKit::WebPage::platformInitialize):
41542         (WebKit::):
41543         (WebKit::WebPage::interpretKeyEvent):
41544
41545
41546 2010-07-06  Anders Carlsson  <andersca@apple.com>
41547
41548         Fix Windows WebKit2 build.
41549
41550         * UIProcess/Plugins/win/PluginInfoStoreWin.cpp:
41551         (WebKit::PluginInfoStore::mimeTypeFromExtension):
41552
41553 2010-07-06  Anders Carlsson  <andersca@apple.com>
41554
41555         Reviewed by Sam Weinig.
41556
41557         Add PluginInfoStore::findPlugin
41558         https://bugs.webkit.org/show_bug.cgi?id=41719
41559
41560         * UIProcess/Plugins/PluginInfoStore.cpp:
41561         (WebKit::PluginInfoStore::getPlugins):
41562         (WebKit::PluginInfoStore::findPluginForMIMEType):
41563         (WebKit::PluginInfoStore::findPluginForExtension):
41564         (WebKit::pathExtension):
41565         (WebKit::PluginInfoStore::findPlugin):
41566         * UIProcess/Plugins/PluginInfoStore.h:
41567         * UIProcess/Plugins/mac/PluginInfoStoreMac.mm:
41568         (WebKit::PluginInfoStore::mimeTypeFromExtension):
41569
41570 2010-07-06  Sam Weinig  <sam@webkit.org>
41571
41572         Reviewed by Anders Carlsson.
41573
41574         Add injected bundle API for exposing console messages.
41575
41576         - Split WKBundlePageClient into multiple clients matching WKPage.
41577           (For now we only have a loader client and a UI client)
41578
41579         * WebKit2.xcodeproj/project.pbxproj:
41580         * WebProcess/InjectedBundle/API/c/WKBundlePage.cpp:
41581         (WKBundlePageSetLoaderClient):
41582         (WKBundlePageSetUIClient):
41583         * WebProcess/InjectedBundle/API/c/WKBundlePage.h:
41584         * WebProcess/InjectedBundle/InjectedBundlePageClient.cpp: Removed.
41585         * WebProcess/InjectedBundle/InjectedBundlePageClient.h: Removed.
41586         * WebProcess/InjectedBundle/InjectedBundlePageLoaderClient.cpp: Copied from WebProcess/InjectedBundle/InjectedBundlePageClient.cpp.
41587         (WebKit::InjectedBundlePageLoaderClient::InjectedBundlePageLoaderClient):
41588         (WebKit::InjectedBundlePageLoaderClient::initialize):
41589         (WebKit::InjectedBundlePageLoaderClient::didStartProvisionalLoadForFrame):
41590         (WebKit::InjectedBundlePageLoaderClient::didReceiveServerRedirectForProvisionalLoadForFrame):
41591         (WebKit::InjectedBundlePageLoaderClient::didFailProvisionalLoadWithErrorForFrame):
41592         (WebKit::InjectedBundlePageLoaderClient::didCommitLoadForFrame):
41593         (WebKit::InjectedBundlePageLoaderClient::didFinishLoadForFrame):
41594         (WebKit::InjectedBundlePageLoaderClient::didFailLoadWithErrorForFrame):
41595         (WebKit::InjectedBundlePageLoaderClient::didReceiveTitleForFrame):
41596         (WebKit::InjectedBundlePageLoaderClient::didClearWindowObjectForFrame):
41597         * WebProcess/InjectedBundle/InjectedBundlePageLoaderClient.h: Copied from WebProcess/InjectedBundle/InjectedBundlePageClient.h.
41598         * WebProcess/InjectedBundle/InjectedBundlePageUIClient.cpp: Added.
41599         (WebKit::InjectedBundlePageUIClient::InjectedBundlePageUIClient):
41600         (WebKit::InjectedBundlePageUIClient::initialize):
41601         (WebKit::InjectedBundlePageUIClient::addMessageToConsole):
41602         * WebProcess/InjectedBundle/InjectedBundlePageUIClient.h: Added.
41603         * WebProcess/WebCoreSupport/WebChromeClient.cpp:
41604         (WebKit::WebChromeClient::addMessageToConsole):
41605         * WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
41606         (WebKit::WebFrameLoaderClient::dispatchDidReceiveServerRedirectForProvisionalLoad):
41607         (WebKit::WebFrameLoaderClient::dispatchDidStartProvisionalLoad):
41608         (WebKit::WebFrameLoaderClient::dispatchDidReceiveTitle):
41609         (WebKit::WebFrameLoaderClient::dispatchDidCommitLoad):
41610         (WebKit::WebFrameLoaderClient::dispatchDidFailProvisionalLoad):
41611         (WebKit::WebFrameLoaderClient::dispatchDidFailLoad):
41612         (WebKit::WebFrameLoaderClient::dispatchDidFinishLoad):
41613         (WebKit::WebFrameLoaderClient::dispatchDidClearWindowObjectInWorld):
41614         * WebProcess/WebPage/WebPage.cpp:
41615         (WebKit::WebPage::initializeInjectedBundleLoaderClient):
41616         (WebKit::WebPage::initializeInjectedBundleUIClient):
41617         * WebProcess/WebPage/WebPage.h:
41618         (WebKit::WebPage::injectedBundleLoaderClient):
41619         (WebKit::WebPage::injectedBundleUIClient):
41620         * mac/WebKit2.exp:
41621         * win/WebKit2.vcproj:
41622
41623 2010-07-06  Sam Weinig  <sam@webkit.org>
41624
41625         Reviewed by Anders Carlsson.
41626
41627         Patch for https://bugs.webkit.org/show_bug.cgi?id=41707
41628         Add ability to dump frame inner text for the test runner
41629
41630         * WebProcess/InjectedBundle/API/c/WKBundleFrame.cpp:
41631         (WKBundleFrameCopyInnerText):
41632         * WebProcess/InjectedBundle/API/c/WKBundleFrame.h:
41633         * WebProcess/WebPage/WebFrame.cpp:
41634         (WebKit::WebFrame::innerText):
41635         * WebProcess/WebPage/WebFrame.h:
41636         * mac/WebKit2.exp:
41637
41638 2010-07-06  Anders Carlsson  <andersca@apple.com>
41639
41640         Reviewed by Sam Weinig.
41641
41642         Only export a single WebKitMain function for the Web Process to call
41643         https://bugs.webkit.org/show_bug.cgi?id=41702
41644
41645         * Shared/CommandLine.h:
41646         Add windows CommandLine::parse overload.
41647
41648         * Shared/win/CommandLineWin.cpp: Added.
41649         (WebKit::CommandLine::parse):
41650         Move parse overload from WebProcess/win/WebProcessMain.cpp.
41651
41652         * UIProcess/Launcher/win/ProcessLauncherWin.cpp:
41653         (WebKit::ProcessLauncher::launchProcess):
41654         Pass the right mode to.
41655
41656         * WebKit2.xcodeproj/project.pbxproj:
41657         Update for moves.
41658         
41659         * WebProcess/Launching/mac/WebProcessMain.mm: Removed.
41660         * WebProcess/Launching/win/WebProcessWinMain.cpp: Removed.
41661         * WebProcess/WebKitMain.cpp: Added.
41662         (WebKitMain):
41663         (enableTerminationOnHeapCorruption):
41664         Add WebKitMain functions for Mac and Windows.
41665
41666         * WebProcess/WebProcessMain.h: Added.
41667         * WebProcess/mac/WebProcessMainMac.mm: Added.
41668         (WebKit::WebProcessMain):
41669         Add Mac version of WebProcessMain.
41670
41671         * WebProcess/win/WebProcessMain.cpp: Removed.
41672         * WebProcess/win/WebProcessMain.h: Removed.
41673         * WebProcess/win/WebProcessMainWin.cpp: Added.
41674         (WebKit::WebProcessMain):
41675         Add Windows version of WebProcessMain.
41676
41677         * mac/MainMac.cpp: Added.
41678         (main):
41679         Add Mac WebProcess main function.
41680
41681         * mac/WebKit2.exp:
41682         Remove functions that we don't need to export.
41683
41684         * win/MainWin.cpp: Added.
41685         (wWinMain):
41686         Add Windows WebProcess main function.
41687
41688         * win/WebKit2.vcproj:
41689         * win/WebKit2WebProcess.vcproj:
41690         Update for moves.
41691
41692 2010-07-05  Luiz Agostini  <luiz.agostini@openbossa.org>
41693
41694         Reviewed by Kenneth Rohde Christiansen.
41695
41696         [Qt] WebKit2 triple click
41697         https://bugs.webkit.org/show_bug.cgi?id=41629
41698
41699         QtWebkit2 triple click implementation.
41700
41701         * UIProcess/API/qt/qwkpage.cpp:
41702         (QWKPagePrivate::mousePressEvent):
41703         (QWKPagePrivate::mouseDoubleClickEvent):
41704         (QWKPage::timerEvent):
41705         * UIProcess/API/qt/qwkpage.h:
41706         * UIProcess/API/qt/qwkpage_p.h:
41707
41708 2010-07-05  Kenneth Rohde Christiansen  <kenneth.christiansen@openbossa.org>
41709
41710         Reviewed by Antti Koivisto.
41711
41712         [Qt] Initial WebKit2 implementation
41713         https://bugs.webkit.org/show_bug.cgi?id=40233
41714
41715         Add stubs
41716
41717         * UIProcess/Plugins/qt/PluginInfoStoreQt.cpp: Copied from WebKit2/UIProcess/Plugins/win/PluginInfoStoreWin.cpp.
41718         (WebKit::PluginInfoStore::pluginDirectories):
41719         (WebKit::PluginInfoStore::pluginPathsInDirectory):
41720         (WebKit::PluginInfoStore::getPluginInfo):
41721         (WebKit::PluginInfoStore::shouldUsePlugin):
41722         * WebProcess/InjectedBundle/InjectedBundle.h:
41723         * WebProcess/InjectedBundle/qt/InjectedBundleQt.cpp: Added.
41724         (WebKit::InjectedBundle::load):
41725
41726 2010-07-05  Kenneth Rohde Christiansen  <kenneth.christiansen@openbossa.org>
41727
41728         Reviewed by Antti Koivisto.
41729
41730         [Qt] Initial WebKit2 implementation
41731         https://bugs.webkit.org/show_bug.cgi?id=40233
41732
41733         Add WebErrorsQt
41734
41735         * WebProcess/WebCoreSupport/qt/WebErrorsQt.cpp: Added.
41736         (WebKit::):
41737         (WebKit::cancelledError):
41738         (WebKit::blockedError):
41739         (WebKit::cannotShowURLError):
41740         (WebKit::interruptForPolicyChangeError):
41741         (WebKit::cannotShowMIMETypeError):
41742         (WebKit::fileDoesNotExistError):
41743
41744 2010-07-05  Kenneth Rohde Christiansen  <kenneth.christiansen@openbossa.org>
41745
41746         Reviewed by Antti Koivisto.
41747
41748         [Qt] Initial WebKit2 implementation
41749         https://bugs.webkit.org/show_bug.cgi?id=40233
41750
41751         Add Qt C API integration.
41752
41753         * UIProcess/API/cpp/qt/WKStringQt.cpp: Added.
41754         (WKStringCreateWithQString):
41755         (WKStringCopyQString):
41756         * UIProcess/API/cpp/qt/WKStringQt.h: Added.
41757         * UIProcess/API/cpp/qt/WKURLQt.cpp: Added.
41758         (WKURLCreateWithQUrl):
41759         (WKURLCopyQUrl):
41760         * UIProcess/API/cpp/qt/WKURLQt.h: Added.
41761
41762 2010-07-05  Kenneth Rohde Christiansen  <kenneth.christiansen@openbossa.org>
41763
41764         Reviewed by Antti Koivisto.
41765
41766         [Qt] Initial WebKit2 implementation
41767         https://bugs.webkit.org/show_bug.cgi?id=40233
41768
41769         Add the Qt process launcher.
41770
41771         * UIProcess/Launcher/qt/ProcessLauncherQt.cpp: Added.
41772         (WebKit::ProcessLauncher::launchProcess):
41773         (WebKit::ProcessLauncher::terminateProcess):
41774         (WebKit::webThreadBody):
41775         (WebKit::ProcessLauncher::createWebThread):
41776         (webProcessMain):
41777
41778 2010-07-05  Antti Koivisto  <koivisto@iki.fi>
41779
41780         Reviewed by Kenneth Rohde Christiansen.
41781
41782         [Qt] Initial WebKit2 implementation
41783         https://bugs.webkit.org/show_bug.cgi?id=40233
41784         
41785         Implement ChunkedUpdateDrawingArea + Proxy for Qt. Not built yet.
41786
41787         * UIProcess/ChunkedUpdateDrawingAreaProxy.h:
41788         * UIProcess/qt: Added.
41789         * UIProcess/qt/ChunkedUpdateDrawingAreaProxyQt.cpp: Added.
41790         (WebKit::ChunkedUpdateDrawingAreaProxy::page):
41791         (WebKit::ChunkedUpdateDrawingAreaProxy::ensureBackingStore):
41792         (WebKit::ChunkedUpdateDrawingAreaProxy::invalidateBackingStore):
41793         (WebKit::ChunkedUpdateDrawingAreaProxy::platformPaint):
41794         (WebKit::ChunkedUpdateDrawingAreaProxy::drawUpdateChunkIntoBackingStore):
41795         * WebProcess/WebPage/qt: Added.
41796         * WebProcess/WebPage/qt/ChunkedUpdateDrawingAreaQt.cpp: Added.
41797         (WebKit::ChunkedUpdateDrawingArea::paintIntoUpdateChunk):
41798
41799 2010-07-04  Anders Carlsson  <andersca@apple.com>
41800
41801         Reviewed by Dan Bernstein.
41802
41803         Add simple command line parser and pass mode argument to the web process
41804         https://bugs.webkit.org/show_bug.cgi?id=41586
41805
41806         * Shared/CommandLine.h:
41807         (WebKit::CommandLine::operator[]):
41808         Add CommandLine class.
41809
41810         * Shared/mac/CommandLineMac.cpp:
41811         (WebKit::CommandLine::parse):
41812         Implement Mac version of CommandLine::parse.
41813
41814         * UIProcess/Launcher/mac/ProcessLauncherMac.mm:
41815         (WebKit::ProcessLauncher::launchProcess):
41816         Add "legacywebprocess" mode to the posix_spawn call.
41817
41818         * WebKit2.xcodeproj/project.pbxproj:
41819         Add CommandLine to the xcode project.
41820
41821         * WebProcess/Launching/mac/WebProcessMain.mm:
41822         (webProcessMain):
41823         (main):
41824         Parse the command line and check the mode.
41825
41826 2010-07-04  Maciej Stachowiak  <mjs@apple.com>
41827
41828         Reviewed by Mark Rowe.
41829
41830         WebProcess crashes in release for simple layout tests
41831         https://bugs.webkit.org/show_bug.cgi?id=41575
41832
41833         * WebProcess/InjectedBundle/API/c/WKBundlePage.cpp:
41834         (WKBundlePageCopyRenderTreeExternalRepresentation): ref external representation StringImpl*
41835         before taking it out of its parent String, to avoid returning freed memory.
41836
41837 2010-07-03  Maciej Stachowiak  <mjs@apple.com>
41838
41839         Rubber stamped by Anders Carlsson.
41840
41841         Add stdint.h include to fix WebKitTestRunner build.
41842
41843         * UIProcess/API/C/WKPage.h:
41844
41845 2010-07-02  Luiz Agostini  <luiz.agostini@openbossa.org>
41846
41847         Reviewed by Kenneth Rohde Christiansen.
41848
41849         [Qt] Wrong method name in file  Connection.h
41850         https://bugs.webkit.org/show_bug.cgi?id=41536
41851
41852         Method openConnectionHandler was spelled as openConnection in class Connection.
41853
41854         * Platform/CoreIPC/Connection.h:
41855
41856 2010-07-02  Luiz Agostini  <luiz.agostini@openbossa.org>
41857
41858         Reviewed by Sam Weinig.
41859
41860         Adding notification and touch events methods to WebChromeClient
41861         https://bugs.webkit.org/show_bug.cgi?id=41527
41862
41863         * WebProcess/WebCoreSupport/WebChromeClient.cpp:
41864         (WebKit::WebChromeClient::notificationPresenter):
41865         (WebKit::WebChromeClient::needTouchEvents):
41866         * WebProcess/WebCoreSupport/WebChromeClient.h:
41867
41868 2010-07-02  Luiz Agostini  <luiz.agostini@openbossa.org>
41869
41870         Reviewed by Sam Weinig.
41871
41872         Removing CoreFoundation.h include from WKFrame.h
41873         https://bugs.webkit.org/show_bug.cgi?id=41528
41874
41875         * UIProcess/API/C/WKFrame.h:
41876
41877 2010-07-02  Sam Weinig  <sam@webkit.org>
41878
41879         Reviewed by Oliver Hunt.
41880
41881         Patch for https://bugs.webkit.org/show_bug.cgi?id=41540
41882         WebKit2: Add InjectedCode API to get a list of subframes
41883
41884         * WebProcess/InjectedBundle/API/c/WKBundleFrame.cpp:
41885         (WKBundleFrameCopyChildFrames):
41886         * WebProcess/InjectedBundle/API/c/WKBundleFrame.h:
41887         * WebProcess/WebPage/WebFrame.cpp:
41888         (WebKit::childFrameRef):
41889         (WebKit::childFrameDeref):
41890         (WebKit::WebFrame::childFrames):
41891         * WebProcess/WebPage/WebFrame.h:
41892         * mac/WebKit2.exp:
41893
41894 2010-07-02  Sam Weinig  <sam@webkit.org>
41895
41896         Reviewed by Anders Carlsson.
41897
41898         Turn off the Objective-C garbage collection for the WebProcess.
41899
41900         * Configurations/WebProcess.xcconfig:
41901         * WebProcess/Launching/mac/WebProcessMain.mm:
41902         (main): Assert that GC is off.
41903
41904 2010-07-02  Sam Weinig  <sam@webkit.org>
41905
41906         Reviewed by Anders Carlsson.
41907
41908         There is no longer a reason to check that the process is valid when posting
41909         a message to the bundle, the process code will take care of that for us.
41910
41911         * UIProcess/WebContext.cpp:
41912         (WebKit::WebContext::postMessageToInjectedBundle):
41913
41914 2010-07-02  Sam Weinig  <sam@webkit.org>
41915
41916         Reviewed by Anders Carlsson.
41917
41918         Use send instead of connection()->send(), now that connections() are created
41919         asynchronously it can be null at this point and the message needs to be queued.
41920
41921         * UIProcess/mac/WebProcessProxyMac.mm:
41922         (WebKit::WebProcessProxy::setUpAcceleratedCompositing):
41923
41924 2010-07-01  Steve Falkenburg  <sfalken@apple.com>
41925
41926         Even more Windows build fixing.
41927         Removed bogus post-build event commands.
41928         Removed unnecessary link libraries.
41929
41930         * win/WebKit2.vcproj:
41931
41932 2010-07-01  Steve Falkenburg  <sfalken@apple.com>
41933
41934         Fix Windows while not breaking Qt (didn't realize this was building for Qt).
41935
41936         * WebProcess/WebProcess.cpp:
41937
41938 2010-07-01  Steve Falkenburg  <sfalken@apple.com>
41939
41940         Windows build fix.
41941
41942         * win/WebKit2Generated.make:
41943
41944 2010-07-01  Steve Falkenburg  <sfalken@apple.com>
41945
41946         Windows build fix.
41947
41948         * WebProcess/WebProcess.cpp:
41949
41950 2010-07-01  Sam Weinig  <sam@webkit.org>
41951
41952         Reviewed by Jon Honeycutt.
41953
41954         Make WebKit2 compile (though not work) on Leopard.
41955
41956         * Platform/WorkQueue.h:
41957         * Platform/mac/WorkQueueMac.cpp:
41958         (WorkQueue::EventSource::EventSource):
41959         (WorkQueue::scheduleWork):
41960         (WorkQueue::registerMachPortEventHandler):
41961         (WorkQueue::unregisterMachPortEventHandler):
41962         (WorkQueue::platformInitialize):
41963         (WorkQueue::platformInvalidate):
41964         * UIProcess/mac/LayerBackedDrawingAreaProxyMac.mm:
41965         (WebKit::LayerBackedDrawingAreaProxy::attachCompositingContext):
41966         * UIProcess/mac/WebProcessProxyMac.mm:
41967         (WebKit::WebProcessProxy::setUpAcceleratedCompositing):
41968         * WebProcess/WebPage/LayerBackedDrawingArea.cpp:
41969         (WebKit::LayerBackedDrawingArea::LayerBackedDrawingArea):
41970         (WebKit::LayerBackedDrawingArea::setNeedsDisplay):
41971         * WebProcess/WebPage/LayerBackedDrawingArea.h:
41972         * WebProcess/WebPage/mac/LayerBackedDrawingAreaMac.mm:
41973         (WebKit::LayerBackedDrawingArea::platformClear):
41974         (WebKit::LayerBackedDrawingArea::attachCompositingContext):
41975
41976 2010-07-01  Sam Weinig  <sam@webkit.org>
41977
41978         Reviewed by Anders Carlsson.
41979
41980         https://bugs.webkit.org/show_bug.cgi?id=41491
41981         Add first stab at back/forward list API.
41982
41983         * UIProcess/API/C/WKAPICast.h:
41984         * UIProcess/API/C/WKBackForwardList.cpp: Added.
41985         * UIProcess/API/C/WKBackForwardList.h: Added.
41986         * UIProcess/API/C/WKBackForwardListItem.cpp: Added.
41987         * UIProcess/API/C/WKBackForwardListItem.h: Added.
41988         * UIProcess/API/C/WKBase.h:
41989         * UIProcess/API/C/WKPage.cpp:
41990         * UIProcess/API/C/WKPage.h:
41991         * UIProcess/API/C/WebKit2.h:
41992         * UIProcess/WebBackForwardListItem.cpp: Added.
41993         * UIProcess/WebBackForwardListItem.h: Added.
41994         * UIProcess/WebBackForwardListProxy.cpp: Added.
41995         * UIProcess/WebBackForwardListProxy.h: Added.
41996         * UIProcess/WebPageProxy.cpp:
41997         * UIProcess/WebPageProxy.h:
41998         * WebKit2.xcodeproj/project.pbxproj:
41999         * win/WebKit2.vcproj:
42000
42001 2010-07-01  Anders Carlsson  <andersca@apple.com>
42002
42003         Reviewed by Sam Weinig.
42004
42005         Make process launching asynchronous
42006         https://bugs.webkit.org/show_bug.cgi?id=41489
42007
42008         * Platform/CoreIPC/Connection.h:
42009         Make OutgoingMessage public.
42010
42011         * UIProcess/ChunkedUpdateDrawingAreaProxy.cpp:
42012         (WebKit::ChunkedUpdateDrawingAreaProxy::paint):
42013         Don't wait for a paint reply when the process is starting up.
42014
42015         * UIProcess/Launcher/ProcessLauncher.cpp: Added.
42016         Add new ProcessLauncher class.
42017
42018         (WebKit::processLauncherWorkQueue):
42019         Returns the work queue where process launching will happen.
42020
42021         (WebKit::ProcessLauncher::ProcessLauncher):
42022         Schedule launching the process.
42023
42024         (WebKit::ProcessLauncher::didFinishLaunchingProcess):
42025         Call the client method.
42026         
42027         (WebKit::ProcessLauncher::invalidate):
42028         Set the client to 0.
42029
42030         * UIProcess/Launcher/ProcessLauncher.h: Added.
42031         * UIProcess/Launcher/WebProcessLauncher.h: Removed.
42032         Rename WebProcessLauncher.h -> ProcessLauncher.h
42033
42034         * UIProcess/Launcher/mac/ProcessLauncherMac.mm: Added.
42035         * UIProcess/Launcher/mac/WebProcessLauncher.mm: Removed.
42036         Rename WebProcessLauncher.mm -> ProcessLauncherMac.mm, update for ProcessLauncher changes.
42037
42038         * UIProcess/Launcher/win/ProcessLauncherWin.cpp: Added.
42039         * UIProcess/Launcher/win/WebProcessLauncher.cpp: Removed.
42040         Rename WebProcessLauncher.cpp -> ProcessLauncherWin.cpp, update for ProcessLauncher changes.
42041         
42042         * UIProcess/WebProcessProxy.cpp:
42043         (WebKit::WebProcessProxy::~WebProcessProxy):
42044         Delete any unsent messages.
42045
42046         (WebKit::WebProcessProxy::connect):
42047         Use the new ProcessLauncher.
42048
42049         (WebKit::WebProcessProxy::sendMessage):
42050         If we're waiting for the process to launch, the messages need to be enqueued.
42051
42052         (WebKit::WebProcessProxy::didFinishLaunching):
42053         Send the outgoing messages.
42054
42055         * WebKit2.xcodeproj/project.pbxproj:
42056         * win/WebKit2.vcproj:
42057         Update for renames.
42058
42059 2010-07-01  Simon Fraser  <simon.fraser@apple.com>
42060
42061         Reviewed by Anders Carlsson.
42062
42063         Get accelerated compositing working with webkit2
42064         https://bugs.webkit.org/show_bug.cgi?id=41084
42065         
42066         Start up the CA render server in the UI process (currently, at launch time), and
42067         pass the server port over to the web process for use by the layer-backed drawing area.
42068         
42069         Fix some style issues pointed out by Dan Bernstein.
42070         
42071         Implement the WebChromeClient methods that pass the attach/detach calls through
42072         to the drawing area.
42073
42074         * Shared/CoreIPCSupport/WebProcessMessageKinds.h:
42075         * UIProcess/API/mac/WKView.mm:
42076         (-[WKView _startAcceleratedCompositing:]):
42077         * UIProcess/API/mac/WKViewInternal.h:
42078         * UIProcess/WebProcessProxy.cpp:
42079         (WebKit::WebProcessProxy::WebProcessProxy):
42080         (WebKit::WebProcessProxy::setUpAcceleratedCompositing):
42081         * UIProcess/WebProcessProxy.h:
42082         * UIProcess/mac/LayerBackedDrawingAreaProxyMac.mm:
42083         * UIProcess/mac/WebProcessProxyMac.mm: Added.
42084         (WebKit::WebProcessProxy::setUpAcceleratedCompositing):
42085         * WebKit2.xcodeproj/project.pbxproj:
42086         * WebProcess/WebCoreSupport/WebChromeClient.cpp:
42087         (WebKit::WebChromeClient::attachRootGraphicsLayer):
42088         (WebKit::WebChromeClient::scheduleCompositingLayerSync):
42089         * WebProcess/WebPage/mac/LayerBackedDrawingAreaMac.mm:
42090         (WebKit::LayerBackedDrawingArea::attachCompositingContext):
42091         * WebProcess/WebProcess.cpp:
42092         (WebKit::WebProcess::WebProcess):
42093         (WebKit::WebProcess::didReceiveMessage):
42094         * WebProcess/WebProcess.h:
42095         (WebKit::WebProcess::compositingRenderServerPort):
42096
42097 2010-07-01  Simon Fraser  <simon.fraser@apple.com>
42098
42099         Reviewed by Anders Carlsson.
42100
42101         Get accelerated compositing working with webkit2
42102         https://bugs.webkit.org/show_bug.cgi?id=41084
42103         
42104         Add a new kind of DrawingArea, which is a LayerBackedDrawingArea, which will be used
42105         when the page goes into accelerated compositing mode. It is not wired up yet.
42106
42107         * Shared/CoreIPCSupport/DrawingAreaProxyMessageKinds.h: New 'attach' and 'detach' messages
42108         related to accelerated compositing.
42109
42110         * UIProcess/API/mac/WKView.mm:
42111         (-[WKView _startAcceleratedCompositing:]):
42112         (-[WKView _stopAcceleratedCompositing]):
42113         * UIProcess/API/mac/WKViewInternal.h:
42114         Add a subview of the WKView which has layer-backing enabled, and put the drawing area's
42115         layer inside of that.
42116         
42117         * UIProcess/ChunkedUpdateDrawingAreaProxy.h:
42118         (WebKit::ChunkedUpdateDrawingAreaProxy::attachCompositingContext):
42119         (WebKit::ChunkedUpdateDrawingAreaProxy::detachCompositingContext): These methods will never be called
42120         on the ChunkedUpdateDrawingArea. Stub them out.
42121
42122         * UIProcess/DrawingAreaProxy.h:
42123         Add attachCompositingContext() and detachCompositingContext() methods, and a new drawing area
42124         type to the enum.
42125
42126         * UIProcess/LayerBackedDrawingAreaProxy.cpp: Added.
42127         * UIProcess/LayerBackedDrawingAreaProxy.h: Added.
42128         * UIProcess/mac/LayerBackedDrawingAreaProxyMac.mm: Added.
42129
42130         * WebKit2.xcodeproj/project.pbxproj: Add LayerBackedDrawingArea files.
42131
42132         * WebProcess/WebPage/ChunkedUpdateDrawingArea.h: Add virtual methods stubs.
42133
42134         * WebProcess/WebPage/DrawingArea.cpp:
42135         (WebKit::DrawingArea::create): Create a LayerBackedDrawingArea if asked.
42136         * WebProcess/WebPage/DrawingArea.h: New LayerBackedDrawingAreaType type, and new virtual
42137         methods related to accelerated compositing.
42138
42139         * WebProcess/WebPage/LayerBackedDrawingArea.cpp: Added.
42140         * WebProcess/WebPage/LayerBackedDrawingArea.h: Added.
42141         * WebProcess/WebPage/mac/LayerBackedDrawingAreaMac.mm: Added.
42142
42143 2010-07-01  Kenneth Rohde Christiansen  <kenneth.christiansen@openbossa.org>
42144
42145        Rubberstamped by Sam Weinig.
42146
42147        Export symbols on Linux with GCC, like JSC does.
42148
42149        * UIProcess/API/C/WKBase.h:
42150        * WebProcess/InjectedBundle/API/c/WKBundleBase.h:
42151
42152 2010-07-01  Kenneth Rohde Christiansen  <kenneth.christiansen@openbossa.org>
42153
42154         Reviewed by Antti Koivisto.
42155
42156         [Qt] Initial WebKit2 implementation
42157         https://bugs.webkit.org/show_bug.cgi?id=40233
42158
42159         Add implementation of the UI and loader client for Qt.
42160
42161         * UIProcess/API/qt/qwkpage.cpp:
42162         * UIProcess/API/qt/ClientImpl.cpp: Added.
42163         (toQWKPage):
42164         (qt_wk_didStartProvisionalLoadForFrame):
42165         (qt_wk_didReceiveServerRedirectForProvisionalLoadForFrame):
42166         (qt_wk_didFailProvisionalLoadWithErrorForFrame):
42167         (qt_wk_didCommitLoadForFrame):
42168         (qt_wk_didFinishLoadForFrame):
42169         (qt_wk_didFailLoadWithErrorForFrame):
42170         (qt_wk_didReceiveTitleForFrame):
42171         (qt_wk_didFirstLayoutForFrame):
42172         (qt_wk_didFirstVisuallyNonEmptyLayoutForFrame):
42173         (qt_wk_didStartProgress):
42174         (qt_wk_didChangeProgress):
42175         (qt_wk_didFinishProgress):
42176         (qt_wk_didBecomeUnresponsive):
42177         (qt_wk_didBecomeResponsive):
42178         (qt_wk_createNewPage):
42179         (qt_wk_showPage):
42180         (qt_wk_close):
42181         (qt_wk_runJavaScriptAlert):
42182         * UIProcess/API/qt/ClientImpl.h: Added.
42183
42184 2010-07-01  Anders Carlsson  <andersca@apple.com>
42185
42186         Reviewed by Dan Bernstein.
42187
42188         Change the CoreIPC connection identifier to be a HANDLE on Windows
42189         https://bugs.webkit.org/show_bug.cgi?id=41479
42190
42191         * Platform/CoreIPC/Connection.h:
42192         * Platform/CoreIPC/win/ConnectionWin.cpp:
42193         (CoreIPC::Connection::createServerAndClientIdentifiers):
42194         New function that creates a server and client HANDLE.
42195
42196         (CoreIPC::Connection::platformInitialize):
42197         Don't open the connections here.
42198
42199         (CoreIPC::Connection::readEventHandler):
42200         (CoreIPC::Connection::open):
42201         
42202         * UIProcess/Launcher/win/WebProcessLauncher.cpp:
42203         (WebKit::webThreadBody):
42204         Get the handle from the thread.
42205
42206         (WebKit::launchWebProcess):
42207         Mark the client identifier as inheritable and pass it along to the web process.
42208
42209         * WebProcess/win/WebProcessMain.cpp:
42210         (WebKit::CommandLine::CommandLine):
42211         (WebKit::CommandLine::parse):
42212         (WebKit::CommandLine::operator[]):
42213         Add simple command line parser.
42214
42215         (WebKit::WebProcessMain):
42216         Get the handle identifier from the command line.
42217
42218         * WebProcess/win/WebProcessMain.h:
42219
42220 2010-07-01  Kenneth Rohde Christiansen  <kenneth.christiansen@openbossa.org>
42221
42222         Reviewed by Antti Koivisto.
42223
42224         [Qt] Initial WebKit2 implementation
42225         https://bugs.webkit.org/show_bug.cgi?id=40233
42226
42227         Add initial Qt API for WebKit2
42228
42229         * UIProcess/API/qt/WKView.h: Added.
42230         * UIProcess/API/qt/qgraphicswkview.cpp: Added.
42231         (QGraphicsWKViewPrivate::pageRef):
42232         (QGraphicsWKView::QGraphicsWKView):
42233         (QGraphicsWKView::~QGraphicsWKView):
42234         (QGraphicsWKView::page):
42235         (QGraphicsWKView::paint):
42236         (QGraphicsWKView::setGeometry):
42237         (QGraphicsWKView::load):
42238         (QGraphicsWKView::setUrl):
42239         (QGraphicsWKView::url):
42240         (QGraphicsWKView::title):
42241         (QGraphicsWKView::triggerPageAction):
42242         (QGraphicsWKView::back):
42243         (QGraphicsWKView::forward):
42244         (QGraphicsWKView::reload):
42245         (QGraphicsWKView::stop):
42246         (QGraphicsWKView::itemChange):
42247         (QGraphicsWKView::event):
42248         (QGraphicsWKView::sizeHint):
42249         (QGraphicsWKView::inputMethodQuery):
42250         (QGraphicsWKView::keyPressEvent):
42251         (QGraphicsWKView::keyReleaseEvent):
42252         (QGraphicsWKView::hoverMoveEvent):
42253         (QGraphicsWKView::mouseMoveEvent):
42254         (QGraphicsWKView::mousePressEvent):
42255         (QGraphicsWKView::mouseReleaseEvent):
42256         (QGraphicsWKView::mouseDoubleClickEvent):
42257         (QGraphicsWKView::wheelEvent):
42258         (QGraphicsWKViewPrivate::QGraphicsWKViewPrivate):
42259         (QGraphicsWKView::visibleRect):
42260         * UIProcess/API/qt/qgraphicswkview.h: Added.
42261         * UIProcess/API/qt/qwkpage.cpp: Added.
42262         (QWKPagePrivate::QWKPagePrivate):
42263         (QWKPagePrivate::~QWKPagePrivate):
42264         (QWKPagePrivate::init):
42265         (QWKPagePrivate::toolTipChanged):
42266         (QWKPagePrivate::paint):
42267         (QWKPagePrivate::keyPressEvent):
42268         (QWKPagePrivate::keyReleaseEvent):
42269         (QWKPagePrivate::mouseMoveEvent):
42270         (QWKPagePrivate::mousePressEvent):
42271         (QWKPagePrivate::mouseReleaseEvent):
42272         (QWKPagePrivate::mouseDoubleClickEvent):
42273         (QWKPagePrivate::wheelEvent):
42274         (QWKPagePrivate::updateAction):
42275         (QWKPagePrivate::updateNavigationActions):
42276         (QWKPagePrivate::_q_webActionTriggered):
42277         (QWKPage::QWKPage):
42278         (QWKPage::~QWKPage):
42279         (QWKPage::pageRef):
42280         (QWKPage::setCreateNewPageFunction):
42281         (QWKPage::load):
42282         (QWKPage::setUrl):
42283         (QWKPage::url):
42284         (QWKPage::title):
42285         (QWKPage::setViewportSize):
42286         (QWKPage::requestZoomRect):
42287         (QWKPage::triggerAction):
42288         (QWKPage::action):
42289         * UIProcess/API/qt/qwkpage.h: Added.
42290         * UIProcess/API/qt/qwkpage_p.h: Added.
42291         (QWKPagePrivate::get):
42292         (QWKPagePrivate::processDidExit):
42293         (QWKPagePrivate::processDidRevive):
42294         (QWKPagePrivate::takeFocus):
42295
42296 2010-07-01  John Sullivan  <sullivan@apple.com>
42297
42298         Rubber-stamped by Anders Carlsson.
42299
42300         * mac/WebKit2.exp:
42301         Added _WKFramePolicyListenerDownload and _WKFramePolicyListenerIgnore.
42302
42303 2010-07-01  Sheriff Bot  <webkit.review.bot@gmail.com>
42304
42305         Unreviewed, rolling out r62267.
42306         http://trac.webkit.org/changeset/62267
42307         https://bugs.webkit.org/show_bug.cgi?id=41468
42308
42309         broke stuff (Requested by weinig on #webkit).
42310
42311         * UIProcess/API/C/WKBase.h:
42312         * WebProcess/InjectedBundle/API/c/WKBundleBase.h:
42313
42314 2010-07-01  John Sullivan  <sullivan@apple.com>
42315
42316         Rubber-stamped by Sam Weinig.
42317
42318         * mac/WebKit2.exp:
42319         Added _WKFramePolicyListenerRelease and _WKFramePolicyListenerRetain.
42320
42321 2010-07-01  Kenneth Rohde Christiansen  <kenneth.christiansen@openbossa.org>
42322
42323         Reviewed by Antti Koivisto.
42324
42325         [Qt] Initial WebKit2 implementation
42326         https://bugs.webkit.org/show_bug.cgi?id=40233
42327
42328         Add our event factory for converting Qt events to something WebKit2
42329         understands.
42330
42331         * Shared/qt/WebEventFactoryQt.cpp: Added.
42332         (WebKit::mouseButtonForEvent):
42333         (WebKit::webEventTypeForEvent):
42334         (WebKit::modifiersForEvent):
42335         (WebKit::WebEventFactory::createWebMouseEvent):
42336         (WebKit::WebEventFactory::createWebWheelEvent):
42337         (WebKit::WebEventFactory::createWebKeyboardEvent):
42338         * Shared/qt/WebEventFactoryQt.h: Added.
42339
42340 2010-07-01  Antti Koivisto  <koivisto@iki.fi>
42341
42342         Reviewed by Kenneth Rohde Christiansen.
42343
42344         [Qt] Initial WebKit2 implementation
42345         https://bugs.webkit.org/show_bug.cgi?id=40233
42346         
42347         Add UpdateChunk. This one is mmap based, using Qt abstractions.
42348
42349         * Shared/qt: Added.
42350         * Shared/qt/UpdateChunk.cpp: Added.
42351         (WebKit::MappedMemory::markUsed):
42352         (WebKit::MappedMemory::markFree):
42353         (WebKit::MappedMemory::isFree):
42354         (WebKit::mapMemory):
42355         (WebKit::mapFile):
42356         (WebKit::UpdateChunk::UpdateChunk):
42357         (WebKit::UpdateChunk::~UpdateChunk):
42358         (WebKit::UpdateChunk::data):
42359         (WebKit::UpdateChunk::encode):
42360         (WebKit::UpdateChunk::decode):
42361         (WebKit::UpdateChunk::createImage):
42362         * Shared/qt/UpdateChunk.h: Added.
42363         (WebKit::UpdateChunk::rect):
42364         (WebKit::UpdateChunk::size):
42365
42366 2010-07-01  Antti Koivisto  <koivisto@iki.fi>
42367
42368         Reviewed by Kenneth Rohde Christiansen.
42369
42370         [Qt] Initial WebKit2 implementation
42371         https://bugs.webkit.org/show_bug.cgi?id=40233
42372         
42373         Include some stdlib headers to fix linux build.
42374
42375         * Platform/CoreIPC/ArgumentDecoder.cpp:
42376         * Platform/CoreIPC/ArgumentEncoder.cpp:
42377         * UIProcess/WebLoaderClient.cpp:
42378         * UIProcess/WebPageProxy.cpp:
42379         * UIProcess/WebUIClient.cpp:
42380
42381 2010-07-01  Antti Koivisto  <koivisto@iki.fi>
42382
42383         Reviewed by Kenneth Rohde Christiansen.
42384
42385         [Qt] Initial WebKit2 implementation
42386         https://bugs.webkit.org/show_bug.cgi?id=40233
42387         
42388         Implement CoreIPC::Connection and PlatformProcessIdentifier for Qt. Not built yet.
42389
42390         * Platform/CoreIPC/Connection.h:
42391         * Platform/CoreIPC/qt: Added.
42392         * Platform/CoreIPC/qt/ConnectionQt.cpp: Added.
42393         (CoreIPC::Connection::platformInitialize):
42394         (CoreIPC::Connection::platformInvalidate):
42395         (CoreIPC::Connection::newConnectionHandler):
42396         (CoreIPC::Connection::readyReadHandler):
42397         (CoreIPC::Connection::openConnection):
42398         (CoreIPC::Connection::open):
42399         (CoreIPC::Connection::sendOutgoingMessage):
42400         * Platform/PlatformProcessIdentifier.h:
42401
42402 2010-07-01  Antti Koivisto  <koivisto@iki.fi>
42403
42404         Reviewed by Kenneth Rohde Christiansen.
42405
42406         [Qt] Initial WebKit2 implementation
42407         https://bugs.webkit.org/show_bug.cgi?id=40233
42408         
42409         Implement WorkQueue for Qt. Not built yet.
42410
42411         * Platform/WorkQueue.h:
42412         * Platform/qt/WorkQueueQt.cpp: Added.
42413         (WorkQueue::WorkItemQt::WorkItemQt):
42414         (WorkQueue::WorkItemQt::~WorkItemQt):
42415         (WorkQueue::WorkItemQt::execute):
42416         (WorkQueue::WorkItemQt::timerEvent):
42417         (WorkQueue::connectSignal):
42418         (WorkQueue::disconnectSignal):
42419         (WorkQueue::platformInitialize):
42420         (WorkQueue::platformInvalidate):
42421         (WorkQueue::scheduleWork):
42422
42423 2010-07-01  Antti Koivisto  <koivisto@iki.fi>
42424
42425         Reviewed by Kenneth Rohde Christiansen.
42426
42427         [Qt] Initial WebKit2 implementation
42428         https://bugs.webkit.org/show_bug.cgi?id=40233
42429         
42430         Implement RunLoop for Qt. Not built yet.
42431
42432         * Platform/RunLoop.h:
42433         * Platform/qt: Added.
42434         * Platform/qt/RunLoopQt.cpp: Added.
42435         (RunLoop::TimerObject::TimerObject):
42436         (RunLoop::TimerObject::performWork):
42437         (RunLoop::TimerObject::wakeUp):
42438         (RunLoop::TimerObject::timerEvent):
42439         (RunLoop::run):
42440         (RunLoop::stop):
42441         (RunLoop::RunLoop):
42442         (RunLoop::~RunLoop):
42443         (RunLoop::wakeUp):
42444         (RunLoop::TimerBase::timerFired):
42445         (RunLoop::TimerBase::TimerBase):
42446         (RunLoop::TimerBase::~TimerBase):
42447         (RunLoop::TimerBase::start):
42448         (RunLoop::TimerBase::stop):
42449         (RunLoop::TimerBase::isActive):
42450
42451 2010-06-30  Sam Weinig  <sam@webkit.org>
42452
42453         Reviewed by Darin Adler.
42454
42455         Patch for https://bugs.webkit.org/show_bug.cgi?id=41426
42456         Add ImmutableArray class and WKArrayRef API to go with it. This will be used
42457         in a few follow up patches.
42458
42459         * Shared/ImmutableArray.cpp: Added.
42460         (WebKit::ImmutableArray::ImmutableArray):
42461         (WebKit::ImmutableArray::~ImmutableArray):
42462         * Shared/ImmutableArray.h: Added.
42463         * UIProcess/API/C/WKAPICast.h:
42464         * UIProcess/API/C/WKArray.cpp: Added.
42465         * UIProcess/API/C/WKArray.h: Added.
42466         * UIProcess/API/C/WKBase.h:
42467         * WebKit2.xcodeproj/project.pbxproj:
42468         * mac/WebKit2.exp:
42469         * win/WebKit2.vcproj:
42470
42471 2010-06-30  Anders Carlsson  <andersca@apple.com>
42472
42473         Reviewed by Adam Roben.
42474
42475         Add WebProcessProxy::send
42476         https://bugs.webkit.org/show_bug.cgi?id=41416
42477
42478         * Platform/CoreIPC/Connection.h:
42479         * UIProcess/ChunkedUpdateDrawingAreaProxy.cpp:
42480         (WebKit::ChunkedUpdateDrawingAreaProxy::setSize):
42481         (WebKit::ChunkedUpdateDrawingAreaProxy::setPageIsVisible):
42482         (WebKit::ChunkedUpdateDrawingAreaProxy::update):
42483         * UIProcess/WebContext.cpp:
42484         (WebKit::WebContext::postMessageToInjectedBundle):
42485         * UIProcess/WebPageProxy.cpp:
42486         (WebKit::WebPageProxy::initializeWebPage):
42487         (WebKit::WebPageProxy::reinitializeWebPage):
42488         (WebKit::WebPageProxy::close):
42489         (WebKit::WebPageProxy::tryClose):
42490         (WebKit::WebPageProxy::loadURL):
42491         (WebKit::WebPageProxy::stopLoading):
42492         (WebKit::WebPageProxy::reload):
42493         (WebKit::WebPageProxy::goForward):
42494         (WebKit::WebPageProxy::goBack):
42495         (WebKit::WebPageProxy::setFocused):
42496         (WebKit::WebPageProxy::setActive):
42497         (WebKit::WebPageProxy::mouseEvent):
42498         (WebKit::WebPageProxy::wheelEvent):
42499         (WebKit::WebPageProxy::keyEvent):
42500         (WebKit::WebPageProxy::receivedPolicyDecision):
42501         (WebKit::WebPageProxy::runJavaScriptInMainFrame):
42502         (WebKit::WebPageProxy::getRenderTreeExternalRepresentation):
42503         (WebKit::WebPageProxy::preferencesDidChange):
42504         * UIProcess/WebProcessProxy.cpp:
42505         (WebKit::WebProcessProxy::WebProcessProxy):
42506         (WebKit::WebProcessProxy::sendMessage):
42507         * UIProcess/WebProcessProxy.h:
42508         (WebKit::WebProcessProxy::connection):
42509         (WebKit::WebProcessProxy::send):
42510
42511 2010-06-29  Anders Carlsson  <andersca@apple.com>
42512
42513         Reviewed by Sam Weinig.
42514
42515         Add a private Message class template
42516         https://bugs.webkit.org/show_bug.cgi?id=41370
42517
42518         * Platform/CoreIPC/Connection.h:
42519         (CoreIPC::Connection::Message::Message):
42520         (CoreIPC::Connection::Message::arguments):
42521
42522 2010-06-28  John Gregg  <johnnyg@google.com>
42523
42524         Unreviewed, build fix (removing merge conflict from previous).
42525
42526         * Configurations/FeatureDefines.xcconfig:
42527
42528 2010-06-23  John Gregg  <johnnyg@google.com>
42529
42530         Reviewed by Kent Tamura.
42531
42532         add ENABLE_DIRECTORY_UPLOAD build support
42533         https://bugs.webkit.org/show_bug.cgi?id=41100
42534
42535         * Configurations/FeatureDefines.xcconfig:
42536
42537 2010-06-28  Sam Weinig  <sam@webkit.org>
42538
42539         Rubber-stamped Geoffrey Garen.
42540
42541         Add WKBundleFrameIsMainFrame to exports file.
42542
42543         * mac/WebKit2.exp:
42544
42545 2010-06-28  Sam Weinig  <sam@webkit.org>
42546
42547         Reviewed by Anders Carlsson.
42548
42549         Patch for https://bugs.webkit.org/show_bug.cgi?id=41288
42550         WebKit2: Add frame API for InjectedBundle code
42551
42552         * WebKit2.xcodeproj/project.pbxproj:
42553         * WebProcess/InjectedBundle/API/c/WKBundleFrame.cpp: Added.
42554         (WKBundleFrameIsMainFrame):
42555         (WKBundleFrameGetURL):
42556         * WebProcess/InjectedBundle/API/c/WKBundleFrame.h: Added.
42557         * WebProcess/InjectedBundle/API/c/WKBundlePage.cpp:
42558         (WKBundlePageGetMainFrame):
42559         * WebProcess/InjectedBundle/API/c/WKBundlePage.h:
42560         * WebProcess/WebPage/WebFrame.cpp:
42561         (WebKit::WebFrame::isMainFrame):
42562         (WebKit::WebFrame::url):
42563         * WebProcess/WebPage/WebFrame.h:
42564         * WebProcess/WebPage/WebPage.cpp:
42565         * WebProcess/WebPage/WebPage.h:
42566         (WebKit::WebPage::mainFrame):
42567         * mac/WebKit2.exp:
42568         * win/WebKit2.vcproj:
42569
42570 2010-06-27  Mark Rowe  <mrowe@apple.com>
42571
42572         Rubber-stamped by Maciej Stachowiak.
42573
42574         Update guards related to blocks to check whether __BLOCKS__ is defined, rather than checking its value.
42575         This matches how similar checks are performed in system headers, and avoids a compile error when __BLOCKS__
42576         is not defined.
42577
42578         * UIProcess/API/C/WKPage.cpp:
42579         * UIProcess/API/C/WKPage.h:
42580         * UIProcess/API/C/WKPagePrivate.h:
42581
42582 2010-06-26  Tony Gentilcore  <tonyg@chromium.org>
42583
42584         Reviewed by Dimitri Glazkov.
42585
42586         Add an ENABLE_WEB_TIMING option for enabling Web Timing support.
42587         https://bugs.webkit.org/show_bug.cgi?id=38924
42588
42589         * Configurations/FeatureDefines.xcconfig:
42590
42591 2010-06-25  Steve Falkenburg  <sfalken@apple.com>
42592
42593         Windows build fix.
42594
42595         * win/WebKit2.vcproj:
42596
42597 2010-06-25  Ada Chan  <adachan@apple.com>
42598
42599         Rubber-stamped by Mark Rowe.
42600
42601         Add additional include search paths relative to $(WebKitLibrariesDir) to fix a build.
42602
42603         * win/WebKit2.vcproj:
42604
42605 2010-06-25  Sam Weinig  <sam@webkit.org>
42606
42607         Reviewed by Anders Carlsson.
42608
42609         WKBundlePageRenderTreeExternalRepresentation really needs to be 
42610         WKBundlePageCopyRenderTreeExternalRepresentation so we don't have dangling
42611         pointers and adhere to naming conventions.
42612
42613         * WebProcess/InjectedBundle/API/c/WKBundlePage.cpp:
42614         (WKBundlePageCopyRenderTreeExternalRepresentation):
42615         * WebProcess/InjectedBundle/API/c/WKBundlePagePrivate.h:
42616         * mac/WebKit2.exp:
42617
42618 2010-06-24  Steve Falkenburg  <sfalken@apple.com>
42619
42620         Windows build fix.
42621
42622         * win/WebKit2.make: Added.
42623         * win/WebKit2.submit.sln: Added.
42624
42625 2010-06-24  Steve Falkenburg  <sfalken@apple.com>
42626
42627         Windows build fix.
42628
42629         * win/WebKit2WebProcess.vcproj:
42630
42631 2010-06-24  Sam Weinig  <sam@webkit.org>
42632
42633         Reviewed by Brady Eidson.
42634
42635         Add WKBundlePageRenderTreeExternalRepresentation for WebKitTestRunner.
42636
42637         * WebKit2.xcodeproj/project.pbxproj:
42638         * WebProcess/InjectedBundle/API/c/WKBundlePage.cpp:
42639         (WKBundlePageRenderTreeExternalRepresentation):
42640         * WebProcess/InjectedBundle/API/c/WKBundlePagePrivate.h: Added.
42641         * WebProcess/WebPage/WebPage.cpp:
42642         (WebKit::WebPage::renderTreeExternalRepresentation):
42643         (WebKit::WebPage::getRenderTreeExternalRepresentation):
42644         * WebProcess/WebPage/WebPage.h:
42645         * mac/WebKit2.exp:
42646         * win/WebKit2.vcproj:
42647
42648 2010-06-24  John Sullivan  <sullivan@apple.com>
42649
42650         Rubber-stamped by Ada Chan.
42651
42652         * mac/WebKit2.exp:
42653         Added _WKNavigationDataRelease and _WKNavigationDataRetain.
42654
42655 2010-06-24  John Sullivan  <sullivan@apple.com>
42656
42657         Rubber-stamped by Anders Carlsson.
42658
42659         * mac/WebKit2.exp:
42660         Added _WKPageReloadFromOrigin.
42661
42662 2010-06-24  Sam Weinig  <sam@webkit.org>
42663
42664         Reviewed by Anders Carlsson.
42665
42666         Fix for https://bugs.webkit.org/show_bug.cgi?id=41168
42667         <rdar://problem/8124605>
42668         Webkit2: Add WKPageReloadFromOrigin() to match old-WebKit functionality
42669
42670         * UIProcess/API/C/WKPage.cpp:
42671         (WKPageReload):
42672         (WKPageReloadFromOrigin):
42673         * UIProcess/API/C/WKPage.h:
42674         * UIProcess/WebPageProxy.cpp:
42675         (WebKit::WebPageProxy::reload):
42676         * UIProcess/WebPageProxy.h:
42677         * WebProcess/WebPage/WebPage.cpp:
42678         (WebKit::WebPage::reload):
42679         (WebKit::WebPage::didReceiveMessage):
42680         * WebProcess/WebPage/WebPage.h:
42681
42682 2010-06-24  Adam Roben  <aroben@apple.com>
42683
42684         Windows build fix
42685
42686         Fixes <http://webkit.org/b/41158>.
42687
42688         Reviewed by Anders Carlsson.
42689
42690         * Shared/win/UpdateChunk.cpp: Updated header name.
42691
42692         * UIProcess/Plugins/win/PluginInfoStoreWin.cpp: Added.
42693         (WebKit::PluginInfoStore::pluginDirectories):
42694         (WebKit::PluginInfoStore::pluginPathsInDirectory):
42695         (WebKit::PluginInfoStore::getPluginInfo):
42696         (WebKit::PluginInfoStore::shouldUsePlugin):
42697         Stubbed these out.
42698
42699         * win/WebKit2.vcproj: Added UIProcess/Plugins to the include path for
42700         all configurations. Added UIProcess/Plugins files to the project.
42701
42702 2010-06-23  Anders Carlsson  <andersca@apple.com>
42703
42704         Reviewed by Sam Weinig.
42705
42706         Have the UI process compute the plug-in data
42707         https://bugs.webkit.org/show_bug.cgi?id=41118
42708
42709         * Shared/CoreIPCSupport/WebProcessProxyMessageKinds.h:
42710         (WebProcessProxyMessage::):
42711         Add GetPlugin message kind.
42712
42713         * Shared/WebCoreArgumentCoders.h:
42714         Add argument coders for PluginInfo and MimeClassInfo.
42715         
42716         * UIProcess/Plugins/mac/PluginInfoStoreMac.mm:
42717         (WebKit::safeCreateCFString):
42718         (WebKit::PluginInfoStore::pluginPathsInDirectory):
42719         (WebKit::PluginInfoStore::getPluginInfo):
42720         Use safeCreateCFString.
42721         
42722         * UIProcess/WebProcessProxy.cpp:
42723         (WebKit::WebProcessProxy::getPlugins):
42724         Ask the plug-in info store for the plug-in list.
42725
42726         (WebKit::WebProcessProxy::didReceiveSyncMessage):
42727         Handle GetPlugins.
42728
42729         * UIProcess/WebProcessProxy.h:
42730         * WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
42731         (WebKit::WebFrameLoaderClient::objectContentType):
42732         Implement.
42733
42734         * WebProcess/WebCoreSupport/WebPlatformStrategies.cpp:
42735         (WebKit::WebPlatformStrategies::populatePluginCache):
42736         Send a sync GetPlugins message.
42737
42738 2010-06-23  Anders Carlsson  <andersca@apple.com>
42739
42740         Reviewed by Dan Bernstein.
42741
42742         Add ArgumentCoder for vectors.
42743
42744         * Platform/CoreIPC/ArgumentCoders.h:
42745         (CoreIPC::):
42746
42747 2010-06-23  Anders Carlsson  <andersca@apple.com>
42748
42749         Reviewed by Dan Bernstein.
42750
42751         Rename WebCoreTypeArgumentMarshalling.h to WebCoreArgumentCoders.h
42752
42753         * Shared/WebCoreArgumentCoders.h: Copied from Shared/WebCoreTypeArgumentMarshalling.h.
42754         * Shared/WebCoreTypeArgumentMarshalling.h: Removed.
42755         * Shared/WebEvent.h:
42756         * Shared/WebNavigationDataStore.h:
42757         * Shared/WebPreferencesStore.h:
42758         * Shared/mac/UpdateChunk.cpp:
42759         * UIProcess/ChunkedUpdateDrawingAreaProxy.cpp:
42760         * UIProcess/WebContext.cpp:
42761         * UIProcess/WebPageProxy.cpp:
42762         * WebKit2.xcodeproj/project.pbxproj:
42763         * WebProcess/InjectedBundle/InjectedBundle.cpp:
42764         * WebProcess/WebCoreSupport/WebChromeClient.cpp:
42765         * WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
42766         * WebProcess/WebPage/ChunkedUpdateDrawingArea.cpp:
42767         * WebProcess/WebPage/WebPage.cpp:
42768         * WebProcess/WebProcess.cpp:
42769
42770 2010-06-23  Anders Carlsson  <andersca@apple.com>
42771
42772         Reviewed by Dan Bernstein.
42773
42774         MessageIDs should always have the most significant bit zeroed out
42775         https://bugs.webkit.org/show_bug.cgi?id=41112
42776
42777         The most significant bit is used by the Mac implementation of CoreIPC, and
42778         should always be zero in MessageID objects.
42779
42780         * Platform/CoreIPC/Connection.cpp:
42781         (CoreIPC::Connection::waitForMessage):
42782         * Platform/CoreIPC/MessageID.h:
42783         (CoreIPC::MessageID::):
42784         (CoreIPC::MessageID::MessageID):
42785         (CoreIPC::MessageID::operator==):
42786         (CoreIPC::MessageID::fromInt):
42787         (CoreIPC::MessageID::isSync):
42788         (CoreIPC::MessageID::stripMostSignificantBit):
42789         * Platform/CoreIPC/mac/ConnectionMac.cpp:
42790         (CoreIPC::Connection::sendOutgoingMessage):
42791         (CoreIPC::createArgumentDecoder):
42792
42793 2010-06-23  John Sullivan  <sullivan@apple.com>
42794
42795         Rubber-stamped by Anders Carlsson.
42796
42797         * mac/WebKit2.exp:
42798         Added yet another symbol needed by Mac clients.
42799
42800 2010-06-23  John Sullivan  <sullivan@apple.com>
42801
42802         Rubber-stamped by Anders Carlsson.
42803
42804         * mac/WebKit2.exp:
42805         Added another symbol needed by Mac clients.
42806
42807 2010-06-23  Anders Carlsson  <andersca@apple.com>
42808
42809         Reviewed by Sam Weinig.
42810
42811         Rename SimpleArgumentCoder.h to ArgumentCoders.h
42812
42813         * Platform/CoreIPC/ArgumentCoders.h: Copied from Platform/CoreIPC/SimpleArgumentCoder.h.
42814         * Platform/CoreIPC/SimpleArgumentCoder.h: Removed.
42815         * Shared/WebCoreTypeArgumentMarshalling.h:
42816         * WebKit2.xcodeproj/project.pbxproj:
42817
42818 2010-06-23  Anders Carlsson  <andersca@apple.com>
42819
42820         Reviewed by Sam Weinig.
42821
42822         Add a plug-in info cache to WebPlatformStrategies
42823         https://bugs.webkit.org/show_bug.cgi?id=41087
42824
42825         This is in preparation for proxying the getPlugins call over to the UI process.
42826
42827         * WebProcess/WebCoreSupport/WebPlatformStrategies.cpp:
42828         (WebKit::WebPlatformStrategies::WebPlatformStrategies):
42829         (WebKit::WebPlatformStrategies::populatePluginCache):
42830         (WebKit::WebPlatformStrategies::refreshPlugins):
42831         (WebKit::WebPlatformStrategies::getPluginInfo):
42832         * WebProcess/WebCoreSupport/WebPlatformStrategies.h:
42833
42834 2010-06-23  Sam Weinig  <sam@webkit.org>
42835
42836         Reviewed by John Sullivan.
42837
42838         Stop silently ignoring crashes.
42839
42840         * WebProcess/Launching/mac/WebProcessMain.mm:
42841
42842 2010-06-23  Sam Weinig  <sam@webkit.org>
42843
42844         Reviewed by Anders Carlsson.
42845
42846         Add missing include to WKRetainPtr.
42847
42848         * UIProcess/API/cpp/WKRetainPtr.h:
42849
42850 2010-06-23  Sam Weinig  <sam@webkit.org>
42851
42852         Reviewed by Anders Carlsson.
42853
42854         Fix for https://bugs.webkit.org/show_bug.cgi?id=41073
42855         WebKit2: Flesh out more of the InjectedBundle client API
42856
42857         * WebProcess/InjectedBundle/API/c/WKBundle.h:
42858         * WebProcess/InjectedBundle/API/c/WKBundlePage.h:
42859         * WebProcess/InjectedBundle/InjectedBundle.cpp:
42860         (WebKit::InjectedBundle::willDestroyPage):
42861         * WebProcess/InjectedBundle/InjectedBundle.h:
42862         * WebProcess/InjectedBundle/InjectedBundlePageClient.cpp:
42863         (WebKit::InjectedBundlePageClient::didStartProvisionalLoadForFrame):
42864         (WebKit::InjectedBundlePageClient::didReceiveServerRedirectForProvisionalLoadForFrame):
42865         (WebKit::InjectedBundlePageClient::didFailProvisionalLoadWithErrorForFrame):
42866         (WebKit::InjectedBundlePageClient::didCommitLoadForFrame):
42867         (WebKit::InjectedBundlePageClient::didFinishLoadForFrame):
42868         (WebKit::InjectedBundlePageClient::didFailLoadWithErrorForFrame):
42869         (WebKit::InjectedBundlePageClient::didReceiveTitleForFrame):
42870         * WebProcess/InjectedBundle/InjectedBundlePageClient.h:
42871         * WebProcess/InjectedBundle/mac/InjectedBundleMac.cpp:
42872         (WebKit::InjectedBundle::load): Add some error logging on failure to load the bundle.
42873         * WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
42874         (WebKit::WebFrameLoaderClient::dispatchDidReceiveServerRedirectForProvisionalLoad):
42875         (WebKit::WebFrameLoaderClient::dispatchDidStartProvisionalLoad):
42876         (WebKit::WebFrameLoaderClient::dispatchDidReceiveTitle):
42877         (WebKit::WebFrameLoaderClient::dispatchDidCommitLoad):
42878         (WebKit::WebFrameLoaderClient::dispatchDidFailProvisionalLoad):
42879         (WebKit::WebFrameLoaderClient::dispatchDidFailLoad):
42880         (WebKit::WebFrameLoaderClient::dispatchDidFinishLoad):
42881         * WebProcess/WebPage/WebPage.cpp:
42882         (WebKit::WebPage::close):
42883         * mac/WebKit2.exp:
42884
42885 2010-06-22  Anders Carlsson  <andersca@apple.com>
42886
42887         Reviewed by Sam Weinig.
42888
42889         Add a SimpleArgumentCoder class template that works on POD types
42890         https://bugs.webkit.org/show_bug.cgi?id=41023
42891
42892         * Platform/CoreIPC/SimpleArgumentCoder.h: Added.
42893         (CoreIPC::SimpleArgumentCoder::encode):
42894         (CoreIPC::SimpleArgumentCoder::decode):
42895         * Shared/WebCoreTypeArgumentMarshalling.h:
42896         (CoreIPC::):
42897         * WebKit2.xcodeproj/project.pbxproj:
42898
42899 2010-06-22  Anders Carlsson  <andersca@apple.com>
42900
42901         Reviewed by Sam Weinig.
42902
42903         Use the ArgumentCoder class template for decoding
42904         https://bugs.webkit.org/show_bug.cgi?id=41021
42905
42906         * Platform/CoreIPC/ArgumentCoder.h:
42907         (CoreIPC::ArgumentCoder::decode):
42908         * Platform/CoreIPC/ArgumentDecoder.h:
42909         (CoreIPC::ArgumentDecoder::decode):
42910         * Shared/WebCoreTypeArgumentMarshalling.h:
42911         (CoreIPC::):
42912
42913 2010-06-22  Anders Carlsson  <andersca@apple.com>
42914
42915         Reviewed by Dan Bernstein.
42916
42917         Change the encode functions to be specializations of a class template
42918         https://bugs.webkit.org/show_bug.cgi?id=41015
42919
42920         * Platform/CoreIPC/ArgumentCoder.h: Added.
42921         (CoreIPC::ArgumentCoder::encode):
42922         * Platform/CoreIPC/ArgumentEncoder.h:
42923         (CoreIPC::ArgumentEncoder::encode):
42924         * Shared/WebCoreTypeArgumentMarshalling.h:
42925         (CoreIPC::):
42926         * WebKit2.xcodeproj/project.pbxproj:
42927
42928 2010-06-22  Anders Carlsson  <andersca@apple.com>
42929
42930         Reviewed by Sam Weinig.
42931
42932         Implement PluginInfoStore::shouldUsePlugin.
42933
42934         * UIProcess/Plugins/PluginInfoStore.h:
42935         * UIProcess/Plugins/mac/PluginInfoStoreMac.mm:
42936         (WebKit::PluginInfoStore::getPluginInfo):
42937         (WebKit::PluginInfoStore::shouldUsePlugin):
42938         * WebKit2.xcodeproj/project.pbxproj:
42939
42940 2010-06-21  Anders Carlsson  <andersca@apple.com>
42941
42942         Reviewed by Sam Weinig.
42943
42944         Support reading plug-in info from Carbon resources
42945         https://bugs.webkit.org/show_bug.cgi?id=40959
42946
42947         * UIProcess/Plugins/mac/PluginInfoStoreMac.mm:
42948         (WebKit::ResourceMap::ResourceMap):
42949         (WebKit::ResourceMap::~ResourceMap):
42950         (WebKit::ResourceMap::isValid):
42951         (WebKit::getStringListResource):
42952         (WebKit::getPluginInfoFromCarbonResources):
42953         (WebKit::PluginInfoStore::getPluginInfo):
42954
42955 2010-06-21  Anders Carlsson  <andersca@apple.com>
42956
42957         Build fix.
42958
42959         * UIProcess/Plugins/mac/PluginInfoStoreMac.mm:
42960         (WebKit::PluginInfoStore::getPluginInfo):
42961
42962 2010-06-21  Anders Carlsson  <andersca@apple.com>
42963
42964         Reviewed by Sam Weinig.
42965
42966         Have PluginInfoStoreMac actually get plug-in info and populate the plug-in list
42967         https://bugs.webkit.org/show_bug.cgi?id=40957
42968
42969         * UIProcess/Plugins/PluginInfoStore.cpp:
42970         (WebKit::PluginInfoStore::loadPluginsIfNecessary):
42971         (WebKit::PluginInfoStore::loadPluginsInDirectory):
42972         (WebKit::PluginInfoStore::loadPlugin):
42973         (WebKit::PluginInfoStore::getPlugins):
42974         * UIProcess/Plugins/PluginInfoStore.h:
42975         * UIProcess/Plugins/mac/PluginInfoStoreMac.mm: Added.
42976         (WebKit::PluginInfoStore::pluginDirectories):
42977         (WebKit::PluginInfoStore::pluginPathsInDirectory):
42978         (WebKit::getPluginArchitecture):
42979         (WebKit::getPluginInfoFromPropertyLists):
42980         (WebKit::PluginInfoStore::getPluginInfo):
42981         (WebKit::PluginInfoStore::shouldUsePlugin):
42982         * WebKit2.xcodeproj/project.pbxproj:
42983
42984 2010-06-21  Anders Carlsson  <andersca@apple.com>
42985
42986         Reviewed by Sam Weinig.
42987
42988         Add PluginInfoStore class
42989         https://bugs.webkit.org/show_bug.cgi?id=40949
42990
42991         * Shared/WebPreferencesStore.cpp:
42992         (WebKit::WebPreferencesStore::WebPreferencesStore):
42993         * Shared/WebPreferencesStore.h:
42994         (WebKit::WebPreferencesStore::encode):
42995         (WebKit::WebPreferencesStore::decode):
42996         Add plugInsEnabled to the preferences store.
42997
42998         * UIProcess/Plugins: Added.
42999         * UIProcess/Plugins/PluginInfoStore.cpp: Added.
43000         (WebKit::PluginInfoStore::shared):
43001         (WebKit::PluginInfoStore::PluginInfoStore):
43002         (WebKit::PluginInfoStore::refresh):
43003         (WebKit::PluginInfoStore::getPlugins):
43004         * UIProcess/Plugins/PluginInfoStore.h: Added.
43005         * UIProcess/Plugins/mac: Added.
43006         * WebKit2.xcodeproj/project.pbxproj:
43007         * WebProcess/WebCoreSupport/WebPlatformStrategies.cpp:
43008         (WebKit::WebPlatformStrategies::refreshPlugins):
43009         (WebKit::WebPlatformStrategies::getPluginInfo):
43010         * WebProcess/WebPage/WebPage.cpp:
43011         (WebKit::WebPage::WebPage):
43012
43013 2010-06-21  Simon Fraser  <simon.fraser@apple.com>
43014
43015         Reviewed by Anders Carlsson.
43016
43017         Rename DrawingAreaProxyUpdateChunk to ChunkedUpdateDrawingArea
43018         https://bugs.webkit.org/show_bug.cgi?id=40948
43019
43020         Rename UIProcess version of DrawingAreaUpdateChunk to ChunkedUpdateDrawingAreaProxy,
43021         and rename the Mac/Win versions of the various DrawingArea files too.
43022         
43023         Also rename the DrawingAreaUpdateChunkType enum to ChunkedUpdateDrawingAreaType.
43024
43025         * UIProcess/API/mac/WKView.mm:
43026         (-[WKView initWithFrame:pageNamespaceRef:]):
43027         * UIProcess/ChunkedUpdateDrawingArea.cpp: Removed.
43028         * UIProcess/ChunkedUpdateDrawingArea.h: Removed.
43029         * UIProcess/ChunkedUpdateDrawingAreaProxy.cpp: Added.
43030         (WebKit::ChunkedUpdateDrawingAreaProxy::ChunkedUpdateDrawingAreaProxy):
43031         (WebKit::ChunkedUpdateDrawingAreaProxy::~ChunkedUpdateDrawingAreaProxy):
43032         (WebKit::ChunkedUpdateDrawingAreaProxy::paint):
43033         (WebKit::ChunkedUpdateDrawingAreaProxy::setSize):
43034         (WebKit::ChunkedUpdateDrawingAreaProxy::setPageIsVisible):
43035         (WebKit::ChunkedUpdateDrawingAreaProxy::didSetSize):
43036         (WebKit::ChunkedUpdateDrawingAreaProxy::update):
43037         (WebKit::ChunkedUpdateDrawingAreaProxy::didReceiveMessage):
43038         * UIProcess/ChunkedUpdateDrawingAreaProxy.h: Added.
43039         (WebKit::ChunkedUpdateDrawingAreaProxy::encode):
43040         * UIProcess/DrawingAreaProxy.h:
43041         (WebKit::DrawingAreaProxy::):
43042         * UIProcess/mac/ChunkedUpdateDrawingAreaProxyMac.mm: Added.
43043         (WebKit::ChunkedUpdateDrawingAreaProxy::page):
43044         (WebKit::ChunkedUpdateDrawingAreaProxy::ensureBackingStore):
43045         (WebKit::ChunkedUpdateDrawingAreaProxy::invalidateBackingStore):
43046         (WebKit::ChunkedUpdateDrawingAreaProxy::platformPaint):
43047         (WebKit::ChunkedUpdateDrawingAreaProxy::drawUpdateChunkIntoBackingStore):
43048         * UIProcess/mac/DrawingAreaProxyUpdateChunkMac.mm: Removed.
43049         * UIProcess/win/ChunkedUpdateDrawingAreaProxyWin.cpp: Added.
43050         (WebKit::ChunkedUpdateDrawingAreaProxy::page):
43051         (WebKit::ChunkedUpdateDrawingAreaProxy::ensureBackingStore):
43052         (WebKit::ChunkedUpdateDrawingAreaProxy::invalidateBackingStore):
43053         (WebKit::ChunkedUpdateDrawingAreaProxy::platformPaint):
43054         (WebKit::ChunkedUpdateDrawingAreaProxy::drawUpdateChunkIntoBackingStore):
43055         * UIProcess/win/DrawingAreaProxyUpdateChunkWin.cpp: Removed.
43056         * UIProcess/win/WebView.cpp:
43057         (WebKit::WebView::WebView):
43058         * WebKit2.xcodeproj/project.pbxproj:
43059         * WebProcess/WebPage/ChunkedUpdateDrawingArea.cpp: Added.
43060         (WebKit::ChunkedUpdateDrawingArea::ChunkedUpdateDrawingArea):
43061         (WebKit::ChunkedUpdateDrawingArea::~ChunkedUpdateDrawingArea):
43062         (WebKit::ChunkedUpdateDrawingArea::invalidateWindow):
43063         (WebKit::ChunkedUpdateDrawingArea::invalidateContentsAndWindow):
43064         (WebKit::ChunkedUpdateDrawingArea::invalidateContentsForSlowScroll):
43065         (WebKit::ChunkedUpdateDrawingArea::scroll):
43066         (WebKit::ChunkedUpdateDrawingArea::setNeedsDisplay):
43067         (WebKit::ChunkedUpdateDrawingArea::display):
43068         (WebKit::ChunkedUpdateDrawingArea::scheduleDisplay):
43069         (WebKit::ChunkedUpdateDrawingArea::setSize):
43070         (WebKit::ChunkedUpdateDrawingArea::suspendPainting):
43071         (WebKit::ChunkedUpdateDrawingArea::resumePainting):
43072         (WebKit::ChunkedUpdateDrawingArea::didUpdate):
43073         (WebKit::ChunkedUpdateDrawingArea::didReceiveMessage):
43074         * WebProcess/WebPage/ChunkedUpdateDrawingArea.h: Added.
43075         * WebProcess/WebPage/DrawingArea.cpp:
43076         (WebKit::DrawingArea::create):
43077         * WebProcess/WebPage/DrawingArea.h:
43078         (WebKit::DrawingArea::):
43079         * WebProcess/WebPage/DrawingAreaUpdateChunk.cpp: Removed.
43080         * WebProcess/WebPage/DrawingAreaUpdateChunk.h: Removed.
43081         * WebProcess/WebPage/mac/ChunkedUpdateDrawingAreaMac.cpp: Added.
43082         (WebKit::ChunkedUpdateDrawingArea::paintIntoUpdateChunk):
43083         * WebProcess/WebPage/mac/DrawingAreaUpdateChunkMac.cpp: Removed.
43084         * WebProcess/WebPage/win/ChunkedUpdateDrawingAreaWin.cpp: Added.
43085         (WebKit::ChunkedUpdateDrawingArea::paintIntoUpdateChunk):
43086         * WebProcess/WebPage/win/DrawingAreaUpdateChunkWin.cpp: Removed.
43087         * win/WebKit2.vcproj:
43088
43089 2010-06-21  Simon Fraser  <simon.fraser@apple.com>
43090
43091         Reviewed by Anders Carlsson.
43092
43093         Rename DrawingAreaProxyUpdateChunk to ChunkedUpdateDrawingArea
43094         https://bugs.webkit.org/show_bug.cgi?id=40948
43095         
43096         Rename DrawingAreaUpdateChunk to ChunkedUpdateDrawingArea.
43097
43098         * UIProcess/API/mac/WKView.mm:
43099         (-[WKView initWithFrame:pageNamespaceRef:]):
43100         * UIProcess/ChunkedUpdateDrawingArea.cpp: Added.
43101         (WebKit::ChunkedUpdateDrawingArea::ChunkedUpdateDrawingArea):
43102         (WebKit::ChunkedUpdateDrawingArea::~ChunkedUpdateDrawingArea):
43103         (WebKit::ChunkedUpdateDrawingArea::paint):
43104         (WebKit::ChunkedUpdateDrawingArea::setSize):
43105         (WebKit::ChunkedUpdateDrawingArea::setPageIsVisible):
43106         (WebKit::ChunkedUpdateDrawingArea::didSetSize):
43107         (WebKit::ChunkedUpdateDrawingArea::update):
43108         (WebKit::ChunkedUpdateDrawingArea::didReceiveMessage):
43109         * UIProcess/ChunkedUpdateDrawingArea.h: Added.
43110         (WebKit::ChunkedUpdateDrawingArea::encode):
43111         * UIProcess/DrawingAreaProxyUpdateChunk.cpp: Removed.
43112         * UIProcess/DrawingAreaProxyUpdateChunk.h: Removed.
43113         * UIProcess/mac/DrawingAreaProxyUpdateChunkMac.mm:
43114         (WebKit::ChunkedUpdateDrawingArea::page):
43115         (WebKit::ChunkedUpdateDrawingArea::ensureBackingStore):
43116         (WebKit::ChunkedUpdateDrawingArea::invalidateBackingStore):
43117         (WebKit::ChunkedUpdateDrawingArea::platformPaint):
43118         (WebKit::ChunkedUpdateDrawingArea::drawUpdateChunkIntoBackingStore):
43119         * UIProcess/win/DrawingAreaProxyUpdateChunkWin.cpp:
43120         (WebKit::ChunkedUpdateDrawingArea::page):
43121         (WebKit::ChunkedUpdateDrawingArea::ensureBackingStore):
43122         (WebKit::ChunkedUpdateDrawingArea::invalidateBackingStore):
43123         (WebKit::ChunkedUpdateDrawingArea::platformPaint):
43124         (WebKit::ChunkedUpdateDrawingArea::drawUpdateChunkIntoBackingStore):
43125         * UIProcess/win/WebView.cpp:
43126         (WebKit::WebView::WebView):
43127         * WebKit2.xcodeproj/project.pbxproj:
43128         * win/WebKit2.vcproj:
43129
43130 2010-06-21  Sam Weinig  <sam@webkit.org>
43131
43132         Reviewed by Anders Carlsson.
43133
43134         Patch for https://bugs.webkit.org/show_bug.cgi?id=40940
43135         Add message passing support to the WebKit2 API.
43136
43137         Adds message passing for both InjectedBundle -> WebContext
43138         and WebContext -> InjectedBundle.
43139
43140         * Shared/CoreIPCSupport/WebProcessMessageKinds.h:
43141         (WebProcessMessage::):
43142         * Shared/CoreIPCSupport/WebProcessProxyMessageKinds.h: Added.
43143         (WebProcessProxyMessage::):
43144         (CoreIPC::):
43145         * UIProcess/API/C/WKContext.cpp:
43146         (WKContextSetInjectedBundleClient):
43147         (WKContextPostMessageToInjectedBundle):
43148         * UIProcess/API/C/WKContext.h:
43149         * UIProcess/WebContext.cpp:
43150         (WebKit::WebContext::initializeInjectedBundleClient):
43151         (WebKit::WebContext::forwardMessageToWebContext):
43152         (WebKit::WebContext::postMessageToInjectedBundle):
43153         * UIProcess/WebContext.h:
43154         * UIProcess/WebContextInjectedBundleClient.cpp: Added.
43155         (WebKit::WebContextInjectedBundleClient::WebContextInjectedBundleClient):
43156         (WebKit::WebContextInjectedBundleClient::initialize):
43157         (WebKit::WebContextInjectedBundleClient::didRecieveMessageFromInjectedBundle):
43158         * UIProcess/WebContextInjectedBundleClient.h: Added.
43159         * UIProcess/WebProcessManager.cpp:
43160         (WebKit::WebProcessManager::processDidClose):
43161         * UIProcess/WebProcessProxy.cpp:
43162         (WebKit::WebProcessProxy::didReceiveInjectedBundleMessage):
43163         (WebKit::WebProcessProxy::didReceiveMessage):
43164         * UIProcess/WebProcessProxy.h:
43165         * WebKit2.xcodeproj/project.pbxproj:
43166         * WebProcess/InjectedBundle/API/c/WKBundle.cpp:
43167         (WKBundlePostMessage):
43168         * WebProcess/InjectedBundle/API/c/WKBundle.h:
43169         * WebProcess/InjectedBundle/InjectedBundle.cpp:
43170         (WebKit::InjectedBundle::postMessage):
43171         (WebKit::InjectedBundle::didCreatePage):
43172         (WebKit::InjectedBundle::didRecieveMessage):
43173         * WebProcess/InjectedBundle/InjectedBundle.h:
43174         * WebProcess/WebProcess.cpp:
43175         (WebKit::WebProcess::loadInjectedBundle):
43176         (WebKit::WebProcess::forwardMessageToInjectedBundle):
43177         (WebKit::WebProcess::didReceiveMessage):
43178         * WebProcess/WebProcess.h:
43179         * mac/WebKit2.exp:
43180         * win/WebKit2.vcproj:
43181
43182 2010-06-21  Anders Carlsson  <andersca@apple.com>
43183
43184         Reviewed by Sam Weinig.
43185
43186         Make WebKit2 build with clang++
43187
43188         * Platform/CoreIPC/Connection.h:
43189         * UIProcess/API/mac/WKView.mm:
43190         (-[WKView keyUp:]):
43191         (-[WKView keyDown:]):
43192         * UIProcess/WebHistoryClient.h:
43193         * UIProcess/WebPageProxy.h:
43194         * WebProcess/WebPage/WebPage.h:
43195         * WebProcess/WebProcess.h:
43196
43197 2010-06-21  Satish Sampath  <satish@chromium.org>
43198
43199         Reviewed by Steve Block.
43200
43201         Speech Input Patch 0: Added compilation argument to conditionally compile pending patches.
43202
43203         Speech Input Patch 0: Added compilation argument to conditionally compile pending patches.
43204         https://bugs.webkit.org/show_bug.cgi?id=40878
43205
43206         * Configurations/FeatureDefines.xcconfig:
43207
43208 2010-06-20  Jessie Berlin  <jberlin@apple.com>
43209
43210         Reviewed by Dan Bernstein.
43211
43212         Add #if USE(PLATFORM_STRATEGIES) where WebPlatformStrategies is being used.
43213
43214         * WebProcess/WebCoreSupport/WebPlatformStrategies.cpp:
43215         * WebProcess/WebCoreSupport/WebPlatformStrategies.h:
43216         * WebProcess/WebProcess.cpp:
43217         (WebKit::WebProcess::WebProcess):
43218         Only initialize the web platform strategies if PLATFORM_STRATEGIES is being used.
43219
43220 2010-06-19  Sam Weinig  <sam@webkit.org>
43221
43222         Reviewed by Anders Carlsson.
43223
43224         Fix for https://bugs.webkit.org/show_bug.cgi?id=40882
43225         Add ability to have a WebProcess per WebContext.
43226
43227         - Move to a one-to-one correspondence of WebContexts to WebProcessProxies.
43228         - Add explicit shared contexts for general use.
43229         - Only non-shared contexts can use injected bundles.
43230
43231         * UIProcess/API/C/WKContext.cpp:
43232         (WKContextCreate):
43233         (WKContextCreateWithInjectedBundlePath):
43234         (WKContextGetSharedProcessContext):
43235         (WKContextGetSharedThreadContext):
43236         * UIProcess/API/C/WKContext.h:
43237         * UIProcess/API/C/WKContextPrivate.h:
43238         Change API for WKContext to no longer take a WKProcessModel type and instead
43239         have explicit Create/Get functions for the different kind of contexts. Added
43240         two shared contexts, one threaded, one process, and made the threaded on private
43241         for now.
43242
43243         * UIProcess/API/mac/WKView.mm:
43244         (-[WKView initWithFrame:]):
43245         Make WKViews that don't have an explicit context use the shared process
43246         context by default.
43247
43248         * UIProcess/Launcher/WebProcessLauncher.h:
43249         * UIProcess/Launcher/mac/WebProcessLauncher.mm:
43250         (WebKit::launchWebProcess):
43251         * UIProcess/Launcher/win/WebProcessLauncher.cpp:
43252         (WebKit::launchWebProcess):
43253         Use a boolean argument to note whether we are using a thread or a process
43254         instead of using the process model enum.
43255
43256         * UIProcess/ProcessModel.h:
43257         (WebKit::):
43258         Convert to using explicit Shared modifier for shared contexts.
43259
43260         * UIProcess/WebContext.cpp:
43261         (WebKit::WebContext::sharedProcessContext):
43262         (WebKit::WebContext::sharedThreadContext):
43263         (WebKit::WebContext::ensureWebProcess):
43264         (WebKit::WebContext::createWebPage):
43265         (WebKit::WebContext::reviveIfNecessary):
43266         * UIProcess/WebContext.h:
43267         (WebKit::WebContext::create):
43268         (WebKit::WebContext::process):
43269         * UIProcess/WebPageNamespace.cpp:
43270         (WebKit::WebPageNamespace::createWebPage):
43271         (WebKit::WebPageNamespace::preferencesDidChange):
43272         (WebKit::WebPageNamespace::getStatistics):
43273         * UIProcess/WebPageNamespace.h:
43274         (WebKit::WebPageNamespace::process):
43275         (WebKit::WebPageNamespace::reviveIfNecessary):
43276         Move WebProcessProxy creation logic up into WebContext.
43277
43278         * UIProcess/WebProcessManager.cpp:
43279         (WebKit::WebProcessManager::getWebProcess):
43280         (WebKit::WebProcessManager::processDidClose):
43281         * UIProcess/WebProcessManager.h:
43282         Keep a map of WebContexts to WebProcessProxies in addition to the two
43283         shared processes.
43284
43285         * UIProcess/WebProcessProxy.cpp:
43286         (WebKit::WebProcessProxy::create):
43287         (WebKit::WebProcessProxy::WebProcessProxy):
43288         (WebKit::WebProcessProxy::connect):
43289         (WebKit::WebProcessProxy::didClose):
43290         * UIProcess/WebProcessProxy.h:
43291         Store a WebContext instead of the process model.
43292
43293         * mac/WebKit2.exp:
43294         Add new functions.
43295
43296 2010-06-18  Anders Carlsson  <andersca@apple.com>
43297
43298         Reviewed by Sam Weinig.
43299
43300         Make WebCoreSystemInterface.h a C++ only header
43301         https://bugs.webkit.org/show_bug.cgi?id=40867
43302
43303         * WebKit2.xcodeproj/project.pbxproj:
43304         * WebProcess/WebCoreSupport/mac/WebSystemInterface.h:
43305         * WebProcess/WebCoreSupport/mac/WebSystemInterface.m: Removed.
43306         * WebProcess/WebCoreSupport/mac/WebSystemInterface.mm: Copied from WebKit2/WebProcess/WebCoreSupport/mac/WebSystemInterface.m.
43307         * mac/WebKit2.exp:
43308
43309 2010-06-18  Anders Carlsson  <andersca@apple.com>
43310
43311         Reviewed by Sam Weinig.
43312
43313         Add platform strategies for WebKit2.
43314         https://bugs.webkit.org/show_bug.cgi?id=40863
43315
43316         * WebKit2.xcodeproj/project.pbxproj:
43317         * WebProcess/WebCoreSupport/WebPlatformStrategies.cpp: Added.
43318         (WebKit::WebPlatformStrategies::initialize):
43319         (WebKit::WebPlatformStrategies::WebPlatformStrategies):
43320         (WebKit::WebPlatformStrategies::createPluginStrategy):
43321         (WebKit::WebPlatformStrategies::refreshPlugins):
43322         (WebKit::WebPlatformStrategies::getPluginInfo):
43323         * WebProcess/WebCoreSupport/WebPlatformStrategies.h: Added.
43324         * WebProcess/WebProcess.cpp:
43325         (WebKit::WebProcess::WebProcess):
43326
43327 2010-06-18  Sam Weinig  <weinig@apple.com>
43328
43329         Rolling http://trac.webkit.org/changeset/61297 back in.
43330
43331         * WebKit2.xcodeproj/project.pbxproj:
43332         * WebProcess/InjectedBundle/API/c/WKBundlePage.cpp: Added.
43333         (WKBundlePageSetClient):
43334         (WKBundlePageGetMainFrameURL):
43335         * WebProcess/InjectedBundle/API/c/WKBundlePage.h: Added.
43336         * WebProcess/InjectedBundle/InjectedBundlePageClient.cpp: Added.
43337         (WebKit::InjectedBundlePageClient::InjectedBundlePageClient):
43338         (WebKit::InjectedBundlePageClient::initialize):
43339         (WebKit::InjectedBundlePageClient::didClearWindowObjectForFrame):
43340         * WebProcess/InjectedBundle/InjectedBundlePageClient.h: Added.
43341         * WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
43342         (WebKit::WebFrameLoaderClient::dispatchDidClearWindowObjectInWorld):
43343         * WebProcess/WebPage/WebPage.cpp:
43344         (WebKit::WebPage::initializeInjectedBundleClient):
43345         (WebKit::WebPage::mainFrameURL):
43346         * WebProcess/WebPage/WebPage.h:
43347         (WebKit::WebPage::injectedBundleClient):
43348         * mac/WebKit2.exp:
43349         * win/WebKit2.vcproj:
43350
43351 2010-06-17  Anders Carlsson  <andersca@apple.com>
43352
43353         Reviewed by Sam Weinig.
43354
43355         Fix a race condition during startup where we would never send the InitializeConnection message to the server.
43356
43357         * Platform/CoreIPC/mac/ConnectionMac.cpp:
43358         (CoreIPC::Connection::open):
43359
43360 2010-06-17  Ada Chan  <adachan@apple.com>
43361
43362         Rolling out http://trac.webkit.org/changeset/61297 due to build errors.
43363
43364         * WebKit2.xcodeproj/project.pbxproj:
43365         * WebProcess/InjectedBundle/API/c/WKBundlePage.cpp: Removed.
43366         * WebProcess/InjectedBundle/API/c/WKBundlePage.h: Removed.
43367         * WebProcess/InjectedBundle/InjectedBundlePageClient.cpp: Removed.
43368         * WebProcess/InjectedBundle/InjectedBundlePageClient.h: Removed.
43369         * WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
43370         (WebKit::WebFrameLoaderClient::dispatchDidClearWindowObjectInWorld):
43371         * WebProcess/WebPage/WebPage.cpp:
43372         * WebProcess/WebPage/WebPage.h:
43373         * mac/WebKit2.exp:
43374         * win/WebKit2.vcproj:
43375
43376 2010-06-15  Sam Weinig  <sam@webkit.org>
43377
43378         Reviewed by Anders Carlsson.
43379
43380         Fix for <rdar://problem/8010805>
43381         Assertion failure ("mainThreadPthread") in isMainThread() mousing over cnn.com in Mini Browser
43382
43383         Don't use WebCore::String::operator NSString*() from the UIProcess, since it uses
43384         StringImpl::createCFString() which expects to be called from WebCore's main thread.
43385
43386         * UIProcess/API/mac/PageClientImpl.h:
43387         * UIProcess/API/mac/PageClientImpl.mm:
43388         (WebKit::nsStringFromWebCoreString):
43389         (WebKit::PageClientImpl::toolTipChanged):
43390         * UIProcess/API/mac/WKView.mm:
43391         (-[WKView view:stringForToolTip:point:userData:]):
43392
43393 2010-06-15  Sam Weinig  <sam@webkit.org>
43394
43395         Reviewed by Anders Carlsson.
43396
43397         Fix for https://bugs.webkit.org/show_bug.cgi?id=40630
43398         WebKit2: Add mechanism to inject code into the WebProcess on startup
43399
43400         Add initial InjectedBundle support.
43401
43402         * Shared/CoreIPCSupport/WebProcessMessageKinds.h:
43403         (WebProcessMessage::):
43404         Add new LoadInjectedBundle message kind.
43405
43406         * UIProcess/API/C/WKContext.cpp:
43407         (toWK):
43408         (WKContextCreate):
43409         (WKContextCreateWithInjectedBundlePath):
43410         * UIProcess/API/C/WKContext.h:
43411         Rename WKContextCreateWithProcessModel to WKContextCreate and add
43412         WKContextCreateWithInjectedBundlePath for creating a context with
43413         a bundle.
43414
43415         * UIProcess/WebContext.cpp:
43416         (WebKit::WebContext::WebContext):
43417         * UIProcess/WebContext.h:
43418         (WebKit::WebContext::create):
43419         (WebKit::WebContext::processModel):
43420         (WebKit::WebContext::bundlePath):
43421         * UIProcess/WebPageNamespace.cpp:
43422         (WebKit::WebPageNamespace::ensureWebProcess):
43423         (WebKit::WebPageNamespace::reviveIfNecessary):
43424         * UIProcess/WebProcessManager.cpp:
43425         (WebKit::WebProcessManager::getWebProcess):
43426         * UIProcess/WebProcessManager.h:
43427         * UIProcess/WebProcessProxy.cpp:
43428         (WebKit::WebProcessProxy::create):
43429         (WebKit::WebProcessProxy::WebProcessProxy):
43430         * UIProcess/WebProcessProxy.h:
43431         Thread the bundle path through process creation.
43432
43433         * WebProcess/InjectedBundle: Added.
43434         * WebProcess/InjectedBundle/API: Added.
43435         * WebProcess/InjectedBundle/API/c: Added.
43436         * WebProcess/InjectedBundle/API/c/WKBundle.cpp: Added.
43437         (WKBundleSetClient):
43438         * WebProcess/InjectedBundle/API/c/WKBundle.h: Added.
43439         * WebProcess/InjectedBundle/API/c/WKBundleAPICast.h: Added.
43440         (WebKit::):
43441         (toWK):
43442         (toRef):
43443         * WebProcess/InjectedBundle/API/c/WKBundleBase.h: Added.
43444         * WebProcess/InjectedBundle/API/c/WKBundleInitialize.h: Added.
43445         * WebProcess/InjectedBundle/InjectedBundle.cpp: Added.
43446         (WebKit::InjectedBundle::InjectedBundle):
43447         (WebKit::InjectedBundle::~InjectedBundle):
43448         (WebKit::InjectedBundle::initializeClient):
43449         (WebKit::InjectedBundle::didCreatePage):
43450         * WebProcess/InjectedBundle/InjectedBundle.h: Added.
43451         (WebKit::InjectedBundle::create):
43452         Add bundle boilerplate.
43453
43454         * WebProcess/InjectedBundle/mac: Added.
43455         * WebProcess/InjectedBundle/mac/InjectedBundleMac.cpp: Added.
43456         (WebKit::InjectedBundle::load):
43457         Load the InjectedBundle using CFBundle.
43458
43459         * WebProcess/InjectedBundle/win: Added.
43460         * WebProcess/InjectedBundle/win/InjectedBundleWin.cpp: Added.
43461         (WebKit::pathGetFileName):
43462         (WebKit::directoryName):
43463         (WebKit::InjectedBundle::load):
43464         Load the InjectedBundle using HMODULE.
43465
43466         * WebProcess/WebPage/WebPage.cpp:
43467         (WebKit::WebPage::WebPage):
43468         Add initial bundle callback for page creation. More to come.
43469
43470         * WebProcess/WebProcess.cpp:
43471         (WebKit::WebProcess::loadInjectedBundle):
43472         (WebKit::WebProcess::didReceiveMessage):
43473         * WebProcess/WebProcess.h:
43474         (WebKit::WebProcess::injectedBundle):
43475         Load the InjectedBundle on LoadInjectedBundle message.
43476
43477         * WebKit2.xcodeproj/project.pbxproj:
43478         * mac/WebKit2.exp:
43479         * win/WebKit2.vcproj:
43480         * win/WebKit2Generated.make:
43481         Add the new files.
43482
43483 2010-06-15  Darin Adler  <darin@apple.com>
43484
43485         Reviewed by Adam Barth.
43486
43487         Move functions out of Frame class that were marked "move to Chrome"
43488         https://bugs.webkit.org/show_bug.cgi?id=39636
43489
43490         * WebProcess/WebPage/WebPage.cpp:
43491         (WebKit::WebPage::tryClose): Call shouldClose on FrameLoader instead of
43492         going through Frame.
43493
43494 2010-06-14  Steve Falkenburg  <sfalken@apple.com>
43495
43496         Windows build fix.
43497         Reorder build event to fix cygwin path issue.
43498
43499         * win/WebKit2Generated.vcproj:
43500
43501 2010-06-14  Steve Falkenburg  <sfalken@apple.com>
43502
43503         Windows build fix.
43504         Add build failure stopping code.
43505
43506         * win/WebKit2WebProcess.vcproj:
43507
43508 2010-06-14  Steve Falkenburg  <sfalken@apple.com>
43509
43510         Windows build fix.
43511         Add build failure stopping code.
43512
43513         * win/WebKit2Generated.vcproj:
43514
43515 2010-06-14  Ada Chan  <adachan@apple.com>
43516
43517         Rubber-stamped by Steve Falkenburg.
43518
43519         - Fix the release configuration to use release.vsprops.
43520         - Add Debug_Internal and Debug_All configurations to the WebKit2WebProcess project.
43521         - Fix launchWebProcess() to get the right path to the WebKit2WebProcess executable.
43522
43523         * UIProcess/Launcher/win/WebProcessLauncher.cpp:
43524         (WebKit::launchWebProcess):
43525         * win/WebKit2WebProcess.vcproj:
43526
43527 2010-06-12  Ada Chan  <adachan@apple.com>
43528
43529         Unreviewed fix for a linking error with WebKit2LocalizableStringsBundle for Windows release build.
43530
43531         * WebProcess/win/WebLocalizableStrings.cpp:
43532         (findCachedString):
43533
43534 2010-06-11  Sam Weinig  <sam@webkit.org>
43535
43536         Reviewed by Mark Rowe.
43537
43538         Use -Os for optimized builds instead of -02. -02 wasn't giving the 
43539         right trade off at this time.
43540
43541         * Configurations/Base.xcconfig:
43542
43543 2010-06-11  Sam Weinig  <sam@webkit.org>
43544
43545         Reviewed by Anders Carlsson.
43546
43547         Move WKRetain and WKRelease overloaded functions out of WKRetainPtr
43548         and into the files of the type they overload (eg, WKRetain(WKFrameRef 
43549         moves to WKFrame.h)).
43550
43551         * UIProcess/API/C/WKBase.h:
43552         * UIProcess/API/C/WKContext.h:
43553         * UIProcess/API/C/WKFrame.h:
43554         * UIProcess/API/C/WKFramePolicyListener.h:
43555         * UIProcess/API/C/WKNavigationData.h:
43556         * UIProcess/API/C/WKPage.h:
43557         * UIProcess/API/C/WKPageNamespace.h:
43558         * UIProcess/API/C/WKPreferences.h:
43559         * UIProcess/API/C/WKString.h:
43560         * UIProcess/API/C/WKURL.h:
43561         * UIProcess/API/cpp/WKRetainPtr.h:
43562         * UIProcess/API/win/WKView.h:
43563
43564 2010-06-10  John Sullivan  <sullivan@apple.com>
43565
43566         Reviewed by Dan Bernstein.
43567
43568         * mac/WebKit2.exp:
43569         Added another symbol needed by Mac clients.
43570
43571 2010-06-09  Ilya Tikhonovsky  <loislo@chromium.org>
43572
43573         Unreviewed build fix.
43574
43575         * WebProcess/WebCoreSupport/WebInspectorClient.h:
43576
43577 2010-06-09  Ilya Tikhonovsky  <loislo@chromium.org>
43578
43579         Unreviewed build fix.
43580
43581         WebInspector: On the way to Remote Debugging we want to transfer dom/timeline/etc
43582         data from inspected page to WebInspector as JSON string via http. The native
43583         serialization to JSON string is supported by InspectorValue's classes. This patch
43584         has the implementation of sendMessageToFrontend function. WebKit version of it still
43585         uses ScriptFunctionCall and will be switched to another transport a little bit later.
43586         https://bugs.webkit.org/show_bug.cgi?id=40134
43587
43588         * WebProcess/WebCoreSupport/WebInspectorClient.cpp:
43589         (WebKit::WebInspectorClient::sendMessageToFrontend):
43590         * WebProcess/WebCoreSupport/WebInspectorClient.h:
43591
43592 2010-06-08  Anders Carlsson  <andersca@apple.com>
43593
43594         Reviewed by John Sullivan.
43595
43596         <rdar://problem/8071268> WebKit2 URLs are displayed as 1-character strings in log statements
43597
43598         Create a CFString from our WebCore string and then create the CFURL from the CFString.
43599
43600         * UIProcess/API/C/cf/WKURLCF.cpp:
43601         (WKURLCopyCFURL):
43602
43603 2010-06-08  John Sullivan  <sullivan@apple.com>
43604
43605         Rubber-stamped by Anders Carlsson.
43606
43607         * mac/WebKit2.exp:
43608         Added _WKPageGetEstimatedProgress and _WKFrameGetPage
43609
43610 2010-06-08  Anders Carlsson  <andersca@apple.com>
43611
43612         Reviewed by John Sullivan.
43613
43614         Would like a way to query WKPageRef for the current progress value
43615         https://bugs.webkit.org/show_bug.cgi?id=40310
43616         <rdar://problem/8071299>
43617
43618         Add WKPageGetEstimatedProgress. Remove the progress parameter from the didChangeProgress
43619         loader client callback function.
43620
43621         * UIProcess/API/C/WKPage.cpp:
43622         (WKPageGetEstimatedProgress):
43623         * UIProcess/API/C/WKPage.h:
43624         * UIProcess/WebLoaderClient.cpp:
43625         (WebKit::WebLoaderClient::didChangeProgress):
43626         * UIProcess/WebLoaderClient.h:
43627         * UIProcess/WebPageProxy.cpp:
43628         (WebKit::WebPageProxy::WebPageProxy):
43629         (WebKit::WebPageProxy::close):
43630         (WebKit::WebPageProxy::didStartProgress):
43631         (WebKit::WebPageProxy::didChangeProgress):
43632         (WebKit::WebPageProxy::didFinishProgress):
43633         (WebKit::WebPageProxy::processDidExit):
43634         * UIProcess/WebPageProxy.h:
43635         (WebKit::WebPageProxy::estimatedProgress):
43636
43637 2010-06-08  Anders Carlsson  <andersca@apple.com>
43638
43639         Reviewed by John Sullivan.
43640
43641         Would like a way to tell which WKPageRef a WKFrameRef is part of
43642         https://bugs.webkit.org/show_bug.cgi?id=40308
43643         <rdar://problem/8071251>
43644
43645         Add and implement WKFrameGetPage.
43646
43647         * UIProcess/API/C/WKFrame.cpp:
43648         (WKFrameGetPage):
43649         * UIProcess/API/C/WKFrame.h:
43650         * UIProcess/WebFrameProxy.h:
43651         (WebKit::WebFrameProxy::page):
43652
43653 2010-06-08  John Sullivan  <sullivan@apple.com>
43654
43655         Rubber-stamped by Mark Rowe.
43656
43657         * mac/WebKit2.exp:
43658         Added a few more symbols needed by Mac clients.
43659
43660 2010-06-08  MORITA Hajime  <morrita@google.com>
43661
43662         Unreviewed. An attempt to fix test break.
43663
43664         * Configurations/FeatureDefines.xcconfig:
43665
43666 2010-06-06  MORITA Hajime  <morrita@google.com>
43667
43668         Unreviewd, follow up to r60820
43669
43670         https://bugs.webkit.org/show_bug.cgi?id=40219
43671         [Mac] ENABLE_METER_TAG should be enabled
43672         
43673         * Configurations/FeatureDefines.xcconfig:
43674
43675 2010-06-05  Mark Rowe  <mrowe@apple.com>
43676
43677         Rubber-stamped by Dan Bernstein.
43678
43679         <rdar://problem/8063622> Failure to launch WebProcess.app when framework is outside of the build directory
43680
43681         * Configurations/WebProcess.xcconfig:
43682
43683 2010-06-04  John Sullivan  <sullivan@apple.com>
43684
43685         Rubber-stamped by Ada Chan.
43686
43687         Added a couple of symbols needed to start using WKFrameRefs in Mac clients.
43688
43689         * mac/WebKit2.exp:
43690         Added _WKFrameRelease and _WKFrameRetain.
43691
43692 2010-06-04  Ada Chan  <adachan@apple.com>
43693
43694         Reviewed by Anders Carlsson.
43695
43696         http://bugs.webkit.org/show_bug.cgi?id=40186
43697         
43698         Need to close WebPageProxy when the WebView is destroyed.
43699         Also, WebPageProxy shouldn't hold an OwnPtr to the PageClient, which is the WebView on Windows.
43700
43701         * UIProcess/WebPageProxy.cpp:
43702         (WebKit::WebPageProxy::WebPageProxy):
43703         (WebKit::WebPageProxy::setPageClient):
43704         * UIProcess/WebPageProxy.h:
43705         * UIProcess/win/WebView.cpp:
43706         (WebKit::WebView::close):
43707
43708 2010-06-03  Ada Chan  <adachan@apple.com>
43709
43710         Reviewed by Adam Roben.
43711
43712         https://bugs.webkit.org/show_bug.cgi?id=40152
43713         
43714         Need to remove the WebView from WindowMessageBroadcaster's listeners list when the WebView is destroyed.
43715
43716         * UIProcess/API/win/WKView.cpp:
43717         (WKViewSetHostWindow): Expose API to change the host window of a WKView.
43718         (WKViewWindowAncestryDidChange): Expose API to allow clients to notify WebKit when a WKView's window ancestry has changed.
43719         * UIProcess/API/win/WKView.h:
43720         * UIProcess/win/WebView.cpp:
43721         (WebKit::WebView::wndProc): Set the WebView's host window to 0 when it's destroyed.  setHostWindow() will call 
43722         windowAncestryDidChange(), which will remove this WebView from the WindowMessageBroadcaster's listeners list.
43723         (WebKit::WebView::WebView): Initialize m_isBeingDestroyed.
43724         (WebKit::WebView::setHostWindow): Update the window's parent window and call windowAncestryDidChange().
43725         (WebKit::WebView::close): Set the host window to 0.
43726         * UIProcess/win/WebView.h:
43727
43728 2010-06-04  Tony Gentilcore  <tonyg@chromium.org>
43729
43730         Reviewed by Adam Barth.
43731
43732         Utilize new takeFirst() method where appropriate.
43733         https://bugs.webkit.org/show_bug.cgi?id=40089
43734
43735         * Platform/CoreIPC/ArgumentDecoder.cpp:
43736         (CoreIPC::ArgumentDecoder::removeAttachment):
43737
43738 2010-06-03  Ada Chan  <adachan@apple.com>
43739
43740         Reviewed by Anders Carlsson.
43741
43742         Add UIProcess\API\cpp to the list of additional include directories.
43743         Allow WKViewRef to work with WKRetainPtr on Windows.
43744
43745         * UIProcess/API/cpp/WKRetainPtr.h:
43746         * win/WebKit2.vcproj:
43747
43748 2010-06-01  Alice Liu  <alice.liu@apple.com>
43749
43750         Build fix. Not reviewed
43751
43752         * win/WebKit2Generated.make: Added WKRetainPtr.h
43753
43754 2010-06-01  John Sullivan  <sullivan@apple.com>
43755
43756         Rubber-stamped by Anders Carlsson.
43757
43758         Added _WKRetainPtr to .exp file, and added .exp file to Xcode project.
43759
43760         * WebKit2.xcodeproj/project.pbxproj:
43761         Added mac/WebKit2.exp.
43762         
43763         * mac/WebKit2.exp:
43764         Added _WKRetainPtr.
43765
43766 2010-06-01  John Sullivan  <sullivan@apple.com>
43767
43768         Rubber-stamped by Anders Carlsson.
43769
43770         Fixed typo/wordo that prevented a certain flavor of constructor from compiling.
43771
43772         * UIProcess/API/cpp/WKRetainPtr.h:
43773         (WebKit::WKRetainPtr::WKRetainPtr):
43774         Changed the mysterious "retainWKPtr" to "WKRetain".
43775
43776 2010-05-28  John Sullivan  <sullivan@apple.com>
43777
43778         Rubber-stamped by Dan Bernstein.
43779
43780         Add a using declaration for AdoptWK to match the one just added for WKRetainPtr.
43781
43782         * UIProcess/API/cpp/WKRetainPtr.h:
43783
43784 2010-05-28  Sam Weinig  <sam@webkit.org>
43785
43786         Reviewed by Anders Carlsson.
43787
43788         Add a using declaration for WKRetainPtr matching what we do for our
43789         other smart pointers and fix the destructor.
43790
43791         * UIProcess/API/cpp/WKRetainPtr.h:
43792         (WebKit::WKRetainPtr::~WKRetainPtr):
43793
43794 2010-05-25  Ada Chan  <adachan@apple.com>
43795
43796         Reviewed by Darin Adler.
43797
43798         https://bugs.webkit.org/show_bug.cgi?id=39686
43799
43800         Fix the ProjectGUID of the WebKit2 project so it doesn't conflict with the one in WebKit.        
43801
43802         * WebKit2.sln:
43803         * win/WebKit2.vcproj:
43804
43805 2010-05-24  Ada Chan  <adachan@apple.com>
43806
43807         Rubber-stamped by Mark Rowe.
43808         
43809         Build fix for 32bit systems.
43810
43811         * mac/WebKit2.exp:
43812
43813 2010-05-21  Mark Rowe  <mrowe@apple.com>
43814
43815         Reviewed by Oliver Hunt.
43816
43817         Teach WebKit2 to build in the Production configuration.
43818
43819         * Configurations/Base.xcconfig: Restrict WebKit2 to Intel, and disable the order file.
43820         * Configurations/BaseTarget.xcconfig: Fix the path to the umbrella framework directory.
43821         This path is used to locate WebCore.framework, so it needs to be relative to WebKit.framework
43822         rather than WebKit2.framework.
43823         * Configurations/WebKit2.xcconfig: Update the install path.  Add an exports file.
43824         * Configurations/WebProcess.xcconfig: Update the install path.
43825         * WebKit2.xcodeproj/project.pbxproj: Add a Production configuration.
43826         * mac/WebKit2.exp: Added.
43827
43828 2010-05-21  Steve Block  <steveblock@google.com>
43829
43830         Unreviewed build fix for WebKit2
43831
43832         Pass 0 to Page constructor for DeviceOrientationClient.
43833         See http://trac.webkit.org/changeset/59935
43834
43835         * WebProcess/WebPage/WebPage.cpp:
43836         (WebKit::WebPage::WebPage):
43837
43838 2010-05-11  Mark Rowe  <mrowe@apple.com>
43839
43840         Fix the world.
43841
43842         In r59162 a change was made to WebCore's FeatureDefines.xcconfig that enabled FILE_READER and FILE_WRITER.
43843         The author and reviewer of that patch ignored the carefully-worded warning at the top of that file asking
43844         that changes to the file be kept in sync across JavaScriptCore, WebCore and WebKit, as well as being kept
43845         in sync with build-webkit.  This led to WebCore and WebKit having different views of Document's vtable
43846         and results in crashes in Safari shortly after launch when virtual function calls resulted in the wrong
43847         function in WebCore being called.
43848
43849         We fix this by bringing the FeatureDefines.xcconfig files in to sync.  Based on the ChangeLog message and
43850         other changes in r59162 it appears that enabling FILE_WRITER was unintentional so that particular change
43851         has been reverted.
43852
43853         * Configurations/FeatureDefines.xcconfig:
43854
43855 2010-05-04  Anders Carlsson  <andersca@apple.com>
43856
43857         Reviewed by Dan Bernstein.
43858
43859         [WebKit2] The web process doesn't need to paint when the web view is hidden.
43860         https://bugs.webkit.org/show_bug.cgi?id=38549
43861
43862         * Shared/CoreIPCSupport/DrawingAreaMessageKinds.h:
43863         (DrawingAreaMessage::):
43864         Add SuspendPainting/ResumePainting messages.
43865         
43866         * UIProcess/DrawingAreaProxyUpdateChunk.cpp:
43867         (WebKit::DrawingAreaProxyUpdateChunk::setPageIsVisible):
43868         Suspend and resume painting accordingly.
43869         
43870         * WebProcess/WebPage/DrawingAreaUpdateChunk.cpp:
43871         (WebKit::DrawingAreaUpdateChunk::DrawingAreaUpdateChunk):
43872         Initialize m_shouldPaint to true.
43873         
43874         (WebKit::DrawingAreaUpdateChunk::display):
43875         Return if m_shouldPaint is false.
43876         
43877         (WebKit::DrawingAreaUpdateChunk::scheduleDisplay):
43878         Ditto.
43879         
43880         (WebKit::DrawingAreaUpdateChunk::setSize):
43881         Assert that we should paint here.
43882
43883         (WebKit::DrawingAreaUpdateChunk::suspendPainting):
43884         Set m_shouldPaint to false and stop the timer.
43885         
43886         (WebKit::DrawingAreaUpdateChunk::resumePainting):
43887         Set m_shouldPaint to true and paint if needed.
43888
43889         (WebKit::DrawingAreaUpdateChunk::didReceiveMessage):
43890         handle SuspendPainting/ResumePainting messages.
43891
43892         * WebProcess/WebPage/DrawingAreaUpdateChunk.h:
43893
43894 2010-05-03  Anders Carlsson  <andersca@apple.com>
43895
43896         Reviewed by Jon Honeycutt.
43897
43898         [WebKit2] WKView should respond to WM_SHOWWINDOW messages
43899         https://bugs.webkit.org/show_bug.cgi?id=38496
43900
43901         * UIProcess/win/WebView.cpp:
43902         (WebKit::WebView::wndProc):
43903         Add case for WM_SHOWWINDOW.
43904
43905         (WebKit::WebView::onShowWindowEvent):
43906         Update the page visibility accordingly.
43907
43908         * UIProcess/win/WebView.h:
43909
43910 2010-05-03  Anders Carlsson  <andersca@apple.com>
43911
43912         Reviewed by Dan Bernstein.
43913
43914         Get rid of PageClient::isPageVisible and pass visibility directly in setPageIsVisible
43915         https://bugs.webkit.org/show_bug.cgi?id=38493
43916
43917         * UIProcess/API/mac/PageClientImpl.h:
43918         * UIProcess/API/mac/PageClientImpl.mm:
43919         Remove isPageVisible.
43920         
43921         * UIProcess/API/mac/WKView.mm:
43922         (isViewVisible):
43923         New function (moved here from PageClientImpl).
43924         
43925         (-[WKView _updateVisibility]):
43926         Call didChangeVisibility.
43927         
43928         (-[WKView viewDidMoveToWindow]):
43929         (-[WKView viewDidHide]):
43930         (-[WKView viewDidUnhide]):
43931         Call _updateVisibility.
43932         
43933         * UIProcess/DrawingAreaProxy.h:
43934         Rename didChangeVisibility to setPageIsVisible and add an isVisible parameter.
43935         
43936         * UIProcess/DrawingAreaProxyUpdateChunk.cpp:
43937         (WebKit::DrawingAreaProxyUpdateChunk::setPageIsVisible):
43938         Don't call WebPageProxy::isVisible.
43939
43940         * UIProcess/DrawingAreaProxyUpdateChunk.h:
43941         
43942         * UIProcess/PageClient.h:
43943         Remove isPageVisible.
43944
43945         * UIProcess/WebPageProxy.cpp:
43946         * UIProcess/WebPageProxy.h:
43947         Remove isVisible.
43948
43949 2010-05-03  Anders Carlsson  <andersca@apple.com>
43950
43951         Reviewed by Adam Roben.
43952
43953         Implement PageClient::isPageVisible on Windows.
43954         https://bugs.webkit.org/show_bug.cgi?id=38483
43955
43956         * UIProcess/PageClient.h:
43957         * UIProcess/win/WebView.cpp:
43958         (WebKit::WebView::isPageVisible):
43959         * UIProcess/win/WebView.h:
43960
43961 2010-05-03  Anders Carlsson  <andersca@apple.com>
43962
43963         Fix Windows build.
43964
43965         * Platform/CoreIPC/win/ConnectionWin.cpp:
43966         (CoreIPC::Connection::sendOutgoingMessage):
43967         * Shared/win/UpdateChunk.cpp:
43968         (WebKit::UpdateChunk::UpdateChunk):
43969         (WebKit::UpdateChunk::encode):
43970         (WebKit::UpdateChunk::decode):
43971         * Shared/win/UpdateChunk.h:
43972         (WebKit::UpdateChunk::rect):
43973         * UIProcess/DrawingAreaProxy.h:
43974         * UIProcess/DrawingAreaProxyUpdateChunk.h:
43975         * UIProcess/win/DrawingAreaProxyUpdateChunkWin.cpp:
43976         (WebKit::DrawingAreaProxyUpdateChunk::drawUpdateChunkIntoBackingStore):
43977         * WebProcess/WebPage/win/DrawingAreaUpdateChunkWin.cpp:
43978         (WebKit::DrawingAreaUpdateChunk::paintIntoUpdateChunk):
43979         * WebProcess/win/WebProcessMain.cpp:
43980
43981 2010-04-30  Anders Carlsson  <andersca@apple.com>
43982
43983         Reviewed by Sam Weinig.
43984
43985         https://bugs.webkit.org/show_bug.cgi?id=38415
43986         Have the WKView notify the DrawingAreaProxy when its visibility changes.
43987
43988         * UIProcess/API/mac/PageClientImpl.h:
43989         * UIProcess/API/mac/PageClientImpl.mm:
43990         (WebKit::PageClientImpl::isPageVisible):
43991         * UIProcess/API/mac/WKView.mm:
43992         (-[WKView viewDidMoveToWindow]):
43993         (-[WKView viewDidHide]):
43994         (-[WKView viewDidUnhide]):
43995         * UIProcess/DrawingAreaProxy.h:
43996         * UIProcess/DrawingAreaProxyUpdateChunk.cpp:
43997         (WebKit::DrawingAreaProxyUpdateChunk::DrawingAreaProxyUpdateChunk):
43998         (WebKit::DrawingAreaProxyUpdateChunk::didChangeVisibility):
43999         * UIProcess/DrawingAreaProxyUpdateChunk.h:
44000         * UIProcess/PageClient.h:
44001         * UIProcess/WebPageProxy.cpp:
44002         (WebKit::WebPageProxy::isVisible):
44003         * UIProcess/WebPageProxy.h:
44004
44005 2010-05-03  Jens Alfke  <snej@chromium.org>
44006
44007         Reviewed by Darin Fisher.
44008
44009         [chromium] Add "willSendSubmitEvent" hook to WebFrameClient and FrameLoaderClient
44010         https://bugs.webkit.org/show_bug.cgi?id=38397
44011
44012         No tests (functionality is exposed only through native WebKit API.)
44013
44014         * WebProcess/WebCoreSupport/WebFrameLoaderClient.h:
44015         (WebKit::WebFrameLoaderClient::dispatchWillSendSubmitEvent):
44016
44017 2010-05-01  Sam Weinig  <sam@webkit.org>
44018
44019         Reviewed by Anders Carlsson.
44020
44021         Fix for https://bugs.webkit.org/show_bug.cgi?id=38471
44022         Add generic callback mechanism
44023
44024         Added GenericCallback class replacing RenderTreeExternalRepresentationCallback
44025         and ScriptReturnValueCallback.
44026         
44027         Also,
44028         - Standardize C API callbacks to take the context last.
44029         - Standardize C API callbacks to not have the _f suffix (now the block
44030           variants have a _b suffix).
44031         - Re-write toWK and toRef methods as a set of template functions using
44032           the generic API->implementation mapping information.
44033
44034         * UIProcess/API/C/WKAPICast.h:
44035         * UIProcess/API/C/WKPage.cpp:
44036         (WKPageRunJavaScriptInMainFrame):
44037         (callRunJavaScriptBlockAndRelease):
44038         (disposeRunJavaScriptBlock):
44039         (WKPageRunJavaScriptInMainFrame_b):
44040         (WKPageRenderTreeExternalRepresentation):
44041         (WKPageRenderTreeExternalRepresentation_b):
44042         * UIProcess/API/C/WKPage.h:
44043         * UIProcess/API/C/WKPagePrivate.h:
44044         * UIProcess/GenericCallback.h: Added.
44045         (WebKit::GenericCallback::create):
44046         (WebKit::GenericCallback::~GenericCallback):
44047         (WebKit::GenericCallback::performCallbackWithReturnValue):
44048         (WebKit::GenericCallback::invalidate):
44049         (WebKit::GenericCallback::callbackID):
44050         (WebKit::GenericCallback::generateCallbackID):
44051         (WebKit::GenericCallback::GenericCallback):
44052         * UIProcess/RenderTreeExternalRepresentationCallback.cpp: Removed.
44053         * UIProcess/RenderTreeExternalRepresentationCallback.h: Removed.
44054         * UIProcess/ScriptReturnValueCallback.cpp: Removed.
44055         * UIProcess/ScriptReturnValueCallback.h: Removed.
44056         * UIProcess/WebPageProxy.cpp:
44057         (WebKit::WebPageProxy::didRunJavaScriptInMainFrame):
44058         (WebKit::WebPageProxy::didGetRenderTreeExternalRepresentation):
44059         * UIProcess/WebPageProxy.h:
44060         * WebKit2.xcodeproj/project.pbxproj:
44061         * win/WebKit2.vcproj:
44062
44063 2010-04-30  Sam Weinig  <sam@webkit.org>
44064
44065         Fix the build.
44066
44067         * Platform/CoreIPC/mac/ConnectionMac.cpp: Add missing #include.
44068
44069 2010-04-30  Sam Weinig  <sam@webkit.org>
44070
44071         Reviewed by Anders Carlsson.
44072
44073         https://bugs.webkit.org/show_bug.cgi?id=38413
44074         Add callback based API to get the textual representation of the RenderTree.
44075
44076         - Also ensures that any pending callbacks are invalidated if the WebPage
44077           closes (expectedly or unexpectedly).
44078         - A follow up patch will unify the callback mechanism with a common base
44079           class.
44080
44081         * Shared/CoreIPCSupport/WebPageMessageKinds.h:
44082         (WebPageMessage::):
44083         * Shared/CoreIPCSupport/WebPageProxyMessageKinds.h:
44084         (WebPageProxyMessage::):
44085         * UIProcess/API/C/WKPage.cpp:
44086         (WKPageRunJavaScriptInMainFrame_f):
44087         (WKPageRenderTreeExternalRepresentation_f):
44088         (callRenderTreeExternalRepresentationBlockAndDispose):
44089         (disposeRenderTreeExternalRepresentationBlock):
44090         (WKPageRenderTreeExternalRepresentation):
44091         * UIProcess/API/C/WKPagePrivate.h: Added.
44092         * UIProcess/RenderTreeExternalRepresentationCallback.cpp: Added.
44093         (WebKit::generateCallbackID):
44094         (WebKit::RenderTreeExternalRepresentationCallback::RenderTreeExternalRepresentationCallback):
44095         (WebKit::RenderTreeExternalRepresentationCallback::~RenderTreeExternalRepresentationCallback):
44096         (WebKit::RenderTreeExternalRepresentationCallback::performCallbackWithReturnValue):
44097         (WebKit::RenderTreeExternalRepresentationCallback::invalidate):
44098         * UIProcess/RenderTreeExternalRepresentationCallback.h: Added.
44099         (WebKit::RenderTreeExternalRepresentationCallback::create):
44100         (WebKit::RenderTreeExternalRepresentationCallback::callbackID):
44101         * UIProcess/ScriptReturnValueCallback.cpp:
44102         (WebKit::ScriptReturnValueCallback::~ScriptReturnValueCallback):
44103         (WebKit::ScriptReturnValueCallback::performCallbackWithReturnValue):
44104         (WebKit::ScriptReturnValueCallback::invalidate):
44105         * UIProcess/ScriptReturnValueCallback.h:
44106         * UIProcess/WebPageProxy.cpp:
44107         (WebKit::WebPageProxy::close):
44108         (WebKit::WebPageProxy::getRenderTreeExternalRepresentation):
44109         (WebKit::WebPageProxy::didReceiveMessage):
44110         (WebKit::WebPageProxy::didRunJavaScriptInMainFrame):
44111         (WebKit::WebPageProxy::didGetRenderTreeExternalRepresentation):
44112         (WebKit::WebPageProxy::processDidExit):
44113         * UIProcess/WebPageProxy.h:
44114         * WebKit2.xcodeproj/project.pbxproj:
44115         * WebProcess/WebPage/WebPage.cpp:
44116         (WebKit::WebPage::getRenderTreeExternalRepresentation):
44117         (WebKit::WebPage::didReceiveMessage):
44118         * WebProcess/WebPage/WebPage.h:
44119         * win/WebKit2.vcproj:
44120
44121 2010-04-30  Sam Weinig  <sam@webkit.org>
44122
44123         Reviewed by Anders Carlsson.
44124
44125         Fix for https://bugs.webkit.org/show_bug.cgi?id=38406
44126         Add support for sending messages with a size greater than 4096 bytes
44127
44128         Adds support by putting message bodies that are larger than 4096 bytes
44129         in OOL memory.
44130
44131         * Platform/CoreIPC/Connection.cpp:
44132         (CoreIPC::Connection::sendMessage):
44133         (CoreIPC::Connection::waitForMessage):
44134         (CoreIPC::Connection::sendSyncMessage):
44135         (CoreIPC::Connection::dispatchMessages):
44136         * Platform/CoreIPC/Connection.h:
44137         (CoreIPC::Connection::OutgoingMessage::OutgoingMessage):
44138         (CoreIPC::Connection::OutgoingMessage::messageID):
44139         (CoreIPC::Connection::send):
44140         (CoreIPC::Connection::sendSync):
44141         * Platform/CoreIPC/MessageID.h:
44142         (CoreIPC::MessageID::):
44143         (CoreIPC::MessageID::MessageID):
44144         (CoreIPC::MessageID::equalIgnoringFlags):
44145         (CoreIPC::MessageID::copyAddingFlags):
44146         (CoreIPC::MessageID::fromInt):
44147         (CoreIPC::MessageID::toInt):
44148         (CoreIPC::MessageID::isMessageBodyOOL):
44149         * Platform/CoreIPC/mac/ConnectionMac.cpp:
44150         (CoreIPC::Connection::sendOutgoingMessage):
44151         (CoreIPC::createArgumentDecoder):
44152
44153 2010-04-28  Mike Thole  <mthole@apple.com>
44154
44155         Build fix, not reviewed.
44156
44157         Fix WebKit2 build by stubbing out WebFrameLoaderClient::canAuthenticateAgainstProtectionSpace().
44158
44159         * WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
44160         (WebKit::WebFrameLoaderClient::canAuthenticateAgainstProtectionSpace):
44161         * WebProcess/WebCoreSupport/WebFrameLoaderClient.h:
44162
44163 2010-04-28  Sam Weinig  <sam@webkit.org>
44164
44165         Reviewed by Mark Rowe.
44166
44167         Only build on SnowLeopard and later when using the Makefile.
44168
44169         * Makefile:
44170
44171 2010-04-27  Sam Weinig  <sam@webkit.org>
44172
44173         Reviewed by Maciej Stachowiak.
44174
44175         Fix for https://bugs.webkit.org/show_bug.cgi?id=38238
44176         Allow both WebKit and WebKit2 to link to the same WebCore.framework
44177
44178         * Configurations/WebKit2.xcconfig: Remove the OTHER_LDFLAGS. We don't
44179         need to set WebCore as a sub_umbrella of WebKit2, since we are not
44180         reexporting any of its symbols.
44181
44182 2010-04-27  Sam Weinig  <sam@webkit.org>
44183
44184         Reviewed by Geoffrey Garen.
44185
44186         Add comment about not using StringImpl::createCFString in WKStringCopyCFString.
44187
44188         * UIProcess/API/C/cf/WKStringCF.cpp:
44189         (WKStringCopyCFString):
44190
44191 2010-04-27  Sam Weinig  <sam@webkit.org>
44192
44193         Reviewed by Geoffrey Garen.
44194
44195         Remove call to StringImpl::createCFString and instead use CFStringCreateWithCharacters
44196         directly. StringImpl::createCFString only an optimization when called
44197         from the thread that WebCore is running on, which is never the case for
44198         WKStringCopyCFString. We should revisit this later, perhaps adding a
44199         threadspecific allocator. We also now honor the passed in allocator.
44200
44201         * UIProcess/API/C/cf/WKStringCF.cpp:
44202         (WKStringCopyCFString):
44203
44204 2010-04-25  Sam Weinig  <sam@webkit.org>
44205
44206         Reviewed by Maciej Stachowiak.
44207
44208         Fix for https://bugs.webkit.org/show_bug.cgi?id=38097
44209         Disentangle initializing the main thread from initializing threading
44210
44211         * UIProcess/Launcher/mac/WebProcessLauncher.mm:
44212         (WebKit::webThreadBody): Add call to initializeMainThread.
44213         * UIProcess/Launcher/win/WebProcessLauncher.cpp:
44214         (WebKit::webThreadBody): Ditto.
44215         * WebProcess/Launching/mac/WebProcessMain.mm:
44216         (main): Ditto.
44217         * WebProcess/win/WebProcessMain.cpp:
44218         (WebKit::WebProcessMain): Ditto.
44219
44220 2010-04-23  Sam Weinig  <sam@webkit.org>
44221
44222         Reviewed by Anders Carlsson.
44223
44224         https://bugs.webkit.org/show_bug.cgi?id=38065
44225         Merge mac and win DrawingAreaProxyUpdateChunk implementations.
44226
44227         * UIProcess/API/mac/WKView.mm:
44228         (-[WKView drawRect:]):
44229         * UIProcess/DrawingAreaProxy.cpp: Copied from UIProcess/mac/DrawingAreaProxy.mm.
44230         * UIProcess/DrawingAreaProxy.h: Copied from UIProcess/mac/DrawingAreaProxy.h.
44231         * UIProcess/DrawingAreaProxyUpdateChunk.cpp: Copied from UIProcess/mac/DrawingAreaProxyUpdateChunk.mm.
44232         (WebKit::DrawingAreaProxyUpdateChunk::DrawingAreaProxyUpdateChunk):
44233         (WebKit::DrawingAreaProxyUpdateChunk::paint):
44234         (WebKit::DrawingAreaProxyUpdateChunk::setSize):
44235         (WebKit::DrawingAreaProxyUpdateChunk::didSetSize):
44236         (WebKit::DrawingAreaProxyUpdateChunk::update):
44237         (WebKit::DrawingAreaProxyUpdateChunk::didReceiveMessage):
44238         * UIProcess/DrawingAreaProxyUpdateChunk.h: Copied from UIProcess/mac/DrawingAreaProxyUpdateChunk.h.
44239         * UIProcess/mac/DrawingAreaProxy.h: Removed.
44240         * UIProcess/mac/DrawingAreaProxy.mm: Removed.
44241         * UIProcess/mac/DrawingAreaProxyUpdateChunk.h: Removed.
44242         * UIProcess/mac/DrawingAreaProxyUpdateChunk.mm: Removed.
44243         * UIProcess/mac/DrawingAreaProxyUpdateChunkMac.mm: Copied from UIProcess/mac/DrawingAreaProxyUpdateChunk.mm.
44244         (WebKit::DrawingAreaProxyUpdateChunk::page):
44245         (WebKit::DrawingAreaProxyUpdateChunk::invalidateBackingStore):
44246         (WebKit::DrawingAreaProxyUpdateChunk::platformPaint):
44247         (WebKit::DrawingAreaProxyUpdateChunk::drawUpdateChunkIntoBackingStore):
44248         * UIProcess/win/DrawingAreaProxy.cpp: Removed.
44249         * UIProcess/win/DrawingAreaProxy.h: Removed.
44250         * UIProcess/win/DrawingAreaProxyUpdateChunkWin.cpp: Copied from UIProcess/win/DrawingAreaProxy.cpp.
44251         (WebKit::DrawingAreaProxyUpdateChunk::page):
44252         (WebKit::DrawingAreaProxyUpdateChunk::ensureBackingStore):
44253         (WebKit::DrawingAreaProxyUpdateChunk::invalidateBackingStore):
44254         (WebKit::DrawingAreaProxyUpdateChunk::platformPaint):
44255         (WebKit::DrawingAreaProxyUpdateChunk::drawUpdateChunkIntoBackingStore):
44256         * UIProcess/win/WebView.cpp:
44257         (WebKit::WebView::WebView):
44258         (WebKit::WebView::onPaintEvent):
44259         * WebKit2.xcodeproj/project.pbxproj:
44260         * win/WebKit2.vcproj:
44261
44262 2010-04-23  Sam Weinig  <sam@webkit.org>
44263
44264         Reviewed by Anders Carlsson.
44265
44266         Fix for https://bugs.webkit.org/show_bug.cgi?id=38059
44267         Merge mac and win DrawingAreaUpdateChunk implementations.
44268
44269         * UIProcess/win/DrawingAreaProxy.cpp:
44270         (WebKit::DrawingAreaProxy::didSetSize):
44271         (WebKit::DrawingAreaProxy::didReceiveMessage):
44272         * UIProcess/win/DrawingAreaProxy.h:
44273         * WebKit2.xcodeproj/project.pbxproj:
44274         * WebProcess/WebPage/DrawingAreaUpdateChunk.cpp: Copied from WebProcess/WebPage/mac/DrawingAreaUpdateChunk.cpp.
44275         (WebKit::DrawingAreaUpdateChunk::setSize):
44276         * WebProcess/WebPage/DrawingAreaUpdateChunk.h: Copied from WebProcess/WebPage/mac/DrawingAreaUpdateChunk.h.
44277         * WebProcess/WebPage/mac/DrawingAreaUpdateChunk.cpp: Removed.
44278         * WebProcess/WebPage/mac/DrawingAreaUpdateChunk.h: Removed.
44279         * WebProcess/WebPage/mac/DrawingAreaUpdateChunkMac.cpp: Copied from WebProcess/WebPage/mac/DrawingAreaUpdateChunk.cpp.
44280         * WebProcess/WebPage/win/DrawingAreaUpdateChunk.cpp: Removed.
44281         * WebProcess/WebPage/win/DrawingAreaUpdateChunk.h: Removed.
44282         * WebProcess/WebPage/win/DrawingAreaUpdateChunkWin.cpp: Copied from WebProcess/WebPage/win/DrawingAreaUpdateChunk.cpp.
44283         (WebKit::DrawingAreaUpdateChunk::paintIntoUpdateChunk):
44284         * win/WebKit2.vcproj:
44285
44286 2010-04-23  Anders Carlsson  <andersca@apple.com>
44287
44288         Reviewed by Sam Weinig.
44289
44290         Remove an assert. (It's not valid when resizing).
44291
44292         * WebProcess/WebPage/win/DrawingAreaUpdateChunk.cpp:
44293         (WebKit::DrawingAreaUpdateChunk::didUpdate):
44294
44295 2010-04-23  Anders Carlsson  <andersca@apple.com>
44296
44297         Fix build.
44298
44299         * UIProcess/win/DrawingAreaProxy.cpp:
44300         (WebKit::DrawingAreaProxy::paint):
44301         (WebKit::DrawingAreaProxy::setSize):
44302         (WebKit::DrawingAreaProxy::didReceiveMessage):
44303         * WebProcess/WebPage/win/DrawingAreaUpdateChunk.cpp:
44304         (WebKit::DrawingAreaUpdateChunk::setSize):
44305         (WebKit::DrawingAreaUpdateChunk::didReceiveMessage):
44306
44307 2010-04-22  Anders Carlsson  <andersca@apple.com>
44308
44309         Reviewed by Sam Weinig.
44310
44311         Remove an assert. (It's not valid when resizing).
44312
44313         * WebProcess/WebPage/mac/DrawingAreaUpdateChunk.cpp:
44314         (WebKit::DrawingAreaUpdateChunk::didUpdate):
44315
44316 2010-04-22  Sam Weinig  <sam@webkit.org>
44317
44318         Reviewed by Anders Carlsson.
44319
44320         Merge the prefix headers.
44321
44322         * Configurations/BaseTarget.xcconfig:
44323         * WebKit2.xcodeproj/project.pbxproj:
44324         * WebKit2Prefix.h:
44325         * WebKit2_Prefix.pch: Removed.
44326
44327 2010-04-22  Anders Carlsson  <andersca@apple.com>
44328
44329         Reviewed by Sam Weinig.
44330
44331         Don't pass the new size when calling didSetSize, it's possible to get
44332         the size from the update chunk.
44333
44334         * UIProcess/mac/DrawingAreaProxyUpdateChunk.h:
44335         * UIProcess/mac/DrawingAreaProxyUpdateChunk.mm:
44336         (WebKit::DrawingAreaProxyUpdateChunk::didSetSize):
44337         (WebKit::DrawingAreaProxyUpdateChunk::didReceiveMessage):
44338         * WebProcess/WebPage/mac/DrawingAreaUpdateChunk.cpp:
44339         (WebKit::DrawingAreaUpdateChunk::setSize):
44340
44341 2010-04-22  Anders Carlsson  <andersca@apple.com>
44342
44343         Reviewed by Sam Weinig.
44344
44345         Rename SetFrame and DidSetFrame to SetSize and DidSetSize.
44346
44347         * Shared/CoreIPCSupport/DrawingAreaMessageKinds.h:
44348         (DrawingAreaMessage::):
44349         * Shared/CoreIPCSupport/DrawingAreaProxyMessageKinds.h:
44350         (DrawingAreaProxyMessage::):
44351         * UIProcess/mac/DrawingAreaProxyUpdateChunk.mm:
44352         (WebKit::DrawingAreaProxyUpdateChunk::drawRectIntoContext):
44353         (WebKit::DrawingAreaProxyUpdateChunk::setSize):
44354         (WebKit::DrawingAreaProxyUpdateChunk::didReceiveMessage):
44355         * WebProcess/WebPage/mac/DrawingAreaUpdateChunk.cpp:
44356         (WebKit::DrawingAreaUpdateChunk::setSize):
44357         (WebKit::DrawingAreaUpdateChunk::didReceiveMessage):
44358
44359 2010-04-22  Sam Weinig  <sam@webkit.org>
44360
44361         Reviewed by Anders Carlsson.
44362
44363         Fix for https://bugs.webkit.org/show_bug.cgi?id=38002
44364         Add rudimentary statistics gathering for WebKit2
44365
44366         * UIProcess/API/C/WKContext.cpp:
44367         (WKContextGetStatistics):
44368         * UIProcess/API/C/WKContextPrivate.h: Copied from WebKit2/UIProcess/API/C/WKContext.h.
44369         * UIProcess/API/C/WKPageNamespace.cpp:
44370         (WKPageNamespaceGetContext):
44371         * UIProcess/API/C/WKPageNamespace.h:
44372         * UIProcess/WebContext.cpp:
44373         (WebKit::WebContext::getStatistics):
44374         * UIProcess/WebContext.h:
44375         * UIProcess/WebPageNamespace.cpp:
44376         (WebKit::WebPageNamespace::getStatistics):
44377         * UIProcess/WebPageNamespace.h:
44378         * UIProcess/WebPageProxy.cpp:
44379         (WebKit::WebPageProxy::getStatistics):
44380         * UIProcess/WebPageProxy.h:
44381         * UIProcess/WebProcessProxy.cpp:
44382         (WebKit::WebProcessProxy::numberOfPages):
44383         * UIProcess/WebProcessProxy.h:
44384         * WebKit2.xcodeproj/project.pbxproj:
44385         * win/WebKit2.vcproj:
44386
44387 2010-04-20  Anders Carlsson  <andersca@apple.com>
44388
44389         Reviewed by Sam Weinig.
44390
44391         Don't paint the web page before we've blit the last update chunk to the backing store.
44392
44393         * UIProcess/win/DrawingAreaProxy.cpp:
44394         (WebKit::DrawingAreaProxy::update):
44395         (WebKit::DrawingAreaProxy::didReceiveMessage):
44396         * UIProcess/win/DrawingAreaProxy.h:
44397         * WebProcess/WebPage/win/DrawingAreaUpdateChunk.cpp:
44398         (WebKit::DrawingAreaUpdateChunk::DrawingAreaUpdateChunk):
44399         (WebKit::DrawingAreaUpdateChunk::display):
44400         (WebKit::DrawingAreaUpdateChunk::scheduleDisplay):
44401         (WebKit::DrawingAreaUpdateChunk::setSize):
44402         (WebKit::DrawingAreaUpdateChunk::didUpdate):
44403         (WebKit::DrawingAreaUpdateChunk::didReceiveMessage):
44404         * WebProcess/WebPage/win/DrawingAreaUpdateChunk.h:
44405
44406 2010-04-20  Anders Carlsson  <andersca@apple.com>
44407
44408         Fix build.
44409
44410         * WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
44411         (WebKit::WebFrameLoaderClient::receivedData):
44412
44413 2010-04-20  Anders Carlsson  <andersca@apple.com>
44414
44415         Reviewed by Sam Weinig.
44416
44417         Don't paint the web page before we've blit the last update chunk to the backing store
44418         https://bugs.webkit.org/show_bug.cgi?id=37896
44419
44420         * Shared/CoreIPCSupport/DrawingAreaMessageKinds.h:
44421         (DrawingAreaMessage::):
44422         * UIProcess/mac/DrawingAreaProxyUpdateChunk.h:
44423         * UIProcess/mac/DrawingAreaProxyUpdateChunk.mm:
44424         (WebKit::DrawingAreaProxyUpdateChunk::drawUpdateChunkIntoBackingStore):
44425         (WebKit::DrawingAreaProxyUpdateChunk::update):
44426         (WebKit::DrawingAreaProxyUpdateChunk::didReceiveMessage):
44427         * WebProcess/WebPage/mac/DrawingAreaUpdateChunk.cpp:
44428         (WebKit::DrawingAreaUpdateChunk::DrawingAreaUpdateChunk):
44429         (WebKit::DrawingAreaUpdateChunk::display):
44430         (WebKit::DrawingAreaUpdateChunk::scheduleDisplay):
44431         (WebKit::DrawingAreaUpdateChunk::setSize):
44432         (WebKit::DrawingAreaUpdateChunk::didUpdate):
44433         (WebKit::DrawingAreaUpdateChunk::didReceiveMessage):
44434         * WebProcess/WebPage/mac/DrawingAreaUpdateChunk.h:
44435
44436 2010-04-20  Anders Carlsson  <andersca@apple.com>
44437
44438         Fix build.
44439
44440         * WebProcess/WebCoreSupport/WebChromeClient.cpp:
44441         (WebKit::WebChromeClient::chooseIconForFiles):
44442         * WebProcess/WebCoreSupport/WebChromeClient.h:
44443
44444 2010-04-19  Anders Carlsson  <andersca@apple.com>
44445
44446         Fix build.
44447
44448         * WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
44449         (WebKit::WebFrameLoaderClient::dispatchDidChangeIcons):
44450         * WebProcess/WebCoreSupport/WebFrameLoaderClient.h:
44451
44452 2010-04-17  Sam Weinig  <weinig@apple.com>
44453
44454         Reviewed by Jon "The Belly" Honeycutt.
44455
44456         Remove the need for a .defs file! Define WK_EXPORT.
44457
44458         * UIProcess/API/C/WKBase.h:
44459         * WebProcess/win/WebProcessMain.h:
44460         * win/WebKit2.def: Removed.
44461         * win/WebKit2.vcproj:
44462
44463 2010-04-17  Sam Weinig  <weinig@apple.com>
44464
44465         Reviewed by Adam Roben.
44466
44467         Teach windows MiniBrowser how to work with window.open()
44468         and targeted links.
44469
44470         Export WKPageSetPageUIClient.
44471
44472         * win/WebKit2.def:
44473
44474 2010-04-16  Sam Weinig  <sam@webkit.org>
44475
44476         Reviewed by Anders Carlsson.
44477
44478         Fix window.open() and targeted links.
44479
44480         * UIProcess/WebPageProxy.cpp:
44481         (WebKit::WebPageProxy::didReceiveSyncMessage): Pass in the new pageID
44482         instead of 0.
44483
44484         * WebProcess/WebProcess.cpp:
44485         (WebKit::WebProcess::createWebPage): Allow for the page to have already
44486         been created, as is the case with programmatic window opening from within
44487         WebCore (e.g. window.open() or <a target="_blank">).
44488
44489 2010-04-16  Sam Weinig  <sam@webkit.org>
44490
44491         Reviewed by Mark Rowe.
44492
44493         Don't optimize debug builds.
44494
44495         * WebKit2.xcodeproj/project.pbxproj: Define GCC_OPTIMIZATION_LEVEL correctly.
44496
44497 2010-04-16  Anders Carlsson  <andersca@apple.com>
44498
44499         Fix build.
44500
44501         * WebProcess/WebPage/WebPage.cpp:
44502         (WebKit::WebPage::runJavaScriptInMainFrame):
44503
44504 2010-04-16  Anders Carlsson  <andersca@apple.com>
44505
44506         Reviewed by Sam Weinig.
44507
44508         Fix windows build.
44509
44510         * Platform/win/RunLoopWin.cpp:
44511         (RunLoop::run):
44512         * UIProcess/Launcher/win/WebProcessLauncher.cpp:
44513         (WebKit::webThreadBody):
44514         (WebKit::launchWebProcess):
44515         * WebProcess/win/WebProcessMain.cpp:
44516         (WebKit::WebProcessMain):
44517
44518 2010-04-16  Sam Weinig  <weinig@apple.com>
44519
44520         Reviewed by Anders Carlsson.
44521
44522         Make resizing responsive on Windows.
44523
44524         - Use the same waitFor logic as do for the Mac resizing
44525           DrawingAreaUpdateChunk code.
44526
44527         * Shared/win/UpdateChunk.cpp:
44528         (WebKit::UpdateChunk::UpdateChunk):
44529         * Shared/win/UpdateChunk.h:
44530          Add a constructor that only takes an IntRect and allocates
44531          the shared memory mapping for you.
44532         * UIProcess/win/DrawingAreaProxy.cpp:
44533         (WebKit::DrawingAreaProxy::DrawingAreaProxy):
44534         (WebKit::DrawingAreaProxy::ensureBackingStore):
44535         (WebKit::DrawingAreaProxy::paint):
44536         (WebKit::DrawingAreaProxy::drawUpdateChunkIntoBackingStore):
44537         (WebKit::DrawingAreaProxy::setSize):
44538         (WebKit::DrawingAreaProxy::didSetSize):
44539         (WebKit::DrawingAreaProxy::didReceiveMessage):
44540         * UIProcess/win/DrawingAreaProxy.h:
44541         Perform wait in paint as we do on the mac.
44542
44543         * UIProcess/win/WebView.cpp:
44544         (WebKit::WebView::onSizeEvent):
44545         Change to use an IntSize.
44546
44547         * WebProcess/WebPage/win/DrawingAreaUpdateChunk.cpp:
44548         (WebKit::DrawingAreaUpdateChunk::paintIntoUpdateChunk):
44549         (WebKit::DrawingAreaUpdateChunk::display):
44550         (WebKit::DrawingAreaUpdateChunk::setSize):
44551         * WebProcess/WebPage/win/DrawingAreaUpdateChunk.h:
44552         Specialize setSize() drawing and factor out painting
44553         into a helper function.
44554
44555 2010-04-16  Anders Carlsson  <andersca@apple.com>
44556
44557         Reviewed by David Hyatt.
44558
44559         Make run loops be allocated as thread specific data.
44560         https://bugs.webkit.org/show_bug.cgi?id=37723
44561
44562         * Platform/RunLoop.cpp:
44563         (RunLoop::initializeMainRunLoop):
44564         (RunLoop::current):
44565         (RunLoop::main):
44566         * Platform/RunLoop.h:
44567         * Platform/mac/RunLoopMac.mm:
44568         (RunLoop::run):
44569         (RunLoop::stop):
44570         * UIProcess/Launcher/mac/WebProcessLauncher.mm:
44571         (WebKit::webThreadBody):
44572         (WebKit::launchWebProcess):
44573         * UIProcess/ResponsivenessTimer.cpp:
44574         (WebKit::ResponsivenessTimer::ResponsivenessTimer):
44575         * WebProcess/Launching/mac/WebProcessMain.mm:
44576         (main):
44577         * WebProcess/WebProcess.cpp:
44578         (WebKit::WebProcess::isSeparateProcess):
44579
44580 2010-04-16  Sam Weinig  <weinig@apple.com>
44581
44582         Reviewed by Adam Roben.
44583
44584         Use GDI text rendering on Windows by default.
44585
44586         * WebProcess/WebPage/win/WebPageWin.cpp:
44587         (WebKit::WebPage::platformInitialize): Use the AlternateRenderingMode
44588         setting.
44589
44590 2010-04-16  Sam Weinig  <weinig@apple.com>
44591
44592         Reviewed by Adam Roben.
44593
44594         Fix crash when trying to load an invalid URL.
44595
44596         * WebProcess/WebPage/WebPage.cpp:
44597         (WebKit::WebPage::loadURL): Use constructor for ResourceRequest
44598         that takes a KURL instead of the one that takes a String. The one
44599         that takes a string expects a valid URL.
44600
44601 2010-04-16  Sam Weinig  <weinig@apple.com>
44602
44603         Reviewed by Adam Roben.
44604
44605         Make tooltips work. Thanks Adam!
44606
44607         * UIProcess/win/WebView.cpp:
44608         (WebKit::WebView::toolTipChanged): Pass the WebView's HWND, not the tooltip's.
44609
44610 2010-04-15  Anders Carlsson  <andersca@apple.com>
44611
44612         Reviewed by Adam Roben.
44613
44614         Fix build dependencies.
44615
44616         * WebKit2.sln:
44617
44618 2010-04-15  Adam Roben  <aroben@apple.com>
44619
44620         Fix Windows WebKit2 build.
44621
44622         * UIProcess/WebPageProxy.cpp:
44623         (WebKit::WebPageProxy::processDidExit):
44624         * win/WebKit2Generated.make:
44625
44626 2010-04-15  Sam Weinig  <sam@webkit.org>
44627
44628         Reviewed by Anders Carlsson.
44629
44630         Add WebHistoryClient support.
44631         https://bugs.webkit.org/show_bug.cgi?id=37671
44632
44633         Adds the following callbacks:
44634             didNavigateWithNavigationData
44635             didPerformClientRedirect
44636             didPerformServerRedirect
44637             didUpdateHistoryTitle
44638
44639         * Shared/CoreIPCSupport/WebPageProxyMessageKinds.h:
44640         (WebPageProxyMessage::):
44641         * Shared/WebNavigationDataStore.h: Added.
44642         * UIProcess/API/C/WKAPICast.h:
44643         * UIProcess/API/C/WKBase.h:
44644         * UIProcess/API/C/WKNavigationData.cpp: Added.
44645         * UIProcess/API/C/WKNavigationData.h: Added.
44646         * UIProcess/API/C/WKPage.cpp:
44647         * UIProcess/API/C/WKPage.h:
44648         * UIProcess/API/C/WebKit2.h:
44649         * UIProcess/WebHistoryClient.cpp: Copied from UIProcess/WebUIClient.cpp.
44650         * UIProcess/WebHistoryClient.h: Copied from UIProcess/WebUIClient.h.
44651         * UIProcess/WebNavigationData.cpp: Added.
44652         * UIProcess/WebNavigationData.h: Added.
44653         * UIProcess/WebPageProxy.cpp:
44654         * UIProcess/WebPageProxy.h:
44655         * WebKit2.xcodeproj/project.pbxproj:
44656         * WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
44657         * win/WebKit2.vcproj:
44658
44659 2010-04-15  Sam Weinig  <sam@webkit.org>
44660
44661         Reviewed by Adam Roben.
44662
44663         Remove empty file configurations.
44664
44665         * win/WebKit2.vcproj:
44666
44667 2010-04-15  Sam Weinig  <sam@webkit.org>
44668
44669         Reviewed by Anders Carlsson.
44670
44671         Fix WebKit2s build. Don't return temporaries.
44672
44673         * UIProcess/API/C/cf/WKStringCF.cpp:
44674         (WKStringCreateWithCFString):
44675         * UIProcess/API/C/cf/WKURLCF.cpp:
44676         (WKURLCreateWithCFURL):
44677         (WKURLCopyCFURL):
44678
44679 2010-04-12  Geoffrey Garen  <ggaren@apple.com>
44680
44681         Reviewed by Anders Carlsson.
44682
44683         Fixed complexity and performance FIXME created by using KURL in the UI
44684         process -- it turned out that everywhere we were using KURL, we could
44685         have just used String instead. (That's how Windows WebKit works, too.)
44686
44687         I kept WKURLRef and WKStringRef distinct opaque types in the API for now,
44688         though, since there may be profit in changing their backing stores in the
44689         future, and it's nice for the API to encode a difference between generic
44690         strings and strings that are valid, canonical URLs.
44691
44692         * Shared/KURLWrapper.h: Removed. Yay!
44693
44694         * Shared/WebCoreTypeArgumentMarshalling.h: Nixed KURL marshalling functions.
44695         Old callers marshal Strings now, instead. (This is what KURL was doing
44696         under the covers, anyway.)
44697
44698         * UIProcess/API/C/WKAPICast.h:
44699         (toWK): Backed by StringImpl* now.
44700         (toURLRef): Added a disambiguating function for specifying that you want
44701         a WKURLRef, since StringImpl* converts to WKStringRef by default.
44702
44703         * UIProcess/API/C/WKFrame.cpp:
44704         (WKFrameGetProvisionalURL):
44705         (WKFrameGetURL):
44706         * UIProcess/API/C/WKPage.cpp:
44707         (WKPageLoadURL):
44708         * UIProcess/API/C/WKURL.cpp:
44709         * UIProcess/API/C/cf/WKURLCF.cpp:
44710         (WKURLCreateWithCFURL):
44711         (WKURLCopyCFURL):
44712         * UIProcess/WebFrameProxy.cpp:
44713         (WebKit::WebFrameProxy::didStartProvisionalLoad):
44714         (WebKit::WebFrameProxy::didCommitLoad):
44715         * UIProcess/WebFrameProxy.h:
44716         (WebKit::WebFrameProxy::url):
44717         (WebKit::WebFrameProxy::provisionalURL):
44718         * UIProcess/WebPageProxy.cpp:
44719         (WebKit::WebPageProxy::loadURL):
44720         (WebKit::WebPageProxy::didReceiveMessage):
44721         (WebKit::WebPageProxy::didStartProvisionalLoadForFrame):
44722         (WebKit::WebPageProxy::decidePolicyForNavigationAction):
44723         (WebKit::WebPageProxy::decidePolicyForNewWindowAction):
44724         (WebKit::WebPageProxy::decidePolicyForMIMEType):
44725         (WebKit::WebPageProxy::processDidExit):
44726         * UIProcess/WebPageProxy.h:
44727         (WebKit::WebPageProxy::urlAtProcessExit):
44728         * UIProcess/WebPolicyClient.cpp:
44729         (WebKit::WebPolicyClient::decidePolicyForNavigationAction):
44730         (WebKit::WebPolicyClient::decidePolicyForNewWindowAction):
44731         (WebKit::WebPolicyClient::decidePolicyForMIMEType):
44732         * UIProcess/WebPolicyClient.h:
44733         * WebKit2.xcodeproj/project.pbxproj:
44734         * WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
44735         (WebKit::WebFrameLoaderClient::dispatchDidStartProvisionalLoad):
44736         (WebKit::WebFrameLoaderClient::dispatchDecidePolicyForMIMEType):
44737         (WebKit::WebFrameLoaderClient::dispatchDecidePolicyForNewWindowAction):
44738         (WebKit::WebFrameLoaderClient::dispatchDecidePolicyForNavigationAction):
44739         * WebProcess/WebPage/WebPage.cpp:
44740         (WebKit::WebPage::loadURL):
44741         (WebKit::WebPage::didReceiveMessage):
44742         * WebProcess/WebPage/WebPage.h: Replaced KURL / KURLWrapper with String.
44743
44744 2010-04-14  Anders Carlsson  <andersca@apple.com>
44745
44746         Reviewed by Sam Weinig.
44747
44748         Fix horizontal scrollbar repainting
44749         https://bugs.webkit.org/show_bug.cgi?id=37626
44750
44751         Make sure that the update chunk is flipped because that's what WebCore expects.
44752         
44753         * Shared/mac/UpdateChunk.cpp:
44754         (WebKit::UpdateChunk::createImage):
44755         * Shared/mac/UpdateChunk.h:
44756         Add new createImage member function that creates a CGImageRef from the update chunk.
44757         
44758         * UIProcess/mac/DrawingAreaProxyUpdateChunk.mm:
44759         (WebKit::DrawingAreaProxyUpdateChunk::drawUpdateChunkIntoBackingStore):
44760         Pass the right rectangle here; CoreGraphics wants it in non-flipped coordinates.
44761         
44762         (WebKit::DrawingAreaProxyUpdateChunk::ensureBackingStore):
44763         Create a flipped backing store.
44764
44765         * WebProcess/WebPage/mac/DrawingAreaUpdateChunk.cpp:
44766         (WebKit::DrawingAreaUpdateChunk::paintIntoUpdateChunk):
44767         Flip the update chunk.
44768
44769 2010-04-14  Sam Weinig  <sam@webkit.org>
44770
44771         Reviewed by Anders Carlsson.
44772
44773         Add WKRetainPtr helper class as private header
44774         https://bugs.webkit.org/show_bug.cgi?id=37603
44775
44776         WKRetainPtr is just like RetainPtr, but works for WK types instead of
44777         CF/NS types.
44778
44779         * UIProcess/API/cpp: Added.
44780         * UIProcess/API/cpp/WKRetainPtr.h: Added.
44781         * WebKit2.xcodeproj/project.pbxproj: Add new file.
44782         * win/WebKit2.vcproj: Ditto.
44783
44784 2010-04-14  Sam Weinig  <sam@webkit.org>
44785
44786         Reviewed by Anders Carlsson.
44787
44788         Make the WebProcess a LSUIElement to suppress its icon from the Dock.
44789
44790         * WebKit2.xcodeproj/project.pbxproj:
44791         * WebProcess/Info.plist:
44792
44793 2010-04-14  Anders Carlsson  <andersca@apple.com>
44794
44795         Reviewed by Sam Weinig.
44796
44797         Factor code to paint into an update chunk out into a separate function.
44798         https://bugs.webkit.org/show_bug.cgi?id=37594
44799
44800         * WebProcess/WebPage/mac/DrawingAreaUpdateChunk.cpp:
44801         (WebKit::DrawingAreaUpdateChunk::paintIntoUpdateChunk):
44802         (WebKit::DrawingAreaUpdateChunk::display):
44803         (WebKit::DrawingAreaUpdateChunk::setSize):
44804         * WebProcess/WebPage/mac/DrawingAreaUpdateChunk.h:
44805
44806 2010-04-13  Sam Weinig  <sam@webkit.org>
44807
44808         Reviewed by Anders Carlsson.
44809
44810         Fix reported leaks when quitting MiniBrowser with open pages.
44811
44812         * WebProcess/WebPage/WebPage.h: Make close() public.
44813         * WebProcess/WebProcess.cpp:
44814         (WebKit::WebProcess::WebProcess):
44815         (WebKit::WebProcess::removeWebPage):
44816         (WebKit::WebProcess::didClose): If the UIProcess disappears, close
44817         the live pages in an effort to not leak.
44818         * WebProcess/WebProcess.h:
44819
44820 2010-04-13  Sam Weinig  <sam@webkit.org>
44821
44822         Reviewed by Anders Carlsson.
44823
44824         Do a JS collection and clear the memory cache to improve leaks output
44825         when exiting. Only do this in debug builds as it is slow.
44826
44827         * UIProcess/API/mac/WKView.h:
44828         * UIProcess/WebProcessProxy.cpp:
44829         * WebProcess/WebPage/WebPage.cpp:
44830         * WebProcess/WebProcess.cpp:
44831         (WebKit::WebProcess::shutdown):
44832         (WebKit::WebProcess::didClose):
44833
44834 2010-04-13  Sam Weinig  <sam@webkit.org>
44835
44836         Reviewed by Adele Peterson.
44837
44838         Post a null event after calling [NSApp stop] to flush the run loop
44839         and finish teardown.
44840
44841         * Platform/mac/RunLoopMac.mm:
44842         (RunLoop::stop):
44843
44844 2010-04-12  Sam Weinig  <sam@webkit.org>
44845
44846         Reviewed by Anders Carlsson.
44847
44848         Add #ifdef so that WKView is not included on the mac if not
44849         compiling objective-c.
44850
44851         * UIProcess/API/C/WebKit2.h:
44852
44853 2010-04-12  Anders Carlsson  <andersca@apple.com>
44854
44855         Reviewed by Adam Roben.
44856
44857         Add WebKit2 solution file.
44858
44859         * WebKit2.sln: Added.
44860
44861 2010-04-11  Sam Weinig  <sam@webkit.org>
44862
44863         Reviewed by Darin Adler.
44864
44865         Fix for https://bugs.webkit.org/show_bug.cgi?id=37417
44866         Move duplicated internal CoreIPC message kinds to a
44867         header.
44868
44869         * Platform/CoreIPC/Connection.cpp:
44870         (CoreIPC::Connection::processIncomingMessage):
44871         * Platform/CoreIPC/CoreIPCMessageKinds.h: Added.
44872         (CoreIPC::CoreIPCMessage::):
44873         (CoreIPC::):
44874         * Platform/CoreIPC/mac/ConnectionMac.cpp:
44875         * WebKit2.xcodeproj/project.pbxproj:
44876         * win/WebKit2.vcproj:
44877
44878 2010-04-11  Sam Weinig  <sam@webkit.org>
44879
44880         Rubber-stamped by Anders Carlsson.
44881
44882         Disable not-implemented warnings by default for now.
44883
44884         * Shared/NotImplemented.h:
44885
44886 2010-04-10  Sam Weinig  <sam@webkit.org>
44887
44888         Reviewed by Anders Carlsson.
44889
44890         Fix for https://bugs.webkit.org/show_bug.cgi?id=37399
44891         Remove use of STL data structures from CoreIPC code
44892
44893         * Platform/CoreIPC/ArgumentDecoder.cpp:
44894         (CoreIPC::ArgumentDecoder::ArgumentDecoder):
44895         (CoreIPC::ArgumentDecoder::decodeBytes):
44896         (CoreIPC::ArgumentDecoder::removeAttachment):
44897         * Platform/CoreIPC/ArgumentDecoder.h:
44898         Use WTF::Deque instead of std::queue and WTF::Vector
44899         instead of std::vector. Replace use of malloc/free with 
44900         fastMalloc/fastFree.
44901
44902         * Platform/CoreIPC/ArgumentEncoder.cpp:
44903         (CoreIPC::ArgumentEncoder::addAttachment):
44904         (CoreIPC::ArgumentEncoder::releaseAttachments):
44905         * Platform/CoreIPC/ArgumentEncoder.h:
44906         Use WTF::Vector instead of std::list. Replace use of malloc/free
44907         with fastMalloc/fastFree.
44908
44909         * Platform/CoreIPC/Connection.cpp:
44910         (CoreIPC::Connection::sendMessage):
44911         (CoreIPC::Connection::waitForMessage):
44912         (CoreIPC::Connection::processIncomingMessage):
44913         (CoreIPC::Connection::sendOutgoingMessages):
44914         (CoreIPC::Connection::dispatchMessages):
44915         * Platform/CoreIPC/Connection.h:
44916         * Platform/CoreIPC/mac/ConnectionMac.cpp:
44917         (CoreIPC::Connection::sendOutgoingMessage):
44918         (CoreIPC::createArgumentDecoder):
44919         Use WTF::Vector instead of std::queue.
44920
44921         * Platform/RunLoop.cpp:
44922         (RunLoop::performWork):
44923         (RunLoop::scheduleWork):
44924         * Platform/RunLoop.h:
44925         Ditto.
44926
44927         * Platform/WorkQueue.h:
44928         * Platform/win/WorkQueueWin.cpp:
44929         (WorkQueue::scheduleWork):
44930         (WorkQueue::performWork):
44931         Ditto.
44932
44933 2010-04-10  Mark Rowe  <mrowe@apple.com>
44934
44935         Fix an obviously incorrect part of the Xcode configuration cleanup that resulted in debug builds
44936         asserting shortly after launch.
44937
44938         * WebKit2.xcodeproj/project.pbxproj: Fix the setting of DEBUG_DEFINES for the Debug configuration.
44939
44940 2010-04-09  Mark Rowe  <mrowe@apple.com>
44941
44942         Reviewed by Sam Weinig.
44943
44944         Bring the WebKit2 Xcode configuration in to sync with recent changes to the WebKit Xcode configuration files.
44945
44946         In particular, this updates the FEATURE_DEFINES to match those used in the other projects, and brings in
44947         the changes to support building WebKit for older Mac OS X versions from the current Mac OS X version.
44948
44949         * Configurations/Base.xcconfig:
44950         * Configurations/DebugRelease.xcconfig:
44951         * Configurations/FeatureDefines.xcconfig:
44952         * Configurations/Version.xcconfig:
44953
44954 2010-04-09  Mark Rowe  <mrowe@apple.com>
44955
44956         Reviewed by Sam Weinig.
44957
44958         Clean up the Xcode project configuration.
44959
44960         Common target settings are pulled out in to BaseTarget.xcconfig.  The majority of setting overrides are
44961         removed from the Xcode project itself.  Info.plist files are updated to match those used in other frameworks.
44962
44963         * Configurations/BaseTarget.xcconfig: Copied from WebKit2/Configurations/WebKit2.xcconfig.
44964         * Configurations/WebKit2.xcconfig:
44965         * Configurations/WebProcess.xcconfig: Copied from WebKit2/Configurations/WebKit2.xcconfig.
44966         * Info.plist:
44967         * WebKit2.xcodeproj/project.pbxproj:
44968         * WebProcess-Info.plist: Removed.
44969         * WebProcess/Info.plist: Moved from WebProcess-Info.plist.
44970
44971 2010-04-09  Mark Rowe  <mrowe@apple.com>
44972
44973         Build fix.
44974
44975         * WebProcess/WebCoreSupport/mac/WebSystemInterface.m:
44976         (InitWebCoreSystemInterface): Update for recent WKSI changes.
44977
44978 2010-04-09  Sam Weinig  <sam@webkit.org>
44979
44980         Reviewed by Darin Adler.
44981
44982         Fix for https://bugs.webkit.org/show_bug.cgi?id=37351
44983         Cannot build with build-webkit --webkit2
44984
44985         Add some headers that it seems others are not getting
44986         already.
44987
44988         * Platform/mac/WorkQueueMac.cpp: #inlude <mach/mach_port.h>
44989         * Shared/mac/UpdateChunk.cpp: #inlude <mach/vm_map.h>
44990
44991 2010-04-09  Anders Carlsson  <andersca@apple.com>
44992
44993         More build fixes.
44994         
44995         * WebProcess/win/WebProcessMain.h:
44996         Include windows.h here.
44997         
44998         * win/WebKit2.def:
44999         Add new exports.
45000
45001         * win/WebKit2.vcproj:
45002         Add new files.
45003
45004 2010-04-09  Sam Weinig  <sam@webkit.org>
45005
45006         Reviewed by Anders Carlsson.
45007
45008         Add new WKString.h and WKURL.h headers to top
45009         level include.
45010
45011         * UIProcess/API/C/WebKit2.h:
45012
45013 2010-04-09  Anders Carlsson  <andersca@apple.com>
45014
45015         More Windows build fixes.
45016         
45017         * Shared/NotImplemented.h:
45018         * UIProcess/API/C/cf/WKURLCF.cpp:
45019         Fix typo.
45020         
45021         (WKURLCreateWithCFURL):
45022         * UIProcess/API/C/cf/WKURLCF.h:
45023         Ditto.
45024         
45025         * win/WebKit2Generated.make:
45026         Copy the new CF headers.
45027
45028 2010-04-09  Sam Weinig  <sam@webkit.org>
45029
45030         Reviewed by Anders Carlsson.
45031
45032         Two more #include sorting issues.
45033
45034         * Shared/NotImplemented.h:
45035         * WebProcess/WebPage/win/DrawingAreaUpdateChunk.cpp:
45036
45037 2010-04-09  Sam Weinig  <sam@webkit.org>
45038
45039         Reviewed by Anders Carlsson.
45040
45041         Fix minor style nits found by the style-script.
45042
45043         * Platform/CoreIPC/ArgumentDecoder.h:
45044         * Platform/CoreIPC/ArgumentEncoder.cpp:
45045         * Platform/CoreIPC/Attachment.cpp:
45046         * Platform/CoreIPC/Connection.cpp:
45047         * Platform/CoreIPC/Connection.h:
45048         * Platform/CoreIPC/mac/ConnectionMac.cpp:
45049         * Platform/CoreIPC/win/ConnectionWin.cpp:
45050         * Platform/WorkQueue.h:
45051         * Platform/mac/WorkQueueMac.cpp:
45052         * Platform/win/RunLoopWin.cpp:
45053         * Shared/KURLWrapper.h:
45054         * Shared/WebCoreTypeArgumentMarshalling.h:
45055         * Shared/mac/UpdateChunk.cpp:
45056         * UIProcess/API/C/WKPage.cpp:
45057         * UIProcess/API/C/WKURL.cpp:
45058         * UIProcess/Launcher/win/WebProcessLauncher.cpp:
45059         * UIProcess/ResponsivenessTimer.cpp:
45060         * UIProcess/WebLoaderClient.cpp:
45061         * UIProcess/WebPageProxy.h:
45062         * UIProcess/WebPolicyClient.cpp:
45063         * UIProcess/WebUIClient.cpp:
45064         * UIProcess/win/DrawingAreaProxy.cpp:
45065         * UIProcess/win/WebView.cpp:
45066         * WebProcess/Launching/win/WebProcessWinMain.cpp:
45067         * WebProcess/WebCoreSupport/WebChromeClient.cpp:
45068         * WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
45069         * WebProcess/WebCoreSupport/mac/WebSystemInterface.h:
45070         * WebProcess/WebCoreSupport/win/WebCoreLocalizedStrings.cpp:
45071         * WebProcess/WebCoreSupport/win/WebErrorsWin.cpp:
45072         * WebProcess/WebPage/WebFrame.h:
45073         * WebProcess/WebPage/WebPage.cpp:
45074         * WebProcess/WebPage/mac/DrawingAreaUpdateChunk.cpp:
45075         * WebProcess/WebProcess.h:
45076         * WebProcess/win/WebLocalizableStrings.cpp:
45077         * WebProcess/win/WebLocalizableStrings.h:
45078         * WebProcess/win/WebProcessMain.cpp:
45079
45080 2010-04-09  Anders Carlsson  <andersca@apple.com>
45081
45082         Fix Windows build.
45083
45084         * Shared/NotImplemented.h:
45085         Include stdio.h.
45086
45087 2010-04-09  Sam Weinig  <sam@webkit.org>
45088
45089         Reviewed by Anders Carlsson.
45090
45091         Fix for https://bugs.webkit.org/show_bug.cgi?id=37347
45092         Don't use CF types in the new C API
45093
45094         Replace all uses of CF types in the C API.
45095         - Replace CFStringRef with WKStringRef.
45096         - Replace CFURLRef with WKURLRef.
45097
45098         * WebKit2.xcodeproj/project.pbxproj: Add new files.
45099
45100         * Shared/KURLWrapper.h: Added. RefCounted wrapper around KURL.
45101         * UIProcess/API/C/WKAPICast.h: Add new conversions.
45102         * UIProcess/API/C/WKBase.h: Add new types.
45103         * UIProcess/API/C/WKFrame.cpp:
45104         * UIProcess/API/C/WKFrame.h: 
45105         * UIProcess/API/C/WKPage.cpp:
45106         * UIProcess/API/C/WKPage.h:
45107         Replace uses of CF types with WK equivalents.
45108
45109         * UIProcess/API/C/WKString.cpp: Added.
45110         * UIProcess/API/C/WKString.h: Added.
45111         Represents a WebCore::StringImpl*.
45112
45113         * UIProcess/API/C/WKURL.cpp: Added.
45114         * UIProcess/API/C/WKURL.h: Added.
45115         Represents a WebKit::KURLWrapper*.
45116
45117         * UIProcess/API/C/cf: Added.
45118         * UIProcess/API/C/cf/WKStringCF.cpp: Added.
45119         * UIProcess/API/C/cf/WKStringCF.h: Added.
45120         * UIProcess/API/C/cf/WKURLCF.cpp: Added.
45121         * UIProcess/API/C/cf/WKURLCF.h: Added.
45122         CoreFoundation conversion files. Allows converting
45123          WKStringRef <-> CFStringRef
45124          WKURLRef <-> CFURLRef
45125
45126         * UIProcess/ScriptReturnValueCallback.cpp:
45127         (WebKit::ScriptReturnValueCallback::performCallbackWithReturnValue):
45128         * UIProcess/ScriptReturnValueCallback.h:
45129         * UIProcess/WebFrameProxy.cpp:
45130         (WebKit::WebFrameProxy::didStartProvisionalLoad):
45131         (WebKit::WebFrameProxy::didCommitLoad):
45132         * UIProcess/WebFrameProxy.h:
45133         (WebKit::WebFrameProxy::url):
45134         (WebKit::WebFrameProxy::provisionalURL):
45135         * UIProcess/WebLoaderClient.cpp:
45136         (WebKit::WebLoaderClient::didReceiveTitleForFrame):
45137         * UIProcess/WebLoaderClient.h:
45138         * UIProcess/WebPageProxy.cpp:
45139         (WebKit::WebPageProxy::close):
45140         (WebKit::WebPageProxy::didReceiveTitleForFrame):
45141         (WebKit::WebPageProxy::decidePolicyForNavigationAction):
45142         (WebKit::WebPageProxy::decidePolicyForNewWindowAction):
45143         (WebKit::WebPageProxy::decidePolicyForMIMEType):
45144         (WebKit::WebPageProxy::runJavaScriptAlert):
45145         (WebKit::WebPageProxy::didRunJavaScriptInMainFrame):
45146         (WebKit::WebPageProxy::processDidExit):
45147         * UIProcess/WebPageProxy.h:
45148         (WebKit::WebPageProxy::pageTitle):
45149         (WebKit::WebPageProxy::urlAtProcessExit):
45150         * UIProcess/WebPolicyClient.cpp:
45151         (WebKit::WebPolicyClient::decidePolicyForNavigationAction):
45152         (WebKit::WebPolicyClient::decidePolicyForNewWindowAction):
45153         (WebKit::WebPolicyClient::decidePolicyForMIMEType):
45154         * UIProcess/WebPolicyClient.h:
45155         * UIProcess/WebUIClient.cpp:
45156         (WebKit::WebUIClient::runJavaScriptAlert):
45157         * UIProcess/WebUIClient.h:
45158         Don't use CF types internally at all.
45159
45160         * WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
45161         (WebKit::WebFrameLoaderClient::frameLoaderDestroyed):
45162         Fix typo.
45163
45164 2010-04-08  Sam Weinig  <sam@webkit.org>
45165
45166         Reviewed by Anders Carlsson.
45167
45168         Add build support for WebKit2.
45169
45170         * Configurations: Added.
45171         * Configurations/Base.xcconfig: Added.
45172         * Configurations/DebugRelease.xcconfig: Added.
45173         * Configurations/FeatureDefines.xcconfig: Added.
45174         * Configurations/Version.xcconfig: Added.
45175         * Configurations/WebKit2.xcconfig: Added.
45176         * English.lproj: Added.
45177         * English.lproj/InfoPlist.strings: Added.
45178         * Info.plist: Added.
45179         * Makefile: Added.
45180         * WebKit2.xcodeproj: Added.
45181         * WebKit2.xcodeproj/project.pbxproj: Added.
45182         * WebKit2Prefix.cpp: Added.
45183         * WebKit2Prefix.h: Added.
45184         * WebKit2_Prefix.pch: Added.
45185         * WebProcess-Info.plist: Added.
45186         * version.plist: Added.
45187         * win: Added.
45188         * win/WebKit2.def: Added.
45189         * win/WebKit2.vcproj: Added.
45190         * win/WebKit2Generated.make: Added.
45191         * win/WebKit2Generated.vcproj: Added.
45192         * win/WebKit2WebProcess.vcproj: Added.
45193
45194 2010-04-08  Anders Carlsson  <andersca@apple.com>
45195
45196         Reviewed by Sam Weinig.
45197
45198         https://bugs.webkit.org/show_bug.cgi?id=37301
45199         Add WebKit2/UIProcess directory.
45200
45201         * UIProcess: Added.
45202         * UIProcess/API: Added.
45203         * UIProcess/API/C: Added.
45204         * UIProcess/API/C/WKAPICast.h: Added.
45205         * UIProcess/API/C/WKBase.h: Added.
45206         * UIProcess/API/C/WKContext.cpp: Added.
45207         * UIProcess/API/C/WKContext.h: Added.
45208         * UIProcess/API/C/WKFrame.cpp: Added.
45209         * UIProcess/API/C/WKFrame.h: Added.
45210         * UIProcess/API/C/WKFramePolicyListener.cpp: Added.
45211         * UIProcess/API/C/WKFramePolicyListener.h: Added.
45212         * UIProcess/API/C/WKPage.cpp: Added.
45213         * UIProcess/API/C/WKPage.h: Added.
45214         * UIProcess/API/C/WKPageNamespace.cpp: Added.
45215         * UIProcess/API/C/WKPageNamespace.h: Added.
45216         * UIProcess/API/C/WKPreferences.cpp: Added.
45217         * UIProcess/API/C/WKPreferences.h: Added.
45218         * UIProcess/API/C/WebKit2.h: Added.
45219         * UIProcess/API/mac: Added.
45220         * UIProcess/API/mac/PageClientImpl.h: Added.
45221         * UIProcess/API/mac/PageClientImpl.mm: Added.
45222         * UIProcess/API/mac/WKView.h: Added.
45223         * UIProcess/API/mac/WKView.mm: Added.
45224         * UIProcess/API/mac/WKViewInternal.h: Added.
45225         * UIProcess/API/win: Added.
45226         * UIProcess/API/win/WKAPICastWin.h: Added.
45227         * UIProcess/API/win/WKBaseWin.h: Added.
45228         * UIProcess/API/win/WKView.cpp: Added.
45229         * UIProcess/API/win/WKView.h: Added.
45230         * UIProcess/Launcher: Added.
45231         * UIProcess/Launcher/WebProcessLauncher.h: Added.
45232         * UIProcess/Launcher/mac: Added.
45233         * UIProcess/Launcher/mac/WebProcessLauncher.mm: Added.
45234         * UIProcess/Launcher/win: Added.
45235         * UIProcess/Launcher/win/WebProcessLauncher.cpp: Added.
45236         * UIProcess/PageClient.h: Added.
45237         * UIProcess/ProcessModel.h: Added.
45238         * UIProcess/ResponsivenessTimer.cpp: Added.
45239         * UIProcess/ResponsivenessTimer.h: Added.
45240         * UIProcess/ScriptReturnValueCallback.cpp: Added.
45241         * UIProcess/ScriptReturnValueCallback.h: Added.
45242         * UIProcess/WebContext.cpp: Added.
45243         * UIProcess/WebContext.h: Added.
45244         * UIProcess/WebFramePolicyListenerProxy.cpp: Added.
45245         * UIProcess/WebFramePolicyListenerProxy.h: Added.
45246         * UIProcess/WebFrameProxy.cpp: Added.
45247         * UIProcess/WebFrameProxy.h: Added.
45248         * UIProcess/WebLoaderClient.cpp: Added.
45249         * UIProcess/WebLoaderClient.h: Added.
45250         * UIProcess/WebPageNamespace.cpp: Added.
45251         * UIProcess/WebPageNamespace.h: Added.
45252         * UIProcess/WebPageProxy.cpp: Added.
45253         * UIProcess/WebPageProxy.h: Added.
45254         * UIProcess/WebPolicyClient.cpp: Added.
45255         * UIProcess/WebPolicyClient.h: Added.
45256         * UIProcess/WebPreferences.cpp: Added.
45257         * UIProcess/WebPreferences.h: Added.
45258         * UIProcess/WebProcessManager.cpp: Added.
45259         * UIProcess/WebProcessManager.h: Added.
45260         * UIProcess/WebProcessProxy.cpp: Added.
45261         * UIProcess/WebProcessProxy.h: Added.
45262         * UIProcess/WebUIClient.cpp: Added.
45263         * UIProcess/WebUIClient.h: Added.
45264         * UIProcess/mac: Added.
45265         * UIProcess/mac/DrawingAreaProxy.h: Added.
45266         * UIProcess/mac/DrawingAreaProxy.mm: Added.
45267         * UIProcess/mac/DrawingAreaProxyUpdateChunk.h: Added.
45268         * UIProcess/mac/DrawingAreaProxyUpdateChunk.mm: Added.
45269         * UIProcess/win: Added.
45270         * UIProcess/win/DrawingAreaProxy.cpp: Added.
45271         * UIProcess/win/DrawingAreaProxy.h: Added.
45272         * UIProcess/win/WebView.cpp: Added.
45273         * UIProcess/win/WebView.h: Added.
45274
45275 2010-04-08  Anders Carlsson  <andersca@apple.com>
45276
45277         Reviewed by Sam Weinig and Oliver Hunt.
45278
45279         https://bugs.webkit.org/show_bug.cgi?id=37300
45280         Add WebKit2/WebProcess directory.
45281
45282         * WebProcess: Added.
45283         * WebProcess/Launching: Added.
45284         * WebProcess/Launching/mac: Added.
45285         * WebProcess/Launching/mac/WebProcessMain.mm: Added.
45286         * WebProcess/Launching/win: Added.
45287         * WebProcess/Launching/win/WebProcessWinMain.cpp: Added.
45288         * WebProcess/WebCoreSupport: Added.
45289         * WebProcess/WebCoreSupport/WebChromeClient.cpp: Added.
45290         * WebProcess/WebCoreSupport/WebChromeClient.h: Added.
45291         * WebProcess/WebCoreSupport/WebContextMenuClient.cpp: Added.
45292         * WebProcess/WebCoreSupport/WebContextMenuClient.h: Added.
45293         * WebProcess/WebCoreSupport/WebDragClient.cpp: Added.
45294         * WebProcess/WebCoreSupport/WebDragClient.h: Added.
45295         * WebProcess/WebCoreSupport/WebEditorClient.cpp: Added.
45296         * WebProcess/WebCoreSupport/WebEditorClient.h: Added.
45297         * WebProcess/WebCoreSupport/WebErrors.h: Added.
45298         * WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp: Added.
45299         * WebProcess/WebCoreSupport/WebInspectorClient.h: Added.
45300         * WebProcess/WebCoreSupport/mac: Added.
45301         * WebProcess/WebCoreSupport/mac/WebErrorsMac.mm: Added.
45302         * WebProcess/WebCoreSupport/mac/WebSystemInterface.h: Added.
45303         * WebProcess/WebCoreSupport/mac/WebSystemInterface.m: Added.
45304         * WebProcess/WebCoreSupport/win: Added.
45305         * WebProcess/WebCoreSupport/win/WebCoreLocalizedStrings.cpp: Added.
45306         * WebProcess/WebCoreSupport/win/WebErrorsWin.cpp: Added.
45307         * WebProcess/WebPage: Added.
45308         * WebProcess/WebPage/DrawingArea.cpp: Added.
45309         * WebProcess/WebPage/DrawingArea.h: Added.
45310         * WebProcess/WebPage/WebFrame.cpp: Added.
45311         * WebProcess/WebPage/WebFrame.h: Added.
45312         * WebProcess/WebPage/WebPage.cpp: Added.
45313         * WebProcess/WebPage/WebPage.h: Added.
45314         * WebProcess/WebPage/mac: Added.
45315         * WebProcess/WebPage/mac/DrawingAreaUpdateChunk.cpp: Added.
45316         * WebProcess/WebPage/mac/DrawingAreaUpdateChunk.h: Added.
45317         * WebProcess/WebPage/mac/WebPageMac.mm: Added.
45318         * WebProcess/WebPage/win: Added.
45319         * WebProcess/WebPage/win/DrawingAreaUpdateChunk.cpp: Added.
45320         * WebProcess/WebPage/win/DrawingAreaUpdateChunk.h: Added.
45321         * WebProcess/WebPage/win/WebPageWin.cpp: Added.
45322         * WebProcess/WebProcess.cpp: Added.
45323         * WebProcess/WebProcess.h: Added.
45324         * WebProcess/win: Added.
45325         * WebProcess/win/DllMain.cpp: Added.
45326         * WebProcess/win/WebLocalizableStrings.cpp: Added.
45327         * WebProcess/win/WebLocalizableStrings.h: Added.
45328         * WebProcess/win/WebProcessMain.cpp: Added.
45329         * WebProcess/win/WebProcessMain.h: Added.
45330
45331 2010-04-08  Sam Weinig  <sam@webkit.org>
45332
45333         Reviewed by Anders Carlsson.
45334
45335         https://bugs.webkit.org/show_bug.cgi?id=37295
45336         Add WebKit2/Shared directory.
45337
45338         * Shared: Added.
45339         * Shared/CoreIPCSupport: Added.
45340         * Shared/CoreIPCSupport/DrawingAreaMessageKinds.h: Added.
45341         * Shared/CoreIPCSupport/DrawingAreaProxyMessageKinds.h: Added.
45342         * Shared/CoreIPCSupport/WebPageMessageKinds.h: Added.
45343         * Shared/CoreIPCSupport/WebPageProxyMessageKinds.h: Added.
45344         * Shared/CoreIPCSupport/WebProcessMessageKinds.h: Added.
45345         * Shared/NotImplemented.h: Added.
45346         * Shared/WebCoreTypeArgumentMarshalling.h: Added.
45347         * Shared/WebEvent.h: Added.
45348         * Shared/WebEventConversion.cpp: Added.
45349         * Shared/WebEventConversion.h: Added.
45350         * Shared/WebPreferencesStore.cpp: Added.
45351         * Shared/WebPreferencesStore.h: Added.
45352         * Shared/mac: Added.
45353         * Shared/mac/UpdateChunk.cpp: Added.
45354         * Shared/mac/UpdateChunk.h: Added.
45355         * Shared/mac/WebEventFactory.h: Added.
45356         * Shared/mac/WebEventFactory.mm: Added.
45357         * Shared/win: Added.
45358         * Shared/win/UpdateChunk.cpp: Added.
45359         * Shared/win/UpdateChunk.h: Added.
45360         * Shared/win/WebEventFactory.cpp: Added.
45361         * Shared/win/WebEventFactory.h: Added.
45362
45363 2010-04-08  Sam Weinig  <sam@webkit.org>
45364
45365         Reviewed by Anders Carlsson.
45366
45367         https://bugs.webkit.org/show_bug.cgi?id=37293
45368         Add WebKit2/Platform directory.
45369
45370         * Platform: Added.
45371         * Platform/CoreIPC: Added.
45372         * Platform/CoreIPC/ArgumentDecoder.cpp: Added.
45373         * Platform/CoreIPC/ArgumentDecoder.h: Added.
45374         * Platform/CoreIPC/ArgumentEncoder.cpp: Added.
45375         * Platform/CoreIPC/ArgumentEncoder.h: Added.
45376         * Platform/CoreIPC/Arguments.h: Added.
45377         * Platform/CoreIPC/Attachment.cpp: Added.
45378         * Platform/CoreIPC/Attachment.h: Added.
45379         * Platform/CoreIPC/Connection.cpp: Added.
45380         * Platform/CoreIPC/Connection.h: Added.
45381         * Platform/CoreIPC/MessageID.h: Added.
45382         * Platform/CoreIPC/mac: Added.
45383         * Platform/CoreIPC/mac/ConnectionMac.cpp: Added.
45384         * Platform/CoreIPC/mac/MachPort.h: Added.
45385         * Platform/CoreIPC/win: Added.
45386         * Platform/CoreIPC/win/ConnectionWin.cpp: Added.
45387         * Platform/PlatformProcessIdentifier.h: Added.
45388         * Platform/RunLoop.cpp: Added.
45389         * Platform/RunLoop.h: Added.
45390         * Platform/WorkItem.h: Added.
45391         * Platform/WorkQueue.cpp: Added.
45392         * Platform/WorkQueue.h: Added.
45393         * Platform/mac: Added.
45394         * Platform/mac/RunLoopMac.mm: Added.
45395         * Platform/mac/WorkQueueMac.cpp: Added.
45396         * Platform/win: Added.
45397         * Platform/win/RunLoopWin.cpp: Added.
45398
45399 2010-04-08  Sam Weinig  <sam@webkit.org>
45400
45401         Rubber-stamped by Mark Rowe.
45402
45403         Add WebKit2 directory.