[GTK] Custom URI schemes stop working on Epiphany using WebKit2 after killing the...
authorcommit-queue@webkit.org <commit-queue@webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Mon, 3 Dec 2012 14:10:42 +0000 (14:10 +0000)
committercommit-queue@webkit.org <commit-queue@webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Mon, 3 Dec 2012 14:10:42 +0000 (14:10 +0000)
commit8a9824e6e296e44c261f609eea543fcbf18a6c7a
treec037d82ec698c2fa0dacec07e9a8d67e0ad46d8d
parent5308cd3d1f0718c6aaf06e4fb6e9db4128b3c8fd
[GTK] Custom URI schemes stop working on Epiphany using WebKit2 after killing the web process
https://bugs.webkit.org/show_bug.cgi?id=103729

Patch by Joaquim Rocha <jrocha@igalia.com> on 2012-12-03
Reviewed by Carlos Garcia Campos.

When a URI scheme is registered and the WebProcess is killed,
those schemes would not work anymore after the process is relaunched.

This was observed in Epiphany and possibly affects any port that
uses libsoup.

* Shared/WebProcessCreationParameters.cpp:
(WebKit::WebProcessCreationParameters::encode): Encode the registered URI schemes.
(WebKit::WebProcessCreationParameters::decode): Decode the registered URI schemes.
* Shared/WebProcessCreationParameters.h: Add the urlSchemesRegistered Vector to hold the registered URI schemes.
(WebProcessCreationParameters):
* UIProcess/efl/WebContextEfl.cpp:
(WebKit::WebContext::platformInitializeWebProcess): Assign the parameters.urlSchemesRegistered from the URI schemes
registered in the WebSoupRequestManagerProxy and removed the notImplemented() call.
* UIProcess/gtk/WebContextGtk.cpp:
(WebKit::WebContext::platformInitializeWebProcess): Assign the parameters.urlSchemesRegistered from the URI schemes
registered in the WebSoupRequestManagerProxy.
* UIProcess/soup/WebSoupRequestManagerProxy.cpp:
(WebKit::WebSoupRequestManagerProxy::registerURIScheme): Add the given scheme to the m_registeredURISchemes Vector.
* UIProcess/soup/WebSoupRequestManagerProxy.h:
(WebKit::WebSoupRequestManagerProxy::registeredURISchemes): Return the m_registeredURISchemes.
(WebSoupRequestManagerProxy): Define the m_registeredURISchemes to hold the schemes that are registered.
* WebProcess/soup/WebProcessSoup.cpp:
(WebKit::WebProcess::platformInitializeWebProcess): Call m_soupRequestManager.registerURIScheme for each URI scheme
found in the parameters.
* WebProcess/soup/WebSoupRequestManager.h: Make registerURIScheme public.
(WebSoupRequestManager):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@136389 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Source/WebKit2/ChangeLog
Source/WebKit2/Shared/WebProcessCreationParameters.cpp
Source/WebKit2/Shared/WebProcessCreationParameters.h
Source/WebKit2/UIProcess/efl/WebContextEfl.cpp
Source/WebKit2/UIProcess/gtk/WebContextGtk.cpp
Source/WebKit2/UIProcess/soup/WebSoupRequestManagerProxy.cpp
Source/WebKit2/UIProcess/soup/WebSoupRequestManagerProxy.h
Source/WebKit2/WebProcess/soup/WebProcessSoup.cpp
Source/WebKit2/WebProcess/soup/WebSoupRequestManager.h