1 2014-10-28 Joseph Pecoraro <pecoraro@apple.com>
3 [iOS] iPhone should not allow selecting <optgroup> in <select multiple>
4 https://bugs.webkit.org/show_bug.cgi?id=137991
6 Reviewed by Darin Adler.
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.
12 * UIProcess/ios/forms/WKFormSelectPicker.mm:
13 (-[WKMultipleSelectPicker pickerView:row:column:checked:]):
15 2014-10-28 Tim Horton <timothy_horton@apple.com>
17 Remove an inaccurate comment in WKActionMenuController
18 https://bugs.webkit.org/show_bug.cgi?id=138135
20 Reviewed by Anders Carlsson.
22 * UIProcess/mac/WKActionMenuController.mm:
23 (-[WKActionMenuController _defaultMenuItemsForLink]):
24 The comment is wrong; the separator is there for spacing, not just as a workaround.
26 2014-10-28 Carlos Garcia Campos <cgarcia@igalia.com>
28 Unreviewed. Update OptionsGTK.cmake and NEWS for 2.7.1 release.
30 * gtk/NEWS: Add release notes for 2.7.1.
32 2014-10-28 Dan Bernstein <mitz@apple.com>
34 [Mac] OS X Mavericks build broken with public SDK
35 https://bugs.webkit.org/show_bug.cgi?id=138108
37 Reviewed by Mark Rowe.
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.
42 2014-10-27 Conrad Shultz <conrad_shultz@apple.com>
44 NSSharingService protocol conformance should be internal to WKActionMenuController
45 https://bugs.webkit.org/show_bug.cgi?id=138112
47 Reviewed by Tim Horton.
49 * UIProcess/mac/WKActionMenuController.h:
50 * UIProcess/mac/WKActionMenuController.mm:
51 Move protocol conformance from the interface to a class extension.
53 2014-10-27 Enrica Casucci <enrica@apple.com>
55 WebContent crash in WebKit::WebPage::expandedRangeFromHandle.
56 https://bugs.webkit.org/show_bug.cgi?id=138023
57 rdar://problem/18787412
59 Reviewed by Ryosuke Niwa.
61 We must change that we have a valid currentRange before trying
62 to expand or contract.
64 * WebProcess/WebPage/ios/WebPageIOS.mm:
65 (WebKit::WebPage::changeBlockSelection):
67 2014-10-27 Alexey Proskuryakov <ap@apple.com>
69 http/tests/cookies/third-party-cookie-relaxing.html is flaky on bots
70 https://bugs.webkit.org/show_bug.cgi?id=138098
72 Reviewed by Anders Carlsson.
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".
79 2014-10-27 Chris Dumez <cdumez@apple.com>
81 Use separate HashMaps for common and uncommon headers in HTTPHeaderMap
82 https://bugs.webkit.org/show_bug.cgi?id=138079
84 Reviewed by Anders Carlsson.
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.
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.
97 * Shared/WebCoreArgumentCoders.cpp:
98 (IPC::ArgumentCoder<HTTPHeaderMap>::encode):
99 (IPC::ArgumentCoder<HTTPHeaderMap>::decode):
101 2014-10-24 Benjamin Poulain <bpoulain@apple.com>
105 * Configurations/WebKit.xcconfig:
107 2014-10-24 Beth Dakin <bdakin@apple.com>
109 _actionMenuItemsForHitTestResult should also take a type indicating what the menu
111 https://bugs.webkit.org/show_bug.cgi?id=138063
113 Reviewed by Dan Bernstein.
115 New type enum that can be used by clients.
116 * Shared/API/c/WKActionMenuTypes.h: Added.
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.
124 Now keep an ivar for the type.
125 * UIProcess/mac/WKActionMenuController.h:
127 Create a category for the old SPI so that we can still call it if clients have
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:
136 2014-10-24 Tim Horton <timothy_horton@apple.com>
138 Share sheet doesn't attach to the window
139 https://bugs.webkit.org/show_bug.cgi?id=138062
140 <rdar://problem/18767397>
142 Reviewed by Beth Dakin.
144 * UIProcess/mac/WKActionMenuController.h:
145 WKActionMenuController is now a NSSharingService{Picker}Delegate.
147 * UIProcess/mac/WKActionMenuController.mm:
148 (-[WKActionMenuController _defaultMenuItemsForImage]):
149 Set us up as the NSSharingServicePicker delegate.
151 (-[WKActionMenuController sharingServicePicker:delegateForSharingService:]):
152 Set us up as the NSSharingService delegate.
154 (-[WKActionMenuController sharingService:sourceWindowForShareItems:sharingContentScope:]):
155 Return the appropriate window to attach to.
157 2014-10-24 Jer Noble <jer.noble@apple.com>
159 Abstractify WebOriginDataManager to support arbitrary ChildProcess supplements.
160 https://bugs.webkit.org/show_bug.cgi?id=137993
162 Reviewed by Brady Eidson.
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.
168 De-virtualize AsyncTask, allowing a task to be created by passing in a
169 function<void()>, rather than an object, method, and arguments.
171 * Shared/AsyncTask.h:
172 (WebKit::AsyncTask::AsyncTask):
173 (WebKit::AsyncTask::performTask):
174 (WebKit::AsyncTask::~AsyncTask): Deleted.
176 Add a new virtual base class, to be implemented by various ChildProcesses, which
177 WebOriginDataManager will use to implement listing and deletion requests.
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:
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
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.
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.
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:
225 2014-10-24 Beth Dakin <bdakin@apple.com>
227 Very large images crash in action menu code
228 https://bugs.webkit.org/show_bug.cgi?id=138059
230 rdar://problem/18767859
232 Reviewed by Tim Horton.
234 If the HitTestResult failed to create and image, then don’t go for the image
236 * UIProcess/mac/WKActionMenuController.mm:
237 (-[WKActionMenuController _defaultMenuItems]):
239 ShareableBitmap::createShareable() can fail. The result needs to be null-checked.
240 * WebProcess/WebPage/WebPage.cpp:
241 (WebKit::WebPage::performActionMenuHitTestAtLocation):
243 2014-10-24 Beth Dakin <bdakin@apple.com>
247 * UIProcess/mac/WKActionMenuController.h:
248 * UIProcess/mac/WKActionMenuController.mm:
250 2014-10-24 Tim Horton <timothy_horton@apple.com>
252 Blindly try to fix all the builds.
254 * UIProcess/mac/WKActionMenuController.h:
255 * UIProcess/mac/WKActionMenuController.mm:
257 2014-10-24 Timothy Horton <timothy_horton@apple.com>
259 Blindly try to fix all the builds.
261 * UIProcess/mac/WKActionMenuController.h:
263 2014-10-24 Timothy Horton <timothy_horton@apple.com>
265 Blindly try to fix the 32-bit build.
267 * UIProcess/mac/WKActionMenuController.h:
268 * UIProcess/mac/WKActionMenuController.mm:
270 2014-10-24 Tim Horton <timothy_horton@apple.com>
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>
276 * UIProcess/mac/WKActionMenuController.mm:
277 (-[WKActionMenuController prepareForMenu:withEvent:]):
278 (-[WKActionMenuController _addImageToPhotos:]):
279 Review comments that were not previously addressed.
281 2014-10-24 Tim Horton <timothy_horton@apple.com>
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>
287 Reviewed by Dan Bernstein.
289 * UIProcess/API/mac/WKView.mm:
290 (-[WKView initWithFrame:context:configuration:webView:]):
291 Make a WKActionMenuController if needed.
293 (-[WKView prepareForMenu:withEvent:]):
294 (-[WKView willOpenMenu:withEvent:]):
295 (-[WKView didCloseMenu:withEvent:]):
296 (-[WKView _didPerformActionMenuHitTest:]):
297 Forward these to WKActionMenuController.
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.
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):
330 (-[WKActionMenuController _addImageToPhotos:]):
331 (-[WKActionMenuController _createActionMenuItemForTag:]):
332 (webKitBundleImageNamed):
333 (imageForResource:name::if):
334 (-[WKActionMenuController _updateActionMenuItems]):
337 * WebKit2.xcodeproj/project.pbxproj:
339 2014-10-24 Marcos ChavarrĂa Teijeiro <chavarria1991@gmail.com>
341 [GTK] Implement is_selected method on WebKitHitTestResult
342 https://bugs.webkit.org/show_bug.cgi?id=137110
344 Reviewed by Tim Horton.
346 Expose CONTEXT_SELECTION for WebKitHitTestResult.
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.
363 2014-10-23 Carlos Garcia Campos <cgarcia@igalia.com>
365 [GTK][Cairo] Remove GTK dependency of WidgetBackingStoreGtkX11
366 https://bugs.webkit.org/show_bug.cgi?id=138004
368 Reviewed by Gustavo Noronha Silva.
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.
382 2014-10-23 Benjamin Poulain <bpoulain@apple.com>
384 Fix a bad find-and-replace in r175153
386 Looks like I messed up the commit on landing.
388 * UIProcess/WebPageProxy.cpp:
389 (WebKit::WebPageProxy::WebPageProxy):
390 (WebKit::WebPageProxy::didCommitLoadForFrame):
392 2014-10-23 Benjamin Poulain <bpoulain@apple.com>
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
398 Reviewed by Simon Fraser.
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).
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.
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).
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.
424 This patch solves the problem by nuking the cached m_lastVisibleContentRectUpdate before
425 any valid VisibleContentRectUpdate for a new page.
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):
434 2014-10-23 Joseph Pecoraro <pecoraro@apple.com>
436 Web Inspector: Provide a way to have alternate inspector agents
437 https://bugs.webkit.org/show_bug.cgi?id=137901
439 Reviewed by Brian Burg.
441 * Configurations/FeatureDefines.xcconfig:
443 2014-10-23 Tim Horton <timothy_horton@apple.com>
445 Add some SPI headers for NSExtension and NSSharingService{Picker}
446 https://bugs.webkit.org/show_bug.cgi?id=138027
448 Reviewed by Anders Carlsson.
450 * UIProcess/API/mac/WKView.mm:
451 * UIProcess/mac/ServicesController.mm:
452 * UIProcess/mac/WebContextMenuProxyMac.mm:
453 Replace redefinitions with SPI header #imports.
455 2014-10-23 Benjamin Poulain <bpoulain@apple.com>
457 [iOS WK2] Make sure any dynamic viewport update schedules a layer tree commit
458 https://bugs.webkit.org/show_bug.cgi?id=138021
460 Reviewed by Simon Fraser.
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).
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
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.
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.
482 2014-10-23 Ryosuke Niwa <rniwa@webkit.org>
484 WebContent crash in WebKit::WebPage::expandedRangeFromHandle
485 https://bugs.webkit.org/show_bug.cgi?id=138023
487 Reviewed by Enrica Casucci.
489 The crashes are caused by rangeForBlockAtPoint returning a null Range.
490 Exit early or continue if a range is null in various places.
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.
499 2014-10-23 Joseph Pecoraro <pecoraro@apple.com>
501 [iOS] iPhone unselecting items in <select multiple> shows incorrect values selected
502 https://bugs.webkit.org/show_bug.cgi?id=137989
504 Reviewed by Alexey Proskuryakov.
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>.
511 2014-10-23 Tim Horton <timothy_horton@apple.com>
513 Assertion failures in ImageKit soft linking
514 https://bugs.webkit.org/show_bug.cgi?id=138009
516 Reviewed by Anders Carlsson.
518 * UIProcess/API/mac/WKView.mm:
519 Soft-link ImageKit correctly.
520 ImageKit is inside the Quartz umbrella framework.
522 2014-10-23 Daniel Bates <dabates@apple.com>
524 [iOS] Fix the build after <http://trac.webkit.org/changeset/175079>
525 (https://bugs.webkit.org/show_bug.cgi?id=137995)
527 Rubber-stamped by Anders Carlsson.
529 Remove PageClientImpl::didPerformActionMenuHitTest() for iOS.
531 * UIProcess/ios/PageClientImplIOS.h:
532 * UIProcess/ios/PageClientImplIOS.mm:
533 (WebKit::PageClientImpl::didPerformActionMenuHitTest): Deleted.
535 2014-10-23 Krzysztof Czech <k.czech@samsung.com>
537 [EFL] Fix build problem after r175098
538 https://bugs.webkit.org/show_bug.cgi?id=138002
540 Reviewed by Gyuyoung Kim.
542 Add ECORE_X dependency to avoid linking problems while building unit tests.
546 2014-10-23 Krzysztof Czech <k.czech@samsung.com>
548 [EFL] Set proper default value for WebPageAccessibilityObject
549 https://bugs.webkit.org/show_bug.cgi?id=137951
551 Reviewed by Csaba Osztrogonác.
553 Initial value for WebPageAccessibilityObject should be nullptr.
555 * WebProcess/WebPage/WebPage.cpp:
556 (WebKit::WebPage::WebPage):
558 2014-10-23 Krzysztof Czech <k.czech@samsung.com>
560 [EFL] Introduce EFL Accessibility in WebKit
561 https://bugs.webkit.org/show_bug.cgi?id=137819
563 Reviewed by Gyuyoung Kim.
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.
570 * UIProcess/API/efl/EwkView.cpp:
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):
603 * UIProcess/WebPageProxy.h:
604 * UIProcess/efl/WebPageProxyEfl.cpp:
605 (WebKit::WebPageProxy::accessibilityObjectReadByPoint):
606 (WebKit::WebPageProxy::accessibilityObjectReadPrevious):
607 (WebKit::WebPageProxy::accessibilityObjectReadNext):
609 2014-10-22 Benjamin Poulain <bpoulain@apple.com>
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
615 Reviewed by Simon Fraser.
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.
624 This patch add early exits when that occurs and fallback to the common code.
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.
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.
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.
635 2014-10-22 Gyuyoung Kim <gyuyoung.kim@samsung.com>
637 EFL and GTK ports have broken since r175075
638 https://bugs.webkit.org/show_bug.cgi?id=137995
640 Unreviewed, EFL and GTK ports build fix.
642 Need to use PLATFORM(MAC) guard for ActionMenuHitTest functions.
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:
653 2014-10-22 Tim Horton <timothy_horton@apple.com>
655 Add action menu support for images
656 https://bugs.webkit.org/show_bug.cgi?id=137987
657 <rdar://problem/18717767>
659 Reviewed by Anders Carlsson, Sam Weinig, and Beth Dakin.
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.
667 * Scripts/webkit/messages.py:
669 ActionMenuHitTestResult is a struct.
671 * Shared/API/c/WKActionMenuItemTypes.h:
672 Add new items for image menus.
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.
679 * Shared/mac/ActionMenuHitTestResult.h:
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.
686 (webKitBundleImageNamed):
687 Add a helper to acquire an image from the WebKit2 bundle.
689 (-[WKView _copyImage:]):
690 (-[WKView _saveImageToDownloads:]):
691 (temporaryPhotosDirectoryPath):
693 (-[WKView _addImageToPhotos:]):
694 Add rudimentary implementations of image actions.
696 (-[WKView _defaultMenuItemsForImage]):
697 Support the image menu, plus a submenu acquired from NSSharingServicePicker
700 (-[WKView _defaultMenuItems]):
701 Call _defaultMenuItemsForImage if needed.
703 (-[WKView _updateActionMenu]):
704 Refactor _updateActionMenu out of prepareForMenu:withEvent:.
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.
710 (-[WKView _didPerformActionMenuHitTest:]):
711 When we get the hit test reply, record the result for future use.
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.
718 (-[WKView didCloseMenu:withEvent:]):
719 Clear all state when the menu closes.
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.
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.
742 * WebKit2.xcodeproj/project.pbxproj:
745 2014-10-22 Gyuyoung Kim <gyuyoung.kim@samsung.com>
747 Remove WidgetBackingStoreCairo::create() factory function
748 https://bugs.webkit.org/show_bug.cgi?id=137943
750 Reviewed by Darin Adler.
752 WidgetBackingStoreCairo::create() can be replaced by std::make_unique<>.
753 Thus this patch removes it, then use std::make_unique<>|std::unique_ptr<>.
755 * UIProcess/BackingStore.h:
756 * UIProcess/cairo/BackingStoreCairo.cpp:
757 (WebKit::createBackingStoreForGTK):
758 (WebKit::BackingStore::incorporateUpdate):
760 2014-10-22 Gyuyoung Kim <gyuyoung.kim@samsung.com>
762 Remove TextCheckerEnchant::create() factory function
763 https://bugs.webkit.org/show_bug.cgi?id=137944
765 Reviewed by Darin Adler.
767 TextCheckerEnchant::create() can be replaced by std::make_unique<> and std::unique_ptr<>.
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:
776 2014-10-22 Antti Koivisto <antti@apple.com>
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)
781 Turns out the root cause was a bug in MIME type sniffing, https://bugs.webkit.org/show_bug.cgi?id=137855
783 Remove the workaround.
785 * Shared/Downloads/ios/DownloadIOS.mm:
786 (WebKit::Download::startWithHandle):
787 * Shared/Downloads/mac/DownloadMac.mm:
788 (WebKit::Download::startWithHandle):
790 2014-10-22 Beth Dakin <bdakin@apple.com>
792 Remove action menu web preference
793 https://bugs.webkit.org/show_bug.cgi?id=137975
795 Reviewed by Tim Horton.
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:]):
805 2014-10-22 Chris Dumez <cdumez@apple.com>
807 [Mac][WK2] Fix applicationIsSafari() detection
808 https://bugs.webkit.org/show_bug.cgi?id=137893
810 Reviewed by Alexey Proskuryakov.
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.
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.
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):
836 2014-10-22 Carlos Garcia Campos <cgarcia@igalia.com>
838 Unreviewed. Fix GTK+ debug build after r175046.
840 Remove invalid ASSERT.
842 * UIProcess/gtk/InputMethodFilter.cpp:
843 (WebKit::InputMethodFilter::setCursorRect):
845 2014-10-22 Carlos Garcia Campos <cgarcia@igalia.com>
847 [GTK] Move GtkInputMethodFilter from Platform to WebKit2
848 https://bugs.webkit.org/show_bug.cgi?id=137884
850 Reviewed by Gustavo Noronha Silva.
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.
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):
904 2014-10-21 Tim Horton <timothy_horton@apple.com>
906 Quick Look preview bubble has unnecessary controls
907 https://bugs.webkit.org/show_bug.cgi?id=137940
908 <rdar://problem/18731860>
910 Reviewed by Simon Fraser.
912 * UIProcess/API/mac/WKView.mm:
913 (-[WKView _quickLookURLFromActionMenu:]):
914 Temporarily use more SPI to allow us to hide the preview bubble's controls.
916 2014-10-21 Jeff Miller <jeffm@apple.com>
918 Remove const from WKURLRequestRef parameter to WKContextDownloadURLRequest()
919 https://bugs.webkit.org/show_bug.cgi?id=137928
921 Reviewed by Darin Adler.
923 * UIProcess/API/C/WKContext.cpp:
924 (WKContextDownloadURLRequest):
925 * UIProcess/API/C/WKContext.h:
927 2014-10-21 Anders Carlsson <andersca@apple.com>
929 WKRemoteObjectCoder should handle floats
930 https://bugs.webkit.org/show_bug.cgi?id=137926
931 <rdar://problem/18695126>
933 Reviewed by Beth Dakin.
935 * Shared/API/Cocoa/WKRemoteObjectCoder.mm:
937 (-[WKRemoteObjectEncoder encodeFloat:forKey:]):
938 (decodeInvocationArguments):
939 (-[WKRemoteObjectDecoder decodeFloatForKey:]):
941 2014-10-21 Jeff Miller <jeffm@apple.com>
943 WKContext needs to provide an API to resume a download
944 https://bugs.webkit.org/show_bug.cgi?id=137507
946 Reviewed by Darin Adler.
948 This patch adds WKContextResumeDownload(), which is only supported on the Mac, and requires the
949 resume data from WKDownloadGetResumeData().
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.
954 * NetworkProcess/NetworkProcess.cpp:
955 (WebKit::NetworkProcess::resumeDownload):
956 Added, calls through to DownloadManager::resumeDownload().
958 * NetworkProcess/NetworkProcess.h:
959 Added resumeDownload().
961 * NetworkProcess/NetworkProcess.messages.in:
962 Added ResumeDownload message.
964 * Shared/Downloads/Download.h:
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.
972 * Shared/Downloads/DownloadManager.h:
973 Added resumeDownload().
975 * Shared/Downloads/ios/DownloadIOS.mm:
976 (WebKit::Download::resume):
977 Added, not implemented on this platform.
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.
985 * Shared/Downloads/soup/DownloadSoup.cpp:
986 (WebKit::Download::resume):
987 Added, not implemented on this platform.
989 * UIProcess/API/C/WKContext.cpp:
990 (WKContextResumeDownload):
993 * UIProcess/API/C/WKContext.h:
994 Added WKContextResumeDownload().
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.
1001 * UIProcess/WebContext.h:
1002 Added resumeDownload().
1004 * WebProcess/WebProcess.cpp:
1005 (WebKit::WebProcess::resumeDownload):
1006 Added, calls through to DownloadManager::resumeDownload().
1008 * WebProcess/WebProcess.h:
1009 Added resumeDownload().
1011 * WebProcess/WebProcess.messages.in:
1012 Added ResumeDownload message.
1014 2014-10-20 Michael Catanzaro <mcatanzaro@igalia.com>
1016 Change the default TLS errors policy to WEBKIT_TLS_ERRORS_POLICY_FAIL
1017 https://bugs.webkit.org/show_bug.cgi?id=137832
1019 Reviewed by Carlos Garcia Campos.
1021 Too many general-purpose browsers that really need this policy
1022 are not selecting it, so let's do so for them.
1024 * UIProcess/API/gtk/WebKitWebContext.cpp:
1025 (createDefaultWebContext):
1027 2014-10-21 Michael Catanzaro <mcatanzaro@igalia.com>
1029 [SOUP] Disable SSLv3
1030 https://bugs.webkit.org/show_bug.cgi?id=137859
1032 Reviewed by Carlos Garcia Campos.
1034 Set G_TLS_GNUTLS_PRIORITY if unset.
1036 * NetworkProcess/EntryPoint/unix/NetworkProcessMain.cpp:
1038 * WebProcess/EntryPoint/unix/WebProcessMain.cpp:
1041 2014-10-20 Chris Dumez <cdumez@apple.com>
1043 ResourceRequest deserialization unnecessarily calls partitionName() on encoded cache partition
1044 https://bugs.webkit.org/show_bug.cgi?id=137797
1046 Reviewed by Darin Adler.
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.
1055 * Shared/WebCoreArgumentCoders.cpp:
1056 (IPC::ArgumentCoder<ResourceRequest>::decode):
1058 2014-10-20 Beth Dakin <bdakin@apple.com>
1060 Action menu items should have tags
1061 https://bugs.webkit.org/show_bug.cgi?id=137898
1063 Reviewed by Anders Carlsson.
1065 * Shared/API/c/WKActionMenuItemTypes.h: Added.
1066 * UIProcess/API/mac/WKView.mm:
1067 (-[WKView _defaultMenuItemsForLink]):
1068 * WebKit2.xcodeproj/project.pbxproj:
1070 2014-10-20 Beth Dakin <bdakin@apple.com>
1072 Add support for action menus
1073 https://bugs.webkit.org/show_bug.cgi?id=137891
1074 rdar://problem/18451638
1075 rdar://problem/18694470
1077 Reviewed by Anders Carlsson.
1079 Temporary artwork needed for menu item.
1080 * Resources/OpenInNewWindowTemplate.pdf: Added.
1081 * WebKit2.xcodeproj/project.pbxproj:
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:
1090 New SPI. WebKit clients can implement this method to customize the action menu.
1091 * UIProcess/API/Cocoa/WKViewPrivate.h:
1093 Create the action menu if it is supported.
1094 * UIProcess/API/mac/WKView.mm:
1095 (-[WKView initWithFrame:context:configuration:webView:]):
1097 Methods to implement the default menu actions.
1098 (-[WKView _openURLFromActionMenu:]):
1099 (-[WKView _addToReadingListFromActionMenu:]):
1100 (-[WKView _quickLookURLFromActionMenu:]):
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:]):
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):
1114 2014-10-20 Timothy Hatcher <timothy@apple.com>
1116 Web Inspector: Delay and white area when Web Inspector crashes
1117 https://bugs.webkit.org/show_bug.cgi?id=137230
1119 Reviewed by Anders Carlsson.
1121 * UIProcess/WebInspectorProxy.cpp:
1122 (WebKit::processDidCrash): Added.
1123 (WebKit::WebInspectorProxy::eagerlyCreateInspectorPage): Hook up loader client.
1125 2014-10-20 Joseph Pecoraro <pecoraro@apple.com>
1127 Web Inspector: Generate all Inspector domains together in JavaScriptCore
1128 https://bugs.webkit.org/show_bug.cgi?id=137748
1130 Reviewed by Brian Burg.
1132 * PlatformGTK.cmake:
1134 2014-10-19 Antti Koivisto <antti@apple.com>
1136 Avoid unnecessary NSURLResponse construction for QuickLook on iOS
1137 https://bugs.webkit.org/show_bug.cgi?id=137876
1139 Reviewed by Andy Estes.
1141 * WebProcess/Network/WebResourceLoader.cpp:
1142 (WebKit::WebResourceLoader::didReceiveResponse):
1144 Switch to the modified QuickLookHandle interface that does not need NSURLResponse.
1146 2014-10-16 Andy Estes <aestes@apple.com>
1148 [iOS] Capture WKActionSheetAssistant's interaction with WKContentView in a @protocol
1149 https://bugs.webkit.org/show_bug.cgi?id=137792
1151 Reviewed by Tim Horton.
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.
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.
1198 2014-10-20 Carlos Garnacho <carlosg@gnome.org>
1200 [GTK] Improve zooming gesture positioning
1201 https://bugs.webkit.org/show_bug.cgi?id=137822
1203 Reviewed by Carlos Garcia Campos.
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.
1224 2014-10-20 Carlos Garcia Campos <cgarcia@igalia.com>
1226 [GTK] Remove the factory method from DragAndDropHandler
1227 https://bugs.webkit.org/show_bug.cgi?id=137872
1229 Reviewed by Sergio Villar Senin.
1231 Make the constructor public and use std::make_unique instead.
1233 * UIProcess/API/gtk/WebKitWebViewBase.cpp:
1234 (webkitWebViewBaseDragAndDropHandler):
1235 * UIProcess/gtk/DragAndDropHandler.cpp:
1236 (WebKit::DragAndDropHandler::create): Deleted.
1237 * UIProcess/gtk/DragAndDropHandler.h:
1239 2014-10-20 Carlos Garcia Campos <cgarcia@igalia.com>
1241 [GTK] Add initial gestures support
1242 https://bugs.webkit.org/show_bug.cgi?id=137812
1244 Reviewed by Sergio Villar Senin.
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.
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
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
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
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
1290 (WebKit::GestureController::DragGesture::DragGesture): Initialize
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
1298 * UIProcess/gtk/GestureController.h: Added.
1300 2014-10-19 Chris Dumez <cdumez@apple.com>
1302 Use is<>() / downcast<>() for all remaining RenderObject subclasses
1303 https://bugs.webkit.org/show_bug.cgi?id=137845
1305 Reviewed by Darin Adler.
1307 Use is<>() / downcast<>() for all remaining RenderObject subclasses and
1308 clean up the surrounding code.
1310 * WebProcess/Plugins/PluginView.cpp:
1311 (WebKit::PluginView::pluginProcessCrashed):
1312 * WebProcess/WebPage/WebPage.cpp:
1313 (WebKit::WebPage::createPlugin):
1315 2014-10-19 Carlos Garcia Campos <cgarcia@igalia.com>
1317 [GTK] Move GtkDragAndDropHelper from Platform to WebKit2
1318 https://bugs.webkit.org/show_bug.cgi?id=137422
1320 Reviewed by Martin Robinson.
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
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.
1360 2014-10-18 Dan Bernstein <mitz@apple.com>
1362 WorkQueue dispatches functions but isn’t a FunctionDispatcher
1363 https://bugs.webkit.org/show_bug.cgi?id=137853
1365 Reviewed by Anders Carlsson.
1367 * Platform/WorkQueue.h: Changed to inherit from FunctionDispatcher.
1369 2014-10-18 Michael Catanzaro <mcatanzaro@igalia.com>
1371 [GTK] Improve documentation of webkit_web_view_get_tls_info()
1372 https://bugs.webkit.org/show_bug.cgi?id=137852
1374 Reviewed by Martin Robinson.
1376 * UIProcess/API/gtk/WebKitWebView.cpp:
1378 2014-10-17 Chris Dumez <cdumez@apple.com>
1380 Use is<>() / downcast<>() for RenderBox
1381 https://bugs.webkit.org/show_bug.cgi?id=137804
1383 Reviewed by Andreas Kling.
1385 Use is<>() / downcast<>() for RenderBox and clean up the surrounding
1388 * WebProcess/WebPage/WebPage.cpp:
1389 (WebKit::WebPage::determinePrimarySnapshottedPlugIn):
1390 (WebKit::WebPage::plugInIsPrimarySize):
1391 * WebProcess/WebPage/ios/WebPageIOS.mm:
1392 (WebKit::WebPage::sendTapHighlightForNodeIfNecessary):
1394 2014-10-16 Simon Fraser <simon.fraser@apple.com>
1396 [iOS] Turn off font autosizing for iOS WebKitTestRunner
1397 https://bugs.webkit.org/show_bug.cgi?id=137806
1399 Reviewed by Sam Weinig.
1401 Confusingly, WKPreferencesSetTextAutosizingEnabled() does nothing on iOS.
1402 Instead, we have to add WKPreferencesSetMinimumZoomFontSize() and set it to 0
1403 to disable font autosizing.
1405 * UIProcess/API/C/WKPreferences.cpp:
1406 (WKPreferencesSetMinimumZoomFontSize):
1407 (WKPreferencesGetMinimumZoomFontSize):
1408 * UIProcess/API/C/WKPreferencesRefPrivate.h:
1410 2014-10-17 Gyuyoung Kim <gyuyoung.kim@samsung.com>
1412 [EFL] REGRESSION(r173929): It broke the Web Inspector
1413 https://bugs.webkit.org/show_bug.cgi?id=137522
1415 Reviewed by Csaba Osztrogonác.
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
1422 * UIProcess/efl/WebInspectorProxyEfl.cpp:
1423 (WebKit::WebInspectorProxy::platformAttach):
1425 2014-10-17 Carlos Garcia Campos <cgarcia@igalia.com>
1427 [GLIB] Add API to GMainLoopSource to schedule sources after a delay in microseconds
1428 https://bugs.webkit.org/show_bug.cgi?id=137782
1430 Reviewed by Sergio Villar Senin.
1432 * WebProcess/WebPage/gtk/LayerTreeHostGtk.cpp:
1433 (WebKit::LayerTreeHostGtk::layerFlushTimerFired): Use microseconds
1434 instead of milliseconds.
1436 2014-10-17 Carlos Garcia Campos <cgarcia@igalia.com>
1438 [GTK] Move touch events handling from Platform to WebKit2
1439 https://bugs.webkit.org/show_bug.cgi?id=137735
1441 Reviewed by Sergio Villar Senin.
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.
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
1465 (webkitWebViewBaseTouchEvent): Process the touch event.
1466 (webkitWebViewBaseDragDataReceived): Deleted.
1468 2014-10-16 Pascal Jacquemart <p.jacquemart@samsung.com>
1470 Removing CUSTOM_PROTOCOLS guard
1471 https://bugs.webkit.org/show_bug.cgi?id=137741
1473 Reviewed by Benjamin Poulain.
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):
1518 * WebProcess/WebProcess.cpp:
1519 (WebKit::WebProcess::WebProcess):
1520 * WebProcess/soup/WebKitSoupRequestGeneric.cpp:
1521 (webkitSoupRequestGenericSendAsync):
1522 (webkitSoupRequestGenericSendFinish):
1523 * WebProcess/soup/WebKitSoupRequestGeneric.h:
1525 2014-10-16 Simon Fraser <simon.fraser@apple.com>
1527 Crash under RemoteLayerTreeHost::getLayer() when closing a tab
1528 https://bugs.webkit.org/show_bug.cgi?id=137796
1529 rdar://problem/18547565
1531 Reviewed by Tim Horton.
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.
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:]):
1546 2014-10-16 Tim Horton <timothy_horton@apple.com>
1548 Implement selection services menu for Legacy WebKit
1549 https://bugs.webkit.org/show_bug.cgi?id=137582
1550 <rdar://problem/18604241>
1552 Reviewed by Brady Eidson.
1554 * UIProcess/mac/WebContextMenuProxyMac.mm:
1555 (-[WKSharingServicePickerDelegate sharingService:didShareItems:]):
1556 Add a note that we should transition to using replaceSelectionWithAttributedString.
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.
1562 2014-10-16 Tim Horton <timothy_horton@apple.com>
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>
1568 Reviewed by Dan Bernstein.
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.
1581 * UIProcess/ios/ViewGestureControllerIOS.mm:
1582 (-[WKSwipeTransitionController invalidate]):
1583 Clear the soon-to-be-invalid ViewGestureController pointer.
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.
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.
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
1599 Hold on to our _UIViewControllerOneToOneTransitionContext, so that we can do the
1600 aforementioned clearing upon deallocation.
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.
1606 (WebKit::ViewGestureController::removeSwipeSnapshot):
1607 Clear m_swipeTransitionContext.
1609 2014-10-16 Antti Koivisto <antti@apple.com>
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>
1615 Reviewed by Alexey Proskuryakov.
1617 * Shared/Downloads/ios/DownloadIOS.mm:
1618 (WebKit::Download::startWithHandle):
1619 * Shared/Downloads/mac/DownloadMac.mm:
1620 (WebKit::Download::startWithHandle):
1622 It appears that the synthesized NS/CFURLResponse fails to serialize the suggested filename correctly
1623 unless it has been accessed first.
1625 2014-10-15 Dan Bernstein <mitz@apple.com>
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
1630 Reviewed by Anders Carlsson.
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.
1638 2014-10-15 Chris Dumez <cdumez@apple.com>
1640 Use is<>() / downcast<>() for TransformOperation subclasses
1641 https://bugs.webkit.org/show_bug.cgi?id=137731
1643 Reviewed by Darin Adler.
1645 Use is<>() / downcast<>() for TransformOperation subclasses and clean
1646 up the surrounding code.
1648 * Shared/CoordinatedGraphics/CoordinatedGraphicsArgumentCoders.cpp:
1649 (IPC::ArgumentCoder<TransformOperations>::encode):
1651 2014-10-15 Alexey Proskuryakov <ap@apple.com>
1653 [Mac] Allow some Kerberos related paths in sandbox
1654 https://bugs.webkit.org/show_bug.cgi?id=137666
1655 rdar://problem/17965010
1657 Reviewed by Darin Adler.
1659 * NetworkProcess/mac/com.apple.WebKit.NetworkProcess.sb.in:
1660 * WebProcess/com.apple.WebProcess.sb.in:
1662 2014-10-15 Alexey Proskuryakov <ap@apple.com>
1664 [Mac] Allow plug-ins to read managed preferences
1665 https://bugs.webkit.org/show_bug.cgi?id=137665
1666 <rdar://problem/18255601>
1668 Reviewed by Darin Adler.
1670 * Resources/PlugInSandboxProfiles/com.apple.WebKit.plugin-common.sb:
1672 2014-10-14 Joonghun Park <jh718.park@samsung.com>
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
1678 Reviewed by Gyuyoung Kim.
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()
1689 * Platform/efl/DispatchQueueEfl.cpp:
1690 (DispatchQueue::ThreadContext::start):
1692 2014-10-14 Chris Dumez <cdumez@apple.com>
1694 Use is<>() / downcast<>() for PlatformCAAnimation subclasses
1695 https://bugs.webkit.org/show_bug.cgi?id=137722
1697 Reviewed by Simon Fraser.
1699 Use is<>() / downcast<>() for PlatformCAAnimation subclasses and clean
1700 up the surrounding code.
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):
1718 2014-10-14 Alexey Proskuryakov <ap@apple.com>
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
1725 Reviewed by Darin Adler.
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.
1732 2014-10-14 Anders Carlsson <andersca@apple.com>
1734 Hide the find indicator when starting a swipe
1735 https://bugs.webkit.org/show_bug.cgi?id=137711
1737 Reviewed by Tim Horton.
1739 * UIProcess/mac/PageClientImpl.mm:
1740 (WebKit::PageClientImpl::navigationGestureDidBegin):
1742 2014-10-14 Chris Dumez <cdumez@apple.com>
1744 Use is<>() / downcast<>() for RenderImage
1745 https://bugs.webkit.org/show_bug.cgi?id=137683
1747 Reviewed by Mihnea Ovidenie.
1749 Use is<>() / downcast<>() for RenderImage.
1751 * WebProcess/WebCoreSupport/mac/WebDragClientMac.mm:
1752 (WebKit::cachedImage):
1753 * WebProcess/WebPage/ios/WebPageIOS.mm:
1754 (WebKit::WebPage::performActionOnElement):
1756 2014-10-13 Carlos Garcia Campos <cgarcia@igalia.com>
1758 [GTK][CMake] Non-ninja build is broken since r174422
1759 https://bugs.webkit.org/show_bug.cgi?id=137656
1761 Reviewed by Philippe Normand.
1763 Make WebKit2-forwarding-headers depend only on static,
1764 non-generated sources.
1767 * PlatformGTK.cmake:
1769 2014-10-13 Chris Dumez <cdumez@apple.com>
1771 Use is<>() / downcast<>() for PlatformCALayer subclasses
1772 https://bugs.webkit.org/show_bug.cgi?id=137661
1774 Reviewed by Simon Fraser.
1776 Use is<>() / downcast<>() for PlatformCALayer subclasses and clean up
1777 the surrounding code.
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):
1795 2014-10-13 Chris Dumez <cdumez@apple.com>
1797 Use is<>() / downcast<>() for Filter / FilterOperation subclasses
1798 https://bugs.webkit.org/show_bug.cgi?id=137644
1800 Reviewed by Darin Adler.
1802 Use is<>() / downcast<>() for Filter / FilterOperation subclasses.
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<<):
1811 2014-10-12 Sergio Villar Senin <svillar@igalia.com>
1813 [SOUP] [WK2] WebProcess and NetworkProcess initialization clears cache contents
1814 https://bugs.webkit.org/show_bug.cgi?id=137489
1816 Reviewed by Carlos Garcia Campos.
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.
1822 * NetworkProcess/soup/NetworkProcessSoup.cpp:
1823 (WebKit::NetworkProcess::platformInitializeNetworkProcess):
1824 * WebProcess/soup/WebProcessSoup.cpp:
1825 (WebKit::WebProcess::platformInitializeWebProcess):
1827 2014-10-12 Ryuan Choi <ryuan.choi@gmail.com>
1829 [EFL] Introduce EWebKit_Extension
1830 https://bugs.webkit.org/show_bug.cgi?id=134921
1832 Reviewed by Gyuyoung Kim.
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.
1839 This patch introduces EWebKit_Extension, basic structure for the extension of WebProcess.
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.
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.
1883 2014-10-10 Chris Dumez <cdumez@apple.com>
1885 Use is<>() / downcast<>() for Image subclasses
1886 https://bugs.webkit.org/show_bug.cgi?id=137625
1888 Reviewed by Andreas Kling.
1890 Use is<>() / downcast<>() for Image subclasses.
1892 * WebProcess/Plugins/PluginView.cpp:
1893 (WebKit::PluginView::pluginSnapshotTimerFired):
1895 2014-10-10 Chris Dumez <cdumez@apple.com>
1897 Use is<>() / downcast<>() for GraphicsLayer subclasses
1898 https://bugs.webkit.org/show_bug.cgi?id=137595
1900 Reviewed by Darin Adler.
1902 Use is<>() / downcast<>() for GraphicsLayer subclasses and clean up the
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):
1912 2014-10-10 Pascal Jacquemart <p.jacquemart@samsung.com>
1914 Fix debug build on EFL after r174584
1915 https://bugs.webkit.org/show_bug.cgi?id=137613
1917 Reviewed by Christophe Dumez.
1919 * UIProcess/efl/RequestManagerClientEfl.cpp:
1920 (WebKit::RequestManagerClientEfl::RequestManagerClientEfl):
1922 2014-10-10 Chris Dumez <cdumez@apple.com>
1924 Use is<>() / downcast<>() for RenderBoxModelObject
1925 https://bugs.webkit.org/show_bug.cgi?id=137587
1927 Reviewed by Mihnea Ovidenie.
1929 Use is<>() / downcast<>() for RenderBoxModelObject and clean up the
1932 * WebProcess/Plugins/PluginView.cpp:
1933 (WebKit::PluginView::renderer):
1934 (WebKit::PluginView::invalidateRect):
1936 2014-10-10 Pascal Jacquemart <p.jacquemart@samsung.com>
1938 [SOUP] Remove custom URI schemes implementation
1939 https://bugs.webkit.org/show_bug.cgi?id=128169
1941 Reviewed by Carlos Garcia Campos.
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.
1969 2014-10-09 Dean Jackson <dino@apple.com>
1971 Remove ENABLE_CSS3_CONDITIONAL_RULES
1972 https://bugs.webkit.org/show_bug.cgi?id=137571
1974 Reviewed by Simon Fraser.
1976 * Configurations/FeatureDefines.xcconfig:
1978 2014-10-09 Tim Horton <timothy_horton@apple.com>
1980 Move ServicesOverlayController to WebCore
1981 https://bugs.webkit.org/show_bug.cgi?id=137416
1982 <rdar://problem/18546283>
1984 Reviewed by Anders Carlsson.
1986 * Platform/Logging.h:
1987 Move Services logging channel to WebCore.
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.
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.
2006 * WebProcess/WebPage/WebPage.cpp:
2007 (WebKit::WebPage::WebPage):
2008 (WebKit::WebPage::updatePreferences):
2009 Forward serviceControlsEnabled setting to WebCore.
2011 (WebKit::WebPage::servicesOverlayController): Deleted.
2012 * WebProcess/WebPage/WebPage.h:
2013 (WebKit::WebPage::serviceControlsEnabled): Deleted.
2015 2014-10-09 Andy Estes <aestes@apple.com>
2017 [iOS] Crash in CFURLDownloadClient.didFail if the download has a null resumeData
2018 https://bugs.webkit.org/show_bug.cgi?id=137551
2020 Reviewed by David Kilzer.
2022 CFDataGetBytePtr() and CFDataGetLength() crash if passed a null value.
2024 * Shared/Downloads/ios/DownloadIOS.mm:
2025 (WebKit::setUpDownloadClient):
2027 2014-10-09 Carlos Garcia Campos <cgarcia@igalia.com>
2029 [X11] Plugin process crashes in NetscapePlugin::platformPostInitialize()
2030 https://bugs.webkit.org/show_bug.cgi?id=137426
2032 Reviewed by Darin Adler.
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.
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.
2049 2014-10-09 Chris Dumez <cdumez@apple.com>
2051 Use is<>() / downcast<>() for Widget subclasses
2052 https://bugs.webkit.org/show_bug.cgi?id=137549
2054 Reviewed by Darin Adler.
2056 Use is<>() / downcast<>() for Widget subclasses and clean up the
2059 * Shared/WebRenderObject.cpp:
2060 (WebKit::WebRenderObject::WebRenderObject):
2062 2014-10-08 Carlos Garcia Campos <cgarcia@igalia.com>
2064 [GTK] Use the PageLoadState observer also to monitor title and estimated load progress
2065 https://bugs.webkit.org/show_bug.cgi?id=136997
2067 Reviewed by Gustavo Noronha Silva.
2069 * UIProcess/API/gtk/WebKitLoaderClient.cpp:
2070 (attachLoaderClientToView): Remove implementation of
2071 didReceiveTitleForFrame, didStartProgress, didChangeProgress and
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:
2083 2014-10-08 Carlos Garcia Campos <cgarcia@igalia.com>
2085 Race condition with WebKitWebView:is-loading after starting page load
2086 https://bugs.webkit.org/show_bug.cgi?id=136692
2088 Reviewed by Gustavo Noronha Silva.
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.
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
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:
2122 2014-10-08 Christophe Dumez <cdumez@apple.com>
2124 Use is<>() / downcast<>() for RenderBlock objects
2125 https://bugs.webkit.org/show_bug.cgi?id=137512
2127 Reviewed by Darin Adler.
2129 Use is<>() / downcast<>() for RenderBlock objects and clean up the
2132 * WebProcess/WebPage/ios/WebPageIOS.mm:
2133 (WebKit::WebPage::rangeForWebSelectionAtPosition):
2134 (WebKit::WebPage::contractedRangeFromHandle):
2136 2014-10-08 Ada Chan <adachan@apple.com>
2138 Implement WKPageIsPlayingAudio().
2139 https://bugs.webkit.org/show_bug.cgi?id=137048
2141 Reviewed by Darin Adler.
2143 * UIProcess/API/C/WKPage.cpp:
2144 (WKPageIsPlayingAudio):
2146 2014-10-08 Gyuyoung Kim <gyuyoung.kim@samsung.com>
2148 [EFL][CoordinatedGraphics] All EFL layout tests are broken since r174231
2149 https://bugs.webkit.org/show_bug.cgi?id=137443
2151 Reviewed by Zoltan Herczeg.
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.
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:
2169 2014-10-08 Commit Queue <commit-queue@webkit.org>
2171 Unreviewed, rolling out r174335.
2172 https://bugs.webkit.org/show_bug.cgi?id=137515
2174 It broke EFL layout test totally (Requested by gyuyoung on
2179 "[EFL] Introduce EWebKit_Extension"
2180 https://bugs.webkit.org/show_bug.cgi?id=134921
2181 http://trac.webkit.org/changeset/174335
2183 2014-10-08 Carlos Garcia Campos <cgarcia@igalia.com>
2185 [GTK] Make forwarding headers generation depend on source code
2186 https://bugs.webkit.org/show_bug.cgi?id=137394
2188 Reviewed by Philippe Normand.
2190 Only run generate-forwarding-headers.pl when source code changes
2191 and use a different target for the symlinks.
2193 * PlatformGTK.cmake:
2195 2014-10-07 Pascal Jacquemart <p.jacquemart@samsung.com>
2197 [EFL] Enable custom URI schemes with CustomProtocols
2198 https://bugs.webkit.org/show_bug.cgi?id=128177
2200 Reviewed by Gyuyoung Kim.
2202 Fixing ewk_context_url_scheme_register() ewebkit2 API
2203 rely on r162449 - CustomProtocols implementation from Carlos Garcia Campos
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:
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):
2228 2014-10-07 Sungmann Cho <sungmann.cho@navercorp.com>
2230 Remove WKPageCreateSnapshotOfVisibleContent API.
2231 https://bugs.webkit.org/show_bug.cgi?id=66979
2233 Reviewed by Darin Adler.
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.
2240 * UIProcess/API/C/WKPage.cpp:
2241 (WKPageCreateSnapshotOfVisibleContent): Deleted.
2242 * UIProcess/API/C/WKPagePrivate.h:
2244 2014-10-07 Sungmann Cho <sungmann.cho@navercorp.com>
2246 Remove WKPageSetInvalidMessageFunction.
2247 https://bugs.webkit.org/show_bug.cgi?id=137509
2249 Reviewed by Benjamin Poulain.
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.
2256 * UIProcess/API/C/WKPage.cpp:
2257 (WKPageSetInvalidMessageFunction): Deleted.
2258 * UIProcess/API/C/WKPagePrivate.h:
2260 2014-10-07 Christophe Dumez <cdumez@apple.com>
2262 [WK2] Use is<>() / downcast<>() for DrawingArea subclasses
2263 https://bugs.webkit.org/show_bug.cgi?id=137497
2265 Reviewed by Benjamin Poulain.
2267 Use is<>() / downcast<>() for DrawingArea subclasses.
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:
2277 2014-10-07 Simon Fraser <simon.fraser@apple.com>
2279 Roll-over Changelogs.
2281 * ChangeLog-2014-10-07: Copied from Source/WebKit2/ChangeLog.
2283 == Rolled over to ChangeLog-2014-10-07 ==