1 2013-01-01 KwangYong Choi <ky0.choi@samsung.com>
3 [EFL] Enable MHTML feature
4 https://bugs.webkit.org/show_bug.cgi?id=105815
6 Reviewed by Laszlo Gombos.
8 Add missing include directory for ENABLE_MHTML.
12 2012-12-30 Sam Weinig <sam@webkit.org>
14 Add supplementability for WebContext
15 https://bugs.webkit.org/show_bug.cgi?id=105878
17 Reviewed by Dan Bernstein.
19 Add WebContextSupplement and convert WebApplicationCacheManagerProxy to it.
21 * UIProcess/API/C/WKContext.cpp:
22 (WKContextGetApplicationCacheManager):
23 * UIProcess/WebApplicationCacheManagerProxy.cpp:
24 (WebKit::WebApplicationCacheManagerProxy::supplementName):
25 (WebKit::WebApplicationCacheManagerProxy::WebApplicationCacheManagerProxy):
26 (WebKit::WebApplicationCacheManagerProxy::contextDestroyed):
27 (WebKit::WebApplicationCacheManagerProxy::processDidClose):
28 (WebKit::WebApplicationCacheManagerProxy::refWebContextSupplement):
29 (WebKit::WebApplicationCacheManagerProxy::derefWebContextSupplement):
30 (WebKit::WebApplicationCacheManagerProxy::getApplicationCacheOrigins):
31 (WebKit::WebApplicationCacheManagerProxy::deleteEntriesForOrigin):
32 (WebKit::WebApplicationCacheManagerProxy::deleteAllEntries):
33 * UIProcess/WebApplicationCacheManagerProxy.h:
34 (WebApplicationCacheManagerProxy):
35 * UIProcess/WebContext.cpp:
36 (WebKit::WebContext::WebContext):
37 (WebKit::WebContext::~WebContext):
38 (WebKit::WebContext::shouldTerminate):
39 (WebKit::WebContext::disconnectProcess):
40 * UIProcess/WebContext.h:
41 (WebKit::WebContext::supplement):
42 (WebKit::WebContext::addSupplement):
43 * UIProcess/WebContextSupplement.h: Added.
44 (WebKit::WebContextSupplement::WebContextSupplement):
45 (WebKit::WebContextSupplement::~WebContextSupplement):
46 (WebKit::WebContextSupplement::ref):
47 (WebKit::WebContextSupplement::deref):
48 (WebKit::WebContextSupplement::context):
49 (WebKit::WebContextSupplement::clearContext):
50 * WebKit2.xcodeproj/project.pbxproj:
52 2012-12-31 Christophe Dumez <christophe.dumez@intel.com>
54 [EFL[WK2] Regression(r138574): Should not allocate memory in the fork
55 https://bugs.webkit.org/show_bug.cgi?id=105868
57 Reviewed by Kenneth Rohde Christiansen.
59 Store prefixed executable path in a CString before the fork to
60 avoid allocating memory in the fork by calling String::utf8().
61 Allocating memory in the fork may lead to deadlocks due to
62 FastMalloc and the fork not inheriting the threads.
64 * UIProcess/Launcher/efl/ProcessLauncherEfl.cpp:
65 (WebKit::ProcessLauncher::launchProcess):
67 2012-12-31 Carlos Garcia Campos <cgarcia@igalia.com>
69 [GTK] Add API to set a WebKitWebView in view source mode to WebKit2
70 https://bugs.webkit.org/show_bug.cgi?id=99315
72 Reviewed by Martin Robinson.
74 Add a generic API to set/get a view mode. For now there are only
75 two modes, Web and Source, but the API can be extended if we
76 eventually support other view modes like Printing for example.
78 * UIProcess/API/gtk/WebKitWebView.cpp:
79 (webkitWebViewSetProperty): Implement setter for view-mode
81 (webkitWebViewGetProperty): Implement getter for view-mode
83 (webkit_web_view_class_init): Add view-source property.
84 (webkit_web_view_set_view_mode): Public method to set the view
86 (webkit_web_view_get_view_mode): Public method to get the view
88 * UIProcess/API/gtk/WebKitWebView.h: Add WebKitViewMode enum.
89 * UIProcess/API/gtk/docs/webkit2gtk-sections.txt: Add new symbols.
90 * UIProcess/API/gtk/tests/TestWebKitWebView.cpp:
93 * UIProcess/WebFrameProxy.cpp:
94 (WebKit::WebFrameProxy::WebFrameProxy): Initialize
96 (WebKit::WebFrameProxy::setInViewSourceMode): Set
97 m_inViewSourceMode if it has changed and call
98 WebPageProxy::setFrameInViewSourceMode() to notify the WebProcess.
99 * UIProcess/WebFrameProxy.h:
100 (WebKit::WebFrameProxy::inViewSourceMode): Return whether the
101 frame is currently in view source mode.
102 * UIProcess/WebPageProxy.cpp:
103 (WebKit::WebPageProxy::setFrameInViewSourceMode): Send a message
104 to the WebProcess to set the given frame in view source mode or not.
105 * UIProcess/WebPageProxy.h:
106 (WebPageProxy): Add setFrameInViewSourceMode().
107 * WebProcess/WebPage/WebPage.cpp:
108 (WebKit::WebPage::setFrameInViewSourceMode): Call
109 setInViewSourceMode for the main frame.
110 * WebProcess/WebPage/WebPage.h:
111 (WebPage): Add setFrameInViewSourceMode().
112 * WebProcess/WebPage/WebPage.messages.in: Add new message
113 SetFrameInViewSourceMode.
115 2012-12-30 Christophe Dumez <christophe.dumez@intel.com>
117 [EFL][WK2] Invalid use of temporary object in ProcessLauncher::launchProcess()
118 https://bugs.webkit.org/show_bug.cgi?id=105867
120 Reviewed by Kenneth Rohde Christiansen.
122 Fix invalid use of temporary object in ProcessLauncher::launchProcess()
123 for prefixedExecutablePath.
125 * UIProcess/Launcher/efl/ProcessLauncherEfl.cpp:
126 (WebKit::ProcessLauncher::launchProcess):
128 2012-12-29 Sam Weinig <sam@webkit.org>
132 * win/WebKit2Common.vsprops:
134 2012-12-29 Sam Weinig <sam@webkit.org>
136 Add supplementability to the NetworkProcess
137 https://bugs.webkit.org/show_bug.cgi?id=105838
139 Reviewed by Dan Bernstein.
141 This patch adds a NetworkProcessSupplement, which is almost identical to
142 WebProcessSupplement, but has a different initialization override. It also
143 stops WebProcessSupplement from inheriting from MessageReceiver (and makes
144 everything that is a WebProcessSupplement also a MessageReceiver) as keeping
145 that would cause classes that need to be both WebProcessSupplements and
146 NetworkProcessSupplements inherit from MessageReceiver twice.
148 * GNUmakefile.list.am:
149 * NetworkProcess/NetworkProcess.cpp:
150 (WebKit::NetworkProcess::NetworkProcess):
151 (WebKit::NetworkProcess::downloadsAuthenticationManager):
152 (WebKit::NetworkProcess::initializeNetworkProcess):
153 * NetworkProcess/NetworkProcess.h:
156 (WebKit::NetworkProcess::supplement):
157 (WebKit::NetworkProcess::addSupplement):
158 * Shared/Network/CustomProtocols/CustomProtocolManager.h:
159 (CustomProtocolManager):
160 * Shared/Network/NetworkProcessSupplement.h: Added.
162 (NetworkProcessSupplement):
163 (WebKit::NetworkProcessSupplement::~NetworkProcessSupplement):
164 (WebKit::NetworkProcessSupplement::initialize):
166 * WebKit2.xcodeproj/project.pbxproj:
167 * WebProcess/ApplicationCache/WebApplicationCacheManager.h:
168 * WebProcess/Authentication/AuthenticationManager.h:
169 * WebProcess/Cookies/WebCookieManager.h:
170 * WebProcess/Geolocation/WebGeolocationManager.h:
171 * WebProcess/KeyValueStorage/WebKeyValueStorageManager.h:
172 * WebProcess/MediaCache/WebMediaCacheManager.h:
173 * WebProcess/Notifications/WebNotificationManager.h:
174 * WebProcess/ResourceCache/WebResourceCacheManager.h:
175 * WebProcess/WebCoreSupport/WebDatabaseManager.h:
176 * WebProcess/WebProcessSupplement.h:
177 * win/WebKit2.vcproj:
179 2012-12-28 Ryuan Choi <ryuan.choi@samsung.com>
181 [EFL][WK2] MiniBrowser could not be launched on specific machine
182 https://bugs.webkit.org/show_bug.cgi?id=105844
184 Reviewed by Gyuyoung Kim.
186 * UIProcess/Launcher/efl/ProcessLauncherEfl.cpp:
187 (WebKit::ProcessLauncher::launchProcess):
188 Modified to avoid bad use of temporary object.
190 2012-12-28 Joone Hur <joone.hur@intel.com>
192 [EFL][WK2] Implement ewk_context_resource_cache_clear
193 https://bugs.webkit.org/show_bug.cgi?id=104782
195 The purpose of this API is to clear HTTP caches in local storage and
196 all resources cached in memory such as images, CSS, JavaScript, XSL,
199 Reviewed by Kenneth Rohde Christiansen.
201 * UIProcess/API/efl/ewk_context.cpp:
202 (EwkContext::clearResourceCache): Call WebResourceCacheManager::ClearCacheForAllOrigins.
203 (ewk_context_resource_cache_clear):
204 * UIProcess/API/efl/ewk_context.h: Add ewk_context_resource_cache_clear.
205 * UIProcess/API/efl/ewk_context_private.h:
208 2012-12-28 Mark Rowe <mrowe@apple.com>
210 Move logic for extracting the OS X marketing version in to WebCore
211 <http://webkit.org/b/105841> / <rdar://problem/10736041>
213 Reviewed by Dan Bernstein.
215 * UIProcess/mac/WebPageProxyMac.mm:
216 (WebKit::systemMarketingVersionForUserAgentString): Call the WebCore function instead
217 of the WKSI function.
218 (WebKit::WebPageProxy::standardUserAgent):
219 * WebProcess/WebCoreSupport/mac/WebSystemInterface.mm:
220 (InitWebCoreSystemInterface): Remove the code related to the WKSI symbol.
222 2012-12-28 Sam Weinig <sam@webkit.org>
224 Fix assert seen when adding a custom protocol handler before an initial
225 web process has been created.
227 * UIProcess/WebContext.h:
228 (WebKit::WebContext::sendToNetworkingProcess):
230 2012-12-28 Martin Robinson <mrobinson@igalia.com>
232 [GTK][WK2] Add support for IME Composition
233 https://bugs.webkit.org/show_bug.cgi?id=65093
235 Reviewed by Carlos Garcia Campos.
237 Add a WebKit2 implementation of the GtkInputMethodFilter and provide
238 the necessary plumbing to pass composition information along with
241 * GNUmakefile.list.am: Add new files to the source list.
242 * Shared/EditorState.cpp: The cursorRect is now passed for GTK+ as well as
243 Qt, so update the encode and decode methods to pass that along.
244 * Shared/EditorState.h: Add the cursorRect member for GTK+ as well.
245 * Shared/NativeWebKeyboardEvent.h:
246 (NativeWebKeyboardEvent): Keyboard events should also have knowledge of
247 the compositionResults and whether or not the event was faked for composition
249 * Shared/gtk/NativeWebKeyboardEventGtk.cpp: Ditto.
250 * Shared/gtk/WebEventFactory.cpp:
251 (WebKit::WebEventFactory::createWebKeyboardEvent): Copy the logic of PlatformKeyEvent,
252 for properly setting the windows key code and the event text from the composition
254 * Shared/gtk/WebEventFactory.h: The createWebKeyboardEvent factory now takes a
255 CompositionResults argument.
256 * UIProcess/API/gtk/PageClientImpl.cpp:
257 (WebKit::PageClientImpl::doneWithKeyEvent): Don't forward keyboard events that
258 were faked for composition reasons. These events originated from WebKit and should
259 never be passed to parent classes.
260 (WebKit::PageClientImpl::updateTextInputState): Plumb through the updateTextInputState
261 method to the WebViewBase.
262 * UIProcess/API/gtk/PageClientImpl.h:
263 (PageClientImpl): Add a updateTextInputState method.
264 * UIProcess/API/gtk/WebKitWebViewBase.cpp:
265 (_WebKitWebViewBasePrivate): Instead of having an input method context as a member
266 keep a WebViewBaseInputMethodFilter.
267 (webkitWebViewBaseRealize): Set the filter widget when the WebViewBase is realized.
268 (webkit_web_view_base_init): No longer create a input method context during init.
269 (webkitWebViewBaseFocusInEvent): Pass along focus in events to the filter.
270 (webkitWebViewBaseFocusOutEvent): Pass along focus out events to the filter.
271 (webkitWebViewBaseKeyPressEvent): Instead of passing key presses directly to the WebProcess,
272 filter them through the input method filter.
273 (webkitWebViewBaseKeyReleaseEvent): Ditto.
274 (webkitWebViewBaseButtonPressEvent): Notify the input method filter about button press events.
275 (webkitWebViewBaseGetIMContext): The input method filter owns the input method now.
276 (webkitWebViewBaseSetInputMethodState): Add a bit of plumbing for the PageClient.
277 (webkitWebViewBaseUpdateTextInputState): Ditto.
278 * UIProcess/API/gtk/WebKitWebViewBasePrivate.h: Add plumbing declarations.
279 * UIProcess/API/gtk/WebViewBaseInputMethodFilter.cpp: Added. An implementation of GtkInputMethodFilter for WebKit2.
280 * UIProcess/API/gtk/WebViewBaseInputMethodFilter.h: Copied from Source/WebKit/gtk/WebCoreSupport/WebViewInputMethodFilter.h.
281 * UIProcess/PageClient.h:
282 (PageClient): updateInputMethod state is now for both Qt and GTK+.
283 * UIProcess/WebPageProxy.cpp:
284 (WebKit::WebPageProxy::editorStateChanged): Pass the editor state for GTK+ as well as Qt.
285 (WebKit::WebPageProxy::setComposition): Moved this method from WebPageProxyQt as it's used for GTK+ now as well.
286 (WebKit::WebPageProxy::confirmComposition): Ditto.
287 (WebKit::WebPageProxy::cancelComposition): Ditto.
288 * UIProcess/WebPageProxy.h:
289 (WebPageProxy): The setInputMethodState message is for GTK+ as well as Qt now.
290 * UIProcess/WebPageProxy.messages.in: Ditto.
291 * UIProcess/gtk/WebPageProxyGtk.cpp:
292 (WebKit::WebPageProxy::setInputMethodState): Ditto.
293 * UIProcess/qt/WebPageProxyQt.cpp: Move some methods to the platform-independent file.
294 * WebProcess/WebCoreSupport/gtk/WebEditorClientGtk.cpp: More closely match the WebKit1
295 logic for dealing with key events so that composition events will be handled properly.
296 * WebProcess/WebPage/WebPage.cpp:
297 (WebKit::WebPage::editorState): Properly pass the cursorRect for GTK+.
298 (WebKit::targetFrameForEditing): Moved from the Qt file, because its used by GTK+ as well. They
299 now pass along the updated EditorState as well, just like the Mac versions.
300 (WebKit::WebPage::confirmComposition): Ditto.
301 (WebKit::WebPage::setComposition): Ditto.
302 (WebKit::WebPage::cancelComposition): Ditto.
303 * WebProcess/WebPage/WebPage.h: The above messages are now for GTK+ as well as Qt.
304 * WebProcess/WebPage/WebPage.messages.in: Ditto.
305 * WebProcess/WebPage/qt/WebPageQt.cpp: Moved some methods to the platform-independent file.
307 2012-12-28 Sam Weinig <sam@webkit.org>
309 Appease the Windows Gods.
311 * WebProcess/Notifications/WebNotificationManager.cpp:
313 2012-12-27 Sam Weinig <sam@webkit.org>
315 Make CustomProtocolManager a WebProcessSupplement
316 https://bugs.webkit.org/show_bug.cgi?id=105814
318 Reviewed by Dan Bernstein.
320 This converts CustomProtocolManager from a global singleton, to be a
321 supplement of the WebProcess. Since it also needs to act as a supplement
322 of the NetworkProcess, it adds an initialization function for the NetworkProcess
323 as well, while we await the arrival of the forthcoming NetworkProcessSupplement.
325 In addition, this moves the handling of registering and unregistering schemes
326 directly to the CustomProtocolManager, instead of requiring an unnecessary trip
329 * NetworkProcess/NetworkProcess.cpp:
330 (WebKit::NetworkProcess::NetworkProcess):
331 (WebKit::NetworkProcess::initializeNetworkProcess):
332 * NetworkProcess/NetworkProcess.h:
333 * NetworkProcess/NetworkProcess.messages.in:
334 * Shared/Network/CustomProtocols/CustomProtocolManager.h:
335 (CustomProtocolManager):
336 * Shared/Network/CustomProtocols/CustomProtocolManager.messages.in:
337 * Shared/Network/CustomProtocols/mac/CustomProtocolManagerMac.mm:
338 (+[WKCustomProtocol canInitWithRequest:]):
339 (-[WKCustomProtocol initWithRequest:cachedResponse:client:]):
340 (-[WKCustomProtocol startLoading]):
341 (-[WKCustomProtocol stopLoading]):
342 (WebKit::CustomProtocolManager::supplementName):
343 (WebKit::CustomProtocolManager::CustomProtocolManager):
344 (WebKit::CustomProtocolManager::initialize):
345 * UIProcess/WebContext.cpp:
346 (WebKit::WebContext::registerSchemeForCustomProtocol):
347 (WebKit::WebContext::unregisterSchemeForCustomProtocol):
348 * WebProcess/WebProcess.cpp:
349 (WebKit::WebProcess::WebProcess):
350 (WebKit::WebProcess::initializeWebProcess):
351 * WebProcess/WebProcess.h:
352 * WebProcess/WebProcess.messages.in:
354 2012-12-27 Sam Weinig <sam@webkit.org>
356 Convert a few other WebProcess managers to be WebProcessSupplements
357 https://bugs.webkit.org/show_bug.cgi?id=105812
359 Reviewed by Dan Bernstein.
361 * WebProcess/ApplicationCache/WebApplicationCacheManager.cpp:
362 (WebKit::WebApplicationCacheManager::supplementName):
363 * WebProcess/ApplicationCache/WebApplicationCacheManager.h:
364 (WebApplicationCacheManager):
365 * WebProcess/Authentication/AuthenticationManager.cpp:
366 (WebKit::AuthenticationManager::supplementName):
367 * WebProcess/Authentication/AuthenticationManager.h:
368 (AuthenticationManager):
369 * WebProcess/Cookies/WebCookieManager.cpp:
370 (WebKit::WebCookieManager::supplementName):
371 * WebProcess/Cookies/WebCookieManager.h:
373 * WebProcess/Geolocation/WebGeolocationManager.cpp:
374 (WebKit::WebGeolocationManager::supplementName):
375 * WebProcess/Geolocation/WebGeolocationManager.h:
376 (WebGeolocationManager):
377 * WebProcess/InjectedBundle/InjectedBundle.cpp:
378 (WebKit::InjectedBundle::setAlwaysAcceptCookies):
379 (WebKit::InjectedBundle::clearApplicationCache):
380 (WebKit::InjectedBundle::setAppCacheMaximumSize):
381 (WebKit::InjectedBundle::webNotificationID):
382 * WebProcess/MediaCache/WebMediaCacheManager.cpp:
383 (WebKit::WebMediaCacheManager::supplementName):
384 * WebProcess/MediaCache/WebMediaCacheManager.h:
385 (WebMediaCacheManager):
386 * WebProcess/Notifications/NotificationPermissionRequestManager.cpp:
387 (WebKit::NotificationPermissionRequestManager::permissionLevel):
388 (WebKit::NotificationPermissionRequestManager::setPermissionLevelForTesting):
389 (WebKit::NotificationPermissionRequestManager::removeAllPermissionsForTesting):
390 (WebKit::NotificationPermissionRequestManager::didReceiveNotificationPermissionDecision):
391 * WebProcess/Notifications/WebNotificationManager.cpp:
392 (WebKit::WebNotificationManager::supplementName):
393 (WebKit::WebNotificationManager::initialize):
394 * WebProcess/Notifications/WebNotificationManager.h:
395 (WebNotificationManager):
396 * WebProcess/ResourceCache/WebResourceCacheManager.cpp:
397 (WebKit::WebResourceCacheManager::supplementName):
398 * WebProcess/ResourceCache/WebResourceCacheManager.h:
399 (WebResourceCacheManager):
400 * WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
401 (WebKit::WebFrameLoaderClient::dispatchDidReceiveAuthenticationChallenge):
402 * WebProcess/WebCoreSupport/WebGeolocationClient.cpp:
403 (WebKit::WebGeolocationClient::geolocationDestroyed):
404 (WebKit::WebGeolocationClient::startUpdating):
405 (WebKit::WebGeolocationClient::stopUpdating):
406 * WebProcess/WebCoreSupport/WebNotificationClient.cpp:
407 (WebKit::WebNotificationClient::show):
408 (WebKit::WebNotificationClient::cancel):
409 (WebKit::WebNotificationClient::clearNotifications):
410 (WebKit::WebNotificationClient::notificationObjectDestroyed):
411 * WebProcess/WebProcess.cpp:
412 (WebKit::WebProcess::WebProcess):
413 (WebKit::WebProcess::downloadsAuthenticationManager):
414 * WebProcess/WebProcess.h:
415 (WebKit::WebProcess::textCheckerState):
416 (WebKit::WebProcess::networkAccessManager):
417 (WebKit::WebProcess::soupRequestManager):
418 * WebProcess/mac/WebProcessMac.mm:
419 (WebKit::WebProcess::platformInitializeWebProcess):
420 * WebProcess/soup/WebProcessSoup.cpp:
421 (WebKit::WebProcess::platformInitializeWebProcess):
422 * WebProcess/win/WebProcessWin.cpp:
423 (WebKit::WebProcess::platformInitializeWebProcess):
425 2012-12-27 Viatcheslav Ostapenko <sl.ostapenko@samsung.com>
427 [EFL][WK2] Regression(138462) Sometimes garbage in snapshots
428 https://bugs.webkit.org/show_bug.cgi?id=105803
430 Reviewed by Kenneth Rohde Christiansen.
432 Instead of creating temporary buffer and then creating cairo surface
433 from it, create cairo surface 1st and use surface image internal buffer
434 to read pixels from GL buffer.
436 * UIProcess/API/efl/EwkViewImpl.cpp:
437 (EwkViewImpl::takeSnapshot):
438 * UIProcess/API/efl/SnapshotImageGL.cpp:
439 (getImageSurfaceFromFrameBuffer):
440 * UIProcess/API/efl/SnapshotImageGL.h:
442 2012-12-27 Sam Weinig <sam@webkit.org>
444 Actually make use of the WebProcessSupplements by adding a supplement map to WebProcess
445 https://bugs.webkit.org/show_bug.cgi?id=105804
447 Reviewed by Dan Bernstein.
449 This continues the work of adding extensibility to WebProcess by adding a supplement
450 map, and using it as proof of concept for WebDatabaseManager and WebKeyValueStorageManager.
452 - A supplement is added to WebProcess by calling:
453 process->addSupplement<SupplementFoo>();
454 - A supplement can be used accessed by calling:
455 process->supplement<SupplementFoo>();
457 * WebProcess/InjectedBundle/InjectedBundle.cpp:
458 (WebKit::InjectedBundle::clearAllDatabases):
459 (WebKit::InjectedBundle::setDatabaseQuota):
460 * WebProcess/WebPage/WebPage.cpp:
461 (WebKit::WebPage::updatePreferences):
462 Switch to using the new supplement accessor.
464 * WebProcess/KeyValueStorage/WebKeyValueStorageManager.cpp:
465 (WebKit::WebKeyValueStorageManager::supplementName):
466 * WebProcess/KeyValueStorage/WebKeyValueStorageManager.h:
467 * WebProcess/WebCoreSupport/WebDatabaseManager.cpp:
468 (WebKit::WebDatabaseManager::supplementName):
469 * WebProcess/WebCoreSupport/WebDatabaseManager.h:
470 Add static supplementName functions. We might want to merge this with
471 the message class name, but for now we have both.
473 * WebProcess/WebProcess.cpp:
474 (WebKit::WebProcess::WebProcess):
475 Add supplements the new way. This should eventually move to the caller
476 of WebProcess::initialize, so that we can reduce #ifdefs and ports have
477 a chance to customize.
479 (WebKit::WebProcess::initializeWebProcess):
480 Iterate the supplements to give each a chance to initialize.
482 * WebProcess/WebProcess.h:
483 (WebKit::WebProcess::supplement):
484 (WebKit::WebProcess::addSupplement):
485 Add functions to add and get WebProcessSupplements.
487 2012-12-26 Sam Weinig <sam@webkit.org>
489 Add an initial stab at a generic supplemental interface for WebProcess
490 https://bugs.webkit.org/show_bug.cgi?id=105779
492 Reviewed by Darin Adler.
494 This starts the process of adding a mechanism to WebProcess to extend its
495 functionality without actually changing it (similar to the Supplement
496 mechanism in WebCore). This will make it possible for ports to add functionality
497 that might not be needed or wanted by other ports.
499 * WebKit2.xcodeproj/project.pbxproj:
500 * WebProcess/KeyValueStorage/WebKeyValueStorageManager.cpp:
501 (WebKit::WebKeyValueStorageManager::initialize):
503 * WebProcess/KeyValueStorage/WebKeyValueStorageManager.h:
504 (WebKeyValueStorageManager):
505 (WebKit::WebKeyValueStorageManager::localStorageDirectory):
506 * WebProcess/WebCoreSupport/WebDatabaseManager.cpp:
507 (WebKit::WebDatabaseManager::WebDatabaseManager):
508 (WebKit::WebDatabaseManager::initialize):
509 * WebProcess/WebCoreSupport/WebDatabaseManager.h:
510 (WebDatabaseManager):
511 * WebProcess/WebPage/WebPage.cpp:
512 (WebKit::WebPage::updatePreferences):
513 * WebProcess/WebProcess.cpp:
514 (WebKit::WebProcess::initializeWebProcess):
515 (WebKit::WebProcess::keyValueStorageManager):
517 * WebProcess/WebProcess.h:
519 * WebProcess/WebProcessSupplement.h: Added.
521 (WebProcessSupplement):
522 (WebKit::WebProcessSupplement::~WebProcessSupplement):
523 (WebKit::WebProcessSupplement::initialize):
525 2012-12-27 Christophe Dumez <christophe.dumez@intel.com>
527 [EFL][WK2] Regression(135935) layout tests snapshots are flaky
528 https://bugs.webkit.org/show_bug.cgi?id=103468
530 Reviewed by Kenneth Rohde Christiansen.
532 Make sure that we wait for pending repaints before taking a
533 snapshot to avoid flakiness in pixel / ref tests. We also
534 suspend all animations before taking the snapshot to make
535 sure we don't wait forever for repaint events to be processed.
537 * UIProcess/API/efl/EwkViewImpl.cpp:
538 (EwkViewImpl::takeSnapshot):
540 2012-12-26 Csaba Osztrogonác <ossy@webkit.org>
542 Unreviewed Xmas buildfix after r138479.
544 * WebProcess/MediaCache/WebMediaCacheManager.h:
546 2012-12-25 Sam Weinig <sam@webkit.org>
548 Convert WebKeyValueStorageManager and WebMediaCacheManager to MessageReceiver
549 https://bugs.webkit.org/show_bug.cgi?id=105751
551 Reviewed by Andreas Kling.
553 * WebProcess/KeyValueStorage/WebKeyValueStorageManager.cpp:
554 (WebKit::WebKeyValueStorageManager::WebKeyValueStorageManager):
555 (WebKit::WebKeyValueStorageManager::dispatchDidGetKeyValueStorageOrigins):
556 (WebKit::WebKeyValueStorageManager::getKeyValueStorageOrigins):
557 (WebKit::WebKeyValueStorageManager::deleteEntriesForOrigin):
558 (WebKit::WebKeyValueStorageManager::deleteAllEntries):
559 * WebProcess/KeyValueStorage/WebKeyValueStorageManager.h:
560 (WebKeyValueStorageManager): Remove unused m_originsLoaded member variable.
561 * WebProcess/MediaCache/WebMediaCacheManager.cpp:
562 (WebKit::WebMediaCacheManager::WebMediaCacheManager):
563 (WebKit::WebMediaCacheManager::getHostnamesWithMediaCache):
564 (WebKit::WebMediaCacheManager::clearCacheForHostname):
565 (WebKit::WebMediaCacheManager::clearCacheForAllHostnames):
566 * WebProcess/MediaCache/WebMediaCacheManager.h:
567 (WebMediaCacheManager):
568 Convert the managers to MessageReceiver.
570 * WebProcess/WebProcess.cpp:
571 (WebKit::WebProcess::WebProcess):
572 (WebKit::WebProcess::initializeWebProcess):
573 (WebKit::WebProcess::didReceiveMessage):
574 * WebProcess/WebProcess.h:
576 Add the new managers.
578 2012-12-25 Sam Weinig <sam@webkit.org>
580 Fix the Database manager assert, again.
582 * WebProcess/WebCoreSupport/WebDatabaseManager.cpp:
584 (WebKit::WebDatabaseManager::WebDatabaseManager):
585 (WebKit::WebDatabaseManager::initialize):
586 * WebProcess/WebCoreSupport/WebDatabaseManager.h:
587 (WebDatabaseManager):
588 * WebProcess/WebProcess.cpp:
589 (WebKit::WebProcess::initializeWebProcess):
591 2012-12-25 Huang Dongsung <luxtella@company100.net>
593 Coordinated Graphics: Manage the lifecycle of CoordinatedGraphicsLayer explicitly.
594 https://bugs.webkit.org/show_bug.cgi?id=104990
596 Reviewed by Noam Rosenthal.
598 Send explicit commands to the UI process to create/delete compositing
599 layers, instead of having the UI process decide lazily when to create
602 Avoid creating a compositing layer at all if it was deleted in the same
605 * UIProcess/CoordinatedGraphics/CoordinatedLayerTreeHostProxy.cpp:
606 (WebKit::CoordinatedLayerTreeHostProxy::createCompositingLayer):
608 * UIProcess/CoordinatedGraphics/CoordinatedLayerTreeHostProxy.h:
609 (CoordinatedLayerTreeHostProxy):
610 * UIProcess/CoordinatedGraphics/CoordinatedLayerTreeHostProxy.messages.in:
611 * UIProcess/CoordinatedGraphics/LayerTreeRenderer.cpp:
612 (WebKit::LayerTreeRenderer::createCanvas):
613 (WebKit::LayerTreeRenderer::destroyCanvas):
614 (WebKit::LayerTreeRenderer::setLayerChildren):
615 (WebKit::LayerTreeRenderer::setLayerFilters):
616 (WebKit::LayerTreeRenderer::setLayerState):
617 (WebKit::LayerTreeRenderer::getLayerByIDIfExists):
619 (WebKit::LayerTreeRenderer::createLayer):
620 (WebKit::LayerTreeRenderer::deleteLayer):
621 (WebKit::LayerTreeRenderer::setRootLayerID):
622 (WebKit::LayerTreeRenderer::createTile):
623 (WebKit::LayerTreeRenderer::removeTile):
624 (WebKit::LayerTreeRenderer::updateTile):
625 (WebKit::LayerTreeRenderer::ensureRootLayer):
626 (WebKit::LayerTreeRenderer::setLayerAnimations):
627 * UIProcess/CoordinatedGraphics/LayerTreeRenderer.h:
629 (WebKit::LayerTreeRenderer::layerByID):
630 * WebProcess/WebPage/CoordinatedGraphics/CoordinatedLayerTreeHost.cpp:
631 (WebKit::CoordinatedLayerTreeHost::flushPendingLayerChanges):
632 (WebKit::CoordinatedLayerTreeHost::createCompositingLayers):
634 (WebKit::CoordinatedLayerTreeHost::deleteCompositingLayers):
635 (WebKit::CoordinatedLayerTreeHost::detachLayer):
636 (WebKit::CoordinatedLayerTreeHost::createGraphicsLayer):
637 * WebProcess/WebPage/CoordinatedGraphics/CoordinatedLayerTreeHost.h:
639 2012-12-25 Sam Weinig <sam@webkit.org>
643 * WebProcess/WebPage/qt/WebPageQt.cpp:
645 2012-12-24 Sam Weinig <sam@webkit.org>
647 Reduce the number of includes in WebProcess.h
648 https://bugs.webkit.org/show_bug.cgi?id=105709
650 Reviewed by Dan Bernstein.
652 * NetworkProcess/NetworkProcess.cpp:
653 (WebKit::NetworkProcess::NetworkProcess):
654 (WebKit::NetworkProcess::downloadsAuthenticationManager):
655 * NetworkProcess/NetworkProcess.h:
657 * Shared/Network/CustomProtocols/mac/CustomProtocolManagerMac.mm:
658 * UIProcess/Launcher/mac/ProcessLauncherMac.mm:
659 * WebProcess/FullScreen/WebFullScreenManager.cpp:
660 * WebProcess/InjectedBundle/InjectedBundle.cpp:
661 * WebProcess/Network/NetworkProcessConnection.cpp:
662 * WebProcess/Notifications/NotificationPermissionRequestManager.cpp:
663 * WebProcess/WebCoreSupport/WebPlatformStrategies.cpp:
664 * WebProcess/WebPage/FindController.cpp:
665 * WebProcess/WebPage/WebContextMenu.cpp:
666 * WebProcess/WebPage/ca/LayerTreeHostCA.cpp:
667 * WebProcess/WebProcess.cpp:
668 (WebKit::WebProcess::WebProcess):
669 (WebKit::WebProcess::downloadsAuthenticationManager):
670 (WebKit::WebProcess::initializeWebProcess):
671 (WebKit::WebProcess::geolocationManager):
673 (WebKit::WebProcess::applicationCacheManager):
674 (WebKit::WebProcess::resourceCacheManager):
675 (WebKit::WebProcess::cookieManager):
676 (WebKit::WebProcess::authenticationManager):
677 (WebKit::WebProcess::databaseManager):
678 (WebKit::WebProcess::notificationManager):
679 (WebKit::WebProcess::pluginProcessConnectionManager):
680 (WebKit::WebProcess::networkProcessConnectionClosed):
681 (WebKit::WebProcess::webResourceLoadScheduler):
682 (WebKit::WebProcess::pluginProcessCrashed):
683 * WebProcess/WebProcess.h:
687 * WebProcess/mac/WebProcessMac.mm:
688 (WebKit::WebProcess::platformInitializeWebProcess):
690 2012-12-25 Andreas Kling <akling@apple.com>
692 [WK2][Mac] Call Carbon resource APIs on main thread only.
693 <rdar://problem/11760262>
694 <http://webkit.org/b/105746>
696 Reviewed by Anders Carlsson.
698 The Carbon resource APIs are not thread-safe, so use a little libdispatch sugar to make
699 sure that plugin enumeration never calls them on a secondary thread.
701 * Shared/Plugins/Netscape/mac/NetscapePluginModuleMac.mm:
702 (WebKit::getPluginInfoFromCarbonResourcesOnMainThread):
703 (WebKit::getPluginInfoFromCarbonResources):
705 2012-12-25 Seokju Kwon <seokju.kwon@gmail.com>
707 [EFL][WK2] Build breaks with --no-input-type-color
708 https://bugs.webkit.org/show_bug.cgi?id=105740
710 Reviewed by Laszlo Gombos.
712 * UIProcess/API/efl/EwkViewImpl.h: Add INPUT_TYPE_COLOR guard.
715 2012-12-25 Christophe Dumez <christophe.dumez@intel.com>
717 [EFL][WK2] Refactor snapshot taking code
718 https://bugs.webkit.org/show_bug.cgi?id=105687
720 Reviewed by Kenneth Rohde Christiansen.
722 Refactor EFL WK2 snapshot taking code to use
723 smart pointers when possible and follow naming
726 * UIProcess/API/C/efl/WKView.cpp:
727 (WKViewCreateSnapshot):
728 * UIProcess/API/C/efl/WKView.h: Rename WKViewGetSnapshot
729 to WKViewCreateSnapshot to follow C API naming conventions,
730 since the returned value needs to be adopted.
731 * UIProcess/API/efl/EwkViewImpl.cpp:
732 (EwkViewImpl::takeSnapshot):
733 * UIProcess/API/efl/EwkViewImpl.h: Have takeSnapshot() return
734 a cairo_surface_t instead of a WKType. The value should be
735 converted to a WKType at C API level.
737 * UIProcess/API/efl/SnapshotImageGL.cpp: Use OwnArrayPtr for the
738 buffer to avoid manual memory handling. Remove useless call to
739 glBindTexture() since glReadPixels() reads pixels from the frame
740 buffer, not from the texture.
741 (getImageDataFromFrameBuffer):
742 * UIProcess/API/efl/SnapshotImageGL.h: Rename getImageFromCurrentTexture
743 to getImageDataFromFrameBuffer for consistency since we technically
744 return the pixel data of the image and since glReadPixels does not
745 actually read from the texture. Have the function return a smart
746 pointer instead of a raw one to avoid manual memory handling.
748 2012-12-25 Tim Horton <timothy_horton@apple.com>
750 PDFPlugin: Find-in-page
751 https://bugs.webkit.org/show_bug.cgi?id=105710
752 <rdar://problem/12555331>
754 Reviewed by Alexey Proskuryakov.
756 Make use of PDFLayerController's find-in-page functionality to mimic WebKit's.
757 Add two Plugin methods, countFindMatches and findString, and make use of them
758 if attempting to find-in-page within a PluginDocument.
760 * WebProcess/Plugins/Netscape/NetscapePlugin.cpp:
761 (WebKit::NetscapePlugin::countFindMatches): Added. We don't support find-in-page for NetscapePlugin.
762 (WebKit::NetscapePlugin::findString): Added. We don't support find-in-page for NetscapePlugin.
763 * WebProcess/Plugins/Netscape/NetscapePlugin.h: Add countFindMatches and findString.
764 * WebProcess/Plugins/PDF/PDFLayerControllerDetails.h: Add requisite PDFLayerController interfaces.
765 * WebProcess/Plugins/PDF/PDFPlugin.h: Add countFindMatches, findString, and nextMatchForString,
766 as well as storage for the most-recently-searched string.
767 * WebProcess/Plugins/PDF/PDFPlugin.mm:
768 (WebKit::PDFPlugin::writeItemsToPasteboard):
769 (WebKit::PDFPlugin::countFindMatches):
770 (WebKit::PDFPlugin::nextMatchForString):
771 (WebKit::PDFPlugin::findString):
772 * WebProcess/Plugins/PDF/SimplePDFPlugin.h: Add countFindMatches and findString.
773 * WebProcess/Plugins/Plugin.h: Add countFindMatches and findString.
774 * WebProcess/Plugins/PluginProxy.h: Add countFindMatches and findString, but since PDFPlugin
775 is in-process, we don't need to forward these calls to the PluginProcess.
776 * WebProcess/Plugins/PluginView.cpp:
777 (WebKit::PluginView::countFindMatches): Forward countFindMatches to the plugin.
778 (WebKit::PluginView::findString): Forward findString to the plugin.
779 * WebProcess/Plugins/PluginView.h: Add countFindMatches and findString.
780 * WebProcess/WebPage/FindController.cpp:
781 (WebKit::pluginViewForFrame): If the given frame hosts a PluginDocument, grab its PluginView.
782 (WebKit::FindController::countStringMatches): Forward countStringMatches to PluginView if necessary.
783 (WebKit::FindController::updateFindUIAfterPageScroll): Only use unmarkAllTextMatches if we're using
784 ordinary find-in-page and don't have a plugin. If we have a plugin, disable our overlay, as it must
785 be handled by the plugin itself, and request the number of matches for the search from the plugin.
786 (WebKit::FindController::findString): If necessary, forward findString to the plugin.
787 (WebKit::FindController::hideFindUI): Hide the search highlight by searching for an empty string.
789 2012-12-24 Laszlo Gombos <l.gombos@samsung.com>
791 Remove wtf/Platform.h includes from {c|cpp} files
792 https://bugs.webkit.org/show_bug.cgi?id=105678
794 Reviewed by Kentaro Hara.
796 Remove wtf/Platform.h from the include list as it is already
797 included in config.h.
799 * Shared/qt/QtNetworkRequestData.cpp:
801 2012-12-24 Sam Weinig <sam@webkit.org>
805 * WebProcess/WebProcess.cpp:
806 (WebKit::WebProcess::WebProcess):
807 (WebKit::WebProcess::initializeWebProcess):
809 2012-12-24 Sam Weinig <sam@webkit.org>
811 Fix WebKit2 asserting on launch.
813 * WebProcess/WebProcess.cpp:
814 (WebKit::WebProcess::WebProcess):
815 * WebProcess/WebProcess.h:
816 (WebKit::WebProcess::databaseManager):
819 2012-12-24 Csaba Osztrogonác <ossy@webkit.org>
821 [Qt][Win] Unreviewed Xmas buildfix after r138433.
823 * WebProcess/Cookies/WebCookieManager.h:
825 2012-12-23 Seokju Kwon <seokju.kwon@gmail.com>
827 Fix the incorrect use of preprocessor statement in API header
828 https://bugs.webkit.org/show_bug.cgi?id=105675
830 Reviewed by Sam Weinig.
832 Remove a preprocessor statement in WKBundlePage.h
834 * WebProcess/InjectedBundle/API/c/WKBundlePage.cpp:
835 (WKBundlePageGetInspector):
836 * WebProcess/InjectedBundle/API/c/WKBundlePage.h:
838 2012-12-23 Sam Weinig <sam@webkit.org>
840 Switch WebCookieManager and AuthenticationManager to use the ChildProcess rather than holding on to a Connection
841 https://bugs.webkit.org/show_bug.cgi?id=105703
843 Reviewed by Dan Bernstein.
845 Also switches WebCookieManager over to be a MessageReceiver while we are at it.
847 * NetworkProcess/NetworkProcess.cpp:
848 (WebKit::NetworkProcess::NetworkProcess):
849 (WebKit::NetworkProcess::initialize):
850 (WebKit::NetworkProcess::didReceiveMessage):
851 * NetworkProcess/NetworkProcess.h:
853 * WebProcess/Authentication/AuthenticationManager.cpp:
854 (WebKit::AuthenticationManager::AuthenticationManager):
855 (WebKit::AuthenticationManager::didReceiveAuthenticationChallenge):
856 * WebProcess/Authentication/AuthenticationManager.h:
857 (AuthenticationManager):
858 * WebProcess/Cookies/WebCookieManager.cpp:
860 (WebKit::WebCookieManager::WebCookieManager):
861 (WebKit::WebCookieManager::didReceiveMessage):
862 (WebKit::WebCookieManager::getHostnamesWithCookies):
863 (WebKit::WebCookieManager::cookiesDidChange):
864 (WebKit::WebCookieManager::dispatchCookiesDidChange):
865 (WebKit::WebCookieManager::getHTTPCookieAcceptPolicy):
866 * WebProcess/Cookies/WebCookieManager.h:
869 * WebProcess/Cookies/soup/WebCookieManagerSoup.cpp:
870 (WebKit::WebCookieManager::setCookiePersistentStorage):
871 * WebProcess/InjectedBundle/InjectedBundle.cpp:
872 (WebKit::InjectedBundle::setAlwaysAcceptCookies):
873 * WebProcess/WebProcess.cpp:
874 (WebKit::WebProcess::WebProcess):
875 (WebKit::WebProcess::initialize):
876 (WebKit::WebProcess::didReceiveMessage):
877 * WebProcess/WebProcess.h:
879 (WebKit::WebProcess::cookieManager):
881 2012-12-23 Sam Weinig <sam@webkit.org>
883 Try to fix the Qt build.
885 * WebProcess/WebCoreSupport/WebDatabaseManager.h:
887 2012-12-23 Sam Weinig <sam@webkit.org>
889 Remove more special cased message receiving code from WebProcess
890 https://bugs.webkit.org/show_bug.cgi?id=105700
892 Reviewed by Dan Bernstein.
894 Makes WebApplicationCacheManager, WebResourceCacheManager and WebDatabaseManager
895 CoreIPC::MessageReceivers, removes them as special cases in WebProcess.
897 * WebProcess/ApplicationCache/WebApplicationCacheManager.cpp:
898 (WebKit::WebApplicationCacheManager::WebApplicationCacheManager):
899 (WebKit::WebApplicationCacheManager::getApplicationCacheOrigins):
900 (WebKit::WebApplicationCacheManager::deleteEntriesForOrigin):
901 (WebKit::WebApplicationCacheManager::deleteAllEntries):
902 (WebKit::WebApplicationCacheManager::setAppCacheMaximumSize):
903 * WebProcess/ApplicationCache/WebApplicationCacheManager.h:
905 (WebApplicationCacheManager):
906 * WebProcess/InjectedBundle/InjectedBundle.cpp:
907 (WebKit::InjectedBundle::clearAllDatabases):
908 (WebKit::InjectedBundle::setDatabaseQuota):
909 (WebKit::InjectedBundle::clearApplicationCache):
910 (WebKit::InjectedBundle::setAppCacheMaximumSize):
911 * WebProcess/ResourceCache/WebResourceCacheManager.cpp:
912 (WebKit::WebResourceCacheManager::WebResourceCacheManager):
913 (WebKit::WebResourceCacheManager::getCacheOrigins):
914 (WebKit::WebResourceCacheManager::clearCacheForOrigin):
915 (WebKit::WebResourceCacheManager::clearCacheForAllOrigins):
916 * WebProcess/ResourceCache/WebResourceCacheManager.h:
918 (WebResourceCacheManager):
919 * WebProcess/WebCoreSupport/WebDatabaseManager.cpp:
921 (WebKit::WebDatabaseManager::WebDatabaseManager):
922 (WebKit::WebDatabaseManager::getDatabasesByOrigin):
923 (WebKit::WebDatabaseManager::getDatabaseOrigins):
924 (WebKit::WebDatabaseManager::deleteDatabaseWithNameForOrigin):
925 (WebKit::WebDatabaseManager::deleteDatabasesForOrigin):
926 (WebKit::WebDatabaseManager::deleteAllDatabases):
927 (WebKit::WebDatabaseManager::setQuotaForOrigin):
928 (WebKit::WebDatabaseManager::dispatchDidModifyOrigin):
929 (WebKit::WebDatabaseManager::dispatchDidModifyDatabase):
930 * WebProcess/WebCoreSupport/WebDatabaseManager.h:
932 (WebDatabaseManager):
933 * WebProcess/WebProcess.cpp:
934 (WebKit::WebProcess::WebProcess):
935 (WebKit::WebProcess::didReceiveMessage):
936 * WebProcess/WebProcess.h:
938 (WebKit::WebProcess::applicationCacheManager):
939 (WebKit::WebProcess::resourceCacheManager):
940 (WebKit::WebProcess::databaseManager):
942 2012-12-23 Alexey Proskuryakov <ap@apple.com>
944 <rdar://problem/12808377> Network process should respect cookie accept policy
945 https://bugs.webkit.org/show_bug.cgi?id=105684
947 Reviewed by Sam Weinig.
949 * NetworkProcess/NetworkProcess.cpp:
950 (WebKit::NetworkProcess::initialize): Tell cookie manager which connection to
951 make calls on. Now that the code can run in either WebProcess or NetworkProcess,
952 it cannot use WebProcess singleton.
953 (WebKit::NetworkProcess::didReceiveMessage): Dispatch WebCookieManager messages.
955 * WebProcess/WebProcess.cpp:
956 (WebKit::WebProcess::initialize): Tell cookie manager which connection to
959 * UIProcess/Downloads/DownloadProxy.cpp:
960 (WebKit::DownloadProxy::didReceiveAuthenticationChallenge): Changed to use
961 WebContext::networkingProcessConnection() instead of deciding upon the connection here.
963 * UIProcess/Network/NetworkProcessProxy.cpp:
964 (WebKit::NetworkProcessProxy::didReceiveMessage): Call m_webContext->dispatchMessage),
965 as WebCookieManagerProxy handlers are registered on the context. This may seem wasteful,
966 but a lot of registered managers will need the ame handling soon.
968 * UIProcess/WebContext.cpp:
969 (WebKit::WebContext::networkingProcessConnection): Added a way to get connection
970 to whichever process performs networking.
971 (WebKit::WebContext::removeNetworkProcessProxy): Invalidate cookie manager proxy,
972 so that expected responses could be cleared.
973 (WebKit::WebContext::disconnectProcess): Updated a FIXME.
975 * UIProcess/WebContext.h: Deleted deprecatedSharedProcess().
976 (WebKit::WebContext::networkingProcessConnection): Added.
977 (WebKit::WebContext::sendToNetworkingProcess): Added.
978 (WebKit::WebContext::sendToNetworkingProcessRelaunchingIfNecessary): Added.
980 * UIProcess/WebCookieManagerProxy.cpp:
981 (WebKit::WebCookieManagerProxy::shouldTerminate): Should not prevent WebProcess
982 termination when NetworkProcess is in use.
983 (WebKit::WebCookieManagerProxy::getHostnamesWithCookies): Removed a useless ASSERT
984 that neiter documents expectations nor helps find bugs. Send a message to correct
985 process, whether WebProcess or NetworkProcess.
986 (WebKit::WebCookieManagerProxy::deleteCookiesForHostname): Ditto.
987 (WebKit::WebCookieManagerProxy::deleteAllCookies): Ditto.
988 (WebKit::WebCookieManagerProxy::startObservingCookieChanges): Ditto.
989 (WebKit::WebCookieManagerProxy::stopObservingCookieChanges): Ditto.
990 (WebKit::WebCookieManagerProxy::setHTTPCookieAcceptPolicy): Ditto.
991 (WebKit::WebCookieManagerProxy::getHTTPCookieAcceptPolicy): Ditto.
993 * WebProcess/Cookies/WebCookieManager.h:
994 * WebProcess/Cookies/WebCookieManager.cpp: Made the class usable in either WebProcess
996 (WebKit::WebCookieManager::setConnection): WebCookieManager now remembers which
997 connection to talk back on.
998 (WebKit::WebCookieManager::didReceiveMessage): Added an assertion that stored connection
999 matches the one being used to reciev messages.
1000 (WebKit::WebCookieManager::getHostnamesWithCookies): Use the stored connection to
1002 (WebKit::WebCookieManager::startObservingCookieChanges): Pass a callback function,
1003 so that WebCore doesn't have to use a platform strategy.
1004 (WebKit::WebCookieManager::cookiesDidChange): The new callback.
1005 (WebKit::WebCookieManager::dispatchCookiesDidChange): Use the stored connection.
1006 (WebKit::WebCookieManager::getHTTPCookieAcceptPolicy): Use the stored connection.
1008 * WebProcess/WebCoreSupport/WebPlatformStrategies.cpp:
1009 * WebProcess/WebCoreSupport/WebPlatformStrategies.h:
1010 Removed notifyCookiesChanged() which is no longer part of CookiesStrategy.
1012 2012-12-22 Sam Weinig <sam@webkit.org>
1014 Make CustomProtocolManager a MessageReceiver to remove more special casing
1015 https://bugs.webkit.org/show_bug.cgi?id=105682
1017 Reviewed by Dan Bernstein.
1019 To avoid storing a Connection in CustomProtocolManager, which is not a great idea without
1020 it being the Connection::Client and therefore getting death notifications, I also made
1021 ChildProcess a MessageSender so that extensions to it, like CustomProtocolManager, can
1022 easily send messages to the parent process.
1024 * NetworkProcess/NetworkProcess.cpp:
1025 (WebKit::NetworkProcess::NetworkProcess):
1026 Initialize the shared CustomProtocolManager, which will add it to the MessageReceiverMap in
1029 (WebKit::NetworkProcess::didReceiveMessage):
1030 Remove the special case for CustomProtocolManager.
1032 (WebKit::NetworkProcess::initializeNetworkProcess):
1033 Call connectionEstablished on the CustomProtocolManager to make it start working as a NSURLProtocol handler.
1035 * NetworkProcess/NetworkProcess.h:
1036 Add overrides necessary for MessageSender.
1038 * PluginProcess/PluginProcess.h:
1041 * Shared/ChildProcess.h:
1043 Make ChildProcess a MessageSender.
1045 * Shared/Network/CustomProtocols/CustomProtocolManager.h:
1046 (CustomProtocolManager):
1047 (WebKit::CustomProtocolManager::childProcess):
1048 * Shared/Network/CustomProtocols/mac/CustomProtocolManagerMac.mm:
1049 (-[WKCustomProtocol startLoading]):
1050 (-[WKCustomProtocol stopLoading]):
1051 (WebKit::CustomProtocolManager::CustomProtocolManager):
1052 (WebKit::CustomProtocolManager::initialize):
1053 (WebKit::CustomProtocolManager::connectionEstablished):
1054 Make CustomProtocolManager a MessageReceiver and split initialization and the time when it can
1055 start acting as protocol handler as these happen at different times now. It also now stores a
1056 ChildProcess rather than a Connection.
1058 * SharedWorkerProcess/SharedWorkerProcess.h:
1059 Add overrides necessary for MessageSender.
1061 * WebProcess/WebProcess.cpp:
1062 (WebKit::WebProcess::WebProcess):
1063 Initialize the shared CustomProtocolManager, which will add it to the MessageReceiverMap in
1066 (WebKit::WebProcess::didReceiveMessage):
1067 Remove the special case for CustomProtocolManager.
1069 (WebKit::WebProcess::initializeCustomProtocolManager):
1070 Call connectionEstablished on the CustomProtocolManager to make it start working as a NSURLProtocol handler.
1072 * WebProcess/WebProcess.h:
1073 Add overrides necessary for MessageSender.
1075 2012-12-20 Martin Robinson <mrobinson@igalia.com>
1077 [GTK] Remove plugin process configuration option
1078 https://bugs.webkit.org/show_bug.cgi?id=105564
1080 Reviewed by Carlos Garcia Campos.
1082 Remove the --enable-plugin-process configuration option, opting instead to
1083 always build the plugin process when building WebKit2. It isn't very interesting
1084 for downstream to enable or disable the plugin process. It should always be
1085 enabled for WebKit2 and it's better for us not to have to keep a disabled plugin
1086 process building. Additionally, the in-process plugin isn't functional, since
1087 plugins depend on GTK+ 2 and WebKit2 depends on GTK+ 3.
1089 * GNUmakefile.am: Remove the option.
1090 * GNUmakefile.list.am: Remote the option.
1092 2012-12-22 Sam Weinig <sam@webkit.org>
1094 Give the ChildProcess a MessageReceiverMap
1095 https://bugs.webkit.org/show_bug.cgi?id=105681
1097 Reviewed by Dan Bernstein.
1099 Moving the MessageReceiverMap to the ChildProcess will help shared code
1100 between the WebProcess and NetworkProcess.
1102 * NetworkProcess/NetworkProcess.cpp:
1103 (WebKit::NetworkProcess::NetworkProcess):
1104 Pass 'this' instead of the MessageReceiverMap, now that ChildProcess
1105 can be used to access the MessageReceiverMap.
1107 * NetworkProcess/NetworkProcess.h:
1109 Remove the now extraneous MessageReceiverMap.
1111 * Shared/ChildProcess.cpp:
1112 (WebKit::ChildProcess::ChildProcess):
1114 (WebKit::ChildProcess::~ChildProcess):
1115 (WebKit::ChildProcess::addMessageReceiver):
1116 (WebKit::ChildProcess::removeMessageReceiver):
1117 * Shared/ChildProcess.h:
1119 Add a MessageReceiverMap and helper functions from WebProcess.
1121 * WebProcess/Authentication/AuthenticationManager.cpp:
1122 (WebKit::AuthenticationManager::AuthenticationManager):
1123 * WebProcess/Authentication/AuthenticationManager.h:
1124 (AuthenticationManager):
1125 Fix the FIXME, passing the ChildProcess rather than the MessageReceiverMap.
1127 * WebProcess/WebProcess.cpp:
1128 (WebKit::WebProcess::WebProcess):
1129 * WebProcess/WebProcess.h:
1131 Remove the MessageReceiverMap and helper functions.
1133 2012-12-22 Alexey Proskuryakov <ap@apple.com>
1137 * WebProcess/Cookies/cf/WebCookieManagerCFNet.cpp:
1139 2012-12-22 Alexey Proskuryakov <ap@apple.com>
1141 Add a separate class for networking related storage
1142 https://bugs.webkit.org/show_bug.cgi?id=105676
1144 Reviewed by Sam Weinig.
1146 * NetworkProcess/NetworkConnectionToWebProcess.cpp: We no longer need to create
1147 fake RemoteNetworkingContexts here! Use an actual default or private storage session.
1149 * NetworkProcess/mac/NetworkProcessMainMac.mm: Updated form of WebSystemInterface.h include,
1150 it's not a system one.
1152 * NetworkProcess/mac/RemoteNetworkingContext.h: Expose privateBrowsingSession(),
1153 so that NetworkConnectionToWebProcess could use it. We can generalize the interface
1154 one we support more sessions.
1156 * NetworkProcess/mac/RemoteNetworkingContext.mm: This class now only tracks private
1157 browsing session, with most other code being in NetworkStorageSession.
1159 * Shared/Network/CustomProtocols/mac/CustomProtocolManagerMac.mm:
1160 * UIProcess/Launcher/efl/ProcessLauncherEfl.cpp:
1161 * UIProcess/Launcher/gtk/ProcessLauncherGtk.cpp:
1162 * WebProcess/WebProcess.cpp:
1163 * WebProcess/efl/WebProcessMainEfl.cpp:
1164 * WebProcess/gtk/WebProcessMainGtk.cpp:
1165 * WebProcess/Downloads/cfnet/DownloadCFNet.cpp:
1166 * WebProcess/Downloads/efl/DownloadSoupErrorsEfl.cpp:
1167 * WebProcess/Downloads/gtk/DownloadSoupErrorsGtk.cpp:
1168 * WebProcess/Downloads/mac/DownloadMac.mm:
1169 * WebProcess/Network/WebResourceLoader.cpp:
1170 Updated includes for ResourceHandle change. For some ports, the includes could be
1171 made more tight, but I have no practical way to do that.
1173 * WebKit2.xcodeproj/project.pbxproj: Removed WebPlatformStrategiesMac.mm.
1175 * WebProcess/Cookies/WebCookieManager.cpp:
1176 (WebKit::WebCookieManager::getHostnamesWithCookies):
1177 (WebKit::WebCookieManager::deleteCookiesForHostname):
1178 (WebKit::WebCookieManager::deleteAllCookies):
1179 Pass a proper session instead of relying on a strategy to call back to WebKit
1180 for default cookie storage (we don't even have strategies initialized in NetworkProcess).
1182 * WebProcess/InjectedBundle/InjectedBundle.cpp:
1183 (WebKit::InjectedBundle::switchNetworkLoaderToNewTestingSession): Initialize WCSI
1184 before calling a function that now uses in in WebCore.
1186 * WebProcess/WebCoreSupport/WebPlatformStrategies.h:
1187 * WebProcess/WebCoreSupport/WebPlatformStrategies.cpp: We no longer need a strategy
1188 for default cookie storage! Updated other functions to use sessions.
1190 * WebProcess/WebCoreSupport/mac/WebFrameNetworkingContext.h:
1191 * WebProcess/WebCoreSupport/mac/WebFrameNetworkingContext.mm:
1192 * WebProcess/WebCoreSupport/mac/WebPlatformStrategiesMac.mm: Removed.
1193 * WebProcess/WebCoreSupport/win/WebFrameNetworkingContext.h:
1194 WebFrameNetworkingContext is now simpler, with more tracking being donre through WebCore.
1196 2012-12-21 Elliott Sprehn <esprehn@chromium.org>
1198 Replace documentFragmentIsShadowRoot with isTreeScope
1199 https://bugs.webkit.org/show_bug.cgi?id=105345
1201 Reviewed by Dimitri Glazkov.
1203 Expose isTreeScope symbol.
1205 * win/WebKit2.def.in:
1207 2012-12-21 Sheriff Bot <webkit.review.bot@gmail.com>
1209 Unreviewed, rolling out r138331.
1210 http://trac.webkit.org/changeset/138331
1211 https://bugs.webkit.org/show_bug.cgi?id=105668
1213 Broke Windows clean builds; can't figure out how to fix it
1214 (Requested by rniwa on #webkit).
1216 * win/WebKit2.def.in:
1218 2012-12-21 Brady Eidson <beidson@apple.com>
1220 ASSERT in WebResourceLoadScheduler::scheduleLoad with a crashed NetworkProcess.
1221 <rdar://problem/12924845> and https://bugs.webkit.org/show_bug.cgi?id=105646
1223 Reviewed by Alexey Proskuryakov.
1225 If we fail to schedule a loader with the NetworkProcess it is probably because the NetworkProcess crashed.
1227 Since these loaders will never succeed in loading we should schedule them to fail on a timer.
1229 * WebProcess/Network/WebResourceLoadScheduler.cpp:
1230 (WebKit::WebResourceLoadScheduler::WebResourceLoadScheduler):
1231 (WebKit::WebResourceLoadScheduler::scheduleLoad):
1232 (WebKit::WebResourceLoadScheduler::addUnschedulableLoad):
1233 (WebKit::WebResourceLoadScheduler::unscheduledLoadTimerFired):
1234 (WebKit::WebResourceLoadScheduler::remove):
1235 * WebProcess/Network/WebResourceLoadScheduler.h:
1237 2012-12-21 Kenneth Rohde Christiansen <kenneth@webkit.org>
1239 Unreviewed potential fix EFL/Qt test breakage on WK2
1241 Only disable scrollbars when in fixed layout mode.
1243 * WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
1244 (WebKit::WebFrameLoaderClient::transitionToCommittedForNewPage):
1246 2012-12-21 Brady Eidson <beidson@apple.com>
1248 Remove ResourceLoadScheduler::addMainResourceLoad and all related code
1249 <rdar://problem/12925275> and https://bugs.webkit.org/show_bug.cgi?id=105644
1251 Reviewed by Alexey Proskuryakov.
1253 Now that main resources loads are scheduled (bug 49246) we don't need this stuff anymore.
1255 * WebProcess/Network/WebResourceLoadScheduler.cpp:
1256 (WebKit::WebResourceLoadScheduler::remove):
1257 (WebKit::WebResourceLoadScheduler::networkProcessCrashed):
1258 * WebProcess/Network/WebResourceLoadScheduler.h:
1260 2012-12-20 Sam Weinig <sam@webkit.org>
1262 Add WebKit2 SPI to get the current selection as a WebArchive
1263 https://bugs.webkit.org/show_bug.cgi?id=105613
1265 Reviewed by Anders Carlsson.
1267 * UIProcess/API/C/WKPage.cpp:
1268 (WKPageGetSelectionAsWebArchiveData):
1269 * UIProcess/API/C/WKPage.h:
1272 * UIProcess/WebPageProxy.cpp:
1273 (WebKit::WebPageProxy::getSelectionAsWebArchiveData):
1275 * UIProcess/WebPageProxy.h:
1277 * WebProcess/WebPage/WebPage.cpp:
1279 (WebKit::frameWithSelection):
1280 (WebKit::WebPage::getSelectionAsWebArchiveData):
1281 * WebProcess/WebPage/WebPage.h:
1283 * WebProcess/WebPage/WebPage.messages.in:
1284 Pipe getter to the WebProcess and back.
1286 2012-12-21 Brady Eidson <beidson@apple.com>
1288 Perform cleanup in WebProcess if the NetworkProcess crashes.
1289 <rdar://problem/12903117> and https://bugs.webkit.org/show_bug.cgi?id=105592
1291 Reviewed by Alexey Proskuryakov.
1293 If the NetworkProcess crashes, a whole bunch of WebResourceLoaders (and WebCore::ResourceLoaders)
1294 might be orphaned in the WebProcess.
1296 These loaders need to fail once it is apparent they will never finish loading.
1298 * Shared/API/c/WKError.h: Add a new error representing an "WebKit Internal Error."
1300 * WebProcess/WebCoreSupport/WebErrors.h:
1301 * WebProcess/WebCoreSupport/mac/WebErrorsMac.mm:
1302 (WebKit::internalError):
1304 * WebProcess/Network/WebResourceLoadScheduler.cpp:
1305 (WebKit::WebResourceLoadScheduler::networkProcessCrashed): Call didFail all outstanding ResourceLoaders
1306 and tell all WebResourceLoaders the NetworkProcess crashed.
1307 * WebProcess/Network/WebResourceLoadScheduler.h:
1309 * WebProcess/Network/WebResourceLoader.cpp:
1310 (WebKit::WebResourceLoader::networkProcessCrashed): Call didFail with the new InternalError
1311 * WebProcess/Network/WebResourceLoader.h:
1313 * WebProcess/WebProcess.cpp:
1314 (WebKit::WebProcess::networkProcessConnectionClosed): Tell the scheduled the NetworkProcess crashed.
1316 2012-12-21 Kenneth Rohde Christiansen <kenneth@webkit.org>
1318 [EFL][WK2] Never create WebCore scrollbars for EFL/WK2
1319 https://bugs.webkit.org/show_bug.cgi?id=105632
1321 Reviewed by Antonio Gomes.
1323 Then creating the frame ask to not create scrollbars and
1324 lock it so they won't be created at any later time.
1326 * WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
1327 (WebKit::WebFrameLoaderClient::transitionToCommittedForNewPage):
1329 2012-12-21 Seokju Kwon <seokju.kwon@gmail.com>
1331 [EFL] Add guard around ContextMenuItemTagInspectElement
1332 https://bugs.webkit.org/show_bug.cgi?id=105267
1334 Reviewed by Ryosuke Niwa.
1336 Need INSPECTOR guard for using ContextMenuItemTagInspectElement.
1338 * UIProcess/API/efl/ewk_context_menu_item.cpp:
1340 2012-12-21 Mikhail Pozdnyakov <mikhail.pozdnyakov@intel.com>
1342 [WK2] TiledBackingStore: Scroll position is not reset when new page is loaded
1343 https://bugs.webkit.org/show_bug.cgi?id=105627
1345 Reviewed by Kenneth Rohde Christiansen.
1347 Reset scroll position to (0,0) when new page is loaded.
1349 * WebProcess/WebPage/WebPage.cpp:
1350 (WebKit::WebPage::sendViewportAttributesChanged):
1352 2012-12-21 Tim Horton <timothy_horton@apple.com>
1354 PDFPlugin: Cannot drop files/URLs on PDFPlugin
1355 https://bugs.webkit.org/show_bug.cgi?id=105516
1356 <rdar://problem/12729443>
1358 Reviewed by Alexey Proskuryakov.
1360 Add shouldAllowNavigationFromDrags to Plugin/PluginView/etc., which WebCore will
1361 consult when dragging over a PluginDocument to decide whether or not a drag may result in navigation.
1363 * WebProcess/Plugins/Netscape/NetscapePlugin.cpp:
1364 (WebKit::NetscapePlugin::shouldAllowNavigationFromDrags): Added, always returning false to keep existing behavior.
1365 * WebProcess/Plugins/Netscape/NetscapePlugin.h:
1366 (NetscapePlugin): Added.
1367 * WebProcess/Plugins/PDF/SimplePDFPlugin.h:
1368 (WebKit::SimplePDFPlugin::shouldAllowNavigationFromDrags): Added, always returning true. (Simple)PDFPlugin should
1369 navigate when dropped onto, just like an image or HTML document would.
1370 * WebProcess/Plugins/Plugin.h:
1371 (Plugin): Add shouldAllowNavigationFromDrags.
1372 * WebProcess/Plugins/PluginProxy.h: Add shouldAllowNavigationFromDrags.
1373 * WebProcess/Plugins/PluginView.cpp:
1374 (WebKit::PluginView::shouldAllowNavigationFromDrags): Forward shouldAllowNavigationFromDrags to the plugin.
1375 * WebProcess/Plugins/PluginView.h: Add shouldAllowNavigationFromDrags.
1377 2012-12-21 Sheriff Bot <webkit.review.bot@gmail.com>
1379 Unreviewed, rolling out r138357.
1380 http://trac.webkit.org/changeset/138357
1381 https://bugs.webkit.org/show_bug.cgi?id=105622
1383 wrong fix for the problem
\1f (the original author actually
1384 already did this, and it's not helping) (Requested by thorton
1387 * win/WebKit2.def.in:
1389 2012-12-21 Sheriff Bot <webkit.review.bot@gmail.com>
1391 Unreviewed, rolling out r138338.
1392 http://trac.webkit.org/changeset/138338
1393 https://bugs.webkit.org/show_bug.cgi?id=105621
1395 speculative rollout because fast/dom/shadow/content-element-
1396 distributed-nodes.html is crashing on linux debug. (Requested
1397 by loislo on #webkit).
1399 * win/WebKit2.def.in:
1401 2012-12-21 Tim Horton <timothy_horton@apple.com>
1403 Unreviewed Windows build fix after http://trac.webkit.org/changeset/138338
1405 * win/WebKit2.def.in:
1407 2012-12-21 Tim Horton <timothy_horton@apple.com>
1409 Reducing print preview scale significantly causes a crash
1410 https://bugs.webkit.org/show_bug.cgi?id=105519
1411 <rdar://problem/12807090>
1413 Reviewed by Alexey Proskuryakov.
1415 The bitmap image used for print previews was being created respecting the print preview scale.
1416 This doesn't make any sense, as the scale does not affect the size of the image required to
1417 represent the previewed page. Instead, we should not scale the size, creating the buffer at a
1418 size that is constant regardless of scale, and do the scaling when drawing *into* the buffer instead.
1420 In some cases, this could cause an out-of-memory crash.
1422 * UIProcess/API/mac/WKPrintingView.mm:
1423 (-[WKPrintingView _drawPreview:]): Rename rect to scaledPrintingRect for clarity. Compute print
1424 preview bitmap image size from the original non-scaled drawing size and the device scale factor.
1425 Hand the image size to drawRectToImage. Draw the image without scaling, as it's always created
1426 at the correct size. Don't compute the scale factor from the size of the image, we can know it from WebPageProxy.
1427 * UIProcess/WebPageProxy.cpp:
1428 (WebKit::WebPageProxy::drawRectToImage): Add a parameter to drawRectForImage, imageSize.
1429 * UIProcess/WebPageProxy.h:
1430 (WebPageProxy): Add a parameter to drawRectForImage, imageSize.
1431 * WebProcess/WebPage/WebPage.cpp:
1432 (WebKit::WebPage::drawRectToImage): Use imageSize to size our buffer, and scale up to make the printing rect
1433 fit in the bitmap's bounds.
1434 * WebProcess/WebPage/WebPage.h:
1435 (WebPage): Add a parameter to drawRectForImage, imageSize.
1436 * WebProcess/WebPage/WebPage.messages.in: Add a parameter to drawRectForImage, imageSize.
1438 2012-12-20 Helder Correia <helder.correia@nokia.com>
1440 [CoordGfx] Make single-argument AreaAllocator constructors explicit
1441 https://bugs.webkit.org/show_bug.cgi?id=105598
1443 Reviewed by Noam Rosenthal.
1445 Follow the coding style for AreaAllocator and GeneralAreaAllocator.
1447 * WebProcess/WebPage/CoordinatedGraphics/AreaAllocator.h:
1449 (GeneralAreaAllocator):
1451 2012-12-20 Elliott Sprehn <esprehn@chromium.org>
1453 Replace documentFragmentIsShadowRoot with isTreeScope
1454 https://bugs.webkit.org/show_bug.cgi?id=105345
1456 Reviewed by Dimitri Glazkov.
1458 Expose isTreeScope symbol.
1460 * win/WebKit2.def.in:
1462 2012-12-20 Kiran Muppala <cmuppala@apple.com>
1464 Set timer coalescing policy for WebKit2 processes on Mac until process visible assertion handles it automatically
1465 https://bugs.webkit.org/show_bug.cgi?id=105594
1467 Reviewed by Mark Rowe.
1469 * Shared/mac/ChildProcessMac.mm:
1470 (WebKit::initializeTimerCoalescingPolicy): Set task_latency and task_throughput QOS tiers as appropriate
1471 for visible applications.
1472 (WebKit::ChildProcess::platformInitialize): Add call to initializeTimerCoalescingPolicy.
1474 2012-12-20 Anders Carlsson <andersca@apple.com>
1476 Stop building WebKit2 for Windows
1477 https://bugs.webkit.org/show_bug.cgi?id=105585
1479 Reviewed by Brian Weinstein.
1481 Remove an unneeded export.
1483 * win/WebKit2.def.in:
1485 2012-12-20 Ryuan Choi <ryuan.choi@samsung.com>
1487 [EFL] Build break with latest EFL libraries.
1488 https://bugs.webkit.org/show_bug.cgi?id=104827
1490 Reviewed by Laszlo Gombos.
1492 The eo EFL package is introduced and evas and ecore use it since 1.8.
1493 While introducing Eo, EFL changed several structures of Evas and Ecore
1494 from own specific class to Eo.
1496 So, this patch adds FindEo and changes declaration of Evas, Evas_Object,
1497 Ecore_Timer to build with latest EFL libraries.
1499 * PlatformEfl.cmake: Includes eo EFL library.
1500 * UIProcess/API/C/efl/WKAPICastEfl.h: Modified declaration of Evas_Object.
1501 * UIProcess/API/C/efl/WKView.h: Modified declaration of Evas.
1502 * UIProcess/efl/WebPopupMenuProxyEfl.h: Removed unnecessary declaration.
1504 2012-12-20 Helder Correia <helder.correia@nokia.com>
1506 [CoordGfx] Remove CoordinatedLayerUpdateInfo class forwarding
1507 https://bugs.webkit.org/show_bug.cgi?id=105588
1509 Reviewed by Noam Rosenthal.
1511 There is no such class.
1513 * UIProcess/CoordinatedGraphics/CoordinatedLayerTreeHostProxy.h:
1515 * UIProcess/CoordinatedGraphics/LayerTreeRenderer.h:
1518 2012-12-20 Pratik Solanki <psolanki@apple.com>
1520 Rename HAVE(NETWORK_CFDATA_ARRAY_CALLBACK) to USE(NETWORK_CFDATA_ARRAY_CALLBACK)
1521 https://bugs.webkit.org/show_bug.cgi?id=105578
1523 Reviewed by Alexey Proskuryakov.
1525 * NetworkProcess/NetworkResourceLoader.cpp:
1526 * NetworkProcess/NetworkResourceLoader.h:
1528 2012-12-20 Alexey Proskuryakov <ap@apple.com>
1530 LocalTerminationDisabler is not needed in WebCookieManager.cpp
1531 https://bugs.webkit.org/show_bug.cgi?id=105581
1533 Reviewed by Anders Carlsson.
1535 All WebCookieManager functions are synchronous, and all LocalTerminationDisabler does
1536 is enable/disable a timer that cannot fire inside the function anyway.
1538 * WebProcess/Cookies/WebCookieManager.cpp:
1539 (WebKit::WebCookieManager::getHostnamesWithCookies):
1540 (WebKit::WebCookieManager::deleteCookiesForHostname):
1541 (WebKit::WebCookieManager::deleteAllCookies):
1542 (WebKit::WebCookieManager::startObservingCookieChanges):
1543 (WebKit::WebCookieManager::setHTTPCookieAcceptPolicy):
1544 (WebKit::WebCookieManager::getHTTPCookieAcceptPolicy):
1546 2012-12-20 Brady Eidson <beidson@apple.com>
1548 NetworkProcess has no need for suspend/resumePendingRequests.
1549 <rdar://problem/12866005> and https://bugs.webkit.org/show_bug.cgi?id=105550
1551 Reviewed by Alexey Proskuryakov.
1553 suspend/resumePendingRequests were important in a single-process, WebKit1 API world to help prevent
1554 client callbacks from occurring during layout/painting.
1556 In a WebKit2 + NetworkProcess world, they aren't important.
1558 Remove the Web->Network process messages:
1559 * NetworkProcess/NetworkConnectionToWebProcess.cpp:
1560 * NetworkProcess/NetworkConnectionToWebProcess.h:
1561 * NetworkProcess/NetworkConnectionToWebProcess.messages.in:
1562 * NetworkProcess/NetworkResourceLoadScheduler.cpp:
1563 * NetworkProcess/NetworkResourceLoadScheduler.h:
1565 For now, still keep the per-WebProcess count to help keep servePendingRequest working as WebCore intends:
1566 * WebProcess/Network/WebResourceLoadScheduler.cpp:
1567 (WebKit::WebResourceLoadScheduler::servePendingRequests):
1568 (WebKit::WebResourceLoadScheduler::suspendPendingRequests):
1569 (WebKit::WebResourceLoadScheduler::resumePendingRequests):
1571 2012-12-20 Carlos Garcia Campos <cgarcia@igalia.com>
1573 [GTK] Add API to set a TLS errors policy to WebKit2 GTK+ API
1574 https://bugs.webkit.org/show_bug.cgi?id=104482
1576 Reviewed by Martin Robinson.
1578 Add an emum for TLS errors policy with values IGNORE and FAIL and
1579 API to WebKitWebContext to set/get the policy.
1581 * Shared/WebProcessCreationParameters.cpp:
1582 (WebKit::WebProcessCreationParameters::encode): Encode ignoreTLSErrors.
1583 (WebKit::WebProcessCreationParameters::decode): Decode ignoreTLSErrors.
1584 * Shared/WebProcessCreationParameters.h:
1585 (WebProcessCreationParameters): Add ignoreTLSErrors when building
1586 with soup network backend.
1587 * Shared/soup/PlatformCertificateInfo.cpp:
1588 (WebKit::PlatformCertificateInfo::PlatformCertificateInfo): Add a
1589 constructor that receives a ResourceError.
1590 * Shared/soup/PlatformCertificateInfo.h:
1591 * Shared/soup/WebCoreArgumentCodersSoup.cpp:
1592 (CoreIPC::::encodePlatformData): Encode the
1593 PlatformCertificateInfo as part for the ResourceError.
1594 (CoreIPC::::decodePlatformData): Decode the
1595 PlatformCertificateInfo and set certificate and TLS errors in the
1597 * UIProcess/API/gtk/WebKitLoaderClient.cpp:
1598 (didFailProvisionalLoadWithErrorForFrame): Call
1599 webkitWebViewLoadFailedWithTLSErrors() if the load failed due to
1601 * UIProcess/API/gtk/WebKitWebContext.cpp:
1602 (_WebKitWebContextPrivate): Add tlsErrorsPolicy member.
1603 (createDefaultWebContext): Initiales tlsErrorsPolicy.
1604 (webkit_web_context_set_tls_errors_policy): Set the TLS errors
1605 policy notify WebContext to ignore TLS errors or not.
1606 (webkit_web_context_get_tls_errors_policy): Return the current TLS
1608 * UIProcess/API/gtk/WebKitWebContext.h:
1609 * UIProcess/API/gtk/WebKitWebView.cpp:
1610 (webkitWebViewLoadFailedWithTLSErrors): Finish the load with an
1611 error if the TLS errors policy is FAIL.
1612 * UIProcess/API/gtk/WebKitWebViewPrivate.h:
1613 * UIProcess/API/gtk/docs/webkit2gtk-sections.txt: Add new symbols.
1614 * UIProcess/API/gtk/tests/TestSSL.cpp:
1615 (testTLSErrorsPolicy):
1617 * UIProcess/WebContext.cpp:
1618 (WebKit::WebContext::WebContext): Initialize m_ignoreTLSErrors.
1619 * UIProcess/WebContext.h:
1620 (WebContext): Add m_ignoreTLSErrors member.
1621 (WebKit::WebContext::ignoreTLSErrors): Return m_ignoreTLSErrors.
1622 * UIProcess/efl/WebContextEfl.cpp:
1623 (WebKit::WebContext::platformInitializeWebProcess): Set
1624 ignoreTLSErrors parameter.
1625 (WebKit::WebContext::setIgnoreTLSErrors): Send SetIgnoreTLSErrors
1626 message to the web process.
1627 * UIProcess/gtk/WebContextGtk.cpp:
1628 (WebKit::WebContext::platformInitializeWebProcess): Set
1629 ignoreTLSErrors parameter.
1630 (WebKit::WebContext::setIgnoreTLSErrors): Send SetIgnoreTLSErrors
1631 message to the web process.
1633 * WebProcess/WebProcess.h:
1634 * WebProcess/WebProcess.messages.in:
1635 * WebProcess/efl/WebProcessMainEfl.cpp:
1636 (WebKit::WebProcessMainEfl): Remove the call to
1637 ResourceHandle::setIgnoreSSLErrors().
1638 * WebProcess/gtk/WebProcessMainGtk.cpp:
1639 (WebKit::WebProcessMainGtk): Remove the call to
1640 ResourceHandle::setIgnoreSSLErrors().
1641 * WebProcess/soup/WebProcessSoup.cpp:
1642 (WebKit::WebProcess::platformInitializeWebProcess):
1643 (WebKit::WebProcess::setIgnoreTLSErrors): Call
1644 ResourceHandle::setIgnoreSSLErrors().
1647 2012-12-20 Dominik Röttsches <dominik.rottsches@intel.com>
1649 [EFL] MiniBrowser does not play Infinite Gangnam Style
1650 https://bugs.webkit.org/show_bug.cgi?id=103531
1652 Reviewed by Kenneth Rohde Christiansen.
1654 WebAudio preference now defaults to switched on.
1656 * UIProcess/API/efl/EwkViewImpl.cpp:
1657 (EwkViewImpl::EwkViewImpl):
1659 2012-12-20 Huang Dongsung <luxtella@company100.net>
1661 Remove GraphicsLayer::setGraphicsLayerFactory().
1662 https://bugs.webkit.org/show_bug.cgi?id=105503
1664 Reviewed by Kenneth Rohde Christiansen.
1666 We don't need GraphicsLayer::setGraphicsLayerFactory() anymore. After r130302,
1667 we have used a graphics layer factory explicitly.
1669 * WebProcess/WebPage/CoordinatedGraphics/CoordinatedGraphicsLayer.cpp:
1670 * WebProcess/WebPage/CoordinatedGraphics/CoordinatedGraphicsLayer.h:
1671 * WebProcess/efl/WebProcessMainEfl.cpp:
1672 (WebKit::WebProcessMainEfl):
1673 * WebProcess/qt/WebProcessMainQt.cpp:
1674 (WebKit::WebProcessMainQt):
1676 2012-12-20 Dominik Röttsches <dominik.rottsches@intel.com>
1678 [WK2] WebAudio WKTR support
1679 https://bugs.webkit.org/show_bug.cgi?id=95084
1681 Reviewed by Kenneth Rohde Christiansen.
1683 Implementing audio data dump support for WebKitTestRunner,
1684 by adding the API to the IDL, enabling IPC for transferring
1685 the audio data as bytebuffer and dumping it according
1686 to run-webkit-tests script's expectations.
1688 I am adding a testrunner specific bundle method to extract data
1689 from a Uint8Array into a bytebuffer. This API is used by
1690 WebKitTestRunner's TestRunner to extract the data into a local
1691 variable, then sending it over IPC.
1693 * DerivedSources.pri: Fixing Qt build by adding JSUint8Array.h header to list of forwarding headers.
1694 * Target.pri: Adding missing WKData.* files. Qt build fix.
1695 * WebProcess/InjectedBundle/API/c/WKBundle.cpp:
1696 (WKBundleCreateWKDataFromUint8Array): Added.
1697 * WebProcess/InjectedBundle/API/c/WKBundlePrivate.h: Adding WKBundleCreateWKDataFromUint8Array.
1698 * WebProcess/InjectedBundle/InjectedBundle.cpp: Convert Uint8Array to WebData.
1699 (WebKit::InjectedBundle::createWebDataFromUint8Array):
1701 * WebProcess/InjectedBundle/InjectedBundle.h:
1705 2012-12-19 Kiran Muppala <cmuppala@apple.com>
1707 Adopt new assertion SPI for process suppression on Mac
1708 https://bugs.webkit.org/show_bug.cgi?id=105378
1710 Reviewed by Mark Rowe.
1712 Process suppression for WebKit2 child processes is currently enabled or disabled using AutomaticTermination.
1713 This should be replaced with a new assertion SPI specific to process suppression.
1715 * Shared/ChildProcess.cpp:
1716 (WebKit::ChildProcess::ChildProcess): Remove unused member variable m_applicationIsOccluded.
1717 * Shared/ChildProcess.h:
1718 (WebKit::ChildProcess::applicationIsOccluded): Infer occlusion state from m_processVisibleAssertion.
1719 * Shared/mac/ChildProcessMac.mm:
1720 (WebKit::ChildProcess::setApplicationIsOccluded): Use applicationIsOccluded() accessor to check if the
1721 occlusion state has changed and take or release a process visible assertion accordingly.
1722 (WebKit::ChildProcess::platformInitialize): Remove call to initializeTimerCoalescingPolicy(), since taking
1723 a process visible assertion also sets the timer coalescing policy appropriately. Set the occlusion
1724 state to false on initialization.
1726 2012-12-19 Alexey Proskuryakov <ap@apple.com>
1728 <rdar://problem/12890242> [WK2 NetworkProcess] Client doesn't receive SSL certificates
1729 https://bugs.webkit.org/show_bug.cgi?id=105467
1731 Reviewed by Brady Eidson.
1733 * NetworkProcess/NetworkResourceLoader.cpp:
1734 (WebKit::NetworkResourceLoader::didReceiveResponse):
1735 * Shared/mac/PlatformCertificateInfo.mm:
1736 (WebKit::PlatformCertificateInfo::PlatformCertificateInfo):
1737 * WebProcess/Network/WebResourceLoader.cpp:
1738 (WebKit::WebResourceLoader::didReceiveResponseWithCertificateInfo):
1739 * WebProcess/Network/WebResourceLoader.h:
1740 * WebProcess/Network/WebResourceLoader.messages.in:
1741 Pass certificate chain over IPC, so that we could ultimately send it to client
1742 via WebPageProxy::DidCommitLoadForFrame message.
1744 * WebProcess/WebCoreSupport/mac/WebSystemInterface.mm: (InitWebCoreSystemInterface):
1745 Initialize a WKSI function we've been missing.
1747 2012-12-19 Jon Lee <jonlee@apple.com>
1749 Add a function to set the origin hash table
1750 https://bugs.webkit.org/show_bug.cgi?id=105447
1751 <rdar://problem/12910985>
1753 Reviewed by Brian Weinstein.
1755 Add a new API called WKContextSetPlugInAutoStartOriginHashes. It assigns the table of hashes,
1756 keyed by main frame origin, to the WebContext. That, in turn, notifies all existing web
1757 processes, so that each web process can update its copy of the auto-start hashes.
1759 * UIProcess/API/C/WKContext.cpp:
1760 (WKContextSetPlugInAutoStartOriginHashes): To clear the table, an empty dictionary must be
1762 * UIProcess/API/C/WKContext.h:
1764 * UIProcess/WebContext.cpp:
1765 (WebKit::WebContext::setPlugInAutoStartOriginHashes): Forward to PlugInAutoStartProvider.
1766 * UIProcess/WebContext.h:
1768 * UIProcess/Plugins/PlugInAutoStartProvider.cpp:
1769 (WebKit::PlugInAutoStartProvider::setAutoStartOriginsTable): Clear the map and set of hashes,
1770 and convert the data from the provided dictionary. Also add it to a temporary vector, which will
1771 be used to pass along to all of the active web processes.
1772 * UIProcess/Plugins/PlugInAutoStartProvider.h:
1774 * WebProcess/WebProcess.messages.in: Add plugInAutoStartOriginsChanged. Takes in a vector of
1775 the new set of hashes.
1776 * WebProcess/WebProcess.cpp:
1777 (WebKit::WebProcess::plugInAutoStartOriginsChanged): Clear the existing set, and copy the new
1779 * WebProcess/WebProcess.h:
1781 2012-12-18 Jon Lee <jonlee@apple.com>
1783 Notify context client of change to table, and allow client to get a copy of it
1784 https://bugs.webkit.org/show_bug.cgi?id=105364
1785 <rdar://problem/12906267>
1787 Reviewed by Brady Eidson.
1789 Add a callback to notify the context client that the origin hashes have changed.
1790 The client may choose to get a copy of that table and save it to disk.
1792 * UIProcess/API/C/WKContext.cpp:
1793 (WKContextCopyPlugInAutoStartOriginHashes): Added to the context client.
1794 * UIProcess/API/C/WKContext.h:
1795 * UIProcess/WebContext.cpp:
1796 (WebKit::WebContext::plugInAutoStartOriginHashes): Return a copy of the origin hash
1798 * UIProcess/WebContext.h:
1800 * UIProcess/Plugins/PlugInAutoStartProvider.cpp:
1801 (WebKit::PlugInAutoStartProvider::addAutoStartOrigin): When the origin is added to
1802 the table, notify the context client.
1803 (WebKit::PlugInAutoStartProvider::autoStartOriginsTableCopy): Create a copy of the
1805 * UIProcess/Plugins/PlugInAutoStartProvider.h:
1807 * UIProcess/WebContextClient.cpp:
1808 (WebKit::WebContextClient::plugInAutoStartOriginHashesChanged): Call the client.
1809 * UIProcess/WebContextClient.h:
1811 2012-12-19 Alexis Menard <alexis@webkit.org>
1813 Implement CSS parsing for CSS transitions unprefixed.
1814 https://bugs.webkit.org/show_bug.cgi?id=104804
1816 Reviewed by Dean Jackson.
1818 Add a new flag ENABLE_CSS_TRANSFORMS_ANIMATIONS_TRANSITIONS_UNPREFIXED
1819 to cover the work of unprefixing Transforms, Animations and
1820 Transitions. It will let the possibility of each ports to turn it off
1821 in their release branches until we're confident that these CSS
1822 properties are ready to be unprefixed.
1824 * Configurations/FeatureDefines.xcconfig:
1826 2012-12-19 Kondapally Kalyan <kalyan.kondapally@intel.com>
1828 [EFL][WK2][AC] Avoid creating an empty surface.
1829 https://bugs.webkit.org/show_bug.cgi?id=105410
1831 Reviewed by Kenneth Rohde Christiansen.
1833 Ensure that the view has valid size before creating the surface.
1835 * UIProcess/API/efl/EvasGLSurface.h:
1836 (WebKit::EvasGLSurface::create):
1837 * UIProcess/API/efl/EwkViewImpl.cpp:
1838 (EwkViewImpl::displayTimerFired):
1840 2012-12-19 Kenneth Rohde Christiansen <kenneth@webkit.org>
1842 [EFL][Qt][WK2] Going back to 47-amazing-css3-animation-demos shows nothing or wrong position
1843 https://bugs.webkit.org/show_bug.cgi?id=104414
1845 Reviewed by Simon Hausmann.
1847 When contents size changes, make sure to apply any pending position
1850 * UIProcess/PageViewportController.cpp:
1851 (WebKit::PageViewportController::didChangeContentsSize):
1853 2012-12-19 Alberto Garcia <agarcia@igalia.com>
1855 [GTK] [WK2] Trailing semicolon in an #include line
1856 https://bugs.webkit.org/show_bug.cgi?id=105418
1858 Reviewed by Xan Lopez.
1860 * UIProcess/gtk/WebContextGtk.cpp:
1861 Remove trailing semicolon in #include line.
1863 2012-12-19 Kenneth Rohde Christiansen <kenneth@webkit.org>
1865 [EFL][WK2] Move deviceScaleFactor to our view as it's view related
1866 https://bugs.webkit.org/show_bug.cgi?id=105412
1868 Reviewed by Laszlo Gombos.
1870 * UIProcess/API/efl/EwkViewImpl.cpp:
1871 (EwkViewImpl::setDeviceScaleFactor):
1872 (EwkViewImpl::transformFromScene):
1873 * UIProcess/API/efl/EwkViewImpl.h:
1875 * UIProcess/API/efl/ewk_view.cpp:
1876 (ewk_view_device_pixel_ratio_set):
1878 2012-12-19 Zeno Albisser <zeno@webkit.org>
1880 [Qt] Missing vtable for LoadStartedCatcher.
1881 https://bugs.webkit.org/show_bug.cgi?id=105313
1883 Properly splitting class declarations and function
1884 definitions into headers/cpp-files.
1885 This makes including util.moc redundant
1886 and avoids the well known vtable issues with QObject classes.
1888 Reviewed by Simon Hausmann.
1890 * UIProcess/API/qt/tests/util.cpp:
1892 (LoadSpy::onLoadingChanged):
1893 * UIProcess/API/qt/tests/util.h:
1896 2012-12-19 KyungTae Kim <ktf.kim@samsung.com>
1898 Unused parameters on WebContext.cpp
1899 https://bugs.webkit.org/show_bug.cgi?id=105395
1901 Reviewed by Kentaro Hara.
1903 Because the parameters 'certficate', 'host' are not used if !ENABLE(NETWORK_PROCESS),
1904 use UNUSED_PARAM macro to fix build warning -Wunused-parameter.
1906 * UIProcess/WebContext.cpp:
1907 (WebKit::WebContext::allowSpecificHTTPSCertificateForHost):
1909 2012-12-18 Alexey Proskuryakov <ap@apple.com>
1911 Remove unnecessary functions from CookiesStrategy
1912 https://bugs.webkit.org/show_bug.cgi?id=105369
1914 Reviewed by Brady Eidson.
1916 * NetworkProcess/NetworkConnectionToWebProcess.cpp:
1917 * NetworkProcess/NetworkConnectionToWebProcess.h:
1918 * NetworkProcess/NetworkConnectionToWebProcess.messages.in:
1919 * WebProcess/WebCoreSupport/WebPlatformStrategies.cpp:
1920 * WebProcess/WebCoreSupport/WebPlatformStrategies.h:
1922 * WebProcess/Cookies/WebCookieManager.cpp: Call PlatformCookieJar directly.
1923 Cookie messages to NetworkProcess should not be sent through WebProcess. In a future
1924 patch, I'll make WebCookieManagerProxy message NetworkProcess instead.
1926 2012-12-18 Jon Lee <jonlee@apple.com>
1928 [WK2] Create a context client
1929 https://bugs.webkit.org/show_bug.cgi?id=105316
1930 <rdar://problem/12901762>
1932 Reviewed by Brady Eidson.
1934 Web contexts already have clients related to downloads or history.
1935 Miscellaneous callbacks can be grouped into a generic client for the
1938 * UIProcess/API/C/WKContext.cpp:
1939 (WKContextSetClient): Set the client for the context.
1940 * UIProcess/API/C/WKContext.h: Define a new, empty WKContextClient.
1942 * UIProcess/WebContext.cpp:
1943 (WebKit::WebContext::initializeClient):
1944 * UIProcess/WebContext.h: Add a variable for the new client. Move the
1945 download client so that all the clients are grouped together.
1946 (WebKit::WebContext::client): Returns the context client.
1947 * UIProcess/WebContextClient.cpp: Added. Currently empty, but will be
1948 filled out in a pending patch.
1949 * UIProcess/WebContextClient.h: Added.
1951 Add WebContextClient.{h,cpp}.
1953 * GNUmakefile.list.am:
1955 * WebKit2.xcodeproj/project.pbxproj:
1956 * win/WebKit2.vcproj:
1958 2012-12-18 Ivan Krstić <ike@apple.com>
1960 <rdar://problem/12720539> per-pid private temporary directories for sandboxed webkit2 plugins
1962 Reviewed by Sam Weinig, Alexey Proskuryakov, Anders Carlsson.
1964 Previously we assigned each PluginProcess a private temporary and
1965 cache directory based on the bundle name of the plugin that was
1966 running. This sometimes led to overly-long pathnames (sockets on OS X
1967 can only be 103 characters long), and didn't provide isolation between
1968 multiple running instances of the same plugin on behalf of different
1969 processes. We now assign each PluginProcess its own private
1970 temporary and cache directory regardless of which plugin it's running,
1971 and make an attempt to clean these up when the process terminates.
1973 We also pass the temporary directory into the sandbox
1974 profile as a parameter, in case the plugin profile needs to apply
1975 additional rules beyond the default read/write policy.
1977 * PluginProcess/mac/PluginProcessMainMac.mm:
1978 (WebKit::PluginProcessMain):
1979 * WebProcess/Plugins/Netscape/mac/NetscapeSandboxFunctions.mm:
1982 2012-12-18 Beth Dakin <bdakin@apple.com>
1984 https://bugs.webkit.org/show_bug.cgi?id=102579
1985 [mac] Enable scaled cursors
1987 Reviewed by Dean Jackson.
1989 * Configurations/FeatureDefines.xcconfig:
1991 2012-12-18 Joseph Pecoraro <pecoraro@apple.com>
1993 [Mac] Add Build Phase to Check Headers for Inappropriate Macros (Platform.h macros)
1994 https://bugs.webkit.org/show_bug.cgi?id=104279
1996 Reviewed by David Kilzer.
1998 Add a build phase to check the public WebKit2 headers for
1999 inappropriate macros. Also set the executable as an input
2000 path on the other check-* build phases.
2002 * WebKit2.xcodeproj/project.pbxproj:
2004 2012-12-18 Jer Noble <jer.noble@apple.com>
2006 REGRESSION: Using the Exit Full Screen button in the menu bar to exit HTML5 / media full screen breaks Safari windows
2007 https://bugs.webkit.org/show_bug.cgi?id=104610
2009 Reviewed by Anders Carlsson.
2011 When a user clicks on the menu-bar exit fullscreen button, that skips notifying the document that
2012 the window is exiting fullscreen and tearing down the placeholder. Manually call that part of the code
2013 when we detect that it has been skipped.
2015 * UIProcess/mac/WKFullScreenWindowController.mm:
2016 (-[WKFullScreenWindowController _startExitFullScreenAnimationWithDuration:]):
2018 2012-12-18 Brady Eidson <beidson@apple.com>
2020 WebProcesses often crash if they access the network after a NetworkProcess crash.
2021 <rdar://problem/12865789> and https://bugs.webkit.org/show_bug.cgi?id=105338
2023 Reviewed by Alexey Proskuryakov.
2025 After a NetworkProcess crash we should try to re-establish a connection to a new NetworkProcess
2028 If that attempt fails, then the WebProcess should "cleanly" crash.
2030 * WebProcess/WebProcess.cpp:
2031 (WebKit::WebProcess::networkConnection):
2033 2012-12-17 Sam Weinig <sam@webkit.org>
2035 Try to fix the Mac build.
2037 * NetworkProcess/mac/NetworkProcessMac.mm:
2039 2012-12-17 Halton Huo <halton.huo@intel.com>
2041 [EFL] Add ecore_imf_evas to FindEcore.cmake
2042 https://bugs.webkit.org/show_bug.cgi?id=105159
2044 Reviewed by Laszlo Gombos.
2046 * PlatformEfl.cmake: Add ECORE_IMF_EVAS_LIBRARIES to WebProcess_LIBRARIES
2048 2012-12-17 Huang Dongsung <luxtella@company100.net>
2050 Coordinated Graphics: Refactor TiledBackingStore code in CoordinatedGraphicsLayer.
2051 https://bugs.webkit.org/show_bug.cgi?id=103959
2053 Reviewed by Kenneth Rohde Christiansen.
2055 Currently, CoordinatedGraphicsLayer has complex code related to TiledBackingStore.
2057 1. CoordinatedGraphicsLayer hacks TiledBackingStore to prevent
2058 TiledBackingStore from asynchronously sending UpdateTile message to UI
2060 2. CreateTile and RemoveTile message can be sent to UI Process at any time.
2062 This patch makes CoordinatedGraphicsLayer use TiledBackingStore more explicitly.
2063 It means only during flushing layer states, CoordinatedGraphicsLayer
2064 calls methods of TiledBackingStore, which indirectly call createTile(),
2065 updateTile() and removeTile().
2067 * WebProcess/WebPage/CoordinatedGraphics/CoordinatedGraphicsLayer.cpp:
2068 (WebCore::CoordinatedGraphicsLayer::CoordinatedGraphicsLayer):
2069 (WebCore::CoordinatedGraphicsLayer::setVisibleContentRectTrajectoryVector):
2070 (WebCore::CoordinatedGraphicsLayer::setContentsScale):
2071 (WebCore::CoordinatedGraphicsLayer::adjustContentsScale):
2072 (WebCore::CoordinatedGraphicsLayer::tiledBackingStoreHasPendingTileCreation):
2073 (WebCore::CoordinatedGraphicsLayer::beginContentUpdate):
2074 (WebCore::CoordinatedGraphicsLayer::createTile):
2075 (WebCore::CoordinatedGraphicsLayer::updateTile):
2076 (WebCore::CoordinatedGraphicsLayer::removeTile):
2077 (WebCore::CoordinatedGraphicsLayer::updateContentBuffers):
2078 (WebCore::CoordinatedGraphicsLayer::purgeBackingStores):
2079 (WebCore::CoordinatedGraphicsLayer::setNeedsVisibleRectAdjustment):
2080 (WebCore::CoordinatedGraphicsLayer::computeTransformedVisibleRect):
2081 * WebProcess/WebPage/CoordinatedGraphics/CoordinatedGraphicsLayer.h:
2082 (CoordinatedGraphicsLayerClient):
2083 (CoordinatedGraphicsLayer):
2084 * WebProcess/WebPage/CoordinatedGraphics/CoordinatedLayerTreeHost.cpp:
2085 (WebKit::CoordinatedLayerTreeHost::notifyFlushRequired):
2086 (WebKit::CoordinatedLayerTreeHost::createGraphicsLayer):
2087 (WebKit::CoordinatedLayerTreeHost::setVisibleContentsRect):
2088 * WebProcess/WebPage/CoordinatedGraphics/CoordinatedLayerTreeHost.h:
2090 2012-12-17 Brady Eidson <beidson@apple.com>
2092 Can't visit sites with untrusted certs with the NetworkProcess.
2093 <rdar://problem/12885641> and https://bugs.webkit.org/show_bug.cgi?id=105235
2095 Reviewed by Sam Weinig.
2097 For Mac the missing functionality is being able to tell the network layer in the
2098 NetworkProcess to temporarily accept a certificate chain for the given host.
2100 This patch adds some SPI supporting the way this works on Mac.
2102 Add a message and Mac implementation for "allowSpecificHTTPSCertificateForHost":
2103 * NetworkProcess/NetworkProcess.h:
2104 * NetworkProcess/NetworkProcess.messages.in:
2105 * NetworkProcess/mac/NetworkProcessMac.mm:
2106 (WebKit::NetworkProcess::allowSpecificHTTPSCertificateForHost):
2108 Add SPI for the embedding app"
2109 * UIProcess/API/C/WKContext.cpp:
2110 (WKContextAllowSpecificHTTPSCertificateForHost):
2111 * UIProcess/API/C/WKContextPrivate.h:
2113 * UIProcess/WebContext.cpp:
2114 (WebKit::WebContext::allowSpecificHTTPSCertificateForHost):
2115 * UIProcess/WebContext.h:
2117 2012-12-17 Huang Dongsung <luxtella@company100.net>
2119 [CoordinatedGraphics] Assertion hit in WebKit::LayerTreeRenderer::setLayerState()
2120 https://bugs.webkit.org/show_bug.cgi?id=104518
2122 Reviewed by Noam Rosenthal.
2124 CoordinatedGraphicsLayer::flushCompositingStateForThisLayerOnly() must perform
2125 only during flushing pending layer changes in CoordinatedLayerTreeHost.
2126 RenderLayerCompositor can call GraphicsLayer::flushCompositingState() regardless
2127 of CoordinatedLayerTreeHost and it breaks our assumption. It means that
2128 CoordinatedGraphicsLayer can send messages although m_waitingForUIProcess in
2129 CoordinatedLayerTreeHost is true.
2131 Assertion hits because of the same reason. If RenderLayerCompositor calls
2132 flushCompositingState() before the first CoordinatedLayerTreeHost::flushPendingLayerChanges(),
2133 SetCompositingLayerState message can be prior to SetRootCompositingLayer message.
2135 We fix this by ensuring that we perform the layer flush only in the code
2136 path originating from CoordinatedLayerTreeHost.
2138 * WebProcess/WebPage/CoordinatedGraphics/CoordinatedGraphicsLayer.cpp:
2139 (WebCore::CoordinatedGraphicsLayer::flushCompositingState):
2140 (WebCore::CoordinatedGraphicsLayer::flushCompositingStateForThisLayerOnly):
2141 * WebProcess/WebPage/CoordinatedGraphics/CoordinatedGraphicsLayer.h:
2142 (CoordinatedGraphicsLayerClient):
2143 * WebProcess/WebPage/CoordinatedGraphics/CoordinatedLayerTreeHost.cpp:
2144 (WebKit::CoordinatedLayerTreeHost::CoordinatedLayerTreeHost):
2145 (WebKit::CoordinatedLayerTreeHost::flushPendingLayerChanges):
2146 * WebProcess/WebPage/CoordinatedGraphics/CoordinatedLayerTreeHost.h:
2148 2012-12-17 Alexey Proskuryakov <ap@apple.com>
2150 <rdar://problem/12895354> NetworkProcess should not exit after downloading
2151 https://bugs.webkit.org/show_bug.cgi?id=105209
2153 Reviewed by Anders Carlsson.
2155 * NetworkProcess/NetworkProcess.cpp:
2156 (WebKit::NetworkProcess::shouldTerminate): This process should never voluntarily
2157 terminate, because it keeps session auth and cookies.
2159 2012-12-17 Thiago Marcos P. Santos <thiago.santos@intel.com>
2161 [EFL] Unit tests process hanging on WK2 Release bots
2162 https://bugs.webkit.org/show_bug.cgi?id=105021
2164 Reviewed by Kenneth Rohde Christiansen.
2166 Follow-up of r137605, which made it more difficult to reproduce
2167 the race condition but doesn't entirely solve the problem. Now
2168 we are handling only points in the middle of the fork()/exec().
2170 * UIProcess/Launcher/efl/ProcessLauncherEfl.cpp:
2171 (WebKit::ProcessLauncher::launchProcess):
2173 2012-12-17 Kenneth Rohde Christiansen <kenneth@webkit.org>
2175 [EFL][WK2] window_create doesn't receive the url
2176 https://bugs.webkit.org/show_bug.cgi?id=105184
2178 Reviewed by Alexis Menard.
2180 Pass the url to the window_create method.
2182 * UIProcess/API/efl/EwkViewImpl.cpp:
2183 (EwkViewImpl::createNewPage):
2184 * UIProcess/API/efl/EwkViewImpl.h:
2186 * UIProcess/API/efl/ewk_view.h:
2187 * UIProcess/API/efl/tests/test_ewk2_window_features.cpp:
2188 (createDefaultWindow):
2190 * UIProcess/efl/PageUIClientEfl.cpp:
2191 (WebKit::PageUIClientEfl::createNewPage):
2193 2012-12-17 Mikhail Pozdnyakov <mikhail.pozdnyakov@intel.com>
2195 [WK2] TiledBackingStore: css3/device-adapt/viewport-width-not-affecting-next-page.html is flaky
2196 https://bugs.webkit.org/show_bug.cgi?id=105131
2198 Reviewed by Kenneth Rohde Christiansen.
2200 The problem was lead by truncation of the scaled result for 'contentFixedSize'.
2201 Fixed now with using FloatSize::scale() instead of IntSize::scale().
2203 * WebProcess/WebPage/WebPage.cpp:
2204 (WebKit::WebPage::sendViewportAttributesChanged):
2206 2012-12-17 Oswald Buddenhagen <oswald.buddenhagen@digia.com>
2208 [Qt] remove some unnecessary CONFIG additions
2210 Reviewed by Simon Hausmann.
2212 qt is already added by spec_pre.prf, warn_on and depend_includepath by
2215 * UIProcess/API/qt/tests/qmltests/DesktopBehavior.pro:
2216 * UIProcess/API/qt/tests/qmltests/WebView.pro:
2218 2012-12-17 Oswald Buddenhagen <oswald.buddenhagen@digia.com>
2220 [Qt] rely on automatic output directory setup
2222 Reviewed by Simon Hausmann.
2224 Now being a proper qt module (by virtue of having load(qt_build_config)
2225 in .qmake.conf), webkit gets the path setup goodies for free.
2227 This also fixes Makefile.api.Debug/Release trying to generate qrc_WebKit.cpp
2228 at the same time, instead of the debug and release version ending up in different
2229 directories as they should.
2231 * UIProcess/API/qt/tests/qmltests/DesktopBehavior.pro:
2232 * UIProcess/API/qt/tests/qmltests/WebView.pro:
2234 2012-12-17 Thiago Marcos P. Santos <thiago.santos@intel.com>
2236 [EFL] Unit tests process hanging on WK2 Release bots
2237 https://bugs.webkit.org/show_bug.cgi?id=105021
2239 Reviewed by Kenneth Rohde Christiansen.
2241 Do not allocate memory in the middle of a fork()/exec().
2242 EFL uses global FastMalloc new operator and when we fork(), the
2243 process is in a very delicate state. We were being lucky most of the
2244 time, but sometimes FastMalloc enters in a busy wait and hangs
2245 because it's data structures cannot be trusted after the fork().
2247 This explains why sometimes we see UIProcess hanging on the bots:
2248 they are in fact UIProcess trying to exec() into a WebProcess but
2249 hanged just after the fork(). CMake test runner kills the original
2250 UIProcess due to timeout and the buggy one stays forever.
2252 * PlatformEfl.cmake:
2253 Set the timeout back to the original value.
2255 * UIProcess/Launcher/efl/ProcessLauncherEfl.cpp:
2256 (WebKit::ProcessLauncher::launchProcess):
2257 I'm keeping the original behavior, including the call to
2258 system() when wrapping the WebProcess on Debug mode. This
2259 should be changed to exec() in another patch.
2261 2012-12-17 Csaba Osztrogonác <ossy@webkit.org>
2263 Fix the Qt Windows build after r137803
2264 https://bugs.webkit.org/show_bug.cgi?id=105152
2266 Reviewed by Kentaro Hara.
2268 * Shared/CacheModel.h:
2270 2012-12-16 Tim Horton <timothy_horton@apple.com>
2272 PDFPlugin: The "Open in Preview" HUD button should work
2273 https://bugs.webkit.org/show_bug.cgi?id=102448
2274 <rdar://problem/12695729>
2276 Reviewed by Alexey Proskuryakov.
2278 Implement the "Open in Preview" button for PDFPlugin, by moving the implementation from PDFViewController
2279 onto WebPageProxyMac, and reusing it in PDFViewController and PDFPlugin.
2281 * UIProcess/API/mac/PDFViewController.h:
2282 (PDFViewController): Remove unnecessary members in favor of a UUID that identifies our PDF on disk.
2283 * UIProcess/API/mac/PDFViewController.mm:
2284 (WebKit::PDFViewController::openPDFInFinder): Move PDFViewController's implementation of openPDFInFinder
2285 and related functions to WebPageProxyMac. This will allow it to be shared with PDFPlugin.
2286 * UIProcess/WebPageProxy.h:
2287 (WebPageProxy): Add savePDFToFileInTemporaryFolderAndOpenWithNativeApplication,
2288 savePDFToFileInTemporaryFolderAndOpenWithNativeApplicationRaw, and openPDFFromTemporaryFolderWithNativeApplication.
2289 Add m_temporaryPDFFiles, which is used to keep track of the filenames of PDFs that we've saved to disk.
2290 * UIProcess/WebPageProxy.messages.in:
2291 Add SavePDFToFileInTemporaryFolderAndOpenWithNativeApplication and OpenPDFFromTemporaryFolderWithNativeApplication.
2292 * UIProcess/mac/WebPageProxyMac.mm:
2293 (WebKit::temporaryPDFDirectoryPath): Copied from PDFViewController. Construct the path to a
2294 WebKitPDFs temporary directory into which PDFs to be opened with a native application are downloaded.
2295 (WebKit::pathToPDFOnDisk): Copied from PDFViewController. Combine temporaryPDFDirectoryPath
2296 with the suggested filename for the given PDF, creating a new filename if the file already exists.
2297 (WebKit::WebPageProxy::savePDFToTemporaryFolderAndOpenWithNativeApplicationRaw):
2298 (WebKit::WebPageProxy::savePDFToTemporaryFolderAndOpenWithNativeApplication):
2299 Save the given PDF data to a temporary file, given the suggested filename. This inserts the
2300 filename used into m_temporaryPDFFiles, where it can later be retrieved by UUID when asked
2301 to open the PDF again in a native application. Then, open it with NSWorkspace.
2302 (WebKit::WebPageProxy::openPDFFromTemporaryFolderWithNativeApplication):
2303 Open the previously saved PDF file with NSWorkspace, referenced by UUID.
2304 We identify the file by UUID instead of name so that only the UIProcess needs
2305 to keep track of the actual filename, and so that the WebProcess
2306 cannot hand an arbitrary filename back to the UIProcess to open.
2307 * WebProcess/Plugins/PDF/PDFPlugin.h:
2308 (PDFPlugin): Add openWithNativeApplication and storage for the UUID that identifies our PDF on disk.
2309 * WebProcess/Plugins/PDF/PDFPlugin.mm:
2310 (-[WKPDFLayerControllerDelegate openWithPreview]): Forward openWithPreview to PDFPlugin's openWithNativeApplication.
2311 (WebKit::PDFPlugin::saveToPDF):
2312 Hand raw data to WebPage and have it send the message to WebPageProxy instead of using IPC types in PDFPlugin.
2313 (WebKit::PDFPlugin::openWithNativeApplication):
2314 Ask WebPage to save the current PDF to a temporary directory and open it with a native application.
2315 If we've already downloaded the PDF (and have a non-null m_temporaryPDFUUID),
2316 we can just open the existing file.
2317 * WebProcess/WebPage/WebPage.cpp:
2318 (WebKit::WebPage::savePDFToFileInDownloadsFolder): Hand the PDF data to WebPageProxy to save.
2319 (WebKit::WebPage::savePDFToTemporaryFolderAndOpenWithNativeApplication): Hand the PDF data to WebPageProxy to save and open.
2320 * WebProcess/WebPage/WebPage.h:
2321 (WebPage): Add savePDFToFileInDownloadsFolder and savePDFToTemporaryFolderAndOpenWithNativeApplication.
2323 2012-12-16 Seokju Kwon <seokju.kwon@gmail.com>
2325 [WK2] Remote Web Inspector requires the inspector
2326 https://bugs.webkit.org/show_bug.cgi?id=105088
2328 Reviewed by Sam Weinig.
2330 Inspector server should not be started without inspector.
2334 2012-12-16 Seokju Kwon <seokju.kwon@gmail.com>
2336 Fix unused parameter compile warnings
2337 https://bugs.webkit.org/show_bug.cgi?id=105089
2339 Reviewed by Kentaro Hara.
2341 Use UNUSED_PARAM macro to fix build warning -Wunused-parameter.
2343 * UIProcess/API/efl/ewk_view.cpp:
2344 (ewk_view_inspector_show):
2345 (ewk_view_inspector_close):
2347 2012-12-16 Ryuan Choi <ryuan.choi@samsung.com>
2349 [EFL][WK2] Header files of ewk_context_menu should be installed
2350 https://bugs.webkit.org/show_bug.cgi?id=105069
2352 Reviewed by Gyuyoung Kim.
2354 * PlatformEfl.cmake:
2355 Modified to install ewk_context_menu.h and ewk_context_menu_item.h which
2356 are included in EWebKit2.h
2358 2012-12-16 Alexey Proskuryakov <ap@apple.com>
2360 <rdar://problem/12886898> Bundle uploads don't work
2361 https://bugs.webkit.org/show_bug.cgi?id=105149
2363 Reviewed by Sam Weinig.
2365 * NetworkProcess/NetworkResourceLoader.cpp:
2366 (WebKit::NetworkResourceLoader::didReceiveResponse):
2367 (WebKit::NetworkResourceLoader::didFail):
2368 Clean up generated files when they are no longer needed. This has to be done before FormData
2369 destruction. This duplicates same work done in WebProcess, but duplicaiton is safe, and may
2370 be helpful if one of the sides prematurely exits.
2372 2012-12-16 Jon Lee <jonlee@apple.com>
2374 Allow built-in PDF plugin and plugin documents to auto-start
2375 https://bugs.webkit.org/show_bug.cgi?id=105000
2376 <rdar://problem/12633351>
2378 Reviewed by Sam Weinig.
2380 Overrides PluginViewBase::shouldAlwaysAutoStart().
2381 * WebProcess/Plugins/PluginView.cpp:
2382 (WebKit::PluginView::shouldAlwaysAutoStart): If there's no plug-in, return the default,
2383 otherwise return the plug-in's behavior.
2384 * WebProcess/Plugins/PluginView.h:
2386 * WebProcess/Plugins/Plugin.h:
2387 (WebKit::Plugin::shouldAlwaysAutoStart): Added. By default, return false.
2388 * WebProcess/Plugins/PDF/SimplePDFPlugin.h: Built-in PDF plug-ins should auto-start.
2390 2012-12-16 Huang Dongsung <luxtella@company100.net>
2392 Coordinated Graphics: Small refactor of CoordinatedLayerTreeHost and CoordinatedGraphicsLayer.
2393 https://bugs.webkit.org/show_bug.cgi?id=104880
2395 Reviewed by Noam Rosenthal.
2397 This patch changes two points.
2398 1. Remove layerByIDMap() in CoordinatedGraphicsLayer because it is unused.
2399 2. Remove code swapping m_registeredLayers in CoordinatedLayerTreeHost because
2400 setCoordinator(0) does not call detachLayer().
2402 * WebProcess/WebPage/CoordinatedGraphics/CoordinatedGraphicsLayer.cpp:
2403 (WebCore::CoordinatedGraphicsLayer::CoordinatedGraphicsLayer):
2404 (WebCore::CoordinatedGraphicsLayer::~CoordinatedGraphicsLayer):
2405 * WebProcess/WebPage/CoordinatedGraphics/CoordinatedLayerTreeHost.cpp:
2406 (WebKit::CoordinatedLayerTreeHost::~CoordinatedLayerTreeHost):
2408 2012-12-16 Anders Carlsson <andersca@apple.com>
2410 Remove the random crash thread
2411 https://bugs.webkit.org/show_bug.cgi?id=105147
2413 Reviewed by Sam Weinig.
2415 Remove old crashy code.
2417 * WebProcess/WebProcess.cpp:
2418 (WebKit::WebProcess::initialize):
2420 2012-12-16 Anders Carlsson <andersca@apple.com>
2422 Implement authentication for downloads
2423 https://bugs.webkit.org/show_bug.cgi?id=105146
2424 <rdar://problem/12239483>
2426 Reviewed by Sam Weinig.
2428 * NetworkProcess/NetworkProcess.cpp:
2429 (WebKit::NetworkProcess::NetworkProcess):
2430 (WebKit::NetworkProcess::initialize):
2431 (WebKit::NetworkProcess::didReceiveMessage):
2432 (WebKit::NetworkProcess::didReceiveSyncMessage):
2433 (WebKit::NetworkProcess::downloadsAuthenticationManager):
2434 * NetworkProcess/NetworkProcess.h:
2435 * UIProcess/Downloads/DownloadProxy.cpp:
2436 (WebKit::DownloadProxy::didReceiveAuthenticationChallenge):
2437 * WebProcess/Downloads/Download.cpp:
2438 (WebKit::Download::didReceiveAuthenticationChallenge):
2439 * WebProcess/Downloads/DownloadManager.cpp:
2440 (WebKit::DownloadManager::downloadsAuthenticationManager):
2441 * WebProcess/Downloads/DownloadManager.h:
2442 * WebProcess/Downloads/mac/DownloadMac.mm:
2443 * WebProcess/WebProcess.cpp:
2444 (WebKit::WebProcess::downloadsAuthenticationManager):
2445 (WebKit::WebProcess::didReceiveSyncMessage):
2446 * WebProcess/WebProcess.h:
2448 2012-12-16 Huang Dongsung <luxtella@company100.net>
2450 Coordinated Graphics: Small refactor of CoordinatedLayerTreeHost and CoordinatedGraphicsLayer.
2451 https://bugs.webkit.org/show_bug.cgi?id=104880
2453 Reviewed by Noam Rosenthal.
2455 Delete backing stores explicitly in ~CoordinatedLayerTreeHost().
2457 Clarify the lifecycle of backing stores in CoordinatedGraphicsLayer.
2458 Currently, CoordinatedGraphicsLayer::removeTile() checks if m_coordinator
2459 exists, because ~CoordinatedLayerTreeHost() sets m_coordinator in
2460 CoordinatedGraphicsLayer to 0. This patch purges backing stores before setting
2461 m_coordinator to 0. This change makes code more readable.
2463 * WebProcess/WebPage/CoordinatedGraphics/CoordinatedGraphicsLayer.cpp:
2464 (WebCore::CoordinatedGraphicsLayer::~CoordinatedGraphicsLayer):
2465 (WebCore::CoordinatedGraphicsLayer::beginContentUpdate):
2466 (WebCore::CoordinatedGraphicsLayer::createTile):
2467 (WebCore::CoordinatedGraphicsLayer::updateTile):
2468 (WebCore::CoordinatedGraphicsLayer::removeTile):
2469 * WebProcess/WebPage/CoordinatedGraphics/CoordinatedLayerTreeHost.cpp:
2470 (WebKit::CoordinatedLayerTreeHost::~CoordinatedLayerTreeHost):
2472 2012-12-16 Anders Carlsson <andersca@apple.com>
2474 Authentication manager cleanup
2475 https://bugs.webkit.org/show_bug.cgi?id=105144
2477 Reviewed by Sam Weinig.
2479 Some cleanup to make it possible to reuse the authentication manager from the network process.
2481 * UIProcess/Authentication/AuthenticationChallengeProxy.cpp:
2482 (WebKit::AuthenticationChallengeProxy::AuthenticationChallengeProxy):
2483 (WebKit::AuthenticationChallengeProxy::~AuthenticationChallengeProxy):
2484 (WebKit::AuthenticationChallengeProxy::useCredential):
2485 (WebKit::AuthenticationChallengeProxy::cancel):
2486 * UIProcess/Authentication/AuthenticationChallengeProxy.h:
2487 (WebKit::AuthenticationChallengeProxy::create):
2488 (AuthenticationChallengeProxy):
2489 * UIProcess/Downloads/DownloadProxy.cpp:
2490 (WebKit::DownloadProxy::didReceiveAuthenticationChallenge):
2491 * UIProcess/WebPageProxy.cpp:
2492 (WebKit::WebPageProxy::didReceiveAuthenticationChallenge):
2493 * WebProcess/Authentication/AuthenticationManager.cpp:
2494 (WebKit::AuthenticationManager::AuthenticationManager):
2495 (WebKit::AuthenticationManager::setConnection):
2496 (WebKit::AuthenticationManager::didReceiveAuthenticationChallenge):
2497 (WebKit::AuthenticationManager::useCredentialForChallenge):
2498 * WebProcess/Authentication/AuthenticationManager.h:
2499 * WebProcess/Downloads/Download.cpp:
2500 (WebKit::Download::didReceiveAuthenticationChallenge):
2501 * WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
2502 (WebKit::WebFrameLoaderClient::dispatchDidReceiveAuthenticationChallenge):
2503 * WebProcess/WebProcess.cpp:
2504 (WebKit::WebProcess::WebProcess):
2505 (WebKit::WebProcess::initialize):
2506 * WebProcess/WebProcess.h:
2507 (WebKit::WebProcess::authenticationManager):
2510 2012-12-16 Anders Carlsson <andersca@apple.com>
2512 Rudimentary support for main resource downloads
2513 https://bugs.webkit.org/show_bug.cgi?id=105141
2515 Reviewed by Sam Weinig.
2517 For now, instead of converting a main resource load into a download, just cancel it and start
2518 a new separate download.
2520 * NetworkProcess/NetworkProcess.cpp:
2521 (WebKit::NetworkProcess::downloadRequest):
2522 Call through to the download manager.
2524 (WebKit::NetworkProcess::cancelDownload):
2525 Call through to the download manager.
2527 * NetworkProcess/NetworkProcess.messages.in:
2530 * UIProcess/Downloads/DownloadProxy.cpp:
2531 (WebKit::DownloadProxy::cancel):
2532 Send the cancel message to the network process when needed.
2534 * UIProcess/WebContext.cpp:
2535 (WebKit::WebContext::download):
2536 Handle the network process case.
2538 * UIProcess/WebPageProxy.cpp:
2539 (WebKit::WebPageProxy::WebPageProxy):
2540 (WebKit::WebPageProxy::receivedPolicyDecision):
2541 (WebKit::WebPageProxy::decidePolicyForResponse):
2542 Keep track of the current request when calling decidePolicyForResponse.
2544 2012-12-16 Andy Estes <aestes@apple.com>
2546 [WebKit2] CustomProtocolManager should intercept messages of class MessageClassCustomProtocolManager sent to the network process
2547 https://bugs.webkit.org/show_bug.cgi?id=105137
2549 Reviewed by Anders Carlsson.
2551 * NetworkProcess/NetworkProcess.cpp:
2552 (WebKit::NetworkProcess::didReceiveMessage):
2554 2012-12-16 Levi Weintraub <leviw@chromium.org>
2556 Push pixel snapping logic into TransformState
2557 https://bugs.webkit.org/show_bug.cgi?id=101779
2559 Reviewed by Simon Fraser.
2561 Eliminating use of SnapOffsetForTransforms as it's no longer needed.
2563 * WebProcess/FullScreen/WebFullScreenManager.cpp:
2564 (WebKit::screenRectOfContents):
2566 2012-12-16 Anders Carlsson <andersca@apple.com>
2568 Rename WebFrame::convertHandleToDownload to convertMainResourceLoadToDownload
2569 https://bugs.webkit.org/show_bug.cgi?id=105134
2571 Reviewed by Sam Weinig.
2573 * WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
2574 (WebKit::WebFrameLoaderClient::convertMainResourceLoadToDownload):
2575 * WebProcess/WebPage/WebFrame.cpp:
2576 (WebKit::WebFrame::convertMainResourceLoadToDownload):
2577 * WebProcess/WebPage/WebFrame.h:
2580 2012-12-15 Anders Carlsson <andersca@apple.com>
2582 Rename FrameLoaderClient::download to convertMainResourceLoadToDownload
2583 https://bugs.webkit.org/show_bug.cgi?id=105122
2585 Reviewed by Andreas Kling.
2587 Update for WebCore changes.
2589 * WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
2590 (WebKit::WebFrameLoaderClient::convertMainResourceLoadToDownload):
2591 * WebProcess/WebCoreSupport/WebFrameLoaderClient.h:
2592 (WebFrameLoaderClient):
2594 2012-12-15 Anders Carlsson <andersca@apple.com>
2598 * UIProcess/WebContext.cpp:
2599 (WebKit::WebContext::createDownloadProxy):
2601 2012-12-15 Andy Estes <aestes@apple.com>
2603 [WebKit2] Have CustomProtocolManager and CustomProtocolManagerProxy store Connections for messaging
2604 https://bugs.webkit.org/show_bug.cgi?id=105124
2606 Reviewed by Anders Carlsson.
2608 Remove CustomProtocolManagerProxy's assumption that all messages go to
2609 a web process. Have it take a ChildProcessProxy instead and extract its
2612 Similarly, remove CustomProtocolManager's assumption that all messages
2613 go through a shared WebProcess. Initialize the shared CustomProtocolManager
2614 with a Connection object instead.
2616 * NetworkProcess/NetworkProcess.cpp:
2617 (WebKit::NetworkProcess::initializeNetworkProcess): Initialize the
2618 shared CustomProtocolManager with the NetworkProcess's connection to
2620 * Shared/Network/CustomProtocols/CustomProtocolManager.h:
2621 (WebKit::CustomProtocolManager::connection): Assert m_connection is
2622 non-0 and return it.
2623 * Shared/Network/CustomProtocols/mac/CustomProtocolManagerMac.mm:
2624 (+[WKCustomProtocol canInitWithRequest:]): Remove an unnecessary
2626 (-[WKCustomProtocol initWithRequest:cachedResponse:client:]): Ditto.
2627 (-[WKCustomProtocol startLoading]): Send a message on the
2628 CustomProtocolManager's connection rather than assuming there is a
2629 shared WebProcess in our address space.
2630 (-[WKCustomProtocol stopLoading]): Ditto.
2631 (WebKit::CustomProtocolManager::initialize): Initialize the shared
2632 CustomProtocolManager with a Connection and register our custom
2633 protocol handler with NSURLProtocol.
2634 * UIProcess/Network/CustomProtocols/CustomProtocolManagerProxy.h:
2636 (CustomProtocolManagerProxy): Take a ChildProcessProxy* rather than a
2638 * UIProcess/Network/CustomProtocols/mac/CustomProtocolManagerProxyMac.mm:
2639 (WebKit::CustomProtocolManagerProxy::CustomProtocolManagerProxy): Ditto.
2640 (WebKit::CustomProtocolManagerProxy::startLoading): Ditto.
2641 * UIProcess/Network/NetworkProcessProxy.cpp:
2642 (WebKit::NetworkProcessProxy::NetworkProcessProxy): Instantiate a
2643 CustomProtocolManagerProxy for the network process.
2644 (WebKit::NetworkProcessProxy::didReceiveMessage): Route messages of
2645 class MessageClassCustomProtocolManagerProxy to the
2646 CustomProtocolManagerProxy.
2647 * UIProcess/Network/NetworkProcessProxy.h:
2648 * UIProcess/WebProcessProxy.cpp:
2649 (WebKit::WebProcessProxy::didReceiveMessage): Assert that we aren't
2650 using the network process since we've received a message from a
2651 web process's CustomProtocolManager.
2652 * WebProcess/WebProcess.cpp:
2653 (WebKit::WebProcess::initializeWebProcess): Break CustomProtocolManager
2654 initialization out into a helper function.
2655 (WebKit::WebProcess::initializeCustomProtocolManager): Initialize our
2656 CustomProtocolManager.
2657 * WebProcess/WebProcess.h:
2659 2012-12-15 Anders Carlsson <andersca@apple.com>
2661 Happy little Qt build fix.
2663 * UIProcess/WebContext.cpp:
2664 (WebKit::WebContext::download):
2666 2012-12-15 Alexey Proskuryakov <ap@apple.com>
2668 <rdar://problem/12886312> Cannot upload patches to Bugzilla (<input type=file> doesn't work)
2669 https://bugs.webkit.org/show_bug.cgi?id=105120
2671 Reviewed by Sam Weinig.
2673 Serialize HTTP body. ResourceRequest serialization cannot (and shouldn't) know about
2674 body streams, as used with files.
2676 * Shared/Network/NetworkResourceLoadParameters.cpp:
2677 (WebKit::NetworkResourceLoadParameters::encode):
2678 (WebKit::NetworkResourceLoadParameters::decode):
2679 * Shared/WebCoreArgumentCoders.cpp:
2680 (CoreIPC::::encode):
2682 2012-12-15 Anders Carlsson <andersca@apple.com>
2684 Handle downloads in the network process
2685 https://bugs.webkit.org/show_bug.cgi?id=105117
2687 Reviewed by Sam Weinig.
2689 Start using the download manager in the network process.
2691 * NetworkProcess/NetworkConnectionToWebProcess.cpp:
2692 (WebKit::NetworkConnectionToWebProcess::startDownload):
2693 Call through to the download manager.
2695 * NetworkProcess/NetworkConnectionToWebProcess.messages.in:
2696 Add StartDownload message.
2698 * NetworkProcess/NetworkProcess.cpp:
2699 (WebKit::NetworkProcess::downloadManager):
2700 Add "singleton" download manager.
2702 (WebKit::NetworkProcess::didCreateDownload):
2703 (WebKit::NetworkProcess::didDestroyDownload):
2704 (WebKit::NetworkProcess::downloadProxyConnection):
2705 Implement DownloadManager::Client.
2707 * UIProcess/Network/NetworkProcessProxy.cpp:
2708 (WebKit::NetworkProcessProxy::didReceiveMessage):
2709 (WebKit::NetworkProcessProxy::didReceiveSyncMessage):
2710 Call through to the message receiver map.
2712 * WebProcess/Downloads/Download.cpp:
2713 * WebProcess/Downloads/DownloadManager.cpp:
2714 (WebKit::DownloadManager::downloadProxyConnection):
2715 * WebProcess/Downloads/DownloadManager.h:
2716 Rename connection to downloadProxyConnection.
2718 * WebProcess/WebPage/WebFrame.cpp:
2719 (WebKit::WebFrame::startDownload):
2720 When using the network process, send a message to it with the request that needs to be downloaded.
2722 * WebProcess/WebProcess.cpp:
2723 (WebKit::WebProcess::downloadProxyConnection):
2724 Return the connection to the UI process.
2726 2012-12-15 Sam Weinig <sam@webkit.org>
2728 NSURLCache should be disabled in the WebProcess when using the NetworkProcess
2729 <rdar://problem/12872266>
2730 https://bugs.webkit.org/show_bug.cgi?id=105119
2732 Reviewed by Alexey Proskuryakov.
2734 Set the size of the NSURLCache to 0 (both disk and memory) in the WebProcess when using
2737 * WebProcess/mac/WebProcessMac.mm:
2738 (WebKit::WebProcess::platformSetCacheModel):
2739 (WebKit::WebProcess::platformInitializeWebProcess):
2741 2012-12-15 Sam Weinig <sam@webkit.org>
2743 The network process should use the correct NSURLCache location and set its size correctly for the CacheModel
2744 <rdar://problem/12848505>
2745 https://bugs.webkit.org/show_bug.cgi?id=105115
2747 Reviewed by Anders Carlsson.
2749 * NetworkProcess/NetworkProcess.cpp:
2750 (WebKit::NetworkProcess::NetworkProcess):
2751 (WebKit::NetworkProcess::initializeNetworkProcess):
2752 (WebKit::NetworkProcess::setCacheModel):
2753 * NetworkProcess/NetworkProcess.h:
2755 * NetworkProcess/mac/NetworkProcessMac.mm:
2756 (WebKit::NetworkProcess::platformInitialize):
2757 (WebKit::memorySize):
2758 (WebKit::volumeFreeSize):
2759 (WebKit::NetworkProcess::platformSetCacheModel):
2760 Copy code from the WebProcess to set up the NSURLCache correctly (location and size).
2761 We should eventually move the calculation of this to the WebContext so it can be done
2764 * Shared/Network/NetworkProcessCreationParameters.cpp:
2765 (WebKit::NetworkProcessCreationParameters::encode):
2766 (WebKit::NetworkProcessCreationParameters::decode):
2767 * Shared/Network/NetworkProcessCreationParameters.h:
2768 (NetworkProcessCreationParameters):
2769 Add the necessary creation parameters to set up the cache.
2771 * UIProcess/Network/NetworkProcessProxy.cpp:
2772 (WebKit::NetworkProcessProxy::didFinishLaunching):
2773 * UIProcess/Network/NetworkProcessProxy.h:
2774 (NetworkProcessProxy):
2775 * UIProcess/Network/mac/NetworkProcessProxyMac.mm:
2776 * UIProcess/WebContext.cpp:
2777 (WebKit::WebContext::ensureNetworkProcess):
2778 (WebKit::WebContext::setCacheModel):
2779 * UIProcess/WebContext.h:
2782 * UIProcess/mac/WebContextMac.mm:
2784 (WebKit::WebContext::platformInitializeNetworkProcess):
2785 Move initializing the NetworkProcess to just after creating (matching the WebProcess),
2786 rather than waiting for it finish loading before sending the creation parameters.
2787 Additionally, this moves the setting up of the creation parameters to the WebContext,
2788 as that is where all the interesting state resides (and also matches the WebProcess).
2790 2012-12-15 Andy Estes <aestes@apple.com>
2792 [WebKit2] Register the custom protocol handler in the network process if it exists
2793 https://bugs.webkit.org/show_bug.cgi?id=105118
2795 Reviewed by Anders Carlsson.
2797 Register our custom protocol handler with NSURLProtocol when starting
2798 up the network process; do not register the custom protocol handler in
2799 web processes if a network process is being used.
2801 * NetworkProcess/NetworkProcess.cpp:
2802 (WebKit::NetworkProcess::initializeNetworkProcess):
2803 * WebProcess/WebProcess.cpp:
2804 (WebKit::WebProcess::initializeWebProcess):
2805 * WebProcess/mac/WebProcessMac.mm:
2806 (WebKit::WebProcess::platformInitializeWebProcess):
2808 2012-12-15 Sam Weinig <sam@webkit.org>
2810 The network process should use the correct NSURLCache location and set its size correctly for the CacheModel
2811 <rdar://problem/12848505>
2812 https://bugs.webkit.org/show_bug.cgi?id=105115
2814 Reviewed by Anders Carlsson.
2816 * NetworkProcess/NetworkProcess.cpp:
2817 (WebKit::NetworkProcess::NetworkProcess):
2818 (WebKit::NetworkProcess::initializeNetworkProcess):
2819 (WebKit::NetworkProcess::setCacheModel):
2820 * NetworkProcess/NetworkProcess.h:
2822 * NetworkProcess/mac/NetworkProcessMac.mm:
2823 (WebKit::NetworkProcess::platformInitialize):
2824 (WebKit::memorySize):
2825 (WebKit::volumeFreeSize):
2826 (WebKit::NetworkProcess::platformSetCacheModel):
2827 Copy code from the WebProcess to set up the NSURLCache correctly (location and size).
2828 We should eventually move the calculation of this to the WebContext so it can be done
2831 * Shared/Network/NetworkProcessCreationParameters.cpp:
2832 (WebKit::NetworkProcessCreationParameters::encode):
2833 (WebKit::NetworkProcessCreationParameters::decode):
2834 * Shared/Network/NetworkProcessCreationParameters.h:
2835 (NetworkProcessCreationParameters):
2836 Add the necessary creation parameters to set up the cache.
2838 * UIProcess/Network/NetworkProcessProxy.cpp:
2839 (WebKit::NetworkProcessProxy::didFinishLaunching):
2840 * UIProcess/Network/NetworkProcessProxy.h:
2841 (NetworkProcessProxy):
2842 * UIProcess/Network/mac/NetworkProcessProxyMac.mm:
2843 * UIProcess/WebContext.cpp:
2844 (WebKit::WebContext::ensureNetworkProcess):
2845 (WebKit::WebContext::setCacheModel):
2846 * UIProcess/WebContext.h:
2849 * UIProcess/mac/WebContextMac.mm:
2851 (WebKit::WebContext::platformInitializeNetworkProcess):
2852 Move initializing the NetworkProcess to just after creating (matching the WebProcess),
2853 rather than waiting for it finish loading before sending the creation parameters.
2854 Additionally, this moves the setting up of the creation parameters to the WebContext,
2855 as that is where all the interesting state resides (and also matches the WebProcess).
2857 2012-12-15 Andy Estes <aestes@apple.com>
2859 Clean up the previous build fix; access m_networkProcess directly.
2861 * UIProcess/WebContext.cpp:
2862 (WebKit::WebContext::registerSchemeForCustomProtocol):
2863 (WebKit::WebContext::unregisterSchemeForCustomProtocol):
2865 2012-12-15 Andy Estes <aestes@apple.com>
2869 * UIProcess/WebContext.cpp:
2870 (WebKit::WebContext::registerSchemeForCustomProtocol):
2871 (WebKit::WebContext::unregisterSchemeForCustomProtocol):
2873 2012-12-15 Andy Estes <aestes@apple.com>
2875 [WebKit2] Register schemes with the network process if it is being used
2876 https://bugs.webkit.org/show_bug.cgi?id=105113
2878 Reviewed by Anders Carlsson.
2880 If a WebContext is using the network process, it needs to be told about
2881 scheme (un)registration rather than the context's web processes.
2883 * NetworkProcess/NetworkProcess.cpp:
2884 (WebKit::NetworkProcess::initializeNetworkProcess): Tell the shared
2885 CustomProtocolManager about schemes registered at process creation time.
2886 (WebKit::NetworkProcess::registerSchemeForCustomProtocol): Tell the
2887 shared CustomProtocolManager about a new scheme.
2888 (WebKit::NetworkProcess::unregisterSchemeForCustomProtocol): Remove a
2889 scheme from the shared CustomProtocolManager.
2890 * NetworkProcess/NetworkProcess.h:
2891 * NetworkProcess/NetworkProcess.messages.in: Add registration and
2892 unregistration messages for the NetworkProcess.
2893 * Shared/Network/NetworkProcessCreationParameters.cpp:
2894 (WebKit::NetworkProcessCreationParameters::encode): Encode
2895 urlSchemesRegisteredForCustomProtocols.
2896 (WebKit::NetworkProcessCreationParameters::decode): Decode
2897 urlSchemesRegisteredForCustomProtocols.
2898 * Shared/Network/NetworkProcessCreationParameters.h: Define
2899 urlSchemesRegisteredForCustomProtocols.
2900 * UIProcess/Network/mac/NetworkProcessProxyMac.mm:
2901 (WebKit::NetworkProcessProxy::platformInitializeNetworkProcess): Populate
2902 urlSchemesRegisteredForCustomProtocols with the current set of schemes.
2903 * UIProcess/WebContext.cpp:
2904 (WebKit::WebContext::registerSchemeForCustomProtocol): Send a new
2905 scheme to either the network process or to the context's web processes.
2906 (WebKit::WebContext::unregisterSchemeForCustomProtocol): Ditto for
2908 * UIProcess/WebContext.h:
2909 * UIProcess/mac/WebContextMac.mm:
2910 (WebKit::WebContext::platformInitializeWebProcess): Only populate
2911 urlSchemesRegisteredForCustomProtocols if the network process isn't
2913 (WebKit::WebContext::registerNotificationObservers):
2914 * WebProcess/mac/WebProcessMac.mm:
2915 (WebKit::WebProcess::platformInitializeWebProcess):
2916 urlSchemesRegisteredForCustomProtocols should only be non-empty if the
2917 network process isn't being used. Assert this.
2919 2012-12-15 Anders Carlsson <andersca@apple.com>
2921 Remove the unneeded NetworkProcessCrashed message
2922 https://bugs.webkit.org/show_bug.cgi?id=105114
2924 Reviewed by Sam Weinig.
2926 Remove the NetworkProcessCrashed message; it's not needed since the connection member variable is already
2927 nulled out in WebProcess::networkProcessConnectionClosed which is called when the Connection::Client::didClose member
2928 function is called on the connection between the web process and network process.
2930 Furthermore, this message was handled on the connection queue which runs on a different thread and the handler was not
2931 thread-safe so this could in theory cause bad crashes.
2933 * UIProcess/Network/NetworkProcessProxy.cpp:
2934 (WebKit::NetworkProcessProxy::didClose):
2935 * WebProcess/WebProcess.cpp:
2936 * WebProcess/WebProcess.h:
2938 * WebProcess/WebProcess.messages.in:
2940 2012-12-15 Anders Carlsson <andersca@apple.com>
2942 Add a DownloadProxyMap object to the NetworkProcessProxy object
2943 https://bugs.webkit.org/show_bug.cgi?id=105112
2945 Reviewed by Sam Weinig.
2947 * UIProcess/Network/NetworkProcessProxy.cpp:
2948 (WebKit::NetworkProcessProxy::createDownloadProxy):
2949 (WebKit::NetworkProcessProxy::didClose):
2950 * UIProcess/Network/NetworkProcessProxy.h:
2951 * UIProcess/WebContext.cpp:
2952 (WebKit::WebContext::createDownloadProxy):
2953 * UIProcess/WebProcessProxy.cpp:
2954 * UIProcess/WebProcessProxy.h:
2956 2012-12-15 Anders Carlsson <andersca@apple.com>
2958 Move the download proxy map from the web context to the web process proxy
2959 https://bugs.webkit.org/show_bug.cgi?id=105109
2961 Reviewed by Andreas Kling.
2963 More progress towards making downloads work with the networking process. Since downloads are handled by the
2964 web process when not using a networking process, it makes sense for the download proxy map to live in the
2965 web process proxy object.
2967 * UIProcess/WebContext.cpp:
2968 (WebKit::WebContext::WebContext):
2969 (WebKit::WebContext::shouldTerminate):
2970 (WebKit::WebContext::disconnectProcess):
2971 (WebKit::WebContext::download):
2972 (WebKit::WebContext::createDownloadProxy):
2973 * UIProcess/WebContext.h:
2975 * UIProcess/WebProcessProxy.cpp:
2976 (WebKit::WebProcessProxy::disconnect):
2977 (WebKit::WebProcessProxy::shouldTerminate):
2979 (WebKit::WebProcessProxy::createDownloadProxy):
2980 * UIProcess/WebProcessProxy.h:
2983 2012-12-15 Anders Carlsson <andersca@apple.com>
2985 DownloadProxy should keep a strong reference to its associated web context
2986 https://bugs.webkit.org/show_bug.cgi?id=105107
2988 Reviewed by Alexey Proskuryakov.
2990 While this does create a ref-cycle, it's broken when the download completes, fails, is canceled or
2991 if the process that's doing the download crashes.
2993 * UIProcess/Downloads/DownloadProxy.cpp:
2994 (WebKit::DownloadProxy::processDidClose):
2995 (WebKit::DownloadProxy::didStart):
2996 (WebKit::DownloadProxy::didReceiveAuthenticationChallenge):
2997 (WebKit::DownloadProxy::didReceiveResponse):
2998 (WebKit::DownloadProxy::didReceiveData):
2999 (WebKit::DownloadProxy::shouldDecodeSourceDataOfMIMEType):
3000 (WebKit::DownloadProxy::decideDestinationWithSuggestedFilename):
3001 (WebKit::DownloadProxy::didCreateDestination):
3002 (WebKit::DownloadProxy::didFinish):
3003 (WebKit::DownloadProxy::didFail):
3004 (WebKit::DownloadProxy::didCancel):
3005 * UIProcess/Downloads/DownloadProxy.h:
3008 2012-12-15 Anders Carlsson <andersca@apple.com>
3010 Remove WebContext::downloadFinished
3011 https://bugs.webkit.org/show_bug.cgi?id=105105
3013 Reviewed by Sam Weinig.
3015 Have DownloadProxyMap manage the message receiver map and remove WebContext::downloadFinished.
3017 * UIProcess/Downloads/DownloadProxy.cpp:
3018 (WebKit::DownloadProxy::didFinish):
3019 (WebKit::DownloadProxy::didFail):
3020 (WebKit::DownloadProxy::didCancel):
3021 * UIProcess/Downloads/DownloadProxyMap.cpp:
3022 (WebKit::DownloadProxyMap::DownloadProxyMap):
3023 (WebKit::DownloadProxyMap::createDownloadProxy):
3024 (WebKit::DownloadProxyMap::downloadFinished):
3025 * UIProcess/Downloads/DownloadProxyMap.h:
3027 * UIProcess/WebContext.cpp:
3028 (WebKit::WebContext::WebContext):
3029 (WebKit::WebContext::createDownloadProxy):
3030 * UIProcess/WebContext.h:
3032 2012-12-15 Sam Weinig <sam@webkit.org>
3034 Make the NetworkProcess be managed by the WebContext, rather than a singleton NetworkProcessMananger
3035 https://bugs.webkit.org/show_bug.cgi?id=105104
3037 Reviewed by Alexey Proskuryakov.
3039 Move to having the WebContext own and manage the NetworkProcessProxy.
3041 * UIProcess/Network/NetworkProcessManager.cpp: Removed.
3042 * UIProcess/Network/NetworkProcessManager.h: Removed.
3043 * UIProcess/Network/NetworkProcessProxy.cpp:
3044 (WebKit::NetworkProcessProxy::create):
3045 (WebKit::NetworkProcessProxy::NetworkProcessProxy):
3046 (WebKit::NetworkProcessProxy::networkProcessCrashedOrFailedToLaunch):
3047 * UIProcess/Network/NetworkProcessProxy.h:
3049 (NetworkProcessProxy):
3050 * UIProcess/Network/mac/NetworkProcessManagerMac.mm: Removed.
3051 * UIProcess/WebContext.cpp:
3052 (WebKit::WebContext::ensureNetworkProcess):
3053 (WebKit::WebContext::removeNetworkProcessProxy):
3054 (WebKit::WebContext::getNetworkProcessConnection):
3055 (WebKit::WebContext::willStartUsingPrivateBrowsing):
3056 (WebKit::WebContext::willStopUsingPrivateBrowsing):
3057 (WebKit::WebContext::createNewWebProcess):
3058 * UIProcess/WebContext.h:
3061 (WebKit::WebContext::networkProcess):
3062 * UIProcess/WebProcessProxy.cpp:
3063 (WebKit::WebProcessProxy::getNetworkProcessConnection):
3064 * UIProcess/mac/WebContextMac.mm:
3065 (WebKit::WebContext::applicationBecameVisible):
3066 (WebKit::WebContext::applicationBecameOccluded):
3067 * WebKit2.xcodeproj/project.pbxproj:
3069 2012-12-15 Anders Carlsson <andersca@apple.com>
3071 DownloadProxy objects should know which DownloadProxyMap they belong to
3072 https://bugs.webkit.org/show_bug.cgi?id=105102
3074 Reviewed by Andy Estes.
3076 * UIProcess/Downloads/DownloadProxy.cpp:
3077 (WebKit::DownloadProxy::create):
3078 (WebKit::DownloadProxy::DownloadProxy):
3079 * UIProcess/Downloads/DownloadProxy.h:
3082 * UIProcess/Downloads/DownloadProxyMap.cpp:
3083 (WebKit::DownloadProxyMap::createDownloadProxy):
3085 2012-12-15 Andy Estes <aestes@apple.com>
3087 [WebKit2] Move CustomProtocolManager to Shared/
3088 https://bugs.webkit.org/show_bug.cgi?id=105103
3090 Reviewed by Sam Weinig.
3092 CustomProtocolManager can be instantiated either in the NetworkProcess or the WebProcess, so it should live in Shared/.
3094 * DerivedSources.make: Update the path where CustomProtocolManager.messages.in can be found.
3095 * Shared/Network/CustomProtocols/CustomProtocolManager.h: Renamed from Source/WebKit2/WebProcess/Network/CustomProtocols/CustomProtocolManager.h.
3096 * Shared/Network/CustomProtocols/CustomProtocolManager.messages.in: Renamed from Source/WebKit2/WebProcess/Network/CustomProtocols/CustomProtocolManager.messages.in.
3097 * Shared/Network/CustomProtocols/mac/CustomProtocolManagerMac.mm: Renamed from Source/WebKit2/WebProcess/Network/CustomProtocols/mac/CustomProtocolManagerMac.mm.
3098 * WebKit2.xcodeproj/project.pbxproj:
3100 2012-12-15 Sam Weinig <sam@webkit.org>
3102 Try to fix the Qt build.
3106 2012-12-15 Anders Carlsson <andersca@apple.com>
3108 Get rid of DownloadProxyMap::downloads()
3109 https://bugs.webkit.org/show_bug.cgi?id=105100
3111 Reviewed by Sam Weinig.
3113 Add the needed member functions to DownloadProxyMap and remove the downloads() member function.
3115 * UIProcess/Downloads/DownloadProxyMap.cpp:
3116 (WebKit::DownloadProxyMap::downloadFinished):
3117 (WebKit::DownloadProxyMap::processDidClose):
3119 * UIProcess/Downloads/DownloadProxyMap.h:
3120 (WebKit::DownloadProxyMap::isEmpty):
3122 * UIProcess/WebContext.cpp:
3123 (WebKit::WebContext::shouldTerminate):
3124 (WebKit::WebContext::disconnectProcess):
3125 (WebKit::WebContext::downloadFinished):
3127 2012-12-15 Sam Weinig <sam@webkit.org>
3129 Move calculation of caches sizes based on the cache model to CacheModel.h/cpp
3130 https://bugs.webkit.org/show_bug.cgi?id=105098
3132 Reviewed by Anders Carlsson.
3134 Move calculation of caches sizes based on the cache model to CacheModel.h/cpp so
3135 that it can be used by more than just the WebProcess.
3138 * GNUmakefile.list.am:
3139 * Shared/CacheModel.cpp: Added.
3141 (WebKit::calculateCacheSizes):
3142 * Shared/CacheModel.h:
3144 * WebKit2.xcodeproj/project.pbxproj:
3145 * WebProcess/WebProcess.cpp:
3146 * WebProcess/WebProcess.h:
3148 * win/WebKit2.vcproj:
3150 2012-12-15 Anders Carlsson <andersca@apple.com>
3152 DownloadProxyMap shouldn't be a singleton after all
3153 https://bugs.webkit.org/show_bug.cgi?id=105099
3155 Reviewed by Sam Weinig.
3157 Make the DownloadProxyMap be per context instead, and get rid of the m_downloads hash map from WebContext.
3159 * UIProcess/Downloads/DownloadProxy.cpp:
3160 (WebKit::DownloadProxy::didFinish):
3161 (WebKit::DownloadProxy::didFail):
3162 (WebKit::DownloadProxy::didCancel):
3163 * UIProcess/Downloads/DownloadProxyMap.cpp:
3164 (WebKit::DownloadProxyMap::~DownloadProxyMap):
3165 * UIProcess/Downloads/DownloadProxyMap.h:
3167 (WebKit::DownloadProxyMap::downloads):
3168 * UIProcess/WebContext.cpp:
3169 (WebKit::WebContext::shouldTerminate):
3170 (WebKit::WebContext::disconnectProcess):
3171 (WebKit::WebContext::createDownloadProxy):
3172 (WebKit::WebContext::downloadFinished):
3173 * UIProcess/WebContext.h:
3176 2012-12-15 No'am Rosenthal <noam.rosenthal@nokia.com>
3178 Disambiguate "background color" and "contents as solid color" on GraphicsLayer
3179 https://bugs.webkit.org/show_bug.cgi?id=104842
3181 Reviewed by Simon Fraser.
3183 Rename overloads in coordinated graphics to account for the rename in GraphicsLayer.
3185 * Shared/CoordinatedGraphics/CoordinatedLayerInfo.h:
3186 (CoordinatedLayerInfo):
3187 * UIProcess/CoordinatedGraphics/LayerTreeRenderer.cpp:
3188 (WebKit::LayerTreeRenderer::setLayerState):
3189 * WebProcess/WebPage/CoordinatedGraphics/CoordinatedGraphicsLayer.cpp:
3190 (WebCore::CoordinatedGraphicsLayer::setContentsToSolidColor):
3191 * WebProcess/WebPage/CoordinatedGraphics/CoordinatedGraphicsLayer.h:
3192 (CoordinatedGraphicsLayer):
3194 2012-12-15 Christophe Dumez <christophe.dumez@intel.com>
3196 [GTK][WK2] Memory leak in ChunkedUpdateDrawingArea::paintIntoUpdateChunk()
3197 https://bugs.webkit.org/show_bug.cgi?id=105095
3199 Reviewed by Martin Robinson.
3201 Adopt the pointer returned by cairo_create() in
3202 ChunkedUpdateDrawingArea::paintIntoUpdateChunk() to avoid leaking
3205 * WebProcess/WebPage/gtk/ChunkedUpdateDrawingAreaGtk.cpp:
3206 (WebKit::ChunkedUpdateDrawingArea::paintIntoUpdateChunk):
3208 2012-12-15 Mark Lam <mark.lam@apple.com>
3210 Added #if ENABLE(SQL_DATABASE) around WebPlatformStrategies::getDatabaseServer().
3211 https://bugs.webkit.org/show_bug.cgi?id=104934..
3215 Greening the Qt Linux Release Minimal bot.
3217 * WebProcess/WebCoreSupport/WebPlatformStrategies.cpp:
3219 * WebProcess/WebCoreSupport/WebPlatformStrategies.h:
3220 (WebPlatformStrategies):
3222 2012-12-15 Mark Lam <mark.lam@apple.com>
3224 Re-landing patch for "Introducing the DatabaseStrategy and database servers".
3225 https://bugs.webkit.org/show_bug.cgi?id=104934.
3229 Merged from r137767. Previously reviewed by Sam Weinig.
3232 * WebProcess/WebCoreSupport/WebPlatformStrategies.cpp:
3233 (WebKit::WebPlatformStrategies::createDatabaseStrategy):
3235 (WebKit::WebPlatformStrategies::getDatabaseServer):
3236 * WebProcess/WebCoreSupport/WebPlatformStrategies.h:
3237 (WebPlatformStrategies):
3239 2012-12-14 Anders Carlsson <andersca@apple.com>
3241 DownloadProxy objects should be message receivers
3242 https://bugs.webkit.org/show_bug.cgi?id=105068
3244 Reviewed by Andreas Kling.
3246 This simplifies the WebContext message dispatch code somewhat.
3248 * UIProcess/Downloads/DownloadProxy.cpp:
3249 (WebKit::DownloadProxy::didReceiveMessage):
3250 (WebKit::DownloadProxy::didReceiveSyncMessage):
3251 * UIProcess/Downloads/DownloadProxy.h:
3253 * UIProcess/WebContext.cpp:
3254 (WebKit::WebContext::createDownloadProxy):
3255 (WebKit::WebContext::didReceiveMessage):
3256 (WebKit::WebContext::didReceiveSyncMessage):
3258 2012-12-14 Sheriff Bot <webkit.review.bot@gmail.com>
3260 Unreviewed, rolling out r137767.
3261 http://trac.webkit.org/changeset/137767
3262 https://bugs.webkit.org/show_bug.cgi?id=105062
3264 Broke Mac builds. (Requested by mlam on #webkit).
3267 * WebProcess/WebCoreSupport/WebPlatformStrategies.cpp:
3268 * WebProcess/WebCoreSupport/WebPlatformStrategies.h:
3269 (WebPlatformStrategies):
3271 2012-12-14 Alexey Proskuryakov <ap@apple.com>
3273 <rdar://problem/12874760> NetworkProcess loads may get stuck when WebProcess quits
3274 https://bugs.webkit.org/show_bug.cgi?id=105056
3276 Reviewed by Anders Carlsson.
3278 Make response maps per-connection.
3280 * NetworkProcess/NetworkConnectionToWebProcess.cpp:
3281 (WebKit::NetworkConnectionToWebProcess::didClose): Cancel waiting for responses
3282 from WebProcess, they will never arrive.
3284 * NetworkProcess/NetworkConnectionToWebProcess.h:
3285 (WebKit::NetworkConnectionToWebProcess::willSendRequestResponseMap):
3286 (WebKit::NetworkConnectionToWebProcess::canAuthenticateAgainstProtectionSpaceResponseMap):
3289 * NetworkProcess/NetworkResourceLoader.cpp:
3290 (WebKit::NetworkResourceLoader::connectionToWebProcessDidClose): Added a FIXME.
3292 (WebKit::NetworkResourceLoader::willSendRequest):
3293 (WebKit::NetworkResourceLoader::willSendRequestHandled):
3294 (WebKit::NetworkResourceLoader::canAuthenticateAgainstProtectionSpace):
3295 (WebKit::NetworkResourceLoader::canAuthenticateAgainstProtectionSpaceHandled):
3296 Handle the cases where we can't send a request, or can't expect a response any more.
3298 * Shared/BlockingResponseMap.h:
3299 (BlockingResponseMap):
3300 (BlockingResponseMap::BlockingResponseMap):
3301 (BlockingResponseMap::~BlockingResponseMap):
3302 (BlockingResponseMap::waitForResponse):
3303 (BlockingResponseMap::didReceiveResponse):
3304 (BlockingResponseMap::cancel):
3305 (BlockingBoolResponseMap):
3306 (BlockingBoolResponseMap::BlockingBoolResponseMap):
3307 (BlockingBoolResponseMap::~BlockingBoolResponseMap):
3308 (BlockingBoolResponseMap::waitForResponse):
3309 (BlockingBoolResponseMap::didReceiveResponse):
3310 (BlockingBoolResponseMap::cancel):
3311 Added an ability to cancel, and slightly beefed up overall.
3313 2012-12-14 Anders Carlsson <andersca@apple.com>
3315 DownloadProxyMap should keep track of outstanding DownloadProxy objects
3316 https://bugs.webkit.org/show_bug.cgi?id=105053
3318 Reviewed by Andreas Kling.
3320 This is more work towards removing the m_downloads map from every WebContext object.
3322 * UIProcess/Downloads/DownloadProxy.cpp:
3323 (WebKit::DownloadProxy::didFinish):
3324 (WebKit::DownloadProxy::didFail):
3325 (WebKit::DownloadProxy::didCancel):
3326 * UIProcess/Downloads/DownloadProxyMap.cpp:
3327 (WebKit::DownloadProxyMap::createDownloadProxy):
3329 (WebKit::DownloadProxyMap::downloadFinished):
3330 * UIProcess/Downloads/DownloadProxyMap.h:
3332 * UIProcess/WebContext.cpp:
3333 (WebKit::WebContext::createDownloadProxy):
3335 2012-12-14 Mark Lam <mark.lam@apple.com>
3337 Introducing the DatabaseStrategy and database servers.
3338 https://bugs.webkit.org/show_bug.cgi?id=104934.
3340 Reviewed by Sam Weinig.
3342 The database server is currently a placeholder that does nothing.
3345 * WebProcess/WebCoreSupport/WebPlatformStrategies.cpp:
3346 (WebKit::WebPlatformStrategies::createDatabaseStrategy):
3348 (WebKit::WebPlatformStrategies::getDatabaseServer):
3349 * WebProcess/WebCoreSupport/WebPlatformStrategies.h:
3350 (WebPlatformStrategies):
3352 2012-12-14 Alexey Proskuryakov <ap@apple.com>
3354 Resource loads sometimes stall
3355 https://bugs.webkit.org/show_bug.cgi?id=104976
3357 Apply the same quick an dirty fix to BlockingBoolResponseMap.
3359 * Shared/BlockingResponseMap.h:
3360 (BlockingBoolResponseMap::didReceiveResponse):
3362 2012-12-14 Anders Carlsson <andersca@apple.com>
3364 Add a DownloadsProxyMap class in preparation for moving the downloads map away from WebContext
3365 https://bugs.webkit.org/show_bug.cgi?id=104980
3367 Reviewed by Andreas Kling.
3369 Currently the DownloadProxyMap doesn't really do anything; this initial change is to make sure that
3370 adding the new files won't break any builds.
3373 * GNUmakefile.list.am:
3375 * UIProcess/Downloads/DownloadProxyMap.cpp: Added.
3377 (WebKit::DownloadProxyMap::shared):
3378 (WebKit::DownloadProxyMap::DownloadProxyMap):
3379 (WebKit::DownloadProxyMap::~DownloadProxyMap):
3380 (WebKit::DownloadProxyMap::createDownloadProxy):
3381 * UIProcess/Downloads/DownloadProxyMap.h: Added.
3384 * UIProcess/WebContext.cpp:
3385 (WebKit::WebContext::createDownloadProxy):
3386 * WebKit2.xcodeproj/project.pbxproj:
3387 * win/WebKit2.vcproj:
3389 2012-12-14 Anders Carlsson <andersca@apple.com>
3391 Fix assertion failure when the network process is enabled
3392 https://bugs.webkit.org/show_bug.cgi?id=105040
3393 <rdar://problem/12883632>
3395 Reviewed by Alexey Proskuryakov.
3397 Make sure that we don't call into the download manager when running with a network process.
3399 * WebProcess/WebProcess.cpp:
3400 (WebKit::WebProcess::shouldTerminate):
3402 2012-12-14 Michelangelo De Simone <michelangelo@webkit.org>
3404 [CSS Shaders] Remove code for the other mesh box types (border-box | padding-box | content-box)
3405 https://bugs.webkit.org/show_bug.cgi?id=103776
3407 Reviewed by Dean Jackson.
3409 The MeshBoxType has been removed and the code has been refactored. The specs will be updated shortly
3410 and therefore this feature - even though it was not fully implemented yet - shall not be used anymore.
3412 In this patch we remove everything but the parsing code, which shall be addressed in a different patch
3413 (see: https://bugs.webkit.org/show_bug.cgi?id=103778).
3415 Specification to be updated: http://dvcs.w3.org/hg/FXTF/raw-file/tip/filters/index.html#ltboxgt
3417 Existing tests have been updated and new parsing legacy cases have been added.
3419 * Shared/CoordinatedGraphics/CoordinatedGraphicsArgumentCoders.cpp:
3420 (CoreIPC::::encode):
3421 (CoreIPC::::decode):
3422 * Shared/CoordinatedGraphics/WebCustomFilterOperation.h:
3423 (WebCore::WebCustomFilterOperation::create):
3424 (WebCore::WebCustomFilterOperation::WebCustomFilterOperation):
3426 2012-12-14 Alexey Proskuryakov <ap@apple.com>
3428 <rdar://problem/12880750> RGRESSION: Crash when emptying cookie jar
3429 https://bugs.webkit.org/show_bug.cgi?id=105038
3431 Reviewed by Jessie Berlin.
3433 Handle null context, which is used for cookie management functions.
3435 * WebProcess/WebCoreSupport/WebPlatformStrategies.cpp:
3436 (WebKit::WebPlatformStrategies::cookiesForDOM):
3437 (WebKit::WebPlatformStrategies::setCookiesFromDOM):
3438 (WebKit::WebPlatformStrategies::cookiesEnabled):
3439 (WebKit::WebPlatformStrategies::cookieRequestHeaderFieldValue):
3440 (WebKit::WebPlatformStrategies::getRawCookies):
3441 (WebKit::WebPlatformStrategies::deleteCookie):
3442 (WebKit::WebPlatformStrategies::getHostnamesWithCookies):
3443 (WebKit::WebPlatformStrategies::deleteCookiesForHostname):
3444 (WebKit::WebPlatformStrategies::deleteAllCookies):
3446 2012-12-14 Alberto Garcia <agarcia@igalia.com>
3448 [GTK] When in private mode WebKitGTK+ should not save HTTP authentication credentials to the persistent storage
3449 https://bugs.webkit.org/show_bug.cgi?id=104910
3451 Reviewed by Martin Robinson.
3453 * UIProcess/API/gtk/WebKit2GtkAuthenticationDialog.cpp:
3454 (WebKit::WebKit2GtkAuthenticationDialog::WebKit2GtkAuthenticationDialog):
3455 * UIProcess/API/gtk/WebKit2GtkAuthenticationDialog.h:
3456 (WebKit2GtkAuthenticationDialog):
3457 GtkAuthenticationDialog has a new credential storage mode
3458 parameter, so add it here too.
3460 * UIProcess/API/gtk/WebKitWebView.cpp:
3461 (webkitWebViewHandleAuthenticationChallenge):
3462 When creating the GtkAuthenticationDialog, set the credential
3463 storage mode using the private browsing setting from the current
3466 2012-12-14 Mikhail Pozdnyakov <mikhail.pozdnyakov@intel.com>
3468 [EFL][WK2] Fix EFL build after r137718
3469 https://bugs.webkit.org/show_bug.cgi?id=105018
3471 Unreviewed build fix.
3473 The problem was that UNUSED_PARAM(size) was left in the code
3474 for non-existent variable 'size'.
3476 * UIProcess/efl/PageClientDefaultImpl.cpp: