12011-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
122011-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
302011-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
402011-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
1592011-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
1672011-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
2132011-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
2792011-02-15  Anders Carlsson  <andersca@apple.com>
280
281        Fix Qt build.
282
283        * WebKit2.pro:
284
2852011-02-15  Anders Carlsson  <andersca@apple.com>
286
287        Fix Windows build.
288
289        * win/WebKit2.vcproj:
290
2912011-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
3182011-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
3412011-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
3592011-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
3702011-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
3862011-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
3962011-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
4152011-02-15  Sam Weinig  <sam@webkit.org>
416
417        Fix windows build.
418
419        * Shared/win/WebCoreArgumentCodersWin.cpp:
420        (CoreIPC::encodeResourceRequest):
421
4222011-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
4372011-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
4582011-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
4652011-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
4822011-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
5122011-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
5212011-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
5352011-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
5482011-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
5632011-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
5812011-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
5932011-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
6112011-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
6262011-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
6822011-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
6912011-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
7032011-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
7162011-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
7392011-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
7512011-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
7632011-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
7732011-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
8092011-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
8612011-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
8842011-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
8942011-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
9092011-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
9592011-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
9682011-02-11  Yael Aharon  <yael.aharon@nokia.com>
969
970        Unreviewed Qt webkit2 build fix after r78392.
971
972        * WebProcess/WebProcess.h:
973
9742011-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
9882011-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
10292011-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
10522011-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
10772011-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
11082011-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
11292011-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
11382011-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
11562011-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
11822011-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
12012011-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
12102011-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
12432011-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
12632011-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
12742011-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
12832011-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
12982011-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
13082011-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
13252011-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
13462011-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
13802011-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
14042011-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
14132011-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
14232011-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
14322011-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
14412011-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
14532011-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
14722011-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
14882011-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
15042011-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
15192011-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
15312011-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
15402011-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
15552011-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
15742011-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
15902011-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
16072011-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
16162011-02-09  Steve Falkenburg  <sfalken@apple.com>
1617
1618        Build fix.
1619
1620        * win/MainWin.cpp:
1621        (wWinMain):
1622
16232011-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
16372011-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
16632011-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
16812011-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
16922011-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
17002011-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
17342011-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
17462011-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
17602011-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
17742011-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
17832011-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
17982011-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
18122011-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
18252011-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
18372011-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
18802011-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
19062011-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
19202011-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
19422011-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
19512011-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
19682011-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
20492011-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
20652011-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
20752011-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
20942011-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
21062011-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
21222011-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
21422011-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
21542011-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
21912011-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
21992011-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
22122011-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
22222011-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
22312011-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
22702011-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
23102011-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
23252011-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
23392011-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
23592011-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
23782011-02-07  Sam Weinig  <sam@webkit.org>
2379
2380        Fix typo. vectical -> vertical.
2381
2382        * UIProcess/WebPageProxy.cpp:
2383        (WebKit::WebPageProxy::didChangeScrollbarsForMainFrame):
2384
23852011-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
24162011-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
24802011-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
25262011-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
25642011-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
25832011-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
25962011-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
26412011-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
26562011-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
26692011-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
26752011-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
26882011-02-06  Ryosuke Niwa  <rniwa@webkit.org>
2689
2690        Unreviewed; speculative Qt build fix.
2691
2692        * WebKit2.pro:
2693
26942011-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
27042011-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
27322011-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
27472011-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
28022011-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
28152011-02-04  Anders Carlsson  <andersca@apple.com>
2816
2817        Fix build.
2818
2819        * WebProcess/mac/WebProcessMac.mm:
2820
28212011-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
28332011-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
28482011-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
28572011-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
28892011-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
28982011-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
29242011-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
29412011-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
29532011-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
29842011-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
30032011-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
30142011-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
30262011-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
30502011-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
30572011-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
30722011-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
30842011-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
30942011-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
31112011-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
31232011-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
31322011-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
31452011-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
32012011-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
32122011-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
32542011-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
32762011-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
32992011-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
33092011-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
33512011-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
33712011-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
34102011-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
34572011-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
34822011-02-03  Sam Weinig  <sam@webkit.org>
3483
3484        Fix Qt build.
3485
3486        * UIProcess/API/qt/qwkpage.cpp:
3487        (QWKPage::QWKPage):
3488
34892011-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
35112011-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
35292011-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
35392011-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
35602011-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
35732011-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
35912011-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
36002011-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
36422011-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
36582011-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
36652011-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
36792011-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
37102011-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
37382011-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
37492011-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
37582011-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
37852011-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
37982011-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
38122011-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
38232011-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
38592011-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
38682011-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
38852011-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
39092011-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
39192011-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
39542011-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
39642011-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
39892011-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
40012011-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
40312011-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
40462011-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
40722011-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
40852011-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
41162011-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
41312011-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
41522011-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
41832011-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
41982011-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
42132011-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
42262011-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
42362011-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
42452011-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
42782011-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
43292011-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
43622011-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
43722011-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
43822011-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
43892011-01-28  Anders Carlsson  <andersca@apple.com>
4390
4391        Fix Windows build.
4392
4393        * Shared/PrintInfo.h:
4394
43952011-01-28  Anders Carlsson  <andersca@apple.com>
4396
4397        Fix tyop.
4398
4399        * Shared/mac/CoreAnimationRenderer.mm:
4400
44012011-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
44322011-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
44522011-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
44612011-01-28  Anders Carlsson  <andersca@apple.com>
4462
4463        Fix build.
4464
4465        * Shared/mac/ShareableSurface.cpp:
4466
44672011-01-28  Anders Carlsson  <andersca@apple.com>
4468
4469        Try to unbreak the Windows build.
4470
4471        * UIProcess/cf/WebPageProxyCF.cpp:
4472
44732011-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
44982011-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
45122011-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
45272011-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
45592011-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
46052011-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
46272011-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
46442011-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
46552011-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
46692011-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
46802011-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
46912011-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
47012011-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
47112011-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
50742011-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
50912011-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
51062011-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
51212011-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
51652011-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
52552011-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
52612011-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
52712011-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
52912011-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
53012011-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
53372011-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
53482011-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
53582011-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
53992011-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
54102011-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
54302011-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
54432011-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
54542011-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
54662011-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
54952011-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
55102011-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
55412011-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
55682011-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
55782011-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
55922011-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
56032011-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
56192011-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
56472011-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
56562011-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
56732011-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
56822011-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
56942011-01-24  Anders Carlsson  <andersca@apple.com>
5695
5696        Fix build.
5697        
5698        * WebProcess/mac/WebProcessMac.mm:
5699        (WebKit::initializeSandbox):
5700
57012011-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
57332011-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
57812011-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
57882011-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
58022011-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
58082011-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
58182011-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
58282011-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
58392011-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
58532011-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
58622011-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
58712011-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
59682011-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
59792011-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
59902011-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
60182011-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
60302011-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
60752011-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
60852011-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
60942011-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
61052011-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
61572011-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
61752011-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
61942011-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
62122011-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
62312011-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
62412011-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
62552011-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
62662011-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
63152011-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
63382011-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
63642011-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
63752011-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
63912011-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
64062011-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
64162011-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
64302011-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
64522011-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
64702011-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
64782011-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
64892011-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
64962011-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
65092011-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
65702011-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
65812011-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
66042011-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
66372011-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
66832011-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
67272011-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
67362011-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
67642011-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
67892011-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
68102011-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
68282011-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
68382011-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
68522011-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
68622011-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
68932011-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
69082011-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
69192011-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
69412011-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
69662011-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
69842011-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
69972011-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
70092011-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
70222011-01-18  Anders Carlsson  <andersca@apple.com>
7023
7024        Fix build.
7025
7026        * UIProcess/win/WebView.cpp:
7027        (WebKit::WebView::scrollView):
7028
70292011-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
70472011-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
70772011-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
70872011-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
71032011-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
71302011-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
71422011-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
71532011-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
72082011-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
72172011-01-17  Jon Honeycutt  <jhoneycutt@apple.com>
7218
7219        Windows build fix. Unreviewed.
7220
7221        * Shared/PrintInfo.cpp:
7222        Use #include, not #import.
7223
72242011-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
72312011-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
73032011-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
73152011-01-17  Alexey Proskuryakov  <ap@apple.com>
7316
7317        Build fix.
7318
7319        * Platform/Logging.cpp:
7320
73212011-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
73312011-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
73572011-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
73652011-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
73712011-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
73822011-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
74132011-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
74212011-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
74312011-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
74502011-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
74642011-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
74792011-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
74892011-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
75102011-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
75242011-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
75362011-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
75662011-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
75782011-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
75882011-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
75982011-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
76452011-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
76562011-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
76692011-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
76882011-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
77062011-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
77122011-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
77302011-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
77512011-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
77752011-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
77972011-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
78212011-01-12  Anders Carlsson  <andersca@apple.com>
7822
7823        Fix build.
7824
7825        * UIProcess/DrawingAreaProxyImpl.cpp:
7826        (WebKit::DrawingAreaProxyImpl::incorporateUpdate):
7827
78282011-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
78602011-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
78912011-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
79042011-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
79612011-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
79932011-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
80212011-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
80352011-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
80632011-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
80712011-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
80822011-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
80932011-01-11  Anders Carlsson  <andersca@apple.com>
8094
8095        Build fix.
8096
8097        * WebKit2.xcodeproj/project.pbxproj:
8098
80992011-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
81412011-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
81752011-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
81882011-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
82282011-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
82382011-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
82662011-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
82952011-01-11  Anders Carlsson  <andersca@apple.com>
8296
8297        Fix Windows build.
8298
8299        * WebProcess/WebCoreSupport/win/WebPopupMenuWin.cpp:
8300        (WebKit::WebPopupMenu::setUpPlatformData):
8301
83022011-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
83212011-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
83902011-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
84022011-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
84172011-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
84282011-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
84542011-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
84672011-01-11  Sam Weinig  <sam@webkit.org>
8468
8469        Roll r75460 back in with build fix.
8470
84712011-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
85262011-01-11  Adam Roben  <aroben@apple.com>
8527
8528        Fix a typo in a comment
8529
8530        * WebProcess/WebCoreSupport/WebPlatformStrategies.cpp:
8531
85322011-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
85782011-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
86002011-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
86172011-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
86252011-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
86432011-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
86662011-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
87182011-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
87632011-01-10  Anders Carlsson  <andersca@apple.com>
8764
8765        Fix Windows build again.
8766
8767        * UIProcess/win/WebView.cpp:
8768        (WebKit::WebView::isViewWindowActive):
8769
87702011-01-10  Anders Carlsson  <andersca@apple.com>
8771
8772        Fix Windows build.
8773
8774        * UIProcess/win/WebView.cpp:
8775        (WebKit::WebView::onShowWindowEvent):
8776
87772011-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
88452011-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
88702011-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
88792011-01-10  Sam Weinig  <sam@webkit.org>
8880
8881        Fix the build.
8882
8883        * WebProcess/WebPage/WebPage.cpp:
8884        (WebKit::WebPage::WebPage):
8885
88862011-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
89892011-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
89952011-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
90082011-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
90182011-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
90302011-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
90572011-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
90762011-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
91152011-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
91602011-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
91722011-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
91832011-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
91962011-01-08  Csaba Osztrogonác  <ossy@webkit.org>
9197
9198        [Qt][WK2] Unreviewed buildfix after r75313.
9199
9200        * Scripts/generate-forwarding-headers.pl:
9201
92022011-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
92092011-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
92182011-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
92942011-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
93092011-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
93242011-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
93702011-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
93922011-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
94282011-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
94452011-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
94712011-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
94882011-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
95032011-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
95262011-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
95392011-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
95532011-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
95732011-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
95862011-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
96032011-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
96162011-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
96262011-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
96822011-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
97092011-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
97272011-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
97812011-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
97942011-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
98042011-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
98372011-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
98592011-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
98692011-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
98872011-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
99522011-01-05  Anders Carlsson  <andersca@apple.com>
9953
9954        Fix Windows build.
9955        
9956        * WebProcess/WebPage/WebPage.cpp:
9957
99582011-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
100042011-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
100152011-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
100892011-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
101382011-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
101472011-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
101782011-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
101982011-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
102072011-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
102142011-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
102422011-01-04  Anders Carlsson  <andersca@apple.com>
10243
10244        Fix build.
10245
10246        * UIProcess/mac/TextCheckerMac.mm:
10247        (WebKit::TextChecker::getGuessesForWord):
10248
102492011-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
102852011-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
102952011-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
103772011-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
103862011-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
103962011-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
104652011-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
104912011-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
105102011-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
105322011-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
105422011-01-04  Anders Carlsson  <andersca@apple.com>
10543
10544        Build fixes.
10545
10546        * UIProcess/qt/TextCheckerQt.cpp:
10547        * UIProcess/win/TextCheckerWin.cpp:
10548
105492011-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
105572011-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
106282011-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
106352011-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
106672011-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
106742011-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
106812011-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
107102011-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
107602011-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
107882011-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
108012011-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
108122011-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
108212011-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
108332011-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
108442011-01-01  Adam Barth  <abarth@webkit.org>
10845
10846        Speculative build fix for Qt.  Add some more include paths.
10847
10848        * WebKit2.pro:
10849
108502011-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
108602010-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
108732010-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
108872010-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
109022010-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
109112010-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
109802010-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
110132010-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
110822010-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
111332010-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
111532010-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
111802010-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
111962010-12-24  Simon Fraser  <simon.fraser@apple.com>
11197
11198        Fix the Qt build after r74650.
11199
11200        * WebProcess/WebCoreSupport/WebPlatformStrategies.cpp:
11201
112022010-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
112132010-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
112292010-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
112382010-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
112552010-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
112772010-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
112952010-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
113022010-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
113752010-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
113892010-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
114012010-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
114632010-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
114792010-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
115112010-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
115232010-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
115362010-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
115812010-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
116192010-12-22  Darin Adler  <darin@apple.com>
11620
11621        * WebProcess/WebPage/WebPage.cpp: Add #if to try to fix non-Mac builds.
11622
116232010-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
117132010-12-22  Anders Carlsson  <andersca@apple.com>
11714
11715        Fix build.
11716
11717        * Platform/mac/MachUtilities.cpp:
11718
117192010-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
117592010-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
117702010-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
117862010-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
118012010-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
118252010-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
118342010-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
118582010-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
118732010-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
118912010-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
118982010-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
119132010-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
119262010-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
119552010-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
119652010-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
120062010-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
120492010-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
120812010-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
120932010-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
121072010-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
121192010-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
121302010-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
121422010-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
121562010-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
121682010-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
121842010-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
122002010-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
122242010-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
122322010-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
122552010-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
122642010-12-17  Brian Weinstein  <bweinstein@apple.com>
12265
12266        Qt build fix.
12267
12268        * UIProcess/qt/WebPopupMenuProxyQt.h:
12269
122702010-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
123322010-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
123562010-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
123872010-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
124152010-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
124452010-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
124812010-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
124932010-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
125172010-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
125432010-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
125742010-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
126052010-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
126272010-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
126542010-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
126852010-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
126982010-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
127112010-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
127202010-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
127662010-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
127812010-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
128102010-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
128282010-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
128342010-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
129302010-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
129472010-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
129712010-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
129852010-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
129982010-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
130142010-12-14  Anders Carlsson  <andersca@apple.com>
13015
13016        Fix Windows build.
13017
13018        * win/WebKit2Common.vsprops:
13019
130202010-12-14  Anders Carlsson  <andersca@apple.com>
13021
13022        Fix Qt build.
13023
13024        * WebKit2.pro:
13025
130262010-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
130352010-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
130702010-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
130832010-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
130982010-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
131062010-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
131242010-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
131362010-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
131502010-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
132092010-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
132262010-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
132432010-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
132622010-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
132782010-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
133472010-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
133642010-12-13  Brian Weinstein  <bweinstein@apple.com>
13365
13366        Windows Build Fix. Add a needed include.
13367
13368        * UIProcess/win/WebView.cpp:
13369
133702010-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
134102010-12-13  Sam Weinig  <sam@webkit.org>
13411
13412        Fix windows build.
13413
13414        * UIProcess/win/WebView.h:
13415
134162010-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
134252010-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
134492010-12-13  Anders Carlsson  <andersca@apple.com>
13450
13451        Fix build.
13452
13453        * UIProcess/WebPageProxy.h:
13454
134552010-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
134712010-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
134962010-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
135802010-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
135872010-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
136022010-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
136402010-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
136502010-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
136672010-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
136822010-12-13  Dan Bernstein  <mitz@apple.com>
13683
13684        Coding style fix.
13685
13686        * WebProcess/Downloads/mac/DownloadMac.mm:
13687        (WebKit::originatingURLFromBackForwardList):
13688
136892010-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
136972010-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
137102010-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
137202010-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
137262010-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
137392010-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
137512010-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
137592010-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
137682010-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
137782010-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
138082010-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
138192010-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
138582010-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
138672010-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
138782010-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
138872010-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
139072010-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
139402010-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
139652010-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
139722010-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
140712010-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
140972010-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
141092010-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
141312010-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
142092010-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
142322010-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
142442010-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
142742010-12-09  Mark Rowe  <mrowe@apple.com>
14275
14276        Fix the 32-bit build.
14277
14278        * Shared/cf/ArgumentCodersCF.cpp:
14279        (CoreIPC::sizeForNumberType):
14280
142812010-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
142942010-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
143092010-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
143522010-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
143692010-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
143892010-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
144002010-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
144122010-12-09  Darin Adler  <darin@apple.com>
14413
14414        Qt build fix.
14415
14416        * WebProcess/WebCoreSupport/qt/WebContextMenuClientQt.cpp: Include "NotImplemented.h".
14417
144182010-12-09  Steve Falkenburg  <sfalken@apple.com>
14419
14420        Windows build fix.
14421        
14422        * WebProcess/WebCoreSupport/win/WebContextMenuClientWin.cpp:
14423
144242010-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
144612010-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
144712010-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
145222010-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
146102010-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
146212010-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
147042010-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
147202010-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
147402010-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
147522010-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
147742010-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
147952010-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
148082010-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
148242010-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
148402010-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
148512010-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
148692010-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
148842010-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
149002010-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
149422010-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
149542010-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
149642010-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
149712010-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
149992010-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
150112010-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
150272010-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
150562010-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
150802010-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
151342010-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
151532010-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
151602010-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
151882010-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
152242010-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
152412010-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
152542010-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
152812010-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
153132010-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
153292010-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
153642010-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
154012010-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
154312010-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
154412010-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
154562010-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
154642010-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
154842010-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
154932010-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
155072010-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
155142010-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
156312010-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
156412010-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
156542010-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
156982010-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
157182010-12-02  Sam Weinig  <sam@webkit.org>
15719
15720        Fix Qt.
15721
15722        * UIProcess/API/qt/qwkpreferences.cpp:
15723        (QWKPreferencesPrivate::createPreferences):
15724
157252010-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
157952010-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
158102010-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
158282010-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
158402010-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
159312010-12-02  Steve Falkenburg  <sfalken@apple.com>
15932
15933        Mac build fix.
15934
15935        * WebProcess/WebKitMain.cpp:
15936        (enableDataExecutionPrevention):
15937
159382010-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
159922010-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
160052010-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
160172010-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
160242010-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
160742010-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
160902010-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
161032010-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
161372010-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
161472010-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
161562010-12-01  Sam Weinig  <sam@webkit.org>
16157
16158        Another windows build fix.
16159
16160        * UIProcess/API/C/win/WKView.cpp:
16161        (WKViewCreate):
16162
161632010-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
161702010-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
163112010-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
163292010-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
163522010-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
163742010-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
163942010-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
164012010-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
164102010-12-01  Anders Carlsson  <andersca@apple.com>
16411
16412        Fix build.
16413
16414        * UIProcess/win/WebView.h:
16415
164162010-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
164772010-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
164872010-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
164952010-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
165342010-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
165472010-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
165592010-11-30  Anders Carlsson  <andersca@apple.com>
16560
16561        Fix build.
16562
16563        * Scripts/webkit2/messages.py:
16564
165652010-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
165822010-11-30  Anders Carlsson  <andersca@apple.com>
16583
16584        Fix build.
16585
16586        * PluginProcess/mac/PluginProcessShim.cpp:
16587
165882010-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
166202010-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
166342010-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
166472010-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
166532010-11-30  Dan Bernstein  <mitz@apple.com>
16654
16655        Try to fix the Windows build.
16656
16657        * win/WebKit2.vcproj:
16658
166592010-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
166792010-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
166892010-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
167042010-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
167132010-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
167452010-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
167522010-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
167712010-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
168432010-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
168712010-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
169042010-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
169202010-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
169352010-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
169442010-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
169802010-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
170232010-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
170352010-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
170462010-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
170592010-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
171242010-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
171362010-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
171772010-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
171872010-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
172062010-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
172362010-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
172482010-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
172632010-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
173132010-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
173402010-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
173982010-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
174182010-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
174282010-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
174662010-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
174772010-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
174932010-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
175012010-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
175222010-11-18  Darin Adler  <darin@apple.com>
17523
17524        * WebProcess/WebPage/WebPage.cpp: Fix build by rolling out a change.
17525
175262010-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
175392010-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
175492010-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
175672010-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
176202010-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
176302010-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
176392010-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
176542010-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
176642010-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
176742010-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
176852010-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
176972010-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
177092010-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
177232010-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
177312010-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
177462010-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
177892010-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
177972010-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
178102010-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
178272010-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
178612010-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
178852010-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
178962010-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
179122010-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
179642010-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
179732010-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
179852010-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
180202010-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
180522010-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
180812010-11-16  Anders Carlsson  <andersca@apple.com>
18082
18083        Fix clang++ build.
18084
18085        * Scripts/webkit2/messages.py:
18086        * WebProcess/WebPage/WebInspector.h:
18087
180882010-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
181022010-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
181242010-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
181502010-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
181642010-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
181772010-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
181862010-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
182152010-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
182312010-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
182432010-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
182602010-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
182702010-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
182782010-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
182882010-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
182942010-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
183002010-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
183692010-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
184122010-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
184542010-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
184852010-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
186172010-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
186292010-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
186382010-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
186562010-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
186712010-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
186942010-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
187172010-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
187292010-11-12  Adam Roben  <aroben@apple.com>
18730
18731        Windows build fix
18732
18733        * win/WebKit2Generated.make: Copy WKBundlePageOverlay.h.
18734
187352010-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
187422010-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
187802010-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
188012010-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
188072010-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
188142010-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
188222010-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
188322010-11-11  Brian Weinstein  <bweinstein@apple.com>
18833
18834        Windows Build Fix. Change #imports to #includes.
18835
18836        * UIProcess/win/WebInspectorProxyWin.cpp:
18837
188382010-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
188992010-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
189342010-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
189442010-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
189802010-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
189872010-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
190002010-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
190082010-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
190242010-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
190452010-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
190682010-11-10  Ada Chan  <adachan@apple.com>
19069        
19070        Fix Windows build.
19071
19072        * win/WebKit2Generated.make:
19073
190742010-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
190932010-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
191232010-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
191362010-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
191482010-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
191562010-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
191832010-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
192132010-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
192222010-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
192302010-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
192882010-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
193002010-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
193442010-11-09  Sam Weinig  <sam@webkit.org>
19345
19346        Fix mac build.
19347
19348        * WebProcess/mac/WebProcessMac.mm:
19349        (WebKit::WebProcess::platformSetCacheModel):
19350
193512010-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
193632010-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
194182010-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
194642010-11-09  Sam Weinig  <sam@webkit.org>
19465
19466        Fix windows build.
19467
19468        * WebProcess/win/WebProcessWin.cpp:
19469        (WebKit::WebProcess::platformSetCacheModel):
19470
194712010-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
194892010-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
195062010-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
195612010-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
195852010-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
196172010-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
196272010-11-09  Sam Weinig  <sam@webkit.org>
19628
19629        Fix Windows build.
19630
19631        * win/WebKit2.vcproj:
19632
196332010-11-09  Sam Weinig  <sam@webkit.org>
19634
19635        Fix Qt build.
19636
19637        * WebKit2.pro:
19638
196392010-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
197242010-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
197352010-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
197472010-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
197722010-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
197802010-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
198042010-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
198652010-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
199192010-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
199372010-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
199882010-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
200262010-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
200402010-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
200502010-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
200802010-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
200912010-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
201102010-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
201372010-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
201582010-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
201692010-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
201812010-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
201972010-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
202592010-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
202842010-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
203102010-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
203282010-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
203582010-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
203652010-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
204232010-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
204442010-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
204752010-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
204902010-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
205042010-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
205512010-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
205832010-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
206012010-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
206252010-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
206362010-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
206462010-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
206552010-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
206762010-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
207532010-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
207672010-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
207992010-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
208112010-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
208252010-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
208832010-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
208932010-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
209122010-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
209492010-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
209712010-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
210072010-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
210252010-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
210422010-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
211012010-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
211082010-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
211412010-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
211482010-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
211792010-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
211952010-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
212142010-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
212312010-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
212462010-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
212562010-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
213492010-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
213562010-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
213772010-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
214432010-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
214622010-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
214822010-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
215092010-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
215652010-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
215742010-11-01  Anders Carlsson  <andersca@apple.com>
21575
21576        Fix build.
21577
21578        * WebKit2.xcodeproj/project.pbxproj:
21579
215802010-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
216022010-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
216552010-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
217012010-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
217262010-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
217532010-11-01  Brady Eidson  <beidson@apple.com>
21754
21755        Windows build fix.
21756
21757        * UIProcess/win/WebView.cpp:
21758
217592010-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
218402010-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
218732010-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
218852010-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
219162010-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
219302010-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
219442010-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
219562010-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
219702010-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
219792010-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
220022010-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
220462010-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
220652010-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
220792010-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
221462010-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
221782010-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
221952010-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
222052010-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
222232010-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
222722010-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
222932010-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
223132010-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
223202010-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
223442010-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
223722010-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
223972010-10-29  Adam Roben  <aroben@apple.com>
22398
22399        Touch WebKit2Prefix.h to fix incremental builds on Windows
22400
22401        * WebKit2Prefix.h:
22402
224032010-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
224432010-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
224522010-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
224592010-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
224862010-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
225072010-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
225232010-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
225362010-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
225492010-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
225612010-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
225742010-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
226142010-10-28  Dan Bernstein  <mitz@apple.com>
22615
22616        Build fix.
22617
22618        * win/WebKit2Common.vsprops:
22619
226202010-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
226292010-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
226552010-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
226682010-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
226792010-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
226972010-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
227072010-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
227172010-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
227232010-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
227542010-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
227672010-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
228162010-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
228222010-10-27  Brian Weinstein  <bweinstein@apple.com>
22823
22824        Windows build fix. Copy a new header into WebKitOutputDir.
22825
22826        * win/WebKit2Generated.make:
22827
228282010-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
229352010-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
229652010-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
229912010-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
230322010-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
230482010-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
230812010-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
231032010-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
231272010-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
231512010-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
231662010-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
231802010-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
231952010-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
232152010-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
232302010-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
232412010-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
232492010-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
232562010-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
232762010-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
233152010-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
233472010-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
233592010-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
233772010-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
233992010-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
234222010-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
234412010-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
234552010-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
235022010-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
235172010-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
235242010-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
235642010-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
235872010-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
235992010-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
236202010-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
236432010-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
236552010-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
236662010-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
236832010-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
237192010-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
237382010-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
237492010-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
237632010-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
238042010-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
238512010-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
238722010-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
238862010-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
238962010-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
239242010-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
239352010-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
239492010-10-22  Anders Carlsson  <andersca@apple.com>
23950
23951        Fix clang++ build.
23952
23953        * Scripts/webkit2/messages.py:
23954
239552010-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
239662010-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
239822010-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
240062010-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
240362010-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
240582010-10-22  Sam Weinig  <sam@webkit.org>
24059
24060        Fix Qt build.
24061
24062        * UIProcess/API/qt/ClientImpl.h:
24063
240642010-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
240962010-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
241312010-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
241412010-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
241772010-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
241932010-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
242182010-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
242322010-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
242432010-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
242712010-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
242912010-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
243232010-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
243472010-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
243582010-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
243872010-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
244042010-10-20  Anders Carlsson  <andersca@apple.com>
24405
24406        Fix clang++ build.
24407
24408        * UIProcess/API/C/WKNativeEvent.h:
24409
244102010-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
244242010-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
244572010-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
244752010-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
244902010-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
244982010-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
245202010-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
245552010-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
246082010-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
246402010-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
246622010-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
246692010-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
247002010-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
247522010-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
247622010-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
247752010-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
247842010-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
247992010-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
248102010-10-18  Sam Weinig  <sam@webkit.org>
24811
24812        Fix Qt build.
24813
24814        * WebKit2.pro:
24815
248162010-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
248322010-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
248482010-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
248902010-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
248992010-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
249272010-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
249402010-10-15  Sam Weinig  <sam@webkit.org>
24941
24942        Fix Qt build.
24943
24944        * UIProcess/API/qt/qwkpage.cpp:
24945        (QWKPagePrivate::createPopupMenuProxy):
24946
249472010-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
250502010-10-15  Anders Carlsson  <andersca@apple.com>
25051
25052        Fix build.
25053
25054        * UIProcess/API/mac/FindIndicatorWindow.mm:
25055        (-[WebFindIndicatorWindowAnimation setCurrentProgress:]):
25056
250572010-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
250782010-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
251152010-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
251342010-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
251672010-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
252022010-10-15  Anders Carlsson  <andersca@apple.com>
25203
25204        Fix build.
25205
25206        * UIProcess/API/qt/qwkpage.cpp:
25207        * UIProcess/win/WebView.cpp:
25208
252092010-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
252552010-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
252932010-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
253162010-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
253422010-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
253742010-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
254102010-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
254222010-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
254332010-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
254442010-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
254632010-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
254752010-10-13  Anders Carlsson  <andersca@apple.com>
25476
25477        Build fix.
25478
25479        * Shared/cg/BackingStoreCG.cpp:
25480
254812010-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
254942010-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
255222010-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
255392010-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
255502010-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
255582010-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
255702010-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
255812010-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
256042010-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
256402010-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
256502010-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
256722010-10-12  Jon Honeycutt  <jhoneycutt@apple.com>
25673
25674        Build fix. Unreviewed.
25675
25676        * win/WebKit2Generated.make:
25677        Copy over WKBundleHitTestResult.h.
25678
256792010-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
256942010-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
257132010-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
257272010-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
257762010-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
258112010-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
258212010-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
258512010-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
258662010-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
258882010-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
258962010-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
259052010-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
259132010-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
259302010-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
259472010-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
259572010-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
259742010-10-11  Brian Weinstein  <bweinstein@apple.com>
25975
25976        Windows build fix. Add a needed include.
25977
25978        * UIProcess/cf/WebPageProxyCF.cpp:
25979
259802010-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
259872010-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
260082010-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
260462010-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
260792010-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
260932010-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
261072010-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
261262010-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
261382010-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
261662010-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
261752010-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
261852010-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
261962010-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
262042010-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
262132010-10-11  Kenneth Rohde Christiansen  <kenneth.christiansen@openbossa.org>
26214
26215        Unreviewed win build fix.
26216
26217        * WebProcess/WebCoreSupport/WebChromeClient.cpp:
26218
262192010-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
262642010-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
262752010-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
262952010-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
263222010-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
263822010-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
264072010-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
264212010-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
264302010-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
264452010-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
264552010-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
264652010-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
264712010-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
265302010-10-07  Sam Weinig  <sam@webkit.org>
26531
26532        Update unit tests results.
26533
26534        * Scripts/webkit2/messages_unittest.py:
26535
265362010-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
265432010-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
265502010-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
265952010-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
266032010-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
266262010-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
266352010-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
266502010-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
266602010-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
266722010-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
266812010-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
266942010-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
267102010-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
267272010-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
267402010-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
267572010-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
267692010-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
267832010-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
268032010-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
268142010-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
269412010-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
269512010-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
270282010-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
270402010-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
270912010-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
271192010-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
271502010-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
271742010-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
271882010-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
272012010-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
272152010-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
272252010-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
272352010-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
272432010-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
272782010-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
272892010-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
273442010-10-04  Sam Weinig  <sam@webkit.org>
27345
27346        Fix the Mac build.
27347
27348        * WebProcess/mac/WebProcessMac.mm:
27349
273502010-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
273912010-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
274572010-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
274942010-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
275022010-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
275342010-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
275542010-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
275662010-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
275892010-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
276232010-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
276482010-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
276812010-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
276942010-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
277042010-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
277192010-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
277322010-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
277432010-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
277672010-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
278172010-09-29  Anders Carlsson  <andersca@apple.com>
27818
27819        Update expected results.
27820
27821        * Scripts/webkit2/messages_unittest.py:
27822
278232010-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
278622010-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
279012010-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
279452010-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
279592010-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
279962010-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
280072010-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        
280492010-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
280722010-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
280982010-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
281242010-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
282132010-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
282482010-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
282822010-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
283062010-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
283312010-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
283472010-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
283532010-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
283642010-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
283782010-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
283872010-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
283972010-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
284032010-09-27  Darin Adler  <darin@apple.com>
28404
28405        * Scripts/webkit2: Added property svn:ignore.
28406
284072010-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
284402010-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
284792010-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
284922010-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
285242010-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
285412010-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
285502010-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
285752010-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
285962010-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
286082010-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
286312010-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
286502010-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
286622010-09-26  Sam Weinig  <sam@webkit.org>
28663
28664        Another windows build fix windows attempt.
28665
28666        * win/WebKit2Common.vsprops:
28667
286682010-09-26  Sam Weinig  <sam@webkit.org>
28669
28670        Another windows build fix windows attempt.
28671
28672        * win/WebKit2Generated.make:
28673
286742010-09-26  Sam Weinig  <sam@webkit.org>
28675
28676        Attempt to fix windows build.
28677
28678        * win/WebKit2Common.vsprops:
28679
286802010-09-26  Sam Weinig  <sam@webkit.org>
28681
28682        Attempt to fix Qt build.
28683
28684        * WebKit2.pro:
28685
286862010-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
288142010-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
288222010-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
288392010-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
288592010-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
288922010-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
289512010-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
289652010-09-24  Sam Weinig  <sam@webkit.org>
28966
28967        Fix release build.
28968
28969        * WebProcess/InjectedBundle/API/c/WKBundlePage.h:
28970
289712010-09-24  Enrica Casucci  <enrica@apple.com>
28972
28973        One more build fix.
28974
28975        * UIProcess/API/qt/qwkpage.cpp:
28976        (QWKPagePrivate::setEditCommandState):
28977
289782010-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
290292010-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
290382010-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
290862010-09-24  Anders Carlsson  <andersca@apple.com>
29087
29088        Build fix.
29089
29090        * WebKit2.xcodeproj/project.pbxproj:
29091
290922010-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
291462010-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
291872010-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
292062010-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
292262010-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
292442010-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
292972010-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
293062010-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
293242010-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
293542010-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
293922010-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
294212010-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
294502010-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
294642010-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
294852010-09-24  Sam Weinig  <sam@webkit.org>
29486
29487        Fix windows build.
29488
29489        * Shared/win/PlatformCertificateInfo.cpp:
29490        (WebKit::PlatformCertificateInfo::PlatformCertificateInfo):
29491
294922010-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
295142010-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
295522010-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
295672010-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
295922010-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
296162010-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
296482010-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
296742010-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
296842010-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
296912010-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
297092010-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
297632010-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
297742010-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
297892010-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
298032010-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
298192010-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
298292010-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
298432010-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
298592010-09-22  Adam Roben  <aroben@apple.com>
29860
29861        Windows build fix
29862
29863        * WebProcess/WebKitMain.cpp:
29864        (WebKitMain): Fix typo
29865
298662010-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
299972010-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
300392010-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
300582010-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
300732010-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        
300952010-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
301102010-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
301312010-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
301572010-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
301692010-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
301822010-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
301942010-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
302022010-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
302472010-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
302582010-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
302722010-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
303352010-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
303462010-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
303572010-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
303822010-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
304102010-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
304332010-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
304612010-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
304752010-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
305192010-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
305312010-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
305522010-09-19  Sam Weinig  <sam@webkit.org>
30553
30554        Fix windows build.
30555
30556        * UIProcess/API/C/WKPage.h:
30557
305582010-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
305652010-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
305852010-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
306112010-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
306202010-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
306292010-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
306792010-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
307682010-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
307792010-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
307982010-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
309162010-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
309252010-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
309402010-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
309572010-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
310312010-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
310402010-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
310662010-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
310772010-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
310902010-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
311082010-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
311352010-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
311442010-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
311842010-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
311932010-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
312052010-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
312152010-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
312302010-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
312412010-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
312582010-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
312722010-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
312842010-09-14  Sam Weinig  <sam@webkit.org>
31285
31286        Fix windows build.
31287
31288        * win/WebKit2Generated.make:
31289
312902010-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
313142010-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
313282010-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
313352010-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
313472010-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
313592010-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
313802010-09-13  Sam Weinig  <sam@webkit.org>
31381
31382        Fix windows build.
31383
31384        * UIProcess/Launcher/win/ProcessLauncherWin.cpp:
31385
313862010-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
314362010-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
314482010-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
314722010-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
314792010-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
314892010-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
315112010-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
315412010-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
315522010-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
315952010-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
316072010-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
316342010-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
316452010-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
316572010-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
316712010-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
316902010-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
317022010-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
317162010-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
317282010-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
317382010-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
317712010-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
317772010-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
317862010-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
318022010-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
318252010-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
318352010-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
318892010-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
318952010-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
319202010-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
319272010-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
319562010-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
319712010-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
319772010-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
319832010-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
319902010-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
320052010-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
320152010-09-07  Sam Weinig  <sam@webkit.org>
32016
32017        Another windows fix.
32018
32019        * UIProcess/win/WebView.cpp:
32020
320212010-09-07  Sam Weinig  <sam@webkit.org>
32022
32023        Try and fix windows.
32024
32025        * UIProcess/WebEditCommandProxy.h:
32026
320272010-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
320352010-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
321372010-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
321532010-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
321652010-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
322022010-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
322332010-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
322742010-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
322852010-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
323052010-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
323422010-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
323882010-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
324242010-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
324322010-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
324482010-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
324662010-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
325122010-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
325282010-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
325392010-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
325732010-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
326242010-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
326352010-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
326442010-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
326582010-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
327022010-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
327082010-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
327552010-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
327792010-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
327872010-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
328012010-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
328152010-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
328902010-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
329052010-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
329152010-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
329262010-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
329512010-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
329582010-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
330302010-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
330412010-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
330852010-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
330962010-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
331072010-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
331312010-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
331482010-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
331542010-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
331622010-08-26  Gavin Barraclough  <barraclough@apple.com>
33163
33164        Speculative windows build fix.
33165
33166        * UIProcess/win/WebView.cpp:
33167        (WebKit::WebView::WebView):
33168
331692010-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
332342010-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
332772010-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
332892010-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
332992010-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
333082010-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
333292010-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
333472010-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
333602010-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
333732010-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
333822010-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
333902010-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
333992010-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
334112010-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
334222010-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
334342010-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
334442010-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
334612010-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
335202010-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
335882010-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
336052010-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
336132010-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
336342010-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
336802010-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
337072010-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
337252010-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
337422010-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
337752010-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
337922010-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
338152010-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
338242010-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
338362010-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
338522010-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
338642010-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
338722010-08-16  Sam Weinig  <sam@webkit.org>
33873
33874        Fix windows build.
33875
33876        * Shared/win/CommandLineWin.cpp:
33877
338782010-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
339302010-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
339442010-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
339542010-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
339822010-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
340032010-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
340302010-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
340382010-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
340472010-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
340562010-08-13  Sam Weinig  <sam@webkit.org>
34057
34058        Fix build.
34059
34060        * WebKit2.xcodeproj/project.pbxproj: Make WKDictionary.h public.
34061
340622010-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
340942010-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
341432010-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
342352010-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
342492010-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
342642010-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
342782010-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
342962010-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
343092010-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
343592010-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
343702010-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
343802010-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
343992010-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
344082010-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
344222010-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
344342010-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
344562010-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
344842010-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
345052010-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
345222010-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
345482010-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
345552010-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
345632010-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
345822010-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
346272010-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
346642010-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
346772010-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
346902010-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
347022010-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
347762010-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
347922010-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
348352010-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
348552010-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
348962010-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
349272010-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
349522010-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
349822010-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
350112010-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
350392010-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
351142010-08-05  Steve Falkenburg  <sfalken@apple.com>
35115
35116        Windows build fix.
35117        Add missing include path.
35118
35119        * win/WebKit2Common.vsprops:
35120
351212010-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
351292010-08-05  Steve Falkenburg  <sfalken@apple.com>
35130
35131        Windows build fix.
35132        Correct vcproj nesting.
35133
35134        * win/WebKit2.vcproj:
35135
351362010-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
351692010-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
352062010-08-05  Anders Carlsson  <andersca@apple.com>
35207
35208        Build fix.
35209
35210        * Platform/mac/SharedMemoryMac.cpp:
35211
352122010-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
352532010-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
352872010-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
353262010-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
353352010-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
353432010-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
353972010-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
354092010-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
354532010-08-04  Ada Chan  <adachan@apple.com>
35454
35455        Windows build fix        
35456
35457        * win/WebKit2Generated.make:
35458
354592010-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
354662010-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
354732010-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
354812010-08-04  Adam Roben  <aroben@apple.com>
35482
35483        Windows build fix
35484
35485        * win/WebKit2.vcproj: Added NetscapeBrowserFuncs.
35486
354872010-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
354972010-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
355502010-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
355962010-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
356052010-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
356162010-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
356292010-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
356582010-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
356662010-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
356742010-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
357432010-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
357512010-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
357702010-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
357842010-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
357982010-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
358062010-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
358192010-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
358602010-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
358892010-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
359602010-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
359862010-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
360352010-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
360462010-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
360872010-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
361282010-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
361422010-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
361522010-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
361852010-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
361922010-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
362022010-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
362162010-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
362332010-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
362542010-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
362722010-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
362872010-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
363282010-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
363462010-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
363872010-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
363972010-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
364082010-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
364512010-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
364602010-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
364692010-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
365412010-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
365572010-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
365672010-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
366202010-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
366462010-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
366782010-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
366852010-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
366922010-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
367052010-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
367172010-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
367662010-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
367872010-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
368192010-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
368322010-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
368542010-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
368902010-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
369182010-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
369402010-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
369472010-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
369592010-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
370702010-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
370902010-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
370972010-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
371602010-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
372012010-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
372412010-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
372622010-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
372912010-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
373002010-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
374272010-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
374462010-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
374862010-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
375002010-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
375822010-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
375942010-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
376042010-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
376142010-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
376222010-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
376402010-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
376862010-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
377082010-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
377342010-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
377642010-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
377952010-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
378322010-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
378472010-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
378692010-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
378802010-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
379002010-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
379302010-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
379472010-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
379632010-07-26  Ada Chan  <adachan@apple.com>
37964
37965        Fix Windows build.
37966
37967        * win/WebKit2Generated.make:
37968
379692010-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
379772010-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
380212010-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
380442010-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
380552010-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
380702010-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
380962010-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
381062010-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
381212010-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
381722010-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
381862010-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
382362010-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
382772010-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
382932010-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
383052010-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
383112010-07-22  Alexey Proskuryakov  <ap@apple.com>
38312
38313        Windows build fix.
38314
38315        * win/WebKit2.vcproj: Added new files.
38316
383172010-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
383602010-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
383692010-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
383852010-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
383962010-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
384212010-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
384412010-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
384532010-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
384652010-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
384752010-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
384862010-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
385002010-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
385082010-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
385252010-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
385482010-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
385612010-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
386102010-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
386352010-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
386472010-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
386602010-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
387322010-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
387532010-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
387602010-07-21  Anders Carlsson  <andersca@apple.com>
38761
38762        Land file I forgot to add.
38763
38764        * WebProcess/com.apple.WebProcess.sb: Added.
38765
387662010-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
387782010-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
388202010-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
388312010-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
388412010-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
388562010-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
388712010-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
389172010-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
389442010-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
389682010-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
390012010-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
390362010-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
390612010-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
390702010-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
391302010-07-18  Anders Carlsson  <andersca@apple.com>
39131
39132        Another attempt at fixing the Windows build.
39133
39134        * WebProcess/Plugins/NPJSObjectMap.h:
39135
391362010-07-18  Anders Carlsson  <andersca@apple.com>
39137
39138        Try to fix Windows build.
39139
39140        * win/WebKit2.vcproj:
39141
391422010-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
391812010-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
392132010-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
392312010-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
392552010-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
392712010-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
392902010-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
393232010-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
393432010-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
393702010-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
393832010-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
393922010-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
394172010-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
394272010-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
394372010-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
394442010-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        
394612010-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
394882010-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
395152010-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
395672010-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
395782010-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
395862010-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
396292010-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
396632010-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
396872010-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
397092010-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
397352010-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
397672010-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
397882010-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
398252010-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
398402010-07-15  Mark Rowe  <mrowe@apple.com>
39841
39842        Update the sorting in the Xcode project files.
39843
39844        * WebKit2.xcodeproj/project.pbxproj:
39845
398462010-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
398642010-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
398722010-07-14  Anders Carlsson  <andersca@apple.com>
39873
39874        Try to fix Windows build.
39875
39876        * win/WebKit2.vcproj:
39877
398782010-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
399242010-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
399422010-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
399562010-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
400062010-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
400252010-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
400422010-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
400672010-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
401132010-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
401522010-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
402342010-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
402522010-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
402622010-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
402732010-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
402872010-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
402952010-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
403042010-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
403132010-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
403252010-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
403322010-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
403442010-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
403522010-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
403632010-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
404162010-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
404742010-07-12  Ada Chan  <adachan@apple.com>
40475
40476        Build fix.  Copy WKArray.h to the include directory.
40477
40478        * win/WebKit2Generated.make:
40479
404802010-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
404872010-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
404992010-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
405182010-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
405322010-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
405392010-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
405902010-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
406072010-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
406262010-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
406592010-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
407012010-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
407362010-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
407862010-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
407952010-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
408272010-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
409402010-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
409812010-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
410272010-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
410632010-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
410732010-07-09  Antti Koivisto  <koivisto@iki.fi>
41074
41075        Not reviewed.
41076
41077        Build fix.
41078
41079        * UIProcess/API/qt/qwkpage.h:
41080
410812010-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
410902010-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
410972010-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
411172010-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
411312010-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
411462010-07-08  Anders Carlsson  <andersca@apple.com>
41147
41148        Fix Windows build.
41149
41150        * WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
41151
411522010-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
411642010-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
411832010-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
411982010-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
412142010-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
412232010-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
412402010-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
412542010-07-08  Anders Carlsson  <andersca@apple.com>
41255
41256        Fix build.
41257
41258        * WebProcess/Plugins/DummyPlugin.h:
41259
412602010-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        
412942010-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
413222010-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
413352010-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
413642010-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
413762010-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
413922010-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
414022010-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
414132010-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
414552010-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
414722010-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
414842010-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
414912010-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
415102010-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
415212010-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
415312010-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
415462010-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
415532010-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
415702010-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
416232010-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
416382010-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
416922010-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
417082010-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
417262010-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
417442010-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
417622010-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
417782010-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
417992010-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
418262010-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
418372010-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
418452010-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
418562010-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
418682010-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
418772010-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
418942010-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
419042010-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
419142010-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
419242010-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
419322010-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
419382010-07-01  Steve Falkenburg  <sfalken@apple.com>
41939
41940        Windows build fix.
41941
41942        * win/WebKit2Generated.make:
41943
419442010-07-01  Steve Falkenburg  <sfalken@apple.com>
41945
41946        Windows build fix.
41947
41948        * WebProcess/WebProcess.cpp:
41949
419502010-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
419762010-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
420012010-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
420592010-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
420972010-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
421432010-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
421522010-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
421842010-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
422202010-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
422962010-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
423032010-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
423142010-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
423212010-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
423402010-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
423662010-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
423812010-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
424022010-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
424232010-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
424512010-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
424712010-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
425112010-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
425222010-06-28  John Gregg  <johnnyg@google.com>
42523
42524        Unreviewed, build fix (removing merge conflict from previous).
42525
42526        * Configurations/FeatureDefines.xcconfig:
42527
425282010-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
425372010-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
425452010-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
425702010-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
425822010-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
425912010-06-25  Steve Falkenburg  <sfalken@apple.com>
42592
42593        Windows build fix.
42594
42595        * win/WebKit2.vcproj:
42596
425972010-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
426052010-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
426182010-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
426252010-06-24  Steve Falkenburg  <sfalken@apple.com>
42626
42627        Windows build fix.
42628
42629        * win/WebKit2WebProcess.vcproj:
42630
426312010-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
426482010-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
426552010-06-24  John Sullivan  <sullivan@apple.com>
42656
42657        Rubber-stamped by Anders Carlsson.
42658
42659        * mac/WebKit2.exp:
42660        Added _WKPageReloadFromOrigin.
42661
426622010-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
426822010-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
427022010-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
427382010-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
427472010-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
427702010-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
427932010-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
428002010-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
428072010-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
428182010-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
428342010-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
428422010-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
428502010-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
428852010-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
428992010-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
429132010-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
429282010-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
429402010-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
429552010-06-21  Anders Carlsson  <andersca@apple.com>
42956
42957        Build fix.
42958
42959        * UIProcess/Plugins/mac/PluginInfoStoreMac.mm:
42960        (WebKit::PluginInfoStore::getPluginInfo):
42961
429622010-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
429842010-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
430132010-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
430892010-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
431302010-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
431822010-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
431972010-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
432082010-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
432202010-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
432962010-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
433092010-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
433272010-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
433512010-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
433602010-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
433762010-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
433932010-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
434832010-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
434942010-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
435012010-06-14  Steve Falkenburg  <sfalken@apple.com>
43502
43503        Windows build fix.
43504        Add build failure stopping code.
43505
43506        * win/WebKit2WebProcess.vcproj:
43507
435082010-06-14  Steve Falkenburg  <sfalken@apple.com>
43509
43510        Windows build fix.
43511        Add build failure stopping code.
43512
43513        * win/WebKit2Generated.vcproj:
43514
435152010-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
435272010-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
435342010-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
435432010-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
435642010-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
435712010-06-09  Ilya Tikhonovsky  <loislo@chromium.org>
43572
43573        Unreviewed build fix.
43574
43575        * WebProcess/WebCoreSupport/WebInspectorClient.h:
43576
435772010-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
435922010-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
436032010-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
436102010-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
436372010-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
436532010-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
436602010-06-08  MORITA Hajime  <morrita@google.com>
43661
43662        Unreviewed. An attempt to fix test break.
43663
43664        * Configurations/FeatureDefines.xcconfig:
43665
436662010-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
436752010-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
436832010-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
436922010-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
437082010-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
437282010-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
437382010-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
437482010-06-01  Alice Liu  <alice.liu@apple.com>
43749
43750        Build fix. Not reviewed
43751
43752        * win/WebKit2Generated.make: Added WKRetainPtr.h
43753
437542010-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
437662010-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
437762010-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
437842010-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
437942010-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
438052010-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
438132010-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
438282010-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
438382010-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
438552010-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
438942010-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
439102010-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
439492010-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
439612010-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
439812010-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
440052010-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
440172010-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
440632010-04-30  Sam Weinig  <sam@webkit.org>
44064
44065        Fix the build.
44066
44067        * Platform/CoreIPC/mac/ConnectionMac.cpp: Add missing #include.
44068
440692010-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
441212010-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
441532010-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
441632010-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
441712010-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
441822010-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
441912010-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
442042010-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
442202010-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
442622010-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
442862010-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
442952010-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
443072010-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
443162010-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
443272010-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
443412010-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
443592010-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
443872010-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
444062010-04-20  Anders Carlsson  <andersca@apple.com>
44407
44408        Fix build.
44409
44410        * WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
44411        (WebKit::WebFrameLoaderClient::receivedData):
44412
444132010-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
444362010-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
444442010-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
444522010-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
444632010-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
444742010-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
444892010-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
444972010-04-16  Anders Carlsson  <andersca@apple.com>
44498
44499        Fix build.
44500
44501        * WebProcess/WebPage/WebPage.cpp:
44502        (WebKit::WebPage::runJavaScriptInMainFrame):
44503
445042010-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
445182010-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
445552010-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
445802010-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
445902010-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
446012010-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
446102010-04-15  Anders Carlsson  <andersca@apple.com>
44611
44612        Reviewed by Adam Roben.
44613
44614        Fix build dependencies.
44615
44616        * WebKit2.sln:
44617
446182010-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
446262010-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
446592010-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
446672010-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
446792010-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
447442010-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
447692010-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
447842010-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
447932010-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
448062010-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
448202010-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
448342010-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
448442010-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
448532010-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
448612010-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
448782010-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
448862010-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
449332010-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
449402010-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
449542010-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
449712010-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
449782010-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
449912010-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
450042010-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
450132010-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
450282010-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
450372010-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
450802010-04-09  Anders Carlsson  <andersca@apple.com>
45081
45082        Fix Windows build.
45083
45084        * Shared/NotImplemented.h:
45085        Include stdio.h.
45086
450872010-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
451642010-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
451942010-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
452752010-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
453312010-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
453632010-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
453992010-04-08  Sam Weinig  <sam@webkit.org>
45400
45401        Rubber-stamped by Mark Rowe.
45402
45403        Add WebKit2 directory.
45404