[iOS] iPhone should not allow selecting <optgroup> in <select multiple>
[WebKit-https.git] / Source / WebKit2 / ChangeLog
1 2014-10-28  Joseph Pecoraro  <pecoraro@apple.com>
2
3         [iOS] iPhone should not allow selecting <optgroup> in <select multiple>
4         https://bugs.webkit.org/show_bug.cgi?id=137991
5
6         Reviewed by Darin Adler.
7
8         We seem to be getting the delegate when we are not supposed to.
9         Workaround the issue as best we can by reseting the styles
10         for the group's content view and not changing selections.
11
12         * UIProcess/ios/forms/WKFormSelectPicker.mm:
13         (-[WKMultipleSelectPicker pickerView:row:column:checked:]):
14
15 2014-10-28  Tim Horton  <timothy_horton@apple.com>
16
17         Remove an inaccurate comment in WKActionMenuController
18         https://bugs.webkit.org/show_bug.cgi?id=138135
19
20         Reviewed by Anders Carlsson.
21
22         * UIProcess/mac/WKActionMenuController.mm:
23         (-[WKActionMenuController _defaultMenuItemsForLink]):
24         The comment is wrong; the separator is there for spacing, not just as a workaround.
25
26 2014-10-28  Carlos Garcia Campos  <cgarcia@igalia.com>
27
28         Unreviewed. Update OptionsGTK.cmake and NEWS for 2.7.1 release.
29
30         * gtk/NEWS: Add release notes for 2.7.1.
31
32 2014-10-28  Dan Bernstein  <mitz@apple.com>
33
34         [Mac] OS X Mavericks build broken with public SDK
35         https://bugs.webkit.org/show_bug.cgi?id=138108
36
37         Reviewed by Mark Rowe.
38
39         * Shared/API/Cocoa/WKFoundation.h: Only define the NSEventModifierFlags type when using a
40         version of the OS X SDK that doesn’t define it.
41
42 2014-10-27  Conrad Shultz  <conrad_shultz@apple.com>
43
44         NSSharingService protocol conformance should be internal to WKActionMenuController
45         https://bugs.webkit.org/show_bug.cgi?id=138112
46
47         Reviewed by Tim Horton.
48
49         * UIProcess/mac/WKActionMenuController.h:
50         * UIProcess/mac/WKActionMenuController.mm:
51         Move protocol conformance from the interface to a class extension.
52
53 2014-10-27  Enrica Casucci  <enrica@apple.com>
54
55         WebContent crash in WebKit::WebPage::expandedRangeFromHandle.
56         https://bugs.webkit.org/show_bug.cgi?id=138023
57         rdar://problem/18787412
58
59         Reviewed by Ryosuke Niwa.
60
61         We must change that we have a valid currentRange before trying
62         to expand or contract.
63
64         * WebProcess/WebPage/ios/WebPageIOS.mm:
65         (WebKit::WebPage::changeBlockSelection):
66
67 2014-10-27  Alexey Proskuryakov  <ap@apple.com>
68
69         http/tests/cookies/third-party-cookie-relaxing.html is flaky on bots
70         https://bugs.webkit.org/show_bug.cgi?id=138098
71
72         Reviewed by Anders Carlsson.
73
74         * NetworkProcess/mac/com.apple.WebKit.NetworkProcess.sb.in:
75         * WebProcess/com.apple.WebProcess.sb.in:
76         Update for the new name of testing session. Memory regions are now of the form
77         "WebKit Test-<pid>-0".
78
79 2014-10-27  Chris Dumez  <cdumez@apple.com>
80
81         Use separate HashMaps for common and uncommon headers in HTTPHeaderMap
82         https://bugs.webkit.org/show_bug.cgi?id=138079
83
84         Reviewed by Anders Carlsson.
85
86         Update the WK2 IPC HTTPHeaderMap serialization / deserialization code
87         to leverage the fact that HTTPHeaderMap now stores common HTTP headers
88         and uncommon one in separate HashMaps. This speeds up deserialization
89         as we no longer need to call findHTTPHeaderName() for every decoded
90         header. We already know if the header is a common one or not, and if
91         it is then we already have a HTTPHeaderName type instead of a String.
92
93         I see that we spend ~40% less time in HTTPHeaderMap decoding when
94         loading http://flickr.com/explore, while the encoding takes about
95         the same amount of time as before.
96
97         * Shared/WebCoreArgumentCoders.cpp:
98         (IPC::ArgumentCoder<HTTPHeaderMap>::encode):
99         (IPC::ArgumentCoder<HTTPHeaderMap>::decode):
100
101 2014-10-24  Benjamin Poulain  <bpoulain@apple.com>
102
103         Fix the iOS build
104
105         * Configurations/WebKit.xcconfig:
106
107 2014-10-24  Beth Dakin  <bdakin@apple.com>
108
109         _actionMenuItemsForHitTestResult should also take a type indicating what the menu 
110         was built for
111         https://bugs.webkit.org/show_bug.cgi?id=138063
112
113         Reviewed by Dan Bernstein.
114
115         New type enum that can be used by clients.
116         * Shared/API/c/WKActionMenuTypes.h: Added.
117
118         Remove the old SPI and add the new.
119         * UIProcess/API/Cocoa/WKViewPrivate.h:
120         * UIProcess/API/mac/WKView.mm:
121         (-[WKView _actionMenuItemsForHitTestResult:withType:defaultActionMenuItems:]):
122         (-[WKView _actionMenuItemsForHitTestResult:defaultActionMenuItems:]): Deleted.
123
124         Now keep an ivar for the type.
125         * UIProcess/mac/WKActionMenuController.h:
126
127         Create a category for the old SPI so that we can still call it if clients have 
128         implemented it.
129         * UIProcess/mac/WKActionMenuController.mm:
130         (-[WKActionMenuController initWithPage:view:]):
131         (-[WKActionMenuController didCloseMenu:withEvent:]):
132         (imageForResource:name::if):
133         (-[WKActionMenuController _updateActionMenuItems]):
134         * WebKit2.xcodeproj/project.pbxproj:
135
136 2014-10-24  Tim Horton  <timothy_horton@apple.com>
137
138         Share sheet doesn't attach to the window
139         https://bugs.webkit.org/show_bug.cgi?id=138062
140         <rdar://problem/18767397>
141
142         Reviewed by Beth Dakin.
143
144         * UIProcess/mac/WKActionMenuController.h:
145         WKActionMenuController is now a NSSharingService{Picker}Delegate.
146
147         * UIProcess/mac/WKActionMenuController.mm:
148         (-[WKActionMenuController _defaultMenuItemsForImage]):
149         Set us up as the NSSharingServicePicker delegate.
150
151         (-[WKActionMenuController sharingServicePicker:delegateForSharingService:]):
152         Set us up as the NSSharingService delegate.
153
154         (-[WKActionMenuController sharingService:sourceWindowForShareItems:sharingContentScope:]):
155         Return the appropriate window to attach to.
156
157 2014-10-24  Jer Noble  <jer.noble@apple.com>
158
159         Abstractify WebOriginDataManager to support arbitrary ChildProcess supplements.
160         https://bugs.webkit.org/show_bug.cgi?id=137993
161
162         Reviewed by Brady Eidson.
163
164         To allow different ChildProcess subclasses to handle listing and deletion of origin
165         data, make WebOriginDataManager more generic by having a supplement implement the
166         details, leaving WebOriginDataManager to deal with cross-process messaging.
167
168         De-virtualize AsyncTask, allowing a task to be created by passing in a
169         function<void()>, rather than an object, method, and arguments.
170
171         * Shared/AsyncTask.h:
172         (WebKit::AsyncTask::AsyncTask):
173         (WebKit::AsyncTask::performTask):
174         (WebKit::AsyncTask::~AsyncTask): Deleted.
175
176         Add a new virtual base class, to be implemented by various ChildProcesses, which
177         WebOriginDataManager will use to implement listing and deletion requests.
178
179         * WebProcess/OriginData/WebOriginDataManager.h:
180         * WebProcess/OriginData/WebOriginDataManagerSupplement.h: Added.
181         (WebKit::WebOriginDataManagerSupplement::WebOriginDataManagerSupplement):
182         (WebKit::WebOriginDataManagerSupplement::~WebOriginDataManagerSupplement):
183         (WebKit::WebOriginDataManagerSupplement::getOrigins):
184         (WebKit::WebOriginDataManagerSupplement::deleteEntriesForOrigin):
185         (WebKit::WebOriginDataManagerSupplement::deleteEntriesModifiedBetweenDates):
186         (WebKit::WebOriginDataManagerSupplement::deleteAllEntries):
187         * WebKit2.xcodeproj/project.pbxproj:
188
189         WebOriginDataManager doesn't need to be a ChildSupplement. Remove the DatabaseProcess-
190         specific implementations for its message handlers and replace with clean, generic calls
191         to its supplement. Because these supplements may want to respond to the request
192         asynchronously, pass a completion function in to be called by the supplement once its
193         work is complete.
194
195         * WebProcess/OriginData/WebOriginDataManager.cpp:
196         (WebKit::WebOriginDataManager::WebOriginDataManager):
197         (WebKit::WebOriginDataManager::getOrigins):
198         (WebKit::WebOriginDataManager::deleteEntriesForOrigin):
199         (WebKit::WebOriginDataManager::deleteEntriesModifiedBetweenDates):
200         (WebKit::WebOriginDataManager::deleteAllEntries):
201         (WebKit::WebOriginDataManager::supplementName): Deleted.
202
203         DatabaseProcess already uses WebOriginDataManager, so it will be the first process
204         to fall under the heel of the new regime. DatabaseProcess will subclass
205         WebOriginDataManagerSupplement, and pass itself in twice to the WebOriginDataManager
206         constructor. Create a lambda-based AsyncTask for each request, and call the completion
207         function when each request is complete.
208
209         * DatabaseProcess/DatabaseProcess.cpp:
210         (WebKit::DatabaseProcess::DatabaseProcess):
211         (WebKit::DatabaseProcess::getIndexedDatabaseOrigins):
212         (WebKit::DatabaseProcess::deleteIndexedDatabaseEntriesForOrigin):
213         (WebKit::DatabaseProcess::deleteIndexedDatabaseEntriesModifiedBetweenDates):
214         (WebKit::DatabaseProcess::deleteAllIndexedDatabaseEntries):
215         (WebKit::DatabaseProcess::getOrigins):
216         (WebKit::DatabaseProcess::deleteEntriesForOrigin):
217         (WebKit::DatabaseProcess::deleteEntriesModifiedBetweenDates):
218         (WebKit::DatabaseProcess::deleteAllEntries):
219         (WebKit::DatabaseProcess::doGetIndexedDatabaseOrigins): Deleted.
220         (WebKit::DatabaseProcess::doDeleteIndexedDatabaseEntriesForOrigin): Deleted.
221         (WebKit::DatabaseProcess::doDeleteIndexedDatabaseEntriesModifiedBetweenDates): Deleted.
222         (WebKit::DatabaseProcess::doDeleteAllIndexedDatabaseEntries): Deleted.
223         * DatabaseProcess/DatabaseProcess.h:
224
225 2014-10-24  Beth Dakin  <bdakin@apple.com>
226
227         Very large images crash in action menu code
228         https://bugs.webkit.org/show_bug.cgi?id=138059
229         -and corresponding-
230         rdar://problem/18767859
231
232         Reviewed by Tim Horton.
233
234         If the HitTestResult failed to create and image, then don’t go for the image 
235         action menu.
236         * UIProcess/mac/WKActionMenuController.mm:
237         (-[WKActionMenuController _defaultMenuItems]):
238
239         ShareableBitmap::createShareable() can fail. The result needs to be null-checked.
240         * WebProcess/WebPage/WebPage.cpp:
241         (WebKit::WebPage::performActionMenuHitTestAtLocation):
242
243 2014-10-24  Beth Dakin  <bdakin@apple.com>
244
245         Build fix.
246
247         * UIProcess/mac/WKActionMenuController.h:
248         * UIProcess/mac/WKActionMenuController.mm:
249
250 2014-10-24  Tim Horton  <timothy_horton@apple.com>
251
252         Blindly try to fix all the builds.
253
254         * UIProcess/mac/WKActionMenuController.h:
255         * UIProcess/mac/WKActionMenuController.mm:
256
257 2014-10-24  Timothy Horton  <timothy_horton@apple.com>
258
259         Blindly try to fix all the builds.
260
261         * UIProcess/mac/WKActionMenuController.h:
262
263 2014-10-24  Timothy Horton  <timothy_horton@apple.com>
264
265         Blindly try to fix the 32-bit build.
266
267         * UIProcess/mac/WKActionMenuController.h:
268         * UIProcess/mac/WKActionMenuController.mm:
269
270 2014-10-24  Tim Horton  <timothy_horton@apple.com>
271
272         [Mac][WebKit2] Move action menu code into its own file
273         https://bugs.webkit.org/show_bug.cgi?id=138034
274         <rdar://problem/18758758>
275
276         * UIProcess/mac/WKActionMenuController.mm:
277         (-[WKActionMenuController prepareForMenu:withEvent:]):
278         (-[WKActionMenuController _addImageToPhotos:]):
279         Review comments that were not previously addressed.
280
281 2014-10-24  Tim Horton  <timothy_horton@apple.com>
282
283         [Mac][WebKit2] Move action menu code into its own file
284         https://bugs.webkit.org/show_bug.cgi?id=138034
285         <rdar://problem/18758758>
286
287         Reviewed by Dan Bernstein.
288
289         * UIProcess/API/mac/WKView.mm:
290         (-[WKView initWithFrame:context:configuration:webView:]):
291         Make a WKActionMenuController if needed.
292
293         (-[WKView prepareForMenu:withEvent:]):
294         (-[WKView willOpenMenu:withEvent:]):
295         (-[WKView didCloseMenu:withEvent:]):
296         (-[WKView _didPerformActionMenuHitTest:]):
297         Forward these to WKActionMenuController.
298
299         (-[WKView _openURLFromActionMenu:]): Deleted.
300         (-[WKView _addToReadingListFromActionMenu:]): Deleted.
301         (-[WKView _quickLookURLFromActionMenu:]): Deleted.
302         (-[WKView _createActionMenuItemForTag:]): Deleted.
303         (webKitBundleImageNamed): Deleted.
304         (-[WKView _copyImage:]): Deleted.
305         (-[WKView _saveImageToDownloads:]): Deleted.
306         (temporaryPhotosDirectoryPath): Deleted.
307         (pathToPhotoOnDisk): Deleted.
308         (-[WKView _addImageToPhotos:]): Deleted.
309         (-[WKView _defaultMenuItemsForImage]): Deleted.
310         (-[WKView _defaultMenuItems]): Deleted.
311         (-[WKView _updateActionMenu]): Deleted.
312         Moved to WKActionMenuController.
313
314         * UIProcess/mac/WKActionMenuController.h: Added.
315         * UIProcess/mac/WKActionMenuController.mm: Added.
316         (-[WKActionMenuController initWithPage:view:]):
317         (-[WKActionMenuController prepareForMenu:withEvent:]):
318         (-[WKActionMenuController willOpenMenu:withEvent:]):
319         (-[WKActionMenuController didCloseMenu:withEvent:]):
320         (-[WKActionMenuController didPerformActionMenuHitTest:]):
321         (-[WKActionMenuController _defaultMenuItemsForLink]):
322         (-[WKActionMenuController _openURLFromActionMenu:]):
323         (-[WKActionMenuController _addToReadingListFromActionMenu:]):
324         (-[WKActionMenuController _quickLookURLFromActionMenu:]):
325         (-[WKActionMenuController _defaultMenuItemsForImage]):
326         (-[WKActionMenuController _copyImage:]):
327         (-[WKActionMenuController _saveImageToDownloads:]):
328         (temporaryPhotosDirectoryPath):
329         (pathToPhotoOnDisk):
330         (-[WKActionMenuController _addImageToPhotos:]):
331         (-[WKActionMenuController _createActionMenuItemForTag:]):
332         (webKitBundleImageNamed):
333         (imageForResource:name::if):
334         (-[WKActionMenuController _updateActionMenuItems]):
335         Moved from WKView.
336
337         * WebKit2.xcodeproj/project.pbxproj:
338
339 2014-10-24  Marcos Chavarría Teijeiro  <chavarria1991@gmail.com>
340
341         [GTK] Implement is_selected method on WebKitHitTestResult
342         https://bugs.webkit.org/show_bug.cgi?id=137110
343
344         Reviewed by Tim Horton.
345
346         Expose CONTEXT_SELECTION for WebKitHitTestResult.
347
348         * Shared/WebHitTestResult.cpp: Add is_selected field and getter for this field.
349         (WebKit::WebHitTestResult::Data::Data):
350         (WebKit::WebHitTestResult::Data::encode):
351         (WebKit::WebHitTestResult::Data::decode):
352         * Shared/WebHitTestResult.h:
353         (WebKit::WebHitTestResult::isSelected):
354         * UIProcess/API/gtk/WebKitHitTestResult.cpp: Add WEBKIT_HIT_TEST_RESULT_CONTEXT_SELECTION context and method to check it.
355         (webkitHitTestResultCreate):
356         (webkitHitTestResultCompare):
357         (webkit_hit_test_result_context_is_selection):
358         * UIProcess/API/gtk/WebKitHitTestResult.h:
359         * UIProcess/API/gtk/WebKitWebView.cpp: Modify context-menu callback to set the new context option.
360         (webkitWebViewPopulateContextMenu):
361         * UIProcess/API/gtk/docs/webkit2gtk-sections.txt: Add documentation about new function.
362
363 2014-10-23  Carlos Garcia Campos  <cgarcia@igalia.com>
364
365         [GTK][Cairo] Remove GTK dependency of WidgetBackingStoreGtkX11
366         https://bugs.webkit.org/show_bug.cgi?id=138004
367
368         Reviewed by Gustavo Noronha Silva.
369
370         * UIProcess/BackingStore.h: Rename m_backingStore as m_backend,
371         since it's a bit confusing that a BackingStore class has a
372         m_backingStore member and WidgetBackingStore has been renamed as
373         BackingStoreBackendCairo.
374         * UIProcess/cairo/BackingStoreCairo.cpp:
375         (WebKit::BackingStore::createBackend): Helper function to create
376         the BackingStore backend depending on the platform.
377         (WebKit::BackingStore::paint): Use m_backend instead of m_backingStore.
378         (WebKit::BackingStore::incorporateUpdate): Ditto.
379         (WebKit::BackingStore::scroll): Ditto.
380         (WebKit::createBackingStoreForGTK): Deleted.
381
382 2014-10-23  Benjamin Poulain  <bpoulain@apple.com>
383
384         Fix a bad find-and-replace in r175153
385
386         Looks like I messed up the commit on landing.
387
388         * UIProcess/WebPageProxy.cpp:
389         (WebKit::WebPageProxy::WebPageProxy):
390         (WebKit::WebPageProxy::didCommitLoadForFrame):
391
392 2014-10-23  Benjamin Poulain  <bpoulain@apple.com>
393
394         [iOS WK2] If a page has the exact same VisibleContentRect as the page before, its VisibleContentRectUpdate can be ignored
395         https://bugs.webkit.org/show_bug.cgi?id=138031
396         rdar://problem/18739335
397
398         Reviewed by Simon Fraser.
399
400         Since any VisibleContentRectUpdate is costly for the WebProcess, we avoid sending updates
401         if none of the important parameters have changed (scale and geometry).
402
403         One unintended side effect is that the update of a page can be blocked if the parameters
404         of the previous page were identical.
405
406         What happen is this:
407         1) Page [A] sends its content rect update as needed. WebPageProxy saves the last update
408            in m_lastVisibleContentRectUpdate and use that value to avoid useless updates.
409         2) Page [B] load after page [A] and have the exact VisibleContentRect. When receiving the first
410            layer tree commit after didCommitLoadForFrame, WKWebView sends its VisibleContentRect
411            to WebPageProxy to synchronize the state of the WebProcess with what is on screen.
412         3) Since the two VisibleContentRect update has the same value as the ones of page [A], WebPageProxy
413            discards the update. The WebProcess has its initialization viewport and is not udpated until
414            a major parameter changes (scale or position).
415
416         In rdar://problem/18739335, the problem is the similar but with a different failure point:
417         1) Everything above happened already.
418         2) The layer tree transaction has a scrolling request. This is processed by WKWebView.
419         3) Since the scrolling position is invalid, the request is ignored and we send the last
420            VisibleContentRect to the WebProcess with WebPageProxy::resendLastVisibleContentRects().
421         4) Since the VisibleContentRect was never updated after didCommitLoadForFrame, the one we send
422            is for the previous page, which the web process correctly ignores.
423
424         This patch solves the problem by nuking the cached m_lastVisibleContentRectUpdate before
425         any valid VisibleContentRectUpdate for a new page.
426
427         * UIProcess/WebPageProxy.cpp:
428         (WebKit::WebPageProxy::WebPageProxy):
429         (WebKit::WebPageProxy::didCommitLoadForFrame):
430         * UIProcess/WebPageProxy.h:
431         * UIProcess/ios/WebPageProxyIOS.mm:
432         (WebKit::WebPageProxy::didCommitLayerTree):
433
434 2014-10-23  Joseph Pecoraro  <pecoraro@apple.com>
435
436         Web Inspector: Provide a way to have alternate inspector agents
437         https://bugs.webkit.org/show_bug.cgi?id=137901
438
439         Reviewed by Brian Burg.
440
441         * Configurations/FeatureDefines.xcconfig:
442
443 2014-10-23  Tim Horton  <timothy_horton@apple.com>
444
445         Add some SPI headers for NSExtension and NSSharingService{Picker}
446         https://bugs.webkit.org/show_bug.cgi?id=138027
447
448         Reviewed by Anders Carlsson.
449
450         * UIProcess/API/mac/WKView.mm:
451         * UIProcess/mac/ServicesController.mm:
452         * UIProcess/mac/WebContextMenuProxyMac.mm:
453         Replace redefinitions with SPI header #imports.
454
455 2014-10-23  Benjamin Poulain  <bpoulain@apple.com>
456
457         [iOS WK2] Make sure any dynamic viewport update schedules a layer tree commit
458         https://bugs.webkit.org/show_bug.cgi?id=138021
459
460         Reviewed by Simon Fraser.
461
462         * WebProcess/WebPage/ios/WebPageIOS.mm:
463         (WebKit::WebPage::dynamicViewportSizeUpdate):
464         Sometimes, the clients can do a dynamic viewport update but only change the minimum
465         layout size (see rdar://problem/18755250).
466
467         When that happens, it is possible to do the full state update without ever scheduling
468         a layer tree commit. For example, if the new minimum layout height is only a few pixels
469         smaller than the old value and the layout of the page is equal or larger than the old value,
470         the layout is done without any side effect to the content (assuming a viewport configuration
471         based on width).
472
473         The contract with the client is that the next layer tree commit after a dynamic viewport update
474         carries all the valid parameters for the new viewport size. Since the new layout never scheduled
475         a layer tree commit, the UIProcess is just waiting for one, discarding all input.
476
477         This patch solves the issue by explicitely scheduling a layer flush after updating all the layout
478         and view parameters to their final values. In most cases, this makes no difference since a layer
479         tree commit was already scheduled. In the rare cases where nothing was scheduled, scheduling
480         the layer tree commit ensure we unlock the UIProcess.
481
482 2014-10-23  Ryosuke Niwa  <rniwa@webkit.org>
483
484         WebContent crash in WebKit::WebPage::expandedRangeFromHandle
485         https://bugs.webkit.org/show_bug.cgi?id=138023
486
487         Reviewed by Enrica Casucci.
488
489         The crashes are caused by rangeForBlockAtPoint returning a null Range.
490         Exit early or continue if a range is null in various places.
491
492         * WebProcess/WebPage/ios/WebPageIOS.mm:
493         (WebKit::WebPage::expandedRangeFromHandle): Continue looking for another point if the range returned by
494         rangeForBlockAtPoint is null.
495         (WebKit::WebPage::contractedRangeFromHandle): Ditto.
496         (WebKit::WebPage::computeExpandAndShrinkThresholdsForHandle): Removed the FIXME now that Enrica has
497         verified that this early exit added in r173788 is correct.
498
499 2014-10-23  Joseph Pecoraro  <pecoraro@apple.com>
500
501         [iOS] iPhone unselecting items in <select multiple> shows incorrect values selected
502         https://bugs.webkit.org/show_bug.cgi?id=137989
503
504         Reviewed by Alexey Proskuryakov.
505
506         * UIProcess/ios/forms/WKFormSelectPicker.mm:
507         (-[WKMultipleSelectPicker pickerView:row:column:checked:]):
508         The second argument is "allowsMultipleSelection" and should only be set
509         when we are making a selection in a <select multiple>.
510
511 2014-10-23  Tim Horton  <timothy_horton@apple.com>
512
513         Assertion failures in ImageKit soft linking
514         https://bugs.webkit.org/show_bug.cgi?id=138009
515
516         Reviewed by Anders Carlsson.
517
518         * UIProcess/API/mac/WKView.mm:
519         Soft-link ImageKit correctly.
520         ImageKit is inside the Quartz umbrella framework.
521
522 2014-10-23  Daniel Bates  <dabates@apple.com>
523
524         [iOS] Fix the build after <http://trac.webkit.org/changeset/175079>
525         (https://bugs.webkit.org/show_bug.cgi?id=137995)
526
527         Rubber-stamped by Anders Carlsson.
528
529         Remove PageClientImpl::didPerformActionMenuHitTest() for iOS.
530
531         * UIProcess/ios/PageClientImplIOS.h:
532         * UIProcess/ios/PageClientImplIOS.mm:
533         (WebKit::PageClientImpl::didPerformActionMenuHitTest): Deleted.
534
535 2014-10-23  Krzysztof Czech  <k.czech@samsung.com>
536
537         [EFL] Fix build problem after r175098
538         https://bugs.webkit.org/show_bug.cgi?id=138002
539
540         Reviewed by Gyuyoung Kim.
541
542         Add ECORE_X dependency to avoid linking problems while building unit tests.
543
544         * PlatformEfl.cmake:
545
546 2014-10-23  Krzysztof Czech  <k.czech@samsung.com>
547
548         [EFL] Set proper default value for WebPageAccessibilityObject
549         https://bugs.webkit.org/show_bug.cgi?id=137951
550
551         Reviewed by Csaba Osztrogonác.
552
553         Initial value for WebPageAccessibilityObject should be nullptr.
554
555         * WebProcess/WebPage/WebPage.cpp:
556         (WebKit::WebPage::WebPage):
557
558 2014-10-23  Krzysztof Czech  <k.czech@samsung.com>
559
560         [EFL] Introduce EFL Accessibility in WebKit
561         https://bugs.webkit.org/show_bug.cgi?id=137819
562
563         Reviewed by Gyuyoung Kim.
564
565         EFL Accessibility provides an API that is used to notify clients that certain
566         Accessibility events occur. Utilizing it makes WebKit-EFL coherent with EFL native
567         accessibility approach.
568
569         * PlatformEfl.cmake:
570         * UIProcess/API/efl/EwkView.cpp:
571         (EwkView::EwkView):
572         * UIProcess/API/efl/EwkView.h:
573         (EwkView::webAccessibility):
574         * UIProcess/API/efl/WebAccessibility.cpp: Added.
575         (WebKit::WebAccessibility::WebAccessibility):
576         (WebKit::WebAccessibility::~WebAccessibility):
577         (WebKit::WebAccessibility::eventHandler):
578         (WebKit::WebAccessibility::executeGestureAction):
579         (WebKit::WebAccessibility::activate):
580         (WebKit::WebAccessibility::read):
581         (WebKit::WebAccessibility::readNext):
582         (WebKit::WebAccessibility::readPrev):
583         (WebKit::WebAccessibility::up):
584         (WebKit::WebAccessibility::down):
585         (WebKit::WebAccessibility::scroll):
586         (WebKit::WebAccessibility::mouse):
587         (WebKit::WebAccessibility::enable):
588         (WebKit::WebAccessibility::disable):
589         * UIProcess/API/efl/WebAccessibility.h: Added.
590         (WebKit::WebAccessibility::activateAction):
591         (WebKit::WebAccessibility::nextAction):
592         (WebKit::WebAccessibility::prevAction):
593         (WebKit::WebAccessibility::readAction):
594         * UIProcess/API/efl/ewk_view.cpp:
595         (ewk_view_accessibility_action_activate_get):
596         (ewk_view_accessibility_action_next_get):
597         (ewk_view_accessibility_action_prev_get):
598         (ewk_view_accessibility_action_read_by_point_get):
599         * UIProcess/API/efl/ewk_view.h:
600         * UIProcess/API/efl/tests/test_ewk2_accessibility.cpp: Added.
601         (EWK2Accessibility::xwindow):
602         (TEST_F):
603         * UIProcess/WebPageProxy.h:
604         * UIProcess/efl/WebPageProxyEfl.cpp:
605         (WebKit::WebPageProxy::accessibilityObjectReadByPoint):
606         (WebKit::WebPageProxy::accessibilityObjectReadPrevious):
607         (WebKit::WebPageProxy::accessibilityObjectReadNext):
608
609 2014-10-22  Benjamin Poulain  <bpoulain@apple.com>
610
611         [iOS WK2] Protect WKWebView dynamic viewport change against empty sizes
612         https://bugs.webkit.org/show_bug.cgi?id=137988
613         rdar://problem/17785162
614
615         Reviewed by Simon Fraser.
616
617         * UIProcess/API/Cocoa/WKWebView.mm:
618         (-[WKWebView _beginAnimatedResizeWithUpdates:]):
619         The algorithm behind dynamic size update finds the best content area to put in the viewport
620         after a viewport change. If an initial size or a target size is empty, it is impossible to
621         compute a reasonable area to keep in the view. We end up handling NaN scales
622         and/or sizes and CoreAnimation raises an exception when applying that value.
623
624         This patch add early exits when that occurs and fallback to the common code.
625
626         On Input, things are easy. If any of the initial values is empty, we just execute the updateBlock
627         without attempting any of the dynamic behaviors.
628
629         For the target values, things are trickier. We do not know what the values are going to be before we execute
630         the block. But once we executed the block, we have already skipped all the setters that call the web process.
631
632         To handle that, every value is set manually on WebPageProxy. This is a bit unfortunate because the setters
633         get yet another entry point.
634
635 2014-10-22  Gyuyoung Kim  <gyuyoung.kim@samsung.com>
636
637         EFL and GTK ports have broken since r175075
638         https://bugs.webkit.org/show_bug.cgi?id=137995
639
640         Unreviewed, EFL and GTK ports build fix.
641
642         Need to use PLATFORM(MAC) guard for ActionMenuHitTest functions.
643
644         * UIProcess/PageClient.h:
645         * UIProcess/WebPageProxy.cpp:
646         (WebKit::WebPageProxy::removeNavigationGestureSnapshot):
647         * UIProcess/WebPageProxy.h:
648         * UIProcess/WebPageProxy.messages.in:
649         * WebProcess/WebPage/WebPage.cpp:
650         * WebProcess/WebPage/WebPage.h:
651         * WebProcess/WebPage/WebPage.messages.in:
652
653 2014-10-22  Tim Horton  <timothy_horton@apple.com>
654
655         Add action menu support for images
656         https://bugs.webkit.org/show_bug.cgi?id=137987
657         <rdar://problem/18717767>
658
659         Reviewed by Anders Carlsson, Sam Weinig, and Beth Dakin.
660
661         * Resources/AddImageToPhotos.pdf: Added.
662         * Resources/CopyImage.pdf: Added.
663         * Resources/SaveImageToDownloads.pdf: Added.
664         * Resources/ShareImage.pdf: Added.
665         Add some temporary artwork.
666
667         * Scripts/webkit/messages.py:
668         (struct_or_class):
669         ActionMenuHitTestResult is a struct.
670
671         * Shared/API/c/WKActionMenuItemTypes.h:
672         Add new items for image menus.
673
674         * Shared/mac/ActionMenuHitTestResult.cpp:
675         (WebKit::ActionMenuHitTestResult::encode):
676         (WebKit::ActionMenuHitTestResult::decode):
677         For now, pass the hit image data across to the UI process as a ShareableBitmap.
678
679         * Shared/mac/ActionMenuHitTestResult.h:
680
681         * UIProcess/API/mac/WKView.mm:
682         (-[WKView _createActionMenuItemForTag:]):
683         Refactor action menu item creation into a single function, so that
684         callers can share code and be much simpler.
685
686         (webKitBundleImageNamed):
687         Add a helper to acquire an image from the WebKit2 bundle.
688
689         (-[WKView _copyImage:]):
690         (-[WKView _saveImageToDownloads:]):
691         (temporaryPhotosDirectoryPath):
692         (pathToPhotoOnDisk):
693         (-[WKView _addImageToPhotos:]):
694         Add rudimentary implementations of image actions.
695
696         (-[WKView _defaultMenuItemsForImage]):
697         Support the image menu, plus a submenu acquired from NSSharingServicePicker
698         for the Share menu.
699
700         (-[WKView _defaultMenuItems]):
701         Call _defaultMenuItemsForImage if needed.
702
703         (-[WKView _updateActionMenu]):
704         Refactor _updateActionMenu out of prepareForMenu:withEvent:.
705
706         (-[WKView prepareForMenu:withEvent:]):
707         Ask the Web process to re-hit-test under the location that the menu
708         will appear. Mark the menu as pending.
709
710         (-[WKView _didPerformActionMenuHitTest:]):
711         When we get the hit test reply, record the result for future use.
712
713         (-[WKView willOpenMenu:withEvent:]):
714         If we got a hit test reply, rebuild the menu immediately. If not, wait
715         up to 500ms for the reply to come in. This eventually needs to be
716         cancellable if the menu is rejected in the interim.
717
718         (-[WKView didCloseMenu:withEvent:]):
719         Clear all state when the menu closes.
720
721         * UIProcess/API/mac/WKViewInternal.h:
722         * UIProcess/PageClient.h:
723         * UIProcess/WebPageProxy.cpp:
724         (WebKit::WebPageProxy::performActionMenuHitTestAtLocation):
725         (WebKit::WebPageProxy::didPerformActionMenuHitTest):
726         * UIProcess/WebPageProxy.h:
727         * UIProcess/WebPageProxy.messages.in:
728         * UIProcess/mac/PageClientImpl.h:
729         * UIProcess/mac/PageClientImpl.mm:
730         (WebKit::PageClientImpl::didPerformActionMenuHitTest):
731         * UIProcess/ios/PageClientImplIOS.h:
732         * UIProcess/ios/PageClientImplIOS.mm:
733         * WebProcess/WebPage/WebPage.h:
734         * WebProcess/WebPage/WebPage.messages.in:
735         Plumb didPerformActionMenuHitTest back from WebPageProxy to WKView.
736
737         * WebProcess/WebPage/WebPage.cpp:
738         (WebKit::WebPage::performActionMenuHitTestAtLocation):
739         Hit test at the given location, recording the image data if there is any,
740         and return the result to the UI process.
741
742         * WebKit2.xcodeproj/project.pbxproj:
743         Add the PDFs.
744
745 2014-10-22  Gyuyoung Kim  <gyuyoung.kim@samsung.com>
746
747         Remove WidgetBackingStoreCairo::create() factory function
748         https://bugs.webkit.org/show_bug.cgi?id=137943
749
750         Reviewed by Darin Adler.
751
752         WidgetBackingStoreCairo::create() can be replaced by std::make_unique<>.
753         Thus this patch removes it, then use std::make_unique<>|std::unique_ptr<>.
754
755         * UIProcess/BackingStore.h:
756         * UIProcess/cairo/BackingStoreCairo.cpp:
757         (WebKit::createBackingStoreForGTK):
758         (WebKit::BackingStore::incorporateUpdate):
759
760 2014-10-22  Gyuyoung Kim  <gyuyoung.kim@samsung.com>
761
762         Remove TextCheckerEnchant::create() factory function
763         https://bugs.webkit.org/show_bug.cgi?id=137944
764
765         Reviewed by Darin Adler.
766
767         TextCheckerEnchant::create() can be replaced by std::make_unique<> and std::unique_ptr<>.
768
769         * UIProcess/API/gtk/WebKitTextChecker.cpp:
770         (WebKitTextChecker::WebKitTextChecker):
771         * UIProcess/API/gtk/WebKitTextChecker.h:
772         * UIProcess/efl/TextCheckerClientEfl.cpp:
773         (TextCheckerClientEfl::TextCheckerClientEfl):
774         * UIProcess/efl/TextCheckerClientEfl.h:
775
776 2014-10-22  Antti Koivisto  <antti@apple.com>
777
778         Revert fix for REGRESSION (r173356): Safari can't install a profile, gets 'Download Failed error
779         (https://bugs.webkit.org/show_bug.cgi?id=137493)
780
781         Turns out the root cause was a bug in MIME type sniffing, https://bugs.webkit.org/show_bug.cgi?id=137855
782
783         Remove the workaround.
784
785         * Shared/Downloads/ios/DownloadIOS.mm:
786         (WebKit::Download::startWithHandle):
787         * Shared/Downloads/mac/DownloadMac.mm:
788         (WebKit::Download::startWithHandle):
789
790 2014-10-22  Beth Dakin  <bdakin@apple.com>
791
792         Remove action menu web preference
793         https://bugs.webkit.org/show_bug.cgi?id=137975
794
795         Reviewed by Tim Horton.
796
797         * Shared/WebPreferencesDefinitions.h:
798         * UIProcess/API/C/WKPreferences.cpp:
799         (WKPreferencesSetActionMenuSupportEnabled): Deleted.
800         (WKPreferencesGetActionMenuSupportEnabled): Deleted.
801         * UIProcess/API/C/WKPreferencesRefPrivate.h:
802         * UIProcess/API/mac/WKView.mm:
803         (-[WKView initWithFrame:context:configuration:webView:]):
804
805 2014-10-22  Chris Dumez  <cdumez@apple.com>
806
807         [Mac][WK2] Fix applicationIsSafari() detection
808         https://bugs.webkit.org/show_bug.cgi?id=137893
809
810         Reviewed by Alexey Proskuryakov.
811
812         Provide an implementation for FrameLoaderClient's new
813         needsQuickLookResourceCachingQuirks(), which accesses the flag stored
814         on the WebProcess, which is initialized upon WebProcess creation.
815
816         QuickLookMac::computeNeedsQuickLookResourceCachingQuirks() is called
817         on UIProcess side so that it works reliably and the flag is passed as
818         parameter when constructing the WebProcess.
819
820         * Shared/WebProcessCreationParameters.cpp:
821         (WebKit::WebProcessCreationParameters::encode):
822         (WebKit::WebProcessCreationParameters::decode):
823         * Shared/WebProcessCreationParameters.h:
824         * UIProcess/mac/WebContextMac.mm:
825         (WebKit::WebContext::platformInitializeWebProcess):
826         * WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
827         (WebKit::WebFrameLoaderClient::needsQuickLookResourceCachingQuirks):
828         * WebProcess/WebCoreSupport/WebFrameLoaderClient.h:
829         * WebProcess/WebProcess.cpp:
830         (WebKit::WebProcess::WebProcess):
831         * WebProcess/WebProcess.h:
832         (WebKit::WebProcess::needsQuickLookResourceCachingQuirks):
833         * WebProcess/cocoa/WebProcessCocoa.mm:
834         (WebKit::WebProcess::platformInitializeWebProcess):
835
836 2014-10-22  Carlos Garcia Campos  <cgarcia@igalia.com>
837
838         Unreviewed. Fix GTK+ debug build after r175046.
839
840         Remove invalid ASSERT.
841
842         * UIProcess/gtk/InputMethodFilter.cpp:
843         (WebKit::InputMethodFilter::setCursorRect):
844
845 2014-10-22  Carlos Garcia Campos  <cgarcia@igalia.com>
846
847         [GTK] Move GtkInputMethodFilter from Platform to WebKit2
848         https://bugs.webkit.org/show_bug.cgi?id=137884
849
850         Reviewed by Gustavo Noronha Silva.
851
852         Merge WebViewBaseInputMethodFilter and GtkInputMethodFilter into a
853         single class InputMethodFilter. The code is mostly the same, but
854         instead of having a setWebView method only to get the WebPageProxy,
855         it has a setPage method that passes the WebPageProxy. The GtkIMContext
856         client window is set by the WebView when it's realized/unrealized.
857
858         * PlatformGTK.cmake:
859         * Shared/NativeWebKeyboardEvent.h:
860         * Shared/gtk/NativeWebKeyboardEventGtk.cpp:
861         (WebKit::NativeWebKeyboardEvent::NativeWebKeyboardEvent):
862         * UIProcess/API/gtk/WebKitWebViewBase.cpp:
863         (webkitWebViewBaseRealize):
864         (webkitWebViewBaseUnrealize):
865         (webkit_web_view_base_class_init):
866         (webkitWebViewBaseCreateWebPage):
867         (webkitWebViewBaseEnterFullScreen): Deleted.
868         * UIProcess/API/gtk/WebViewBaseInputMethodFilter.cpp: Removed.
869         * UIProcess/API/gtk/WebViewBaseInputMethodFilter.h: Removed.
870         * UIProcess/gtk/InputMethodFilter.cpp: Added.
871         (WebKit::InputMethodFilter::handleCommitCallback):
872         (WebKit::InputMethodFilter::handlePreeditStartCallback):
873         (WebKit::InputMethodFilter::handlePreeditChangedCallback):
874         (WebKit::InputMethodFilter::handlePreeditEndCallback):
875         (WebKit::InputMethodFilter::InputMethodFilter):
876         (WebKit::InputMethodFilter::~InputMethodFilter):
877         (WebKit::InputMethodFilter::setEnabled):
878         (WebKit::InputMethodFilter::setCursorRect):
879         (WebKit::InputMethodFilter::handleKeyboardEvent):
880         (WebKit::InputMethodFilter::handleKeyboardEventWithCompositionResults):
881         (WebKit::InputMethodFilter::filterKeyEvent):
882         (WebKit::InputMethodFilter::confirmComposition):
883         (WebKit::InputMethodFilter::updatePreedit):
884         (WebKit::InputMethodFilter::notifyFocusedIn):
885         (WebKit::InputMethodFilter::notifyFocusedOut):
886         (WebKit::InputMethodFilter::notifyMouseButtonPress):
887         (WebKit::InputMethodFilter::confirmCurrentComposition):
888         (WebKit::InputMethodFilter::cancelContextComposition):
889         (WebKit::InputMethodFilter::sendCompositionAndPreeditWithFakeKeyEvents):
890         (WebKit::InputMethodFilter::handleCommit):
891         (WebKit::InputMethodFilter::handlePreeditStart):
892         (WebKit::InputMethodFilter::handlePreeditChanged):
893         (WebKit::InputMethodFilter::handlePreeditEnd):
894         (WebKit::InputMethodFilter::logHandleKeyboardEventForTesting):
895         (WebKit::InputMethodFilter::logHandleKeyboardEventWithCompositionResultsForTesting):
896         (WebKit::InputMethodFilter::logConfirmCompositionForTesting):
897         (WebKit::InputMethodFilter::logSetPreeditForTesting):
898         * UIProcess/gtk/InputMethodFilter.h: Added.
899         (WebKit::InputMethodFilter::context):
900         (WebKit::InputMethodFilter::setPage):
901         (WebKit::InputMethodFilter::setTestingMode):
902         (WebKit::InputMethodFilter::events):
903
904 2014-10-21  Tim Horton  <timothy_horton@apple.com>
905
906         Quick Look preview bubble has unnecessary controls
907         https://bugs.webkit.org/show_bug.cgi?id=137940
908         <rdar://problem/18731860>
909
910         Reviewed by Simon Fraser.
911
912         * UIProcess/API/mac/WKView.mm:
913         (-[WKView _quickLookURLFromActionMenu:]):
914         Temporarily use more SPI to allow us to hide the preview bubble's controls.
915
916 2014-10-21  Jeff Miller  <jeffm@apple.com>
917
918         Remove const from WKURLRequestRef parameter to WKContextDownloadURLRequest()
919         https://bugs.webkit.org/show_bug.cgi?id=137928
920
921         Reviewed by Darin Adler.
922
923         * UIProcess/API/C/WKContext.cpp:
924         (WKContextDownloadURLRequest):
925         * UIProcess/API/C/WKContext.h:
926
927 2014-10-21  Anders Carlsson  <andersca@apple.com>
928
929         WKRemoteObjectCoder should handle floats
930         https://bugs.webkit.org/show_bug.cgi?id=137926
931         <rdar://problem/18695126>
932
933         Reviewed by Beth Dakin.
934
935         * Shared/API/Cocoa/WKRemoteObjectCoder.mm:
936         (encodeInvocation):
937         (-[WKRemoteObjectEncoder encodeFloat:forKey:]):
938         (decodeInvocationArguments):
939         (-[WKRemoteObjectDecoder decodeFloatForKey:]):
940
941 2014-10-21  Jeff Miller  <jeffm@apple.com>
942
943         WKContext needs to provide an API to resume a download
944         https://bugs.webkit.org/show_bug.cgi?id=137507
945
946         Reviewed by Darin Adler.
947
948         This patch adds WKContextResumeDownload(), which is only supported on the Mac, and requires the
949         resume data from WKDownloadGetResumeData().
950
951         We have to create a sandbox extension for the partially downloaded file in the UI process so the
952         network or web process can resume writing to it.
953
954         * NetworkProcess/NetworkProcess.cpp:
955         (WebKit::NetworkProcess::resumeDownload):
956         Added, calls through to DownloadManager::resumeDownload().
957
958         * NetworkProcess/NetworkProcess.h:
959         Added resumeDownload().
960
961         * NetworkProcess/NetworkProcess.messages.in:
962         Added ResumeDownload message.
963
964         * Shared/Downloads/Download.h:
965         Added resume().
966
967         * Shared/Downloads/DownloadManager.cpp:
968         (WebKit::DownloadManager::resumeDownload):
969         Added. The URL being downloaded is part of the opaque resumeData, so we can't specify it when the
970         Download is constructed.
971
972         * Shared/Downloads/DownloadManager.h:
973         Added resumeDownload().
974
975         * Shared/Downloads/ios/DownloadIOS.mm:
976         (WebKit::Download::resume):
977         Added, not implemented on this platform.
978
979         * Shared/Downloads/mac/DownloadMac.mm:
980         (WebKit::Download::resume):
981         Added. Consumes the sandbox extension, resumes the download, and sets m_request after the
982         NSURLDownload has been created. Note that we already have code to revoke the sandbox extension when
983         the download is finished, canceled, or fails.
984
985         * Shared/Downloads/soup/DownloadSoup.cpp:
986         (WebKit::Download::resume):
987         Added, not implemented on this platform.
988
989         * UIProcess/API/C/WKContext.cpp:
990         (WKContextResumeDownload):
991         Added.
992
993         * UIProcess/API/C/WKContext.h:
994         Added WKContextResumeDownload().
995
996         * UIProcess/WebContext.cpp:
997         (WebKit::WebContext::resumeDownload):
998         Added. Creates a sandbox extension for the existing file and includes it in the message to the
999         network or web process.
1000
1001         * UIProcess/WebContext.h:
1002         Added resumeDownload().
1003
1004         * WebProcess/WebProcess.cpp:
1005         (WebKit::WebProcess::resumeDownload):
1006         Added, calls through to DownloadManager::resumeDownload().
1007
1008         * WebProcess/WebProcess.h:
1009         Added resumeDownload().
1010
1011         * WebProcess/WebProcess.messages.in:
1012         Added ResumeDownload message.
1013
1014 2014-10-20  Michael Catanzaro  <mcatanzaro@igalia.com>
1015
1016         Change the default TLS errors policy to WEBKIT_TLS_ERRORS_POLICY_FAIL
1017         https://bugs.webkit.org/show_bug.cgi?id=137832
1018
1019         Reviewed by Carlos Garcia Campos.
1020
1021         Too many general-purpose browsers that really need this policy
1022         are not selecting it, so let's do so for them.
1023
1024         * UIProcess/API/gtk/WebKitWebContext.cpp:
1025         (createDefaultWebContext):
1026
1027 2014-10-21  Michael Catanzaro  <mcatanzaro@igalia.com>
1028
1029         [SOUP] Disable SSLv3
1030         https://bugs.webkit.org/show_bug.cgi?id=137859
1031
1032         Reviewed by Carlos Garcia Campos.
1033
1034         Set G_TLS_GNUTLS_PRIORITY if unset.
1035
1036         * NetworkProcess/EntryPoint/unix/NetworkProcessMain.cpp:
1037         (main):
1038         * WebProcess/EntryPoint/unix/WebProcessMain.cpp:
1039         (main):
1040
1041 2014-10-20  Chris Dumez  <cdumez@apple.com>
1042
1043         ResourceRequest deserialization unnecessarily calls partitionName() on encoded cache partition
1044         https://bugs.webkit.org/show_bug.cgi?id=137797
1045
1046         Reviewed by Darin Adler.
1047
1048         This patch adds a |needsValidation| argument to
1049         ResourceRequest::setCachePartition() setter so that the caller can
1050         indicate that the partition name is valid (because it was already
1051         processed by partitionName() before). Use this new argument in
1052         ArgumentCoder<ResourceRequest>::decode() to spent a bit less time
1053         deserializing resource requests.
1054
1055         * Shared/WebCoreArgumentCoders.cpp:
1056         (IPC::ArgumentCoder<ResourceRequest>::decode):
1057
1058 2014-10-20  Beth Dakin  <bdakin@apple.com>
1059
1060         Action menu items should have tags
1061         https://bugs.webkit.org/show_bug.cgi?id=137898
1062
1063         Reviewed by Anders Carlsson.
1064
1065         * Shared/API/c/WKActionMenuItemTypes.h: Added.
1066         * UIProcess/API/mac/WKView.mm:
1067         (-[WKView _defaultMenuItemsForLink]):
1068         * WebKit2.xcodeproj/project.pbxproj:
1069
1070 2014-10-20  Beth Dakin  <bdakin@apple.com>
1071
1072         Add support for action menus
1073         https://bugs.webkit.org/show_bug.cgi?id=137891
1074         rdar://problem/18451638
1075         rdar://problem/18694470
1076
1077         Reviewed by Anders Carlsson.
1078
1079         Temporary artwork needed for menu item.
1080         * Resources/OpenInNewWindowTemplate.pdf: Added.
1081         * WebKit2.xcodeproj/project.pbxproj:
1082
1083         Add a preference that defaults to false for action menu support.
1084         * Shared/WebPreferencesDefinitions.h:
1085         * UIProcess/API/C/WKPreferences.cpp:
1086         (WKPreferencesSetActionMenuSupportEnabled):
1087         (WKPreferencesGetActionMenuSupportEnabled):
1088         * UIProcess/API/C/WKPreferencesRefPrivate.h:
1089
1090         New SPI. WebKit clients can implement this method to customize the action menu.
1091         * UIProcess/API/Cocoa/WKViewPrivate.h:
1092
1093         Create the action menu if it is supported.
1094         * UIProcess/API/mac/WKView.mm:
1095         (-[WKView initWithFrame:context:configuration:webView:]):
1096
1097         Methods to implement the default menu actions.
1098         (-[WKView _openURLFromActionMenu:]):
1099         (-[WKView _addToReadingListFromActionMenu:]):
1100         (-[WKView _quickLookURLFromActionMenu:]):
1101
1102         Add action menus support for links. Populate the menu at the right time.
1103         (-[WKView _defaultMenuItemsForLink]):
1104         (-[WKView _defaultMenuItems]):
1105         (-[WKView prepareForMenu:withEvent:]):
1106         (-[WKView _actionMenuItemsForHitTestResult:defaultActionMenuItems:]):
1107
1108         New member variable caches the HitTestResult on mouse move.
1109         * UIProcess/WebPageProxy.cpp:
1110         (WebKit::WebPageProxy::mouseDidMoveOverElement):
1111         * UIProcess/WebPageProxy.h:
1112         (WebKit::WebPageProxy::activeActionMenuHitTestResult):
1113
1114 2014-10-20  Timothy Hatcher  <timothy@apple.com>
1115
1116         Web Inspector: Delay and white area when Web Inspector crashes
1117         https://bugs.webkit.org/show_bug.cgi?id=137230
1118
1119         Reviewed by Anders Carlsson.
1120
1121         * UIProcess/WebInspectorProxy.cpp:
1122         (WebKit::processDidCrash): Added.
1123         (WebKit::WebInspectorProxy::eagerlyCreateInspectorPage): Hook up loader client.
1124
1125 2014-10-20  Joseph Pecoraro  <pecoraro@apple.com>
1126
1127         Web Inspector: Generate all Inspector domains together in JavaScriptCore
1128         https://bugs.webkit.org/show_bug.cgi?id=137748
1129
1130         Reviewed by Brian Burg.
1131
1132         * PlatformGTK.cmake:
1133
1134 2014-10-19  Antti Koivisto  <antti@apple.com>
1135
1136         Avoid unnecessary NSURLResponse construction for QuickLook on iOS
1137         https://bugs.webkit.org/show_bug.cgi?id=137876
1138
1139         Reviewed by Andy Estes.
1140
1141         * WebProcess/Network/WebResourceLoader.cpp:
1142         (WebKit::WebResourceLoader::didReceiveResponse):
1143
1144             Switch to the modified QuickLookHandle interface that does not need NSURLResponse.
1145
1146 2014-10-16  Andy Estes  <aestes@apple.com>
1147
1148         [iOS] Capture WKActionSheetAssistant's interaction with WKContentView in a @protocol
1149         https://bugs.webkit.org/show_bug.cgi?id=137792
1150
1151         Reviewed by Tim Horton.
1152
1153         WKPDFView would like to use WKActionSheetAssistant to show an action sheet when long-pressing a link, but it
1154         can't so long as WKActionSheetAssistant is tightly coupled to WKContentView. Resolve this by factoring
1155         WKActionSheetAssistant's interaction with WKContentView into a new protocol called
1156         WKActionSheetAssistantDelegate and having WKContentView conform to this protocol.
1157
1158         * UIProcess/API/Cocoa/_WKElementAction.mm:
1159         (+[_WKElementAction elementActionWithTitle:actionHandler:]): Changed instances of WKContentView * to id <WKActionSheetAssistantDelegate>.
1160         (+[_WKElementAction elementActionWithType:customTitle:]): Ditto.
1161         (-[_WKElementAction _runActionWithElementInfo:delegate:]): Ditto.
1162         (copyElement): Deleted.
1163         (saveImage): Deleted.
1164         (-[_WKElementAction _runActionWithElementInfo:view:]): Deleted.
1165         * UIProcess/API/Cocoa/_WKElementActionInternal.h:
1166         * UIProcess/ios/WKActionSheet.h:
1167         * UIProcess/ios/WKActionSheet.mm:
1168         (-[WKActionSheet init]): Renamed from initWithView: since WKActionSheet no longer needs to know about a view.
1169         (-[WKActionSheet _didRotateAndLayout]): Called -[WKActionSheetDelegate updatePositionInformation].
1170         (-[WKActionSheet initWithView:]): Deleted.
1171         * UIProcess/ios/WKActionSheetAssistant.h:
1172         * UIProcess/ios/WKActionSheetAssistant.mm:
1173         (-[WKActionSheetAssistant delegate]): Added a getter for the delegate property.
1174         (-[WKActionSheetAssistant setDelegate:]): Added a setter for the delegate property.
1175         (-[WKActionSheetAssistant initWithView:]): Changed argument type from WKContentView * to UIView *.
1176         (-[WKActionSheetAssistant initialPresentationRectInHostViewForSheet]): Returned CGRectZero if there is no delegate.
1177         Otherwise, retrieved positionInformation from the delegate.
1178         (-[WKActionSheetAssistant presentationRectInHostViewForSheet]): Ditto.
1179         (-[WKActionSheetAssistant updatePositionInformation]): Called -[WKActionSheetAssistantDelegate updatePositionInformation].
1180         (-[WKActionSheetAssistant _createSheetWithElementActions:showLinkTitle:]): Returned early if there is no delegate.
1181         Otherwise, retrieved positionInformation from the delegate.
1182         (-[WKActionSheetAssistant showImageSheet]): Ditto.
1183         (-[WKActionSheetAssistant showLinkSheet]): Ditto.
1184         (-[WKActionSheetAssistant showDataDetectorsSheet]): Ditto.
1185         (-[WKActionSheetAssistant cleanupSheet]):
1186         * UIProcess/ios/WKContentViewInteraction.h:
1187         * UIProcess/ios/WKContentViewInteraction.mm:
1188         (-[WKContentView setupInteraction]): Installed self as WKActionSheetAssistant's delegate.
1189         (-[WKContentView updatePositionInformation]): Renamed from _updatePositionInformation.
1190         (-[WKContentView performAction:]): Renamed from _performAction:.
1191         (-[WKContentView openElementAtLocation:]): Called _attemptClickAtLocation:.
1192         (-[WKContentView actionsForElement:defaultActions:]): Called API::UIClient::actionsForElement().
1193         (-[WKContentView startInteractionWithElement:]): Called WebPageProxy::startInteractionWithElementAtPosition().
1194         (-[WKContentView stopInteraction]): Called WebPageProxy::stopInteraction().
1195         (-[WKContentView _updatePositionInformation]): Deleted.
1196         (-[WKContentView _performAction:]): Deleted.
1197
1198 2014-10-20  Carlos Garnacho  <carlosg@gnome.org>
1199
1200         [GTK] Improve zooming gesture positioning
1201         https://bugs.webkit.org/show_bug.cgi?id=137822
1202
1203         Reviewed by Carlos Garcia Campos.
1204
1205         * UIProcess/WebPageProxy.h:
1206         * UIProcess/gtk/GestureController.cpp:
1207         (WebKit::GestureController::ZoomGesture::center):
1208         (WebKit::GestureController::ZoomGesture::begin):
1209         (WebKit::GestureController::ZoomGesture::handleZoom):
1210         (WebKit::GestureController::ZoomGesture::scaleChanged): Calculate
1211         the proper view coordinates for the current offset/scale, based
1212         on the initial gesture center point in document coordinates, and
1213         the current center/scale.
1214         * UIProcess/gtk/GestureController.h:
1215         * UIProcess/gtk/WebPageProxyGtk.cpp:
1216         (WebKit::WebPageProxy::getCenterForZoomGesture): Added. Synchronous
1217         call to retrieve the zoom gesture anchor point, in document coordinates.
1218         * WebProcess/WebPage/WebPage.h:
1219         * WebProcess/WebPage/WebPage.messages.in: Added stub.
1220         * WebProcess/WebPage/gtk/WebPageGtk.cpp:
1221         (WebKit::WebPage::getCenterForZoomGesture): Added. Getter for the
1222         translated coordinates used as the anchor point of the zoom gesture.
1223
1224 2014-10-20  Carlos Garcia Campos  <cgarcia@igalia.com>
1225
1226         [GTK] Remove the factory method from DragAndDropHandler
1227         https://bugs.webkit.org/show_bug.cgi?id=137872
1228
1229         Reviewed by Sergio Villar Senin.
1230
1231         Make the constructor public and use std::make_unique instead.
1232
1233         * UIProcess/API/gtk/WebKitWebViewBase.cpp:
1234         (webkitWebViewBaseDragAndDropHandler):
1235         * UIProcess/gtk/DragAndDropHandler.cpp:
1236         (WebKit::DragAndDropHandler::create): Deleted.
1237         * UIProcess/gtk/DragAndDropHandler.h:
1238
1239 2014-10-20  Carlos Garcia Campos  <cgarcia@igalia.com>
1240
1241         [GTK] Add initial gestures support
1242         https://bugs.webkit.org/show_bug.cgi?id=137812
1243
1244         Reviewed by Sergio Villar Senin.
1245
1246         Now that GTK+ has support for gestures, we can use it to handle
1247         touch events and allow to scroll, zoom and tap with the fingers.
1248
1249         * PlatformGTK.cmake: Add new files to compilation.
1250         * UIProcess/API/gtk/PageClientImpl.cpp:
1251         (WebKit::PageClientImpl::doneWithTouchEvent): When the touch event
1252         hasn't been handled by the web process pass it to the
1253         GestureController and only fallback to pointer emulation when the
1254         GestureController doesn't handle the event.
1255         * UIProcess/API/gtk/WebKitWebViewBase.cpp:
1256         (webkitWebViewBaseTouchEvent): If the GestureController is
1257         currently processing gestures is because the START touch event was
1258         not handled by the web process, so pass any successive touch
1259         events to the GestureController directly.
1260         (webkitWebViewBaseGestureController): Create the GestureController
1261         on demand and return a reference.
1262         * UIProcess/API/gtk/WebKitWebViewBasePrivate.h:
1263         * UIProcess/gtk/GestureController.cpp: Added.
1264         (WebKit::GestureController::create): Create a GestureController.
1265         (WebKit::GestureController::GestureController): Initialize the
1266         Gesture memebers.
1267         (WebKit::GestureController::handleEvent): Pass the event to the gestures.
1268         (WebKit::GestureController::isProcessingGestures): Whether
1269         Gestures are active.
1270         (WebKit::GestureController::Gesture::Gesture): Base class for gestures.
1271         (WebKit::GestureController::Gesture::isActive): Whether the
1272         gesture is active.
1273         (WebKit::GestureController::Gesture::handleEvent): Pass the event
1274         to the GtkGesture to process it.
1275         (WebKit::GestureController::DragGesture::handleDrag): Send a wheel
1276         event corresponding to the drag gesture to the web process.
1277         (WebKit::GestureController::DragGesture::handleTap): Send move,
1278         press and release events corresponding to a tap gesture to the web process.
1279         (WebKit::GestureController::DragGesture::begin): Start a drag
1280         gesture and schedule a timer to discard tap gesture in case of
1281         long press.
1282         (WebKit::GestureController::DragGesture::update): If the actual
1283         drag hasn't started yet, check the drag threshold to decide
1284         whether to start the drag or not. Otherwise call handleDrag() to
1285         send the appropriate events to the web process.
1286         (WebKit::GestureController::DragGesture::end): If the drag gesture
1287         finishes and the drag didn't happen (it wasn't a long press and
1288         drag threshold was not reached), call handleTap() to emulate a
1289         click event.
1290         (WebKit::GestureController::DragGesture::DragGesture): Initialize
1291         the GtkGestureDrag.
1292         (WebKit::GestureController::ZoomGesture::begin): Save the current
1293         page scale factor and the center point of the gesture.
1294         (WebKit::GestureController::ZoomGesture::scaleChanged): Schedule a
1295         page scale change in an idle for the given scale value.
1296         (WebKit::GestureController::ZoomGesture::ZoomGesture): Initialize
1297         the GtkGestureZoom.
1298         * UIProcess/gtk/GestureController.h: Added.
1299
1300 2014-10-19  Chris Dumez  <cdumez@apple.com>
1301
1302         Use is<>() / downcast<>() for all remaining RenderObject subclasses
1303         https://bugs.webkit.org/show_bug.cgi?id=137845
1304
1305         Reviewed by Darin Adler.
1306
1307         Use is<>() / downcast<>() for all remaining RenderObject subclasses and 
1308         clean up the surrounding code.
1309
1310         * WebProcess/Plugins/PluginView.cpp:
1311         (WebKit::PluginView::pluginProcessCrashed):
1312         * WebProcess/WebPage/WebPage.cpp:
1313         (WebKit::WebPage::createPlugin):
1314
1315 2014-10-19  Carlos Garcia Campos  <cgarcia@igalia.com>
1316
1317         [GTK] Move GtkDragAndDropHelper from Platform to WebKit2
1318         https://bugs.webkit.org/show_bug.cgi?id=137422
1319
1320         Reviewed by Martin Robinson.
1321
1322         WebKitWebViewBase is currently the only user of
1323         GtkDragAndDropHelper, that was added to share the code with
1324         WebKit1. Move all the drag and drop logic to a new class
1325         DragAndDropHandler.
1326
1327         * PlatformGTK.cmake: Add new files to compilation.
1328         * UIProcess/API/gtk/PageClientImpl.cpp:
1329         (WebKit::PageClientImpl::startDrag):
1330         * UIProcess/API/gtk/WebKitWebViewBase.cpp:
1331         (webkitWebViewBaseConstructed):
1332         (webkitWebViewBaseDragDataGet):
1333         (webkitWebViewBaseDragEnd):
1334         (webkitWebViewBaseDragDataReceived):
1335         (webkitWebViewBaseDragMotion):
1336         (webkitWebViewBaseDragLeave):
1337         (webkitWebViewBaseDragDrop):
1338         (webkitWebViewBaseDragAndDropHandler):
1339         (dragExitedCallback): Deleted.
1340         (webkitWebViewBaseStartDrag): Deleted.
1341         * UIProcess/API/gtk/WebKitWebViewBasePrivate.h:
1342         * UIProcess/gtk/DragAndDropHandler.cpp: Added.
1343         (WebKit::DragAndDropHandler::create):
1344         (WebKit::DragAndDropHandler::DragAndDropHandler):
1345         (WebKit::DragAndDropHandler::DroppingContext::DroppingContext):
1346         (WebKit::dragOperationToGdkDragActions):
1347         (WebKit::dragOperationToSingleGdkDragAction):
1348         (WebKit::gdkDragActionToDragOperation):
1349         (WebKit::DragAndDropHandler::startDrag):
1350         (WebKit::DragAndDropHandler::fillDragData):
1351         (WebKit::DragAndDropHandler::finishDrag):
1352         (WebKit::DragAndDropHandler::dataObjectForDropData):
1353         (WebKit::DragAndDropHandler::dragEntered):
1354         (WebKit::DragAndDropHandler::requestDragData):
1355         (WebKit::DragAndDropHandler::dragMotion):
1356         (WebKit::DragAndDropHandler::dragLeave):
1357         (WebKit::DragAndDropHandler::drop):
1358         * UIProcess/gtk/DragAndDropHandler.h: Added.
1359
1360 2014-10-18  Dan Bernstein  <mitz@apple.com>
1361
1362         WorkQueue dispatches functions but isn’t a FunctionDispatcher
1363         https://bugs.webkit.org/show_bug.cgi?id=137853
1364
1365         Reviewed by Anders Carlsson.
1366
1367         * Platform/WorkQueue.h: Changed to inherit from FunctionDispatcher.
1368
1369 2014-10-18  Michael Catanzaro  <mcatanzaro@igalia.com>
1370
1371         [GTK] Improve documentation of webkit_web_view_get_tls_info()
1372         https://bugs.webkit.org/show_bug.cgi?id=137852
1373
1374         Reviewed by Martin Robinson.
1375
1376         * UIProcess/API/gtk/WebKitWebView.cpp:
1377
1378 2014-10-17  Chris Dumez  <cdumez@apple.com>
1379
1380         Use is<>() / downcast<>() for RenderBox
1381         https://bugs.webkit.org/show_bug.cgi?id=137804
1382
1383         Reviewed by Andreas Kling.
1384
1385         Use is<>() / downcast<>() for RenderBox and clean up the surrounding
1386         code.
1387
1388         * WebProcess/WebPage/WebPage.cpp:
1389         (WebKit::WebPage::determinePrimarySnapshottedPlugIn):
1390         (WebKit::WebPage::plugInIsPrimarySize):
1391         * WebProcess/WebPage/ios/WebPageIOS.mm:
1392         (WebKit::WebPage::sendTapHighlightForNodeIfNecessary):
1393
1394 2014-10-16  Simon Fraser  <simon.fraser@apple.com>
1395
1396         [iOS] Turn off font autosizing for iOS WebKitTestRunner
1397         https://bugs.webkit.org/show_bug.cgi?id=137806
1398
1399         Reviewed by Sam Weinig.
1400         
1401         Confusingly, WKPreferencesSetTextAutosizingEnabled() does nothing on iOS.
1402         Instead, we have to add WKPreferencesSetMinimumZoomFontSize() and set it to 0
1403         to disable font autosizing.
1404
1405         * UIProcess/API/C/WKPreferences.cpp:
1406         (WKPreferencesSetMinimumZoomFontSize):
1407         (WKPreferencesGetMinimumZoomFontSize):
1408         * UIProcess/API/C/WKPreferencesRefPrivate.h:
1409
1410 2014-10-17  Gyuyoung Kim  <gyuyoung.kim@samsung.com>
1411
1412         [EFL] REGRESSION(r173929): It broke the Web Inspector
1413         https://bugs.webkit.org/show_bug.cgi?id=137522
1414
1415         Reviewed by Csaba Osztrogonác.
1416
1417         r173929 let web inspector use a separate web process. Besides it changed that the inspector is shown
1418         as docking mode by default. However EFL port doesn't support to show web inspector as docking window yet.
1419         This patch is to show web inspector on EFL new window as before. Docking mode should be implemented by
1420         upcoming patch.
1421
1422         * UIProcess/efl/WebInspectorProxyEfl.cpp:
1423         (WebKit::WebInspectorProxy::platformAttach):
1424
1425 2014-10-17  Carlos Garcia Campos  <cgarcia@igalia.com>
1426
1427         [GLIB] Add API to GMainLoopSource to schedule sources after a delay in microseconds
1428         https://bugs.webkit.org/show_bug.cgi?id=137782
1429
1430         Reviewed by Sergio Villar Senin.
1431
1432         * WebProcess/WebPage/gtk/LayerTreeHostGtk.cpp:
1433         (WebKit::LayerTreeHostGtk::layerFlushTimerFired): Use microseconds
1434         instead of milliseconds.
1435
1436 2014-10-17  Carlos Garcia Campos  <cgarcia@igalia.com>
1437
1438         [GTK] Move touch events handling from Platform to WebKit2
1439         https://bugs.webkit.org/show_bug.cgi?id=137735
1440
1441         Reviewed by Sergio Villar Senin.
1442
1443         GtkTouchContextHelper was only used by WebKitWebViewBase, since
1444         it's the only one that can create touch events. The code has been
1445         simplified by processing the events in the view, and the native
1446         touch events are now created with the native event and touch points.
1447
1448         * Shared/NativeWebTouchEvent.h:
1449         (WebKit::NativeWebTouchEvent::touchContext): Deleted.
1450         * Shared/gtk/NativeWebTouchEventGtk.cpp:
1451         (WebKit::NativeWebTouchEvent::NativeWebTouchEvent): Pass touch
1452         points instead of touch context to WebEventFactory::createWebTouchEvent().
1453         * Shared/gtk/WebEventFactory.cpp:
1454         (WebKit::WebEventFactory::createWebTouchEvent): Create the
1455         WebTouchEvent for the given native event and points.
1456         (WebKit::touchPhaseFromEvents): Deleted.
1457         (WebKit::appendTouchEvent): Deleted.
1458         * Shared/gtk/WebEventFactory.h:
1459         * UIProcess/API/gtk/WebKitWebViewBase.cpp:
1460         (appendTouchEvent): Helper function to create a
1461         WebPlatformTouchPoint for the given native event and add it to the
1462         list of touch points.
1463         (webkitWebViewBaseGetTouchPointForEvent): Build the touch point
1464         list for the event.
1465         (webkitWebViewBaseTouchEvent): Process the touch event.
1466         (webkitWebViewBaseDragDataReceived): Deleted.
1467
1468 2014-10-16  Pascal Jacquemart  <p.jacquemart@samsung.com>
1469
1470         Removing CUSTOM_PROTOCOLS guard
1471         https://bugs.webkit.org/show_bug.cgi?id=137741
1472
1473         Reviewed by Benjamin Poulain.
1474
1475         * NetworkProcess/NetworkProcess.cpp:
1476         (WebKit::NetworkProcess::NetworkProcess):
1477         * Shared/Network/CustomProtocols/Cocoa/CustomProtocolManagerCocoa.mm:
1478         * Shared/Network/CustomProtocols/CustomProtocolManager.h:
1479         * Shared/Network/CustomProtocols/CustomProtocolManager.messages.in:
1480         * Shared/Network/CustomProtocols/soup/CustomProtocolManagerImpl.cpp:
1481         * Shared/Network/CustomProtocols/soup/CustomProtocolManagerImpl.h:
1482         * Shared/Network/CustomProtocols/soup/CustomProtocolManagerSoup.cpp:
1483         * Shared/Network/NetworkProcessCreationParameters.cpp:
1484         (WebKit::NetworkProcessCreationParameters::encode):
1485         (WebKit::NetworkProcessCreationParameters::decode):
1486         * Shared/Network/NetworkProcessCreationParameters.h:
1487         * Shared/WebProcessCreationParameters.cpp:
1488         (WebKit::WebProcessCreationParameters::encode):
1489         (WebKit::WebProcessCreationParameters::decode):
1490         * Shared/WebProcessCreationParameters.h:
1491         * UIProcess/API/C/soup/WKAPICastSoup.h:
1492         * UIProcess/API/C/soup/WKSoupCustomProtocolRequestManager.cpp:
1493         (WKSoupCustomProtocolRequestManagerGetTypeID):
1494         (WKSoupCustomProtocolRequestManagerSetClient):
1495         * UIProcess/Network/CustomProtocols/CustomProtocolManagerProxy.h:
1496         * UIProcess/Network/CustomProtocols/CustomProtocolManagerProxy.messages.in:
1497         * UIProcess/Network/CustomProtocols/mac/CustomProtocolManagerProxyMac.mm:
1498         * UIProcess/Network/CustomProtocols/soup/CustomProtocolManagerProxySoup.cpp:
1499         * UIProcess/Network/CustomProtocols/soup/WebSoupCustomProtocolRequestManager.cpp:
1500         * UIProcess/Network/CustomProtocols/soup/WebSoupCustomProtocolRequestManager.h:
1501         * UIProcess/Network/CustomProtocols/soup/WebSoupCustomProtocolRequestManagerClient.cpp:
1502         * UIProcess/Network/CustomProtocols/soup/WebSoupCustomProtocolRequestManagerClient.h:
1503         * UIProcess/Network/NetworkProcessProxy.cpp:
1504         (WebKit::NetworkProcessProxy::NetworkProcessProxy):
1505         * UIProcess/Network/NetworkProcessProxy.h:
1506         * UIProcess/WebContext.cpp:
1507         (WebKit::WebContext::WebContext):
1508         (WebKit::WebContext::unregisterGlobalURLSchemeAsHavingCustomProtocolHandlers):
1509         (WebKit::WebContext::unregisterSchemeForCustomProtocol):
1510         * UIProcess/WebContext.h:
1511         * UIProcess/WebProcessProxy.cpp:
1512         (WebKit::WebProcessProxy::WebProcessProxy):
1513         * UIProcess/WebProcessProxy.h:
1514         * UIProcess/mac/WebContextMac.mm:
1515         (WebKit::WebContext::platformInitializeWebProcess):
1516         (WebKit::WebContext::platformInitializeNetworkProcess):
1517         * WebKit2Prefix.h:
1518         * WebProcess/WebProcess.cpp:
1519         (WebKit::WebProcess::WebProcess):
1520         * WebProcess/soup/WebKitSoupRequestGeneric.cpp:
1521         (webkitSoupRequestGenericSendAsync):
1522         (webkitSoupRequestGenericSendFinish):
1523         * WebProcess/soup/WebKitSoupRequestGeneric.h:
1524
1525 2014-10-16  Simon Fraser  <simon.fraser@apple.com>
1526
1527         Crash under RemoteLayerTreeHost::getLayer() when closing a tab
1528         https://bugs.webkit.org/show_bug.cgi?id=137796
1529         rdar://problem/18547565
1530
1531         Reviewed by Tim Horton.
1532         
1533         CA can call our animation delegate after the RemoteLayerTreeHost has been
1534         destroyed. CAAnimation retains its delegate, so it's safe for us to null out
1535         the WKAnimationDelegate's pointer to the RemoteLayerTreeHost when tearing down
1536         the RemoteLayerTreeHost.
1537
1538         * UIProcess/mac/RemoteLayerTreeHost.mm:
1539         (WebKit::RemoteLayerTreeHost::~RemoteLayerTreeHost):
1540         (WebKit::RemoteLayerTreeHost::animationDidEnd):
1541         * WebProcess/WebPage/mac/PlatformCAAnimationRemote.mm:
1542         (-[WKAnimationDelegate invalidate]):
1543         (-[WKAnimationDelegate animationDidStart:]):
1544         (-[WKAnimationDelegate animationDidStop:finished:]):
1545
1546 2014-10-16  Tim Horton  <timothy_horton@apple.com>
1547
1548         Implement selection services menu for Legacy WebKit
1549         https://bugs.webkit.org/show_bug.cgi?id=137582
1550         <rdar://problem/18604241>
1551
1552         Reviewed by Brady Eidson.
1553
1554         * UIProcess/mac/WebContextMenuProxyMac.mm:
1555         (-[WKSharingServicePickerDelegate sharingService:didShareItems:]):
1556         Add a note that we should transition to using replaceSelectionWithAttributedString.
1557
1558         * WebProcess/WebPage/mac/WebPageMac.mm:
1559         (WebKit::WebPage::handleSelectionServiceClick):
1560         Allow editor services in editable-but-not-rich-text areas, just like in WebKit1.
1561
1562 2014-10-16  Tim Horton  <timothy_horton@apple.com>
1563
1564         Various crashes in ViewGestureControllerIOS when closing a tab while a swipe gesture is in progress
1565         https://bugs.webkit.org/show_bug.cgi?id=137770
1566         <rdar://problem/17916459>
1567
1568         Reviewed by Dan Bernstein.
1569
1570         When tearing down a WKWebView in the middle of a swipe gesture, a variety of
1571         UI process crashes were observed. First, two uses of potentially deleted objects
1572         (the WebBackForwardListItem and ViewGestureController), which were fixed by
1573         extending the object's lifetime and checking for its liveness, respectively.
1574         Second, a potential null-deref of DrawingArea if the timing of endSwipeGesture
1575         vs. page teardown was such that DrawingArea was null but everything else was in line.
1576         Lastly, another case of messaging a potentially deleted object (specifically,
1577         the _UIViewControllerTransitionContext's animator) in a callback from CA, which
1578         was fixed by nulling out the animator (and a few other properties) when tearing
1579         down the ViewGestureController.
1580
1581         * UIProcess/ios/ViewGestureControllerIOS.mm:
1582         (-[WKSwipeTransitionController invalidate]):
1583         Clear the soon-to-be-invalid ViewGestureController pointer.
1584
1585         (WebKit::ViewGestureController::~ViewGestureController):
1586         Call [WKSwipeTransitionController invalidate] upon destruction.
1587         Clear our transition context's interactor and animator, and inform it that
1588         the transition is not in flight. This avoids a crash when calling back
1589         to the already-destroyed animator later.
1590
1591         (WebKit::ViewGestureController::beginSwipeGesture):
1592         Keep a reference to the target WebBackForwardListItem; this avoids
1593         it being deleted between here and the transition completion block firing.
1594
1595         Look up the ViewGestureController by pageID, just like we do in endSwipeGesture,
1596         to avoid situations where the callback fires after the WKWebView/ViewGestureController
1597         have gone away.
1598
1599         Hold on to our _UIViewControllerOneToOneTransitionContext, so that we can do the
1600         aforementioned clearing upon deallocation.
1601
1602         (WebKit::ViewGestureController::endSwipeGesture):
1603         Null check the DrawingArea. If it is null, instead of doing our normal delayed logic
1604         for swipe snapshot teardown, just put things back together immediately.
1605
1606         (WebKit::ViewGestureController::removeSwipeSnapshot):
1607         Clear m_swipeTransitionContext.
1608
1609 2014-10-16  Antti Koivisto  <antti@apple.com>
1610
1611         REGRESSION (r173356): Downloading a disk image appends ".txt" to it
1612         https://bugs.webkit.org/show_bug.cgi?id=137493
1613         <rdar://problem/18321947>
1614
1615         Reviewed by Alexey Proskuryakov.
1616
1617         * Shared/Downloads/ios/DownloadIOS.mm:
1618         (WebKit::Download::startWithHandle):
1619         * Shared/Downloads/mac/DownloadMac.mm:
1620         (WebKit::Download::startWithHandle):
1621
1622             It appears that the synthesized NS/CFURLResponse fails to serialize the suggested filename correctly
1623             unless it has been accessed first.
1624
1625 2014-10-15  Dan Bernstein  <mitz@apple.com>
1626
1627         [Cocoa] "Plug-in will handle load" error isn't declared in the modern API
1628         https://bugs.webkit.org/show_bug.cgi?id=137747
1629
1630         Reviewed by Anders Carlsson.
1631
1632         * UIProcess/API/Cocoa/WKError.mm: Define _WKLegacyErrorDomain.
1633         * UIProcess/API/Cocoa/WKErrorInternal.h: Changed to import WKErrorPrivate.h.
1634         * UIProcess/API/Cocoa/WKErrorPrivate.h: Added. Declares _WKLegacyErrorDomain
1635         and _WKLegacyErrorPlugInWillHandleLoad.
1636         * WebKit2.xcodeproj/project.pbxproj: Added new private header.
1637
1638 2014-10-15  Chris Dumez  <cdumez@apple.com>
1639
1640         Use is<>() / downcast<>() for TransformOperation subclasses
1641         https://bugs.webkit.org/show_bug.cgi?id=137731
1642
1643         Reviewed by Darin Adler.
1644
1645         Use is<>() / downcast<>() for TransformOperation subclasses and clean
1646         up the surrounding code.
1647
1648         * Shared/CoordinatedGraphics/CoordinatedGraphicsArgumentCoders.cpp:
1649         (IPC::ArgumentCoder<TransformOperations>::encode):
1650
1651 2014-10-15  Alexey Proskuryakov  <ap@apple.com>
1652
1653         [Mac] Allow some Kerberos related paths in sandbox
1654         https://bugs.webkit.org/show_bug.cgi?id=137666
1655         rdar://problem/17965010
1656
1657         Reviewed by Darin Adler.
1658
1659         * NetworkProcess/mac/com.apple.WebKit.NetworkProcess.sb.in:
1660         * WebProcess/com.apple.WebProcess.sb.in:
1661
1662 2014-10-15  Alexey Proskuryakov  <ap@apple.com>
1663
1664         [Mac] Allow plug-ins to read managed preferences
1665         https://bugs.webkit.org/show_bug.cgi?id=137665
1666         <rdar://problem/18255601>
1667
1668         Reviewed by Darin Adler.
1669
1670         * Resources/PlugInSandboxProfiles/com.apple.WebKit.plugin-common.sb:
1671
1672 2014-10-14  Joonghun Park  <jh718.park@samsung.com>
1673
1674         [WK2][EFL] Fix the problem that threads created by a DispatchQueueEfl are not destroyed
1675         even after the DispatchQueueEfl has been destructed
1676         https://bugs.webkit.org/show_bug.cgi?id=137195
1677
1678         Reviewed by Gyuyoung Kim.
1679
1680         Linux and Unix System's pthreads are created in joinable state by default.
1681         If threads aren't destructed explicitly, it will be still live
1682         until process which created the thread is dead.
1683         Besides it may cause out of capacity range of thread creation in a process.
1684         It is one of hidden defects.
1685         This patch calls detachThread() to detach thread immediately after it is created.
1686         So the thread can be destroyed as soon as the thread's ThreadContext::function()
1687         returns.
1688
1689         * Platform/efl/DispatchQueueEfl.cpp:
1690         (DispatchQueue::ThreadContext::start):
1691
1692 2014-10-14  Chris Dumez  <cdumez@apple.com>
1693
1694         Use is<>() / downcast<>() for PlatformCAAnimation subclasses
1695         https://bugs.webkit.org/show_bug.cgi?id=137722
1696
1697         Reviewed by Simon Fraser.
1698
1699         Use is<>() / downcast<>() for PlatformCAAnimation subclasses and clean
1700         up the surrounding code.
1701
1702         * WebProcess/WebPage/mac/PlatformCAAnimationRemote.h:
1703         * WebProcess/WebPage/mac/PlatformCAAnimationRemote.mm:
1704         (WebKit::PlatformCAAnimationRemote::copy):
1705         (WebKit::PlatformCAAnimationRemote::copyTimingFunctionFrom):
1706         (WebKit::PlatformCAAnimationRemote::copyFromValueFrom):
1707         (WebKit::PlatformCAAnimationRemote::copyToValueFrom):
1708         (WebKit::PlatformCAAnimationRemote::copyValuesFrom):
1709         (WebKit::PlatformCAAnimationRemote::copyKeyTimesFrom):
1710         (WebKit::PlatformCAAnimationRemote::copyTimingFunctionsFrom):
1711         * WebProcess/WebPage/mac/PlatformCALayerRemote.cpp:
1712         (WebKit::PlatformCALayerRemote::addAnimationForKey):
1713         (WebKit::PlatformCALayerRemote::animationStarted):
1714         * WebProcess/WebPage/mac/PlatformCALayerRemote.h:
1715         * WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.mm:
1716         (WebKit::TiledCoreAnimationDrawingArea::commitTransientZoom):
1717
1718 2014-10-14  Alexey Proskuryakov  <ap@apple.com>
1719
1720         REGRESSION (r165356): Issues with Japanese text input
1721         https://bugs.webkit.org/show_bug.cgi?id=137719
1722         rdar://problem/18431952
1723         rdar://problem/18483741
1724
1725         Reviewed by Darin Adler.
1726
1727         * WebProcess/WebPage/WebPage.cpp: (WebKit::WebPage::didChangeSelection):
1728         In sync code path, ensure consistent message delivery order by adding
1729         a DispatchMessageEvenWhenWaitingForSyncReply flag. This way, delayed
1730         EditorStateChanged messages won't confuse UI process.
1731
1732 2014-10-14  Anders Carlsson  <andersca@apple.com>
1733
1734         Hide the find indicator when starting a swipe
1735         https://bugs.webkit.org/show_bug.cgi?id=137711
1736
1737         Reviewed by Tim Horton.
1738
1739         * UIProcess/mac/PageClientImpl.mm:
1740         (WebKit::PageClientImpl::navigationGestureDidBegin):
1741
1742 2014-10-14  Chris Dumez  <cdumez@apple.com>
1743
1744         Use is<>() / downcast<>() for RenderImage
1745         https://bugs.webkit.org/show_bug.cgi?id=137683
1746
1747         Reviewed by Mihnea Ovidenie.
1748
1749         Use is<>() / downcast<>() for RenderImage.
1750
1751         * WebProcess/WebCoreSupport/mac/WebDragClientMac.mm:
1752         (WebKit::cachedImage):
1753         * WebProcess/WebPage/ios/WebPageIOS.mm:
1754         (WebKit::WebPage::performActionOnElement):
1755
1756 2014-10-13  Carlos Garcia Campos  <cgarcia@igalia.com>
1757
1758         [GTK][CMake] Non-ninja build is broken since r174422
1759         https://bugs.webkit.org/show_bug.cgi?id=137656
1760
1761         Reviewed by Philippe Normand.
1762
1763         Make WebKit2-forwarding-headers depend only on static,
1764         non-generated sources.
1765
1766         * CMakeLists.txt:
1767         * PlatformGTK.cmake:
1768
1769 2014-10-13  Chris Dumez  <cdumez@apple.com>
1770
1771         Use is<>() / downcast<>() for PlatformCALayer subclasses
1772         https://bugs.webkit.org/show_bug.cgi?id=137661
1773
1774         Reviewed by Simon Fraser.
1775
1776         Use is<>() / downcast<>() for PlatformCALayer subclasses and clean up 
1777         the surrounding code.
1778
1779         * WebProcess/WebPage/mac/PlatformCALayerRemote.cpp:
1780         (WebKit::PlatformCALayerRemote::~PlatformCALayerRemote):
1781         (WebKit::PlatformCALayerRemote::updateClonedLayerProperties):
1782         (WebKit::PlatformCALayerRemote::recursiveBuildTransaction):
1783         (WebKit::PlatformCALayerRemote::setSublayers):
1784         (WebKit::PlatformCALayerRemote::appendSublayer):
1785         (WebKit::PlatformCALayerRemote::insertSublayer):
1786         (WebKit::PlatformCALayerRemote::replaceSublayer):
1787         (WebKit::PlatformCALayerRemote::adoptSublayers):
1788         (WebKit::PlatformCALayerRemote::setMask):
1789         (WebKit::PlatformCALayerRemote::copyFiltersFrom):
1790         * WebProcess/WebPage/mac/PlatformCALayerRemote.h:
1791         * WebProcess/WebPage/mac/PlatformCALayerRemoteCustom.h:
1792         * WebProcess/WebPage/mac/RemoteLayerTreeContext.mm:
1793         (WebKit::RemoteLayerTreeContext::buildTransaction):
1794
1795 2014-10-13  Chris Dumez  <cdumez@apple.com>
1796
1797         Use is<>() / downcast<>() for Filter / FilterOperation subclasses
1798         https://bugs.webkit.org/show_bug.cgi?id=137644
1799
1800         Reviewed by Darin Adler.
1801
1802         Use is<>() / downcast<>() for Filter / FilterOperation subclasses.
1803
1804         * Shared/CoordinatedGraphics/CoordinatedGraphicsArgumentCoders.cpp:
1805         (IPC::ArgumentCoder<WebCore::FilterOperations>::encode):
1806         * Shared/WebCoreArgumentCoders.cpp:
1807         (IPC::ArgumentCoder<FilterOperation>::encode):
1808         * Shared/mac/RemoteLayerTreeTransaction.mm:
1809         (WebKit::RemoteLayerTreeTextStream::operator<<):
1810
1811 2014-10-12  Sergio Villar Senin  <svillar@igalia.com>
1812
1813         [SOUP] [WK2] WebProcess and NetworkProcess initialization clears cache contents
1814         https://bugs.webkit.org/show_bug.cgi?id=137489
1815
1816         Reviewed by Carlos Garcia Campos.
1817
1818         Temporarily set the SoupCache's maximum size to a huge value
1819         before calling soup_cache_load() so that the cache is not shrinked
1820         to the default value.
1821
1822         * NetworkProcess/soup/NetworkProcessSoup.cpp:
1823         (WebKit::NetworkProcess::platformInitializeNetworkProcess):
1824         * WebProcess/soup/WebProcessSoup.cpp:
1825         (WebKit::WebProcess::platformInitializeWebProcess):
1826
1827 2014-10-12  Ryuan Choi  <ryuan.choi@gmail.com>
1828
1829         [EFL] Introduce EWebKit_Extension
1830         https://bugs.webkit.org/show_bug.cgi?id=134921
1831
1832         Reviewed by Gyuyoung Kim.
1833
1834         EWebKit2 does not provide the functionality to extend WebProcess.
1835         Although there is ewk_context_new_with_injected_bundle_path() in ewebkit2 APIs,
1836         application developers can not make bundle object without touching WK APIs
1837         which ewebkit2 does not expose.
1838
1839         This patch introduces EWebKit_Extension, basic structure for the extension of WebProcess.
1840
1841         * PlatformEfl.cmake:
1842         Added files for the EWebKit_Extension and install them properly.
1843         * UIProcess/API/efl/ewk_context.cpp:
1844         (EwkContext::EwkContext):
1845         (bundlePathForExtension):
1846         (EwkContext::create):
1847         (EwkContext::getInjectedBundleInitializationUserData):
1848         (EwkContext::setMessageFromInjectedBundleCallback):
1849         (ewk_context_new_with_extensions_path):
1850         Deleted because ewebkit2 does not have a way to make injected bundle.
1851         Instead, Ewk_Extension will cover the same functionalities.
1852         (ewk_context_new_with_injected_bundle_path): Deleted.
1853         * UIProcess/API/efl/ewk_context.h:
1854         * UIProcess/API/efl/ewk_context_private.h:
1855         (EwkContext::extensionsPath):
1856         * UIProcess/API/efl/tests/InjectedBundle/injected_bundle_sample.cpp: Removed.
1857         * UIProcess/API/efl/tests/UnitTestUtils/EWK2UnitTestEnvironment.cpp:
1858         (EWK2UnitTest::EWK2UnitTestEnvironment::extensionSample):
1859         (EWK2UnitTest::EWK2UnitTestEnvironment::injectedBundleSample): Renamed injectedBundleSample to extensionSample.
1860         * UIProcess/API/efl/tests/UnitTestUtils/EWK2UnitTestEnvironment.h:
1861         * UIProcess/API/efl/tests/extensions/extension_sample.cpp: Copied from Source/WebKit2/UIProcess/API/efl/tests/InjectedBundle/injected_bundle_sample.cpp.
1862         * UIProcess/API/efl/tests/test_ewk2_context.cpp: Renamed ewk_context_new_with_injected_bundle_path to ewk_context_new_with_extensions_path.
1863         (TEST_F):
1864         * WebProcess/InjectedBundle/API/efl/EWebKit_Extension.h: Added.
1865         * WebProcess/InjectedBundle/API/efl/ewk_extension.cpp: Added.
1866         (EwkExtension::append):
1867         (EwkExtension::remove):
1868         (ewk_extension_client_add):
1869         (ewk_extension_client_del):
1870         * WebProcess/InjectedBundle/API/efl/ewk_extension.h: Added.
1871         * WebProcess/InjectedBundle/API/efl/ewk_extension_private.h: Added.
1872         (EwkExtension::EwkExtension):
1873         (EwkExtension::~EwkExtension):
1874         * WebProcess/efl/ExtensionManagerEfl.cpp: Added.
1875         (WebKit::ExtensionManagerEfl::shared):
1876         (WebKit::ExtensionManagerEfl::ExtensionManagerEfl):
1877         (WebKit::ExtensionManagerEfl::initialize):
1878         * WebProcess/efl/ExtensionManagerEfl.h: Added.
1879         * WebProcess/efl/WebInjectedBundleMainEfl.cpp: Added.
1880         (WKBundleInitialize):
1881         * efl/ewebkit2-extension.pc.in: Added.
1882
1883 2014-10-10  Chris Dumez  <cdumez@apple.com>
1884
1885         Use is<>() / downcast<>() for Image subclasses
1886         https://bugs.webkit.org/show_bug.cgi?id=137625
1887
1888         Reviewed by Andreas Kling.
1889
1890         Use is<>() / downcast<>() for Image subclasses.
1891
1892         * WebProcess/Plugins/PluginView.cpp:
1893         (WebKit::PluginView::pluginSnapshotTimerFired):
1894
1895 2014-10-10  Chris Dumez  <cdumez@apple.com>
1896
1897         Use is<>() / downcast<>() for GraphicsLayer subclasses
1898         https://bugs.webkit.org/show_bug.cgi?id=137595
1899
1900         Reviewed by Darin Adler.
1901
1902         Use is<>() / downcast<>() for GraphicsLayer subclasses and clean up the
1903         surrounding code.
1904
1905         * WebProcess/WebPage/mac/GraphicsLayerCARemote.h:
1906         * WebProcess/WebPage/mac/RemoteLayerTreeDrawingArea.mm:
1907         (WebKit::RemoteLayerTreeDrawingArea::flushLayers):
1908         * WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.mm:
1909         (WebKit::TiledCoreAnimationDrawingArea::layerForTransientZoom):
1910         (WebKit::TiledCoreAnimationDrawingArea::shadowLayerForTransientZoom):
1911
1912 2014-10-10  Pascal Jacquemart  <p.jacquemart@samsung.com>
1913
1914         Fix debug build on EFL after r174584
1915         https://bugs.webkit.org/show_bug.cgi?id=137613
1916
1917         Reviewed by Christophe Dumez.
1918
1919         * UIProcess/efl/RequestManagerClientEfl.cpp:
1920         (WebKit::RequestManagerClientEfl::RequestManagerClientEfl):
1921
1922 2014-10-10  Chris Dumez  <cdumez@apple.com>
1923
1924         Use is<>() / downcast<>() for RenderBoxModelObject
1925         https://bugs.webkit.org/show_bug.cgi?id=137587
1926
1927         Reviewed by Mihnea Ovidenie.
1928
1929         Use is<>() / downcast<>() for RenderBoxModelObject and clean up the
1930         surrounding code.
1931
1932         * WebProcess/Plugins/PluginView.cpp:
1933         (WebKit::PluginView::renderer):
1934         (WebKit::PluginView::invalidateRect):
1935
1936 2014-10-10  Pascal Jacquemart  <p.jacquemart@samsung.com>
1937
1938         [SOUP] Remove custom URI schemes implementation
1939         https://bugs.webkit.org/show_bug.cgi?id=128169
1940
1941         Reviewed by Carlos Garcia Campos.
1942
1943         * Shared/WebProcessCreationParameters.cpp:
1944         (WebKit::WebProcessCreationParameters::encode):
1945         (WebKit::WebProcessCreationParameters::decode):
1946         * Shared/WebProcessCreationParameters.h:
1947         * UIProcess/API/C/soup/WKAPICastSoup.h:
1948         * UIProcess/API/C/soup/WKContextSoup.cpp: Removed.
1949         * UIProcess/API/C/soup/WKSoupRequestManager.cpp: Removed.
1950         * UIProcess/WebContext.cpp:
1951         (WebKit::WebContext::WebContext):
1952         * UIProcess/WebPageProxy.cpp:
1953         (WebKit::WebPageProxy::didReceiveURIRequest): Deleted.
1954         * UIProcess/WebPageProxy.h:
1955         * UIProcess/WebPageProxy.messages.in:
1956         * UIProcess/soup/WebSoupRequestManagerClient.cpp: Removed.
1957         * UIProcess/soup/WebSoupRequestManagerProxy.cpp: Removed.
1958         * UIProcess/soup/WebSoupRequestManagerProxy.messages.in: Removed.
1959         * WebProcess/WebProcess.cpp:
1960         (WebKit::WebProcess::WebProcess):
1961         * WebProcess/soup/WebKitSoupRequestGeneric.cpp:
1962         (webkitSoupRequestGenericSendAsync):
1963         (webkitSoupRequestGenericSendFinish):
1964         * WebProcess/soup/WebProcessSoup.cpp:
1965         (WebKit::WebProcess::platformInitializeWebProcess):
1966         * WebProcess/soup/WebSoupRequestManager.cpp: Removed.
1967         * WebProcess/soup/WebSoupRequestManager.messages.in: Removed.
1968
1969 2014-10-09  Dean Jackson  <dino@apple.com>
1970
1971         Remove ENABLE_CSS3_CONDITIONAL_RULES
1972         https://bugs.webkit.org/show_bug.cgi?id=137571
1973
1974         Reviewed by Simon Fraser.
1975
1976         * Configurations/FeatureDefines.xcconfig:
1977
1978 2014-10-09  Tim Horton  <timothy_horton@apple.com>
1979
1980         Move ServicesOverlayController to WebCore
1981         https://bugs.webkit.org/show_bug.cgi?id=137416
1982         <rdar://problem/18546283>
1983
1984         Reviewed by Anders Carlsson.
1985
1986         * Platform/Logging.h:
1987         Move Services logging channel to WebCore.
1988
1989         * WebKit2.xcodeproj/project.pbxproj:
1990         * WebProcess/WebCoreSupport/WebChromeClient.cpp:
1991         (WebKit::WebChromeClient::handleTelephoneNumberClick):
1992         (WebKit::WebChromeClient::handleSelectionServiceClick):
1993         (WebKit::WebChromeClient::hasRelevantSelectionServices):
1994         Implement services-related ChromeClient callbacks.
1995         Clicks are forwarded to WebPageMac where they do what they used to;
1996         hasRelevantSelectionServices is implemented as it was when it lived
1997         inside ServicesOverlayController.
1998
1999         * WebProcess/WebCoreSupport/WebChromeClient.h:
2000         * WebProcess/WebCoreSupport/WebEditorClient.cpp:
2001         (WebKit::WebEditorClient::selectedTelephoneNumberRangesChanged): Deleted.
2002         (WebKit::WebEditorClient::selectionRectsDidChange): Deleted.
2003         * WebProcess/WebCoreSupport/WebEditorClient.h:
2004         Remove WebEditorClient overrides for now-removed functions.
2005
2006         * WebProcess/WebPage/WebPage.cpp:
2007         (WebKit::WebPage::WebPage):
2008         (WebKit::WebPage::updatePreferences):
2009         Forward serviceControlsEnabled setting to WebCore.
2010
2011         (WebKit::WebPage::servicesOverlayController): Deleted.
2012         * WebProcess/WebPage/WebPage.h:
2013         (WebKit::WebPage::serviceControlsEnabled): Deleted.
2014
2015 2014-10-09  Andy Estes  <aestes@apple.com>
2016
2017         [iOS] Crash in CFURLDownloadClient.didFail if the download has a null resumeData
2018         https://bugs.webkit.org/show_bug.cgi?id=137551
2019
2020         Reviewed by David Kilzer.
2021
2022         CFDataGetBytePtr() and CFDataGetLength() crash if passed a null value.
2023
2024         * Shared/Downloads/ios/DownloadIOS.mm:
2025         (WebKit::setUpDownloadClient):
2026
2027 2014-10-09  Carlos Garcia Campos  <cgarcia@igalia.com>
2028
2029         [X11] Plugin process crashes in NetscapePlugin::platformPostInitialize()
2030         https://bugs.webkit.org/show_bug.cgi?id=137426
2031
2032         Reviewed by Darin Adler.
2033
2034         For some reason flash crashes when NPP_GetValue is called with
2035         NPPVpluginCancelSrcStream, but only in windowed mode. Not calling
2036         NPP_GetValue and unconditionally loading the source URL in the
2037         browser fixes the crash and plugins work normally. We can handle
2038         this particular case with a new quirk.
2039
2040         * Shared/Plugins/Netscape/x11/NetscapePluginModuleX11.cpp:
2041         (WebKit::NetscapePluginModule::determineQuirks): Add
2042         DoNotCancelSrcStreamInWindowedMode quirk if it's flash plugin.
2043         * Shared/Plugins/PluginQuirks.h: Add
2044         DoNotCancelSrcStreamInWindowedMode quirk.
2045         * WebProcess/Plugins/Netscape/NetscapePlugin.cpp:
2046         (WebKit::NetscapePlugin::shouldLoadSrcURL): Return early if plugin
2047         is windowed and DoNotCancelSrcStreamInWindowedMode quirk is present.
2048
2049 2014-10-09  Chris Dumez  <cdumez@apple.com>
2050
2051         Use is<>() / downcast<>() for Widget subclasses
2052         https://bugs.webkit.org/show_bug.cgi?id=137549
2053
2054         Reviewed by Darin Adler.
2055
2056         Use is<>() / downcast<>() for Widget subclasses and clean up the
2057         surrounding code.
2058
2059         * Shared/WebRenderObject.cpp:
2060         (WebKit::WebRenderObject::WebRenderObject):
2061
2062 2014-10-08  Carlos Garcia Campos  <cgarcia@igalia.com>
2063
2064         [GTK] Use the PageLoadState observer also to monitor title and estimated load progress
2065         https://bugs.webkit.org/show_bug.cgi?id=136997
2066
2067         Reviewed by Gustavo Noronha Silva.
2068
2069         * UIProcess/API/gtk/WebKitLoaderClient.cpp:
2070         (attachLoaderClientToView): Remove implementation of
2071         didReceiveTitleForFrame, didStartProgress, didChangeProgress and
2072         didFinishProgress.
2073         (didReceiveTitleForFrame): Deleted.
2074         (didChangeProgress): Deleted.
2075         * UIProcess/API/gtk/WebKitWebView.cpp:
2076         (webkit_web_view_get_estimated_load_progress): Return the value
2077         directly from the PageLoadState object, since we don't need to
2078         cache the value anymore.
2079         (webkitWebViewSetTitle): Deleted.
2080         (webkitWebViewSetEstimatedLoadProgress): Deleted.
2081         * UIProcess/API/gtk/WebKitWebViewPrivate.h:
2082
2083 2014-10-08  Carlos Garcia Campos  <cgarcia@igalia.com>
2084
2085         Race condition with WebKitWebView:is-loading after starting page load
2086         https://bugs.webkit.org/show_bug.cgi?id=136692
2087
2088         Reviewed by Gustavo Noronha Silva.
2089
2090         Use PageLoadState::Observer to update both is-loading and uri
2091         properties, instead of manually update them. This ensures that our
2092         web view is always in sync with the WebPageProxy so that
2093         webkit_web_view_is_loading() returns true right after requesting
2094         any load. We still need to manually set the is-loading property
2095         only in the case where we delay the emission of the load-changed
2096         signals when waiting for the main resource. The bahaviour is a bit
2097         different but still consistent with what our API documentation says.
2098
2099         * UIProcess/API/gtk/WebKitLoaderClient.cpp:
2100         (attachLoaderClientToView): Remove
2101         didSameDocumentNavigationForFrame implementation, since we are
2102         already notified about the URL change by the PageLoadState::Observer.
2103         (didSameDocumentNavigationForFrame): Deleted.
2104         * UIProcess/API/gtk/WebKitWebView.cpp:
2105         (webkitWebViewSetIsLoading): No longer update the URI when
2106         changing the is-loading property.
2107         (webkitWebViewConstructed): Crate a PageLoadStateObserver and add
2108         it to the PageLoadState.
2109         (webkitWebViewDispose): Remove the PageLoadStateObserver from the PageLoadState.
2110         (webkitWebViewEmitLoadChanged): Add isDelayedEvent parameter to
2111         update the is-loading property accordingly when emitting the
2112         delayed events.
2113         (webkitWebViewEmitDelayedLoadEvents): Pass true as isDelayedEvent
2114         parameter of webkitWebViewEmitLoadChanged().
2115         (webkitWebViewLoadChanged): Pass false as isDelayedEvent parameter
2116         of webkitWebViewEmitLoadChanged().
2117         (webkitWebViewLoadFailed):
2118         (webkitWebViewLoadFailedWithTLSErrors):
2119         (webkitWebViewUpdateURI): Deleted.
2120         * UIProcess/API/gtk/WebKitWebViewPrivate.h:
2121
2122 2014-10-08  Christophe Dumez  <cdumez@apple.com>
2123
2124         Use is<>() / downcast<>() for RenderBlock objects
2125         https://bugs.webkit.org/show_bug.cgi?id=137512
2126
2127         Reviewed by Darin Adler.
2128
2129         Use is<>() / downcast<>() for RenderBlock objects and clean up the 
2130         surrounding code.
2131
2132         * WebProcess/WebPage/ios/WebPageIOS.mm:
2133         (WebKit::WebPage::rangeForWebSelectionAtPosition):
2134         (WebKit::WebPage::contractedRangeFromHandle):
2135
2136 2014-10-08  Ada Chan  <adachan@apple.com>
2137
2138         Implement WKPageIsPlayingAudio().
2139         https://bugs.webkit.org/show_bug.cgi?id=137048
2140
2141         Reviewed by Darin Adler.
2142
2143         * UIProcess/API/C/WKPage.cpp:
2144         (WKPageIsPlayingAudio):
2145
2146 2014-10-08  Gyuyoung Kim  <gyuyoung.kim@samsung.com>
2147
2148         [EFL][CoordinatedGraphics] All EFL layout tests are broken since r174231
2149         https://bugs.webkit.org/show_bug.cgi?id=137443
2150
2151         Reviewed by Zoltan Herczeg.
2152
2153         EFL layout test and MiniBrowser have broken since r174231. r174231 was to move PageOverlay implementation
2154         from WebKit2 to WebCore with lazy initializing of PageOverlayController. It caused all EFL layout tests
2155         crash and build break. To restore EFL layout test, this patch sets viewOverlayRootLayer through
2156         attachViewOverlayGraphicsLayer() as mac port's one in r174231.
2157
2158         * WebProcess/WebPage/CoordinatedGraphics/CoordinatedDrawingArea.cpp:
2159         (WebKit::CoordinatedDrawingArea::attachViewOverlayGraphicsLayer):
2160         * WebProcess/WebPage/CoordinatedGraphics/CoordinatedDrawingArea.h:
2161         * WebProcess/WebPage/CoordinatedGraphics/CoordinatedLayerTreeHost.cpp:
2162         (WebKit::CoordinatedLayerTreeHost::CoordinatedLayerTreeHost):
2163         (WebKit::CoordinatedLayerTreeHost::updateRootLayers):
2164         (WebKit::CoordinatedLayerTreeHost::setViewOverlayRootLayer):
2165         (WebKit::CoordinatedLayerTreeHost::setRootCompositingLayer):
2166         (WebKit::CoordinatedLayerTreeHost::didFlushRootLayer):
2167         * WebProcess/WebPage/CoordinatedGraphics/CoordinatedLayerTreeHost.h:
2168
2169 2014-10-08  Commit Queue  <commit-queue@webkit.org>
2170
2171         Unreviewed, rolling out r174335.
2172         https://bugs.webkit.org/show_bug.cgi?id=137515
2173
2174         It broke EFL layout test totally (Requested by gyuyoung on
2175         #webkit).
2176
2177         Reverted changeset:
2178
2179         "[EFL] Introduce EWebKit_Extension"
2180         https://bugs.webkit.org/show_bug.cgi?id=134921
2181         http://trac.webkit.org/changeset/174335
2182
2183 2014-10-08  Carlos Garcia Campos  <cgarcia@igalia.com>
2184
2185         [GTK] Make forwarding headers generation depend on source code
2186         https://bugs.webkit.org/show_bug.cgi?id=137394
2187
2188         Reviewed by Philippe Normand.
2189
2190         Only run generate-forwarding-headers.pl when source code changes
2191         and use a different target for the symlinks.
2192
2193         * PlatformGTK.cmake:
2194
2195 2014-10-07  Pascal Jacquemart  <p.jacquemart@samsung.com>
2196
2197         [EFL] Enable custom URI schemes with CustomProtocols
2198         https://bugs.webkit.org/show_bug.cgi?id=128177
2199
2200         Reviewed by Gyuyoung Kim.
2201
2202         Fixing ewk_context_url_scheme_register() ewebkit2 API
2203         rely on r162449 - CustomProtocols implementation from Carlos Garcia Campos
2204
2205         * PlatformEfl.cmake:
2206         * UIProcess/API/efl/ewk_context.h:
2207         * UIProcess/API/efl/ewk_url_scheme_request.cpp:
2208         (EwkUrlSchemeRequest::EwkUrlSchemeRequest):
2209         (EwkUrlSchemeRequest::finish):
2210         * UIProcess/API/efl/ewk_url_scheme_request_private.h:
2211         (EwkUrlSchemeRequest::create):
2212         * UIProcess/API/efl/tests/test_ewk2_context.cpp:
2213         (TEST_F):
2214         * UIProcess/Network/CustomProtocols/soup/WebSoupCustomProtocolRequestManager.cpp:
2215         * UIProcess/efl/RequestManagerClientEfl.cpp:
2216         (WebKit::RequestManagerClientEfl::RequestManagerClientEfl):
2217         (WebKit::RequestManagerClientEfl::startLoading):
2218         (WebKit::RequestManagerClientEfl::stopLoading):
2219         (WebKit::RequestManagerClientEfl::registerURLSchemeHandler):
2220         (WebKit::EwkUrlSchemeHandler::EwkUrlSchemeHandler): Deleted.
2221         (WebKit::RequestManagerClientEfl::didReceiveURIRequest): Deleted.
2222         * UIProcess/efl/RequestManagerClientEfl.h:
2223         * UIProcess/efl/WebContextEfl.cpp:
2224         (WebKit::WebContext::platformInitializeWebProcess):
2225         * UIProcess/soup/WebContextSoup.cpp:
2226         (WebKit::WebContext::platformInitializeNetworkProcess):
2227
2228 2014-10-07  Sungmann Cho  <sungmann.cho@navercorp.com>
2229
2230         Remove WKPageCreateSnapshotOfVisibleContent API.
2231         https://bugs.webkit.org/show_bug.cgi?id=66979
2232
2233         Reviewed by Darin Adler.
2234
2235         After the landing of the first patch of webkit.org/b/66979,
2236         WKPageCreateSnapshotOfVisibleContent API has been neglected for years.
2237         Currently, this is not used anywhere and does not break the nightlies.
2238         So we can remove this.
2239
2240         * UIProcess/API/C/WKPage.cpp:
2241         (WKPageCreateSnapshotOfVisibleContent): Deleted.
2242         * UIProcess/API/C/WKPagePrivate.h:
2243
2244 2014-10-07  Sungmann Cho  <sungmann.cho@navercorp.com>
2245
2246         Remove WKPageSetInvalidMessageFunction.
2247         https://bugs.webkit.org/show_bug.cgi?id=137509
2248
2249         Reviewed by Benjamin Poulain.
2250
2251         According to the FIXME comment in WKPageSetInvalidMessageFunction,
2252         we can remove this function when doing so won't break the nightlies.
2253         Currently, this is not used anywhere and does not break the nightlies.
2254         So we can remove this.
2255
2256         * UIProcess/API/C/WKPage.cpp:
2257         (WKPageSetInvalidMessageFunction): Deleted.
2258         * UIProcess/API/C/WKPagePrivate.h:
2259
2260 2014-10-07  Christophe Dumez  <cdumez@apple.com>
2261
2262         [WK2] Use is<>() / downcast<>() for DrawingArea subclasses
2263         https://bugs.webkit.org/show_bug.cgi?id=137497
2264
2265         Reviewed by Benjamin Poulain.
2266
2267         Use is<>() / downcast<>() for DrawingArea subclasses.
2268
2269         * WebProcess/WebPage/DrawingArea.h:
2270         * WebProcess/WebPage/WebPage.cpp:
2271         (WebKit::WebPage::didCommitLoad):
2272         * WebProcess/WebPage/ios/WebPageIOS.mm:
2273         (WebKit::WebPage::synchronizeDynamicViewportUpdate):
2274         * WebProcess/WebPage/mac/RemoteLayerTreeDrawingArea.h:
2275         * WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.h:
2276
2277 2014-10-07  Simon Fraser  <simon.fraser@apple.com>
2278
2279         Roll-over Changelogs.
2280
2281         * ChangeLog-2014-10-07: Copied from Source/WebKit2/ChangeLog.
2282
2283 == Rolled over to ChangeLog-2014-10-07 ==