1 2014-08-28 Tim Horton <timothy_horton@apple.com>
3 WebKit2 doesn't support viewer services that accept image attachments
4 https://bugs.webkit.org/show_bug.cgi?id=136349
5 <rdar://problem/18164606>
7 Reviewed by Brady Eidson.
9 * Shared/WebProcessCreationParameters.cpp:
10 (WebKit::WebProcessCreationParameters::encode):
11 (WebKit::WebProcessCreationParameters::decode):
12 Encode the already-existing parameter.
14 2014-08-28 Zalan Bujtas <zalan@apple.com>
16 Subpixel layout: Remove unused pixel snapping functions.
17 https://bugs.webkit.org/show_bug.cgi?id=136341
19 Reviewed by Simon Fraser.
21 Let's not encourage integral snapping by having these functions around.
23 No change in functionality.
25 * Shared/WebRenderObject.cpp:
26 (WebKit::WebRenderObject::WebRenderObject):
28 2014-08-27 Enrica Casucci <enrica@apple.com>
30 textStylingAtPosition returns incorrect values after executing toggleBold, toggleItalic and toggleUnderline.
31 https://bugs.webkit.org/show_bug.cgi?id=136323
32 rdar://problem/18141964
34 Reviewed by Antti Koivisto.
36 For underline style we need to check typingStyle first and use that information to populate
37 the dictionary. If there is no typing style we can use the render style.
38 We also need to update the editor state for the toggle commands to reflect the state in the UIProcess
39 even for commands that don't change the selection.
41 * WebProcess/WebPage/WebPage.cpp:
42 (WebKit::WebPage::editorState):
43 * WebProcess/WebPage/ios/WebPageIOS.mm:
44 (WebKit::WebPage::executeEditCommandWithCallback):
46 2014-08-28 Carlos Garcia Campos <cgarcia@igalia.com>
48 [GTK] Add webkit_uri_response_get_http_headers to WebKit2 GTK+ API
49 https://bugs.webkit.org/show_bug.cgi?id=136248
51 Reviewed by Gustavo Noronha Silva.
53 Add webkit_uri_response_get_http_headers() that returns the HTTP
54 headers as a SoupMessageHeaders* like webkit_uri_request_get_http_headers().
56 * UIProcess/API/gtk/WebKitURIResponse.cpp:
57 (webkitURIResponseGetProperty): Add http-headers property getter.
58 (webkit_uri_response_class_init): Add http-headers property.
59 (webkit_uri_response_get_http_headers): Return the HTTP headers as
60 a SoupMessageHeaders* or NULL for non HTTP responses.
61 * UIProcess/API/gtk/WebKitURIResponse.h:
62 * UIProcess/API/gtk/docs/webkit2gtk-sections.txt: Add new symbol.
64 2014-08-27 Zalan Bujtas <zalan@apple.com>
66 Subpixel layout: Rename LayoutRect's device pixel snapping functions.
67 https://bugs.webkit.org/show_bug.cgi?id=136319
69 Reviewed by Simon Fraser.
71 From pixelSnappedForPainting() to snapRectToDevicePixels() and
72 pixelSnappedIntRect*() to snappedIntRect*().
74 No change in functionality.
76 * WebProcess/InjectedBundle/DOM/InjectedBundleNodeHandle.cpp:
77 (WebKit::InjectedBundleNodeHandle::renderedImage):
78 * WebProcess/WebPage/WebPage.cpp:
79 (WebKit::WebPage::snapshotNode):
80 * WebProcess/WebPage/mac/ServicesOverlayController.mm:
81 (WebKit::ServicesOverlayController::buildSelectionHighlight):
83 2014-08-27 Zalan Bujtas <zalan@apple.com>
85 Subpixel layout: Rename FloatPoint/FloatRect device pixel snapping functions.
86 https://bugs.webkit.org/show_bug.cgi?id=136314
88 Reviewed by Simon Fraser.
90 From *edToDevicePixels() to *PointToDevicePixels() (* = floor/round/ceil)
92 EnclosedIntRect -> enclosingIntRect() changes functionality for InspectorOverlay painting,
93 but currently untestable.
95 * UIProcess/ios/WKContentViewInteraction.mm:
96 (-[WKContentView _updateTapHighlight]):
98 2014-08-27 Tim Horton <timothy_horton@apple.com>
100 WebKit2 swipe gesture should report the position of the snapshot to the client
101 https://bugs.webkit.org/show_bug.cgi?id=136308
102 rdar://problem/18105827
104 Reviewed by Simon Fraser.
106 * UIProcess/API/Cocoa/WKViewPrivate.h:
107 * UIProcess/API/mac/WKView.mm:
108 (-[WKView _setDidMoveSwipeSnapshotCallback:]):
109 Add _setDidMoveSwipeSnapshotCallback, and plumb it to ViewGestureController.
110 Callers provide a block which is called whenever ViewGestureController moves the
111 swipe *snapshot* layer around.
113 * UIProcess/PageClient.h:
114 * UIProcess/WebPageProxy.h:
115 * UIProcess/mac/PageClientImpl.h:
116 * UIProcess/mac/PageClientImpl.mm:
117 (WebKit::PageClientImpl::boundsOfLayerInLayerBackedWindowCoordinates):
118 * UIProcess/mac/WebPageProxyMac.mm:
119 (WebKit::WebPageProxy::boundsOfLayerInLayerBackedWindowCoordinates):
120 Expose a Mac-only way to get the bounds of a given CALayer in window coordinates,
121 respecting transforms. This only works for layer-backed windows because
122 it uses CA in order to do the mapping respecting transforms.
124 * UIProcess/mac/ViewGestureController.h:
125 * UIProcess/mac/ViewGestureControllerMac.mm:
126 (WebKit::ViewGestureController::ViewGestureController):
127 (WebKit::ViewGestureController::~ViewGestureController):
128 (WebKit::ViewGestureController::setDidMoveSwipeSnapshotCallback):
129 Do the Block_copy and Block_release dance to keep our copy of the callback block.
131 (WebKit::ViewGestureController::beginSwipeGesture):
132 (WebKit::ViewGestureController::handleSwipeGesture):
133 (WebKit::ViewGestureController::didMoveSwipeSnapshotLayer):
134 When the swipe snapshot layer moves around, call the block.
136 2014-08-27 Tim Horton <timothy_horton@apple.com>
138 Occasional crashes in commitTransientZoom's transaction completion block
139 https://bugs.webkit.org/show_bug.cgi?id=136309
140 <rdar://problem/17215064>
142 Reviewed by Dan Bernstein.
144 * WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.mm:
145 (WebKit::TiledCoreAnimationDrawingArea::commitTransientZoom):
146 Hold a reference to zoomLayer and the WebPage. It's possible that either
147 of these things could have gone away by the time the transaction is committed.
149 2014-08-27 Benjamin Poulain <bpoulain@apple.com>
151 [iOS WK2] Provide a delegate callback to skip Geolocation authorization per page for WebApp
152 https://bugs.webkit.org/show_bug.cgi?id=136243
154 Reviewed by Sam Weinig.
156 Just ask the UI if the authorization dialog needs to be skipped.
158 * UIProcess/API/Cocoa/WKUIDelegate.h:
159 * UIProcess/API/Cocoa/WKUIDelegatePrivate.h:
160 * UIProcess/ios/PageClientImplIOS.mm:
161 (WebKit::PageClientImpl::decidePolicyForGeolocationPermissionRequest):
163 * UIProcess/ios/WKContentView.h:
164 * UIProcess/ios/WKContentView.mm:
165 (-[WKContentView _decidePolicyForGeolocationRequestFromOrigin:frame:request:]): Deleted.
166 The code in WKContentView only exists due to legacy. Instead, the PageClient dispatch the request
167 to the GeolocationProvider directly.
169 * UIProcess/ios/WKGeolocationProviderIOS.h:
170 * UIProcess/ios/WKGeolocationProviderIOS.mm:
171 (-[WKGeolocationProviderIOS decidePolicyForGeolocationRequestFromOrigin:frame:request:view:]):
172 (-[WKGeolocationProviderIOS geolocationAuthorizationGranted]):
173 (-[WKGeolocationProviderIOS positionChanged:]):
174 (-[WKGeolocationProviderIOS decidePolicyForGeolocationRequestFromOrigin:frame:request:window:]): Deleted.
176 2014-08-27 Beth Dakin <bdakin@apple.com>
178 overflow:scroll elements should not latch to the body if the body is
180 https://bugs.webkit.org/show_bug.cgi?id=136273
182 Reviewed by Darin Adler.
184 New ScrollabeArea virtual function.
185 * WebProcess/Plugins/PDF/PDFPlugin.h:
187 2014-08-26 Matt Lilek <mrl@apple.com>
189 Add WebKit SPI to control the navigator.standalone property
190 https://bugs.webkit.org/show_bug.cgi?id=136189
192 Reviewed by Andy Estes.
194 Add a property to WKPreferences that allows toggling this setting.
196 * UIProcess/API/Cocoa/WKPreferences.mm:
197 (-[WKPreferences _isStandalone]):
198 (-[WKPreferences _setStandalone:]):
199 * UIProcess/API/Cocoa/WKPreferencesPrivate.h:
201 2014-08-26 Joseph Pecoraro <pecoraro@apple.com>
203 FileReader cannot read files selected with <input type="file"> in iOS 8
204 https://bugs.webkit.org/show_bug.cgi?id=136117
206 Reviewed by Alexey Proskuryakov.
208 * Resources/SandboxProfiles/ios/com.apple.WebKit.Networking.sb:
209 Correct an overzealous deny that was accidentally denying all
210 com.apple.app-sandbox.read extensions instead of just the ones
211 in Application bundles it was trying to deny.
213 2014-08-26 Tim Horton <timothy_horton@apple.com>
215 Crashes in ViewGestureController::beginSwipeGesture when swiping in rapid succession
216 https://bugs.webkit.org/show_bug.cgi?id=136271
217 <rdar://problem/17923694>
219 Reviewed by Simon Fraser.
221 It was possible to get into trackSwipeGesture while another swipe was still
222 occurring, because the guard against this happening depended on m_pendingSwipeReason
223 never being set while a swipe was occurring. However, if the very first scroll event
224 had sufficient magnitude, we would still set m_pendingSwipeReason to InsufficientMagnitude,
225 and then *never clear it*, leading to a path around the guard against multiple live swipes.
226 This in turn allowed stale layers in m_liveSwipeLayers, which lead to the crash.
228 * UIProcess/mac/ViewGestureControllerMac.mm:
229 (WebKit::ViewGestureController::handleScrollWheelEvent):
230 Don't unset m_pendingSwipeReason before calling trackSwipeGesture;
231 trackSwipeGesture will do it itself.
233 Don't set m_pendingSwipeReason to InsufficientMagnitude
234 if the event actually *has* sufficient magnitude to start a swipe.
236 (WebKit::ViewGestureController::trackSwipeGesture):
237 Assert that we don't have an active gesture while starting a swipe.
239 Reset m_pendingSwipeReason, because the swipe is no longer pending!
241 2014-08-26 Andy Estes <aestes@apple.com>
243 [Cocoa] Some projects are incorrectly installed to $BUILT_PRODUCTS_DIR
244 https://bugs.webkit.org/show_bug.cgi?id=136267
246 Reviewed by Dan Bernstein.
248 INSTALL_PATH was set to $BUILT_PRODUCTS_DIR for engineering configurations in r20225 as part of a build fix.
249 Not only is this no longer necessary to build, but it causes built products to be incorrectly installed in
250 engineering configurations.
252 Remove the setting of INSTALL_PATH from the pbxproj file so that the value specified in the xcconfig files is
255 * WebKit2.xcodeproj/project.pbxproj:
257 2014-08-25 Maciej Stachowiak <mjs@apple.com>
259 Replace use of WKCopyCFLocalizationPreferredName with NSLocale public API
260 https://bugs.webkit.org/show_bug.cgi?id=136082
262 Reviewed by Alexey Proskuryakov.
264 * UIProcess/Launcher/mac/ProcessLauncherMac.mm:
265 (WebKit::connectToService): Remove accidental leftover retrieval
267 (WebKit::createProcess): Get current localization name from
268 CFBundle API instead of using SPI.
269 * WebProcess/WebCoreSupport/mac/WebSystemInterface.mm:
270 (InitWebCoreSystemInterface): Remove mention of WKCopyCFLocalizationPreferredName
271 * mac/WebKit2.order: ditto
273 2014-08-26 Dana Burkart <dburkart@apple.com>
275 The UNUSED_PARAM macros in ServicesOverlayController.mm are causing ASan build failures.
276 https://bugs.webkit.org/show_bug.cgi?id=136262
278 Reviewed by David Kilzer.
280 * WebProcess/WebPage/mac/ServicesOverlayController.mm:
281 (WebKit::ServicesOverlayController::selectionRectsDidChange):
282 (WebKit::ServicesOverlayController::selectedTelephoneNumberRangesChanged):
284 2014-08-26 Csaba Osztrogonác <ossy@webkit.org>
286 [EFL] URTBF after r172966.
288 * UIProcess/efl/WebViewEfl.h:
290 2014-08-26 Carlos Alberto Lopez Perez <clopez@igalia.com>
292 REGRESSION(r172966) [GTK] Build broken.
294 Unreviewed build fix after r172966.
296 * UIProcess/API/gtk/PageClientImpl.cpp:
297 (WebKit::PageClientImpl::didSameDocumentNavigationForMainFrame):
298 * UIProcess/API/gtk/PageClientImpl.h:
300 2014-08-26 Simon Fraser <simon.fraser@apple.com>
302 Crashes in hit testing under WebPage::determinePrimarySnapshottedPlugIn()
303 https://bugs.webkit.org/show_bug.cgi?id=136240
304 rdar://problem/17231462
306 Reviewed by Darin Adler.
308 determinePrimarySnapshottedPlugIn() does render tree hit testing, so needs
309 to ensure that layout is up-to-date.
311 * WebProcess/WebPage/WebPage.cpp:
312 (WebKit::WebPage::determinePrimarySnapshottedPlugIn):
314 2014-08-26 Tim Horton <timothy_horton@apple.com>
316 REGRESSION (r172771): Amazon product page becomes unresponsive after swiping back to it
317 https://bugs.webkit.org/show_bug.cgi?id=136260
318 <rdar://problem/18107826>
320 Reviewed by Dan Bernstein.
322 Previously, when a swipe ended up performing a same-document navigation,
323 we would never get didFinishLoadForMainFrame nor didFirstVisuallyNonEmptyLayoutForMainFrame
324 nor would we even get didHitRenderTreeSizeThreshold in all cases, so we would never
325 remove the swipe snapshot. Previous implementations removed the snapshot on
326 didSameDocumentNavigation for the main frame if the navigation type was Replace or Pop,
327 so we will match that behavior.
329 Also, reinstate the watchdog that starts at swipe-end which would have prevented
330 this bug from forever breaking the view it was associated with.
332 Also, defend against removing the snapshot before the swipe has finished (before
333 we have even caused the navigation that we're watching for the effects of).
335 * UIProcess/API/mac/WKView.mm:
336 (-[WKView _didSameDocumentNavigationForMainFrame:]):
337 * UIProcess/API/mac/WKViewInternal.h:
338 * UIProcess/PageClient.h:
339 * UIProcess/WebPageProxy.cpp:
340 (WebKit::WebPageProxy::didSameDocumentNavigationForFrame):
341 * UIProcess/ios/PageClientImplIOS.h:
342 * UIProcess/ios/PageClientImplIOS.mm:
343 (WebKit::PageClientImpl::didSameDocumentNavigationForMainFrame):
344 * UIProcess/mac/PageClientImpl.h:
345 * UIProcess/mac/PageClientImpl.mm:
346 (WebKit::PageClientImpl::didSameDocumentNavigationForMainFrame):
347 Plumb main-frame same-document navigation notification from WebPageProxy
348 to ViewGestureControllerMac via PageClient and WKView.
350 * UIProcess/mac/ViewGestureController.h:
351 * UIProcess/mac/ViewGestureControllerMac.mm:
352 (WebKit::ViewGestureController::ViewGestureController):
353 (WebKit::ViewGestureController::beginSwipeGesture):
354 (WebKit::ViewGestureController::endSwipeGesture):
355 Keep track of whether a swipe is currently occurring. We can't use
356 activeGestureType for this because the swipe currently remains the "active"
357 gesture until the snapshot is removed.
359 Reintroduce the old swipeWatchdogTimer (and rename the shorter timer that starts
360 when we get a visually non-empty layout) so that we will always remove the
361 snapshot after 5 seconds, even if we haven't committed the load.
362 This could lead to flashing back to the old content if we fail to get a single
363 byte for 5 seconds, but that is a rare case and should eventually get additional
364 special treatment (dropping the tiles until we do get content, or some such).
366 (WebKit::ViewGestureController::didHitRenderTreeSizeThreshold):
367 If a swipe is still in progress, we haven't done our navigation and thus
368 don't care about render tree size changes.
370 (WebKit::ViewGestureController::didFirstVisuallyNonEmptyLayoutForMainFrame):
371 If a swipe is still in progress, we haven't done our navigation and thus
372 don't care about layouts.
374 Stop the 5 second overall watchdog if we start the 3 second after-visuallyNonEmptyLayout
375 watchdog. This means that the snapshot could stay up for a maximum of 8 seconds
376 for a very, very slow load.
378 (WebKit::ViewGestureController::didFinishLoadForMainFrame):
379 If a swipe is still in progress, we haven't done our navigation and thus
380 don't care about loads that complete.
382 (WebKit::ViewGestureController::didSameDocumentNavigationForMainFrame):
383 Remove the swipe snapshot after painting if we do replaceState or popState.
385 (WebKit::ViewGestureController::removeSwipeSnapshotAfterRepaint):
386 If a swipe is still in progress, we shouldn't remove the snapshot yet.
388 2014-08-26 Carlos Garcia Campos <cgarcia@igalia.com>
390 [GTK] Translations are not initialized in the UI process
391 https://bugs.webkit.org/show_bug.cgi?id=136249
393 Reviewed by Philippe Normand.
395 This is breaking things like webkitContextMenuActionGetForContextMenuItem()
396 for non English locales in the cases where we use the action title to guess the
397 action, because the action title we get from the web process is translated while
398 the one in the UI process is in English.
400 * UIProcess/API/gtk/WebKitWebContext.cpp:
401 (createDefaultWebContext): Initialize gettext right before
402 creating the default web context.
404 2014-08-26 Ryuan Choi <ryuan.choi@samsung.com>
406 [EFL] Remove dead code in WebPageEfl.cpp
407 https://bugs.webkit.org/show_bug.cgi?id=136246
409 Reviewed by Gyuyoung Kim.
411 * WebProcess/WebPage/efl/WebPageEfl.cpp:
412 (WebKit::scroll): Deleted.
414 2014-08-26 Ryuan Choi <ryuan.choi@samsung.com>
416 [EFL] Build break using clang
417 https://bugs.webkit.org/show_bug.cgi?id=136245
419 Reviewed by Gyuyoung Kim.
421 * PlatformEfl.cmake: defines GTEST_HAS_RTTI=0
423 2014-08-25 Zalan Bujtas <zalan@apple.com>
425 Subpixel layout: remove roundedLayoutPoint/roundedLayoutSize functions.
426 https://bugs.webkit.org/show_bug.cgi?id=136236
428 Reviewed by Simon Fraser.
430 These functions simply call LayoutPoint/LayoutSize c'tors. They don't round the input value at all.
432 Non change in functionality.
434 * UIProcess/ios/WebPageProxyIOS.mm:
435 (WebKit::WebPageProxy::computeCustomFixedPositionRect):
437 2014-08-25 Antti Koivisto <antti@apple.com>
439 Don't pass priority as parameter to ResourceLoadScheduler
440 https://bugs.webkit.org/show_bug.cgi?id=136232
442 Reviewed by Sam Weinig.
444 * NetworkProcess/NetworkResourceLoader.cpp:
445 (WebKit::NetworkResourceLoader::NetworkResourceLoader):
446 * NetworkProcess/NetworkResourceLoader.h:
447 (WebKit::NetworkResourceLoader::priority): Deleted.
448 * Shared/Network/NetworkResourceLoadParameters.cpp:
449 (WebKit::NetworkResourceLoadParameters::NetworkResourceLoadParameters):
450 (WebKit::NetworkResourceLoadParameters::encode):
451 (WebKit::NetworkResourceLoadParameters::decode):
452 * Shared/Network/NetworkResourceLoadParameters.h:
453 * WebProcess/Network/WebResourceLoadScheduler.cpp:
454 (WebKit::WebResourceLoadScheduler::scheduleSubresourceLoad):
455 (WebKit::WebResourceLoadScheduler::schedulePluginStreamLoad):
456 (WebKit::WebResourceLoadScheduler::scheduleLoad):
457 * WebProcess/Network/WebResourceLoadScheduler.h:
458 * WebProcess/WebCoreSupport/WebPlatformStrategies.cpp:
459 (WebKit::WebPlatformStrategies::loadResourceSynchronously):
461 2014-08-25 Brady Eidson <beidson@apple.com>
463 Don't crash when the DataDetectors framework is unavailable.
464 <rdar://problem/18106066> and https://bugs.webkit.org/show_bug.cgi?id=136234
466 Reviewed by Tim Horton.
468 * WebProcess/WebPage/mac/ServicesOverlayController.mm:
469 (WebKit::ServicesOverlayController::buildPhoneNumberHighlights): Bail if DD.framework didn’t soft link.
470 (WebKit::ServicesOverlayController::buildSelectionHighlight): Ditto.
472 2014-08-25 Antti Koivisto <antti@apple.com>
474 Remove load scheduling code from network process
475 https://bugs.webkit.org/show_bug.cgi?id=136199
477 Reviewed by Darin Adler.
479 Most platforms just flush resource loads directly to the networking layer by
480 making the parallel load count large. Also we always pass ResourceLoadPriorityHighest
481 to the scheduler so no actual scheduling happens. This is effectively dead code.
483 Keep basic support for serializing loads. This is only used for testing.
485 * NetworkProcess/HostRecord.cpp: Removed.
486 * NetworkProcess/HostRecord.h: Removed.
487 * NetworkProcess/NetworkConnectionToWebProcess.cpp:
488 (WebKit::NetworkConnectionToWebProcess::servePendingRequests):
489 * NetworkProcess/NetworkProcess.cpp:
490 (WebKit::NetworkProcess::getNetworkProcessStatistics):
491 * NetworkProcess/NetworkResourceLoadScheduler.cpp:
492 (WebKit::NetworkResourceLoadScheduler::NetworkResourceLoadScheduler):
493 (WebKit::NetworkResourceLoadScheduler::scheduleLoader):
494 (WebKit::NetworkResourceLoadScheduler::removeLoader):
495 (WebKit::NetworkResourceLoadScheduler::loadsPendingCount):
496 (WebKit::NetworkResourceLoadScheduler::loadsActiveCount):
497 (WebKit::NetworkResourceLoadScheduler::scheduleServePendingRequests): Deleted.
498 (WebKit::NetworkResourceLoadScheduler::requestTimerFired): Deleted.
499 (WebKit::NetworkResourceLoadScheduler::hostForURL): Deleted.
500 (WebKit::NetworkResourceLoadScheduler::receivedRedirect): Deleted.
501 (WebKit::NetworkResourceLoadScheduler::servePendingRequests): Deleted.
502 (WebKit::NetworkResourceLoadScheduler::removeScheduledLoaders): Deleted.
503 (WebKit::NetworkResourceLoadScheduler::scheduleRemoveLoader): Deleted.
504 (WebKit::NetworkResourceLoadScheduler::hostsPendingCount): Deleted.
505 (WebKit::NetworkResourceLoadScheduler::hostsActiveCount): Deleted.
506 * NetworkProcess/NetworkResourceLoadScheduler.h:
507 * NetworkProcess/NetworkResourceLoader.cpp:
508 (WebKit::NetworkResourceLoader::~NetworkResourceLoader):
509 (WebKit::NetworkResourceLoader::cleanup):
510 (WebKit::NetworkResourceLoader::continueWillSendRequest):
511 * NetworkProcess/NetworkResourceLoader.h:
512 (WebKit::NetworkResourceLoader::isLoadingMainResource):
513 (WebKit::NetworkResourceLoader::setHostRecord): Deleted.
514 (WebKit::NetworkResourceLoader::hostRecord): Deleted.
515 * NetworkProcess/mac/NetworkResourceLoadSchedulerMac.mm:
516 (WebKit::NetworkResourceLoadScheduler::platformInitializeNetworkSettings):
517 (WebKit::NetworkResourceLoadScheduler::platformInitializeMaximumHTTPConnectionCountPerHost): Deleted.
518 * NetworkProcess/soup/NetworkResourceLoadSchedulerSoup.cpp:
519 (WebKit::NetworkResourceLoadScheduler::platformInitializeNetworkSettings):
520 (WebKit::NetworkResourceLoadScheduler::platformInitializeMaximumHTTPConnectionCountPerHost): Deleted.
521 * WebKit2.xcodeproj/project.pbxproj:
523 2014-08-25 Carlos Garcia Campos <cgarcia@igalia.com>
525 [GTK] Older versions of WebKit should use the plugins cache in read only mode
526 https://bugs.webkit.org/show_bug.cgi?id=136215
528 Reviewed by Philippe Normand.
530 Now that WebKitGTK+ 2.4 and 2.5 are parallel installable, since
531 they use different versions of the plugins cache, apps using 2.4
532 might override the plugins cache file. We should prevent this from
533 happening by making older versions use the plugin cache, but not
536 * UIProcess/Plugins/gtk/PluginInfoCache.cpp:
537 (WebKit::PluginInfoCache::PluginInfoCache):
538 (WebKit::PluginInfoCache::updatePluginInfo):
539 * UIProcess/Plugins/gtk/PluginInfoCache.h:
541 2014-08-25 Carlos Garcia Campos <cgarcia@igalia.com>
543 [GTK] Should check if a plugin mixes GTK+ symbols earlier
544 https://bugs.webkit.org/show_bug.cgi?id=136214
546 Reviewed by Philippe Normand.
548 We are currently checking if the plugin module and the plugin
549 process mix GTK symbols after the plugin has been loaded and
550 initialized. This is too late in many cases, since plugins can use
551 GTK methods in the NP_Initialize implementation. This is causing
552 the apps using WebKitGTK+ 2.4 to freeze when the plugin process
553 scans the plugins and there's a plugin using GTK+3 installed. We
554 should move the check earlier, once the module is loaded but
555 before calling NP_Initialize.
557 * Shared/Plugins/Netscape/NetscapePluginModule.cpp:
558 (WebKit::moduleMixesGtkSymbols):
559 (WebKit::NetscapePluginModule::tryLoad):
560 * WebProcess/Plugins/Netscape/x11/NetscapePluginX11.cpp:
561 (WebKit::NetscapePlugin::platformPostInitialize):
563 2014-08-25 Zan Dobersek <zdobersek@igalia.com>
565 Improve virtual method declarations in LayerTreeHostGtk
566 https://bugs.webkit.org/show_bug.cgi?id=136210
568 Reviewed by Carlos Garcia Campos.
570 Mark the LayerTreeHostGtk class as final in the virtual inheritance hierarchy.
572 Order the public and private virtual method overrides from the LayerTreeHost
573 and GraphicsLayerClient interfaces. Explicitly mark them as overriding the
576 Remove the overriding notifyAnimationStarted() and notifyFlushRequired()
577 methods since they are identical to the methods in the base class.
579 De-virtualize flushPendingLayerChanges(). It's not inherited and is not
580 overriden by anything (and nothing can inherit from LayerTreeHostGtk from
581 now on due to the final specifier).
583 * WebProcess/WebPage/gtk/LayerTreeHostGtk.cpp:
584 (WebKit::LayerTreeHostGtk::notifyAnimationStarted): Deleted.
585 (WebKit::LayerTreeHostGtk::notifyFlushRequired): Deleted.
586 * WebProcess/WebPage/gtk/LayerTreeHostGtk.h:
587 (WebKit::LayerTreeHostGtk::didCommitChangesForLayer): Deleted.
589 2014-08-24 Brian J. Burg <burg@cs.washington.edu>
591 Remove unused method declarations replaced by WebPage::setViewState
592 https://bugs.webkit.org/show_bug.cgi?id=136180
594 Reviewed by Darin Adler.
596 * WebProcess/WebPage/WebPage.h:
597 Remove setFocused, setActive, setViewIsVisible. No longer used.
599 2014-08-23 Byungseon Shin <sun.shin@lge.com>
601 Unify GraphicsLayer::setContentsToMedia and setContentsToCanvas
602 https://bugs.webkit.org/show_bug.cgi?id=109658
604 Reviewed by Martin Robinson.
606 Based on patch originally written by Tim Horton.
607 Merge setContentsToMedia and setContentsToCanvas into setContentsToPlatformLayer.
609 * Shared/CoordinatedGraphics/CoordinatedGraphicsArgumentCoders.cpp:
610 (IPC::ArgumentCoder<CoordinatedGraphicsLayerState>::encode):
611 (IPC::ArgumentCoder<CoordinatedGraphicsLayerState>::decode):
612 Rename canvas -> platformLayer.
614 2014-08-22 Commit Queue <commit-queue@webkit.org>
616 Unreviewed, rolling out r172866.
617 https://bugs.webkit.org/show_bug.cgi?id=136177
619 Broke iOS build (Requested by othermaciej on #webkit).
623 "Replace use of WKCopyCFLocalizationPreferredName with
625 https://bugs.webkit.org/show_bug.cgi?id=136082
626 http://trac.webkit.org/changeset/172866
628 2014-08-19 Maciej Stachowiak <mjs@apple.com>
630 Replace use of WKCopyCFLocalizationPreferredName with NSLocale public API
631 https://bugs.webkit.org/show_bug.cgi?id=136082
633 Reviewed by Alexey Proskuryakov.
635 * UIProcess/Launcher/mac/ProcessLauncherMac.mm:
636 (WebKit::connectToService): Remove accidental leftover retrieval
638 (WebKit::createProcess): Get current localization name from
639 CFBundle API instead of using SPI.
640 * WebProcess/WebCoreSupport/mac/WebSystemInterface.mm:
641 (InitWebCoreSystemInterface): Remove mention of WKCopyCFLocalizationPreferredName
642 * mac/WebKit2.order: ditto
644 2014-08-22 Daniel Bates <dabates@apple.com>
646 [iOS] Disable ENABLE_IOS_{GESTURE, TOUCH}_EVENTS, and temporarily disable ENABLE_TOUCH_EVENTS
647 and ENABLE_XSLT when building with the iOS public SDK
648 https://bugs.webkit.org/show_bug.cgi?id=135945
650 Reviewed by Andy Estes.
652 * Configurations/FeatureDefines.xcconfig: Disable ENABLE_IOS_{GESTURE, TOUCH}_EVENTS, ENABLE_TOUCH_EVENTS
653 and ENABLE_XSLT when building with the public SDK.
654 * Shared/WebEventConversion.h: Write preprocessor logic in terms of ENABLE(IOS_TOUCH_EVENTS).
655 * WebProcess/WebPage/WebPage.h: Ditto.
657 2014-08-22 Simon Fraser <simon.fraser@apple.com>
659 Implement paint flashing via GraphicsLayers in the WK2 inspector overlay
660 https://bugs.webkit.org/show_bug.cgi?id=136136
662 Reviewed by Sam Weinig, Joseph Pecoraro.
664 Allow InspectorClient to have a custom implementation of showPaintRect(). For
665 WebKit2's WebInspectorClient, implement this by creating a set of GraphicsLayers
666 which are parented in a document overlay, with 0.25s fade-out animations.
668 Also change InspectorInstrumentation::didPaintImpl() to no longer take a GraphicsContext;
669 it makes no sense to paint the paint rects directly into the context of the web page.
670 Now that the paint rects are painted into an overlay, the rectangles need to be converted
671 to root document coordinates, which is done in InspectorInstrumentation::didPaintImpl().
673 Remove the generic InspectorOverlay::drawOutline()-based indicators; they will
674 be reimplemented in a later patch.
676 * WebProcess/WebCoreSupport/WebInspectorClient.cpp:
677 (WebKit::RepaintIndicatorLayerClient::RepaintIndicatorLayerClient):
678 (WebKit::RepaintIndicatorLayerClient::~RepaintIndicatorLayerClient):
679 (WebKit::RepaintIndicatorLayerClient::notifyAnimationEnded):
680 (WebKit::WebInspectorClient::WebInspectorClient):
681 (WebKit::WebInspectorClient::~WebInspectorClient):
682 (WebKit::WebInspectorClient::showPaintRect):
683 (WebKit::WebInspectorClient::animationEndedForLayer):
684 * WebProcess/WebCoreSupport/WebInspectorClient.h:
685 (WebKit::WebInspectorClient::WebInspectorClient): Deleted.
687 2014-08-22 Jon Lee <jonlee@apple.com>
689 Fix iOS build due to r172832 and move RUBBER_BANDING out of FeatureDefines.h
690 https://bugs.webkit.org/show_bug.cgi?id=136157
692 Reviewed by Simon Fraser.
694 * Configurations/FeatureDefines.xcconfig: Add ENABLE(RUBBER_BANDING).
696 2014-08-21 Joseph Pecoraro <pecoraro@apple.com>
698 Possible RetainPtr misuse in WKScriptMessage.mm - could leak
699 https://bugs.webkit.org/show_bug.cgi?id=136140
701 Reviewed by Darin Adler.
703 Adopt a copy into a RetainPtr to avoid leaking.
705 * UIProcess/API/Cocoa/WKScriptMessage.mm:
706 (-[WKScriptMessage _initWithBody:webView:frameInfo:name:]):
708 2014-08-21 Simon Fraser <simon.fraser@apple.com>
710 Add animationDidEnd callbacks on GraphicsLayer
711 https://bugs.webkit.org/show_bug.cgi?id=136084
713 Reviewed by Tim Horton.
715 Hook up GraphicsLayerClient::notifyAnimationEnded() so that code using GraphicsLayers directly
716 can add animations, and know when they finish.
718 * UIProcess/mac/RemoteLayerTreeDrawingAreaProxy.h:
719 * UIProcess/mac/RemoteLayerTreeDrawingAreaProxy.mm:
720 (WebKit::RemoteLayerTreeDrawingAreaProxy::acceleratedAnimationDidEnd):
721 * UIProcess/mac/RemoteLayerTreeHost.h:
722 * UIProcess/mac/RemoteLayerTreeHost.mm:
723 (WebKit::RemoteLayerTreeHost::animationDidEnd):
724 * WebProcess/WebPage/DrawingArea.h:
725 (WebKit::DrawingArea::acceleratedAnimationDidEnd):
726 * WebProcess/WebPage/DrawingArea.messages.in:
727 * WebProcess/WebPage/mac/PlatformCAAnimationRemote.mm:
728 (-[WKAnimationDelegate animationDidStop:finished:]):
729 * WebProcess/WebPage/mac/PlatformCALayerRemote.cpp:
730 (WebKit::PlatformCALayerRemote::animationStarted):
731 (WebKit::PlatformCALayerRemote::animationEnded):
732 * WebProcess/WebPage/mac/PlatformCALayerRemote.h:
733 * WebProcess/WebPage/mac/RemoteLayerTreeContext.h:
734 * WebProcess/WebPage/mac/RemoteLayerTreeContext.mm:
735 (WebKit::RemoteLayerTreeContext::layerWillBeDestroyed):
736 (WebKit::RemoteLayerTreeContext::willStartAnimationOnLayer):
737 (WebKit::RemoteLayerTreeContext::animationDidStart):
738 (WebKit::RemoteLayerTreeContext::animationDidEnd):
739 * WebProcess/WebPage/mac/RemoteLayerTreeDrawingArea.h:
740 * WebProcess/WebPage/mac/RemoteLayerTreeDrawingArea.mm:
741 (WebKit::RemoteLayerTreeDrawingArea::acceleratedAnimationDidEnd):
743 2014-08-21 Zalan Bujtas <zalan@apple.com>
745 Enable SATURATED_LAYOUT_ARITHMETIC.
746 https://bugs.webkit.org/show_bug.cgi?id=136106
748 Reviewed by Simon Fraser.
750 SATURATED_LAYOUT_ARITHMETIC protects LayoutUnit against arithmetic overflow.
751 (No measurable performance regression on Mac.)
753 * Configurations/FeatureDefines.xcconfig:
755 2014-08-21 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
757 [GTK] WebkitWebProcess crashing navigating away from ogg video element
758 https://bugs.webkit.org/show_bug.cgi?id=135348
760 Reviewed by Philippe Normand.
762 When a page is cached, by default doesn't recreate the backing store
763 (an optimization added in r89316).
765 Not all the ports uses that optimization. For example IOS port doesn't
768 In the case of the GTK port, the MediaPlayerPrivateGStreamer, not only
769 processes video buffers, also display them, because it is a
770 TextureMapperPlatformLayer too.
772 Nevertheless, in r153937, when a page is cached, the player is
773 destroyed. But our player has a backing store and the render tree
774 doesn't know that the player has gone. Hence, when the page is redraw,
775 the TextureMapper tree visits the video element, which doesn't exist
776 anymore, a segmentation fault occurs.
778 So, as our media player renders, and as we cannot trust that the
779 player exists when a page is painted, we cannot rely in the r89316
782 Disabling the backing stores optimization fixes the problem.
784 Covered by existing tests.
786 * WebProcess/soup/WebProcessSoup.cpp:
787 (WebKit::WebProcess::platformSetCacheModel): Enable the backing store
788 clearing when page caching for GTK.
790 2014-08-20 Alex Christensen <achristensen@webkit.org>
792 Introducing WEBCORE_EXPORT macro.
793 https://bugs.webkit.org/show_bug.cgi?id=136108
795 Reviewed by Antti Koivisto.
798 Added stub definition of WEBCORE_EXPORT defined to nothing to be able to compile with WebCore headers.
800 2014-08-20 Pratik Solanki <psolanki@apple.com>
802 Move DiskCacheMonitor to WebCore so that WebKit1 clients can use it as well
803 https://bugs.webkit.org/show_bug.cgi?id=135896
805 Reviewed by Andreas Kling.
807 * NetworkProcess/mac/NetworkDiskCacheMonitor.h:
808 Inherit from WebCore::DiskCacheMonitor which has the bulk of the functionality now.
809 (WebKit::NetworkDiskCacheMonitor::~NetworkDiskCacheMonitor):
810 * NetworkProcess/mac/NetworkDiskCacheMonitor.mm:
811 (WebKit::NetworkDiskCacheMonitor::monitorFileBackingStoreCreation):
812 (WebKit::NetworkDiskCacheMonitor::NetworkDiskCacheMonitor):
813 (WebKit::NetworkDiskCacheMonitor::resourceBecameFileBacked):
814 Override virtual method and send the data to the WebContent process as before.
816 2014-08-19 Pratik Solanki <psolanki@apple.com>
818 Remove PurgeableBuffer since it is not very useful any more
819 https://bugs.webkit.org/show_bug.cgi?id=135939
821 Reviewed by Andreas Kling.
823 * WebProcess/WebProcess.cpp:
824 (WebKit::getWebCoreMemoryCacheStatistics):
826 2014-08-19 Peyton Randolph <prandolph@apple.com>
828 Expose injected bundle SPI to get a node's URL element, get the visible selection range of that
829 element, and snapshot that range
830 https://bugs.webkit.org/show_bug.cgi?id=136076
832 Reviewed by Tim Horton.
834 * WebProcess/InjectedBundle/API/c/WKBundleHitTestResult.cpp:
835 (WKBundleHitTestResultCopyURLElementHandle): Added.
836 * WebProcess/InjectedBundle/API/c/WKBundleHitTestResult.h:
837 * WebProcess/InjectedBundle/API/c/WKBundleNodeHandle.cpp:
838 (WKBundleNodeHandleCopyVisibleRange): Added.
839 * WebProcess/InjectedBundle/API/c/WKBundleNodeHandlePrivate.h:
840 * WebProcess/InjectedBundle/API/c/WKBundleRangeHandle.cpp:
841 (WKBundleRangeHandleGetBoundingRectInWindowCoordinates): Added.
842 (WKBundleRangeHandleCopySnapshotWithOptions): Added.
843 * WebProcess/InjectedBundle/API/c/WKBundleRangeHandlePrivate.h:
844 * WebProcess/InjectedBundle/DOM/InjectedBundleNodeHandle.cpp:
845 (WebKit::InjectedBundleNodeHandle::visibleRange): Added.
846 * WebProcess/InjectedBundle/DOM/InjectedBundleNodeHandle.h:
847 * WebProcess/InjectedBundle/DOM/InjectedBundleRangeHandle.cpp:
848 (WebKit::InjectedBundleRangeHandle::boundingRectInWindowCoordinates): Added.
849 (WebKit::InjectedBundleRangeHandle::renderedImage): Added.
850 * WebProcess/InjectedBundle/DOM/InjectedBundleRangeHandle.h:
851 * WebProcess/InjectedBundle/InjectedBundleHitTestResult.cpp:
852 (WebKit::InjectedBundleHitTestResult::urlElementHandle): Added.
853 * WebProcess/InjectedBundle/InjectedBundleHitTestResult.h:
855 2014-08-19 Zalan Bujtas <zalan@apple.com>
857 Remove ENABLE(SUBPIXEL_LAYOUT).
858 https://bugs.webkit.org/show_bug.cgi?id=136077
860 Reviewed by Simon Fraser.
862 Remove compile time flag SUBPIXEL_LAYOUT. All ports have it enabled for a while now.
864 * Configurations/FeatureDefines.xcconfig:
866 2014-08-19 Peyton Randolph <prandolph@apple.com>
868 Extend injected bundle node snapshotting to support forced white and black text
869 https://bugs.webkit.org/show_bug.cgi?id=136061
871 Reviewed by Beth Dakin.
873 * Shared/API/c/WKImage.h:
874 Add -ForceBlackText and -ForceWhiteText snapshotting options.
875 * Shared/API/c/WKSharedAPICast.h:
876 (WebKit::toSnapshotOptions):
877 Support aforementioned text snapshotting options.
878 * Shared/ImageOptions.h:
879 * WebProcess/InjectedBundle/DOM/InjectedBundleNodeHandle.cpp:
880 (WebKit::imageForRect):
881 Respect text color snapshotting options by setting appropriate paint behaviors.
883 2014-08-18 Maciej Stachowiak <mjs@apple.com>
885 Use NSURLFileTypeMappings directly instead of depending on WebKitSystemInterface wrappers for it
886 https://bugs.webkit.org/show_bug.cgi?id=136035
888 Reviewed by Dan Bernstein.
890 * WebProcess/WebCoreSupport/mac/WebSystemInterface.mm:
891 (InitWebCoreSystemInterface): Don't initialize the no-longer-used WKGetExtensionsForMIMEType,
892 WKGetPreferredExtensionForMIMEType, or WKGetMIMETypeForExtension
893 * mac/WebKit2.order: Remove exports related to above.
895 2014-08-18 Commit Queue <commit-queue@webkit.org>
897 Unreviewed, rolling out r172736.
898 https://bugs.webkit.org/show_bug.cgi?id=136060
900 Caused 14% PLT regressions (Requested by rniwa on #webkit).
904 "Remove PurgeableBuffer since it is not very useful any more"
905 https://bugs.webkit.org/show_bug.cgi?id=135939
906 http://trac.webkit.org/changeset/172736
908 2014-08-18 Simon Fraser <simon.fraser@apple.com>
910 Provide default implementations of all GraphicsLayerClient methods
911 https://bugs.webkit.org/show_bug.cgi?id=136054
913 Reviewed by Tim Horton.
915 Remove overrides which are no longer required.
917 * WebProcess/WebPage/PageOverlayController.h:
918 * WebProcess/WebPage/ServicesOverlayController.h:
919 * WebProcess/WebPage/mac/RemoteLayerTreeDrawingArea.h:
921 2014-08-18 Pratik Solanki <psolanki@apple.com>
923 Remove PurgeableBuffer since it is not very useful any more
924 https://bugs.webkit.org/show_bug.cgi?id=135939
926 Reviewed by Geoffrey Garen.
928 * WebProcess/WebProcess.cpp:
929 (WebKit::getWebCoreMemoryCacheStatistics):
931 2014-08-18 Peyton Randolph <prandolph@apple.com>
933 Expose long mouse press WebKit API. Part of 135257 - Add long mouse press gesture
934 https://bugs.webkit.org/show_bug.cgi?id=136048
936 Reviewed by Dan Bernstein.
938 This patch exposes long mouse press API callbacks in both the injected bundle and on the UI process
939 through their respective page UI clients. The callbacks are modeled off of the mouseDidMoveOverElement
940 callback. Like the mouseDidMoveOverElement callback, these callbacks allow the bundle to pass
941 information to the UI process via a userData out parameter.
943 * UIProcess/API/APIUIClient.h:
944 (API::UIClient::didBeginTrackingPotentialLongMousePress): Added.
945 (API::UIClient::didRecognizeLongMousePress): Added.
946 (API::UIClient::didCancelTrackingPotentialLongMousePress): Added.
947 * UIProcess/API/C/WKPage.cpp:
948 (WKPageSetPageUIClient):
949 * UIProcess/API/C/WKPageUIClient.h:
950 * UIProcess/WebPageProxy.cpp:
951 (WebKit::WebPageProxy::didBeginTrackingPotentialLongMousePress): Added.
952 (WebKit::WebPageProxy::didRecognizeLongMousePress): Added.
953 (WebKit::WebPageProxy::didCancelTrackingPotentialLongMousePress): Added.
954 * UIProcess/WebPageProxy.h:
955 * UIProcess/WebPageProxy.messages.in:
956 * WebProcess/InjectedBundle/API/APIInjectedBundlePageUIClient.h:
957 (API::InjectedBundle::PageUIClient::didBeginTrackingPotentialLongMousePress): Added.
958 (API::InjectedBundle::PageUIClient::didRecognizeLongMousePress): Added.
959 (API::InjectedBundle::PageUIClient::didCancelTrackingPotentialLongMousePress): Added.
960 * WebProcess/InjectedBundle/API/c/WKBundlePageUIClient.h:
961 * WebProcess/InjectedBundle/InjectedBundlePageUIClient.cpp: Added.
962 (WebKit::InjectedBundlePageUIClient::didBeginTrackingPotentialLongMousePress): Added.
963 (WebKit::InjectedBundlePageUIClient::didRecognizeLongMousePress): Added.
964 (WebKit::InjectedBundlePageUIClient::didCancelTrackingPotentialLongMousePress): Added.
965 * WebProcess/InjectedBundle/InjectedBundlePageUIClient.h:
966 * WebProcess/WebCoreSupport/WebChromeClient.cpp:
967 (WebKit::WebChromeClient::didBeginTrackingPotentialLongMousePress): Added.
968 (WebKit::WebChromeClient::didRecognizeLongMousePress): Added.
969 (WebKit::WebChromeClient::didCancelTrackingPotentialLongMousePress): Added.
970 * WebProcess/WebCoreSupport/WebChromeClient.h:
972 2014-08-18 Przemyslaw Kuczynski <p.kuczynski@samsung.com>
974 Fix unintentional integer overflow before widen
975 https://bugs.webkit.org/show_bug.cgi?id=135463
977 Reviewed by Oliver Hunt.
979 Overflowing expression is evaluated using operands arithmetic but then is used in
980 context which expects an wider integer type. To avoid overflow at least one operand
981 has to be representative of the wider type.
983 * WebProcess/soup/WebProcessSoup.cpp:
984 (WebKit::getMemorySize): Added long long literal.
986 2014-08-18 Przemyslaw Kuczynski <p.kuczynski@samsung.com>
988 Fix resource leak in unclosed file descriptor handles
989 https://bugs.webkit.org/show_bug.cgi?id=135458
991 Reviewed by Oliver Hunt.
993 Leaving descriptor unclosed will cause the resources associated with the open
994 file description never be freed (they are freed on closing the last descriptor
995 refering to the underlying file).
997 * Shared/Plugins/Netscape/x11/NetscapePluginModuleX11.cpp:
998 (WebKit::StdoutDevNullRedirector::StdoutDevNullRedirector): Closed newStdout descriptor.
999 (WebKit::StdoutDevNullRedirector::~StdoutDevNullRedirector): Closed m_savedStdout descriptor.
1001 2014-08-18 Grzegorz Czajkowski <g.czajkowski@samsung.com>
1003 [EFL] ewk_init() is sufficient to initialize EFL components
1004 https://bugs.webkit.org/show_bug.cgi?id=136036
1006 Reviewed by Gyuyoung Kim.
1008 Developers do not have to initialize EFL components as ewk_init()
1011 * UIProcess/API/efl/ewk_intro.h:
1013 2014-08-16 Pratik Solanki <psolanki@apple.com>
1015 Rename DiskCacheMonitor to NetworkDiskCacheMonitor
1016 https://bugs.webkit.org/show_bug.cgi?id=135897
1018 Reviewed by Andreas Kling.
1020 In preparation for moving DiskCacheMonitor code to WebCore in bug 135896, rename the WebKit2
1021 class to NetworkDiskCacheMonitor.
1023 * NetworkProcess/mac/NetworkDiskCacheMonitor.h: Renamed from Source/WebKit2/NetworkProcess/mac/DiskCacheMonitor.h.
1024 (WebKit::NetworkDiskCacheMonitor::resourceRequest):
1025 * NetworkProcess/mac/NetworkDiskCacheMonitor.mm: Renamed from Source/WebKit2/NetworkProcess/mac/DiskCacheMonitor.mm.
1026 (WebKit::NetworkDiskCacheMonitor::monitorFileBackingStoreCreation):
1027 (WebKit::NetworkDiskCacheMonitor::NetworkDiskCacheMonitor):
1028 (WebKit::NetworkDiskCacheMonitor::messageSenderConnection):
1029 (WebKit::NetworkDiskCacheMonitor::messageSenderDestinationID):
1030 * NetworkProcess/mac/NetworkResourceLoaderMac.mm:
1031 (WebKit::NetworkResourceLoader::willCacheResponseAsync):
1032 * WebKit2.xcodeproj/project.pbxproj:
1034 2014-08-16 Byungseon Shin <sun.shin@lge.com>
1036 [GTK] build fails with error: cannot allocate an object of abstract type 'WebKit::PageClientImpl'
1037 https://bugs.webkit.org/show_bug.cgi?id=136017
1039 Reviewed by Gyuyoung Kim.
1041 * UIProcess/API/gtk/PageClientImpl.cpp:
1042 (WebKit::PageClientImpl::didFirstVisuallyNonEmptyLayoutForMainFrame):
1043 (WebKit::PageClientImpl::didFinishLoadForMainFrame):
1044 * UIProcess/API/gtk/PageClientImpl.h:
1046 2014-08-15 Ryuan Choi <ryuan.choi@samsung.com>
1048 [EFL] Add ewk_intro.h to describe main page of doxygen
1049 https://bugs.webkit.org/show_bug.cgi?id=136013
1051 Reviewed by Gyuyoung Kim.
1053 * PlatformEfl.cmake:
1054 * UIProcess/API/efl/EWebKit2.h.in:
1055 * UIProcess/API/efl/ewk_intro.h: Added.
1057 2014-08-15 Zalan Bujtas <zalan@apple.com>
1059 Do not use FloatRect::infiniteRect() to flag full repaints.
1060 https://bugs.webkit.org/show_bug.cgi?id=135900
1062 Reviewed by Simon Fraser.
1064 Converting FloatRect::infiniteRect() to IntRect leads to value overflow
1065 and we end up with invalid repaint rectangle. Use a boolean flag to indicate
1066 full repaint request.
1068 Covered by existing tests.
1070 * WebProcess/WebPage/mac/PlatformCALayerRemote.cpp:
1071 (WebKit::PlatformCALayerRemote::setNeedsDisplayInRect):
1072 (WebKit::PlatformCALayerRemote::setNeedsDisplay):
1073 * WebProcess/WebPage/mac/PlatformCALayerRemote.h:
1074 * WebProcess/WebPage/mac/PlatformCALayerRemoteCustom.h:
1075 * WebProcess/WebPage/mac/PlatformCALayerRemoteCustom.mm:
1076 (WebKit::PlatformCALayerRemoteCustom::setNeedsDisplayInRect):
1077 (WebKit::PlatformCALayerRemoteCustom::setNeedsDisplay):
1078 * WebProcess/WebPage/mac/PlatformCALayerRemoteTiledBacking.cpp:
1079 (WebKit::PlatformCALayerRemoteTiledBacking::setNeedsDisplayInRect):
1080 (WebKit::PlatformCALayerRemoteTiledBacking::setNeedsDisplay):
1081 * WebProcess/WebPage/mac/PlatformCALayerRemoteTiledBacking.h:
1083 2014-08-15 Alexey Proskuryakov <ap@apple.com>
1085 REGRESSION (r172660): WebKit2.TerminateTwice asserts
1086 https://bugs.webkit.org/show_bug.cgi?id=136012
1088 * UIProcess/WebPageProxy.cpp: (WebKit::WebPageProxy::terminateProcess):
1089 Added bug number to a fixme.
1091 2014-08-15 Ryuan Choi <ryuan.choi@samsung.com>
1093 Unreviewed build fix on the EFL port since r172635
1095 * UIProcess/WebPageProxy.cpp: Guard removeNavigationGestureSnapshot with PLATFORM(MAC) macro.
1096 * UIProcess/WebPageProxy.h: Ditto.
1097 * UIProcess/efl/WebViewEfl.h: Added didFirstVisuallyNonEmptyLayoutForMainFrame and didFinishLoadForMainFrame as dummy.
1099 2014-08-15 Alexey Proskuryakov <ap@apple.com>
1101 Improve page to process relationship tracking
1102 https://bugs.webkit.org/show_bug.cgi?id=135996
1103 <rdar://problem/16991213>
1105 Reviewed by Sam Weinig.
1107 * UIProcess/VisitedLinkProvider.cpp:
1108 (WebKit::VisitedLinkProvider::removeAll):
1109 (WebKit::VisitedLinkProvider::pendingVisitedLinksTimerFired):
1110 (WebKit::VisitedLinkProvider::sendTable):
1111 Added assertions for m_processes only having valid entries.
1113 * UIProcess/WebPageProxy.cpp:
1114 (WebKit::WebPageProxy::reattachToWebProcess): When attaching to a new process,
1115 tell the old process that the page is not longer associated with it, avoiding
1116 a potential stale pointer.
1117 If re-attached to an existing process, make sure that we perform all the same
1118 registrations as after having launched a new process. This substantially improves
1119 the behavior when the number of open tabs is over process limit.
1120 (WebKit::WebPageProxy::reattachToWebProcessWithItem): Added ASSERT(!isValid())
1121 to avoid confusion. All other calls to reattachToWebProcess() have this as a
1122 runtime check, but reattachToWebProcessWithItem() is only called for valid pages.
1123 (WebKit::WebPageProxy::terminateProcess): Added an assertion with a FIXME for
1124 something that will need to be fixed another day.
1126 * UIProcess/WebPageProxy.h: Removed an unimplemented function.
1128 * UIProcess/WebProcessProxy.cpp:
1129 (WebKit::WebProcessProxy::addExistingWebPage): Added assertions for page map sanity.
1130 (WebKit::WebProcessProxy::removeWebPage): Added a check for page state being Terminated
1131 already. This avoids an assertion failure that happened under the new call to
1132 removeWebPage() in reattachToWebProcess(), as we are now calling it for terminated
1133 processes that are not in WebContext::m_processes any more.
1134 (WebKit::WebProcessProxy::didFinishLaunching): Added an assertion that page agrees
1135 about using this process.
1137 2014-08-15 Gavin Barraclough <barraclough@apple.com>
1139 Fix plugin visibility check.
1140 https://bugs.webkit.org/show_bug.cgi?id=135991
1142 D'oh, more unreviewed typo fix. :-(
1144 * PluginProcess/PluginControllerProxy.cpp:
1145 (WebKit::PluginControllerProxy::visibilityDidChange):
1146 (WebKit::PluginControllerProxy::windowVisibilityChanged):
1147 (WebKit::PluginControllerProxy::updateVisibilityActivity):
1148 (WebKit::PluginControllerProxy::updateVisiblityActivity): Deleted.
1149 * PluginProcess/PluginControllerProxy.h:
1151 2014-08-15 Wenson Hsieh <wenson_hsieh@apple.com>
1153 Implement snapping behavior for iOS
1154 https://bugs.webkit.org/show_bug.cgi?id=135769
1156 Reviewed by Brent Fulgham.
1158 Added support for snap points on iOS.
1160 * Shared/Scrolling/RemoteScrollingCoordinatorTransaction.cpp:
1161 (ArgumentCoder<ScrollingStateScrollingNode>::encode): Added snap offset encoding.
1162 (ArgumentCoder<ScrollingStateScrollingNode>::decode): Added snap offset decoding.
1163 * UIProcess/API/Cocoa/WKWebView.mm:
1164 (-[WKWebView scrollViewWillEndDragging:withVelocity:targetContentOffset:]): For mainframe scrolling, retargets the scroll destination to the appropriate snap point.
1165 * UIProcess/Scrolling/RemoteScrollingCoordinatorProxy.h: Added methods to extract relevant information for WKWebView from snap offsets in mainframe scrolling.
1166 * UIProcess/Scrolling/ios/ScrollingTreeOverflowScrollingNodeIOS.mm:
1167 (-[WKOverflowScrollViewDelegate scrollViewWillEndDragging:withVelocity:targetContentOffset:]): For overflow scrolling, retargets the scroll destination to the appropriate snap point.
1168 (WebKit::ScrollingTreeOverflowScrollingNodeIOS::updateAfterChildren): Sets the deceleration factor to FAST if snap points are active.
1169 * UIProcess/ios/RemoteScrollingCoordinatorProxyIOS.mm:
1170 (WebKit::RemoteScrollingCoordinatorProxy::adjustTargetContentOffsetForSnapping): Used by WKWebView for mainframe scrolling to retarget the scroll destination, if necessary.
1171 (WebKit::RemoteScrollingCoordinatorProxy::shouldSetScrollViewDecelerationRateFast): Used by WKWebView for mainframe scrolling to determine whether to set deceleration rate to the fast value.
1172 (WebKit::RemoteScrollingCoordinatorProxy::shouldSnapForMainFrameScrolling): Helper method.
1173 (WebKit::RemoteScrollingCoordinatorProxy::closestSnapOffsetForMainFrameScrolling): Helper method.
1175 2014-08-15 Gavin Barraclough <barraclough@apple.com>
1177 Fix plugin visibility check.
1178 https://bugs.webkit.org/show_bug.cgi?id=135991
1180 Unreviewed typo fix.
1182 * PluginProcess/PluginControllerProxy.cpp:
1183 (WebKit::PluginControllerProxy::PluginControllerProxy):
1184 (WebKit::PluginControllerProxy::visibilityDidChange):
1185 (WebKit::PluginControllerProxy::windowVisibilityChanged):
1186 (WebKit::PluginControllerProxy::updateVisibilityActivity):
1187 * PluginProcess/PluginControllerProxy.h:
1189 2014-08-15 Gavin Barraclough <barraclough@apple.com>
1191 Fix plugin visibility check.
1192 https://bugs.webkit.org/show_bug.cgi?id=135991
1194 Reviewed by Andreas Kling.
1196 We should only take a UserActivity if the plugin is in a visible window,
1197 and also is itself visible.
1199 * PluginProcess/PluginControllerProxy.cpp:
1200 (WebKit::PluginControllerProxy::PluginControllerProxy):
1201 - initialize member state.
1202 (WebKit::PluginControllerProxy::visibilityDidChange):
1203 (WebKit::PluginControllerProxy::windowVisibilityChanged):
1204 - update member state & call updateVisibilityActivity.
1205 (WebKit::PluginControllerProxy::updateVisibilityActivity):
1206 - enable the UserActivity only if both visibilities are true.
1207 * PluginProcess/PluginControllerProxy.h:
1208 - added m_isVisible, m_isWindowVisible, updateVisibilityActivity.
1210 2014-08-15 Enrica Casucci <enrica@apple.com>
1212 [Services with UI] Selections are incorrect when selecting three lines.
1213 https://bugs.webkit.org/show_bug.cgi?id=135989
1214 <rdar://problem/18032571>
1216 Reviewed by Tim Horton.
1218 The stitching algorithm did not handle correctly the case of selections
1219 over three lines if the middle line is composed of only one rectangle.
1221 * WebProcess/WebPage/mac/ServicesOverlayController.mm:
1222 (WebKit::stitchRects):
1224 2014-08-15 Tim Horton <timothy_horton@apple.com>
1226 Service overlays stay fixed when <iframe> scrolls
1227 https://bugs.webkit.org/show_bug.cgi?id=135959
1228 <rdar://problem/17957716>
1230 Reviewed by Enrica Casucci.
1232 * WebProcess/WebPage/mac/ServicesOverlayController.mm:
1233 (WebKit::ServicesOverlayController::highlightsAreEquivalent):
1234 Tiny correctness fix; highlights can only be equivalent if their
1235 types are equivalent as well.
1237 2014-08-15 Gavin Barraclough <barraclough@apple.com>
1239 de-PLATFORM(COCOA) a couple of methods in plugin code
1240 https://bugs.webkit.org/show_bug.cgi?id=135987
1242 Reviewed by Sam Weinig.
1244 Pass through the visibility & focus on all platforms, to simplify & avoid
1245 any weird inconsistencies between platforms.
1247 * PluginProcess/PluginControllerProxy.cpp:
1248 (WebKit::PluginControllerProxy::windowFocusChanged):
1249 (WebKit::PluginControllerProxy::windowVisibilityChanged):
1250 * PluginProcess/PluginControllerProxy.h:
1251 * PluginProcess/PluginControllerProxy.messages.in:
1252 * PluginProcess/mac/PluginControllerProxyMac.mm:
1253 (WebKit::PluginControllerProxy::windowFocusChanged): Deleted.
1254 (WebKit::PluginControllerProxy::windowVisibilityChanged): Deleted.
1255 * WebProcess/Plugins/Netscape/NetscapePlugin.cpp:
1256 (WebKit::NetscapePlugin::windowFocusChanged):
1257 (WebKit::NetscapePlugin::windowVisibilityChanged):
1258 * WebProcess/Plugins/Netscape/NetscapePlugin.h:
1259 * WebProcess/Plugins/Plugin.h:
1260 * WebProcess/Plugins/PluginProxy.cpp:
1261 (WebKit::PluginProxy::windowAndViewFramesChanged):
1262 * WebProcess/Plugins/PluginProxy.h:
1263 * WebProcess/Plugins/PluginView.cpp:
1264 (WebKit::PluginView::viewStateDidChange):
1265 (WebKit::PluginView::platformViewStateDidChange): Deleted.
1266 * WebProcess/Plugins/PluginView.h:
1268 2014-08-15 Tim Horton <timothy_horton@apple.com>
1270 Service overlays stay fixed when <iframe> scrolls
1271 https://bugs.webkit.org/show_bug.cgi?id=135959
1272 <rdar://problem/17957716>
1274 Reviewed by Enrica Casucci.
1276 * WebProcess/WebPage/PageOverlay.cpp:
1277 (WebKit::PageOverlay::didScrollFrame):
1278 * WebProcess/WebPage/PageOverlay.h:
1279 (WebKit::PageOverlay::Client::didScrollFrame):
1280 * WebProcess/WebPage/PageOverlayController.cpp:
1281 (WebKit::PageOverlayController::didScrollFrame):
1282 Push didScrollFrame down to the overlays.
1284 * WebProcess/WebPage/ServicesOverlayController.h:
1285 * WebProcess/WebPage/mac/ServicesOverlayController.mm:
1286 (WebKit::ServicesOverlayController::Highlight::createForSelection):
1287 Hold on to the selection's Range so we can use it to compare Highlights later.
1289 (WebKit::ServicesOverlayController::Highlight::Highlight):
1290 (WebKit::ServicesOverlayController::Highlight::setDDHighlight):
1291 Factor the code to set up and paint the highlight out, so that we can
1292 set a new DDHighlightRef on a Highlight and the layer moves/reshapes/repaints.
1294 (WebKit::ServicesOverlayController::buildPhoneNumberHighlights):
1295 (WebKit::ServicesOverlayController::buildSelectionHighlight):
1296 (WebKit::ServicesOverlayController::replaceHighlightsOfTypePreservingEquivalentHighlights):
1297 Factor replaceHighlightsOfTypePreservingEquivalentHighlights out
1298 so that we can use it for buildSelectionHighlight as well.
1300 Steal the DDHighlightRef from the new Highlight when re-using an old one
1301 so that the newly computed rects are used instead of the old ones.
1303 (WebKit::ServicesOverlayController::highlightsAreEquivalent):
1304 We will always have a Range now, so we can always check equivalence using it.
1306 (WebKit::ServicesOverlayController::didScrollFrame):
1307 Rebuild all highlights upon subframe scroll, as they might have moved.
1308 We could optimize this in the future, but for now it's cheap enough
1309 and rare enough that it doesn't matter.
1311 2014-08-15 Tim Horton <timothy_horton@apple.com>
1313 REGRESSION (WebKit2 Gestures): White flash when swiping back to cnn.com's homepage from an article
1314 https://bugs.webkit.org/show_bug.cgi?id=135951
1315 <rdar://problem/18006149>
1317 Reviewed by Simon Fraser.
1319 Wait for (the first visually non-empty layout AND the render tree size threshold to be hit),
1320 OR didFinishLoadForFrame, whichever comes first. Once we've done the first visually non-empty layout,
1321 we'll start the watchdog and tear down the snapshot in three seconds no matter what.
1322 Also, force a repaint so we can asynchronously wait for the Web Process to paint and return to us
1323 before removing the snapshot, which improves our chances that something is actually on the screen.
1325 * UIProcess/API/mac/WKView.mm:
1326 (-[WKView _didFirstVisuallyNonEmptyLayoutForMainFrame]):
1327 (-[WKView _didFinishLoadForMainFrame]):
1328 (-[WKView _removeNavigationGestureSnapshot]):
1329 * UIProcess/API/mac/WKViewInternal.h:
1330 * UIProcess/PageClient.h:
1331 * UIProcess/WebPageProxy.cpp:
1332 (WebKit::WebPageProxy::didFinishLoadForFrame):
1333 (WebKit::WebPageProxy::didFirstVisuallyNonEmptyLayoutForFrame):
1334 (WebKit::WebPageProxy::removeNavigationGestureSnapshot):
1335 * UIProcess/WebPageProxy.h:
1336 * UIProcess/ios/PageClientImplIOS.h:
1337 * UIProcess/ios/PageClientImplIOS.mm:
1338 (WebKit::PageClientImpl::didFirstVisuallyNonEmptyLayoutForMainFrame):
1339 (WebKit::PageClientImpl::didFinishLoadForMainFrame):
1340 * UIProcess/mac/PageClientImpl.h:
1341 * UIProcess/mac/PageClientImpl.mm:
1342 (WebKit::PageClientImpl::didFirstVisuallyNonEmptyLayoutForMainFrame):
1343 (WebKit::PageClientImpl::didFinishLoadForMainFrame):
1344 (WebKit::PageClientImpl::removeNavigationGestureSnapshot):
1345 Plumb didFirstVisuallyNonEmptyLayoutForMainFrame and didFinishLoadForMainFrame
1346 through to ViewGestureController from WebPageProxy via the PageClient, etc.
1348 Ditto for removeNavigationGestureSnapshot, though it is called from a
1349 VoidCallback in ViewGestureController instead of from WebFrameLoaderClient and friends.
1351 * UIProcess/mac/ViewGestureController.h:
1352 * UIProcess/mac/ViewGestureControllerMac.mm:
1353 (WebKit::ViewGestureController::ViewGestureController):
1354 (WebKit::ViewGestureController::endSwipeGesture):
1355 When finishing a swipe, we want to wait for both the first visually non-empty layout
1356 and the render tree size threshold being hit.
1358 (WebKit::ViewGestureController::didHitRenderTreeSizeThreshold):
1359 (WebKit::ViewGestureController::didFirstVisuallyNonEmptyLayoutForMainFrame):
1360 When both of these things have happened, remove the swipe snapshot (after forcing a repaint).
1361 For didFirstVisuallyNonEmptyLayoutForMainFrame, we will also start a watchdog
1362 ensuring that we remove the snapshot in three seconds.
1364 (WebKit::ViewGestureController::didFinishLoadForMainFrame):
1365 When didFinishLoadForMainFrame happens, remove the swipe snapshot (after forcing a repaint).
1367 (WebKit::ViewGestureController::swipeSnapshotWatchdogTimerFired):
1368 If the watchdog timer fires, remove the swipe snapshot (after forcing a repaint).
1370 (WebKit::ViewGestureController::removeSwipeSnapshotAfterRepaint):
1371 Force a repaint and wait for the async callback before removing the snapshot.
1372 It is safe to hold on to the WebPageProxy here because it will always
1373 call all of its callbacks before it is destroyed.
1374 Avoid enqueuing multiple force-repaints.
1376 (WebKit::ViewGestureController::removeSwipeSnapshot):
1378 2014-08-15 Gavin Barraclough <barraclough@apple.com>
1380 Fix plugin visibility initialization
1381 https://bugs.webkit.org/show_bug.cgi?id=135985
1383 Reviewed by Geoffrey Garen.
1385 * WebProcess/Plugins/PluginView.cpp:
1386 (WebKit::PluginView::didInitializePlugin):
1387 - We're not currently initializing the plugin visibility state,
1388 and we're passing the wrong value for window visibility.
1390 2014-08-15 Gavin Barraclough <barraclough@apple.com>
1392 Simplify visibility activity accounting for plugins
1393 https://bugs.webkit.org/show_bug.cgi?id=135981
1395 Reviewed by Dan Bernstein.
1397 Just take one per connection, rather than implementing a counting mechanism.
1399 * PluginProcess/PluginControllerProxy.cpp:
1400 (WebKit::PluginControllerProxy::PluginControllerProxy):
1401 * PluginProcess/PluginControllerProxy.h:
1402 - added m_visiblityActivity.
1403 * PluginProcess/PluginProcess.cpp:
1404 (WebKit::PluginProcess::PluginProcess):
1405 (WebKit::PluginProcess::pluginsForWebProcessDidBecomeVisible): Deleted.
1406 (WebKit::PluginProcess::pluginsForWebProcessDidBecomeHidden): Deleted.
1407 * PluginProcess/PluginProcess.h:
1408 - removed pluginsForWebProcessDidBecomeVisible/Hidden.
1409 * PluginProcess/WebProcessConnection.cpp:
1410 (WebKit::WebProcessConnection::removePluginControllerProxy):
1411 (WebKit::WebProcessConnection::pluginDidBecomeVisible): Deleted.
1412 (WebKit::WebProcessConnection::pluginDidBecomeHidden): Deleted.
1413 * PluginProcess/WebProcessConnection.h:
1414 - removed pluginDidBecomeVisible/Hidden.
1415 * PluginProcess/mac/PluginControllerProxyMac.mm:
1416 (WebKit::PluginControllerProxy::windowVisibilityChanged):
1417 - windowVisibilityChanged uses m_visiblityActivity, rather than calling to PluginControllerProxy.
1419 2014-08-15 Carlos Garcia Campos <cgarcia@igalia.com>
1421 Unreviewed. Update OptionsGTK.cmake and NEWS for 2.5.3 release.
1423 * gtk/NEWS: Add release notes for 2.5.3.
1425 2014-08-14 Enrica Casucci <enrica@apple.com>
1427 [Services with UI] Selection services don't work inside <iframes>.
1428 https://bugs.webkit.org/show_bug.cgi?id=135941
1429 <rdar://problem/17957690>
1431 Reviewed by Tim Horton.
1433 Need to map the selection rectangles using the correct FrameView.
1434 When handling the click, we must use the selection from the focused frame.
1436 * WebProcess/WebPage/mac/ServicesOverlayController.mm:
1437 (WebKit::ServicesOverlayController::buildSelectionHighlight):
1438 (WebKit::ServicesOverlayController::handleClick):
1440 2014-08-13 Mark Rowe <mrowe@apple.com>
1442 <https://webkit.org/b/135909> Move helper applications out of the root of the framework.
1444 As described in <https://developer.apple.com/library/mac/technotes/tn2206/>, for bundles containing
1445 a Versions directory there may be no other content at the top level of the bundle other than symlinks.
1446 Upcoming changes to code signing will prevent bundles that violate this rule from being signed.
1448 Reviewed by Sam Weinig.
1450 * Configurations/Base.xcconfig: Define a configuration setting that points to the content directory
1451 of the framework. On OS X this is Versions/A. On iOS, where frameworks are shallow, this is the top level.
1452 * Configurations/BaseLegacyProcess.xcconfig: Install the legacy processes in the content directory
1454 * WebKit2.xcodeproj/project.pbxproj: Copy the legacy processes into the content directory of the
1455 framework during engineering builds. Generate symlinks for the legacy processes to their locations
1456 in Versions/Current. This is necessary because -[NSBundle pathForAuxiliaryExecutable:] only looks
1457 at the top level of the framework wrapper.
1459 2014-08-14 Michael Catanzaro <mcatanzaro@igalia.com>
1461 WebKit2GTK - WebKitWebProcess assertion fails when dragging and dropping a file into the view
1462 https://bugs.webkit.org/show_bug.cgi?id=127576
1464 Reviewed by Carlos Garcia Campos.
1466 * UIProcess/WebPageProxy.cpp:
1467 (WebKit::WebPageProxy::performDragControllerAction): Assume read access
1468 to any file that has been dragged into the web view when compiling for
1469 GTK, since we don't support sandbox extensions.
1471 2014-08-13 Wenson Hsieh <wenson_hsieh@apple.com>
1473 Enable CSS_SCROLL_SNAP for iOS
1474 https://bugs.webkit.org/show_bug.cgi?id=135915
1476 Turn on CSS_SCROLL_SNAP for iOS and the iOS simulator.
1478 Reviewed by Tim Horton.
1480 * Configurations/FeatureDefines.xcconfig:
1482 2014-08-13 Enrica Casucci <enrica@apple.com>
1484 [Services with UI] Use a longer delay duration for editable content.
1485 https://bugs.webkit.org/show_bug.cgi?id=135918
1486 <rdar://problem/17998929>
1488 Reviewed by Tim Horton.
1490 Use a 1 second delay for selections in editable content.
1492 * WebProcess/WebPage/mac/ServicesOverlayController.mm:
1493 (WebKit::ServicesOverlayController::remainingTimeUntilHighlightShouldBeShown):
1495 2014-08-13 Mark Rowe <mrowe@apple.com>
1497 <https://webkit.org/b/135911> WebKit should build on Yosemite with the public SDK.
1499 Reviewed by Darin Adler.
1501 * Platform/IPC/mac/ImportanceAssertion.h: Forward-declare the new assertion functions we use.
1502 * UIProcess/mac/WebContextMenuProxyMac.mm: Forward-declare some details related to NSSharingServicePicker.
1504 2014-08-13 Alexey Proskuryakov <ap@apple.com>
1508 * UIProcess/WebContext.cpp:
1509 (WebKit::WebContext::ensureNetworkProcess):
1510 (WebKit::WebContext::createNewWebProcess):
1512 2014-08-13 Joseph Pecoraro <pecoraro@apple.com>
1514 Opening Web Inspector causes a large amount of sandbox violations
1515 https://bugs.webkit.org/show_bug.cgi?id=135908
1517 Reviewed by Timothy Hatcher.
1519 * WebProcess/com.apple.WebProcess.sb.in:
1520 Permit the WebContent process to create file read extensions for the
1521 system WebInspectorUI.framework which the Network process can already
1524 2014-08-13 Tim Horton <timothy_horton@apple.com>
1526 Avoid making new active service overlay highlights while the mouse is down
1527 https://bugs.webkit.org/show_bug.cgi?id=135872
1528 <rdar://problem/17982341>
1530 Reviewed by Enrica Casucci.
1532 * WebProcess/WebPage/ServicesOverlayController.h:
1533 * WebProcess/WebPage/mac/ServicesOverlayController.mm:
1534 (WebKit::ServicesOverlayController::remainingTimeUntilHighlightShouldBeShown):
1535 (WebKit::ServicesOverlayController::mouseEvent):
1536 If the mouse is pressed or it's been less than 200ms since the mouse went up,
1537 don't allow the highlight to change. We apply the mouse-is-pressed rule to telephone
1538 number highlights as well, unlike the rest of the hysteresis logic.
1540 2014-08-13 Timothy Hatcher <timothy@apple.com>
1542 Web Inspector: Workaround a NSWindow change to the title bar.
1543 https://bugs.webkit.org/show_bug.cgi?id=135880
1545 Reviewed by Joseph Pecoraro.
1547 * UIProcess/mac/WebInspectorProxyMac.mm:
1548 (WebKit::WebInspectorProxy::createInspectorWindow): Set titlebarAppearsTransparent on 10.10.
1549 Only call border thickness APIs on 10.9 and earlier.
1550 (WebKit::WebInspectorProxy::platformCreateInspectorPage): Only call setDrawsBackground: on 10.9 and earlier.
1551 (WebKit::WebInspectorProxy::platformSetToolbarHeight): Only call setContentBorderThickness: on 10.9 and earlier.
1553 2014-08-13 Ryuan Choi <ryuan.choi@samsung.com>
1555 [EFL] Add API to set application name for the user agent
1556 https://bugs.webkit.org/show_bug.cgi?id=135640
1558 Reviewed by Gyuyoung Kim.
1560 Add ewk_application_name_for_user_agent_set to make default user agent string
1561 with application name which application passes.
1562 It's useful for application to set only application information without knowledge
1563 of legacy user agent components.
1565 * UIProcess/API/efl/EwkView.cpp:
1567 (EwkView::setApplicationNameForUserAgent):
1568 * UIProcess/API/efl/EwkView.h:
1569 (EwkView::applicationNameForUserAgent):
1570 * UIProcess/API/efl/ewk_view.cpp:
1571 (ewk_view_application_name_for_user_agent_set):
1572 (ewk_view_application_name_for_user_agent_get):
1573 * UIProcess/API/efl/ewk_view.h:
1574 * UIProcess/API/efl/tests/test_ewk2_view.cpp:
1576 * UIProcess/efl/WebPageProxyEfl.cpp:
1577 (WebKit::WebPageProxy::standardUserAgent):
1579 2014-08-12 Carlos Garcia Campos <cgarcia@igalia.com>
1581 [CMAKE] WebProcess shouldn't need to explicitly link to JavaScriptCore and WebCore
1582 https://bugs.webkit.org/show_bug.cgi?id=135832
1584 Reviewed by Gyuyoung Kim.
1586 Linking to WebKit2 should be enough, like Network and Plugin processes.
1590 2014-08-12 Tim Horton <timothy_horton@apple.com>
1592 Document-relative page overlays drop some mouse events with non-zero top content inset
1593 https://bugs.webkit.org/show_bug.cgi?id=135871
1594 <rdar://problem/17982275>
1596 Reviewed by Beth Dakin.
1598 * WebProcess/WebPage/PageOverlay.cpp:
1599 (WebKit::PageOverlay::mouseEvent):
1600 Convert the mouse position into document-relative coordinates; the bounds()
1601 already are! This way, we can actually compare them without being wrong sometimes.
1603 2014-08-12 Peyton Randolph <prandolph@apple.com>
1605 Runtime switch for long mouse press gesture. Part of 135257 - Add long mouse press gesture
1606 https://bugs.webkit.org/show_bug.cgi?id=135682
1608 Reviewed by Tim Horton.
1610 * Configurations/FeatureDefines.xcconfig: Remove LONG_MOUSE_PRESS feature flag.
1611 * Shared/WebPreferencesDefinitions.h:
1612 Add LongMousePressEnabled preference, initially false.
1613 * UIProcess/API/C/WKPreferences.cpp:
1614 (WKPreferencesSetLongMousePressEnabled): Added.
1615 (WKPreferencesGetLongMousePressEnabled): Added.
1616 * UIProcess/API/C/WKPreferencesRefPrivate.h:
1617 * WebProcess/WebPage/WebPage.cpp:
1618 (WebKit::WebPage::updatePreferences):
1619 Reflect the WebKit long mouse press setting in WebCore.
1621 2014-08-12 Pratik Solanki <psolanki@apple.com>
1623 Cached file backed resources don't make it to the Web Process when NETWORK_CFDATA_ARRAY_CALLBACK is enabled
1624 https://bugs.webkit.org/show_bug.cgi?id=135727
1625 <rdar://problem/17947880>
1627 Reviewed by Darin Adler.
1629 tryGetShareableHandleFromSharedBuffer() assumed that we have a file backed resource only if
1630 we had a CFDataRef (platformData()) in SharedBuffer. This is wrong when we use the data
1631 array callbacks since the file backed buffer could be in the data array. Instead of relying
1632 on hasPlatformData(), explicitly ask the SharedBuffer to give us a CFDataRef if it has one
1633 so that SharedBuffer can take care of the data array case.
1635 * NetworkProcess/mac/NetworkResourceLoaderMac.mm:
1636 (WebKit::NetworkResourceLoader::tryGetShareableHandleFromSharedBuffer):
1638 2014-08-12 Alexey Proskuryakov <ap@apple.com>
1640 REGRESSION: WebContent process has a sandbox extension for the entirety of user's temp directory
1641 https://bugs.webkit.org/show_bug.cgi?id=135853
1642 <rdar://problem/17986556>
1644 Reviewed by Oliver hunt.
1646 Move extensions recently added for iOS benefit under PLATFORM(IOS). Removed some
1647 dead code while at it (child processes don't need actual paths, they only need
1648 sandbox extensions in most cases).
1650 * NetworkProcess/cocoa/NetworkProcessCocoa.mm:
1651 (WebKit::NetworkProcess::platformInitializeNetworkProcessCocoa):
1652 * Shared/Network/NetworkProcessCreationParameters.cpp:
1653 (WebKit::NetworkProcessCreationParameters::encode):
1654 (WebKit::NetworkProcessCreationParameters::decode):
1655 * Shared/Network/NetworkProcessCreationParameters.h:
1656 * Shared/WebProcessCreationParameters.cpp:
1657 (WebKit::WebProcessCreationParameters::encode):
1658 (WebKit::WebProcessCreationParameters::decode):
1659 * Shared/WebProcessCreationParameters.h:
1660 * UIProcess/WebContext.cpp:
1661 (WebKit::WebContext::ensureNetworkProcess):
1662 (WebKit::WebContext::createNewWebProcess):
1663 (WebKit::WebContext::openGLCacheDirectory): Deleted.
1664 (WebKit::WebContext::networkingHSTSDatabasePath): Deleted.
1665 * UIProcess/WebContext.h:
1666 * UIProcess/efl/WebContextEfl.cpp:
1667 (WebKit::WebContext::containerTemporaryDirectory): Deleted.
1668 (WebKit::WebContext::platformDefaultNetworkingHSTSDatabasePath): Deleted.
1669 * UIProcess/gtk/WebContextGtk.cpp:
1670 (WebKit::WebContext::containerTemporaryDirectory): Deleted.
1671 (WebKit::WebContext::platformDefaultNetworkingHSTSDatabasePath): Deleted.
1672 * UIProcess/mac/WebContextMac.mm:
1673 (WebKit::WebContext::openGLCacheDirectory):
1674 (WebKit::WebContext::parentBundleDirectory):
1675 (WebKit::WebContext::networkingHSTSDatabasePath):
1676 (WebKit::WebContext::platformDefaultOpenGLCacheDirectory): Deleted.
1677 (WebKit::WebContext::platformDefaultNetworkingHSTSDatabasePath): Deleted.
1678 * WebProcess/cocoa/WebProcessCocoa.mm:
1679 (WebKit::WebProcess::platformInitializeWebProcess):
1681 2014-08-12 Tim Horton <timothy_horton@apple.com>
1683 Small region (~1px tall) where you get the selection button instead of the phone number overlay
1684 https://bugs.webkit.org/show_bug.cgi?id=135852
1685 <rdar://problem/17992795>
1687 Reviewed by Enrica Casucci.
1689 * WebProcess/WebPage/ServicesOverlayController.h:
1690 * WebProcess/WebPage/mac/ServicesOverlayController.mm:
1691 (WebKit::ServicesOverlayController::findTelephoneNumberHighlightContainingSelectionHighlight):
1692 (WebKit::ServicesOverlayController::determineActiveHighlight):
1693 If our new active highlight is a selection highlight that is completely contained
1694 by one of the phone number highlights, we'll make the phone number highlight active
1695 even if it's not hovered. This fixes the case where the selection highlight
1696 (a subset of a telephone number) is slightly taller than the telephone number
1697 highlight, and can be hovered without hovering the phone number highlight.
1699 2014-08-12 Tim Horton <timothy_horton@apple.com>
1701 REGRESSION (r172424): Extra menu header in combined telephone number menu when no phone paired
1702 https://bugs.webkit.org/show_bug.cgi?id=135854
1703 <rdar://problem/17996339>
1705 Reviewed by Enrica Casucci.
1707 * UIProcess/mac/WebContextMenuProxyMac.mm:
1708 (WebKit::WebContextMenuProxyMac::setupServicesMenu):
1709 Get all the menu items ahead of time, and only add the shared header
1710 if there are any telephone number menu items.
1712 2014-08-12 Enrica Casucci <enrica@apple.com>
1714 Crash at com.apple.WebKit.WebContent at com.apple.WebKit: WebKit::expandForGap
1715 https://bugs.webkit.org/show_bug.cgi?id=135859
1716 <rdar://problem/17994679>
1718 Reviewed by Tim Horton.
1720 expandForGap made the assumption that the selection rects were always three.
1721 This was not true even before http://trac.webkit.org/changeset/172395 but
1722 was more likely to happen after that change.
1724 * WebProcess/WebPage/mac/ServicesOverlayController.mm:
1725 (WebKit::expandForGap):
1727 2014-08-12 Tim Horton <timothy_horton@apple.com>
1729 Don't show the combined menu if there are no services available
1730 https://bugs.webkit.org/show_bug.cgi?id=135846
1731 <rdar://problem/17582099>
1733 Reviewed by Enrica Casucci.
1735 * WebProcess/WebPage/ServicesOverlayController.h:
1738 * WebProcess/WebPage/mac/ServicesOverlayController.mm:
1739 (WebKit::ServicesOverlayController::determineActiveHighlight):
1740 Don't allow a selection Highlight to become active if there is no
1741 service available to handle it. Previously we showed the combined menu
1742 with just phone numbers in it if any were detected.
1744 2014-08-12 Tim Horton <timothy_horton@apple.com>
1746 Add a fade transition to services highlights
1747 https://bugs.webkit.org/show_bug.cgi?id=135829
1748 <rdar://problem/17935736>
1750 Reviewed by Enrica Casucci.
1752 Add a smooth fade to highlight installation and uninstallation.
1753 To do so, we make each highlight paint into its own small layer.
1755 * WebProcess/WebPage/PageOverlay.cpp:
1756 (WebKit::PageOverlay::layer):
1757 * WebProcess/WebPage/PageOverlay.h:
1758 * WebProcess/WebPage/PageOverlayController.cpp:
1759 (WebKit::PageOverlayController::layerForOverlay):
1760 * WebProcess/WebPage/PageOverlayController.h:
1761 Expose the GraphicsLayer on PageOverlay.
1763 * WebProcess/WebPage/ServicesOverlayController.h:
1764 (WebKit::ServicesOverlayController::Highlight::layer):
1765 (WebKit::ServicesOverlayController::activeHighlight):
1766 (WebKit::ServicesOverlayController::webPage):
1767 (WebKit::ServicesOverlayController::Highlight::Highlight): Deleted.
1769 * WebProcess/WebPage/mac/ServicesOverlayController.mm:
1770 (WebKit::ServicesOverlayController::Highlight::createForSelection):
1771 (WebKit::ServicesOverlayController::Highlight::createForTelephoneNumber):
1772 (WebKit::ServicesOverlayController::Highlight::Highlight):
1773 Highlights now own a GraphicsLayer, which are later installed
1774 as sublayers of the ServicesOverlayController's PageOverlay layer.
1775 These layers are sized and positioned according to the DDHighlight's bounds.
1777 (WebKit::ServicesOverlayController::Highlight::~Highlight):
1778 (WebKit::ServicesOverlayController::Highlight::invalidate):
1779 ServicesOverlayController will invalidate any remaining highlights
1780 when it is torn down, so they can clear their backpointers.
1782 (WebKit::ServicesOverlayController::Highlight::notifyFlushRequired):
1783 Forward flush notifications to the DrawingArea.
1785 (WebKit::ServicesOverlayController::Highlight::paintContents):
1786 Paint the DDHighlight into the layer. Translation is done by the layer position,
1787 so we zero the bounds origin when painting.
1789 (WebKit::ServicesOverlayController::Highlight::deviceScaleFactor):
1790 Forward the deviceScaleFactor so that things are painted at the right scale.
1792 (WebKit::ServicesOverlayController::Highlight::fadeIn):
1793 (WebKit::ServicesOverlayController::Highlight::fadeOut):
1794 Apply a fade animation to the layer.
1796 (WebKit::ServicesOverlayController::Highlight::didFinishFadeOutAnimation):
1797 When the fade completes, unparent the layer, unless it has become active again.
1799 (WebKit::ServicesOverlayController::ServicesOverlayController):
1800 (WebKit::ServicesOverlayController::~ServicesOverlayController):
1801 Invalidate all highlights, so they can clear their backpointers.
1803 (WebKit::ServicesOverlayController::remainingTimeUntilHighlightShouldBeShown):
1804 Make remainingTimeUntilHighlightShouldBeShown act upon a particular highlight
1805 instead of always the active highlight.
1807 (WebKit::ServicesOverlayController::determineActiveHighlightTimerFired): Rename.
1809 (WebKit::ServicesOverlayController::drawRect):
1810 drawRect is no longer called and will no longer do anything; all of the
1811 painting is done in sublayers.
1813 (WebKit::ServicesOverlayController::buildPhoneNumberHighlights):
1814 Ensure that phone number Highlights stay stable even while the selection
1815 changes, by comparing the underlying Ranges and keeping around old Highlights
1816 that match the new ones. This enables us to e.g. fade in while changing
1817 the selection within a phone number.
1819 (WebKit::ServicesOverlayController::buildSelectionHighlight):
1820 (WebKit::ServicesOverlayController::didRebuildPotentialHighlights):
1821 (WebKit::ServicesOverlayController::createOverlayIfNeeded):
1822 Don't call setNeedsDisplay; the overlay doesn't have backing store.
1823 Instead, call determineActiveHighlight, which will install/uninstall
1824 highlights as necessary.
1826 (WebKit::ServicesOverlayController::determineActiveHighlight):
1827 Apply fade in/fade out to the overlays.
1828 Keep track of which highlight we're going to activate, until the hysteresis
1829 delay is up, then actually make it active/parent it/fade it in.
1830 We now will have no active highlight between the fade out of the previous one
1831 and the fade in of the new one (during the hysteresis delay).
1833 (WebKit::ServicesOverlayController::mouseEvent):
1834 The overlay now will not become active until the delay is up, so we don't
1835 need to check it again here.
1837 (WebKit::ServicesOverlayController::handleClick):
1838 (WebKit::ServicesOverlayController::didCreateHighlight):
1839 (WebKit::ServicesOverlayController::willDestroyHighlight):
1840 (WebKit::ServicesOverlayController::repaintHighlightTimerFired): Deleted.
1841 (WebKit::ServicesOverlayController::drawHighlight): Deleted.
1843 2014-08-11 Andy Estes <aestes@apple.com>
1845 [iOS] Get rid of iOS.xcconfig
1846 https://bugs.webkit.org/show_bug.cgi?id=135809
1848 Reviewed by Joseph Pecoraro.
1850 All iOS.xcconfig did was include AspenFamily.xcconfig, so there's no need for the indirection.
1852 * Configurations/Base.xcconfig:
1853 * Configurations/iOS.xcconfig: Removed.
1854 * WebKit2.xcodeproj/project.pbxproj:
1856 2014-08-12 Grzegorz Czajkowski <g.czajkowski@samsung.com>
1858 [EFL] Rename ewk_private.h to EwkDebug.h
1859 https://bugs.webkit.org/show_bug.cgi?id=135797
1861 Reviewed by Gyuyoung Kim.
1863 ewk_private.h contains only debug macros alllowing
1866 * UIProcess/API/efl/EwkView.cpp:
1867 * UIProcess/API/efl/ewk_main.cpp:
1868 * UIProcess/efl/EwkDebug.h: Renamed from Source/WebKit2/UIProcess/API/efl/ewk_private.h.
1869 * UIProcess/efl/ViewClientEfl.cpp:
1871 2014-08-12 Carlos Garcia Campos <cgarcia@igalia.com>
1873 [GTK] The plugins metadata cache doesn't work if the user cache directory doesn't exist
1874 https://bugs.webkit.org/show_bug.cgi?id=135834
1876 Reviewed by Philippe Normand.
1878 Make sure the user cache directory exists. If creating the
1879 directory fails for whatever reason, do not try to save the cache
1882 * UIProcess/Plugins/gtk/PluginInfoCache.cpp:
1883 (WebKit::PluginInfoCache::PluginInfoCache):
1884 (WebKit::PluginInfoCache::updatePluginInfo):
1886 2014-08-12 Alexey Proskuryakov <ap@apple.com>
1888 [Mac] Allow reading CoreGraphics debugging preferences
1889 https://bugs.webkit.org/show_bug.cgi?id=135821
1890 <rdar://problem/11219259>
1892 Reviewed by Darin Adler.
1894 * WebProcess/com.apple.WebProcess.sb.in:
1896 2014-08-11 Grzegorz Czajkowski <g.czajkowski@samsung.com>
1898 [EFL] Prevent the client from creating ewk_view when EWebkit is not initialized
1899 https://bugs.webkit.org/show_bug.cgi?id=135606
1901 Reviewed by Gyuyoung Kim.
1903 Similarly to EFL modules (eina, evas etc.), application using EWebKit
1904 has to initialize it using ewk_init().
1906 Do not allow the client to create ewk_view if ewk_init has not been called.
1907 Add an appropriate logs warning the client about wrong APIs usage.
1909 * UIProcess/API/efl/ewk_main.cpp: Add EwkMain class to control ewk lifetime.
1910 (WebKit::EwkMain::EwkMain):
1911 (WebKit::EwkMain::shared):
1912 (WebKit::EwkMain::~EwkMain): Add logs when the client forgot to destroy EWebkit.
1913 (WebKit::EwkMain::initialize):
1914 (WebKit::EwkMain::finalize):
1915 (WebKit::EwkMain::shutdownInitializedEFLModules):
1918 * UIProcess/API/efl/ewk_main_private.h: Added.
1919 (WebKit::EwkMain::isInitialized):
1920 (WebKit::EwkMain::logDomainId):
1921 * UIProcess/API/efl/ewk_private.h:
1922 * UIProcess/API/efl/ewk_view.cpp:
1924 Prevent the client from creating ewk_view when ewk_init() has not been called.
1926 2014-08-11 Enrica Casucci <enrica@apple.com>
1928 Improve look and feel of combined service menu..
1929 https://bugs.webkit.org/show_bug.cgi?id=135824
1930 <rdar://problem/17936880>
1932 Reviewed by Tim Horton.
1934 When showing the combined menu, list the phone numbers first,
1935 grouped under a common header, followed by the entries relative
1938 * Platform/mac/MenuUtilities.h:
1939 * Platform/mac/MenuUtilities.mm:
1940 (WebKit::menuItemTitleForTelephoneNumberGroup):
1941 (WebKit::menuItemForTelephoneNumber):
1942 * UIProcess/mac/WebContextMenuProxyMac.mm:
1943 (WebKit::WebContextMenuProxyMac::setupServicesMenu):
1945 2014-08-11 Joseph Pecoraro <pecoraro@apple.com>
1947 Add Private WKPreferences API for developer extras (show inspector)
1948 https://bugs.webkit.org/show_bug.cgi?id=135811
1950 Reviewed by Timothy Hatcher.
1952 * UIProcess/API/Cocoa/WKPreferences.mm:
1953 (-[WKPreferences _developerExtrasEnabled]):
1954 (-[WKPreferences _setDeveloperExtrasEnabled:]):
1955 * UIProcess/API/Cocoa/WKPreferencesPrivate.h:
1957 2014-08-08 Enrica Casucci <enrica@apple.com>
1959 [Services with UI] Action menu arrow hit testing is sometimes wrong.
1960 https://bugs.webkit.org/show_bug.cgi?id=135776
1961 <rdar://problem/17837670>
1963 Reviewed by Brady Eidson.
1965 There was a problem in the algorithm that stitches together the selection rectangles
1966 to be given to Data Detectors API.
1967 This change adds a new function that stiches together all the rects contributing to the
1968 first line, all the rects contributing to the last line and all the ones in the middle.
1969 This way we can have a maximum of 3 non overlapping rectangles.
1971 * WebProcess/WebPage/mac/ServicesOverlayController.mm:
1972 (WebKit::stitchRects):
1973 (WebKit::compactRectsWithGapRects):
1975 2014-08-11 Gyuyoung Kim <gyuyoung.kim@samsung.com>
1977 Unreviewed, EFL build fix since r172385.
1979 * PlatformEfl.cmake:
1981 2014-08-11 Carlos Garcia Campos <cgarcia@igalia.com>
1983 Unreviewed. Update OptionsGTK.cmake and NEWS for 2.5.2 release.
1985 * gtk/NEWS: Add release notes for 2.5.2.
1987 2014-08-10 Carlos Garcia Campos <cgarcia@igalia.com>
1989 [GTK] No IPC messages are sent when building WebKitGTK+ with VERSION_SCRIPT
1990 https://bugs.webkit.org/show_bug.cgi?id=135760
1992 Reviewed by Philippe Normand.
1994 The problem is that the threading initialization is failing
1995 because there are two copies of WTF, one in libjavascriptcoregtk
1996 and the other in libwebkit2gtk. When WebKit2 is initialized in the
1997 UI process, JSC::initializeThreading() is called first and then
1998 WTF::initializeMainThread(). The former is calling
1999 ThreadIdentifierData::initializeOnce() initializing the
2000 ThreadIdentifierData::m_key symbol in libjavascriptcoregtk, while
2001 the latter is using the ThreadIdentifierData API from libwebkit2gtk
2002 that hasn't been initialized.
2004 * CMakeLists.txt: Do not add WTF to the list of WebKit2 libraries,
2005 WebKit2 already depends on JavaScriptCore that already links to WTF.
2007 2014-08-10 Tim Horton <timothy_horton@apple.com>
2009 Yelp phone number highlights often disappear
2010 https://bugs.webkit.org/show_bug.cgi?id=135789
2011 <rdar://problem/17971057>
2013 Reviewed by Brady Eidson.
2015 Since selectedTelephoneNumberRangesChanged doesn't provide an associated
2016 Frame, an incoming selectedTelephoneNumberRangesChanged from a subframe
2017 would overwrite ServicesOverlayController's cached (and potentially active)
2018 telephone number highlights.
2020 This happens a lot on Yelp, because they have many subframes which are
2021 doing layout on a regular basis.
2023 * WebProcess/WebCoreSupport/WebEditorClient.cpp:
2024 (WebKit::WebEditorClient::selectedTelephoneNumberRangesChanged):
2025 * WebProcess/WebCoreSupport/WebEditorClient.h:
2026 Adjust to the new (lack of) arguments.
2028 * WebProcess/WebPage/ServicesOverlayController.h:
2029 * WebProcess/WebPage/mac/ServicesOverlayController.mm:
2030 (WebKit::ServicesOverlayController::selectedTelephoneNumberRangesChanged):
2031 Adjust logging; we can revisit it later.
2033 (WebKit::ServicesOverlayController::buildPhoneNumberHighlights):
2034 When building phone number highlights, walk the Frame tree and retrieve
2035 them from all of the Editors.
2037 (WebKit::ServicesOverlayController::didRebuildPotentialHighlights):
2038 (WebKit::ServicesOverlayController::telephoneNumberRangesForFocusedFrame):
2039 (WebKit::ServicesOverlayController::determineActiveHighlight):
2040 (WebKit::ServicesOverlayController::handleClick):
2041 Retrieve the detected telephone number ranges from the focused frame
2042 when combining telephone numbers with selection services.
2043 This ensures that we don't show combined phone number highlights from other frames.
2045 2014-08-10 Tim Horton <timothy_horton@apple.com>
2047 Refactor ServiceOverlayController in preparation for fading between highlights
2048 https://bugs.webkit.org/show_bug.cgi?id=135787
2049 <rdar://problem/17935736>
2051 Reviewed by Brady Eidson.
2053 Rework ServicesOverlayController so that we always keep a set of generic
2054 "potential highlights", which are refcounted Highlight objects and
2055 wrap a DDHighlightRef, as well as a type (Selection or TelephoneNumber),
2056 Range (only used in the case of TelephoneNumber), and potentially more
2057 things in the future (like, say, fade state!).
2059 We eagerly update the list of potential highlights when the selection or set
2060 of detected telephone numbers changes, and use this information to install
2061 or uninstall the page overlay as needed.
2063 When we need to recompute the "active" highlight from this set (for example,
2064 we need to handle a mouse event or paint the highlight), we look through
2065 the set of potential highlights and decide. This moves the "active" highlight
2066 decision logic into one small and confined place.
2068 * WebProcess/WebPage/ServicesOverlayController.h:
2069 (WebKit::ServicesOverlayController::Highlight):
2070 Add the new aforementioned refcounted Highlight class.
2071 Rename m_lastHoveredHighlightChangeTime to m_lastActiveHighlightChangeTime.
2072 Make m_webPage a reference.
2073 The rest is just added/removed/adjusted functions for the refactoring.
2075 (WebKit::TelephoneNumberData::TelephoneNumberData): Deleted.
2076 * WebProcess/WebPage/mac/ServicesOverlayController.mm:
2077 (WebKit::ServicesOverlayController::Highlight::createForSelection):
2078 (WebKit::ServicesOverlayController::Highlight::createForTelephoneNumber):
2079 Create Highlights for the two different highlight types.
2081 (WebKit::ServicesOverlayController::ServicesOverlayController):
2082 (WebKit::ServicesOverlayController::willMoveToWebPage):
2083 Our WebPage pointer is always valid because it owns us; don't clear it.
2084 We need to keep it around so that we can uninstall the overlay and
2085 install it again later, anyway.
2087 (WebKit::ServicesOverlayController::selectionRectsDidChange):
2088 (WebKit::ServicesOverlayController::selectedTelephoneNumberRangesChanged):
2089 When selection rects or detected telephone numbers change, rebuild potential highlights.
2090 This will have the side-effect of installing the overlay if needed.
2092 (WebKit::ServicesOverlayController::mouseIsOverHighlight):
2093 Make this function take a Highlight instead of a DDHighlightRef.
2095 (WebKit::ServicesOverlayController::remainingTimeUntilHighlightShouldBeShown):
2096 Make this function take a Highlight instead of a DDHighlightRef.
2098 (WebKit::ServicesOverlayController::drawHighlight):
2099 Make this function take a Highlight instead of a DDHighlightRef.
2100 There's no reason to do the translation separately from the layer blit,
2101 also allowing us to avoid the StateSaver.
2103 (WebKit::ServicesOverlayController::drawRect):
2104 drawRect now always paints the active highlight, instead of duplicating
2105 logic about which highlight should be active.
2106 Also, it will update the active highlight before painting.
2107 We no longer need to re-determine whether the active highlight's phone
2108 number range is still a valid phone number range, because we rebuild
2109 the potential highlights whenever the set of phone number ranges changes.
2111 (WebKit::ServicesOverlayController::clearActiveHighlight):
2112 Mostly an adoption of new names.
2114 (WebKit::ServicesOverlayController::removeAllPotentialHighlightsOfType):
2115 Run through the list of potential highlights and remove any of the given type.
2116 The two highlight building functions use this helper to clear the old ones before building.
2118 (WebKit::ServicesOverlayController::buildPhoneNumberHighlights):
2119 (WebKit::ServicesOverlayController::buildSelectionHighlight):
2120 Rebuild the list of potential highlights, replacing all highlights of
2121 the given type with new ones.
2123 (WebKit::ServicesOverlayController::hasRelevantSelectionServices):
2124 Factor out the code that decides whether our current selection is
2125 viable for servicing based on whether we have plain-text and/or rich-text services.
2127 (WebKit::ServicesOverlayController::didRebuildPotentialHighlights):
2128 When rebuilding potential highlights, if we have no potential highlights at all,
2129 uninstall the page overlay; we don't need mouse tracking and don't need to
2130 paint anything. This improves memory use and compositing performance significantly,
2131 where previously we were leaving the overlay up forever after creating it.
2133 If we have either detected telephone numbers or relevant selection services,
2134 create and install the overlay if it doesn't already exist.
2136 (WebKit::ServicesOverlayController::createOverlayIfNeeded):
2137 This just moved from elsehwere, except that it now uses FadeMode::DoNotFade.
2138 It doesn't make sense to fade on install/uninstall (which happens even before hover)
2139 but not on changing the active highlight; fading will be re-addressed in the next patch.
2141 (WebKit::ServicesOverlayController::highlightsAreEquivalent):
2142 Determine whether two highlights are equivalent. While we may have
2143 created a new Highlight at rebuild time, if two telephone number
2144 highlights have equivalent ranges, there's no need to 'transition' to the new one.
2146 (WebKit::ServicesOverlayController::determineActiveHighlight):
2147 Run through the list of services, and try to find one that is hovered.
2148 We prefer telephone number highlights to selection highlights, and
2149 we will never make a selection highlight active if it is both
2150 not serviceable and there are no telephone numbers to show in the combined menu.
2151 This is the centralized location for determination of which highlight
2152 should be considered active. If the active highlight changed, update
2153 the time since last change and cancel the mouse-down tracking.
2155 (WebKit::ServicesOverlayController::mouseEvent):
2156 Adjust some comments to be more explanatory.
2157 A bunch of code moved out of here and into determineActiveHighlight.
2159 (WebKit::ServicesOverlayController::handleClick):
2160 Adjust to take a reference and use Highlight instead of DDHighlightRef.
2162 2014-08-10 Timothy Hatcher <timothy@apple.com>
2164 Web Inspector: new glyphs are visible on OS X 10.9 builds
2165 https://bugs.webkit.org/show_bug.cgi?id=135743
2167 Reviewed by Joseph Pecoraro.
2169 * UIProcess/mac/WebInspectorProxyMac.mm:
2170 (WebKit::WebInspectorProxy::createInspectorWindow): Use 10100 instead of 1090 for the version.
2172 2014-08-10 Carlos Garcia Campos <cgarcia@igalia.com>
2174 [GTK] REGRESSION(r166239): The ld version script is not being used
2175 https://bugs.webkit.org/show_bug.cgi?id=135694
2177 Reviewed by Martin Robinson.
2179 * CMakeLists.txt: Add VERSION_SCRIPT to WebKit2 link flags if present.
2181 2014-08-09 Tim Horton <timothy_horton@apple.com>
2183 REGRESSION (r172301): Combined phone number highlight doesn't appear if rich content is selected and we have no rich content services
2184 https://bugs.webkit.org/show_bug.cgi?id=135785
2185 <rdar://problem/17969843>
2187 Reviewed by Brady Eidson.
2189 * WebProcess/WebPage/mac/ServicesOverlayController.mm:
2190 (WebKit::ServicesOverlayController::drawSelectionHighlight):
2191 We can't early return in the rich-content-but-no-rich-services case
2192 if we have telephone numbers in the selection, because we want to offer
2193 them up in the combined menu.
2195 * UIProcess/mac/WebContextMenuProxyMac.mm:
2196 If we end up with no menu, because there were no services available,
2197 make a fresh one that we can fill with combined telephone number items.
2199 2014-08-08 Grzegorz Czajkowski <g.czajkowski@samsung.com>
2201 [EFL] Do not initialize g_type in WebProcessMain::platformInitialize()
2202 https://bugs.webkit.org/show_bug.cgi?id=135700
2204 Reviewed by Gyuyoung Kim.
2206 Inspired by r171788.
2207 Glib since 2.36 itself initializes g_type_init.
2209 * WebProcess/efl/WebProcessMainEfl.cpp:
2211 2014-08-08 Tim Horton <timothy_horton@apple.com>
2213 Build fix for 32-bit.
2215 * UIProcess/mac/ServicesController.mm:
2216 (WebKit::ServicesController::ServicesController):
2217 Don't dynamically refresh services in 32-bit apps. It's not possible
2218 to write a 32-bit app with the Modern API, so this doesn't matter.
2220 2014-08-08 Tim Horton <timothy_horton@apple.com>
2222 [mac] Dynamically update serviceability when the set of services changes
2223 https://bugs.webkit.org/show_bug.cgi?id=135738
2224 <rdar://problem/17533459>
2226 Reviewed by Brady Eidson.
2228 * UIProcess/WebContext.cpp:
2229 (WebKit::WebContext::createNewWebProcess):
2230 Adopt the new universal refreshExistingServices.
2232 (WebKit::WebContext::refreshExistingServices): Deleted.
2233 * UIProcess/WebContext.h:
2234 Remove WebContext::refreshExistingServices; there's no need for it.
2236 * UIProcess/mac/ServicesController.h:
2237 * UIProcess/mac/ServicesController.mm:
2238 Fix the build with only public headers by including NSSharingService.h itself.
2239 Place the NSSharingServicePicker (Details) category outside the #ifdef.
2240 Forward-declare and possibly import NSExtension SPI.
2242 (WebKit::ServicesController::ServicesController):
2243 Register a callback to be notified whenever the set of services changes.
2244 When this occurs, call refreshExistingServices. We let refreshExistingServices
2245 coalesce updates because these notifications can come in small batches.
2247 (WebKit::ServicesController::refreshExistingServices):
2248 Dispatch changes in service availability to all processes in all contexts.
2250 * UIProcess/mac/WebContextMenuProxyMac.mm:
2251 (WebKit::WebContextMenuProxyMac::setupServicesMenu):
2252 Adjust the referenced rdar:// and call ServicesController::refreshExistingServices
2253 instead of the now-removed WebContext:: variant. We can't remove this
2254 yet because our services state can still be stale because NSServiceSharingPicker
2255 can still sometimes lie about the current service state immediately after a change occurs;
2256 once that is fixed, we should get rid of this as well as the refresh in Web Process creation.
2258 2014-08-08 Timothy Horton <timothy_horton@apple.com>
2260 Clients that request the selection services menu after WebKit2 will get one with different metrics than otherwise
2261 https://bugs.webkit.org/show_bug.cgi?id=135765
2262 <rdar://problem/17962180>
2264 Reviewed by Brady Eidson.
2266 * UIProcess/mac/WebContextMenuProxyMac.mm:
2267 (WebKit::WebContextMenuProxyMac::setupServicesMenu):
2268 The menu is cached between clients, but we make adjustments to it.
2269 We should copy it before adjusting.
2271 2014-08-08 Timothy Horton <timothy_horton@apple.com>
2273 Services overlay dropdown is often in the wrong place with zoomed pages or horizontal scrolling
2274 https://bugs.webkit.org/show_bug.cgi?id=135755
2275 <rdar://problem/17907752>
2277 Reviewed by Brady Eidson.
2279 * WebProcess/WebPage/mac/ServicesOverlayController.mm:
2280 (WebKit::ServicesOverlayController::establishHoveredTelephoneHighlight):
2281 (WebKit::ServicesOverlayController::maybeCreateSelectionHighlight):
2282 DDHighlightCreateWithRectsInVisibleRectWithStyleAndDirection adjusts the
2283 location of the button based on the visible rect, trying to keep the button visible.
2285 We're handing it the wrong visible rect, though, not taking scrolling into account.
2287 This leads to pages that scroll horizontally showing the button on the left
2288 even if there's space for it on the right, or sometimes not showing it at all.
2290 Instead, provide the actual main FrameView visible rect; the same coordinate
2291 space that the highlight rects are provided in.
2293 2014-08-08 Timothy Horton <timothy_horton@apple.com>
2295 Additional items added to selection services menus are misaligned
2296 https://bugs.webkit.org/show_bug.cgi?id=135747
2297 <rdar://problem/17933167>
2299 Reviewed by Brady Eidson.
2301 * UIProcess/mac/WebContextMenuProxyMac.mm:
2302 (WebKit::WebContextMenuProxyMac::setupServicesMenu):
2303 Use NSSharingServicePickerStyleRollover for the rollover image services menu;
2304 use NSSharingServicePickerStyleTextSelection for the selection services menu.
2306 Set NSMenu's showsStateColumn to YES for selection services menus, so that
2307 other items added to the menu line up correctly.
2309 Remove an unncessary .get()
2311 2014-08-08 Grzegorz Czajkowski <g.czajkowski@samsung.com>
2313 [EFL] Remove unnecessary ewk_private.h includes
2314 https://bugs.webkit.org/show_bug.cgi?id=135753
2316 Reviewed by Gyuyoung Kim.
2318 Neither the below file uses the functionality from ewk_private.h.
2320 * UIProcess/API/efl/ewk_context.cpp:
2321 * UIProcess/API/efl/ewk_context_menu_item.cpp:
2322 * UIProcess/API/efl/ewk_cookie_manager.cpp:
2323 * UIProcess/API/efl/ewk_navigation_policy_decision.cpp:
2324 * UIProcess/API/efl/ewk_popup_menu_item.cpp:
2325 * UIProcess/API/efl/ewk_view.cpp:
2327 2014-08-08 Carlos Garcia Campos <cgarcia@igalia.com>
2329 [GTK] Do not use GtkWindow:resize-grip-visible with recent GTK+ versions
2330 https://bugs.webkit.org/show_bug.cgi?id=135699
2332 Reviewed by Philippe Normand.
2334 Resize grips support have been removed from GTK+ since 3.13.4, the
2335 API has been deprecated and does nothing.
2337 * UIProcess/API/gtk/WebKitWebViewBase.cpp:
2338 (webkitWebViewBaseSetToplevelOnScreenWindow):
2339 (resizeWebKitWebViewBaseFromAllocation):
2341 2014-08-07 Tim Horton <timothy_horton@apple.com>
2343 [Services with UI] Action menu does not appear if selection includes both text and an image
2344 https://bugs.webkit.org/show_bug.cgi?id=135731
2345 <rdar://problem/17837491>
2347 Reviewed by Dean Jackson.
2349 * UIProcess/WebContext.cpp:
2350 (WebKit::WebContext::createNewWebProcess):
2351 Initialize hasRichContentServices with the cached value.
2353 2014-08-07 Benjamin Poulain <bpoulain@apple.com>
2355 Get rid of SCRIPTED_SPEECH
2356 https://bugs.webkit.org/show_bug.cgi?id=135729
2358 Reviewed by Brent Fulgham.
2360 * Configurations/FeatureDefines.xcconfig:
2362 2014-08-07 Timothy Horton <timothy_horton@apple.com>
2364 setCustomSwipeViews inside didChangeBackForwardList client callback is ignored
2365 https://bugs.webkit.org/show_bug.cgi?id=135633
2366 <rdar://problem/17926507>
2368 Reviewed by Sam Weinig.
2370 * UIProcess/PageClient.h:
2371 * UIProcess/WebPageProxy.cpp:
2372 (WebKit::WebPageProxy::didChangeBackForwardList):
2373 * UIProcess/ios/PageClientImplIOS.h:
2374 * UIProcess/ios/PageClientImplIOS.mm:
2375 (WebKit::PageClientImpl::clearCustomSwipeViews): Deleted.
2376 * UIProcess/mac/PageClientImpl.h:
2377 * UIProcess/mac/PageClientImpl.mm:
2378 (WebKit::PageClientImpl::clearCustomSwipeViews): Deleted.
2379 WebKit clears the set of custom swipe views at the end of WebPageProxy::didChangeBackForwardList,
2380 *after* calling into the client. This means that if the client wants to setCustomSwipeViews in
2381 didChangeBackForwardList, it won't be respected.
2383 Since there's only one client of this SPI, let's just stop clearing the list of custom swipe
2384 views in WebKit and leave that totally up to the client.
2386 2014-08-07 Enrica Casucci <enrica@apple.com>
2388 [Services with UI] Action menu does not appear if selection includes both text and an image.
2389 https://bugs.webkit.org/show_bug.cgi?id=135731
2390 <rdar://problem/17837491>
2392 Reviewed by Brady Eidson.
2394 Adding a new setting to ServicesController to communicate to the WebProcess if
2395 there are services installed that can handle a combination of text and images.
2396 This way ServicesOverlayController can decide if it appropriate to show the hightlight
2397 based on the type of selection (text only or non text only). This information is retrieved
2398 when the selection rects are collected by SelectionGatherer and used by
2399 SelectionGatherer::Notifier to communicate the selection change.
2401 * Shared/WebProcessCreationParameters.cpp:
2402 (WebKit::WebProcessCreationParameters::WebProcessCreationParameters):
2403 * Shared/WebProcessCreationParameters.h:
2404 * UIProcess/mac/ServicesController.h:
2405 (WebKit::ServicesController::hasRichContentServices):
2406 * UIProcess/mac/ServicesController.mm:
2407 (WebKit::ServicesController::ServicesController):
2408 (WebKit::ServicesController::refreshExistingServices):
2409 * WebProcess/WebCoreSupport/WebEditorClient.cpp:
2410 (WebKit::WebEditorClient::selectionRectsDidChange):
2411 * WebProcess/WebCoreSupport/WebEditorClient.h:
2412 * WebProcess/WebPage/ServicesOverlayController.h:
2413 * WebProcess/WebPage/mac/ServicesOverlayController.mm:
2414 (WebKit::ServicesOverlayController::ServicesOverlayController):
2415 (WebKit::ServicesOverlayController::selectionRectsDidChange):
2416 (WebKit::ServicesOverlayController::drawSelectionHighlight):
2417 * WebProcess/WebProcess.cpp:
2418 (WebKit::WebProcess::WebProcess):
2419 (WebKit::WebProcess::initializeWebProcess):
2420 (WebKit::WebProcess::setEnabledServices):
2421 * WebProcess/WebProcess.h:
2422 (WebKit::WebProcess::hasRichContentServices):
2423 * WebProcess/WebProcess.messages.in:
2425 2014-08-07 Ryuan Choi <ryuan.choi@samsung.com>
2427 [EFL] Fix several warnings of doxygen
2428 https://bugs.webkit.org/show_bug.cgi?id=135643
2430 Reviewed by Gyuyoung Kim.
2432 * UIProcess/API/efl/ewk_context_menu_item.h: Removed /info which is not doxygen keyword and unnecessary to the user.
2433 * UIProcess/API/efl/ewk_cookie_manager.h: Fixed parameter name.
2434 * UIProcess/API/efl/ewk_form_submission_request.h: Removed # from Eina_List because doxygen may not know the EFL structures.
2435 * UIProcess/API/efl/ewk_page_group.h: Fixed to match with parameter name.
2436 * UIProcess/API/efl/ewk_settings.h: Fixed wrong keyword and parameter name.
2437 * UIProcess/API/efl/ewk_text_checker.h: Ditto.
2438 * UIProcess/API/efl/ewk_view.h:
2439 - Used escape string for the tag.
2440 - Used @code, @endcode for media query example.
2442 2014-08-07 Benjamin Poulain <bpoulain@apple.com>
2444 Get rid of INPUT_SPEECH
2445 https://bugs.webkit.org/show_bug.cgi?id=135672
2447 Reviewed by Andreas Kling.
2449 * Configurations/FeatureDefines.xcconfig:
2450 * PlatformGTK.cmake:
2452 2014-08-07 Timothy Hatcher <timothy@apple.com>
2454 Web Inspector: Update glyphs to be more like Xcode 6
2455 https://bugs.webkit.org/show_bug.cgi?id=135705
2457 Reviewed by Joseph Pecoraro.
2459 * Resources/DockBottom.pdf: Added.
2460 * Resources/DockBottomLegacy.pdf: Copied from Source/WebKit/mac/Resources/Dock.pdf.
2461 * Resources/DockRight.pdf: Added.
2462 * Resources/DockRightLegacy.pdf: Copied from Source/WebKit2/Resources/DockRight.pdf.
2463 * UIProcess/mac/WebInspectorProxyMac.mm:
2464 (WebKit::WebInspectorProxy::createInspectorWindow): Use new images.
2465 * WebKit2.xcodeproj/project.pbxproj: Added new images.
2467 2014-08-07 Oliver Hunt <oliver@apple.com>
2469 WebContent needs access to HSTS database due to some networking still being performed in process
2470 https://bugs.webkit.org/show_bug.cgi?id=135711
2473 Reviewed by Alexey Proskuryakov.
2475 Simple patch in the same theme as the equivalent network process
2476 extension. Provide an extension that covers the WebContent specific
2477 HSTS file and consume it on launch.
2479 * Shared/WebProcessCreationParameters.cpp:
2480 (WebKit::WebProcessCreationParameters::encode):
2481 (WebKit::WebProcessCreationParameters::decode):
2482 * Shared/WebProcessCreationParameters.h:
2483 * UIProcess/WebContext.cpp:
2484 (WebKit::WebContext::createNewWebProcess):
2485 * UIProcess/WebContext.h:
2486 * UIProcess/mac/WebContextMac.mm:
2487 (WebKit::WebContext::webContentHSTSDatabasePath):
2488 * WebProcess/cocoa/WebProcessCocoa.mm:
2489 (WebKit::WebProcess::platformInitializeWebProcess):
2491 2014-08-07 Gordon Sheridan <gordon_sheridan@apple.com>
2493 Clear the m_previousItem member of HistoryControllers when it matches the HistoryItem being removed.
2494 https://bugs.webkit.org/show_bug.cgi?id=135634
2495 <rdar://problem/17388461>
2497 Reviewed by Brady Eidson.
2499 * WebProcess/WebPage/WebBackForwardListProxy.cpp:
2500 (WebKit::WebBackForwardListProxy::removeItem):
2501 Call WebCore::Page::clearPreviousItemFromAllPages() for each item removed from
2502 the back/forward list to ensure the page URL is released from IconDatabase.
2504 2014-08-07 Carlos Garcia Campos <cgarcia@igalia.com>
2506 [GTK] Use WebKitNavigationAction also for WebKitNavigationPolicyDecision
2507 https://bugs.webkit.org/show_bug.cgi?id=135695
2509 Reviewed by Gustavo Noronha Silva.
2511 WebKitNavigationAction was introduced to extend WebKitWebView::create signal
2512 and its API is mostly duplicated in WebKitNavigationPolicyDecision.
2513 Use WebKitNavigationAction insternally in WebKitNavigationPolicyDecision and
2514 deprecated all the duplicated API in favor of a single property navigation-action.
2516 * UIProcess/API/gtk/WebKitDefines.h: Remove unused macro
2517 WEBKIT_OBSOLETE and add WEBKIT_DEPRECATED and WEBKIT_DEPRECATED_FOR.
2518 * UIProcess/API/gtk/WebKitNavigationPolicyDecision.cpp:
2519 (_WebKitNavigationPolicyDecisionPrivate::~_WebKitNavigationPolicyDecisionPrivate):
2520 Free the WebKitNavigationAction.
2521 (webkitNavigationPolicyDecisionGetProperty): Add getter for
2522 navigation-action and use WebKitNavigationAction in all other getters.
2523 (webkit_navigation_policy_decision_class_init): Add navigation-action
2524 property and deprecated all others except frame-name.
2525 (webkit_navigation_policy_decision_get_navigation_action): Return the WebKitNavigationAction.
2526 (webkit_navigation_policy_decision_get_navigation_type): Use WebKitNavigationAction.
2527 (webkit_navigation_policy_decision_get_mouse_button): Ditto.
2528 (webkit_navigation_policy_decision_get_modifiers): Ditto.
2529 (webkit_navigation_policy_decision_get_request): Ditto.
2530 (webkitNavigationPolicyDecisionCreate):
2531 (webkitNewWindowPolicyDecisionCreate):
2532 * UIProcess/API/gtk/WebKitNavigationPolicyDecision.h:
2533 * UIProcess/API/gtk/WebKitNavigationPolicyDecisionPrivate.h:
2534 * UIProcess/API/gtk/WebKitPolicyClient.cpp: Use a custom
2535 PolicyClient class so that we receive a NavigationActionData in
2537 (attachPolicyClientToView):
2538 (toWebKitNavigationType): Deleted.
2539 (decidePolicyForNavigationAction): Deleted.
2540 (decidePolicyForNewWindowAction): Deleted.
2541 (decidePolicyForResponse): Deleted.
2542 * UIProcess/API/gtk/WebKitResponsePolicyDecision.cpp:
2543 (webkitResponsePolicyDecisionCreate):
2544 * UIProcess/API/gtk/WebKitResponsePolicyDecisionPrivate.h:
2545 * UIProcess/API/gtk/docs/webkit2gtk-docs.sgml: Add new section for
2547 * UIProcess/API/gtk/docs/webkit2gtk-sections.txt: Add new symbols.
2549 2014-08-06 Antti Koivisto <antti@apple.com>
2551 Move Soup specific code out of WebCoreArgumentCoders.cpp
2552 https://bugs.webkit.org/show_bug.cgi?id=135665
2554 Reviewed by Anders Carlsson.
2556 * Shared/WebCoreArgumentCoders.cpp:
2557 (IPC::ArgumentCoder<ResourceRequest>::encode):
2558 (IPC::ArgumentCoder<ResourceRequest>::decode):
2559 (IPC::ArgumentCoder<ResourceError>::encode):
2560 (IPC::ArgumentCoder<ResourceError>::decode):
2561 * Shared/WebCoreArgumentCoders.h:
2563 Soup is the only client for this code. Move it to *Soup.cpp
2565 * Shared/soup/WebCoreArgumentCodersSoup.cpp:
2566 (IPC::ArgumentCoder<ResourceRequest>::encodePlatformData):
2567 (IPC::ArgumentCoder<ResourceRequest>::decodePlatformData):
2568 (IPC::ArgumentCoder<ResourceError>::encodePlatformData):
2569 (IPC::ArgumentCoder<ResourceError>::decodePlatformData):
2571 2014-08-06 Tim Horton <timothy_horton@apple.com>
2573 Services overlay flashes a lot; should have some hysteresis before showing overlay
2574 https://bugs.webkit.org/show_bug.cgi?id=135683
2575 <rdar://problem/16878039>
2577 Reviewed by Simon Fraser.
2579 Don't show the highlight until it's been 200ms since the last change
2580 in selection or change in which highlight is hovered, whichever was more recent.
2582 * WebProcess/WebPage/ServicesOverlayController.h:
2583 * WebProcess/WebPage/mac/ServicesOverlayController.mm:
2584 (WebKit::ServicesOverlayController::ServicesOverlayController):
2585 (WebKit::ServicesOverlayController::selectionRectsDidChange):
2586 Keep track of when the selection last changed.
2588 (WebKit::ServicesOverlayController::drawTelephoneNumberHighlightIfVisible):
2589 Make establishHoveredTelephoneHighlight take a bool instead of Boolean.
2591 (WebKit::ServicesOverlayController::mouseIsOverHighlight):
2592 Factor mouseIsOverHighlight out of establishHoveredTelephoneHighlight and drawHighlight.
2594 (WebKit::ServicesOverlayController::remainingTimeUntilHighlightShouldBeShown):
2595 Return the amount of time until the highlight should be shown; this is
2596 the maximum of (the difference between the last selection change and the timeout)
2597 and (the difference between the last change in which highlight is hovered and the timeout).
2599 Telephone number highlights are shown immediately, because they are already stable
2600 by virtue of being expanded to include the entire telephone number.
2602 (WebKit::ServicesOverlayController::repaintHighlightTimerFired):
2603 (WebKit::ServicesOverlayController::drawHighlight):
2604 If the highlight shouldn't be shown yet (because we haven't hit the two timeouts),
2605 schedule a timer to repaint us around when we will hit the timeouts.
2607 (WebKit::ServicesOverlayController::establishHoveredTelephoneHighlight):
2608 (WebKit::ServicesOverlayController::mouseEvent):
2609 Don't allow mouseUp to trigger the menu if we shouldn't be showing the overlay yet.
2611 2014-08-06 Simon Fraser <simon.fraser@apple.com>
2613 [iOS WK2] www.france24.com doesn't always load the page, sections stay white
2614 https://bugs.webkit.org/show_bug.cgi?id=135684
2615 <rdar://problem/17931712>
2617 Reviewed by Tim Horton.
2619 It's possible for a UIScrollView for overflow to move between one scrolling tree node
2620 and another. When this happens, we need to avoid unconditionally clearing the delegate
2621 on the node that's being destroyed, because the new node will already have set the
2622 UIScrollView delegate to its own delegate.
2624 * UIProcess/Scrolling/ios/ScrollingTreeOverflowScrollingNodeIOS.mm:
2625 (WebKit::ScrollingTreeOverflowScrollingNodeIOS::~ScrollingTreeOverflowScrollingNodeIOS):
2627 2014-08-06 Dean Jackson <dino@apple.com>
2629 ENABLE_CSS_TRANSFORMS_ANIMATIONS_UNPREFIXED is not used anywhere. Remove it.
2630 https://bugs.webkit.org/show_bug.cgi?id=135675
2632 Reviewed by Sam Weinig.
2634 * Configurations/FeatureDefines.xcconfig:
2636 2014-08-06 Brady Eidson and Jeffrey Pfau <beidson@apple.com>
2638 IDB transactions never reset if the Web Process ends before cleaning up
2639 https://bugs.webkit.org/show_bug.cgi?id=135218
2641 Reviewed by Darin Adler and David Kilzer.
2643 * DatabaseProcess/DatabaseToWebProcessConnection.cpp:
2644 (WebKit::DatabaseToWebProcessConnection::didReceiveMessage):
2645 (WebKit::DatabaseToWebProcessConnection::didReceiveSyncMessage): Added.
2646 (WebKit::DatabaseToWebProcessConnection::didClose):
2647 * DatabaseProcess/DatabaseToWebProcessConnection.h:
2649 * DatabaseProcess/IndexedDB/DatabaseProcessIDBConnection.cpp:
2650 (WebKit::DatabaseProcessIDBConnection::resetTransactionSync): Added
2651 Wait until the reset is complete before sending the sync reply.
2652 (WebKit::DatabaseProcessIDBConnection::rollbackTransactionSync): Added.
2654 * DatabaseProcess/IndexedDB/DatabaseProcessIDBConnection.h:
2655 * DatabaseProcess/IndexedDB/DatabaseProcessIDBConnection.messages.in:
2657 Keep track of all in progress transactions and make sure they’re cleaned up
2658 whenever a connection to a WebProcess is broken:
2659 * DatabaseProcess/IndexedDB/UniqueIDBDatabase.cpp:
2660 (WebKit::UniqueIDBDatabase::unregisterConnection):
2661 (WebKit::UniqueIDBDatabase::didCompleteTransactionOperation):
2662 (WebKit::UniqueIDBDatabase::openBackingStoreTransaction):
2663 (WebKit::UniqueIDBDatabase::resetBackingStoreTransaction):
2664 (WebKit::UniqueIDBDatabase::didEstablishTransaction):
2665 (WebKit::UniqueIDBDatabase::didResetTransaction):
2666 (WebKit::UniqueIDBDatabase::resetAllTransactions):
2667 (WebKit::UniqueIDBDatabase::finalizeRollback):
2668 * DatabaseProcess/IndexedDB/UniqueIDBDatabase.h:
2670 * DatabaseProcess/IndexedDB/sqlite/UniqueIDBDatabaseBackingStoreSQLite.cpp:
2671 (WebKit::UniqueIDBDatabaseBackingStoreSQLite::rollbackTransaction):
2673 Add sync versions of reset/rollback:
2674 * WebProcess/Databases/IndexedDB/WebIDBServerConnection.cpp:
2675 (WebKit::WebIDBServerConnection::resetTransactionSync):
2676 (WebKit::WebIDBServerConnection::rollbackTransactionSync):
2677 * WebProcess/Databases/IndexedDB/WebIDBServerConnection.h:
2679 2014-08-06 Wenson Hsieh <wenson_hsieh@apple.com>
2681 Implement parsing for CSS scroll snap points
2682 https://bugs.webkit.org/show_bug.cgi?id=134301
2684 Reviewed by Dean Jackson.
2686 * Configurations/FeatureDefines.xcconfig: Added ENABLE_CSS_SCROLL_SNAP
2688 2014-08-06 Andy Estes <aestes@apple.com>
2690 [iOS] Subresources referenced in converted QuickLook documents sometimes fail to load
2691 https://bugs.webkit.org/show_bug.cgi?id=135676
2693 Reviewed by David Kilzer.
2695 QuickLookHandle needs to stay alive in order for its NSURLProtocol to service subresource loads originating
2696 from the converted HTML document. Some of these loads happen dynamically after the main resource finishes
2697 loading, so we cannot tie the lifetime of the QuickLookHandle to that of the main resource's ResourceLoader.
2698 Instead, give ownership of the QuickLookHandle to DocumentLoader.
2700 * WebProcess/Network/WebResourceLoader.cpp:
2701 (WebKit::WebResourceLoader::didReceiveResponseWithCertificateInfo): Stored the created QuickLookHandle in DocumentLoader.
2702 (WebKit::WebResourceLoader::didReceiveData): Accessed DocumentLoader's QuickLookHandle.
2703 (WebKit::WebResourceLoader::didFinishResourceLoad): Ditto.
2704 (WebKit::WebResourceLoader::didFailResourceLoad): Ditto.
2705 (WebKit::WebResourceLoader::didReceiveResource): Ditto.
2706 * WebProcess/Network/WebResourceLoader.h: Removed m_quickLookHandle.
2708 2014-08-06 Filip Pizlo <fpizlo@apple.com>
2710 Merge r171389, r171495, r171508, r171510, r171605, r171606, r171611, r171614, r171763 from ftlopt.
2712 2014-08-06 Mark Hahnenberg <mhahnenberg@apple.com>
2714 Refactor our current implementation of for-in
2715 https://bugs.webkit.org/show_bug.cgi?id=134142
2717 Reviewed by Filip Pizlo.
2719 * WebProcess/Plugins/Netscape/JSNPObject.cpp:
2720 (WebKit::JSNPObject::invalidate): Fixed an invalid ASSERT that was crashing in debug builds.
2722 2014-08-06 Alexey Proskuryakov <ap@apple.com>
2724 REGRESSION (WebKit2): iOS Safari default encoding doesn't follow system language
2725 https://bugs.webkit.org/show_bug.cgi?id=135667
2726 <rdar://problem/17862892>
2728 Reviewed by Anders Carlsson.
2730 * Shared/WebPreferencesDefinitions.h: Compute the actual proper default, don't
2731 hardcode it to ISO-8859-1 hoping that someone else will correct it later.
2733 * Shared/WebPreferencesStore.cpp: Added an include for WebPreferencesDefinitions.h
2734 macro expansion to compile.
2736 * UIProcess/WebPreferences.cpp: (WebKit::WebPreferences::createWithLegacyDefaults):
2739 * WebProcess/WebCoreSupport/mac/WebSystemInterface.mm: (InitWebCoreSystemInterface):
2740 We now use WKGetWebDefaultCFStringEncoding in WebCore, so it needs to be initialized.
2742 2014-08-06 Adrian Perez de Castro <aperez@igalia.com>
2744 [GTK] Add support for user scripts to WebKitUserContentManager
2745 https://bugs.webkit.org/show_bug.cgi?id=134738
2747 Reviewed by Carlos Garcia Campos.
2749 Add support for user scripts, to complement the user style sheet
2750 support already present in WebKitUserContentManager. Most of the
2751 moving parts are already present, so this just adds a boxed type
2752 for user scripts (WebKitUserScript) and the corresponding methods
2753 to add and remove scripts from the WebKitUserContentManager.
2755 * UIProcess/API/gtk/WebKitUserContent.cpp: Add a WebKitUserScript
2756 boxed type and its corresponding methods and enums.
2757 (toUserScriptInjectionTime): Needed to convert
2758 WebKitUserScriptInjectionTime values into its WebCore counterparts.
2759 (_WebKitUserScript::_WebKitUserScript): Added.
2760 (_WebKitUserScript::referenceCount): Ditto.
2761 (webkit_user_script_ref):
2762 (webkit_user_script_unref):
2763 (webkit_user_script_new):
2764 (webkitUserScriptGetUserScript): Internal method to obtain the
2765 boxed WebCore::UserScript value.
2766 * UIProcess/API/gtk/WebKitUserContent.h: Add the new public API
2768 * UIProcess/API/gtk/WebKitUserContentManager.cpp: Implement the
2769 methods for adding and removing user scripts.
2770 (webkit_user_content_manager_add_script):
2771 (webkit_user_content_manager_remove_all_scripts):
2772 * UIProcess/API/gtk/WebKitUserContentManager.h: Add the new public
2774 * UIProcess/API/gtk/WebKitUserContentPrivate.h: Add the definition
2775 for the new private function.
2776 * UIProcess/API/gtk/docs/webkit2gtk-sections.txt: Include the
2777 new public methods in the API documentation.
2779 2014-08-06 Carlos Garcia Campos <cgarcia@igalia.com>
2781 [GTK] Be able to disable gtk2 dependency
2782 https://bugs.webkit.org/show_bug.cgi?id=135505
2784 Reviewed by Gustavo Noronha Silva.
2786 * PlatformGTK.cmake: Only build WebKitPluginProcess2 when
2787 ENABLE_PLUGIN_PROCESS_GTK2 is ON.
2788 * UIProcess/Launcher/gtk/ProcessLauncherGtk.cpp:
2789 (WebKit::ProcessLauncher::launchProcess): Do not try to launch
2790 WebKitPluginProcess2 executable when ENABLE_PLUGIN_PROCESS_GTK2 is OFF.
2792 2014-08-05 Tim Horton <timothy_horton@apple.com>
2794 REGRESSION (r164337): Pages are sometimes cut off/oriented incorrectly after using WKThumbnailView
2795 https://bugs.webkit.org/show_bug.cgi?id=135622
2796 <rdar://problem/17202556>
2798 Reviewed by Dan Bernstein.
2800 In some cases (when the page changed scroll offset while thumbnailed),
2801 when transitioning back to thumbnail scale = 1, we would get the math
2802 wrong and end up with a non-identity sublayerTransform on the DrawingArea.
2804 Luckily, none of this code is necessary anymore, as the only client
2805 of WKThumbnailView only uses its snapshotting mode.
2807 * Shared/ImageOptions.h:
2808 Remove SnapshotOptionsRespectDrawingAreaTransform; DrawingArea no longer
2809 has a rootLayerTransform().
2811 * UIProcess/WebPageProxy.cpp:
2812 (WebKit::WebPageProxy::setThumbnailScale): Deleted.
2813 * UIProcess/WebPageProxy.h:
2814 * WebProcess/WebPage/WebPage.cpp:
2815 (WebKit::WebPage::WebPage):
2816 (WebKit::WebPage::scaledSnapshotWithOptions):
2817 (WebKit::WebPage::snapshotAtSize):
2819 (WebKit::WebPage::setThumbnailScale): Deleted.
2820 * WebProcess/WebPage/WebPage.h:
2821 * WebProcess/WebPage/WebPage.messages.in:
2822 Remove setThumbnailScale and SnapshotOptionsRespectDrawingAreaTransform.
2824 * WebProcess/WebPage/WebPage.cpp:
2825 (WebKit::WebPage::didCommitLoad):
2826 Revert this to its state before r164337, as we no longer have "thumbnail scale".
2828 * UIProcess/API/Cocoa/_WKThumbnailView.h:
2829 * UIProcess/API/Cocoa/_WKThumbnailView.mm:
2830 (-[_WKThumbnailView initWithFrame:fromWKView:]):
2831 (-[_WKThumbnailView _viewWasUnparented]):
2832 (-[_WKThumbnailView _viewWasParented]):
2833 (-[_WKThumbnailView _requestSnapshotIfNeeded]):
2834 (-[_WKThumbnailView setScale:]):
2835 Clean up code assuming _shouldApplyThumbnailScale = NO, _usesSnapshot = YES.
2837 (-[_WKThumbnailView setUsesSnapshot:]):
2838 (-[_WKThumbnailView usesSnapshot]):
2839 Always return YES from usesSnapshot; we only support snapshotting WKThumbnailViews.
2840 Ignore setUsesSnapshot.
2842 * UIProcess/API/mac/WKView.mm:
2843 (-[WKView _setThumbnailView:]):
2844 (-[WKView _updateThumbnailViewLayer]):
2845 Stop checking usesSnapshot; it's always true.
2847 * WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.h:
2848 * WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.mm:
2849 (WebKit::TiledCoreAnimationDrawingArea::setRootLayerTransform): Deleted.
2850 * WebProcess/WebPage/DrawingArea.cpp:
2851 (WebKit::DrawingArea::rootLayerTransform): Deleted.
2852 * WebProcess/WebPage/DrawingArea.h:
2853 (WebKit::DrawingArea::setRootLayerTransform): Deleted.
2854 Remove rootLayerTransform() and setRootLayerTransform().
2856 2014-08-05 Peyton Randolph <prandolph@apple.com>
2858 Rename MAC_LONG_PRESS feature flag to LONG_MOUSE_PRESS.
2859 https://bugs.webkit.org/show_bug.cgi?id=135276
2861 Reviewed by Beth Dakin.
2863 * Configurations/FeatureDefines.xcconfig:
2865 2014-08-04 Andy Estes <aestes@apple.com>
2867 [iOS] The raw bytes of an iWork document's PDF preview are displayed rather than the PDF itself
2868 https://bugs.webkit.org/show_bug.cgi?id=135596
2870 Reviewed by David Kilzer.
2872 * WebProcess/Network/WebResourceLoader.cpp:
2873 (WebKit::WebResourceLoader::didReceiveResponseWithCertificateInfo): If the response will be handled by
2874 QuickLook, do not call ResourceLoader::didReceiveResponse. It will be called later by
2875 WebResourceLoaderQuickLookDelegate once converted data is received.
2877 2014-08-05 Alexey Proskuryakov <ap@apple.com>
2881 * UIProcess/WebContext.h:
2883 2014-08-05 Oliver Hunt <oliver@apple.com>
2885 SSO expects to be able to walk parent application's bundle
2886 https://bugs.webkit.org/show_bug.cgi?id=135581
2887 <rdar://problem/17864079>
2889 Reviewed by Alexey Proskuryakov.
2891 SSO expects to be able to walk the parent application's
2892 bundle looking for Info plists. To allow this to actually
2893 work we provide an extension from the ui process that
2894 covers the bundle directory, and then in the profile
2895 restrict access to the ability to read directories and
2896 files named Info.plist.
2898 * NetworkProcess/cocoa/NetworkProcessCocoa.mm:
2899 (WebKit::NetworkProcess::platformInitializeNetworkProcessCocoa):
2900 * Resources/SandboxProfiles/ios/com.apple.WebKit.Networking.sb:
2901 * Shared/Network/NetworkProcessCreationParameters.cpp:
2902 (WebKit::NetworkProcessCreationParameters::encode):
2903 (WebKit::NetworkProcessCreationParameters::decode):
2904 * Shared/Network/NetworkProcessCreationParameters.h:
2905 * UIProcess/WebContext.cpp:
2906 (WebKit::WebContext::ensureNetworkProcess):
2907 (WebKit::WebContext::parentBundleDirectory):
2908 * UIProcess/WebContext.h:
2909 * UIProcess/mac/WebContextMac.mm:
2910 (WebKit::WebContext::parentBundleDirectory):
2912 2014-08-04 Benjamin Poulain <benjamin@webkit.org>
2914 Add a flag for the CSS Selectors level 4 implementation
2915 https://bugs.webkit.org/show_bug.cgi?id=135535
2917 Reviewed by Andreas Kling.
2919 * Configurations/FeatureDefines.xcconfig:
2921 2014-08-04 Benjamin Poulain <bpoulain@apple.com>
2923 Check for null frame when processing geolocation authorization request
2924 https://bugs.webkit.org/show_bug.cgi?id=135577
2925 <rdar://problem/17896295>
2927 Reviewed by Geoffrey Garen.
2929 I could have put the null check in GeolocationController instead of the WebKit layer,
2930 but that would be a little weird as GeolocationController knows nothing about how
2931 the WebKit layer decides what to do with requests.
2933 * WebProcess/Geolocation/GeolocationPermissionRequestManager.cpp:
2934 (WebKit::GeolocationPermissionRequestManager::startRequestForGeolocation):
2936 2014-08-02 Jeremy Jones <jeremyj@apple.com>
2938 Support both window and view based video fullscreen.
2939 https://bugs.webkit.org/show_bug.cgi?id=135525
2941 Reviewed by Simon Fraser.
2943 Parenting in the view instead of the window gives the fullscreen implementation more latitude
2944 in how it implements the animation.
2946 * UIProcess/ios/WebVideoFullscreenManagerProxy.mm:
2947 (WebKit::WebVideoFullscreenManagerProxy::setupFullscreenWithID): Use view instead of window.
2948 * WebProcess/ios/WebVideoFullscreenManager.mm:
2949 (WebKit::clientRectForNode): Use client rect instead of screen rect.
2950 (WebKit::WebVideoFullscreenManager::enterFullscreenForNode): ditto
2951 (WebKit::WebVideoFullscreenManager::exitFullscreenForNode): ditto
2952 (WebKit::screenRectForNode): Deleted.
2954 2014-08-01 Dan Bernstein <mitz@apple.com>
2956 <rdar://problem/17891752> [iOS] WebKit links against libraries it doesn’t use
2957 https://bugs.webkit.org/show_bug.cgi?id=135536
2959 Reviewed by Tim Horton.
2961 * Configurations/WebKit.xcconfig: Removed -lassertion_extension and -framework MobileAsset
2962 from FRAMEWORK_AND_LIBRARY_LDFLAGS_iphonesimulator.
2964 2014-08-01 Joseph Pecoraro <pecoraro@apple.com>
2966 [iOS WK2] Add extension read permission to network sandbox profile
2967 <rdar://problem/17671574>
2969 Reviewed by Alexey Proskuryakov and Oliver Hunt.
2971 * Resources/SandboxProfiles/ios/com.apple.WebKit.Networking.sb:
2973 2014-08-01 Oliver Hunt <oliver@apple.com>
2975 Various frameworks may want to use the container temp directory, so our current restrictions are too tight
2976 https://bugs.webkit.org/show_bug.cgi?id=135518
2979 Reviewed by Anders Carlsson.
2981 We don't (and can't) have complete knowledge of what different frameworks
2982 will want to use the container temporary directory for, and so our
2983 current attempt to heavily restrict access is simply too tight.
2985 This patch recognises this by simply giving read-write access to the
2986 entire NSTemporary() directory (e.g. $container/tmp in the general case),
2987 rather than the single sub directory we wishfully thought that we would
2988 be able to get away with.
2990 * Shared/WebProcessCreationParameters.cpp:
2991 (WebKit::WebProcessCreationParameters::encode):
2992 (WebKit::WebProcessCreationParameters::decode):
2993 * Shared/WebProcessCreationParameters.h:
2994 * UIProcess/WebContext.cpp:
2995 (WebKit::WebContext::createNewWebProcess):
2996 (WebKit::WebContext::mediaCacheDirectory): Deleted.
2997 * UIProcess/WebContext.h:
2998 * UIProcess/efl/WebContextEfl.cpp:
2999 (WebKit::WebContext::containerTemporaryDirectory):
3000 (WebKit::WebContext::platformMediaCacheDirectory): Deleted.
3001 * UIProcess/gtk/WebContextGtk.cpp:
3002 (WebKit::WebContext::containerTemporaryDirectory):
3003 (WebKit::WebContext::platformMediaCacheDirectory): Deleted.
3004 * UIProcess/mac/WebContextMac.mm:
3005 (WebKit::WebContext::containerTemporaryDirectory):
3006 (WebKit::WebContext::platformMediaCacheDirectory): Deleted.
3007 * WebProcess/cocoa/WebProcessCocoa.mm:
3008 (WebKit::WebProcess::platformInitializeWebProcess):
3010 2014-08-01 Dan Bernstein <mitz@apple.com>
3012 <rdar://problem/17862013> REGRESSION (r169357): Disabling "allow plug-ins" doesn't stick on quit/relaunch
3013 https://bugs.webkit.org/show_bug.cgi?id=135511
3015 Reviewed by Alexey Proskuryakov.
3017 Since the values map in the preferences store doesn’t include values that are equal to the
3018 defaults, we need to update it when a new default is registered.
3020 * UIProcess/WebPreferences.cpp:
3021 (WebKit::WebPreferences::createWithLegacyDefaults): Changed to use new member functions
3022 for registering defaults.
3023 (WebKit::WebPreferences::registerDefaultBoolValueForKey): Added. Sets an override default
3024 in the store, and sets the user default, if there is one, on top of it.
3025 (WebKit::WebPreferences::registerDefaultUInt32ValueForKey): Ditto.
3026 * UIProcess/WebPreferences.h: Declared new member functions for getting the user default
3029 * UIProcess/efl/WebPreferencesEfl.cpp:
3030 (WebKit::WebPreferences::platformGetStringUserValueForKey): Added an implementation that
3031 returns false, because the EFL port doesn’t support persistent user defaults.
3032 (WebKit::WebPreferences::platformGetBoolUserValueForKey): Ditto.
3033 (WebKit::WebPreferences::platformGetUInt32UserValueForKey): Ditto.
3034 (WebKit::WebPreferences::platformGetDoubleUserValueForKey): Ditto.
3036 * UIProcess/gtk/WebPreferencesGtk.cpp:
3037 (WebKit::WebPreferences::platformGetStringUserValueForKey): Ditto for the GTK port.
3038 (WebKit::WebPreferences::platformGetBoolUserValueForKey): Ditto.
3039 (WebKit::WebPreferences::platformGetUInt32UserValueForKey): Ditto.
3040 (WebKit::WebPreferences::platformGetDoubleUserValueForKey): Ditto.
3042 * UIProcess/mac/WebPreferencesMac.mm:
3043 (WebKit::WebPreferences::platformGetStringUserValueForKey): Added. Replaces
3044 setStringValueIfInUserDefaults, on which it is based.
3045 (WebKit::WebPreferences::platformGetBoolUserValueForKey): Similarly for booleans.
3046 (WebKit::WebPreferences::platformGetUInt32UserValueForKey): Similarly for integers.
3047 (WebKit::WebPreferences::platformGetDoubleUserValueForKey): Similarly for doubles.
3048 (WebKit::WebPreferences::platformInitializeStore): Changed to use the above functions.
3050 2014-08-01 Brent Fulgham <bfulgham@apple.com>
3052 [Mac] Fullscreen mode for some applications shows only a black screen.
3053 https://bugs.webkit.org/show_bug.cgi?id=135493
3054 <rdar://problem/17628212>
3056 Reviewed by Jer Noble.
3058 In some applications, the window hosting the WKView is an InProcess layer hosting mode.
3059 The fullscreen window created by the WKFullScreenWindowController defaults to an
3062 When this kind of mismatch is encountered, the WK2 layer in the UI process is supposed
3063 to send a message back to the WebProcess indicating that the layer hosting mode of the
3064 containing window is different, so that the WebProcess can adjust its logic accordingly.
3065 Unfortunately, the notification that this had happened was not getting sent to the
3066 WebProcess due to an optimization in window state change logic (see Bug 135509 for
3069 The fix is to check layer hosting mode state when a WKView is added to a window, and
3070 notify the WebProcess when it needs to change state to match.
3073 * UIProcess/API/mac/WKView.mm:
3074 (-[WKView viewDidMoveToWindow]): When moving to a new window, always call
3075 'layerHostingModeDidChange' to pick up any changes in the layer hosting mode.
3077 2014-08-01 Carlos Garcia Campos <cgarcia@igalia.com>
3079 [CMake] GTK and EFL are using PROJECT_VERSION_PATCH to define the micro version
3080 https://bugs.webkit.org/show_bug.cgi?id=135501
3082 Reviewed by Gyuyoung Kim.
3084 Use PROJECT_VERSION_MICRO instead.
3086 * UIProcess/API/efl/EWebKit2.h.in:
3087 * UIProcess/API/gtk/WebKitVersion.h.in:
3089 2014-08-01 Carlos Garcia Campos <cgarcia@igalia.com>
3091 Unreviewed. Add missing sections to documentation.
3093 * UIProcess/API/gtk/docs/webkit2gtk-docs.sgml: Add
3094 WebKitUserContent and WebKitUserContentManager sections to the
3097 2014-08-01 Ryuan Choi <ryuan.choi@samsung.com>
3099 [EFL] Unable to do make install since r171901
3100 https://bugs.webkit.org/show_bug.cgi?id=135497
3102 Reviewed by Gyuyoung Kim.
3104 * PlatformEfl.cmake: Removed ewk_defins.h from the installation list.
3106 2014-07-31 Ryuan Choi <ryuan.choi@samsung.com>
3108 [EFL][WK2] MiniBrower comes to crash when combo box is pressed
3109 https://bugs.webkit.org/show_bug.cgi?id=135378
3111 Reviewed by Gyuyoung Kim.
3113 Added doxygen comment of popup_menu_show/popup_menu_hide not to confuse the usage.
3115 * UIProcess/API/efl/ewk_view.h:
3117 2014-07-31 Ryuan Choi <ryuan.choi@samsung.com>
3119 [EFL] remove ewk_defines.h
3120 https://bugs.webkit.org/show_bug.cgi?id=135456
3122 Reviewed by Gyuyoung Kim.
3124 * UIProcess/API/efl/ewk_context_menu.h:
3125 * UIProcess/API/efl/ewk_context_menu_item.h: Moved the declaration from ewk_defines.h
3126 * UIProcess/API/efl/ewk_defines.h: Removed.
3128 2014-07-31 Brent Fulgham <bfulgham@apple.com>
3130 Unreviewed typo correction.
3131 https://bugs.webkit.org/show_bug.cgi?id=135482
3133 Rename '_fullScreenIsEnabled' -> '_fullScreenEnabled'
3135 * UIProcess/API/Cocoa/WKPreferences.mm:
3136 (-[WKPreferences _fullScreenEnabled]): Added
3137 (-[WKPreferences _fullScreenIsEnabled]): Deleted.
3138 * UIProcess/API/Cocoa/WKPreferencesPrivate.h:
3140 2014-07-31 Brent Fulgham <bfulgham@apple.com>
3142 MiniBrowser Should Support Fullscreen Videos in WebKit2 Mode
3143 https://bugs.webkit.org/show_bug.cgi?id=135482
3145 Reviewed by Simon Fraser.
3147 Add accessors for the missing Fullscreen API so that MiniBrowser
3150 * UIProcess/API/Cocoa/WKPreferences.mm:
3151 (-[WKPreferences _fullScreenIsEnabled]): Added.
3152 (-[WKPreferences _setFullScreenEnabled:]): Added.
3153 * UIProcess/API/Cocoa/WKPreferencesPrivate.h: Add accessor for
3156 2014-07-31 Beth Dakin <bdakin@apple.com>
3158 Hit-testing broken in WebKit 1 views with AppKit's contentInsets
3159 https://bugs.webkit.org/show_bug.cgi?id=135434
3161 <rdar://problem/17850323>
3163 Reviewed by Benjamin Poulain.
3166 * WebProcess/Plugins/PDF/PDFPlugin.mm:
3167 (WebKit::PDFPlugin::convertFromScrollbarToContainingView):
3168 (WebKit::PDFPlugin::convertFromContainingViewToScrollbar):
3170 2014-07-31 Oliver Hunt <oliver@apple.com>
3172 Various SSO services need the networking process to be able to spoof its bundle id
3173 https://bugs.webkit.org/show_bug.cgi?id=135468
3174 <rdar://problem/17864139>
3176 Reviewed by Alexey Proskuryakov.
3178 Just add the entitlement required to allow the sandbox to let this happen.
3180 * Configurations/Network-iOS.entitlements:
3182 2014-07-31 Przemyslaw Kuczynski <p.kuczynski@samsung.com>
3184 Fix uninitialized scalar variable
3185 https://bugs.webkit.org/show_bug.cgi?id=135461
3187 Reviewed by Alexey Proskuryakov.
3189 If fopen fails, returned ApplicationMemoryStats structure will be uninitialized
3191 * Shared/linux/WebMemorySamplerLinux.cpp:
3192 (WebKit::sampleMemoryAllocatedForApplication): Initialized applicationStats.
3194 2014-07-31 Rohit Kumar <kumar.rohit@samsung.com>
3196 Clean up the WebKit build from unused parameter warning in Webkit2/WebProcess module
3197 https://bugs.webkit.org/show_bug.cgi?id=135413
3199 Reviewed by Darin Adler.
3201 * WebProcess/OriginData/WebOriginDataManager.cpp:
3202 (WebKit::WebOriginDataManager::getOrigins):
3203 (WebKit::WebOriginDataManager::deleteEntriesForOrigin):
3204 (WebKit::WebOriginDataManager::deleteEntriesModifiedBetweenDates):
3205 (WebKit::WebOriginDataManager::deleteAllEntries):
3207 2014-07-31 Chris Fleizach <cfleizach@apple.com>
3209 AX: iOS: Crash accessing m_page in WKAccessibilityPageObject
3210 https://bugs.webkit.org/show_bug.cgi?id=134617
3212 Reviewed by Darin Adler.
3214 Provide a way to detach a WK2 WebPage object so that it can uninitialize other pointers, like the accessibility object.
3216 * WebProcess/WebPage/WebPage.cpp:
3217 (WebKit::WebPage::~WebPage):
3218 * WebProcess/WebPage/WebPage.h:
3219 * WebProcess/WebPage/efl/WebPageEfl.cpp:
3220 (WebKit::WebPage::platformDetach):
3221 * WebProcess/WebPage/gtk/WebPageGtk.cpp:
3222 (WebKit::WebPage::platformDetach):
3223 * WebProcess/WebPage/ios/WebPageIOS.mm:
3224 (WebKit::WebPage::platformDetach):
3225 * WebProcess/WebPage/mac/WebPageMac.mm:
3226 (WebKit::WebPage::platformDetach):
3228 2014-07-31 Dan Bernstein <mitz@apple.com>
3230 WebKit part of: Server trust authentication challenges aren’t sent to the navigation delegate
3231 https://bugs.webkit.org/show_bug.cgi?id=135327
3233 Reviewed by Alexey Proskuryakov.
3235 * UIProcess/Cocoa/NavigationState.mm:
3236 (WebKit::NavigationState::LoaderClient::canAuthenticateAgainstProtectionSpaceInFrame):
3237 Return true for server trust protection spaces if the delegate implements
3238 -webView:didReceiveAuthenticationChallenge:completionHandler:.
3239 (WebKit::NavigationState::LoaderClient::didReceiveAuthenticationChallengeInFrame): Removed
3240 an assertion that is no longer true due to the above.
3242 2014-07-31 Carlos Garcia Campos <cgarcia@igalia.com>
3244 Unreviewed. Update OptionsGTK.cmake and NEWS for 2.5.1 release.
3246 * gtk/NEWS: Add release notes for 2.5.1.
3248 2014-07-31 Carlos Garcia Campos <cgarcia@igalia.com>
3250 Unreviewed. Fix GTK+ make distcheck.
3252 * Shared/InteractionInformationAtPosition.h: Only include
3253 WebCore/SelectionRect.h for IOS.
3255 2014-07-31 Carlos Garcia Campos <cgarcia@igalia.com>
3257 [GTK] Bump binary version for 2.6
3258 https://bugs.webkit.org/show_bug.cgi?id=133724
3260 Reviewed by Philippe Normand.
3262 * PlatformGTK.cmake: Fix JavaScriptCore dependency on
3263 instrospection commands and make them depend on GTK+-3.0.
3265 2014-07-30 Enrica Casucci <enrica@apple.com>
3267 REGRESSION (WK2 iOS): Inline editing for Chinese and Japanese keyboards does not work in Safari.
3268 https://bugs.webkit.org/show_bug.cgi?id=135449
3269 <rdar://problem/17824833>
3271 Reviewed by Benjamin Poulain.
3273 The WebProcess sends the notification that the gesture modified the phrase boundary,
3274 but the flag was not being converted properly, therefore we failed to notify
3275 the text input system that a change had occurred.
3277 * UIProcess/ios/WKContentViewInteraction.mm:
3278 (toUIWKSelectionFlags):
3280 2014-07-30 Andy Estes <aestes@apple.com>
3282 USE(CONTENT_FILTERING) should be ENABLE(CONTENT_FILTERING)
3283 https://bugs.webkit.org/show_bug.cgi?id=135439
3285 Reviewed by Tim Horton.
3287 We now support two different platform content filters, and will soon support a mock content filter (as part of
3288 webkit.org/b/128858). This makes content filtering a feature of WebKit, not just an adoption of a third-party
3289 library. ENABLE() is the correct macro to use for such a feature.
3291 * Configurations/FeatureDefines.xcconfig:
3292 * Shared/WebCoreArgumentCoders.h:
3293 * UIProcess/WebFrameProxy.cpp:
3294 (WebKit::WebFrameProxy::didStartProvisionalLoad):
3295 * UIProcess/WebFrameProxy.h:
3296 * UIProcess/WebPageProxy.cpp:
3297 (WebKit::WebPageProxy::decidePolicyForNavigationAction):
3298 * UIProcess/WebPageProxy.h:
3299 * UIProcess/WebPageProxy.messages.in:
3300 * WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
3301 * WebProcess/WebCoreSupport/WebFrameLoaderClient.h:
3303 2014-07-30 Andreas Kling <akling@apple.com>
3305 Static hash tables no longer need to be coupled with a VM.
3306 <https://webkit.org/b/135421>
3308 Reviewed by Geoffrey Garen.
3310 * WebProcess/Plugins/Netscape/JSNPMethod.cpp:
3311 * WebProcess/Plugins/Netscape/JSNPObject.cpp:
3313 2014-07-30 Dan Bernstein <mitz@apple.com>
3315 Get rid of the WKNSURLProtectionSpace wrapper
3316 https://bugs.webkit.org/show_bug.cgi?id=135425
3318 Reviewed by Sam Weinig.
3320 * Shared/Cocoa/APIObject.mm:
3321 (API::Object::newObject): Don’t allocate WKNSURLProtectionSpace wrappers.
3323 * Shared/Cocoa/WKNSURLProtectionSpace.h: Removed.
3324 * Shared/Cocoa/WKNSURLProtectionSpace.mm: Removed.
3326 * UIProcess/API/Cocoa/WKBrowsingContextController.mm:
3327 (canAuthenticateAgainstProtectionSpaceInFrame): Get the NSURLProtectionSpace from the
3328 WebCore::ProtectionSpace in the WebProtectionSpace.
3330 * UIProcess/Cocoa/NavigationState.mm:
3331 (WebKit::NavigationState::LoaderClient::canAuthenticateAgainstProtectionSpaceInFrame): Ditto.
3333 * WebKit2.xcodeproj/project.pbxproj: Removed references to removed files.
3335 2014-07-30 Dan Bernstein <mitz@apple.com>
3337 Updated for changes to the WebCore::Credential API.
3338 Work towards fixing https://bugs.webkit.org/show_bug.cgi?id=135327
3340 Reviewed by Alexey Proskuryakov.
3342 * Shared/Downloads/mac/DownloadMac.mm:
3343 (WebKit::Download::receivedCredential):Use new Credential::nsCredential getter.
3345 * Shared/WebCoreArgumentCoders.cpp:
3346 (IPC::ArgumentCoder<Credential>::encode): If encoding the credential requires encoding the
3347 platform data, do that.
3348 (IPC::ArgumentCoder<Credential>::decode): If platform data was encoded, decode it.
3349 * Shared/WebCoreArgumentCoders.h:
3351 * Shared/mac/WebCoreArgumentCodersMac.mm:
3352 (IPC::ArgumentCoder<Credential>::encodePlatformData): Archive the NSURLCredential.
3353 (IPC::ArgumentCoder<Credential>::decodePlatformData): Unarchive it.
3355 * UIProcess/API/Cocoa/WKNSURLAuthenticationChallenge.mm:
3356 (-[WKNSURLAuthenticationChallengeSender useCredential:forAuthenticationChallenge:]): Use
3357 Credential constructor that takes an NSURLCredential.
3359 * UIProcess/Cocoa/NavigationState.mm:
3360 (WebKit::NavigationState::LoaderClient::didReceiveAuthenticationChallengeInFrame): Ditto.
3363 2014-07-30 Carlos Garcia Campos <cgarcia@igalia.com>
3365 [GTK] REGRESSION(r171742): Test /webkit2/WebKitWebView/disallow-modal-dialogs fails
3366 https://bugs.webkit.org/show_bug.cgi?id=135412
3368 Reviewed by Philippe Normand.
3370 The problem is that WebPageProxy::setUIClient() calls
3371 setCanRunModal() with the value of m_uiClient->canRunModal() which
3372 is always true for us. We override that manually by calling
3373 setCanRunModal() depending on the WebKitSettings. In r171742,
3374 webkitWebViewUpdateSettings(), the method that overrides
3375 setCanRunModal(), was moved before attachUIClientToView(), so the
3376 value set by WebPageProxy::setUIClient() is the last one and takes
3377 precedence. We need to make sure webkitWebViewUpdateSettings() is
3378 always called after attachUIClientToView().
3380 * UIProcess/API/gtk/WebKitWebView.cpp:
3381 (webkitWebViewConstructed): Move webkitWebViewUpdateSettings()
3382 call after attachUIClientToView() and add a comment to not forget
3385 2014-07-29 Carlos Garcia Campos <cgarcia@igalia.com>
3387 [GTK] Remove WebKitCertificateInfo from WebKit2GTK+ API
3388 https://bugs.webkit.org/show_bug.cgi?id=134830
3390 Reviewed by Gustavo Noronha Silva.
3392 It was added to make the API more convenient but it has ended up
3393 making it more complicated. WebKitWebView::load-failed-with-tls-errors
3394 now receives a GTlsCertificate + GTlsCertificateFlags and
3395 webkit_web_context_allow_tls_certificate_for_host() receives a GTlsCertificate
3396 since the errors are not actually needed. This makes the API more
3397 consistent with the existing method webkit_web_view_get_tls_info().
3399 * PlatformGTK.cmake: Remove files from compilation.
3400 * UIProcess/API/gtk/WebKitCertificateInfo.cpp: Removed.
3401 * UIProcess/API/gtk/WebKitCertificateInfo.h: Removed.
3402 * UIProcess/API/gtk/WebKitCertificateInfoPrivate.h: Removed.
3403 * UIProcess/API/gtk/WebKitWebContext.cpp:
3404 (webkit_web_context_allow_tls_certificate_for_host):
3405 * UIProcess/API/gtk/WebKitWebContext.h:
3406 * UIProcess/API/gtk/WebKitWebView.cpp:
3407 (webkit_web_view_class_init):
3408 (webkitWebViewLoadFailedWithTLSErrors):
3409 * UIProcess/API/gtk/WebKitWebView.h:
3410 * UIProcess/API/gtk/docs/webkit2gtk-docs.sgml:
3411 * UIProcess/API/gtk/docs/webkit2gtk-sections.txt:
3412 * UIProcess/API/gtk/webkit2.h:
3414 2014-07-29 Jinwoo Song <jinwoo7.song@samsung.com>
3416 [EFL] Do not initialize g_type system explicitly in the ewk_init()
3417 https://bugs.webkit.org/show_bug.cgi?id=135407
3419 Reviewed by Gyuyoung Kim.
3421 EFL build requires glib version 2.38 but g_type_init() has been deprecated
3422 since version 2.36. As the type system is initialized automatically since
3423 version 2.36, we do not need to call g_type_init() in the ewk_init().
3425 https://developer.gnome.org/gobject/unstable/gobject-Type-Information.html#g-type-init
3427 * UIProcess/API/efl/ewk_main.cpp:
3430 2014-07-29 Enrica Casucci <enrica@apple.com>
3432 REGRESSION [WebKit2 iOS]: Cannot add shortcut to user dictionary from non editable content.
3433 https://bugs.webkit.org/show_bug.cgi?id=135392
3434 <rdar://problem/17760073>
3436 Reviewed by Benjamin Poulain.
3438 Adding a shortcut to the user dictionary needs to be available in non editable content too.
3440 * UIProcess/ios/WKContentViewInteraction.mm:
3441 (-[WKContentView _addShortcut:]):
3443 2014-07-29 Tim Horton <timothy_horton@apple.com>
3445 WKPDFView paints rotated pages squished
3446 https://bugs.webkit.org/show_bug.cgi?id=135401
3447 <rdar://problem/17173916>
3449 Reviewed by Simon Fraser.