Source/WebCore: Pixelated WebView when display is changed from hiDPI to regularDPI
[WebKit-https.git] / Source / WebKit2 / ChangeLog
1 2014-04-03  Simon Fraser  <simon.fraser@apple.com>
2
3         Pixelated WebView when display is changed from hiDPI to regularDPI
4         https://bugs.webkit.org/show_bug.cgi?id=131185
5         <rdar://problem/16512184&16503714>
6
7         Reviewed by Tim Horton.
8         
9         TileController function was renamed.
10
11         * WebProcess/WebPage/mac/PlatformCALayerRemoteTiledBacking.cpp:
12         (WebKit::PlatformCALayerRemoteTiledBacking::setContentsScale):
13
14 2014-04-03  Sam Weinig  <sam@webkit.org>
15
16         [WebKit2] Promote user script SPI to API
17         https://bugs.webkit.org/show_bug.cgi?id=131181
18
19         Reviewed by Anders Carlsson.
20
21         * UIProcess/API/Cocoa/WKScriptMessage.h: Copied from Source/WebKit2/UIProcess/API/Cocoa/_WKScriptMessage.h.
22         * UIProcess/API/Cocoa/WKScriptMessage.mm: Copied from Source/WebKit2/UIProcess/API/Cocoa/_WKScriptMessage.mm.
23         (-[WKScriptMessage scriptWorld]):
24         (-[_WKScriptMessage scriptWorld]): Deleted.
25         * UIProcess/API/Cocoa/WKScriptMessageHandler.h: Copied from Source/WebKit2/UIProcess/API/Cocoa/_WKScriptMessageHandler.h.
26         * UIProcess/API/Cocoa/WKScriptWorld.h: Copied from Source/WebKit2/UIProcess/API/Cocoa/_WKScriptWorld.h.
27         * UIProcess/API/Cocoa/WKScriptWorld.mm: Copied from Source/WebKit2/UIProcess/API/Cocoa/_WKScriptWorld.mm.
28         (+[WKScriptWorld defaultWorld]):
29         (+[_WKScriptWorld defaultWorld]): Deleted.
30         * UIProcess/API/Cocoa/WKUserContentController.h: Copied from Source/WebKit2/UIProcess/API/Cocoa/_WKUserContentController.h.
31         * UIProcess/API/Cocoa/WKUserContentController.mm: Copied from Source/WebKit2/UIProcess/API/Cocoa/_WKUserContentController.mm.
32         (-[WKUserContentController addScriptMessageHandler:name:world:]):
33         (-[WKUserContentController removeScriptMessageHandlerForName:world:]):
34         (-[_WKUserContentController addScriptMessageHandler:name:world:]): Deleted.
35         (-[_WKUserContentController removeScriptMessageHandlerForName:world:]): Deleted.
36         * UIProcess/API/Cocoa/WKWebView.mm:
37         (-[WKWebView initWithFrame:configuration:]):
38         * UIProcess/API/Cocoa/WKWebViewConfiguration.h:
39         * UIProcess/API/Cocoa/WKWebViewConfiguration.mm:
40         (-[WKWebViewConfiguration copyWithZone:]):
41         (-[WKWebViewConfiguration userContentController]):
42         (-[WKWebViewConfiguration setUserContentController:]):
43         (-[WKWebViewConfiguration _userContentController]): Deleted.
44         (-[WKWebViewConfiguration _setUserContentController:]): Deleted.
45         * UIProcess/API/Cocoa/WKWebViewConfigurationPrivate.h:
46         * UIProcess/API/Cocoa/WKWebViewPrivate.h:
47         * UIProcess/API/Cocoa/_WKScriptMessage.h: Removed.
48         * UIProcess/API/Cocoa/_WKScriptMessage.mm: Removed.
49         * UIProcess/API/Cocoa/_WKScriptMessageHandler.h: Removed.
50         * UIProcess/API/Cocoa/_WKScriptWorld.h: Removed.
51         * UIProcess/API/Cocoa/_WKScriptWorld.mm: Removed.
52         * UIProcess/API/Cocoa/_WKUserContentController.h: Removed.
53         * UIProcess/API/Cocoa/_WKUserContentController.mm: Removed.
54         * WebKit2.xcodeproj/project.pbxproj:
55
56 2014-04-03  Anders Carlsson  <andersca@apple.com>
57
58         Make download policy decisions SPI for now
59         https://bugs.webkit.org/show_bug.cgi?id=131179
60
61         Reviewed by Sam Weinig.
62
63         * UIProcess/API/Cocoa/WKNavigationDelegate.h:
64         (NS_ENUM):
65         * UIProcess/API/Cocoa/WKNavigationDelegatePrivate.h:
66         (NS_ENUM):
67         * UIProcess/Cocoa/NavigationState.mm:
68         (WebKit::NavigationState::PolicyClient::decidePolicyForNavigationAction):
69         (WebKit::NavigationState::PolicyClient::decidePolicyForResponse):
70
71 2014-04-02  Simon Fraser  <simon.fraser@apple.com>
72
73         Harden FilterOperation type casting
74         https://bugs.webkit.org/show_bug.cgi?id=131142
75
76         Reviewed by Sam Weinig.
77
78         DefaultFilterOperation had an error-prone behavior where it set the base class
79         OperationType to the type of some other filter class, but overrode isDefault(). 
80         This made it very easy to write incorrect code that casted incorrectly based on type().
81         
82         Fix by making adding a DEFAULT filter operation type, and storing the represented
83         type on DefaultFilterOperation().
84         
85         Also remove the OperationType argument for constructors of FilterOperations that
86         can only be of one type, to avoid possible mistakes.
87         
88         Make the type cast macros a bit more normal, and use them in a few places.
89         
90         Fixed PlatformCAFiltersMac to handle the default filter case more cleanly.
91
92         * Shared/WebCoreArgumentCoders.cpp:
93         (IPC::encodeFilterOperation):
94         (IPC::decodeFilterOperation):
95         * Shared/mac/RemoteLayerTreeTransaction.mm:
96         (WebKit::RemoteLayerTreeTextStream::operator<<):
97
98 2014-04-03  Alexey Proskuryakov  <ap@apple.com>
99
100         REGRESSION (Async text input): Controls become unresponsive to mouse events
101         https://bugs.webkit.org/show_bug.cgi?id=131176
102         <rdar://problem/16507932>
103
104         Reviewed by Tim Horton.
105
106         * UIProcess/API/mac/WKView.mm: (NATIVE_MOUSE_EVENT_HANDLER):
107         Don't confuse event handling machinery by sending events to WebProcess twice.
108
109 2014-04-03  Anders Carlsson  <andersca@apple.com>
110
111         WKWebView should always have a UIDelegate, even when closed
112         https://bugs.webkit.org/show_bug.cgi?id=131174
113         <rdar://problem/16389248>
114
115         Reviewed by Sam Weinig.
116
117         * UIProcess/API/Cocoa/WKWebView.mm:
118         (-[WKWebView initWithFrame:configuration:]):
119         (-[WKWebView UIDelegate]):
120         (-[WKWebView setUIDelegate:]):
121         * UIProcess/Cocoa/UIDelegate.h:
122         * UIProcess/Cocoa/UIDelegate.mm:
123         (WebKit::UIDelegate::UIDelegate):
124         (WebKit::UIDelegate::~UIDelegate):
125         (WebKit::UIDelegate::createUIClient):
126         (WebKit::UIDelegate::delegate):
127         (WebKit::UIDelegate::setDelegate):
128         (WebKit::UIDelegate::UIClient::UIClient):
129         (WebKit::UIDelegate::UIClient::~UIClient):
130         (WebKit::UIDelegate::UIClient::createNewPage):
131         (WebKit::UIDelegate::UIClient::runJavaScriptAlert):
132         (WebKit::UIDelegate::UIClient::runJavaScriptConfirm):
133         (WebKit::UIDelegate::UIClient::runJavaScriptPrompt):
134         (WebKit::UIDelegate::UIClient::actionsForElement):
135         (WebKit::UIClient::UIClient): Deleted.
136         (WebKit::UIClient::~UIClient): Deleted.
137         (WebKit::UIClient::delegate): Deleted.
138         (WebKit::UIClient::setDelegate): Deleted.
139         (WebKit::UIClient::createNewPage): Deleted.
140         (WebKit::UIClient::runJavaScriptAlert): Deleted.
141         (WebKit::UIClient::runJavaScriptConfirm): Deleted.
142         (WebKit::UIClient::runJavaScriptPrompt): Deleted.
143         (WebKit::UIClient::actionsForElement): Deleted.
144         * UIProcess/ios/WKActionSheetAssistant.mm:
145
146 2014-04-02  Anders Carlsson  <andersca@apple.com>
147
148         Document WKNavigationAction and WKNavigationResponse
149         https://bugs.webkit.org/show_bug.cgi?id=131138
150
151         Reviewed by Sam Weinig.
152
153         * UIProcess/API/Cocoa/WKFrameInfo.h:
154         * UIProcess/API/Cocoa/WKNavigationAction.h:
155         * UIProcess/API/Cocoa/WKNavigationResponse.h:
156
157 2014-04-03  Anders Carlsson  <andersca@apple.com>
158
159         Make actionsForElement a proper API::UIClient member function
160         https://bugs.webkit.org/show_bug.cgi?id=131171
161
162         Reviewed by Sam Weinig.
163
164         * UIProcess/API/APIUIClient.h:
165         (API::UIClient::actionsForElement):
166         * UIProcess/Cocoa/UIDelegate.h:
167         * UIProcess/Cocoa/UIDelegate.mm:
168         (WebKit::UIClient::actionsForElement):
169         * UIProcess/ios/WKActionSheetAssistant.mm:
170         (-[WKActionSheetAssistant showImageSheet]):
171         (-[WKActionSheetAssistant showLinkSheet]):
172
173 2014-04-03  Martin Hodovan  <mhodovan@inf.u-szeged.hu>
174
175         [WK2] Fix !ENABLE(BLOB) build
176         https://bugs.webkit.org/show_bug.cgi?id=131164
177
178         Reviewed by Alexey Proskuryakov.
179
180         * NetworkProcess/NetworkConnectionToWebProcess.cpp:
181         (WebKit::NetworkConnectionToWebProcess::didClose):
182         * NetworkProcess/NetworkConnectionToWebProcess.h:
183         * NetworkProcess/NetworkConnectionToWebProcess.messages.in:
184
185 2014-04-03  Anders Carlsson  <andersca@apple.com>
186
187         Fix iOS build.
188
189         * UIProcess/ios/WKActionSheetAssistant.mm:
190
191 2014-04-03  Anders Carlsson  <andersca@apple.com>
192
193         Rename UIClient.{h, mm} to UIDelegate.{h, mm}.
194
195         Rubber-stamped by Dan Bernstein.
196
197         * UIProcess/API/Cocoa/WKWebView.mm:
198         * UIProcess/Cocoa/UIDelegate.h: Renamed from Source/WebKit2/UIProcess/Cocoa/UIClient.h.
199         * UIProcess/Cocoa/UIDelegate.mm: Renamed from Source/WebKit2/UIProcess/Cocoa/UIClient.mm.
200         * WebKit2.xcodeproj/project.pbxproj:
201
202 2014-04-03  Andrzej Badowski  <a.badowski@samsung.com>
203
204         [EFL][WK2] Replacing zoom functionality of MiniBrowser from scale_set to page_zoom_set.
205         https://bugs.webkit.org/show_bug.cgi?id=130391
206
207         Reviewed by Gyuyoung Kim.
208
209         Change the implementation of the zoom functionality from ewk_view_scale_set
210         to ewk_view_page_zoom_set. Adding to the API functions: ewk_view_page_zoom_set and
211         ewk_view_page_zoom_get to call appropriate WK functions.
212
213         * UIProcess/API/efl/ewk_view.cpp:
214         (ewk_view_page_zoom_set):
215         (ewk_view_page_zoom_get):
216         * UIProcess/API/efl/ewk_view.h:
217         * UIProcess/API/efl/tests/test_ewk2_view.cpp:
218         (TEST_F):
219
220 2014-04-02  Alexey Proskuryakov  <ap@apple.com>
221
222         Sandbox violation in NetworkProcess when uploading a bundle
223         https://bugs.webkit.org/show_bug.cgi?id=131133
224
225         Reviewed by Brady Eidson.
226
227         * NetworkProcess/NetworkResourceLoader.cpp:
228         (WebKit::NetworkResourceLoader::cleanup):
229         (WebKit::NetworkResourceLoader::didReceiveResponseAsync):
230         Don't delete the files. It can't work.
231
232 2014-04-02  Jinwoo Song  <jinwoo7.song@samsung.com>
233
234         [WK2][EFL] Remove unnecessary reinterpret_cast<> in unit testcase
235         https://bugs.webkit.org/show_bug.cgi?id=131143
236
237         Reviewed by Gyuyoung Kim.
238
239         Ecore_Timer callback requires *Eina_Bool* return type instead of *bool*.
240         Also, WebKit/EFL port coding style recommends to use *Eina_Bool* in the
241         callback function for EFL event handler. Additionally, replaced 0 to nullptr.
242
243         * UIProcess/API/efl/tests/UnitTestUtils/EWK2UnitTestBase.cpp:
244         (EWK2UnitTest::CallbackDataTimer::CallbackDataTimer):
245         (EWK2UnitTest::CallbackDataTimer::setDone):
246         (EWK2UnitTest::CallbackDataTimer::timeOutCallback):
247         (EWK2UnitTest::CallbackDataTimer::setTimedOut):
248         * UIProcess/API/efl/tests/test_ewk2_storage_manager.cpp:
249         (EWK2StorageManagerTest::timerCallback):
250         (TEST_F):
251
252 2014-04-02  Tim Horton  <timothy_horton@apple.com>
253
254         Remove a FIXME that happened.
255
256         * Shared/mac/RemoteLayerBackingStore.mm:
257         (WebKit::RemoteLayerBackingStore::display):
258
259 2014-04-02  Tim Horton  <timothy_horton@apple.com>
260
261         Fix the !USE(IOSURFACE) build... again.
262
263         * UIProcess/mac/RemoteLayerTreeDrawingAreaProxy.mm:
264         (WebKit::RemoteLayerTreeDrawingAreaProxy::RemoteLayerTreeDrawingAreaProxy):
265
266 2014-04-02  Mark Rowe  <mrowe@apple.com>
267
268         <https://webkit.org/b/131135> Introduce LockHistory and LockBackForwardList enums to use in place of bools.
269
270         These arguments are often passed using literals at the call site, where the use of bools severely hinders
271         the readability of the code.
272
273         Reviewed by Andreas Kling.
274
275         * WebProcess/Plugins/PDF/PDFPlugin.mm:
276         (WebKit::PDFPlugin::clickedLink):
277
278 2014-04-02  Tim Horton  <timothy_horton@apple.com>
279
280         Pool IOSurfaces to help with allocation cost
281         https://bugs.webkit.org/show_bug.cgi?id=131096
282         <rdar://problem/15373942>
283
284         Reviewed by Simon Fraser.
285
286         * Shared/mac/RemoteLayerBackingStore.h:
287         * Shared/mac/RemoteLayerBackingStore.mm:
288         (WebKit::RemoteLayerBackingStore::~RemoteLayerBackingStore):
289         (WebKit::RemoteLayerBackingStore::clearBackingStore):
290         (WebKit::RemoteLayerBackingStore::display):
291         When RemoteLayerBackingStore discards a layer, throw it into the pool.
292
293         * UIProcess/mac/RemoteLayerTreeDrawingAreaProxy.mm:
294         (WebKit::RemoteLayerTreeDrawingAreaProxy::RemoteLayerTreeDrawingAreaProxy):
295         Disable the pool in the UI process.
296
297 2014-04-02  Alice Barraclough  <alice.barraclough@apple.com>
298
299         Fix a typo causing TestWebKitAPI to timeout when testing Find.
300
301         Reviewed by Dan Bernstein.
302
303         * UIProcess/API/C/WKPage.cpp:
304         (WKPageSetPageFindClient): Test for !functionPointer like
305         all the other implementations do.
306
307 2014-04-02  Dean Jackson  <dino@apple.com>
308
309         [iOS] Expose geolocation provider on the process pool
310         https://bugs.webkit.org/show_bug.cgi?id=131125
311
312         Reviewed by Dan Bernstein.
313
314         Followup comments from Dan Bernstein. Use a class
315         extension rather than a new category.
316
317         * UIProcess/API/Cocoa/WKProcessPool.mm:
318         (-[WKProcessPool _geolocationProvider]):
319         * UIProcess/API/Cocoa/WKProcessPoolInternal.h:
320
321 2014-04-02  Tim Horton  <timothy_horton@apple.com>
322
323         RemoteLayerBackingStore doesn't need to clear opaque layers
324         https://bugs.webkit.org/show_bug.cgi?id=131134
325
326         Reviewed by Simon Fraser.
327
328         * Shared/mac/RemoteLayerBackingStore.mm:
329         (WebKit::RemoteLayerBackingStore::display):
330         We don't need to clear opaque layers, because we'll paint
331         over the whole area. In addition, we should fill opaque layers
332         with a bright color in debug builds to make it very clear
333         that we've made a mistake (similar to what FrameView does).
334
335 2014-04-02  Anders Carlsson  <andersca@apple.com>
336
337         Document WKBackForwardList, WKBackForwardListItem and WKWebViewConfiguration
338         https://bugs.webkit.org/show_bug.cgi?id=131131
339
340         Reviewed by Dan Bernstein.
341
342         * UIProcess/API/Cocoa/WKBackForwardList.h:
343         * UIProcess/API/Cocoa/WKBackForwardListItem.h:
344         * UIProcess/API/Cocoa/WKWebViewConfiguration.h:
345
346 2014-04-02  Anders Carlsson  <andersca@apple.com>
347
348         Document WKUIDelegate and WKWindowFeatures
349         https://bugs.webkit.org/show_bug.cgi?id=131124
350
351         Reviewed by Dan Bernstein.
352
353         * UIProcess/API/Cocoa/WKProcessPool.h:
354         * UIProcess/API/Cocoa/WKUIDelegate.h:
355         * UIProcess/API/Cocoa/WKWindowFeatures.h:
356
357 2014-04-02  Dean Jackson  <dino@apple.com>
358
359         [iOS] Expose geolocation provider on the process pool
360         https://bugs.webkit.org/show_bug.cgi?id=131125
361
362         Patch by Sam Weinig.
363         Reviewed by Dean Jackson.
364
365         * UIProcess/API/Cocoa/WKProcessPool.mm:
366         (-[WKProcessPool _geolocationProvider]): Create and initialize WKGeolocationProviderIOS if necessary.
367         * UIProcess/API/Cocoa/WKProcessPoolInternal.h: Expose _geolocationProvider.
368         * UIProcess/ios/WKContentView.mm:
369         (-[WKContentView _decidePolicyForGeolocationRequestFromOrigin:frame:request:]): Call into WKProcessPool.
370
371 2014-04-02  Martin Hock  <mhock@apple.com>
372
373         Unify private browsing with sessions.
374         https://bugs.webkit.org/show_bug.cgi?id=130099
375
376         Reviewed by Alexey Proskuryakov.
377
378         * WebProcess/InjectedBundle/API/c/WKBundlePage.cpp: Change WebPage::isUsingEphemeralSession() to WebPage::usesEphemeralSession().
379         (WKBundlePageIsUsingEphemeralSession):
380         * WebProcess/InjectedBundle/InjectedBundle.cpp: Change Settings::setPrivateBrowsingEnabled() to Page::enableLegacyPrivateBrowsing().
381         (WebKit::InjectedBundle::setPrivateBrowsingEnabled):
382         * WebProcess/Plugins/PluginView.cpp: Change Settings::privateBrowsingEnabled() to Page::usesEphemeralSession().
383         (WebKit::PluginView::isPrivateBrowsingEnabled):
384         * WebProcess/WebCoreSupport/soup/WebFrameNetworkingContext.cpp: Ditto.
385         (WebKit::WebFrameNetworkingContext::storageSession):
386         * WebProcess/WebPage/WebPage.cpp:
387         (WebKit::WebPage::usesEphemeralSession): Renamed from isUsingEphemeralSession.
388         (WebKit::WebPage::setSessionID): Ensure session before setting.
389         (WebKit::WebPage::updatePreferences): Set session to legacy private session if needed.
390         (WebKit::WebPage::sessionID): Moved to header.
391         (WebKit::WebPage::isUsingEphemeralSession): Renamed to usesEphemeralSession.
392         * WebProcess/WebPage/WebPage.h:
393         (WebKit::WebPage::sessionID): Just call down to m_page.
394
395 2014-04-02  Alice Barraclough  <alice.liu@apple.com>
396
397         Adding Objective-C SPI for Find in Page.
398         https://bugs.webkit.org/show_bug.cgi?id=131000 Need an Objective-C API or SPI for Find in Page
399
400         Reviewed by Dan Bernstein.
401
402         Find-on-page SPI added to WKWebView, which funnels the messages through the WebPageProxy.
403         Returning messages are designated by _WKFindDelegate protocol.
404         Also provide FindDelegate access on WKWebView.
405         WebPageProxy gets a new-style API::FindClient.
406         Also had to replicate WKFindOptions as _WKFindOptions in Cocoa SPI. This is unfortunate, but it 
407         does follow the pattern of other options & enums related to classes that are SPI-for-now.
408         
409         PageClientImplIOS handles setFindIndicator function by forwarding to its WKContentView, 
410         but WKContentView _setFindIndicator remains unimplemented for now.
411         
412         * UIProcess/API/APIFindClient.h: Added.
413         (API::FindClient::~FindClient):
414         (API::FindClient::didCountStringMatches):
415         (API::FindClient::didFindString):
416         (API::FindClient::didFailToFindString):
417         * UIProcess/API/C/WKPage.cpp:
418         (WKPageSetPageFindClient):
419         * UIProcess/API/Cocoa/WKWebView.mm:
420         (-[WKWebView initWithFrame:configuration:]):
421         (-[WKWebView _findDelegate]):
422         (-[WKWebView _setFindDelegate:]):
423         (toFindOptions):
424         (-[WKWebView _countStringMatches:options:maxCount:]):
425         (-[WKWebView _findString:options:maxCount:]):
426         (-[WKWebView _hideFindUI]):
427         (-[WKWebView _hostForFindUI]):
428         * UIProcess/API/Cocoa/WKWebViewPrivate.h:
429         (NS_OPTIONS):
430         * UIProcess/API/Cocoa/_WKFindDelegate.h: Added.
431         * UIProcess/Cocoa/FindClient.h: Added.
432         * UIProcess/Cocoa/FindClient.mm: Added.
433         (WebKit::FindClient::FindClient):
434         (WebKit::FindClient::delegate):
435         (WebKit::FindClient::setDelegate):
436         (WebKit::FindClient::didCountStringMatches):
437         (WebKit::FindClient::didFindString):
438         (WebKit::FindClient::didFailToFindString):
439         * UIProcess/WebPageProxy.cpp:
440         (WebKit::WebPageProxy::WebPageProxy):
441         (WebKit::WebPageProxy::setFindClient):
442         (WebKit::WebPageProxy::close):
443         (WebKit::WebPageProxy::didCountStringMatches):
444         (WebKit::WebPageProxy::didFindString):
445         (WebKit::WebPageProxy::didFailToFindString):
446         (WebKit::WebPageProxy::initializeFindClient): Deleted.
447         * UIProcess/WebPageProxy.h:
448         (WebKit::WebPageProxy::findClient):
449         * UIProcess/ios/PageClientImplIOS.mm:
450         (WebKit::PageClientImpl::setFindIndicator):
451         * UIProcess/ios/WKContentView.h:
452         * UIProcess/ios/WKContentView.mm:
453         (-[WKContentView _setFindIndicator:WebKit::fadeOut:animate:]):
454         * WebKit2.xcodeproj/project.pbxproj:
455
456 2014-04-02  Anders Carlsson  <andersca@apple.com>
457
458         Rename -[WKBackForwardListItem originalURL] to -[WKBackForwardListItem initialURL]
459         https://bugs.webkit.org/show_bug.cgi?id=131116
460
461         Reviewed by Antti Koivisto.
462
463         * UIProcess/API/Cocoa/WKBackForwardListItem.h:
464         * UIProcess/API/Cocoa/WKBackForwardListItem.mm:
465         (-[WKBackForwardListItem initialURL]):
466         (-[WKBackForwardListItem originalURL]): Deleted.
467
468 2014-04-02  Antti Koivisto  <antti@apple.com>
469
470         Split tile grid out from TileController
471         https://bugs.webkit.org/show_bug.cgi?id=131102
472
473         Reviewed by Simon Fraser.
474
475         * WebProcess/WebPage/mac/PlatformCALayerRemoteTiledBacking.cpp:
476         (WebKit::PlatformCALayerRemoteTiledBacking::PlatformCALayerRemoteTiledBacking):
477         * WebProcess/WebPage/mac/PlatformCALayerRemoteTiledBacking.h:
478
479 2014-04-02  Anders Carlsson  <andersca@apple.com>
480
481         Try a workaround for a crash
482         https://bugs.webkit.org/show_bug.cgi?id=131112
483
484         Reviewed by Sam Weinig.
485
486         * UIProcess/API/Cocoa/WKWebView.mm:
487         (-[WKWebView UIDelegate]):
488         (-[WKWebView setUIDelegate:]):
489
490 2014-04-02  Martin Robinson  <mrobinson@igalia.com>
491
492         REGRESSION(r165704): [GTK] Inspector resources not correctly generated
493         https://bugs.webkit.org/show_bug.cgi?id=130343
494
495         Reviewed by Gustavo Noronha Silva.
496
497         * PlatformGTK.cmake: Pass all appropriate directories to the
498         GResources XML generation script.
499
500 2014-04-02  Carlos Garcia Campos  <cgarcia@igalia.com>
501
502         [GTK] Move NEWS file to a new location
503         https://bugs.webkit.org/show_bug.cgi?id=130901
504
505         Reviewed by Brent Fulgham.
506
507         * gtk/NEWS: Renamed from Source/WebKit/gtk/NEWS.
508
509 2014-04-01  Benjamin Poulain  <bpoulain@apple.com>
510
511         <rdar://problem/16294704> Remove _pageExtendedBackgroundColor entirely
512         https://bugs.webkit.org/show_bug.cgi?id=131075
513
514         Reviewed by Beth Dakin.
515
516         * UIProcess/API/Cocoa/WKWebView.mm:
517         (-[WKWebView _pageExtendedBackgroundColor]): Deleted.
518         * UIProcess/API/Cocoa/WKWebViewPrivate.h:
519
520 2014-04-01  Anders Carlsson  <andersca@apple.com>
521
522         Stub out more WKNavigation properties
523         https://bugs.webkit.org/show_bug.cgi?id=131080
524
525         Reviewed by Tim Horton.
526
527         * UIProcess/API/Cocoa/WKNavigation.h:
528         * UIProcess/API/Cocoa/WKNavigation.mm:
529         (-[WKNavigation initialRequest]):
530         (-[WKNavigation response]):
531         (-[WKNavigation error]):
532
533 2014-04-01  Anders Carlsson  <andersca@apple.com>
534
535         Rename -[WKWebView activeURL] to -[WKWebView URL]
536         https://bugs.webkit.org/show_bug.cgi?id=131077
537
538         Reviewed by Tim Horton.
539
540         Keep -[WKWebView activeURL] as SPI until no clients depend on it.
541
542         * UIProcess/API/Cocoa/WKWebView.h:
543         * UIProcess/API/Cocoa/WKWebView.mm:
544         (-[WKWebView URL]):
545         (-[WKWebView activeURL]):
546         * UIProcess/API/Cocoa/WKWebViewPrivate.h:
547         * UIProcess/Cocoa/NavigationState.mm:
548         (WebKit::NavigationState::willChangeActiveURL):
549         (WebKit::NavigationState::didChangeActiveURL):
550
551 2014-04-01  Anders Carlsson  <andersca@apple.com>
552
553         Move -[WKWebView stopLoading:] back to WKIBActions
554         https://bugs.webkit.org/show_bug.cgi?id=131072
555
556         Reviewed by Tim Horton.
557
558         * UIProcess/API/Cocoa/WKWebView.h:
559         * UIProcess/API/Cocoa/WKWebView.mm:
560         (-[WKWebView stopLoading:]):
561
562 2014-04-01  Anders Carlsson  <andersca@apple.com>
563
564         Migrate more headers
565         https://bugs.webkit.org/show_bug.cgi?id=131068
566
567         Reviewed by Tim Horton.
568
569         * UIProcess/API/Cocoa/WKBackForwardList.h:
570         Remove a newline.
571
572         * WebKit2.xcodeproj/project.pbxproj:
573         Move files from the "Deprecated" group.
574
575 2014-04-01  Manuel Rego Casasnovas  <rego@igalia.com>
576
577         [CSS Grid Layout] Enable runtime feature if feature flag is enabled
578         https://bugs.webkit.org/show_bug.cgi?id=130013
579
580         Reviewed by Simon Fraser.
581
582         Enable CSS Grid Layout runtime feature when ENABLE_CSS_GRID_LAYOUT flag is true.
583
584         * Shared/WebPreferencesStore.h:
585
586 2014-04-01  Anders Carlsson  <andersca@apple.com>
587
588         Demote WKBackForwardListDidChangeNotification to SPI
589         https://bugs.webkit.org/show_bug.cgi?id=131059
590
591         Reviewed by Dan Bernstein.
592
593         * UIProcess/API/Cocoa/WKBackForwardList.h:
594         * UIProcess/API/Cocoa/WKBackForwardList.mm:
595         * UIProcess/API/Cocoa/WKBackForwardListInternal.h:
596         * UIProcess/API/Cocoa/WKBackForwardListPrivate.h: Copied from Source/WebKit2/UIProcess/API/Cocoa/WKBackForwardListInternal.h.
597         * UIProcess/Cocoa/NavigationState.mm:
598         (WebKit::NavigationState::LoaderClient::didChangeBackForwardList):
599         * WebKit2.xcodeproj/project.pbxproj:
600
601 2014-04-01  Andy Estes  <aestes@apple.com>
602
603         [Cocoa] Add SPI to determine if a WKWebView is displaying a PDF
604         https://bugs.webkit.org/show_bug.cgi?id=131063
605
606         Reviewed by Tim Horton.
607
608         * UIProcess/API/Cocoa/WKWebView.mm:
609         (-[WKWebView _isDisplayingPDF]):
610         * UIProcess/API/Cocoa/WKWebViewPrivate.h:
611
612 2014-04-01  Simon Fraser  <simon.fraser@apple.com>
613
614         Remove some explicit template instantiations from logging code
615         https://bugs.webkit.org/show_bug.cgi?id=131065
616
617         Reviewed by Tim Horton.
618         
619         No need to explicitly state template types.
620
621         * Shared/mac/RemoteLayerTreeTransaction.mm:
622         (WebKit::dumpChangedLayers):
623
624 2014-04-01  Tim Horton  <timothy_horton@apple.com>
625
626         [iOS WebKit2] Partial repaint is broken
627         https://bugs.webkit.org/show_bug.cgi?id=131056
628
629         Reviewed by Dean Jackson.
630
631         * Shared/mac/RemoteLayerBackingStore.mm:
632         (WebKit::RemoteLayerBackingStore::display):
633         We need to check if the repaint rects themselves cover the whole
634         layer's surface, not just their bounds. Otherwise, we'll optimize
635         out the back->front copy and end up not painting the whole layer.
636
637 2014-04-01  Anders Carlsson  <andersca@apple.com>
638
639         Pass a WKNavigationAction to the create UIDelegate method
640         https://bugs.webkit.org/show_bug.cgi?id=131053
641
642         Reviewed by Sam Weinig.
643
644         * UIProcess/API/Cocoa/WKUIDelegate.h:
645         * UIProcess/Cocoa/UIClient.h:
646         * UIProcess/Cocoa/UIClient.mm:
647         (WebKit::UIClient::setDelegate):
648         (WebKit::UIClient::createNewPage):
649
650 2014-04-01  Benjamin Poulain  <bpoulain@apple.com>
651
652         [iOS][WK2] Remove the two finger pan gesture recognizer until it is actually implemented
653         https://bugs.webkit.org/show_bug.cgi?id=131009
654
655         Reviewed by Sam Weinig.
656
657         The two finger pan should not block the pinch gesture recognizer.
658
659         * UIProcess/ios/WKContentViewInteraction.h:
660         * UIProcess/ios/WKContentViewInteraction.mm:
661         (-[WKContentView setupInteraction]):
662         (-[WKContentView cleanupInteraction]):
663         (-[WKContentView gestureRecognizerShouldBegin:]):
664         (-[WKContentView _twoFingerPanRecognized:]): Deleted.
665
666 2014-04-01  Anders Carlsson  <andersca@apple.com>
667
668         Remove limits from WKBackForwardList getters
669         https://bugs.webkit.org/show_bug.cgi?id=131052
670
671         Reviewed by Beth Dakin.
672
673         * UIProcess/API/Cocoa/WKBackForwardList.h:
674         * UIProcess/API/Cocoa/WKBackForwardList.mm:
675         (-[WKBackForwardList backList]):
676         (-[WKBackForwardList forwardList]):
677         (-[WKBackForwardList backListCount]): Deleted.
678         (-[WKBackForwardList forwardListCount]): Deleted.
679         (-[WKBackForwardList backListWithLimit:]): Deleted.
680         (-[WKBackForwardList forwardListWithLimit:]): Deleted.
681         * UIProcess/WebBackForwardList.cpp:
682         (WebKit::WebBackForwardList::backList):
683         (WebKit::WebBackForwardList::forwardList):
684         * UIProcess/WebBackForwardList.h:
685
686 2014-04-01  Anders Carlsson  <andersca@apple.com>
687
688         Stub out the web process -> UI process message SPI
689         https://bugs.webkit.org/show_bug.cgi?id=131048
690
691         Reviewed by Sam Weinig.
692
693         * UIProcess/API/Cocoa/WKWebView.mm:
694         (-[WKWebView initWithFrame:configuration:]):
695         * UIProcess/API/Cocoa/WKWebViewConfiguration.mm:
696         (-[WKWebViewConfiguration copyWithZone:]):
697         (-[WKWebViewConfiguration _userContentController]):
698         (-[WKWebViewConfiguration _setUserContentController:]):
699         * UIProcess/API/Cocoa/WKWebViewConfigurationPrivate.h:
700         * UIProcess/API/Cocoa/WKWebViewPrivate.h:
701         * UIProcess/API/Cocoa/_WKScriptMessage.h: Copied from Source/WebKit2/UIProcess/API/Cocoa/_WKScriptWorld.h.
702         * UIProcess/API/Cocoa/_WKScriptMessage.mm: Copied from Source/WebKit2/UIProcess/API/Cocoa/_WKScriptWorld.h.
703         (-[_WKScriptMessage body]):
704         (-[_WKScriptMessage originatingWebView]):
705         * UIProcess/API/Cocoa/_WKScriptMessageHandler.h: Copied from Source/WebKit2/UIProcess/API/Cocoa/_WKScriptWorld.h.
706         * UIProcess/API/Cocoa/_WKScriptWorld.h:
707         * UIProcess/API/Cocoa/_WKUserContentController.h: Copied from Source/WebKit2/UIProcess/API/Cocoa/_WKScriptWorld.h.
708         * UIProcess/API/Cocoa/_WKUserContentController.mm: Copied from Source/WebKit2/UIProcess/API/Cocoa/WKWebViewConfigurationPrivate.h.
709         (-[_WKUserContentController addScriptMessageHandler:name:world:]):
710         (-[_WKUserContentController removeScriptMessageHandler:]):
711         * WebKit2.xcodeproj/project.pbxproj:
712
713 2014-04-01  Andreas Kling  <akling@apple.com>
714
715         Invalidate CFNetwork connection cache on memory pressure.
716         <https://webkit.org/b/131038>
717
718         Stop holding on to cached HTTP connections if we come under memory pressure.
719
720         Reviewed by Geoff Malloc-Garen.
721
722         * NetworkProcess/cocoa/NetworkProcessCocoa.mm:
723         (WebKit::NetworkProcess::platformLowMemoryHandler):
724
725 2014-04-01  Anders Carlsson  <andersca@apple.com>
726
727         Tweak WKPreferences API
728         https://bugs.webkit.org/show_bug.cgi?id=131047
729
730         Reviewed by Simon Fraser.
731
732         * UIProcess/API/Cocoa/WKPreferences.h:
733         * UIProcess/API/Cocoa/WKPreferences.mm:
734         (-[WKPreferences init]):
735         (-[WKPreferences initWithUserDefaultsKeyPrefix:]):
736         (-[WKPreferences userDefaultsKeyPrefix]):
737         (-[WKPreferences initWithUserDefaultsPrefixKey:]): Deleted.
738         (-[WKPreferences userDefaultsPrefixKey]): Deleted.
739
740 2014-03-31  Simon Fraser  <simon.fraser@apple.com>
741
742         Enable WEB_TIMING on Mac and iOS
743         https://bugs.webkit.org/show_bug.cgi?id=128064
744
745         Reviewed by Sam Weinig, Brent Fulgham.
746         
747         Enable WEB_TIMING.
748
749         * Configurations/FeatureDefines.xcconfig:
750
751 2014-03-31  Simon Fraser  <simon.fraser@apple.com>
752
753         [UI-side compositing] Fix animations, and add logging
754         https://bugs.webkit.org/show_bug.cgi?id=131011
755
756         Reviewed by Tim Horton.
757         
758         UI-side animations were broken because GraphicsLayerCARemote::addAnimation()
759         never called the superclass, so fix.
760         
761         Add logging for animations to the layer tree commit output.
762
763         * Shared/mac/RemoteLayerTreeTransaction.mm:
764         (WebKit::dumpProperty):
765         (WebKit::RemoteLayerTreeTextStream::operator<<):
766         (WebKit::dumpChangedLayers):
767         * WebProcess/WebPage/mac/GraphicsLayerCARemote.cpp:
768         (WebKit::GraphicsLayerCARemote::addAnimation):
769
770 2014-04-01  Zalan Bujtas  <zalan@apple.com>
771
772         Build fix after r166582.
773
774         * Shared/ContextMenuContextData.cpp:
775         (WebKit::ContextMenuContextData::ContextMenuContextData):
776
777 2014-04-01  Zalan Bujtas  <zalan@apple.com>
778
779         Subpixel rendering: Transition class Image (and its dependencies) from int to float to enable subpixel positioned/sized images.
780         https://bugs.webkit.org/show_bug.cgi?id=130643
781
782         Reviewed by Simon Fraser.
783
784         This is in preparation to support subpixel positioned/sized background images. While 1x bitmap images can't take
785         subpixel sizing on hidpi resolutions, both generated and hidpi images can.
786         This patch does not change Image behavior in general as both position and size are still snapped to integral values.  
787
788         No change in behavior.
789
790         * Shared/WebCoreArgumentCoders.cpp:
791         (IPC::encodeImage):
792         * UIProcess/API/efl/EwkView.cpp:
793         (EwkView::updateCursor):
794
795 2014-04-01  Joonghun Park  <jh718.park@samsung.com>
796
797         [EFL][WK2] Fix and update the existing test case for ewk_database_manager_origins_async_get API
798         https://bugs.webkit.org/show_bug.cgi?id=131017
799
800         Reviewed by Gyuyoung Kim.
801
802         * UIProcess/API/efl/tests/test_ewk2_database_manager.cpp:
803         Fix memory leaks and errors caused by duplication of Ecore_Timer deletion
804         as well as update a naming style of local variable.
805         (EWK2DatabaseManagerTest::databaseOriginsCallback):
806         (TEST_F):
807
808 2014-04-01  Zan Dobersek  <zdobersek@igalia.com>
809
810         Don't copy the children map in webkitWebViewBaseContainerForall
811         https://bugs.webkit.org/show_bug.cgi?id=131016
812
813         Reviewed by Carlos Garcia Campos.
814
815         * UIProcess/API/gtk/WebKitWebViewBase.cpp:
816         (webkitWebViewBaseContainerForall): Avoid copying the GtkWidget-to-IntRect HashMap object
817         by transforming the iteration to a range-based for-loop over that HashMap's keys.
818
819 2014-04-01  Zan Dobersek  <zdobersek@igalia.com>
820
821         [GTK] Don't copy the ResourceResponse object in webkitWebViewDecidePolicy
822         https://bugs.webkit.org/show_bug.cgi?id=131015
823
824         Reviewed by Carlos Garcia Campos.
825
826         * UIProcess/API/gtk/WebKitWebView.cpp:
827         (webkitWebViewDecidePolicy): Avoid copying the ResourceResponce object returned by webkitURIResponseGetResourceResponse.
828         That function already returns a reference, so the return value should be stored accordingly.
829
830 2014-04-01  Eunmi Lee  <eunmi15.lee@samsung.com>
831
832         [CoordinatedGraphics] Content scale factor should not be applied to draw contents when fixed layout is not used.
833         https://bugs.webkit.org/show_bug.cgi?id=130962
834
835         Reviewed by Gyuyoung Kim.
836
837         Delegating scaling is turned off when fixed layout is not used in the
838         coordinated graphics, so page scale factor is applied to the contents
839         directly.
840         In that case, we should not apply page scale factor to coordinated
841         graphics to draw contents and calculate visible content rect.
842
843         Currently, page scale factor is applied twice to the coordinated
844         graphics and contents, so result of scaling is abnormal.
845
846         * UIProcess/CoordinatedGraphics/WebView.cpp:
847         (WebKit::WebView::transformToScene):
848         (WebKit::WebView::visibleContentsSize):
849
850 2014-04-01  Ryuan Choi  <ryuan.choi@samsung.com>
851
852         [EFL][WK2] Rename ewk_application_cache_manager_delete{_all}
853         https://bugs.webkit.org/show_bug.cgi?id=131012
854
855         Reviewed by Gyuyoung Kim.
856
857         While discussing Bug 130577, we resulted that _clear and _xxx_del is better name for the EFL.
858         This patch will rename similar API in ewk_application_cache_manager.
859
860         In addition, fixed some typos in doxygen.
861
862         * UIProcess/API/efl/ewk_application_cache_manager.cpp:
863         (ewk_application_cache_manager_clear): Renamed from ewk_application_cache_manager_delete_all
864         (ewk_application_cache_manager_entries_for_origin_del): Renamed from ewk_application_cache_manager_delete
865         (ewk_application_cache_manager_delete_all): Deleted.
866         (ewk_application_cache_manager_delete): Deleted.
867         * UIProcess/API/efl/ewk_application_cache_manager.h:
868         * UIProcess/API/efl/tests/test_ewk2_application_cache_manager.cpp:
869         (TEST_F):
870
871 2014-03-31  Zan Dobersek  <zdobersek@igalia.com>
872
873         Unreviewed GTK build fix after r166553.
874
875         * UIProcess/API/gtk/WebKitSettings.cpp:
876         (_WebKitSettingsPrivate::_WebKitSettingsPrivate): Pass 'WebKit2.' as the second argument to WebPreferences::create().
877
878 2014-03-31  Ryuan Choi  <ryuan.choi@samsung.com>
879
880         [EFL][WK2] Extract the control of page background out of color_set
881         https://bugs.webkit.org/show_bug.cgi?id=127539
882
883         Reviewed by Gyuyoung Kim.
884
885         EFL have a way to change the color using evas_object_color_set and we used it to change background.
886         But, We should not use it because the alpha value of color_set is used
887         for the transparancy of object itself including background and contents.
888
889         This patch added ewk_view_bg_color_{get|set} to change the background color.
890
891         * UIProcess/API/C/efl/WKViewEfl.cpp:
892         Extracted controls of page background out of color_set.
893         color_set will be only used for the opacity of whole contents.
894         (WKViewSetBackgroundColor): Added to share page background color.
895         (WKViewGetBackgroundColor):
896         * UIProcess/API/C/efl/WKViewEfl.h:
897         * UIProcess/API/efl/EwkView.cpp:
898         (EwkView::handleEvasObjectColorSet):
899         * UIProcess/API/efl/ewk_view.cpp:
900         Removed ewk_view_draws_page_background_set which just control whether to draw background.
901         ewk_view_bg_color_set will conver it.
902         (ewk_view_bg_color_set):
903         (ewk_view_bg_color_get):
904         * UIProcess/API/efl/ewk_view.h:
905         * UIProcess/API/efl/tests/test_ewk2_view.cpp: Added simple test case.
906         * UIProcess/efl/WebViewEfl.cpp:
907         (WebKit::WebViewEfl::setViewBackgroundColor):
908         (WebKit::WebViewEfl::viewBackgroundColor):
909         * UIProcess/efl/WebViewEfl.h:
910
911 2014-03-31  Joonghun Park  <jh718.park@samsung.com>
912
913         [EFL][WK2]Implement ewk APIs of web local storage which have deletion functions of the local storage entries
914         https://bugs.webkit.org/show_bug.cgi?id=130577
915
916         Reviewed by Gyuyoung Kim.
917
918         * UIProcess/API/efl/ewk_storage_manager.cpp:
919         (ewk_storage_manager_entries_clear):
920         (ewk_storage_manager_entries_for_origin_del):
921         * UIProcess/API/efl/ewk_storage_manager.h:
922         * UIProcess/API/efl/ewk_storage_manager_private.h:
923         (EwkStorageManager::wkStorageManager):
924         * UIProcess/API/efl/tests/test_ewk2_storage_manager.cpp:
925         adding and updating API unittest and fixing memory leak of the existing test case
926         (EWK2StorageManagerTest::getStorageOriginsCallback):
927         (EWK2StorageManagerTest::checkOrigin):
928         (EWK2StorageManagerTest::getOrigin):
929         (TEST_F):
930
931 2014-03-31  Anders Carlsson  <andersca@apple.com>
932
933         Rename policy enums to match the delegate methods
934         https://bugs.webkit.org/show_bug.cgi?id=131002
935
936         Reviewed by Tim Horton.
937
938         * UIProcess/API/Cocoa/WKNavigationDelegate.h:
939         (NS_ENUM):
940         * UIProcess/Cocoa/NavigationState.mm:
941         (WebKit::NavigationState::PolicyClient::decidePolicyForNavigationAction):
942         (WebKit::NavigationState::PolicyClient::decidePolicyForResponse):
943
944 2014-03-31  Anders Carlsson  <andersca@apple.com>
945
946         Add more preferences
947         https://bugs.webkit.org/show_bug.cgi?id=131001
948
949         Reviewed by Simon Fraser.
950
951         * UIProcess/API/Cocoa/WKPreferences.h:
952         * UIProcess/API/Cocoa/WKPreferences.mm:
953         (-[WKPreferences isJavaScriptEnabled]):
954         (-[WKPreferences setJavaScriptEnabled:]):
955         (-[WKPreferences javaScriptCanOpenWindowsAutomatically]):
956         (-[WKPreferences setJavaScriptCanOpenWindowsAutomatically:]):
957         (-[WKPreferences suppressesIncrementalRendering]):
958         (-[WKPreferences setSuppressesIncrementalRendering:]):
959         (-[WKPreferences isJavaEnabled]):
960         (-[WKPreferences setJavaEnabled:]):
961         (-[WKPreferences arePlugInsEnabled]):
962         (-[WKPreferences setPlugInsEnabled:]):
963
964 2014-03-31  Tim Horton  <timothy_horton@apple.com>
965
966         Fix the build.
967
968         * WebProcess/WebPage/WebPage.cpp:
969         (WebKit::WebPage::updatePreferences):
970
971 2014-03-31  Simon Fraser  <simon.fraser@apple.com>
972
973         Fix the iOS build.
974
975         * UIProcess/ios/RemoteLayerTreeHostIOS.mm:
976         (WebKit::RemoteLayerTreeHost::createLayer):
977         * UIProcess/mac/RemoteLayerTreeHost.h:
978         * UIProcess/mac/RemoteLayerTreeHost.mm:
979         (WebKit::RemoteLayerTreeHost::setLayerID):
980         (WebKit::RemoteLayerTreeHost::layerID):
981         (WebKit::RemoteLayerTreeHost::createLayer):
982
983 2014-03-31  Anders Carlsson  <andersca@apple.com>
984
985         Add a couple of iOS specific preferences
986         https://bugs.webkit.org/show_bug.cgi?id=130999
987
988         Reviewed by Simon Fraser.
989
990         * Shared/WebPreferencesStore.h:
991         * UIProcess/API/Cocoa/WKPreferences.h:
992         * UIProcess/API/Cocoa/WKPreferences.mm:
993         (-[WKPreferences allowsInlineMediaPlayback]):
994         (-[WKPreferences setAllowsInlineMediaPlayback:]):
995         (-[WKPreferences mediaPlaybackRequiresUserAction]):
996         (-[WKPreferences setMediaPlaybackRequiresUserAction:]):
997         (-[WKPreferences mediaPlaybackAllowsAirPlay]):
998         (-[WKPreferences setMediaPlaybackAllowsAirPlay:]):
999         * WebProcess/WebPage/WebPage.cpp:
1000         (WebKit::WebPage::updatePreferences):
1001
1002 2014-03-31  Anders Carlsson  <andersca@apple.com>
1003
1004         Add a new -[WKPreferences initWithUserDefaultsPrefixKey:] initializer
1005         https://bugs.webkit.org/show_bug.cgi?id=130996
1006
1007         Reviewed by Simon Fraser.
1008
1009         Add a "key prefix" to the WebKit::WebPreferences create function, so we can use a different
1010         key prefix ("WebKit") for the modern API and not pollute the user defaults namespace with
1011         the old key prefix ("WebKit2.").
1012         
1013         * UIProcess/API/C/WKPreferences.cpp:
1014         (WKPreferencesCreate):
1015         (WKPreferencesCreateWithIdentifier):
1016         * UIProcess/API/Cocoa/WKPreferences.h:
1017         * UIProcess/API/Cocoa/WKPreferences.mm:
1018         (-[WKPreferences init]):
1019         (-[WKPreferences initWithUserDefaultsPrefixKey:]):
1020         (-[WKPreferences userDefaultsPrefixKey]):
1021         * UIProcess/WebPageGroup.cpp:
1022         (WebKit::WebPageGroup::WebPageGroup):
1023         * UIProcess/WebPreferences.cpp:
1024         (WebKit::WebPreferences::WebPreferences):
1025         * UIProcess/WebPreferences.h:
1026         (WebKit::WebPreferences::create):
1027         * UIProcess/mac/WebPreferencesMac.mm:
1028         (WebKit::makeKey):
1029         (WebKit::setStringValueIfInUserDefaults):
1030         (WebKit::setBoolValueIfInUserDefaults):
1031         (WebKit::setUInt32ValueIfInUserDefaults):
1032         (WebKit::setDoubleValueIfInUserDefaults):
1033         (WebKit::WebPreferences::platformInitializeStore):
1034         (WebKit::WebPreferences::platformUpdateStringValueForKey):
1035         (WebKit::WebPreferences::platformUpdateBoolValueForKey):
1036         (WebKit::WebPreferences::platformUpdateUInt32ValueForKey):
1037         (WebKit::WebPreferences::platformUpdateDoubleValueForKey):
1038         (WebKit::WebPreferences::platformUpdateFloatValueForKey):
1039
1040 2014-03-31  Pratik Solanki  <psolanki@apple.com>
1041
1042         Remove duplicate entries in Derived Sources.
1043
1044         Rubber-stamped by Anders Carlsson.
1045
1046         * WebKit2.xcodeproj/project.pbxproj:
1047
1048 2014-03-31  Tim Horton  <timothy_horton@apple.com>
1049
1050         Fix the build.
1051
1052         * UIProcess/mac/RemoteLayerTreeHost.mm:
1053         (WebKit::RemoteLayerTreeHost::updateLayerTree):
1054
1055 2014-03-31  Tim Horton  <timothy_horton@apple.com>
1056
1057         Fix the build.
1058
1059         * UIProcess/mac/RemoteLayerTreeHost.mm:
1060         (WebKit::RemoteLayerTreeHost::updateLayerTree):
1061
1062 2014-03-31  Anders Carlsson  <andersca@apple.com>
1063
1064         Rename -[WKNavigationAction destinationFrame] to -[WKNavigationAction targetFrame]
1065         https://bugs.webkit.org/show_bug.cgi?id=130994
1066
1067         Reviewed by Dan Bernstein.
1068
1069         * UIProcess/API/Cocoa/WKNavigationAction.h:
1070         * UIProcess/API/Cocoa/WKNavigationAction.mm:
1071         (-[WKNavigationAction description]):
1072         (-[WKNavigationAction targetFrame]):
1073         (-[WKNavigationAction setTargetFrame:]):
1074         (-[WKNavigationAction destinationFrame]): Deleted.
1075         (-[WKNavigationAction setDestinationFrame:]): Deleted.
1076         * UIProcess/API/Cocoa/WKNavigationActionInternal.h:
1077         * UIProcess/Cocoa/NavigationState.mm:
1078         (WebKit::NavigationState::PolicyClient::decidePolicyForNavigationAction):
1079
1080 2014-03-31  Tim Horton  <timothy_horton@apple.com>
1081
1082         [iOS WebKit2] Flush all surfaces after painting into all of them, instead of after painting into each one
1083         https://bugs.webkit.org/show_bug.cgi?id=130768
1084         <rdar://problem/16421471>
1085
1086         Reviewed by Benjamin Poulain.
1087
1088         * Shared/mac/RemoteLayerBackingStore.h:
1089         Make RemoteLayerBackingStore noncopyable.
1090         Add flush(), which synchronously flushes painting operations on the underlying backing store.
1091         Add storage for the CGContext that needs to be flushed, and ensure that it is flushed before we paint again.
1092
1093         * Shared/mac/RemoteLayerBackingStore.mm:
1094         (RemoteLayerBackingStore::display):
1095
1096         (RemoteLayerBackingStore::drawInContext):
1097         Don't flush the context immediately after painting.
1098
1099         (RemoteLayerBackingStore::flush):
1100         Flush the current front surface/buffer's context.
1101         Clear the new pending-flush members.
1102
1103         * WebProcess/WebPage/mac/RemoteLayerTreeDrawingArea.mm:
1104         (WebKit::flushBackingStoreChangesInTransaction):
1105         (WebKit::RemoteLayerTreeDrawingArea::flushLayers):
1106         Crawl through all of the valid changed backing stores in the transaction and flush them.
1107         Reset changed properties after encoding the commit.
1108
1109         * Shared/mac/RemoteLayerTreeTransaction.h:
1110         (WebKit::RemoteLayerTreeTransaction::LayerProperties::resetChangedProperties):
1111         (WebKit::RemoteLayerTreeTransaction::changedLayers):
1112         (WebKit::RemoteLayerTreeTransaction::changedLayerProperties):
1113         * Shared/mac/RemoteLayerTreeTransaction.mm:
1114         (WebKit::RemoteLayerTreeTransaction::LayerProperties::LayerProperties):
1115         (WebKit::RemoteLayerTreeTransaction::LayerProperties::decode):
1116         (WebKit::RemoteLayerTreeTransaction::encode):
1117         (WebKit::RemoteLayerTreeTransaction::decode):
1118         (WebKit::RemoteLayerTreeTransaction::layerPropertiesChanged):
1119         (WebKit::dumpChangedLayers):
1120         Instead of storing a copy of the LayerProperties struct for each changed layer
1121         while building the transaction in the Web process, store a list of changed layers,
1122         and directly encode the commit from those layers' LayerProperties. This provides a few benefits:
1123                 - We avoid copying LayerProperties for every changed layer, every commit
1124                 - We can make RemoteLayerBackingStore noncopyable
1125                 - We can walk the changed layers after building the transaction
1126                 in order to flush backing store, and actually affect the layers'
1127                 own RemoteLayerBackingStore instead of a copy.
1128         The UI process will still generate a LayerPropertiesMap at decode time.
1129         
1130         * UIProcess/mac/RemoteLayerTreeHost.mm:
1131         (WebKit::RemoteLayerTreeHost::updateLayerTree):
1132         Don't copy the LayerProperties struct for the debug overlay. Instead,
1133         adjust the properties which the debug overlay whacks directly on the layer,
1134         after applying the normal LayerProperties.
1135
1136         * WebProcess/WebPage/mac/PlatformCALayerRemote.cpp:
1137         (PlatformCALayerRemote::recursiveBuildTransaction):
1138         Don't reset changed layer properties in the middle of building a transaction. Instead,
1139         RemoteLayerTreeDrawingArea::flushLayers() will reset all the flags on all changed layers
1140         after the commit is encoded.
1141
1142         * WebProcess/WebPage/mac/PlatformCALayerRemote.h:
1143         (WebKit::PlatformCALayerRemote::properties):
1144
1145 2014-03-31  Simon Fraser  <simon.fraser@apple.com>
1146
1147         [UI-side compositing] Proxy animations to the UI process
1148         https://bugs.webkit.org/show_bug.cgi?id=130946
1149
1150         Reviewed by Tim Horton.
1151         
1152         Add encoding/decoding of TimingFunctions. Add encoding support
1153         for HashSet.
1154         
1155         Add PlatformCAAnimationRemote and have PlatformCALayerRemote allow
1156         animations now. PlatformCALayerRemote's properties are defined in the class,
1157         as is the encoding/decoding (much cleaner than having them in the transaction
1158         class I think).
1159         
1160         Add support for the "animationDidStart" callback and sending this back to the
1161         web process. This involves a HashMap of layerID->WKAnimationDelegate stored
1162         on the RemoteLayerTreeHost, and a message send via the DrawingArea. On the
1163         other side, RemoteLayerTreeContext stores a HashMap of layerID->PlatformCALayerRemote*
1164         for layers which have just started animations, which is used to get the
1165         PlatformCALayer* to call animationDidStart() on.
1166         
1167         This requires that the RemoteLayerTreeHost* be passed down into property application,
1168         and that the RemoteLayerTreeHost have a reference to the drawing area.
1169         
1170         To every CALayer in the UI process we -setValue:forKey: to track the PlatformLayerID,
1171         so we can get back to it in order to dispatch "animationDidStart".
1172         
1173         Replace some "using namespace WebKit" with "namespace WebKit { }".
1174
1175         * Platform/IPC/ArgumentCoders.h:
1176         * Shared/WebCoreArgumentCoders.cpp:
1177         (IPC::ArgumentCoder<LinearTimingFunction>::encode):
1178         (IPC::ArgumentCoder<LinearTimingFunction>::decode):
1179         (IPC::ArgumentCoder<CubicBezierTimingFunction>::encode):
1180         (IPC::ArgumentCoder<CubicBezierTimingFunction>::decode):
1181         (IPC::ArgumentCoder<StepsTimingFunction>::encode):
1182         (IPC::ArgumentCoder<StepsTimingFunction>::decode):
1183         * Shared/WebCoreArgumentCoders.h:
1184         * Shared/mac/RemoteLayerBackingStore.mm:
1185         * Shared/mac/RemoteLayerTreePropertyApplier.h:
1186         * Shared/mac/RemoteLayerTreePropertyApplier.mm:
1187         (WebKit::applyPropertiesToLayer):
1188         (WebKit::RemoteLayerTreePropertyApplier::applyProperties):
1189         * Shared/mac/RemoteLayerTreeTransaction.h:
1190         * Shared/mac/RemoteLayerTreeTransaction.mm:
1191         (WebKit::RemoteLayerTreeTransaction::LayerProperties::LayerProperties):
1192         (WebKit::RemoteLayerTreeTransaction::LayerProperties::encode):
1193         (WebKit::RemoteLayerTreeTransaction::LayerProperties::decode):
1194         (WebKit::dumpChangedLayers):
1195         * UIProcess/ios/RemoteLayerTreeHostIOS.mm:
1196         (WebKit::RemoteLayerTreeHost::layerID):
1197         (WebKit::RemoteLayerTreeHost::createLayer):
1198         * UIProcess/mac/RemoteLayerTreeDrawingAreaProxy.h:
1199         * UIProcess/mac/RemoteLayerTreeDrawingAreaProxy.mm:
1200         (WebKit::RemoteLayerTreeDrawingAreaProxy::RemoteLayerTreeDrawingAreaProxy):
1201         (WebKit::RemoteLayerTreeDrawingAreaProxy::acceleratedAnimationDidStart):
1202         (WebKit::RemoteLayerTreeDrawingAreaProxy::showDebugIndicator):
1203         * UIProcess/mac/RemoteLayerTreeHost.h:
1204         (WebKit::RemoteLayerTreeHost::animationDelegates):
1205         * UIProcess/mac/RemoteLayerTreeHost.mm:
1206         (WebKit::RemoteLayerTreeHost::RemoteLayerTreeHost):
1207         (WebKit::RemoteLayerTreeHost::updateLayerTree):
1208         (WebKit::RemoteLayerTreeHost::layerWillBeRemoved):
1209         (WebKit::RemoteLayerTreeHost::animationDidStart):
1210         (WebKit::RemoteLayerTreeHost::layerID):
1211         (WebKit::RemoteLayerTreeHost::createLayer):
1212         * WebKit2.xcodeproj/project.pbxproj:
1213         * WebProcess/WebPage/DrawingArea.h:
1214         (WebKit::DrawingArea::acceleratedAnimationDidStart):
1215         * WebProcess/WebPage/DrawingArea.messages.in:
1216         * WebProcess/WebPage/mac/GraphicsLayerCARemote.cpp:
1217         (WebKit::GraphicsLayerCARemote::createPlatformCAAnimation):
1218         * WebProcess/WebPage/mac/GraphicsLayerCARemote.h:
1219         * WebProcess/WebPage/mac/PlatformCAAnimationRemote.h: Added.
1220         * WebProcess/WebPage/mac/PlatformCAAnimationRemote.mm: Added.
1221         * WebProcess/WebPage/mac/PlatformCALayerRemote.cpp:
1222         (WebKit::PlatformCALayerRemote::recursiveBuildTransaction):
1223         (WebKit::PlatformCALayerRemote::animationStarted):
1224         (WebKit::PlatformCALayerRemote::addAnimationForKey):
1225         (WebKit::PlatformCALayerRemote::removeAnimationForKey):
1226         (WebKit::PlatformCALayerRemote::animationForKey):
1227         (PlatformCALayerRemote::recursiveBuildTransaction): Deleted.
1228         (PlatformCALayerRemote::addAnimationForKey): Deleted.
1229         (PlatformCALayerRemote::removeAnimationForKey): Deleted.
1230         (PlatformCALayerRemote::animationForKey): Deleted.
1231         * WebProcess/WebPage/mac/PlatformCALayerRemoteCustom.mm:
1232         * WebProcess/WebPage/mac/PlatformCALayerRemoteTiledBacking.cpp:
1233         * WebProcess/WebPage/mac/RemoteLayerTreeContext.h:
1234         * WebProcess/WebPage/mac/RemoteLayerTreeContext.mm:
1235         (WebKit::RemoteLayerTreeContext::layerWillBeDestroyed):
1236         (WebKit::RemoteLayerTreeContext::willStartAnimationOnLayer):
1237         (WebKit::RemoteLayerTreeContext::animationDidStart):
1238         * WebProcess/WebPage/mac/RemoteLayerTreeDrawingArea.h:
1239         * WebProcess/WebPage/mac/RemoteLayerTreeDrawingArea.mm:
1240         (WebKit::RemoteLayerTreeDrawingArea::acceleratedAnimationDidStart):
1241         * WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.mm:
1242         (WebKit::TiledCoreAnimationDrawingArea::commitTransientZoom):
1243
1244 2014-03-31  Tim Horton  <timothy_horton@apple.com>
1245
1246         Double-buffer RemoteLayerBackingStore
1247         https://bugs.webkit.org/show_bug.cgi?id=130990
1248
1249         Reviewed by Simon Fraser.
1250
1251         We'll keep a front and back buffer for each surface; the front is generally currently
1252         being displayed in the UI process, and the back is the one we'll paint into.
1253
1254         Swap the two surfaces each time we paint; since we synchronize with the UI process,
1255         the old front surface will generally be out-of-use by the render server by the time
1256         we paint again. However, since render server commits are asynchronous and we have 
1257         no way to syncronize with them yet, we have to check if the (swapped to front) back buffer is in use,
1258         and create a new front buffer if it is.
1259
1260         Triple-buffering would solve this problem, as would synchronization with the render server,
1261         as would a pool of surfaces - we will revisit these solutions in future patches.
1262
1263         * Shared/mac/RemoteLayerBackingStore.h:
1264         * Shared/mac/RemoteLayerBackingStore.mm:
1265         (RemoteLayerBackingStore::ensureBackingStore):
1266         (RemoteLayerBackingStore::clearBackingStore):
1267         Factor clearBackingStore() out of ensureBackingStore() and display().
1268
1269         (RemoteLayerBackingStore::display):
1270         Swap buffers. Since m_backSurface will hold on to the back surface's CGContext,
1271         we don't need to worry about tearing down the image first anymore.
1272         Don't worry about creating a back image (nor copying it into the front image)
1273         if we're going to paint the whole layer.
1274
1275         (RemoteLayerBackingStore::drawInContext):
1276         Fix some names.
1277
1278         (RemoteLayerBackingStore::applyBackingStoreToLayer):
1279         Reduce duplication.
1280
1281         (RemoteLayerBackingStore::createImageForFrontBuffer): Deleted.
1282
1283 2014-03-31  Tim Horton  <timothy_horton@apple.com>
1284
1285         Synchronize Web process remote layer tree commits with CoreAnimation commits in the UI process
1286         https://bugs.webkit.org/show_bug.cgi?id=130984
1287
1288         Reviewed by Simon Fraser.
1289
1290         There's no reason for the Web process to paint faster than the UI process
1291         can apply to and commit the CoreAnimation layer tree.
1292
1293         Also, once we get proper double-buffering and purgeable back buffers, we
1294         will need the ability to make some assumptions about in-use surfaces.
1295
1296         Unfortunately, we can't actually tell when the render server commits, 
1297         as this is an asynchronous operation in a process we don't control, so
1298         for now, this is only an approximation.
1299
1300         This also means that the assumptions we would like to make won't be
1301         strong guarantees yet.
1302
1303         * UIProcess/mac/RemoteLayerTreeDrawingAreaProxy.h:
1304         * UIProcess/mac/RemoteLayerTreeDrawingAreaProxy.mm:
1305         (WebKit::RemoteLayerTreeDrawingAreaProxy::commitLayerTree):
1306         When we commit, install a run loop observer to fire immediately after CoreAnimation commits.
1307
1308         (WebKit::RemoteLayerTreeDrawingAreaProxy::showDebugIndicator):
1309         Fix a typo ('cmponents').
1310
1311         (WebKit::coreAnimationDidCommitLayersCallback):
1312         (WebKit::RemoteLayerTreeDrawingAreaProxy::scheduleCoreAnimationLayerCommitObserver):
1313         (WebKit::RemoteLayerTreeDrawingAreaProxy::coreAnimationDidCommitLayers):
1314         When CA commits, send a message to the Web process letting it know that we
1315         swapped to the new backing store.
1316
1317         * WebProcess/WebPage/mac/RemoteLayerTreeDrawingArea.h:
1318         * WebProcess/WebPage/mac/RemoteLayerTreeDrawingArea.mm:
1319         (WebKit::RemoteLayerTreeDrawingArea::RemoteLayerTreeDrawingArea):
1320         (WebKit::RemoteLayerTreeDrawingArea::flushLayers):
1321         (WebKit::RemoteLayerTreeDrawingArea::didUpdate):
1322         Defer remote layer tree commits until we get didUpdate() from the UI process.
1323
1324 2014-03-31  Dean Jackson  <dino@apple.com>
1325
1326         Remove WEB_ANIMATIONS
1327         https://bugs.webkit.org/show_bug.cgi?id=130989
1328
1329         Reviewed by Simon Fraser.
1330
1331         Remove this feature flag until we plan to implement.
1332
1333         * Configurations/FeatureDefines.xcconfig:
1334
1335 2014-03-31  Simon Fraser  <simon.fraser@apple.com>
1336
1337         [iOS WK2] Hook up scroll events for accelerated overflow:scroll
1338         https://bugs.webkit.org/show_bug.cgi?id=130976
1339
1340         Reviewed by Tim Horton.
1341         
1342         When an accelerated overflow:scroll is scrolled in the UI process,
1343         tell the WebProcess that the scroll happened to update RenderLayer
1344         state and fire events.
1345         
1346         Add a WKOverflowScrollViewDelegate which is set as the delegate of
1347         UIScrollViews, owned by ScrollingTreeOverflowScrollingNodeIOS, and propagates
1348         -scrollViewDidScroll: messages to ScrollingTree::scrollPositionChangedViaDelegatedScrolling(),
1349         which updates child layers and then, via RemoteScrollingTree::scrollingTreeNodeDidScroll,
1350         tells the RemoteScrollingCoordinator which sends a message to the WebProcess.
1351         
1352         * UIProcess/Scrolling/RemoteScrollingCoordinatorProxy.cpp:
1353         (WebKit::RemoteScrollingCoordinatorProxy::scrollingTreeNodeDidScroll): Name change
1354         to try to reduce confusion.
1355         (WebKit::RemoteScrollingCoordinatorProxy::scrollPositionChanged): Deleted.
1356         * UIProcess/Scrolling/RemoteScrollingCoordinatorProxy.h:
1357         * UIProcess/Scrolling/RemoteScrollingTree.cpp:
1358         (WebKit::RemoteScrollingTree::scrollingTreeNodeDidScroll):
1359         * UIProcess/Scrolling/RemoteScrollingTree.h:
1360         * UIProcess/Scrolling/ios/ScrollingTreeOverflowScrollingNodeIOS.h:
1361         * UIProcess/Scrolling/ios/ScrollingTreeOverflowScrollingNodeIOS.mm:
1362         (-[WKOverflowScrollViewDelegate initWithScrollingTreeNode:WebKit::]):
1363         (-[WKOverflowScrollViewDelegate scrollViewDidScroll:]):
1364         (-[WKOverflowScrollViewDelegate scrollViewWillBeginDragging:]):
1365         (-[WKOverflowScrollViewDelegate scrollViewDidEndDragging:willDecelerate:]):
1366         (-[WKOverflowScrollViewDelegate scrollViewDidEndScrollingAnimation:]):
1367         (WebKit::ScrollingTreeOverflowScrollingNodeIOS::~ScrollingTreeOverflowScrollingNodeIOS):
1368         (WebKit::ScrollingTreeOverflowScrollingNodeIOS::updateBeforeChildren):
1369         (WebKit::ScrollingTreeOverflowScrollingNodeIOS::updateAfterChildren):
1370         (WebKit::ScrollingTreeOverflowScrollingNodeIOS::scrollViewDidScroll):
1371         * WebProcess/Scrolling/RemoteScrollingCoordinator.mm:
1372         (WebKit::RemoteScrollingCoordinator::scrollPositionChangedForNode): No need for
1373         rounding.
1374
1375 2014-03-29  Simon Fraser  <simon.fraser@apple.com>
1376
1377         Fix scrolling on OS X with UI-side compositing
1378         https://bugs.webkit.org/show_bug.cgi?id=130930
1379
1380         Reviewed by Tim Horton.
1381         
1382         On iOS, we rely on visible rect updates to propagate scroll offset
1383         changes to the WebProcess. RemoteScrollingCoordinatorProxy was thus hardcoded
1384         to bail from scrollPositionChanged() when the scrolled node was the root node,
1385         but this broke OS X. Fix by adding a behavior flag to RemoteScrollingCoordinatorProxy.
1386
1387         * UIProcess/Scrolling/RemoteScrollingCoordinatorProxy.cpp:
1388         (WebKit::RemoteScrollingCoordinatorProxy::RemoteScrollingCoordinatorProxy):
1389         (WebKit::RemoteScrollingCoordinatorProxy::scrollPositionChanged):
1390         * UIProcess/Scrolling/RemoteScrollingCoordinatorProxy.h:
1391         (WebKit::RemoteScrollingCoordinatorProxy::setPropagatesMainFrameScrolls):
1392         (WebKit::RemoteScrollingCoordinatorProxy::propagatesMainFrameScrolls):
1393         * UIProcess/WebPageProxy.cpp:
1394         (WebKit::WebPageProxy::initializeWebPage):
1395
1396 2014-03-31  Tim Horton  <timothy_horton@apple.com>
1397
1398         [iOS WebKit2] Disable tile cohort retention for now
1399         https://bugs.webkit.org/show_bug.cgi?id=130926
1400         <rdar://problem/16465413>
1401
1402         Reviewed by Simon Fraser.
1403
1404         * Shared/WebPreferencesStore.h:
1405         * WebProcess/WebPage/WebPage.cpp:
1406         (WebKit::WebPage::updatePreferences):
1407         Add a preference for temporary tile cohort retention (essentially, provide a setting
1408         that means that we will never retain tiles at all once they leave the tile coverage rect).
1409         Defaults to true to maintain existing behavior, except for iOS WebKit2, where
1410         it defaults to false because we don't have the requisite support for purgeable tiles yet.
1411
1412         * WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.mm:
1413         (WebKit::TiledCoreAnimationDrawingArea::updatePreferences):
1414         (WebKit::TiledCoreAnimationDrawingArea::setRootCompositingLayer):
1415
1416 2014-03-31  Peter Molnar  <pmolnar.u-szeged@partner.samsung.com>
1417
1418         Buildfix after r166497.
1419
1420         Reviewed by Csaba Osztrogonác.
1421
1422         * UIProcess/API/efl/ewk_context.h: Missing EAPI added.
1423
1424 2014-03-31  Martin Robinson  <mrobinson@igalia.com>
1425
1426         [GTK] Use PROJECT_VERSION_* instead of WEBKIT_*_VERSION
1427         https://bugs.webkit.org/show_bug.cgi?id=130936
1428
1429         Reviewed by Carlos Garcia Campos.
1430
1431         * UIProcess/API/gtk/WebKitVersion.h.in: Use PROJECT_VERSION_* macros instead of the Autotools ones.
1432
1433 2014-03-31  Peter Molnar  <pmolnar.u-szeged@partner.samsung.com>
1434
1435         [EFL][WK2] Add ewk APIs to control TLS error policy on WebContext.
1436         https://bugs.webkit.org/show_bug.cgi?id=129740
1437
1438         Reviewed by Gyuyoung Kim.
1439
1440         * PlatformEfl.cmake:
1441         Added the new SSL test.
1442
1443         * UIProcess/API/efl/ewk_context.cpp:
1444         (EwkContext::ignoreTLSErrors):
1445         (EwkContext::setIgnoreTLSErrors):
1446         (ewk_context_ignore_tls_errors_get):
1447         (ewk_context_ignore_tls_errors_set):
1448         * UIProcess/API/efl/ewk_context.h:
1449         * UIProcess/API/efl/ewk_context_private.h:
1450         Added the API functions.
1451
1452         * UIProcess/API/efl/tests/UnitTestUtils/EWK2UnitTestServer.cpp:
1453         (EWK2UnitTestServer::EWK2UnitTestServer):
1454         * UIProcess/API/efl/tests/UnitTestUtils/EWK2UnitTestServer.h:
1455         Extended the unit test server to handle TLS.
1456
1457         * UIProcess/API/efl/tests/test_ewk2_ssl.cpp:
1458         Added tests to check the TLS policy API.
1459
1460 2014-03-31  Carlos Garcia Campos  <cgarcia@igalia.com>
1461
1462         Unreviewed. Fix GTK2 plugin process binary name after r166492.
1463
1464         * PlatformGTK.cmake: Fix typo.
1465
1466 2014-03-31  Dániel Bátyai  <dbatyai.u-szeged@partner.samsung.com>
1467
1468         Remove hostThisRegister() and hostThisValue()
1469         https://bugs.webkit.org/show_bug.cgi?id=130895
1470
1471         Reviewed by Geoffrey Garen.
1472
1473         Removed hostThisRegister() and hostThisValue() and instead use thisArgumentOffset() and thisValue() respectively.
1474
1475         * WebProcess/Plugins/Netscape/JSNPMethod.cpp:
1476         (WebKit::callMethod):
1477
1478 2014-03-31  Carlos Garcia Campos  <cgarcia@igalia.com>
1479
1480         [GTK] Add support for GTK3 plugins
1481         https://bugs.webkit.org/show_bug.cgi?id=130599
1482
1483         Reviewed by Martin Robinson.
1484
1485         We currently have a gtk2 based plugin process mainly for flash
1486         and a few other plugins that use GTK2, but many other plugins
1487         don't even use gtk at all. This patch builds a lighter plugin
1488         process based on GTK3, used by default for all the plugins expect
1489         the ones requiring GTK2. And of course the default plugin process
1490         supports GTK3 plugins.
1491
1492         * CMakeLists.txt: Add common rules to build the default plugin process.
1493         * PlatformEfl.cmake: Remove common cmake code that is now in CMakeLists.txt.
1494         * PlatformGTK.cmake: Rename WebKitPluginProcess to
1495         WebKitPluginProcess2 and add the platform specific rules to build
1496         the default plugin process.
1497         * Shared/Plugins/Netscape/x11/NetscapePluginModuleX11.cpp:
1498         (WebKit::NetscapePluginModule::getPluginInfoForLoadedPlugin):
1499         Check if the loaded plugin module uses GTK2.
1500         (WebKit::NetscapePluginModule::getPluginInfo): Set requiresGtk2 accordingly.
1501         (WebKit::NetscapePluginModule::scanPlugin): Write "requires-gtk2"
1502         line to stdout if the plugin requires GTK2.
1503         * Shared/Plugins/PluginModuleInfo.h: Add requiresGtk2 boolean member.
1504         * UIProcess/Launcher/gtk/ProcessLauncherGtk.cpp:
1505         (WebKit::ProcessLauncher::launchProcess): Use the
1506         WebKitPluginProcess2 executable when the plugin requires GTK2.
1507         * UIProcess/Plugins/PluginProcessProxy.h: Add requiresGtk2 boolean
1508         member to RawPluginMetaData struct.
1509         * UIProcess/Plugins/gtk/PluginInfoCache.cpp: Bump the cache schema version.
1510         (WebKit::PluginInfoCache::getPluginInfo): Read also requires-gtk2
1511         key from the cache.
1512         (WebKit::PluginInfoCache::updatePluginInfo): Save also
1513         requires-gtk2 key in the cache.
1514         * UIProcess/Plugins/unix/PluginProcessProxyUnix.cpp:
1515         (WebKit::PluginProcessProxy::platformGetLaunchOptions): Add an
1516         extra initialization data parameter if the plugin requires GTK2.
1517         (WebKit::PluginProcessProxy::scanPlugin): Check if "requires-gtk2"
1518         was written to stdout.
1519
1520 2014-03-30  Andy Estes  <aestes@apple.com>
1521
1522         [Cocoa] Add an originatingWebView property to _WKDownload
1523         https://bugs.webkit.org/show_bug.cgi?id=130945
1524
1525         Reviewed by Anders Carlsson.
1526
1527         * UIProcess/API/Cocoa/WKWebView.mm:
1528         (-[WKWebView initWithFrame:configuration:]): Passed self to WKView's initializer.
1529         * UIProcess/API/Cocoa/_WKDownload.h: Declared originatingWebView as a weak, readonly property.
1530         * UIProcess/API/Cocoa/_WKDownload.mm:
1531         (-[_WKDownload originatingWebView]):
1532         (-[_WKDownload setOriginatingWebView:]):
1533         * UIProcess/API/Cocoa/_WKDownloadInternal.h: Re-declared originatingWebView as readwrite so that
1534         PageClientImpl can call setOriginatingWebView:. Removed some dead code.
1535         * UIProcess/API/mac/WKView.mm:
1536         (-[WKView initWithFrame:context:configuration:webView:]): Updated to accept a webView parameter.
1537         (-[WKView initWithFrame:contextRef:pageGroupRef:relatedToPage:]): Passed nil for the webView parameter.
1538         * UIProcess/API/mac/WKViewInternal.h:
1539         * UIProcess/Cocoa/DownloadClient.mm:
1540         (WebKit::DownloadClient::decideDestinationWithSuggestedFilename): Ensured allowOverwrite is initialized.
1541         * UIProcess/PageClient.h: Included handleDownloadRequest() on all platforms.
1542         * UIProcess/WebPageProxy.cpp:
1543         (WebKit::WebPageProxy::receivedPolicyDecision): Ditto.
1544         (WebKit::WebPageProxy::handleDownloadRequest): Ditto.
1545         * UIProcess/WebPageProxy.h: Ditto.
1546         * UIProcess/ios/PageClientImplIOS.h:
1547         * UIProcess/ios/PageClientImplIOS.mm:
1548         (WebKit::PageClientImpl::handleDownloadRequest): Called -[_WKDownload setOriginatingWebView:].
1549         * UIProcess/mac/PageClientImpl.h: Added a m_webView member variable.
1550         * UIProcess/mac/PageClientImpl.mm:
1551         (WebKit::PageClientImpl::PageClientImpl): Asserted that m_webView is nil if WK API isn't enabled.
1552         (WebKit::PageClientImpl::handleDownloadRequest): Called -[_WKDownload setOriginatingWebView:].
1553
1554 2014-03-29  Commit Queue  <commit-queue@webkit.org>
1555
1556         Unreviewed, rolling out r166434.
1557         https://bugs.webkit.org/show_bug.cgi?id=130938
1558
1559         Caused crashes and other failures on cache tests (Requested by
1560         ap on #webkit).
1561
1562         Reverted changeset:
1563
1564         "Web Replay: add page-level setting to bypass the MemoryCache"
1565         https://bugs.webkit.org/show_bug.cgi?id=130728
1566         http://trac.webkit.org/changeset/166434
1567
1568 2014-03-28  Anders Carlsson  <andersca@apple.com>
1569
1570         Uncaught NSExceptions should crash the web process
1571         https://bugs.webkit.org/show_bug.cgi?id=130923
1572         <rdar://problem/16463751>
1573
1574         Reviewed by Dan Bernstein.
1575
1576         * WebProcess/cocoa/WebProcessCocoa.mm:
1577         (WebKit::WebProcess::platformInitializeWebProcess):
1578
1579 2014-03-28  Csaba Osztrogonác  <ossy@webkit.org>
1580
1581         Unreviewed buildfix after r166441 and r166443.
1582
1583         Missing PLATFORM(COCOA) guards added.
1584
1585         * WebProcess/Plugins/Netscape/NPRuntimeObjectMap.cpp:
1586         (WebKit::NPRuntimeObjectMap::evaluate):
1587         * WebProcess/Plugins/PluginProxy.cpp:
1588         * WebProcess/Plugins/PluginProxy.h:
1589
1590 2014-03-28  Stephanie Lewis  <slewis@apple.com>
1591
1592         Don't prevent AppSleep from sync messages.
1593         https://bugs.webkit.org/show_bug.cgi?id=130747.
1594
1595         Reviewed by Anders Carlsson.
1596
1597         We think sync messages only need to happen full throttle when the plugin is visible,
1598         the user is interacting with the plugin, or audio is playing.  Since we already
1599         take assertions for all these cases the assertion in sync messages doesn’t provide
1600         any value.  Since it can keep the PluginProcess awake in other instances remove it.
1601
1602         * PluginProcess/WebProcessConnection.cpp:
1603         (WebKit::WebProcessConnection::didReceiveSyncMessage):
1604
1605 2014-03-28  Stephanie Lewis  <slewis@apple.com>
1606
1607         Stop waking up the web process in the background because of plugin activity.
1608         Part of <rdar://problem/16061257> PluginProcess should AppNap when no plugins on active tab.
1609
1610         Reviewed by Anders Carlsson.
1611
1612         Plugin activity in the background can constantly wake up web processes.  This is only
1613         necessary when audio is playing to support web apps like Pandora and youtube playing 
1614         in the background.  Use a new api in CoreAudio to see if there is audio playing in
1615         the PluginProcess.
1616
1617         * PluginProcess/PluginProcess.cpp:
1618         (WebKit::PluginProcess::PluginProcess): Add a AudioHardwareListener
1619         (WebKit::PluginProcess::createWebProcessConnection): tell web process current state
1620         (WebKit::PluginProcess::audioHardwareDidBecomeActive): respond to audio hardware notifications
1621         (WebKit::PluginProcess::audioHardwareDidBecomeInactive):
1622         * PluginProcess/PluginProcess.h:
1623         * PluginProcess/WebProcessConnection.cpp: tell WebProcess when audio state in PluginProcess
1624              changes.
1625         (WebKit::WebProcessConnection::audioHardwareDidBecomeActive):
1626         (WebKit::WebProcessConnection::audioHardwareDidBecomeInactive):
1627         * PluginProcess/WebProcessConnection.h:
1628         * WebProcess/Plugins/Netscape/NPRuntimeObjectMap.cpp:
1629              Only invoke pageThrottler activity when playing audio
1630         (WebKit::NPRuntimeObjectMap::evaluate):
1631         * WebProcess/Plugins/Plugin.h: add function to get audio state
1632         (WebKit::Plugin::audioIsPlayingInPluginProcess):
1633         * WebProcess/Plugins/PluginProcessConnection.cpp: store audio state
1634         (WebKit::PluginProcessConnection::PluginProcessConnection):
1635         (WebKit::PluginProcessConnection::didReceiveMessage):
1636         (WebKit::PluginProcessConnection::audioHardwareDidBecomeActive):
1637         (WebKit::PluginProcessConnection::audioHardwareDidBecomeInactive):
1638         * WebProcess/Plugins/PluginProcessConnection.h:
1639         (WebKit::PluginProcessConnection::audioIsPlaying):
1640         * WebProcess/Plugins/PluginProcessConnection.messages.in:
1641         * WebProcess/Plugins/PluginProxy.cpp:
1642         (WebKit::PluginProxy::audioIsPlayingInPluginProcess):
1643         * WebProcess/Plugins/PluginProxy.h:
1644         * WebProcess/Plugins/PluginView.cpp:
1645         (WebKit::PluginView::audioIsPlayingInPluginProcess):
1646         * WebProcess/Plugins/PluginView.h:
1647
1648 2014-03-28  Stephanie Lewis  <slewis@apple.com>
1649
1650         Have the plugin process track visibility of it’s plugin and sleep when none
1651         are visible.
1652         Part of <rdar://problem/16061257> PluginProcess should AppNap when no plugins on active tab.
1653         https://bugs.webkit.org/show_bug.cgi?id=130694
1654
1655         Reviewed by Anders Carlsson.
1656
1657         Currently AppSleep is enabled on the PluginProcess based on web page visibility.
1658         Add visibility tracking to plugins and move the decision to AppSleep into the the
1659         PluginProcess
1660
1661         * PluginProcess/PluginProcess.cpp:
1662         (WebKit::PluginProcess::PluginProcess): Add a new activity for visible plugins
1663         (WebKit::PluginProcess::pluginsForWebProcessDidBecomeVisible): take an activity
1664              assertion if any web processes have a visible plugin.
1665         (WebKit::PluginProcess::pluginsForWebProcessDidBecomeHidden): 
1666         * PluginProcess/PluginProcess.h:
1667         * PluginProcess/WebProcessConnection.cpp: 
1668         (WebKit::WebProcessConnection::removePluginControllerProxy): remove plugin from 
1669             visible plugins when destroying it
1670         (WebKit::WebProcessConnection::pluginDidBecomeVisible):
1671         (WebKit::WebProcessConnection::pluginDidBecomeHidden): track which plugins are
1672             visible for each web process
1673         * PluginProcess/WebProcessConnection.h:
1674         * PluginProcess/mac/PluginControllerProxyMac.mm:
1675         (WebKit::PluginControllerProxy::windowVisibilityChanged): notify WebProcessConnection
1676             when visibility changed.
1677         * UIProcess/WebContext.h:
1678         * UIProcess/mac/WebContextMac.mm:  instead of tracking plugin app sleep state on the web pref.
1679             and visibility state, just use the web pref.
1680         (WebKit::WebContext::updateProcessSuppressionState):
1681         (WebKit::WebContext::processSuppressionPreferenceIsEnabledForAllContexts):
1682
1683 2014-03-28  Brian Burg  <bburg@apple.com>
1684
1685         Web Replay: add page-level setting to bypass the MemoryCache
1686         https://bugs.webkit.org/show_bug.cgi?id=130728
1687
1688         Reviewed by Timothy Hatcher.
1689
1690         * UIProcess/APISession.cpp:
1691         (API::generateID): update the base ID for generating unique sessions.
1692
1693 2014-03-28  Cody Krieger  <cjk@apple.com>
1694
1695         Add willSubmitForm callback support to WKWebProcessPlugInFormDelegatePrivate.
1696
1697         https://bugs.webkit.org/show_bug.cgi?id=130875
1698
1699         Reviewed by Anders Carlsson.
1700
1701         * WebProcess/InjectedBundle/API/Cocoa/WKWebProcessPlugInFormDelegatePrivate.h:
1702         Add -_webProcessPlugInBrowserContextController:willSubmitForm:toFrame:fromFrame:withValues:
1703         to the WKWebProcessPlugInFormDelegatePrivate protocol.
1704
1705         * WebProcess/InjectedBundle/API/mac/WKWebProcessPlugInBrowserContextController.mm:
1706         Wire up the willSubmitForm() callback to the new
1707         WKWebProcessPlugInFormDelegatePrivate method.
1708
1709 2014-03-28  Alexey Proskuryakov  <ap@apple.com>
1710
1711         [Mac] Enable async text input implementation
1712         https://bugs.webkit.org/show_bug.cgi?id=130856
1713
1714         Reviewed by Sam Weinig.
1715
1716         * UIProcess/API/mac/WKView.mm: (-[WKView _interpretKeyEvent:completionHandler:]):
1717         Temporarily work around <rdar://16393434>.
1718
1719 2014-03-28  Alexey Proskuryakov  <ap@apple.com>
1720
1721         Move sync CancelComposition message under an ifdef
1722         https://bugs.webkit.org/show_bug.cgi?id=130908
1723
1724         Reviewed by Enrica Casucci.
1725
1726         * UIProcess/WebPageProxy.h:
1727         * UIProcess/ios/WebPageProxyIOS.mm:
1728         (WebKit::WebPageProxy::cancelComposition): Deleted.
1729         * UIProcess/mac/WebPageProxyMac.mm:
1730         * WebProcess/WebPage/WebPage.h:
1731         * WebProcess/WebPage/WebPage.messages.in:
1732         * WebProcess/WebPage/mac/WebPageMac.mm:
1733
1734 2014-03-28  Alexey Proskuryakov  <ap@apple.com>
1735
1736         [iOS] Don't cancel composition on selection change
1737         https://bugs.webkit.org/show_bug.cgi?id=130909
1738
1739         Reviewed by Enrica Casucci.
1740
1741         Fixing a recent regression from bug 130727.
1742
1743         * WebProcess/WebPage/WebPage.cpp: (WebKit::WebPage::didChangeSelection):
1744
1745 2014-03-28  Peter Molnar  <pmolnar.u-szeged@partner.samsung.com>
1746
1747         [WK2] Removed unused method logChannelByName.
1748         https://bugs.webkit.org/show_bug.cgi?id=130897
1749
1750         Reviewed by Anders Carlsson.
1751
1752         * Platform/Logging.cpp:
1753         (WebKit::logChannelByName): Deleted.
1754         * Platform/Logging.h:
1755
1756 2014-03-28  Alexey Proskuryakov  <ap@apple.com>
1757
1758         Eliminate a sync cancelComposition call in WebPageProxy::editorStateChanged
1759         https://bugs.webkit.org/show_bug.cgi?id=130727
1760
1761         Reviewed by Enrica Casucci.
1762
1763         Added a separate CompositionWasCanceled IPC call, with which WebProcess can tell
1764         UIProcess that it should notify an input method of canceled composition. There are
1765         a lot of incorrect edge cases where we don't call it correctly, but this was true
1766         in the old implementation too (for different edge cases).
1767
1768         This change only affects iOS and async NSTextInputClient code path on Mac. I don't
1769         want to change sync NSTextInputClient code path unless absolutely necessary.
1770
1771         * UIProcess/WebPageProxy.cpp:
1772         (WebKit::WebPageProxy::WebPageProxy):
1773         (WebKit::WebPageProxy::editorStateChanged):
1774         (WebKit::WebPageProxy::compositionWasCanceled):
1775         (WebKit::WebPageProxy::resetStateAfterProcessExited):
1776         * UIProcess/WebPageProxy.h:
1777         * UIProcess/WebPageProxy.messages.in:
1778         * UIProcess/mac/WebPageProxyMac.mm:
1779         (WebKit::WebPageProxy::insertText):
1780         (WebKit::WebPageProxy::executeKeypressCommands):
1781         * WebProcess/WebPage/WebPage.cpp:
1782         (WebKit::WebPage::didChangeSelection):
1783
1784 2014-03-28  Mario Sanchez Prada  <mario.prada@samsung.com>
1785
1786         [GTK] Running minibrowser with url crashes in debug build
1787         https://bugs.webkit.org/show_bug.cgi?id=130492
1788
1789         Reviewed by Martin Robinson.
1790
1791         Use the ResourceRequest(const URL& url) constructor, instead of the
1792         one taking a String, to call WebPageProxy::loadRequest(), so we
1793         ensure that the passed URI is correctly constructed.
1794
1795         * UIProcess/API/gtk/WebKitWebView.cpp:
1796         (webkit_web_view_load_uri): Create an URL out of a SoupURI and
1797         use that to create a ResourceRequest to pass to loadRequest().
1798
1799 2014-03-27  Pratik Solanki  <psolanki@apple.com>
1800
1801         [iOS WebKit2] Tweak cache sizes for iOS
1802         https://bugs.webkit.org/show_bug.cgi?id=130871
1803
1804         Reviewed by Sam Weinig.
1805
1806         Bring over the tweaks we had made to memory cache size for WebKit1 on iOS to WebKit2. These
1807         were made per findings in <rdar://8611638>.
1808
1809         * Shared/CacheModel.cpp:
1810         (WebKit::calculateCacheSizes):
1811
1812 2014-03-27  Jinwoo Song  <jinwoo7.song@samsung.com>
1813
1814         [WK2][EFL] Fix wrong parameter name in ewk_view_user_agent_set()
1815         https://bugs.webkit.org/show_bug.cgi?id=130888
1816
1817         Reviewed by Gyuyoung Kim.
1818
1819         * UIProcess/API/efl/ewk_view.h:
1820
1821 2014-03-27  Alexey Proskuryakov  <ap@apple.com>
1822
1823         Confirm composition in resignFirstResponder, don't cancel it
1824         https://bugs.webkit.org/show_bug.cgi?id=130852
1825
1826         Reviewed by Darin Adler.
1827
1828         * UIProcess/API/mac/WKView.mm: (-[WKView resignFirstResponder]):
1829
1830 2014-03-27  Pratik Solanki  <psolanki@apple.com>
1831
1832         [iOS WebKit2] Don't pass disk cache directory path on iOS
1833         https://bugs.webkit.org/show_bug.cgi?id=130862
1834
1835         Reviewed by Sam Weinig.
1836
1837         The diskPath passed to NSURLCache initializer is treated differently on Mac and iOS. Just
1838         pass nil for now until we sort out the API.
1839
1840         * NetworkProcess/cocoa/NetworkProcessCocoa.mm:
1841         (WebKit::NetworkProcess::platformInitializeNetworkProcessCocoa):
1842         * WebProcess/cocoa/WebProcessCocoa.mm:
1843         (WebKit::WebProcess::platformInitializeWebProcess):
1844
1845 2014-03-27  Pratik Solanki  <psolanki@apple.com>
1846
1847         [iOS WebKit2] Share network process code between iOS and Mac
1848         https://bugs.webkit.org/show_bug.cgi?id=130861
1849
1850         Reviewed by Sam Weinig.
1851
1852         Implement network process functions for iOS by moving common code from NetworkProcessMac.mm
1853         to a new shared file NetworkProcessCocoa.mm and sharing between iOS and Mac.
1854
1855         * NetworkProcess/NetworkProcess.h:
1856         * NetworkProcess/cocoa/NetworkProcessCocoa.mm: Added.
1857         (WebKit::NetworkProcess::platformLowMemoryHandler):
1858         (WebKit::NetworkProcess::platformInitializeNetworkProcessCocoa):
1859         Common initialization code for iOS and Mac.
1860         (WebKit::memorySize):
1861         (WebKit::volumeFreeSize):
1862         (WebKit::NetworkProcess::platformSetCacheModel):
1863         * NetworkProcess/ios/NetworkProcessIOS.mm:
1864         (WebKit::NetworkProcess::initializeProcess):
1865         Remove unnecessary #if PLATFORM(IOS).
1866         (WebKit::NetworkProcess::platformInitializeNetworkProcess):
1867         * NetworkProcess/mac/NetworkProcessMac.mm:
1868         (WebKit::NetworkProcess::platformInitializeNetworkProcess):
1869         * WebKit2.xcodeproj/project.pbxproj:
1870
1871 2014-03-27  Enrica Casucci  <enrica@apple.com>
1872
1873         Add support for AirPlay picker in WK2 for iOS.
1874         https://bugs.webkit.org/show_bug.cgi?id=130855
1875         <rdar://problem/15349859>
1876
1877         Reviewed by Joseph Pecoraro and Benjamin Poulain.
1878
1879         Adds support to display the airplay picker for iPhone and iPad
1880         in WK2.
1881         The picker on iPad is displayed next to the airplay button.
1882
1883         * UIProcess/PageClient.h:
1884         * UIProcess/WebPageProxy.h:
1885         * UIProcess/WebPageProxy.messages.in:
1886         * UIProcess/ios/PageClientImplIOS.h:
1887         * UIProcess/ios/PageClientImplIOS.mm:
1888         (WebKit::PageClientImpl::showAirPlayRoutePicker):
1889         * UIProcess/ios/WKContentViewInteraction.h:
1890         * UIProcess/ios/WKContentViewInteraction.mm:
1891         (-[WKContentView _showAirPlayRoutePicker:fromRect:]):
1892         * UIProcess/ios/WebPageProxyIOS.mm:
1893         (WebKit::WebPageProxy::showAirPlayRoutePicker):
1894         * UIProcess/ios/forms/WKAirPlayRoutePicker.h: Added.
1895         * UIProcess/ios/forms/WKAirPlayRoutePicker.mm: Added.
1896         (-[WKAirPlayRoutePicker initWithView:]):
1897         (-[WKAirPlayRoutePicker dealloc]):
1898         (-[WKAirPlayRoutePicker popoverControllerDidDismissPopover:]):
1899         (-[WKAirPlayRoutePicker _presentAirPlayPopoverAnimated:fromRect:]):
1900         (-[WKAirPlayRoutePicker _windowWillRotate:]):
1901         (-[WKAirPlayRoutePicker _windowDidRotate:]):
1902         (-[WKAirPlayRoutePicker _dismissAirPlayRoutePickerIPad]):
1903         (-[WKAirPlayRoutePicker showAirPlayPickerIPad:fromRect:]):
1904         (-[WKAirPlayRoutePicker showAirPlayPickerIPhone:]):
1905         (-[WKAirPlayRoutePicker show:fromRect:]):
1906         * WebKit2.xcodeproj/project.pbxproj:
1907         * WebProcess/WebCoreSupport/WebChromeClient.h:
1908         * WebProcess/WebCoreSupport/ios/WebChromeClientIOS.mm:
1909         (WebKit::WebChromeClient::showAirPlayRoutePicker):
1910         * WebProcess/WebPage/WebPage.cpp:
1911         (WebKit::WebPage::touchEvent):
1912         (WebKit::WebPage::touchEventSyncForTesting):
1913         * WebProcess/WebPage/WebPage.h:
1914         * WebProcess/WebPage/ios/WebPageIOS.mm:
1915         (WebKit::WebPage::rectForElementAtInteractionLocation):
1916         (WebKit::WebPage::handleTap):
1917
1918 2014-03-27  Benjamin Poulain  <bpoulain@apple.com>
1919
1920         [WK2][iOS] <rdar://problem/16414684> WKWebView should draw a white background before the page loads
1921         https://bugs.webkit.org/show_bug.cgi?id=130873
1922
1923         Reviewed by Simon Fraser.
1924
1925         * UIProcess/API/Cocoa/WKWebView.mm:
1926         (-[WKWebView initWithFrame:configuration:]):
1927
1928 2014-03-27  Benjamin Poulain  <bpoulain@apple.com>
1929
1930         [iOS][WK2] Compute a good exposed rect when scaling WKContentView
1931         https://bugs.webkit.org/show_bug.cgi?id=130761
1932
1933         Reviewed by Simon Fraser.
1934
1935         Add a simple heuristic to improve tiling while zooming. In theory we could take the zoom
1936         center and scaleRate to split the speed between scrolling and pinching. In practice,
1937         zoom is transitory and is not as predictable as scrolling, so this patch just does a very
1938         simple heuristic:
1939         -When zooming in, do not expand coverage.
1940         -When zooming out, add half a tile size on every side.
1941
1942         * Shared/VisibleContentRectUpdateInfo.cpp:
1943         (WebKit::VisibleContentRectUpdateInfo::encode):
1944         (WebKit::VisibleContentRectUpdateInfo::decode):
1945         * Shared/VisibleContentRectUpdateInfo.h:
1946         (WebKit::VisibleContentRectUpdateInfo::VisibleContentRectUpdateInfo):
1947         (WebKit::VisibleContentRectUpdateInfo::timestamp):
1948         (WebKit::VisibleContentRectUpdateInfo::horizontalVelocity):
1949         (WebKit::VisibleContentRectUpdateInfo::verticalVelocity):
1950         (WebKit::VisibleContentRectUpdateInfo::scaleChangeRate):
1951         * UIProcess/ios/WKContentView.mm:
1952         (WebKit::HistoricalVelocityData::VelocityData::VelocityData):
1953         (WebKit::HistoricalVelocityData::velocityForNewData):
1954         (WebKit::HistoricalVelocityData::append):
1955         (-[WKContentView didUpdateVisibleRect:unobscuredRect:scale:inStableState:]):
1956         * WebProcess/WebPage/ios/WebPageIOS.mm:
1957
1958         (WebKit::adjustExposedRectForBoundedScale):
1959         When zooming past the maximum size, adjust the exposed rect to continue tiling the area
1960         at maximum size. Otherwise, we tile a tiny area, and have to retile larger when the animation
1961         pull back the view to maximum scale.
1962
1963         (WebKit::adjustVelocityDataForBoundedScale):
1964         Since we do not split the velocity from scrolling from the scaling, just clear the velocity when zooming.
1965         Also clear the scaleChangeRate when the scale is out of bounds. There is no reason to add tiles for
1966         temporary state.
1967
1968         (WebKit::WebPage::updateVisibleContentRects):
1969
1970 2014-03-27  Anders Carlsson  <andersca@apple.com>
1971
1972         Add _ prefix to WKRemoteObjectRegistery and WKRemoteObjectInterface
1973         https://bugs.webkit.org/show_bug.cgi?id=130868
1974
1975         Reviewed by Sam Weinig.
1976
1977         * Shared/API/Cocoa/RemoteObjectRegistry.h:
1978         * Shared/API/Cocoa/RemoteObjectRegistry.mm:
1979         (WebKit::RemoteObjectRegistry::RemoteObjectRegistry):
1980         * Shared/API/Cocoa/WKRemoteObject.h:
1981         * Shared/API/Cocoa/WKRemoteObject.mm:
1982         (-[WKRemoteObject _initWithObjectRegistry:interface:]):
1983         * Shared/API/Cocoa/WKRemoteObjectCoder.h:
1984         * Shared/API/Cocoa/WKRemoteObjectCoder.mm:
1985         (-[WKRemoteObjectDecoder initWithInterface:rootObjectDictionary:WebKit::]):
1986         * Shared/API/Cocoa/WKRemoteObjectInterface.h:
1987         * Shared/API/Cocoa/WKRemoteObjectInterface.mm:
1988         (isContainerClass): Deleted.
1989         (propertyListClasses): Deleted.
1990         (allowedArgumentClassesForMethod): Deleted.
1991         (initializeAllowedArgumentClasses): Deleted.
1992         (-[WKRemoteObjectInterface initWithProtocol:identifier:]): Deleted.
1993         (+[WKRemoteObjectInterface remoteObjectInterfaceWithProtocol:]): Deleted.
1994         (-[WKRemoteObjectInterface description]): Deleted.
1995         (classesForSelectorArgument): Deleted.
1996         (-[WKRemoteObjectInterface classesForSelector:argumentIndex:]): Deleted.
1997         (-[WKRemoteObjectInterface setClasses:forSelector:argumentIndex:]): Deleted.
1998         (methodArgumentTypeEncodingForSelector): Deleted.
1999         (-[WKRemoteObjectInterface _methodSignatureForSelector:]): Deleted.
2000         (-[WKRemoteObjectInterface _allowedArgumentClassesForSelector:]): Deleted.
2001         * Shared/API/Cocoa/WKRemoteObjectRegistry.h:
2002         * Shared/API/Cocoa/WKRemoteObjectRegistry.mm:
2003         (-[WKRemoteObjectRegistry registerExportedObject:interface:]): Deleted.
2004         (-[WKRemoteObjectRegistry unregisterExportedObject:interface:]): Deleted.
2005         (-[WKRemoteObjectRegistry remoteObjectProxyWithInterface:]): Deleted.
2006         (-[WKRemoteObjectRegistry _initWithMessageSender:IPC::]): Deleted.
2007         (-[WKRemoteObjectRegistry _invalidate]): Deleted.
2008         (-[WKRemoteObjectRegistry _sendInvocation:interface:]): Deleted.
2009         (-[WKRemoteObjectRegistry WebKit::]): Deleted.
2010         (-[WKRemoteObjectRegistry _invokeMethod:]): Deleted.
2011         (-[WKRemoteObjectRegistry _invokeMessageWithInterfaceIdentifier:encodedInvocation:]): Deleted.
2012         * Shared/API/Cocoa/_WKRemoteObjectInterface.h: Copied from Source/WebKit2/Shared/API/Cocoa/WKRemoteObjectInterface.h.
2013         * Shared/API/Cocoa/_WKRemoteObjectInterface.mm: Copied from Source/WebKit2/Shared/API/Cocoa/WKRemoteObjectInterface.mm.
2014         (isContainerClass):
2015         (propertyListClasses):
2016         (allowedArgumentClassesForMethod):
2017         (initializeAllowedArgumentClasses):
2018         (-[_WKRemoteObjectInterface initWithProtocol:identifier:]):
2019         (+[_WKRemoteObjectInterface remoteObjectInterfaceWithProtocol:]):
2020         (-[_WKRemoteObjectInterface description]):
2021         (classesForSelectorArgument):
2022         (-[_WKRemoteObjectInterface classesForSelector:argumentIndex:]):
2023         (-[_WKRemoteObjectInterface setClasses:forSelector:argumentIndex:]):
2024         (methodArgumentTypeEncodingForSelector):
2025         (-[_WKRemoteObjectInterface _methodSignatureForSelector:]):
2026         (-[_WKRemoteObjectInterface _allowedArgumentClassesForSelector:]):
2027         * Shared/API/Cocoa/_WKRemoteObjectInterfaceInternal.h: Renamed from Source/WebKit2/Shared/API/Cocoa/WKRemoteObjectInterfaceInternal.h.
2028         * Shared/API/Cocoa/_WKRemoteObjectRegistry.h: Copied from Source/WebKit2/Shared/API/Cocoa/WKRemoteObjectRegistry.h.
2029         * Shared/API/Cocoa/_WKRemoteObjectRegistry.mm: Copied from Source/WebKit2/Shared/API/Cocoa/WKRemoteObjectRegistry.mm.
2030         (-[_WKRemoteObjectRegistry registerExportedObject:interface:]):
2031         (-[_WKRemoteObjectRegistry unregisterExportedObject:interface:]):
2032         (-[_WKRemoteObjectRegistry remoteObjectProxyWithInterface:]):
2033         (-[_WKRemoteObjectRegistry _initWithMessageSender:IPC::]):
2034         (-[_WKRemoteObjectRegistry _invalidate]):
2035         (-[_WKRemoteObjectRegistry _sendInvocation:interface:]):
2036         (-[_WKRemoteObjectRegistry WebKit::]):
2037         (-[_WKRemoteObjectRegistry _invokeMethod:]):
2038         (-[_WKRemoteObjectRegistry _invokeMessageWithInterfaceIdentifier:encodedInvocation:]):
2039         * Shared/API/Cocoa/_WKRemoteObjectRegistryInternal.h: Renamed from Source/WebKit2/Shared/API/Cocoa/WKRemoteObjectRegistryInternal.h.
2040         * UIProcess/API/Cocoa/WKBrowsingContextController.mm:
2041         (-[WKBrowsingContextController _remoteObjectRegistry]):
2042         (-[WKBrowsingContextController remoteObjectRegistry]): Deleted.
2043         * UIProcess/API/Cocoa/WKBrowsingContextControllerPrivate.h:
2044         * UIProcess/API/Cocoa/WKWebView.mm:
2045         (-[WKWebView _remoteObjectRegistry]):
2046         * UIProcess/API/Cocoa/WKWebViewPrivate.h:
2047         * WebKit2.xcodeproj/project.pbxproj:
2048         * WebProcess/InjectedBundle/API/Cocoa/WKWebProcessPlugInBrowserContextControllerToBeRemoved.mm: Copied from Source/WebKit2/Shared/API/Cocoa/WKRemoteObject.h.
2049         (-[WKWebProcessPlugInBrowserContextController remoteObjectRegistry]):
2050         * WebProcess/InjectedBundle/API/mac/WKWebProcessPlugInBrowserContextController.mm:
2051         (-[WKWebProcessPlugInBrowserContextController _remoteObjectRegistry]):
2052         (-[WKWebProcessPlugInBrowserContextController remoteObjectRegistry]): Deleted.
2053         * WebProcess/InjectedBundle/API/mac/WKWebProcessPlugInBrowserContextControllerPrivate.h:
2054
2055 2014-03-27  Commit Queue  <commit-queue@webkit.org>
2056
2057         Unreviewed, rolling out r166360.
2058         https://bugs.webkit.org/show_bug.cgi?id=130869
2059
2060         Seems to have broken PLT (Requested by ap on #webkit).
2061
2062         Reverted changeset:
2063
2064         "Connection::dispatchOneMessage() can be re-entered while
2065         handling Cmd-key menu"
2066         https://bugs.webkit.org/show_bug.cgi?id=130767
2067         http://trac.webkit.org/changeset/166360
2068
2069 2014-03-27  Sam Weinig  <sam@webkit.org>
2070
2071         Support dynamic layer hosting context changes
2072         <rdar://problem/16278019>
2073         https://bugs.webkit.org/show_bug.cgi?id=130863
2074
2075         Reviewed by Anders Carlsson.
2076
2077         * UIProcess/API/mac/WKView.mm:
2078         (-[WKView addWindowObserversForWindow:]):
2079         (-[WKView removeWindowObservers]):
2080         (-[WKView _windowDidChangeLayerHosting:]):
2081         * UIProcess/WebPageProxy.cpp:
2082         (WebKit::WebPageProxy::layerHostingModeDidChange):
2083         * UIProcess/WebPageProxy.h:
2084
2085 2014-03-27  Simon Fraser  <simon.fraser@apple.com>
2086
2087         Don't leak the WKBrowsingContextController
2088         https://bugs.webkit.org/show_bug.cgi?id=130815
2089
2090         Reviewed by Tim Horton.
2091         
2092         Use adoptNS to avoid leaking the WKBrowsingContextController.
2093
2094         * UIProcess/ios/WKContentView.mm:
2095         (-[WKContentView browsingContextController]):
2096
2097 2014-03-27  Joseph Pecoraro  <pecoraro@apple.com>
2098
2099         Web Inspector: Give WebProcess a proxy application entitlement
2100         https://bugs.webkit.org/show_bug.cgi?id=130806
2101
2102         Reviewed by Timothy Hatcher.
2103
2104         * Configurations/WebContent-iOS.entitlements:
2105
2106 2014-03-27  Anders Carlsson  <andersca@apple.com>
2107
2108         Add reload and reloadFromOrigin as API
2109         https://bugs.webkit.org/show_bug.cgi?id=130858
2110
2111         Reviewed by Simon Fraser.
2112
2113         * UIProcess/API/Cocoa/WKWebView.h:
2114         * UIProcess/API/Cocoa/WKWebView.mm:
2115         (-[WKWebView reload]):
2116         (-[WKWebView reloadFromOrigin]):
2117         (-[WKWebView validateUserInterfaceItem:]):
2118         (-[WKWebView reload:]):
2119         (-[WKWebView reloadFromOrigin:]):
2120
2121 2014-03-27  Anders Carlsson  <andersca@apple.com>
2122
2123         Rename WKFrameHandle to _WKFrameHandle
2124         https://bugs.webkit.org/show_bug.cgi?id=130847
2125
2126         Reviewed by Tim Horton.
2127
2128         * Shared/API/Cocoa/_WKFrameHandle.h: Renamed from Source/WebKit2/Shared/API/Cocoa/WKFrameHandle.h.
2129         * Shared/API/Cocoa/_WKFrameHandle.mm: Renamed from Source/WebKit2/Shared/API/Cocoa/WKFrameHandle.mm.
2130         (-[_WKFrameHandle dealloc]):
2131         (-[_WKFrameHandle isEqual:]):
2132         (-[_WKFrameHandle hash]):
2133         (-[_WKFrameHandle _frameID]):
2134         (-[_WKFrameHandle copyWithZone:]):
2135         (+[_WKFrameHandle supportsSecureCoding]):
2136         (-[_WKFrameHandle initWithCoder:]):
2137         (-[_WKFrameHandle encodeWithCoder:]):
2138         (-[_WKFrameHandle API::]):
2139         * Shared/API/Cocoa/_WKFrameHandleInternal.h: Renamed from Source/WebKit2/Shared/API/Cocoa/WKFrameHandleInternal.h.
2140         (WebKit::wrapper):
2141         * Shared/Cocoa/APIObject.mm:
2142         (API::Object::newObject):
2143         * WebKit2.xcodeproj/project.pbxproj:
2144         * WebProcess/InjectedBundle/API/Cocoa/WKWebProcessPlugInFrame.h:
2145         * WebProcess/InjectedBundle/API/Cocoa/WKWebProcessPlugInFrame.mm:
2146         (+[WKWebProcessPlugInFrame lookUpFrameFromHandle:]):
2147         (-[WKWebProcessPlugInFrame handle]):
2148         * WebProcess/InjectedBundle/API/Cocoa/WKWebProcessPlugInFramePrivate.h:
2149
2150 2014-03-27  Alexey Proskuryakov  <ap@apple.com>
2151
2152         Connection::dispatchOneMessage() can be re-entered while handling Cmd-key menu
2153         equivalents, ASSERT(!_data->_keyDownEventBeingResent)
2154         https://bugs.webkit.org/show_bug.cgi?id=130767
2155         <rdar://problem/16307487>
2156
2157         Reviewed by Darin Adler.
2158
2159         * Shared/WebKit2Initialize.cpp: (WebKit::InitializeWebKit2): Added NSModalPanelRunLoopMode
2160         to RunLoop event source and timer modes.
2161
2162 2014-03-27  Jae Hyun Park  <jaepark@webkit.org>
2163
2164         Remove LayerTreeContextCairo.cpp
2165         https://bugs.webkit.org/show_bug.cgi?id=130807
2166
2167         Reviewed by Martin Robinson.
2168
2169         * Shared/cairo/LayerTreeContextCairo.cpp: Removed.
2170
2171 2014-03-27  Maciej Florek  <m.florek@samsung.com>
2172
2173         [EFL][WK2] Add tests of the set process model API
2174         https://bugs.webkit.org/show_bug.cgi?id=130830
2175
2176         Reviewed by Gyuyoung Kim.
2177
2178         Implement unit tests to check, if process model API works
2179         properly. When process model is set to EWK_PROCESS_MODEL_SHARED_SECONDARY,
2180         there should be only one WebProcess. In case of EWK_PROCESS_MODEL_MULTIPLE_SECONDARY
2181         setting, each WebView should have own process, as well as the network process
2182         should exist.
2183
2184         * UIProcess/API/efl/tests/UnitTestUtils/EWK2UnitTestBase.cpp:
2185         (EWK2UnitTest::EWK2UnitTestBase::EWK2UnitTestBase):
2186         (EWK2UnitTest::EWK2UnitTestBase::SetUp):
2187         * UIProcess/API/efl/tests/UnitTestUtils/EWK2UnitTestBase.h:
2188         * UIProcess/API/efl/tests/test_ewk2_context.cpp:
2189         (EWK2ContextTestMultipleProcesses::EWK2ContextTestMultipleProcesses):
2190         (TEST_F):
2191
2192 2014-03-27  Commit Queue  <commit-queue@webkit.org>
2193
2194         Unreviewed, rolling out r166296 and r166331.
2195         https://bugs.webkit.org/show_bug.cgi?id=130822
2196
2197         caused some crashes and frequent assertion failures, and the
2198         fix is going to take a little while (Requested by thorton on
2199         #webkit).
2200
2201         Reverted changesets:
2202
2203         "[iOS WebKit2] Flush all surfaces after painting into all of
2204         them, instead of after painting into each one"
2205         https://bugs.webkit.org/show_bug.cgi?id=130768
2206         http://trac.webkit.org/changeset/166296
2207
2208         "Assertion failure in RemoteLayerBackingStore::flush"
2209         https://bugs.webkit.org/show_bug.cgi?id=130810
2210         http://trac.webkit.org/changeset/166331
2211
2212 2014-03-26  Tim Horton  <timothy_horton@apple.com>
2213
2214         Blind speculative iOS build fix.
2215
2216         * WebProcess/WebPage/ios/WebPageIOS.mm:
2217         (WebKit::WebPage::viewportConfigurationChanged):
2218
2219 2014-03-26  Benjamin Poulain  <bpoulain@apple.com>
2220
2221         [iOS][WK2] <rdar://problem/16265272> REGRESSION (WebKit2): Some pages appear blank until you scroll
2222         https://bugs.webkit.org/show_bug.cgi?id=130819
2223
2224         Reviewed by Tim Horton.
2225
2226         When loading a new page, we never define the unobscured rect and exposed rect on the new frame.
2227         As a result, there is nothing to render.
2228
2229         It uses to work thanks to dumb luck and a bug in Safari updating the visibleContentRects from
2230         the UIProcess. Now that the bug is gone, "dumb luck" is not reliable enough to get the content rects :)
2231
2232         What this patch does is save if we have ever received new rects from the UI. If we have not, create them
2233         based on the minimum layout size. This works because we know Safari shows the minimum layout size by default
2234         and will tell us if it changes the obscured rects.
2235
2236         * WebProcess/WebPage/WebPage.cpp:
2237         (WebKit::WebPage::WebPage):
2238         (WebKit::WebPage::didCommitLoad):
2239         * WebProcess/WebPage/WebPage.h:
2240         * WebProcess/WebPage/ios/WebPageIOS.mm:
2241         (WebKit::WebPage::viewportConfigurationChanged):
2242         (WebKit::WebPage::updateVisibleContentRects):
2243
2244 2014-03-26  Anders Carlsson  <andersca@apple.com>
2245
2246         Add a _WKScriptWorld class
2247         https://bugs.webkit.org/show_bug.cgi?id=130817
2248
2249         Reviewed by Dan Bernstein.
2250
2251         * UIProcess/API/Cocoa/_WKScriptWorld.h: Added.
2252         * UIProcess/API/Cocoa/_WKScriptWorld.mm: Added.
2253         (generateWorldID):
2254         (+[_WKScriptWorld defaultWorld]):
2255         (-[_WKScriptWorld init]):
2256         (-[_WKScriptWorld _initWithWorldID:]):
2257         * WebKit2.xcodeproj/project.pbxproj:
2258
2259 2014-03-26  Anders Carlsson  <andersca@apple.com>
2260
2261         Rename a delegate method to -webView:didFinishNavigation:
2262         https://bugs.webkit.org/show_bug.cgi?id=130814
2263
2264         Reviewed by Sam Weinig.
2265
2266         * UIProcess/API/Cocoa/WKNavigationDelegate.h:
2267         * UIProcess/Cocoa/NavigationState.h:
2268         * UIProcess/Cocoa/NavigationState.mm:
2269         (WebKit::NavigationState::setNavigationDelegate):
2270         (WebKit::NavigationState::LoaderClient::didFinishLoadForFrame):
2271
2272 2014-03-26  Tim Horton  <timothy_horton@apple.com>
2273
2274         [iOS WebKit2] Crashes on swipe
2275         <rdar://problem/16440867>
2276
2277         Reviewed by Benjamin Poulain.
2278
2279         * UIProcess/ios/ViewGestureControllerIOS.mm:
2280         (WebKit::ViewGestureController::beginSwipeGesture):
2281         Get the IOSurfaceRef from the WebCore::IOSurface.
2282
2283 2014-03-26  Simon Fraser  <simon.fraser@apple.com>
2284
2285         Fix the build: include UIKit headers inside the iOS #ifdef.
2286
2287         * UIProcess/Scrolling/ios/ScrollingTreeOverflowScrollingNodeIOS.mm:
2288
2289 2014-03-26  Simon Fraser  <simon.fraser@apple.com>
2290
2291         Hook up -webkit-overflow-scrolling:touch for iOS WK2
2292         https://bugs.webkit.org/show_bug.cgi?id=130809
2293
2294         Reviewed by Tim Horton.
2295
2296         * UIProcess/Scrolling/ios/ScrollingTreeOverflowScrollingNodeIOS.h:
2297         * UIProcess/Scrolling/ios/ScrollingTreeOverflowScrollingNodeIOS.mm:
2298         (WebKit::ScrollingTreeOverflowScrollingNodeIOS::updateAfterChildren):
2299         Set the content size of the UIScrollVIew based on the geometry.
2300         * UIProcess/ios/RemoteLayerTreeHostIOS.mm:
2301         (WebKit::RemoteLayerTreeHost::createLayer): Make a UIScrollView if the
2302         layer properties tell us that we have the scrolling behavior.
2303         * UIProcess/ios/WKContentView.mm:
2304         (-[WKContentView initWithFrame:context:WebKit::configuration:WebKit::webView:]):
2305         We need to allow user interaction in the _rootContentView so that events get to
2306         nested UIScrollViews (this could be optimized in future).
2307         * UIProcess/mac/RemoteLayerTreeHost.h:
2308         * UIProcess/mac/RemoteLayerTreeHost.mm:
2309         (WebKit::RemoteLayerTreeHost::updateLayerTree):
2310         (WebKit::RemoteLayerTreeHost::createLayer): Need to pass RemoteLayerTreeTransaction::LayerProperties
2311         in so we can get at the custom behavior.
2312
2313 2014-03-26  Anders Carlsson  <andersca@apple.com>
2314
2315         Add -[WKWebView stopLoading]
2316         https://bugs.webkit.org/show_bug.cgi?id=130812
2317
2318         Reviewed by Tim Horton.
2319
2320         * UIProcess/API/Cocoa/WKWebView.h:
2321         * UIProcess/API/Cocoa/WKWebView.mm:
2322         (-[WKWebView stopLoading]):
2323
2324 2014-03-26  Tim Horton  <timothy_horton@apple.com>
2325
2326         Assertion failure in RemoteLayerBackingStore::flush
2327         https://bugs.webkit.org/show_bug.cgi?id=130810
2328         <rdar://problem/16439276>
2329
2330         Reviewed by Simon Fraser.
2331
2332         * Shared/mac/RemoteLayerBackingStore.mm:
2333         (RemoteLayerBackingStore::flush):
2334         We don't always have backing store to flush, if platformCALayerDrawsContent() is false.
2335         We also can't assert that we have a back surface, because the very first paint will not.
2336
2337 2014-03-26  Andy Estes  <aestes@apple.com>
2338
2339         [Cocoa] Expose DownloadClient::didFail() and DownloadClient::didCancel()
2340         https://bugs.webkit.org/show_bug.cgi?id=130805
2341
2342         Reviewed by Dan Bernstein.
2343
2344         * UIProcess/API/Cocoa/_WKDownloadDelegate.h:
2345         * UIProcess/Cocoa/DownloadClient.h:
2346         * UIProcess/Cocoa/DownloadClient.mm:
2347         (WebKit::DownloadClient::DownloadClient):
2348         (WebKit::DownloadClient::didFail):
2349         (WebKit::DownloadClient::didCancel):
2350
2351 2014-03-26  Cody Krieger  <cjk@apple.com>
2352
2353         -[WKWebProcessPlugInNodeHandle HTMLInputElementIsUserEdited] and -HTMLTextAreaElementIsUserEdited do not return the correct values.
2354
2355         https://bugs.webkit.org/show_bug.cgi?id=130804
2356
2357         Reviewed by Dan Bernstein.
2358
2359         The existing implementations of these methods are mis-cased
2360         ("HTMLInputELementIsUserEdited" and "HTMLTextAreaELementIsUserEdited" —
2361         note the "EL" in both cases). This results in us getting
2362         auto-synthesized getters for the HTMLInputElementIsUserEdited and
2363         HTMLTextAreaElementIsUserEdited properties, which will return NO
2364         unconditionally.
2365
2366         * WebProcess/InjectedBundle/API/Cocoa/WKWebProcessPlugInNodeHandle.mm:
2367         Fix the capitalization of -HTMLInputElementIsUserEdited and
2368         -HTMLTextAreaElementIsUserEdited.
2369
2370 2014-03-26  Andy Estes  <aestes@apple.com>
2371
2372         [Cocoa] Expose DownloadProxy::cancel()
2373         https://bugs.webkit.org/show_bug.cgi?id=130799
2374
2375         Reviewed by Dan Bernstein.
2376
2377         * UIProcess/API/Cocoa/_WKDownload.h:
2378         * UIProcess/API/Cocoa/_WKDownload.mm:
2379         (-[_WKDownload cancel]):
2380
2381 2014-03-26  Timothy Hatcher  <timothy@apple.com>
2382
2383         Propagate the hiddenFromInspector flag on ResourceRequest in
2384         places when a new request a made or passed between processes.
2385
2386         https://bugs.webkit.org/show_bug.cgi?id=130741
2387
2388         Reviewed by Joseph Pecoraro.
2389
2390         * NetworkProcess/NetworkResourceLoader.cpp:
2391         (WebKit::NetworkResourceLoader::continueWillSendRequest): Use updateFromDelegatePreservingOldProperties.
2392         * Shared/WebCoreArgumentCoders.cpp:
2393         (IPC::ArgumentCoder<ResourceRequest>::encode): Added hiddenFromInspector support.
2394         (IPC::ArgumentCoder<ResourceRequest>::decode): Ditto.
2395         * WebProcess/InjectedBundle/InjectedBundlePageResourceLoadClient.cpp:
2396         (WebKit::InjectedBundlePageResourceLoadClient::willSendRequestForFrame): Ditto.
2397
2398 2014-03-26  Andy Estes  <aestes@apple.com>
2399
2400         [Cocoa] Expose DownloadProxy::request()
2401         https://bugs.webkit.org/show_bug.cgi?id=130796
2402
2403         Reviewed by Anders Carlsson.
2404
2405         * UIProcess/API/Cocoa/_WKDownload.h:
2406         * UIProcess/API/Cocoa/_WKDownload.mm:
2407         (-[_WKDownload request]):
2408
2409 2014-03-26  Anders Carlsson  <andersca@apple.com>
2410
2411         Pass a real FrameLoadRequest to Chrome::createWindow
2412         https://bugs.webkit.org/show_bug.cgi?id=130795
2413
2414         Reviewed by Dan Bernstein.
2415
2416         * WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
2417         (WebKit::WebFrameLoaderClient::dispatchCreatePage):
2418
2419 2014-03-26  Jeremy Jones  <jeremyj@apple.com>
2420
2421         Implement hasLiveStreamingContent property in WebAVPlayerController
2422         https://bugs.webkit.org/show_bug.cgi?id=128684
2423
2424         Reviewed by Simon Fraser.
2425
2426         Plumb through the seekable ranges to the fullscreen interface.
2427
2428         * UIProcess/ios/WebVideoFullscreenManagerProxy.h:
2429         Add declaration for setSeekableRangesVector()
2430
2431         * UIProcess/ios/WebVideoFullscreenManagerProxy.messages.in:
2432         Add interface SetSeekableRangesVector()
2433
2434         * UIProcess/ios/WebVideoFullscreenManagerProxy.mm:
2435         (WebKit::WebVideoFullscreenManagerProxy::setSeekableRangesVector):
2436         Add setSeekableRangesVector that translates the vector into a TimeRanges and calls setSeekableRanges()
2437
2438         * WebProcess/ios/WebVideoFullscreenManager.h:
2439         Add setSeekableRanges()
2440
2441         * WebProcess/ios/WebVideoFullscreenManager.mm:
2442         (WebKit::WebVideoFullscreenManager::setSeekableRanges):
2443         setSeekableRanges() converts TimeRanges to Vector and calls SetSeekableRangesVector()
2444
2445 2014-03-26  Simon Fraser  <simon.fraser@apple.com>
2446
2447         Add a custom behavior flag to GraphicsLayer, piped down to PlatformCALayer, for scrolling layers
2448         https://bugs.webkit.org/show_bug.cgi?id=130778
2449
2450         Reviewed by Tim Horton.
2451
2452         Make it possible to put a "custom behavior" flag on a layer so that,
2453         with UI-side compositing, we know to create a specific type of
2454         layer or view for that GraphicsLayer.
2455
2456         * Shared/mac/RemoteLayerTreeTransaction.h:
2457         * Shared/mac/RemoteLayerTreeTransaction.mm:
2458         (WebKit::RemoteLayerTreeTransaction::LayerProperties::LayerProperties):
2459         (WebKit::RemoteLayerTreeTransaction::LayerProperties::encode):
2460         (WebKit::RemoteLayerTreeTransaction::LayerProperties::decode):
2461         (WebKit::dumpChangedLayers):
2462         * WebProcess/WebPage/mac/PlatformCALayerRemote.cpp:
2463         (PlatformCALayerRemote::customBehavior):
2464         (PlatformCALayerRemote::updateCustomBehavior):
2465         * WebProcess/WebPage/mac/PlatformCALayerRemote.h:
2466
2467 2014-03-26  Zoltan Horvath  <zoltan@webkit.org>
2468
2469         [CSS Shapes] Remove shape-inside support
2470         https://bugs.webkit.org/show_bug.cgi?id=130698
2471
2472         Reviewed by David Hyatt.
2473
2474         * Configurations/FeatureDefines.xcconfig:
2475
2476 2014-03-26  Tim Horton  <timothy_horton@apple.com>
2477
2478         [iOS WebKit2] Flush all surfaces after painting into all of them, instead of after painting into each one
2479         https://bugs.webkit.org/show_bug.cgi?id=130768
2480         <rdar://problem/16421471>
2481
2482         Reviewed by Simon Fraser.
2483
2484         * Shared/mac/RemoteLayerBackingStore.h:
2485         Add flush(), which synchronously flushes painting operations on the underlying backing store.
2486         Factor clearBackingStore() out of ensureBackingStore/display, which releases our reference to underlying backing store.
2487         Add two members for storing the back surface and front buffer context until flush() is called.
2488                 - We need to keep the back surface alive because the CGImageRef created from it is referenced by
2489                 the front surface's drawing queue, and won't be freed until said queue is flushed. If we release
2490                 the back surface (and its associated CGContextRef) *before* the CGImageRef is freed, we will
2491                 do an expensive readback of the surface.
2492                 - When not using accelerated drawing, we need to keep the front buffer's CGContextRef around
2493                 until the flush occurs so that we can avoid re-creating it in order to perform the flush. This
2494                 happens automatically in the accelerated drawing case via WebCore::IOSurface.
2495
2496         * Shared/mac/RemoteLayerBackingStore.mm:
2497         (RemoteLayerBackingStore::ensureBackingStore):
2498         (RemoteLayerBackingStore::clearBackingStore):
2499         (RemoteLayerBackingStore::display):
2500         Factor clearBackingStore() out of ensureBackingStore() and display().
2501         Update a comment about the above performance gotcha.
2502         Store the current back surface/front buffer context.
2503
2504         (RemoteLayerBackingStore::drawInContext):
2505         Don't flush the context immediately after painting.
2506
2507         (RemoteLayerBackingStore::applyBackingStoreToLayer):
2508         Move things around to reduce duplicated code.
2509
2510         (RemoteLayerBackingStore::flush):
2511         Flush the current front surface/buffer's context.
2512         Clear the new pending-flush members.
2513
2514         * WebProcess/WebPage/mac/RemoteLayerTreeDrawingArea.mm:
2515         (WebKit::flushBackingStoreChangesInTransaction):
2516         (WebKit::RemoteLayerTreeDrawingArea::flushLayers):
2517         Crawl through all of the valid changed backing stores in the transaction and flush them.
2518         Remove a completely useless assertion.
2519
2520 2014-03-25  Simon Fraser  <simon.fraser@apple.com>
2521
2522         Add a new type of scrolling tree node for overflow scrolling
2523         https://bugs.webkit.org/show_bug.cgi?id=130763
2524
2525         Reviewed by Tim Horton.
2526
2527         Prepare for overflow scrolling via the scrolling tree by adding
2528         a new scrolling node type for overflow:scroll nodes. Mostly
2529         this is a new ScrollingNodeType that gets mapped to the same
2530         scrolling state nodes and scrolling nodes, but iOS creates
2531         state and scrolling nodes specific to overflow:scroll.
2532         
2533         Change the type checking on nodes to use virtual functions instead
2534         of just checking the node type, to allow the macros to work with
2535         the new scrolling node type.
2536
2537         * Shared/Scrolling/RemoteScrollingCoordinatorTransaction.cpp:
2538         (WebKit::encodeNodeAndDescendants):
2539         (WebKit::RemoteScrollingCoordinatorTransaction::decode):
2540         * UIProcess/Scrolling/RemoteScrollingCoordinatorProxy.cpp:
2541         (WebKit::RemoteScrollingCoordinatorProxy::connectStateNodeLayers):
2542         * UIProcess/Scrolling/RemoteScrollingTree.cpp:
2543         (WebKit::RemoteScrollingTree::createNode):
2544         * UIProcess/Scrolling/ios/ScrollingTreeOverflowScrollingNodeIOS.h: Copied from Source/WebCore/page/scrolling/mac/ScrollingTreeFixedNode.h.
2545         * UIProcess/Scrolling/ios/ScrollingTreeOverflowScrollingNodeIOS.mm: Copied from Source/WebCore/page/scrolling/mac/ScrollingTreeFixedNode.h.
2546         (WebKit::ScrollingTreeOverflowScrollingNodeIOS::create):
2547         (WebKit::ScrollingTreeOverflowScrollingNodeIOS::ScrollingTreeOverflowScrollingNodeIOS):
2548         (WebKit::ScrollingTreeOverflowScrollingNodeIOS::~ScrollingTreeOverflowScrollingNodeIOS):
2549         * UIProcess/ios/RemoteScrollingCoordinatorProxyIOS.mm:
2550         (WebKit::RemoteScrollingCoordinatorProxy::connectStateNodeLayers):
2551         * WebKit2.xcodeproj/project.pbxproj:
2552
2553 2014-03-26  Zan Dobersek  <zdobersek@igalia.com>
2554
2555         Unreviewed. Removing the remaining Automake cruft.
2556
2557         * GNUmakefile.list.am: Removed.
2558
2559 2014-03-25  Pratik Solanki  <psolanki@apple.com>
2560
2561         Remove PLATFORM(IOS) from NetworkProcessMac.mm
2562         https://bugs.webkit.org/show_bug.cgi?id=130751
2563
2564         Reviewed by Alexey Proskuryakov.
2565
2566         Code in NetworkProcessMac.mm is guarded by PLATFORM(MAC) and so is not compiled on iOS.
2567         Having PLATFORM(IOS) code in this file is unnecessary and confusing.
2568
2569         * NetworkProcess/mac/NetworkProcessMac.mm:
2570         (WebKit::NetworkProcess::initializeProcessName):
2571         (WebKit::overrideSystemProxies):
2572         (WebKit::NetworkProcess::platformInitializeNetworkProcess):
2573
2574 2014-03-25  Anders Carlsson  <andersca@apple.com>
2575
2576         Add a UI delegate callback for handling window.open
2577         https://bugs.webkit.org/show_bug.cgi?id=130757
2578
2579         Reviewed by Sam Weinig.
2580
2581         * UIProcess/API/Cocoa/WKUIDelegate.h:
2582         * UIProcess/API/Cocoa/WKWebView.mm:
2583         * UIProcess/API/Cocoa/WKWebViewInternal.h:
2584         * UIProcess/Cocoa/UIClient.h:
2585         * UIProcess/Cocoa/UIClient.mm:
2586         (WebKit::UIClient::setDelegate):
2587         (WebKit::UIClient::createNewPage):
2588
2589 2014-03-25  Anders Carlsson  <andersca@apple.com>
2590
2591         Move stopLoading: back for now.
2592
2593         * UIProcess/API/Cocoa/WKWebView.h:
2594         * UIProcess/API/Cocoa/WKWebView.mm:
2595         (-[WKWebView stopLoading:]):
2596
2597 2014-03-25  Anders Carlsson  <andersca@apple.com>
2598
2599         Change toolbarVisibility back to toolbarsVisibility
2600         https://bugs.webkit.org/show_bug.cgi?id=130749
2601
2602         Reviewed by Tim Horton.
2603
2604         * UIProcess/API/Cocoa/WKWindowFeatures.h:
2605         * UIProcess/API/Cocoa/WKWindowFeatures.mm:
2606         (-[WKWindowFeatures _initWithWindowFeatures:WebCore::]):
2607
2608 2014-03-25  Anders Carlsson  <andersca@apple.com>
2609
2610         Pass the source frame to the CreateNewPage message
2611         https://bugs.webkit.org/show_bug.cgi?id=130752
2612
2613         Reviewed by Tim Horton.
2614
2615         * UIProcess/API/APIUIClient.h:
2616         (API::UIClient::createNewPage):
2617         * UIProcess/API/C/WKPage.cpp:
2618         (WKPageSetPageUIClient):
2619         * UIProcess/WebPageProxy.cpp:
2620         (WebKit::WebPageProxy::createNewPage):
2621         * UIProcess/WebPageProxy.h:
2622         * UIProcess/WebPageProxy.messages.in:
2623         * WebProcess/WebCoreSupport/WebChromeClient.cpp:
2624         (WebKit::WebChromeClient::createWindow):
2625
2626 2014-03-25  Anders Carlsson  <andersca@apple.com>
2627
2628         Add a WebFrame::fromCoreFrame static member function and use it where possible
2629         https://bugs.webkit.org/show_bug.cgi?id=130744
2630
2631         Reviewed by Tim Horton.
2632
2633         * WebProcess/Geolocation/GeolocationPermissionRequestManager.cpp:
2634         (WebKit::GeolocationPermissionRequestManager::startRequestForGeolocation):
2635         * WebProcess/InjectedBundle/DOM/InjectedBundleNodeHandle.cpp:
2636         (WebKit::InjectedBundleNodeHandle::documentFrame):
2637         (WebKit::InjectedBundleNodeHandle::htmlFrameElementContentFrame):
2638         (WebKit::InjectedBundleNodeHandle::htmlIFrameElementContentFrame):
2639         * WebProcess/InjectedBundle/InjectedBundle.cpp:
2640         (WebKit::InjectedBundle::overrideBoolPreferenceForTestRunner):
2641         * WebProcess/InjectedBundle/InjectedBundleDOMWindowExtension.cpp:
2642         (WebKit::InjectedBundleDOMWindowExtension::frame):
2643         * WebProcess/InjectedBundle/InjectedBundleHitTestResult.cpp:
2644         (WebKit::InjectedBundleHitTestResult::frame):
2645         (WebKit::InjectedBundleHitTestResult::targetFrame):
2646         * WebProcess/Plugins/PluginView.cpp:
2647         (WebKit::webPage):
2648         (WebKit::PluginView::performFrameLoadURLRequest):
2649         * WebProcess/WebCoreSupport/WebChromeClient.cpp:
2650         (WebKit::WebChromeClient::focusedElementChanged):
2651         (WebKit::WebChromeClient::focusedFrameChanged):
2652         (WebKit::WebChromeClient::runBeforeUnloadConfirmPanel):
2653         (WebKit::WebChromeClient::runJavaScriptAlert):
2654         (WebKit::WebChromeClient::runJavaScriptConfirm):
2655         (WebKit::WebChromeClient::runJavaScriptPrompt):
2656         (WebKit::WebChromeClient::print):
2657         (WebKit::WebChromeClient::exceededDatabaseQuota):
2658         (WebKit::WebChromeClient::runOpenPanel):
2659         * WebProcess/WebCoreSupport/WebEditorClient.cpp:
2660         (WebKit::WebEditorClient::textFieldDidBeginEditing):
2661         (WebKit::WebEditorClient::textFieldDidEndEditing):
2662         (WebKit::WebEditorClient::textDidChangeInTextField):
2663         (WebKit::WebEditorClient::textDidChangeInTextArea):
2664         (WebKit::WebEditorClient::doTextFieldCommandFromEvent):
2665         (WebKit::WebEditorClient::textWillBeDeletedInTextField):
2666         * WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
2667         (WebKit::WebFrameLoaderClient::dispatchDecidePolicyForNavigationAction):
2668         (WebKit::WebFrameLoaderClient::dispatchWillSendSubmitEvent):
2669         (WebKit::WebFrameLoaderClient::dispatchWillSubmitForm):
2670         * WebProcess/WebPage/WebFrame.cpp:
2671         (WebKit::WebFrame::fromCoreFrame):
2672         (WebKit::WebFrame::contentsAsString):
2673         (WebKit::WebFrame::parentFrame):
2674         (WebKit::WebFrame::childFrames):
2675         (WebKit::WebFrame::frameForContext):
2676         (WebKit::WebFrame::webArchiveData):
2677         * WebProcess/WebPage/WebFrame.h:
2678
2679 2014-03-25  Jeffrey Pfau  <jpfau@apple.com>
2680
2681         [WK2] Schemes registered as cache partitioned are not properly registered in new web processes
2682         https://bugs.webkit.org/show_bug.cgi?id=130739
2683
2684         Reviewed by Anders Carlsson.
2685
2686         * WebProcess/WebProcess.cpp:
2687         (WebKit::WebProcess::initializeWebProcess):
2688
2689 2014-03-25  Joseph Pecoraro  <pecoraro@apple.com>
2690
2691         [iOS] Inspector View Indication Support
2692         https://bugs.webkit.org/show_bug.cgi?id=130709
2693
2694         Reviewed by Simon Fraser.
2695
2696         * UIProcess/ios/WKContentView.h:
2697         * UIProcess/ios/WKContentView.mm:
2698         (-[WKInspectorIndicationView initWithFrame:]):
2699         (-[WKContentView isShowingInspectorIndication]):
2700         (-[WKContentView setShowingInspectorIndication:]):
2701         (-[WKContentView _didCommitLayerTree:WebKit::]):
2702         When indicating include a simple tinted UIView over the content.
2703
2704         * UIProcess/API/Cocoa/WKWebViewPrivate.h:
2705         * UIProcess/API/Cocoa/WKWebView.mm:
2706         (-[WKWebView _showInspectorIndication]):
2707         (-[WKWebView _hideInspectorIndication]):
2708         Have the content view show or hide an indication.
2709
2710         * UIProcess/PageClient.h:
2711         * UIProcess/ios/PageClientImplIOS.h:
2712         * UIProcess/ios/PageClientImplIOS.mm:
2713         (WebKit::PageClientImpl::showInspectorIndication):
2714         (WebKit::PageClientImpl::hideInspectorIndication):
2715         * UIProcess/WebPageProxy.h:
2716         * UIProcess/WebPageProxy.messages.in:
2717         * UIProcess/ios/WebPageProxyIOS.mm:
2718         (WebKit::WebPageProxy::showInspectorIndication):
2719         (WebKit::WebPageProxy::hideInspectorIndication):
2720         Pass WebProcess indication message up to the WKWebView.
2721
2722         * WebProcess/WebCoreSupport/WebInspectorClient.cpp:
2723         (WebKit::WebInspectorClient::indicate):
2724         (WebKit::WebInspectorClient::hideIndication):
2725         * WebProcess/WebCoreSupport/WebInspectorClient.h:
2726         * WebProcess/WebPage/WebPage.h:
2727         * WebProcess/WebPage/ios/WebPageIOS.mm:
2728         (WebKit::WebPage::indicate):
2729         (WebKit::WebPage::hideIndication):
2730         Pass WebCore / remote inspector indication message up to UIProcess.
2731
2732 2014-03-25  Anders Carlsson  <andersca@apple.com>
2733
2734         Add more properties to WKWindowFeatures
2735         https://bugs.webkit.org/show_bug.cgi?id=130738
2736
2737         Reviewed by Tim Horton.
2738
2739         * UIProcess/API/Cocoa/WKWindowFeatures.h:
2740         * UIProcess/API/Cocoa/WKWindowFeatures.mm:
2741         (-[WKWindowFeatures _initWithWindowFeatures:WebCore::]):
2742         (-[WKWindowFeatures menuBarVisibility]):
2743         (-[WKWindowFeatures statusBarVisibility]):
2744         (-[WKWindowFeatures toolbarsVisibility]):
2745         (-[WKWindowFeatures allowsResizing]):
2746
2747 2014-03-25  Anders Carlsson  <andersca@apple.com>
2748
2749         Fix iOS build.
2750
2751         * UIProcess/API/Cocoa/WKWebView.h:
2752         * UIProcess/API/Cocoa/WKWebView.mm:
2753         Make WKIBActions OS X only for now.
2754
2755 2014-03-25  Anders Carlsson  <andersca@apple.com>
2756
2757         Begin stubbing out a WKWindowFeatures class
2758         https://bugs.webkit.org/show_bug.cgi?id=130733
2759
2760         Reviewed by Dan Bernstein.
2761
2762         * UIProcess/API/Cocoa/WKWindowFeatures.h: Added.
2763         * UIProcess/API/Cocoa/WKWindowFeatures.mm: Added.
2764         (-[WKWindowFeatures _initWithWindowFeatures:WebCore::]):
2765         (-[WKWindowFeatures x]):
2766         (-[WKWindowFeatures y]):
2767         (-[WKWindowFeatures width]):
2768         (-[WKWindowFeatures height]):
2769         * UIProcess/API/Cocoa/WKWindowFeaturesInternal.h: Added.
2770         * WebKit2.xcodeproj/project.pbxproj:
2771
2772 2014-03-25  Anders Carlsson  <andersca@apple.com>
2773
2774         Add goBack: and goForward: IBActions and move stopLoading: to a new WKIBActions category on WKWebView
2775         https://bugs.webkit.org/show_bug.cgi?id=130732
2776
2777         Reviewed by Tim Horton.
2778
2779         * UIProcess/API/Cocoa/WKWebView.h:
2780         * UIProcess/API/Cocoa/WKWebView.mm:
2781         (-[WKWebView goBack]):
2782         (-[WKWebView goForward]):
2783         (-[WKWebView validateUserInterfaceItem:]):
2784         (-[WKWebView goBack:]):
2785         (-[WKWebView goForward:]):
2786         (-[WKWebView stopLoading:]):
2787
2788 2014-03-25  Martin Robinson  <mrobinson@igalia.com>
2789
2790         [GTK] Remove the autotools build
2791         https://bugs.webkit.org/show_bug.cgi?id=130717
2792
2793         Reviewed by Anders Carlsson.
2794
2795         * GNUmakefile.am: Removed.
2796         * WebKit2Prefix.h: Removed references to the autotools configure file.
2797         * config.h: Ditto.
2798
2799 2014-03-25  Michał Pakuła vel Rutka  <m.pakula@samsung.com>
2800
2801         [EFL][WK2] Add NETWORK_PROCESS build option
2802         https://bugs.webkit.org/show_bug.cgi?id=130131
2803
2804         Reviewed by Gyuyoung Kim.
2805
2806         * PlatformEfl.cmake: Add file needed to build with NETWORK_PROCESS enabled.
2807
2808 2014-03-24 Michał Pakuła vel Rutka  <m.pakula@samsung.com>
2809
2810         [EFL][WK2] Add an API to set process model
2811         https://bugs.webkit.org/show_bug.cgi?id=130133
2812
2813         Reviewed by Gyuyoung Kim.
2814
2815         Implement an API to set and get process model in ewk_context.
2816         By default process model enum value is set to EWK_PROCESS_MODEL_SHARED_SECONDARY
2817         which keeps current behaviour. Setting EWK_PROCESS_MODEL_MULTIPLE_SECONDARY
2818         will make each web view use separate web process, also enables network process.
2819
2820         * UIProcess/API/efl/ewk_context.cpp:
2821         (toWKProcessModel):
2822         (EwkContext::setProcessModel):
2823         (toEwkProcessModel):
2824         (EwkContext::processModel):
2825         (ewk_context_process_model_set):
2826         (ewk_context_process_model_get):
2827         * UIProcess/API/efl/ewk_context.h:
2828         * UIProcess/API/efl/ewk_context_private.h:
2829         * UIProcess/API/efl/tests/test_ewk2_context.cpp:
2830         (TEST_F):
2831
2832 2014-03-24  Chris Fleizach  <cfleizach@apple.com>
2833
2834         AX: hit-testing doesn't always work correctly with WK2
2835         https://bugs.webkit.org/show_bug.cgi?id=130706
2836
2837         Reviewed by Simon Fraser.
2838
2839         Accessibility code was trying to do screenToRootView itself, and in 
2840         some cases with embedded WK2 views that did not work.
2841
2842         * WebProcess/WebPage/mac/WKAccessibilityWebPageObjectMac.mm:
2843         (-[WKAccessibilityWebPageObject accessibilityHitTest:]):
2844
2845 2014-03-24  Benjamin Poulain  <bpoulain@apple.com>
2846
2847         [WK2] SpinLock are not initialized by default, ViewUpdateDispatcher is missing an initializer
2848         https://bugs.webkit.org/show_bug.cgi?id=130705
2849
2850         Reviewed by Simon Fraser.
2851
2852         * WebProcess/WebPage/ViewUpdateDispatcher.cpp:
2853         (WebKit::ViewUpdateDispatcher::ViewUpdateDispatcher):
2854
2855 2014-03-24  Enrica Casucci  <enrica@apple.com>
2856
2857         [iOS WebKit2] Dictation support.
2858         https://bugs.webkit.org/show_bug.cgi?id=130622
2859         <rdar://problem/15337316>
2860
2861         Reviewed by Benjamin Poulain.
2862
2863         Adding support for dictation on iOS. There are two main types of interactions
2864         with the dictation system:
2865         - initial request for context, which consists in retrieving the selected text
2866         and 5 words before the selection and 5 words after, if available.
2867         - insertion of recognized chunks of text, providing the text
2868         to replace.
2869     
2870         * UIProcess/AutoCorrectionCallback.h:
2871         (WebKit::DictationContextCallback::create):
2872         (WebKit::DictationContextCallback::~DictationContextCallback):
2873         (WebKit::DictationContextCallback::performCallbackWithReturnValue):
2874         (WebKit::DictationContextCallback::invalidate):
2875         (WebKit::DictationContextCallback::DictationContextCallback):
2876         * UIProcess/WebPageProxy.h:
2877         * UIProcess/WebPageProxy.messages.in:
2878         * UIProcess/ios/WKContentViewInteraction.h:
2879         * UIProcess/ios/WKContentViewInteraction.mm:
2880         (-[WKContentView replaceDictatedText:withText:]):
2881         (-[WKContentView requestDictationContext:]):
2882         * UIProcess/ios/WebPageProxyIOS.mm:
2883         (WebKit::WebPageProxy::dictationContextCallback):
2884         (WebKit::WebPageProxy::replaceDictatedText):
2885         (WebKit::WebPageProxy::requestDictationContext):
2886         * WebProcess/WebPage/WebPage.h:
2887         * WebProcess/WebPage/WebPage.messages.in:
2888         * WebProcess/WebPage/ios/WebPageIOS.mm:
2889         (WebKit::WebPage::requestDictationContext):
2890         (WebKit::WebPage::replaceDictatedText):
2891
2892 2014-03-24  Andy Estes  <aestes@apple.com>
2893
2894         Yet another iOS build fix, for the 32-bit build this time.
2895
2896         * Shared/Downloads/ios/DownloadIOS.mm:
2897         (WebKit::setUpDownloadClient):
2898
2899 2014-03-24  Tim Horton  <timothy_horton@apple.com>
2900
2901         REGRESSION (r165872): Double-applying device scale to snapshots
2902         https://bugs.webkit.org/show_bug.cgi?id=130697
2903         <rdar://problem/16396629>
2904
2905         Reviewed by Simon Fraser.
2906
2907         * WebProcess/WebPage/WebPage.cpp:
2908         (WebKit::WebPage::scaledSnapshotWithOptions):
2909         Drive-by, make scaledSnapshotWithOptions respect SnapshotOptionsExcludeDeviceScaleFactor.
2910
2911         (WebKit::WebPage::snapshotAtSize):
2912         Divide the device scale out of the scale factor
2913
2914         * WebProcess/WebPage/WebPage.h:
2915         Rename the scale argument to scaledSnapshotWithOptions to clarify
2916         that it is an additional scale on top of the device scale.
2917
2918 2014-03-24  Brent Fulgham  <bfulgham@apple.com>
2919
2920         Activate WebVTT Tests Once Merging is Complete
2921         https://bugs.webkit.org/show_bug.cgi?id=130420
2922
2923         Reviewed by Eric Carlson.
2924
2925         * Configurations/FeatureDefines.xcconfig: Turn on ENABLE(WEBVTT_REGIONS)
2926
2927 2014-03-24  Andy Estes  <aestes@apple.com>
2928
2929         Fix the iOS build.
2930
2931         * Shared/Downloads/ios/DownloadIOS.mm:
2932         (WebKit::setUpDownloadClient):
2933         * UIProcess/Cocoa/DownloadClient.mm:
2934
2935 2014-03-24  Mark Rowe  <mrowe@apple.com>
2936
2937         Build fix after r166186.
2938
2939         * UIProcess/Cocoa/DownloadClient.mm:
2940
2941 2014-03-24  Benjamin Poulain  <bpoulain@apple.com>
2942
2943         [WK2] Make updates on ViewUpdateDispatcher less heavy
2944         https://bugs.webkit.org/show_bug.cgi?id=130626
2945
2946         Reviewed by Darin Adler.
2947
2948         * WebProcess/WebPage/ViewUpdateDispatcher.cpp:
2949         (WebKit::ViewUpdateDispatcher::visibleContentRectUpdate):
2950         (WebKit::ViewUpdateDispatcher::dispatchVisibleContentRectUpdate):
2951         * WebProcess/WebPage/ViewUpdateDispatcher.h:
2952
2953 2014-03-24  Benjamin Poulain  <bpoulain@apple.com>
2954
2955         [iOS][WK2] Micro-optimize view state updates on the UIProcess side
2956         https://bugs.webkit.org/show_bug.cgi?id=130631
2957
2958         Reviewed by Darin Adler.
2959
2960         * UIProcess/API/Cocoa/WKWebView.mm:
2961         (contentZoomScale):
2962         [UIScrollView zoomScale] is not fast enough for -[WKWebView _updateVisibleContentRects]. Since we know what the zoom view is,
2963         make a fast version hardcoding that.
2964
2965         (-[WKWebView _updateScrollViewBackground]):
2966         (-[WKWebView _zoomToPoint:WebCore::atScale:]):
2967         (-[WKWebView _scrollToRect:WebCore::origin:WebCore::minimumScrollDistance:]):
2968         (-[WKWebView _zoomToRect:WebCore::withOrigin:WebCore::fitEntireRect:minimumScale:maximumScale:minimumScrollDistance:]):
2969         (-[WKWebView _updateVisibleContentRects]):
2970         * UIProcess/ios/WKContentView.mm:
2971         (fixedPositionRectFromExposedRect):
2972         (-[WKContentView didUpdateVisibleRect:unobscuredRect:scale:inStableState:]):
2973
2974 2014-03-24  Dean Jackson  <dino@apple.com>
2975
2976         Remove WebGL asset entitlement
2977         https://bugs.webkit.org/show_bug.cgi?id=130685
2978
2979         Reviewed by Simon Fraser.
2980
2981         No longer necessary on iOS.
2982
2983         * Configurations/WebContent-iOS.entitlements:
2984
2985 2014-03-24  Andy Estes  <aestes@apple.com>
2986
2987         [iOS] Download support by CFURLDownloadRef under USE(CFNETWORK).
2988         https://bugs.webkit.org/show_bug.cgi?id=129322
2989
2990         Reviewed by Anders Carlsson.
2991
2992         Based on an original patch by Yongjun Zhang  <yongjun_zhang@apple.com>.
2993
2994         * Shared/Cocoa/APIObject.mm:
2995         (API::Object::newObject):
2996         * Shared/Downloads/ios/DownloadIOS.mm:
2997         (WebKit::dispatchOnMainThread):
2998         (WebKit::toDownload):
2999         (WebKit::setUpDownloadClient):
3000         (WebKit::Download::startWithHandle):
3001         * UIProcess/API/APIDownloadClient.h:
3002         (API::DownloadClient::~DownloadClient):
3003         * UIProcess/API/C/WKContext.cpp:
3004         (WKContextSetDownloadClient):
3005         * UIProcess/API/Cocoa/WKProcessPool.mm:
3006         (-[WKProcessPool _downloadDelegate]):
3007         (-[WKProcessPool _setDownloadDelegate:]):
3008         * UIProcess/API/Cocoa/WKProcessPoolPrivate.h:
3009         * UIProcess/API/Cocoa/_WKDownload.h: Added.
3010         * UIProcess/API/Cocoa/_WKDownload.mm: Added.
3011         (WebKit::wrapper):
3012         (WebKit::createAPIDownloadClient):
3013         (-[_WKDownload dealloc]):
3014         (-[_WKDownload API::]):
3015         * UIProcess/API/Cocoa/_WKDownloadDelegate.h: Added.
3016         * UIProcess/API/Cocoa/_WKDownloadInternal.h: Added.
3017         * UIProcess/Cocoa/DownloadClient.h: Added.
3018         * UIProcess/Cocoa/DownloadClient.mm: Added.
3019         * WebKit2.xcodeproj/project.pbxproj:
3020
3021 2014-03-24  Dániel Bátyai  <dbatyai.u-szeged@partner.samsung.com>
3022
3023         [EFL][WK2] Buildfix after r166159.
3024
3025         Reviewed by Csaba Osztrogonác.
3026
3027         * UIProcess/API/efl/ewk_settings.cpp:
3028         (ewk_settings_file_access_from_file_urls_allowed_set):
3029         (ewk_settings_file_access_from_file_urls_allowed_get):
3030
3031 2014-03-24  Jinwoo Song  <jinwoo7.song@samsung.com>
3032
3033         [EFL][WK2] Use C API inside ewk_settings
3034         https://bugs.webkit.org/show_bug.cgi?id=107820
3035
3036         Reviewed by Gyuyoung Kim.
3037
3038         Use C API inside ewk_settings instead of accessing directly
3039         internal C++ classes, to avoid violating API layering.
3040
3041         Original-author: Christophe Dumez <ch.dumez@sisa.samsung.com>
3042
3043         * UIProcess/API/efl/EwkView.cpp:
3044         (EwkView::EwkView):
3045         * UIProcess/API/efl/ewk_settings.cpp:
3046         (ewk_settings_fullscreen_enabled_set):
3047         (ewk_settings_fullscreen_enabled_get):
3048         (ewk_settings_javascript_enabled_set):
3049         (ewk_settings_javascript_enabled_get):
3050         (ewk_settings_loads_images_automatically_set):
3051         (ewk_settings_loads_images_automatically_get):
3052         (ewk_settings_developer_extras_enabled_set):
3053         (ewk_settings_developer_extras_enabled_get):
3054         (ewk_settings_file_access_from_file_urls_allowed_set):
3055         (ewk_settings_file_access_from_file_urls_allowed_get):
3056         (ewk_settings_frame_flattening_enabled_set):
3057         (ewk_settings_frame_flattening_enabled_get):
3058         (ewk_settings_dns_prefetching_enabled_set):
3059         (ewk_settings_dns_prefetching_enabled_get):
3060         (ewk_settings_encoding_detector_enabled_set):
3061         (ewk_settings_encoding_detector_enabled_get):
3062         (ewk_settings_preferred_minimum_contents_width_set):
3063         (ewk_settings_preferred_minimum_contents_width_get):
3064         (ewk_settings_offline_web_application_cache_enabled_set):
3065         (ewk_settings_offline_web_application_cache_enabled_get):
3066         (ewk_settings_scripts_can_open_windows_set):
3067         (ewk_settings_scripts_can_open_windows_get):
3068         (ewk_settings_local_storage_enabled_set):
3069         (ewk_settings_local_storage_enabled_get):
3070         (ewk_settings_plugins_enabled_set):
3071         (ewk_settings_plugins_enabled_get):
3072         (ewk_settings_default_font_size_set):
3073         (ewk_settings_default_font_size_get):
3074         (ewk_settings_private_browsing_enabled_set):
3075         (ewk_settings_private_browsing_enabled_get):
3076         (ewk_settings_text_autosizing_enabled_set):
3077         (ewk_settings_text_autosizing_enabled_get):
3078         (ewk_settings_spatial_navigation_enabled_set):
3079         (ewk_settings_spatial_navigation_enabled_get):
3080         (EwkSettings::setDefaultTextEncodingName):
3081         * UIProcess/API/efl/ewk_settings_private.h:
3082         (EwkSettings::EwkSettings):
3083         (EwkSettings::preferences):
3084
3085 2014-03-24  Zan Dobersek  <zdobersek@igalia.com>
3086
3087         [GTK][WK2] Guard NetscapePluginModule methods used in PluginInfoCache that are specific to X11 architecture
3088         https://bugs.webkit.org/show_bug.cgi?id=130663
3089
3090         Reviewed by Carlos Garcia Campos.
3091
3092         The two used methods are specific to the X11 plugin architecture and are not declared when building for a
3093         Wayland-only configuration. Guarding them prevents build failures, but does not ensure proper functionality
3094         which isn't a problem anyway since there's no support yet for Netscape plugins on Wayland.
3095
3096         * UIProcess/Plugins/gtk/PluginInfoCache.cpp:
3097         (WebKit::PluginInfoCache::getPluginInfo): Guard NetscapePluginModule::parseMIMEDescription with PLUGIN_ARCHITECTURE(X11).
3098         (WebKit::PluginInfoCache::updatePluginInfo): Ditto for NetscapePluginModule::buildMIMEDescription.
3099
3100 2014-03-24  Ryuan Choi  <ryuan.choi@samsung.com>
3101
3102         [EFL][WK2] Convert some more OwnPtr/PassOwnPtr to std::unique_ptr
3103         https://bugs.webkit.org/show_bug.cgi?id=130662
3104
3105         Reviewed by Gyuyoung Kim.
3106
3107         Replace uses of PassOwnPtr/OwnPtr with std::unique_ptr in remained WebKit2/Efl specific code.
3108
3109         * UIProcess/API/efl/EwkView.h:
3110         * UIProcess/API/efl/ewk_cookie_manager.cpp:
3111         * UIProcess/API/efl/ewk_database_manager.cpp:
3112         (getDatabaseOriginsCallback):
3113         * UIProcess/API/efl/ewk_error_private.h:
3114         * UIProcess/efl/DownloadManagerEfl.cpp:
3115         (WebKit::DownloadManagerEfl::didFail):
3116         * UIProcess/efl/InputMethodContextEfl.h:
3117         (WebKit::InputMethodContextEfl::create):
3118         * UIProcess/efl/PageLoadClientEfl.cpp:
3119         (WebKit::PageLoadClientEfl::didFailLoadWithErrorForFrame):
3120         (WebKit::PageLoadClientEfl::didFailProvisionalLoadWithErrorForFrame):
3121
3122 2014-03-23  Hyowon Kim  <hw1008.kim@samsung.com>
3123
3124         Move all EFL typedefs into EflTypedefs.h.
3125         https://bugs.webkit.org/show_bug.cgi?id=130511
3126
3127         Reviewed by Gyuyoung Kim.
3128
3129         * Shared/API/c/efl/WKArrayEfl.h: Remove EFL typedefs.
3130         * UIProcess/API/efl/EwkView.h: Ditto.
3131
3132 2014-03-23  Jinwoo Song  <jinwoo7.song@samsung.com>
3133
3134         [WK2] Refine WebKit2 BatteryStatus code
3135         https://bugs.webkit.org/show_bug.cgi?id=130573
3136
3137         Reviewed by Anders Carlsson.
3138
3139         Refinements
3140          - Return PassRef instead of PassRefPtr in create methods
3141          - Use auto instead of iterator
3142
3143         * UIProcess/WebBatteryManagerProxy.cpp:
3144         (WebKit::WebBatteryManagerProxy::create):
3145         * UIProcess/WebBatteryManagerProxy.h:
3146         * UIProcess/efl/BatteryProvider.cpp:
3147         (BatteryProvider::create):
3148         * UIProcess/efl/BatteryProvider.h:
3149         * WebProcess/Battery/WebBatteryManager.cpp:
3150         (WebKit::WebBatteryManager::didChangeBatteryStatus):
3151         (WebKit::WebBatteryManager::updateBatteryStatus):
3152
3153 2014-03-23  Sam Weinig  <sam@webkit.org>
3154
3155         Simplify the HTMLConverter interface (Part 2)
3156         https://bugs.webkit.org/show_bug.cgi?id=130654
3157
3158         Reviewed by Darin Adler.
3159
3160         * WebProcess/WebPage/WebPage.h:
3161         * WebProcess/WebPage/ios/WebPageIOS.mm:
3162         (WebKit::WebPage::performDictionaryLookupForRange):
3163         * WebProcess/WebPage/mac/WebPageMac.mm:
3164         (WebKit::WebPage::getAttributedSubstringFromRange):
3165         (WebKit::WebPage::attributedSubstringForCharacterRangeAsync):
3166         (WebKit::WebPage::performDictionaryLookupAtLocation):
3167         (WebKit::WebPage::performDictionaryLookupForSelection):
3168         (WebKit::WebPage::performDictionaryLookupForRange):
3169
3170 2014-03-23  David Kilzer  <ddkilzer@apple.com>
3171
3172         WebKit::resistanceForDelta() truncates 'scaleDistance' to integer value using abs()
3173         <http://webkit.org/b/130651>
3174
3175         Reviewed by Darin Adler.
3176
3177         Fixes the following build failure with trunk clang:
3178
3179             WebKit2/UIProcess/mac/ViewGestureControllerMac.mm:112:28: error: using integer absolute value function 'abs' when argument is of floating point type [-Werror,-Wabsolute-value]
3180                 double scaleDistance = abs(limit - currentScale);
3181                                        ^
3182             WebKit2/UIProcess/mac/ViewGestureControllerMac.mm:112:28: note: use function 'fabs' instead
3183                 double scaleDistance = abs(limit - currentScale);
3184                                        ^~~
3185                                        fabs
3186
3187         * UIProcess/mac/ViewGestureControllerMac.mm:
3188         (WebKit::resistanceForDelta): Use fabs() instead of abs().
3189
3190 2014-03-23  Simon Fraser  <simon.fraser@apple.com>
3191
3192         Clean up #includes by geometry classes
3193         https://bugs.webkit.org/show_bug.cgi?id=130645
3194
3195         Reviewed by Andreas Kling.
3196
3197         Pulling in <wtf/Vector.h> and <wtf/PrintStream.h> in the simple geometry
3198         classes brings in a lot of additional headers. Fix by adding a new
3199         GeometryUtilities file so that the basic files don't need Vector,
3200         and including GeometryUtilities.h where necessary.
3201         
3202         Also forward declare PrintStream.h and only bring in the header
3203         in implementation files.
3204
3205         * Shared/UpdateInfo.h:
3206         * UIProcess/BackingStore.h:
3207         * UIProcess/CoordinatedGraphics/PageViewportController.h:
3208         * UIProcess/FindIndicator.cpp:
3209         * UIProcess/mac/WKPrintingView.h:
3210
3211 2014-03-23  Simon Fraser  <simon.fraser@apple.com>
3212
3213         Clean up #includes by geometry classes
3214         https://bugs.webkit.org/show_bug.cgi?id=130645
3215
3216         Reviewed by Andreas Kling.
3217
3218         Pulling in <wtf/Vector.h> and <wtf/PrintStream.h> in the simple geometry
3219         classes brings in a lot of additional headers. Fix by adding a new
3220         GeometryUtilities file so that the basic files don't need Vector,
3221         and including GeometryUtilities.h where necessary.
3222         
3223         Also forward declare PrintStream.h and only bring in the header
3224         in implementation files.
3225
3226         * UIProcess/BackingStore.h:
3227         * UIProcess/FindIndicator.cpp:
3228         * UIProcess/mac/WKPrintingView.h:
3229
3230 2014-03-22  Alexey Proskuryakov  <ap@apple.com>
3231
3232         Assertions in WebPage::rangeFromEditingRange when requested range location is NSNotFound
3233         https://bugs.webkit.org/show_bug.cgi?id=130633
3234         <rdar://problem/16397583>
3235
3236         Reviewed by Darin Adler.
3237
3238         * UIProcess/API/mac/WKView.mm:
3239         (-[WKView firstRectForCharacterRange:completionHandler:]):
3240         (-[WKView firstRectForCharacterRange:actualRange:]):
3241         Return NSZeroRect, like NSTextView does for any locations that are out of bounds.
3242         There is no need for a round trip to WebProcess in this case.
3243
3244 2014-03-21  Benjamin Poulain  <bpoulain@apple.com>
3245
3246         [iOS][WK2] Reduce the tiling coverage to the current rect and 1 tile size ahead
3247         https://bugs.webkit.org/show_bug.cgi?id=130555
3248
3249         Reviewed by Simon Fraser.
3250
3251         * Shared/VisibleContentRectUpdateInfo.cpp:
3252         (WebKit::VisibleContentRectUpdateInfo::encode):
3253         (WebKit::VisibleContentRectUpdateInfo::decode):
3254         * Shared/VisibleContentRectUpdateInfo.h:
3255         (WebKit::VisibleContentRectUpdateInfo::VisibleContentRectUpdateInfo):
3256         (WebKit::operator==):
3257         * UIProcess/ios/WKContentView.mm:
3258         (WebKit::HistoricalKinematicData::HistoricalKinematicData):
3259         (WebKit::HistoricalKinematicData::velocityForNewData):
3260         (WebKit::HistoricalKinematicData::clear):
3261         (WebKit::HistoricalKinematicData::append):
3262         (-[WKContentView didUpdateVisibleRect:unobscuredRect:scale:inStableState:]):
3263         * WebProcess/WebPage/ViewUpdateDispatcher.cpp:
3264         (WebKit::ViewUpdateDispatcher::visibleContentRectUpdate):
3265         * WebProcess/WebPage/ios/WebPageIOS.mm:
3266         (WebKit::WebPage::updateVisibleContentRects):
3267
3268 2014-03-21  Alexey Proskuryakov  <ap@apple.com>
3269
3270         REGRESSION (r165356): Predictive Chinese input is broken
3271         https://bugs.webkit.org/show_bug.cgi?id=130619
3272
3273         Reviewed by Enrica Casucci.
3274
3275         * UIProcess/mac/WebPageProxyMac.mm: (WebKit::WebPageProxy::executeKeypressCommands):
3276         Like after insertText, we are no longer in an intermediate state after executeKeypressCommands.
3277         Make sure that we don't call -discardMarkedText the next time we get a non-intermediate
3278         state with closed composition.
3279
3280 2014-03-21  Sam Weinig  <sam@webkit.org>
3281
3282         [WebKit2] Implement NetworkingContext::sourceApplicationAuditData() for WebKit2
3283         https://bugs.webkit.org/show_bug.cgi?id=130528
3284
3285         Reviewed by Tim Horton.
3286
3287         * Platform/IPC/Connection.h:
3288         * Platform/IPC/mac/ConnectionMac.cpp:
3289         (IPC::Connection::getAuditToken):
3290         Expose the audit data if available. 
3291
3292         * NetworkProcess/mac/RemoteNetworkingContext.mm:
3293         (WebKit::RemoteNetworkingContext::sourceApplicationAuditData):
3294         * WebProcess/WebCoreSupport/mac/WebFrameNetworkingContext.mm:
3295         (WebKit::WebFrameNetworkingContext::sourceApplicationAuditData):
3296         Pass the audit data corresponding to the UIProcess.
3297
3298         * Configurations/Network-iOS.entitlements: Copied from Configurations/WebContent-iOS.entitlements.
3299         * Configurations/NetworkProcess.xcconfig:
3300         * Configurations/NetworkService.Development.xcconfig:
3301         * Configurations/NetworkService.xcconfig:
3302         * Configurations/WebContent-iOS.entitlements:
3303         Add entitlement allowing the audit data to be used.
3304
3305 2014-03-21  Tim Horton  <timothy_horton@apple.com>
3306
3307         Always retrieve the screen scale factor from WKSI
3308         <rdar://problem/16329679>
3309
3310         Reviewed by Sam Weinig.
3311
3312         * UIProcess/ios/WKContentView.mm:
3313         (-[WKContentView initWithFrame:context:WebKit::configuration:WebKit::webView:]):
3314         (-[WKContentView _updateForScreen:]):
3315         Use WKGetScreenScaleFactor/WKGetScaleFactorForScreen.
3316
3317 2014-03-21  Yongjun Zhang  <yongjun_zhang@apple.com>
3318
3319         [Webkit2] Add APIDownloadClient for download support.
3320         https://bugs.webkit.org/show_bug.cgi?id=130484
3321
3322         Add API::DownloadClient to WebContext and get rid of WebDownloadClient.
3323
3324         Reviewed by Anders Carlsson.
3325
3326         * UIProcess/API/APIDownloadClient.h: Added.
3327         (API::DownloadClient::~DownloadClient):
3328         (API::DownloadClient::didStart):
3329         (API::DownloadClient::didReceiveAuthenticationChallenge):
3330         (API::DownloadClient::didReceiveResponse):
3331         (API::DownloadClient::didReceiveData):
3332         (API::DownloadClient::shouldDecodeSourceDataOfMIMEType):
3333         (API::DownloadClient::decideDestinationWithSuggestedFilename):
3334         (API::DownloadClient::didCreateDestination):
3335         (API::DownloadClient::didFinish):
3336         (API::DownloadClient::didFail):
3337         (API::DownloadClient::didCancel):
3338         (API::DownloadClient::processDidCrash):
3339         * UIProcess/API/C/WKContext.cpp:
3340         (WKContextSetDownloadClient): Move the original WebDownloadClient methods to a local class
3341             DownloadClient and set up the downloadClient for WebContext.
3342         * UIProcess/Downloads/DownloadProxy.cpp:
3343         * UIProcess/WebContext.cpp:
3344         (WebKit::WebContext::setDownloadClient):
3345         * UIProcess/WebContext.h:
3346         (WebKit::WebContext::downloadClient):
3347         * UIProcess/WebDownloadClient.cpp: Removed.
3348         * UIProcess/WebDownloadClient.h: Removed.
3349         * WebKit2.xcodeproj/project.pbxproj:
3350
3351 2014-03-21  Alexey Proskuryakov  <ap@apple.com>
3352
3353         ASSERTION FAILED: event == [NSApp currentEvent] hitting Command-+
3354         https://bugs.webkit.org/show_bug.cgi?id=130526
3355         <rdar://problem/16371612> 
3356
3357         This was fixed yesterday for sync code path, landing the same this for async one.
3358
3359         * UIProcess/API/mac/WKView.mm: (-[WKView performKeyEquivalent:]):
3360
3361 2014-03-21  Pratik Solanki  <psolanki@apple.com>
3362
3363         Add callbacks in WebKit2 Cocoa API for page load testing
3364         https://bugs.webkit.org/show_bug.cgi?id=130569
3365
3366         Reviewed by Anders Carlsson.
3367
3368         * WebProcess/InjectedBundle/API/Cocoa/WKWebProcessPlugInLoadDelegate.h:
3369         * WebProcess/InjectedBundle/API/mac/WKWebProcessPlugInBrowserContextController.mm:
3370         (didFirstVisuallyNonEmptyLayoutForFrame):
3371         (didHandleOnloadEventsForFrame):
3372         (setUpPageLoaderClient):
3373         (willSendRequestForFrame):
3374         (didInitiateLoadForResource):
3375         (didFinishLoadForResource):
3376         (didFailLoadForResource):
3377         (setUpResourceLoadClient):
3378
3379 2014-03-21  Ryuan Choi  <ryuan.choi@samsung.com>
3380
3381         [EFL][WK2] Remove Ewk_Error parameter from some async callbacks
3382         https://bugs.webkit.org/show_bug.cgi?id=130567
3383
3384         Reviewed by Gyuyoung Kim.
3385
3386         WebKit2 internally uses GenericCallbacks for several APIs such as WKKeyValueStorageManagerGetKeyValueStorageOrigins.
3387         But only few callbacks really return errors.
3388
3389         This patch removes Ewk_Error parameters from these callbacks not to make
3390         the confusion for application developers.
3391
3392         * UIProcess/API/efl/ewk_cookie_manager.cpp:
3393         (getAcceptPolicyCallback):
3394         (getHostnamesWithCookiesCallback):
3395         * UIProcess/API/efl/ewk_cookie_manager.h:
3396         * UIProcess/API/efl/ewk_database_manager.cpp:
3397         (getDatabaseOriginsCallback):
3398         * UIProcess/API/efl/ewk_database_manager.h:
3399         * UIProcess/API/efl/ewk_storage_manager.cpp:
3400         (getStorageOriginsCallback):
3401         * UIProcess/API/efl/ewk_storage_manager.h:
3402         * UIProcess/API/efl/tests/test_ewk2_cookie_manager.cpp:
3403         (EWK2CookieManagerTest::getAcceptPolicyCallback):
3404         (EWK2CookieManagerTest::getHostnamesWithCookiesCallback):
3405         * UIProcess/API/efl/tests/test_ewk2_database_manager.cpp:
3406         (EWK2DatabaseManagerTest::databaseOriginsCallback):
3407         * UIProcess/API/efl/tests/test_ewk2_storage_manager.cpp:
3408         (EWK2StorageManagerTest::getStorageOriginsCallback):
3409
3410 2014-03-21  Darin Adler  <darin@apple.com>
3411
3412         Improve idiom used for string building in a few places
3413         https://bugs.webkit.org/show_bug.cgi?id=130561
3414
3415         Reviewed by Andreas Kling.
3416
3417         * Shared/mac/ChildProcessMac.mm:
3418         (WebKit::ChildProcess::initializeSandbox): Use a more efficient idiom for string
3419         concatenation.
3420
3421         * UIProcess/WebInspectorProxy.cpp:
3422         (WebKit::WebInspectorProxy::createInspectorPage): Use a StringBuilder.
3423
3424 2014-03-20  Hyowon Kim  <hw1008.kim@samsung.com>
3425
3426         Move to using std::unique_ptr for EFL objects.
3427         https://bugs.webkit.org/show_bug.cgi?id=129853
3428
3429         Reviewed by Gyuyoung Kim.
3430
3431         EflUniquePtr is a template alias of std::unique_ptr
3432         with a custom deleter for each Efl Objects, which is motivated by GUniquePtr.
3433         This patch replaces uses of OwnPtr and PassOwnPtr for Efl objects with EflUniquePtr.
3434
3435         * Platform/Module.h:
3436         * Platform/efl/ModuleEfl.cpp:
3437         (WebKit::Module::load):
3438         * UIProcess/API/efl/EwkView.cpp:
3439         (EwkView::EwkView):
3440         * UIProcess/API/efl/EwkView.h:
3441         * UIProcess/efl/InputMethodContextEfl.cpp:
3442         (WebKit::InputMethodContextEfl::InputMethodContextEfl):
3443         (WebKit::InputMethodContextEfl::createIMFContext):
3444         * UIProcess/efl/InputMethodContextEfl.h:
3445         (WebKit::InputMethodContextEfl::create):
3446
3447 2014-03-20  Thiago de Barros Lacerda  <thiago.lacerda@openbossa.org>
3448
3449         [EFL][GTK] Get CMake to find Freetype2 properly
3450         https://bugs.webkit.org/show_bug.cgi?id=130150
3451
3452         Reviewed by Martin Robinson.
3453
3454         Newer versions of CMake are not able to find Freetype2 correctly.
3455         FindFreetype2.cmake checks for the version number in freetype.h header, since it seems that bug exists in
3456         freetype2 repo, because a completely different version number is found in freetype2.pc.
3457
3458         * PlatformEfl.cmake:
3459
3460 2014-03-20  Martin Robinson  <mrobinson@igalia.com>
3461
3462         [GTK] Suppress errors about using gdk_threads_enter gdk_threads_leave
3463         https://bugs.webkit.org/show_bug.cgi?id=130517
3464
3465         Reviewed by Sergio Villar Senin.
3466
3467         * UIProcess/API/gtk/WebKitWebView.cpp: Use GCC suppression to suppress errors about deprecations.
3468         * UIProcess/gtk/WebPopupMenuProxyGtk.cpp: Ditto.
3469
3470 2014-03-20  Ryuan Choi  <ryuan.choi@samsung.com>
3471
3472         [EFL][WK2] tests of test_ewk2_cookie_manager are flaky
3473         https://bugs.webkit.org/show_bug.cgi?id=130498
3474
3475         Reviewed by Gyuyoung Kim.
3476
3477         Loaded web page before calling getAcceptPolicy() to guarantee that webprocess
3478         or networkprocess was launched and registered WebCookieManager.
3479
3480         * UIProcess/API/efl/tests/test_ewk2_cookie_manager.cpp:
3481         (TEST_F):
3482
3483 2014-03-20  Commit Queue  <commit-queue@webkit.org>
3484
3485         Unreviewed, rolling out r165985.
3486         https://bugs.webkit.org/show_bug.cgi?id=130551
3487
3488         broke page loading on all cocoa platforms (Requested by
3489         thorton on #webkit).
3490
3491         Reverted changeset:
3492
3493         "[WebKit2] Implement
3494         NetworkingContext::sourceApplicationAuditData() for WebKit2"
3495         https://bugs.webkit.org/show_bug.cgi?id=130528
3496         http://trac.webkit.org/changeset/165985
3497
3498 2014-03-20  Alexey Proskuryakov  <ap@apple.com>
3499
3500         Fix a long-standing typo that's now breaking USE(ASYNC_NSTEXTINPUTCLIENT) build.
3501
3502         Rubber-stamped by Tim Horton.