summaryrefslogtreecommitdiff
path: root/Source/WebKit2
diff options
context:
space:
mode:
authorSimon Hausmann <simon.hausmann@digia.com>2012-10-15 16:08:57 +0200
committerSimon Hausmann <simon.hausmann@digia.com>2012-10-15 16:08:57 +0200
commit5466563f4b5b6b86523e3f89bb7f77e5b5270c78 (patch)
tree8caccf7cd03a15207cde3ba282c88bf132482a91 /Source/WebKit2
parent33b26980cb24288b5a9f2590ccf32a949281bb79 (diff)
downloadqtwebkit-5466563f4b5b6b86523e3f89bb7f77e5b5270c78.tar.gz
Imported WebKit commit 0dc6cd75e1d4836eaffbb520be96fac4847cc9d2 (http://svn.webkit.org/repository/webkit/trunk@131300)
WebKit update which introduces the QtWebKitWidgets module that contains the WK1 widgets based API. (In fact it renames QtWebKit to QtWebKitWidgets while we're working on completing the entire split as part of https://bugs.webkit.org/show_bug.cgi?id=99314
Diffstat (limited to 'Source/WebKit2')
-rw-r--r--Source/WebKit2/CMakeLists.txt4
-rw-r--r--Source/WebKit2/ChangeLog22057
-rw-r--r--Source/WebKit2/ChangeLog-2012-10-0221927
-rw-r--r--Source/WebKit2/Configurations/FeatureDefines.xcconfig14
-rw-r--r--Source/WebKit2/Configurations/NetworkProcess.xcconfig29
-rw-r--r--Source/WebKit2/Configurations/Version.xcconfig2
-rw-r--r--Source/WebKit2/DerivedSources.make5
-rw-r--r--Source/WebKit2/DerivedSources.pri3
-rw-r--r--Source/WebKit2/GNUmakefile.am10
-rw-r--r--Source/WebKit2/GNUmakefile.list.am35
-rw-r--r--Source/WebKit2/NetworkProcess/Info.plist30
-rw-r--r--Source/WebKit2/NetworkProcess/NetworkProcess.cpp97
-rw-r--r--Source/WebKit2/NetworkProcess/NetworkProcess.h76
-rw-r--r--Source/WebKit2/NetworkProcess/NetworkProcess.messages.in30
-rw-r--r--Source/WebKit2/NetworkProcess/NetworkProcessMain.h41
-rw-r--r--Source/WebKit2/NetworkProcess/mac/NetworkProcessMac.mm50
-rw-r--r--Source/WebKit2/NetworkProcess/mac/NetworkProcessMainMac.mm98
-rw-r--r--Source/WebKit2/Platform/CoreIPC/ArgumentCoders.h8
-rw-r--r--Source/WebKit2/Platform/CoreIPC/Connection.cpp40
-rw-r--r--Source/WebKit2/Platform/CoreIPC/Connection.h33
-rw-r--r--Source/WebKit2/Platform/CoreIPC/MessageID.h13
-rw-r--r--Source/WebKit2/Platform/CoreIPC/MessageReceiver.h52
-rw-r--r--Source/WebKit2/Platform/CoreIPC/MessageReceiverMap.cpp77
-rw-r--r--Source/WebKit2/Platform/CoreIPC/MessageReceiverMap.h60
-rw-r--r--Source/WebKit2/Platform/CoreIPC/mac/ConnectionMac.cpp10
-rw-r--r--Source/WebKit2/Platform/Logging.cpp5
-rw-r--r--Source/WebKit2/Platform/Logging.h1
-rw-r--r--Source/WebKit2/Platform/gtk/WorkQueueGtk.cpp4
-rw-r--r--Source/WebKit2/Platform/mac/WorkQueueMac.cpp27
-rw-r--r--Source/WebKit2/Platform/qt/WorkQueueQt.cpp2
-rw-r--r--Source/WebKit2/PlatformEfl.cmake47
-rw-r--r--Source/WebKit2/PluginProcess.pro2
-rw-r--r--Source/WebKit2/PluginProcess/PluginControllerProxy.cpp15
-rw-r--r--Source/WebKit2/PluginProcess/PluginControllerProxy.h3
-rw-r--r--Source/WebKit2/PluginProcess/PluginControllerProxy.messages.in9
-rw-r--r--Source/WebKit2/PluginProcess/PluginProcess.cpp4
-rw-r--r--Source/WebKit2/PluginProcess/PluginProcess.h1
-rw-r--r--Source/WebKit2/PluginProcess/WebProcessConnection.cpp6
-rw-r--r--Source/WebKit2/PluginProcess/WebProcessConnection.h1
-rw-r--r--Source/WebKit2/PluginProcess/mac/PluginProcessMac.mm9
-rw-r--r--Source/WebKit2/PluginProcess/mac/PluginProcessMainMac.mm5
-rw-r--r--Source/WebKit2/PluginProcess/qt/PluginProcessMainQt.cpp6
-rw-r--r--Source/WebKit2/PluginProcess/unix/PluginControllerProxyUnix.cpp (renamed from Source/WebKit2/PluginProcess/gtk/PluginControllerProxyGtk.cpp)0
-rw-r--r--Source/WebKit2/PluginProcess/unix/PluginProcessMainUnix.cpp (renamed from Source/WebKit2/PluginProcess/gtk/PluginProcessMainGtk.cpp)64
-rw-r--r--Source/WebKit2/PluginProcess/unix/PluginProcessMainUnix.h (renamed from Source/WebKit2/PluginProcess/gtk/PluginProcessMainGtk.h)6
-rw-r--r--Source/WebKit2/PluginProcess/unix/PluginProcessUnix.cpp (renamed from Source/WebKit2/PluginProcess/gtk/PluginProcessGtk.cpp)2
-rw-r--r--Source/WebKit2/Scripts/webkit2/messages.py17
-rw-r--r--Source/WebKit2/Shared/API/c/WKArray.cpp6
-rw-r--r--Source/WebKit2/Shared/API/c/WKArray.h1
-rw-r--r--Source/WebKit2/Shared/API/c/WKBase.h12
-rw-r--r--Source/WebKit2/Shared/API/c/WKSharedAPICast.h28
-rw-r--r--Source/WebKit2/Shared/API/c/WKURLResponse.cpp10
-rw-r--r--Source/WebKit2/Shared/API/c/WKURLResponse.h4
-rw-r--r--Source/WebKit2/Shared/API/c/cf/WKURLCF.cpp3
-rw-r--r--Source/WebKit2/Shared/APIClientTraits.cpp6
-rw-r--r--Source/WebKit2/Shared/APIClientTraits.h7
-rw-r--r--Source/WebKit2/Shared/ImmutableArray.cpp7
-rw-r--r--Source/WebKit2/Shared/ImmutableArray.h8
-rw-r--r--Source/WebKit2/Shared/Network/NetworkProcessCreationParameters.cpp58
-rw-r--r--Source/WebKit2/Shared/Network/NetworkProcessCreationParameters.h55
-rw-r--r--Source/WebKit2/Shared/Plugins/NPRemoteObjectMap.cpp2
-rw-r--r--Source/WebKit2/Shared/Plugins/Netscape/mac/NetscapePluginModuleMac.mm7
-rw-r--r--Source/WebKit2/Shared/ShareableSurface.cpp14
-rw-r--r--Source/WebKit2/Shared/ShareableSurface.h4
-rw-r--r--Source/WebKit2/Shared/UserMessageCoders.h4
-rw-r--r--Source/WebKit2/Shared/WebConnection.cpp43
-rw-r--r--Source/WebKit2/Shared/WebConnection.h26
-rw-r--r--Source/WebKit2/Shared/WebConnection.messages.in25
-rw-r--r--Source/WebKit2/Shared/WebCoreArgumentCoders.cpp323
-rw-r--r--Source/WebKit2/Shared/WebCoreArgumentCoders.h47
-rw-r--r--Source/WebKit2/Shared/WebGeolocationPosition.cpp19
-rw-r--r--Source/WebKit2/Shared/WebGeolocationPosition.h30
-rw-r--r--Source/WebKit2/Shared/WebPageGroupData.cpp24
-rw-r--r--Source/WebKit2/Shared/WebPageGroupData.h10
-rw-r--r--Source/WebKit2/Shared/WebPreferencesStore.cpp4
-rw-r--r--Source/WebKit2/Shared/WebPreferencesStore.h5
-rw-r--r--Source/WebKit2/Shared/WebProcessCreationParameters.cpp14
-rw-r--r--Source/WebKit2/Shared/WebProcessCreationParameters.h9
-rw-r--r--Source/WebKit2/Shared/WebRenderObject.cpp2
-rw-r--r--Source/WebKit2/Shared/mac/PDFKitImports.h4
-rw-r--r--Source/WebKit2/Shared/mac/PDFKitImports.mm9
-rw-r--r--Source/WebKit2/Shared/mac/WebCoreArgumentCodersMac.mm14
-rw-r--r--Source/WebKit2/Shared/qt/ArgumentCodersQt.cpp4
-rw-r--r--Source/WebKit2/Shared/qt/ShareableBitmapQt.cpp13
-rw-r--r--Source/WebKit2/Shared/qt/WebCoreArgumentCodersQt.cpp80
-rw-r--r--Source/WebKit2/Shared/qt/WebEventFactoryQt.h1
-rw-r--r--Source/WebKit2/Shared/soup/WebCoreArgumentCodersSoup.cpp165
-rw-r--r--Source/WebKit2/Shared/win/WebCoreArgumentCodersWin.cpp41
-rw-r--r--Source/WebKit2/Target.pri3
-rw-r--r--Source/WebKit2/UIProcess/API/C/WKContext.cpp8
-rw-r--r--Source/WebKit2/UIProcess/API/C/WKContextPrivate.h6
-rw-r--r--Source/WebKit2/UIProcess/API/C/WKGeolocationPosition.cpp9
-rw-r--r--Source/WebKit2/UIProcess/API/C/WKGeolocationPosition.h1
-rw-r--r--Source/WebKit2/UIProcess/API/C/WKIconDatabase.h8
-rw-r--r--Source/WebKit2/UIProcess/API/C/WKPage.cpp14
-rw-r--r--Source/WebKit2/UIProcess/API/C/WKPage.h2
-rw-r--r--Source/WebKit2/UIProcess/API/C/WKPageGroup.cpp10
-rw-r--r--Source/WebKit2/UIProcess/API/C/WKPageGroup.h3
-rw-r--r--Source/WebKit2/UIProcess/API/C/WKPagePrivate.h2
-rw-r--r--Source/WebKit2/UIProcess/API/C/WKPreferences.cpp32
-rw-r--r--Source/WebKit2/UIProcess/API/C/WKPreferences.h6
-rw-r--r--Source/WebKit2/UIProcess/API/C/WKPreferencesPrivate.h8
-rw-r--r--Source/WebKit2/UIProcess/API/C/soup/WKSoupRequestManager.h2
-rw-r--r--Source/WebKit2/UIProcess/API/efl/BatteryProvider.cpp24
-rw-r--r--Source/WebKit2/UIProcess/API/efl/BatteryProvider.h6
-rw-r--r--Source/WebKit2/UIProcess/API/efl/EWebKit2.h5
-rw-r--r--Source/WebKit2/UIProcess/API/efl/EflViewportHandler.cpp5
-rw-r--r--Source/WebKit2/UIProcess/API/efl/EflViewportHandler.h2
-rw-r--r--Source/WebKit2/UIProcess/API/efl/NetworkInfoProvider.cpp20
-rw-r--r--Source/WebKit2/UIProcess/API/efl/NetworkInfoProvider.h6
-rw-r--r--Source/WebKit2/UIProcess/API/efl/PageClientImpl.cpp3
-rw-r--r--Source/WebKit2/UIProcess/API/efl/VibrationProvider.cpp20
-rw-r--r--Source/WebKit2/UIProcess/API/efl/VibrationProvider.h6
-rw-r--r--Source/WebKit2/UIProcess/API/efl/ewk_back_forward_list.cpp2
-rw-r--r--Source/WebKit2/UIProcess/API/efl/ewk_back_forward_list_item.cpp16
-rw-r--r--Source/WebKit2/UIProcess/API/efl/ewk_back_forward_list_item.h18
-rw-r--r--Source/WebKit2/UIProcess/API/efl/ewk_context.cpp51
-rw-r--r--Source/WebKit2/UIProcess/API/efl/ewk_context.h74
-rw-r--r--Source/WebKit2/UIProcess/API/efl/ewk_context_download_client.cpp9
-rw-r--r--Source/WebKit2/UIProcess/API/efl/ewk_context_history_client.cpp130
-rw-r--r--Source/WebKit2/UIProcess/API/efl/ewk_context_history_client_private.h44
-rw-r--r--Source/WebKit2/UIProcess/API/efl/ewk_context_private.h3
-rw-r--r--Source/WebKit2/UIProcess/API/efl/ewk_context_request_manager_client.cpp2
-rw-r--r--Source/WebKit2/UIProcess/API/efl/ewk_cookie_manager.cpp10
-rw-r--r--Source/WebKit2/UIProcess/API/efl/ewk_cookie_manager.h6
-rw-r--r--Source/WebKit2/UIProcess/API/efl/ewk_download_job.cpp9
-rw-r--r--Source/WebKit2/UIProcess/API/efl/ewk_download_job.h2
-rw-r--r--Source/WebKit2/UIProcess/API/efl/ewk_download_job_private.h2
-rw-r--r--Source/WebKit2/UIProcess/API/efl/ewk_error.cpp (renamed from Source/WebKit2/UIProcess/API/efl/ewk_web_error.cpp)50
-rw-r--r--Source/WebKit2/UIProcess/API/efl/ewk_error.h (renamed from Source/WebKit2/UIProcess/API/efl/ewk_web_error.h)47
-rw-r--r--Source/WebKit2/UIProcess/API/efl/ewk_error_private.h (renamed from Source/WebKit2/UIProcess/API/efl/ewk_web_error_private.h)11
-rw-r--r--Source/WebKit2/UIProcess/API/efl/ewk_main.cpp18
-rw-r--r--Source/WebKit2/UIProcess/API/efl/ewk_navigation_data.cpp76
-rw-r--r--Source/WebKit2/UIProcess/API/efl/ewk_navigation_data.h105
-rw-r--r--Source/WebKit2/UIProcess/API/efl/ewk_navigation_data_private.h58
-rw-r--r--Source/WebKit2/UIProcess/API/efl/ewk_navigation_policy_decision.cpp10
-rw-r--r--Source/WebKit2/UIProcess/API/efl/ewk_resource.cpp (renamed from Source/WebKit2/UIProcess/API/efl/ewk_web_resource.cpp)26
-rw-r--r--Source/WebKit2/UIProcess/API/efl/ewk_resource.h (renamed from Source/WebKit2/UIProcess/API/efl/ewk_web_resource.h)20
-rw-r--r--Source/WebKit2/UIProcess/API/efl/ewk_resource_private.h (renamed from Source/WebKit2/UIProcess/API/efl/ewk_web_resource_private.h)10
-rw-r--r--Source/WebKit2/UIProcess/API/efl/ewk_settings.cpp49
-rw-r--r--Source/WebKit2/UIProcess/API/efl/ewk_settings.h99
-rw-r--r--Source/WebKit2/UIProcess/API/efl/ewk_url_request.cpp41
-rw-r--r--Source/WebKit2/UIProcess/API/efl/ewk_url_request_private.h23
-rw-r--r--Source/WebKit2/UIProcess/API/efl/ewk_view.cpp318
-rw-r--r--Source/WebKit2/UIProcess/API/efl/ewk_view.h172
-rw-r--r--Source/WebKit2/UIProcess/API/efl/ewk_view_find_client.cpp16
-rw-r--r--Source/WebKit2/UIProcess/API/efl/ewk_view_loader_client.cpp14
-rw-r--r--Source/WebKit2/UIProcess/API/efl/ewk_view_private.h22
-rw-r--r--Source/WebKit2/UIProcess/API/efl/ewk_view_resource_load_client.cpp25
-rw-r--r--Source/WebKit2/UIProcess/API/efl/ewk_view_ui_client.cpp48
-rw-r--r--Source/WebKit2/UIProcess/API/efl/tests/UnitTestUtils/EWK2UnitTestBase.cpp110
-rw-r--r--Source/WebKit2/UIProcess/API/efl/tests/UnitTestUtils/EWK2UnitTestBase.h12
-rw-r--r--Source/WebKit2/UIProcess/API/efl/tests/UnitTestUtils/EWK2UnitTestEnvironment.cpp3
-rw-r--r--Source/WebKit2/UIProcess/API/efl/tests/UnitTestUtils/EWK2UnitTestEnvironment.h5
-rw-r--r--Source/WebKit2/UIProcess/API/efl/tests/UnitTestUtils/EWK2UnitTestMain.cpp18
-rw-r--r--Source/WebKit2/UIProcess/API/efl/tests/UnitTestUtils/EWK2UnitTestServer.cpp20
-rw-r--r--Source/WebKit2/UIProcess/API/efl/tests/UnitTestUtils/EWK2UnitTestServer.h6
-rw-r--r--Source/WebKit2/UIProcess/API/efl/tests/resources/frame_flattening_test.html4
-rw-r--r--Source/WebKit2/UIProcess/API/efl/tests/resources/frame_flattening_test_subframe.html11
-rw-r--r--Source/WebKit2/UIProcess/API/efl/tests/resources/local_file_access.html31
-rw-r--r--Source/WebKit2/UIProcess/API/efl/tests/resources/redirect_url_to_default.html (renamed from Source/WebKit2/UIProcess/API/efl/tests/resources/redirect_uri_to_default.html)0
-rw-r--r--Source/WebKit2/UIProcess/API/efl/tests/resources/window_move_resize.html15
-rw-r--r--Source/WebKit2/UIProcess/API/efl/tests/test_ewk2_back_forward_list.cpp76
-rw-r--r--Source/WebKit2/UIProcess/API/efl/tests/test_ewk2_context.cpp20
-rw-r--r--Source/WebKit2/UIProcess/API/efl/tests/test_ewk2_context_history_callbacks.cpp183
-rw-r--r--Source/WebKit2/UIProcess/API/efl/tests/test_ewk2_cookie_manager.cpp90
-rw-r--r--Source/WebKit2/UIProcess/API/efl/tests/test_ewk2_download_job.cpp24
-rw-r--r--Source/WebKit2/UIProcess/API/efl/tests/test_ewk2_intents.cpp38
-rw-r--r--Source/WebKit2/UIProcess/API/efl/tests/test_ewk2_refptr_evas_object.cpp48
-rw-r--r--Source/WebKit2/UIProcess/API/efl/tests/test_ewk2_settings.cpp62
-rw-r--r--Source/WebKit2/UIProcess/API/efl/tests/test_ewk2_view.cpp347
-rw-r--r--Source/WebKit2/UIProcess/API/gtk/WebKitDownloadClient.cpp24
-rw-r--r--Source/WebKit2/UIProcess/API/gtk/WebKitFaviconDatabase.cpp391
-rw-r--r--Source/WebKit2/UIProcess/API/gtk/WebKitFaviconDatabase.h94
-rw-r--r--Source/WebKit2/UIProcess/API/gtk/WebKitFaviconDatabasePrivate.h32
-rw-r--r--Source/WebKit2/UIProcess/API/gtk/WebKitJavascriptResult.cpp13
-rw-r--r--Source/WebKit2/UIProcess/API/gtk/WebKitJavascriptResultPrivate.h4
-rw-r--r--Source/WebKit2/UIProcess/API/gtk/WebKitLoaderClient.cpp1
-rw-r--r--Source/WebKit2/UIProcess/API/gtk/WebKitPrivate.h1
-rw-r--r--Source/WebKit2/UIProcess/API/gtk/WebKitRequestManagerClient.cpp6
-rw-r--r--Source/WebKit2/UIProcess/API/gtk/WebKitSecurityManager.cpp2
-rw-r--r--Source/WebKit2/UIProcess/API/gtk/WebKitSettings.cpp58
-rw-r--r--Source/WebKit2/UIProcess/API/gtk/WebKitSettings.h7
-rw-r--r--Source/WebKit2/UIProcess/API/gtk/WebKitURISchemeRequest.cpp21
-rw-r--r--Source/WebKit2/UIProcess/API/gtk/WebKitURISchemeRequest.h19
-rw-r--r--Source/WebKit2/UIProcess/API/gtk/WebKitURISchemeRequestPrivate.h2
-rw-r--r--Source/WebKit2/UIProcess/API/gtk/WebKitWebContext.cpp185
-rw-r--r--Source/WebKit2/UIProcess/API/gtk/WebKitWebContext.h10
-rw-r--r--Source/WebKit2/UIProcess/API/gtk/WebKitWebContextPrivate.h13
-rw-r--r--Source/WebKit2/UIProcess/API/gtk/WebKitWebView.cpp236
-rw-r--r--Source/WebKit2/UIProcess/API/gtk/WebKitWebView.h181
-rw-r--r--Source/WebKit2/UIProcess/API/gtk/WebKitWebViewBase.cpp50
-rw-r--r--Source/WebKit2/UIProcess/API/gtk/docs/webkit2gtk-docs.sgml1
-rw-r--r--Source/WebKit2/UIProcess/API/gtk/docs/webkit2gtk-sections.txt34
-rw-r--r--Source/WebKit2/UIProcess/API/gtk/tests/GNUmakefile.am18
-rw-r--r--Source/WebKit2/UIProcess/API/gtk/tests/TestBackForwardList.cpp5
-rw-r--r--Source/WebKit2/UIProcess/API/gtk/tests/TestCookieManager.cpp2
-rw-r--r--Source/WebKit2/UIProcess/API/gtk/tests/TestLoaderClient.cpp3
-rw-r--r--Source/WebKit2/UIProcess/API/gtk/tests/TestMain.cpp12
-rw-r--r--Source/WebKit2/UIProcess/API/gtk/tests/TestResources.cpp32
-rw-r--r--Source/WebKit2/UIProcess/API/gtk/tests/TestSSL.cpp9
-rw-r--r--Source/WebKit2/UIProcess/API/gtk/tests/TestWebKitFaviconDatabase.cpp246
-rw-r--r--Source/WebKit2/UIProcess/API/gtk/tests/TestWebKitPolicyClient.cpp12
-rw-r--r--Source/WebKit2/UIProcess/API/gtk/tests/TestWebKitSettings.cpp16
-rw-r--r--Source/WebKit2/UIProcess/API/gtk/tests/TestWebKitWebContext.cpp13
-rw-r--r--Source/WebKit2/UIProcess/API/gtk/tests/TestWebKitWebView.cpp11
-rw-r--r--Source/WebKit2/UIProcess/API/gtk/tests/WebViewTest.cpp18
-rw-r--r--Source/WebKit2/UIProcess/API/gtk/tests/WebViewTest.h1
-rw-r--r--Source/WebKit2/UIProcess/API/gtk/tests/resources/link-title.js1
-rw-r--r--Source/WebKit2/UIProcess/API/gtk/tests/resources/webkit2gtk-tests.gresource.xml6
-rw-r--r--Source/WebKit2/UIProcess/API/gtk/webkit2.h1
-rw-r--r--Source/WebKit2/UIProcess/API/mac/WKBrowsingContextGroup.h5
-rw-r--r--Source/WebKit2/UIProcess/API/mac/WKBrowsingContextGroup.mm41
-rw-r--r--Source/WebKit2/UIProcess/API/mac/WKPrintingView.mm10
-rw-r--r--Source/WebKit2/UIProcess/API/mac/WKView.mm4
-rw-r--r--Source/WebKit2/UIProcess/API/qt/qquickwebpage.cpp2
-rw-r--r--Source/WebKit2/UIProcess/API/qt/qquickwebview.cpp47
-rw-r--r--Source/WebKit2/UIProcess/API/qt/qquickwebview_p.h1
-rw-r--r--Source/WebKit2/UIProcess/API/qt/qquickwebview_p_p.h16
-rw-r--r--Source/WebKit2/UIProcess/API/qt/raw/qrawwebview.cpp23
-rw-r--r--Source/WebKit2/UIProcess/API/qt/raw/qrawwebview_p.h6
-rw-r--r--Source/WebKit2/UIProcess/API/qt/raw/qrawwebview_p_p.h2
-rw-r--r--Source/WebKit2/UIProcess/API/qt/tests/inspectorserver/inspectorserver.pro2
-rw-r--r--Source/WebKit2/UIProcess/API/qt/tests/publicapi/publicapi.pro2
-rw-r--r--Source/WebKit2/UIProcess/API/qt/tests/qmltests/DesktopBehavior.pro2
-rw-r--r--Source/WebKit2/UIProcess/API/qt/tests/qmltests/WebView.pro2
-rw-r--r--Source/WebKit2/UIProcess/API/qt/tests/qmltests/WebView/tst_doubleTapToZoom.qml3
-rw-r--r--Source/WebKit2/UIProcess/API/qt/tests/qmltests/WebView/tst_fitToView.qml3
-rw-r--r--Source/WebKit2/UIProcess/API/qt/tests/qmltests/WebView/tst_wheelEventHandling.qml7
-rw-r--r--Source/WebKit2/UIProcess/API/qt/tests/qmltests/common/TestWebView.qml42
-rw-r--r--Source/WebKit2/UIProcess/API/qt/tests/qquickwebview/qquickwebview.pro2
-rw-r--r--Source/WebKit2/UIProcess/API/qt/tests/qquickwebview/tst_qquickwebview.cpp5
-rw-r--r--Source/WebKit2/UIProcess/API/qt/tests/qrawwebview/qrawwebview.pro2
-rw-r--r--Source/WebKit2/UIProcess/API/qt/tests/qrawwebview/tst_qrawwebview.cpp18
-rw-r--r--Source/WebKit2/UIProcess/API/qt/tests/tests.pri2
-rw-r--r--Source/WebKit2/UIProcess/API/qt/tests/util.cpp13
-rw-r--r--Source/WebKit2/UIProcess/API/qt/tests/util.h1
-rw-r--r--Source/WebKit2/UIProcess/CoordinatedGraphics/CoordinatedBackingStore.cpp10
-rw-r--r--Source/WebKit2/UIProcess/CoordinatedGraphics/LayerTreeCoordinatorProxy.cpp24
-rw-r--r--Source/WebKit2/UIProcess/CoordinatedGraphics/LayerTreeCoordinatorProxy.h9
-rw-r--r--Source/WebKit2/UIProcess/CoordinatedGraphics/LayerTreeCoordinatorProxy.messages.in6
-rw-r--r--Source/WebKit2/UIProcess/CoordinatedGraphics/LayerTreeRenderer.cpp24
-rw-r--r--Source/WebKit2/UIProcess/CoordinatedGraphics/LayerTreeRenderer.h8
-rw-r--r--Source/WebKit2/UIProcess/GeolocationPermissionRequestManagerProxy.cpp2
-rw-r--r--Source/WebKit2/UIProcess/InspectorServer/WebInspectorServer.cpp4
-rw-r--r--Source/WebKit2/UIProcess/InspectorServer/WebSocketServerConnection.cpp4
-rw-r--r--Source/WebKit2/UIProcess/InspectorServer/qt/WebInspectorServerQt.cpp6
-rw-r--r--Source/WebKit2/UIProcess/Launcher/ProcessLauncher.cpp7
-rw-r--r--Source/WebKit2/UIProcess/Launcher/ProcessLauncher.h3
-rw-r--r--Source/WebKit2/UIProcess/Launcher/mac/ProcessLauncherMac.mm19
-rw-r--r--Source/WebKit2/UIProcess/Launcher/qt/ProcessLauncherQt.cpp2
-rw-r--r--Source/WebKit2/UIProcess/Network/NetworkProcessProxy.cpp110
-rw-r--r--Source/WebKit2/UIProcess/Network/NetworkProcessProxy.h71
-rw-r--r--Source/WebKit2/UIProcess/Network/mac/NetworkProcessProxyMac.mm44
-rw-r--r--Source/WebKit2/UIProcess/Notifications/NotificationPermissionRequestManagerProxy.cpp2
-rw-r--r--Source/WebKit2/UIProcess/Notifications/WebNotificationManagerProxy.cpp1
-rw-r--r--Source/WebKit2/UIProcess/Notifications/WebNotificationManagerProxy.h16
-rw-r--r--Source/WebKit2/UIProcess/PageClient.h2
-rw-r--r--Source/WebKit2/UIProcess/PageViewportController.cpp107
-rw-r--r--Source/WebKit2/UIProcess/PageViewportController.h11
-rw-r--r--Source/WebKit2/UIProcess/PageViewportControllerClient.h7
-rw-r--r--Source/WebKit2/UIProcess/Plugins/PluginProcessManager.cpp9
-rw-r--r--Source/WebKit2/UIProcess/Plugins/PluginProcessManager.h2
-rw-r--r--Source/WebKit2/UIProcess/Plugins/PluginProcessProxy.cpp8
-rw-r--r--Source/WebKit2/UIProcess/Plugins/PluginProcessProxy.h1
-rw-r--r--Source/WebKit2/UIProcess/Plugins/WebPluginSiteDataManager.cpp4
-rw-r--r--Source/WebKit2/UIProcess/Plugins/mac/PluginProcessProxyMac.mm45
-rw-r--r--Source/WebKit2/UIProcess/Plugins/unix/PluginProcessProxyUnix.cpp (renamed from Source/WebKit2/UIProcess/Plugins/gtk/PluginProcessProxyGtk.cpp)34
-rw-r--r--Source/WebKit2/UIProcess/WebApplicationCacheManagerProxy.cpp1
-rw-r--r--Source/WebKit2/UIProcess/WebApplicationCacheManagerProxy.h10
-rw-r--r--Source/WebKit2/UIProcess/WebBatteryManagerProxy.cpp1
-rw-r--r--Source/WebKit2/UIProcess/WebBatteryManagerProxy.h14
-rw-r--r--Source/WebKit2/UIProcess/WebConnectionToWebProcess.cpp44
-rw-r--r--Source/WebKit2/UIProcess/WebConnectionToWebProcess.h12
-rw-r--r--Source/WebKit2/UIProcess/WebContext.cpp244
-rw-r--r--Source/WebKit2/UIProcess/WebContext.h44
-rw-r--r--Source/WebKit2/UIProcess/WebCookieManagerProxy.cpp1
-rw-r--r--Source/WebKit2/UIProcess/WebCookieManagerProxy.h7
-rw-r--r--Source/WebKit2/UIProcess/WebDatabaseManagerProxy.cpp6
-rw-r--r--Source/WebKit2/UIProcess/WebDatabaseManagerProxy.h15
-rw-r--r--Source/WebKit2/UIProcess/WebFullScreenManagerProxy.cpp4
-rw-r--r--Source/WebKit2/UIProcess/WebGeolocationManagerProxy.cpp1
-rw-r--r--Source/WebKit2/UIProcess/WebGeolocationManagerProxy.h14
-rw-r--r--Source/WebKit2/UIProcess/WebIconDatabase.cpp30
-rw-r--r--Source/WebKit2/UIProcess/WebIconDatabase.h22
-rw-r--r--Source/WebKit2/UIProcess/WebIconDatabase.messages.in1
-rw-r--r--Source/WebKit2/UIProcess/WebIconDatabaseClient.cpp8
-rw-r--r--Source/WebKit2/UIProcess/WebIconDatabaseClient.h1
-rw-r--r--Source/WebKit2/UIProcess/WebInspectorProxy.h2
-rw-r--r--Source/WebKit2/UIProcess/WebIntentData.cpp2
-rw-r--r--Source/WebKit2/UIProcess/WebKeyValueStorageManagerProxy.cpp1
-rw-r--r--Source/WebKit2/UIProcess/WebKeyValueStorageManagerProxy.h16
-rw-r--r--Source/WebKit2/UIProcess/WebMediaCacheManagerProxy.cpp1
-rw-r--r--Source/WebKit2/UIProcess/WebMediaCacheManagerProxy.h16
-rw-r--r--Source/WebKit2/UIProcess/WebNetworkInfoManagerProxy.cpp3
-rw-r--r--Source/WebKit2/UIProcess/WebNetworkInfoManagerProxy.h19
-rw-r--r--Source/WebKit2/UIProcess/WebPageGroup.cpp62
-rw-r--r--Source/WebKit2/UIProcess/WebPageGroup.h23
-rw-r--r--Source/WebKit2/UIProcess/WebPageProxy.cpp114
-rw-r--r--Source/WebKit2/UIProcess/WebPageProxy.h16
-rw-r--r--Source/WebKit2/UIProcess/WebPageProxy.messages.in66
-rw-r--r--Source/WebKit2/UIProcess/WebProcessProxy.cpp98
-rw-r--r--Source/WebKit2/UIProcess/WebProcessProxy.h5
-rw-r--r--Source/WebKit2/UIProcess/WebProcessProxy.messages.in1
-rw-r--r--Source/WebKit2/UIProcess/WebResourceCacheManagerProxy.cpp7
-rw-r--r--Source/WebKit2/UIProcess/WebResourceCacheManagerProxy.h15
-rw-r--r--Source/WebKit2/UIProcess/WebVibrationProxy.cpp1
-rw-r--r--Source/WebKit2/UIProcess/WebVibrationProxy.h14
-rw-r--r--Source/WebKit2/UIProcess/efl/WebInspectorProxyEfl.cpp56
-rw-r--r--Source/WebKit2/UIProcess/efl/WebPageProxyEfl.cpp10
-rw-r--r--Source/WebKit2/UIProcess/gtk/WebContextGtk.cpp4
-rw-r--r--Source/WebKit2/UIProcess/gtk/WebPageProxyGtk.cpp5
-rw-r--r--Source/WebKit2/UIProcess/mac/WebContextMac.mm11
-rw-r--r--Source/WebKit2/UIProcess/mac/WebInspectorProxyMac.mm2
-rw-r--r--Source/WebKit2/UIProcess/mac/WebProcessProxyMac.mm16
-rw-r--r--Source/WebKit2/UIProcess/qt/PageViewportControllerClientQt.cpp15
-rw-r--r--Source/WebKit2/UIProcess/qt/PageViewportControllerClientQt.h4
-rw-r--r--Source/WebKit2/UIProcess/qt/QtPageClient.cpp21
-rw-r--r--Source/WebKit2/UIProcess/qt/QtPageClient.h2
-rw-r--r--Source/WebKit2/UIProcess/qt/QtPanGestureRecognizer.cpp22
-rw-r--r--Source/WebKit2/UIProcess/qt/QtPinchGestureRecognizer.cpp15
-rw-r--r--Source/WebKit2/UIProcess/qt/QtWebIconDatabaseClient.cpp4
-rw-r--r--Source/WebKit2/UIProcess/qt/QtWebPageEventHandler.cpp73
-rw-r--r--Source/WebKit2/UIProcess/qt/QtWebPageLoadClient.cpp3
-rw-r--r--Source/WebKit2/UIProcess/qt/WebPageProxyQt.cpp43
-rw-r--r--Source/WebKit2/UIProcess/soup/WebSoupRequestManagerClient.cpp4
-rw-r--r--Source/WebKit2/UIProcess/soup/WebSoupRequestManagerClient.h2
-rw-r--r--Source/WebKit2/UIProcess/soup/WebSoupRequestManagerProxy.cpp5
-rw-r--r--Source/WebKit2/UIProcess/soup/WebSoupRequestManagerProxy.h15
-rw-r--r--Source/WebKit2/UIProcess/soup/WebSoupRequestManagerProxy.messages.in1
-rw-r--r--Source/WebKit2/WebKit2.xcodeproj/project.pbxproj365
-rw-r--r--Source/WebKit2/WebKit2Prefix.h2
-rw-r--r--Source/WebKit2/WebProcess.pro2
-rw-r--r--Source/WebKit2/WebProcess/Authentication/AuthenticationManager.cpp1
-rw-r--r--Source/WebKit2/WebProcess/Authentication/AuthenticationManager.h7
-rw-r--r--Source/WebKit2/WebProcess/Downloads/soup/DownloadSoup.cpp49
-rw-r--r--Source/WebKit2/WebProcess/FullScreen/WebFullScreenManager.cpp2
-rw-r--r--Source/WebKit2/WebProcess/Geolocation/GeolocationPermissionRequestManager.cpp4
-rw-r--r--Source/WebKit2/WebProcess/Geolocation/WebGeolocationManager.cpp8
-rw-r--r--Source/WebKit2/WebProcess/Geolocation/WebGeolocationManager.h24
-rw-r--r--Source/WebKit2/WebProcess/InjectedBundle/API/c/WKBundle.cpp34
-rw-r--r--Source/WebKit2/WebProcess/InjectedBundle/API/c/WKBundleAPICast.h28
-rw-r--r--Source/WebKit2/WebProcess/InjectedBundle/API/c/WKBundleFrame.cpp12
-rw-r--r--Source/WebKit2/WebProcess/InjectedBundle/API/c/WKBundleInspector.cpp2
-rw-r--r--Source/WebKit2/WebProcess/InjectedBundle/API/c/WKBundleIntent.cpp2
-rw-r--r--Source/WebKit2/WebProcess/InjectedBundle/API/c/WKBundlePage.cpp30
-rw-r--r--Source/WebKit2/WebProcess/InjectedBundle/API/c/WKBundlePage.h4
-rw-r--r--Source/WebKit2/WebProcess/InjectedBundle/API/c/WKBundlePrivate.h14
-rw-r--r--Source/WebKit2/WebProcess/InjectedBundle/API/mac/WKDOMDocument.h44
-rw-r--r--Source/WebKit2/WebProcess/InjectedBundle/API/mac/WKDOMDocument.mm64
-rw-r--r--Source/WebKit2/WebProcess/InjectedBundle/API/mac/WKDOMElement.h41
-rw-r--r--Source/WebKit2/WebProcess/InjectedBundle/API/mac/WKDOMElement.mm61
-rw-r--r--Source/WebKit2/WebProcess/InjectedBundle/API/mac/WKDOMInternals.h116
-rw-r--r--Source/WebKit2/WebProcess/InjectedBundle/API/mac/WKDOMInternals.mm170
-rw-r--r--Source/WebKit2/WebProcess/InjectedBundle/API/mac/WKDOMNode.h48
-rw-r--r--Source/WebKit2/WebProcess/InjectedBundle/API/mac/WKDOMNode.mm100
-rw-r--r--Source/WebKit2/WebProcess/InjectedBundle/API/mac/WKDOMRange.h53
-rw-r--r--Source/WebKit2/WebProcess/InjectedBundle/API/mac/WKDOMRange.mm142
-rw-r--r--Source/WebKit2/WebProcess/InjectedBundle/API/mac/WKDOMText.h37
-rw-r--r--Source/WebKit2/WebProcess/InjectedBundle/API/mac/WKDOMText.mm43
-rw-r--r--Source/WebKit2/WebProcess/InjectedBundle/API/mac/WKDOMTextIterator.h (renamed from Source/WebKit2/Shared/CoreIPCSupport/InjectedBundleMessageKinds.h)33
-rw-r--r--Source/WebKit2/WebProcess/InjectedBundle/API/mac/WKDOMTextIterator.mm83
-rw-r--r--Source/WebKit2/WebProcess/InjectedBundle/API/mac/WKWebProcessPlugIn.h45
-rw-r--r--Source/WebKit2/WebProcess/InjectedBundle/API/mac/WKWebProcessPlugIn.mm129
-rw-r--r--Source/WebKit2/WebProcess/InjectedBundle/API/mac/WKWebProcessPlugInBrowserContextController.h40
-rw-r--r--Source/WebKit2/WebProcess/InjectedBundle/API/mac/WKWebProcessPlugInBrowserContextController.mm86
-rw-r--r--Source/WebKit2/WebProcess/InjectedBundle/API/mac/WKWebProcessPlugInBrowserContextControllerInternal.h36
-rw-r--r--Source/WebKit2/WebProcess/InjectedBundle/API/mac/WKWebProcessPlugInBrowserContextControllerPrivate.h36
-rw-r--r--Source/WebKit2/WebProcess/InjectedBundle/API/mac/WKWebProcessPlugInInternal.h37
-rw-r--r--Source/WebKit2/WebProcess/InjectedBundle/DOM/InjectedBundleNodeHandle.cpp4
-rw-r--r--Source/WebKit2/WebProcess/InjectedBundle/DOM/InjectedBundleRangeHandle.cpp4
-rw-r--r--Source/WebKit2/WebProcess/InjectedBundle/InjectedBundle.cpp68
-rw-r--r--Source/WebKit2/WebProcess/InjectedBundle/InjectedBundle.h10
-rw-r--r--Source/WebKit2/WebProcess/InjectedBundle/InjectedBundleIntent.cpp2
-rw-r--r--Source/WebKit2/WebProcess/InjectedBundle/mac/InjectedBundleMac.mm (renamed from Source/WebKit2/WebProcess/InjectedBundle/mac/InjectedBundleMac.cpp)63
-rw-r--r--Source/WebKit2/WebProcess/Notifications/NotificationPermissionRequestManager.cpp3
-rw-r--r--Source/WebKit2/WebProcess/Notifications/WebNotificationManager.cpp12
-rw-r--r--Source/WebKit2/WebProcess/Plugins/Netscape/JSNPObject.cpp6
-rw-r--r--Source/WebKit2/WebProcess/Plugins/Netscape/JSNPObject.h4
-rw-r--r--Source/WebKit2/WebProcess/Plugins/Netscape/NPRuntimeObjectMap.cpp2
-rw-r--r--Source/WebKit2/WebProcess/Plugins/Netscape/NetscapeBrowserFuncs.cpp16
-rw-r--r--Source/WebKit2/WebProcess/Plugins/Netscape/NetscapePlugin.cpp29
-rw-r--r--Source/WebKit2/WebProcess/Plugins/Netscape/NetscapePlugin.h6
-rw-r--r--Source/WebKit2/WebProcess/Plugins/Netscape/mac/NetscapeSandboxFunctions.mm4
-rw-r--r--Source/WebKit2/WebProcess/Plugins/Netscape/unix/PluginProxyUnix.cpp (renamed from Source/WebKit2/WebProcess/Plugins/Netscape/gtk/PluginProxyGtk.cpp)0
-rw-r--r--Source/WebKit2/WebProcess/Plugins/Netscape/x11/NetscapePluginX11.cpp25
-rw-r--r--Source/WebKit2/WebProcess/Plugins/PDF/PDFPlugin.h104
-rw-r--r--Source/WebKit2/WebProcess/Plugins/PDF/PDFPlugin.mm582
-rw-r--r--Source/WebKit2/WebProcess/Plugins/PDF/SimplePDFPlugin.h (renamed from Source/WebKit2/WebProcess/Plugins/PDF/BuiltInPDFView.h)61
-rw-r--r--Source/WebKit2/WebProcess/Plugins/PDF/SimplePDFPlugin.mm (renamed from Source/WebKit2/WebProcess/Plugins/PDF/BuiltInPDFView.mm)360
-rw-r--r--Source/WebKit2/WebProcess/Plugins/Plugin.h9
-rw-r--r--Source/WebKit2/WebProcess/Plugins/PluginProcessConnection.cpp37
-rw-r--r--Source/WebKit2/WebProcess/Plugins/PluginProcessConnection.h1
-rw-r--r--Source/WebKit2/WebProcess/Plugins/PluginProxy.cpp29
-rw-r--r--Source/WebKit2/WebProcess/Plugins/PluginProxy.h5
-rw-r--r--Source/WebKit2/WebProcess/Plugins/PluginView.cpp99
-rw-r--r--Source/WebKit2/WebProcess/Plugins/PluginView.h26
-rw-r--r--Source/WebKit2/WebProcess/WebConnectionToUIProcess.cpp42
-rw-r--r--Source/WebKit2/WebProcess/WebConnectionToUIProcess.h9
-rw-r--r--Source/WebKit2/WebProcess/WebCoreSupport/WebChromeClient.cpp17
-rw-r--r--Source/WebKit2/WebProcess/WebCoreSupport/WebChromeClient.h5
-rw-r--r--Source/WebKit2/WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp53
-rw-r--r--Source/WebKit2/WebProcess/WebCoreSupport/WebFrameLoaderClient.h7
-rw-r--r--Source/WebKit2/WebProcess/WebCoreSupport/mac/WebSystemInterface.mm3
-rw-r--r--Source/WebKit2/WebProcess/WebCoreSupport/qt/WebDragClientQt.cpp10
-rw-r--r--Source/WebKit2/WebProcess/WebCoreSupport/soup/WebFrameNetworkingContext.cpp15
-rw-r--r--Source/WebKit2/WebProcess/WebCoreSupport/soup/WebFrameNetworkingContext.h12
-rw-r--r--Source/WebKit2/WebProcess/WebKitMain.cpp10
-rw-r--r--Source/WebKit2/WebProcess/WebPage/CoordinatedGraphics/CoordinatedGraphicsLayer.cpp28
-rw-r--r--Source/WebKit2/WebProcess/WebPage/CoordinatedGraphics/CoordinatedGraphicsLayer.h12
-rw-r--r--Source/WebKit2/WebProcess/WebPage/CoordinatedGraphics/LayerTreeCoordinator.cpp58
-rw-r--r--Source/WebKit2/WebProcess/WebPage/CoordinatedGraphics/LayerTreeCoordinator.h15
-rw-r--r--Source/WebKit2/WebProcess/WebPage/DrawingArea.h4
-rw-r--r--Source/WebKit2/WebProcess/WebPage/DrawingAreaImpl.cpp16
-rw-r--r--Source/WebKit2/WebProcess/WebPage/DrawingAreaImpl.h5
-rw-r--r--Source/WebKit2/WebProcess/WebPage/LayerTreeHost.h3
-rw-r--r--Source/WebKit2/WebProcess/WebPage/WebBackForwardListProxy.cpp4
-rw-r--r--Source/WebKit2/WebProcess/WebPage/WebFrame.cpp5
-rw-r--r--Source/WebKit2/WebProcess/WebPage/WebPage.cpp158
-rw-r--r--Source/WebKit2/WebProcess/WebPage/WebPage.h36
-rw-r--r--Source/WebKit2/WebProcess/WebPage/WebPage.messages.in50
-rw-r--r--Source/WebKit2/WebProcess/WebPage/WebPageGroupProxy.cpp42
-rw-r--r--Source/WebKit2/WebProcess/WebPage/WebPageGroupProxy.h26
-rw-r--r--Source/WebKit2/WebProcess/WebPage/WebPageGroupProxy.messages.in29
-rw-r--r--Source/WebKit2/WebProcess/WebPage/ca/LayerTreeHostCA.cpp16
-rw-r--r--Source/WebKit2/WebProcess/WebPage/ca/LayerTreeHostCA.h2
-rw-r--r--Source/WebKit2/WebProcess/WebPage/gtk/LayerTreeHostGtk.cpp19
-rw-r--r--Source/WebKit2/WebProcess/WebPage/gtk/LayerTreeHostGtk.h2
-rw-r--r--Source/WebKit2/WebProcess/WebPage/gtk/WebPageGtk.cpp36
-rw-r--r--Source/WebKit2/WebProcess/WebPage/gtk/WebPrintOperationGtk.cpp1
-rw-r--r--Source/WebKit2/WebProcess/WebPage/gtk/WebPrintOperationGtk.h2
-rw-r--r--Source/WebKit2/WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.h4
-rw-r--r--Source/WebKit2/WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.mm17
-rw-r--r--Source/WebKit2/WebProcess/WebPage/mac/WebPageMac.mm22
-rw-r--r--Source/WebKit2/WebProcess/WebPage/qt/WebPageQt.cpp19
-rw-r--r--Source/WebKit2/WebProcess/WebProcess.cpp102
-rw-r--r--Source/WebKit2/WebProcess/WebProcess.h11
-rw-r--r--Source/WebKit2/WebProcess/WebProcess.messages.in5
-rw-r--r--Source/WebKit2/WebProcess/mac/WebProcessMac.mm2
-rw-r--r--Source/WebKit2/WebProcess/mac/WebProcessMainMac.mm5
-rw-r--r--Source/WebKit2/WebProcess/soup/WebSoupRequestManager.cpp9
-rw-r--r--Source/WebKit2/WebProcessService/Info.plist8
-rw-r--r--Source/WebKit2/WebProcessServiceForWebKitDevelopment/Info.plist8
-rw-r--r--Source/WebKit2/WebProcessServiceForWebKitDevelopment/WebProcessServiceForWebKitDevelopmentMain.mm2
-rw-r--r--Source/WebKit2/config.h2
-rw-r--r--Source/WebKit2/qt/MainQt.cpp6
-rw-r--r--Source/WebKit2/unix/PluginMainUnix.cpp (renamed from Source/WebKit2/gtk/PluginMainGtk.cpp)4
-rw-r--r--Source/WebKit2/win/WebKit2.def10
-rwxr-xr-xSource/WebKit2/win/WebKit2.vcproj36
-rw-r--r--Source/WebKit2/win/WebKit2CFLite.def1
450 files changed, 35446 insertions, 22290 deletions
diff --git a/Source/WebKit2/CMakeLists.txt b/Source/WebKit2/CMakeLists.txt
index d0096ac25..8564d98a9 100644
--- a/Source/WebKit2/CMakeLists.txt
+++ b/Source/WebKit2/CMakeLists.txt
@@ -123,6 +123,7 @@ SET(WebKit2_SOURCES
Platform/CoreIPC/BinarySemaphore.cpp
Platform/CoreIPC/Connection.cpp
Platform/CoreIPC/DataReference.cpp
+ Platform/CoreIPC/MessageReceiverMap.cpp
PluginProcess/PluginControllerProxy.cpp
PluginProcess/PluginCreationParameters.cpp
@@ -495,6 +496,8 @@ SET(WebKit2_MESSAGES_IN_FILES
PluginProcess/PluginProcess.messages.in
PluginProcess/WebProcessConnection.messages.in
+ Shared/WebConnection.messages.in
+
Shared/Plugins/NPObjectMessageReceiver.messages.in
UIProcess/DrawingAreaProxy.messages.in
@@ -559,6 +562,7 @@ SET(WebKit2_MESSAGES_IN_FILES
WebProcess/WebPage/EventDispatcher.messages.in
WebProcess/WebPage/WebInspector.messages.in
WebProcess/WebPage/WebPage.messages.in
+ WebProcess/WebPage/WebPageGroupProxy.messages.in
WebProcess/WebPage/CoordinatedGraphics/LayerTreeCoordinator.messages.in
)
diff --git a/Source/WebKit2/ChangeLog b/Source/WebKit2/ChangeLog
index 5492dce9a..d212c6216 100644
--- a/Source/WebKit2/ChangeLog
+++ b/Source/WebKit2/ChangeLog
@@ -1,4721 +1,1818 @@
-2012-09-25 Raphael Kubo da Costa <raphael.kubo.da.costa@intel.com>
+2012-10-15 Simon Hausmann <simon.hausmann@digia.com>
- [DRT][WTR] Support overriding the 'WebKitDisplayImagesKey' preference
- https://bugs.webkit.org/show_bug.cgi?id=96883
+ [Qt] Separate Qt WebKit into Qt WebKit and Qt WebKit Widgets
+ https://bugs.webkit.org/show_bug.cgi?id=88162
Reviewed by Kenneth Rohde Christiansen.
- * WebProcess/InjectedBundle/InjectedBundle.cpp:
- (WebKit::InjectedBundle::overrideBoolPreferenceForTestRunner): Add
- support for changing
- WebPreferencesKey::loadsImagesAutomaticallyKey().
-
-2012-09-25 Dan Bernstein <mitz@apple.com>
-
- Try to fix non-Mac builds.
-
- * WebProcess/WebPage/WebPage.cpp:
- (WebKit::WebPage::updatePreferences):
-
-2012-09-25 Dan Bernstein <mitz@apple.com>
-
- WebKit2 part of <rdar://problem/11455228> [mac] Stop using screen fonts
- https://bugs.webkit.org/show_bug.cgi?id=97620
-
- Reviewed by John Sullivan.
-
- * Shared/WebPreferencesStore.h:
- (WebKit): Changed the default value of the screenFontSubstitutionEnabled preference to false.
- * Shared/WebProcessCreationParameters.cpp:
- (WebKit::WebProcessCreationParameters::WebProcessCreationParameters): Added an initializer for
- the new shouldForceScreenFontSubstitution data member.
- (WebKit::WebProcessCreationParameters::encode): Added encoding of shouldForceScreenFontSubstitution.
- (WebKit::WebProcessCreationParameters::decode): Added decoding of shouldForceScreenFontSubstitution.
- * Shared/WebProcessCreationParameters.h:
- (WebProcessCreationParameters): Added shouldForceScreenFontSubstitution boolean data member.
- * UIProcess/mac/WebContextMac.mm:
- (WebKit::WebContext::platformInitializeWebProcess): Added code to set shouldForceScreenFontSubstitution
- in the process creation parameters to the value of the NSFontDefaultScreenFontSubstitutionEnabled user
- defaults key.
- * WebProcess/WebPage/WebPage.cpp:
- (WebKit::WebPage::updatePreferences): Changed to enable screen font substitution also if
- shouldForceScreenFontSubstitution() is true.
- * WebProcess/WebProcess.h:
- (WebKit::WebProcess::shouldForceScreenFontSubstitution): Added this getter.
- (WebProcess): Added m_shouldForceScreenFontSubstitution boolean data member.
- * WebProcess/mac/WebProcessMac.mm:
- (WebKit::WebProcess::platformInitializeWebProcess): Added initialization of
- m_shouldForceScreenFontSubstitution from the creation parameters.
+ Rename the QtWebKit module to QtWebKitWidgets.
-2012-09-25 Alexey Proskuryakov <ap@apple.com>
-
- Get rid of WebContext::m_pendingMessagesToPostToInjectedBundle
- https://bugs.webkit.org/show_bug.cgi?id=94368
+ * PluginProcess.pro:
+ * UIProcess/API/qt/tests/inspectorserver/inspectorserver.pro:
+ * UIProcess/API/qt/tests/publicapi/publicapi.pro:
+ * UIProcess/API/qt/tests/qmltests/DesktopBehavior.pro:
+ * UIProcess/API/qt/tests/qmltests/WebView.pro:
+ * UIProcess/API/qt/tests/qquickwebview/qquickwebview.pro:
+ * UIProcess/API/qt/tests/qrawwebview/qrawwebview.pro:
+ * UIProcess/API/qt/tests/tests.pri:
+ * WebProcess.pro:
- Reviewed by Anders Carlsson.
+2012-10-15 Mikhail Pozdnyakov <mikhail.pozdnyakov@intel.com>
- It doesn't appear to be of any use.
+ [EFL][WK2] Encapsulate ref counting for Ewk objects in a parent class
+ https://bugs.webkit.org/show_bug.cgi?id=99174
- * UIProcess/WebContext.cpp:
- (WebKit::WebContext::createNewWebProcess):
- (WebKit::WebContext::postMessageToInjectedBundle):
- * UIProcess/WebContext.h:
-
-2012-09-24 Simon Fraser <simon.fraser@apple.com>
-
- <rdar://problem/12351906> Have DumpRenderTree and WebKitTestRunner crash logs show which test crashed
+ Reviewed by Kenneth Rohde Christiansen.
- Reviewed by Mark Rowe.
+ Ewk objects can be inherited from RefCounted class, so that ref counting is encapsulated and RefPtr can be used.
+ Applied the new approach for Ewk_Navigation_Data and Ewk_Url_Request objects as an example.
+ The requirement of adoption can be satisfied as long as we keep dealing with smart pointers only.
+ In case external client provides an already referenced object as a raw pointer, relaxAdoptionRequirement() can be set
+ explicitly in this specific place.
- Use a new WebKitSytemInterface function to add data to crash logs about which
- test was running when the crash happened.
+ * UIProcess/API/efl/ewk_context_history_client.cpp:
+ (didNavigateWithNavigationData):
+ * UIProcess/API/efl/ewk_download_job.cpp:
+ (_Ewk_Download_Job):
+ (_Ewk_Download_Job::_Ewk_Download_Job):
+ (_Ewk_Download_Job::~_Ewk_Download_Job):
+ (ewk_download_job_request_get):
+ * UIProcess/API/efl/ewk_navigation_data.cpp:
+ (ewk_navigation_data_ref):
+ (ewk_navigation_data_unref):
+ (ewk_navigation_data_original_request_get):
+ * UIProcess/API/efl/ewk_navigation_data_private.h:
+ (_Ewk_Navigation_Data):
+ (_Ewk_Navigation_Data::_Ewk_Navigation_Data):
+ * UIProcess/API/efl/ewk_navigation_policy_decision.cpp:
+ (_Ewk_Navigation_Policy_Decision):
+ (_Ewk_Navigation_Policy_Decision::_Ewk_Navigation_Policy_Decision):
+ (_Ewk_Navigation_Policy_Decision::~_Ewk_Navigation_Policy_Decision):
+ (ewk_navigation_policy_request_get):
+ (ewk_navigation_policy_decision_new):
+ * UIProcess/API/efl/ewk_url_request.cpp:
+ (ewk_url_request_ref):
+ (ewk_url_request_unref):
+ * UIProcess/API/efl/ewk_url_request_private.h:
+ (_Ewk_Url_Request):
+ (_Ewk_Url_Request::_Ewk_Url_Request):
+ * UIProcess/API/efl/ewk_view_resource_load_client.cpp:
+ (didInitiateLoadForResource):
+ (didSendRequestForResource):
- * WebProcess/WebCoreSupport/mac/WebSystemInterface.mm:
- (InitWebCoreSystemInterface): Hook up the function pointer for [wk|WK]SetCrashReportApplicationSpecificInformation.
+2012-10-15 Allan Sandfeld Jensen <allan.jensen@digia.com>
-2012-09-25 Beth Dakin <bdakin@apple.com>
+ [Qt] Regression(r130031) coverRect is used in wrong coordinates.
+ https://bugs.webkit.org/show_bug.cgi?id=97777
- Build fix. I removed this function as a part of
- https://bugs.webkit.org/show_bug.cgi?id=95397 but it is
- still needed for nightlies and open source builds.
+ Reviewed by Jocelyn Turcotte.
- * WebProcess/InjectedBundle/API/c/WKBundlePage.cpp:
- (WKBundlePageSetPaintedObjectsCounterThreshold):
- * WebProcess/InjectedBundle/API/c/WKBundlePagePrivate.h:
+ Convert coverRect from screen coordinates to content coordinates before using it
+ outside tiled-backing store.
-2012-09-25 Beth Dakin <bdakin@apple.com>
+ * WebProcess/WebPage/CoordinatedGraphics/CoordinatedGraphicsLayer.h:
+ (WebCore::CoordinatedGraphicsLayer::coverRect):
- https://bugs.webkit.org/show_bug.cgi?id=95397
- Need to merge didFirstVisuallyNonEmptyLayout and
- didNewFirstVisuallyNonEmptyLayout
- -and corresponding-
- <rdar://problem/10791680>
+2012-10-15 Carlos Garcia Campos <cgarcia@igalia.com>
- Reviewed by Sam Weinig.
+ Unreviewed. Fix make distcheck.
- The new API has two parts. First, the client has to opt into which
- layout milestones they are interested in hearing about using
- WKPageListenForLayoutMilestones or
- WKBundlePageListenForLayoutMilestones(). Then, WebKit will call
- the didLayout(WKLayoutMilestones) callback on the appropriate
- clients when the specified layout milestones have fired. didLayout
- takes the WKLayoutMilestones bit mask, which will indicate which
- milestones have fired since it is possible for two to fire at the
- same time.
-
- Define WKLayoutMilestoneOptions.
- * Shared/API/c/WKPageLoadTypes.h:
-
- Define conversions between WKLayoutMilestoneOptions and
- WebCore::LayoutMilestoneOptions
- * Shared/API/c/WKSharedAPICast.h:
- (WebKit::toWKLayoutMilestoneOptions):
- (WebKit):
- (WebKit::toLayoutMilestoneOptions):
+ * GNUmakefile.am: Add .in files in WebKit2/Shared to EXTRA_DIST.
+ * GNUmakefile.list.am: Remove deleted file.
- New API.
- * UIProcess/API/C/WKPage.cpp:
- (WKPageListenForLayoutMilestones):
- * UIProcess/API/C/WKPage.h:
- * UIProcess/WebLoaderClient.cpp:
- (WebKit::WebLoaderClient::didLayout):
- (WebKit):
- * UIProcess/WebLoaderClient.h:
- (WebLoaderClient):
-
- didFirstLayoutForFrame, didFirstVisuallyNonEmptyLayoutForFrame,
- and didNewFirstVisuallyNonEmptyLayout are now implemented with
- didLayout under the hood. So if those old callbacks have been
- defined, be sure to add the appropriate layout milestones here for
- backwards-compatibility.
- * UIProcess/WebPageProxy.cpp:
- (WebKit::WebPageProxy::initializeLoaderClient):
+2012-10-14 Anders Carlsson <andersca@apple.com>
- New API.
- (WebKit::WebPageProxy::listenForLayoutMilestones):
- (WebKit):
- (WebKit::WebPageProxy::didLayout):
- * UIProcess/WebPageProxy.h:
- (WebPageProxy):
- * UIProcess/WebPageProxy.messages.in:
+ Fix the world.
- New API. And remove the now-unnecessary
- WKBundlePageSetPaintedObjectsCounterThreshold.
- * WebProcess/InjectedBundle/API/c/WKBundlePage.cpp:
- (WKBundlePageListenForLayoutMilestones):
- * WebProcess/InjectedBundle/API/c/WKBundlePage.h:
- * WebProcess/InjectedBundle/API/c/WKBundlePagePrivate.h:
+ Add back a forgotten !.
- New API.
- * WebProcess/InjectedBundle/InjectedBundlePageLoaderClient.cpp:
- (WebKit::InjectedBundlePageLoaderClient::didNewFirstVisuallyNonEmptyLayout):
- (WebKit):
- (WebKit::InjectedBundlePageLoaderClient::didLayout):
- * WebProcess/InjectedBundle/InjectedBundlePageLoaderClient.h:
- (InjectedBundlePageLoaderClient):
-
- Remove dispatchDidFirstLayout,
- dispatchDidFirstVisuallyNonEmptyLayout, and
- dispatchDidNewFirstVisuallyNonEmptyLayout. They are now replaced
- by dispatchDidLayout(LayoutMilestoneOptions)
- * WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
- (WebKit::WebFrameLoaderClient::dispatchDidLayout):
- * WebProcess/WebCoreSupport/WebFrameLoaderClient.h:
- (WebFrameLoaderClient):
-
- didFirstLayoutForFrame, didFirstVisuallyNonEmptyLayoutForFrame,
- and didNewFirstVisuallyNonEmptyLayout are now implemented with
- didLayout under the hood. So if those old callbacks have been
- defined, be sure to add the appropriate layout milestones here for
- backwards-compatibility.
* WebProcess/WebPage/WebPage.cpp:
- (WebKit::WebPage::initializeInjectedBundleLoaderClient):
- (WebKit):
-
- Call into WebCore to set the layout milestones.
- (WebKit::WebPage::listenForLayoutMilestones):
- * WebProcess/WebPage/WebPage.h:
- (WebPage):
- * WebProcess/WebPage/WebPage.messages.in:
+ (WebKit::WebPage::postInjectedBundleMessage):
- Account for the new member of PageLoadClient.
- * WebProcess/qt/QtBuiltinBundlePage.cpp:
- (WebKit::QtBuiltinBundlePage::QtBuiltinBundlePage):
+2012-10-14 Sam Weinig <sam@webkit.org>
-2012-09-25 Carlos Garcia Campos <cgarcia@igalia.com>
+ Stop all the crashing!
- [GTK][EFL] Disk cache is never dumped to disk in WebKit2
- https://bugs.webkit.org/show_bug.cgi?id=97583
-
- Reviewed by Martin Robinson.
-
- The problem is that WebProcess::platformTerminate(), where the
- cache is currently dumped, is not called when the web process
- finishes because the UI process closes the connection. The cache
- is created and loaded in the main() so it can also be flushed and
- dumped there, so that we also make sure it's always called when
- the process finishes normally when the main loop quits.
-
- * WebProcess/efl/WebProcessMainEfl.cpp:
- (WebKit::WebProcessMainEfl): Flush and dump the disk cache when
- the main loop returns.
- * WebProcess/gtk/WebProcessMainGtk.cpp:
- (WebKit::WebProcessMainGtk): Ditto.
- * WebProcess/soup/WebProcessSoup.cpp:
- (WebKit::WebProcess::platformTerminate): Do not flush and dump
- the disk cache.
-
-2012-09-25 Benjamin Poulain <bpoulain@apple.com>
-
- Add missing support for Geolocation tests on WebKit2
- https://bugs.webkit.org/show_bug.cgi?id=97518
-
- Reviewed by Sam Weinig.
+ The WebProcessProxy is not the Connection::Client, the WebConnectionToWebProcess is.
- The existing API for reporting error does not support passing and error message.
-
- The interface UIProcess<->WebProcess is changed to take an error message, the
- existing API now pass a null String, and the new function
- WKGeolocationManagerProviderDidFailToDeterminePositionWithErrorMessage() provide
- the extended support with error message.
-
- * UIProcess/API/C/WKGeolocationManager.cpp:
- (WKGeolocationManagerProviderDidFailToDeterminePositionWithErrorMessage):
- * UIProcess/API/C/WKGeolocationManager.h:
- * UIProcess/WebGeolocationManagerProxy.cpp:
- (WebKit::WebGeolocationManagerProxy::providerDidFailToDeterminePosition):
- * UIProcess/WebGeolocationManagerProxy.h:
- (WebGeolocationManagerProxy):
- * WebProcess/Geolocation/WebGeolocationManager.cpp:
- (WebKit::WebGeolocationManager::didFailToDeterminePosition):
- * WebProcess/Geolocation/WebGeolocationManager.h:
- (WebGeolocationManager):
- * WebProcess/Geolocation/WebGeolocationManager.messages.in:
+ * UIProcess/WebConnectionToWebProcess.h:
+ (WebKit::WebConnectionToWebProcess::webProcessProxy):
+ * UIProcess/WebProcessProxy.cpp:
+ (WebKit::WebProcessProxy::fromConnection):
-2012-09-25 Akash Vaswani <avaswani@apple.com>
+2012-10-14 Anders Carlsson <andersca@apple.com>
- Crash after clicking in plugin at kauaiexplorer.com
- <rdar://problem/11525987/> and https://bugs.webkit.org/show_bug.cgi?id=90925
+ Re-land of "WebContext should be a MessageReceiver"
+ https://bugs.webkit.org/show_bug.cgi?id=98958
Reviewed by Sam Weinig.
- Bug: Clicking the plugin to navigate away from the page caused the browser to crash.
- This is because it is possible for a beforeunload handler to destroy the plugin
- while it is still needed. In this case the handler set visibility to "none" and
- then accessed a property on the plugin script object. This forced a layout
- that destroyed the plugin.
- Fix: Protecting PluginView objects until they are no longer required.
- This was done by adding a RefPtr at the beginning of performURLRequest()
-
- * WebProcess/Plugins/PluginView.cpp:
- (WebKit::PluginView::performURLRequest):
-
-2012-09-25 Carlos Garcia Campos <cgarcia@igalia.com>
-
- [GTK] Don't kill automatically the web process when the ui process finishes
- https://bugs.webkit.org/show_bug.cgi?id=97580
-
- Reviewed by Martin Robinson.
-
- We use prctl(PR_SET_PDEATHSIG, SIGKILL); in linux to make sure the
- web process is killed when the UI process finishes. This is not
- needed any more since now the web process stops the main loop when
- the connection with the UI process is closed in
- WebProcess::didClose(). This approach is better because it works
- for any platform and makes the web process finish normally from
- main().
-
- * UIProcess/Launcher/gtk/ProcessLauncherGtk.cpp:
- (WebKit::childSetupFunction): Don't call prctl(PR_SET_PDEATHSIG,
- SIGKILL) in the child process.
-
-2012-09-25 Benjamin Poulain <benjamin@webkit.org>
-
- Build fix, GeolocationClientMock should not be included by WebProcess InjectedBundle
-
- Unreviewed.
-
- The patch r129252 removes the dependencies on GeolocationClientMock, r129444 removes
- GeolocationClientMock from the Mac port. The #include breaks new Mac build.
-
- * WebProcess/InjectedBundle/InjectedBundle.cpp:
-
-2012-09-25 Jocelyn Turcotte <jocelyn.turcotte@digia.com>
-
- [Qt] PageViewportController: Consolidate positionRangeForViewportAtScale and boundPosition
- https://bugs.webkit.org/show_bug.cgi?id=97222
-
- Reviewed by Kenneth Rohde Christiansen.
-
- Those methods are used together everywhere, merge them into a single
- clampViewportToContents method.
-
- * UIProcess/PageViewportController.cpp:
- (WebKit::PageViewportController::innerBoundedViewportScale):
- (WebKit::PageViewportController::outerBoundedViewportScale):
- (WebKit::PageViewportController::clampViewportToContents):
- (WebKit):
- (WebKit::PageViewportController::pageDidRequestScroll):
- (WebKit::PageViewportController::syncVisibleContents):
- * UIProcess/PageViewportController.h:
- (PageViewportController):
- (WebKit):
- * UIProcess/qt/PageViewportControllerClientQt.cpp:
- (WebKit::PageViewportControllerClientQt::focusEditableArea):
- (WebKit::PageViewportControllerClientQt::zoomToAreaGestureEnded):
- (WebKit::PageViewportControllerClientQt::nearestValidVisibleContentsRect):
-
-2012-09-25 Jocelyn Turcotte <jocelyn.turcotte@digia.com>
-
- [Qt] Unify the PageViewportController<->Client interface regarding positions
- https://bugs.webkit.org/show_bug.cgi?id=97220
-
- Reviewed by Kenneth Rohde Christiansen.
-
- - Make sure that css units are used for all position arguments
- - Make sure that all positions represent the viewport relatively to the contents
- rather than the other way around
- - Delay clamping the viewport to the contents size in the controller rather than in the client
-
- * UIProcess/API/qt/qquickwebview.cpp:
- (QQuickWebViewFlickablePrivate::updateViewportSize):
- * UIProcess/PageViewportController.cpp:
- (WebKit::PageViewportController::pageDidRequestScroll):
- (WebKit::PageViewportController::didChangeViewportSize):
- (WebKit::PageViewportController::didChangeContentsVisibility):
- (WebKit::PageViewportController::syncVisibleContents):
- (WebKit::PageViewportController::positionRangeForViewportAtScale):
- * UIProcess/PageViewportController.h:
- (PageViewportController):
- * UIProcess/PageViewportControllerClient.h:
- (PageViewportControllerClient):
- * UIProcess/qt/PageViewportControllerClientQt.cpp:
- (WebKit::PageViewportControllerClientQt::animateContentRectVisible):
- (WebKit::PageViewportControllerClientQt::focusEditableArea):
- (WebKit::PageViewportControllerClientQt::zoomToAreaGestureEnded):
- (WebKit::PageViewportControllerClientQt::nearestValidVisibleContentsRect):
- (WebKit::PageViewportControllerClientQt::setViewportPosition):
- (WebKit::PageViewportControllerClientQt::updateViewportController):
- * UIProcess/qt/PageViewportControllerClientQt.h:
- (PageViewportControllerClientQt):
-
-2012-09-25 Jocelyn Turcotte <jocelyn.turcotte@digia.com>
-
- [Qt] Make sure that desktop pages honour the devicePixelRatio
- https://bugs.webkit.org/show_bug.cgi?id=97215
-
- Reviewed by Kenneth Rohde Christiansen.
-
- The desktopWidth given to computeViewportAttributes is expected to be pixel-ratio adjusted already.
- We need to make sure that the viewport size is divided by the pixel ratio to prevent
- the equivalent of a 1.0 devicePixelRatio to be in effect once viewportSize.width() is larger
- than layoutFallbackWidth.
-
- * WebProcess/WebPage/WebPage.cpp:
- (WebKit::WebPage::sendViewportAttributesChanged):
+ Make WebContext be a MessageReceiver that lives in its own map. This allows us to get rid of the
+ knowsHowToHandleMessage functions on MessageReceiverMap and WebContext.
-2012-09-25 Simon Pena <spena@igalia.com>
-
- [GTK] Add Undo / Redo method to WebKit2 GTK+ API
- https://bugs.webkit.org/show_bug.cgi?id=97553
-
- Reviewed by Martin Robinson.
-
- Add the macros for Undo / Redo support, and include them
- in the documentation.
-
- * UIProcess/API/gtk/WebKitEditingCommands.h:
- * UIProcess/API/gtk/docs/webkit2gtk-sections.txt:
-
-2012-09-25 Jocelyn Turcotte <jocelyn.turcotte@digia.com>
-
- [Qt] Abstract as much devicePixelRatio logic as possible behind PageViewportController
- https://bugs.webkit.org/show_bug.cgi?id=97214
-
- Reviewed by Kenneth Rohde Christiansen.
-
- Currently the client is required to multiply the scales it receives each bime by the
- devicePixelRatio. This shouldn't be required since essentially, the only places that the
- devicePixelRatio should be in use, is to adjust the layout size, multiply the base scale
- and for scale constants.
-
- Other related changes:
- - Make sure that the controller and it's client are only exchanging effective scales
- (cssScale * devicePixelRatio)
- - Remove members duplicating m_rawAttributes values
- - Use a separate member for the minimum scale to fit the page, separate from the viewport arguments
- - Make sure that the minimum scale to fit is adjusted if the contents size isn't
- updated after the viewport attributes changed
- - Make the scale conversion functions private to discourage this logic from spreading in the client
-
- * UIProcess/PageViewportController.cpp:
- (WebKit::PageViewportController::PageViewportController):
- (WebKit::PageViewportController::innerBoundedViewportScale):
- (WebKit::PageViewportController::outerBoundedViewportScale):
+ * Platform/CoreIPC/Connection.h:
+ (CoreIPC::Connection::client):
+ (Connection):
+ * Platform/CoreIPC/MessageReceiverMap.cpp:
+ (CoreIPC::MessageReceiverMap::addMessageReceiver):
+ (CoreIPC::MessageReceiverMap::invalidate):
+ (CoreIPC::MessageReceiverMap::knowsHowToHandleMessage):
+ (CoreIPC::MessageReceiverMap::dispatchMessage):
+ (CoreIPC::MessageReceiverMap::dispatchSyncMessage):
+ * Platform/CoreIPC/MessageReceiverMap.h:
+ (MessageReceiverMap):
+ * UIProcess/WebContext.cpp:
+ (WebKit::WebContext::WebContext):
+ (WebKit::WebContext::~WebContext):
+ (WebKit::WebContext::dispatchMessage):
+ (WebKit::WebContext::dispatchSyncMessage):
+ (WebKit::WebContext::didReceiveMessage):
+ (WebKit::WebContext::didReceiveSyncMessage):
+ * UIProcess/WebContext.h:
+ (WebContext):
+ * UIProcess/WebProcessProxy.cpp:
+ (WebKit::WebProcessProxy::fromConnection):
(WebKit):
- (WebKit::PageViewportController::devicePixelRatio):
- (WebKit::PageViewportController::didChangeContentsSize):
- (WebKit::PageViewportController::didChangeViewportAttributes):
- (WebKit::PageViewportController::resumeContent):
- (WebKit::PageViewportController::updateMinimumScaleToFit):
- * UIProcess/PageViewportController.h:
- (PageViewportController):
- (WebKit::PageViewportController::minimumContentsScale):
- (WebKit::PageViewportController::maximumContentsScale):
- (WebKit::PageViewportController::currentContentsScale):
- (WebKit::PageViewportController::fromViewportScale):
- (WebKit::PageViewportController::toViewportScale):
- * UIProcess/qt/PageViewportControllerClientQt.cpp:
- (WebKit::PageViewportControllerClientQt::focusEditableArea):
- (WebKit::PageViewportControllerClientQt::zoomToAreaGestureEnded):
- (WebKit::PageViewportControllerClientQt::nearestValidVisibleContentsRect):
- (WebKit::PageViewportControllerClientQt::setContentsRectToNearestValidBounds):
- (WebKit::PageViewportControllerClientQt::pinchGestureRequestUpdate):
-
-2012-09-25 Simon Pena <spena@igalia.com>
-
- [GTK] Fix typo in accessing union field in a GdkEvent in a WebKit2 unit test
- https://bugs.webkit.org/show_bug.cgi?id=97564
-
- Reviewed by Martin Robinson.
-
- In the WebViewTest::moveMouseTo method, the wrong field in
- a union was being accessed in a GdkEvent: instead of the button
- field, we were supposed to act on the motion one. This patch
- fixes the typo.
-
- * UIProcess/API/gtk/tests/WebViewTest.cpp:
- (WebViewTest::mouseMoveTo):
-
-2012-09-25 Carlos Garcia Campos <cgarcia@igalia.com>
-
- [GTK] Don't use the C API internally in WebKitFindController
- https://bugs.webkit.org/show_bug.cgi?id=96775
-
- Reviewed by Gustavo Noronha Silva.
-
- Using the C++ classes directly instead of the C API wrappers we
- avoid a lot of toImpl/toAPI casts, string conversions and
- allocations. The code is also a lot simpler and easier to read.
-
- * UIProcess/API/gtk/WebKitFindController.cpp:
- (getPage):
- (webkitFindControllerConstructed):
- (webKitFindControllerPerform):
- (webkit_find_controller_search_next):
- (webkit_find_controller_search_previous):
- (webkit_find_controller_search_finish):
-
-2012-09-25 Jocelyn Turcotte <jocelyn.turcotte@digia.com>
-
- [Qt] Apply the devicePixelRatio as soon as possible
- https://bugs.webkit.org/show_bug.cgi?id=97211
-
- Reviewed by Kenneth Rohde Christiansen.
-
- Having to wait for the contents size to apply the devicePixelRatio can
- be problematic since the devicePixelRatio affects the layout width, which
- then affects the contents size.
-
- Fix the initial issue that this was working around by preventing the
- early return if useFixedLayout() is true.
-
- * UIProcess/API/qt/qquickwebview.cpp:
- (QQuickWebViewPrivate::QQuickWebViewPrivate):
- (QQuickWebViewFlickablePrivate::didChangeContentsSize):
- (QQuickWebViewExperimental::devicePixelRatio):
- (QQuickWebViewExperimental::setDevicePixelRatio):
- * UIProcess/API/qt/qquickwebview_p_p.h:
- (QQuickWebViewPrivate::didChangeContentsSize):
- (QQuickWebViewPrivate):
- * UIProcess/DrawingAreaProxyImpl.cpp:
- (WebKit::DrawingAreaProxyImpl::sendUpdateBackingStoreState):
-
-2012-09-25 Jocelyn Turcotte <jocelyn.turcotte@digia.com>
-
- [Qt] Don't render at scale 1.0 when doing a pinch-zoom out
- https://bugs.webkit.org/show_bug.cgi?id=97212
-
- Reviewed by Kenneth Rohde Christiansen.
-
- When the user starts pinching this creates extra rendering that is bound to the
- page size and can be considerably big, reducing performance and peaking the tile
- memory usage.
-
- Fixing this might require a different approach that we could experiment with.
-
- * UIProcess/qt/PageViewportControllerClientQt.cpp:
- (WebKit::PageViewportControllerClientQt::animateContentRectVisible):
- (WebKit::PageViewportControllerClientQt::pinchGestureRequestUpdate):
-
-2012-09-25 Michael Brüning <michael.bruning@digia.com>
-
- [Qt][WK2] Focus out is not handled properly
- https://bugs.webkit.org/show_bug.cgi?id=96997
-
- Reviewed by Simon Hausmann.
-
- Adds a handler for QQuickWebView::itemChange event that is sent to
- QQuickItems when their focus has been changed to replace focusOutEvent.
-
- This fixes the problem because the focus has been updated when
- itemChange is called, while it is not yet update when focusOutEvent
- is called.
-
- * UIProcess/API/qt/qquickwebview.cpp: Removed focusOutEvent.
- (QQuickWebView::itemChange): Added in place of focusOutEvent.
- * UIProcess/API/qt/qquickwebview_p.h:
- * UIProcess/qt/QtWebPageEventHandler.cpp:
- (WebKit::QtWebPageEventHandler::handleFocusLost): Renamed from handleFocusOutEvent, parameter removed.
- * UIProcess/qt/QtWebPageEventHandler.h:
- (QtWebPageEventHandler):
+ (WebKit::WebProcessProxy::didReceiveMessage):
+ (WebKit::WebProcessProxy::didReceiveSyncMessage):
+ * UIProcess/WebProcessProxy.h:
+ (WebProcessProxy):
-2012-09-25 Mikhail Pozdnyakov <mikhail.pozdnyakov@intel.com>
+2012-10-14 Anders Carlsson <andersca@apple.com>
- [WK2] Supported media MIME types are not included to the list of shown MIME types.
- https://bugs.webkit.org/show_bug.cgi?id=97552
+ WebPage::PostInjectedBundleMessage should be a variadic message
+ https://bugs.webkit.org/show_bug.cgi?id=99277
- Reviewed by Kenneth Rohde Christiansen.
+ Reviewed by Sam Weinig.
- Added supported media MIME types to the list of shown MIME types in order to fix
- media tests regression after r129479.
+ Don't use a data reference for messages posted to the injected bundle; they could contain data that requires attachments
+ (such as shared memory).
* UIProcess/WebPageProxy.cpp:
- (WebKit::WebPageProxy::canShowMIMEType):
- * WebProcess/InjectedBundle/API/c/WKBundlePage.cpp:
- (WKBundlePageCanShowMIMEType):
-
-2012-09-25 KwangYong Choi <ky0.choi@samsung.com>
-
- [EFL][WK2] Added hideColorPicker test case
- https://bugs.webkit.org/show_bug.cgi?id=97522
-
- Reviewed by Kenneth Rohde Christiansen.
-
- Added a test case for removing input element during color picker is shown.
-
- * UIProcess/API/efl/tests/test_ewk2_view.cpp:
- (setColorPickerColor):
- (showColorPicker):
- (hideColorPicker):
- (TEST_F):
-
-2012-09-25 Mikhail Pozdnyakov <mikhail.pozdnyakov@intel.com>
-
- [WK2][WTR] WTR bundle client loads binary data as text
- https://bugs.webkit.org/show_bug.cgi?id=97532
-
- Reviewed by Kenneth Rohde Christiansen.
-
- Added WKBundlePageCanShowMIMEType() function to WKBundlePage private API.
- This function is put to WKBundlePage to keep consistency with WebKit::WebPageProxy::canShowMIMEType().
- Actually it does not need anything from page.
-
- * WebProcess/InjectedBundle/API/c/WKBundlePage.cpp:
- (WKBundlePageCanShowMIMEType):
- * WebProcess/InjectedBundle/API/c/WKBundlePagePrivate.h:
-
-2012-09-25 Carlos Garcia Campos <cgarcia@igalia.com>
-
- [GTK] Don't use the C API internally in WebKitWebView
- https://bugs.webkit.org/show_bug.cgi?id=96767
-
- Reviewed by Gustavo Noronha Silva.
-
- Using the C++ classes directly instead of the C API wrappers we
- avoid a lot of toImpl/toAPI casts, string conversions and
- allocations. The code is also a lot simpler and easier to read.
-
- * UIProcess/API/gtk/WebKitContextMenuClient.cpp:
- (getContextMenuFromProposedMenu):
- * UIProcess/API/gtk/WebKitResourceLoadClient.cpp:
- (didInitiateLoadForResource):
- * UIProcess/API/gtk/WebKitUIClient.cpp:
- (createNewPage):
- (runJavaScriptPrompt):
- (mouseDidMoveOverElement):
- (printFrame):
- * UIProcess/API/gtk/WebKitURIRequest.cpp:
- (webkitURIRequestCreateForResourceRequest):
- (webkitURIRequestGetResourceRequest):
- * UIProcess/API/gtk/WebKitURIRequestPrivate.h:
- * UIProcess/API/gtk/WebKitWebView.cpp:
- (allowModalDialogsChanged):
- (zoomTextOnlyChanged):
- (webkitWebViewSetSettings):
- (webkitWebViewConstructed):
- (webkitWebViewUpdateURI):
- (webkitWebViewCreateNewPage):
- (webkitWebViewRunJavaScriptPrompt):
- (webkitWebViewMouseTargetChanged):
- (webkitWebViewPrintFrame):
- (webkitWebViewResourceLoadStarted):
- (webkitWebViewPopulateContextMenu):
- (webkit_web_view_load_uri):
- (webkit_web_view_load_html):
- (webkit_web_view_load_alternate_html):
- (webkit_web_view_load_plain_text):
- (webkit_web_view_load_request):
- (webkit_web_view_reload):
- (webkit_web_view_reload_bypass_cache):
- (webkit_web_view_stop_loading):
- (webkit_web_view_go_back):
- (webkit_web_view_can_go_back):
- (webkit_web_view_go_forward):
- (webkit_web_view_can_go_forward):
- (webkit_web_view_get_custom_charset):
- (webkit_web_view_set_custom_charset):
- (webkit_web_view_go_to_back_forward_list_item):
- (webkit_web_view_set_settings):
- (webkit_web_view_set_zoom_level):
- (webkit_web_view_get_zoom_level):
- (webkit_web_view_can_execute_editing_command):
- (webkit_web_view_execute_editing_command):
- (webkit_web_view_run_javascript):
- (webkit_web_view_get_inspector):
- (webkit_web_view_can_show_mime_type):
- (ViewSaveAsyncData):
- (getContentsAsMHTMLDataCallback):
- (webkit_web_view_save):
- (webkit_web_view_save_finish):
- (webkit_web_view_save_to_file):
- * UIProcess/API/gtk/WebKitWebViewBase.cpp:
- (webkitWebViewBaseCreate):
- (webkitWebViewBaseCreateWebPage):
- * UIProcess/API/gtk/WebKitWebViewBasePrivate.h:
- * UIProcess/API/gtk/WebKitWebViewPrivate.h:
-
-2012-09-24 Bo Liu <boliu@chromium.org>
-
- Reland "Add in-place reload behavior to ImagesEnabled setting" with optimizations
- https://bugs.webkit.org/show_bug.cgi?id=97055
-
- Reviewed by Adam Barth.
-
- Relanding 128780, 128676, 128645. Was reverted in 128914 due to
- performance regression in Chromium.
-
- New changes in addition to previously reverted patches:
-
- Refactored CachedResource::requestResource, loadResource, and
- revalidateResource. Moved CachedResource::load method to end of
- requestResource so there is one place where load is called for all
- resources.
-
- Added a enum parameter for requestResource and
- determineRevalidationPolicy so that FrameLoaderClient::allowImage call
- do not need to be called multiple times.
-
- Removed CachedImage::load call in requestImage so it is not called
- twice.
-
- Removed unnecessary Frame.h includes in CachedResource and
- CachedImage.
-
- Removed dead load() method declaration in CachedImage.
-
- Updated text expectation for two image-permissions tests to reflect
- the removed calls to allowImage.
-
- * win/WebKit2.def:
+ (WebKit::WebPageProxy::postMessageToInjectedBundle):
+ * WebProcess/WebPage/WebPage.cpp:
+ (WebKit::WebPage::postInjectedBundleMessage):
+ * WebProcess/WebPage/WebPage.h:
+ (WebPage):
+ * WebProcess/WebPage/WebPage.messages.in:
-2012-09-24 Sam Weinig <sam@webkit.org>
+2012-10-14 Sam Weinig <sam@webkit.org>
- WKProcessGroup can't load injected bundle with file URL
- <rdar://problem/12322774>
- https://bugs.webkit.org/show_bug.cgi?id=97520
+ Simplify user content in WebKit2 by using WebCore::UserStyleSheet and WebCore::UserScript directly
+ https://bugs.webkit.org/show_bug.cgi?id=99276
Reviewed by Anders Carlsson.
- * UIProcess/API/mac/WKProcessGroup.mm:
- (-[WKProcessGroup initWithInjectedBundleURL:]):
- Fix typo. We need to pass the string as path, not as a URL.
-
-2012-09-24 Sam Weinig <sam@webkit.org>
-
- Use NSUserDefaults rather than an environment variable to control whether to use an XPC Service for the WebProcess
- https://bugs.webkit.org/show_bug.cgi?id=97514
-
- Reviewed by Anders Carlsson.
+ - Removes UserContentContainer in favor of Vector<UserStyleSheet> and Vector<UserScript> right on WebPageGroupData.
+ - Adds support for UserScripts, but does not expose API for it just yet.
+ * CMakeLists.txt:
* GNUmakefile.list.am:
- * PlatformEfl.cmake:
* Target.pri:
- Add new files.
-
- * UIProcess/Launcher/ProcessLauncher.h:
- * UIProcess/WebProcessProxy.cpp:
- (WebKit::WebProcessProxy::connect):
- Move platform specific launch options to a new function, platformConnect.
-
- * UIProcess/WebProcessProxy.h:
- * UIProcess/efl/WebProcessProxyEfl.cpp: Added.
- Move Efl specific launch options here.
-
- (WebKit::WebProcessProxy::platformConnect):
- * UIProcess/gtk/WebProcessProxyGtk.cpp: Added.
- Add stub.
-
- (WebKit::WebProcessProxy::platformConnect):
- * UIProcess/mac/WebProcessProxyMac.mm:
- (WebKit::WebProcessProxy::platformConnect):
- Move Mac specific launch option setting here, and switch from
- using an environment variable to NSUserDefaults.
-
- * UIProcess/qt/WebProcessProxyQt.cpp: Added.
- (WebKit::WebProcessProxy::platformConnect):
- Add stub.
-
- * UIProcess/win/WebProcessProxyWin.cpp:
- (WebKit::WebProcessProxy::platformConnect):
- Add stub.
-
-2012-09-24 Laszlo Gombos <l.gombos@samsung.com>
-
- [GTK][EFL] Remove cairo prefix from include statements
- https://bugs.webkit.org/show_bug.cgi?id=97509
-
- Reviewed by Gyuyoung Kim.
-
- Make the build system consistent by always assuming that directory
- that includes the cairo headers is included in the include path.
-
- * UIProcess/cairo/BackingStoreCairo.cpp:
- * WebProcess/Plugins/Netscape/x11/NetscapePluginX11.cpp:
-
-2012-09-24 Sheriff Bot <webkit.review.bot@gmail.com>
-
- Unreviewed, rolling out r129388.
- http://trac.webkit.org/changeset/129388
- https://bugs.webkit.org/show_bug.cgi?id=97477
-
- Caused an assertion in a WebKit2 unit test (Requested by
- abarth on #webkit).
-
- * win/WebKit2.def:
-
-2012-09-24 Simon Pena <spena@igalia.com>
-
- [GTK] Add Select All method to WebKit2 GTK+ API
- https://bugs.webkit.org/show_bug.cgi?id=97460
-
- Reviewed by Martin Robinson.
-
- Following the same approach used when added Cut, Copy and Paste,
- the Select All method is added to the WebKit2 GTK+ API.
-
- This introduces a new macro in the WebKitEditingCommands,
- updates the documentation, and includes a new unit test.
-
- * UIProcess/API/gtk/WebKitEditingCommands.h: Add a new macro for
- the Select All command.
- * UIProcess/API/gtk/docs/webkit2gtk-sections.txt: Include the Select All
- command in the documentation.
- * UIProcess/API/gtk/tests/TestWebViewEditor.cpp: Cover the new command
- with a unit test.
- (testWebViewEditorSelectAll):
- (beforeAll):
-
-2012-09-24 Bo Liu <boliu@chromium.org>
-
- Reland "Add in-place reload behavior to ImagesEnabled setting" with optimizations
- https://bugs.webkit.org/show_bug.cgi?id=97055
-
- Reviewed by Adam Barth.
-
- Relanding 128780, 128676, 128645. Was reverted in 128914 due to
- performance regression in Chromium.
-
- New changes in addition to previously reverted patches:
-
- Refactored CachedResource::requestResource, loadResource, and
- revalidateResource. Moved CachedResource::load method to end of
- requestResource so there is one place where load is called for all
- resources.
-
- Added a enum parameter for requestResource and
- determineRevalidationPolicy so that FrameLoaderClient::allowImage call
- do not need to be called multiple times.
-
- Removed CachedImage::load call in requestImage so it is not called
- twice.
-
- Removed unnecessary Frame.h includes in CachedResource and
- CachedImage.
-
- Removed dead load() method declaration in CachedImage.
-
- Updated text expectation for two image-permissions tests to reflect
- the removed calls to allowImage.
-
- * win/WebKit2.def:
-
-2012-09-24 Joone Hur <joone.hur@intel.com>, Gustavo Noronha Silva <gustavo.noronha@collabora.com>
-
- [GTK] Implement GraphicsLayer using Clutter
- https://bugs.webkit.org/show_bug.cgi?id=73767
-
- Reviewed by Martin Robinson.
-
- Fixed link errors by adding Clutter library and header to WebKit2 build.
-
- * GNUmakefile.am:
-
-2012-09-24 Carlos Garcia Campos <cgarcia@igalia.com>
-
- [GTK] WebKitWebView:is-loading is not updated when the is loaded is started by link clicked navigation action
- https://bugs.webkit.org/show_bug.cgi?id=97458
-
- Reviewed by Xan Lopez.
-
- WebKitWebView:is-loading is set to TRUE when the load is started
- by using the API. We want to make sure that both URI and
- is-loading are updated before load-started is emitted, so we can
- update both right before emitting load-started.
-
- * UIProcess/API/gtk/WebKitWebView.cpp:
- (webkitWebViewEmitLoadChanged): Update both uri and is-loading
- properties before emitting load-changed signal with
- WEBKIT_LOAD_STARTED.
- (webkit_web_view_load_uri): Don't call
- webkitWebViewSetIsLoading().
- (webkit_web_view_load_html): Ditto.
- (webkit_web_view_load_alternate_html): Ditto.
- (webkit_web_view_load_plain_text): Ditto.
- (webkit_web_view_load_request): Ditto.
- (webkit_web_view_reload): Ditto.
- (webkit_web_view_reload_bypass_cache): Ditto.
- (webkit_web_view_go_back): Ditto.
- (webkit_web_view_go_forward): Ditto.
- (webkit_web_view_go_to_back_forward_list_item): Ditto.
-
-2012-09-24 Byungwoo Lee <bw80.lee@samsung.com>
-
- [EFL][WK2] Change the install path for libewk2UnitTestInjectedBundleSample.so.
- https://bugs.webkit.org/show_bug.cgi?id=97302
-
- Reviewed by Gyuyoung Kim.
-
- libewk2UnitTestInjectedBundleSample.so file is created under the
- Source directory.
- Change install directory for the library to under the build directory.
-
- * PlatformEfl.cmake:
- * UIProcess/API/efl/tests/UnitTestUtils/EWK2UnitTestEnvironment.cpp:
- (EWK2UnitTest::EWK2UnitTestEnvironment::injectedBundleSample):
-
-2012-09-24 Vivek Galatage <vivekgalatage@gmail.com>
-
- Web Inspector: implement testing harness for pure protocol tests.
- https://bugs.webkit.org/show_bug.cgi?id=90675
-
- Reviewed by Yury Semikhatsky.
-
- Adding the export symbol definitions required on Apple Windows and WinCairo
- ports to support Inspector Protocol testing harness.
-
- * win/WebKit2.def:
- * win/WebKit2CFLite.def:
-
-2012-09-24 KwangYong Choi <ky0.choi@samsung.com>
-
- [EFL][WK2] Invalid featuring of INPUT_TYPE_COLOR in test_ewk2_view.
- https://bugs.webkit.org/show_bug.cgi?id=97430
-
- Reviewed by Kenneth Rohde Christiansen.
-
- The tests of ewk_view_context_get and ewk_view_feed_touch_event are not related to
- INPUT_TYPE_COLOR. These tests should be moved to outside of INPUT_TYPE_COLOR block.
-
- * UIProcess/API/efl/tests/test_ewk2_view.cpp:
- (TEST_F):
-
-2012-09-23 Seokju Kwon <seokju.kwon@samsung.com>
-
- [EFL][WK2] Add setting to toggle developer extensions
- https://bugs.webkit.org/show_bug.cgi?id=96974
-
- Reviewed by Kenneth Rohde Christiansen.
-
- This is required to allow the user to inspect pages. (Web inspector)
-
- * UIProcess/API/efl/ewk_settings.cpp:
- (ewk_settings_developer_extras_enabled_set):
- (ewk_settings_developer_extras_enabled_get):
- * UIProcess/API/efl/ewk_settings.h:
- * UIProcess/API/efl/tests/test_ewk2_settings.cpp:
- (TEST_F):
-
-2012-09-23 Byungwoo Lee <bw80.lee@gmail.com>
-
- Fix build warnings : -Wunused-parameter, -Wparentheses, -Wuninitialized.
- https://bugs.webkit.org/show_bug.cgi?id=97306
-
- Reviewed by Benjamin Poulain.
-
- Fix build warning about -Wunused-parameter on Connection.cpp,
- WKEinaSharedString.cpp, ewk_view_loader_client.cpp, WebPage.cpp by
- using ASSERT_UNUSED() macro or removing parameter name.
- Fix build warning about -Wuninitialized on WebEventFactory.cpp by
- continueing the loop at the default switch case not to use the
- uninitialized variable.
-
- * Platform/CoreIPC/Connection.cpp:
- (CoreIPC::Connection::waitForSyncReply):
- * Shared/efl/WebEventFactory.cpp:
- (WebKit::WebEventFactory::createWebTouchEvent):
- * UIProcess/API/cpp/efl/WKEinaSharedString.cpp:
- (WKEinaSharedString::WKEinaSharedString):
- * UIProcess/API/efl/ewk_view_loader_client.cpp:
- (didSameDocumentNavigationForFrame):
- * WebProcess/WebPage/WebPage.cpp:
- (WebKit::WebPage::SandboxExtensionTracker::beginLoad):
-
-2012-09-22 Sam Weinig <sam@webkit.org>
-
- Install WebProcess XPC services into the right places
- https://bugs.webkit.org/show_bug.cgi?id=97385
-
- Reviewed by Anders Carlsson.
-
- * Configurations/WebProcessService.xcconfig:
- Update INSTALL_PATH to go into WebKit2.framework/Versions/A/XPCServices.
-
- * Configurations/WebProcessServiceForWebKitDevelopment.xcconfig:
- Since this config file is almost identical to WebProcessService.xcconfig,
- just #include it and change the one thing that is different, the INFOPLIST_FILE
-
- * WebKit2.xcodeproj/project.pbxproj:
- Follow XPC procedure and copy the services into the right place, WebKit2.framework/Versions/A/XPCServices
- in all builds except production builds where it is not necessary. Also add a symlink like everyone else
- does.
-
-2012-09-22 Sam Weinig <sam@webkit.org>
-
- Allow setting a custom path to where the plug-in sandbox profiles are being kept
- https://bugs.webkit.org/show_bug.cgi?id=97399
-
- Reviewed by Anders Carlsson.
-
- Add a new default to allow controlling where to look for plug-in sandbox profiles
- called "PlugInSandboxProfileDirectoryPath".
-
- * PluginProcess/mac/PluginProcessMac.mm:
- (WebKit::initializeSandbox):
- Use the passed in sandboxProfileDirectoryPath instead of hard coding /usr/share/sandbox/.
-
- (WebKit::PluginProcess::platformInitialize):
- * Shared/Plugins/PluginProcessCreationParameters.cpp:
- (WebKit::PluginProcessCreationParameters::encode):
- (WebKit::PluginProcessCreationParameters::decode):
- * Shared/Plugins/PluginProcessCreationParameters.h:
- (PluginProcessCreationParameters):
- * UIProcess/Plugins/mac/PluginProcessProxyMac.mm:
- (WebKit::PluginProcessProxy::platformInitializePluginProcess):
- Grab the sandboxProfileDirectoryPath from standardUserDefaults and pass it to
- the plug-in.
-
-2012-09-21 Sam Weinig <sam@webkit.org>
-
- Fix the Lion and Snow Leopard builds.
-
- * UIProcess/Launcher/mac/ProcessLauncherMac.mm:
- (WebKit::connectToWebProcessServiceForWebKitDevelopment):
- (WebKit::createWebProcessServiceForWebKitDevelopment):
- (WebKit::createWebProcessService):
-
-2012-09-21 Sam Weinig <sam@webkit.org>
-
- WebProcess XPC services need have their environment set without disrupting all other XPC services
- https://bugs.webkit.org/show_bug.cgi?id=95161
-
- Reviewed by Anders Carlsson.
-
- Replace the WebKit2Service with two new XPC services, the WebProcessService, which is only used
- when installed on the system, and the WebProcessServiceForWebKitDevelopment which is used at all
- other times. We need both services because XPC can't in general be configured to have a custom
- environment at runtime, and thus WebProcessServiceForWebKitDevelopment has the ability to re-exec
- itself into a desired state. That capability is rather undesirable for installed usage, where we
- don't want to allow arbitrary changes to the environment of the service, which would allow breaking
- the App Sandbox.
-
- * Configurations/WebProcessService.xcconfig: Copied from Source/WebKit2/Configurations/WebKit2Service.xcconfig.
- * Configurations/WebProcessServiceForWebKitDevelopment.xcconfig: Renamed from Source/WebKit2/Configurations/WebKit2Service.xcconfig.
- Add new configuration files.
-
- * Platform/mac/WorkQueueMac.cpp:
- (WorkQueue::registerMachPortEventHandler):
- (WorkQueue::unregisterMachPortEventHandler):
- Add helpful assertions. Without them, we confusingly crash a bit later in HashTable code.
-
- * UIProcess/Launcher/mac/ProcessLauncherMac.mm:
- (WebKit::addDYLDEnvironmentAdditions):
- Factor out environment additions to this helper function.
-
- (WebKit::connectToWebProcessServiceForWebKitDevelopment):
- (WebKit::createWebProcessServiceForWebKitDevelopment):
- Add functionality to setup the webkit development service via re-exec.
-
- (WebKit::createWebProcessService):
- Add functionality to connect to the installed WebProcess service.
-
- (WebKit::createProcess):
- Factor out posix_spawn based launching into this helper function.
-
- (WebKit::ProcessLauncher::launchProcess):
- Call the correct process creation function based on launch data and install state.
-
* WebKit2.xcodeproj/project.pbxproj:
- Add new files to the project.
-
- * WebProcess/mac/WebProcessServiceEntryPoints.h: Renamed from Source/WebKit2/WebProcess/mac/WebProcessXPCServiceMain.h.
- * WebProcess/mac/WebProcessServiceEntryPoints.mm: Renamed from Source/WebKit2/WebProcess/mac/WebProcessXPCServiceMain.mm.
- (WebKit::WebProcessServiceEventHandler):
- (WebProcessServiceMain):
- (InitializeWebProcessForWebProcessServiceForWebKitDevelopment):
- Rename to WebProcessServiceEntryPoints since this is now used for both the WebProcessService and the
- WebProcessServiceForWebKitDevelopment.
-
- * WebProcessService/Info.plist: Copied from Source/WebKit2/WebKit2Service/Info.plist.
- * WebProcessService/WebProcessServiceMain.mm: Renamed from Source/WebKit2/WebKit2Service/MainMacService.mm.
- Add main for the WebProcessService which just calls into the WebProcessServiceEntryPoints in WebKit2.framework.
-
- * WebProcessServiceForWebKitDevelopment/Info.plist: Renamed from Source/WebKit2/WebKit2Service/Info.plist.
- * WebProcessServiceForWebKitDevelopment/WebProcessServiceForWebKitDevelopmentMain.mm: Added.
- Add main for the WebProcessServiceForWebKitDevelopment, which can't just call directly into WebProcessServiceEntryPoints
- as the framework path might not be set up correctly. This is also where we re-exec ourselves when required.
-
-2012-09-21 Anders Carlsson <andersca@apple.com>
-
- Fix WebKit2 sandbox profile.
-
- Instead of using #pragmas, just disable all warnings in DerivedSources.make. I suspect
- that passing -traditional to the preprocessor disables support for #pragmas but I'm afraid
- to change it to something else.
-
- * DerivedSources.make:
- * WebProcess/com.apple.WebProcess.sb.in:
-
-2012-09-21 Benjamin Poulain <bpoulain@apple.com>
-
- fast/dom/Geolocation/disconnected-frame.html test asserts
- https://bugs.webkit.org/show_bug.cgi?id=97376
-
- Reviewed by Alexey Proskuryakov.
-
- In GeolocationPermissionRequestManager::cancelRequestForGeolocation, we access an iterator
- after its value has been removed from the table.
- There are two problems with that:
- -The iterator is no longer valid after the container has been modified.
- -If it was the last element, the table has been freed and the iterator points to deleted memory.
-
- We solve the issue by keeping a copy of the ID. We could have inverted the order of the calls
- but that would make the issue less visible for future change.
-
- Testing covered by fast/dom/Geolocation/disconnected-frame.html.
-
- * WebProcess/Geolocation/GeolocationPermissionRequestManager.cpp:
- (WebKit::GeolocationPermissionRequestManager::cancelRequestForGeolocation):
-
-2012-09-21 Sam Weinig <sam@webkit.org>
-
- REGRESSION (r120361) Warnings while preprocessing com.apple.WebProcess.sb.in
- https://bugs.webkit.org/show_bug.cgi?id=91079
- <rdar://problem/12332660>
-
- Reviewed by Anders Carlsson.
-
- * WebProcess/com.apple.WebProcess.sb.in:
- Add pragma to ignore the invalid preprocessor warnings.
-
-2012-09-21 Chris Rogers <crogers@google.com>
-
- Add Web Audio support for deprecated/legacy APIs
- https://bugs.webkit.org/show_bug.cgi?id=97050
-
- Reviewed by Eric Carlson.
-
- * Configurations/FeatureDefines.xcconfig:
-
-2012-09-21 Benjamin Poulain <bpoulain@apple.com>
-
- [WK2] Add basic testing support for Geolocation
- https://bugs.webkit.org/show_bug.cgi?id=97278
-
- Reviewed by Kenneth Rohde Christiansen.
-
- * Shared/API/c/WKNumber.h: Fix an unfortunate copy-paste :)
+ * win/WebKit2.vcproj:
+ * Shared/UserContentContainer.cpp: Removed.
+ * Shared/UserContentContainer.h: Removed.
+ Remove UserContentContainer.h/cpp.
- * WebProcess/InjectedBundle/API/c/WKBundle.cpp:
+ * Shared/API/c/WKBase.h:
+ * Shared/API/c/WKSharedAPICast.h:
+ (WebKit::toUserScriptInjectionTime):
+ (WebKit::toUserContentInjectedFrames):
+ * WebProcess/InjectedBundle/API/c/WKBundleAPICast.h:
* WebProcess/InjectedBundle/API/c/WKBundlePrivate.h:
- * WebProcess/InjectedBundle/InjectedBundle.cpp:
- * WebProcess/InjectedBundle/InjectedBundle.h:
- (InjectedBundle):
- Remove the code forcing the Geolocation permissions. It was working around the normal
- Geolocation code and updating all the GeolocationController, which is a terrible idea.
-
-2012-09-21 Alexey Proskuryakov <ap@apple.com>
-
- [WK2] Make Web Inspector work in multiple web process mode
- https://bugs.webkit.org/show_bug.cgi?id=97354
-
- Reviewed by Timothy Hatcher.
-
- * UIProcess/mac/WebInspectorProxyMac.mm: (WebKit::WebInspectorProxy::platformCreateInspectorPage):
- Tell WKView that it's related to original page, making inspector page be in the same process.
-
-2012-09-21 Carlos Garcia Campos <cgarcia@igalia.com>
-
- [GTK] Implement ViewState methods in PageClientImpl in WebKit2
- https://bugs.webkit.org/show_bug.cgi?id=97202
-
- Reviewed by Martin Robinson.
-
- Implement isViewWindowActive(), isViewFocused(), isViewVisible()
- and isViewInWindow() in PageClientImpl.
-
- * GNUmakefile.list.am: Add new files to compilation.
- * UIProcess/API/C/gtk/WKView.cpp:
- (WKViewSetFocus): New private method used by WTR to focus the
- WebView.
- * UIProcess/API/C/gtk/WKViewPrivate.h: Added.
- * UIProcess/API/gtk/PageClientImpl.cpp:
- (WebKit::PageClientImpl::isViewWindowActive): Return
- webkitWebViewBaseIsInWindowActive().
- (WebKit::PageClientImpl::isViewFocused): Return
- webkitWebViewBaseIsFocused().
- (WebKit::PageClientImpl::isViewVisible): Return
- webkitWebViewBaseIsVisible().
- (WebKit::PageClientImpl::isViewInWindow): Return
- webkitWebViewBaseIsInWindow().
- * UIProcess/API/gtk/WebKitWebViewBase.cpp:
- (webkitWebViewBaseNotifyResizerSize): Updated to not receive the
- window as parameter since it's now saved in the instance struct.
- (toplevelWindowResizeGripVisibilityChanged): Update to
- webkitWebViewBaseNotifyResizerSize() API change.
- (toplevelWindowFocusInEvent): Update ViewWindowIsActive flag and
- notify the WebPageProxy if it changed.
- (toplevelWindowFocusOutEvent): Ditto.
- (webkitWebViewBaseSetToplevelOnScreenWindow): Set the toplevel
- on-screen window where the view is currently added and notify
- WebPageProxy if it changed.
- (webkitWebViewBaseRealize): Call
- webkitWebViewBaseSetToplevelOnScreenWindow() if the view has been
- added to an on-screen window.
- (webkitWebViewBaseFinalize): Reset the toplevel on-screen window
- to make sure all signals are disconnected when the view is
- destroyed.
- (webkit_web_view_base_init): Remove unneeded initialization.
- (resizeWebKitWebViewBaseFromAllocation): Update to
- webkitWebViewBaseNotifyResizerSize() API change.
- (webkitWebViewBaseMap): Update ViewIsVisible flag and notify
- WebPageProxy if it changed.
- (webkitWebViewBaseUnmap): Ditto.
- (webkitWebViewBaseFocusInEvent): Call webkitWebViewBaseSetFocus()
- passing true to focus the view.
- (webkitWebViewBaseFocusOutEvent): Call webkitWebViewBaseSetFocus()
- passing false to unfocus the view.
- (webkitWebViewBaseParentSet): Reset the toplevel on-screen window
- if the view is re-parented.
- (webkit_web_view_base_class_init): Add implementations for map and
- parent-set virtual functions.
- (webkitWebViewBaseSetFocus): Update the ViewIsFocused and notify
- WebPageProxy if it changed.
- (webkitWebViewBaseIsInWindowActive):
- (webkitWebViewBaseIsFocused):
- (webkitWebViewBaseIsVisible):
- (webkitWebViewBaseIsInWindow):
- * UIProcess/API/gtk/WebKitWebViewBasePrivate.h:
- * UIProcess/API/gtk/tests/TestWebKitWebView.cpp:
- (testWebViewMouseTarget): Use a GTK_WINDOW_TOPLEVEL instead of
- POPUP for this test to make sure the view receives focus change
- events.
-
-2012-09-21 Carlos Garcia Campos <cgarcia@igalia.com>
-
- [GTK] Add WebKitWebView:is-loading property to WebKit2 GTK+ API
- https://bugs.webkit.org/show_bug.cgi?id=97330
-
- Reviewed by Xan Lopez.
-
- WebKitWebView:is-loading property allows to monitor when the view
- is loading something without having to deal with load-changed
- signal and all the details of the load status. This also allows to
- know when a new load is started before it goes to STARTED status.
-
- * UIProcess/API/gtk/WebKitWebView.cpp:
- (webkitWebViewGetProperty): Implement getter for is-loading
- property.
- (webkit_web_view_class_init): Add is-loading property.
- (webkitWebViewSetIsLoading): Set whether web view is loading a
- page and emit notify signal if the is-loading property has
- changed. Also update the active URI when a new load operation has
- started.
- (webkitWebViewEmitLoadChanged): Set is-loading to FALSE when load
- finishes.
- (webkitWebViewLoadFailed): Set is-loading to FALSE when load fails.
- (webkit_web_view_load_uri): Set is-loading to TRUE.
- (webkit_web_view_load_html): Ditto.
- (webkit_web_view_load_alternate_html): Ditto.
- (webkit_web_view_load_plain_text): Ditto.
- (webkit_web_view_load_request): Ditto.
- (webkit_web_view_reload): Ditto.
- (webkit_web_view_reload_bypass_cache): Ditto.
- (webkit_web_view_is_loading): Return whether the view is loading a
- page.
- (webkit_web_view_go_back): Set is-loading to TRUE.
- (webkit_web_view_go_forward): Ditto.
- (webkit_web_view_go_to_back_forward_list_item): Ditto.
- * UIProcess/API/gtk/WebKitWebView.h:
- * UIProcess/API/gtk/docs/webkit2gtk-sections.txt: Add new symbol.
- * UIProcess/API/gtk/tests/LoadTrackingTest.cpp:
- (loadChangedCallback):
- (loadFailedCallback):
- * UIProcess/API/gtk/tests/TestLoaderClient.cpp:
- (testWebViewIsLoading):
- (beforeAll):
-
-2012-09-20 Eunmi Lee <eunmi15.lee@samsung.com>
-
- [EFL][WK2] Add API to feed touch event.
- https://bugs.webkit.org/show_bug.cgi?id=96903
-
- Reviewed by Kenneth Rohde Christiansen.
-
- The applications will use this API to feed touch event to the view
- when they want to generate touch event from their own event processor.
- WTR also will use this API to generate touch event with multiple touch
- points for passing test cases of touch event in the WebKit2/EFL.
-
- * PlatformEfl.cmake:
- * UIProcess/API/efl/EWebKit2.h:
- * UIProcess/API/efl/ewk_view.cpp:
- (ewk_view_feed_touch_event):
- * UIProcess/API/efl/ewk_view.h:
- * UIProcess/API/efl/tests/test_ewk2_view.cpp:
- (TEST_F):
-
-2012-09-20 Patrick Gansterer <paroga@webkit.org>
-
- Add String::numberToStringFixedWidth()
- https://bugs.webkit.org/show_bug.cgi?id=96330
-
- Reviewed by Benjamin Poulain.
-
- * win/WebKit2.def:
- * win/WebKit2CFLite.def:
-
-2012-09-17 Jon Lee <jonlee@apple.com>
-
- Safari 6 notifications' onclick handlers can't call window.open()
- https://bugs.webkit.org/show_bug.cgi?id=96959
- <rdar://problem/12132427>
-
- Reviewed by Darin Adler.
-
- The click is not being treated as a user gesture when the message is sent to the web process.
-
- * WebProcess/Notifications/WebNotificationManager.cpp:
- (WebKit::WebNotificationManager::didClickNotification): Gets called when the user clicks on the
- platform notification. Set UserGestureIndicator to show the click event is due to user gesture.
-
-2012-09-20 Eunmi Lee <eunmi15.lee@samsung.com>
-
- [EFL][WK2] Add APIs to create, delete and get ewk_context.
- https://bugs.webkit.org/show_bug.cgi?id=89186
-
- Reviewed by Kenneth Rohde Christiansen.
+ Move UserContent enums to WKBase.h so they can be used from both processes, and move the
+ casts to WKSharedAPICast.
- Provide APIs to create ewk_context with or without injected bundle path
- and delete created ewk_context.
- Additionally, the ewk_view can be created with ewk_context which is not
- default context, so we have to get ewk_context from ewk_view.
-
- * PlatformEfl.cmake:
- * UIProcess/API/efl/PageClientImpl.cpp:
- (WebKit::PageClientImpl::handleDownloadRequest):
- * UIProcess/API/efl/ewk_context.cpp:
- (_Ewk_Context):
- (_Ewk_Context::_Ewk_Context):
- (ewk_context_ref):
- (ewk_context_unref):
- (ewk_context_new):
- (ewk_context_new_with_injected_bundle_path):
- * UIProcess/API/efl/ewk_context.h:
- * UIProcess/API/efl/ewk_view.cpp:
- (_Ewk_View_Private_Data):
- (_Ewk_View_Private_Data::_Ewk_View_Private_Data):
- (_ewk_view_priv_del):
- (_ewk_view_initialize):
- (ewk_view_context_get):
- * UIProcess/API/efl/ewk_view.h:
- * UIProcess/API/efl/tests/InjectedBundle/injected_bundle_sample.cpp: Added.
- * UIProcess/API/efl/tests/UnitTestUtils/EWK2UnitTestEnvironment.cpp:
- (EWK2UnitTest::EWK2UnitTestEnvironment::injectedBundleSample):
- (EWK2UnitTest):
- * UIProcess/API/efl/tests/UnitTestUtils/EWK2UnitTestEnvironment.h:
- (EWK2UnitTestEnvironment):
- * UIProcess/API/efl/tests/test_ewk2_context.cpp:
- (TEST_F):
- * UIProcess/API/efl/tests/test_ewk2_cookie_manager.cpp:
- (TEST_F):
- * UIProcess/API/efl/tests/test_ewk2_view.cpp:
- (TEST_F):
-
-2012-09-20 KwangYong Choi <ky0.choi@samsung.com>
-
- [EFL][WK2] Implemented color picker API
- https://bugs.webkit.org/show_bug.cgi?id=91832
-
- Reviewed by Kenneth Rohde Christiansen.
-
- Add support for color picker API for EFL port in WebKit2.
-
- The external application can implement input picker by overriding
- smart class function.
-
- * UIProcess/API/efl/ewk_view.cpp:
- (_Ewk_View_Private_Data):
- (_Ewk_View_Private_Data::_Ewk_View_Private_Data):
- (ewk_view_color_picker_request):
- (ewk_view_color_picker_dismiss):
- (ewk_view_color_picker_color_set):
- * UIProcess/API/efl/ewk_view.h:
- * UIProcess/API/efl/ewk_view_private.h:
- * UIProcess/API/efl/ewk_view_ui_client.cpp:
- (showColorPicker):
- (hideColorPicker):
- (ewk_view_ui_client_attach):
- * UIProcess/API/efl/tests/test_ewk2_view.cpp:
- (onColorPickerDone):
- (setColorPickerColor):
- (showColorPicker):
- (hideColorPicker):
- (TEST_F):
-
-2012-09-20 Balazs Kelemen <kbalazs@webkit.org>
-
- [CoordinatedGraphics] Don't reset m_shouldSyncFrame in flushPendingLayerChanges
- https://bugs.webkit.org/show_bug.cgi?id=97108
-
- Reviewed by Noam Rosenthal.
-
- Stop ignoring if m_shouldSyncFrame has been set between the two
- layer flush. It can be set during layout in several situations,
- for example when a layer is deleted or changed state. We want to
- send the DidRenderFrame message at the next flush in those situations
- so the UI process will apply the changes as soon as possible.
-
- * WebProcess/WebPage/CoordinatedGraphics/LayerTreeCoordinator.cpp:
- (WebKit::LayerTreeCoordinator::flushPendingLayerChanges):
-
-2012-09-20 Byungwoo Lee <bw80.lee@samsung.com>
-
- [EFL][WK2] Check timeout on waitUntilLoadFinished() and waitUntilTitleChangedTo().
- https://bugs.webkit.org/show_bug.cgi?id=97081
-
- Reviewed by Gyuyoung Kim.
+ * Shared/WebCoreArgumentCoders.cpp:
+ * Shared/WebCoreArgumentCoders.h:
+ Add coders for UserStyleSheet and UserScript.
+
+ * Shared/WebPageGroupData.cpp:
+ (WebKit::WebPageGroupData::encode):
+ (WebKit::WebPageGroupData::decode):
+ * Shared/WebPageGroupData.h:
+ (WebPageGroupData):
+ Replace UserContentContainer with Vector<UserStyleSheet> and Vector<UserScript>. Stop using
+ CoreIPC::In() and CoreIPC::Out(), and instead just call encode/decode multiple times.
+
+ * UIProcess/API/C/WKPageGroup.cpp:
+ (WKPageGroupAddUserStyleSheet):
+ Pass the parameters with as little conversion as possible to the C++ to avoid doing too much
+ work in the API layer.
+
+ * UIProcess/WebPageGroup.cpp:
+ (WebKit::toStringVector):
+ (WebKit::WebPageGroup::addUserStyleSheet):
+ (WebKit::WebPageGroup::addUserScript):
+ (WebKit::WebPageGroup::removeAllUserStyleSheets):
+ (WebKit::WebPageGroup::removeAllUserScripts):
+ (WebKit::WebPageGroup::removeAllUserContent):
+ * UIProcess/WebPageGroup.h:
+ * WebProcess/WebPage/WebPageGroupProxy.cpp:
+ (WebKit::WebPageGroupProxy::WebPageGroupProxy):
+ (WebKit::WebPageGroupProxy::addUserStyleSheet):
+ (WebKit::WebPageGroupProxy::addUserScript):
+ (WebKit::WebPageGroupProxy::removeAllUserScripts):
+ (WebKit::WebPageGroupProxy::removeAllUserContent):
+ * WebProcess/WebPage/WebPageGroupProxy.h:
+ (WebPageGroupProxy):
+ * WebProcess/WebPage/WebPageGroupProxy.messages.in:
+ Add support for user scripts and update to use UserScript and UserStyleSheet directly.
+
+2012-10-14 Jon Lee <jonlee@apple.com>
+
+ Allow notification origin permission request when no js callback is provided
+ https://bugs.webkit.org/show_bug.cgi?id=63615
+ <rdar://problem/11059590>
- Add assertion to check timeout on waitUntilLoadFinished() and
- waitUntilTitleChangedTo().
- Set the default timeout for the functions as 10 seconds.
+ Reviewed by Sam Weinig.
- * UIProcess/API/efl/tests/UnitTestUtils/EWK2UnitTestBase.h:
- (EWK2UnitTestBase):
- * UIProcess/API/efl/tests/test_ewk2_back_forward_list.cpp:
- (TEST_F):
- * UIProcess/API/efl/tests/test_ewk2_context.cpp:
- (TEST_F):
- * UIProcess/API/efl/tests/test_ewk2_view.cpp:
- (TEST_F):
+ Null checks already exist for both standard and legacy API callbacks, so no changes are needed here
+ like there are in WebKit 1. The checks existed because the callbacks are held in a hash map used to keep
+ track of pending requests.
-2012-09-20 Jinwoo Song <jinwoo7.song@samsung.com>
+ Also, add a check for a null callback when short circuiting.
- [EFL] Change the log macro names to be more consistent with EINA LOG
- https://bugs.webkit.org/show_bug.cgi?id=97158
+ * WebProcess/Notifications/NotificationPermissionRequestManager.cpp:
+ (WebKit::NotificationPermissionRequestManager::startRequest):
- Reviewed by Kenneth Rohde Christiansen.
+2012-10-14 Anders Carlsson <andersca@apple.com>
- Some log macro names in WebKit2 are inconsistent with EINA LOG names
- such as WRN/INF not WARN/INFO.
+ Move QDataStream functions into HistoryItemQt.cpp
+ https://bugs.webkit.org/show_bug.cgi?id=99203
- #define WRN(...) EINA_LOG_DOM_WARN(_ewk_log_dom, __VA_ARGS__)
- #define INF(...) EINA_LOG_DOM_INFO(_ewk_log_dom, __VA_ARGS__)
+ Reviewed by Andreas Kling.
- This patch changes the such names to be consistent with EINA LOG's names.
+ Forward declare QTransform.
- * UIProcess/API/efl/ewk_main.cpp:
- (ewk_init):
- * UIProcess/API/efl/ewk_private.h:
- * UIProcess/API/efl/ewk_view.cpp:
- (ewk_view_webprocess_crashed):
+ * Shared/qt/WebEventFactoryQt.h:
-2012-09-20 Christophe Dumez <christophe.dumez@intel.com>
+2012-10-12 Anders Carlsson <andersca@apple.com>
- [EFL][WK2] Same page navigation does not update view URI
- https://bugs.webkit.org/show_bug.cgi?id=97094
+ Explicitly mark messages variadic
+ https://bugs.webkit.org/show_bug.cgi?id=99229
- Reviewed by Kenneth Rohde Christiansen.
+ Reviewed by Dan Bernstein.
- Handle didSameDocumentNavigationForFrame callback in
- WKPageLoaderClient in order to update the view URI.
- This fixes issues with the view URI not being updated
- in case of a same page navigation.
+ Instead of deciding whether messages are variadic based on their type, decide it based on the existence of a 'Variadic' message attribute.
- * UIProcess/API/efl/ewk_view_loader_client.cpp:
- (didSameDocumentNavigationForFrame):
- (ewk_view_loader_client_attach):
- * UIProcess/API/efl/ewk_view_private.h:
- * UIProcess/API/efl/tests/UnitTestUtils/EWK2UnitTestBase.cpp:
- (CallbackDataTimer):
- (EWK2UnitTest::CallbackDataTimer::CallbackDataTimer):
- (EWK2UnitTest::CallbackDataTimer::~CallbackDataTimer):
- (EWK2UnitTest::CallbackDataTimer::isDone):
- (EWK2UnitTest::CallbackDataTimer::setDone):
- (EWK2UnitTest::CallbackDataTimer::didTimeOut):
- (EWK2UnitTest::CallbackDataTimer::setTimedOut):
- (EWK2UnitTest):
- (CallbackDataExpectedValue):
- (EWK2UnitTest::CallbackDataExpectedValue::CallbackDataExpectedValue):
- (EWK2UnitTest::CallbackDataExpectedValue::expectedValue):
- (EWK2UnitTest::onLoadFinished):
- (EWK2UnitTest::timeOutWhileWaitingUntilLoadFinished):
- (EWK2UnitTest::EWK2UnitTestBase::waitUntilLoadFinished):
- (EWK2UnitTest::onTitleChanged):
- (EWK2UnitTest::timeOutWhileWaitingUntilTitleChangedTo):
- (EWK2UnitTest::EWK2UnitTestBase::waitUntilTitleChangedTo):
- (EWK2UnitTest::onURIChanged):
- (EWK2UnitTest::timeOutWhileWaitingUntilURIChangedTo):
- (EWK2UnitTest::EWK2UnitTestBase::waitUntilURIChangedTo): Add convenience function to test
- framework in order to wait until the view URI changes to a given value.
- * UIProcess/API/efl/tests/UnitTestUtils/EWK2UnitTestBase.h:
- (EWK2UnitTestBase):
- * UIProcess/API/efl/tests/resources/same_page_navigation.html: Added.
- * UIProcess/API/efl/tests/test_ewk2_view.cpp:
- (TEST_F): Add corresponding unit test to verify fix and prevent regressions
- in the future.
+ * Scripts/webkit2/messages.py:
+ (messages_to_kind_enum):
+ (decode_type):
+ (async_case_statement):
+ (sync_case_statement):
+ * UIProcess/WebPageProxy.messages.in:
+ * WebProcess/WebProcess.messages.in:
-2012-09-19 Dan Bernstein <mitz@apple.com>
+2012-10-14 Sam Weinig <sam@webkit.org>
- WebKit2 part of adding a setting and API for disabling screen font substitution
- https://bugs.webkit.org/show_bug.cgi?id=97168
+ Make UserScript and UserStyleSheet value objects that are copyable
+ https://bugs.webkit.org/show_bug.cgi?id=99275
Reviewed by Tim Horton.
- * Shared/WebPreferencesStore.h:
- (WebKit): Defined ScreenFontSubstitutionEnabled key with a default value of true.
- * UIProcess/API/C/WKPreferences.cpp:
- (WKPreferencesSetScreenFontSubstitutionEnabled): Added this setter.
- (WKPreferencesGetScreenFontSubstitutionEnabled): Added this getter.
- * UIProcess/API/C/WKPreferencesPrivate.h:
- * WebProcess/WebPage/WebPage.cpp:
- (WebKit::WebPage::updatePreferences): Added a call to Settings::setScreenFontSubstitutionEnabled
- to push the preference into Settings.
-
-2012-09-19 Jinwoo Song <jinwoo7.song@samsung.com>
+ * Shared/UserContentContainer.cpp:
+ (WebKit::toStringVector):
+ (WebKit::UserContentContainer::Item::Item):
+ (WebKit::UserContentContainer::Item::encode):
+ (WebKit::UserContentContainer::Item::decode):
+ * Shared/UserContentContainer.h:
+ (WebKit::UserContentContainer::Item::whitelist):
+ (WebKit::UserContentContainer::Item::blacklist):
+ Switch UserContentContainer::Item to store Vector<String> instead of ImmutableArray, easing
+ transition to new PageGroup function signatures.
- Fix unused parameter compile warnings in WebKit/WebKit2
- https://bugs.webkit.org/show_bug.cgi?id=96742
-
- Reviewed by Gyuyoung Kim.
-
- Fix unused parameter compile warning messages(-Wunused-parameter) in WebKit2 during EFL build.
- WebCore's warning messages were fixed in r128570.
-
- * Shared/FontInfo.cpp:
- (WebKit::FontInfo::encode):
- (WebKit::FontInfo::decode):
- * Shared/PlatformPopupMenuData.cpp:
- (WebKit::PlatformPopupMenuData::encode):
- (WebKit::PlatformPopupMenuData::decode):
- * Shared/SandboxExtension.h:
- (WebKit::SandboxExtension::createHandleForTemporaryFile):
- * Shared/ShareableSurface.cpp:
- (WebKit::ShareableSurface::create):
- * Shared/WebMemorySampler.cpp:
- (WebKit::WebMemorySampler::appendCurrentMemoryUsageToFile):
- * UIProcess/API/C/WKPage.cpp:
- (WKPageGetContentsAsMHTMLData):
- * UIProcess/API/C/WKPluginSiteDataManager.cpp:
- (WKPluginSiteDataManagerClearSiteData):
- (WKPluginSiteDataManagerClearAllSiteData):
- * UIProcess/API/C/WKPreferences.cpp:
- (WKPreferencesSetHixie76WebSocketProtocolEnabled):
- (WKPreferencesGetHixie76WebSocketProtocolEnabled):
- * UIProcess/API/efl/BatteryProvider.cpp:
- (startUpdatingCallback):
- (stopUpdatingCallback):
- * UIProcess/API/efl/PageClientImpl.cpp:
- (WebKit::PageClientImpl::doneWithTouchEvent):
- * UIProcess/API/efl/VibrationProvider.cpp:
- (vibrateCallback):
- (cancelVibrationCallback):
- * UIProcess/API/efl/ewk_context_download_client.cpp:
- (decideDestinationWithSuggestedFilename):
- (didCreateDestination):
- * UIProcess/API/efl/ewk_view.cpp:
- (_ewk_view_on_focus_in):
- (_ewk_view_on_focus_out):
- (_ewk_view_on_mouse_wheel):
- (_ewk_view_on_mouse_down):
- (_ewk_view_on_mouse_up):
- (_ewk_view_on_mouse_move):
- (_ewk_view_on_key_down):
- (_ewk_view_on_key_up):
- (_ewk_view_smart_move):
- (ewk_view_contents_size_changed):
- * UIProcess/API/efl/ewk_view_find_client.cpp:
- (didFindString):
- * UIProcess/API/efl/ewk_view_form_client.cpp:
- (willSubmitForm):
- * UIProcess/API/efl/ewk_view_loader_client.cpp:
- (didReceiveIntentForFrame):
- (registerIntentServiceForFrame):
- (didFinishLoadForFrame):
- (didFailLoadWithErrorForFrame):
- (didStartProvisionalLoadForFrame):
- (didReceiveServerRedirectForProvisionalLoadForFrame):
- (didFailProvisionalLoadWithErrorForFrame):
- (didChangeBackForwardList):
- * UIProcess/API/efl/ewk_view_policy_client.cpp:
- (decidePolicyForNavigationAction):
- (decidePolicyForNewWindowAction):
- (decidePolicyForResponseCallback):
- * UIProcess/DrawingAreaProxy.h:
- (WebKit::DrawingAreaProxy::update):
- (WebKit::DrawingAreaProxy::didUpdateBackingStoreState):
- * UIProcess/DrawingAreaProxyImpl.cpp:
- (WebKit::DrawingAreaProxyImpl::didUpdateBackingStoreState):
- (WebKit::DrawingAreaProxyImpl::enterAcceleratedCompositingMode):
- (WebKit::DrawingAreaProxyImpl::updateAcceleratedCompositingMode):
- * UIProcess/FindIndicator.cpp:
- (WebKit::FindIndicator::draw):
- * UIProcess/GeolocationPermissionRequestManagerProxy.cpp:
- (WebKit::GeolocationPermissionRequestManagerProxy::didReceiveGeolocationPermissionDecision):
- * UIProcess/Plugins/unix/PluginInfoStoreUnix.cpp:
- (WebKit::PluginInfoStore::shouldUsePlugin):
- * UIProcess/WebContext.cpp:
- (WebKit::WebContext::setHTTPPipeliningEnabled):
- * UIProcess/WebFullScreenManagerProxy.cpp:
- (WebKit::WebFullScreenManagerProxy::supportsFullScreen):
- * UIProcess/WebPageProxy.cpp:
- (WebKit::WebPageProxy::sessionStateData):
- (WebKit::WebPageProxy::recommendedScrollbarStyleDidChange):
- (WebKit::WebPageProxy::didBlockInsecurePluginVersion):
- * UIProcess/WebProcessProxy.cpp:
- (WebKit::WebProcessProxy::createWebPage):
- * UIProcess/efl/TextCheckerEfl.cpp:
- (WebKit::TextChecker::continuousSpellCheckingEnabledStateChanged):
- (WebKit::TextChecker::grammarCheckingEnabledStateChanged):
- * UIProcess/efl/WebFullScreenManagerProxyEfl.cpp:
- (WebKit::WebFullScreenManagerProxy::beganEnterFullScreen):
- (WebKit::WebFullScreenManagerProxy::beganExitFullScreen):
- * UIProcess/efl/WebPageProxyEfl.cpp:
- (WebKit::WebPageProxy::standardUserAgent):
- (WebKit::WebPageProxy::getEditorCommandsForKeyEvent):
- * WebProcess/Downloads/soup/DownloadSoup.cpp:
- (WebKit::Download::start):
- (WebKit::Download::startWithHandle):
- (WebKit::Download::didDecideDestination):
- (WebKit::Download::receivedCredential):
- (WebKit::Download::receivedRequestToContinueWithoutCredential):
- (WebKit::Download::receivedCancellation):
- * WebProcess/Geolocation/WebGeolocationManager.cpp:
- (WebKit::WebGeolocationManager::didChangePosition):
- * WebProcess/IconDatabase/WebIconDatabaseProxy.cpp:
- (WebKit::WebIconDatabaseProxy::synchronousIconForPageURL):
- (WebKit::WebIconDatabaseProxy::synchronousIconURLForPageURL):
- (WebKit::WebIconDatabaseProxy::synchronousIconDataKnownForIconURL):
- (WebKit::WebIconDatabaseProxy::synchronousLoadDecisionForIconURL):
- (WebKit::WebIconDatabaseProxy::iconDataForIconURL):
- * WebProcess/InjectedBundle/API/c/WKBundleFrame.cpp:
- (WKBundleFrameCopyWebArchiveFilteringSubframes):
- * WebProcess/InjectedBundle/API/c/WKBundlePage.cpp:
- (WKAccessibilityRootObject):
- (WKAccessibilityFocusedObject):
* WebProcess/InjectedBundle/InjectedBundle.cpp:
- (WebKit::InjectedBundle::setGeoLocationPermission):
- (WebKit::InjectedBundle::didReceiveMessage):
- (WebKit::InjectedBundle::webNotificationID):
- * WebProcess/Notifications/WebNotificationManager.cpp:
- (WebKit::WebNotificationManager::initialize):
- (WebKit::WebNotificationManager::didUpdateNotificationDecision):
- (WebKit::WebNotificationManager::didRemoveNotificationDecisions):
- (WebKit::WebNotificationManager::policyForOrigin):
- (WebKit::WebNotificationManager::notificationIDForTesting):
- (WebKit::WebNotificationManager::show):
- (WebKit::WebNotificationManager::cancel):
- (WebKit::WebNotificationManager::clearNotifications):
- (WebKit::WebNotificationManager::didDestroyNotification):
- (WebKit::WebNotificationManager::didShowNotification):
- (WebKit::WebNotificationManager::didClickNotification):
- (WebKit::WebNotificationManager::didCloseNotifications):
- * WebProcess/Plugins/PluginView.cpp:
- (WebKit::PluginView::paint):
- * WebProcess/WebCoreSupport/WebChromeClient.cpp:
- (WebKit::WebChromeClient::addMessageToConsole):
- (WebKit::WebChromeClient::contentsSizeChanged):
- (WebKit::WebChromeClient::customHighlightRect):
- (WebKit::WebChromeClient::paintCustomHighlight):
- (WebKit::WebChromeClient::supportsFullScreenForElement):
- * WebProcess/WebCoreSupport/WebContextMenuClient.cpp:
- (WebKit::WebContextMenuClient::downloadURL):
- * WebProcess/WebCoreSupport/WebDragClient.cpp:
- (WebKit::WebDragClient::dragSourceActionMaskForPoint):
- * WebProcess/WebCoreSupport/WebEditorClient.cpp:
- (WebKit::WebEditorClient::shouldEraseMarkersAfterChangeSelection):
- * WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
- (WebKit::WebFrameLoaderClient::dispatchDidCancelAuthenticationChallenge):
- (WebKit::WebFrameLoaderClient::dispatchDidLoadResourceFromMemoryCache):
- (WebKit::WebFrameLoaderClient::shouldStopLoadingForHistoryItem):
- (WebKit::WebFrameLoaderClient::canShowMIMEType):
- (WebKit::WebFrameLoaderClient::canShowMIMETypeAsHTML):
- (WebKit::WebFrameLoaderClient::representationExistsForURLScheme):
- (WebKit::WebFrameLoaderClient::generatedMIMETypeForURLScheme):
- (WebKit::WebFrameLoaderClient::createFrame):
- (WebKit::WebFrameLoaderClient::createJavaAppletWidget):
- (WebKit::WebFrameLoaderClient::registerForIconNotification):
- * WebProcess/WebCoreSupport/WebInspectorClient.cpp:
- (WebKit::WebInspectorClient::drawRect):
- * WebProcess/WebPage/DrawingArea.h:
- (WebKit::DrawingArea::forceRepaintAsync):
- (WebKit::DrawingArea::updateBackingStoreState):
- * WebProcess/WebPage/FindController.cpp:
- (WebKit::FindController::mouseEvent):
- * WebProcess/WebPage/LayerTreeHost.cpp:
- (WebKit::LayerTreeHost::create):
- * WebProcess/WebPage/LayerTreeHost.h:
- (WebKit::LayerTreeHost::forceRepaintAsync):
- * WebProcess/WebPage/TapHighlightController.cpp:
- (WebKit::TapHighlightController::drawRect):
- * WebProcess/WebPage/WebPage.cpp:
- (WebKit::WebPage::getWebArchiveOfFrame):
- * WebProcess/WebProcess.cpp:
- (WebKit::WebProcess::getSitesWithPluginData):
- (WebKit::WebProcess::clearPluginSiteData):
- * WebProcess/soup/WebKitSoupRequestGeneric.cpp:
- (webkitSoupRequestGenericSendFinish):
- * WebProcess/soup/WebKitSoupRequestInputStream.cpp:
- (webkitSoupRequestInputStreamReadAsync):
- (webkitSoupRequestInputStreamReadFinish):
-
-2012-09-19 Pratik Solanki <psolanki@apple.com>
+ (WebKit::toStringVector):
+ * WebProcess/WebPage/qt/WebPageQt.cpp:
+ (WebKit::WebPage::setUserScripts):
+ Update for new PageGroup function signatures.
- Warning in SandboxExtension.h if WEB_PROCESS_SANDBOX is not enabled
- https://bugs.webkit.org/show_bug.cgi?id=97137
+2012-10-14 Tim Horton <timothy_horton@apple.com>
- Reviewed by Benjamin Poulain.
+ [wk2] Implement PDFPlugin
+ https://bugs.webkit.org/show_bug.cgi?id=99206
- m_size is only used when WEB_PROCESS_SANDBOX is enabled, so move its declaration inside
- #if ENABLE(WEB_PROCESS_SANDBOX).
+ Unreviewed build fix, hand ivar name to @synthesize since it doesn't match the property name.
- * Shared/SandboxExtension.h:
- (HandleArray):
+ * WebProcess/Plugins/PDF/PDFPlugin.mm:
-2012-09-19 Sudarsana Nagineni <sudarsana.nagineni@intel.com>
+2012-10-14 Tim Horton <timothy_horton@apple.com>
- [WTR] Memory leaks in TestRunner::deliverWebIntent()
- https://bugs.webkit.org/show_bug.cgi?id=97111
+ [wk2] Implement PDFPlugin
+ https://bugs.webkit.org/show_bug.cgi?id=99206
- Reviewed by Kenneth Rohde Christiansen.
+ Unreviewed, attempt to manipuate SVN to retain the history of SimplePDFPlugin.
- Fix memory leaks in WKBundleIntentCreate() by adopting strings
- created with WKStringCreateWithUTF8CString().
+ * WebProcess/Plugins/PDF/SimplePDFPlugin.h: Replaced with Source/WebKit2/WebProcess/Plugins/PDF/BuiltInPDFView.h.
+ * WebProcess/Plugins/PDF/SimplePDFPlugin.mm: Replaced with Source/WebKit2/WebProcess/Plugins/PDF/BuiltInPDFView.mm.
- * WebProcess/InjectedBundle/API/c/WKBundleIntent.cpp:
- (WKBundleIntentCreate):
+2012-10-14 Tim Horton <timothy_horton@apple.com>
-2012-09-19 Christophe Dumez <christophe.dumez@intel.com>
+ [wk2] Implement PDFPlugin
+ https://bugs.webkit.org/show_bug.cgi?id=99206
- [EFL][WK2] fast/forms/select-writing-direction-natural.html is failing
- https://bugs.webkit.org/show_bug.cgi?id=97082
+ Reviewed by Dan Bernstein.
- Reviewed by Kenneth Rohde Christiansen.
+ Add PDFPlugin, which uses PDFKit to display PDFs, instead of using PDFKit in the
+ UIProcess for full-page PDFs. This new plugin will also be used for inline PDFs
+ in place of SimplePDFPlugin (née BuiltInPDFView).
- WebChromeClient::selectItemWritingDirectionIsNatural() now returns
- true for EFL-WK2, consistently with EFL-WK1, so that the style
- is properly adjusted in RenderMenuList::adjustInnerStyle().
+ * Configurations/FeatureDefines.xcconfig: Add ENABLE_PDF_PLUGIN.
- * WebProcess/WebCoreSupport/WebChromeClient.cpp:
- (WebKit::WebChromeClient::selectItemWritingDirectionIsNatural):
+ Support three new Plugin methods:
+ - handleEditingCommand, which hands editing commands to the Plugin
+ - isEditingCommandEnabled, which validates editing commands via the Plugin
+ - handlesPageScaleFactor, which asks the plugin whether it wants to
+ opt into a mode where the WebPage doesn't scale in the ordinary fashion,
+ but instead proxies the Plugin's scale factor, so full-page plugins
+ can handle scale factor changes however they need to.
-2012-09-19 Carlos Garcia Campos <cgarcia@igalia.com>
+ * PluginProcess/PluginControllerProxy.cpp:
+ (WebKit::PluginControllerProxy::handleEditingCommand): Proxy handleEditingCommand to the Plugin.
+ (WebKit::PluginControllerProxy::isEditingCommandEnabled): Proxy isEditingCommandEnabled to the Plugin.
+ (WebKit::PluginControllerProxy::handlesPageScaleFactor): Proxy handlesPageScaleFactor to the Plugin.
+ * PluginProcess/PluginControllerProxy.h:
+ (PluginControllerProxy): Add handleEditingCommand, isEditingCommandEnabled, and handlesPageScaleFactor.
+ * PluginProcess/PluginControllerProxy.messages.in: Add HandleEditingCommand, IsEditingCommandEnabled, and HandlesPageScaleFactor.
+ * WebProcess/Plugins/Netscape/NetscapePlugin.cpp:
+ (WebKit::NetscapePlugin::handleEditingCommand): NPAPI plugins support no editing commands by default.
+ (WebKit::NetscapePlugin::isEditingCommandEnabled): NPAPI plugins enable no editing commands by default.
+ (WebKit::NetscapePlugin::handlesPageScaleFactor): NPAPI plugins do not handle page scale factor changes themselves by default.
+ * WebProcess/Plugins/Netscape/NetscapePlugin.h: Add handleEditingCommand, isEditingCommandEnabled, and handlesPageScaleFactor.
- [GTK] Add API to get/set the security policy of a given URI scheme to WebKit2 GTK+
- https://bugs.webkit.org/show_bug.cgi?id=96497
+ Add PDFPluginEnabled preference. If it is not enabled, or the plugin is
+ not built, behavior will be the same as before (the UIProcess PDFView will
+ handle full-page PDFs, and SimplePDFPlugin will handle inline ones).
- Reviewed by Martin Robinson.
+ * Shared/WebPreferencesStore.h: Add PDFPluginEnabled preference.
+ * UIProcess/API/C/WKPreferences.cpp:
+ (WKPreferencesSetPDFPluginEnabled): Setter for PDFPluginEnabled preference.
+ (WKPreferencesGetPDFPluginEnabled): Getter for PDFPluginEnabled preference.
+ * UIProcess/API/C/WKPreferencesPrivate.h: Expose WKPreferences(Set|Get)PDFPluginEnabled as a private preference.
- Add WebKitSecurityManager object associated to a WebKitWebContext
- to get/set the security policy of a URI scheme.
+ Move support for MIME types with custom representations onto WebPage instead of WebProcess.
+ This allows us to use preferences to control the use of custom representations (for example,
+ it allows us to have a preference to toggle between UIProcess's PDFView and PDFPlugin).
- * GNUmakefile.list.am: Add new files to compilation.
* Shared/WebProcessCreationParameters.cpp:
- (WebKit::WebProcessCreationParameters::encode): Encode the list of
- schemes to be reigstered as Local, NoAccess, DisplayIsolated and
- CORSEnabled.
- (WebKit::WebProcessCreationParameters::decode): Decode the list of
- schemes to be reigstered as Local, NoAccess, DisplayIsolated and
- CORSEnabled.
- * Shared/WebProcessCreationParameters.h:
- (WebProcessCreationParameters): Add new parameters to be able to
- register schemes as Local, NoAccess, DisplayIsolated and
- CORSEnabled.
- * UIProcess/API/gtk/WebKitSecurityManager.cpp: Added.
- (webkit_security_manager_init):
- (webkitSecurityManagerFinalize):
- (webkit_security_manager_class_init):
- (webkitSecurityManagerCreate): Private function to create the
- WebKitSecurityManager object associated to the given
- WebKitWebContext.
- (registerSecurityPolicyForURIScheme):
- (checkSecurityPolicyForURIScheme):
- (webkit_security_manager_register_uri_scheme_as_local):
- (webkit_security_manager_uri_scheme_is_local):
- (webkit_security_manager_register_uri_scheme_as_no_access):
- (webkit_security_manager_uri_scheme_is_no_access):
- (webkit_security_manager_register_uri_scheme_as_display_isolated):
- (webkit_security_manager_uri_scheme_is_display_isolated):
- (webkit_security_manager_register_uri_scheme_as_secure):
- (webkit_security_manager_uri_scheme_is_secure):
- (webkit_security_manager_register_uri_scheme_as_cors_enabled):
- (webkit_security_manager_uri_scheme_is_cors_enabled):
- (webkit_security_manager_register_uri_scheme_as_empty_document):
- (webkit_security_manager_uri_scheme_is_empty_document):
- * UIProcess/API/gtk/WebKitSecurityManager.h: Added.
- * UIProcess/API/gtk/WebKitSecurityManagerPrivate.h: Added.
- * UIProcess/API/gtk/WebKitWebContext.cpp:
- (webkit_web_context_get_security_manager): Return the
- WebKitSecurityManager object, creating it before if it doesn't exist.
- * UIProcess/API/gtk/WebKitWebContext.h:
- * UIProcess/API/gtk/docs/webkit2gtk-docs.sgml: Add new section for
- WebKitSecurityManager.
- * UIProcess/API/gtk/docs/webkit2gtk-sections.txt: Add new symbols.
- * UIProcess/API/gtk/tests/TestWebKitWebContext.cpp:
- (testWebContextSecurityPolicy):
- (beforeAll):
- * UIProcess/API/gtk/webkit2.h: Add WebKitSecurityManager.h.
- * UIProcess/WebContext.cpp:
- (WebKit::WebContext::createNewWebProcess): Copy new vector
- schemes.
- (WebKit::WebContext::registerURLSchemeAsLocal): Send a message to
- WebProcess to register the given URL scheme as Local.
- (WebKit::WebContext::registerURLSchemeAsNoAccess): Send a message
- to WebProcess to register the given URL scheme as NoAccess.
- (WebKit::WebContext::registerURLSchemeAsDisplayIsolated): Send a
- message to WebProcess to register the given URL scheme as
- DisplayIsolated.
- (WebKit::WebContext::registerURLSchemeAsCORSEnabled): Send a
- message to WebProcess to register the given URL scheme as
- CORSEnabled.
- * UIProcess/WebContext.h:
- (WebContext):
+ (WebKit::WebProcessCreationParameters::encode): Don't pass mimeTypesWithCustomRepresentation
+ into the WebProcess, as we can compute it later.
+ (WebKit::WebProcessCreationParameters::decode): Same, on the decode side.
+ * Shared/WebProcessCreationParameters.h: Remove mimeTypesWithCustomRepresentation.
+ * UIProcess/mac/WebContextMac.mm:
+ (WebKit::WebContext::platformInitializeWebProcess): Don't add pdfAndPostScriptMIMETypes to mimeTypesWithCustomRepresentation here, as we're now computing it on WebPage instead.
+ * WebProcess/WebPage/WebPage.cpp:
+ (WebKit::canPluginHandleResponse): Move to WebPage from WebProcess so we can use WebPage's new notion of mimeTypesWithCustomRepresentation.
+ (WebKit::WebPage::shouldUseCustomRepresentationForResponse): Move to WebPage from WebProcess so we can use WebPage's new notion of mimeTypesWithCustomRepresentation.
+ * WebProcess/WebPage/mac/WebPageMac.mm:
+ (WebKit::WebPage::pdfAndPostScriptMIMETypes): Return the set of MIME types used for PDF and PostScript, which are handled with PDFView if PDFPlugin is not available or enabled.
* WebProcess/WebProcess.cpp:
- (WebKit::WebProcess::registerURLSchemeAsLocal): Register the
- given URL scheme as Local in the SchemeRegistry.
- (WebKit::WebProcess::registerURLSchemeAsNoAccess): Register the
- given URL scheme as NoAccess in the SchemeRegistry.
- (WebKit::WebProcess::registerURLSchemeAsDisplayIsolated): Register
- the given URL scheme as DisplayIsolated in the SchemeRegistry.
- (WebKit::WebProcess::registerURLSchemeAsCORSEnabled): Register the
- given URL scheme as CORSEnabled in the SchemeRegistry.
- * WebProcess/WebProcess.h:
- * WebProcess/WebProcess.messages.in: Add new messages.
-
-2012-09-19 Balazs Kelemen <kbalazs@webkit.org>
-
- [Texmap] Potential crash in TextureMapperLayer because of referencing deleted mask/replica layer
- https://bugs.webkit.org/show_bug.cgi?id=96919
-
- Reviewed by Noam Rosenthal.
-
- Delay syncing deleted layers until flushPendingLayerChanges so the UI side state
- will contain all changes related to the deletion of a layer. This saves us from
- referencing a deleted layer.
-
- * WebProcess/WebPage/CoordinatedGraphics/LayerTreeCoordinator.cpp:
- (WebKit::LayerTreeCoordinator::flushPendingLayerChanges):
- (WebKit::LayerTreeCoordinator::detachLayer):
- * WebProcess/WebPage/CoordinatedGraphics/LayerTreeCoordinator.h:
- (LayerTreeCoordinator):
-
-2012-09-19 Byungwoo Lee <bw80.lee@samsung.com>
-
- [EFL][WK2] waitUntilTitleChangedTo() and waitUntilLoadFinished() needs timeout.
- https://bugs.webkit.org/show_bug.cgi?id=96910
-
- Reviewed by Kenneth Rohde Christiansen.
-
- Currently, the waitUntilTitleChangedTo() and waitUntilLoadFinished()
- functions doesn't handle timeout by itself.
- And if there are some failed cases that loading is not finished or
- title is not changed to the expected string, test case just stopped
- with timeout and there is no more information about this such as line
- number.
+ (WebKit::WebProcess::initializeWebProcess): Don't keep m_mimeTypesWithCustomRepresentations on WebProcess, it's owned by WebPage now.
+ * WebProcess/WebProcess.h: Move canPluginHandleResponse and shouldUseCustomRepresentationForResponse to WebPage.
- To handle timeout status more properly, timeout parameter is added to
- these functions.
+ Add PDFLayerController to the set of classes returned by PDFKitImports.
- * UIProcess/API/efl/tests/UnitTestUtils/EWK2UnitTestBase.cpp:
- (EWK2UnitTest::LoadFinishedData::LoadFinishedData):
- (LoadFinishedData):
- (EWK2UnitTest::LoadFinishedData::~LoadFinishedData):
- (EWK2UnitTest):
- (EWK2UnitTest::onLoadFinished):
- (EWK2UnitTest::timeOutWhileWaitingUntilLoadFinished):
- (EWK2UnitTest::EWK2UnitTestBase::waitUntilLoadFinished):
- (EWK2UnitTest::TitleChangedData::TitleChangedData):
- (TitleChangedData):
- (EWK2UnitTest::TitleChangedData::~TitleChangedData):
- (EWK2UnitTest::onTitleChanged):
- (EWK2UnitTest::timeOutWhileWaitingUntilTitleChangedTo):
- (EWK2UnitTest::EWK2UnitTestBase::waitUntilTitleChangedTo):
- * UIProcess/API/efl/tests/UnitTestUtils/EWK2UnitTestBase.h:
- (EWK2UnitTestBase):
-
-2012-09-18 Byungwoo Lee <bw80.lee@samsung.com>
+ * Shared/mac/PDFKitImports.h: Add pdfLayerControllerClass.
+ * Shared/mac/PDFKitImports.mm:
+ (WebKit::pdfLayerControllerClass): Find and return the PDFLayerController class.
- [EFL][WK2] Add javascript popup API.
- https://bugs.webkit.org/show_bug.cgi?id=95672
-
- Reviewed by Gyuyoung Kim.
+ Add PDFPlugin, which inherits from SimplePDFPlugin, but uses PDFKit instead
+ of CoreGraphics, to provide additional interactive functionality.
- Add smart class member function for javascript alert(), confirm() and prompt().
-
- * UIProcess/API/efl/ewk_view.cpp:
- (ewk_view_run_javascript_alert):
- (ewk_view_run_javascript_confirm):
- (ewk_view_run_javascript_prompt):
- * UIProcess/API/efl/ewk_view.h:
- * UIProcess/API/efl/ewk_view_private.h:
- * UIProcess/API/efl/ewk_view_ui_client.cpp:
- (runJavaScriptAlert):
- (runJavaScriptConfirm):
- (runJavaScriptPrompt):
- (ewk_view_ui_client_attach):
- * UIProcess/API/efl/tests/test_ewk2_view.cpp:
- Added unit test for javascript popup smart class member function.
- (checkAlert):
- (TEST_F):
- (checkConfirm):
- (checkPrompt):
-
-2012-09-18 Sailesh Agrawal <sail@chromium.org>
-
- Chromium: Scrollbar with tickmarks doesn't respond to clicks
- https://bugs.webkit.org/show_bug.cgi?id=96049
-
- Reviewed by Beth Dakin.
-
- Update exported symbols.
-
- * win/WebKit2.def:
- * win/WebKit2CFLite.def:
-
-2012-09-18 Jinwoo Song <jinwoo7.song@samsung.com>
-
- [EFL][WK2] Add log macros for EINA_LOG_DOM_XXX series
- https://bugs.webkit.org/show_bug.cgi?id=97061
-
- Reviewed by Gyuyoung Kim.
-
- EFL Webkit2 is using the EINA_LOG_DOM_XXX series in several places to log a message on the specified domain and format.
- This patch adds log macros to simplify these logging codes.
-
- * UIProcess/API/efl/ewk_main.cpp:
- (ewk_init):
- * UIProcess/API/efl/ewk_private.h:
- * UIProcess/API/efl/ewk_view.cpp:
- (ewk_view_webprocess_crashed):
-
-2012-09-17 Martin Robinson <mrobinson@igalia.com>
-
- [WebKit2] [GTK] Add API for controlling the user agent
- https://bugs.webkit.org/show_bug.cgi?id=95697
-
- Reviewed by Carlos Garcia Campos.
-
- Add API for changing the user agent in WebKit2. This adds two styles of
- setting the user agent: complete override and a method that just inserts
- the application name and version, but preserves the carefully crafted user agent
- in the library.
-
- * UIProcess/API/gtk/WebKitSettings.cpp:
- (_WebKitSettingsPrivate): Added a new field to store the user agent.
- This is stored in the private data structure, because we can only
- set the user agent when attaching the settings to the page.
- (webKitSettingsSetProperty): Add hooks for the new user agent property.
- (webKitSettingsGetProperty): Ditto.
- (webkit_settings_class_init): Ditto.
- (webkitSettingsAttachSettingsToPage): Ditto.
- (webkit_settings_get_user_agent): Added.
- (webkit_settings_set_user_agent): Added.
- (webkit_settings_set_user_agent_with_application_name): Added.
- * UIProcess/API/gtk/WebKitSettings.h: Added new methods.
- * UIProcess/API/gtk/WebKitWebView.cpp: Update the glue for the settings
- when attaching and detaching from WebViews.
- * UIProcess/API/gtk/docs/webkit2gtk-sections.txt: Added new methods to
- the documentation.
- * UIProcess/API/gtk/tests/TestWebKitSettings.cpp: Test the new user agent
- property.
- (testWebKitSettingsUserAgent): Ditto.
- (beforeAll): Ditto.
- * UIProcess/gtk/WebPageProxyGtk.cpp:
- (WebKit::WebPageProxy::standardUserAgent): Now use the shared WebCore
- code when setting the user agent.
-
-2012-09-18 Ryuan Choi <ryuan.choi@samsung.com>
-
- [EFL][WK2] Implement PageClientImpl::isViewFocused.
- https://bugs.webkit.org/show_bug.cgi?id=97015
-
- Reviewed by Gyuyoung Kim.
-
- WebKit2/Efl always returns true for PageClientImpl::isViewFocused.
- So window.onblur events will not be generated when webview lost focus.
-
- This patch implements isViewFocused to return the current focus of webview.
-
- * UIProcess/API/efl/PageClientImpl.cpp:
- (WebKit::PageClientImpl::isViewFocused):
-
-2012-09-18 Byungwoo Lee <bw80.lee@samsung.com>
-
- Title string should be changed when document.title is set to ''.
- https://bugs.webkit.org/show_bug.cgi?id=96793
-
- Reviewed by Kenneth Rohde Christiansen.
-
- Added unit test for setting document.title and checking the title
- string with title,changed signal and ewk_view_title_get() function.
-
- * UIProcess/API/efl/tests/test_ewk2_view.cpp:
- (TEST_F):
-
-2012-09-18 Anders Carlsson <andersca@apple.com>
-
- Division by zero crash in BackingStore::scroll
- https://bugs.webkit.org/show_bug.cgi?id=97046
- <rdar://problem/11722564>
-
- Reviewed by Dan Bernstein.
-
- It appears that DrawingAreaImpl::scroll can be called with an empty scroll rect. Do nothing
- if that's the case. Also, assert that the scrolling rect in BackingStoreMac is never empty.
-
- * UIProcess/mac/BackingStoreMac.mm:
- (WebKit::BackingStore::scroll):
- * WebProcess/WebPage/DrawingAreaImpl.cpp:
- (WebKit::DrawingAreaImpl::scroll):
-
-2012-09-18 Bo Liu <boliu@chromium.org>
-
- Revert 128780, 128676, 128645
- https://bugs.webkit.org/show_bug.cgi?id=97022
-
- Reviewed by Adam Barth.
-
- I made these revisions to add in-place reload behavior to ImagesEnabled setting.
- Reverting this for now due to them causing performance regression in
- chromium, possibly caused by increased calls to
- PermissionClient::imageAllowed.
-
- * win/WebKit2.def:
-
-2012-09-18 Martin Robinson <mrobinson@igalia.com>
-
- [GTK] [WebKit2] Use XComposite window for accelerated compositing
- https://bugs.webkit.org/show_bug.cgi?id=94417
-
- Reviewed by Carlos Garcia Campos.
-
- Instead of rendering directly to the widget's native window, render to an
- offscreen window redirected to a Pixmap with XComposite.
+ * UIProcess/WebProcessProxy.cpp:
+ (WebKit::WebProcessProxy::sendDidGetPlugins): Add PDFPlugin to the set of supported plugins.
+ * WebKit2.xcodeproj/project.pbxproj: Add PDFPlugin, rename BuiltInPDFView to SimplePDFPlugin.
+ * WebProcess/Plugins/PDF/PDFPlugin.h: Added.
+ * WebProcess/Plugins/PDF/PDFPlugin.mm: Added.
+
+ PDFPlugin uses layers for scrollbars.
+
+ (-[WKPDFPluginScrollbarLayer initWithPDFPlugin:WebKit::]): Initialize our CALayer subclass,
+ storing its parent PDFPlugin so it can delegate drawing there.
+ (-[WKPDFPluginScrollbarLayer actionForKey:]): Disable CoreAnimation implicit actions.
+ (-[WKPDFPluginScrollbarLayer drawInContext:]): Delegate scrollbar drawing to PDFPlugin.
+
+ Implement the PDFLayerController delegate, eventually forwarding calls back to PDFPlugin.
+
+ (-[WKPDFLayerControllerDelegate initWithPDFPlugin:WebKit::]): Initialize our delegate,
+ storing its parent PDFPlugin so it can forward delegate calls there.
+ (-[WKPDFLayerControllerDelegate updateScrollPosition:]): Update PDFPlugin's notion of the
+ current scroll position, when PDFKit changes the scroll position itself.
+ (-[WKPDFLayerControllerDelegate writeItemsToPasteboard:withTypes:]): Write the given
+ array of NSData objects to the pasteboard with the given types.
+
+ The following PDFLayerController delegate methods will be implemented in the future.
+
+ (-[WKPDFLayerControllerDelegate showDefinitionForAttributedString:atPoint:]):
+ (-[WKPDFLayerControllerDelegate performWebSearch:]):
+ (-[WKPDFLayerControllerDelegate openWithPreview]):
+ (-[WKPDFLayerControllerDelegate saveToPDF]):
+
+ (WebKit::PDFPlugin::PDFPlugin): Set up the requisite layer hierarchy, and create a PDFLayerController (and its delegate proxy).
+ (WebKit::PDFPlugin::updateScrollbars): Update the frame of the layers hosting our scrollbars.
+ (WebKit::PDFPlugin::createScrollbar): Create a scrollbar and hosting layer, attaching its layer
+ to PDFPlugin's container layer.
+ (WebKit::PDFPlugin::destroyScrollbar): Destroy a scrollbar, detaching and destroying its hosting layer in the process.
+ (WebKit::PDFPlugin::pdfDocumentDidLoad): Called when the document finishes loading; hand
+ the loaded document to PDFKit, update all of our state (cached document size, scrollbars, etc.), and then execute any scripts in the document (to allow for automatic printing).
+ (WebKit::PDFPlugin::calculateSizes): Determine the size of the PDF and its pages.
+ (WebKit::PDFPlugin::destroy): Tear down the layer hierarchy.
+ (WebKit::PDFPlugin::paint): PDFPlugin is layer-based, so we paint nothing into the tiles.
+ (WebKit::PDFPlugin::paintControlForLayerInContext): Scrollbar controls are drawn into layers, but their painting is delegated here from WKPDFPluginScrollbarLayer.
+ (WebKit::PDFPlugin::snapshot): Perform a paint into a bitmap context.
+ (WebKit::PDFPlugin::pluginLayer): Return PDFPlugin's root layer.
+ (WebKit::PDFPlugin::geometryDidChange): The size or scale of the plugin changed; update
+ PDFLayerController's notion of the size and page scale, and invalidate the scrollbars.
+
+ Mouse and keyboard events are converted back into NSEvents, but with
+ locationInWindow actually in terms of the PDFPlugin's layer, not
+ the window (since there is no window).
+
+ (WebKit::modifierFlagsFromWebEvent): Construct an AppKit-style modifier bitmask from WebEvent's modifier key getters.
+ (WebKit::eventTypeFromWebEvent): Return the NSEventType equivalent to the given WebEvent. Only supports keyboard and mouse events, and only the left and right mouse button.
+ (WebKit::PDFPlugin::handleMouseEvent): Construct an NSEvent from the given WebMouseEvent and hand it to PDFLayerController. Mouse coordinates are in terms of m_contentLayer's origin.
+ (WebKit::PDFPlugin::handleKeyboardEvent): Construct an NSEvent from the given WebKeyboardEvent and hand it to PDFLayerController. PDFLayerController currently only handles keyDown events.
+
+ (WebKit::PDFPlugin::handleEditingCommand): Handle copy and select-all commands, and forward them to PDFLayerController.
+ (WebKit::PDFPlugin::isEditingCommandEnabled): The 'copy' command should be enabled if
+ the user has selected a part of the PDF. The 'select all' command should always be enabled.
+
+ (WebKit::PDFPlugin::setScrollOffset): Update both PDFPlugin and PDFLayerController's notion
+ of the current scroll position.
+ (WebKit::PDFPlugin::invalidateScrollbarRect): Invalidate the whole scrollbar layer.
+ (WebKit::PDFPlugin::invalidateScrollCornerRect): Invalidate the whole scroll corner layer.
+
+ Rename BuiltInPDFView to SimplePDFPlugin, to differentiate it from PDFPlugin
+ and to better denote its inheritance from Plugin.
+
+ * WebProcess/Plugins/PDF/SimplePDFPlugin.h: Renamed from WebProcess/Plugins/PDF/BuiltInPDFView.h.
+ (WebKit::SimplePDFPlugin): Make methods protected so PDFPlugin can override them. Rename m_pluginSize -> m_size, and m_dataBuffer->m_data.
+ (WebKit::SimplePDFPlugin::size): Retrieve the size of the plugin.
+ (WebKit::SimplePDFPlugin::setSize): Set the size of the plugin.
+ (WebKit::SimplePDFPlugin::pdfDocument): Retrieve the currently represented PDF document.
+ (WebKit::SimplePDFPlugin::setPDFDocument): Set the currently represented PDF document.
+ (WebKit::SimplePDFPlugin::pdfDocumentSize): Retrieve the current size of the PDF.
+ (WebKit::SimplePDFPlugin::setPDFDocumentSize): Set the current size of the PDF.
+ (WebKit::SimplePDFPlugin::data): Retrieve the accumulated document data.
+ * WebProcess/Plugins/PDF/SimplePDFPlugin.mm: Renamed from WebProcess/Plugins/PDF/BuiltInPDFView.mm.
+ (WebKit::SimplePDFPlugin::computePageBoxes): Copied out of calculateSizes() so PDFPlugin can use it too.
+ (WebKit::SimplePDFPlugin::runScriptsInPDFDocument): Factored out of pdfDocumentDidLoad() so PDFPlugin can use it too.
+ (WebKit::SimplePDFPlugin::convertFromScrollbarToContainingView): Implement the remaining scrollbar point conversion functions.
+ (WebKit::SimplePDFPlugin::convertFromContainingViewToScrollbar): Implement the remaining scrollbar point conversion functions.
- * UIProcess/API/gtk/WebKitWebViewBase.cpp:
- (_WebKitWebViewBasePrivate): Added a few members necessary to track the
- offscreen window.
- (webkit_web_view_base_init):
- (renderAcceleratedCompositingResults): Added this helper functions which renders
- the results of the accelerated compositing operations during the GTK+ draw loop.
- (webkitWebViewBaseDraw): Call renderAcceleratedCompositingResults when appropriate.
- (resizeWebKitWebViewBaseFromAllocation): Resize the offscreen window when appropriate.
- (webkitWebViewBaseSizeAllocate): Do not call resizeWebKitWebViewBaseFromAllocation when
- the actual size of the widget does not change. This prevents destroying and recreating
- the offscreen window pixmap when it isn't necessary.
- (webkitWebViewBaseMap): We no longer send the window id during map, instead it's sent
- as soon as there is WebPageProxy.
- (webkitWebViewBaseCreateWebPage): Send the window id of the redirected window to
- the WebProcess.
- (queueAnotherDrawOfAcceleratedCompositingResults): Added this helper which works
- around the issue of slow updates of the pixmap backing the redirected XComposite window.
- (webkitWebViewBaseQueueDrawOfAcceleratedCompositingResults): Added this method which
- is what the WebProcess uses to force a redraw on the UIProcess side.
- * UIProcess/API/gtk/WebKitWebViewBasePrivate.h: Added new method to the list of private methods.
- * UIProcess/DrawingAreaProxyImpl.h:
- (DrawingAreaProxyImpl):
- (WebKit::DrawingAreaProxyImpl::isInAcceleratedCompositingMode): Exposed this method publically
- so that it can be used from WebKitWebViewBase.
- * UIProcess/WebPageProxy.h:
- (WebPageProxy): Renamed widgetMapped to setAcceleratedCompositingWindowId.
- * UIProcess/WebPageProxy.messages.in: Ditto.
- * UIProcess/gtk/WebPageProxyGtk.cpp: Ditto.
- (WebKit::WebPageProxy::setAcceleratedCompositingWindowId):
+ * WebProcess/Plugins/Plugin.h:
+ (Plugin): Add handleEditingCommand, isEditingCommandEnabled, and handlesPageScaleFactor.
+ * WebProcess/Plugins/PluginProxy.cpp:
+ (WebKit::PluginProxy::handleEditingCommand): Proxy handleEditingCommand to the PluginProcess.
+ (WebKit::PluginProxy::isEditingCommandEnabled): Proxy isEditingCommandEnabled
+ to the PluginProcess.
+ (WebKit::PluginProxy::handlesPageScaleFactor): Proxy handlesPageScaleFactor
+ to the PluginProcess.
+ * WebProcess/Plugins/PluginProxy.h: Add handleEditingCommand, isEditingCommandEnabled,
+ and handlesPageScaleFactor.
+ * WebProcess/Plugins/PluginView.cpp:
+ (WebKit::PluginView::setPageScaleFactor): Set the plugin's current page scale factor. Also,
+ update WebPageProxy's notion of the current pageScaleFactor when this is called.
+ (WebKit::PluginView::pageScaleFactor): Return the plugin's current page scale factor.
+ (WebKit::PluginView::handleEditingCommand): Proxy handleEditingCommand to the plugin.
+ (WebKit::PluginView::isEditingCommandEnabled): Proxy isEditingCommandEnabled to the plugin.
+ * WebProcess/Plugins/PluginView.h:
+ (PluginView): Add handleEditingCommand, isEditingCommandEnabled,
+ setPageScaleFactor/pageScaleFactor, and handlesPageScaleFactor. Add m_pageScaleFactor.
+ (WebKit::PluginView::handlesPageScaleFactor): Proxy handlesPageScaleFactor to the plugin.
+ * WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
+ (WebKit::WebFrameLoaderClient::restoreViewState): Don't update WebPageProxy's notion of the scale factor if it should be the default.
+ (WebKit::WebFrameLoaderClient::transitionToCommittedFromCachedFrame): Make use of shouldUseCustomRepresentationForResponse on WebPage instead of WebProcess.
+ (WebKit::WebFrameLoaderClient::transitionToCommittedForNewPage): Make use of shouldUseCustomRepresentationForResponse on WebPage instead of WebProcess.
+ * WebProcess/WebPage/WebPage.cpp:
+ (WebKit::WebPage::createPlugin): Create a PDFPlugin if appropriate (if it is built and the setting is enabled).
+ (WebKit::pluginViewForFrame): Return the PluginView for the given frame if its document is a PluginDocument.
+ (WebKit::WebPage::executeEditingCommand): Attempt to execute editing commands on the
+ currently focused (or main-frame) plugin.
+ (WebKit::WebPage::isEditingCommandEnabled): Validate editing commands against the
+ currently focused (or main-frame) plugin.
+ (WebKit::WebPage::scalePage): If the plugin reports that it handles page scale factor
+ itself, hand it the new scale instead of WebCore.
+ (WebKit::WebPage::pageScaleFactor): If the plugin reports that it handles page scale
+ factor itself, return its notion of the current scale instead of WebCore's.
+ (WebKit::WebPage::validateCommand): Validate editing commands against the
+ currently focused (or main-frame) plugin.
+ (WebKit::WebPage::updatePreferences): Update m_pdfPluginEnabled given the relevant WebPreference.
* WebProcess/WebPage/WebPage.h:
- (WebPage): Ditto.
- * WebProcess/WebPage/WebPage.messages.in: Ditto.
- * WebProcess/WebPage/gtk/LayerTreeHostGtk.cpp:
- (WebKit::LayerTreeHostGtk::sizeDidChange): Force a composite to the resized window right
- away so that the new window pixmap is updated before the first draw.
- (WebKit::LayerTreeHostGtk::compositeLayersToContext): If the composition is for a resize,
- first clear the entire GL context so that we don't see black artifacts during resize.
- * WebProcess/WebPage/gtk/LayerTreeHostGtk.h:
- (LayerTreeHostGtk): Update the signature of compositeLayersToContext.
- * WebProcess/WebPage/gtk/WebPageGtk.cpp:
- (WebKit::WebPage::setAcceleratedCompositingWindowId): Added.
-
-2012-09-18 Sheriff Bot <webkit.review.bot@gmail.com>
-
- Unreviewed, rolling out r128849.
- http://trac.webkit.org/changeset/128849
- https://bugs.webkit.org/show_bug.cgi?id=97007
-
- Causes test_ewk2_view to time out. (Requested by rakuco on
- #webkit).
-
- * UIProcess/API/efl/ewk_view.cpp:
- (ewk_view_webprocess_crashed):
- * UIProcess/API/efl/ewk_view.h:
- * UIProcess/API/efl/ewk_view_private.h:
- * UIProcess/API/efl/ewk_view_ui_client.cpp:
- (ewk_view_ui_client_attach):
- * UIProcess/API/efl/tests/test_ewk2_view.cpp:
- (TEST_F):
-
-2012-09-18 Carlos Garcia Campos <cgarcia@igalia.com>
-
- [GTK] Set the area of tooltips in WebKit2
- https://bugs.webkit.org/show_bug.cgi?id=96618
-
- Reviewed by Martin Robinson.
-
- In GTK+ tooltips are associated to a widget, if the mouse is moved
- inside the widget area, the tooltip position doesn't change even
- if the tooltip text changes. To support multiple tooltips for the
- same widget, we need to set the area of the widget for every
- tooltip.
-
- * Shared/WebHitTestResult.cpp:
- (WebKit::WebHitTestResult::Data::encode): Encode elementBoundingBox.
- (WebKit::WebHitTestResult::Data::decode): Decode elementBoundingBox.
- * Shared/WebHitTestResult.h:
- (Data): Add elementBoundingBox to WebHitTestResult::Data.
- (WebKit::WebHitTestResult::Data::elementBoundingBoxInWindowCoordinates):
- Get the bounding box of the inner non shared node of the hit test
- result in window coordinates.
- (WebKit::WebHitTestResult::Data::Data):
- (WebKit::WebHitTestResult::elementBoundingBox):
- (WebHitTestResult):
- * UIProcess/API/gtk/WebKitWebView.cpp:
- (webkitWebViewMouseTargetChanged): Call webkitWebViewBaseSetTooltipArea.
- * UIProcess/API/gtk/WebKitWebViewBase.cpp:
- (webkitWebViewBaseQueryTooltip): Use the tooltipArea if it's not empty.
- (webkitWebViewBaseSetTooltipArea): Set the tooltipArea.
- * UIProcess/API/gtk/WebKitWebViewBasePrivate.h:
-
-2012-09-18 Tor Arne Vestbø <tor.arne.vestbo@nokia.com>
-
- [Qt] Fix build without the QtQuick module
-
- Reviewed by Simon Hausmann.
-
- * Target.pri:
-
-2012-09-17 Eunmi Lee <eunmi15.lee@samsung.com>
-
- [EFL][WK2] Add NativeWebTouchEvent and handle the Touch event.
- https://bugs.webkit.org/show_bug.cgi?id=90662
-
- Reviewed by Gyuyoung Kim.
-
- Implement codes to handle touch event for WebKit2 EFL port.
- Additionally, types and structure for touch event are defined because
- they are not in the Evas.
-
- * PlatformEfl.cmake:
- * Shared/NativeWebTouchEvent.h:
- (NativeWebTouchEvent):
- * Shared/efl/NativeWebTouchEventEfl.cpp: Added.
- (WebKit):
- (WebKit::NativeWebTouchEvent::NativeWebTouchEvent):
- * Shared/efl/WebEventFactory.cpp:
- (WebKit):
- (WebKit::typeForTouchEvent):
- (WebKit::WebEventFactory::createWebTouchEvent):
- * Shared/efl/WebEventFactory.h:
- (WebEventFactory):
- * UIProcess/API/efl/ewk_touch.h: Added.
-
-2012-09-17 Csaba Osztrogonác <ossy@webkit.org>
-
- Unreviewed, rolling out r128826 and r128813.
-
- * WebProcess/Plugins/Netscape/JSNPObject.cpp:
- (WebKit):
- (WebKit::JSNPObject::JSNPObject):
- * WebProcess/Plugins/Netscape/JSNPObject.h:
- (JSNPObject):
+ (WebKit::WebPage::pdfPluginEnabled): Return whether or not PDFPlugin should be used.
+ (WebKit::WebPage::setPDFPluginEnabled): Set whether or not PDFPlugin should be used.
-2012-09-17 Kent Tamura <tkent@chromium.org>
-
- Export RuntimeEnabledFeatures::isLangAttributeAwareFormControlUIEnabled correctly
- https://bugs.webkit.org/show_bug.cgi?id=96855
-
- Reviewed by Hajime Morita.
-
- * win/WebKit2.def: Remove a symbol
- * win/WebKit2CFLite.def: ditto.
-
-2012-09-17 Byungwoo Lee <bw80.lee@samsung.com>
-
- [EFL][WK2] Add javascript popup API.
- https://bugs.webkit.org/show_bug.cgi?id=95672
-
- Reviewed by Gyuyoung Kim.
+2012-10-13 Sam Weinig <sam@webkit.org>
- Add smart class member function for javascript alert(), confirm() and prompt().
+ Use class extension rather than a void* member for new Objective-C WebProcessPlugIn SPI
+ https://bugs.webkit.org/show_bug.cgi?id=99256
- * UIProcess/API/efl/ewk_view.cpp:
- (ewk_view_run_javascript_alert):
- (ewk_view_run_javascript_confirm):
- (ewk_view_run_javascript_prompt):
- * UIProcess/API/efl/ewk_view.h:
- * UIProcess/API/efl/ewk_view_private.h:
- * UIProcess/API/efl/ewk_view_ui_client.cpp:
- (runJavaScriptAlert):
- (runJavaScriptConfirm):
- (runJavaScriptPrompt):
- (ewk_view_ui_client_attach):
- * UIProcess/API/efl/tests/test_ewk2_view.cpp:
- Added unit test for javascript popup smart class member function.
- (checkAlert):
- (TEST_F):
- (checkConfirm):
- (checkPrompt):
-
-2012-09-17 Regina Chung <heejin.r.chung@samsung.com>
+ Reviewed by Dan Bernstein.
- [EFL][WK2] Regression (r128163)
- https://bugs.webkit.org/show_bug.cgi?id=96610
+ A bit of good old fashion cleanup.
- Reviewed by Gyuyoung Kim.
+ * WebProcess/InjectedBundle/API/mac/WKWebProcessPlugIn.h:
+ Remove the void* member.
- While removing compile warnings r128163 changed the logic of code for entering
- accelerated compositing mode, resulting in never being able to enter it.
- Changed back to the correct code and fixed the compile warning by using an
- appropriate EINA macro.
+ * WebProcess/InjectedBundle/API/mac/WKWebProcessPlugIn.mm:
+ Move members from the WKWebProcessPlugInControllerData struct to a class extension.
- * UIProcess/API/efl/ewk_view.cpp:
- (ewk_view_accelerated_compositing_mode_enter): Changed EINA_SAFETY_ON_NULL_RETURN_VAL to *if* condition statement.
+ (didCreatePage):
+ (willDestroyPage):
+ (-[WKWebProcessPlugInController _initWithPrincipalClassInstance:bundleRef:]):
+ Directly access the members instead of using properties, now that it is not inconvenient.
-2012-09-17 Sam Weinig <sam@webkit.org>
+ * WebProcess/InjectedBundle/API/mac/WKWebProcessPlugInBrowserContextController.h:
+ Remove the void* member.
- Fix the Snow Leopard build.
+ * WebProcess/InjectedBundle/API/mac/WKWebProcessPlugInBrowserContextController.mm:
+ Move members from the WKWebProcessPlugInBrowserContextControllerData struct to a class extension.
+
+ (-[WKWebProcessPlugInBrowserContextController _initWithBundlePageRef:]):
+ (-[WKWebProcessPlugInBrowserContextController _bundlePageRef]):
+ Remove unnecessary casts..
- * PluginProcess/mac/PluginProcessMac.mm:
- (WebKit::PluginProcess::platformInitialize):
+ * WebProcess/InjectedBundle/API/mac/WKWebProcessPlugInBrowserContextControllerInternal.h:
+ * WebProcess/InjectedBundle/API/mac/WKWebProcessPlugInBrowserContextControllerPrivate.h:
+ Add space before the parenthesis of a category to be consistent.
+
+ * WebProcess/InjectedBundle/API/mac/WKWebProcessPlugInInternal.h:
+ Remove unnecessary forward declare.
-2012-09-17 Sam Weinig <sam@webkit.org>
+2012-10-13 Andy Estes <aestes@apple.com>
- Add experimental code to enter a sandbox for a plug-in.
- Based on a patch by Ivan Krstić.
- <rdar://problem/11823151>
+ Add a private header for WKWebProcessPlugInBrowserContextController that defines a property for getting the WKBundlePageRef
+ https://bugs.webkit.org/show_bug.cgi?id=99252
- Reviewed by Anders Carlsson.
+ Reviewed by Sam Weinig.
- Enter a sandbox for a plug-in if a sandbox profile is found in /usr/share/sandbox/ that
- has the plug-ins bundle identifier for a name.
+ * WebKit2.xcodeproj/project.pbxproj:
+ * WebProcess/InjectedBundle/API/mac/WKWebProcessPlugInBrowserContextController.mm:
+ (-[WKWebProcessPlugInBrowserContextController _bundlePageRef]):
+ * WebProcess/InjectedBundle/API/mac/WKWebProcessPlugInBrowserContextControllerPrivate.h: Added.
- * PluginProcess/mac/PluginProcessMac.mm:
- (WebKit::initializeSandbox):
- (WebKit::PluginProcess::platformInitialize):
- Enter the sandbox provided if a profile can be found.
+2012-10-12 Brady Eidson <beidson@apple.com>
- * WebProcess/Plugins/Netscape/mac/NetscapeSandboxFunctions.h:
- * WebProcess/Plugins/Netscape/mac/NetscapeSandboxFunctions.mm:
- (enterSandbox):
- Factor out the core sandbox entering logic (so if can be used above) and make sure
- that Remote Save Panel is enabled.
+ Setup basic NetworkProcess messaging and initialization.
+ https://bugs.webkit.org/show_bug.cgi?id=99198
-2012-09-17 Mark Hahnenberg <mhahnenberg@apple.com>
+ Reviewed by Sam Weinig.
- Fixing the build after http://trac.webkit.org/changeset/128813
+ Project file/build system stuff:
+ * DerivedSources.make:
+ * WebKit2.xcodeproj/project.pbxproj:
+ * Scripts/webkit2/messages.py:
+ (struct_or_class):
- * WebProcess/Plugins/Netscape/JSNPObject.cpp:
+ Add basic initialization parameters for the NetworkProcess:
+ * Shared/Network/NetworkProcessCreationParameters.cpp:
(WebKit):
- (WebKit::JSNPObject::JSNPObject):
- * WebProcess/Plugins/Netscape/JSNPObject.h:
- (JSNPObject):
-
-2012-09-17 Anders Carlsson <andersca@apple.com>
-
- Crash if we fail to allocate memory for the argument encoder buffer.
- https://bugs.webkit.org/show_bug.cgi?id=88367
-
- Reviewed by Andreas Kling.
- <rdar://problem/11488239>
-
- Since there's no way to recover from malloc returning null here, just crash.
-
- * Platform/CoreIPC/ArgumentEncoder.cpp:
- (CoreIPC::ArgumentEncoder::grow):
-
-2012-09-17 Beth Dakin <bdakin@apple.com>
-
- https://bugs.webkit.org/show_bug.cgi?id=96936
- Opt into layers for fixed positioned elements for TiledDrawingArea
-
- Reviewed by Tim Horton.
-
- This code already exists in DrawingAreaImpl, and we need it for
- TiledCoreAnimationDrawingArea as well.
- * WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.mm:
- (WebKit::TiledCoreAnimationDrawingArea::updatePreferences):
-
-2012-09-17 Anders Carlsson <andersca@apple.com>
-
- Don't load a blocked plug-in if a non-blocked version of the same plug-in exists
- https://bugs.webkit.org/show_bug.cgi?id=96933
- <rdar://problem/12206720>
-
- Reviewed by Andreas Kling.
-
- If a plug-in with the same bundle identifier already exists and it's blocked, remove it and replace it
- with the other version.
-
- * UIProcess/Plugins/mac/PluginInfoStoreMac.mm:
- (WebKit::PluginInfoStore::shouldUsePlugin):
-
-2012-09-17 Tor Arne Vestbø <tor.arne.vestbo@nokia.com>
-
- [Qt] Remove 'using namespace WebCore' from header file
-
- Broke the build on Mac OS X by causing clashes between Fixed from
- /usr/include/MacTypes.h and Source/WebCore/platform/Length.h.
-
- Reviewed by Simon Hausmann..
-
- * UIProcess/PageViewportController.cpp:
- * UIProcess/PageViewportController.h:
- (PageViewportController):
- (WebKit::PageViewportController::contentsLayoutSize):
+ (WebKit::NetworkProcessCreationParameters::NetworkProcessCreationParameters):
+ (WebKit::NetworkProcessCreationParameters::encode):
+ (WebKit::NetworkProcessCreationParameters::decode):
+ * Shared/Network/NetworkProcessCreationParameters.h:
+ (CoreIPC):
(WebKit):
- * UIProcess/qt/PageViewportControllerClientQt.cpp:
- * UIProcess/qt/PageViewportControllerClientQt.h:
- (PageViewportControllerClientQt):
-
-2012-09-15 Vivek Galatage <vivekgalatage@gmail.com>
-
- WinCairo build fix due to missing symbols for setImagesEnabled and setStorageBlockingPolicy
- https://bugs.webkit.org/show_bug.cgi?id=96866
-
- Reviewed by Kentaro Hara.
-
- Adding missing symbol defines in the def file to fix the build break
- for WinCairo
-
- * win/WebKit2CFLite.def:
-
-2012-09-15 Jinwoo Song <jinwoo7.song@samsung.com>
-
- [EFL][WK2] Provide implementation for PageClientImpl::processDidCrash()
- https://bugs.webkit.org/show_bug.cgi?id=96197
-
- Reviewed by Gyuyoung Kim.
-
- WebKit2 EFL does not have an implementation for PageClientImpl::processDidCrash().
- So when WebProcess has crashed, UI process does nothing and is left alone as it is.
-
- This patch checks if loading was ongoing, if so, set the load progress as 1.
- Then send a signal callback "webprocess,crashed" for an application to handle it.
- If the application does not handle the crash event, show an Eina Log warning message
- with a url at web process exit and load an error page.
-
- * UIProcess/API/efl/PageClientImpl.cpp:
- (WebKit::PageClientImpl::processDidCrash):
- * UIProcess/API/efl/ewk_private.h:
- * UIProcess/API/efl/ewk_view.cpp:
- (ewk_view_webprocess_crashed):
- * UIProcess/API/efl/ewk_view.h:
- * UIProcess/API/efl/ewk_view_private.h:
-
-2012-09-15 Pierre Rossi <pierre.rossi@gmail.com>
-
- [Qt] QDoc fixes for Qt 5 documentation
- https://bugs.webkit.org/show_bug.cgi?id=96796
+ (NetworkProcessCreationParameters):
- Reviewed by Simon Hausmann.
-
- Fixup miscellaneous qdoc commands syntax.
-
- * UIProcess/API/qt/qquickwebview.cpp:
- * UIProcess/API/qt/qwebloadrequest.cpp:
-
-2012-09-14 Gyuyoung Kim <gyuyoung.kim@samsung.com>
-
- Add *explicit* keyword to constructors to WebKit2/UIProcess
- https://bugs.webkit.org/show_bug.cgi?id=96732
-
- Reviewed by Kentaro Hara.
-
- As a step of *explicit* cleanup for constructors which have only one parameter,
- *explicit* is added to WebKit2/UIProcess in order to avoid implicit type conversion.
-
- * UIProcess/Authentication/AuthenticationDecisionListener.h:
- (AuthenticationDecisionListener):
- * UIProcess/Authentication/WebCredential.h:
- (WebCredential):
- * UIProcess/Authentication/WebProtectionSpace.h:
- (WebProtectionSpace):
- * UIProcess/GenericCallback.h:
- (WebKit::CallbackBase::CallbackBase):
- * UIProcess/InspectorServer/WebSocketServer.h:
- * UIProcess/ResponsivenessTimer.h:
- (ResponsivenessTimer):
- * UIProcess/WebApplicationCacheManagerProxy.h:
- (WebApplicationCacheManagerProxy):
- * UIProcess/WebBackForwardList.h:
- (WebBackForwardList):
- * UIProcess/WebContextUserMessageCoders.h:
- (WebKit::WebContextUserMessageEncoder::WebContextUserMessageEncoder):
- * UIProcess/WebFullScreenManagerProxy.h:
- (WebFullScreenManagerProxy):
- * UIProcess/WebGrammarDetail.h:
- (WebGrammarDetail):
- * UIProcess/WebInspectorProxy.h:
- (WebInspectorProxy):
- * UIProcess/WebKeyValueStorageManagerProxy.h:
- (WebKeyValueStorageManagerProxy):
- * UIProcess/WebMediaCacheManagerProxy.h:
- (WebMediaCacheManagerProxy):
- * UIProcess/WebNavigationData.h:
- (WebNavigationData):
- * UIProcess/WebOpenPanelResultListenerProxy.h:
- (WebOpenPanelResultListenerProxy):
- * UIProcess/WebPopupMenuProxy.h:
- (WebKit::WebPopupMenuProxy::WebPopupMenuProxy):
- * UIProcess/WebPreferences.h:
- (WebPreferences):
-
-2012-09-14 Beth Dakin <bdakin@apple.com>
-
- https://bugs.webkit.org/show_bug.cgi?id=96846
- Tests failing on WK2 bots after giving fixed positioning its own
- stacking context
-
- Reviewed by Geoffrey Garen.
-
- Tests are failing because I checked in updated results that expect
- fixed positioning to create a stacking context. However,
- WebKitTestRunner does not enable ScrollingCoordinator, so the code
- that I added to enable stacking contexts for fixedPos is never
- actually running. This patch moves that code to a place where it will
- run for the testing tools, which matches the patch for WK1.
- * WebProcess/WebPage/DrawingAreaImpl.cpp:
- (WebKit::DrawingAreaImpl::updatePreferences):
- * WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.mm:
- (WebKit::TiledCoreAnimationDrawingArea::TiledCoreAnimationDrawingArea):
-
-2012-09-14 Julien Chaffraix <jchaffraix@webkit.org>
-
- Revert r127457 and following fixes due to several hit-testing regressions
- https://bugs.webkit.org/show_bug.cgi?id=96830
-
- Reviewed by Antonio Gomes.
-
- This change reverts r127457, r127863 and r128505.
-
- * win/WebKit2.def:
- * win/WebKit2CFLite.def:
-
-2012-09-14 Adam Barth <abarth@webkit.org>
-
- Remove webkitPostMessage
- https://bugs.webkit.org/show_bug.cgi?id=96577
-
- Reviewed by Ojan Vafai.
-
- Add ENABLE_LEGACY_VENDOR_PREFIXES flag.
-
- * Configurations/FeatureDefines.xcconfig:
-
-2012-09-14 Jeffrey Pfau <jpfau@apple.com>
-
- Allow third-party storage blocking setting to change while a page is loaded
- https://bugs.webkit.org/show_bug.cgi?id=95790
-
- Reviewed by Brady Eidson.
-
- Inform plugins about changes to the storage blocking policy by way of the private browsing feature.
-
- * PluginProcess/PluginControllerProxy.cpp:
- (WebKit::PluginControllerProxy::storageBlockingStateChanged):
+ Use them to message the NetworkProcess what it's application name should be:
+ * UIProcess/Network/NetworkProcessProxy.cpp:
+ (WebKit::NetworkProcessProxy::didFinishLaunching):
+ * UIProcess/Network/NetworkProcessProxy.h:
(WebKit):
- * PluginProcess/PluginControllerProxy.h:
- (PluginControllerProxy):
- * PluginProcess/PluginControllerProxy.messages.in: Add WK2 message for storageBlockingStateChanged.
- * WebProcess/Plugins/Netscape/NetscapePlugin.cpp:
- (WebKit::NetscapePlugin::storageBlockingStateChanged):
- (WebKit):
- (WebKit::NetscapePlugin::privateBrowsingStateChanged):
- (WebKit::NetscapePlugin::updateNPNPrivateMode): Set plugin's private browsing if either private browsing or storage blocking is enabled.
- * WebProcess/Plugins/Netscape/NetscapePlugin.h:
- (NetscapePlugin):
- * WebProcess/Plugins/PDF/BuiltInPDFView.h:
- (BuiltInPDFView):
- * WebProcess/Plugins/PDF/BuiltInPDFView.mm: Treat storageBlockingStateChanged as a no-op.
- (WebKit::BuiltInPDFView::storageBlockingStateChanged):
- (WebKit):
- * WebProcess/Plugins/Plugin.h: Add pure virtual storageBlockingStateChanged method.
- (Plugin):
- * WebProcess/Plugins/PluginProxy.cpp:
- (WebKit::PluginProxy::storageBlockingStateChanged):
- (WebKit):
- * WebProcess/Plugins/PluginProxy.h:
- (PluginProxy):
- * WebProcess/Plugins/PluginView.cpp:
- (WebKit::PluginView::storageBlockingStateChanged):
+ (NetworkProcessProxy):
+ * UIProcess/Network/mac/NetworkProcessProxyMac.mm:
(WebKit):
- * WebProcess/Plugins/PluginView.h:
- (PluginView):
- * win/WebKit2.def:
-
-2012-09-14 Beth Dakin <bdakin@apple.com>
-
- https://bugs.webkit.org/show_bug.cgi?id=96688
- Put position:fixed elements in their own layers and allow them to
- create a stacking context
- -and corresponding-
- <rdar://problem/11467961>
-
- Reviewed by Simon Fraser.
-
- Soon we want pages with fixed positioned elements to be able to be
- scrolled by the ScrollingCoordinator. As a part of that work, we have
- to composite fixed position elements, and we have to allow those
- elements to create a stacking context.
- * WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.mm:
- (WebKit::TiledCoreAnimationDrawingArea::TiledCoreAnimationDrawingArea):
-
-2012-09-14 Bo Liu <boliu@chromium.org>
-
- Add in-place reload behavior to ImagesEnabled setting
- https://bugs.webkit.org/show_bug.cgi?id=95478
-
- Reviewed by Adam Barth.
-
- Export WebCore::Settings::setImagesEnabled symbol.
-
- * win/WebKit2.def:
-
-2012-09-14 Sudarsana Nagineni <sudarsana.nagineni@linux.intel.com>
+ (WebKit::NetworkProcessProxy::platformInitializeNetworkProcess):
- [EFL] RefPtr<Evas_Object> unit tests fails
- https://bugs.webkit.org/show_bug.cgi?id=96809
-
- Reviewed by Kenneth Rohde Christiansen.
-
- Added missing return.
-
- * UIProcess/API/efl/tests/UnitTestUtils/EWK2UnitTestBase.h:
- (EWK2UnitTest::EWK2UnitTestBase::canvas):
-
-2012-09-14 Christophe Dumez <christophe.dumez@intel.com>
-
- WebKitTestRunner needs layoutTestController.dumpDatabaseCallbacks
- https://bugs.webkit.org/show_bug.cgi?id=57570
-
- Reviewed by Kenneth Rohde Christiansen.
-
- Add new didExceedDatabaseQuota callback to WKBundlePageUIClient
- and call it from WebChromeClient::exceededDatabaseQuota().
- This is needed by WebKitTestRunner to dump information about
- database callbacks.
-
- * Shared/APIClientTraits.h:
- * WebProcess/InjectedBundle/API/c/WKBundlePage.h:
- * WebProcess/InjectedBundle/InjectedBundle.cpp:
- (WebKit::InjectedBundle::setDatabaseQuota): Call WebDatabaseManager::setQuotaForOrigin()
- with "file__0" instead of "file:///" as origin identifier. WebDatabaseManager expects
- a database identifier, not a string representation of the security origin. "file__0" is
- the string that is used as databaseIdentifier of local files. This bug was causing the
- database quota not to be set. The test cases would therefore fail due to the quota being
- 0 instead of the value explicitly set.
- * WebProcess/InjectedBundle/InjectedBundlePageUIClient.cpp:
- (WebKit::InjectedBundlePageUIClient::didExceedDatabaseQuota):
+ Add basic message handling and initialization to the NetworkProcess itself:
+ * NetworkProcess/NetworkProcess.messages.in: Added.
+ * Platform/CoreIPC/MessageID.h:
+ * NetworkProcess/NetworkProcess.cpp:
+ (WebKit::NetworkProcess::didReceiveMessage):
+ (WebKit::NetworkProcess::initializeNetworkProcess):
(WebKit):
- * WebProcess/InjectedBundle/InjectedBundlePageUIClient.h:
- (InjectedBundlePageUIClient):
- * WebProcess/WebCoreSupport/WebChromeClient.cpp:
- (WebKit::WebChromeClient::exceededDatabaseQuota):
-
-2012-09-14 Christophe Dumez <christophe.dumez@intel.com>
-
- WebKitTestRunner needs layoutTestController.setStopProvisionalFrameLoads
- https://bugs.webkit.org/show_bug.cgi?id=42691
-
- Reviewed by Kenneth Rohde Christiansen.
-
- Add WKBundleFrame private API to stop loading of a frame.
- This is needed by WebKitTestRunner to implement
- testrunner.setStopProvisionalFrameLoads.
-
- Original patch by Alexey Proskuryakov.
-
- * WebProcess/InjectedBundle/API/c/WKBundleFrame.cpp:
- (WKBundleFrameStopLoading):
- * WebProcess/InjectedBundle/API/c/WKBundleFramePrivate.h:
- * WebProcess/WebPage/WebFrame.cpp:
- (WebKit::WebFrame::stopLoading):
+ * NetworkProcess/NetworkProcess.h:
(WebKit):
- * WebProcess/WebPage/WebFrame.h:
- (WebFrame):
-
-2012-09-14 Kenneth Rohde Christiansen <kenneth@webkit.org>
-
- [EFL] Add unit test for RefPtr<Evas_Object>
- https://bugs.webkit.org/show_bug.cgi?id=96776
-
- Reviewed by Simon Hausmann.
-
- Basic testing of the new EFL specific RefPtr type.
-
- * PlatformEfl.cmake:
- * UIProcess/API/efl/tests/UnitTestUtils/EWK2UnitTestBase.h:
- (EWK2UnitTest::EWK2UnitTestBase::backingStore):
- (EWK2UnitTest::EWK2UnitTestBase::canvas):
-
- Add some new accessors for Ecore_Evas and Evas*.
+ (NetworkProcess):
- * UIProcess/API/efl/tests/test_ewk2_refptr_evas_object.cpp: Added.
- (TEST_F):
-
-2012-09-14 Tor Arne Vestbø <tor.arne.vestbo@nokia.com>
-
- [Qt] Move .mm file to OBJECTIVE_SOURCES
-
- Reviewed by Simon Hausmann.
-
- * Target.pri:
-
-2012-09-14 Sudarsana Nagineni <sudarsana.nagineni@linux.intel.com>
-
- WebKitTestRunner needs layoutTestController.setTabKeyCyclesThroughElements
- https://bugs.webkit.org/show_bug.cgi?id=42687
-
- Reviewed by Kenneth Rohde Christiansen.
-
- Implement testRunner.setTabKeyCyclesThroughElements for
- WebKitTestRunner.
-
- * WebProcess/InjectedBundle/API/c/WKBundle.cpp:
- (WKBundleSetTabKeyCyclesThroughElements):
- * WebProcess/InjectedBundle/API/c/WKBundlePrivate.h:
- * WebProcess/InjectedBundle/InjectedBundle.cpp:
- (WebKit::InjectedBundle::setTabKeyCyclesThroughElements):
+ Set a reasonable application name to be revealed in UI:
+ * NetworkProcess/mac/NetworkProcessMac.mm:
(WebKit):
- * WebProcess/InjectedBundle/InjectedBundle.h:
- (InjectedBundle):
+ (WebKit::NetworkProcess::platformInitialize):
-2012-09-14 Keishi Hattori <keishi@webkit.org>
- Add runtime flag that enables lang attribute for form controls in LayoutTests
- https://bugs.webkit.org/show_bug.cgi?id=96636
-
- Reviewed by Kent Tamura.
-
- * win/WebKit2.def:
- * win/WebKit2CFLite.def:
+2012-10-12 Ada Chan <adachan@apple.com>
-2012-09-14 Grzegorz Czajkowski <g.czajkowski@samsung.com>
+ Add WKPage API to get whether the main frame is pinned to the top or bottom edge
+ https://bugs.webkit.org/show_bug.cgi?id=99110
- Add method to get the list of all available dictionaries
- https://bugs.webkit.org/show_bug.cgi?id=96518
-
- Reviewed by Carlos Garcia Campos.
-
- * UIProcess/API/gtk/WebKitTextChecker.cpp:
- (WebKitTextChecker::getSpellCheckingLanguages):
- Update the method name that is called inside getSpellCheckingLanguages.
- This replace doesn't affect any on API changes.
-
-2012-09-13 KwangYong Choi <ky0.choi@samsung.com>
-
- [WK2] Add color picker API support for WebKit2
- https://bugs.webkit.org/show_bug.cgi?id=95058
-
- Reviewed by Gyuyoung Kim.
+ Reviewed by Beth Dakin.
- Add support for color picker API to WebKit2.
+ This is very similar to r79025 where we add support to do this for the left and right sides.
- * CMakeLists.txt:
- * GNUmakefile.list.am:
- * Shared/API/c/WKBase.h:
- * Shared/APIClientTraits.cpp:
- (WebKit):
- * Shared/APIClientTraits.h:
- * Shared/APIObject.h:
- * Target.pri:
- * UIProcess/API/C/WKAPICast.h:
- (WebKit):
- * UIProcess/API/C/WKColorPickerResultListener.cpp: Added.
- (WKColorPickerResultListenerGetTypeID):
- (WKColorPickerResultListenerColorSet):
- * UIProcess/API/C/WKColorPickerResultListener.h: Added.
+ * UIProcess/API/C/WKPage.cpp:
+ (WKPageIsPinnedToTopSide):
+ (WKPageIsPinnedToBottomSide):
* UIProcess/API/C/WKPage.h:
- * UIProcess/API/gtk/WebKitUIClient.cpp:
- (attachUIClientToView):
- * UIProcess/WebColorChooserProxy.cpp: Added.
- (WebKit):
- (WebKit::WebColorChooserProxy::WebColorChooserProxy):
- (WebKit::WebColorChooserProxy::~WebColorChooserProxy):
- (WebKit::WebColorChooserProxy::endChooser):
- (WebKit::WebColorChooserProxy::setSelectedColor):
- * UIProcess/WebColorChooserProxy.h:
- (WebColorChooserProxy):
- (WebKit::WebColorChooserProxy::create):
- * UIProcess/WebColorPickerResultListenerProxy.cpp: Added.
- (WebKit):
- (WebKit::WebColorPickerResultListenerProxy::WebColorPickerResultListenerProxy):
- (WebKit::WebColorPickerResultListenerProxy::~WebColorPickerResultListenerProxy):
- (WebKit::WebColorPickerResultListenerProxy::invalidate):
- (WebKit::WebColorPickerResultListenerProxy::setColor):
- * UIProcess/WebColorPickerResultListenerProxy.h: Added.
- (WebKit):
- (WebColorPickerResultListenerProxy):
- (WebKit::WebColorPickerResultListenerProxy::create):
- (WebKit::WebColorPickerResultListenerProxy::type):
+ Add new API calls.
+
* UIProcess/WebPageProxy.cpp:
+ (WebKit::WebPageProxy::WebPageProxy):
(WebKit::WebPageProxy::close):
- (WebKit::WebPageProxy::showColorChooser):
- (WebKit::WebPageProxy::didEndColorChooser):
+ (WebKit::WebPageProxy::didCommitLoadForFrame):
(WebKit::WebPageProxy::processDidCrash):
+ (WebKit::WebPageProxy::didChangeScrollOffsetPinningForMainFrame):
* UIProcess/WebPageProxy.h:
- (WebKit):
- (WebPageProxy):
- * UIProcess/WebUIClient.cpp:
- (WebKit):
- (WebKit::WebUIClient::showColorPicker):
- (WebKit::WebUIClient::hideColorPicker):
- * UIProcess/WebUIClient.h:
- (WebKit):
- (WebUIClient):
- * WebKit2.xcodeproj/project.pbxproj:
- * win/WebKit2.vcproj:
- * win/WebKit2Generated.make:
-
-2012-09-13 KwangYong Choi <ky0.choi@samsung.com>
-
- [EFL][WK2] Implement missing initializeLogChannel function
- https://bugs.webkit.org/show_bug.cgi?id=96478
-
- Reviewed by Gyuyoung Kim.
-
- Implemented log channel initialization function for EFL platform in WebKit2.
-
- * Platform/Logging.cpp:
- (WebKit):
- * Platform/Logging.h:
- (WebKit):
- * Platform/efl/LoggingEfl.cpp: Added.
- (WebKit):
- (WebKit::initializeLogChannel): Channel is initialized if its name is found in WEBKIT_DEBUG.
- * PlatformEfl.cmake:
-
-2012-09-13 Mark Rowe <mrowe@apple.com>
-
- <rdar://problem/12283706> WebKit looks for some files on the system even when building against an SDK.
-
- Reviewed by David Kilzer.
-
- If an SDK is being used, pass it through to our custom invocations of the preprocessor.
-
- * DerivedSources.make:
-
-2012-09-13 Brent Fulgham <bfulgham@webkit.org>
-
- [WinCairo] Unreviewed build fix for export declarations.
-
- New entries were added to the standard Windows export definition
- file, but were not added to the WinCairo version, breaking the build.
-
- * win/WebKit2CFLite.def: Incoproate changes from WebKit2.def file.
-
-2012-09-13 Tim Horton <timothy_horton@apple.com>
-
- Add optional debug logging when we fall into/out of threaded scrolling
- https://bugs.webkit.org/show_bug.cgi?id=93898
- <rdar://problem/12089098>
-
- Reviewed by Simon Fraser.
-
- Update the scrolling tree's scrollingPerformanceLoggingEnabled preference
- before the early-return if we don't have layer debugging borders on.
-
- * WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.mm:
- (WebKit::TiledCoreAnimationDrawingArea::updatePreferences):
-
-2012-09-13 Sudarsana Nagineni <sudarsana.nagineni@linux.intel.com>
-
- [WK2][WTR] WebKitTestRunner needs testRunner.callShouldCloseOnWebView
- https://bugs.webkit.org/show_bug.cgi?id=96366
-
- Reviewed by Anders Carlsson.
-
- Implement testRunner.callShouldCloseOnWebView for WebKitTestRunner
- by calling shouldClose() on the FrameLoader.
-
- * WebProcess/InjectedBundle/API/c/WKBundleFrame.cpp:
- (WKBundleFrameCallShouldCloseOnWebView):
- * WebProcess/InjectedBundle/API/c/WKBundleFrame.h:
-
-2012-09-13 Thiago Marcos P. Santos <thiago.santos@intel.com>
-
- [EFL] Assertion reached on RenderThemeEFL when setting a theme to an invalid path
- https://bugs.webkit.org/show_bug.cgi?id=96649
-
- Reviewed by Kenneth Rohde Christiansen.
-
- Updated the alternative test theme file. It is basically
- the default theme with extra padding on the button widget as
- specified by the comments on the test case.
-
- * UIProcess/API/efl/tests/resources/big_button_theme.edj:
-
-2012-09-13 Balazs Kelemen <kbalazs@webkit.org>
-
- [WK2] LayerTreeCoordinator should release unused UpdatedAtlases
- https://bugs.webkit.org/show_bug.cgi?id=95072
-
- Reviewed by Jocelyn Turcotte.
+ (WebKit::WebPageProxy::isPinnedToTopSide):
+ (WebKit::WebPageProxy::isPinnedToBottomSide):
+ Declare new data members for keeping track of the pinned states for
+ top and bottom sides. Initialize, reset, and update these states
+ at appropriate times. Implement getters for these states.
- Release graphic buffers that haven't been used for a while in order to save memory.
- This way we can give back memory to the system when no user interaction happens
- after a period of time, for example when we are in the background.
-
- * Shared/ShareableBitmap.h:
- * WebProcess/WebPage/CoordinatedGraphics/LayerTreeCoordinator.cpp:
- (WebKit::LayerTreeCoordinator::LayerTreeCoordinator):
- (WebKit::LayerTreeCoordinator::beginContentUpdate):
- (WebKit):
- (WebKit::LayerTreeCoordinator::scheduleReleaseInactiveAtlases):
- (WebKit::LayerTreeCoordinator::releaseInactiveAtlasesTimerFired):
- * WebProcess/WebPage/CoordinatedGraphics/LayerTreeCoordinator.h:
- (LayerTreeCoordinator):
- * WebProcess/WebPage/UpdateAtlas.cpp:
- (WebKit::UpdateAtlas::UpdateAtlas):
- (WebKit::UpdateAtlas::didSwapBuffers):
- Don't call buildLayoutIfNeeded here. It's enought to call it in beginPaintingOnAvailableBuffer
- and this way we can track whether this atlas is used with m_areaAllocator.
- (WebKit::UpdateAtlas::beginPaintingOnAvailableBuffer):
- * WebProcess/WebPage/UpdateAtlas.h:
- (WebKit::UpdateAtlas::addTimeInactive):
- (WebKit::UpdateAtlas::isInactive):
- (WebKit::UpdateAtlas::isInUse):
- (UpdateAtlas):
-
-2012-09-13 Lauro Neto <lauro.neto@openbossa.org>
-
- [Qt][WK2] fast/forms/access-key-for-all-elements.html fails
- https://bugs.webkit.org/show_bug.cgi?id=73917
-
- Reviewed by Simon Hausmann.
-
- Access-key tests were failing due to hardcoded Mac OS X in the
- Qt WK2 user agent string. This commit moves the WK1 implementation
- to a shared one to be used by both versions.
-
- Use the shared implementation instead of hardcoding the user agent.
-
- * UIProcess/qt/WebPageProxyQt.cpp:
- (WebKit::WebPageProxy::standardUserAgent):
-
-2012-09-13 Simon Hausmann <simon.hausmann@nokia.com>
-
- [Qt] Fix build of WTR and the QML2 plugin on Windows
- https://bugs.webkit.org/show_bug.cgi?id=96652
-
- Reviewed by Tor Arne Vestbø.
-
- Some components that we build such as WTR or the QML2 plugin include
- WebKit2 header files as well as WebKit2's config.h. Only the include
- paths of WebKit2 are required for that at the moment (WEBKIT +=
- webkit2). Only on Windows WebKit2's config.h also includes
- WebCore/config.h, which in turn requires to have WebCore/platform in
- your include search path. That in turn means that any component that
- wants to use WebKit2 headers also needs the WebCore headers, but only
- one Windows. It turns out that for the Qt build we don't need it, so
- skip it in our configuration and make the include path requirement
- the same across all the platforms we build.
-
- * config.h:
-
-2012-09-13 Andras Becsi <andras.becsi@nokia.com>
-
- [Qt][WK2] REGRESSION(r128245): It made zillion API tests fail
- https://bugs.webkit.org/show_bug.cgi?id=96531
-
- Reviewed by Jocelyn Turcotte.
-
- Preferences have to be updated after the drawing area was created
- for compositing mode to be set.
+ * UIProcess/WebPageProxy.messages.in:
+ Change the DidChangeScrollOffsetPinningForMainFrame message to take
+ the pinned states for top and bottom sides.
* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::WebPage):
+ (WebKit::WebPage::didChangeScrollOffsetForMainFrame):
+ * WebProcess/WebPage/WebPage.h:
+ Cache the pinned states for top and bottom sides. Only notify the
+ UI process if the states have changed.
-2012-09-13 Simon Hausmann <simon.hausmann@nokia.com>
-
- [Qt] Fix UIProcess build with Qt on Windows
- https://bugs.webkit.org/show_bug.cgi?id=96635
+2012-10-12 Anders Carlsson <andersca@apple.com>
- Reviewed by Csaba Osztrogonác.
+ Stop using deprecatedSend inside ConnectionMac.cpp
+ https://bugs.webkit.org/show_bug.cgi?id=99192
- Enabling setShouldCloseConnectionOnProcessTermination on the connection
- is something that is only implemented in ConnectionUnix, not
- ConnectionWin.cpp, where appears to be built-in functionality.
+ Reviewed by Andreas Kling.
- * UIProcess/WebConnectionToWebProcess.cpp:
- (WebKit::WebConnectionToWebProcess::WebConnectionToWebProcess):
+ The messages that we send are so simple that we can just use sendMessage.
-2012-09-13 Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
+ * Platform/CoreIPC/mac/ConnectionMac.cpp:
+ (CoreIPC::Connection::open):
- [Qt] Fix build against namespaced Qt
+2012-10-12 Brady Eidson <beidson@apple.com>
- Reviewed by Tor Arne Vestbø.
+ Add a basic NetworkProcess.app to the WebKit2 build
+ https://bugs.webkit.org/show_bug.cgi?id=98543
- * UIProcess/qt/PageViewportControllerClientQt.h:
+ Reviewed by Sam Weinig.
-2012-09-13 Michał Pakuła vel Rutka <m.pakula@samsung.com>
+ This change sets up the Mac build to include a NetworkProcess.app.
+ It also launches this app when the first WebProcess is created.
+ It then quits this app when the UIProcess terminates.
- [EFL][Qt][WK2] Implement shared undo controller for EFL and Qt port.
- https://bugs.webkit.org/show_bug.cgi?id=92504
+ The app, it does nothing.
+ -McBain
- Reviewed by Kenneth Rohde Christiansen.
-
- EFL port needs an undo controller similiar to one from Qt port. Instead of
- duplicating the code existing class was renamed and moved to UIProcess
- directory.
+ Pure project file/build system stuff:
+ * Configurations/NetworkProcess.xcconfig: Added.
+ * WebKit2.xcodeproj/project.pbxproj:
+ * WebKit2Prefix.h:
- * PlatformEfl.cmake:
- * Target.pri:
- * UIProcess/API/efl/PageClientImpl.cpp:
- (WebKit::PageClientImpl::registerEditCommand):
- (WebKit::PageClientImpl::clearAllEditCommands):
- (WebKit::PageClientImpl::canUndoRedo):
- (WebKit::PageClientImpl::executeUndoRedo):
- * UIProcess/API/efl/PageClientImpl.h:
- (PageClientImpl):
- * UIProcess/API/qt/qquickwebview_p_p.h:
- (QQuickWebViewPrivate):
- * UIProcess/DefaultUndoController.cpp: Renamed from Source/WebKit2/UIProcess/qt/QtWebUndoController.cpp.
+ Basic UIProcess side of things:
+ * UIProcess/Network/NetworkProcessProxy.cpp: Added.
+ (WebKit):
+ (WebKit::NetworkProcessProxy::create):
+ (WebKit::NetworkProcessProxy::NetworkProcessProxy):
+ (WebKit::NetworkProcessProxy::~NetworkProcessProxy):
+ (WebKit::NetworkProcessProxy::didReceiveMessage):
+ (WebKit::NetworkProcessProxy::didClose):
+ (WebKit::NetworkProcessProxy::didReceiveInvalidMessage):
+ (WebKit::NetworkProcessProxy::syncMessageSendTimedOut):
+ (WebKit::NetworkProcessProxy::didFinishLaunching):
+ * UIProcess/Network/NetworkProcessProxy.h: Added.
+ (WebKit):
+ (NetworkProcessProxy):
+
+ Basic NetworkProcess side of things:
+ * NetworkProcess/Info.plist: Added.
+ * NetworkProcess/NetworkProcess.cpp: Added.
+ (WebKit):
+ (WebKit::NetworkProcess::shared):
+ (WebKit::NetworkProcess::NetworkProcess):
+ (WebKit::NetworkProcess::~NetworkProcess):
+ (WebKit::NetworkProcess::initialize):
+ (WebKit::NetworkProcess::shouldTerminate):
+ (WebKit::NetworkProcess::didReceiveMessage):
+ (WebKit::NetworkProcess::didClose):
+ (WebKit::NetworkProcess::didReceiveInvalidMessage):
+ (WebKit::NetworkProcess::syncMessageSendTimedOut):
+ * NetworkProcess/NetworkProcess.h: Added.
+ (WebCore):
(WebKit):
- (WebKit::DefaultUndoController::registerEditCommand):
- (WebKit::DefaultUndoController::clearAllEditCommands):
- (WebKit::DefaultUndoController::canUndoRedo):
- (WebKit::DefaultUndoController::executeUndoRedo):
- * UIProcess/DefaultUndoController.h: Renamed from Source/WebKit2/UIProcess/qt/QtWebUndoController.h.
+ (NetworkProcess):
+
+ Add the main method for the NetworkProcess itself:
+ * WebProcess/WebKitMain.cpp:
+ (WebKitMain):
+ * NetworkProcess/NetworkProcessMain.h: Added.
(WebKit):
- (DefaultUndoController):
- * UIProcess/qt/QtPageClient.cpp:
- (WebKit::QtPageClient::initialize):
- * UIProcess/qt/QtPageClient.h:
+ * NetworkProcess/mac/NetworkProcessMainMac.mm: Added.
(WebKit):
- (QtPageClient):
-
-2012-09-13 Christophe Dumez <christophe.dumez@intel.com>
+ (WebKit::NetworkProcessMain):
- [EFL][WK2] Make _ref() functions return the object
- https://bugs.webkit.org/show_bug.cgi?id=96604
+ Teach ProcessLauncher about the new app type:
+ * UIProcess/Launcher/ProcessLauncher.cpp:
+ (WebKit::ProcessLauncher::processTypeAsString):
+ (WebKit::ProcessLauncher::getProcessTypeFromString):
+ * UIProcess/Launcher/ProcessLauncher.h:
+ * UIProcess/Launcher/mac/ProcessLauncherMac.mm:
+ (WebKit::createProcess):
- Reviewed by Gyuyoung Kim.
+ Launch the NetworkProcess when we launch the first WebProcess:
+ * UIProcess/WebContext.cpp:
+ (WebKit::WebContext::ensureNetworkProcess):
+ * UIProcess/WebContext.h:
+ (WebContext):
- Make _ref() functions return the ref'd object to
- make them more convenient to use. Also fix their
- usage to make use of the newly returned value.
+2012-10-12 Sheriff Bot <webkit.review.bot@gmail.com>
- This change is consistent with eina_stringshare_ref()
- in EFL and g_object_ref() in glib.
+ Unreviewed, rolling out r131189.
+ http://trac.webkit.org/changeset/131189
+ https://bugs.webkit.org/show_bug.cgi?id=99187
- * UIProcess/API/efl/ewk_back_forward_list.cpp:
- (createEinaList):
- * UIProcess/API/efl/ewk_back_forward_list_item.cpp:
- (ewk_back_forward_list_item_ref):
- * UIProcess/API/efl/ewk_back_forward_list_item.h:
- * UIProcess/API/efl/ewk_context.cpp:
- (ewk_context_download_job_add):
- * UIProcess/API/efl/ewk_download_job.cpp:
- (ewk_download_job_ref):
- (ewk_download_job_response_set):
- * UIProcess/API/efl/ewk_download_job.h:
- * UIProcess/API/efl/ewk_form_submission_request.cpp:
- (ewk_form_submission_request_ref):
- * UIProcess/API/efl/ewk_form_submission_request.h:
- * UIProcess/API/efl/ewk_intent.cpp:
- (ewk_intent_ref):
- * UIProcess/API/efl/ewk_intent.h:
- * UIProcess/API/efl/ewk_intent_service.cpp:
- (ewk_intent_service_ref):
- * UIProcess/API/efl/ewk_intent_service.h:
- * UIProcess/API/efl/ewk_navigation_policy_decision.cpp:
- (ewk_navigation_policy_decision_ref):
- * UIProcess/API/efl/ewk_navigation_policy_decision.h:
- * UIProcess/API/efl/ewk_url_request.cpp:
- (ewk_url_request_ref):
- * UIProcess/API/efl/ewk_url_request.h:
- * UIProcess/API/efl/ewk_url_response.cpp:
- (ewk_url_response_ref):
- * UIProcess/API/efl/ewk_url_response.h:
- * UIProcess/API/efl/ewk_url_scheme_request.cpp:
- (ewk_url_scheme_request_ref):
- * UIProcess/API/efl/ewk_url_scheme_request.h:
- * UIProcess/API/efl/ewk_view.cpp:
- (ewk_view_resource_load_initiated):
- * UIProcess/API/efl/ewk_web_resource.cpp:
- (ewk_web_resource_ref):
- * UIProcess/API/efl/ewk_web_resource.h:
+ Made inspector http tests crash on WK2. (Requested by rakuco
+ on #webkit).
-2012-09-12 Sheriff Bot <webkit.review.bot@gmail.com>
+ * PlatformEfl.cmake:
+ * UIProcess/efl/WebInspectorProxyEfl.cpp:
+ (WebKit::WebInspectorProxy::inspectorPageURL):
+ (WebKit::WebInspectorProxy::inspectorBaseURL):
- Unreviewed, rolling out r127876.
- http://trac.webkit.org/changeset/127876
- https://bugs.webkit.org/show_bug.cgi?id=96600
+2012-10-12 Ryuan Choi <ryuan.choi@samsung.com>
- mouse click doesn't work for spin button if spin button in
- iframe (Requested by yosin on #webkit).
+ [EFL] Share resources installed for inspector
+ https://bugs.webkit.org/show_bug.cgi?id=98991
- * WebProcess/InjectedBundle/InjectedBundleNavigationAction.cpp:
- (WebKit::InjectedBundleNavigationAction::InjectedBundleNavigationAction):
- * WebProcess/WebPage/WebPage.cpp:
- (WebKit::handleContextMenuEvent):
- (WebKit::WebPage::highlightPotentialActivation):
- (WebKit::WebPage::findZoomableAreaForPoint):
- * WebProcess/WebPage/mac/WebPageMac.mm:
- (WebKit::WebPage::characterIndexForPoint):
- (WebKit::WebPage::performDictionaryLookupAtLocation):
- (WebKit::WebPage::shouldDelayWindowOrderingEvent):
- (WebKit::WebPage::acceptsFirstMouse):
- * win/WebKit2.def:
- * win/WebKit2CFLite.def:
+ Reviewed by Gyuyoung Kim.
-2012-09-12 Brady Eidson <beidson@apple.com>
+ * PlatformEfl.cmake: Removed build script which install resources to share.
+ * UIProcess/efl/WebInspectorProxyEfl.cpp:
+ (WebKit::WebInspectorProxy::inspectorPageURL): Modified not to use makeString.
+ (WebKit::WebInspectorProxy::inspectorBaseURL): Changed resource path.
- Assert in NetscapePlugin::destroy() with async plugin init
- <rdar://problem/12277595> and https://bugs.webkit.org/show_bug.cgi?id=96576
+2012-10-12 Sheriff Bot <webkit.review.bot@gmail.com>
- Reviewed by Anders Carlsson.
+ Unreviewed, rolling out r131160.
+ http://trac.webkit.org/changeset/131160
+ https://bugs.webkit.org/show_bug.cgi?id=99163
- Most of the NPN_* API calls have a plug-in protector during the calls.
- NPN_Invoke and NPN_InvokeDefault do not.
+ "It should not be landed without it's follow-up because it
+ break pixal and ref tests without it." (Requested by kbalazs
+ on #webkit).
- * WebProcess/Plugins/Netscape/NetscapeBrowserFuncs.cpp:
- (WebKit::NPN_Invoke): Protect the plug-in during this call.
- (WebKit::NPN_InvokeDefault): Ditto.
+ * Shared/API/c/qt/WKImageQt.cpp:
+ (WKImageCreateQImage):
+ * Shared/API/c/qt/WKImageQt.h:
-2012-09-11 Alexey Proskuryakov <ap@apple.com>
+2012-10-12 Balazs Kelemen <kbalazs@webkit.org>
- <rdar://problem/12275537> REGRESSION(r127384): Non-existent directories are no longer created for sandbox paths
- https://bugs.webkit.org/show_bug.cgi?id=96442
+ [WK2] Serialization of Resource[Request,Response,Error] should be shared across ports
+ https://bugs.webkit.org/show_bug.cgi?id=90142
- Reviewed by Darin Adler.
+ Unreviewed buildfix 2.
- * Shared/SandboxExtension.h:
- (WebKit::SandboxExtension::createHandleForReadWriteDirectory):
- * Shared/mac/SandboxExtensionMac.mm:
- (WebKit::SandboxExtension::createHandleForReadWriteDirectory):
- Added a function for read-write configuration directories. It matches
- appendReadwriteSandboxDirectory() function behavior from WebProcessMac.mm.
+ * Shared/soup/WebCoreArgumentCodersSoup.cpp:
+ (CoreIPC::::encodePlatformData):
+ (CoreIPC::::decodePlatformData):
- * UIProcess/WebContext.cpp:
- (WebKit::WebContext::createNewWebProcess):
- * UIProcess/mac/WebContextMac.mm:
- (WebKit::WebContext::platformInitializeWebProcess):
- Use the new function for directories that need to be created if they don't exist.
+2012-10-12 Balazs Kelemen <kbalazs@webkit.org>
-2012-09-12 Christophe Dumez <christophe.dumez@intel.com>
+ [WK2] Serialization of Resource[Request,Response,Error] should be shared across ports
+ https://bugs.webkit.org/show_bug.cgi?id=90142
- [WK2][WKTR] TestRunner needs to implement originsWithApplicationCache
- https://bugs.webkit.org/show_bug.cgi?id=96496
+ Unreviewed buildfix.
- Reviewed by Kenneth Rohde Christiansen.
+ * Shared/WebCoreArgumentCoders.cpp:
+ (CoreIPC::::decode):
- Add Bundle C API to retrieve security origins with
- an application cache. This is needed by WebKitTestRunner
- to support originsWithApplicationCache.
+2012-10-12 Balazs Kelemen <kbalazs@webkit.org>
- * WebProcess/InjectedBundle/API/c/WKBundle.cpp:
- (WKBundleCopyOriginsWithApplicationCache):
- * WebProcess/InjectedBundle/API/c/WKBundlePrivate.h:
- * WebProcess/InjectedBundle/InjectedBundle.cpp:
- (WebKit::InjectedBundle::originsWithApplicationCache):
- (WebKit):
- * WebProcess/InjectedBundle/InjectedBundle.h:
- (InjectedBundle):
+ [WK2] Serialization of Resource[Request,Response,Error] should be shared across ports
+ https://bugs.webkit.org/show_bug.cgi?id=90142
-2012-09-12 Christophe Dumez <christophe.dumez@intel.com>
+ Reviewed by Simon Hausmann.
- [WK2][WKTR] TestRunner needs to implement dumpApplicationCacheDelegateCallbacks
- https://bugs.webkit.org/show_bug.cgi?id=96374
+ Share common serialization code across Qt and soup ports.
+ All of these ports serialize the WebCore representation
+ of these types.
- Reviewed by Kenneth Rohde Christiansen.
+ * Shared/WebCoreArgumentCoders.cpp:
+ (CoreIPC::::encode):
+ (CoreIPC):
+ (CoreIPC::::decode):
+ * Shared/WebCoreArgumentCoders.h:
+ * Shared/mac/WebCoreArgumentCodersMac.mm:
+ (CoreIPC::::encodePlatformData):
+ (CoreIPC::::decodePlatformData):
+ * Shared/qt/WebCoreArgumentCodersQt.cpp:
+ (CoreIPC::::encodePlatformData):
+ (CoreIPC::::decodePlatformData):
+ * Shared/soup/WebCoreArgumentCodersSoup.cpp:
+ (CoreIPC::::encodePlatformData):
+ (CoreIPC::::decodePlatformData):
+ * Shared/win/WebCoreArgumentCodersWin.cpp:
+ (CoreIPC::::encodePlatformData):
+ (CoreIPC::::decodePlatformData):
- Add Bundle C API to reset the application cache quota
- for a given origin.
+2012-10-12 Balazs Kelemen <kbalazs@webkit.org>
- Add new reachedApplicationCacheOriginQuota callback
- to WKBundlePageUIClient which is called from
- WebChromeClient::reachedApplicationCacheOriginQuota().
+ Unreviewed, rolling out r130389.
+ http://trac.webkit.org/changeset/130389
+ https://bugs.webkit.org/show_bug.cgi?id=98048
- Those are needed by WebKitTestRunner to dump
- information about the application cache callbacks
- if instructed to.
+ It broke chromium
- * Shared/APIClientTraits.cpp:
- (WebKit):
- * Shared/APIClientTraits.h:
- * WebProcess/InjectedBundle/API/c/WKBundle.cpp:
- (WKBundleSetApplicationCacheOriginQuota):
- (WKBundleResetApplicationCacheOriginQuota):
- * WebProcess/InjectedBundle/API/c/WKBundlePage.h:
- * WebProcess/InjectedBundle/API/c/WKBundlePrivate.h:
- * WebProcess/InjectedBundle/InjectedBundle.cpp:
- (WebKit::InjectedBundle::resetApplicationCacheOriginQuota):
- (WebKit):
- * WebProcess/InjectedBundle/InjectedBundle.h:
- (InjectedBundle):
- * WebProcess/InjectedBundle/InjectedBundlePageUIClient.cpp:
- (WebKit::InjectedBundlePageUIClient::didReachApplicationCacheOriginQuota):
- (WebKit):
- * WebProcess/InjectedBundle/InjectedBundlePageUIClient.h:
- (WebKit):
- (InjectedBundlePageUIClient):
- * WebProcess/WebCoreSupport/WebChromeClient.cpp:
- (WebKit::WebChromeClient::reachedApplicationCacheOriginQuota):
* win/WebKit2.def:
* win/WebKit2CFLite.def:
-2012-09-12 Sheriff Bot <webkit.review.bot@gmail.com>
-
- Unreviewed, rolling out r128280.
- http://trac.webkit.org/changeset/128280
- https://bugs.webkit.org/show_bug.cgi?id=96498
-
- it broke compilation on windows debug bot (Requested by loislo
- on #webkit).
-
- * Shared/APIClientTraits.cpp:
- (WebKit):
- * Shared/APIClientTraits.h:
- * WebProcess/InjectedBundle/API/c/WKBundle.cpp:
- (WKBundleSetApplicationCacheOriginQuota):
- * WebProcess/InjectedBundle/API/c/WKBundlePage.h:
- * WebProcess/InjectedBundle/API/c/WKBundlePrivate.h:
- * WebProcess/InjectedBundle/InjectedBundle.cpp:
- * WebProcess/InjectedBundle/InjectedBundle.h:
- (InjectedBundle):
- * WebProcess/InjectedBundle/InjectedBundlePageUIClient.cpp:
- * WebProcess/InjectedBundle/InjectedBundlePageUIClient.h:
- (WebKit):
- (InjectedBundlePageUIClient):
- * WebProcess/WebCoreSupport/WebChromeClient.cpp:
- (WebKit::WebChromeClient::reachedApplicationCacheOriginQuota):
+2012-10-12 Balazs Kelemen <kbalazs@webkit.org>
-2012-09-12 Byungwoo Lee <bw80.lee@samsung.com>
+ [Qt][WTR] Do a forced repaint before generating pixel results
+ https://bugs.webkit.org/show_bug.cgi?id=98654
- [EFL][WK2] WorkQueue::dispatchAfterDelay() doesn't work properly.
- https://bugs.webkit.org/show_bug.cgi?id=91179
-
- Reviewed by Gyuyoung Kim.
-
- When UI Process is crashed and WebProcess's ecore main loop is very
- busy or lockup also, watchdocCallback() function in the
- ChildProcess.cpp doesn't triggered. And this is because of that
- WorkQueue::dispatchAfterDelay() function uses ecore timer for getting
- timer event.
-
- For removing the dependency between the dispatchAfterDelay() and ecore
- main loop, new timer event mechanism is added to WorkQueue main loop.
-
- * Platform/WorkQueue.h:
- (TimerWorkItem):
- (WorkQueue::TimerWorkItem::dispatch):
- (WorkQueue::TimerWorkItem::expireTime):
- (WorkQueue::TimerWorkItem::expired):
- (WorkQueue):
- * Platform/efl/WorkQueueEfl.cpp:
- (WorkQueue::TimerWorkItem::create):
- (WorkQueue::TimerWorkItem::TimerWorkItem):
- (WorkQueue::performFileDescriptorWork):
- (WorkQueue::getCurrentTime):
- (WorkQueue::getNextTimeOut):
- (WorkQueue::performTimerWork):
- (WorkQueue::workQueueThread):
- (WorkQueue::dispatchAfterDelay):
-
-2012-09-12 Christophe Dumez <christophe.dumez@intel.com>
-
- [WK2][WKTR] TestRunner needs to implement dumpApplicationCacheDelegateCallbacks
- https://bugs.webkit.org/show_bug.cgi?id=96374
-
- Reviewed by Kenneth Rohde Christiansen.
+ Reviewed by Jocelyn Turcotte.
- Add Bundle C API to reset the application cache quota
- for a given origin.
+ Added API to convert a QImage to a WKImage so we can
+ pass it to cross-platform code.
- Add new reachedApplicationCacheOriginQuota callback
- to WKBundlePageUIClient which is called from
- WebChromeClient::reachedApplicationCacheOriginQuota().
+ * Shared/API/c/qt/WKImageQt.cpp:
+ (WKImageCreateFromQImage):
+ * Shared/API/c/qt/WKImageQt.h:
- Those are needed by WebKitTestRunner to dump
- information about the application cache callbacks
- if instructed to.
+2012-10-12 Sheriff Bot <webkit.review.bot@gmail.com>
- * Shared/APIClientTraits.cpp:
- (WebKit):
- * Shared/APIClientTraits.h:
- * WebProcess/InjectedBundle/API/c/WKBundle.cpp:
- (WKBundleSetApplicationCacheOriginQuota):
- (WKBundleResetApplicationCacheOriginQuota):
- * WebProcess/InjectedBundle/API/c/WKBundlePage.h:
- * WebProcess/InjectedBundle/API/c/WKBundlePrivate.h:
- * WebProcess/InjectedBundle/InjectedBundle.cpp:
- (WebKit::InjectedBundle::resetApplicationCacheOriginQuota):
- (WebKit):
- * WebProcess/InjectedBundle/InjectedBundle.h:
- (InjectedBundle):
- * WebProcess/InjectedBundle/InjectedBundlePageUIClient.cpp:
- (WebKit::InjectedBundlePageUIClient::didReachApplicationCacheOriginQuota):
- (WebKit):
- * WebProcess/InjectedBundle/InjectedBundlePageUIClient.h:
- (WebKit):
- (InjectedBundlePageUIClient):
- * WebProcess/WebCoreSupport/WebChromeClient.cpp:
- (WebKit::WebChromeClient::reachedApplicationCacheOriginQuota):
+ Unreviewed, rolling out r131121.
+ http://trac.webkit.org/changeset/131121
+ https://bugs.webkit.org/show_bug.cgi?id=99144
-2012-09-12 Mikhail Pozdnyakov <mikhail.pozdnyakov@intel.com>
+ It made all tests timeout on all WK2 platform (Requested by
+ ossy on #webkit).
- [WK2] [WTR] WebKitTestRunner needs TestRunner.workerThreadCount
- https://bugs.webkit.org/show_bug.cgi?id=96388
-
- Reviewed by Kenneth Rohde Christiansen.
-
- Added WKBundleGetWorkerThreadCount() function to Injected Bundle private API.
-
- * WebProcess/InjectedBundle/API/c/WKBundle.cpp:
- (WKBundleGetWorkerThreadCount):
- * WebProcess/InjectedBundle/API/c/WKBundlePrivate.h:
+ * UIProcess/WebProcessProxy.cpp:
+ * UIProcess/WebProcessProxy.h:
+ (WebProcessProxy):
+ * UIProcess/WebProcessProxy.messages.in:
* WebProcess/InjectedBundle/InjectedBundle.cpp:
- (WebKit::InjectedBundle::workerThreadCount): Returns count of worker threads.
- (WebKit):
- * WebProcess/InjectedBundle/InjectedBundle.h:
- (InjectedBundle):
-
-2012-09-12 Darin Adler <darin@apple.com>
+ (WebKit::InjectedBundle::postMessage):
+ (WebKit::InjectedBundle::postSynchronousMessage):
- Make NetscapePlugin::m_timers use HashMap<OwnPtr> instead of deleteAllValues
- https://bugs.webkit.org/show_bug.cgi?id=96469
+2012-10-11 Andy Estes <aestes@apple.com>
- Reviewed by Dan Bernstein.
+ Add some basic methods and properties to the injected bundle Objective-C DOM API
+ https://bugs.webkit.org/show_bug.cgi?id=99137
- * WebProcess/Plugins/Netscape/NetscapePlugin.cpp:
- (WebKit::NetscapePlugin::scheduleTimer): Call release rather than leakPtr when
- entering a timer into the map.
- (WebKit::NetscapePlugin::unscheduleTimer): Take an existing timer from the map
- with the take function rather than the roundabout code needed before.
- (WebKit::NetscapePlugin::destroy): Remove now-unneeded call to deleteAllValues.
- * WebProcess/Plugins/Netscape/NetscapePlugin.h: Change the value type for
- TimerMap to OwnPtr<Timer> rather than Timer*.
-
-2012-09-11 Anders Carlsson <andersca@apple.com>
-
- Accelerated compositing should always be forced when using the tiled drawing area
- https://bugs.webkit.org/show_bug.cgi?id=96449
-
- Reviewed by Andy Estes.
-
- There's code in WebPage::updatePreferences that will turn off accelerated compositing unless accelerated drawing is enabled.
- This should only be done in the non-tiled model, so move the code to DrawingAreaImpl::updatePreferences.
-
- * WebProcess/WebPage/DrawingArea.h:
- (WebKit::DrawingArea::updatePreferences):
- This now takes a WebPreferencesStore.
-
- * WebProcess/WebPage/DrawingAreaImpl.cpp:
- (WebKit::DrawingAreaImpl::updatePreferences):
- Move code here from WebPage::updatePreferences.
-
- * WebProcess/WebPage/WebPage.cpp:
- (WebKit::WebPage::updatePreferences):
- Pass the WebPreferencesStore to DrawingArea::updatePreferences.
-
- * WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.h:
- * WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.mm:
- (WebKit::TiledCoreAnimationDrawingArea::TiledCoreAnimationDrawingArea):
- Remove call to updatePreferences, it's going to be called by the WebPage object later.
-
- (WebKit::TiledCoreAnimationDrawingArea::updatePreferences):
- This now takes a WebPreferencesStore.
-
-2012-09-11 Brady Eidson <beidson@apple.com>
-
- Get rid of the PluginProcessShim for 64-bit plug-ins
- <rdar://problem/12068560> and https://bugs.webkit.org/show_bug.cgi?id=96415
+ Reviewed by Sam Weinig.
- Reviewed by Anders Carlsson.
+ Add methods and properties that allow for tree traversal, node creation/insertion,
+ attribute modification, text node retrieval, and range creation.
- * PluginProcess/PluginProcess.h:
- (PluginProcess):
+ * WebKit2.xcodeproj/project.pbxproj:
+ * WebProcess/InjectedBundle/API/mac/WKDOMDocument.h:
+ * WebProcess/InjectedBundle/API/mac/WKDOMDocument.mm:
+ (toDocument):
+ (-[WKDOMDocument createElement:]):
+ (-[WKDOMDocument createTextNode:]):
+ (-[WKDOMDocument body]):
+ * WebProcess/InjectedBundle/API/mac/WKDOMElement.h:
+ * WebProcess/InjectedBundle/API/mac/WKDOMElement.mm:
+ (-[WKDOMElement hasAttribute:]):
+ (-[WKDOMElement getAttribute:]):
+ (-[WKDOMElement setAttribute:value:]):
+ (-[WKDOMElement tagName]):
+ * WebProcess/InjectedBundle/API/mac/WKDOMInternals.h:
+ * WebProcess/InjectedBundle/API/mac/WKDOMInternals.mm:
+ (WebKit::WKDOMNodeClass):
+ (WebKit::toWebCoreText):
+ (WebKit::toWKDOMText):
+ (WebKit::toWebCoreRange):
+ * WebProcess/InjectedBundle/API/mac/WKDOMNode.h:
+ * WebProcess/InjectedBundle/API/mac/WKDOMNode.mm:
+ (-[WKDOMNode insertNode:before:]):
+ (-[WKDOMNode appendChild:]):
+ (-[WKDOMNode parentNode]):
+ (-[WKDOMNode firstChild]):
+ (-[WKDOMNode nextSibling]):
+ * WebProcess/InjectedBundle/API/mac/WKDOMRange.h:
+ * WebProcess/InjectedBundle/API/mac/WKDOMRange.mm:
+ (-[WKDOMRange setStart:offset:]):
+ (-[WKDOMRange setEnd:offset:]):
+ (-[WKDOMRange collapse:]):
+ (-[WKDOMRange selectNode:]):
+ (-[WKDOMRange selectNodeContents:]):
+ (-[WKDOMRange isCollapsed]):
+ * WebProcess/InjectedBundle/API/mac/WKDOMText.h: Added.
+ * WebProcess/InjectedBundle/API/mac/WKDOMText.mm: Added.
+ (-[WKDOMText data]):
+
+2012-10-11 Brady Eidson <beidson@apple.com>
+
+ Add a WKContext call to enable the NetworkProcess.
+ https://bugs.webkit.org/show_bug.cgi?id=99140
- * PluginProcess/mac/PluginProcessMac.mm:
- (WebKit::getCurrentEventButtonState):
- (WebKit):
- (WebKit::beginModal): Moved from the shim, to be shared with shimmed processes.
- (WebKit::endModal): Ditto.
- (WebKit::replacedRunModalForWindow): Only used by Cocoa overrides.
- (WebKit::PluginProcess::initializeShim):
- (WebKit::PluginProcess::initializeCocoaOverrides):
+ Reviewed by Sam Weinig.
- * PluginProcess/mac/PluginProcessMainMac.mm:
- (WebKit::PluginProcessMain): Only call initializeShim for 32-bit processes, always call initializeCocoaOverrides
+ Add the SPI:
+ * UIProcess/API/C/WKContext.cpp:
+ (WKContextSetUsesNetworkProcess):
+ * UIProcess/API/C/WKContextPrivate.h:
- * PluginProcess/mac/PluginProcessShim.h:
- (PluginProcessShimCallbacks):
- * PluginProcess/mac/PluginProcessShim.mm:
+ Add a member for the flag and the first call site that will be interested in the flag's value:
+ * UIProcess/WebContext.cpp:
+ (WebKit::WebContext::WebContext):
+ (WebKit::WebContext::setUsesNetworkProcess):
(WebKit):
- (WebKit::shimModalDialog): Call beginModal/endModal from the shim callbacks.
- (WebKit::shimAlert): Ditto.
- (WebKit::WebKitPluginProcessShimInitialize): Don't do the Cocoa overrides as they are now handled outside the shim.
+ (WebKit::WebContext::createNewWebProcess):
+ (WebKit::WebContext::ensureNetworkProcess):
+ * UIProcess/WebContext.h:
+ (WebContext):
-2012-09-11 Marcelo Lira <marcelo.lira@openbossa.org>
+2012-10-11 Andy Estes <aestes@apple.com>
- Restore original value of mock scrollbars enabled in InternalSettings
- https://bugs.webkit.org/show_bug.cgi?id=87680
+ Fix the 32-bit Mac build after r131138.
- Reviewed by Adam Barth.
+ * WebProcess/InjectedBundle/mac/InjectedBundleMac.mm:
+ (WebKit::InjectedBundle::load):
- Added backup support for mock scrollbars state in
- InternalSettings::Backup, and removed support for these
- from Qt's DumpRenderTree.
+2012-10-11 Anders Carlsson <andersca@apple.com>
- * win/WebKit2.def:
+ Stop using Connection::deprecatedSend in WebConnection
+ https://bugs.webkit.org/show_bug.cgi?id=99130
-2012-09-11 Brady Eidson <beidson@apple.com>
+ Reviewed by Sam Weinig.
- We should wait longer before killing the PluginProcess.
- <rdar://problem/12067728> and https://bugs.webkit.org/show_bug.cgi?id=96407
+ Instead of using deprecatedSend, just encode the data using a separate ArgumentEncoder and pass it along as a DataReference.
- Reviewed by Anders Carlsson.
+ * DerivedSources.make:
+ * DerivedSources.pri:
+ * GNUmakefile.list.am:
+ Add new files.
- Currently we kill the PluginProcess 15 seconds after the last plug-in is destroyed.
- This is short enough that most users will have the process killed many times during browsing sessions,
- which is painful because relaunching the process is I/O and kernel intensive.
+ * Platform/CoreIPC/MessageID.h:
+ Add WebConnectionMessageClass.
- In an ideal world we could keep it around forever until the system tells us resources are running low.
+ * Shared/WebConnection.cpp:
+ (WebKit::WebConnection::WebConnection):
+ Make WebConnection hold on to the CoreIPC::Connection.
- In reality we do want to kill it occasionally to get a clean slate from any plug-in leaks.
+ (WebKit::WebConnection::postMessage):
+ Ask the subclasses to encode the body data, then send it.
- A reasonable balance for now is to set a minimum lifetime of 30 minutes on the plug-in process and to
- extend the termination timer from 15 seconds to 10 minutes.
-
- * PluginProcess/PluginProcess.cpp:
- (WebKit::PluginProcess::PluginProcess):
- (WebKit::PluginProcess::initializePluginProcess):
- (WebKit::PluginProcess::setMinimumLifetime):
- (WebKit):
- (WebKit::PluginProcess::minimumLifetimeTimerFired):
- * PluginProcess/PluginProcess.h:
- (PluginProcess):
+ (WebKit::WebConnection::handleMessage):
+ Ask the subclasses to decode the body data, then call didReceiveClient.
- * Shared/Plugins/PluginProcessCreationParameters.cpp:
- (WebKit::PluginProcessCreationParameters::encode):
- (WebKit::PluginProcessCreationParameters::decode):
- * Shared/Plugins/PluginProcessCreationParameters.h:
- (PluginProcessCreationParameters):
+ (WebKit::WebConnection::invalidate):
+ Null out m_connection.
- * UIProcess/Plugins/PluginProcessProxy.cpp:
- (WebKit):
- (WebKit::PluginProcessProxy::didFinishLaunching):
+ * Shared/WebConnection.h:
+ (WebKit::WebConnection::connection):
-2012-09-11 Jinwoo Song <jinwoo7.song@samsung.com>
+ * Shared/WebConnection.messages.in: Added.
- Deploy StringBuilder::appendNumber() and StringBuilder::appendLiteral() in more places
- https://bugs.webkit.org/show_bug.cgi?id=96344
+ * UIProcess/WebConnectionToWebProcess.cpp:
+ (WebKit::WebConnectionToWebProcess::WebConnectionToWebProcess):
+ Pass the connection to the WebConnection initializer.
- Reviewed by Benjamin Poulain.
+ (WebKit::WebConnectionToWebProcess::encodeMessageBody):
+ (WebKit::WebConnectionToWebProcess::decodeMessageBody):
+ Encode and decode the message body.
- Use StringBuilder::appendNumber() instead of String::number(). Also deploy
- StringBuilder::appendLiteral() instead of String::append() in the surrounding code.
+ (WebKit::WebConnectionToWebProcess::didReceiveMessage):
+ Handle WebConnection messages.
- * Shared/WebMemorySampler.cpp:
- (WebKit::WebMemorySampler::appendCurrentMemoryUsageToFile):
- * UIProcess/InspectorServer/WebSocketServerConnection.cpp:
- (WebKit::WebSocketServerConnection::sendHTTPResponseHeader):
- * UIProcess/InspectorServer/qt/WebInspectorServerQt.cpp:
- (WebKit::WebInspectorServer::inspectorUrlForPageID):
- (WebKit::WebInspectorServer::buildPageList):
+ * WebKit2.xcodeproj/project.pbxproj:
+ Add new files.
-2012-09-11 Anders Carlsson <andersca@apple.com>
+ * WebProcess/WebConnectionToUIProcess.cpp:
+ (WebKit::WebConnectionToUIProcess::WebConnectionToUIProcess):
+ Pass the connection to the WebConnection initializer.
- Fix speling error in comment.
+ (WebKit::WebConnectionToUIProcess::encodeMessageBody):
+ (WebKit::WebConnectionToUIProcess::decodeMessageBody):
+ Encode and decode the message body.
- * WebProcess/Plugins/Netscape/NetscapePlugin.cpp:
- (WebKit::isTransparentSilverlightBackgroundValue):
+ (WebKit::WebConnectionToUIProcess::didReceiveMessage):
+ Handle WebConnection messages.
-2012-09-11 Raphael Kubo da Costa <rakuco@webkit.org>
+ * win/WebKit2.vcproj:
+ Add new files.
- [EFL] Rewrite the EFL-related Find modules
- https://bugs.webkit.org/show_bug.cgi?id=95237
+2012-10-11 Andy Estes <aestes@apple.com>
- Reviewed by Kenneth Rohde Christiansen.
+ Expose the main frame's document to injected bundles via the Objective-C API
+ https://bugs.webkit.org/show_bug.cgi?id=99133
- * CMakeLists.txt: Stop setting the LINK_FLAGS property.
- * PlatformEfl.cmake: Add libraries and include directories for
- each Enlightenment Foundation Library used by the port.
+ Patch by Sam Weinig.
-2012-09-11 Christophe Dumez <christophe.dumez@intel.com>
+ Reviewed by Anders Carlsson.
- [WK2][WKTR] TestRunner needs to implement setApplicationCacheOriginQuota
- https://bugs.webkit.org/show_bug.cgi?id=96379
+ Allow a bundle to declare a principle class which will be instantiated
+ by WebKit2 and passed an object to which WKBundleClient calls are
+ forwarded and which can access the main frame's WKDOMDocument.
- Reviewed by Kenneth Rohde Christiansen.
+ * WebKit2.xcodeproj/project.pbxproj:
+ * WebProcess/InjectedBundle/API/mac/WKWebProcessPlugIn.h:
+ * WebProcess/InjectedBundle/API/mac/WKWebProcessPlugIn.mm: Instantiate
+ the bundle's principle class forward WKBundleClient calls to it.
+ * WebProcess/InjectedBundle/API/mac/WKWebProcessPlugInBrowserContextController.h:
+ * WebProcess/InjectedBundle/API/mac/WKWebProcessPlugInBrowserContextController.mm:
+ Add a property called mainFrameDocument which returns a WKDOMDocument.
+ * WebProcess/InjectedBundle/API/mac/WKWebProcessPlugInBrowserContextControllerInternal.h:
+ * WebProcess/InjectedBundle/API/mac/WKWebProcessPlugInInternal.h:
+ * WebProcess/InjectedBundle/mac/InjectedBundleMac.mm:
+ (WebKit::InjectedBundle::load): Initialize the shared
+ WKWebProcessPlugInController with the bundle's principle class.
+
+2012-10-11 Sam Weinig <sam@webkit.org>
+
+ Add a helper function for initializing WebKit2 DOM objects
+ https://bugs.webkit.org/show_bug.cgi?id=99128
- Add Bundle C API to set the application cache quota for a
- given security origin. This is needed by WebKitTestRunner
- to implement setApplicationCacheOriginQuota().
+ Reviewed by Anders Carlsson.
- * WebProcess/InjectedBundle/API/c/WKBundle.cpp:
- (WKBundleSetApplicationCacheOriginQuota):
- * WebProcess/InjectedBundle/API/c/WKBundlePrivate.h:
- * WebProcess/InjectedBundle/InjectedBundle.cpp:
- (WebKit::InjectedBundle::setApplicationCacheOriginQuota):
- (WebKit):
- * WebProcess/InjectedBundle/InjectedBundle.h:
- (InjectedBundle):
+ * WebProcess/InjectedBundle/API/mac/WKDOMInternals.mm:
+ (WebKit::WKDOMNodeClass):
+ (WebKit::initWithImpl):
+ (WebKit::toWKDOMNode):
+ (WebKit::toWKDOMRange):
+ (WebKit::toWKDOMType):
+ Add toWKDOMType which implements the core object initialization and caching.
-2012-09-11 Mikhail Pozdnyakov <mikhail.pozdnyakov@intel.com>
+2012-10-11 Seokju Kwon <seokju.kwon@samsung.com>
- [WK2][WTR] WebKitTestRunner needs testRunner.setSpatialNavigationEnabled
- https://bugs.webkit.org/show_bug.cgi?id=96269
+ [EFL][WK2] Add support for Inspector
+ https://bugs.webkit.org/show_bug.cgi?id=98639
Reviewed by Kenneth Rohde Christiansen.
- Added a new setter for spacial navigation enabling to Injected Bundle private API.
+ Support inspector on WebKit2/Efl and add APIs to show and close the inspector.
- * WebProcess/InjectedBundle/API/c/WKBundle.cpp:
- (WKBundleSetSpatialNavigationEnabled):
- * WebProcess/InjectedBundle/API/c/WKBundlePrivate.h:
- * WebProcess/InjectedBundle/InjectedBundle.cpp:
- (WebKit::InjectedBundle::setSpatialNavigationEnabled):
- (WebKit):
- * WebProcess/InjectedBundle/InjectedBundle.h:
- (InjectedBundle):
-
-2012-09-11 Marcelo Lira <marcelo.lira@openbossa.org>
-
- [Qt][WK2] Page loading status API lacks a status for intentionally stopped loading
- https://bugs.webkit.org/show_bug.cgi?id=83062
-
- Reviewed by Tor Arne Vestbø.
-
- When the loading of a page is intentionally interrupted, the loading
- status is set to the new state LoadStoppedStatus. This reflects
- reality more accurately because the page was not fully loaded
- (a LoadSucceededStatus), and it wasn't an unexpected error
- (a LoadFailedStatus).
-
- * UIProcess/API/qt/qquickwebview.cpp:
- (QQuickWebViewPrivate::loadDidStop):
- * UIProcess/API/qt/qquickwebview_p.h:
- * UIProcess/API/qt/qquickwebview_p_p.h:
- (QQuickWebViewPrivate):
- * UIProcess/API/qt/tests/publicapi/tst_publicapi.cpp:
- * UIProcess/API/qt/tests/qmltests/WebView/tst_loadUrl.qml:
- * UIProcess/API/qt/tests/qmltests/common/TestWebView.qml:
- * UIProcess/qt/QtWebPageLoadClient.cpp:
- (WebKit::QtWebPageLoadClient::dispatchLoadStopped):
+ * UIProcess/API/efl/ewk_view.cpp:
+ (ewk_view_inspector_show):
+ (ewk_view_inspector_close):
+ * UIProcess/API/efl/ewk_view.h:
+ * UIProcess/API/efl/tests/test_ewk2_view.cpp:
+ (TEST_F):
+ * UIProcess/WebInspectorProxy.h:
+ (WebInspectorProxy):
+ * UIProcess/efl/WebInspectorProxyEfl.cpp:
+ (WebKit::resizeInspectorWindow):
(WebKit):
- (WebKit::QtWebPageLoadClient::dispatchLoadFailed):
- * UIProcess/qt/QtWebPageLoadClient.h:
- (QtWebPageLoadClient):
-
-2012-09-11 Tor Arne Vestbø <tor.arne.vestbo@nokia.com>
-
- [Qt] Add a configure step to the Qt build system
-
- This allows building the Qt port using just 'qmake WebKit.pro'. Using
- the build-webkit script is still supported, and will add slightly more
- logic to the build, such as detecting the need for clean or incremental
- builds.
-
- Internally, the build system now uses a new variable, WEBKIT_CONFIG, for
- all things related to configuring the build, such as use/have/enable flags,
- and these are translated to defines in default_post. Project files should
- no longer check contains(DEFINES,...) to detect features, but use the new
- enable?(), use?(), and have?() functions. The no_webkit1 and no_webkit2
- options have been translated into WEBKIT_CONFIG options as well, and can
- be checked using build?().
-
- Reviewed by Simon Hausmann.
-
- * Target.pri:
- * UIProcess/API/qt/tests/tests.pri:
- * WebKit2.pri:
- * config.h:
+ (WebKit::destroyInspectorWindow):
+ (WebKit::closeInspectorWindow):
+ (WebKit::WebInspectorProxy::createInspectorWindow):
+ (WebKit::WebInspectorProxy::platformCreateInspectorPage):
+ (WebKit::WebInspectorProxy::platformOpen):
-2012-09-11 Christophe Dumez <christophe.dumez@intel.com>
+2012-10-11 Anders Carlsson <andersca@apple.com>
- [WK2][WKTR] TestRunner needs to implement clearApplicationCacheForOrigin
- https://bugs.webkit.org/show_bug.cgi?id=96372
+ Stop using deprecatedSend and deprecatedSendSync for sending messages to the UI process
+ https://bugs.webkit.org/show_bug.cgi?id=99125
- Reviewed by Kenneth Rohde Christiansen.
+ Reviewed by Andreas Kling.
- Add Bundle C API to clear the application cache for a
- given origin. This is needed by WebKitTestRunner to
- implement clearApplicationCacheForOrigin().
+ Instead of using deprecatedSend, just encode the data using a separate ArgumentEncoder and pass it along as a DataReference.
- * WebProcess/InjectedBundle/API/c/WKBundle.cpp:
- (WKBundleClearApplicationCacheForOrigin):
- * WebProcess/InjectedBundle/API/c/WKBundlePrivate.h:
- * WebProcess/InjectedBundle/InjectedBundle.cpp:
- (WebKit::InjectedBundle::clearApplicationCacheForOrigin):
+ * UIProcess/WebContext.h:
+ * UIProcess/WebProcessProxy.cpp:
+ (WebKit::WebProcessProxy::postMessage):
(WebKit):
- * WebProcess/InjectedBundle/InjectedBundle.h:
- (InjectedBundle):
-
-2012-09-11 Mikhail Pozdnyakov <mikhail.pozdnyakov@intel.com>
-
- [WK2][WTR] WebKitTestRunner needs layoutTestController.setMinimumTimerInterval
- https://bugs.webkit.org/show_bug.cgi?id=96256
-
- Reviewed by Kenneth Rohde Christiansen.
-
- Added new setter for minimum DOM timer interval to InjectedBundle private API.
-
- * WebProcess/InjectedBundle/API/c/WKBundle.cpp:
- (WKBundleSetMinimumTimerInterval):
- * WebProcess/InjectedBundle/API/c/WKBundlePrivate.h:
+ (WebKit::WebProcessProxy::postSynchronousMessage):
+ * UIProcess/WebProcessProxy.h:
+ (WebProcessProxy):
+ * UIProcess/WebProcessProxy.messages.in:
* WebProcess/InjectedBundle/InjectedBundle.cpp:
- (WebKit::InjectedBundle::setMinimumTimerInterval):
- (WebKit):
- * WebProcess/InjectedBundle/InjectedBundle.h:
- (InjectedBundle):
-
-2012-09-11 Kangil Han <kangil.han@samsung.com>
-
- [WK2][EFL] Fix compile warnings when enable tiled backing store
- https://bugs.webkit.org/show_bug.cgi?id=95342
-
- Reviewed by Gyuyoung Kim.
-
- Fixed compile time warning messages when enable tiled backing store.
-
- * UIProcess/API/efl/ewk_view.cpp:
- (ewk_view_accelerated_compositing_mode_enter): Fixed invalid use of 'EINA_SAFETY_ON_NULL_RETURN_VAL' since it used '!' ahead of evasGl value so it is always null.
- * WebProcess/WebPage/CoordinatedGraphics/CoordinatedGraphicsLayer.cpp:
- (WebCore::CoordinatedGraphicsLayer::setChildren): Replaced 'int' i with 'unsigned' because its comparing value is 'size_t'.
- * WebProcess/WebPage/CoordinatedGraphics/LayerTreeCoordinator.cpp:
- (WebKit::LayerTreeCoordinator::renderNextFrame): Replaced 'int' i with 'unsigned' because its comparing value is 'size_t'.
- (WebKit::LayerTreeCoordinator::beginContentUpdate): Replaced 'int' i with 'unsigned' because its comparing value is 'size_t'.
-
-2012-09-11 Byungwoo Lee <bw80.lee@samsung.com>
+ (WebKit::InjectedBundle::postMessage):
+ (WebKit::InjectedBundle::postSynchronousMessage):
- [EFL][WK2] WKEinaSharedString needs a function to adopt eina stringshare.
- https://bugs.webkit.org/show_bug.cgi?id=96201
+2012-10-11 Anders Carlsson <andersca@apple.com>
- Reviewed by Kenneth Rohde Christiansen.
-
- WKEinaSharedString needs a to adopt eina stringshare directly.
-
- With this adopt function, an instance that is directly created with
- eina_stringshare_add() can be easily handled by WKEinaSharedString
- without calling eina_stringshare_del() for preventing memory leak.
-
- * UIProcess/API/cpp/efl/WKEinaSharedString.cpp:
- (WKEinaSharedString::adopt):
- * UIProcess/API/cpp/efl/WKEinaSharedString.h:
- * UIProcess/API/efl/tests/test_ewk2_eina_shared_string.cpp:
- (TEST_F):
-
-2012-09-11 Andras Becsi <andras.becsi@nokia.com>
+ Stop using deprecatedSend for WebContext::postMessageToInjectedBundle
+ https://bugs.webkit.org/show_bug.cgi?id=99123
- [Qt][WK2] Fix the build with recent Qt5
- https://bugs.webkit.org/show_bug.cgi?id=96283
+ Reviewed by Andreas Kling.
- Reviewed by Simon Hausmann.
+ Instead of using deprecatedSend, just encode the data using a separate ArgumentEncoder and pass it along as a DataReference.
- We should not use deprecated Qt API because doing that results
- in build failure since all the deprecated API was disabled
- in qtbase (https://codereview.qt-project.org/#change,24890).
-
- * UIProcess/API/qt/qwebnavigationhistory.cpp:
- (QWebNavigationListModel::roleNames):
- (QWebNavigationListModel::reset):
- * UIProcess/API/qt/qwebnavigationhistory_p.h:
- * UIProcess/API/qt/tests/qrawwebview/tst_qrawwebview.cpp:
- (WebView::load):
- * UIProcess/qt/WebPopupMenuProxyQt.cpp:
- (PopupMenuItemModel):
- (WebKit::PopupMenuItemModel::PopupMenuItemModel):
- (WebKit::PopupMenuItemModel::roleNames):
- (WebKit):
+ * Platform/CoreIPC/MessageID.h:
+ Remove MessageClassInjectedBundle.
-2012-09-11 Christophe Dumez <christophe.dumez@intel.com>
+ * Shared/CoreIPCSupport/InjectedBundleMessageKinds.h: Removed.
+ * UIProcess/WebContext.cpp:
+ (WebKit::WebContext::createNewWebProcess):
+ Stop using deprecatedSend.
- WTR needs an implementation of applicationCacheDiskUsageForOrigin
- https://bugs.webkit.org/show_bug.cgi?id=87188
+ (WebKit::WebContext::postMessageToInjectedBundle):
+ Stop using deprecatedSend. Remove now invalid FIXMEs.
- Reviewed by Kenneth Rohde Christiansen.
+ * UIProcess/WebPageProxy.cpp:
+ Remove include.
- Add Bundle private C API to retrieve the application cache
- usage for a specific security origin. This is needed by
- WebKitTestRunner.
+ * WebKit2.xcodeproj/project.pbxproj:
+ Remove InjectedBundleMessageKinds.h.
- * WebProcess/InjectedBundle/API/c/WKBundle.cpp:
- (WKBundleGetAppCacheUsageForOrigin):
- * WebProcess/InjectedBundle/API/c/WKBundlePrivate.h:
* WebProcess/InjectedBundle/InjectedBundle.cpp:
- (WebKit::InjectedBundle::appCacheUsageForOrigin):
- (WebKit):
* WebProcess/InjectedBundle/InjectedBundle.h:
- (InjectedBundle):
-
-2012-09-11 Zhigang Gong <zhigang.gong@linux.intel.com>
-
- [EFL][WK2] Add necessary include directory in WebKit2
- https://bugs.webkit.org/show_bug.cgi?id=95173
+ The injected bundle is no longer in charge of receiving IPC messages.
- Unreviewed build fix.
-
- revision r126694: Move TextureMapperGL to use
- GraphicsContext3D. modify the TextureMapperGL.h to include
- GraphicsContext3D.h. And when enable TEXTURE_MAPPER,
- file WebKit2/Shared/ShareableSurface.cpp will include
- TextureMapperGL.h then depends on GraphicsContext3D.h
- thus it need to add ANGLE director. As currently, this
- problem only affect EFL platform, according to Gyuyoung Kim's
- suggestion, we add this include dir into EFL private file
- PlatformEfl.cmake. Otherwise, the build will fail.
-
- To trigger this problem by using the following command:
- ./Tools/Scripts/build-webkit --efl --3d-rendering --tiled-backing-store
-
- * CMakeLists.txt:
-
-2012-09-10 Byungwoo Lee <bw80.lee@samsung.com>
+ * WebProcess/WebProcess.cpp:
+ (WebKit::WebProcess::didReceiveMessage):
+ Stop passing messages to the injected bundle.
- [EFL][WK2] Build warning : fix warning about extended initializer lists on EWK2UnitTestBase.cpp.
- https://bugs.webkit.org/show_bug.cgi?id=95990
+ (WebKit::WebProcess::postInjectedBundleMessage):
+ Decode the message and pass it to the injected bundle.
- Reviewed by Gyuyoung Kim.
-
- Fix build warning about extended initializer lists only available with
- -std=c++0x or -std=gnu++0x.
+ * WebProcess/WebProcess.messages.in:
+ Add PostInjectedBundleMessage.
- * UIProcess/API/efl/tests/UnitTestUtils/EWK2UnitTestBase.cpp:
- (EWK2UnitTest::ewk2UnitTestBrowserViewSmartClass):
- (EWK2UnitTest):
- (EWK2UnitTest::EWK2UnitTestBase::EWK2UnitTestBase):
+2012-10-11 Anders Carlsson <andersca@apple.com>
-2012-09-10 Beth Dakin <bdakin@apple.com>
+ Stop using deprecatedSend for WebPageProxy::postMessageToInjectedBundle
+ https://bugs.webkit.org/show_bug.cgi?id=99120
- https://bugs.webkit.org/show_bug.cgi?id=96158
- Need API to suppress scrollbar animations
- -and corresponding-
- <rdar://problem/12210972>
+ Reviewed by Andreas Kling.
- Reviewed by Sam Weinig.
+ Instead of using deprecatedSend, just encode the data using a separate ArgumentEncoder and pass it along as a DataReference.
- Add suppressScrollbarAnimations as a WebCreationParameter.
- * Shared/WebPageCreationParameters.h:
- (WebPageCreationParameters):
+ * Shared/CoreIPCSupport/InjectedBundleMessageKinds.h:
+ Remove PostMessageToPage.
- New API. Calls into the web process for the setter but not the
- getter.
- * UIProcess/API/C/WKPage.cpp:
- (WKPageSetSuppressScrollbarAnimations):
- (WKPageAreScrollbarAnimationsSuppressed):
- * UIProcess/API/C/WKPage.h:
* UIProcess/WebPageProxy.cpp:
- (WebKit::WebPageProxy::WebPageProxy):
- (WebKit::WebPageProxy::setSuppressScrollbarAnimations):
- (WebKit):
- (WebKit::WebPageProxy::creationParameters):
- * UIProcess/WebPageProxy.h:
- (WebPageProxy):
- (WebKit::WebPageProxy::areScrollbarAnimationsSuppressed):
- * WebProcess/WebPage/WebPage.messages.in:
-
- Call into WebCore.
- * WebProcess/WebPage/WebPage.cpp:
- (WebKit::WebPage::setSuppressScrollbarAnimations):
- (WebKit):
- * WebProcess/WebPage/WebPage.h:
- (WebPage):
-
- This ScrollableArea area function is re-named by this patch in
- WebCore.
- * WebProcess/Plugins/PDF/BuiltInPDFView.h:
- * WebProcess/Plugins/PDF/BuiltInPDFView.mm:
- (WebKit::BuiltInPDFView::scrollbarsCanBeActive):
-
-2012-09-10 James Robinson <jamesr@chromium.org>
-
- Unreviewed, rolling out r127837.
- http://trac.webkit.org/changeset/127837
- https://bugs.webkit.org/show_bug.cgi?id=93898
-
- Broke ScrollingCoordinator on chromium
-
- * WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.mm:
- (WebKit::TiledCoreAnimationDrawingArea::updatePreferences):
-
-2012-09-10 Jer Noble <jer.noble@apple.com>
-
- Unreviewed; rolling out r128081.
- http://trac.webkit.org/changeset/128081
- https://bugs.webkit.org/show_bug.cgi?id=96134
-
- New test http/tests/media/video-donottrack.html fails to run on Apple test bots.
+ (WebKit::WebPageProxy::postMessageToInjectedBundle):
+ Stop using deprecatedSend.
- * Shared/APIClientTraits.h:
- * WebProcess/InjectedBundle/API/c/WKBundlePage.h:
- * WebProcess/InjectedBundle/InjectedBundlePageLoaderClient.cpp:
- * WebProcess/InjectedBundle/InjectedBundlePageLoaderClient.h:
- (InjectedBundlePageLoaderClient):
- * WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
- * WebProcess/WebCoreSupport/WebFrameLoaderClient.h:
- (WebFrameLoaderClient):
- * WebProcess/qt/QtBuiltinBundlePage.cpp:
- (WebKit::QtBuiltinBundlePage::QtBuiltinBundlePage):
+ * WebProcess/InjectedBundle/InjectedBundle.cpp:
+ (WebKit::InjectedBundle::didReceiveMessage):
+ Remove code to handle PostMessageToPage.
-2012-09-07 Jon Lee <jonlee@apple.com>
+ * WebProcess/WebPage/WebPage.cpp:
+ (WebKit::WebPage::postInjectedBundleMessage):
+ Decode the APIObject and send it along to the injected bundle.
- Update notifications to latest spec
- https://bugs.webkit.org/show_bug.cgi?id=91726
- <rdar://problem/11910451>
+ * WebProcess/WebPage/WebPage.messages.in:
+ Add PostInjectedBundleMessage message.
- Reviewed by Alexey Proskuryakov.
+2012-10-11 Regina Chung <heejin.r.chung@samsung.com>
- Expose lang and dir.
-
- * UIProcess/API/C/WKNotification.cpp:
- (WKNotificationCopyLang):
- (WKNotificationCopyDir):
- * UIProcess/API/C/WKNotification.h:
- * UIProcess/Notifications/WebNotification.cpp:
- (WebKit::WebNotification::WebNotification):
- * UIProcess/Notifications/WebNotification.h:
- (WebKit::WebNotification::create):
- (WebKit::WebNotification::lang):
- (WebKit::WebNotification::dir):
- (WebNotification):
- * UIProcess/Notifications/WebNotificationManagerProxy.cpp:
- (WebKit::WebNotificationManagerProxy::show):
- * UIProcess/Notifications/WebNotificationManagerProxy.h:
- (WebNotificationManagerProxy):
- * UIProcess/WebPageProxy.cpp:
- (WebKit::WebPageProxy::showNotification):
- * UIProcess/WebPageProxy.h:
- (WebPageProxy):
- * UIProcess/WebPageProxy.messages.in:
- * WebProcess/Notifications/WebNotificationManager.cpp:
- (WebKit::WebNotificationManager::show):
+ [EFL][WK2] WebProcess keeps on waiting for UIProcess
+ https://bugs.webkit.org/show_bug.cgi?id=97646
-2012-09-10 Alexey Proskuryakov <ap@apple.com>
+ Reviewed by Kenneth Rohde Christiansen.
- Build fix.
+ Set LayerTreeRenderer to active so UIProcess can send RenderNextFrame message to WebProcess
+ after accelerated compositing(AC) mode is entered, so WebProcess can start flushing changes to UIProcess.
- * UIProcess/WebContext.h: Added a default value for relatedPage argment - if
- you don't have one, null is fine.
+ * UIProcess/API/efl/EflViewportHandler.cpp: Added API for setting LayerTreeRenderer's active state.
+ (WebKit::EflViewportHandler::setActive):
+ (WebKit):
+ * UIProcess/API/efl/EflViewportHandler.h:
+ (EflViewportHandler):
+ * UIProcess/API/efl/ewk_view.cpp: Sets LayerTreeRenderer's active status to true after entering AC mode.
+ (ewk_view_accelerated_compositing_mode_enter):
-2012-09-10 Alexey Proskuryakov <ap@apple.com>
+2012-10-10 Brady Eidson <beidson@apple.com>
- [WK2] Add an API to open a page in same process
- https://bugs.webkit.org/show_bug.cgi?id=96306
+ Switch ResourceLoader::resourceData() from SharedBuffer to ResourceBuffer
+ https://bugs.webkit.org/show_bug.cgi?id=98976
Reviewed by Anders Carlsson.
- The name "related" inspired by <http://wiki.whatwg.org/wiki/Links_to_Unrelated_Browsing_Contexts>.
-
- * UIProcess/API/mac/WKView.h: Added an API. It's unwieldy, but I blame
- WKBrowsingContextGroup, not the related view.
-
- * UIProcess/API/mac/WKViewPrivate.h: Matching SPI for clients that mostly use
- C APIs.
-
- * UIProcess/API/mac/WKView.mm:
- (-[WKView initWithFrame:processGroup:browsingContextGroup:]): Use new back-end
- signature.
- (-[WKView initWithFrame:processGroup:browsingContextGroup:relatedToView:]):
- Get page from WKView, and call back-end.
- (-[WKView initWithFrame:contextRef:pageGroupRef:]): Reimplement existing method
- by calling new, more powerful one.
- (-[WKView initWithFrame:contextRef:pageGroupRef:relatedToPage:]): Just one change,
- pass relatedPage to the context.
-
- * UIProcess/WebContext.cpp: (WebKit::WebContext::createWebPage): If related page
- is not null, use its process.
-
- * UIProcess/WebContext.h: (WebContext): Updated createWebPage signature.
-
-2012-09-10 Brady Eidson <beidson@apple.com>
-
- Javascript in foreground tabs should not wait synchronously for plug-ins to load
- <rdar://problem/12067415> and https://bugs.webkit.org/show_bug.cgi?id=96167
-
- Reviewed by Geoff Garen.
-
- Synchronously waiting for initialization to complete when javascript accesses the plug-in script object severely
- reduces the effectiveness of having an asynchronous NPP_New.
-
- Such as with background tabs that have never been viewed, we already have cases where JS calls into the plug-in
- element fail because we haven't bothered to initialize the plug-in.
-
- We get a huge win by expanding that to foreground tabs that simply haven't finished initializing their plug-ins.
-
- * WebProcess/Plugins/PluginView.cpp:
- (WebKit::PluginView::scriptObject): If initialization is not complete just return 0 - They can get at the script object later.
-
- Remove the notion of "wait for asynchronous initialization" altogether:
- * WebProcess/Plugins/Netscape/NetscapePlugin.h:
- (NetscapePlugin):
- * WebProcess/Plugins/PDF/BuiltInPDFView.h:
- (BuiltInPDFView):
- * WebProcess/Plugins/Plugin.h:
- (Plugin):
- * WebProcess/Plugins/PluginProxy.cpp:
- * WebProcess/Plugins/PluginProxy.h:
- (PluginProxy):
-
-2012-09-07 Jer Noble <jer.noble@apple.com>
-
- <audio> and <video> should send Do Not Track when appropriate
- https://bugs.webkit.org/show_bug.cgi?id=96134
-
- Reviewed by Eric Carlson.
-
- Add support for the shouldSendDoNotTrackHTTPHeader by passing the request
- on to the WebFrameLoadDelegate.
-
- * Shared/APIClientTraits.cpp: Increment the interfaceSizes for
- WKBundlePageLoaderClient by the value of the new functions.
- * Shared/APIClientTraits.h: Ditto.
- * WebProcess/InjectedBundle/API/c/WKBundlePage.h: Add a new API to
- WKBundlePageLoaderClient and bump the version number.
- * WebProcess/InjectedBundle/InjectedBundlePageLoaderClient.cpp:
- (WebKit::InjectedBundlePageLoaderClient::shouldSendDoNotTrackHTTPHeader):
- Pass the question on to the client.
- * WebProcess/InjectedBundle/InjectedBundlePageLoaderClient.h:
* WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
- (WebKit::WebFrameLoaderClient::shouldSendDoNotTrackHTTPHeader):
- Pass the question on to the bundle.
- * WebProcess/WebCoreSupport/WebFrameLoaderClient.h:
- * WebProcess/qt/QtBuiltinBundlePage.cpp:
- (WebKit::QtBuiltinBundlePage::QtBuiltinBundlePage):
- Add an entry for the new function in the Qt loader client.
-
-2012-09-10 Carlos Garcia Campos <cgarcia@igalia.com>
-
- [SOUP] Don't convert to UTF-8 the suggestedFilename passed to Download::decideDestinationWithSuggestedFilename()
- https://bugs.webkit.org/show_bug.cgi?id=96261
-
- Reviewed by Martin Robinson.
-
- * WebProcess/Downloads/soup/DownloadSoup.cpp:
- (WebKit::DownloadClient::didReceiveResponse):
-
-2012-09-10 Alexander Shalamov <alexander.shalamov@intel.com>
-
- [EFL][WK2] Add fullscreen enter / exit signals to the ewk_view API
- https://bugs.webkit.org/show_bug.cgi?id=92362
-
- Reviewed by Gyuyoung Kim.
-
- Handle WebFullScreenManagerProxy::enterFullScreen and exitFullScreen
- methods, so that ewk_view could enter and exit fullscreen mode when requested.
- Also, two callbacks were added to ewk_view API, so that UI could customise
- behavior when fullscreen mode is requested, e.g. show security dialog.
-
- * UIProcess/API/efl/ewk_settings.cpp:
- (ewk_settings_fullscreen_enabled_set):
- (ewk_settings_fullscreen_enabled_get):
- * UIProcess/API/efl/ewk_settings.h:
- * UIProcess/API/efl/ewk_view.cpp:
- (_ewk_view_initialize):
- (ewk_view_full_screen_enter):
- (ewk_view_full_screen_exit):
- * UIProcess/API/efl/ewk_view.h:
- * UIProcess/API/efl/ewk_view_private.h:
- * UIProcess/API/efl/tests/test_ewk2_settings.cpp:
- (TEST_F):
- * UIProcess/API/efl/tests/test_ewk2_view.cpp:
- (fullScreenCallback):
- (checkFullScreenProperty):
- (TEST_F):
- * UIProcess/efl/WebFullScreenManagerProxyEfl.cpp:
- (WebKit::WebFullScreenManagerProxy::enterFullScreen):
- (WebKit::WebFullScreenManagerProxy::exitFullScreen):
-
-2012-09-10 Kevin Funk <kevin.funk@kdab.com>
-
- [Qt] Fix deprecation failures if QT_NO_DEPRECATED enabled
- https://bugs.webkit.org/show_bug.cgi?id=96258
-
- Reviewed by Simon Hausmann.
-
- Sync with latest changes in Qt5.
-
- * WebProcess/WebCoreSupport/qt/WebErrorsQt.cpp:
- * WebProcess/qt/WebProcessQt.cpp:
-
-2012-09-10 Carlos Garcia Campos <cgarcia@igalia.com>
-
- [GTK] Sanitize the suggested filename when building the download destination URI
- https://bugs.webkit.org/show_bug.cgi?id=96260
-
- Reviewed by Gustavo Noronha Silva.
-
- The suggested filename returned by the server can contain
- directory separators so that the filename would be interpreted as
- a full path.
-
- * UIProcess/API/gtk/WebKitDownload.cpp:
- (webkitDownloadDecideDestination): Convert any directory separator
- contained in the suggested filename to an underscore.
-
-2012-09-10 Simon Hausmann <simon.hausmann@nokia.com>
-
- [Qt] Fix generation of forward headers for generated files in WebCore on Windows
- https://bugs.webkit.org/show_bug.cgi?id=96245
-
- Reviewed by Tor Arne Vestbø.
-
- We generate the forwarding header files of generated WebCore sources by using
- mkdir to ensure the target directory exists, followed by
- echo #include "..." > file.h. On Windows mkdir returns with an error if the
- target directory exists. For us that is not an error, so work around it with
- (mkdir path 2>nul || echo>nul)
-
- * DerivedSources.pri:
-
-2012-09-10 Allan Sandfeld Jensen <allan.jensen@nokia.com>
+ (WebKit::WebFrameLoaderClient::finishedLoading):
+ * WebProcess/WebPage/WebFrame.cpp:
+ (WebKit::WebFrame::source):
+ * WebProcess/WebPage/WebPage.cpp:
+ (WebKit::WebPage::getMainResourceDataOfFrame):
- [Qt][WK2] REGRESSION(r127861): It made one test fail and one test crash
- https://bugs.webkit.org/show_bug.cgi?id=96243
+2012-10-11 Sam Weinig <sam@webkit.org>
- Reviewed by Kenneth Rohde Christiansen.
+ Add missing WK_EXPORT for WKDOMTextIterator.
- Skip the code if QClipboard is not available, and give WebCore a chance to handle the event first.
+ Rubber-stamped by Brady Eidson.
- * WebProcess/WebPage/WebPage.cpp:
- (WebKit::handleMouseEvent):
- * WebProcess/WebPage/qt/WebPageQt.cpp:
- (WebKit::WebPage::handleMouseReleaseEvent):
+ * WebProcess/InjectedBundle/API/mac/WKDOMTextIterator.h:
-2012-09-10 Simon Hausmann <simon.hausmann@nokia.com>
+2012-10-11 Zeno Albisser <zeno@webkit.org>
- [Qt] WK2 build fixes for MSVC
- https://bugs.webkit.org/show_bug.cgi?id=96248
+ [Qt] Implement GraphicsSurfaceToken to replace uint64_t as token type.
+ https://bugs.webkit.org/show_bug.cgi?id=98501
- Reviewed by Tor Arne Vestbø.
+ Replace the token type for GraphicsSurface with a new class GraphicsSurfaceToken.
+ This is necessary in order to implement GraphicsSurface for Windows.
+ Depending on the platform a GraphicsSurfaceToken might contain a
+ WindowID (Linux/GLX), two IOSurfaceIDs (Mac) or in the future two HANDLEs (Windows).
+ The simple uint64_t is not sufficient anymore, since a single HANDLE in windows
+ can be 64bit already.
- MSVC is picky when it comes to the use of forward declaration and the use of
- such forward declared types in templates. In these instances inline functions were
- passed parameters in RefPtrs that were only forward declared, but at compile time
- MSVC wants to know what type it is in order to completely instantiate RefPtr (which
- needs to call the type destructor for example). Therefore this patch resolves a couple
- of forward declarations with direct header file inclusions.
+ Reviewed by Noam Rosenthal.
- * UIProcess/API/qt/raw/qrawwebview_p_p.h:
- * UIProcess/InspectorServer/WebSocketServerClient.h:
- * UIProcess/qt/QtPageClient.h:
+ * Shared/ShareableSurface.cpp:
+ (WebKit::ShareableSurface::Handle::encode):
+ (WebKit::ShareableSurface::Handle::decode):
+ (WebKit::ShareableSurface::create):
+ (WebKit::ShareableSurface::createHandle):
+ * Shared/ShareableSurface.h:
+ (WebKit::ShareableSurface::Handle::graphicsSurfaceToken):
+ (Handle):
+ * Shared/WebCoreArgumentCoders.cpp:
+ (CoreIPC):
+ (CoreIPC::::encode):
+ (CoreIPC::::decode):
+ * Shared/WebCoreArgumentCoders.h:
+ (WebCore):
+ * UIProcess/CoordinatedGraphics/LayerTreeCoordinatorProxy.cpp:
+ (WebKit::LayerTreeCoordinatorProxy::updateTileForLayer):
+ (WebKit::LayerTreeCoordinatorProxy::syncCanvas):
+ * UIProcess/CoordinatedGraphics/LayerTreeCoordinatorProxy.h:
+ (LayerTreeCoordinatorProxy):
+ * UIProcess/CoordinatedGraphics/LayerTreeCoordinatorProxy.messages.in:
+ * UIProcess/CoordinatedGraphics/LayerTreeRenderer.cpp:
+ (WebKit::LayerTreeRenderer::syncCanvas):
+ * UIProcess/CoordinatedGraphics/LayerTreeRenderer.h:
+ (LayerTreeRenderer):
+ * WebProcess/WebPage/CoordinatedGraphics/CoordinatedGraphicsLayer.cpp:
+ (WebCore::CoordinatedGraphicsLayer::syncCanvas):
+ * WebProcess/WebPage/CoordinatedGraphics/CoordinatedGraphicsLayer.h:
+ (CoordinatedGraphicsLayerClient):
+ * WebProcess/WebPage/CoordinatedGraphics/LayerTreeCoordinator.cpp:
+ (WebKit::LayerTreeCoordinator::syncCanvas):
+ * WebProcess/WebPage/CoordinatedGraphics/LayerTreeCoordinator.h:
+ (LayerTreeCoordinator):
-2012-09-10 Andras Becsi <andras.becsi@nokia.com>
+2012-10-10 Andras Becsi <andras.becsi@digia.com>
- [Qt][WK2] QWebKitTest should retrieve the viewport state from the PageViewportController
- https://bugs.webkit.org/show_bug.cgi?id=96106
+ [Qt][WK2] Avoid unnecessary calls in PageViewportController
+ https://bugs.webkit.org/show_bug.cgi?id=98886
- Reviewed by Simon Hausmann.
+ Reviewed by Jocelyn Turcotte.
- The functions in PageViewportControllerClientQt proxying the
- viewport state values can be removed if QWebKitTest uses the
- PageViewportController to retrieve these values.
+ Remove leftover and unneeded update guards and visibility update
+ notifications to avoid unnecessary update cycles between the
+ controller an the client.
+ Previously didRenderFrame triggered updates for no reason since
+ animations on the page cause a lot of DidRenderFrame messages
+ for which the viewport state does not change.
- * UIProcess/API/qt/qquickwebview_p_p.h:
- (QQuickWebViewPrivate::viewportController):
- * UIProcess/API/qt/qwebkittest.cpp:
- (QWebKitTest::viewport):
- (QWebKitTest::devicePixelRatio):
- (QWebKitTest::contentsScale):
+ * UIProcess/PageViewportController.cpp:
+ (WebKit::ViewportUpdateDeferrer::~ViewportUpdateDeferrer):
+ (WebKit::PageViewportController::didRenderFrame):
* UIProcess/PageViewportController.h:
- (WebKit::PageViewportController::currentContentsScale):
+ (PageViewportController):
* UIProcess/qt/PageViewportControllerClientQt.cpp:
+ (WebKit::PageViewportControllerClientQt::setContentsScale):
+ (WebKit::PageViewportControllerClientQt::didChangeViewportAttributes):
+ (WebKit::PageViewportControllerClientQt::updateViewportController):
* UIProcess/qt/PageViewportControllerClientQt.h:
(PageViewportControllerClientQt):
-2012-09-10 Simon Hausmann <simon.hausmann@nokia.com>
-
- [WK2] Make WK2 C API headers compile in the Qt build on Windows
- https://bugs.webkit.org/show_bug.cgi?id=96246
+2012-10-11 Mario Sanchez Prada <msanchez@igalia.com>
- Reviewed by Kenneth Rohde Christiansen.
-
- WKBase.h and WKAPICast.h include files that are specific to the Safari/Windows
- port if WIN32 or _WIN32 is defined. When building WebKit2 on Windows with Qt, we
- do not want to include these files, as they define an API that is different to ours
- (the view aspect differs). Therefore guard the inclusion with !defined(BUILDING_QT__)
-
- * Shared/API/c/WKBase.h:
- * UIProcess/API/C/WKAPICast.h:
+ [GTK] It should be possible to disable favicons in WebKit2 GTK+ API
+ https://bugs.webkit.org/show_bug.cgi?id=98885
-2012-09-10 Kevin Funk <kevin.funk@kdab.com>
-
- Replace calls to QString::fromAscii which is deprecated in Qt5
- https://bugs.webkit.org/show_bug.cgi?id=96242
+ Reviewed by Carlos Garcia Campos.
- Reviewed by Simon Hausmann.
+ Make support for favicons in WebKit2GTK+ disabled by default, and
+ allow enabling it even after calling webkit_web_context_get_favicon_database(),
+ by decoupling opening the IconDatabase, which will happen when
+ setting the path for the database directory, from creating the
+ instance of WebKitFaviconDatabase from WebKitWebContext.
- Replace with QString::fromLatin1 which does the same.
+ * UIProcess/API/gtk/WebKitWebContext.cpp:
+ (_WebKitWebContextPrivate): Renamed faviconDatabasePath to
+ faviconDatabaseDirectory;
+ (ensureFaviconDatabase): Makes sure there's an instance of
+ WebKitFaviconDatabase created and associated to the context.
+ (webkit_web_context_set_favicon_database_directory): Use the
+ default path if NULL is passed, or the specified one, creating the
+ database if needed and opening it by setting it's path. If the
+ database is already open this method does nothing.
+ (webkit_web_context_get_favicon_database_directory): Return the
+ path or NULL if webkit_web_context_set_favicon_database_directory
+ has not been called yet.
+ (webkit_web_context_get_favicon_database): Return the instance of
+ WebKitFaviconDatabase, or create it if it doesn't exist yet, but
+ never set the path (would cause the icon database to be opened).
- * UIProcess/API/qt/tests/qrawwebview/tst_qrawwebview.cpp:
+ * UIProcess/API/gtk/tests/TestWebKitFaviconDatabase.cpp:
+ (testNotInitialized): New test to check that a NOT_INITIALIZED
+ error is got when using the database before setting its path.
+ (testSetDirectory): Call set_favicon_database_directory() here
+ instead of doing it in the constructor of FaviconDatabaseTest.
+ (beforeAll): Add testNotInitialized() to the test suite.
-2012-09-10 Christophe Dumez <christophe.dumez@intel.com>
+2012-10-11 Jinwoo Song <jinwoo7.song@samsung.com>
- [WK2] New fast/forms/number/number-interactive-validation-required.html fails
- https://bugs.webkit.org/show_bug.cgi?id=95936
+ [EFL][WK2] Revisit setting API names and documentation
+ https://bugs.webkit.org/show_bug.cgi?id=98793
Reviewed by Kenneth Rohde Christiansen.
- Add WKPreference private API for manipulate the interactive form
- validation setting. This is now needed by WebKitTestRunner.
+ Make setting API names to be consistent and revisit the documentation.
- * Shared/WebPreferencesStore.h:
- (WebKit):
- * UIProcess/API/C/WKPreferences.cpp:
- (WKPreferencesSetInteractiveFormValidationEnabled):
- (WKPreferencesGetInteractiveFormValidationEnabled):
- * UIProcess/API/C/WKPreferencesPrivate.h:
- * WebProcess/WebPage/WebPage.cpp:
- (WebKit::WebPage::updatePreferences):
-
-2012-09-09 Sam Weinig <sam@webkit.org>
-
- Simplify WebKit2 XPC service backend now that I know it doesn't need to soft link WebKit2.framework
- https://bugs.webkit.org/show_bug.cgi?id=96228
-
- Reviewed by Dan Bernstein.
-
- We soft link the non-XPC service WebProcess backend to the WebKit2 framework to
- ensure that we can close all the necessary file descriptors at launch, without
- fear that we will be closing one we open while initializing WebKit2 or one of its
- dependencies. Since we don't need to close file descriptors in the XPC service
- backend, we don't need to soft link! While here, also do some cleanup and code
- sharing.
-
- * UIProcess/Launcher/mac/ProcessLauncherMac.mm:
- (WebKit::launchXPCService):
- We don't need to send the framework executable path anymore (it was used for the
- soft linking), but we do need the client identifier.
-
- * WebKit2.xcodeproj/project.pbxproj:
- Add new files. Link the XPC service to WebKit2.framework.
-
- * WebKit2Service/MainMacService.mm:
- Now that we don't have to soft link, just make this a stub that calls immediately
- into the WebKit2 framework.
-
- * WebProcess/mac/WebProcessInitialization.h: Added.
- * WebProcess/mac/WebProcessInitialization.mm: Added.
- (WebKit::InitializeWebProcess):
- Move initialization that is common between the XPC and non-XPC backends here.
-
- * WebProcess/mac/WebProcessMainMac.mm:
- (WebKit::WebProcessMain):
- Remove XPC backend related code. Use new shared InitializeWebProcess function.
-
- * WebProcess/mac/WebProcessXPCServiceMain.h: Added.
- * WebProcess/mac/WebProcessXPCServiceMain.mm: Added.
- (WebKit::WebKit2ServiceEventHandler):
- (WebProcessXPCServiceMain):
- Move XPC service backend initialization here.
-
-2012-09-09 Emil A Eklund <eae@chromium.org>
-
- Rename Node::getRect/getPixelSnappedRect and remove ContainerNode::getRect
- https://bugs.webkit.org/show_bug.cgi?id=81413
-
- Reviewed by David Hyatt.
-
- Update WebPage to call pixelSnappedBoundingBox.
-
- * WebProcess/WebPage/WebPage.cpp:
- (WebKit::WebPage::editorState):
-
-2012-09-08 Sam Weinig <sam@webkit.org>
-
- Switch to entering the sandbox directly from main(), rather than waiting for the initialization message
- https://bugs.webkit.org/show_bug.cgi?id=96194
-
- Reviewed by Dan Bernstein.
-
- * UIProcess/Launcher/mac/ProcessLauncherMac.mm:
- (WebKit::ProcessLauncher::launchProcess):
- Pass a client identifier to WebProcess as a command line argument
- so that it can be used to create private temporary and cache directories.
-
- * WebProcess/WebProcess.h:
- (WebProcess):
- * WebProcess/mac/WebProcessMac.mm:
- (WebKit::WebProcess::initializeSandbox):
- (WebKit::WebProcess::platformInitializeWebProcess):
- Expose the initializeSandbox() function and stop calling it from platformInitializeWebProcess()
- since it is now going to be called from WebProcessMain. Also, move changing the current working
- directory to sandbox initialization function and replace use of creation parameters with just
- the client identifier.
-
- * WebProcess/com.apple.WebProcess.sb.in:
- Add some new exceptions that come from entering the sandbox earlier in the AppKit
- initialization process. Don't allow access to com.apple.coreservices.appleevents.
-
- * WebProcess/mac/WebProcessMainMac.mm:
- (WebKit::WebProcessMainXPC):
- (WebKit::WebProcessMain):
- Enter the sandbox explicitly, not waiting until the initialization message. Also,
- since we now have an extra parameter for the client identifier, make the WebProcess
- launches the UIProcess code path work by extracting a client identifier from the
- client executable path.
-
-2012-09-09 Patrick Gansterer <paroga@webkit.org>
-
- Make the String initialization on the function side of String::number()
- https://bugs.webkit.org/show_bug.cgi?id=95940
-
- Reviewed by Benjamin Poulain.
-
- * win/WebKit2.def:
- * win/WebKit2CFLite.def:
-
-2012-09-09 Pierre Rossi <pierre.rossi@gmail.com>
-
- [WK2] expose element rect for color input type
- https://bugs.webkit.org/show_bug.cgi?id=91664
-
- Reviewed by Simon Hausmann.
+ * UIProcess/API/efl/ewk_settings.cpp:
+ (ewk_settings_frame_flattening_enabled_set):
+ (ewk_settings_frame_flattening_enabled_get):
+ (ewk_settings_dns_prefetching_enabled_set):
+ (ewk_settings_dns_prefetching_enabled_get):
+ * UIProcess/API/efl/ewk_settings.h:
+ * UIProcess/API/efl/tests/test_ewk2_settings.cpp:
+ (TEST_F):
- In the same way we do for select elements already. This allows placing the picker
- in a sensible location.
-
- * UIProcess/API/efl/PageClientImpl.cpp: Update the function's signature.
- (WebKit::PageClientImpl::createColorChooserProxy): Ditto.
- * UIProcess/API/efl/PageClientImpl.h: Ditto.
- (PageClientImpl):
- * UIProcess/API/gtk/PageClientImpl.cpp:
- (WebKit::PageClientImpl::createColorChooserProxy): Ditto.
- * UIProcess/API/gtk/PageClientImpl.h: Ditto.
- (PageClientImpl):
- * UIProcess/API/mac/PageClientImpl.h: Ditto.
- (PageClientImpl):
- * UIProcess/API/mac/PageClientImpl.mm:
- (WebKit::PageClientImpl::createColorChooserProxy): Ditto.
- * UIProcess/API/qt/raw/qrawwebview.cpp:
- (QRawWebViewPrivate::createColorChooserProxy): Ditto.
- * UIProcess/API/qt/raw/qrawwebview_p_p.h: Ditto.
- (QRawWebViewPrivate):
- * UIProcess/PageClient.h: Ditto.
- (PageClient):
- * UIProcess/WebPageProxy.cpp:
- (WebKit::WebPageProxy::showColorChooser): Compute the rect mapped to the current view's transform.
- * UIProcess/WebPageProxy.h:
- (WebPageProxy):
- * UIProcess/WebPageProxy.messages.in:
- * UIProcess/qt/QtPageClient.cpp:
- (WebKit::QtPageClient::createColorChooserProxy):
- * UIProcess/qt/QtPageClient.h:
- (QtPageClient):
- * UIProcess/qt/WebColorChooserProxyQt.cpp:
- (ColorChooserContextObject):
- (WebKit::ColorChooserContextObject::ColorChooserContextObject):
- (WebKit::ColorChooserContextObject::elementRect):
- (WebKit::ColorChooserContextObject::accept):
- (WebKit::WebColorChooserProxyQt::WebColorChooserProxyQt):
- * UIProcess/qt/WebColorChooserProxyQt.h:
- (WebKit::WebColorChooserProxyQt::create):
- (WebColorChooserProxyQt):
- * UIProcess/win/WebView.cpp:
- (WebKit::WebView::createColorChooserProxy): Update the function's signature.
- * UIProcess/win/WebView.h:
- (WebView): Ditto.
- * WebProcess/WebCoreSupport/WebColorChooser.cpp:
- (WebKit::WebColorChooser::WebColorChooser):
-
-2012-09-09 Simon Hausmann <simon.hausmann@nokia.com>
-
- [Qt] Add missing files to the WebKit2 build on Windows
- https://bugs.webkit.org/show_bug.cgi?id=96177
+2012-10-10 Jer Noble <jer.noble@apple.com>
- Reviewed by Kenneth Rohde Christiansen.
+ Disallow full screen mode keyboard access by default.
+ https://bugs.webkit.org/show_bug.cgi?id=98971
+ <rdar://problem/12474226>
- For the build on Windows we can re-use existing functionality from the Safari/Windows
- build, such as the IPC implementation.
+ Reviewed by Sam Weinig.
- * Target.pri:
+ Only support full screen if keyboard access is not requested.
-2012-09-09 Simon Hausmann <simon.hausmann@nokia.com>
+ * UIProcess/WebFullScreenManagerProxy.cpp:
+ (WebKit::WebFullScreenManagerProxy::supportsFullScreen):
- [WK2] Fix PLATFORM(WIN) vs. OS(WINDOWS) in various files
- https://bugs.webkit.org/show_bug.cgi?id=96178
+2012-10-10 Sheriff Bot <webkit.review.bot@gmail.com>
- Reviewed by Kenneth Rohde Christiansen.
+ Unreviewed, rolling out r130972 and r130984.
+ http://trac.webkit.org/changeset/130972
+ http://trac.webkit.org/changeset/130984
+ https://bugs.webkit.org/show_bug.cgi?id=98986
- PLATFORM(WIN) is used in various places, where it is safe to use OS(WINDOWS) to allow
- the re-use of that code path in ports beyond Safari/Windows.
+ Huge numbers of WK2 crashes (Requested by smfr on #webkit).
- * Platform/CoreIPC/BinarySemaphore.h:
- (BinarySemaphore):
* Platform/CoreIPC/Connection.h:
(Connection):
- * Platform/SharedMemory.h:
- (Handle):
- (SharedMemory):
- * Platform/WorkQueue.h:
-
-2012-09-08 Jinwoo Song <jinwoo7.song@samsung.com>
-
- [EFL][WK2] Minibrowser crashes on right mouse click
- https://bugs.webkit.org/show_bug.cgi?id=95955
-
- Reviewed by Simon Hausmann.
-
- Make early return if the PageClient does not create a ContextMenuProxy.
-
- * UIProcess/WebPageProxy.cpp:
- (WebKit::WebPageProxy::internalShowContextMenu):
-
-2012-09-08 Simon Hausmann <simon.hausmann@nokia.com>
-
- [Qt] Fix CoreIPC setup between ProcessLauncher and WebProcessMain on Windows
- https://bugs.webkit.org/show_bug.cgi?id=96179
-
- Reviewed by Kenneth Rohde Christiansen.
-
- * UIProcess/Launcher/qt/ProcessLauncherQt.cpp:
- (WebKit::ProcessLauncher::launchProcess): Hide Unixy platform specific code
- and includes behind appropriate platform #ifdefs and use
- CoreIPC::Connection::createServerAndClientIdentifiers to set up the IPC pipes.
- We also need to tell Windows about our intent of using the client handle in
- the child web process.
- * WebProcess/qt/WebProcessMainQt.cpp:
- (WebKit::WebProcessMainQt): After retrieving the IPC identifier we call
- WebKit::WebProcess::shared().initialize with it. That function actually
- cares a CIPC::Connection::Identifier as argument, which happens to be an
- int on Unix, but it's actually a HANDLE on Windows. Change the parameter
- type according to and a reinterpret_cast from the converted unsigned integer,
- similar to WebProcessMainWin.cpp.
-
-2012-09-08 Christophe Dumez <christophe.dumez@intel.com>
-
- [WK2] New fast/events/tab-focus-link-in-canvas fails from r126908
- https://bugs.webkit.org/show_bug.cgi?id=95329
-
- Reviewed by Kenneth Rohde Christiansen.
-
- Add implementation for overriding the WebKitTabToLinksPreferenceKey
- preference as well as the corresponding WKPreferences API that
- is needed by WebKitTestRunner.
-
- * Shared/WebPreferencesStore.h:
- (WebKit):
- * UIProcess/API/C/WKPreferences.cpp:
- (WKPreferencesSetTabToLinksEnabled):
- (WKPreferencesGetTabToLinksEnabled):
- * UIProcess/API/C/WKPreferencesPrivate.h:
- * WebProcess/InjectedBundle/InjectedBundle.cpp:
- (WebKit::InjectedBundle::overrideBoolPreferenceForTestRunner):
- * WebProcess/WebPage/WebPage.h:
- (WebKit::WebPage::setTabToLinksEnabled):
- (WebKit::WebPage::tabToLinksEnabled):
-
-2012-09-07 Benjamin Poulain <bpoulain@apple.com>
+ * Platform/CoreIPC/MessageReceiverMap.cpp:
+ (CoreIPC::MessageReceiverMap::addMessageReceiver):
+ (CoreIPC::MessageReceiverMap::clearAllMessageReceivers):
+ (CoreIPC::MessageReceiverMap::knowsHowToHandleMessage):
+ (CoreIPC::MessageReceiverMap::dispatchMessage):
+ (CoreIPC::MessageReceiverMap::dispatchSyncMessage):
+ * Platform/CoreIPC/MessageReceiverMap.h:
+ (MessageReceiverMap):
+ * UIProcess/WebConnectionToWebProcess.h:
+ (WebConnectionToWebProcess):
+ * UIProcess/WebContext.cpp:
+ (WebKit::WebContext::WebContext):
+ (WebKit::WebContext::~WebContext):
+ (WebKit::WebContext::knowsHowToHandleMessage):
+ (WebKit::WebContext::didReceiveMessage):
+ (WebKit::WebContext::didReceiveSyncMessage):
+ * UIProcess/WebContext.h:
+ (WebContext):
+ * UIProcess/WebProcessProxy.cpp:
+ (WebKit::WebProcessProxy::didReceiveMessage):
+ (WebKit::WebProcessProxy::didReceiveSyncMessage):
+ * UIProcess/WebProcessProxy.h:
+ (WebProcessProxy):
- Rename the ustring() accessor to string()
- https://bugs.webkit.org/show_bug.cgi?id=95919
+2012-10-10 Sam Weinig <sam@webkit.org>
- Reviewed by Geoffrey Garen.
+ Add more Objective-C WebKit2 DOM API skeletons.
+ https://bugs.webkit.org/show_bug.cgi?id=98981
- * WebProcess/Plugins/Netscape/NPJSObject.cpp:
- (WebKit::NPJSObject::enumerate):
+ Reviewed by Anders Carlsson.
-2012-09-06 Jeffrey Pfau <jpfau@apple.com>
+ * WebKit2.xcodeproj/project.pbxproj:
+ * WebProcess/InjectedBundle/API/mac/WKDOMDocument.h:
+ * WebProcess/InjectedBundle/API/mac/WKDOMDocument.mm:
+ * WebProcess/InjectedBundle/API/mac/WKDOMElement.h:
+ * WebProcess/InjectedBundle/API/mac/WKDOMElement.mm:
+ Update guards to actually do something. __CLANG__ is never defined, but __clang__ is.
+
+ * WebProcess/InjectedBundle/API/mac/WKDOMInternals.h:
+ * WebProcess/InjectedBundle/API/mac/WKDOMInternals.mm:
+ - Abstracts DOM object caching into the DOMCache class which can only be used as a singleton.
+ - Adds WKDOMRange class extension to allow manipulating its internal pointer for caching purposes.
+ - Add WKDOMRange conversion functions.
+
+ * WebProcess/InjectedBundle/API/mac/WKDOMNode.h:
+ * WebProcess/InjectedBundle/API/mac/WKDOMNode.mm:
+ Rename _node to _impl for consistency.
+
+ * WebProcess/InjectedBundle/API/mac/WKDOMRange.h:
+ * WebProcess/InjectedBundle/API/mac/WKDOMRange.mm:
+ (-[WKDOMRange _initWithImpl:WebCore::]):
+ (-[WKDOMRange initWithDocument:]):
+ (-[WKDOMRange dealloc]):
+ (-[WKDOMRange startContainer]):
+ (-[WKDOMRange startOffset]):
+ (-[WKDOMRange endContainer]):
+ (-[WKDOMRange endOffset]):
+ (-[WKDOMRange text]):
+ Added. Only offers base range functionality.
+
+ * WebProcess/InjectedBundle/API/mac/WKDOMTextIterator.h:
+ * WebProcess/InjectedBundle/API/mac/WKDOMTextIterator.mm:
+ (-[WKDOMTextIterator initWithRange:]):
+ (-[WKDOMTextIterator advance]):
+ (-[WKDOMTextIterator atEnd]):
+ (-[WKDOMTextIterator currentRange]):
+ (-[WKDOMTextIterator currentTextPointer]):
+ (-[WKDOMTextIterator currentTextLength]):
+ Added. Almost identical to WebTextIterator API in WebKit.
+
+2012-10-10 Anders Carlsson <andersca@apple.com>
+
+ Stop crashing left and right.
+
+ * UIProcess/WebConnectionToWebProcess.h:
+ (WebKit::WebConnectionToWebProcess::webProcessProxy):
+ Add a getter.
- Extend third-party storage blocking API to optionally allow blocking all storage
- https://bugs.webkit.org/show_bug.cgi?id=95915
+ * UIProcess/WebProcessProxy.cpp:
+ (WebKit::WebProcessProxy::fromConnection):
+ The WebProcessProxy is not the Connection::Client, the WebConnectionToWebProcess is.
- Reviewed by Brady Eidson.
+2012-10-10 Sam Weinig <sam@webkit.org>
- Update WK2 API to use revised Settings API.
+ Fix the GCC Mac build. Why are we still building with GCC again?
- * Shared/WebPreferencesStore.h:
- (WebKit):
- * UIProcess/API/C/WKAPICast.h:
- (WebKit::toStorageBlockingPolicy):
- (WebKit):
- (WebKit::toAPI):
- * UIProcess/API/C/WKPreferences.cpp:
- (WKPreferencesSetStorageBlockingPolicy):
- (WKPreferencesGetStorageBlockingPolicy):
- * UIProcess/API/C/WKPreferences.h:
- * WebProcess/WebPage/WebPage.cpp:
- (WebKit::WebPage::updatePreferences):
+ * WebProcess/InjectedBundle/API/mac/WKDOMDocument.h:
+ * WebProcess/InjectedBundle/API/mac/WKDOMDocument.mm:
+ * WebProcess/InjectedBundle/API/mac/WKDOMElement.h:
+ * WebProcess/InjectedBundle/API/mac/WKDOMElement.mm:
+ * WebProcess/InjectedBundle/API/mac/WKDOMInternals.h:
+ * WebProcess/InjectedBundle/API/mac/WKDOMInternals.mm:
+ * WebProcess/InjectedBundle/API/mac/WKDOMNode.h:
+ * WebProcess/InjectedBundle/API/mac/WKDOMNode.mm:
-2012-09-07 Sudarsana Nagineni <sudarsana.nagineni@linux.intel.com>
+2012-10-10 Christophe Dumez <christophe.dumez@intel.com>
- [EFL] [WK2] Set theme for the inspector view
- https://bugs.webkit.org/show_bug.cgi?id=96108
+ [EFL][WK2] Add toolbar buttons to MiniBrowser
+ https://bugs.webkit.org/show_bug.cgi?id=98883
Reviewed by Kenneth Rohde Christiansen.
- Set the theme for the inspector view when it is created.
-
- * UIProcess/efl/WebInspectorProxyEfl.cpp:
- (WebKit::WebInspectorProxy::platformCreateInspectorPage):
+ Add "back,forward,list,changed" signal on the Ewk_View
+ to notify the client when the view's back / forward
+ list has changed. This is useful for the UI to update
+ its back / forward buttons disabled state.
-2012-09-07 Christophe Dumez <christophe.dumez@intel.com>
-
- [EFL] Use same default minimum logical font size in DRT and WTR
- https://bugs.webkit.org/show_bug.cgi?id=96116
-
- Reviewed by Martin Robinson.
-
- Add private bundle C API to set the minimum logicial font
- size setting. This is needed by WebKitTestRunner.
-
- * WebProcess/InjectedBundle/API/c/WKBundle.cpp:
- (WKBundleSetMinimumLogicalFontSize):
- * WebProcess/InjectedBundle/API/c/WKBundlePrivate.h:
- * WebProcess/InjectedBundle/InjectedBundle.cpp:
- (WebKit::InjectedBundle::setMinimumLogicalFontSize):
- (WebKit):
- * WebProcess/InjectedBundle/InjectedBundle.h:
- (InjectedBundle):
+ * UIProcess/API/efl/ewk_view.cpp:
+ (ewk_view_back_forward_list_changed):
+ * UIProcess/API/efl/ewk_view.h:
+ * UIProcess/API/efl/ewk_view_loader_client.cpp:
+ (didChangeBackForwardList):
+ * UIProcess/API/efl/ewk_view_private.h:
-2012-09-07 Allan Sandfeld Jensen <allan.jensen@nokia.com>
+2012-10-10 Jon Lee <jonlee@apple.com>
- Simplify hitTestResultAtPoint and nodesFromRect APIs
- https://bugs.webkit.org/show_bug.cgi?id=95720
+ [WK2] Activate plugins when user clicks on snapshot
+ https://bugs.webkit.org/show_bug.cgi?id=98328
+ <rdar://problem/12426681>
- Reviewed by Antonio Gomes.
+ Reviewed by Brady Eidson.
- Update calls to new API and update exported symbols.
+ Implement the recreation of the plugin.
- * WebProcess/InjectedBundle/InjectedBundleNavigationAction.cpp:
- (WebKit::InjectedBundleNavigationAction::InjectedBundleNavigationAction):
- * WebProcess/WebPage/WebPage.cpp:
- (WebKit::handleContextMenuEvent):
- (WebKit::WebPage::highlightPotentialActivation): Corrects the misplaced arguments while converting them.
- (WebKit::WebPage::findZoomableAreaForPoint):
- * WebProcess/WebPage/mac/WebPageMac.mm:
- (WebKit::WebPage::characterIndexForPoint):
- (WebKit::WebPage::performDictionaryLookupAtLocation):
- (WebKit::WebPage::shouldDelayWindowOrderingEvent):
- (WebKit::WebPage::acceptsFirstMouse):
- * win/WebKit2.def:
- * win/WebKit2CFLite.def:
+ * WebProcess/Plugins/PluginView.cpp:
+ (WebKit::PluginView::recreateAndInitialize): We can run into a situation where the user
+ decided to run the plugin before the snapshot was ready to be taken. In this case, the
+ plugin member variable is non-null, and the timer is still active. Turn off the timer, and
+ destroy that instance of the plugin. We set the plugin to the instance provided in the
+ first parameter to this function, and reset the member variables so that the PluginView is
+ in a state similar to when it was first created. We also immediately initialize the plugin,
+ which may happen synchronously or asynchronously.
-2012-09-07 Allan Sandfeld Jensen <allan.jensen@nokia.com>
+ * WebProcess/Plugins/PluginView.h:
+ (WebKit::PluginView::initialParameters): Expose the initial parameters. Used to recreate
+ the plugin.
+ (WebKit::PluginView::pluginElement): Expose the element associated with the widget. Used to
+ recreate the plugin.
- X11 Global Selection
- https://bugs.webkit.org/show_bug.cgi?id=88238
+ * WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
+ (WebKit::WebFrameLoaderClient::recreatePlugin): Create a new Plugin instance using the same
+ parameters used to create the plugin for snapshotting. Forward that instance to the widget.
+ * WebProcess/WebCoreSupport/WebFrameLoaderClient.h:
+ (WebFrameLoaderClient): Implement recreatePlugin().
- Reviewed by Tony Chang.
+2012-10-10 Sam Weinig <sam@webkit.org>
- Implements the hooks for supporting global selections in Qt WebKit2.
+ Fix 32-bit build.
- * WebProcess/WebCoreSupport/WebEditorClient.cpp:
- (WebKit::WebEditorClient::respondToChangedSelection):
- (WebKit::WebEditorClient::updateGlobalSelection):
- (WebKit::WebEditorClient::supportsGlobalSelection):
- * WebProcess/WebCoreSupport/WebEditorClient.h:
- * WebProcess/WebCoreSupport/gtk/WebEditorClientGtk.cpp:
- (WebKit::WebEditorClient::updateGlobalSelection):
- * WebProcess/WebPage/WebPage.cpp:
- (WebKit::handleMouseEvent):
- * WebProcess/WebPage/WebPage.h:
- (WebPage):
- * WebProcess/WebPage/qt/WebPageQt.cpp:
- (WebKit::WebPage::handleMouseReleaseEvent):
+ * WebProcess/InjectedBundle/API/mac/WKDOMDocument.h:
+ * WebProcess/InjectedBundle/API/mac/WKDOMDocument.mm:
+ * WebProcess/InjectedBundle/API/mac/WKDOMElement.h:
+ * WebProcess/InjectedBundle/API/mac/WKDOMElement.mm:
+ * WebProcess/InjectedBundle/API/mac/WKDOMInternals.h:
+ * WebProcess/InjectedBundle/API/mac/WKDOMInternals.mm:
+ * WebProcess/InjectedBundle/API/mac/WKDOMNode.h:
+ * WebProcess/InjectedBundle/API/mac/WKDOMNode.mm:
-2012-09-07 Mikhail Pozdnyakov <mikhail.pozdnyakov@intel.com>
+2012-10-10 Anders Carlsson <andersca@apple.com>
- [WK2] APIClientTraits<WKPageLoaderClient> and APIClientTraits<WKBundlePageLoaderClient> are not initialized properly
- https://bugs.webkit.org/show_bug.cgi?id=96079
+ WebContext should be a MessageReceiver
+ https://bugs.webkit.org/show_bug.cgi?id=98958
- Reviewed by Kenneth Rohde Christiansen.
+ Reviewed by Sam Weinig.
- APIClientTraits<WKPageLoaderClient> was missing offset for version number 2 and
- APIClientTraits<WKBundlePageLoaderClient> was missing offset for version number 3.
+ Make WebContext be a MessageReceiver that lives in its own map. This allows us to get rid of the
+ knowsHowToHandleMessage functions on MessageReceiverMap and WebContext.
- * Shared/APIClientTraits.cpp:
+ * Platform/CoreIPC/Connection.h:
+ (CoreIPC::Connection::client):
+ (Connection):
+ * Platform/CoreIPC/MessageReceiverMap.cpp:
+ (CoreIPC::MessageReceiverMap::addMessageReceiver):
+ (CoreIPC::MessageReceiverMap::invalidate):
+ (CoreIPC::MessageReceiverMap::knowsHowToHandleMessage):
+ (CoreIPC::MessageReceiverMap::dispatchMessage):
+ (CoreIPC::MessageReceiverMap::dispatchSyncMessage):
+ * Platform/CoreIPC/MessageReceiverMap.h:
+ (MessageReceiverMap):
+ * UIProcess/WebContext.cpp:
+ (WebKit::WebContext::WebContext):
+ (WebKit::WebContext::~WebContext):
+ (WebKit::WebContext::dispatchMessage):
+ (WebKit::WebContext::dispatchSyncMessage):
+ (WebKit::WebContext::didReceiveMessage):
+ (WebKit::WebContext::didReceiveSyncMessage):
+ * UIProcess/WebContext.h:
+ (WebContext):
+ * UIProcess/WebProcessProxy.cpp:
+ (WebKit::WebProcessProxy::fromConnection):
(WebKit):
+ (WebKit::WebProcessProxy::didReceiveMessage):
+ (WebKit::WebProcessProxy::didReceiveSyncMessage):
+ * UIProcess/WebProcessProxy.h:
+ (WebProcessProxy):
-2012-09-07 Eunmi Lee <eunmi15.lee@samsung.com>
-
- [EFL][WK2] Add APIs to enable or disable the mouse events of the ewk_view.
- https://bugs.webkit.org/show_bug.cgi?id=88631
-
- Reviewed by Gyuyoung Kim.
-
- We can turn on/off the mouse events of the ewk_view using the mouse
- events enabling API. This API can be used when we want to turn off the
- mouse events on the touchscreen device to process the touch events
- instead of the mouse events.
-
- * UIProcess/API/efl/ewk_view.cpp:
- (_Ewk_View_Private_Data):
- (_Ewk_View_Private_Data::_Ewk_View_Private_Data):
- (_ewk_view_smart_add):
- (ewk_view_mouse_events_enabled_set):
- (ewk_view_mouse_events_enabled_get):
- * UIProcess/API/efl/ewk_view.h:
- * UIProcess/API/efl/tests/test_ewk2_view.cpp:
- (TEST_F):
-
-2012-09-07 Tim Horton <timothy_horton@apple.com>
-
- Add optional debug logging when we fall into/out of threaded scrolling
- https://bugs.webkit.org/show_bug.cgi?id=93898
- <rdar://problem/12089098>
-
- Reviewed by Simon Fraser.
-
- Update the scrolling tree's scrollingPerformanceLoggingEnabled preference
- before the early-return if we don't have layer debugging borders on.
-
- * WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.mm:
- (WebKit::TiledCoreAnimationDrawingArea::updatePreferences):
-
-2012-09-06 Jinwoo Song <jinwoo7.song@samsung.com>
-
- Deploy StringBuilder in more places in WebKit2
- https://bugs.webkit.org/show_bug.cgi?id=95924
-
- Reviewed by Benjamin Poulain.
-
- Deploy StringBuilder to concatenate strings more efficiently.
+2012-10-10 Sam Weinig <sam@webkit.org>
- * Shared/WebMemorySampler.cpp:
- (WebKit):
- (WebKit::WebMemorySampler::WebMemorySampler):
- (WebKit::WebMemorySampler::stop):
- (WebKit::WebMemorySampler::writeHeaders):
- (WebKit::WebMemorySampler::appendCurrentMemoryUsageToFile):
- * Shared/WebMemorySampler.h:
- (WebMemorySampler):
- * WebProcess/Plugins/Netscape/NetscapeBrowserFuncs.cpp:
- (WebKit::capitalizeRFC822HeaderFieldName):
- * WebProcess/WebCoreSupport/WebContextMenuClient.cpp:
- (WebKit::WebContextMenuClient::searchWithGoogle):
+ Add skeleton of a WebKit2 ObjC DOM SPI (not intended to be the full DOM)
+ https://bugs.webkit.org/show_bug.cgi?id=98955
-2012-09-06 Ryuan Choi <ryuan.choi@samsung.com>
+ Reviewed by Anders Carlsson.
- [EFL][WK2] Add API unit tests for ewk_view_theme_set.
- https://bugs.webkit.org/show_bug.cgi?id=94670
+ Add a skeleton DOM implementation only exposing Node, Element and Document
+ for now. It is currently only available in 64-bit as it relies on the non-fragile
+ ABI for now.
- Reviewed by Gyuyoung Kim.
+ * WebKit2.xcodeproj/project.pbxproj:
+ * WebProcess/InjectedBundle/API/mac/WKDOMDocument.h: Added.
+ * WebProcess/InjectedBundle/API/mac/WKDOMDocument.mm: Added.
+ * WebProcess/InjectedBundle/API/mac/WKDOMElement.h: Added.
+ * WebProcess/InjectedBundle/API/mac/WKDOMElement.mm: Added.
+ * WebProcess/InjectedBundle/API/mac/WKDOMInternals.h: Added.
+ * WebProcess/InjectedBundle/API/mac/WKDOMInternals.mm: Added.
+ * WebProcess/InjectedBundle/API/mac/WKDOMNode.h: Added.
+ * WebProcess/InjectedBundle/API/mac/WKDOMNode.mm: Added.
- Added unit tests for ewk_view_theme_set.
+2012-10-04 Andy Estes <aestes@apple.com>
- * UIProcess/API/efl/tests/UnitTestUtils/EWK2UnitTestEnvironment.cpp:
- (EWK2UnitTest::EWK2UnitTestEnvironment::pathForResource):
- Added to get path of resource.
- * UIProcess/API/efl/tests/UnitTestUtils/EWK2UnitTestEnvironment.h:
- Ditto.
- * UIProcess/API/efl/tests/resources/big_button_theme.edj:
- Added test theme file which has text_confinement of button as
- rel1 { ... offset : 150 8; } rel2 { ... offset : -150 -11; }.
- * UIProcess/API/efl/tests/resources/empty_theme.edj:
- Added test theme file which includes nothing.
- * UIProcess/API/efl/tests/test_ewk2_view.cpp:
- Added unit test for ewk_view_theme_set.
+ [WebKit2] Create an API for adding and removing user stylesheets from a page group
+ https://bugs.webkit.org/show_bug.cgi?id=98432
-2012-09-06 Csaba Osztrogonác <ossy@webkit.org>
+ Reviewed by Sam Weinig.
- Move RenderView::setFixedPositionedObjectsNeedLayout to FrameView
- https://bugs.webkit.org/show_bug.cgi?id=96017
+ This patch adds the following API to WKBrowsingContextGroup:
+
+ - (void)addUserStyleSheet:(NSString *)source baseURL:(NSURL *)baseURL whitelist:(NSArray *)whitelist blacklist:(NSArray *)blacklist mainFrameOnly:(BOOL)mainFrameOnly;
+ - (void)removeAllUserStyleSheets;
+
+ Sheets added via this API are sent to all processes that contain a page
+ in the given page group. Sheets are also cached in the UI process in a
+ new object called UserContentContainer, which is a property of each
+ group's WebPageGroupData and is sent to new web processes during page
+ initialization.
+
+ This is less than ideal, since new pages added to a pre-existing
+ process / page group combination will send redundant user stylesheet
+ strings over the wire. To avoid this we'd have to keep track track of
+ the groups that currently exist in each process and only send user
+ content during page creation if it is the first time a process has seen
+ the page's group. I decided to not add this complexity for the time
+ being, but we might need to consider it if we find that the current
+ approach impacts performance for clients that heavily utilize user
+ content.
+
+ * Shared/API/c/WKArray.cpp:
+ (WKArrayCreateAdoptingValues): Add a WKArray creation function that
+ adopts the incoming WKTypeRefs rather than refing them.
+ * Shared/API/c/WKArray.h:
+ * Shared/API/c/WKBase.h: Move WKUserContentInjectedFrames out of
+ WKBundlePrivate.h so it can be used in WKPageGroup, too.
+ * Shared/API/c/cf/WKURLCF.cpp:
+ (WKURLCreateWithCFURL): Return 0 for null CFURLRefs instead of crashing
+ inside CFURLGetString().
+ * Shared/ImmutableArray.cpp:
+ (WebKit::ImmutableArray::ImmutableArray): Add a tag to differentiate
+ between the adopting and refing ctors.
+ * Shared/ImmutableArray.h:
+ (WebKit::ImmutableArray::create): Call the refing ctor.
+ (WebKit::ImmutableArray::adopt): Call the adopting ctor.
+ * Shared/UserContentContainer.cpp: Added.
+ (UserContentItemMessageEncoder): Create a UserMessageEncoder for
+ serializing UserContentContainer::Item's APIObjects.
+ (WebKit::UserContentItemMessageEncoder::UserContentItemMessageEncoder):
+ (WebKit::UserContentItemMessageEncoder::encode):
+ (UserContentItemMessageDecoder): Create a UserMessageEncoder for
+ deserializing UserContentContainer::Item's APIObjects.
+ (WebKit::UserContentItemMessageDecoder::UserContentItemMessageDecoder):
+ (WebKit::UserContentItemMessageDecoder::decode):
+ (WebKit::UserContentContainer::Item::Item):
+ (WebKit::encodeStringArray): Add a helper function for encoding
+ ImmutableArrays of WebStrings.
+ (WebKit::UserContentContainer::Item::encode): Encode the item's
+ properties using UserContentItemMessageEncoder.
+ (WebKit::decodeStringArray): Add a helper function for decoding
+ ImmutableArrays of WebStrings.
+ (WebKit::UserContentContainer::Item::decode): Decode the item's
+ properties using UserContentItemMessageDecoder.
+ (WebKit::toStringVector): Add a helper function for converting an
+ ImmutableArray of WebStrings to a Vector of Strings.
+ (WebKit::UserContentContainer::Item::whitelist): Use toStringVector().
+ (WebKit::UserContentContainer::Item::blacklist): Ditto.
+ (WebKit::UserContentContainer::encode): Encode the Vector of UserContentContainer::Items.
+ (WebKit::UserContentContainer::decode): Decode the Vector of UserContentContainer::Items.
+ * Shared/UserContentContainer.h: Added.
+ * Shared/WebPageGroupData.cpp:
+ (WebKit::WebPageGroupData::encode): Include userStyleSheets when encoding.
+ (WebKit::WebPageGroupData::decode): Include userStyleSheets when decoding.
+ * Shared/WebPageGroupData.h:
+ (WebPageGroupData): Add a UserContentContainer called userStyleSheets
+ to WebPageGroupData.
+ * UIProcess/API/C/WKPageGroup.cpp: Add the C SPI version of the Objective-C API.
+ (WKPageGroupAddUserStyleSheet):
+ (WKPageGroupRemoveAllUserStyleSheets):
+ * UIProcess/API/C/WKPageGroup.h:
+ * UIProcess/API/mac/WKBrowsingContextGroup.h: Add the Objective-C API.
+ * UIProcess/API/mac/WKBrowsingContextGroup.mm:
+ (createWKArray): Add a helper function that converts an NSArray of NSStrings to a WKArray of WKStrings.
+ (-[WKBrowsingContextGroup addUserStyleSheet:baseURL:whitelist:blacklist:mainFrameOnly:]):
+ Implement the Objective-C API in terms of the C SPI.
+ (-[WKBrowsingContextGroup removeAllUserStyleSheets]): Ditto.
+ * UIProcess/WebPageGroup.cpp:
+ (WebKit::WebPageGroup::addUserStyleSheet): Add the new sheet to the
+ group's WebPageGroupData, which ensures that the group's sheets are
+ sent to new web processes.
+ (WebKit::WebPageGroup::removeAllUserStyleSheets): Ditto for removal.
+ * UIProcess/WebPageGroup.h:
+ (WebKit::WebPageGroup::sendToAllProcessesInGroup): Add a helper message
+ that sends a message to all processes that have a page in the current
+ group. This is used to add new user sheets to already-initialized page
+ groups in the UI processes.
+ * WebKit2.xcodeproj/project.pbxproj:
+ * WebProcess/InjectedBundle/API/c/WKBundlePrivate.h: Moved
+ WKUserContentInjectedFrames from here to WKBase.h.
+ * WebProcess/WebPage/WebPageGroupProxy.cpp:
+ (WebKit::WebPageGroupProxy::WebPageGroupProxy): Add each sheet in the
+ WebPageGroupData to WebCore's page group.
+ (WebKit::WebPageGroupProxy::addUserStyleSheet): Add the sheet received
+ from the UI process to WebCore's page group.
+ (WebKit::WebPageGroupProxy::removeAllUserStyleSheets): Remove all
+ sheets from WebCore's page group.
+ * WebProcess/WebPage/WebPageGroupProxy.h:
+ * WebProcess/WebPage/WebPageGroupProxy.messages.in: Define
+ AddUserStyleSheet and RemoveAllUserStyleSheets, two messages sent from
+ the UI process to a web process's WebPageGroupProxy.
+
+2012-10-10 Sam Weinig <sam@webkit.org>
+
+ Make all of the WebContext sub objects MessageReceivers
+ https://bugs.webkit.org/show_bug.cgi?id=98661
- Unreviewed Qt-WK2 buildfix after r127783.
+ Reviewed by Anders Carlsson.
- * WebProcess/WebPage/CoordinatedGraphics/LayerTreeCoordinator.cpp:
- (WebKit::LayerTreeCoordinator::syncFixedLayers):
+ Start work towards simplified message dispatch.
-2012-09-05 Alexey Proskuryakov <ap@apple.com>
+ * Platform/CoreIPC/MessageReceiverMap.cpp:
+ (CoreIPC::MessageReceiverMap::clearAllMessageReceivers):
+ (CoreIPC::MessageReceiverMap::knowsHowToHandleMessage):
+ (CoreIPC::MessageReceiverMap::dispatchSyncMessage):
+ * Platform/CoreIPC/MessageReceiverMap.h:
+ Add additional helper methods.
- [WK2] Annotate multi-process FIXMEs with bug numbers
- https://bugs.webkit.org/show_bug.cgi?id=95916
+ * UIProcess/WebContext.cpp:
+ (WebKit::WebContext::~WebContext):
+ (WebKit::WebContext::addMessageReceiver):
+ (WebKit::WebContext::knowsHowToHandleMessage):
+ (WebKit::WebContext::didReceiveMessage):
+ (WebKit::WebContext::didReceiveSyncMessage):
+ * UIProcess/WebContext.h:
+ Add a MessageReceiverMap that chains to the main on in WebProcessProxy. Simplifies
+ didReceiveMessage and didReceiveSyncMessage.
- Reviewed by Eric Carlson.
+ * UIProcess/WebProcessProxy.cpp:
+ (WebKit::WebProcessProxy::didReceiveMessage):
+ (WebKit::WebProcessProxy::didReceiveSyncMessage):
+ Use the new WebContext methods to simplify dispatch.
- * UIProcess/WebContext.cpp:
- (WebKit::WebContext::setProcessModel): Ensure that plug-in process is enabled.
- Comments in WebPluginSiteDataManager said that it's required for multi-process.
- (WebKit::WebContext::createNewWebProcess): Added a bug number.
- (WebKit::WebContext::disconnectProcess): Ditto.
- (WebKit::WebContext::createWebPage): Ditto.
- (WebKit::WebContext::download): Ditto.
- (WebKit::WebContext::getWebCoreStatistics): Ditto.
-
- * UIProcess/Plugins/WebPluginSiteDataManager.cpp:
- (WebKit::WebPluginSiteDataManager::getSitesWithData):
- (WebKit::WebPluginSiteDataManager::clearSiteData):
- Removed FIXMEs - some ports haven't switched to plugin process yet, but that
- doesn't stop others from having a multi-process model. Added an ASSERT to document
- this requirement (in addition to the check in WebContext).
-
- * UIProcess/Downloads/DownloadProxy.cpp:
- (WebKit::DownloadProxy::cancel):
- (WebKit::DownloadProxy::didReceiveAuthenticationChallenge):
- (WebKit::DownloadProxy::startTransfer):
+ * UIProcess/Notifications/WebNotificationManagerProxy.cpp:
+ (WebKit::WebNotificationManagerProxy::WebNotificationManagerProxy):
+ * UIProcess/Notifications/WebNotificationManagerProxy.h:
+ (WebNotificationManagerProxy):
* UIProcess/WebApplicationCacheManagerProxy.cpp:
- (WebKit::WebApplicationCacheManagerProxy::getApplicationCacheOrigins):
- (WebKit::WebApplicationCacheManagerProxy::deleteEntriesForOrigin):
- (WebKit::WebApplicationCacheManagerProxy::deleteAllEntries):
+ (WebKit::WebApplicationCacheManagerProxy::WebApplicationCacheManagerProxy):
+ * UIProcess/WebApplicationCacheManagerProxy.h:
+ (WebApplicationCacheManagerProxy):
+ * UIProcess/WebBatteryManagerProxy.cpp:
+ (WebKit::WebBatteryManagerProxy::WebBatteryManagerProxy):
+ * UIProcess/WebBatteryManagerProxy.h:
+ (WebBatteryManagerProxy):
* UIProcess/WebCookieManagerProxy.cpp:
- (WebKit::WebCookieManagerProxy::getHostnamesWithCookies):
- (WebKit::WebCookieManagerProxy::getHTTPCookieAcceptPolicy):
+ (WebKit::WebCookieManagerProxy::WebCookieManagerProxy):
+ * UIProcess/WebCookieManagerProxy.h:
+ (WebCookieManagerProxy):
* UIProcess/WebDatabaseManagerProxy.cpp:
- (WebKit::WebDatabaseManagerProxy::getDatabasesByOrigin):
- (WebKit::WebDatabaseManagerProxy::getDatabaseOrigins):
- (WebKit::WebDatabaseManagerProxy::deleteDatabaseWithNameForOrigin):
- (WebKit::WebDatabaseManagerProxy::deleteDatabasesForOrigin):
- (WebKit::WebDatabaseManagerProxy::deleteAllDatabases):
- (WebKit::WebDatabaseManagerProxy::setQuotaForOrigin):
+ (WebKit::WebDatabaseManagerProxy::WebDatabaseManagerProxy):
+ (WebKit::WebDatabaseManagerProxy::didReceiveMessage):
+ (WebKit):
+ * UIProcess/WebDatabaseManagerProxy.h:
+ (WebDatabaseManagerProxy):
+ * UIProcess/WebGeolocationManagerProxy.cpp:
+ (WebKit::WebGeolocationManagerProxy::WebGeolocationManagerProxy):
+ * UIProcess/WebGeolocationManagerProxy.h:
+ (WebGeolocationManagerProxy):
* UIProcess/WebIconDatabase.cpp:
- (WebKit::WebIconDatabase::getLoadDecisionForIconURL):
- (WebKit::WebIconDatabase::didFinishURLImport):
+ (WebKit::WebIconDatabase::WebIconDatabase):
+ * UIProcess/WebIconDatabase.h:
+ (WebIconDatabase):
+ (WebKit::WebIconDatabase::type):
* UIProcess/WebKeyValueStorageManagerProxy.cpp:
- (WebKit::WebKeyValueStorageManagerProxy::getKeyValueStorageOrigins):
- (WebKit::WebKeyValueStorageManagerProxy::deleteEntriesForOrigin):
- (WebKit::WebKeyValueStorageManagerProxy::deleteAllEntries):
+ (WebKit::WebKeyValueStorageManagerProxy::WebKeyValueStorageManagerProxy):
+ * UIProcess/WebKeyValueStorageManagerProxy.h:
+ (WebKeyValueStorageManagerProxy):
* UIProcess/WebMediaCacheManagerProxy.cpp:
- (WebKit::WebMediaCacheManagerProxy::getHostnamesWithMediaCache):
+ (WebKit::WebMediaCacheManagerProxy::WebMediaCacheManagerProxy):
+ * UIProcess/WebMediaCacheManagerProxy.h:
+ (WebMediaCacheManagerProxy):
+ * UIProcess/WebNetworkInfoManagerProxy.cpp:
+ (WebKit::WebNetworkInfoManagerProxy::WebNetworkInfoManagerProxy):
+ (WebKit::WebNetworkInfoManagerProxy::didReceiveSyncMessage):
+ * UIProcess/WebNetworkInfoManagerProxy.h:
+ (WebNetworkInfoManagerProxy):
* UIProcess/WebResourceCacheManagerProxy.cpp:
- (WebKit::WebResourceCacheManagerProxy::getCacheOrigins):
- (WebKit::WebResourceCacheManagerProxy::clearCacheForOrigin):
- (WebKit::WebResourceCacheManagerProxy::clearCacheForAllOrigins):
- Added bug numbers.
-
-2012-09-06 Michael Saboff <msaboff@apple.com>
-
- WebKit2 IPC always sends strings using 16 bit data format
- https://bugs.webkit.org/show_bug.cgi?id=95811
-
- Reviewed by Benjamin Poulain.
-
- Changed string encoding to pass an 8bit flag and then send either 8 or 16 bit
- character data.
-
- * Platform/CoreIPC/ArgumentCoders.cpp:
- (CoreIPC::::encode):
- (CoreIPC::decodeStringText): New templatized string creation and decoder method.
- (CoreIPC::::decode):
-
-2012-09-06 Carlos Garcia Campos <cgarcia@igalia.com>
-
- [GTK] [WK2] Crash when navigating between pages
- https://bugs.webkit.org/show_bug.cgi?id=95949
-
- Reviewed by Martin Robinson.
-
- Do not trust isMainResource parameter in
- webkitWebViewResourceLoadStarted(), because it's always true for
- all subresources of pages loaded from the history cache. We can
- simply assume that the first resource loaded for the main frame
- is the main web view resource.
-
- * UIProcess/API/gtk/WebKitResourceLoadClient.cpp:
- (didInitiateLoadForResource):
- * UIProcess/API/gtk/WebKitWebView.cpp:
- (webkitWebViewResourceLoadStarted):
- * UIProcess/API/gtk/WebKitWebViewPrivate.h:
-
-2012-09-06 Balazs Kelemen <kbalazs@webkit.org>
-
- [WK2] Crash in WebPageProxy::showPopupMenu if PageClient does not implement createPopupMenuProxy
- https://bugs.webkit.org/show_bug.cgi?id=95862
-
- Reviewed by Simon Hausmann.
-
- Bail out early if the PageClient does not create a PopupMenuProxy for us.
-
- * UIProcess/WebPageProxy.cpp:
- (WebKit::WebPageProxy::showPopupMenu):
-
-2012-09-06 Christophe Dumez <christophe.dumez@intel.com>
-
- [EFL][WK2] Provide implementation for WebPage::performDefaultBehaviorForKeyEvent()
- https://bugs.webkit.org/show_bug.cgi?id=95943
-
- Reviewed by Kenneth Rohde Christiansen.
+ (WebKit::WebResourceCacheManagerProxy::WebResourceCacheManagerProxy):
+ (WebKit::WebResourceCacheManagerProxy::didReceiveMessage):
+ (WebKit):
+ * UIProcess/WebResourceCacheManagerProxy.h:
+ (WebResourceCacheManagerProxy):
+ * UIProcess/WebVibrationProxy.cpp:
+ (WebKit::WebVibrationProxy::WebVibrationProxy):
+ * UIProcess/WebVibrationProxy.h:
+ (WebVibrationProxy):
+ * UIProcess/soup/WebSoupRequestManagerProxy.cpp:
+ (WebKit::WebSoupRequestManagerProxy::WebSoupRequestManagerProxy):
+ (WebKit::WebSoupRequestManagerProxy::didReceiveMessage):
+ (WebKit):
+ * UIProcess/soup/WebSoupRequestManagerProxy.h:
+ (WebSoupRequestManagerProxy):
+ * WebProcess/Authentication/AuthenticationManager.h:
+ (AuthenticationManager):
+ * WebProcess/Geolocation/WebGeolocationManager.h:
+ (WebGeolocationManager):
+ Make all the WebContext sub-objects MessageReceivers to simplify dispatch.
- Provide implementation for WebPage::performDefaultBehaviorForKeyEvent()
- in EFL WK2.
+2012-10-10 Simon Fraser <simon.fraser@apple.com>
- * WebProcess/WebPage/efl/WebPageEfl.cpp:
- (WebKit::WebPage::performDefaultBehaviorForKeyEvent):
+ Add the mangled symbol name for Frame::layerTreeAsText() to the confusingly named
+ Windows export file.
-2012-09-06 Patrick Gansterer <paroga@webkit.org>
+ * win/WebKit2.def:
- Remove String::operator+=() from windows platform code
- https://bugs.webkit.org/show_bug.cgi?id=95904
+2012-10-10 Simon Fraser <simon.fraser@apple.com>
- Reviewed by Benjamin Poulain.
+ Store a visible rect in GraphicsLayers, and optionally dump it in layerTreeAsText
+ https://bugs.webkit.org/show_bug.cgi?id=98839
- Use StringBuilder and operator+() to concatenate strings instead of operator+=().
+ Reviewed by Sam Weinig.
- * UIProcess/win/WebView.cpp:
- (WebKit::imeCompositionArgumentNames):
+ Add a flag to layerTreeAsText() so that tests can optionally include this visible rect in
+ layer tree dumps. This output will be platform-specific, so we don't want to do it unconditionally.
-2012-09-06 Kihong Kwon <kihong.kwon@samsung.com>
+ * WebProcess/WebPage/WebFrame.cpp:
+ (WebKit::WebFrame::layerTreeAsText):
- [CMake] Add notifications path to the WebKit2/CMakeLists.txt
- https://bugs.webkit.org/show_bug.cgi?id=95843
+2012-10-10 Shinya Kawanaka <shinyak@chromium.org>
- Reviewed by Laszlo Gombos.
+ Needs internal API to return distributed nodes for InsertionPoint
+ https://bugs.webkit.org/show_bug.cgi?id=98868
- Add WebCore/Modules/Notifications to the WebKit2_INCLUDE_DIRECTORIES of WebKit2/CMakeLists.txt.
- There are some build errors when ENABLE_NOTIFICATIONS feature is enabled.
+ Reviewed by Hajime Morita.
- * CMakeLists.txt:
+ * win/WebKit2.def:
+ * win/WebKit2CFLite.def:
-2012-09-06 Simon Hausmann <simon.hausmann@nokia.com>
+2012-10-10 Jocelyn Turcotte <jocelyn.turcotte@digia.com>
- [Qt] Various small Windows / MSVC build fixes
- https://bugs.webkit.org/show_bug.cgi?id=95934
+ [Qt][WK2] REGRESSION(r130879): It made fast/events/touch/* tests crash
+ https://bugs.webkit.org/show_bug.cgi?id=98888
Reviewed by Kenneth Rohde Christiansen.
- * Shared/LayerTreeContext.h: Include stdint.h due to the use of uint32_t as layer id.
- * UIProcess/API/qt/qquickwebview_p.h:
- (WebKit): Fix struct vs. class forward declaration mismatch, causing linking errors.
- * UIProcess/API/qt/tests/bytearraytestdata.h: Remove export macro from internal test class
- that is not used anymore. Using the export macro from a DLL when the code in question is not
- part of the DLL results in the export macro expanding to dllimport, giving incorrect linkage
- for the unit test.
- * WebProcess/qt/WebProcessMainQt.cpp:
- (WebKit::WebProcessMainQt): Removed explicit call to srandom(), which is not available on Windows.
- The call appears to be unnecessary in the light of the WTF::initializeThreading() call below, which
- in turn calls WTF::initializeRandomNumberGenerator(), which does the same thing already (and isn't
- needed on Windows, as per comment in wtf/RandomNumberSeed.h)
+ Add null-checks in the gesture recognizers to allow them working without a PageViewportController.
+ The pinch and pan gesture recognizers aren't used in that case yet, but they could eventually
+ be used to send pinch and pan gesture events to the web process. They are currently kept active
+ because we need the tap gesture recognizer and its logic is bound to those other recognizers.
-2012-09-06 Simon Hausmann <simon.hausmann@nokia.com>
-
- [Qt] Fix build with ANGLE on platforms that provide EGL/GLESv2
- https://bugs.webkit.org/show_bug.cgi?id=95965
-
- Reviewed by Tor Arne Vestbø.
-
- Depend on ANGLE if necessary, due to the use WebCore types that pull in ANGLE
- headers (GraphicsContext3D.h in particular).
-
- * Target.pri:
-
-2012-09-06 Andras Becsi <andras.becsi@nokia.com>
-
- [WK2] Make [Qt]ViewportHandler cross platform
- https://bugs.webkit.org/show_bug.cgi?id=91257
-
- Reviewed by Kenneth Rohde Christiansen and Simon Hausmann.
-
- Since QtViewportHandler includes behaviour that is not platform
- specific together with hooks to the QtQuick API layer, a platform
- independent implementation would allow other ports to use the
- viewport controlling functionality provided.
-
- This patch removes QtViewportHandler and introduces a platform
- independent PageViewportController class that is responsible
- for handling requests from the web process (eg. content size
- changes, viewport attributes changes and scroll position requests).
- Requests from the web process are acted on by a platform specific
- client class which implements the PageViewportControllerClient
- interface which provides hooks to the platform specific API layer.
-
- The PageViewportController is also responsible to notify the web
- process about changes in the viewport state (eg. viewport size,
- visible rect, content scale and movement trajectory).
- The client is responsible to delegate these UI changes to the
- PageViewportController.
-
- For now only PageViewportControllerClientQt implements the client
- interface besides providing other QQuick specific functionality
- (gestures, animations, etc).
-
- * Target.pri:
- * UIProcess/API/qt/qquickwebpage_p_p.h:
- * UIProcess/API/qt/qquickwebview.cpp:
- (QQuickWebViewPrivate::onComponentComplete):
- (QQuickWebViewFlickablePrivate::~QQuickWebViewFlickablePrivate):
- (QQuickWebViewFlickablePrivate::didChangeViewportProperties):
- (QQuickWebViewFlickablePrivate::updateViewportSize):
- (QQuickWebViewFlickablePrivate::pageDidRequestScroll):
- (QQuickWebViewFlickablePrivate::didChangeContentsSize):
- * UIProcess/API/qt/qquickwebview_p.h:
- (WebKit):
- * UIProcess/API/qt/qquickwebview_p_p.h:
- (WebKit):
- (QQuickWebViewPrivate::pageViewportControllerClient):
- (QQuickWebViewPrivate):
- (QQuickWebViewFlickablePrivate):
- * UIProcess/API/qt/qwebkittest.cpp:
- (QWebKitTest::viewport):
- (QWebKitTest::devicePixelRatio):
- (QWebKitTest::contentsScale):
- * UIProcess/PageViewportController.cpp: Added.
- (WebKit):
- (WebKit::bound):
- (WebKit::fuzzyCompare):
- (WebKit::boundPosition):
- (WebKit::ViewportUpdateDeferrer::ViewportUpdateDeferrer):
- (WebKit::ViewportUpdateDeferrer::~ViewportUpdateDeferrer):
- (WebKit::PageViewportController::PageViewportController):
- (WebKit::PageViewportController::convertFromViewport):
- (WebKit::PageViewportController::convertToViewport):
- (WebKit::PageViewportController::innerBoundedContentsScale):
- (WebKit::PageViewportController::outerBoundedContentsScale):
- (WebKit::PageViewportController::didChangeContentsSize):
- (WebKit::PageViewportController::pageDidRequestScroll):
- (WebKit::PageViewportController::setViewportSize):
- (WebKit::PageViewportController::setVisibleContentsRect):
- (WebKit::PageViewportController::syncVisibleContents):
- (WebKit::PageViewportController::didChangeViewportAttributes):
- (WebKit::PageViewportController::suspendContent):
- (WebKit::PageViewportController::resumeContent):
- (WebKit::PageViewportController::positionRangeForContentAtScale):
- * UIProcess/PageViewportController.h: Added.
- (WebCore):
- (WebKit):
- (ViewportUpdateDeferrer):
- (PageViewportController):
- (WebKit::PageViewportController::~PageViewportController):
- (WebKit::PageViewportController::hasSuspendedContent):
- (WebKit::PageViewportController::hadUserInteraction):
- (WebKit::PageViewportController::allowsUserScaling):
- (WebKit::PageViewportController::contentsLayoutSize):
- (WebKit::PageViewportController::devicePixelRatio):
- (WebKit::PageViewportController::minimumContentsScale):
- (WebKit::PageViewportController::maximumContentsScale):
- (WebKit::PageViewportController::setHadUserInteraction):
- * UIProcess/PageViewportControllerClient.h: Added.
- (WebKit):
- (PageViewportControllerClient):
- (WebKit::PageViewportControllerClient::PageViewportControllerClient):
- (WebKit::PageViewportControllerClient::~PageViewportControllerClient):
- * UIProcess/qt/PageViewportControllerClientQt.cpp: Added.
- (WebKit):
- (WebKit::PageViewportControllerClientQt::PageViewportControllerClientQt):
- (WebKit::PageViewportControllerClientQt::ScaleAnimation::updateCurrentValue):
- (WebKit::PageViewportControllerClientQt::~PageViewportControllerClientQt):
- (WebKit::PageViewportControllerClientQt::setContentRectVisiblePositionAtScale):
- (WebKit::PageViewportControllerClientQt::animateContentRectVisible):
- (WebKit::PageViewportControllerClientQt::flickMoveStarted):
- (WebKit::PageViewportControllerClientQt::flickMoveEnded):
- (WebKit::PageViewportControllerClientQt::pageItemPositionChanged):
- (WebKit::PageViewportControllerClientQt::scaleAnimationStateChanged):
- (WebKit::PageViewportControllerClientQt::touchBegin):
- (WebKit::PageViewportControllerClientQt::touchEnd):
- (WebKit::PageViewportControllerClientQt::focusEditableArea):
- (WebKit::PageViewportControllerClientQt::zoomToAreaGestureEnded):
- (WebKit::PageViewportControllerClientQt::nearestValidVisibleContentsRect):
- (WebKit::PageViewportControllerClientQt::setContentsPosition):
- (WebKit::PageViewportControllerClientQt::setContentsScale):
- (WebKit::PageViewportControllerClientQt::setContentsRectToNearestValidBounds):
- (WebKit::PageViewportControllerClientQt::didResumeContent):
- (WebKit::PageViewportControllerClientQt::allowsUserScaling):
- (WebKit::PageViewportControllerClientQt::devicePixelRatio):
- (WebKit::PageViewportControllerClientQt::minimumContentsScale):
- (WebKit::PageViewportControllerClientQt::maximumContentsScale):
- (WebKit::PageViewportControllerClientQt::currentContentsScale):
- (WebKit::PageViewportControllerClientQt::contentsLayoutSize):
- (WebKit::PageViewportControllerClientQt::scrollAnimationActive):
- (WebKit::PageViewportControllerClientQt::panGestureActive):
- (WebKit::PageViewportControllerClientQt::panGestureStarted):
- (WebKit::PageViewportControllerClientQt::panGestureRequestUpdate):
- (WebKit::PageViewportControllerClientQt::panGestureEnded):
- (WebKit::PageViewportControllerClientQt::panGestureCancelled):
- (WebKit::PageViewportControllerClientQt::scaleAnimationActive):
- (WebKit::PageViewportControllerClientQt::cancelScrollAnimation):
- (WebKit::PageViewportControllerClientQt::interruptScaleAnimation):
- (WebKit::PageViewportControllerClientQt::pinchGestureActive):
- (WebKit::PageViewportControllerClientQt::pinchGestureStarted):
- (WebKit::PageViewportControllerClientQt::pinchGestureRequestUpdate):
- (WebKit::PageViewportControllerClientQt::pinchGestureEnded):
- (WebKit::PageViewportControllerClientQt::pinchGestureCancelled):
- (WebKit::PageViewportControllerClientQt::visibleContentsRect):
- (WebKit::PageViewportControllerClientQt::didChangeContentsSize):
- (WebKit::PageViewportControllerClientQt::didChangeVisibleContents):
- (WebKit::PageViewportControllerClientQt::didChangeViewportAttributes):
- (WebKit::PageViewportControllerClientQt::updateViewportController):
- (WebKit::PageViewportControllerClientQt::scaleContent):
- (WebKit::PageViewportControllerClientQt::viewportScaleForRect):
- * UIProcess/qt/PageViewportControllerClientQt.h: Added.
- (WebKit):
- (PageViewportControllerClientQt):
- (WebKit::PageViewportControllerClientQt::setController):
- (ScaleAnimation):
- (WebKit::PageViewportControllerClientQt::ScaleAnimation::ScaleAnimation):
- (WebKit::PageViewportControllerClientQt::ScaleStackItem::ScaleStackItem):
- (ScaleStackItem):
- * UIProcess/qt/QtGestureRecognizer.cpp:
- (WebKit::QtGestureRecognizer::viewportController):
- * UIProcess/qt/QtGestureRecognizer.h:
- (WebKit):
* UIProcess/qt/QtPanGestureRecognizer.cpp:
(WebKit::QtPanGestureRecognizer::update):
(WebKit::QtPanGestureRecognizer::finish):
@@ -4724,1589 +1821,728 @@
(WebKit::QtPinchGestureRecognizer::update):
(WebKit::QtPinchGestureRecognizer::finish):
(WebKit::QtPinchGestureRecognizer::cancel):
- * UIProcess/qt/QtViewportHandler.cpp: Removed.
- * UIProcess/qt/QtWebPageEventHandler.cpp:
- (WebKit::QtWebPageEventHandler::QtWebPageEventHandler):
- (WebKit::QtWebPageEventHandler::setViewportController):
- (WebKit::QtWebPageEventHandler::inputPanelVisibleChanged):
- (WebKit::QtWebPageEventHandler::handleInputEvent):
- (WebKit::QtWebPageEventHandler::doneWithTouchEvent):
- (WebKit::QtWebPageEventHandler::didFindZoomableArea):
- * UIProcess/qt/QtWebPageEventHandler.h:
- (WebKit):
- (QtWebPageEventHandler):
- (WebKit::QtWebPageEventHandler::viewportController):
-
-2012-09-06 Ryuan Choi <ryuan.choi@samsung.com>
-
- [EFL][WK2] WebMemorySampler.cpp is included twice.
- https://bugs.webkit.org/show_bug.cgi?id=95910
-
- Reviewed by Kentaro Hara.
-
- Now WebMemorySampler.cpp is in CMakeLists.txt and PlatformEfl.cmake.
- * PlatformEfl.cmake: Removed WebMemorySampler.cpp from source lists.
+2012-10-10 Carlos Garcia Campos <cgarcia@igalia.com>
-2012-09-05 Ryuan Choi <ryuan.choi@samsung.com>
+ [GTK] Test /webkit2/WebKitWebView/history-cache asserts in debug bot
+ https://bugs.webkit.org/show_bug.cgi?id=98731
- [EFL][WK2] Implement missing feature to support <select> tag
- https://bugs.webkit.org/show_bug.cgi?id=95708
+ Reviewed by Martin Robinson.
- Reviewed by Gyuyoung Kim.
+ The problem is in the test itself that is using
+ SingleResourceLoadTest class to load a multiresource document.
- Added missing APIs for select tag.
-
- This patch provides all functionality of current WebPopupItem to applications.
-
- * UIProcess/API/efl/ewk_popup_menu_item.cpp:
- (_Ewk_Popup_Menu_Item):
- (_Ewk_Popup_Menu_Item::_Ewk_Popup_Menu_Item):
- (ewk_popup_menu_item_new):
- (ewk_popup_menu_item_text_direction_get):
- (ewk_popup_menu_item_text_direction_override_get):
- (ewk_popup_menu_item_tooltip_get):
- (ewk_popup_menu_item_accessibility_text_get):
- (ewk_popup_menu_item_enabled_get):
- (ewk_popup_menu_item_is_label_get):
- (ewk_popup_menu_item_selected_get):
- * UIProcess/API/efl/ewk_popup_menu_item.h:
- * UIProcess/API/efl/ewk_popup_menu_item_private.h:
- * UIProcess/API/efl/ewk_view.cpp:
- (ewk_view_popup_menu_request):
- * UIProcess/API/efl/tests/test_ewk2_view.cpp:
- (checkBasicPopupMenuItem):
- (showPopupMenu): Updated test case to cover new APIs.
- (TEST_F):
+ * UIProcess/API/gtk/tests/TestResources.cpp:
+ (testWebViewResourcesHistoryCache): Load only single resource
+ documents and check also that the main resource given is the
+ expected one.
+ (serverCallback): Add another single resource document.
-2012-09-05 Christophe Dumez <christophe.dumez@intel.com>
+2012-10-10 Christophe Dumez <christophe.dumez@intel.com>
- [EFL][WK2] Provide implementation for WebProcess functions
- https://bugs.webkit.org/show_bug.cgi?id=95857
+ [WK2][SOUP] ResourceError.isCancellation() is not carried over IPC
+ https://bugs.webkit.org/show_bug.cgi?id=98882
Reviewed by Kenneth Rohde Christiansen.
- Rename WebProcessGtk to WebProcessSoup and reuse it in
- EFL port since all the code is soup-related. We now
- have a proper implementation for the WebProcess
- platform methods.
-
- * GNUmakefile.list.am:
- * PlatformEfl.cmake:
- * WebProcess/efl/WebProcessEfl.cpp: Removed.
- * WebProcess/efl/WebProcessMainEfl.cpp:
- (WebKit::WebProcessMainEfl): Enable soup cache for the soup session similarly to GTK port.
- * WebProcess/soup/WebProcessSoup.cpp: Renamed from Source/WebKit2/WebProcess/gtk/WebProcessGtk.cpp.
- (WebKit):
- (WebKit::getCacheDiskFreeSize):
- (WebKit::getMemorySize):
- (WebKit::WebProcess::platformSetCacheModel):
- (WebKit::WebProcess::platformClearResourceCaches):
- (WebKit::buildAcceptLanguages):
- (WebKit::setSoupSessionAcceptLanguage):
- (WebKit::languageChanged):
- (WebKit::WebProcess::platformInitializeWebProcess):
- (WebKit::WebProcess::platformTerminate):
-
-2012-09-05 Benjamin Poulain <bpoulain@apple.com>
-
- More fixes for String::operator+=() on Mac
- https://bugs.webkit.org/show_bug.cgi?id=95880
+ Properly serialize / deserialize ResourceError.isCancellation
+ boolean so that it can be used in UIProcess.
- Reviewed by Adam Barth.
-
- * UIProcess/WebInspectorProxy.cpp:
- (WebKit::WebInspectorProxy::createInspectorPage): This is a legitimate use of append(),
- there is no other concatenation outside that branch.
- * WebProcess/Plugins/Netscape/NetscapeBrowserFuncs.cpp:
- (WebKit::parseRFC822HeaderFields): Use string operators instead of +=.
- * WebProcess/Plugins/Netscape/NetscapePlugin.cpp:
- (WebKit::NetscapePlugin::userAgent): Another legitimate use of append().
-
-2012-09-05 Alexey Proskuryakov <ap@apple.com>
-
- [WK2] Make visited link tracking work in multi-process mode
- https://bugs.webkit.org/show_bug.cgi?id=95869
-
- Reviewed by Dan Bernstein.
-
- * UIProcess/VisitedLinkProvider.h:
- * UIProcess/VisitedLinkProvider.cpp:
- (WebKit::VisitedLinkProvider::VisitedLinkProvider): m_webProcessHasVisitedLinkState
- was making no sense in multi-process world, so it was let go.
- (WebKit::VisitedLinkProvider::processDidFinishLaunching): Track new processes.
- (WebKit::VisitedLinkProvider::processDidClose): Clean up pointers that are going
- to become stale.
- (WebKit::VisitedLinkProvider::pendingVisitedLinksTimerFired): Added comments. Fixed
- a bug where we would churn table size in some cases. Added debug logging in failure
- case. Re-implemented messaging code to work with multiple web processes.
-
- * UIProcess/WebContext.cpp:
- (WebKit::WebContext::processDidFinishLaunching): Pass process proxy pointer to
- m_visitedLinkProvider, as it now needs to track processes.
- (WebKit::WebContext::disconnectProcess): Ditto. Also re-enabled visited link provider
- cleanup in multi-process mode.
-
-2012-09-05 Brady Eidson <beidson@apple.com>
+ * Shared/soup/WebCoreArgumentCodersSoup.cpp:
+ (CoreIPC::::encode):
+ (CoreIPC::::decode):
- Frequent crashes in PluginView::scriptObject under runtimeObjectCustomGetOwnPropertySlot
- <rdar://problem/12142226> and https://bugs.webkit.org/show_bug.cgi?id=95026
+2012-10-10 Jinwoo Song <jinwoo7.song@samsung.com>
- Patch partially by Andras Becsi <andras.becsi@nokia.com>
+ [EFL][WK2] Add APIs to get/set the DNS prefetching
+ https://bugs.webkit.org/show_bug.cgi?id=98790
- Reviewed by Andy Estes.
+ Reviewed by Laszlo Gombos.
- If a plug-in fails to initialize then the m_plugin pointer is cleared out.
- When accessing the script object it is appropriate to unconditionally null check m_plugin.
+ Add setting APIs for DNS prefetching and a unit test.
- * WebProcess/Plugins/PluginView.cpp:
- (WebKit::PluginView::scriptObject): Null check m_plugin before trying to use it.
+ * UIProcess/API/efl/ewk_settings.cpp:
+ (ewk_settings_DNS_prefetching_enabled_set):
+ (ewk_settings_DNS_prefetching_enabled_get):
+ * UIProcess/API/efl/ewk_settings.h:
+ * UIProcess/API/efl/tests/test_ewk2_settings.cpp:
+ (TEST_F):
-2012-09-05 Christophe Dumez <christophe.dumez@intel.com>
+2012-10-09 Jocelyn Turcotte <jocelyn.turcotte@digia.com>
- [EFL][WK2] Provide implementation for WebFrameNetworkingContext
- https://bugs.webkit.org/show_bug.cgi?id=95826
+ [Qt][WK2] REGRESSION(r130629): It made touchadjustment/focusout-on-touch.html fai1
+ https://bugs.webkit.org/show_bug.cgi?id=98642
Reviewed by Kenneth Rohde Christiansen.
- Remove EFL-specific and empty implementation for WebFrameNetworkingContext
- and use the existing soup implementation instead.
-
- * PlatformEfl.cmake:
- * WebProcess/WebCoreSupport/efl/WebFrameNetworkingContext.h: Removed.
-
-2012-09-05 Kaustubh Atrawalkar <kaustubh@motorola.com>
-
- [DRT] LTC:: Move printing related APIs from LayoutTestController to Internals
- https://bugs.webkit.org/show_bug.cgi?id=92735
-
- Reviewed by Hajime Morita.
-
- Move numberOfPages, pageProperty & pageSizeAndMarginsInPixels in Internals and remove duplicated code from DumprenderTree & WebkitTestRunner.
- Add symbols for Mac Win builds for corresponding newly added APIs.
-
- * win/WebKit2.def:
- * win/WebKit2CFLite.def:
-
-2012-09-05 Balazs Kelemen <kbalazs@webkit.org>
-
- [Qt] QRawWebViewPrivate does not initialize some members
- https://bugs.webkit.org/show_bug.cgi?id=95709
-
- Reviewed by Luiz Agostini.
-
- Don't miss initializing the bool flags.
-
- * UIProcess/API/qt/raw/qrawwebview.cpp:
- (QRawWebViewPrivate::QRawWebViewPrivate):
-
-2012-09-04 Kangil Han <kangil.han@samsung.com>
-
- [WK2] Use explicit constructor in InjectedBundle.
- https://bugs.webkit.org/show_bug.cgi?id=95746
-
- Reviewed by Sam Weinig.
-
- Added explicit keyword in constructor of InjectedBundle in order to avoid implicit type conversion.
-
- * WebProcess/InjectedBundle/InjectedBundle.h:
- (InjectedBundle):
-
-2012-09-03 Sam Weinig <sam@webkit.org>
-
- Part 1 of removing PlatformString.h, move remaining functions to new homes
- https://bugs.webkit.org/show_bug.cgi?id=95702
-
- Reviewed by Beth Dakin.
-
- * UIProcess/WebPageProxy.h:
- Forward declare SharedBuffer.
+ There was an early return that would prevent gesture recognition if no PageViewportController
+ has been set on QtWebPageEventHandler. The gesture recognizer are also used to send
+ GestureEvents to WebCore which this layout test is using.
-2012-09-04 Jeffrey Pfau <jpfau@apple.com>
-
- Make plugins respect third-party storage blocking setting
- https://bugs.webkit.org/show_bug.cgi?id=94888
-
- Reviewed by Brady Eidson.
-
- Plugins that are in a third-party context should be put into private browsing mode so their storage is temporary.
-
- * WebProcess/Plugins/PluginView.cpp:
- (WebKit::PluginView::isPrivateBrowsingEnabled): Put the plugin into private browsing mode if it is in a third-party context.
- (WebKit::PluginView::privateBrowsingStateChanged): Make sure a plugin doesn't leave private browsing mode if it's in a third-party context.
-
-2012-09-04 Pekka Vuorela <pvuorela@iki.fi>
-
- [Qt] Remove use of deprecated QInputMethod method
- https://bugs.webkit.org/show_bug.cgi?id=95741
-
- Reviewed by Simon Hausmann.
-
- Adapt from deprecated QInputMethod::visible() to isVisible().
+ Make sure that the gesture recognition is done even when no PageViewportController is present.
* UIProcess/qt/QtWebPageEventHandler.cpp:
- (WebKit::setInputPanelVisible):
- (WebKit::QtWebPageEventHandler::inputPanelVisibleChanged):
-
-2012-09-04 Allan Sandfeld Jensen <allan.jensen@nokia.com>
-
- Allow child-frame content in hit-tests.
- https://bugs.webkit.org/show_bug.cgi?id=95204
-
- Reviewed by Antonio Gomes.
-
- Update symbols for the Windows build-system.
-
- * win/WebKit2.def:
- * win/WebKit2CFLite.def:
-
-2012-09-04 Ryuan Choi <ryuan.choi@samsung.com>
-
- [EFL] Drop default theme concept
- https://bugs.webkit.org/show_bug.cgi?id=94778
-
- Reviewed by Gyuyoung Kim.
-
- * PlatformEfl.cmake: Removed DEFAULT_THEME_PATH definitions.
- * UIProcess/API/efl/ewk_view.cpp:
- (_ewk_view_initialize): Removed default theme concept.
- * UIProcess/API/efl/ewk_view.h:
- Updated doxygen document not to mention default theme.
-
-2012-09-03 Kangil Han <kangil.han@samsung.com>
-
- [WK2][WTR] Implement WebKitEnableCaretBrowsing attribute in testRunner.overridePreference
- https://bugs.webkit.org/show_bug.cgi?id=95576
-
- Reviewed by Maciej Stachowiak.
-
- Added a line of macro to implement WebKitEnableCaretBrowsing attribute in testRunner.overridePreference
+ (WebKit::QtWebPageEventHandler::handleInputEvent):
+ (WebKit::QtWebPageEventHandler::doneWithTouchEvent):
- * WebProcess/InjectedBundle/InjectedBundle.cpp:
- (WebKit::InjectedBundle::overrideBoolPreferenceForTestRunner):
+2012-10-10 Zeno Albisser <zeno@webkit.org>
-2012-09-03 Allan Sandfeld Jensen <allan.jensen@nokia.com>
+ [Qt] ProcessLauncherQt should use QStringLiteral for serviceName.
+ https://bugs.webkit.org/show_bug.cgi?id=98398
- [Qt] Not all activated elements highlighted, but some frames are
- https://bugs.webkit.org/show_bug.cgi?id=95683
+ QString(const char*) is deprecated, we should use QStringLiteral instead.
Reviewed by Kenneth Rohde Christiansen.
- Use the new function Node::willRespondToMouseClickEvents to better determine if the element
- can be tap-activated and avoid documents and frames completely.
-
- * WebProcess/WebPage/WebPage.cpp:
- (WebKit::WebPage::highlightPotentialActivation):
+ * UIProcess/Launcher/qt/ProcessLauncherQt.cpp:
+ (WebKit::ProcessLauncher::launchProcess):
-2012-09-03 Eunmi Lee <eunmi15.lee@samsung.com>
+2012-10-10 Mikhail Pozdnyakov <mikhail.pozdnyakov@intel.com>
- [EFL][WK2] Add ewk_settings.
- https://bugs.webkit.org/show_bug.cgi?id=91206
+ [EFL][WK2] Add History callbacks API
+ https://bugs.webkit.org/show_bug.cgi?id=98594
- Reviewed by Gyuyoung Kim.
+ Reviewed by Kenneth Rohde Christiansen.
- Add the ewk_settings which wraps the WKPreferencesRef.
- The ewk_settings will be created by the ewk_view and it will be
- destroyed when the ewk_view is destroyed. I make each view to have
- its own group to make one ewk_settings sets preferences only for
- one ewk_view.
- The application can get the ewk_settings from ewk_view using
- ewk_view_settings_get() API.
+ Added History callbacks API to Ewk Context. Added unit tests.
+ * PlatformEfl.cmake:
* UIProcess/API/efl/EWebKit2.h:
- * UIProcess/API/efl/ewk_settings.cpp: Added.
- (ewk_settings_enable_scripts_set):
- (ewk_settings_enable_scripts_get):
- (ewk_settings_auto_load_images_set):
- (ewk_settings_auto_load_images_get):
- * UIProcess/API/efl/ewk_settings.h: Added.
- * UIProcess/API/efl/ewk_settings_private.h: Added.
- (_Ewk_Settings):
- (_Ewk_Settings::_Ewk_Settings):
- * UIProcess/API/efl/ewk_view.cpp:
- (_Ewk_View_Private_Data):
+ * UIProcess/API/efl/ewk_context.cpp:
+ (_Ewk_Context):
+ (_Ewk_Context::_Ewk_Context):
+ (ewk_context_history_callbacks_set): New public function which lets the client to set History callbacks.
+ (ewk_context_history_client_get):
+ (ewk_context_add_visited_link): New public function to mark a URL as visited link.
+ * UIProcess/API/efl/ewk_context.h:
+ * UIProcess/API/efl/ewk_context_history_client.cpp: Added.
+ (getEwkHistoryDelegate):
+ (didNavigateWithNavigationData):
+ (didPerformClientRedirect):
+ (didPerformServerRedirect):
+ (didUpdateHistoryTitle):
+ (populateVisitedLinks):
+ (ewk_context_history_client_attach):
+ * UIProcess/API/efl/ewk_context_history_client_private.h: Added.
+ * UIProcess/API/efl/ewk_context_private.h:
+ * UIProcess/API/efl/ewk_navigation_data.cpp: Added.
+ (_Ewk_Navigation_Data):
+ (_Ewk_Navigation_Data::_Ewk_Navigation_Data):
+ (_Ewk_Navigation_Data::~_Ewk_Navigation_Data):
+ (ewk_navigation_data_ref):
+ (ewk_navigation_data_unref):
+ (ewk_navigation_data_title_get):
+ (ewk_navigation_data_original_request_get):
+ (ewk_navigation_data_url_get):
+ (ewk_navigation_data_new):
+ * UIProcess/API/efl/ewk_navigation_data.h: Added.
+ * UIProcess/API/efl/ewk_navigation_data_private.h: Added.
+ * UIProcess/API/efl/ewk_view.cpp:
+ (addToPageViewMap):
+ (removeFromPageViewMap):
+ (_ewk_view_smart_del):
(_ewk_view_initialize):
- (ewk_view_settings_get):
- * UIProcess/API/efl/ewk_view.h:
- * UIProcess/API/efl/tests/test_ewk2_settings.cpp: Added.
- (TEST_F):
- * UIProcess/API/efl/tests/test_ewk2_view.cpp:
+ (ewk_view_from_page_get):
+ * UIProcess/API/efl/ewk_view_private.h:
+ * UIProcess/API/efl/tests/test_ewk2_context_history_delegate.cpp: Added.
+ (httpServer):
+ (navigateWithNavigationData):
+ (performClientRedirect):
+ (performServerRedirect):
+ (updateHistoryTitle):
+ (populateVisitedLinks):
+ (onLoadFinishedForRedirection):
+ (serverCallbackRedirection):
(TEST_F):
-2012-09-03 Allan Sandfeld Jensen <allan.jensen@nokia.com>
+2012-10-09 Byungwoo Lee <bw80.lee@samsung.com>
- Wheel-events fails temporarily after reload
- https://bugs.webkit.org/show_bug.cgi?id=94934
-
- Reviewed by Kenneth Rohde Christiansen.
-
- Set fixed visible content rect using visibleContentBounds instead of WebPage::size. Otherwise the
- content rect will be incorrectly set to the entire document size, when resizesToContents is active.
-
- Test: UIProcess/API/qt/tests/qmltests/WebView/tst_wheelEventHandling.qml
-
- * UIProcess/API/qt/tests/qmltests/WebView/tst_wheelEventHandling.qml:
- * WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
- (WebKit::WebFrameLoaderClient::transitionToCommittedForNewPage):
-
-2012-09-03 Jinwoo Song <jinwoo7.song@samsung.com>
-
- [EFL] Use WebKitVersion.h to get version information
- https://bugs.webkit.org/show_bug.cgi?id=95669
+ [EFL][WK2] Change parameter and return type of loadUrlSync().
+ https://bugs.webkit.org/show_bug.cgi?id=97920
Reviewed by Gyuyoung Kim.
- Use WEBKIT_MAJOR_VERSION and WEBKIT_MINOR_VERSION
- in the WebKitVersion.h
-
- * UIProcess/efl/WebPageProxyEfl.cpp:
- (WebKit::WebPageProxy::standardUserAgent):
+ loadUrlSync() uses waitUntilLoadFinished() internally, and it has
+ a parameter and return value for timeout.
+ To set and check timeout, loadUrlSync() should have those.
-2012-09-03 Christophe Dumez <christophe.dumez@intel.com>
+ A parameter for timeout interval is added to loadUrlSync() and it
+ returns the result of waitUntilLoadFinished() for checking timeout.
- [EFL][WK2] Skip EWK2UnitTestBase.ewk_cookie_manager_permanent_storage API test
- https://bugs.webkit.org/show_bug.cgi?id=95671
-
- Reviewed by Kenneth Rohde Christiansen.
-
- Skip EWK2UnitTestBase.ewk_cookie_manager_permanent_storage
- API test since it is flaky on the bots.
+ And I added codes to check the result of all the LoadUrlSync()
+ function calls with ASSERT_TRUE() macro.
+ * UIProcess/API/efl/tests/UnitTestUtils/EWK2UnitTestBase.cpp:
+ (EWK2UnitTest::EWK2UnitTestBase::loadUrlSync):
+ * UIProcess/API/efl/tests/UnitTestUtils/EWK2UnitTestBase.h:
+ (EWK2UnitTestBase):
+ * UIProcess/API/efl/tests/test_ewk2_back_forward_list.cpp:
+ (TEST_F):
+ * UIProcess/API/efl/tests/test_ewk2_context.cpp:
+ (TEST_F):
* UIProcess/API/efl/tests/test_ewk2_cookie_manager.cpp:
(TEST_F):
+ * UIProcess/API/efl/tests/test_ewk2_intents.cpp:
+ (TEST_F):
+ * UIProcess/API/efl/tests/test_ewk2_view.cpp:
+ (TEST_F):
-2012-09-02 Kenichi Ishibashi <bashi@chromium.org>
-
- WK2: Build failure on SnowLeopard after r127384
- https://bugs.webkit.org/show_bug.cgi?id=95665
-
- Reviewed by Dan Bernstein.
-
- Add SandboxExtension::consumePermanently(const Handle&) for !ENABLE(WEB_PROCESS_SANDBOX) to fix link error.
-
- * Shared/SandboxExtension.h:
- (WebKit::SandboxExtension::consumePermanently):
-
-2012-09-02 Ryuan Choi <ryuan.choi@samsung.com>
-
- [EFL][WK2] Keep activePopupMenu to call valueChangedForPopupMenu() outside showPopupMenu()
- https://bugs.webkit.org/show_bug.cgi?id=95355
-
- Reviewed by Gyuyoung Kim.
-
- Efl does not have a proper way to support nested loop so that applications
- may change value after showPopupMenu() is finished.
-
- * UIProcess/API/efl/tests/test_ewk2_view.cpp: Improved test case to cover this bug.
- (selectItemAfterDelayed):
- (showPopupMenu):
- * UIProcess/WebPageProxy.cpp:
- (WebKit::WebPageProxy::showPopupMenu):
- Guard with !PLATFORM(EFL) to keep the activePopupMenu valid to call valueChangedForPopupMenu
- outside showPopupMenu().
-
-2012-09-02 Byungwoo Lee <bw80.lee@gmail.com>
+2012-10-09 Byungwoo Lee <bw80.lee@samsung.com>
- [EFL] Add missing semicolon at the end of some lines.
- https://bugs.webkit.org/show_bug.cgi?id=95640
+ [EFL][WK2] Move timeout callback to the CallbackDataTimer class.
+ https://bugs.webkit.org/show_bug.cgi?id=97861
Reviewed by Gyuyoung Kim.
- EWK_VIEW_PRIV_GET_OR_RETURN macro and other related macro can be used
- without semicolon, because it ends with a semicolon or complete block.
- This can make a human mistake about missing semicolon.
-
- Fixed the macros to require semicolon, and added missing semicolons.
-
- * UIProcess/API/efl/ewk_view.cpp:
- (_ewk_view_smart_focus_in):
- (_ewk_view_smart_focus_out):
- (_ewk_view_smart_mouse_wheel):
- (_ewk_view_smart_mouse_down):
- (_ewk_view_smart_mouse_up):
- (_ewk_view_smart_mouse_move):
- (_ewk_view_smart_key_down):
- (_ewk_view_smart_key_up):
- (_ewk_view_initialize):
-
-2012-09-01 Sam Weinig <sam@webkit.org>
-
- Remove unused member variable from WebProcess.
-
- Rubber-stamped by Dan Bernstein.
-
- * WebProcess/WebProcess.h:
- (WebProcess):
- Remove m_applicationCachePathExtension.
-
-2012-09-01 Sam Weinig <sam@webkit.org>
-
- Use dynamic sandbox extension rather than sandbox parameters for paths provided by the UIProcess
- https://bugs.webkit.org/show_bug.cgi?id=95651
-
- Reviewed by Dan Bernstein.
-
- This is the first step to not relying on the initialization message to initialize
- the sandbox.
-
- * Shared/SandboxExtension.h:
- (SandboxExtension):
- * Shared/mac/SandboxExtensionMac.mm:
- (WebKit::SandboxExtension::consumePermanently):
- Add static version of SandboxExtension::consumePermanently which takes a
- SandboxExtension::Handle. There is no reason to create a SandboxExtension
- just to consume it forever.
-
- * Shared/WebProcessCreationParameters.cpp:
- (WebKit::WebProcessCreationParameters::encode):
- (WebKit::WebProcessCreationParameters::decode):
- * Shared/WebProcessCreationParameters.h:
- (WebProcessCreationParameters):
- Add SandboxExtension::Handles for paths we need access to, and remove
- webInspectorBaseDirectory, which is unused.
-
- * UIProcess/WebContext.cpp:
- (WebKit::WebContext::createNewWebProcess):
- * UIProcess/mac/WebContextMac.mm:
- (WebKit::WebContext::platformInitializeWebProcess):
- Create SandboxExtension::Handles for paths we need access to, and move
- getting the presenterApplicationPid to platformInitializeWebProcess, since
- it is Mac only.
-
- * WebProcess/WebProcess.cpp:
- (WebKit::WebProcess::initializeWebProcess):
- Move setting the presenterApplicationPid to platformInitializeWebProcess.
-
- * WebProcess/mac/WebProcessMac.mm:
- (WebKit::initializeSandbox):
- (WebKit::WebProcess::platformInitializeWebProcess):
- Replace the use of sandbox parameters for opening access for necessary paths
- with permanent consumption of sandbox extensions.
-
- * WebProcess/com.apple.WebProcess.sb.in:
- Remove sandbox rules that are now handled via extensions.
-
-2012-08-31 Byungwoo Lee <bw80.lee@samsung.com>
+ Timeout callbacks for waitUntil{LoadFinished,TitleChanged,URIChanged}
+ can be moved to the CallbackDataTimer class.
- Build warning : -Wformat on WebMemorySampler.cpp.
- https://bugs.webkit.org/show_bug.cgi?id=95550
+ Moved the callback implementation to the CallbackDataTimer class.
- Reviewed by Darin Adler.
-
- Fix build warning.
- Use String::number instead of String::format.
-
- * Shared/WebMemorySampler.cpp:
- (WebKit::WebMemorySampler::appendCurrentMemoryUsageToFile):
-
-2012-08-31 Alexey Proskuryakov <ap@apple.com>
+ * UIProcess/API/efl/tests/UnitTestUtils/EWK2UnitTestBase.cpp:
+ (EWK2UnitTest::CallbackDataTimer::CallbackDataTimer):
+ (CallbackDataTimer):
+ (EWK2UnitTest::CallbackDataTimer::timeOutCallback):
+ (EWK2UnitTest::CallbackDataExpectedValue::CallbackDataExpectedValue):
+ (EWK2UnitTest::EWK2UnitTestBase::waitUntilLoadFinished):
+ (EWK2UnitTest::EWK2UnitTestBase::waitUntilTitleChangedTo):
+ (EWK2UnitTest::EWK2UnitTestBase::waitUntilURIChangedTo):
- [WK2] Use initial process in multi-process mode, too
- https://bugs.webkit.org/show_bug.cgi?id=95612
+2012-10-09 Jian Li <jianli@chromium.org>
- Reviewed by Sam Weinig.
+ Update the CSS property used to support draggable regions.
+ https://bugs.webkit.org/show_bug.cgi?id=97156
- * UIProcess/WebContext.cpp:
- (WebKit::WebContext::WebContext):
- (WebKit::WebContext::warmInitialProcess):
- (WebKit::WebContext::disconnectProcess):
- (WebKit::WebContext::createWebPage):
- * UIProcess/WebContext.h:
- Added a boolean telling whether the last (normally, the only) process in m_processes
- is available for use in a new page.
+ Reviewed by Adam Barth.
-2012-08-31 Alexey Proskuryakov <ap@apple.com>
+ The CSS property to support draggable regions, guarded under
+ WIDGET_REGION is now disabled from Mac WebKit, in order not to cause
+ confusion with DASHBOARD_SUPPORT feature.
- [WK2] WebProcesses should not wait 60 seconds to close in multi-process mode
- https://bugs.webkit.org/show_bug.cgi?id=95616
+ Also update the code to use the new name annotatedRegions to work for
+ both features.
- Reviewed by Darin Adler.
+ * Configurations/FeatureDefines.xcconfig: Disable WIDGET_REGION feature.
+ * WebProcess/WebCoreSupport/WebChromeClient.cpp: Rename dashboardRegions to annotatedRegions.
+ (WebKit::WebChromeClient::annotatedRegionsChanged):
+ * WebProcess/WebCoreSupport/WebChromeClient.h: Rename dashboardRegions to annotatedRegions.
+ (WebChromeClient):
- * Shared/ChildProcess.cpp: (WebKit::ChildProcess::ChildProcess):
- * Shared/ChildProcess.h: (WebKit::ChildProcess::setTerminationTimeout):
- Expose a setter for timeout instead of taking it at construction time. If a derived
- class doesn't call the setter, default to 0.
+2012-10-09 Sheriff Bot <webkit.review.bot@gmail.com>
- * PluginProcess/PluginProcess.cpp:
- (WebKit::PluginProcess::PluginProcess):
- (WebKit::PluginProcess::initializePluginProcess):
- Use timeout from initialization message.
+ Unreviewed, rolling out r130811 and r130821.
+ http://trac.webkit.org/changeset/130811
+ http://trac.webkit.org/changeset/130821
+ https://bugs.webkit.org/show_bug.cgi?id=98831
- * WebProcess/WebProcess.cpp:
- (WebKit::WebProcess::WebProcess):
- (WebKit::WebProcess::initializeWebProcess):
- Ditto.
+ Broke date-suggestion-picker-appearance-with-scroll-bar.html
+ (Requested by abarth|gardening on #webkit).
- * Shared/Plugins/PluginProcessCreationParameters.cpp:
- (WebKit::PluginProcessCreationParameters::encode):
- (WebKit::PluginProcessCreationParameters::decode):
- * Shared/Plugins/PluginProcessCreationParameters.h:
- * Shared/WebProcessCreationParameters.cpp:
- (WebKit::WebProcessCreationParameters::encode):
- (WebKit::WebProcessCreationParameters::decode):
- * Shared/WebProcessCreationParameters.h:
- Funnel timeout across process boundary.
+ * Shared/WebRenderObject.cpp:
+ (WebKit::WebRenderObject::WebRenderObject):
+ * WebProcess/FullScreen/WebFullScreenManager.cpp:
+ (WebKit::screenRectOfContents):
- * UIProcess/Plugins/PluginProcessProxy.cpp: (WebKit::PluginProcessProxy::didFinishLaunching):
- Pass timeout as initialization message after launch.
+2012-10-09 Jon Lee <jonlee@apple.com>
- * UIProcess/WebContext.cpp:
- (WebKit::WebContext::createNewWebProcess): Pass timeout as initialization message
- (unlike plugin process proxy, web process proxy doesn't wait, and relies on the message
- being queued).
- (WebKit::WebContext::disconnectProcess): Skip invalidating global managers when
- one process quits. We still need to do something, but running this code would just
- result in assertion failures any time a page was closed.
+ [WK2] Have plugins render offscreen to capture snapshot
+ https://bugs.webkit.org/show_bug.cgi?id=98326
+ <rdar://problem/12426658>
-2012-08-31 Brady Eidson <beidson@apple.com>
+ Reviewed by Simon Fraser.
- REGRESSION (r127252): incomplete repaint on Flash element after pinch to zoom
- <rdar://problem/12217897> and https://bugs.webkit.org/show_bug.cgi?id=95607
+ Keep the plugin rendering without compositing to easily grab the snapshot.
- Reviewed by Simon Fraser.
+ PluginView now has two variables referring to snapshots, but are unrelated. The timer
+ is used to capture a snapshot that acts as a poster for a plugin. The ShareableBitmap
+ variable m_snapshot is used whenever the plugin paints in software, to avoid side effects
+ should the plugin run JS during painting.
- * WebProcess/Plugins/PluginView.cpp:
- (WebKit::PluginView::viewGeometryDidChange): Only give the window coordinate clip rect a chance
- to override the boundsRect() if the page scale factor is 1.
+ * WebProcess/Plugins/PluginView.cpp:
+ (WebKit): Add a named constant for the time delay before a snapshot is taken.
+ (WebKit::PluginView::PluginView): Initialize a 3-second timer to get the snapshot.
+ (WebKit::PluginView::~PluginView): Refactor part of the destructor code out into
+ destroyPluginAndReset() for reuse.
+ (WebKit::PluginView::destroyPluginAndReset): Contains part of the destructor code.
+ In addition to destroying the plugin, the destructor cancels pending loads and streams.
+ (WebKit::PluginView::didInitializePlugin): If the plugin is in a state where it needs
+ to generate or display a poster, don't setup the compositing layer and start the timer.
+ (WebKit::PluginView::paint): Avoid painting if the plugin is not running.
+ (WebKit::PluginView::invalidateRect): Avoid painting if the plugin is not running.
+ (WebKit::PluginView::isAcceleratedCompositingEnabled): Don't enable accelerated compositing
+ until the plugin is running.
+ (WebKit::PluginView::pluginSnapshotTimerFired): When the timer fires, get a snapshot, generate
+ an Image that WebCore can render, and destroy the plugin.
+
+ Rename m_snapshot to m_transientPaintingSnapshot.
+ * WebProcess/Plugins/PluginView.h:
+ * WebProcess/Plugins/PluginView.cpp:
+ (WebKit::PluginView::paint):
+ (WebKit::PluginView::notifyWidget):
+ (WebKit::PluginView::pluginSnapshotTimerFired):
-2012-08-31 Tony Chang <tony@chromium.org>
+2012-10-09 Rik Cabanier <cabanier@adobe.com>
- Remove ENABLE_CSS3_FLEXBOX compile time flag
- https://bugs.webkit.org/show_bug.cgi?id=95382
+ Add missing compile flag for compositing
+ https://bugs.webkit.org/show_bug.cgi?id=98681
- Reviewed by Ojan Vafai.
+ Reviewed by Dirk Schulze.
- Everyone is already enabling this by default and the spec has stablized.
+ This flag is needed in case there is a difference in API
+ when compositing is enabled
* Configurations/FeatureDefines.xcconfig:
-2012-08-31 Pratik Solanki <psolanki@apple.com>
-
- objc_msgSend and IMP should be cast appropriately before using
- https://bugs.webkit.org/show_bug.cgi?id=95242
-
- Reviewed by Benjamin Poulain.
-
- Follow on fix for Mac EWS - use objc-runtime.h instead of runtime.h so
- that it finds the declaration for objc_msgSend.
-
- * UIProcess/API/mac/PDFViewController.mm:
-
-2012-08-31 Jon Lee <jonlee@apple.com>
-
- [Tests] Add basic tests to http/tests/notifications
- https://bugs.webkit.org/show_bug.cgi?id=95493
- <rdar://problem/12209303>
-
- Reviewed by Alexey Proskuryakov.
-
- Simplify the passing of the permission policy to just a boolean instead of converting it
- back and forth from the NotificationClient::Permission enum.
-
- * WebProcess/InjectedBundle/API/c/WKBundlePrivate.h: Move the declaration to the section
- of functions that are TestRunner SPI.
- * WebProcess/InjectedBundle/InjectedBundle.cpp:
- (WebKit::InjectedBundle::setWebNotificationPermission): Use a boolean.
- * WebProcess/Notifications/NotificationPermissionRequestManager.cpp:
- (WebKit::NotificationPermissionRequestManager::setPermissionLevelForTesting):
- * WebProcess/Notifications/NotificationPermissionRequestManager.h:
- (NotificationPermissionRequestManager):
-
- * win/WebKit2.vcproj: Add WKNotificationPermissionRequest.{h,cpp}.
- * win/WebKit2Generated.make: Export WKNotificationPermissionRequest.h.
+2012-10-09 Sheriff Bot <webkit.review.bot@gmail.com>
-2012-08-31 Balazs Kelemen <kbalazs@webkit.org>
+ Unreviewed, rolling out r130680.
+ http://trac.webkit.org/changeset/130680
+ https://bugs.webkit.org/show_bug.cgi?id=98720
- [Qt] ASSERT(m_useFixedLayout) in WebPage when using QRawWebView without setting fixed layout
- https://bugs.webkit.org/show_bug.cgi?id=95557
+ this patch has a typo so was ineffective (Requested by
+ cabanier on #webkit).
- Reviewed by Noam Rosenthal.
-
- Let QRawWebView work with non-fixed layout size.
-
- * UIProcess/API/qt/raw/qrawwebview.cpp:
- (QRawWebView::setSize): Also put the member assigment into
- the point where the new size is ensured to be committed.
+ * Configurations/FeatureDefines.xcconfig:
-2012-08-31 Balazs Kelemen <kbalazs@webkit.org>
+2012-10-09 Raphael Kubo da Costa <raphael.kubo.da.costa@intel.com>
- [Qt] LayerTreeRenderer::callOnMainTread method name is misleading
- https://bugs.webkit.org/show_bug.cgi?id=95558
+ [EFL][WK2] Inform the PageProxy about visibility changes when the view is shown/hidden.
+ https://bugs.webkit.org/show_bug.cgi?id=98757
Reviewed by Kenneth Rohde Christiansen.
- Fix the typo in the function name so callers will really call this
- and not WTF::callOnMainThread. Renamed to dispatchOnMainThread to
- make it clear that these things are not the same.
-
- * UIProcess/CoordinatedGraphics/LayerTreeRenderer.cpp:
- (WebKit::LayerTreeRenderer::dispatchOnMainThread):
- (WebKit::LayerTreeRenderer::flushLayerChanges):
- (WebKit::LayerTreeRenderer::purgeGLResources):
- * UIProcess/CoordinatedGraphics/LayerTreeRenderer.h:
- (LayerTreeRenderer):
-
-2012-08-31 Brady Eidson <beidson@apple.com>
-
- REGRESSION (127047): Crash in PluginProxy::windowVisibilityChanged when changing tabs
- <rdar://problem/12211180> and https://bugs.webkit.org/show_bug.cgi?id=95515
-
- Reviewed by Dan Bernstein.
-
- Plug-ins created in background tabs don't get initialized until they first become visible,
- so telling them they are now invisible leads to messaging on behalf of an uninitialized plug-in.
-
- Many other methods related to visibility and focus only call through if the plug-in is initialized,
- so setWindowIsVisible should do the same.
+ SVN r130720 exposed a bug in our code: the PageProxy is not
+ notified when one calls evas_object_show() or evas_object_hide()
+ on the view, so the visibility it has when the WebPageProxy is
+ constructed remained set forever.
- * WebProcess/Plugins/PluginView.cpp:
- (WebKit::PluginView::setWindowIsVisible): Only tell initialized plug-ins of window visibility changes.
-
-2012-08-31 Milian Wolff <milian.wolff@kdab.com>
-
- [Qt] QNX does not support SOCK_SEQPACKET socket type for socketpair in ProcessLauncherQt
- https://bugs.webkit.org/show_bug.cgi?id=95553
-
- Reviewed by Simon Hausmann.
-
- Calling socketpair with SOCK_SEQPACKET socket type fails on QNX with an error 241 (EPROTOTYPE),
- as can be seen by the following debug output: "Creation of socket failed with errno: 241".
- A test app shows that SOCK_DGRAM works properly on QNX, thus use it instead of SOCK_SEQPACKET.
-
- * UIProcess/Launcher/qt/ProcessLauncherQt.cpp:
+ This made the ewk_context_vibration_client_callbacks_set unit test
+ start running forever, because WebPageProxy's constructor now sets
+ the page's visibility to hidden by the default for us, since it is
+ called from within ewk_view_smart_add() and before
+ evas_object_show().
-2012-08-30 Mark Hahnenberg <mhahnenberg@apple.com>
+ We now listen to the EVAS_CALLBACK_SHOW and EVAS_CALLBACK_HIDE
+ callbacks and update the WebPageProxy accordingly. Note that we
+ could not do this from the smart_show and smart_hide functions we
+ already had, since they are called before the object's actual
+ visibility is updated.
- ~JSNPObject should call invalidate() if it hasn't been called already
- https://bugs.webkit.org/show_bug.cgi?id=95497
-
- Reviewed by Geoffrey Garen.
-
- Finalization is no longer eager, just like destruction, so the original intent behind
- this ASSERT in ~JSNPObject is no longer relevant. Therefore, we can just call invalidate()
- ourselves in ~JSNPObject.
-
- * WebProcess/Plugins/Netscape/JSNPObject.cpp:
- (WebKit::JSNPObject::~JSNPObject):
+ * UIProcess/API/efl/ewk_view.cpp:
+ (_ewk_view_on_show):
+ (_ewk_view_on_hide):
+ (_ewk_view_smart_add):
-2012-08-30 Sam Weinig <sam@webkit.org>
+2012-10-09 Simon Pena <spena@igalia.com>
- Allow dynamic mach-lookup extensions in the WebProcess
- <rdar://problem/12207996>
+ [GTK] Add support for running JavaScript from GResources
+ https://bugs.webkit.org/show_bug.cgi?id=98488
- Reviewed by Gavin Barraclough.
+ Reviewed by Carlos Garcia Campos.
- Like we allow file read/write dynamic sandbox extensions, we should allow
- mach-lookup extensions.
+ GResources allow embedding certain resources, frequently used, in a "bundle"
+ which can be kept separated or stored in the binary. This patch adds
+ support for running JavaScript from GResources.
- * WebProcess/com.apple.WebProcess.sb.in:
+ For this, methods run_javascript_from_gresource and
+ run_javascript_from_gresource_finish are added, which load the resource
+ asynchronously and, when it is ready, run the JavaScript.
-2012-08-30 Geoffrey Garen <ggaren@apple.com>
+ * UIProcess/API/gtk/WebKitWebView.cpp: Include the new methods.
+ (resourcesStreamReadCallback):
+ (webkit_web_view_run_javascript_from_gresource):
+ (webkit_web_view_run_javascript_from_gresource_finish):
+ * UIProcess/API/gtk/WebKitWebView.h:
+ * UIProcess/API/gtk/docs/webkit2gtk-sections.txt: Include the new
+ methods in the documentation.
+ * UIProcess/API/gtk/tests/GNUmakefile.am: Add the test resources to the
+ build infrastructure.
+ * UIProcess/API/gtk/tests/TestMain.cpp: Register the resources in the tests,
+ so that they can be accessed in all of them.
+ (register_gresource):
+ (main):
+ * UIProcess/API/gtk/tests/TestWebKitWebView.cpp: Test the
+ run_javascript_from_gresource method.
+ (testWebViewRunJavaScript):
+ * UIProcess/API/gtk/tests/WebViewTest.cpp: Add a method for testing the
+ new run_javascript_from_gresource method.
+ (runJavaScriptFromGResourceReadyCallback):
+ (WebViewTest::runJavaScriptFromGResourceAndWaitUntilFinished):
+ * UIProcess/API/gtk/tests/WebViewTest.h:
+ * UIProcess/API/gtk/tests/resources/webkit2gtk-tests.gresource.xml: Added.
+ Resource bundle containing the resources.
+ * UIProcess/API/gtk/tests/resources/webkit2gtk-tests.test.js: Added.
+ Example JavaScript file to test the GResources support.
- Use one object instead of two for closures, eliminating ScopeChainNode
- https://bugs.webkit.org/show_bug.cgi?id=95501
- Reviewed by Filip Pizlo.
+2012-10-08 Kiran Muppala <cmuppala@apple.com>
- Mechanical changes to update for JSC interface change.
+ Throttle DOM timers on hidden pages.
+ https://bugs.webkit.org/show_bug.cgi?id=98474
-2012-08-30 JungJik Lee <jungjik.lee@samsung.com>
+ Reviewed by Maciej Stachowiak.
- [EFL][WK2] Add WebMemorySampler feature.
- https://bugs.webkit.org/show_bug.cgi?id=91214
+ Add HIDDEN_PAGE_DOM_TIMER_THROTTLING feature define. Use existing code of
+ PAGE_VISIBILITY_API to detect changes to page visibility state.
- Reviewed by Kenneth Rohde Christiansen.
+ * Configurations/FeatureDefines.xcconfig:
+ * UIProcess/WebPageProxy.cpp:
+ (WebKit::WebPageProxy::WebPageProxy):
+ Check visibility state on construction.
+ (WebKit::WebPageProxy::initializeWebPage):
+ Send initial visibility state message if HIDDEN_PAGE_DOM_TIMER_THROTTLING
+ is enabled or if PAGE_VISIBILITY_API is enabled.
+ (WebKit::WebPageProxy::viewStateDidChange):
+ When PAGE_VISIBILITY_API is not enabled, compare new visibility against
+ WebPageProxy::m_isVisible, to minimize number of messages sent.
+ Remove unnecessary second call to PageClient::isViewVisible for updating
+ visibility state.
- Add WebMemorySampler feature to EFL port. WebMemorySampler records memory usage of
- WebProcess and UI Process and also it records application memory status in real time.
- Included items on the result are JIT, JS heap, fastmalloc bytes and
- application memory info from /proc/process_id/statm.
+ * WebProcess/InjectedBundle/InjectedBundle.cpp:
+ (WebKit::InjectedBundle::setPageVisibilityState):
+ WebKitTestRunner uses this method to implement testRunner.setPageVisibility(),
+ hence enable it for testing hidden page timer throttling as well.
- * PlatformEfl.cmake:
- * Shared/linux/WebMemorySamplerLinux.cpp: Added.
+ * WebProcess/WebPage/WebPage.cpp:
(WebKit):
- (ApplicationMemoryStats):
- (WebKit::nextToken):
- (WebKit::appendKeyValuePair):
- (WebKit::sampleMemoryAllocatedForApplication):
- (WebKit::WebMemorySampler::processName):
- (WebKit::WebMemorySampler::sampleWebKit):
- (WebKit::WebMemorySampler::sendMemoryPressureEvent):
- * UIProcess/API/efl/ewk_context.cpp:
- (_Ewk_Context::_Ewk_Context):
-
-2012-08-30 Pratik Solanki <psolanki@apple.com>
-
- objc_msgSend and IMP should be cast appropriately before using
- https://bugs.webkit.org/show_bug.cgi?id=95242
-
- Reviewed by Benjamin Poulain.
+ (WebKit::WebPage::setVisibilityState):
+ Ensure Page::setVisibilityState is called either if PAGE_VISIBILITY_API is
+ enabled or if HIDDEN_PAGE_DOM_TIMER_THROTTLING is enabled.
- Use wtfObjcMsgSend and wtfCallIMP templates which do appropriate casts
- to a function pointer with right types when calling objc_msgSend and an
- IMP method directly.
-
- * UIProcess/API/mac/PDFViewController.mm:
- (WebKit::PDFViewScrollView_scrollWheel):
-
-2012-08-30 Benjamin Poulain <bpoulain@apple.com>
-
- Replace JSC::UString by WTF::String
- https://bugs.webkit.org/show_bug.cgi?id=95271
+ * WebProcess/WebPage/WebPage.h:
+ (WebPage):
+ * WebProcess/WebPage/WebPage.messages.in:
- Reviewed by Geoffrey Garen.
+2012-10-08 Simon Fraser <simon.fraser@apple.com>
- Update to code to switch from UString to String.
+ Try to fix Windows build by exporting Frame::layerTreeAsText().
- * WebProcess/Plugins/Netscape/JSNPMethod.cpp:
- (WebKit::JSNPMethod::finishCreation):
- * WebProcess/Plugins/Netscape/JSNPMethod.h:
- (WebKit::JSNPMethod::create):
- (JSNPMethod):
- * WebProcess/Plugins/Netscape/JSNPObject.cpp:
- (WebKit::npIdentifierFromIdentifier):
- * WebProcess/Plugins/Netscape/NPRuntimeObjectMap.cpp:
- (WebKit::NPRuntimeObjectMap::evaluate):
- (WebKit::NPRuntimeObjectMap::moveGlobalExceptionToExecState):
+ * win/WebKit2.def:
-2012-08-29 Mark Hahnenberg <mhahnenberg@apple.com>
+2012-10-08 Rik Cabanier <cabanier@adobe.com>
- JSNPObject doesn't always protect its data when calling into plugin code
- https://bugs.webkit.org/show_bug.cgi?id=95394
+ Add missing compile flag for compositing
+ https://bugs.webkit.org/show_bug.cgi?id=98681
- Reviewed by Brady Eidson.
+ Reviewed by Dirk Schulze.
- We need to use NPRuntimeObjectMap::PluginProtector when calling into plugin code since
- there's no telling what the plugin will do, including destroying itself.
+ This flag is needed in case there is a difference in API
+ when compositing is enabled
- * WebProcess/Plugins/Netscape/JSNPObject.cpp:
- (WebKit::JSNPObject::getOwnPropertySlot):
- (WebKit::JSNPObject::getOwnPropertyDescriptor):
+ * Configurations/FeatureDefines.xcconfig:
-2012-08-30 Mike Sierra <mike.sierra@nokia.com>
+2012-10-08 Christophe Dumez <christophe.dumez@intel.com>
- [QT][WK2] webview API doc
- https://bugs.webkit.org/show_bug.cgi?id=81701
+ [EFL][WK2] EWK2UnitTestBase.ewk_cookie_manager_accept_policy unit test is failing
+ https://bugs.webkit.org/show_bug.cgi?id=98663
- Reviewed by Simon Hausmann.
+ Reviewed by Laszlo Gombos.
- Various improvements and additions to the documentation of the QML WebView element.
+ EWK2UnitTestBase.ewk_cookie_manager_accept_policy unit test was
+ failing because the elements of a list were checked in a given
+ order but the list was not sorted beforehand.
- * UIProcess/API/qt/qquickwebview.cpp:
+ * UIProcess/API/efl/tests/test_ewk2_cookie_manager.cpp:
+ (sortHostNames):
+ (TEST_F):
-2012-08-29 Kangil Han <kangil.han@samsung.com>
+2012-10-08 Jinwoo Song <jinwoo7.song@samsung.com>
- [EFL][WK2] Replace PageClientImpl with ewk view in constructor of EflViewportHandler.
- https://bugs.webkit.org/show_bug.cgi?id=95408
+ [EFL][WK2] Avoid useless converting to WKPage
+ https://bugs.webkit.org/show_bug.cgi?id=98516
- Reviewed by Gyuyoung Kim.
+ Reviewed by Eric Seidel.
- To keep consistency of implementation, derived classes(from ewk view) should have view reference.
- From this, derived classes would have less interference from changes that would happen in port specific classes, i.e. PageClientImpl.
+ Use priv->pageProxy->findString() and priv->pageProxy->hideFindUI()
+ to avoid useless converting to WK.
- * UIProcess/API/efl/EflViewportHandler.cpp:
- (WebKit::EflViewportHandler::EflViewportHandler):
- (WebKit::EflViewportHandler::drawingArea):
- (WebKit):
- (WebKit::EflViewportHandler::updateViewportSize):
- * UIProcess/API/efl/EflViewportHandler.h:
- (WebKit::EflViewportHandler::create):
- (EflViewportHandler):
* UIProcess/API/efl/ewk_view.cpp:
- (_ewk_view_initialize):
-
-2012-08-29 Gyuyoung Kim <gyuyoung.kim@samsung.com>
-
- [WK2] Use ASCIILiteral hotness for DEFINE_STATIC_LOCAL string
- https://bugs.webkit.org/show_bug.cgi?id=95318
-
- Reviewed by Benjamin Poulain.
-
- As recommended by http://trac.webkit.org/wiki/EfficientStrings,
- WebKit2 needs to use ASCIILiteral for the string of DEFINE_STATIC_LOCAL.
-
- * Shared/WebError.cpp:
- (WebKit::WebError::webKitErrorDomain):
- * Shared/WebPreferencesStore.cpp:
- (WebPreferencesKey):
- * UIProcess/InspectorServer/WebInspectorServer.cpp:
- (WebKit::WebInspectorServer::didReceiveWebSocketUpgradeHTTPRequest):
- * UIProcess/InspectorServer/qt/WebInspectorServerQt.cpp:
- (WebKit::remoteInspectorPagePath):
- * UIProcess/WebDatabaseManagerProxy.cpp:
- (WebKit::WebDatabaseManagerProxy::originKey):
- (WebKit::WebDatabaseManagerProxy::originQuotaKey):
- (WebKit::WebDatabaseManagerProxy::originUsageKey):
- (WebKit::WebDatabaseManagerProxy::databaseDetailsKey):
- (WebKit::WebDatabaseManagerProxy::databaseDetailsNameKey):
- (WebKit::WebDatabaseManagerProxy::databaseDetailsDisplayNameKey):
- (WebKit::WebDatabaseManagerProxy::databaseDetailsExpectedUsageKey):
- (WebKit::WebDatabaseManagerProxy::databaseDetailsCurrentUsageKey):
- * UIProcess/WebPageProxy.cpp:
- (WebKit::WebPageProxy::executeEditCommand):
- * WebProcess/WebCoreSupport/WebEditorClient.cpp:
- (WebKit::WebEditorClient::didBeginEditing):
- (WebKit::WebEditorClient::respondToChangedContents):
- (WebKit::WebEditorClient::respondToChangedSelection):
- (WebKit::WebEditorClient::didEndEditing):
- * WebProcess/WebProcess.cpp:
- (WebKit::getWebCoreMemoryCacheStatistics):
-
-2012-08-29 Luciano Wolf <luciano.wolf@openbossa.org>
-
- [Qt][WK2] ApplicationCache LayoutTests failed
- https://bugs.webkit.org/show_bug.cgi?id=69541
-
- Reviewed by Kenneth Rohde Christiansen.
-
- Returns defaultDiskCacheDirectory when no cache directory was provided.
- It's used by setOfflineWebApplicationCacheEnabled method that won't work
- with an invalid cache directory.
-
- * UIProcess/qt/WebContextQt.cpp:
- (WebKit::WebContext::applicationCacheDirectory):
-
-2012-08-29 José Dapena Paz <jdapena@igalia.com>
-
- [Gtk] Process Gtk 3.4 smooth scroll events properly.
- https://bugs.webkit.org/show_bug.cgi?id=88070
-
- Gtk 3.3.18 added smooth scroll events, adding a new scroll direction that
- provides detailed delta information.
-
- Added GDK_SMOOTH_SCROLL_MASK to the events listened, and added
- code to process properly the new direction GDK_SCROLL_SMOOTH and
- its deltas.
-
- Reviewed by Martin Robinson.
-
- * Shared/gtk/WebEventFactory.cpp:
- (WebKit::WebEventFactory::createWebWheelEvent):
- * UIProcess/API/gtk/WebKitWebViewBase.cpp:
- (webkitWebViewBaseRealize):
-
-2012-08-29 Brady Eidson <beidson@apple.com>
-
- REGRESSION: Not sending NPP_SetWindow is causing Flash to not throttle itself
- <rdar://problem/12133021> and https://bugs.webkit.org/show_bug.cgi?id=95274
-
- Reviewed by Sam Weinig.
-
- * UIProcess/API/mac/WKView.mm:
- (-[WKView viewDidMoveToWindow]): Previously we'd only update window visibility when the window is hidden.
- Now we also update window visibility when the window is shown.
-
- * WebProcess/Plugins/Netscape/NetscapePlugin.cpp:
- (WebKit::NetscapePlugin::callSetWindowInvisible): Call set window with a manufactured empty clip rect to tell
- the plug-in that it is complete hidden.
- (WebKit):
- * WebProcess/Plugins/Netscape/NetscapePlugin.h:
- (NetscapePlugin):
- * WebProcess/Plugins/Netscape/mac/NetscapePluginMac.mm:
- (WebKit::NetscapePlugin::windowVisibilityChanged): Call "callSetWindow" or "callSetWindowInvisible" as appropriate.
-
- * WebProcess/Plugins/PluginView.cpp:
- (WebKit::PluginView::setWindowIsVisible): Tell the plugin that its visibility changed.
- (WebKit::PluginView::viewGeometryDidChange): Grab a clip rect that - although incorrect - at least is correct if
- the PluginView is completely hidden.
-
-2012-08-29 Jon Lee <jonlee@apple.com>
-
- Build patch for Qt
-
- * Target.pri: Missing WKMutableArray.cpp.
-
-2012-08-29 Jon Lee <jonlee@apple.com>
-
- Build patch for Qt.
-
- * Target.pri: Export WKArray and WKMutableArray for Qt.
-
-2012-08-29 Jon Lee <jonlee@apple.com>
-
- Added missing exports for Windows.
-
- * win/WebKit2Generated.make:
-
-2012-08-29 Jon Lee <jonlee@apple.com>
-
- Windows build fix.
-
- * win/WebKit2Generated.make: Export WKNotificationManager.h.
-
-2012-08-29 Jon Lee <jonlee@apple.com>
+ (ewk_view_text_find):
+ (ewk_view_text_find_highlight_clear):
- [WK2] Add SPI to retrieve internal IDs for web notifications
- https://bugs.webkit.org/show_bug.cgi?id=95100
- <rdar://problem/12180208>
+2012-10-08 Sudarsana Nagineni <sudarsana.nagineni@intel.com>
- Reviewed by Alexey Proskuryakov.
+ [WK2][WTR] WebKitTestRunner needs testRunner.dispatchPendingLoadRequests
+ https://bugs.webkit.org/show_bug.cgi?id=98638
- This is work toward providing Mac support for web notifications in DRT and WTR (77969).
+ Reviewed by Eric Seidel.
- Add function to retrieve the internal ID for a notification. This is needed by tests to support simulating
- a user click on a notification.
+ Add implementation for testRunner.dispatchPendingLoadRequests in
+ WebKitTestRunner.
- * DerivedSources.pri: Expose JSNotification.h as private header.
* WebProcess/InjectedBundle/API/c/WKBundle.cpp:
- (WKBundleGetWebNotificationID): Calls into notification manager to get internal ID.
- * WebProcess/InjectedBundle/API/c/WKBundlePrivate.h: Add WKBundleGetWebNotificationID() to be able
- retrieve notification ID.
+ (WKBundleDispatchPendingLoadRequests):
+ * WebProcess/InjectedBundle/API/c/WKBundlePrivate.h:
* WebProcess/InjectedBundle/InjectedBundle.cpp:
- (WebKit::InjectedBundle::webNotificationID):
+ (WebKit::InjectedBundle::dispatchPendingLoadRequests):
(WebKit):
* WebProcess/InjectedBundle/InjectedBundle.h:
(InjectedBundle):
- * WebProcess/Notifications/WebNotificationManager.cpp:
- (WebKit::WebNotificationManager::notificationIDForTesting):
- (WebKit):
- * WebProcess/Notifications/WebNotificationManager.h:
- (WebNotificationManager):
-
-2012-08-28 Martin Robinson <mrobinson@igalia.com>
-
- [GTK] Enable the edge distance anti-aliasing for accelerated compositing layers
- https://bugs.webkit.org/show_bug.cgi?id=95272
-
- Reviewed by No'am Rosenthal.
-
- Turn on edge-distance anti-aliasing for GTK+ WebKit2. This
- improves the quality of layer rendering.
-
- * WebProcess/WebPage/gtk/LayerTreeHostGtk.cpp:
- (WebKit::LayerTreeHostGtk::initialize):
-
-2012-08-28 Kangil Han <kangil.han@samsung.com>
-
- [WK2] Use explicit constructor in PageClientImpl.
- https://bugs.webkit.org/show_bug.cgi?id=95170
-
- Reviewed by Darin Adler.
- Added explicit keyword in constructor of PageClientImpl in order to avoid implicit type conversion.
+2012-10-08 Carlos Garcia Campos <cgarcia@igalia.com>
- * UIProcess/API/gtk/PageClientImpl.h:
- (PageClientImpl):
- * UIProcess/API/mac/PageClientImpl.h:
- (PageClientImpl):
+ [GTK] Add a setting to enable/disable smooth scrolling to WebKit2 GTK+ API
+ https://bugs.webkit.org/show_bug.cgi?id=98646
-2012-08-28 Rik Cabanier <cabanier@adobe.com>
-
- Add ENABLE_CSS_COMPOSITING flag to WebKit2 project
- https://bugs.webkit.org/show_bug.cgi?id=95227
-
- Reviewed by Dirk Schulze.
+ Reviewed by Xan Lopez.
- The WebKit2 project was not updated to compile with the CSS_COMPOSITING flag.
- This caused crashes when the webkit2 code had to use that flag.
+ * UIProcess/API/gtk/WebKitSettings.cpp:
+ (webKitSettingsSetProperty): Implement setter for new property.
+ (webKitSettingsGetProperty): Implement getter for new property.
+ (webkit_settings_class_init): Add new property
+ enable-smooth-scrolling.
+ (webkit_settings_get_enable_smooth_scrolling):
+ (webkit_settings_set_enable_smooth_scrolling):
+ * UIProcess/API/gtk/WebKitSettings.h:
+ * UIProcess/API/gtk/docs/webkit2gtk-sections.txt: Add new symbols.
+ * UIProcess/API/gtk/tests/TestWebKitSettings.cpp:
+ (testWebKitSettings): Test smooth scrolling setting API.
- * Configurations/FeatureDefines.xcconfig:
+2012-10-08 Christophe Dumez <christophe.dumez@intel.com>
-2012-08-28 Sheriff Bot <webkit.review.bot@gmail.com>
+ [EFL][WK2] Use URL instead of URI in the API
+ https://bugs.webkit.org/show_bug.cgi?id=98643
- Unreviewed, rolling out r126914.
- http://trac.webkit.org/changeset/126914
- https://bugs.webkit.org/show_bug.cgi?id=95239
+ Reviewed by Kenneth Rohde Christiansen.
- it breaks everything and fixes nothing (Requested by pizlo on
- #webkit).
+ Use URL instead of URI in WebKit2 EFL API. This change
+ was discussed on the mailing list and aims at making
+ the API more consistent.
- * Platform/CoreIPC/ArgumentCoders.h:
- * Platform/CoreIPC/Connection.cpp:
- (CoreIPC::Connection::SyncMessageState::getOrCreate):
- (CoreIPC::Connection::waitForMessage):
- (CoreIPC::Connection::processIncomingMessage):
- * Platform/gtk/WorkQueueGtk.cpp:
- (WorkQueue::registerEventSourceHandler):
- (WorkQueue::unregisterEventSourceHandler):
- * Platform/mac/WorkQueueMac.cpp:
- (WorkQueue::unregisterMachPortEventHandler):
- * Shared/Plugins/NPRemoteObjectMap.cpp:
- (WebKit::NPRemoteObjectMap::pluginDestroyed):
- * Shared/UserMessageCoders.h:
- (WebKit::UserMessageEncoder::baseEncode):
- * Shared/WebPreferencesStore.cpp:
- (WebKit::valueForKey):
- (WebKit::WebPreferencesStore::getBoolValueForKey):
- * Shared/mac/WebCoreArgumentCodersMac.mm:
- (CoreIPC::::decode):
- * Shared/qt/ArgumentCodersQt.cpp:
- (CoreIPC::::decode):
- * Shared/soup/WebCoreArgumentCodersSoup.cpp:
- (CoreIPC::::decode):
- * UIProcess/API/efl/ewk_back_forward_list.cpp:
- (_Ewk_Back_Forward_List::~_Ewk_Back_Forward_List):
+ * UIProcess/API/efl/ewk_back_forward_list_item.cpp:
+ (_Ewk_Back_Forward_List_Item):
+ (ewk_back_forward_list_item_url_get):
+ (ewk_back_forward_list_item_original_url_get):
+ * UIProcess/API/efl/ewk_back_forward_list_item.h:
* UIProcess/API/efl/ewk_context.cpp:
- (_Ewk_Context::~_Ewk_Context):
+ (ewk_context_url_scheme_register):
+ * UIProcess/API/efl/ewk_context.h:
+ * UIProcess/API/efl/ewk_context_download_client.cpp:
+ (decideDestinationWithSuggestedFilename):
+ * UIProcess/API/efl/ewk_download_job.h:
+ * UIProcess/API/efl/ewk_resource_private.h:
* UIProcess/API/efl/ewk_view.cpp:
- (_ewk_view_priv_loading_resources_clear):
- * UIProcess/API/gtk/WebKitWebView.cpp:
- (webkit_web_view_get_subresources):
- * UIProcess/API/gtk/WebKitWebViewBase.cpp:
- (webkitWebViewBaseContainerForall):
- * UIProcess/API/mac/WKPrintingView.mm:
- (-[WKPrintingView _expectedPreviewCallbackForRect:]):
- (pageDidDrawToPDF):
- (-[WKPrintingView _drawPreview:]):
- * UIProcess/API/mac/WKView.mm:
- (commandNameForSelector):
- (-[WKView validateUserInterfaceItem:]):
- * UIProcess/CoordinatedGraphics/CoordinatedBackingStore.cpp:
- (WebKit::CoordinatedBackingStore::updateTile):
- (WebKit::CoordinatedBackingStore::texture):
- (WebKit::CoordinatedBackingStore::paintToTextureMapper):
- (WebKit::CoordinatedBackingStore::commitTileOperations):
- * UIProcess/CoordinatedGraphics/LayerTreeCoordinatorProxy.cpp:
- (WebKit::LayerTreeCoordinatorProxy::updateTileForLayer):
- * UIProcess/CoordinatedGraphics/LayerTreeRenderer.cpp:
- (WebKit::LayerTreeRenderer::adjustPositionForFixedLayers):
- (WebKit::LayerTreeRenderer::syncCanvas):
- (WebKit::LayerTreeRenderer::setLayerChildren):
- (WebKit::LayerTreeRenderer::setLayerFilters):
- (WebKit::LayerTreeRenderer::setLayerState):
- (WebKit::LayerTreeRenderer::assignImageToLayer):
- * UIProcess/GeolocationPermissionRequestManagerProxy.cpp:
- (WebKit::GeolocationPermissionRequestManagerProxy::invalidateRequests):
- * UIProcess/InspectorServer/WebInspectorServer.cpp:
- (WebKit::WebInspectorServer::~WebInspectorServer):
- (WebKit::WebInspectorServer::registerPage):
- * UIProcess/InspectorServer/WebSocketServerConnection.cpp:
- (WebKit::WebSocketServerConnection::sendHTTPResponseHeader):
- * UIProcess/InspectorServer/qt/WebInspectorServerQt.cpp:
- (WebKit::WebInspectorServer::buildPageList):
- * UIProcess/Notifications/NotificationPermissionRequestManagerProxy.cpp:
- (WebKit::NotificationPermissionRequestManagerProxy::invalidateRequests):
- * UIProcess/Plugins/PluginProcessProxy.cpp:
- (WebKit::PluginProcessProxy::pluginProcessCrashedOrFailedToLaunch):
- * UIProcess/WebContext.cpp:
- (WebKit::createDictionaryFromHashMap):
- * UIProcess/WebIconDatabase.cpp:
- (WebKit::WebIconDatabase::didFinishURLImport):
- * UIProcess/WebIntentData.cpp:
- (WebKit::WebIntentData::extras):
- * UIProcess/WebProcessProxy.cpp:
- (WebKit::WebProcessProxy::checkURLReceivedFromWebProcess):
- (WebKit::WebProcessProxy::addBackForwardItem):
- (WebKit::WebProcessProxy::frameCountInPage):
- * WebProcess/Geolocation/GeolocationPermissionRequestManager.cpp:
- (WebKit::GeolocationPermissionRequestManager::cancelRequestForGeolocation):
- (WebKit::GeolocationPermissionRequestManager::didReceiveGeolocationPermissionDecision):
- * WebProcess/InjectedBundle/DOM/InjectedBundleNodeHandle.cpp:
- (WebKit::InjectedBundleNodeHandle::getOrCreate):
- * WebProcess/InjectedBundle/DOM/InjectedBundleRangeHandle.cpp:
- (WebKit::InjectedBundleRangeHandle::getOrCreate):
- * WebProcess/InjectedBundle/InjectedBundleIntent.cpp:
- (WebKit::InjectedBundleIntent::extras):
- * WebProcess/Notifications/WebNotificationManager.cpp:
- (WebKit::WebNotificationManager::policyForOrigin):
- (WebKit::WebNotificationManager::show):
- (WebKit::WebNotificationManager::clearNotifications):
- (WebKit::WebNotificationManager::removeNotificationFromContextMap):
- * WebProcess/Plugins/Netscape/NPRuntimeObjectMap.cpp:
- (WebKit::NPRuntimeObjectMap::invalidate):
- * WebProcess/Plugins/Netscape/NetscapePlugin.cpp:
- (WebKit::NetscapePlugin::destroyStream):
- (WebKit::NetscapePlugin::unscheduleTimer):
- (WebKit::NetscapePlugin::frameDidFinishLoading):
- (WebKit::NetscapePlugin::frameDidFail):
- * WebProcess/Plugins/PluginView.cpp:
- (WebKit::buildHTTPHeaders):
- (WebKit::PluginView::~PluginView):
- * WebProcess/WebPage/CoordinatedGraphics/CoordinatedGraphicsLayer.cpp:
- (WebCore::CoordinatedGraphicsLayer::layerByID):
- * WebProcess/WebPage/CoordinatedGraphics/LayerTreeCoordinator.cpp:
- (WebKit::LayerTreeCoordinator::adoptImageBackingStore):
- (WebKit::LayerTreeCoordinator::releaseImageBackingStore):
- * WebProcess/WebPage/WebBackForwardListProxy.cpp:
- (WebKit::WebBackForwardListProxy::removeItem):
- * WebProcess/WebPage/mac/WebPageMac.mm:
- (WebKit::commandNameForSelectorName):
- * WebProcess/WebProcess.cpp:
- (WebKit::WebProcess::visitedLinkStateChanged):
- (WebKit::WebProcess::allVisitedLinkStateChanged):
- (WebKit::WebProcess::focusedWebPage):
- (WebKit::WebProcess::createWebPage):
- (WebKit::WebProcess::webPageGroup):
- (WebKit::fromCountedSetToHashMap):
- (WebKit::WebProcess::setTextCheckerState):
-
-2012-08-28 Alexey Proskuryakov <ap@apple.com>
-
- [WK2] Expose process model as API
- https://bugs.webkit.org/show_bug.cgi?id=95228
-
- Reviewed by Jon Honeycutt.
+ (_Ewk_View_Private_Data):
+ (ewk_view_url_update):
+ (ewk_view_url_set):
+ (ewk_view_url_get):
+ (ewk_view_reload):
+ (ewk_view_reload_bypass_cache):
+ (ewk_view_load_finished):
+ (ewk_view_load_provisional_redirect):
+ (ewk_view_load_provisional_started):
+ (ewk_view_html_string_load):
+ * UIProcess/API/efl/ewk_view.h:
+ * UIProcess/API/efl/ewk_view_loader_client.cpp:
+ (didSameDocumentNavigationForFrame):
+ * UIProcess/API/efl/ewk_view_private.h:
+ * UIProcess/API/efl/tests/UnitTestUtils/EWK2UnitTestBase.cpp:
+ (EWK2UnitTest::EWK2UnitTestBase::loadUrlSync):
+ (EWK2UnitTest::onURLChanged):
+ (EWK2UnitTest::timeOutWhileWaitingUntilURLChangedTo):
+ (EWK2UnitTest::EWK2UnitTestBase::waitUntilURLChangedTo):
+ * UIProcess/API/efl/tests/UnitTestUtils/EWK2UnitTestBase.h:
+ (EWK2UnitTestBase):
+ * UIProcess/API/efl/tests/UnitTestUtils/EWK2UnitTestServer.cpp:
+ (EWK2UnitTestServer::EWK2UnitTestServer):
+ (EWK2UnitTestServer::~EWK2UnitTestServer):
+ (EWK2UnitTestServer::getURLForPath):
+ * UIProcess/API/efl/tests/UnitTestUtils/EWK2UnitTestServer.h:
+ (EWK2UnitTestServer):
+ * UIProcess/API/efl/tests/resources/redirect_url_to_default.html: Renamed from Source/WebKit2/UIProcess/API/efl/tests/resources/redirect_uri_to_default.html.
+ * UIProcess/API/efl/tests/test_ewk2_back_forward_list.cpp:
+ (checkItem):
+ (urlFromTitle):
+ * UIProcess/API/efl/tests/test_ewk2_context.cpp:
+ (TEST_F):
+ * UIProcess/API/efl/tests/test_ewk2_cookie_manager.cpp:
+ (TEST_F):
+ * UIProcess/API/efl/tests/test_ewk2_download_job.cpp:
+ (TEST_F):
+ * UIProcess/API/efl/tests/test_ewk2_settings.cpp:
+ (TEST_F):
+ * UIProcess/API/efl/tests/test_ewk2_view.cpp:
+ (TEST_F):
- * UIProcess/API/C/WKAPICast.h:
- (WebKit::toProcessModel):
- (WebKit::toAPI):
- Convert ProcessModel values.
+2012-10-08 Zoltan Horvath <zoltan@webkit.org>
- * UIProcess/API/C/WKContext.cpp:
- (WKContextSetProcessModel):
- (WKContextGetProcessModel):
- * UIProcess/API/C/WKContext.h:
- * UIProcess/WebContext.cpp: (WebKit::WebContext::setProcessModel):
- * UIProcess/WebContext.h:
- Added a setter and a getter. Setting process model is only allowed when there are
- no processes yet - that's checked with a CRASH to guarantee that clients using
- production builds of WebKit2 don't misstep.
+ [Qt] r122720 causes performance regression with DirectFB on ARMv7
+ https://bugs.webkit.org/show_bug.cgi?id=97548
-2012-08-28 Caio Marcelo de Oliveira Filho <caio.oliveira@openbossa.org>
+ Reviewed by Jocelyn Turcotte.
- Rename first/second to key/value in HashMap iterators
- https://bugs.webkit.org/show_bug.cgi?id=82784
+ Revert the rest of r122720. This change modifies the NativeImagePtr from QImage* to QPixmap*.
- Reviewed by Eric Seidel.
+ Covered by existing tests.
- * Platform/CoreIPC/ArgumentCoders.h:
- * Platform/CoreIPC/Connection.cpp:
- (CoreIPC::Connection::SyncMessageState::getOrCreate):
- (CoreIPC::Connection::waitForMessage):
- (CoreIPC::Connection::processIncomingMessage):
- * Platform/gtk/WorkQueueGtk.cpp:
- (WorkQueue::registerEventSourceHandler):
- (WorkQueue::unregisterEventSourceHandler):
- * Platform/mac/WorkQueueMac.cpp:
- (WorkQueue::unregisterMachPortEventHandler):
- * Shared/Plugins/NPRemoteObjectMap.cpp:
- (WebKit::NPRemoteObjectMap::pluginDestroyed):
- * Shared/UserMessageCoders.h:
- (WebKit::UserMessageEncoder::baseEncode):
- * Shared/WebPreferencesStore.cpp:
- (WebKit::valueForKey):
- (WebKit::WebPreferencesStore::getBoolValueForKey):
- * Shared/mac/WebCoreArgumentCodersMac.mm:
- (CoreIPC::::decode):
- * Shared/qt/ArgumentCodersQt.cpp:
- (CoreIPC::::decode):
- * Shared/soup/WebCoreArgumentCodersSoup.cpp:
- (CoreIPC::::decode):
- * UIProcess/API/efl/ewk_back_forward_list.cpp:
- (_Ewk_Back_Forward_List::~_Ewk_Back_Forward_List):
- * UIProcess/API/efl/ewk_context.cpp:
- (_Ewk_Context::~_Ewk_Context):
- * UIProcess/API/efl/ewk_view.cpp:
- (_ewk_view_priv_loading_resources_clear):
- * UIProcess/API/gtk/WebKitWebView.cpp:
- (webkit_web_view_get_subresources):
- * UIProcess/API/gtk/WebKitWebViewBase.cpp:
- (webkitWebViewBaseContainerForall):
- * UIProcess/API/mac/WKPrintingView.mm:
- (-[WKPrintingView _expectedPreviewCallbackForRect:]):
- (pageDidDrawToPDF):
- (-[WKPrintingView _drawPreview:]):
- * UIProcess/API/mac/WKView.mm:
- (commandNameForSelector):
- (-[WKView validateUserInterfaceItem:]):
- * UIProcess/CoordinatedGraphics/CoordinatedBackingStore.cpp:
- (WebKit::CoordinatedBackingStore::updateTile):
- (WebKit::CoordinatedBackingStore::texture):
- (WebKit::CoordinatedBackingStore::paintToTextureMapper):
- (WebKit::CoordinatedBackingStore::commitTileOperations):
- * UIProcess/CoordinatedGraphics/LayerTreeCoordinatorProxy.cpp:
- (WebKit::LayerTreeCoordinatorProxy::updateTileForLayer):
- * UIProcess/CoordinatedGraphics/LayerTreeRenderer.cpp:
- (WebKit::LayerTreeRenderer::adjustPositionForFixedLayers):
- (WebKit::LayerTreeRenderer::syncCanvas):
- (WebKit::LayerTreeRenderer::setLayerChildren):
- (WebKit::LayerTreeRenderer::setLayerFilters):
- (WebKit::LayerTreeRenderer::setLayerState):
- (WebKit::LayerTreeRenderer::assignImageToLayer):
- * UIProcess/GeolocationPermissionRequestManagerProxy.cpp:
- (WebKit::GeolocationPermissionRequestManagerProxy::invalidateRequests):
- * UIProcess/InspectorServer/WebInspectorServer.cpp:
- (WebKit::WebInspectorServer::~WebInspectorServer):
- (WebKit::WebInspectorServer::registerPage):
- * UIProcess/InspectorServer/WebSocketServerConnection.cpp:
- (WebKit::WebSocketServerConnection::sendHTTPResponseHeader):
- * UIProcess/InspectorServer/qt/WebInspectorServerQt.cpp:
- (WebKit::WebInspectorServer::buildPageList):
- * UIProcess/Notifications/NotificationPermissionRequestManagerProxy.cpp:
- (WebKit::NotificationPermissionRequestManagerProxy::invalidateRequests):
- * UIProcess/Plugins/PluginProcessProxy.cpp:
- (WebKit::PluginProcessProxy::pluginProcessCrashedOrFailedToLaunch):
- * UIProcess/WebContext.cpp:
- (WebKit::createDictionaryFromHashMap):
- * UIProcess/WebIconDatabase.cpp:
- (WebKit::WebIconDatabase::didFinishURLImport):
- * UIProcess/WebIntentData.cpp:
- (WebKit::WebIntentData::extras):
- * UIProcess/WebProcessProxy.cpp:
- (WebKit::WebProcessProxy::checkURLReceivedFromWebProcess):
- (WebKit::WebProcessProxy::addBackForwardItem):
- (WebKit::WebProcessProxy::frameCountInPage):
- * WebProcess/Geolocation/GeolocationPermissionRequestManager.cpp:
- (WebKit::GeolocationPermissionRequestManager::cancelRequestForGeolocation):
- (WebKit::GeolocationPermissionRequestManager::didReceiveGeolocationPermissionDecision):
- * WebProcess/InjectedBundle/DOM/InjectedBundleNodeHandle.cpp:
- (WebKit::InjectedBundleNodeHandle::getOrCreate):
- * WebProcess/InjectedBundle/DOM/InjectedBundleRangeHandle.cpp:
- (WebKit::InjectedBundleRangeHandle::getOrCreate):
- * WebProcess/InjectedBundle/InjectedBundleIntent.cpp:
- (WebKit::InjectedBundleIntent::extras):
- * WebProcess/Notifications/WebNotificationManager.cpp:
- (WebKit::WebNotificationManager::policyForOrigin):
- (WebKit::WebNotificationManager::show):
- (WebKit::WebNotificationManager::clearNotifications):
- (WebKit::WebNotificationManager::removeNotificationFromContextMap):
- * WebProcess/Plugins/Netscape/NPRuntimeObjectMap.cpp:
- (WebKit::NPRuntimeObjectMap::invalidate):
- * WebProcess/Plugins/Netscape/NetscapePlugin.cpp:
- (WebKit::NetscapePlugin::destroyStream):
- (WebKit::NetscapePlugin::unscheduleTimer):
- (WebKit::NetscapePlugin::frameDidFinishLoading):
- (WebKit::NetscapePlugin::frameDidFail):
- * WebProcess/Plugins/PluginView.cpp:
- (WebKit::buildHTTPHeaders):
- (WebKit::PluginView::~PluginView):
- * WebProcess/WebPage/CoordinatedGraphics/CoordinatedGraphicsLayer.cpp:
- (WebCore::CoordinatedGraphicsLayer::layerByID):
+ * Shared/qt/ShareableBitmapQt.cpp:
+ (WebKit::ShareableBitmap::createImage):
+ * UIProcess/qt/QtWebIconDatabaseClient.cpp:
+ (WebKit::QtWebIconDatabaseClient::iconImageForPageURL):
+ * WebProcess/WebCoreSupport/qt/WebDragClientQt.cpp:
+ (WebKit::convertQPixmapToShareableBitmap):
+ (WebKit::WebDragClient::startDrag):
* WebProcess/WebPage/CoordinatedGraphics/LayerTreeCoordinator.cpp:
(WebKit::LayerTreeCoordinator::adoptImageBackingStore):
- (WebKit::LayerTreeCoordinator::releaseImageBackingStore):
- * WebProcess/WebPage/WebBackForwardListProxy.cpp:
- (WebKit::WebBackForwardListProxy::removeItem):
- * WebProcess/WebPage/mac/WebPageMac.mm:
- (WebKit::commandNameForSelectorName):
- * WebProcess/WebProcess.cpp:
- (WebKit::WebProcess::visitedLinkStateChanged):
- (WebKit::WebProcess::allVisitedLinkStateChanged):
- (WebKit::WebProcess::focusedWebPage):
- (WebKit::WebProcess::createWebPage):
- (WebKit::WebProcess::webPageGroup):
- (WebKit::fromCountedSetToHashMap):
- (WebKit::WebProcess::setTextCheckerState):
-
-2012-08-28 Jon Lee <jonlee@apple.com>
- [WK2] Bugs in maintenance of internal state when user decides whether to grant notification permissions
- https://bugs.webkit.org/show_bug.cgi?id=95220
- <rdar://problem/12189895>
+2012-10-08 Jocelyn Turcotte <jocelyn.turcotte@digia.com>
- Reviewed by Jessie Berlin.
+ Unreviewed build fix after r130630
- A couple of the maps maintained by the request manager should have been cleaned up when the user decided on
- whether to grant a website permission to post notifications.
+ Explicit convertion is required from QSizeF to FloatSize.
- Also, the web process' copy of the permissions was not updated appropriately. This meant that in the
- permission callback, Notification.permission was not the same value as the permission value included as
- the first parameter of the callback.
+ * UIProcess/API/qt/qquickwebview.cpp:
+ (QQuickWebViewLegacyPrivate::updateViewportSize):
- This first surfaced as part of the work to bring Mac support for web notifications. I have a test that
- will check for regressions in this area, once all of that has been checked in (bug 77969).
+2012-10-04 Jocelyn Turcotte <jocelyn.turcotte@digia.com>
- * WebProcess/Notifications/NotificationPermissionRequestManager.cpp:
- (WebKit::NotificationPermissionRequestManager::didReceiveNotificationPermissionDecision):
+ [Qt] Fix the mouse hover events transformation when devicePixelRatio != 1
+ https://bugs.webkit.org/show_bug.cgi?id=98429
-2012-08-28 Jon Lee <jonlee@apple.com>
+ Reviewed by Kenneth Rohde Christiansen.
- [WK2] Add SPI for injected bundle to manually set permissions
- https://bugs.webkit.org/show_bug.cgi?id=95127
- <rdar://problem/12182635>
+ This prevents the events from being transformed two or three times.
+ This is only noticeable in desktop mode.
- Reviewed by Jessie Berlin.
+ * UIProcess/qt/QtWebPageEventHandler.cpp:
+ (WebKit::QtWebPageEventHandler::handleHoverLeaveEvent):
+ (WebKit::QtWebPageEventHandler::handleHoverMoveEvent):
- This is work toward providing Mac support for web notifications in DRT and WTR (77969).
+2012-10-04 Jocelyn Turcotte <jocelyn.turcotte@digia.com>
- Add support functions to WebKit2 which maintain the map of permissions to origins for web notifications.
- For WebKit1 the map is managed by DumpRenderTree.
+ [Qt] Apply QQuickWebViewExperimental::devicePixelRatio to the desktop mode as well
+ https://bugs.webkit.org/show_bug.cgi?id=98428
- * WebProcess/InjectedBundle/InjectedBundle.h: Add TestRunner SPI.
- * WebProcess/InjectedBundle/InjectedBundle.cpp:
- (WebKit::InjectedBundle::setWebNotificationPermission):
- (WebKit::InjectedBundle::removeAllWebNotificationPermissions):
+ Reviewed by Kenneth Rohde Christiansen.
- * WebProcess/InjectedBundle/API/c/WKBundlePrivate.h: Expose as WK API. Also, rearrange the ordering of the
- functions so that it reflects the same order found in InjectedBundle.h.
- * WebProcess/InjectedBundle/API/c/WKBundle.cpp:
+ This is handled by the PageViewportController when in flickable mode.
- * WebProcess/Notifications/NotificationPermissionRequestManager.cpp:
- (WebKit::NotificationPermissionRequestManager::setPermissionLevelForTesting): Manually set the permission
- level for an origin.
- (WebKit::NotificationPermissionRequestManager::removeAllPermissionsForTesting):
- * WebProcess/Notifications/NotificationPermissionRequestManager.h:
- (NotificationPermissionRequestManager):
- * WebProcess/Notifications/WebNotificationManager.cpp:
- (WebKit::WebNotificationManager::removeAllPermissionsForTesting): Clear the permission map.
- * WebProcess/Notifications/WebNotificationManager.h: Promote didUpdateNotificationDecision message as public
- function, so that NotificationPermissionRequestManager can update the permission map.
+ * UIProcess/API/qt/qquickwebview.cpp:
+ (QQuickWebViewLegacyPrivate::updateViewportSize):
-2012-08-28 Christophe Dumez <christophe.dumez@intel.com>
+2012-10-04 Jocelyn Turcotte <jocelyn.turcotte@digia.com>
- [EFL] WebKit EFL updates view on HTTP 204 response
- https://bugs.webkit.org/show_bug.cgi?id=95199
+ [Qt] Prevent the PageViewportController from affecting the viewport in desktop mode
+ https://bugs.webkit.org/show_bug.cgi?id=98427
Reviewed by Kenneth Rohde Christiansen.
- Ignore HTTP responses which have status code equal
- to 204 (No Content).
+ QQuickFlickable isn't tightly bound to it anymore, we can avoid creating it
+ completely in this case.
- * UIProcess/API/efl/ewk_view_policy_client.cpp:
- (decidePolicyForResponseCallback):
+ * UIProcess/API/qt/qquickwebview.cpp:
+ (QQuickWebViewFlickablePrivate::onComponentComplete):
+ * UIProcess/API/qt/qquickwebview_p_p.h:
+ (QQuickWebViewPrivate::onComponentComplete):
+ (QQuickWebViewPrivate::viewportController):
+ (QQuickWebViewPrivate):
+ (QQuickWebViewFlickablePrivate::viewportController):
+ (QQuickWebViewFlickablePrivate):
+ * UIProcess/qt/QtPageClient.cpp:
+ (WebKit::QtPageClient::didRenderFrame):
+ (WebKit::QtPageClient::didChangeContentsSize):
+ (WebKit::QtPageClient::pageTransitionViewportReady):
+ * UIProcess/qt/QtWebPageLoadClient.cpp:
+ (WebKit::QtWebPageLoadClient::didCommitLoad):
-2012-08-28 Zeno Albisser <zeno@webkit.org>
+2012-10-04 Jocelyn Turcotte <jocelyn.turcotte@digia.com>
- LayerTreeCoordinatorProxy should use uint64_t for surface key.
- https://bugs.webkit.org/show_bug.cgi?id=95175
+ [Qt] Fix a QSocketNotifier warning at startup
+ https://bugs.webkit.org/show_bug.cgi?id=98411
- GraphicsSurface tokens are of type uint64_t.
- Therefore LayerTreeCoordinatorProxy must use the same type to
- identify a GraphicsSurface/ShareableSurface.
+ Reviewed by Simon Hausmann.
- Reviewed by Noam Rosenthal.
+ The actual warning:
+ QSocketNotifier: socket notifiers cannot be enabled from another thread
- * Shared/ShareableSurface.h:
- (WebKit::ShareableSurface::Handle::graphicsSurfaceToken):
- * UIProcess/CoordinatedGraphics/LayerTreeCoordinatorProxy.cpp:
- (WebKit::LayerTreeCoordinatorProxy::updateTileForLayer):
- * UIProcess/CoordinatedGraphics/LayerTreeCoordinatorProxy.h:
- (LayerTreeCoordinatorProxy):
+ The problem was that QSocketNotifier::setEnabled was called on the main thread
+ after moveToThread was called. This hasn't had any effect since Connection
+ would dispatch a readyReadHandler call right after which would then call
+ setEnabled again from the correct thread from ~SocketNotifierResourceGuard.
-2012-08-28 Ryuan Choi <ryuan.choi@samsung.com>
+ Replace the call with a queued invoke to shut the warning.
- [EFL][WK2] Implement WebPopupMenuProxyEfl to support <select>
- https://bugs.webkit.org/show_bug.cgi?id=88616
+ * Platform/qt/WorkQueueQt.cpp:
+ (WorkQueue::registerSocketEventHandler):
- Reviewed by Gyuyoung Kim.
+2012-10-08 Carlos Garcia Campos <cgarcia@igalia.com>
- Implemented popup menu proxy and interface for Efl.
+ [GTK] Test /webkit2/WebKitWebView/populate-menu asserts in debug bots
+ https://bugs.webkit.org/show_bug.cgi?id=98507
- Applications should implement popup menu by overriding
- smart class function to support select tag.
+ Reviewed by Martin Robinson.
- * PlatformEfl.cmake:
- * UIProcess/API/efl/EWebKit2.h: Included ewk_popup_menu_item.h
- * UIProcess/API/efl/PageClientImpl.cpp:
- (WebKit::PageClientImpl::createPopupMenuProxy):
- * UIProcess/API/efl/ewk_popup_menu_item.cpp: Added.
- (_Ewk_Popup_Menu_Item):
- (_Ewk_Popup_Menu_Item::_Ewk_Popup_Menu_Item):
- (ewk_popup_menu_item_new):
- (ewk_popup_menu_item_free):
- (ewk_popup_menu_item_type_get): Added API to retrieve type of item.
- (ewk_popup_menu_item_text_get): Added API to retrieve text of item.
- * UIProcess/API/efl/ewk_popup_menu_item.h: Added.
- * UIProcess/API/efl/ewk_popup_menu_item_private.h: Added.
- * UIProcess/API/efl/ewk_view.cpp:
- (_Ewk_View_Private_Data):
- (_Ewk_View_Private_Data::_Ewk_View_Private_Data):
- (_Ewk_View_Private_Data::~_Ewk_View_Private_Data):
- (ewk_view_popup_menu_request): Added to call popup_menu_show, smart class function.
- (ewk_view_popup_menu_close): Added API to call popup_menu_hide, smart class function.
- (ewk_view_popup_menu_select): Added API to change selected index.
- * UIProcess/API/efl/ewk_view.h:
- Added smart class function for applications to override.
- * UIProcess/API/efl/ewk_view_private.h:
- * UIProcess/API/efl/tests/UnitTestUtils/EWK2UnitTestBase.cpp:
- (EWK2UnitTest::EWK2UnitTestBase::EWK2UnitTestBase):
- (EWK2UnitTest::EWK2UnitTestBase::SetUp):
- (EWK2UnitTest::EWK2UnitTestBase::loadUrlSync):
- (EWK2UnitTest::EWK2UnitTestBase::waitUntilLoadFinished):
- Extracted from loadUrlSync for tests using ewk_view_html_string_load to
- share onLoadFinished.
- * UIProcess/API/efl/tests/UnitTestUtils/EWK2UnitTestBase.h:
- (EWK2UnitTest::EWK2UnitTestBase::ewkViewClass):
- Added ewkViewClass to test smart methods such as popup_menu_show.
- * UIProcess/API/efl/tests/test_ewk2_view.cpp:
- (popup_menu_show):
- (TEST_F): Added a test case for ewk_view_popup_menu_select and related codes.
- * UIProcess/efl/WebPopupMenuProxyEfl.cpp: Added.
- (WebKit):
- (WebKit::WebPopupMenuProxyEfl::WebPopupMenuProxyEfl):
- (WebKit::WebPopupMenuProxyEfl::showPopupMenu):
- (WebKit::WebPopupMenuProxyEfl::hidePopupMenu):
- (WebKit::WebPopupMenuProxyEfl::valueChanged):
- * UIProcess/efl/WebPopupMenuProxyEfl.h: Added.
- (WebPopupMenuProxyEfl):
- (WebKit::WebPopupMenuProxyEfl::create):
+ Make sure we retain the page URL before asking for the icon.
-2012-08-27 Kangil Han <kangil.han@samsung.com>
+ * UIProcess/API/gtk/WebKitFaviconDatabase.cpp:
+ (getIconSurfaceSynchronously): Retain the page URL before asking
+ for the icon, and release it if we fail to get an icon.
+ (processPendingIconsForPageURL): Renamed to make it clear it
+ receives a Sring and not a char* and moved
+ getIconSurfaceSynchronously() call out of the loop to call it only
+ once even if there are multiple requests pending.
+ (iconDataReadyForPageURLCallback): Do not retain the page URL
+ here.
- [EFL][WK2] Fix PageClientImpl layer violation
- https://bugs.webkit.org/show_bug.cgi?id=94906
+2012-10-08 Carlos Garcia Campos <cgarcia@igalia.com>
- Reviewed by Gyuyoung Kim.
+ [GTK] Don't use the C API internally in WebKitWebContext
+ https://bugs.webkit.org/show_bug.cgi?id=96768
- Given WK2 hierarchy, current PageClientImpl has violated API layer by having WebPageProxy.
- Subsequently, it has been given WebContext, static singleton object, in its argument unnecessarily.
- Therefore, this patch moved WebPageProxy from PageClientImpl to Ewk_View_Private_Data.
- Plus, WebContext was removed from PageClientImpl since it is not needed anymore.
- As a result, EFL has same form of PageClientImpl with other ports, i.e. gtk+ and mac.
- From API point of view, nothing has been changed because all things done locally.
+ Reviewed by Martin Robinson.
- * UIProcess/API/efl/PageClientImpl.cpp:
- (WebKit::PageClientImpl::PageClientImpl):
- (WebKit::PageClientImpl::createDrawingAreaProxy):
- * UIProcess/API/efl/PageClientImpl.h:
- (WebKit::PageClientImpl::create):
- (PageClientImpl):
- * UIProcess/API/efl/ewk_view.cpp:
- (_Ewk_View_Private_Data):
- (_ewk_view_smart_focus_in):
- (_ewk_view_smart_focus_out):
- (_ewk_view_smart_mouse_wheel):
- (_ewk_view_smart_mouse_down):
- (_ewk_view_smart_mouse_up):
- (_ewk_view_smart_mouse_move):
- (_ewk_view_smart_key_down):
- (_ewk_view_smart_key_up):
- (_ewk_view_smart_calculate):
- (_ewk_view_smart_color_set):
- (_ewk_view_initialize):
- (ewk_view_uri_update):
- (ewk_view_uri_set):
- (ewk_view_reload):
- (ewk_view_reload_bypass_cache):
- (ewk_view_stop):
- (ewk_view_title_get):
- (ewk_view_load_progress_get):
- (ewk_view_scale_set):
- (ewk_view_scale_get):
- (ewk_view_device_pixel_ratio_set):
- (ewk_view_device_pixel_ratio_get):
- (ewk_view_theme_set):
- (ewk_view_back):
- (ewk_view_forward):
- (ewk_view_intent_deliver):
- (ewk_view_back_possible):
- (ewk_view_forward_possible):
- (ewk_view_html_string_load):
- (ewk_view_page_get):
- (ewk_view_setting_encoding_custom_get):
- (ewk_view_setting_encoding_custom_set):
- (ewk_view_text_find):
- (ewk_view_text_find_highlight_clear):
+ Using the C++ classes directly instead of the C API wrappers we
+ avoid a lot of toImpl/toAPI casts, string conversions and
+ allocations. The code is also a lot simpler and easier to read.
+
+ * UIProcess/API/gtk/WebKitDownloadClient.cpp:
+ (didStart):
+ (didReceiveResponse):
+ (didReceiveData):
+ (decideDestinationWithSuggestedFilename):
+ (didCreateDestination):
+ (didFail):
+ (didCancel):
+ (didFinish):
+ (attachDownloadClientToContext):
+ * UIProcess/API/gtk/WebKitRequestManagerClient.cpp:
+ (attachRequestManagerClientToContext):
+ * UIProcess/API/gtk/WebKitSecurityManager.cpp:
+ (registerSecurityPolicyForURIScheme):
+ * UIProcess/API/gtk/WebKitWebContext.cpp:
+ (_WebKitWebContextPrivate):
+ (createDefaultWebContext):
+ (webkit_web_context_set_cache_model):
+ (webkit_web_context_get_cache_model):
+ (webkit_web_context_clear_cache):
+ (webkit_web_context_download_uri):
+ (webkit_web_context_get_cookie_manager):
+ (webkit_web_context_get_favicon_database_directory):
+ (webkit_web_context_get_favicon_database):
+ (webkit_web_context_set_additional_plugins_directory):
+ (webkitWebContextGetPluginThread):
+ (webkit_web_context_register_uri_scheme):
+ (webkitWebContextGetOrCreateDownload):
+ (webkitWebContextRemoveDownload):
+ (webkitWebContextGetContext):
+ (webkitWebContextGetRequestManager):
+ * UIProcess/API/gtk/WebKitWebContextPrivate.h:
+ * UIProcess/API/gtk/WebKitWebView.cpp:
+ (webkitWebViewConstructed):
-2012-08-27 Sheriff Bot <webkit.review.bot@gmail.com>
+2012-10-07 Kangil Han <kangil.han@samsung.com>
- Unreviewed, rolling out r126836.
- http://trac.webkit.org/changeset/126836
- https://bugs.webkit.org/show_bug.cgi?id=95163
+ [EFL][WK2] Fix unused parameter compile warning.
+ https://bugs.webkit.org/show_bug.cgi?id=98610
- Broke all Apple ports, EFL, and Qt. (Requested by tkent on
- #webkit).
+ Reviewed by Laszlo Gombos.
- * Platform/CoreIPC/ArgumentCoders.h:
- * Platform/CoreIPC/Connection.cpp:
- (CoreIPC::Connection::SyncMessageState::getOrCreate):
- (CoreIPC::Connection::waitForMessage):
- (CoreIPC::Connection::processIncomingMessage):
- * Platform/gtk/WorkQueueGtk.cpp:
- (WorkQueue::registerEventSourceHandler):
- (WorkQueue::unregisterEventSourceHandler):
- * Platform/mac/WorkQueueMac.cpp:
- (WorkQueue::unregisterMachPortEventHandler):
- * Shared/Plugins/NPRemoteObjectMap.cpp:
- (WebKit::NPRemoteObjectMap::pluginDestroyed):
- * Shared/UserMessageCoders.h:
- (WebKit::UserMessageEncoder::baseEncode):
- * Shared/WebPreferencesStore.cpp:
- (WebKit::valueForKey):
- (WebKit::WebPreferencesStore::getBoolValueForKey):
- * Shared/mac/WebCoreArgumentCodersMac.mm:
- (CoreIPC::::decode):
- * Shared/qt/ArgumentCodersQt.cpp:
- (CoreIPC::::decode):
- * Shared/soup/WebCoreArgumentCodersSoup.cpp:
- (CoreIPC::::decode):
- * UIProcess/API/efl/ewk_back_forward_list.cpp:
- (_Ewk_Back_Forward_List::~_Ewk_Back_Forward_List):
- * UIProcess/API/efl/ewk_context.cpp:
- (_Ewk_Context::~_Ewk_Context):
- * UIProcess/API/efl/ewk_view.cpp:
- (_ewk_view_priv_loading_resources_clear):
- * UIProcess/API/gtk/WebKitWebView.cpp:
- (webkit_web_view_get_subresources):
- * UIProcess/API/gtk/WebKitWebViewBase.cpp:
- (webkitWebViewBaseContainerForall):
- * UIProcess/API/mac/WKPrintingView.mm:
- (-[WKPrintingView _expectedPreviewCallbackForRect:]):
- (pageDidDrawToPDF):
- (-[WKPrintingView _drawPreview:]):
- * UIProcess/API/mac/WKView.mm:
- (commandNameForSelector):
- (-[WKView validateUserInterfaceItem:]):
- * UIProcess/CoordinatedGraphics/CoordinatedBackingStore.cpp:
- (WebKit::CoordinatedBackingStore::updateTile):
- (WebKit::CoordinatedBackingStore::texture):
- (WebKit::CoordinatedBackingStore::paintToTextureMapper):
- (WebKit::CoordinatedBackingStore::commitTileOperations):
- * UIProcess/CoordinatedGraphics/LayerTreeCoordinatorProxy.cpp:
- (WebKit::LayerTreeCoordinatorProxy::updateTileForLayer):
- * UIProcess/CoordinatedGraphics/LayerTreeRenderer.cpp:
- (WebKit::LayerTreeRenderer::adjustPositionForFixedLayers):
- (WebKit::LayerTreeRenderer::syncCanvas):
- (WebKit::LayerTreeRenderer::setLayerChildren):
- (WebKit::LayerTreeRenderer::setLayerFilters):
- (WebKit::LayerTreeRenderer::setLayerState):
- (WebKit::LayerTreeRenderer::assignImageToLayer):
- * UIProcess/GeolocationPermissionRequestManagerProxy.cpp:
- (WebKit::GeolocationPermissionRequestManagerProxy::invalidateRequests):
- * UIProcess/InspectorServer/WebInspectorServer.cpp:
- (WebKit::WebInspectorServer::~WebInspectorServer):
- (WebKit::WebInspectorServer::registerPage):
- * UIProcess/InspectorServer/WebSocketServerConnection.cpp:
- (WebKit::WebSocketServerConnection::sendHTTPResponseHeader):
- * UIProcess/InspectorServer/qt/WebInspectorServerQt.cpp:
- (WebKit::WebInspectorServer::buildPageList):
- * UIProcess/Notifications/NotificationPermissionRequestManagerProxy.cpp:
- (WebKit::NotificationPermissionRequestManagerProxy::invalidateRequests):
- * UIProcess/Plugins/PluginProcessProxy.cpp:
- (WebKit::PluginProcessProxy::pluginProcessCrashedOrFailedToLaunch):
- * UIProcess/WebContext.cpp:
- (WebKit::createDictionaryFromHashMap):
- * UIProcess/WebIconDatabase.cpp:
- (WebKit::WebIconDatabase::didFinishURLImport):
- * UIProcess/WebIntentData.cpp:
- (WebKit::WebIntentData::extras):
- * UIProcess/WebProcessProxy.cpp:
- (WebKit::WebProcessProxy::checkURLReceivedFromWebProcess):
- (WebKit::WebProcessProxy::addBackForwardItem):
- (WebKit::WebProcessProxy::frameCountInPage):
- * WebProcess/Geolocation/GeolocationPermissionRequestManager.cpp:
- (WebKit::GeolocationPermissionRequestManager::cancelRequestForGeolocation):
- (WebKit::GeolocationPermissionRequestManager::didReceiveGeolocationPermissionDecision):
- * WebProcess/InjectedBundle/DOM/InjectedBundleNodeHandle.cpp:
- (WebKit::InjectedBundleNodeHandle::getOrCreate):
- * WebProcess/InjectedBundle/DOM/InjectedBundleRangeHandle.cpp:
- (WebKit::InjectedBundleRangeHandle::getOrCreate):
- * WebProcess/InjectedBundle/InjectedBundleIntent.cpp:
- (WebKit::InjectedBundleIntent::extras):
- * WebProcess/Notifications/WebNotificationManager.cpp:
- (WebKit::WebNotificationManager::policyForOrigin):
- (WebKit::WebNotificationManager::show):
- (WebKit::WebNotificationManager::clearNotifications):
- (WebKit::WebNotificationManager::removeNotificationFromContextMap):
- * WebProcess/Plugins/Netscape/NPRuntimeObjectMap.cpp:
- (WebKit::NPRuntimeObjectMap::invalidate):
- * WebProcess/Plugins/Netscape/NetscapePlugin.cpp:
- (WebKit::NetscapePlugin::destroyStream):
- (WebKit::NetscapePlugin::unscheduleTimer):
- (WebKit::NetscapePlugin::frameDidFinishLoading):
- (WebKit::NetscapePlugin::frameDidFail):
- * WebProcess/Plugins/PluginView.cpp:
- (WebKit::buildHTTPHeaders):
- (WebKit::PluginView::~PluginView):
- * WebProcess/WebPage/CoordinatedGraphics/CoordinatedGraphicsLayer.cpp:
- (WebCore::CoordinatedGraphicsLayer::layerByID):
- * WebProcess/WebPage/CoordinatedGraphics/LayerTreeCoordinator.cpp:
- (WebKit::LayerTreeCoordinator::adoptImageBackingStore):
- (WebKit::LayerTreeCoordinator::releaseImageBackingStore):
- * WebProcess/WebPage/WebBackForwardListProxy.cpp:
- (WebKit::WebBackForwardListProxy::removeItem):
- * WebProcess/WebPage/mac/WebPageMac.mm:
- (WebKit::commandNameForSelectorName):
- * WebProcess/WebProcess.cpp:
- (WebKit::WebProcess::visitedLinkStateChanged):
- (WebKit::WebProcess::allVisitedLinkStateChanged):
- (WebKit::WebProcess::focusedWebPage):
- (WebKit::WebProcess::createWebPage):
- (WebKit::WebProcess::webPageGroup):
- (WebKit::fromCountedSetToHashMap):
- (WebKit::WebProcess::setTextCheckerState):
+ Fixed unused parameter compile warning by removing initiatingPageRef parameter name.
-2012-08-27 Caio Marcelo de Oliveira Filho <caio.oliveira@openbossa.org>
+ * UIProcess/API/efl/ewk_context_request_manager_client.cpp:
+ (didReceiveURIRequest):
+
+2012-10-07 Caio Marcelo de Oliveira Filho <caio.oliveira@openbossa.org>
Rename first/second to key/value in HashMap iterators
https://bugs.webkit.org/show_bug.cgi?id=82784
@@ -6408,7 +2644,6 @@
(WebKit::NPRuntimeObjectMap::invalidate):
* WebProcess/Plugins/Netscape/NetscapePlugin.cpp:
(WebKit::NetscapePlugin::destroyStream):
- (WebKit::NetscapePlugin::unscheduleTimer):
(WebKit::NetscapePlugin::frameDidFinishLoading):
(WebKit::NetscapePlugin::frameDidFail):
* WebProcess/Plugins/PluginView.cpp:
@@ -6432,13969 +2667,1119 @@
(WebKit::fromCountedSetToHashMap):
(WebKit::WebProcess::setTextCheckerState):
-2012-08-27 Simon Fraser <simon.fraser@apple.com>
-
- Make Force Repaint work with tiled backing store
- https://bugs.webkit.org/show_bug.cgi?id=95102
-
- Reviewed by Dan Bernstein.
-
- Have forceRepaint() call down to the tiled backing of each FrameView,
- so they can repaint.
-
- * WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.mm:
- (WebKit::TiledCoreAnimationDrawingArea::forceRepaint):
-
-2012-08-27 Rafael Brandao <rafael.lobo@openbossa.org>
-
- [Qt] Fix typo in CoordinatedGraphicsLayer::syncAnimatedProperties
- https://bugs.webkit.org/show_bug.cgi?id=95085
-
- Reviewed by Noam Rosenthal.
-
- * WebProcess/WebPage/CoordinatedGraphics/CoordinatedGraphicsLayer.cpp: The flag should be disabled
- once we process the sync for animated properties. Previously, it was never disabling it once enabled.
-
-2012-08-27 Philippe Normand <pnormand@igalia.com>
-
- [GStreamer][Qt] WebAudio support
- https://bugs.webkit.org/show_bug.cgi?id=94806
-
- Reviewed by Simon Hausmann.
-
- New boolean webAudioEnabled WebSetting to be used at runtime to
- toggle WebAudio support on or off.
-
- * UIProcess/API/qt/qwebpreferences.cpp:
- (QWebPreferencesPrivate::testAttribute):
- (QWebPreferencesPrivate::setAttribute):
- (QWebPreferences::webAudioEnabled):
- (QWebPreferences::setWebAudioEnabled):
- * UIProcess/API/qt/qwebpreferences_p.h:
- * UIProcess/API/qt/qwebpreferences_p_p.h:
-
-2012-08-27 Simon Hausmann <simon.hausmann@nokia.com>
-
- [Qt][WK2] REGRESSION(r126067): It made qmltests::DoubleTapToZoom::test_basic() fail
- https://bugs.webkit.org/show_bug.cgi?id=94949
-
- Reviewed by Kenneth Rohde Christiansen.
-
- Use JSON to serialize the client rect for the async evaluateJavaScript call.
-
- * UIProcess/API/qt/tests/qmltests/WebView/tst_doubleTapToZoom.qml:
-
-2012-08-27 Simon Hausmann <simon.hausmann@nokia.com>
-
- [Qt] Fix failing QML2 auto tests due to conflicting signal declaration
- https://bugs.webkit.org/show_bug.cgi?id=95059
-
- Reviewed by Kenneth Rohde Christiansen.
-
- Don't define a scaleChanged signal when QQuickItem already declares one to notify about changes
- in the scale property. As it turns out there is not need for declaring a signal in the test case
- at all.
-
- * UIProcess/API/qt/tests/qmltests/WebView/tst_doubleTapToZoom.qml:
- * UIProcess/API/qt/tests/qmltests/WebView/tst_fitToView.qml:
-
-2012-08-27 Mikhail Pozdnyakov <mikhail.pozdnyakov@intel.com>
-
- Rename RegisterProtocolHandler API to NavigatorContentUtils
- https://bugs.webkit.org/show_bug.cgi?id=94920
-
- Reviewed by Adam Barth.
+2012-10-07 Dan Bernstein <mitz@apple.com>
- Renaming whatever RegisterProtocolHandler-prefixed to NavigatorContentUtils-prefixed.
+ Web process XPC services don't have correct version information in their Info.plist files
+ https://bugs.webkit.org/show_bug.cgi?id=98619
- * Configurations/FeatureDefines.xcconfig:
- * WebProcess/WebCoreSupport/WebNavigatorContentUtilsClient.h: Renamed from Source/WebKit2/WebProcess/WebCoreSupport/WebRegisterProtocolHandlerClient.h.
- (WebKit):
- (WebNavigatorContentUtilsClient):
- (WebKit::WebNavigatorContentUtilsClient::~WebNavigatorContentUtilsClient):
- (WebKit::WebNavigatorContentUtilsClient::isProtocolHandlerRegistered):
- (WebKit::WebNavigatorContentUtilsClient::unregisterProtocolHandler):
-
-2012-08-25 Vivek Galatage <vivekgalatage@gmail.com>
-
- WinCairo Build Broken due to missing export definitions
- https://bugs.webkit.org/show_bug.cgi?id=95007
-
- Reviewed by Ryosuke Niwa.
-
- Export symbols were missing from the def file for WinCairo port. Added
- these missing symbols to avoid build break
-
- * win/WebKit2CFLite.def:
-
-2012-08-24 Alexey Proskuryakov <ap@apple.com>
-
- <rdar://problem/12157689> REGRESSION: WebProcessProxy destructor is sometimes called recursively
- https://bugs.webkit.org/show_bug.cgi?id=94997
-
- Reviewed by Dan Bernstein.
-
- * UIProcess/WebContext.cpp: (WebKit::WebContext::disconnectProcess): Make sure that
- we don't try to delete WebProcessProxy while the vector still contains it. Previously,
- we used RefPtr::clear, which zeroes out the value before destructing, but doing that
- in every RefPtr destructor would be bad for performance.
-
-2012-08-24 Benjamin Poulain <bpoulain@apple.com>
-
- Unify Number to StringImpl conversion
- https://bugs.webkit.org/show_bug.cgi?id=94879
-
- Reviewed by Geoffrey Garen.
-
- * win/WebKit2.def: Update the exported symbols.
-
-2012-08-24 Andras Becsi <andras.becsi@nokia.com>
-
- [Qt][WK2] Fix custom device pixel ratio propagation and add QML API tests
- https://bugs.webkit.org/show_bug.cgi?id=88531
-
- Reviewed by Kenneth Rohde Christiansen.
-
- Defer setting the custom device pixel ratio until the page item has
- a valid size to make sure that the scale factor reaches the web process.
-
- QML test based on patch by Alexander Færøy.
-
- * UIProcess/API/qt/qquickwebview.cpp:
- (QQuickWebViewPrivate::QQuickWebViewPrivate):
- (QQuickWebViewPrivate::didRelaunchProcess):
- (QQuickWebViewPrivate::didChangeContentsSize):
- (QQuickWebViewFlickablePrivate::didChangeContentsSize):
- (QQuickWebViewExperimental::devicePixelRatio):
- (QQuickWebViewExperimental::setDevicePixelRatio):
- * UIProcess/API/qt/qquickwebview_p.h:
- * UIProcess/API/qt/qquickwebview_p_p.h:
- (QQuickWebViewPrivate):
- * UIProcess/API/qt/tests/qmltests/WebView/tst_devicePixelRatio.qml: Added.
- Test case for the QML device pixel ratio API.
-
-2012-08-24 Kangil Han <kangil.han@samsung.com>
-
- [EFL] Fix compile warning
- https://bugs.webkit.org/show_bug.cgi?id=94930
-
- Reviewed by Kenneth Rohde Christiansen.
-
- Fixed compile warning.
-
- * UIProcess/API/efl/ewk_back_forward_list.cpp:
- (ewk_back_forward_list_n_back_items_copy): NULL used in arithmetic [-Wpointer-arith]
- (ewk_back_forward_list_n_forward_items_copy): NULL used in arithmetic [-Wpointer-arith]
-
-2012-08-24 Mikhail Pozdnyakov <mikhail.pozdnyakov@intel.com>
-
- [EFL][WK2] Back-forward list API needs extension
- https://bugs.webkit.org/show_bug.cgi?id=94582
-
- Reviewed by Kenneth Rohde Christiansen.
-
- Added several new functions wrapping existing WK2 C back-forward list API
- and returning list of items preceding or following the current one.
- Corresponding API unit tests are also added.
-
- * UIProcess/API/efl/ewk_back_forward_list.cpp:
- (createEinaList):
- (ewk_back_forward_list_n_back_items_copy):
- (ewk_back_forward_list_n_forward_items_copy):
- * UIProcess/API/efl/ewk_back_forward_list.h:
- * UIProcess/API/efl/tests/test_ewk2_back_forward_list.cpp:
- (freeEinaList):
- (TEST_F):
-
-2012-08-24 Michael Brüning <michaelbruening@gmail.com>
-
- [Qt][WK2] Make viewport related experimental.test properties encapsulated.
- https://bugs.webkit.org/show_bug.cgi?id=88320
-
- Reviewed by Kenneth Rohde Christiansen.
-
- Introducing a new viewport attribute to QWebKitTest to group the viewport related
- attributes into one QJsonObject. Also adding a static method to convert a QSizeF to
- a QJsonObject.
-
- * UIProcess/API/qt/qwebkittest.cpp:
- (qSizeFToJsonObject):
- (QWebKitTest::viewport):
- (QWebKitTest::devicePixelRatio):
- (QWebKitTest::contentsScale):
- * UIProcess/API/qt/qwebkittest_p.h:
- * UIProcess/qt/QtViewportHandler.cpp:
- (WebKit::QtViewportHandler::viewportAttributesChanged):
-
-2012-08-23 Frederik Gladhorn <gladhorn@kde.org>
-
- Make it possible to build WebKit with Python 3 (and 2)
- https://bugs.webkit.org/show_bug.cgi?id=94814
-
- Reviewed by Ryosuke Niwa.
-
- Exceptions need a hack to work with both.
- string.join was already deprecated in Python 2.
- Relative imports are no longer supported, use package name instead.
-
- * Scripts/webkit2/messages.py:
- * Scripts/webkit2/parser.py:
-
-2012-08-24 Mark Rowe <mrowe@apple.com>
-
- <http://webkit.org/b/94910> Copy the entire webkit2 module in to the WebKit2 framework wrapper.
-
- Reviewed by Dan Bernstein.
-
- This will allow relative imports within the webkit2 module to be removed in the future without
- requiring future changes to clients of the module.
-
- * WebKit2.xcodeproj/project.pbxproj: Remove the webkit2 group from the project, and add it back
- as a folder reference. This allows the directory and its contents to be copied in to the PrivateHeaders
- directory. We also need to add a script phase to clean up any .pyc files that may be present in
- the module.
-
-2012-08-23 Sheriff Bot <webkit.review.bot@gmail.com>
-
- Unreviewed, rolling out r126542.
- http://trac.webkit.org/changeset/126542
- https://bugs.webkit.org/show_bug.cgi?id=94907
-
- Broke WK2 build on OS X (Requested by tronical_ on #webkit).
-
- * Scripts/webkit2/messages.py:
- * Scripts/webkit2/parser.py:
-
-2012-08-23 Frederik Gladhorn <gladhorn@kde.org>
-
- Make it possible to build WebKit with Python 3 (and 2)
- https://bugs.webkit.org/show_bug.cgi?id=94814
-
- Reviewed by Ryosuke Niwa.
-
- Exceptions need a hack to work with both.
- string.join was already deprecated in Python 2.
- Relative imports are no longer supported, use package name instead.
-
- * Scripts/webkit2/messages.py:
- * Scripts/webkit2/parser.py:
+ Reviewed by Anders Carlsson.
-2012-08-23 Mark Hahnenberg <mhahnenberg@apple.com>
+ * WebProcessService/Info.plist: Added CFBundleGetInfoString, and changed
+ CFBundleShortVersionString and CFBundleVersion to report the source version.
+ * WebProcessServiceForWebKitDevelopment/Info.plist: Ditto.
- Change behavior of MasqueradesAsUndefined to better accommodate DFG changes
- https://bugs.webkit.org/show_bug.cgi?id=93884
+2012-10-06 Dan Bernstein <mitz@apple.com>
- Reviewed by Filip Pizlo.
+ WebKit2 part of <rdar://problem/12446507> [mac] WebKit clients cannot change the behavior of text-rendering: auto
+ https://bugs.webkit.org/show_bug.cgi?id=98601
- With some upcoming changes to the DFG to remove uses of ClassInfo, we will be changing the behavior of
- MasqueradesAsUndefined. In order to make this change consistent across all of our execution engines,
- we will make this change to MasqueradesAsUndefined as a separate patch. After this patch, MasqueradesAsUndefined
- objects will only masquerade as undefined in their original context (i.e. their original JSGlobalObject).
- For example, if an object that masquerades as undefined in frame A is passed to frame B, it will not
- masquerade as undefined within frame B, but it will continue to masquerade in frame A.
+ Reviewed by Darin Adler.
- * WebProcess/Plugins/Netscape/NPRuntimeObjectMap.cpp:
- (WebKit::NPRuntimeObjectMap::convertJSValueToNPVariant): Passing ExecState to toBoolean call.
+ * Shared/WebProcessCreationParameters.cpp:
+ (WebKit::WebProcessCreationParameters::WebProcessCreationParameters): Added initializer for
+ to shouldEnableKerningAndLigaturesByDefault. The initial value is false.
+ (WebKit::WebProcessCreationParameters::encode): Added encoding of
+ shouldEnableKerningAndLigaturesByDefault.
+ (WebKit::WebProcessCreationParameters::decode): Added decoding of
+ shouldEnableKerningAndLigaturesByDefault.
+ * Shared/WebProcessCreationParameters.h:
+ (WebProcessCreationParameters): Added shouldEnableKerningAndLigaturesByDefault boolean
+ member variable.
+ * UIProcess/mac/WebContextMac.mm:
+ (WebKit::WebContext::platformInitializeWebProcess): Changed to set
+ shouldEnableKerningAndLigaturesByDefault in the process creation parameters according to
+ the value of the WebKitKerningAndLigaturesEnabledByDefault user defaults key.
+ * WebProcess/mac/WebProcessMac.mm:
+ (WebKit::WebProcess::platformInitializeWebProcess): Added a call to
+ Font::setDefaultTypesettingFeatures() to enable kerning and ligatures if requested in the
+ process creation parameters.
-2012-08-23 Brady Eidson <beidson@apple.com>
+2012-10-05 Sudarsana Nagineni <sudarsana.nagineni@intel.com>
- REGRESSION (r124815): PDF in frame does not display any more
- <rdar://problem/12063306> and https://bugs.webkit.org/show_bug.cgi?id=94869
+ [WK2][WTR] WebKitTestRunner needs testRunner.setSerializeHTTPLoads
+ https://bugs.webkit.org/show_bug.cgi?id=98524
Reviewed by Alexey Proskuryakov.
- * WebProcess/Plugins/PDF/BuiltInPDFView.mm:
- (WebKit::BuiltInPDFView::initialize): Tell the controller that initialization was successful.
-
-2012-08-23 Mark Rowe <mrowe@apple.com>
-
- Make WebKit2 build with the latest version of clang.
-
- Reviewed by Dan Bernstein.
-
- * Configurations/Base.xcconfig: Ensure that operator new isn't exported as a weak external symbol.
-
-2012-08-22 Jesus Sanchez-Palencia <jesus.palencia@openbossa.org>
-
- [EFL] Use WTF_USE_SOUP instead BUILDING_SOUP__
- https://bugs.webkit.org/show_bug.cgi?id=94744
-
- Reviewed by Gustavo Noronha Silva.
-
- Use #if defined(WTF_USE_SOUP) instead of #if defined(BUILDING_SOUP__)
- since the former is used everywhere.
-
- * Shared/API/c/WKBase.h:
-
-2012-08-23 Christophe Dumez <christophe.dumez@intel.com>
-
- [EFL][WK2] Free ewk context data on program exit.
- https://bugs.webkit.org/show_bug.cgi?id=94808
-
- Reviewed by Kenneth Rohde Christiansen.
-
- Make sure the default Ewk_Context gets freed
- on program exit.
-
- The patch also fixes leaking of WKContextRef
- inside Ewk_Context which should have been
- adopted.
-
- * UIProcess/API/efl/ewk_context.cpp:
- (_Ewk_Context::_Ewk_Context):
- (ewk_context_default_get):
-
-2012-08-23 Adrienne Walker <enne@google.com>
-
- Convert ScrollableArea ASSERT_NOT_REACHED virtuals
- https://bugs.webkit.org/show_bug.cgi?id=93306
-
- Reviewed by Darin Adler.
-
- Add implementations where necessary to make derived classes concrete.
- Add OVERRIDE for ScrollableArea functions.
+ Add implementation for testRunner.setSerializeHTTPLoads in
+ WebKitTestRunner.
- * UIProcess/win/WebPopupMenuProxyWin.cpp:
- (WebKit::WebPopupMenuProxyWin::visibleHeight):
+ * WebProcess/InjectedBundle/API/c/WKBundle.cpp:
+ (WKBundleSetSerialLoadingEnabled):
+ * WebProcess/InjectedBundle/API/c/WKBundlePrivate.h:
+ * WebProcess/InjectedBundle/InjectedBundle.cpp:
+ (WebKit::InjectedBundle::setSerialLoadingEnabled):
(WebKit):
- (WebKit::WebPopupMenuProxyWin::visibleWidth):
- (WebKit::WebPopupMenuProxyWin::contentsSize):
- (WebKit::WebPopupMenuProxyWin::scrollableAreaBoundingBox):
- * UIProcess/win/WebPopupMenuProxyWin.h:
- (WebPopupMenuProxyWin):
- * WebProcess/Plugins/PDF/BuiltInPDFView.h:
-
-2012-08-23 Mikhail Pozdnyakov <mikhail.pozdnyakov@intel.com>
-
- [EFL][WK2] ewk_intent_request API test does not free Eina_List
- https://bugs.webkit.org/show_bug.cgi?id=94809
-
- Reviewed by Kenneth Rohde Christiansen.
-
- The used Eina_List should be freed due to ewk_intent_suggestions_get() documentation.
-
- * UIProcess/API/efl/tests/test_ewk2_intents.cpp:
- (onIntentReceived):
-
-2012-08-23 Andras Becsi <andras.becsi@nokia.com>
-
- [Qt][WK2] Helper functions used by the raw webview tests should not be guarded by HAVE_QTQUICK
-
- Reviewed by Simon Hausmann.
-
- This fixes the build if the QtQuick module is not present.
-
- * UIProcess/API/qt/tests/util.cpp:
- (messageHandler):
- (suppressDebugOutput):
- * UIProcess/API/qt/tests/util.h:
-
-2012-08-23 Carlos Garcia Campos <cgarcia@igalia.com>
-
- REGRESSION(r126306): it broke the plugin process
- https://bugs.webkit.org/show_bug.cgi?id=94797
-
- Reviewed by Xan Lopez.
-
- * GNUmakefile.am:
-
-2012-08-23 Mikhail Pozdnyakov <mikhail.pozdnyakov@intel.com>
-
- [WK2] Refactoring: WebBackForwardList getters should be const
- https://bugs.webkit.org/show_bug.cgi?id=94711
-
- Reviewed by Kenneth Rohde Christiansen.
-
- Before the change were not consistent with each other
- (WebBackForwardList::entries() was const but WebBackForwardList::currentIndex() was not).
- Besides having not const getters is not a good practice in C++. (Please read
- Scott Meyers. Effective C++ (3rd edition). ISBN: 0-321-33487-6.
- Item 3: 'Use const whenever possible').
-
- * UIProcess/WebBackForwardList.cpp:
- (WebKit::WebBackForwardList::backListCount):
- (WebKit::WebBackForwardList::forwardListCount):
- (WebKit::WebBackForwardList::backListAsImmutableArrayWithLimit):
- (WebKit::WebBackForwardList::forwardListAsImmutableArrayWithLimit):
- * UIProcess/WebBackForwardList.h:
- (WebKit::WebBackForwardList::currentIndex):
- (WebBackForwardList):
-
-2012-08-22 Nikhil Bhargava <nbhargava@google.com>
-
- Reduce Font.h includes across project -- improves RenderObject.h compile time
- https://bugs.webkit.org/show_bug.cgi?id=93629
+ * WebProcess/InjectedBundle/InjectedBundle.h:
+ (InjectedBundle):
- Reviewed by Eric Seidel.
+2012-10-05 Sheriff Bot <webkit.review.bot@gmail.com>
- Adds includes due to change in RenderStyle.h
+ Unreviewed, rolling out r130556 and r130564.
+ http://trac.webkit.org/changeset/130556
+ http://trac.webkit.org/changeset/130564
+ https://bugs.webkit.org/show_bug.cgi?id=98572
- * WebProcess/WebPage/mac/WebPageMac.mm:
+ The patch wasn't reviewed by a reviewer and it is breaking
+ Chromium Windows (Requested by jchaffraix on #webkit).
-2012-08-22 Beth Dakin <bdakin@apple.com>
-
- https://bugs.webkit.org/show_bug.cgi?id=94401
- Add support for making a web site become paginated using overflow:
- paged-x | paged-y
- -and corresponding-
- <rdar://problem/11831783>
+ * WebProcess/WebCoreSupport/mac/WebSystemInterface.mm:
+ (InitWebCoreSystemInterface):
- Reviewed by Dave Hyatt.
+2012-10-05 Sam Weinig <sam@webkit.org>
- WebCore::Page::Pagination is now just WebCore::Pagination.
- * Shared/WebPageCreationParameters.h:
- (WebPageCreationParameters):
- * UIProcess/API/C/WKPage.cpp:
- (WKPageSetPaginationMode):
- (WKPageGetPaginationMode):
- * UIProcess/WebPageProxy.cpp:
- (WebKit::WebPageProxy::WebPageProxy):
- (WebKit::WebPageProxy::setPaginationMode):
- * UIProcess/WebPageProxy.h:
- (WebPageProxy):
- (WebKit::WebPageProxy::paginationMode):
- * WebProcess/WebPage/WebPage.cpp:
- (WebKit::WebPage::setPaginationMode):
- (WebKit::WebPage::setPaginationBehavesLikeColumns):
- (WebKit::WebPage::setPageLength):
- (WebKit::WebPage::setGapBetweenPages):
- * WebProcess/WebPage/WebPage.h:
- (WebPage):
+ Set the current working directory to TMPDIR when entering the sandbox in the plug-in process.
+ Based on a patch by Ivan Krstić.
-2012-08-22 Jer Noble <jer.noble@apple.com>
+ Reviewed by Anders Carlsson.
- Browser menu visible when calling webkitRequestFullscreen after user manually enters full screen mode
- https://bugs.webkit.org/show_bug.cgi?id=93892
+ * WebProcess/Plugins/Netscape/mac/NetscapeSandboxFunctions.mm:
+ (enterSandbox):
- Reviewed by Eric Carlson.
+2012-10-05 Tim Horton <timothy_horton@apple.com>
- Allow the full screen window to "Join All Spaces", so that once it's original full screen space is destroyed,
- it can join the new one.
+ [cg] GraphicsContextCG should ask CG whether the shadow offset workaround is required
+ https://bugs.webkit.org/show_bug.cgi?id=98565
+ <rdar://problem/12436468>
- * UIProcess/mac/WKFullScreenWindowController.mm:
- (-[WKFullScreenWindowController _startEnterFullScreenAnimationWithDuration:]):
+ Reviewed by Simon Fraser.
-2012-08-22 Alexey Proskuryakov <ap@apple.com>
+ Add wkCGContextDrawsWithCorrectShadowOffsets.
- [WK2] Support posting injected bundle messages to a page
- https://bugs.webkit.org/show_bug.cgi?id=94630
+ * WebProcess/WebCoreSupport/mac/WebSystemInterface.mm:
+ (InitWebCoreSystemInterface):
- Reviewed by Sam Weinig.
+2012-10-04 Eric Carlson <eric.carlson@apple.com>
- * Shared/APIClientTraits.cpp:
- * Shared/APIClientTraits.h:
- * Shared/CoreIPCSupport/InjectedBundleMessageKinds.h:
- * UIProcess/API/C/WKPage.cpp:
- (WKPagePostMessageToInjectedBundle):
- * UIProcess/API/C/WKPage.h:
- * UIProcess/WebPageProxy.cpp:
- (WebKit::WebPageProxy::postMessageToInjectedBundle):
- * UIProcess/WebPageProxy.h:
- * WebProcess/InjectedBundle/API/c/WKBundle.h:
- * WebProcess/InjectedBundle/InjectedBundle.cpp:
- (WebKit::InjectedBundle::didReceiveMessageToPage):
- (WebKit::InjectedBundle::didReceiveMessage):
- * WebProcess/InjectedBundle/InjectedBundle.h:
- * WebProcess/InjectedBundle/InjectedBundleClient.cpp:
- (WebKit::InjectedBundleClient::didReceiveMessageToPage):
- * WebProcess/InjectedBundle/InjectedBundleClient.h:
- (InjectedBundleClient):
- Added a PostMessageToPage injected bundle message type, with all associated
- machinery. API is WKPagePostMessageToInjectedBundle(), and an associated
- didReceiveMessageToPage() injected bundle client function.
+ Allow ports to override text track rendering style
+ https://bugs.webkit.org/show_bug.cgi?id=97800
+ <rdar://problem/12044964>
- * WebProcess/qt/QtBuiltinBundle.cpp: (WebKit::QtBuiltinBundle::initialize):
- Updated for new client API.
+ Reviewed by Silvia Pfeiffer.
- * UIProcess/WebContext.cpp: (WebKit::WebContext::postMessageToInjectedBundle):
- Implemented multiple process model case.
+ * WebProcess/WebCoreSupport/mac/WebSystemInterface.mm:
+ (InitWebCoreSystemInterface): Initialize new WKSI function pointers.
-2012-08-22 Gustavo Noronha Silva <gns@gnome.org>
+2012-10-05 José Dapena Paz <jdapena@igalia.com>
- [GTK] Split WebCore/platform into a separate library
- https://bugs.webkit.org/show_bug.cgi?id=94435
+ [GTK] Add support for creating EGL contexts
+ https://bugs.webkit.org/show_bug.cgi?id=77921
Reviewed by Martin Robinson.
- More people have been reporting problems when linking WebCore because
- the command line limit is being exceeded. Splitting WebCore a bit more
- is in order.
-
- * GNUmakefile.am: link libWebCorePlatform into libwebkit2gtk
-
-2012-08-22 Carlos Garcia Campos <cgarcia@igalia.com>
-
- [GTK] Preferred languages and spellchecker APIs are not consistent in WebKit2
- https://bugs.webkit.org/show_bug.cgi?id=94683
+ This patch adds support for EGL, using OpenGL and OpenGL ES 2. Both
+ options are set up on compile time, with the configure options
+ --enable-egl and --enable-gles2.
- Reviewed by Alejandro G. Castro.
+ The implementation only adds support for EGL on top of X11, to
+ isolate the changes to the minimum. More changes should come
+ later to enable EGL for other targets (as Wayland).
- Change spell-checker and preferred languages API to use a GStrv
- instead of a comma-separated string and GList. This makes the API
- more consistent and convenient to use.
-
- * UIProcess/API/gtk/WebKitTextChecker.cpp:
- (WebKitTextChecker::getSpellCheckingLanguages): Return a
- Vector<String> instead of a String.
- (WebKitTextChecker::setSpellCheckingLanguages): Receive a
- Vector<String> instead of a String.
- * UIProcess/API/gtk/WebKitTextChecker.h:
- (WebKitTextChecker): Use a GPtrArray to cache languages.
- * UIProcess/API/gtk/WebKitWebContext.cpp:
- (webkit_web_context_get_spell_checking_languages):
- (webkit_web_context_set_spell_checking_languages):
- (webkit_web_context_set_preferred_languages):
- * UIProcess/API/gtk/WebKitWebContext.h:
- * UIProcess/API/gtk/tests/TestWebKitWebContext.cpp:
- (testWebContextSpellChecker):
- (testWebContextLanguages):
-
-2012-08-22 Csaba Osztrogonác <ossy@webkit.org>
-
- [Qt][WK2] Enable runtime enabled features: DeviceMotion and DeviceOrientation
- https://bugs.webkit.org/show_bug.cgi?id=94692
-
- Reviewed by Kenneth Rohde Christiansen.
-
- * WebProcess/qt/WebProcessQt.cpp:
- (WebKit::WebProcess::platformInitializeWebProcess):
-
-2012-08-22 Allan Sandfeld Jensen <allan.jensen@nokia.com>
-
- Wrong default for new ScrollAnimatorEnabled preference.
-
- Reviewed by Simon Hausmann.
+ * WebProcess/WebPage/gtk/LayerTreeHostGtk.cpp:
- ScrollAnimatorEnabled introduced in r126291, should default to 'true'
- to preserve existing behaviour on WK2 platforms that already enabled
- SMOOTH_SCROLLING unconditionally.
+2012-10-04 Jon Lee <jonlee@apple.com>
- * Shared/WebPreferencesStore.h:
- (WebKit):
+ Add a setting to enable plugin snapshotting
+ https://bugs.webkit.org/show_bug.cgi?id=98319
+ <rdar://problem/12426480>
-2012-08-22 Allan Sandfeld Jensen <allan.jensen@nokia.com>
+ Reviewed by Brady Eidson.
- Unreviewed, build fixup for r126291.
+ Expose plugInSnapshottingEnabled preference to WebKit clients.
* Shared/WebPreferencesStore.h:
(WebKit):
-
-2012-08-22 Allan Sandfeld Jensen <allan.jensen@nokia.com>
-
- [Qt] Optionally support smooth-scrolling on all platforms
- https://bugs.webkit.org/show_bug.cgi?id=74926
-
- Reviewed by Simon Hausmann.
-
- Expose scroll-animator preference, but ensure animated smooth scrolling
- on the web process side is disabled when scrolling has been delegated
- to the UI process.
-
- * Shared/WebPreferencesStore.h:
+ * UIProcess/API/C/WKPreferences.cpp:
+ (WKPreferencesSetPlugInSnapshottingEnabled):
+ (WKPreferencesGetPlugInSnapshottingEnabled):
+ * UIProcess/API/C/WKPreferences.h:
* WebProcess/WebPage/WebPage.cpp:
- (WebKit::WebPage::setResizesToContentsUsingLayoutSize):
- (WebKit::WebPage::updatePreferences):
-
-2012-08-22 Luiz Agostini <luiz.agostini@nokia.com>
-
- [Qt] Avoid using WebKit macros in qrawwebview_p.h
- https://bugs.webkit.org/show_bug.cgi?id=94648
-
- Reviewed by Noam Rosenthal.
-
- ENABLE(FEATURE) should not be used in qrawwebview_p.h because it is an API header file.
-
- * UIProcess/API/qt/raw/qrawwebview.cpp:
- (QRawWebView::sendTouchEvent):
- * UIProcess/API/qt/raw/qrawwebview_p.h:
-
-2012-08-21 Sheriff Bot <webkit.review.bot@gmail.com>
-
- Unreviewed, rolling out r126216.
- http://trac.webkit.org/changeset/126216
- https://bugs.webkit.org/show_bug.cgi?id=94661
-
- "Broke many Mac-WK2 tests" (Requested by bradee-oh on
- #webkit).
-
- * WebProcess/com.apple.WebProcess.sb.in:
-
-2012-08-21 Sudarsana Nagineni <sudarsana.nagineni@linux.intel.com>
-
- [GTK] [WK2] Memory leaks in TestWebKitFindController
- https://bugs.webkit.org/show_bug.cgi?id=94627
-
- Reviewed by Martin Robinson.
-
- Fix memory leaks in TestWebKitFindController by using adoptGRef
- instead of just getting new reference of GdkPixbuf.
-
- * UIProcess/API/gtk/tests/TestWebKitFindController.cpp:
- (testFindControllerHide):
-
-2012-08-21 Alexey Proskuryakov <ap@apple.com>
-
- <rdar://problem/11241850> Block access to xpcd in WebProcess.sb
-
- Reviewed by Sam Weinig and Jon Honeycutt.
-
- * WebProcess/com.apple.WebProcess.sb.in:
+ (WebKit::WebPage::updatePreferences): Update preference based on store.
-2012-08-21 Alexey Proskuryakov <ap@apple.com>
+2012-10-05 Balazs Kelemen <kbalazs@webkit.org>
- <rdar://problem/8900275> Remove PubSub access from WebProcess, since it is no longer necessary
-
- Reviewed by Mark Rowe.
-
- * WebProcess/com.apple.WebProcess.sb.in:
-
-2012-08-21 Thiago Marcos P. Santos <thiago.santos@intel.com>
-
- [EFL] Some public API functions don't have their symbols exported
- https://bugs.webkit.org/show_bug.cgi?id=94589
-
- Reviewed by Kenneth Rohde Christiansen.
-
- Added missing export symbol macro to these public API functions.
-
- * UIProcess/API/efl/ewk_view.h:
-
-2012-08-21 Martin Robinson <mrobinson@igalia.com>
-
- [GTK] Using a native window for the WebView breaks GtkOverlay
- https://bugs.webkit.org/show_bug.cgi?id=90085
-
- Reviewed by Alejandro G. Castro.
-
- Add XComposite libraries to the linker list for WebKit2.
-
- * GNUmakefile.am: Add XComposite
-
-2012-08-21 Jesse van den Kieboom <jessevdk@gnome.org> and Carlos Garcia Campos <cgarcia@igalia.com>
-
- [GTK] Add destroy notify for register_uri_scheme
- https://bugs.webkit.org/show_bug.cgi?id=94315
-
- Reviewed by Philippe Normand.
-
- For introspection to work correctly, a destroy notify needs to be
- added to register_uri_scheme so that bindings know when to
- finalize the user_data.
-
- * UIProcess/API/gtk/WebKitWebContext.cpp:
- (webkit_web_context_register_uri_scheme):
- (webkitWebContextReceivedURIRequest):
- * UIProcess/API/gtk/WebKitWebContext.h:
- * UIProcess/API/gtk/tests/TestWebKitWebContext.cpp:
-
-2012-08-21 Simon Hausmann <simon.hausmann@nokia.com>
-
- Unreviewed build fix for newer Qt 5: QT += qmltest does not imply QT += testlib anymore, but
- the code here needs QSignalSpy from QTestLib
-
- * UIProcess/API/qt/tests/qmltests/DesktopBehavior.pro:
- * UIProcess/API/qt/tests/qmltests/WebView.pro:
-
-2012-08-18 John Sullivan <sullivan@apple.com>
-
- <https://bugs.webkit.org/show_bug.cgi?id=94486>
- <rdar://problem/12128557>
- REGRESSION (r121482, Lion-only): Closing a popover containing a WKView can crash
-
- Reviewed by Darin Adler.
-
- * UIProcess/API/mac/WKView.mm:
- (-[WKView viewWillMoveToWindow:]):
- Avoid calling the code added in 121482 that ensures that the undo stack is cleaned up
- before the WKView is moved from one window to another when the WKView is being moved
- out of a popover window. This avoids a bug in OS X 10.7 that was fixed in 10.8.
- While this technically reopens a potentially crashing code path that 121482 closed,
- it only reopens it for WKViews that are used for text editing and that are removed
- from an NSPopover at some time earlier than tear-down of the NSPopover.
-
-2012-08-20 Allan Sandfeld Jensen <allan.jensen@nokia.com>
-
- [Qt] Custom tap-highlight-color renders fully opaque
- https://bugs.webkit.org/show_bug.cgi?id=94468
+ [Qt][WK2] Plugins are completely broken with a custom device pixel ratio
+ https://bugs.webkit.org/show_bug.cgi?id=98518
Reviewed by Kenneth Rohde Christiansen.
- Draw tap-highlight-color at 50% transparency, to better match how
- existing WebKit browsers act on custom tap-highlight colors.
-
- * WebProcess/WebPage/TapHighlightController.cpp:
- (WebKit::TapHighlightController::drawRect):
-
-2012-08-20 Carlos Garcia Campos <cgarcia@igalia.com>
-
- [GTK] Replace webkit_web_view_replace_content with webkit_web_view_load_alternate_html
- https://bugs.webkit.org/show_bug.cgi?id=94471
-
- Reviewed by Martin Robinson.
-
- In WebKit1 there's code to prevent that load signals are emitted
- when loading internal custom error pages. We added
- webkit_web_view_replace_content() with the same idea, but it has
- ended up being problematic, because it allows to add any HTML
- content (in WebKit1 we assumed internal error pages never failed
- and always loaded) and it's impossible to know when the load has
- finished. It also required a lot of logic to handle
- replace_content as an especial case, in order to hide the fact
- that it loads content. This patch renames
- webkit_web_view_replace_content() as
- webkit_web_view_load_alternate_html() and emit load events
- normally.
+ Implement painting with scale factor in ShareableBitmap.
+ The backing store of the plugin are still overscaled in MiniBrowser
+ with this patch but this is only the effect of the fake device scale
+ factor defined in qml (1.5). We should probably remove it on desktop.
- * UIProcess/API/gtk/WebKitWebView.cpp:
- (_WebKitWebViewPrivate):
- (webkitWebViewLoadChanged):
- (webkitWebViewLoadFailed):
- (webkitWebViewSetEstimatedLoadProgress):
- (webkitWebViewResourceLoadStarted):
- (webkitWebViewGetLoadingWebResource):
- (webkitWebViewRemoveLoadingWebResource):
- (webkitWebViewResourceLoadFinished):
- (webkit_web_view_load_alternate_html):
- * UIProcess/API/gtk/WebKitWebView.h:
- * UIProcess/API/gtk/docs/webkit2gtk-sections.txt:
- * UIProcess/API/gtk/tests/TestLoaderClient.cpp:
- (testLoadAlternateHTML):
- (beforeAll):
- * UIProcess/API/gtk/tests/TestResources.cpp:
- (beforeAll):
- * UIProcess/API/gtk/tests/TestWebKitWebView.cpp:
- (beforeAll):
- * UIProcess/API/gtk/tests/WebViewTest.cpp:
- (WebViewTest::loadAlternateHTML):
- * UIProcess/API/gtk/tests/WebViewTest.h:
+ * Shared/qt/ShareableBitmapQt.cpp:
+ (WebKit::ShareableBitmap::paint):
-2012-08-20 Mikhail Pozdnyakov <mikhail.pozdnyakov@intel.com>
+2012-10-05 Christophe Dumez <christophe.dumez@intel.com>
- [EFL][WK2] Add unit tests for WKEinaSharedString
- https://bugs.webkit.org/show_bug.cgi?id=94104
+ [EFL] Unskip fullscreen unit tests for EwkView
+ https://bugs.webkit.org/show_bug.cgi?id=98509
Reviewed by Kenneth Rohde Christiansen.
- Added unit tests for WKEinaSharedString class.
+ Update 2 fullscreen unit tests for EwkView so that
+ they don't require a call to ecore_evas_fullscreen_set()
+ to succeed. ecore_evas_fullscreen_set() does not
+ seem to work in Xvfb and causes the tests to hang.
+ With this update, we can now run those tests again.
- * PlatformEfl.cmake:
- * UIProcess/API/efl/tests/test_ewk2_eina_shared_string.cpp: Added.
- (checkString):
+ * UIProcess/API/efl/tests/test_ewk2_view.cpp:
(TEST_F):
-2012-08-20 Carlos Garcia Campos <cgarcia@igalia.com>
+2012-10-05 Carlos Garcia Campos <cgarcia@igalia.com>
- [GTK] Add API to set preferred languages to WebKit2 GTK+
- https://bugs.webkit.org/show_bug.cgi?id=90878
+ [GTK] Test /webkit2/WebKitPrintOperation/print-errors gives runtime critical warnings
+ https://bugs.webkit.org/show_bug.cgi?id=98497
Reviewed by Martin Robinson.
- * UIProcess/API/gtk/WebKitWebContext.cpp:
- (webkit_web_context_set_preferred_languages): Public API to set a
- list of preferred languages sorted from most desirable to least
- desirable.
- * UIProcess/API/gtk/WebKitWebContext.h:
- * UIProcess/API/gtk/docs/webkit2gtk-sections.txt: Add new symbol.
- * UIProcess/API/gtk/tests/TestWebKitWebContext.cpp:
- (testWebContextLanguages):
- (serverCallback):
- (beforeAll):
- (afterAll):
- * UIProcess/API/gtk/tests/WebViewTest.cpp:
- (resourceGetDataCallback):
- (WebViewTest::mainResourceData): Moved from TestWebKitWebContext
- to make it available to all WebViewTests.
- * UIProcess/API/gtk/tests/WebViewTest.h:
- * WebProcess/WebProcess.cpp:
- (WebKit::WebProcess::userPreferredLanguagesChanged): Notify our
- observer that the languages have been overriden.
- * WebProcess/gtk/WebProcessGtk.cpp:
- (WebKit::buildAcceptLanguages): Helper function to build the
- accept languages as specified in RFC 2616.
- (WebKit::setSoupSessionAcceptLanguage): Set the accept-language
- property of the default SoupSession.
- (WebKit::languageChanged): Update the preferred languages in
- SoupSession.
- (WebKit::WebProcess::platformInitializeWebProcess): Add an
- observer to be notified when the list of preferred languages is
- updated.
- (WebKit::WebProcess::platformTerminate): Remove the observer added
- in platformInitializeWebProcess().
-
-2012-08-19 Dan Bernstein <mitz@apple.com>
-
- WebPageProxy::setCursor does not check that the view is still in an active window
- https://bugs.webkit.org/show_bug.cgi?id=94427
-
- Reviewed by Alexey Proskuryakov.
+ The problem is that GTK+ tries to write in the IO channel that has
+ already been closed.
- The Web process may ask to change the cursor when the view is in an active window, but
- if by the time the UI process receives the message, the view is no longer in a window or the
- window is not active , then the cursor should not change.
+ * WebProcess/WebPage/gtk/WebPrintOperationGtk.cpp:
+ (WebKit::WebPrintOperationGtk::print): Finish the surface when
+ printing fails because printing data is invalid.
- * UIProcess/WebPageProxy.cpp:
- (WebKit::WebPageProxy::setCursor): Added a check that the view is in an active window before
- allowing the page to change the cursor.
+2012-10-05 Carlos Garcia Campos <cgarcia@igalia.com>
-2012-08-19 Sheriff Bot <webkit.review.bot@gmail.com>
-
- Unreviewed, rolling out r125972.
- http://trac.webkit.org/changeset/125972
- https://bugs.webkit.org/show_bug.cgi?id=94431
-
- Breaks AppleMac builds (Requested by pfeldman on #webkit).
-
- * UIProcess/API/gtk/WebKitWebContext.cpp:
- * UIProcess/API/gtk/WebKitWebContext.h:
- * UIProcess/API/gtk/docs/webkit2gtk-sections.txt:
- * UIProcess/API/gtk/tests/TestWebKitWebContext.cpp:
- (beforeAll):
- (afterAll):
- * UIProcess/API/gtk/tests/WebViewTest.cpp:
- (WebViewTest::WebViewTest):
- * UIProcess/API/gtk/tests/WebViewTest.h:
- * WebProcess/WebProcess.cpp:
- (WebKit::WebProcess::userPreferredLanguagesChanged):
- * WebProcess/gtk/WebProcessGtk.cpp:
- (WebKit::WebProcess::platformInitializeWebProcess):
- (WebKit::WebProcess::platformTerminate):
-
-2012-08-19 Christophe Dumez <christophe.dumez@intel.com>
-
- [EFL][WK2] Add API unit tests for Web Intents
- https://bugs.webkit.org/show_bug.cgi?id=90454
-
- Reviewed by Kenneth Rohde Christiansen.
-
- Add unit testing for Web intent requests,
- including the "intent,request,new" signal on
- the Ewk_View and the Ewk_Intent API.
-
- * UIProcess/API/efl/ewk_view.h: Fix documentation for argument type of "intent,request,new" signal.
- * UIProcess/API/efl/tests/UnitTestUtils/EWK2UnitTestBase.cpp:
- (EWK2UnitTest::EWK2UnitTestBase::mouseClick): Add utility method to simulate a click at given
- coordinates. This is needed for testing functionality that requires a user gesture.
- (EWK2UnitTest):
- * UIProcess/API/efl/tests/UnitTestUtils/EWK2UnitTestBase.h:
- (EWK2UnitTestBase):
- * UIProcess/API/efl/tests/resources/intent-request.html: Added.
- * UIProcess/API/efl/tests/test_ewk2_intents.cpp:
- (stringSortCb):
- (onIntentReceived):
- (TEST_F):
-
-2012-08-18 Carlos Garcia Campos <cgarcia@igalia.com>
-
- [GTK] Add API to set preferred languages to WebKit2 GTK+
- https://bugs.webkit.org/show_bug.cgi?id=90878
+ [GTK] Test /webkit2/WebKitWebResource/response fails
+ https://bugs.webkit.org/show_bug.cgi?id=98511
Reviewed by Martin Robinson.
- * UIProcess/API/gtk/WebKitWebContext.cpp:
- (webkit_web_context_set_preferred_languages): Public API to set a
- list of preferred languages sorted from most desirable to least
- desirable.
- * UIProcess/API/gtk/WebKitWebContext.h:
- * UIProcess/API/gtk/docs/webkit2gtk-sections.txt: Add new symbol.
- * UIProcess/API/gtk/tests/TestWebKitWebContext.cpp:
- (testWebContextLanguages):
- (serverCallback):
- (beforeAll):
- (afterAll):
- * UIProcess/API/gtk/tests/WebViewTest.cpp:
- (resourceGetDataCallback):
- (WebViewTest::mainResourceData): Moved from TestWebKitWebContext
- to make it available to all WebViewTests.
- * UIProcess/API/gtk/tests/WebViewTest.h:
- * WebProcess/WebProcess.cpp:
- (WebKit::WebProcess::userPreferredLanguagesChanged): Notify our
- observer that the languages have been overriden.
- * WebProcess/gtk/WebProcessGtk.cpp:
- (WebKit::buildAcceptLanguages): Helper function to build the
- accept languages as specified in RFC 2616.
- (WebKit::setSoupSessionAcceptLanguage): Set the accept-language
- property of the default SoupSession.
- (WebKit::languageChanged): Update the preferred languages in
- SoupSession.
- (WebKit::WebProcess::platformInitializeWebProcess): Add an
- observer to be notified when the list of preferred languages is
- updated.
- (WebKit::WebProcess::platformTerminate): Remove the observer added
- in platformInitializeWebProcess().
-
-2012-08-18 Mikhail Pozdnyakov <mikhail.pozdnyakov@intel.com>
-
- [EFL][WK2] ewk_back_forward_list_item properties should be in sync with WebProcessProxy::m_backForwardListItemMap
- https://bugs.webkit.org/show_bug.cgi?id=94248
+ Do not consider the favicon as a resource for the web resources
+ unit tests.
- Reviewed by Kenneth Rohde Christiansen.
-
- Currently ewk_back_forward_list_item properties are initialized from
- WKBackForwardListItemRef once in the constructor and then just stored.
- This is erroneous approach as back forward items can be initialized within
- several iterations, meaning several ipc calls to UI process and several updates
- of WebProcessProxy::m_backForwardListItemMap where the items are stored.
- Hence the values of ewk_back_forward_list_item properties should be updated
- with the corresponding WKBackForwardListItem function invokes every time
- they are called.
-
- * UIProcess/API/efl/ewk_back_forward_list_item.cpp:
- (_Ewk_Back_Forward_List_Item): Data members have to be mutable as assigned being const pointers.
- (_Ewk_Back_Forward_List_Item::_Ewk_Back_Forward_List_Item):
- (ewk_back_forward_list_item_uri_get):
- (ewk_back_forward_list_item_title_get):
- (ewk_back_forward_list_item_original_uri_get):
-
-2012-08-17 Enrica Casucci <enrica@apple.com>
-
- Adding back the first statement of WebProcessMain accidentally
- removed in r125358.
-
- Reviewed by Sam Weinig.
-
- * WebProcess/mac/WebProcessMainMac.mm: Adding back the stripping
- of DYLD_INSERT_LIBRARIES.
-
-2012-08-17 Sudarsana Nagineni <sudarsana.nagineni@linux.intel.com>
-
- [EFL] REGRESSION(r125923): Breaks EFL build
- https://bugs.webkit.org/show_bug.cgi?id=94376
-
- Reviewed by Alexey Proskuryakov.
-
- Fix EFL build break after r125923.
-
- * UIProcess/WebPageProxy.cpp:
- (WebKit::WebPageProxy::didReceiveIntentForFrame):
-
-2012-08-17 Alexey Proskuryakov <ap@apple.com>
-
- Access m_process directly in WebPageProxy.cpp
- https://bugs.webkit.org/show_bug.cgi?id=94363
-
- Reviewed by John Sullivan.
-
- Consistency fix - we don't use accessors when we don't have to, and there is a mix in this file.
-
- * UIProcess/WebPageProxy.cpp:
-
-2012-08-17 Claudio Saavedra <csaavedra@igalia.com>
-
- [GTK] Add WK2 API to get suggested filename for URI responses
- https://bugs.webkit.org/show_bug.cgi?id=92967
-
- Reviewed by Carlos Garcia Campos.
-
- Webcore has API to get the suggested filename for a response, add
- a property and getter for it in WebKitURIResponse.
-
- * UIProcess/API/gtk/WebKitURIResponse.cpp:
- (_WebKitURIResponsePrivate): Add a CString holding the value.
- (webkitURIResponseGetProperty): Add the gobject bits for the
- property.
- (webkit_uri_response_class_init): Install the property.
- (webkit_uri_response_get_suggested_filename): New getter.
- * UIProcess/API/gtk/WebKitURIResponse.h: Declare the public
- method.
- * UIProcess/API/gtk/docs/webkit2gtk-sections.txt: Add the new API
- symbols.
* UIProcess/API/gtk/tests/TestResources.cpp:
- (testWebResourceSuggestedFilename): Test the new API.
- (serverCallback): Add the the content-disposition header
- in one case, in order to test it.
- (beforeAll): Add the new test.
-
-2012-08-17 Mikhail Pozdnyakov <mikhail.pozdnyakov@intel.com>
-
- [EFL][wk2] Add unit tests for back-forward list API
- https://bugs.webkit.org/show_bug.cgi?id=92617
-
- Reviewed by Kenneth Rohde Christiansen.
-
- Added unit tests covering the existing EFL WK2 back-forward list API.
-
- * PlatformEfl.cmake:
- * UIProcess/API/efl/tests/resources/default_test_page.html:
- * UIProcess/API/efl/tests/test_ewk2_back_forward_list.cpp: Added.
- (serverCallbackNavigation):
- (checkItem):
- (urlFromTitle):
- (TEST_F):
-
-2012-08-17 Jeff Miller <jeffm@apple.com>
- UserMessageEncoder::baseEncode() should ASSERT when attempting to encode a non-shareable image
- https://bugs.webkit.org/show_bug.cgi?id=94245
+2012-10-05 Carlos Garcia Campos <cgarcia@igalia.com>
- Reviewed by Alexey Proskuryakov.
-
- It's a programming error if a client attempts to encode an image that has an
- allocated bitmap, but isn't shareable, so we should assert in this case.
-
- * Shared/UserMessageCoders.h:
- (WebKit::UserMessageEncoder::baseEncode):
- Assert if we're trying to encode valid non-shareable image.
-
-2012-08-17 Sudarsana Nagineni <sudarsana.nagineni@linux.intel.com>
-
- [EFL] [WK2] Add unit tests for vibration_client_callbacks_set API
- https://bugs.webkit.org/show_bug.cgi?id=93890
-
- Reviewed by Kenneth Rohde Christiansen.
-
- This patch covers unit testing of the Vibration API as delivered.
-
- * UIProcess/API/efl/tests/test_ewk2_context.cpp:
- (VibrationCbData):
- (vibrateCallback):
- (cancelVibrationCallback):
- (loadVibrationHTMLString):
- (TEST_F):
-
-2012-08-17 Carlos Garcia Campos <cgarcia@igalia.com>
-
- [GTK] Rename WebKitWebView print-requested signal to print
- https://bugs.webkit.org/show_bug.cgi?id=94306
+ REGRESSION (r129989 - r130019): [WK2] TestResources test is failing
+ https://bugs.webkit.org/show_bug.cgi?id=98342
Reviewed by Martin Robinson.
- WebKitWebView::print-requested is inconsistent with the rest of
- the API. It's a true_handled signal that allows users to implement
- their own print dialog, or block printing, or rely on
- defaults. The signal should be WebKitWebView::print like other
- signals (create, close, decide_policy, etc.)
+ Return 404 error in unit tests using a HTTP server for paths not
+ handled by the test. This way all tests should return now a 404
+ for /favicon.ico.
- * UIProcess/API/gtk/WebKitWebView.cpp:
- (webkit_web_view_class_init):
- (webkitWebViewPrintFrame):
- * UIProcess/API/gtk/WebKitWebView.h:
- (_WebKitWebViewClass):
- * UIProcess/API/gtk/tests/TestPrinting.cpp:
- (webViewPrintCallback):
- (testWebViewPrint):
- (beforeAll):
-
-2012-08-17 Sudarsana Nagineni <sudarsana.nagineni@linux.intel.com>
-
- [EFL] [WK2] Free Eina Strbuf with eina_strbuf_free() instead of eina_strbuf_string_free()
- https://bugs.webkit.org/show_bug.cgi?id=94312
-
- Reviewed by Kenneth Rohde Christiansen.
-
- eina_strbuf_string_free() frees the contents of a string buffer but not the
- buffer, so eina_strbuf_free() must be used to free the buffer.
-
- Contents of the buffer has already been take care by stealing it with
- eina_strbuf_string_steal(), so no reason to call eina_strbuf_string_free().
-
- * UIProcess/API/efl/tests/test_ewk2_cookie_manager.cpp:
+ * UIProcess/API/gtk/tests/TestBackForwardList.cpp:
+ (serverCallback):
+ * UIProcess/API/gtk/tests/TestCookieManager.cpp:
+ (serverCallback):
+ * UIProcess/API/gtk/tests/TestLoaderClient.cpp:
+ (serverCallback):
+ * UIProcess/API/gtk/tests/TestResources.cpp:
+ (serverCallback):
+ * UIProcess/API/gtk/tests/TestSSL.cpp:
+ (serverCallback):
+ * UIProcess/API/gtk/tests/TestWebKitPolicyClient.cpp:
+ (serverCallback):
+ * UIProcess/API/gtk/tests/TestWebKitSettings.cpp:
+ (serverCallback):
+ * UIProcess/API/gtk/tests/TestWebKitWebContext.cpp:
(serverCallback):
-2012-08-17 Mikhail Pozdnyakov <mikhail.pozdnyakov@intel.com>
-
- [EFL][WK2] Getting unnecessary EINA_SAFETY_ON_NULL_RETURN_VAL warnings while page navigation
- https://bugs.webkit.org/show_bug.cgi?id=94308
-
- Reviewed by Kenneth Rohde Christiansen.
-
- The reason is that loadClient.didChangeBackForwardList callback is invoked with zero
- arguments which is valid case while page back-forward navigation and means basically
- that the back-froward list has changed but items were not added or deleted.
-
- * UIProcess/API/efl/ewk_back_forward_list.cpp:
- (ewk_back_forward_list_changed):
-
-2012-08-16 Lauro Neto <lauro.neto@openbossa.org>
-
- [Qt] Failure to build with --no-inspector
- https://bugs.webkit.org/show_bug.cgi?id=94148
-
- Reviewed by Noam Rosenthal.
-
- Add guards around usage of inspector functions.
-
- * UIProcess/API/qt/qquickwebview.cpp:
- (QQuickWebViewExperimental::remoteInspectorUrl):
-
-2012-08-16 Jocelyn Turcotte <jocelyn.turcotte@nokia.com>
-
- [Qt] Remove an unused variable
-
- Reviewed by Simon Hausmann.
-
- * UIProcess/API/qt/qquickwebpage.cpp:
- (QQuickWebPagePrivate::QQuickWebPagePrivate):
- * UIProcess/API/qt/qquickwebpage_p_p.h:
- (QQuickWebPagePrivate):
-
-2012-08-16 Jocelyn Turcotte <jocelyn.turcotte@nokia.com>
-
- [Qt][WK2] Change the default cache model to enable the page cache
- https://bugs.webkit.org/show_bug.cgi?id=94221
-
- Reviewed by Simon Hausmann.
-
- The default CacheModelDocumentViewer disables the memory back-forward page cache.
- As uses of applications using QQuickWebView might vary, I'm setting the default to
- CacheModelDocumentBrowser.
- We should eventually expose this in the API to allow serious Web browsers setting it
- to CacheModelPrimaryWebBrowser or to CacheModelDocumentViewer for application tight
- on memory with limited page navigations.
-
- * UIProcess/qt/QtWebContext.cpp:
- (WebKit::QtWebContext::defaultContext):
-
-2012-08-15 Jocelyn Turcotte <jocelyn.turcotte@nokia.com>
-
- [Qt] Make sure that we don't prematurely force the first layout during loading.
- https://bugs.webkit.org/show_bug.cgi?id=94106
-
- Reviewed by Kenneth Rohde Christiansen.
-
- This would have the nasty effect that the frame loader would report the first layout
- before loadCommitted was reported. This would resume the rendering engine prematurely,
- showing blank content and reporting an empty contents size.
-
- * WebProcess/WebPage/WebPage.cpp:
- (WebKit::WebPage::setFixedLayoutSize):
-
-2012-08-16 Marcelo Lira <marcelo.lira@openbossa.org>
-
- [Qt] Input method hints are not being set.
- https://bugs.webkit.org/show_bug.cgi?id=92386
-
- Reviewed by Kenneth Rohde Christiansen.
-
- Input method hints for an editable element must be obtained from a proper
- HTML element. If the editable element is a complex one, it will have elements
- in the Shadow DOM, and it's one of those that will be returned as the root
- editable element. This works for editable DIVs, but not for INPUT elements.
- Using Element::shadowHost() on the root editable element will provide the
- needed HTML element, and for further clarity a method that does this was added
- to FrameSelection.
-
- Added an API test to the Qt port regarding the correct setting
- of input method hints information on INPUT HTML tags.
-
- * UIProcess/API/qt/tests/html/inputmethod.html:
- * UIProcess/API/qt/tests/qquickwebview/tst_qquickwebview.cpp:
- (tst_QQuickWebView):
- (tst_QQuickWebView::inputMethodHints):
- * WebProcess/WebPage/WebPage.cpp:
- (WebKit::WebPage::editorState):
-
-2012-08-16 Zeno Albisser <zeno@webkit.org>
-
- Make GraphicsSurface double buffered by default.
- https://bugs.webkit.org/show_bug.cgi?id=93252
-
- Create only a single GraphicsSurface per canvas
- on both supported platforms Mac/Linux.
- The GraphicsSurface on Mac internally uses two IOSurface
- to provide a front and a back buffer.
- The GLX implementation of GraphicsSurface uses
- an XWindow which already provides a front and a back buffer.
-
- Reviewed by Noam Rosenthal.
-
- * Shared/ShareableSurface.h:
- (Handle):
- Change the type of GraphicsSurface token to uint64_t.
- * UIProcess/CoordinatedGraphics/LayerTreeCoordinatorProxy.cpp:
- (WebKit::LayerTreeCoordinatorProxy::syncCanvas):
- Add a parameter that denotes the current front buffer of the
- GraphicsSurface.
- * UIProcess/CoordinatedGraphics/LayerTreeCoordinatorProxy.h:
- (LayerTreeCoordinatorProxy):
- * UIProcess/CoordinatedGraphics/LayerTreeCoordinatorProxy.messages.in:
- * UIProcess/CoordinatedGraphics/LayerTreeRenderer.cpp:
- (WebKit::LayerTreeRenderer::syncCanvas):
- * UIProcess/CoordinatedGraphics/LayerTreeRenderer.h:
- (LayerTreeRenderer):
- * WebProcess/WebPage/CoordinatedGraphics/CoordinatedGraphicsLayer.cpp:
- (WebCore::CoordinatedGraphicsLayer::syncCanvas):
- * WebProcess/WebPage/CoordinatedGraphics/CoordinatedGraphicsLayer.h:
- (CoordinatedGraphicsLayerClient):
- * WebProcess/WebPage/CoordinatedGraphics/LayerTreeCoordinator.cpp:
- (WebKit::LayerTreeCoordinator::syncCanvas):
- * WebProcess/WebPage/CoordinatedGraphics/LayerTreeCoordinator.h:
- (LayerTreeCoordinator):
-
-2012-08-16 Pierre Rossi <pierre.rossi@gmail.com>
-
- [Qt] Remove FontQt4, HAVE_QRAWFONT flag and the related dead code
- https://bugs.webkit.org/show_bug.cgi?id=93960
-
- Reviewed by Simon Hausmann.
+2012-10-05 Carlos Garcia Campos <cgarcia@igalia.com>
- Following the removal of Qt 4 support from trunk in r124879.
+ [WK2][SOUP] Assertion hit in WebKit::DownloadManager::downloadFinished() when download fails
+ https://bugs.webkit.org/show_bug.cgi?id=97565
- * WebProcess/WebProcess.cpp:
- (WebKit::WebProcess::getWebCoreStatistics):
+ Reviewed by Gustavo Noronha Silva.
-2012-08-16 Christophe Dumez <christophe.dumez@intel.com>
+ Make sure to notify the downlaod client that the response has been
+ received when the newly created download has already been added to
+ the DownloadManager downloads map.
- [EFL][WK2] Add unit tests for Web intent registration
- https://bugs.webkit.org/show_bug.cgi?id=94133
+ * WebProcess/Downloads/soup/DownloadSoup.cpp:
+ (WebKit::DownloadClient::DownloadClient): Initialize
+ m_handleResponseLaterID.
+ (WebKit::DownloadClient::~DownloadClient): Remove the source for
+ the delayed response notification if it hasn't been triggered.
+ (WebKit::DownloadClient::didReceiveData): If response hasn't been
+ handled yet, remove the source for the delayed response
+ notification and handle the resource before start writing the data
+ received to the output stream.
+ (WebKit::DownloadClient::handleResponse): Call
+ didReceiveResponse() with the delayed response.
+ (WebKit::DownloadClient::handleResponseLaterCallback): Call
+ handleResponse().
+ (WebKit::DownloadClient::handleResponseLater): Schedule an idle
+ callback to handle the response later, to make sure the download
+ has been added to the downloads map.
+ (WebKit::Download::startWithHandle): Call handleResponseLater()
+ with the given response to handle the response when the download
+ has been added to the downloads map.
+
+2012-10-05 Jongseok Yang <js45.yang@samsung.com>
+
+ [EFL][WK2] Remove "web" word from ewk_web_error APIs
+ https://bugs.webkit.org/show_bug.cgi?id=97886
- Reviewed by Kenneth Rohde Christiansen.
+ Reviewed by Gyuyoung Kim.
- Add unit tests for Web Intent service registration.
- This tests the "intent,service,register" signaling
- on the Ewk_View as well as Ewk_Intent_Service.
+ Remove "web" word from ewk_web_error APIs.
+ "web" word was redundant because "ewk" means "EFL WebKit" and WK APIs for error does not have "web" word.
* PlatformEfl.cmake:
- * UIProcess/API/efl/tests/resources/intent-service.html: Added.
- * UIProcess/API/efl/tests/test_ewk2_intents.cpp: Added.
- (onIntentServiceRegistration):
- (TEST_F):
-
-2012-08-16 Marja Hölttä <marja@chromium.org>
-
- FormController, WebHistoryItem: Enable reading selected file names from document state
- https://bugs.webkit.org/show_bug.cgi?id=91231
-
- Reviewed by Jochen Eisinger.
-
- This change enables Chromium to set up file permissions properly when
- the session restore feature restores a page with selected files.
-
- * win/WebKit2.def: Exported FormController::getReferencedFilePaths and HistoryController::saveDocumentAndScrollState.
-
-2012-08-15 Ryosuke Niwa <rniwa@webkit.org>
-
- Update manual tests and comments to refer to TestRunner instead of LayoutTestController
- https://bugs.webkit.org/show_bug.cgi?id=94168
-
- Reviewed by Kent Tamura.
-
- * Shared/WebPreferencesStore.cpp:
- (WebKit::WebPreferencesStore::getBoolValueForKey):
-
-2012-08-15 Bruno de Oliveira Abinader <bruno.abinader@basyskom.com>
-
- [css3-text] Add CSS3 Text decoration compile flag
- https://bugs.webkit.org/show_bug.cgi?id=93863
-
- Reviewed by Julien Chaffraix.
-
- This patch handles the compile flag implementation, which will come disabled by
- default, thus not exposing the CSS3 text decoration features to the web, unless
- when explicitly enabling it with "--css3-text-decoration" build parameter.
-
- * Configurations/FeatureDefines.xcconfig:
-
-2012-08-15 Sheriff Bot <webkit.review.bot@gmail.com>
-
- Unreviewed, rolling out r125687.
- http://trac.webkit.org/changeset/125687
- https://bugs.webkit.org/show_bug.cgi?id=94147
-
- It broke the whole world (Requested by Ossy_night on #webkit).
-
- * WebProcess/Plugins/Netscape/NPRuntimeObjectMap.cpp:
- (WebKit::NPRuntimeObjectMap::convertJSValueToNPVariant):
-
-2012-08-15 Beth Dakin <bdakin@apple.com>
-
- https://bugs.webkit.org/show_bug.cgi?id=93693
- [WK2] REGRESSION(125091): pixel results don't sow scrollbars
- anymore
-
- Reviewed by Sam Weinig.
-
- This is a regression from http://trac.webkit.org/changeset/125091
- in which I failed to noticed that
- WKBundlePageCreateSnapshotInViewCoordinates() did actually do
- something different than
- WKBundlePageCreateSnapshotInDocumentCoordinates(). Specifically,
- it used ScrollView::paint() to paint instead of
- FrameView::paintContents(). So this patch restores that
- functionality by adding a value to SnapshotOptions indicating
- whether the snapshot should be taken in ViewCoordinates
- (otherwise it defaults to DocumentCoordinates).
-
- * Shared/API/c/WKImage.h:
- * Shared/API/c/WKSharedAPICast.h:
- (WebKit::toSnapshotOptions):
- * Shared/ImageOptions.h:
- * WebProcess/WebPage/WebPage.cpp:
- (WebKit::WebPage::scaledSnapshotWithOptions):
-
- Even though we plan to deprecate this API, it should keep doing
- the right thing until it's gone.
- * WebProcess/InjectedBundle/API/c/WKBundlePage.cpp:
- (WKBundlePageCreateSnapshotInViewCoordinates):
-
-2012-08-15 Brady Eidson <beidson@apple.com>
-
- Removing a plug-in element from a page opened in a background tab in Safari crashes
- <rdar://problem/12057991> and https://bugs.webkit.org/show_bug.cgi?id=93913
-
- Reviewed by Beth Dakin.
-
- This only happens in WebKit2 with asynchronous plug-in initialization enabled.
-
- * WebProcess/Plugins/PluginProxy.cpp:
- (WebKit::PluginProxy::destroy): Null-check m_connection, as it might not have been created yet.
-
- * win/WebKit2.def: Export Page::setCanStartMedia for InternalSettings/DRT use.
-
-2012-08-14 Mark Hahnenberg <mhahnenberg@apple.com>
-
- Change behavior of MasqueradesAsUndefined to better accommodate DFG changes
- https://bugs.webkit.org/show_bug.cgi?id=93884
-
- Reviewed by Geoffrey Garen.
-
- With some upcoming changes to the DFG to remove uses of ClassInfo, we will be changing the behavior of
- MasqueradesAsUndefined. In order to make this change consistent across all of our execution engines,
- we will make this change to MasqueradesAsUndefined as a separate patch. After this patch, MasqueradesAsUndefined
- objects will only masquerade as undefined in their original context (i.e. their original JSGlobalObject).
- For example, if an object that masquerades as undefined in frame A is passed to frame B, it will not
- masquerade as undefined within frame B, but it will continue to masquerade in frame A.
-
- * WebProcess/Plugins/Netscape/NPRuntimeObjectMap.cpp:
- (WebKit::NPRuntimeObjectMap::convertJSValueToNPVariant): Passing ExecState to toBoolean call.
-
-2012-08-15 Mikhail Pozdnyakov <mikhail.pozdnyakov@intel.com>
-
- [EFL][WK2] Refactoring: start using WKEinaSharedString in ewk_ classes
- https://bugs.webkit.org/show_bug.cgi?id=93964
-
- Reviewed by Kenneth Rohde Christiansen.
-
- Started using WKEinaSharedString where it is advisable.
-
- * UIProcess/API/cpp/efl/WKEinaSharedString.cpp:
- (WKEinaSharedString::operator==):
- * UIProcess/API/cpp/efl/WKEinaSharedString.h:
- * UIProcess/API/efl/ewk_download_job.cpp:
- (_Ewk_Download_Job):
- (_Ewk_Download_Job::_Ewk_Download_Job):
- (_Ewk_Download_Job::~_Ewk_Download_Job):
- (ewk_download_job_destination_set):
- (ewk_download_job_suggested_filename_set):
- * UIProcess/API/efl/ewk_intent.cpp:
- (_Ewk_Intent):
- (_Ewk_Intent::_Ewk_Intent):
- (_Ewk_Intent::~_Ewk_Intent):
- (ewk_intent_action_get):
- (ewk_intent_type_get):
- (ewk_intent_service_get):
- * UIProcess/API/efl/ewk_intent_service.cpp:
- (_Ewk_Intent_Service):
- (_Ewk_Intent_Service::_Ewk_Intent_Service):
- (_Ewk_Intent_Service::~_Ewk_Intent_Service):
- (ewk_intent_service_action_get):
- (ewk_intent_service_type_get):
- (ewk_intent_service_href_get):
- (ewk_intent_service_title_get):
- (ewk_intent_service_disposition_get):
- * UIProcess/API/efl/ewk_navigation_policy_decision.cpp:
- (_Ewk_Navigation_Policy_Decision):
- (_Ewk_Navigation_Policy_Decision::_Ewk_Navigation_Policy_Decision):
- (_Ewk_Navigation_Policy_Decision::~_Ewk_Navigation_Policy_Decision):
- * UIProcess/API/efl/ewk_url_request.cpp:
- (_Ewk_Url_Request):
- (_Ewk_Url_Request::_Ewk_Url_Request):
- (_Ewk_Url_Request::~_Ewk_Url_Request):
- (ewk_url_request_url_get):
- (ewk_request_cookies_first_party_get):
- (ewk_url_request_http_method_get):
- * UIProcess/API/efl/ewk_url_response.cpp:
- (_Ewk_Url_Response):
- (_Ewk_Url_Response::_Ewk_Url_Response):
- (_Ewk_Url_Response::~_Ewk_Url_Response):
- (ewk_url_response_url_get):
- (ewk_url_response_mime_type_get):
+ * UIProcess/API/efl/EWebKit2.h:
+ * UIProcess/API/efl/ewk_context_download_client.cpp:
+ (didFail):
+ * UIProcess/API/efl/ewk_cookie_manager.cpp:
+ (getAcceptPolicyCallback):
+ (getHostnamesWithCookiesCallback):
+ * UIProcess/API/efl/ewk_cookie_manager.h:
+ * UIProcess/API/efl/ewk_download_job_private.h:
+ * UIProcess/API/efl/ewk_error.cpp: Renamed from Source/WebKit2/UIProcess/API/efl/ewk_web_error.cpp.
+ (_Ewk_Error):
+ (_Ewk_Error::_Ewk_Error):
+ (_Ewk_Error::~_Ewk_Error):
+ (ewk_error_free):
+ (ewk_error_type_get):
+ (ewk_error_url_get):
+ (ewk_error_code_get):
+ (ewk_error_description_get):
+ (ewk_error_cancellation_get):
+ (ewk_error_new):
+ * UIProcess/API/efl/ewk_error.h: Renamed from Source/WebKit2/UIProcess/API/efl/ewk_web_error.h.
+ * UIProcess/API/efl/ewk_error_private.h: Renamed from Source/WebKit2/UIProcess/API/efl/ewk_web_error_private.h.
* UIProcess/API/efl/ewk_view.cpp:
- (_Ewk_View_Private_Data):
- (_Ewk_View_Private_Data::_Ewk_View_Private_Data):
- (_Ewk_View_Private_Data::~_Ewk_View_Private_Data):
- (ewk_view_uri_update):
- (ewk_view_title_get):
- (ewk_view_theme_set):
- (ewk_view_setting_encoding_custom_get):
- (ewk_view_setting_encoding_custom_set):
- * UIProcess/API/efl/ewk_web_error.cpp:
- (_Ewk_Web_Error):
- (_Ewk_Web_Error::_Ewk_Web_Error):
- (_Ewk_Web_Error::~_Ewk_Web_Error):
- (ewk_web_error_url_get):
- (ewk_web_error_description_get):
- * UIProcess/API/efl/ewk_web_resource.cpp:
- (_Ewk_Web_Resource):
- (_Ewk_Web_Resource::_Ewk_Web_Resource):
- (_Ewk_Web_Resource::~_Ewk_Web_Resource):
-
-2012-08-15 Christophe Dumez <christophe.dumez@intel.com>
-
- [WK2] Add support for Web Intents MessagePorts
- https://bugs.webkit.org/show_bug.cgi?id=89072
-
- Reviewed by Kenneth Rohde Christiansen.
-
- Add support for WebIntents MessagePorts in WebKit2.
- MessagePorts can be passed with a Web Intent in
- order to open a direct communication channel
- between the Web application and the intent service.
-
- This functionality is already supported by WebKit 1.
-
- This patch introduces a new InjectedBundleIntent
- class which wraps a WebCore::Intent. This way
- information regarding the MessagePorts in a Web
- Intent is kept when using an injected bundle.
-
- For the UIProcess, WebIntentData now carries
- identifiers for the MessagePorts which can go over
- IPC. Those identifiers map to actual MessagePorts
- stored in the Web process. This way, when the UI
- delivers an intent to a frame, we can get back the
- corresponding MessagePorts from the Web process
- before delivering the intent to the DOMWindow.
-
- This functionality is already tested by:
-
- - webintents/web-intents-invoke-port.html
- - webintents/web-intents-obj-constructor.html
-
- * CMakeLists.txt:
- * GNUmakefile.list.am:
- * Shared/API/c/WKBase.h:
- * Shared/APIObject.h:
- * Shared/IntentData.cpp: Add MessagePort identifiers.
- (WebKit::IntentData::IntentData):
- (WebKit::IntentData::encode):
- (WebKit::IntentData::decode):
- * Shared/IntentData.h:
- (IntentData):
- * Target.pri:
- * UIProcess/API/C/WKIntentData.cpp: Rename WKIntentDataCopyExtra() to
- WKIntentDataCopyExtraValue() for clarity.
- (WKIntentDataCopyExtraValue):
- * UIProcess/API/C/WKIntentData.h: Remove WKIntentDataCreate() function now
- that WTR uses WKBundleIntentCreate() instead.
- * UIProcess/API/efl/ewk_intent.cpp:
- (ewk_intent_extra_get): Use WKIntentDataCopyExtraValue() instead of
- WKIntentDataCopyExtra() since it was renamed.
- * UIProcess/WebIntentData.cpp:
- (WebKit::WebIntentData::WebIntentData):
- (WebKit::WebIntentData::~WebIntentData): Remove MessagePorts from WebProcess upon
- WebIntentData destruction.
- (WebKit):
- (WebKit::WebIntentData::extras):
- * UIProcess/WebIntentData.h:
- (WebKit):
- (WebKit::WebIntentData::create):
- (WebIntentData):
- * UIProcess/WebPageProxy.cpp:
- (WebKit::WebPageProxy::didReceiveIntentForFrame):
- * UIProcess/WebProcessProxy.cpp:
- (WebKit):
- (WebKit::WebProcessProxy::removeMessagePortChannel):
- * UIProcess/WebProcessProxy.h:
- (WebProcessProxy):
- * WebProcess/InjectedBundle/API/c/WKBundleAPICast.h:
- (WebKit):
- * WebProcess/InjectedBundle/API/c/WKBundleIntent.cpp: Copied from Source/WebKit2/UIProcess/API/C/WKIntentData.cpp.
- (WKBundleIntentGetTypeID):
- (WKBundleIntentCreate):
- (WKBundleIntentCopyAction):
- (WKBundleIntentCopyType):
- (WKBundleIntentCopyService):
- (WKBundleIntentCopySuggestions):
- (WKBundleIntentCopyExtraValue):
- (WKBundleIntentCopyExtras):
- (WKBundleIntentMessagePortCount):
- * WebProcess/InjectedBundle/API/c/WKBundleIntent.h: Copied from Source/WebKit2/UIProcess/API/C/WKIntentData.h.
- * WebProcess/InjectedBundle/API/c/WKBundleIntentRequest.cpp:
- (WKBundleIntentRequestCopyIntent):
- * WebProcess/InjectedBundle/API/c/WKBundleIntentRequest.h:
- * WebProcess/InjectedBundle/API/c/WKBundlePage.cpp:
- (WKBundlePageDeliverIntentToFrame):
- * WebProcess/InjectedBundle/API/c/WKBundlePage.h:
- * WebProcess/InjectedBundle/InjectedBundleIntent.cpp: Copied from Source/WebKit2/UIProcess/WebIntentData.cpp.
- (WebKit):
- (WebKit::InjectedBundleIntent::create):
- (WebKit::InjectedBundleIntent::InjectedBundleIntent):
- (WebKit::InjectedBundleIntent::action):
- (WebKit::InjectedBundleIntent::payloadType):
- (WebKit::InjectedBundleIntent::service):
- (WebKit::InjectedBundleIntent::data):
- (WebKit::InjectedBundleIntent::extra):
- (WebKit::InjectedBundleIntent::extras):
- (WebKit::InjectedBundleIntent::suggestions):
- * WebProcess/InjectedBundle/InjectedBundleIntent.h: Copied from Source/WebKit2/UIProcess/WebIntentData.h.
- (WebKit):
- (InjectedBundleIntent):
- (WebKit::InjectedBundleIntent::coreIntent):
- (WebKit::InjectedBundleIntent::type):
- * WebProcess/InjectedBundle/InjectedBundleIntentRequest.cpp:
- (WebKit::InjectedBundleIntentRequest::intent):
- * WebProcess/InjectedBundle/InjectedBundleIntentRequest.h:
- (WebKit):
- (InjectedBundleIntentRequest):
- * WebProcess/WebPage/WebFrame.cpp:
- (WebKit::WebFrame::deliverIntent):
- (WebKit):
- * WebProcess/WebPage/WebFrame.h:
- (WebCore):
- (WebFrame):
- * WebProcess/WebPage/WebPage.cpp:
- (WebKit):
- (WebKit::WebPage::deliverCoreIntentToFrame):
- * WebProcess/WebPage/WebPage.h:
- (WebCore):
- (WebPage):
- * WebProcess/WebProcess.cpp: Store MessagePorts in WebProcess and keep mapping with
- their identifiers.
- (WebKit):
- (WebKit::WebProcess::addMessagePortChannel):
- (WebKit::WebProcess::messagePortChannel):
- (WebKit::WebProcess::removeMessagePortChannel):
- * WebProcess/WebProcess.h:
- (WebCore):
- (WebProcess):
- * WebProcess/WebProcess.messages.in:
-
-2012-08-14 Adam Barth <abarth@webkit.org>
-
- Delete Frame::domWindow() and Frame::existingDOMWindow()
- https://bugs.webkit.org/show_bug.cgi?id=93990
-
- Reviewed by Eric Seidel.
-
- * WebProcess/WebPage/WebFrame.cpp:
- (WebKit::WebFrame::deliverIntent):
- (WebKit::WebFrame::pendingUnloadCount):
-
-2012-08-14 Lauro Neto <lauro.neto@openbossa.org>
-
- Convert signals/slots to Q_* macros.
-
- [Qt] Use Q_SLOTS and Q_SIGNALS instead of slots and signals
- https://bugs.webkit.org/show_bug.cgi?id=93996
-
- Reviewed by Kenneth Rohde Christiansen.
-
- Change usage of keyword-conflicting 'signals' and 'slots' for
- Q_SIGNALS and Q_SLOTS macro.
-
- * UIProcess/API/qt/qwebkittest_p.h:
- * UIProcess/API/qt/tests/inspectorserver/tst_inspectorserver.cpp:
- (tst_InspectorServer):
- * UIProcess/API/qt/tests/publicapi/tst_publicapi.cpp:
- (tst_publicapi):
- * UIProcess/API/qt/tests/qquickwebview/tst_qquickwebview.cpp:
- (tst_QQuickWebView):
- * UIProcess/API/qt/tests/qrawwebview/tst_qrawwebview.cpp:
- (WebView):
- (tst_qrawwebview):
- * UIProcess/API/qt/tests/util.cpp:
- (LoadSpy):
- * UIProcess/API/qt/tests/util.h:
- (LoadStartedCatcher):
- * UIProcess/InspectorServer/qt/WebSocketServerQt.h:
- (QtTcpServerHandler):
- * UIProcess/qt/QtDialogRunner.cpp:
- (DialogContextBase):
- (DialogContextObject):
- (BaseAuthenticationContextObject):
- (CertificateVerificationDialogContextObject):
- (FilePickerContextObject):
- (DatabaseQuotaDialogContextObject):
- * UIProcess/qt/QtDialogRunner.h:
- (QtDialogRunner):
- * UIProcess/qt/QtWebPageEventHandler.h:
- (QtWebPageEventHandler):
- * WebProcess/Downloads/qt/QtFileDownloader.h:
-
-2012-08-14 Alexey Proskuryakov <ap@apple.com>
-
- [WK2] Track multiple Web Processes per context
- https://bugs.webkit.org/show_bug.cgi?id=93915
-
- Reviewed by Sam Weinig.
-
- * UIProcess/Downloads/DownloadProxy.cpp:
- (WebKit::DownloadProxy::didReceiveAuthenticationChallenge): Downloads don't work
- yet, added a FIXME.
-
- * UIProcess/WebContext.cpp:
- (WebKit::WebContext::deprecatedSharedProcess): Renamed from process(), added an
- assertion that this is only used in single proces mode.
- (WebKit::WebContext::textCheckerStateChanged): Abstract out access to web processes.
- (WebKit::WebContext::ensureSharedWebProcess): Renamed ensureWebProcess() for clarity.
- (WebKit::WebContext::createNewWebProcess): Extracted code for creating a process
- from ensureWebProcess().
- (WebKit::WebContext::warmInitialProcess): Create the process more explicitly.
- (WebKit::WebContext::enableProcessTermination): Iterate over all processes.
- (WebKit::WebContext::shouldTerminate): Updated assertion.
- (WebKit::WebContext::processDidFinishLaunching): Changed to use process argument
- instead of m_process.
- (WebKit::WebContext::disconnectProcess): Updated code forto use m_processes.
- (WebKit::WebContext::createWebPage): Handle both process policies (initial support
- for multi-process).
- (WebKit::WebContext::relaunchProcessIfNecessary): Added cases for both policies.
- (WebKit::WebContext::download): Ditto.
- (WebKit::WebContext::postMessageToInjectedBundle): Ditto.
- (WebKit::WebContext::didReceiveSyncMessage): Fixed whitespace.
- (WebKit::WebContext::getWebCoreStatistics): Added cases for both policies.
-
- * UIProcess/WebContext.h:
- (WebKit::WebContext::sendToAllProcesses):
- (WebKit::WebContext::sendToAllProcessesRelaunchingThemIfNecessary):
- Send to all processes. Changed return type to void, since no caller checked it.
-
- * UIProcess/WebProcessProxy.cpp: (WebKit::WebProcessProxy::createWebPage): Removed
- an assertion that assumed one process per context.
-
- * UIProcess/WebTextChecker.cpp: (WebKit::updateStateForAllWebProcesses): Updated
- to use a WebContext method.
-
-2012-08-14 Mikhail Pozdnyakov <mikhail.pozdnyakov@intel.com>
-
- WebKitTestRunner needs layoutTestController.dumpResourceLoadCallbacks
- https://bugs.webkit.org/show_bug.cgi?id=42332
-
- Reviewed by Kenneth Rohde Christiansen.
-
- Added new getters to WKURL, WKURLRequest, WKURLResponse so that it is possible
- to dump information necessary for the tests passing.
-
- * Shared/API/c/WKURL.cpp:
- (WKURLCopyPath):
- * Shared/API/c/WKURL.h:
- * Shared/API/c/WKURLRequest.cpp:
- (WKURLRequestCopyFirstPartyForCookies):
- (WKURLRequestCopyHTTPMethod):
- * Shared/API/c/WKURLRequest.h:
- * Shared/API/c/WKURLResponse.cpp:
- (WKURLResponseHTTPStatusCode):
- * Shared/API/c/WKURLResponse.h:
- * Shared/WebURL.h:
- (WebKit::WebURL::path):
- (WebURL):
-
-2012-08-14 Allan Sandfeld Jensen <allan.jensen@nokia.com>
-
- [Qt] UpdateAtlas is wasting memory
- https://bugs.webkit.org/show_bug.cgi?id=93606
-
- Reviewed by Jocelyn Turcotte.
-
- Imported and QAreaAllocator from Qt3D and ported it to WebCore style,
- and use this new area allocator to replace old one from UpdateAtlas.
-
- * CMakeLists.txt:
- * Target.pri:
- * WebProcess/WebPage/AreaAllocator.cpp: Added.
- (WebKit::AreaAllocator::AreaAllocator):
- (WebKit::AreaAllocator::~AreaAllocator):
- (WebKit::AreaAllocator::expand):
- (WebKit::AreaAllocator::expandBy):
- (WebKit::AreaAllocator::release):
- (WebKit::AreaAllocator::overhead):
- (WebKit::AreaAllocator::roundAllocation):
- (WebKit::GeneralAreaAllocator::GeneralAreaAllocator):
- (WebKit::GeneralAreaAllocator::~GeneralAreaAllocator):
- (WebKit::GeneralAreaAllocator::freeNode):
- (WebKit::GeneralAreaAllocator::expand):
- (WebKit::fitsWithin):
- (WebKit::GeneralAreaAllocator::allocate):
- (WebKit::GeneralAreaAllocator::allocateFromNode):
- (WebKit::GeneralAreaAllocator::splitNode):
- (WebKit::GeneralAreaAllocator::updateLargestFree):
- (WebKit::GeneralAreaAllocator::release):
- (WebKit::GeneralAreaAllocator::overhead):
- * WebProcess/WebPage/AreaAllocator.h: Added.
- (WebCore::nextPowerOfTwo):
- (AreaAllocator):
- (WebKit::AreaAllocator::size):
- (WebKit::AreaAllocator::minimumAllocation):
- (WebKit::AreaAllocator::setMinimumAllocation):
- (WebKit::AreaAllocator::margin):
- (WebKit::AreaAllocator::setMargin):
- (GeneralAreaAllocator):
- (Node):
- * WebProcess/WebPage/CoordinatedGraphics/LayerTreeCoordinator.cpp:
- (WebKit::LayerTreeCoordinator::renderNextFrame):
- (WebKit::LayerTreeCoordinator::beginContentUpdate):
- * WebProcess/WebPage/CoordinatedGraphics/LayerTreeCoordinator.h:
- (LayerTreeCoordinator):
- * WebProcess/WebPage/UpdateAtlas.cpp:
- (WebKit::UpdateAtlas::UpdateAtlas):
- (WebKit::UpdateAtlas::buildLayoutIfNeeded):
- (WebKit::UpdateAtlas::didSwapBuffers):
- (WebKit::UpdateAtlas::beginPaintingOnAvailableBuffer):
- * WebProcess/WebPage/UpdateAtlas.h:
- (UpdateAtlas):
-
-2012-08-14 Sergio Villar Senin <svillar@igalia.com>
-
- [GTK] REGRESSION (r122428) WebKit2APITests/TestWebKitFindController fails "next" test
- https://bugs.webkit.org/show_bug.cgi?id=91083
-
- Reviewed by Carlos Garcia Campos.
-
- After r122428 search_next()/search_prev() should return just 1 match
- if the text is found.
-
- * UIProcess/API/gtk/tests/TestWebKitFindController.cpp:
- (testFindControllerNext):
- (testFindControllerPrevious):
-
-2012-08-13 Carlos Garcia Campos <cgarcia@igalia.com>
-
- [GTK] Implement smart separators for context menu in WebKit2 GTK+
- https://bugs.webkit.org/show_bug.cgi?id=90449
-
- Reviewed by Martin Robinson.
-
- Don't add to the context menu separators that are at the very
- beginning or end of the menu. Once the context menu is shown,
- monitor menu items visibility to hide or show separators to make
- sure they never appear in the context menu unless they are between
- two visible items.
-
- * UIProcess/API/gtk/tests/TestContextMenu.cpp:
- (testContextMenuSmartSeparators):
- (beforeAll):
- * UIProcess/gtk/WebContextMenuProxyGtk.cpp:
- (WebKit::contextMenuItemVisibilityChanged):
- (WebKit):
- (WebKit::WebContextMenuProxyGtk::append):
- (WebKit::WebContextMenuProxyGtk::populate):
-
-2012-08-14 Kihong Kwon <kihong.kwon@samsung.com>
-
- [WK2] Add getter for capture attribute of input element
- https://bugs.webkit.org/show_bug.cgi?id=93710
-
- Reviewed by Antonio Gomes.
-
- Add getter for capture attribute to WKOpenPanelParameters to support HTML Media Capture.
-
- * Shared/WebCoreArgumentCoders.cpp:
- (CoreIPC::::encode):
- (CoreIPC::::decode):
- * Shared/WebOpenPanelParameters.cpp:
- (WebKit):
- (WebKit::WebOpenPanelParameters::capture):
- * Shared/WebOpenPanelParameters.h:
- (WebOpenPanelParameters):
- * UIProcess/API/C/WKOpenPanelParameters.cpp:
- (WKOpenPanelParametersCopyCapture):
- * UIProcess/API/C/WKOpenPanelParameters.h:
-
-2012-08-13 Tom Sepez <tsepez@chromium.org>
-
- [chromium] release FrameLoaderClientImpl::m_pluginWidget refptr upon Plugin Document detach.
- https://bugs.webkit.org/show_bug.cgi?id=93283
-
- Reviewed by Eric Seidel.
-
- Chromium has a refptr that needs to be NULLed at this point.
-
- Change the client redirectDataToPlugin method(s) to expect the possibility of
- a NULL argument, keeping existing behaviour otherwise.
-
- * WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
- (WebKit::WebFrameLoaderClient::redirectDataToPlugin):
-
-2012-08-13 Raphael Kubo da Costa <rakuco@webkit.org>
-
- [EFL] Unreviewed bot fix after r125467.
-
- * PlatformEfl.cmake: Make the WK2 tests link against glib, gobject
- and gio as well.
-
-2012-08-13 Raphael Kubo da Costa <rakuco@webkit.org>
-
- [EFL] Unreviewed attempt at fixing the bots after r125467.
-
- * PlatformEfl.cmake: Link against GIO and GObject due to the usage
- of libsoup.
-
-2012-08-11 Raphael Kubo da Costa <rakuco@webkit.org>
-
- [CMake] Rewrite FindLibSoup2.cmake.
- https://bugs.webkit.org/show_bug.cgi?id=93191
-
- Reviewed by Rob Buis.
-
- * PlatformEfl.cmake: Use LIBSOUP_FOO instead of LIBSOUP24_FOO, and
- do not use LIBSOUP24_LDFLAGS, as it is not needed anymore.
-
-2012-08-13 Alexey Proskuryakov <ap@apple.com>
-
- [WK2] Move a remaining per-process message from WebContext to WebProcessProxy
- https://bugs.webkit.org/show_bug.cgi?id=93883
-
- More Windows build fixing.
-
- * UIProcess/WebContext.cpp:
- (WebKit::WebContext::dummy):
-
-2012-08-13 Alexey Proskuryakov <ap@apple.com>
-
- [WK2] Move a remaining per-process message from WebContext to WebProcessProxy
- https://bugs.webkit.org/show_bug.cgi?id=93883
-
- More Windows build fix
-
- * UIProcess/WebContext.cpp:
- (WebKit::WebPage::dummy):
- * UIProcess/WebContext.h: (WebContext):
- * UIProcess/WebContext.messages.in:
- Add a dummy sync message - the same workaround is already used in WebPage.
-
-2012-08-13 Brady Eidson <beidson@apple.com>
-
- With asynchronous plug-in initialization, WebProcess and PluginProcess can deadlock
- <rdar://problem/12062125> and https://bugs.webkit.org/show_bug.cgi?id=93894
-
- Reviewed by Alexey Proskuryakov.
-
- A few things were in play here:
- - The WebProcess thought the plug-in was done initializing but it wasn't.
- - The sync message out from the PluginProcess was not being handled by the WebProcess.
-
- Expose the ability for the PluginProcess to act as if it is handling a sync message and needs messages dispatched:
- * Platform/CoreIPC/Connection.h:
- (CoreIPC::Connection::incrementDispatchMessageMarkedDispatchWhenWaitingForSyncReplyCount):
- (CoreIPC::Connection::decrementDispatchMessageMarkedDispatchWhenWaitingForSyncReplyCount):
-
- * PluginProcess/PluginControllerProxy.cpp:
- (WebKit::PluginControllerProxy::PluginControllerProxy):
- (WebKit::PluginControllerProxy::setInitializationReply): Save the delayed reply for synchronous initialization.
- (WebKit::PluginControllerProxy::takeInitializationReply): Give back the delayed reply for initialization completion.
- (WebKit::PluginControllerProxy::initialize):
- * PluginProcess/PluginControllerProxy.h:
- (WebKit::PluginControllerProxy::isInitializing): Accessor so WebProcessConnection knows whether or not to store the
- delayed reply for later.
-
- * PluginProcess/WebProcessConnection.messages.in: Make the synchronous form of "CreatePlugin" have a delayed reply.
- * PluginProcess/WebProcessConnection.cpp:
- (WebKit::WebProcessConnection::createPlugin): Store away the delayed reply message so it can be responded to after
- asynchronous initialization completes.
- (WebKit::WebProcessConnection::createPluginAsynchronously): If there is a stored away delayed reply message, respond to
- it instead of sending the asynchronously reply.
- * PluginProcess/WebProcessConnection.h:
- (WebProcessConnection):
-
-2012-08-13 Alexey Proskuryakov <ap@apple.com>
-
- [WK2] Move a remaining per-process message from WebContext to WebProcessProxy
- https://bugs.webkit.org/show_bug.cgi?id=93883
-
- Windows build fix.
-
- * WebProcess/WebProcess.cpp:
- (WebKit::WebProcess::getSitesWithPluginData):
- (WebKit::WebProcess::clearPluginSiteData):
- Use WebProcessProxy for the message here, too.
-
-2012-08-13 Alexey Proskuryakov <ap@apple.com>
-
- [WK2] Move a remaining per-process message from WebContext to WebProcessProxy
- https://bugs.webkit.org/show_bug.cgi?id=93883
-
- Reviewed by Sam Weinig.
-
- There was one plug-in message renaming. Moving it, and also other plug-in messages
- for consistency.
-
- * UIProcess/WebContext.cpp:
- (WebKit): Got rid of the last MESSAGE_CHECK in this file.
- (WebKit::WebContext::WebContext): Moved m_pluginWorkQueue to a singleton.
- We don't need more than one queue (all it does is read plug-in info), and if we
- needed, it would have been per-process, not per-context.
- (WebKit::WebContext::~WebContext): No more work queue.
- (WebKit::WebContext::processDidFinishLaunching): Ditto.
-
- * UIProcess/WebContext.h: No longer needs to be a QueueClient.
-
- * UIProcess/WebContext.messages.in:
- * UIProcess/WebProcessProxy.messages.in:
- Moved plug-in related messages.
-
- * UIProcess/WebProcessProxy.cpp:
- (WebKit::pluginWorkQueue): Moved from WebContext to a singleton.
- (WebKit::WebProcessProxy::sendDidGetPlugins): Moved from WebContext.
- (WebKit::WebProcessProxy::handleGetPlugins): Ditto.
- (WebKit::WebProcessProxy::getPlugins): Ditto.
- (WebKit::WebProcessProxy::getPluginPath): Ditto.
- (WebKit::WebProcessProxy::getPluginProcessConnection): Ditto.
- (WebKit::WebProcessProxy::didGetSitesWithPluginData): Ditto.
- (WebKit::WebProcessProxy::didClearPluginSiteData): Ditto.
-
- * UIProcess/WebProcessProxy.h: Process proxy needs to be thread safe ref counted
- now, since it sends messages to itself on a work queue and back.
-
- * WebProcess/WebCoreSupport/WebPlatformStrategies.cpp:
- (WebKit::WebPlatformStrategies::populatePluginCache): Updated for new receiver.
-
- * WebProcess/WebPage/WebPage.cpp: (WebKit::WebPage::createPlugin): Ditto.
-
- * WebProcess/WebProcess.cpp: (WebKit::canPluginHandleResponse): Ditto.
-
-2012-08-13 Raphael Kubo da Costa <rakuco@webkit.org>
-
- [CMake] Remove glib-related Find modules and write single new one instead.
- https://bugs.webkit.org/show_bug.cgi?id=93786
-
- Reviewed by Rob Buis.
-
- * PlatformEfl.cmake: Use GLIB_* instead of Glib_*.
-
-2012-08-13 Christophe Dumez <christophe.dumez@intel.com>
-
- [SOUP][WK2] Missing LocalTerminationDisabler in WebCookieManager::setCookiePersistentStorage()
- https://bugs.webkit.org/show_bug.cgi?id=93837
-
- Reviewed by Carlos Garcia Campos.
-
- Add missing WebCore::LocalTerminationDisabler in
- WebCookieManager::setCookiePersistentStorage() to
- temporarily disable process termination.
-
- * WebProcess/Cookies/soup/WebCookieManagerSoup.cpp:
- (WebKit::WebCookieManager::setCookiePersistentStorage):
-
-2012-08-12 Nuno Lopes <nlopes@apple.com>
-
- Fix build with recent clang.
- https://bugs.webkit.org/show_bug.cgi?id=90701
-
- Reviewed by Eric Seidel.
-
- * Shared/CommandLine.h:
- (CommandLine):
- * WebProcess/Notifications/NotificationPermissionRequestManager.cpp:
- (WebKit::NotificationPermissionRequestManager::NotificationPermissionRequestManager):
- * WebProcess/Notifications/NotificationPermissionRequestManager.h:
- (NotificationPermissionRequestManager):
-
-2012-08-11 Sam Weinig <sam@webkit.org>
-
- Fix the build.
-
- * Platform/CoreIPC/Connection.h:
- Add missing include.
-
-2012-08-11 Sam Weinig <sam@webkit.org>
-
- [WK2] Get rid of ProcessModelSharedSecondaryThread
- https://bugs.webkit.org/show_bug.cgi?id=93652
-
- Reviewed by Dan Bernstein.
-
- The threaded model for WebKit2 has been broken a long time and its continued existence in
- the code only serves to confuse. It's time to say good bye to it.
-
- * UIProcess/API/C/WKContext.cpp:
- * UIProcess/API/C/WKContextPrivate.h:
- Remove WKContextGetSharedThreadContext().
-
- * UIProcess/ProcessModel.h:
- Remove ProcessModelSharedSecondaryThread from the ProcessModel enum.
-
- * UIProcess/WebContext.cpp:
- * UIProcess/WebContext.h:
- Remove WebContext::sharedThreadContext().
-
- * UIProcess/WebProcessProxy.cpp:
- (WebKit::WebProcessProxy::~WebProcessProxy):
- (WebKit::WebProcessProxy::connect):
- (WebKit::WebProcessProxy::isLaunching):
- * UIProcess/WebProcessProxy.h:
- Remove the ThreadLauncher member and stop deriving from ThreadLauncher::Client.
-
- * UIProcess/Launcher/ThreadLauncher.cpp: Removed.
- * UIProcess/Launcher/ThreadLauncher.h: Removed.
- * UIProcess/Launcher/efl/ThreadLauncherEfl.cpp: Removed.
- * UIProcess/Launcher/gtk/ThreadLauncherGtk.cpp: Removed.
- * UIProcess/Launcher/mac/ThreadLauncherMac.mm: Removed.
- * UIProcess/Launcher/qt/ThreadLauncherQt.cpp: Removed.
- * UIProcess/Launcher/win/ThreadLauncherWin.cpp: Removed.
- * WebKit2.xcodeproj/project.pbxproj:
- * win/WebKit2.vcproj:
- * CMakeLists.txt:
- * GNUmakefile.list.am:
- * PlatformEfl.cmake:
- * Target.pri:
- Remove ThreadLauncher files.
-
-2012-08-11 Sam Weinig <sam@webkit.org>
-
- Enable XPC Service based WebProcess with runtime flag
- https://bugs.webkit.org/show_bug.cgi?id=93773
-
- Reviewed by Dan Bernstein.
-
- Use the XPC Service for WebProcess code path if WEBKIT_USE_XPC_SERVICE_FOR_WEB_PROCESS
- is set in the environment.
-
- * UIProcess/Launcher/mac/ProcessLauncherMac.mm:
- (WebKit::launchXPCService):
- Fix issue that was causing this code not to compile. This was not caught before since
- the code was not being built.
-
- * UIProcess/WebProcessProxy.cpp:
- (WebKit::WebProcessProxy::connect):
- Switch from hard coding always using the XPC Service code path if
- HAVE(XPC) was true, to doing it conditionally on an environment variable.
-
-2012-08-11 Sam Weinig <sam@webkit.org>
-
- Make it possible to run the WebProcess as an XPC service
- https://bugs.webkit.org/show_bug.cgi?id=92814
-
- Reviewed by Anders Carlsson.
-
- In this initial implementation, we are only using the XPC service
- to launch the WebProcess, and then using the xpc_connection to send
- over a mach_port to the WebProcess which is then used for creating
- the CoreIPC connection. In the future, we will switch to using the
- xpc_connection for all messaging.
-
- When the XPC service is enabled (it is compiled out by default for now), both
- the XPC service and the old spawned process are runtime choosable. This allows
- the connect to pre-existing process workflow to continue to work.
-
- There are a few additional caveats of this initial implementation:
- - It is only set up for the WebProcess (not for the PluginProcess)
- - The WebProcess shim does not work.
- - It requires a new environment variable to be set when launching
- to find the right service to launch (__XPC_DYLD_FRAMEWORK_PATH).
-
- * Configurations/WebKit2Service.xcconfig: Added.
- Add new configuration file for the service.
-
- * Platform/CoreIPC/Connection.h:
- (CoreIPC::Connection::Identifier::Identifier):
- (CoreIPC::Connection::identifierIsNull):
- Added to encapsulate the concept of a null identifier, now that it
- is not possible to just compare to null.
-
- * Platform/CoreIPC/mac/ConnectionMac.cpp:
- (CoreIPC::Connection::platformInvalidate):
- (CoreIPC::Connection::platformInitialize):
- Change Connection::Identifier on the Mac to be a struct instead of
- a typedef to a mach_port. This allows for the Connection to get both
- the listening port and a reference to the xpc_connection (if it
- compiled in). For now, all we do is retain the xpc_connection when it
- is given to us, and release on Connection invalidation.
-
- * PluginProcess/PluginProcess.cpp:
- (WebKit::PluginProcess::createWebProcessConnection):
- * PluginProcess/mac/PluginProcessMainMac.mm:
- (WebKit::PluginProcessMain):
- * WebProcess/Plugins/PluginProcessConnectionManager.cpp:
- (WebKit::PluginProcessConnectionManager::getPluginProcessConnection):
- Use the Connection::Identifier constructor.
-
- * UIProcess/Launcher/ProcessLauncher.h:
- (LaunchOptions):
- Add a UseXPC option to the LaunchOptions so we can dynamically choose whether to use it.
-
- (ProcessLauncher):
- Make processTypeAsString public to allow better factoring in the implementation file
- using static functions.
-
- * UIProcess/Launcher/mac/ProcessLauncherMac.mm:
- Factor out the different launching options into helper functions. Always start by
- trying to connect to a pre-existing process.
-
- (WebKit::launchXPCService):
- Create a new xpc_connection to our service, and give it a unique instance UUID.
- Then, send a bootstrap message with a mach_port and wait for a reply to complete
- the launch procedure.
-
- (WebKit::tryPreexistingProcess):
- Move the code to connect to a preexisting process to its own helper function.
-
- (WebKit::ProcessLauncher::launchProcess):
- Clean up a bit, calling the helper functions and adding call to launch the XPC service
- if it is enabled.
-
- * UIProcess/Launcher/mac/ThreadLauncherMac.mm:
- (WebKit::webThreadBody):
- (WebKit::ThreadLauncher::createWebThread):
- Switch to using the constructor version of Identifier.
-
- * UIProcess/Plugins/PluginProcessProxy.cpp:
- (WebKit::PluginProcessProxy::PluginProcessProxy):
- Don't try to use the XPC service for plugins yet.
-
- (WebKit::PluginProcessProxy::didFinishLaunching):
- Use Connection::identifierIsNull instead of explicit null check.
-
- * UIProcess/WebProcessProxy.cpp:
- (WebKit::WebProcessProxy::connect):
- If XPC is compiled in (it currently is not) enable it by default.
-
- * WebKit2.xcodeproj/project.pbxproj:
- Add the new files and targets.
-
- * WebKit2Service: Added.
- * WebKit2Service/Info.plist: Added.
- Add the paper work needed for an XPC service. Importantly, set up the XPC
- service to be an Application service type, use NSApplicationMain as its run
- loop, and allow for multiple instantiations. Also make sure the service acts
- like the WebProcess binary by making it a LSUIElement, enabling LSFileQuarantine,
- and setting the principle class to NSApplication.
-
- * WebKit2Service/MainMacService.mm: Added.
- (WebKit2ServiceEventHandler):
- (main):
- The initialization of the XPC service is quite a bit different than the
- WebProcess version, since we don't get passed parameters in argv. Instead,
- we initiate the XPC service via xpc_main, and wait for the bootstrap message
- we sent in ProcessLauncherMac.mm. When we receive that message we can load
- WebKit2 framework and initialize the WebProcess normally (we also get the mach_port
- for the CoreIPC connection in that bootstrap message).
-
- * WebProcess/mac/WebProcessMainMac.mm:
- (WebKit::WebProcessMainXPC):
- Add a variant of WebProcessMain that is used for the XPC service case, where we don't
- have command line arguments and don't need to talk to the mach bootstrap server.
-
- (WebKit::WebProcessMain):
- * mac/MainMac.cpp: Removed.
- * mac/MainMacProcess.cpp: Copied from Source/WebKit2/mac/MainMac.cpp.
- Rename MainMac to MainMacProcess to signify that it is different from the XPC
- service main.
-
-2012-08-09 Jer Noble <jer.noble@apple.com>
-
- Crash exiting from HTML5 FS mode to normal mode via ESC key
- https://bugs.webkit.org/show_bug.cgi?id=93663
-
- Reviewed by Eric Carlson.
-
- Crash is due to a refcount underrun with _watchdogTimer due to adopting an autoreleased NSTimer.
- Use the non-autoreleased NSTimer creation method and manually add to the main NSRunLoop.
-
- * UIProcess/mac/WKFullScreenWindowController.mm:
- (-[WKFullScreenWindowController cancelOperation:]):
-
-2012-08-10 Rafael Brandao <rafael.lobo@openbossa.org>
-
- [Qt] WebViewLoadFavIcon::test_favIconLoad() fails
- https://bugs.webkit.org/show_bug.cgi?id=91888
-
- Reviewed by Simon Hausmann.
-
- * UIProcess/API/qt/tests/qmltests/WebView/tst_favIconLoad.qml:
- We should wait for iconChanged signal instead of loadFinished,
- there was no guarantee that at that point we would get it already.
-
-2012-08-10 Allan Sandfeld Jensen <allan.jensen@nokia.com>
-
- [Qt] Uninitialized flags in CoordinatedGraphicsLayer
- https://bugs.webkit.org/show_bug.cgi?id=93719
-
- Reviewed by Kenneth Rohde Christiansen.
-
- * WebProcess/WebPage/CoordinatedGraphics/CoordinatedGraphicsLayer.cpp:
- (WebCore::CoordinatedGraphicsLayer::CoordinatedGraphicsLayer):
+ (ewk_view_resource_load_failed):
+ (ewk_view_download_job_failed):
+ (ewk_view_load_error):
+ (ewk_view_load_provisional_failed):
+ * UIProcess/API/efl/ewk_view.h:
+ * UIProcess/API/efl/ewk_view_loader_client.cpp:
+ (didFailLoadWithErrorForFrame):
+ (didFailProvisionalLoadWithErrorForFrame):
+ * UIProcess/API/efl/ewk_view_private.h:
+ * UIProcess/API/efl/ewk_view_resource_load_client.cpp:
+ (didFailLoadForResource):
+ * UIProcess/API/efl/tests/test_ewk2_cookie_manager.cpp:
+ (getAcceptPolicyCallback):
+ (getHostnamesWithCookiesCallback):
+ * UIProcess/API/efl/tests/test_ewk2_download_job.cpp:
+ (on_download_failed):
-2012-08-10 Mario Sanchez Prada <msanchez@igalia.com>
+2012-10-05 Sudarsana Nagineni <sudarsana.nagineni@intel.com>
- [WK2][GTK] Implement new API to save a web page using MHTML
- https://bugs.webkit.org/show_bug.cgi?id=89873
+ [WK2][GTK] WebPageAccessibilityObject leaking
+ https://bugs.webkit.org/show_bug.cgi?id=98502
Reviewed by Carlos Garcia Campos.
- Implemented new asynchronous API in WebKitWebView for saving a web
- page to a GInputStream or to a file, using MHTML as the only
- supported method at the moment.
-
- * UIProcess/API/gtk/WebKitWebView.cpp:
- (ViewSaveAsyncData):
- (webViewFileSavedCallback):
- (webViewMHTMLDataGotCallback):
- (webkit_web_view_save):
- (webkit_web_view_save_finish):
- (webkit_web_view_save_to_file):
- (webkit_web_view_save_to_file_finish):
- * UIProcess/API/gtk/WebKitWebView.h:
-
- Added new unit test.
-
- * UIProcess/API/gtk/tests/TestWebKitWebView.cpp:
- (testWebViewSave):
- (beforeAll):
- (afterAll):
-
- Updated documentation files with new symbols.
-
- * UIProcess/API/gtk/docs/webkit2gtk-sections.txt:
-
-2012-08-09 Carlos Garcia Campos <cgarcia@igalia.com>
-
- Handle SSL errors for SOUP
- https://bugs.webkit.org/show_bug.cgi?id=90267
-
- Reviewed by Martin Robinson.
-
- Ignore SSL errors by default for compatibility.
-
- * WebProcess/efl/WebProcessMainEfl.cpp:
- (WebKit::WebProcessMainEfl):
- * WebProcess/gtk/WebProcessMainGtk.cpp:
- (WebKit::WebProcessMainGtk):
-
-2012-08-09 Alexey Proskuryakov <ap@apple.com>
-
- [WK2] Add a process model constant for multiple processes
- https://bugs.webkit.org/show_bug.cgi?id=93642
-
- Reviewed by Anders Carlsson.
-
- * UIProcess/ProcessModel.h: Added ProcessModelMultipleSecondaryProcesses.
- Deleted ProcessModelSecondaryProcess in favor of more descriptive ProcessModelSharedSecondaryProcess -
- these used to behave the same.
-
- * UIProcess/WebContext.cpp: (WebKit::WebContext::create): Changed to use ProcessModelSharedSecondaryProcess.
-
- * UIProcess/WebProcessProxy.h: Removed an unncessary include of ProcessModel.h.
-
-2012-08-09 Dan Bernstein <mitz@apple.com>
-
- <rdar://problem/12035637> 32-bit PluginProcess launches without appropriate DYLD environment variables if UI process is 64-bit only
- https://bugs.webkit.org/show_bug.cgi?id=93596
-
- Reviewed by Mark Rowe.
-
- * UIProcess/Launcher/mac/ProcessLauncherMac.mm:
- (WebKit::ProcessLauncher::launchProcess): Changed to pass the current architecture, rather than
- the intended child process architecture, to the DynamicLinkerEnvironmentExtractor constructor.
-
-2012-08-09 Tim Horton <timothy_horton@apple.com>
-
- Add optional debug logging for tiled scrolling
- https://bugs.webkit.org/show_bug.cgi?id=93305
-
- Reviewed by Simon Fraser.
-
- Add a new boolean preference, ScrollingPerformanceLoggingEnabled, which will be used to toggle
- the WebCore parts of this change.
+ Use GRefPtr on the accessibility object to fix the leak.
- * Shared/WebPreferencesStore.h: Add ScrollingPerformanceLoggingEnabled.
- * UIProcess/API/C/WKPreferences.cpp:
- (WKPreferencesSetScrollingPerformanceLoggingEnabled): Added.
- (WKPreferencesGetScrollingPerformanceLoggingEnabled): Added.
- * UIProcess/API/C/WKPreferencesPrivate.h: Add getters and setters for ScrollingPerformanceLoggingEnabled.
- * WebProcess/WebPage/WebPage.cpp:
- (WebKit::WebPage::WebPage): Add ScrollingPerformanceLoggingEnabled.
- (WebKit::WebPage::updatePreferences): Add ScrollingPerformanceLoggingEnabled.
- (WebKit::WebPage::setScrollingPerformanceLoggingEnabled): Propagate settings changes through to FrameView.
- * WebProcess/WebPage/WebPage.h:
- (WebKit::WebPage::scrollingPerformanceLoggingEnabled): Add a getter for the setting so that TiledCoreAnimationDrawingArea can access it.
- * WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.mm:
- (WebKit::TiledCoreAnimationDrawingArea::updatePreferences): Pass ScrollingPerformanceLoggingEnabled down into the scrolling thread.
-
-2012-08-08 Shane Stephens <shanestephens@google.com>
-
- Compile flag for CSS Hierarchies
- https://bugs.webkit.org/show_bug.cgi?id=92433
-
- Reviewed by Tony Chang.
-
- * Configurations/FeatureDefines.xcconfig:
-
-2012-08-08 Anders Carlsson <andersca@apple.com>
-
- REGRESSION: Crash when plug-in initialization fails
- https://bugs.webkit.org/show_bug.cgi?id=93534
- <rdar://problem/12059786>
-
- Reviewed by Simon Fraser.
-
- Protect the PluginProxy while calling out to functions that could cause it to be destroyed.
-
- * WebProcess/Plugins/PluginProxy.cpp:
- (WebKit::PluginProxy::didFailToCreatePluginInternal):
-
-2012-08-08 Anders Carlsson <andersca@apple.com>
-
- Make isTransparentSilverlightBackgroundValue handle all the possible transparent colors
- https://bugs.webkit.org/show_bug.cgi?id=93532
-
- Reviewed by Simon Fraser.
-
- * WebProcess/Plugins/Netscape/NetscapePlugin.cpp:
- (WebKit::isTransparentSilverlightBackgroundValue):
- Check for all the possible transparent colors and assume that the color is opaque otherwise.
-
- (WebKit::NetscapePlugin::initialize):
- Pass the lowercase string to isTransparentSilverlightBackgroundValue.
-
-2012-08-08 Beth Dakin <bdakin@apple.com>
-
- https://bugs.webkit.org/show_bug.cgi?id=92275
- Need a way to get a snapshot image that does not show the selection
- -and corresponding-
- <rdar://problem/11956802>
-
- Reviewed by Anders Carlsson.
-
- Added new API WKBundlePageCreateSnapshotWithOptions()
-
- New enum SnapshotOptions tracks whether snapshots should exclude
- selection highlighting in addition to tracking whether the image is
- sharable like the original ImageOptions.
- * Shared/API/c/WKImage.h:
- * Shared/API/c/WKSharedAPICast.h:
- (WebKit::snapshotOptionsFromImageOptions):
- (WebKit):
- (WebKit::toSnapshotOptions):
- * Shared/ImageOptions.h:
-
- New API.
- * WebProcess/InjectedBundle/API/c/WKBundlePage.h:
- * WebProcess/InjectedBundle/API/c/WKBundlePage.cpp:
- (WKBundlePageCreateSnapshotWithOptions):
-
- These existing APIs all now call
- WebPage::scaledSnapshotWithOptions().
- (WKBundlePageCreateSnapshotInViewCoordinates):
- (WKBundlePageCreateSnapshotInDocumentCoordinates):
- (WKBundlePageCreateScaledSnapshotInDocumentCoordinates):
-
- This patch removes WebPage::snapshotInViewCoordinates(),
- WebPage::snapshotInDocumentCoordinates(), and
- WebPage::scaledSnapshotInDocumentCoordinates(). All of the logic is
- now consolidated into WebPage::scaledSnapshotWithOptions(). It turns
- out that we never did anything different for document coordinates
- versus view coordinates, so that complexity could just be eliminated
- outright.
- * WebProcess/WebPage/WebPage.cpp:
- (WebKit::snapshotOptionsToImageOptions):
- (WebKit::WebPage::scaledSnapshotWithOptions):
- (WebKit):
* WebProcess/WebPage/WebPage.h:
(WebPage):
+ * WebProcess/WebPage/gtk/WebPageGtk.cpp:
+ (WebKit::WebPage::platformInitialize):
+ (WebKit::WebPage::updateAccessibilityTree):
-2012-08-08 Anders Carlsson <andersca@apple.com>
-
- Make the Silverlight CAOpenGLLayer opaque if we know the plug-in contents is opaque to reduce blending
- https://bugs.webkit.org/show_bug.cgi?id=93508
- <rdar://problem/12056765>
-
- Reviewed by Simon Fraser.
-
- * Shared/Plugins/Netscape/mac/NetscapePluginModuleMac.mm:
- (WebKit::NetscapePluginModule::determineQuirks):
- * Shared/Plugins/PluginQuirks.h:
- Rename the MakeTransparentIfBackgroundAttributeExists quirk to MakeOpaqueUnlessTransparentSilverlightBackgroundAttributeExists
- since we'll explicitly check for opaque background colors (at least one opaque background color for now), instead of just making the
- plug-in transparent whenever there's a background specified.
-
- * WebProcess/Plugins/Netscape/NetscapePlugin.cpp:
- (WebKit::isTransparentSilverlightBackgroundValue):
- Helper function for determining if a background value is transparent. Just check for opaque black now and treat everything else as transparent.
-
- (WebKit::NetscapePlugin::initialize):
- Call isTransparentSilverlightBackgroundValue.
-
- * WebProcess/Plugins/Netscape/mac/NetscapePluginMac.mm:
- (WebKit::makeCGLPresentLayerOpaque):
- Helper function for grabbing the CGLPresentLayer from the layer hierarchy and setting it to be opaque.
-
- (WebKit::NetscapePlugin::updatePluginLayer):
- Call makeCGLPresentLayerOpaque if the plug-in has the MakeOpaqueUnlessTransparentSilverlightBackgroundAttributeExists quirk and
- the plug-in is not transparent.
-
-2012-08-08 Mikhail Pozdnyakov <mikhail.pozdnyakov@intel.com>
-
- [WK2] Coding style violation was brought with r125031
- https://bugs.webkit.org/show_bug.cgi?id=93503
-
- Reviewed by Alexey Proskuryakov.
-
- WKURLResponseCopyMimeType is corrected to WKURLResponseCopyMIMEType.
-
- * Shared/API/c/WKURLResponse.cpp:
- (WKURLResponseCopyMIMEType):
- * Shared/API/c/WKURLResponse.h:
-
-2012-08-08 Mikhail Pozdnyakov <mikhail.pozdnyakov@intel.com>
-
- [EFL] EFL Webkit needs a class wrapping eina stringshare
- https://bugs.webkit.org/show_bug.cgi?id=93229
-
- Reviewed by Kenneth Rohde Christiansen.
-
- Added a new auxiliary class wrapping Eina Stringshare and providing
- more convenient C++ interface for using it.
-
- * PlatformEfl.cmake:
- * UIProcess/API/cpp/efl/WKEinaSharedString.cpp: Added.
- (:m_string):
- (WKEinaSharedString::~WKEinaSharedString):
- (WKEinaSharedString::operator=):
- * UIProcess/API/cpp/efl/WKEinaSharedString.h: Added.
- (WebKit):
-
-2012-08-08 Balazs Kelemen <kbalazs@webkit.org>
-
- [Qt] Snowshoe desktop crashes when opening a new tab
- https://bugs.webkit.org/show_bug.cgi?id=92753
-
- Reviewed by Jocelyn Turcotte.
-
- Change back forceRepaint to consider the UI process state.
- It has been tweaked to satisfy the needs of WKPageForceRepaint but
- it has other callers so this new behavior was not safe. This patch
- implements WebPage::forceRepaintAsync for testing purposes. It is
- done by LayerTreeCoordinator that holds the callback and sends the
- reply message in the next flushPendingLayerChanges. In theory it
- could be implemented for the non conposited path in DrawingAreaImpl
- as well but neither it is needed nor can I test it.
-
- * WebProcess/WebPage/CoordinatedGraphics/LayerTreeCoordinator.cpp:
- (WebKit::LayerTreeCoordinator::LayerTreeCoordinator):
- (WebKit::LayerTreeCoordinator::forceRepaintAsync):
- (WebKit):
- (WebKit::LayerTreeCoordinator::flushPendingLayerChanges):
- * WebProcess/WebPage/CoordinatedGraphics/LayerTreeCoordinator.h:
- (LayerTreeCoordinator):
- * WebProcess/WebPage/DrawingAreaImpl.cpp:
- (WebKit::DrawingAreaImpl::forceRepaintAsync):
- (WebKit):
- * WebProcess/WebPage/DrawingAreaImpl.h:
- (DrawingAreaImpl):
- * WebProcess/WebPage/LayerTreeHost.h:
- (WebKit::LayerTreeHost::forceRepaintAsync):
-
-2012-08-08 Mikhail Pozdnyakov <mikhail.pozdnyakov@intel.com>
-
- [WK2] [WTR] Provide Resource Response dumping.
- https://bugs.webkit.org/show_bug.cgi?id=93454
-
- Reviewed by Kenneth Rohde Christiansen.
-
- Several new getter functions were added to WKURLResponse and WKURL, so that WTR has
- necessary data for dumping.
-
- * Shared/API/c/WKURL.cpp:
- (WKURLCopyLastPathComponent):
- * Shared/API/c/WKURL.h:
- * Shared/API/c/WKURLResponse.cpp:
- (WKURLResponseCopyURL): Returns URL of the response.
- (WKURLResponseCopyMimeType): Returns MIME type of the response.
- * Shared/API/c/WKURLResponse.h:
- * Shared/WebURL.h:
- (WebKit::WebURL::lastPathComponent): Returns last path component of the URL.
- (WebURL):
+2012-10-05 Jinwoo Song <jinwoo7.song@samsung.com>
-2012-08-08 Eunmi Lee <eunmi15.lee@samsung.com>
+ [EFL][WK2] Add API to count the matching text
+ https://bugs.webkit.org/show_bug.cgi?id=97873
- [EFL][WK2] Make ewk_view inheritable in the WebKit2.
- https://bugs.webkit.org/show_bug.cgi?id=90054
+ Reviewed by Gyuyoung Kim.
- Reviewed by Kenneth Rohde Christiansen.
+ Add an API, ewk_view_text_matches_count(), to count the matched text in the document.
+ This API does not highlight the matched text in the document unlike ewk_view_text_find().
- Make the ewk_view inheritable by exposing ewk_view_smart_class_set()
- API. Additionally, the ewk_view_smart_add() API is added to create
- Evas_Object for WebKit2 EFL. The default initialization is done in the
- ewk_view_smart_add(), so the object which inherits the ewk_view should
- use ewk_view_smart_add() instead of evas_object_smart_add() to create
- Evas_Object.
+ ewk_view_text_find() finds the matching text and but also update the UI view,
+ but some applications may not want to affect the view, and just want to know the count.
- * UIProcess/API/efl/ewk_context.cpp:
- (ewk_context_new_from_WKContext):
- * UIProcess/API/efl/ewk_context_private.h:
* UIProcess/API/efl/ewk_view.cpp:
- (ewk_view_smart_class_set):
- (_ewk_view_smart_class_new):
- (_ewk_view_initialize):
- (_ewk_view_add_with_smart):
- (ewk_view_base_add):
- (ewk_view_smart_add):
- (ewk_view_add_with_context):
+ (ewk_view_text_matches_count):
* UIProcess/API/efl/ewk_view.h:
+ * UIProcess/API/efl/tests/test_ewk2_view.cpp:
+ (TEST_F):
-2012-08-08 Allan Sandfeld Jensen <allan.jensen@nokia.com>
-
- [Qt] WebProcess hangs on plugin initialization.
- https://bugs.webkit.org/show_bug.cgi?id=93272
-
- Reviewed by Kenneth Rohde Christiansen.
-
- * UIProcess/Plugins/PluginProcessProxy.cpp:
- (WebKit::PluginProcessProxy::didFinishLaunching): Ensure PluginProcessConnectionManager is informed of plugin crashes.
- * WebProcess/WebPage/WebPage.cpp:
- (WebKit::WebPage::WebPage): Let setIsInWindow set canStartMedia asynchronously.
-
-2012-08-08 Andras Becsi <andras.becsi@nokia.com>
-
- [Qt][WK2] Set the fixed layout setting before creating the page
- https://bugs.webkit.org/show_bug.cgi?id=93374
-
- Reviewed by Noam Rosenthal.
-
- Any page setting should preferrable be set before creating the page
- but fixed layout was set after the initialization of the web page.
-
- * UIProcess/API/qt/qquickwebview.cpp:
- (QQuickWebViewPrivate::initialize):
- (QQuickWebViewFlickablePrivate::initialize):
-
-2012-08-08 Mario Sanchez Prada <msanchez@igalia.com>
-
- [WK2] Add new C API to generate MHTML data from the UI process
- https://bugs.webkit.org/show_bug.cgi?id=89872
-
- Reviewed by Anders Carlsson.
-
- Add new C API in the UI Process, using ENABLE(MHTML) guards as needed.
-
- * UIProcess/API/C/WKPage.cpp:
- (WKPageGetContentsAsMHTMLData):
- * UIProcess/API/C/WKPage.h:
+2012-10-05 Sudarsana Nagineni <sudarsana.nagineni@intel.com>
- Implementation in the UI Process's WebPage proxy object.
+ [WK2][GTK][EFL] standard_output returned by g_spawn_sync must be freed
+ https://bugs.webkit.org/show_bug.cgi?id=98384
- * UIProcess/WebPageProxy.cpp:
- (WebKit):
- (WebKit::WebPageProxy::getContentsAsMHTMLData):
- * UIProcess/WebPageProxy.h:
- (WebPageProxy):
+ Reviewed by Gyuyoung Kim.
- Implementation in the WebProcess, relying in WebCore::MHTMLArchive.
+ Free the standard_output returned by g_spawn_sync() to avoid
+ a memory leak.
- * WebProcess/WebPage/WebPage.cpp:
- (WebKit):
- (WebKit::WebPage::getContentsAsMHTMLData):
- * WebProcess/WebPage/WebPage.h:
- (WebPage):
- * WebProcess/WebPage/WebPage.messages.in:
+ * UIProcess/Plugins/unix/PluginProcessProxyUnix.cpp:
+ (WebKit::PluginProcessProxy::scanPlugin):
-2012-08-07 YoungTaeck Song <youngtaeck.song@samsung.com>
+2012-10-05 Jongseok Yang <js45.yang@samsung.com>
- [WK2][EFL] Implement accelerated compositing on WK2 Efl port
- https://bugs.webkit.org/show_bug.cgi?id=89840
+ [EFL][WK2] Remove "web" word from ewk_resource APIs
+ https://bugs.webkit.org/show_bug.cgi?id=97887
- Reviewed by Noam Rosenthal.
+ Reviewed by Gyuyoung Kim.
- Implement accelerated composition with TiledBackingStore on WK2 Efl port.
- This implementation is based on COORDINATED_GRAPHICS.
+ Remove "web" word from ewk_web_resource APIs.
+ "web" word was redundant because "ewk" means "EFL WebKit" and enough to understand the meaning with ewk_resource_XXX.
- * CMakeLists.txt:
* PlatformEfl.cmake:
- * Shared/ShareableSurface.cpp:
- * Shared/WebCoreArgumentCoders.cpp:
- * Shared/WebCoreArgumentCoders.h:
- * UIProcess/API/efl/PageClientImpl.cpp:
- (WebKit::PageClientImpl::PageClientImpl):
- (WebKit::PageClientImpl::didChangeContentsSize):
- (WebKit):
- * UIProcess/API/efl/PageClientImpl.h:
- (PageClientImpl):
- * UIProcess/API/efl/ViewportProcessor.cpp: Added.
- (WebKit):
- (WebKit::ViewportProcessor::ViewportProcessor):
- (WebKit::ViewportProcessor::~ViewportProcessor):
- (WebKit::ViewportProcessor::display):
- (WebKit::ViewportProcessor::updateViewportSize):
- (WebKit::ViewportProcessor::setVisibleContentsRect):
- (WebKit::ViewportProcessor::didChangeContentsSize):
- * UIProcess/API/efl/ViewportProcessor.h: Added.
- (WebKit):
- (ViewportProcessor):
- (WebKit::ViewportProcessor::create):
- (WebKit::ViewportProcessor::drawingArea):
- (WebKit::ViewportProcessor::viewSize):
+ * UIProcess/API/efl/EWebKit2.h:
+ * UIProcess/API/efl/ewk_resource.cpp: Renamed from Source/WebKit2/UIProcess/API/efl/ewk_web_resource.cpp.
+ (_Ewk_Resource):
+ (_Ewk_Resource::_Ewk_Resource):
+ (_Ewk_Resource::~_Ewk_Resource):
+ (ewk_resource_ref):
+ (ewk_resource_unref):
+ (ewk_resource_url_get):
+ (ewk_resource_new):
+ (ewk_resource_main_resource_get):
+ * UIProcess/API/efl/ewk_resource.h: Renamed from Source/WebKit2/UIProcess/API/efl/ewk_web_resource.h.
+ * UIProcess/API/efl/ewk_resource_private.h: Renamed from Source/WebKit2/UIProcess/API/efl/ewk_web_resource_private.h.
* UIProcess/API/efl/ewk_view.cpp:
- (_Ewk_View_Private_Data):
- (_ewk_view_smart_calculate):
- (ewk_view_base_add):
- (ewk_view_display):
- (ewk_view_contents_size_changed):
+ (_ewk_view_priv_loading_resources_clear):
+ (ewk_view_resource_load_initiated):
+ (ewk_view_resource_load_response):
+ (ewk_view_resource_load_failed):
+ (ewk_view_resource_load_finished):
+ (ewk_view_resource_request_sent):
+ * UIProcess/API/efl/ewk_view.h:
* UIProcess/API/efl/ewk_view_private.h:
- * UIProcess/PageClient.h:
- (PageClient):
- * UIProcess/WebPageProxy.cpp:
- (WebKit):
- (WebKit::WebPageProxy::didChangeContentsSize):
- * UIProcess/WebPageProxy.h:
- (WebPageProxy):
- * UIProcess/WebPageProxy.messages.in:
- * WebProcess/WebPage/LayerTreeCoordinator/LayerTreeCoordinator.cpp:
- * WebProcess/WebPage/LayerTreeCoordinator/LayerTreeCoordinator.h:
- * WebProcess/WebPage/LayerTreeHost.cpp:
- (WebKit::LayerTreeHost::create):
- * WebProcess/WebPage/LayerTreeHost.h:
- (WebKit):
- * WebProcess/efl/WebProcessMainEfl.cpp:
- (WebKit::WebProcessMainEfl):
-
-2012-08-07 Csaba Osztrogonác <ossy@webkit.org>
-
- [Qt] New API tests introuduced in r119723 marked as fail, but pass
- https://bugs.webkit.org/show_bug.cgi?id=88870
-
- Reviewed by Alexis Menard.
-
- Revert r119723, because there are 2 failing tests, and the author and
- the reviewer of the original patch ignore the bug report long time ago.
-
- * UIProcess/API/qt/tests/qmltests/WebView/tst_devicePixelRatio.qml: Removed.
-
-2012-08-07 No'am Rosenthal <noam.rosenthal@nokia.com>
-
- GraphicsLayerAnimation shouldn't use HashMap<String>
- https://bugs.webkit.org/show_bug.cgi?id=93284
-
- Reviewed by Kenneth Rohde Christiansen.
-
- Apply the changes to GraphicsLayerAnimation API.
-
- * WebProcess/WebPage/CoordinatedGraphics/CoordinatedGraphicsLayer.cpp:
- (WebCore::CoordinatedGraphicsLayer::addAnimation):
-
-2012-08-07 No'am Rosenthal <noam.rosenthal@nokia.com>
-
- [Qt] Make it possible to build without QtQuick
-
- Reviewed by Simon Hausmann.
-
- * Target.pri:
- * UIProcess/API/qt/tests/tests.pri:
- * UIProcess/API/qt/tests/util.cpp:
- * UIProcess/API/qt/tests/util.h:
- * UIProcess/qt/WebFullScreenManagerProxyQt.cpp:
- (WebKit::WebFullScreenManagerProxy::invalidate):
- (WebKit::WebFullScreenManagerProxy::enterFullScreen):
- (WebKit::WebFullScreenManagerProxy::exitFullScreen):
- * UIProcess/qt/WebPageProxyQt.cpp:
- (WebKit::WebPageProxy::resolveApplicationSchemeRequest):
- (WebKit::WebPageProxy::sendApplicationSchemeReply):
- * WebKit2.pri:
-
-2012-07-19 Simon Hausmann <simon.hausmann@nokia.com>
-
- [Qt] Remove Qt 4 specific code paths
- https://bugs.webkit.org/show_bug.cgi?id=88161
-
- Reviewed by Kenneth Rohde Christiansen.
+ * UIProcess/API/efl/ewk_view_resource_load_client.cpp:
+ (didInitiateLoadForResource):
- * UIProcess/API/qt/qquickwebview.cpp:
- * UIProcess/API/qt/tests/publicapi/tst_publicapi.cpp:
- (gatherAPI):
- * WebKit2.pri:
+2012-10-04 Ryuan Choi <ryuan.choi@samsung.com>
-2012-08-07 Mikhail Pozdnyakov <mikhail.pozdnyakov@intel.com>
+ [EFL][WK2] ewk_web_error_free is not a public API
+ https://bugs.webkit.org/show_bug.cgi?id=98482
- [EFL][WK2] Add back forward list API
- https://bugs.webkit.org/show_bug.cgi?id=92345
+ Reviewed by Gyuyoung Kim.
- Reviewed by Kenneth Rohde Christiansen.
+ Because Ewk_Web_Error is just passed as a parameter of callback function
+ and maintained internally, ewk_web_error_free should not be a public API.
- Added new Back Forward list API to EFL WK2. Ewk_Back_Forward_List and
- Ewk_Back_Forward_List_Item structures were added. The new API is
- mostly the same as one from UIProcess/API/C/{ WKBackForwardList.h, WKBackForwardListItem.h }.
+ This patch moves ewk_web_error_free from public header to private header.
- * PlatformEfl.cmake:
- * UIProcess/API/efl/ewk_back_forward_list.cpp: Added.
- (_Ewk_Back_Forward_List):
- (_Ewk_Back_Forward_List::_Ewk_Back_Forward_List):
- (getOrCreateItem):
- (webkit_back_forward_list_current_item_get):
- (webkit_back_forward_list_back_item_get):
- (webkit_back_forward_list_forward_item_get):
- (webkit_back_forward_list_item_at_index_get):
- (webkit_back_forward_list_length_get):
- (ewk_back_forward_list_changed):
- (ewk_back_forward_list_new):
- (ewk_back_forward_list_free):
- * UIProcess/API/efl/ewk_back_forward_list.h: Added.
- * UIProcess/API/efl/ewk_back_forward_list_item.cpp: Added.
- (getItemProperty):
- (_Ewk_Back_Forward_List_Item):
- (_Ewk_Back_Forward_List_Item::_Ewk_Back_Forward_List_Item):
- (_Ewk_Back_Forward_List_Item::~_Ewk_Back_Forward_List_Item):
- (ewk_back_forward_list_item_ref):
- (ewk_back_forward_list_item_unref):
- (ewk_back_forward_list_item_uri_get):
- (ewk_back_forward_list_item_title_get):
- (ewk_back_forward_list_item_original_uri_get):
- (ewk_back_forward_list_item_new):
- * UIProcess/API/efl/ewk_back_forward_list_item.h: Added.
- * UIProcess/API/efl/ewk_back_forward_list_item_private.h: Added.
- * UIProcess/API/efl/ewk_back_forward_list_private.h: Added.
- * UIProcess/API/efl/ewk_view.cpp:
- (_Ewk_View_Private_Data):
- (_Ewk_View_Private_Data::_Ewk_View_Private_Data):
- (_Ewk_View_Private_Data::~_Ewk_View_Private_Data):
- (ewk_view_back_forward_list_get): New function to get back-forward list.
- * UIProcess/API/efl/ewk_view.h:
+ * UIProcess/API/efl/ewk_context_download_client.cpp:
* UIProcess/API/efl/ewk_view_loader_client.cpp:
- (didChangeBackForwardList): The callback added to update back-forward list items cache.
- (ewk_view_loader_client_attach):
-
-2012-08-07 Mikhail Pozdnyakov <mikhail.pozdnyakov@intel.com>
-
- CUSTOM_SCHEME_HANDLER flag should depend on REGISTER_PROTOCOL_HANDLER
- https://bugs.webkit.org/show_bug.cgi?id=93081
-
- Reviewed by Adam Barth.
-
- CUSTOM_SCHEME_HANDLER #if guards are enclosed in the REGISTER_PROTOCOL_HANDLER guards.
-
- * WebProcess/WebCoreSupport/WebRegisterProtocolHandlerClient.h:
- (WebRegisterProtocolHandlerClient):
-
-2012-08-07 Hyerim Bae <hyerim.bae@samsung.com>
-
- [EFL][WK2] Add ewk_view_find_client.h / cpp for wrapping WKPageSetPageFindClient.
- https://bugs.webkit.org/show_bug.cgi?id=90927
-
- Reviewed by Kentaro Hara.
-
- Add ewk_view_find_client.h / files for wrapping WKPageSetPageFindClient,
- add didFindString callback member of WKPageSetPageFindClient.
-
- * PlatformEfl.cmake:
- * UIProcess/API/efl/ewk_view.cpp:
- (ewk_view_base_add):
- (ewk_view_text_found):
- (ewk_view_text_find):
- (ewk_view_text_find_highlight_clear):
- * UIProcess/API/efl/ewk_view.h:
- * UIProcess/API/efl/ewk_view_find_client.cpp: Added.
- (toEwkView):
- (didFindString):
- (ewk_view_find_client_attach):
- * UIProcess/API/efl/ewk_view_find_client_private.h: Added.
- * UIProcess/API/efl/ewk_view_private.h:
-
-2012-08-06 Sheriff Bot <webkit.review.bot@gmail.com>
-
- Unreviewed, rolling out r124816.
- http://trac.webkit.org/changeset/124816
- https://bugs.webkit.org/show_bug.cgi?id=93311
-
- made some tests crash (Requested by noamr on #webkit).
-
- * WebProcess/WebPage/CoordinatedGraphics/CoordinatedGraphicsLayer.cpp:
- (WebCore::CoordinatedGraphicsLayer::addAnimation):
+ * UIProcess/API/efl/ewk_view_resource_load_client.cpp:
+ * UIProcess/API/efl/ewk_web_error.cpp:
+ * UIProcess/API/efl/ewk_web_error.h:
+ * UIProcess/API/efl/ewk_web_error_private.h:
-2012-08-06 No'am Rosenthal <noam.rosenthal@nokia.com>
+2012-10-04 Christophe Dumez <christophe.dumez@intel.com>
- GraphicsLayerAnimation shouldn't use HashMap<String>
- https://bugs.webkit.org/show_bug.cgi?id=93284
+ [EFL][WK2] Implement window frame callbacks in UIClient
+ https://bugs.webkit.org/show_bug.cgi?id=98280
Reviewed by Kenneth Rohde Christiansen.
- Apply the changes to GraphicsLayerAnimation API.
-
- * WebProcess/WebPage/CoordinatedGraphics/CoordinatedGraphicsLayer.cpp:
- (WebCore::CoordinatedGraphicsLayer::addAnimation):
+ Implement callbacks to set and query window geometry
+ in EwkView's UIClient.
-2012-08-03 Brady Eidson <beidson@apple.com>
+ * UIProcess/API/efl/ewk_view_ui_client.cpp:
+ (getWindowFrame):
+ (setWindowFrame):
+ (ewk_view_ui_client_attach):
+ * UIProcess/API/efl/tests/resources/window_move_resize.html: Added.
+ * UIProcess/API/efl/tests/test_ewk2_view.cpp:
+ (windowMoveResizeTimedOut):
+ (TEST_F): Add corresponding unit test.
- Out-of-process plug-ins should support asynchronous initialization
- <rdar://problem/10598594> and https://bugs.webkit.org/show_bug.cgi?id=92919
+2012-10-04 Rik Cabanier <cabanier@adobe.com>
- Reviewed by Anders Carlsson.
+ Turn Compositing on by default in WebKit build
+ https://bugs.webkit.org/show_bug.cgi?id=98315
- If a plug-in has been deemed capable of asynchronous initialization when run out of process...
- ...then do that!
-
- Add flags to communicate that this plugin create is meant to create a plug-in already requested asynchronously and
- to include whether or not the initialize call should include an artificial delay (for testing):
- * PluginProcess/PluginCreationParameters.cpp:
- (WebKit::PluginCreationParameters::PluginCreationParameters):
- (WebKit::PluginCreationParameters::encode):
- (WebKit::PluginCreationParameters::decode):
- * PluginProcess/PluginCreationParameters.h:
- (PluginCreationParameters):
-
- Add a flag for the UI Process to tell the PluginProcess that it supports asynchronous initialization:
- * Shared/Plugins/PluginProcessCreationParameters.cpp:
- (WebKit::PluginProcessCreationParameters::PluginProcessCreationParameters):
- (WebKit::PluginProcessCreationParameters::encode):
- (WebKit::PluginProcessCreationParameters::decode):
- * Shared/Plugins/PluginProcessCreationParameters.h:
- (PluginProcessCreationParameters):
-
- Allow the UI Process to pass along whether the plug-on supports asynchronous initialization:
- * UIProcess/Plugins/PluginProcessProxy.cpp:
- (WebKit::PluginProcessProxy::pluginProcessCrashedOrFailedToLaunch):
- (WebKit::PluginProcessProxy::didCreateWebProcessConnection):
- * UIProcess/Plugins/PluginProcessProxy.h:
- (PluginProcessProxy):
- * UIProcess/Plugins/mac/PluginProcessProxyMac.mm:
- (WebKit::PluginProcessProxy::platformInitializePluginProcess):
- * UIProcess/WebProcessProxy.messages.in:
-
- Allow the Plugin Process to pass whether or not it supports asynchronous initialization, originally determined
- in the UI Process, along to the WebProcess:
- * PluginProcess/PluginProcess.cpp:
- (WebKit::PluginProcess::PluginProcess):
- (WebKit::PluginProcess::initializePluginProcess):
- (WebKit::PluginProcess::createWebProcessConnection):
- * PluginProcess/PluginProcess.h:
- (PluginProcess):
- * UIProcess/Plugins/PluginProcessProxy.messages.in:
-
- Add a flag so PluginProcessConnections remember whether or not they support asynchronous initialization:
- * WebProcess/Plugins/PluginProcessConnection.cpp:
- (WebKit::PluginProcessConnection::PluginProcessConnection):
- (WebKit::PluginProcessConnection::setSupportsAsynchronousPluginInitialization):
- (WebKit):
- * WebProcess/Plugins/PluginProcessConnection.h:
- (WebKit::PluginProcessConnection::create):
- (WebKit::PluginProcessConnection::supportsAsynchronousPluginInitialization):
- (PluginProcessConnection):
+ Reviewed by Simon Fraser.
- Create PluginProcessConnections with the flag passed down from the PluginProcess about whether or not they
- support asynchronous initialization:
- * WebProcess/Plugins/PluginProcessConnectionManager.cpp:
- (WebKit::PluginProcessConnectionManager::getPluginProcessConnection):
+ enable -webkit-blend-mode on trunk.
- Responding to messages from the WebProcess, most of the heavy decision making in asynchronous initialization is here:
- * PluginProcess/WebProcessConnection.cpp:
- (WebKit::asynchronousInstanceIDsToIgnore): A set of instance IDs to *not* create asynchronously later because we know
- we no longer need to.
- (WebKit):
- (WebKit::WebProcessConnection::didReceiveMessage):
- (WebKit::WebProcessConnection::destroyPlugin): If the plug-in doesn't exist but is awaiting asynchronous creation, flag
- this instance ID in the "asynchronous ignore set".
- (WebKit::WebProcessConnection::createPluginInternal): Renamed from createPlugin, actually does the plug-in creation.
- (WebKit::WebProcessConnection::createPlugin): Adds the instance ID to the "asynchronous ignore set" then calls createPluginInternal.
- (WebKit::WebProcessConnection::createPluginAsynchronously): If the instance ID is in the "asynchronous ignore set", remove it from the
- set and do nothing else. Otherwise, perform the initialization and then send the asynchronous result back to the WebProcess.
- * PluginProcess/WebProcessConnection.h:
- (WebProcessConnection):
- * PluginProcess/WebProcessConnection.messages.in:
-
- Add helpers for asynchronous initialization that all plug-in types must implement:
- * WebProcess/Plugins/Plugin.h:
- (Plugin):
+ * Configurations/FeatureDefines.xcconfig:
- Add helpers for asynchronous initialization that plug-in controllers can override:
- * WebProcess/Plugins/PluginController.h:
- (PluginController):
- (WebKit::PluginController::asynchronousPluginInitializationEnabled):
- (WebKit::PluginController::asynchronousPluginInitializationEnabledForAllPlugins):
- (WebKit::PluginController::artificialPluginInitializationDelayEnabled):
+2012-10-04 Simon Fraser <simon.fraser@apple.com>
- Give PluginProxys the ability to initialize either asynchronously or synchronously, and also the ability to synchronously
- wait for previously asynchronous initialization (in case their PluginScriptObject is required):
- * WebProcess/Plugins/PluginProxy.cpp:
- (WebKit::PluginProxy::PluginProxy):
- (WebKit::PluginProxy::initialize): Store the plugin creation parameters as a member, and decide whether to try synchronous
- or asynchronous initialization.
- (WebKit):
- (WebKit::PluginProxy::canInitializeAsynchronously): Answer based on preferences and what the PluginProcessConnection says
- that it supports.
- (WebKit::PluginProxy::waitForAsynchronousInitialization): Synchronously wait on initialization when asynchronous initialization
- was previously requested.
- (WebKit::PluginProxy::initializeSynchronously):
- (WebKit::PluginProxy::didCreatePlugin): Double-check that we're still expecting asynchronous initialization, then call
- through to didCreatePluginInternal.
- (WebKit::PluginProxy::didCreatePluginInternal): Handle completion of initialization (both synchronously and asynchronously)
- (WebKit::PluginProxy::didFailToCreatePlugin): Double-check that we're still expecting asynchronous initialization, then call
- through to didFailToCreatePluginInternal.
- (WebKit::PluginProxy::didFailToCreatePluginInternal): Handle failure to initialize (both synchronously and asynchronously)
- (WebKit::PluginProxy::destroy):
- * WebProcess/Plugins/PluginProxy.h:
- (WebKit):
- (WebKit::PluginProxy::isInitializingAsynchronously):
- (PluginProxy):
- * WebProcess/Plugins/PluginProxy.messages.in:
+ Fix the Qt build by removing an errant paste at the top of the file.
- * WebProcess/Plugins/PluginView.cpp:
- (WebKit::PluginView::PluginView):
- (WebKit::PluginView::~PluginView): Always destroy the plug-in even if it hasn't been initialized yet, as it might be initializing
- right now.
- (WebKit::PluginView::initializePlugin): Don't handle the result of initialization immediately. Break that out in to two
- methods that will be called later.
- (WebKit):
- (WebKit::PluginView::didFailToInitializePlugin):
- (WebKit::PluginView::didInitializePlugin):
- (WebKit::PluginView::scriptObject): If we truly need the script object, then wait for a synchronous initialization of the plug-in.
- (WebKit::PluginView::asynchronousPluginInitializationEnabled):
- (WebKit::PluginView::asynchronousPluginInitializationEnabledForAllPlugins):
- (WebKit::PluginView::artificialPluginInitializationDelayEnabled):
- * WebProcess/Plugins/PluginView.h:
- (PluginView):
+ * WebProcess/WebPage/CoordinatedGraphics/CoordinatedGraphicsLayer.h:
- These methods shouldn't be called in the PluginProcess, only in the WebProcess:
- * PluginProcess/PluginControllerProxy.cpp:
- (WebKit::PluginControllerProxy::didInitializePlugin):
- (WebKit):
- (WebKit::PluginControllerProxy::didFailToInitializePlugin):
- * PluginProcess/PluginControllerProxy.h:
- (PluginControllerProxy):
+2012-10-04 Ryuan Choi <ryuan.choi@samsung.com>
- NetscapePlugin is for in-process plug-ins:
- * WebProcess/Plugins/Netscape/NetscapePlugin.h:
- (NetscapePlugin):
- (WebKit::NetscapePlugin::waitForAsynchronousInitialization):
- (WebKit::NetscapePlugin::isInitializingAsynchronously):
+ [EFL][WK2] Add APIs to get/set the frame flattening.
+ https://bugs.webkit.org/show_bug.cgi?id=95982
- Built-in PDFView is currently only in-process:
- * WebProcess/Plugins/PDF/BuiltInPDFView.h:
- (BuiltInPDFView):
- (WebKit::BuiltInPDFView::waitForAsynchronousInitialization):
- (WebKit::BuiltInPDFView::isInitializingAsynchronously):
+ Reviewed by Gyuyoung Kim.
-2012-08-06 Luciano Wolf <luciano.wolf@openbossa.org>
+ Added new APIs and test case to support frame flattening.
- [Qt] Default sizes for input-text and text-area are different when running DRT/WTR
- https://bugs.webkit.org/show_bug.cgi?id=91990
+ * UIProcess/API/efl/ewk_settings.cpp:
+ (ewk_settings_enable_frame_flattening_set):
+ (ewk_settings_enable_frame_flattening_get):
+ * UIProcess/API/efl/ewk_settings.h:
+ * UIProcess/API/efl/tests/resources/frame_flattening_test.html: Added.
+ * UIProcess/API/efl/tests/resources/frame_flattening_test_subframe.html: Added.
+ * UIProcess/API/efl/tests/test_ewk2_settings.cpp:
+ (TEST_F):
- Reviewed by Kenneth Rohde Christiansen.
+2012-10-04 Simon Fraser <simon.fraser@apple.com>
- WTR wasn't using the proper font types provided by testfonts directory.
- The same approach as DRT was applied and now it takes info from QFont to
- update the store variable.
+ TiledCoreAnimationDrawingArea.mm should not include RenderLayerCompositor.h
+ https://bugs.webkit.org/show_bug.cgi?id=98471
- * UIProcess/qt/WebPreferencesQt.cpp:
- (WebKit::setStringValueIfInUserDefaults):
- (WebKit):
- (WebKit::WebPreferences::platformInitializeStore):
+ Reviewed by Dean Jackson.
-2012-08-06 No'am Rosenthal <noam.rosenthal@nokia.com>
+ Remove #import of <WebCore/RenderLayerCompositor.h> from this file.
+ It is not required.
- [Qt] Use GraphicsLayerAnimation in LayerTreeCoordinator
- https://bugs.webkit.org/show_bug.cgi?id=93147
+ * WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.mm:
- Reviewed by Kenneth Rohde Christiansen
+2012-10-04 Simon Fraser <simon.fraser@apple.com>
- Allow controlling animations outside of WebCore. This is an intermediate step before moving
- to threaded animations.
+ Final part of "sync" to "flush" renaming
+ https://bugs.webkit.org/show_bug.cgi?id=98430
- CoordinatedGraphicsLayer maintains the GraphicsLayerAnimation structures, and applies the
- animation interpolation at the right time, before syncing the rest of the layer info and
- the visible contents rect.
+ Reviewed by Tim Horton.
- This also allows sending shorter IPC messages for animated opacity/transform changes,
- without the rest of the layer info.
+ Change method names on GraphicsLayer and GraphicsLayerClient that
+ refer to "sync" to use the term "flush" instead, to be consistent
+ with the rest of the code.
- * UIProcess/CoordinatedGraphics/LayerTreeCoordinatorProxy.cpp:
- (WebKit::LayerTreeCoordinatorProxy::setLayerAnimatedOpacity):
- (WebKit):
- (WebKit::LayerTreeCoordinatorProxy::setLayerAnimatedTransform):
- * UIProcess/CoordinatedGraphics/LayerTreeCoordinatorProxy.h:
- (LayerTreeCoordinatorProxy):
- * UIProcess/CoordinatedGraphics/LayerTreeCoordinatorProxy.messages.in:
* UIProcess/CoordinatedGraphics/LayerTreeRenderer.cpp:
- (WebKit::LayerTreeRenderer::setAnimatedOpacity):
- (WebKit):
- (WebKit::LayerTreeRenderer::setAnimatedTransform):
+ (WebKit::LayerTreeRenderer::paintToCurrentGLContext):
+ (WebKit::LayerTreeRenderer::flushLayerChanges):
* UIProcess/CoordinatedGraphics/LayerTreeRenderer.h:
- (LayerTreeRenderer):
+ (WebKit::LayerTreeRenderer::notifyFlushRequired):
* WebProcess/WebPage/CoordinatedGraphics/CoordinatedGraphicsLayer.cpp:
+ (WebCore::CoordinatedGraphicsLayer::didChangeLayerState):
(WebCore::CoordinatedGraphicsLayer::didChangeAnimatedProperties):
- (WebCore):
- (WebCore::CoordinatedGraphicsLayer::CoordinatedGraphicsLayer):
- (WebCore::CoordinatedGraphicsLayer::syncLayerState):
- (WebCore::CoordinatedGraphicsLayer::syncAnimatedProperties):
- (WebCore::CoordinatedGraphicsLayer::syncCompositingStateForThisLayerOnly):
- (WebCore::CoordinatedGraphicsLayer::computeTransformedVisibleRect):
- account for the animated transform in the visible rect.
-
- (WebCore::CoordinatedGraphicsLayer::addAnimation):
- (WebCore::CoordinatedGraphicsLayer::pauseAnimation):
- (WebCore::CoordinatedGraphicsLayer::removeAnimation):
- (WebCore::CoordinatedGraphicsLayer::animationStartedTimerFired):
- (WebCore::CoordinatedGraphicsLayer::setAnimatedTransform):
- (WebCore::CoordinatedGraphicsLayer::setAnimatedOpacity):
+ (WebCore::CoordinatedGraphicsLayer::didChangeChildren):
+ (WebCore::CoordinatedGraphicsLayer::didChangeFilters):
+ (WebCore::CoordinatedGraphicsLayer::setContentsNeedsDisplay):
+ (WebCore::CoordinatedGraphicsLayer::setContentsToCanvas):
+ (WebCore::CoordinatedGraphicsLayer::flushCompositingState):
+ (WebCore::CoordinatedGraphicsLayer::flushCompositingStateForThisLayerOnly):
* WebProcess/WebPage/CoordinatedGraphics/CoordinatedGraphicsLayer.h:
- (CoordinatedGraphicsLayerClient):
(CoordinatedGraphicsLayer):
* WebProcess/WebPage/CoordinatedGraphics/LayerTreeCoordinator.cpp:
- (WebKit):
- (WebKit::LayerTreeCoordinator::setLayerAnimatedOpacity):
- (WebKit::LayerTreeCoordinator::setLayerAnimatedTransform):
+ (WebKit::LayerTreeCoordinator::flushPendingLayerChanges):
+ (WebKit::LayerTreeCoordinator::notifyFlushRequired):
* WebProcess/WebPage/CoordinatedGraphics/LayerTreeCoordinator.h:
(LayerTreeCoordinator):
+ * WebProcess/WebPage/ca/LayerTreeHostCA.cpp:
+ (WebKit::LayerTreeHostCA::notifyFlushRequired):
+ (WebKit::LayerTreeHostCA::flushPendingLayerChanges):
+ * WebProcess/WebPage/ca/LayerTreeHostCA.h:
+ (LayerTreeHostCA):
+ * WebProcess/WebPage/gtk/LayerTreeHostGtk.cpp:
+ (WebKit::LayerTreeHostGtk::notifyFlushRequired):
+ (WebKit::LayerTreeHostGtk::flushPendingLayerChanges):
+ * WebProcess/WebPage/gtk/LayerTreeHostGtk.h:
+ (LayerTreeHostGtk):
+ * WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.h:
+ (TiledCoreAnimationDrawingArea):
+ * WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.mm:
+ (WebKit::TiledCoreAnimationDrawingArea::notifyFlushRequired):
+ (WebKit::TiledCoreAnimationDrawingArea::flushLayers):
-2012-08-06 Anders Carlsson <andersca@apple.com>
-
- If the Apple Java plug-in is blocked and no runtime is installed, don't load it
- https://bugs.webkit.org/show_bug.cgi?id=93289
- <rdar://problem/11730092>
-
- Reviewed by Dan Bernstein.
-
- If the Apple Java plug-in is blocked, but there's no Java runtime installed (or the Java plug-in is disabled),
- don't even include it in the plug-in info store.
-
- * UIProcess/Plugins/PluginInfoStore.cpp:
- (WebKit::PluginInfoStore::shouldBlockPlugin):
- Since this is static now, it shouldn't be const.
-
- * UIProcess/Plugins/PluginInfoStore.h:
- (PluginInfoStore):
- shouldBlockPlugin can be static.
-
- * UIProcess/Plugins/mac/PluginInfoStoreMac.mm:
- (WebKit::PluginInfoStore::shouldUsePlugin):
- Return false if the Apple Java plug-in is blocked but Java isn't installed or enabled.
-
- (WebKit::PluginInfoStore::shouldBlockPlugin):
- Since this is static now, it shouldn't be const.
-
-2012-08-06 Mario Sanchez Prada <msanchez@igalia.com>
-
- [WK2][GTK] Improvements for the new spell-checking API
- https://bugs.webkit.org/show_bug.cgi?id=93262
-
- Reviewed by Carlos Garcia Campos.
-
- Improve the way the new spell-checking API is implemented, by
- using better internal representations for data, documenting better
- the new functions and using better unit tests.
-
- * UIProcess/API/gtk/WebKitTextChecker.cpp:
- (WebKitTextChecker::getSpellCheckingLanguages): Just return the
- value previously cached when calling to the setter function.
- (WebKitTextChecker::setSpellCheckingLanguages): Update the text
- checker in WebCore and cache the value returned from it.
- * UIProcess/API/gtk/WebKitTextChecker.h:
- (WebKitTextChecker): Use a CString instead of an String to cache
- the list of spell checking languages. Update getter and setter.
- * UIProcess/API/gtk/WebKitWebContext.cpp:
- (_WebKitWebContextPrivate): No need to cache the spell checking
- languages here anymore.
- (webkit_web_context_get_spell_checking_languages): Improve
- both implementation and documentation to be more consistent.
- (webkit_web_context_set_spell_checking_languages): Make
- 'languages' a mandatory (non-NULL) parameter. Update documentation.
- * UIProcess/API/gtk/tests/TestWebKitWebContext.cpp:
- (testWebContextSpellChecker): Test even more situations.
-
-2012-08-06 Andras Becsi <andras.becsi@nokia.com>
-
- [Qt][WK2] Remove workarounds from input event handling
- https://bugs.webkit.org/show_bug.cgi?id=93125
-
- Reviewed by Jocelyn Turcotte.
-
- Since input event propagation in Qt5 has been fixed we can remove
- the workarounds introduced to prevent the QML WebView from receiving
- input events targeting a child dialog.
- To do this the childMouseEventFilter function has to be changed to
- force touch and mouse events through the default propagation path.
-
- * UIProcess/API/qt/qquickwebview.cpp:
- (QQuickWebViewPrivate::QQuickWebViewPrivate):
- (QQuickWebViewLegacyPrivate::initialize):
- (QQuickWebView::childMouseEventFilter):
- (QQuickWebView::touchEvent):
- * UIProcess/API/qt/qquickwebview_p_p.h:
- (QQuickWebViewPrivate):
- (QQuickWebViewLegacyPrivate):
- * UIProcess/qt/QtDialogRunner.cpp:
- (WebKit::QtDialogRunner::run):
- * UIProcess/qt/WebColorChooserProxyQt.cpp:
- (WebKit::WebColorChooserProxyQt::createItem):
- (WebKit::WebColorChooserProxyQt::endChooser):
- * UIProcess/qt/WebPopupMenuProxyQt.cpp:
- (WebKit::WebPopupMenuProxyQt::showPopupMenu):
- (WebKit::WebPopupMenuProxyQt::hidePopupMenu):
-
-2012-08-06 Mario Sanchez Prada <msanchez@igalia.com>
-
- [WK2][GTK] Implement a new spell checker API for WebKit2GTK+
- https://bugs.webkit.org/show_bug.cgi?id=90268
+2012-10-04 Christophe Dumez <christophe.dumez@intel.com>
- Reviewed by Martin Robinson.
+ [EFL][WK2] Implement PageClientImpl::isViewVisible()
+ https://bugs.webkit.org/show_bug.cgi?id=98249
- Add a simple spell checking API to WK2, allowing to enable/disable
- this feature and to define a list of languages associated to it.
-
- * GNUmakefile.am: Add flags to handle the SPELLCHECK feature.
- * GNUmakefile.list.am: Added new files
-
- Added new internal class that will act both as the implementation
- of TextCheckerClient and as the object WebKitWebContext will
- depend on to implement the newly added API.
-
- * UIProcess/API/gtk/WebKitTextChecker.cpp: Added.
- (toTextChecker):
- (continuousSpellCheckingEnabledCallback):
- (setContinuousSpellCheckingEnabledCallback):
- (checkSpellingOfStringCallback):
- (guessesForWordCallback):
- (learnWordCallback):
- (ignoreWordCallback):
- (WebKitTextChecker::~WebKitTextChecker):
- (WebKitTextChecker::create):
- (WebKitTextChecker::WebKitTextChecker):
- (WebKitTextChecker::checkSpellingOfString):
- (WebKitTextChecker::getGuessesForWord):
- (WebKitTextChecker::learnWord):
- (WebKitTextChecker::ignoreWord):
- (WebKitTextChecker::setSpellCheckingEnabled):
- (WebKitTextChecker::setSpellCheckingLanguages):
- * UIProcess/API/gtk/WebKitTextChecker.h: Added.
- (WebKitTextChecker):
- (WebKitTextChecker::isSpellCheckingEnabled):
- (WebKitTextChecker::getSpellCheckingLanguages):
-
- Added WKTextChecker to WebKitPrivate.h, needed in WebKitTextChecker.
-
- * UIProcess/API/gtk/WebKitPrivate.h:
-
- Add new API to WebKitWebContext to allow enabling/disabling this
- spell checking feature, and to set/get the list of languages used
- to decide which dictionaries will be consulted.
+ Reviewed by Kenneth Rohde Christiansen.
- * UIProcess/API/gtk/WebKitWebContext.cpp:
- (_WebKitWebContextPrivate):
- (createDefaultWebContext):
- (webkit_web_context_get_spell_checking_enabled): New API.
- (webkit_web_context_set_spell_checking_enabled): Ditto.
- (webkit_web_context_get_spell_checking_languages): Ditto.
- (webkit_web_context_set_spell_checking_languages): Ditto.
- * UIProcess/API/gtk/WebKitWebContext.h:
+ Implement PageClientImpl::isViewVisible() for EFL port
+ by calling evas_object_visible_get() on the view.
- New tests for checking the new API added to WebKitWebContext.
+ * UIProcess/API/efl/PageClientImpl.cpp:
+ (WebKit::PageClientImpl::isViewVisible):
- * UIProcess/API/gtk/tests/TestWebKitWebContext.cpp:
- (testWebContextSpellChecker):
- (beforeAll):
+2012-10-04 Alexey Proskuryakov <ap@apple.com>
- Update documentation with new sections and symbols.
+ Improve initial empty process tracking
+ https://bugs.webkit.org/show_bug.cgi?id=98458
- * UIProcess/API/gtk/docs/webkit2gtk-docs.sgml:
- * UIProcess/API/gtk/docs/webkit2gtk-sections.txt:
+ Reviewed by Sam Weinig.
-2012-08-05 Benjamin Poulain <bpoulain@apple.com>
+ * UIProcess/WebContext.cpp: (WebKit::WebContext::disconnectProcess):
+ Unset m_haveInitialEmptyProcess if we no longer do.
- Assert in checkValidity() in hashtable.h from WebGeolocationManager::didFailToDeterminePosition() when fetching http://html5demos.com/geo
- https://bugs.webkit.org/show_bug.cgi?id=80386
+2012-10-03 Benjamin Poulain <bpoulain@apple.com>
- Reviewed by Alexey Proskuryakov.
+ [WK2] Support all attributes of GeolocationPosition
+ https://bugs.webkit.org/show_bug.cgi?id=98212
- WebKit2's WebGeolocationManager was delivering events without accounting that each event
- can modify the list of page that need delivery.
- Any page can remove itself by invoking clearWatch() from the callback function. A page can also cause another
- page to be removed.
-
- This patch solves the issue by taking a copy of the list of page before delivery. Each page is
- referenced as it can be deleted during the delivery.
+ Reviewed by Sam Weinig.
- Unfortunately, this cannot be tested due to missing features of WebKitTestRunner.
+ Add complete support for GeolocationPosition.
+ * Shared/WebGeolocationPosition.cpp:
+ (WebKit::WebGeolocationPosition::WebGeolocationPosition):
+ (WebKit::WebGeolocationPosition::Data::encode):
+ (WebKit::WebGeolocationPosition::Data::decode):
+ * Shared/WebGeolocationPosition.h:
+ (Data):
+ (WebKit::WebGeolocationPosition::create):
+ (WebKit::WebGeolocationPosition::canProvideAltitude):
+ (WebKit::WebGeolocationPosition::altitude):
+ (WebGeolocationPosition):
+ (WebKit::WebGeolocationPosition::canProvideAltitudeAccuracy):
+ (WebKit::WebGeolocationPosition::altitudeAccuracy):
+ (WebKit::WebGeolocationPosition::canProvideHeading):
+ (WebKit::WebGeolocationPosition::heading):
+ (WebKit::WebGeolocationPosition::canProvideSpeed):
+ (WebKit::WebGeolocationPosition::speed):
+ WebGeolocationPosition mirror the attributes of WebCore::GeolocationPosition.
+
+ * UIProcess/API/C/WKGeolocationPosition.cpp:
+ (WKGeolocationPositionCreate):
+ (WKGeolocationPositionCreate_b):
+ Add a new API exposing all the arguments.
+
+ * UIProcess/API/C/WKGeolocationPosition.h:
* WebProcess/Geolocation/WebGeolocationManager.cpp:
(WebKit::WebGeolocationManager::didChangePosition):
- (WebKit::WebGeolocationManager::didFailToDeterminePosition):
-2012-08-04 No'am Rosenthal <noam.rosenthal@nokia.com>
+2012-10-04 Simon Fraser <simon.fraser@apple.com>
- [Qt] UI_SIDE_COMPOSITING code has confusing names
- https://bugs.webkit.org/show_bug.cgi?id=93164
+ Standardize on "flush" terminology for compositing layer flushing/syncing
+ https://bugs.webkit.org/show_bug.cgi?id=98321
- Reviewed by Kenneth Rohde Christiansen.
+ Reviewed by Simon Fraser.
- Renamed and consolidated code guarded under UI_SIDE_COMPOSITING, now under
- USE(COORDINATED_GRAPHICS) guard and CoordinatedGraphics folders.
+ Rename compositing-related methods that refer to "syncing" to instead
+ refer to "flushing".
- * CMakeLists.txt:
- * DerivedSources.pri:
- * Shared/WebCoreArgumentCoders.cpp:
- (CoreIPC):
- * Shared/WebCoreArgumentCoders.h:
- * Shared/WebLayerTreeInfo.cpp:
- * Shared/WebLayerTreeInfo.h:
- * Target.pri:
- * UIProcess/API/qt/qquickwebpage.cpp:
- (QQuickWebPage::updatePaintNode):
- * UIProcess/API/qt/raw/qrawwebview.cpp:
- (QRawWebView::paint):
- * UIProcess/CoordinatedGraphics/CoordinatedBackingStore.cpp: Renamed from Source/WebKit2/UIProcess/texmap/LayerBackingStore.cpp.
- * UIProcess/CoordinatedGraphics/CoordinatedBackingStore.h: Renamed from Source/WebKit2/UIProcess/texmap/LayerBackingStore.h.
- * UIProcess/CoordinatedGraphics/LayerTreeCoordinatorProxy.cpp: Renamed from Source/WebKit2/UIProcess/LayerTreeCoordinatorProxy.cpp.
- * UIProcess/CoordinatedGraphics/LayerTreeCoordinatorProxy.h: Renamed from Source/WebKit2/UIProcess/LayerTreeCoordinatorProxy.h.
- * UIProcess/CoordinatedGraphics/LayerTreeCoordinatorProxy.messages.in: Renamed from Source/WebKit2/UIProcess/LayerTreeCoordinatorProxy.messages.in.
- * UIProcess/CoordinatedGraphics/LayerTreeRenderer.cpp: Renamed from Source/WebKit2/UIProcess/WebLayerTreeRenderer.cpp.
- * UIProcess/CoordinatedGraphics/LayerTreeRenderer.h: Renamed from Source/WebKit2/UIProcess/WebLayerTreeRenderer.h.
- * UIProcess/DrawingAreaProxy.cpp:
- (WebKit):
- * UIProcess/DrawingAreaProxy.h:
- (DrawingAreaProxy):
- * UIProcess/DrawingAreaProxyImpl.cpp:
- (WebKit::DrawingAreaProxyImpl::DrawingAreaProxyImpl):
- (WebKit::DrawingAreaProxyImpl::enterAcceleratedCompositingMode):
- (WebKit):
- * UIProcess/DrawingAreaProxyImpl.h:
- (DrawingAreaProxyImpl):
- * UIProcess/WebPageProxy.cpp:
- (WebKit::WebPageProxy::didReceiveMessage):
- * UIProcess/qt/QtWebPageSGNode.cpp:
- (WebKit::ContentsSGNode::ContentsSGNode):
- (WebKit::ContentsSGNode::layerTreeRenderer):
- (ContentsSGNode):
- (WebKit::QtWebPageSGNode::setRenderer):
- * UIProcess/qt/QtWebPageSGNode.h:
- (WebKit):
- (QtWebPageSGNode):
- * WebKit2.pri:
* WebProcess/WebCoreSupport/WebChromeClient.cpp:
- (WebKit::WebChromeClient::scheduleAnimation):
- * WebProcess/WebPage/CoordinatedGraphics/CoordinatedGraphicsLayer.cpp: Renamed from Source/WebKit2/WebProcess/WebPage/LayerTreeCoordinator/WebGraphicsLayer.cpp.
- * WebProcess/WebPage/CoordinatedGraphics/CoordinatedGraphicsLayer.h: Renamed from Source/WebKit2/WebProcess/WebPage/LayerTreeCoordinator/WebGraphicsLayer.h.
- * WebProcess/WebPage/CoordinatedGraphics/CoordinatedTile.cpp: Renamed from Source/WebKit2/WebProcess/WebPage/TiledBackingStoreRemoteTile.cpp.
- * WebProcess/WebPage/CoordinatedGraphics/CoordinatedTile.h: Renamed from Source/WebKit2/WebProcess/WebPage/TiledBackingStoreRemoteTile.h.
- * WebProcess/WebPage/CoordinatedGraphics/LayerTreeCoordinator.cpp: Renamed from Source/WebKit2/WebProcess/WebPage/LayerTreeCoordinator/LayerTreeCoordinator.cpp.
- * WebProcess/WebPage/CoordinatedGraphics/LayerTreeCoordinator.h: Renamed from Source/WebKit2/WebProcess/WebPage/LayerTreeCoordinator/LayerTreeCoordinator.h.
- * WebProcess/WebPage/CoordinatedGraphics/LayerTreeCoordinator.messages.in: Renamed from Source/WebKit2/WebProcess/WebPage/LayerTreeCoordinator/LayerTreeCoordinator.messages.in.
+ (WebKit::WebChromeClient::scheduleCompositingLayerFlush):
+ * WebProcess/WebCoreSupport/WebChromeClient.h:
+ (WebChromeClient):
* WebProcess/WebPage/DrawingArea.h:
(DrawingArea):
* WebProcess/WebPage/DrawingAreaImpl.cpp:
- (WebKit):
+ (WebKit::DrawingAreaImpl::scheduleCompositingLayerFlush):
* WebProcess/WebPage/DrawingAreaImpl.h:
(DrawingAreaImpl):
- * WebProcess/WebPage/LayerTreeHost.h:
- (LayerTreeHost):
- * WebProcess/WebPage/UpdateAtlas.cpp:
- * WebProcess/WebPage/UpdateAtlas.h:
- * WebProcess/qt/WebProcessMainQt.cpp:
- (WebKit::WebProcessMainQt):
-
-2012-08-04 Christophe Dumez <christophe.dumez@intel.com>
-
- [WK2] Move WebIntentData from Shared to UIProcess
- https://bugs.webkit.org/show_bug.cgi?id=93175
-
- Reviewed by Kenneth Rohde Christiansen.
-
- Move WebIntentData from Shared to UIProcess to
- prepare for MessagePorts support in WK2.
-
- * CMakeLists.txt:
- * GNUmakefile.list.am:
- * Target.pri:
- * UIProcess/WebIntentData.cpp: Renamed from Source/WebKit2/Shared/WebIntentData.cpp.
- (WebKit):
- (WebKit::WebIntentData::WebIntentData):
- (WebKit::WebIntentData::data):
- (WebKit::WebIntentData::suggestions):
- (WebKit::WebIntentData::extra):
- (WebKit::WebIntentData::extras):
- * UIProcess/WebIntentData.h: Renamed from Source/WebKit2/Shared/WebIntentData.h.
- (WebKit):
- (WebIntentData):
- (WebKit::WebIntentData::create):
- (WebKit::WebIntentData::~WebIntentData):
- (WebKit::WebIntentData::action):
- (WebKit::WebIntentData::payloadType):
- (WebKit::WebIntentData::service):
- (WebKit::WebIntentData::store):
- (WebKit::WebIntentData::type):
-
-2012-08-03 Anders Carlsson <andersca@apple.com>
-
- Nothing happens when clicking on the unavailable plug-in button for a blocked plug-in
- https://bugs.webkit.org/show_bug.cgi?id=93161
-
- Reviewed by John Sullivan.
-
- Be more robust against values being added to the RenderEmbeddedObject::PluginUnavailabilityReason
- enumeration, and use a switch statement instead of blindly casting the type value to a WKPluginUnavailabilityReason.
-
- * UIProcess/WebPageProxy.cpp:
- (WebKit::WebPageProxy::unavailablePluginButtonClicked):
-
-2012-08-03 Brady Eidson <beidson@apple.com>
-
- Small part of "Out-of-process plug-ins should support asynchronous initialization."
- <rdar://problem/10598594> and https://bugs.webkit.org/show_bug.cgi?id=92919
-
- Unreviewed (build fix).
-
- * Shared/WebPreferencesStore.h:
- (WebKit): Include this file which has the declaration of the new pref.
-
-2012-08-03 Brady Eidson <beidson@apple.com>
-
- Small part of "Out-of-process plug-ins should support asynchronous initialization."
- <rdar://problem/10598594> and https://bugs.webkit.org/show_bug.cgi?id=92919
-
- Reviewed by Anders Carlsson.
-
- -Add API-level preferences for forcing asynchronous initialization of all plug-ins (for testing).
- -Make sure "overridePreference" is hooked up properly for all needed preferences.
-
- * UIProcess/API/C/WKPreferences.cpp:
- (WKPreferencesSetAsynchronousPluginInitializationEnabledForAllPlugins):
- (WKPreferencesGetAsynchronousPluginInitializationEnabledForAllPlugins):
- * UIProcess/API/C/WKPreferencesPrivate.h:
-
- * WebProcess/InjectedBundle/InjectedBundle.cpp:
- (WebKit::InjectedBundle::overrideBoolPreferenceForTestRunner):
-
- * WebProcess/WebPage/WebPage.cpp:
- (WebKit::WebPage::WebPage):
- (WebKit::WebPage::updatePreferences):
- * WebProcess/WebPage/WebPage.h:
- (WebKit::WebPage::setAsynchronousPluginInitializationEnabled):
- (WebKit::WebPage::asynchronousPluginInitializationEnabledForAllPlugins):
- (WebKit::WebPage::setAsynchronousPluginInitializationEnabledForAllPlugins):
- (WebKit::WebPage::setArtificialPluginInitializationDelayEnabled):
- (WebPage):
-
-2012-08-02 Jeffrey Pfau <jpfau@apple.com>
-
- Add API for enabling blanket third-party data blocking
- https://bugs.webkit.org/show_bug.cgi?id=93022
-
- Reviewed by Anders Carlsson.
-
- Added API for enabling third-party storage blocking.
-
- * Shared/WebPreferencesStore.h:
- (WebKit):
- * UIProcess/API/C/WKPreferences.cpp:
- (WKPreferencesSetThirdPartyStorageBlockingEnabled):
- (WKPreferencesGetThirdPartyStorageBlockingEnabled):
- * UIProcess/API/C/WKPreferences.h:
- * WebProcess/WebPage/WebPage.cpp:
- (WebKit::WebPage::updatePreferences):
-
-2012-08-03 Hugo Parente Lima <hugo.lima@openbossa.org>
-
- [Qt][WK2] There's no way to test the gesture tap on WTR
- https://bugs.webkit.org/show_bug.cgi?id=92895
-
- Reviewed by Kenneth Rohde Christiansen.
-
- Add an instance of QtViewportHandler to QQuickWebViewPrivate, so it's
- now available on mobile and desktop modes, as a side effect gesture tap
- events can now be created and sent to WebCore.
-
- This is needed to test tap gestures and to get tap gestures working
- when you have a WebView (in desktop mode) on notebooks equipped with
- touch screens.
-
- * UIProcess/API/qt/qquickwebview.cpp:
- (QQuickWebViewPrivate::onComponentComplete):
- (QQuickWebViewFlickablePrivate::onComponentComplete): Implementation
- moved to QQuickWebViewPrivate::onComponentComplete.
- * UIProcess/API/qt/qquickwebview_p_p.h:
- (QQuickWebViewPrivate):
- (QQuickWebViewFlickablePrivate):
-
-2012-08-02 Alexey Proskuryakov <ap@apple.com>
-
- [WK2] Move some WebContext messages to WebProcessProxy
- https://bugs.webkit.org/show_bug.cgi?id=93046
-
- Reviewed by Anders Carlsson.
-
- * UIProcess/WebContext.cpp: (WebKit::WebContext::didReceiveSyncMessage): Unrelated
- fix - use actual process argument instead of second-guessing where the message came
- from.
-
- * UIProcess/WebContext.h: (WebKit::WebContext::historyClient): Expose history client,
- since WebProcessProxy now needs it.
-
- * UIProcess/WebContext.messages.in:
- * UIProcess/WebProcessProxy.cpp:
- (WebKit::WebProcessProxy::didNavigateWithNavigationData):
- (WebKit::WebProcessProxy::didPerformClientRedirect):
- (WebKit::WebProcessProxy::didPerformServerRedirect):
- (WebKit::WebProcessProxy::didUpdateHistoryTitle):
- * UIProcess/WebProcessProxy.h:
- * UIProcess/WebProcessProxy.messages.in:
- * WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
- (WebKit::WebFrameLoaderClient::updateGlobalHistory):
- (WebKit::WebFrameLoaderClient::updateGlobalHistoryRedirectLinks):
- (WebKit::WebFrameLoaderClient::setTitle):
- Move the messages.
-
-2012-08-03 Balazs Kelemen <kbalazs@webkit.org>
-
- Unreviewed, rolling out r124603.
- http://trac.webkit.org/changeset/124603
- https://bugs.webkit.org/show_bug.cgi?id=93077
-
- Made a few tests crash under
- LayerTreeCoordinator::flushPendingLayerChanges
-
- * WebProcess/WebPage/LayerTreeCoordinator/LayerTreeCoordinator.cpp:
- (WebKit::LayerTreeCoordinator::LayerTreeCoordinator):
- (WebKit::LayerTreeCoordinator::forceRepaint):
- (WebKit::LayerTreeCoordinator::layerTreeTileUpdatesAllowed):
- * WebProcess/WebPage/LayerTreeCoordinator/LayerTreeCoordinator.h:
- (LayerTreeCoordinator):
-
-2012-08-03 Mario Sanchez Prada <msanchez@igalia.com>
-
- Unreviewed build fix for GTK after r124479.
-
- * UIProcess/WebInspectorProxy.cpp:
- (WebKit): Moved static const definitions from header file.
- * UIProcess/WebInspectorProxy.h:
- (WebInspectorProxy): Don't give values to static const members
- here.
-
-2012-08-03 Balazs Kelemen <kbalazs@webkit.org>
-
- [WK2] LayerTreeCoordinator can disallow tile updates in forceRepaint
- https://bugs.webkit.org/show_bug.cgi?id=93077
-
- Reviewed by Jocelyn Turcotte.
-
- Force tile updates when doing a forced repaint.
-
- * WebProcess/WebPage/LayerTreeCoordinator/LayerTreeCoordinator.cpp:
- (WebKit::LayerTreeCoordinator::LayerTreeCoordinator):
- (WebKit::LayerTreeCoordinator::forceRepaint):
- (WebKit::LayerTreeCoordinator::layerTreeTileUpdatesAllowed):
- * WebProcess/WebPage/LayerTreeCoordinator/LayerTreeCoordinator.h:
- (LayerTreeCoordinator):
-
-2012-08-02 Carlos Garcia Campos <cgarcia@igalia.com>
-
- [GTK] Inspector should set a default attached height before being attached
- https://bugs.webkit.org/show_bug.cgi?id=90767
-
- Reviewed by Xan Lopez.
-
- We are currently using the minimum attached height in
- WebKitWebViewBase as the default height for the inspector when
- attached. It would be easier for WebKitWebViewBase and embedders
- implementing attach() if the inspector already had an attached
- height set when it's being attached.
-
- * UIProcess/API/gtk/WebKitWebViewBase.cpp:
- (webkitWebViewBaseContainerAdd): Don't initialize
- inspectorViewHeight.
- (webkitWebViewBaseSetInspectorViewHeight): Allow to set the
- inspector view height before having an inpector view, but only
- queue a resize when the view already has an inspector view.
- * UIProcess/API/gtk/tests/TestInspector.cpp:
- (testInspectorDefault):
- (testInspectorManualAttachDetach):
- * UIProcess/gtk/WebInspectorProxyGtk.cpp:
- (WebKit::WebInspectorProxy::platformAttach): Set the default
- attached height before attach the inspector view.
-
-2012-08-02 Dinu Jacob <dinu.jacob@nokia.com>
-
- WebKitTestRunner needs layoutTestController.setUserStyleSheetEnabled
- https://bugs.webkit.org/show_bug.cgi?id=42679
-
- Reviewed by Eric Seidel.
-
- Added WKBundleSetUserStyleSheetLocation API.
-
- * WebProcess/InjectedBundle/API/c/WKBundle.cpp:
- (WKBundleSetUserStyleSheetLocation): Added.
- * WebProcess/InjectedBundle/API/c/WKBundlePrivate.h: Added WKBundleSetUserStyleSheetLocation.
- * WebProcess/InjectedBundle/InjectedBundle.cpp:
- (WebKit::InjectedBundle::setUserStyleSheetLocation): Added. Sets the user style sheet location
- for all pages in the page group.
- (WebKit):
- * WebProcess/InjectedBundle/InjectedBundle.h:
- (InjectedBundle):
-
-2012-08-02 Lauro Neto <lauro.neto@openbossa.org>
-
- [Qt] Fix axis locking when panning on N9
- https://bugs.webkit.org/show_bug.cgi?id=92394
-
- Reviewed by Simon Hausmann.
-
- Make the QQuickWebView axis locker calculate the
- time between events using QInputEvent.timestamp, which
- is set from the native event when available.
-
- Also use touchPoint.pos() instead of screenPos() to
- correct the axis detection when running on N9, which
- has a native landscape display and the applications usually
- run in portrait mode.
-
- * UIProcess/API/qt/qquickwebview.cpp:
- (QQuickWebViewPrivate::FlickableAxisLocker::FlickableAxisLocker):
- (QQuickWebViewPrivate::FlickableAxisLocker::touchVelocity):
- (QQuickWebViewPrivate::FlickableAxisLocker::update):
- * UIProcess/API/qt/qquickwebview_p_p.h:
- (FlickableAxisLocker):
-
-2012-08-02 Hyerim Bae <hyerim.bae@samsung.com>
-
- [EFL][WK2]Add ewk_view_ui_client.
- https://bugs.webkit.org/show_bug.cgi?id=89864
-
- Reviewed by Kentaro Hara.
-
- Add ewk_view_ui_client.h / cpp files for wrapping WKPageSetPageUIClient,
- add close, createNewPage callback member to WKPageSetPageUIClient.
-
- * PlatformEfl.cmake:
- * UIProcess/API/efl/ewk_view.cpp:
- (ewk_view_base_add):
- (ewk_view_page_close):
- (ewk_view_page_create):
- * UIProcess/API/efl/ewk_view.h:
- * UIProcess/API/efl/ewk_view_private.h:
- * UIProcess/API/efl/ewk_view_ui_client.cpp: Added.
- (toEwkView):
- (closePage):
- (createNewPage):
- (ewk_view_ui_client_attach):
- * UIProcess/API/efl/ewk_view_ui_client_private.h: Added.
-
-2012-08-02 Carlos Garcia Campos <cgarcia@igalia.com>
-
- [GTK] No main resource in WebView on load committed when page has been loaded from history cache
- https://bugs.webkit.org/show_bug.cgi?id=91482
-
- Reviewed by Martin Robinson.
-
- We assume that on load committed, we already have a main resource
- in the web view, and it has already received a response. This is
- not true for pages loaded from the history cache, so when going
- back/forward, we don't have a main resource when the
- load-committed signal is emitted. We must ensure that the loading
- process documented in the API is the same for pages loaded from
- the history cache too.
-
- * UIProcess/API/gtk/WebKitLoaderClient.cpp:
- (didCommitLoadForFrame): Call webkitWebViewLoadChanged() and let
- the web view handle the certificate.
- * UIProcess/API/gtk/WebKitWebResource.cpp:
- (webkitWebResourceGetFrame): Helper private function to easily get
- the WKFrame associated with a WebResource.
- * UIProcess/API/gtk/WebKitWebResourcePrivate.h:
- * UIProcess/API/gtk/WebKitWebView.cpp:
- (webkitWebViewDisconnectMainResourceResponseChangedSignalHandler):
- Disconnect the notify::response signal of the main resource.
- (webkitWebViewFinalize): Call
- webkitWebViewDisconnectMainResourceResponseChangedSignalHandler().
- (setCertificateToMainResource): Set the TLS certificate on the
- response of the main resource.
- (webkitWebViewEmitLoadChanged): Helper function to emit
- load-chancged signal.
- (webkitWebViewEmitDelayedLoadEvents): If we were waiting for the
- main resource, emit the signals that were delayed.
- (webkitWebViewLoadChanged): Do not emit committed or finished if
- we are still waiting for the main resource. Set the TLS
- certificate if we already have a main resource or wait until we
- have the main resource with a response.
- (mainResourceResponseChangedCallback): Emitted when the main
- resource received the response. Set the certificate on the
- response and emit load signals delayed.
- (waitForMainResourceResponseIfWaitingForResource): If we are
- waiting for the main resource, connect to the notify::response
- signal of the WebResource to make sure it has a response already
- when load signal delayed are emitted.
- (webkitWebViewResourceLoadStarted): Call
- waitForMainResourceResponseIfWaitingForResource().
- * UIProcess/API/gtk/tests/LoadTrackingTest.cpp:
- (loadChangedCallback):
- (LoadTrackingTest::goBack):
- (LoadTrackingTest::goForward):
- * UIProcess/API/gtk/tests/LoadTrackingTest.h:
- (LoadTrackingTest):
- * UIProcess/API/gtk/tests/TestLoaderClient.cpp:
- (testWebViewHistoryLoad):
- (serverCallback):
- (beforeAll):
-
-2012-08-02 Andras Becsi <andras.becsi@nokia.com>
-
- [Qt][WK2] Click, mouse and links rely on touch mocking.
- https://bugs.webkit.org/show_bug.cgi?id=83091
-
- Reviewed by Simon Hausmann.
-
- Send the incoming mouse events directly to the gesture recognizers to make
- the WebView behave consistent with other Flickables.
- This patch unifies the code paths for input events and makes it possible
- to enable mouse events on the flickable web view again, thus makes the
- mobile-version of QQuickWebView usable on desktop.
-
- * UIProcess/API/qt/qquickwebview.cpp:
- (QQuickWebViewPrivate::handleMouseEvent):
- (QQuickWebViewFlickablePrivate::QQuickWebViewFlickablePrivate):
- (QQuickWebViewFlickablePrivate::handleMouseEvent):
- (QQuickWebView::mousePressEvent):
- (QQuickWebView::mouseMoveEvent):
- (QQuickWebView::mouseReleaseEvent):
- (QQuickWebView::mouseDoubleClickEvent):
- * UIProcess/API/qt/qquickwebview_p_p.h:
- (QQuickWebViewPrivate):
- (QQuickWebViewFlickablePrivate):
- * UIProcess/qt/QtPanGestureRecognizer.cpp:
- (WebKit::QtPanGestureRecognizer::update):
- * UIProcess/qt/QtWebPageEventHandler.cpp:
- (WebKit::QtWebPageEventHandler::QtWebPageEventHandler):
- (WebKit::QtWebPageEventHandler::handleInputEvent):
- (WebKit):
- (WebKit::QtWebPageEventHandler::doneWithTouchEvent):
- * UIProcess/qt/QtWebPageEventHandler.h:
- (QtWebPageEventHandler):
-
-2012-08-01 Brady Eidson <beidson@apple.com>
-
- Small part of "Out-of-process plug-ins should support asynchronous initialization."
- <rdar://problem/10598594> and https://bugs.webkit.org/show_bug.cgi?id=92919
-
- Reviewed by Anders Carlsson.
-
- Add API-level preferences for:
- - Is asynchronous plug-in initialization enabled.
- - Is an artificial initialization delay (for testing purposes) enabled.
-
- * Shared/WebPreferencesStore.h:
- (WebKit):
-
- * UIProcess/API/C/WKPreferences.cpp:
- (WKPreferencesSetAsynchronousPluginInitializationEnabled):
- (WKPreferencesGetAsynchronousPluginInitializationEnabled):
- (WKPreferencesSetArtificialPluginInitializationDelayEnabled):
- (WKPreferencesGetArtificialPluginInitializationDelayEnabled):
- * UIProcess/API/C/WKPreferencesPrivate.h:
-
- * WebProcess/WebPage/WebPage.cpp:
- (WebKit::WebPage::WebPage):
- (WebKit::WebPage::updatePreferences):
- * WebProcess/WebPage/WebPage.h:
- (WebKit::WebPage::asynchronousPluginInitializationEnabled):
- (WebKit::WebPage::artificialPluginInitializationDelayEnabled):
- (WebPage):
-
-2012-08-01 Jian Li <jianli@chromium.org>
-
- Add new CSS property "-webkit-widget-region" to expose dashboard region support for other port
- https://bugs.webkit.org/show_bug.cgi?id=90298
-
- Reviewed by Adam Barth.
-
- * Configurations/FeatureDefines.xcconfig: Add ENABLE_WIDGET_REGION define.
-
-2012-08-01 Jesus Sanchez-Palencia <jesus.palencia@openbossa.org>
-
- [Qt][WK2] Race condition between first layout and viewport attributes initialization
- https://bugs.webkit.org/show_bug.cgi?id=92902
-
- Reviewed by Noam Rosenthal.
-
- Initializing m_rawAttributes from QtViewportHandler to avoid calculation of random
- scale factors on the first layout is triggered.
-
- * UIProcess/qt/QtViewportHandler.cpp:
- (WebKit::QtViewportHandler::QtViewportHandler):
-
-2012-08-01 Zeno Albisser <zeno@webkit.org>
-
- [Qt]REGRESSION(r123786): It made 3 fast/animation tests fail.
- https://bugs.webkit.org/show_bug.cgi?id=92490
-
- Make sure that scripted animations are also serviced when
- forceRepaint is being executed. As this is what is being used for
- running layout tests.
- Move servicing of scripted animations and layoutIfNeeded call
- into a separate function syncDisplayState.
- This function can then be called from forceRepaint as well as from
- performScheduledLayerFlush.
-
- Reviewed by Noam Rosenthal.
-
- * WebProcess/WebPage/LayerTreeCoordinator/LayerTreeCoordinator.cpp:
- (WebKit::LayerTreeCoordinator::forceRepaint):
- (WebKit::LayerTreeCoordinator::performScheduledLayerFlush):
- (WebKit):
- (WebKit::LayerTreeCoordinator::syncDisplayState):
- * WebProcess/WebPage/LayerTreeCoordinator/LayerTreeCoordinator.h:
- (LayerTreeCoordinator):
-
-2012-08-01 Carlos Garcia Campos <cgarcia@igalia.com>
-
- Unreviewed. Fix GTK+ build with recent version of GTK+.
-
- Use g_threads_enter/leave instead of the wrapper macros. This
- gives a compile warning because they are now deprecated but at
- least it builds.
-
- * UIProcess/API/gtk/WebKitWebView.cpp:
- (webkitWebViewRunAsModal): Fix enter/leave order.
- * UIProcess/gtk/WebPopupMenuProxyGtk.cpp:
- (WebKit::WebPopupMenuProxyGtk::showPopupMenu):
-
-2012-07-31 Anders Carlsson <andersca@apple.com>
-
- Prefer the Oracle Java plug-in over the Apple Java plug-in
- https://bugs.webkit.org/show_bug.cgi?id=92780
-
- Reviewed by Oliver Hunt.
-
- * UIProcess/Plugins/mac/PluginInfoStoreMac.mm:
- (WebKit::findPluginWithBundleIdentifier):
- Add a new helper for finding a plug-in with the given bundle identifier.
-
- (WebKit::checkForPreferredPlugin):
- Helper function for making sure that an old plug-in is never loaded if a new plug-in is found, and that the old plug-in
- is removed from the list of loaded plug-ins if the new plug-in is found.
-
- (WebKit::PluginInfoStore::shouldUsePlugin):
- Prefer the Oracle Java plug-in over the Apple Java plug-in.
-
-2012-07-31 Alexey Proskuryakov <ap@apple.com>
-
- [WK2] Use an actual WebProcessProxy when decoding messages
- https://bugs.webkit.org/show_bug.cgi?id=92788
-
- Reviewed by Anders Carlsson.
-
- WebContextUserMessageDecoder gets process proxy from a WebContext object, but we
- know which process a message came from, and can just use that.
-
- * UIProcess/WebContextUserMessageCoders.h:
- (WebKit::WebContextUserMessageDecoder::WebContextUserMessageDecoder):
- (WebKit::WebContextUserMessageDecoder::decode):
- This is the focal point of this patch - decoder no longer needs to call m_context->process().
-
- * UIProcess/WebContext.cpp:
- (WebKit::WebContext::didReceiveMessage):
- (WebKit::WebContext::didReceiveSyncMessage):
- * UIProcess/WebContext.h:
- These methods now take a WebProcessProxy pointer instead of IPC::Connection,
- so that they can call the updated coder.
- A number of other didReceiveMessage can be modified to take WebProcessProxy later
- if needed (it's a richer interface than IPC::Connection), although not all messages
- come from WebProcesses.
-
- * UIProcess/WebConnectionToWebProcess.cpp:
- (WebKit::WebConnectionToWebProcess::didReceiveMessage):
- * UIProcess/WebPageProxy.cpp:
- (WebKit::WebPageProxy::willGoToBackForwardListItem):
- (WebKit::WebPageProxy::registerIntentServiceForFrame):
- (WebKit::WebPageProxy::didStartProvisionalLoadForFrame):
- (WebKit::WebPageProxy::didReceiveServerRedirectForProvisionalLoadForFrame):
- (WebKit::WebPageProxy::didFailProvisionalLoadForFrame):
- (WebKit::WebPageProxy::didCommitLoadForFrame):
- (WebKit::WebPageProxy::didFinishDocumentLoadForFrame):
- (WebKit::WebPageProxy::didFinishLoadForFrame):
- (WebKit::WebPageProxy::didFailLoadForFrame):
- (WebKit::WebPageProxy::didSameDocumentNavigationForFrame):
- (WebKit::WebPageProxy::didReceiveTitleForFrame):
- (WebKit::WebPageProxy::didFirstLayoutForFrame):
- (WebKit::WebPageProxy::didFirstVisuallyNonEmptyLayoutForFrame):
- (WebKit::WebPageProxy::didNewFirstVisuallyNonEmptyLayout):
- (WebKit::WebPageProxy::didRemoveFrameFromHierarchy):
- (WebKit::WebPageProxy::didDisplayInsecureContentForFrame):
- (WebKit::WebPageProxy::didRunInsecureContentForFrame):
- (WebKit::WebPageProxy::didDetectXSSForFrame):
- (WebKit::WebPageProxy::didReceiveIntentForFrame):
- (WebKit::WebPageProxy::decidePolicyForNavigationAction):
- (WebKit::WebPageProxy::decidePolicyForNewWindowAction):
- (WebKit::WebPageProxy::decidePolicyForResponse):
- (WebKit::WebPageProxy::unableToImplementPolicy):
- (WebKit::WebPageProxy::willSubmitForm):
- (WebKit::WebPageProxy::mouseDidMoveOverElement):
- (WebKit::WebPageProxy::internalShowContextMenu):
- * UIProcess/WebProcessProxy.cpp:
- (WebKit::WebProcessProxy::didReceiveMessage):
- (WebKit::WebProcessProxy::didReceiveSyncMessage):
- Updated arguments accordingly.
-
-2012-07-31 Andras Becsi <andras.becsi@nokia.com>
-
- [WK2] Visible content rect update with null trajectory vector does not reach the backing store
- https://bugs.webkit.org/show_bug.cgi?id=92750
-
- Reviewed by Jocelyn Turcotte.
-
- Make sure that notifications with a null trajectory vector reach the backing store
- since a null vector means that all tiles around the viewport were requested.
-
- * WebProcess/WebPage/LayerTreeCoordinator/LayerTreeCoordinator.cpp:
- (WebKit::LayerTreeCoordinator::setVisibleContentsRect):
-
-2012-07-31 Marcelo Lira <marcelo.lira@openbossa.org>
-
- [Qt] Input method update should also include hints
- https://bugs.webkit.org/show_bug.cgi?id=92744
-
- Reviewed by Simon Hausmann.
-
- The QInputMethod is told to query for input method hints when updated.
-
- * UIProcess/qt/QtWebPageEventHandler.cpp:
- (WebKit::QtWebPageEventHandler::updateTextInputState):
-
-2012-07-31 Danilo Cesar Lemes de Paula <danilo.cesar@collabora.co.uk>
-
- add Farstream flags/deps to WebKit, for WebRTC
- https://bugs.webkit.org/show_bug.cgi?id=87524
-
- Reviewed by Philippe Normand.
-
- Since Farstream will be used as the backend for GTK's WebRTC, this
- patch adds it as a dependency to the build system.
-
- * GNUmakefile.am:
-
-2012-07-30 Huang Dongsung <luxtella@company100.net>
-
- [Texmap] Remove the backing store after 'style.visibility' for an element sets 'hidden'.
- https://bugs.webkit.org/show_bug.cgi?id=92492
-
- Reviewed by Noam Rosenthal.
-
- Texmap handles visibility:hidden in this patch, so WebGraphicsLayer
- sends the LayerTreeCoordinatorProxyMessages with additional infomation
- to UIProcess.
-
- * Shared/WebLayerTreeInfo.h:
- * UIProcess/WebLayerTreeRenderer.cpp:
- (WebKit::WebLayerTreeRenderer::setLayerState):
- * WebProcess/WebPage/LayerTreeCoordinator/WebGraphicsLayer.cpp:
- (WebCore::WebGraphicsLayer::setContentsVisible):
- (WebCore):
- (WebCore::WebGraphicsLayer::syncLayerState):
- * WebProcess/WebPage/LayerTreeCoordinator/WebGraphicsLayer.h:
- (WebGraphicsLayer):
-
-2012-07-30 Sam Weinig <sam@webkit.org>
-
- Add a proper umbrella header for the public WebKit2 API headers
- https://bugs.webkit.org/show_bug.cgi?id=92708
- <rdar://problem/11970825>
-
- Reviewed by Dan Bernstein.
-
- Create a new umbrella WebKit2.h and add the currently public (as decided by their
- status in Xcode) Objective-C headers.
-
- * UIProcess/API/mac/WebKit2.h: Added.
- * WebKit2.xcodeproj/project.pbxproj:
- While we are here, make WebKit2_C.h a private header.
-
-2012-07-30 Sam Weinig <sam@webkit.org>
-
- Rename WebKit2.h to WebKit2_C.h
- https://bugs.webkit.org/show_bug.cgi?id=92704
-
- Reviewed by Dan Bernstein.
-
- * GNUmakefile.list.am:
- * Target.pri:
- * UIProcess/API/C/WebKit2_C.h: Renamed from Source/WebKit2/UIProcess/API/C/WebKit2.h.
- * UIProcess/API/gtk/WebKitBackForwardListPrivate.h:
- * UIProcess/API/gtk/WebKitPolicyDecisionPrivate.h:
- * UIProcess/API/gtk/WebKitPrivate.h:
- * UIProcess/API/gtk/WebKitSettingsPrivate.h:
- * UIProcess/API/gtk/WebKitWebViewPrivate.h:
- * WebKit2.xcodeproj/project.pbxproj:
- * win/WebKit2.vcproj:
- * win/WebKit2Generated.make:
- Update for changed header file name.
-
-2012-07-28 Sam Weinig <sam@webkit.org>
-
- Add ability to load from a string to the ObjC WK API
- https://bugs.webkit.org/show_bug.cgi?id=92590
-
- Reviewed by Dan Bernstein.
-
- This adds an often used method to the new Objective-C API and will
- be helpful for writing API tests.
-
- * UIProcess/API/mac/WKBrowsingContextController.h:
- * UIProcess/API/mac/WKBrowsingContextController.mm:
- (-[WKBrowsingContextController loadHTMLString:baseURL:]):
- Implement via calling down to WKPageLoadHTMLString.
-
-2012-07-30 Rafael Brandao <rafael.lobo@openbossa.org>
-
- [WK2] Kill the concept of secondary shared process
- https://bugs.webkit.org/show_bug.cgi?id=92676
-
- Reviewed by Alexey Proskuryakov.
-
- Build fix after r124092.
-
- * UIProcess/qt/QtWebContext.cpp: Build fix for Qt. In exchange of the
- method removed, I've used WebContext::create(String()).
-
-2012-07-30 Alexey Proskuryakov <ap@apple.com>
-
- [WK2] Kill the concept of secondary shared process
- https://bugs.webkit.org/show_bug.cgi?id=92676
-
- Reviewed by Sam Weinig.
-
- * UIProcess/API/C/WKContext.cpp:
- * UIProcess/API/C/WKContext.h:
- * UIProcess/WebContext.cpp:
- * UIProcess/WebContext.h:
- Deleted shared process related code. We don't need to build the singleton into
- the cross-platform C API, platform-specific API wrappers are perfectly capable
- of doing that.
-
- * UIProcess/API/efl/ewk_context.cpp: (createDefaultEwkContext):
- * UIProcess/API/gtk/WebKitWebContext.cpp: (createDefaultWebContext):
- Use WKContextCreate() when creating default context.
-
-2012-07-30 Claudio Saavedra <csaavedra@igalia.com>
-
- [GTK] critical warning: gdk_window_get_cursor() called on a NULL window
- https://bugs.webkit.org/show_bug.cgi?id=92651
-
- Reviewed by Martin Robinson.
-
- PageClientImpl::setCursor() might get called before the
- window is realized, so safeguard against it.
-
- * UIProcess/API/gtk/PageClientImpl.cpp:
- (WebKit::PageClientImpl::setCursor): early return if the window is
- not realized.
-
-2012-07-30 Sheriff Bot <webkit.review.bot@gmail.com>
-
- Unreviewed, rolling out r123983.
- http://trac.webkit.org/changeset/123983
- https://bugs.webkit.org/show_bug.cgi?id=92663
-
- EFL build is broken when unit tests are enabled (Requested by
- paroga on #webkit).
-
- * CMakeLists.txt:
- * PlatformEfl.cmake:
-
-2012-07-30 Sheriff Bot <webkit.review.bot@gmail.com>
-
- Unreviewed, rolling out r123966 and r123967.
- http://trac.webkit.org/changeset/123966
- http://trac.webkit.org/changeset/123967
- https://bugs.webkit.org/show_bug.cgi?id=92656
-
- This patch is causing assertion failures on the debug bot
- (also rolling out a dependent patch) (Requested by mrobinson
- on #webkit).
-
- * GNUmakefile.am:
- * GNUmakefile.list.am:
- * UIProcess/API/gtk/WebKitPrivate.h:
- * UIProcess/API/gtk/WebKitTextChecker.cpp: Removed.
- * UIProcess/API/gtk/WebKitTextChecker.h: Removed.
- * UIProcess/API/gtk/WebKitWebContext.cpp:
- (_WebKitWebContextPrivate):
- (createDefaultWebContext):
- * UIProcess/API/gtk/WebKitWebContext.h:
- * UIProcess/API/gtk/docs/webkit2gtk-sections.txt:
- * UIProcess/API/gtk/tests/TestWebKitWebContext.cpp:
- (beforeAll):
-
-2012-07-29 Vsevolod Vlasov <vsevik@chromium.org>
-
- Web Inspector: Resource agent's reference to cached resources should be weak.
- https://bugs.webkit.org/show_bug.cgi?id=92108
-
- Reviewed by Pavel Feldman.
-
- * win/WebKit2.def:
- * win/WebKit2CFLite.def:
-
-2012-07-30 Sheriff Bot <webkit.review.bot@gmail.com>
-
- Unreviewed, rolling out r124000.
- http://trac.webkit.org/changeset/124000
- https://bugs.webkit.org/show_bug.cgi?id=92632
-
- seems to have broken chromium Range_InstanceSizeUnknown unit
- test across many platforms (Requested by tomhudson on
- #webkit).
-
- * win/WebKit2.def:
- * win/WebKit2CFLite.def:
-
-2012-07-27 Jocelyn Turcotte <jocelyn.turcotte@nokia.com>
-
- [Qt] Remove accurateVisibleContentsPosition and use a FloatRect for visibleContentsRect instead
- https://bugs.webkit.org/show_bug.cgi?id=92536
-
- Reviewed by Noam Rosenthal.
-
- AccurateVisibleContentsPosition carries the same information as visibleContentsRect.location() and
- is needed for fixed layer position updates.
- This patch instead uses a FloatRect for the visible contents rect from the web view down to the
- LayerCoordinatorProxy, and converts it to an IntRect at this moment, before sending it to the
- web process.
- This also moves the check to prevent sending the same rect to the moment of the conversion
- in LayerTreeCoordinatorProxy to fix a bug where the fixed layer deltas wouldn't be updated
- unless the integer part of position components changed.
-
- * UIProcess/API/qt/qquickwebview.cpp:
- (QQuickWebViewLegacyPrivate::updateViewportSize):
- * UIProcess/DrawingAreaProxy.h:
- (WebKit::DrawingAreaProxy::setVisibleContentsRect):
- * UIProcess/DrawingAreaProxyImpl.cpp:
- (WebKit::DrawingAreaProxyImpl::setVisibleContentsRect):
- * UIProcess/DrawingAreaProxyImpl.h:
- (DrawingAreaProxyImpl):
- * UIProcess/LayerTreeCoordinatorProxy.cpp:
- (WebKit::LayerTreeCoordinatorProxy::LayerTreeCoordinatorProxy):
- (WebKit::LayerTreeCoordinatorProxy::setVisibleContentsRect):
- * UIProcess/LayerTreeCoordinatorProxy.h:
- (LayerTreeCoordinatorProxy):
- * UIProcess/WebLayerTreeRenderer.cpp:
- (WebKit::WebLayerTreeRenderer::WebLayerTreeRenderer):
- (WebKit::WebLayerTreeRenderer::setVisibleContentsRect):
- (WebKit::WebLayerTreeRenderer::adjustPositionForFixedLayers):
- * UIProcess/WebLayerTreeRenderer.h:
- (WebLayerTreeRenderer):
- * UIProcess/qt/QtViewportHandler.cpp:
- (WebKit::QtViewportHandler::visibleContentsRect):
- (WebKit::QtViewportHandler::informVisibleContentChange):
- * UIProcess/qt/QtViewportHandler.h:
- (QtViewportHandler):
-
-2012-07-27 Jocelyn Turcotte <jocelyn.turcotte@nokia.com>
-
- [Qt] Fix issues remaining with fixed positioned layers
- https://bugs.webkit.org/show_bug.cgi?id=92528
-
- Reviewed by Noam Rosenthal.
-
- This partially fixes jittering of fixed layers when zoomed in and the
- blurriness of rendered tiles of the non-composited contents layer.
-
- * UIProcess/WebLayerTreeRenderer.cpp:
- (WebKit::boundedScrollPosition):
- (WebKit::WebLayerTreeRenderer::paintToCurrentGLContext):
- Remove the adjustment on the root layer. This cancels setPixelAligned and causes the blurriness.
- (WebKit::WebLayerTreeRenderer::adjustPositionForFixedLayers):
- Use m_accurateVisibleContentsPosition to calculate the delta.
- (WebKit::WebLayerTreeRenderer::didChangeScrollPosition):
-
-2012-07-29 Vsevolod Vlasov <vsevik@chromium.org>
-
- Web Inspector: Resource agent's reference to cached resources should be weak.
- https://bugs.webkit.org/show_bug.cgi?id=92108
-
- Reviewed by Pavel Feldman.
-
- * win/WebKit2.def:
- * win/WebKit2CFLite.def:
-
-2012-07-29 YoungTaeck Song <youngtaeck.song@samsung.com>
-
- [WK2][EFL] TILED_BACKING_STORE support on Efl WebKit2
- https://bugs.webkit.org/show_bug.cgi?id=91582
-
- Reviewed by Noam Rosenthal.
-
- This patch is a subset of Efl's UI_SIDE_COMPOSITING implementation.
- Add a dummy function for fixing building error when enabling TILED_BACKING_STORE.
-
- * UIProcess/API/efl/PageClientImpl.cpp:
- (WebKit):
- (WebKit::PageClientImpl::pageDidRequestScroll):
- * UIProcess/API/efl/PageClientImpl.h:
- (PageClientImpl):
- * WebProcess/WebCoreSupport/WebChromeClient.cpp:
- (WebKit::WebChromeClient::contentsSizeChanged):
-
-2012-07-29 Patrick Gansterer <paroga@webkit.org>
-
- [CMake] Use WEBKIT_CREATE_FORWARDING_HEADERS to generate WK2 forwarding headers
- https://bugs.webkit.org/show_bug.cgi?id=83579
-
- Reviewed by Daniel Bates.
-
- Using a list of directories in combination with the WEBKIT_CREATE_FORWARDING_HEADERS
- macro allows us to share the common generation of forwarding headers across ports.
-
- * CMakeLists.txt:
- * PlatformEfl.cmake:
-
-2012-07-28 Sam Weinig <sam@webkit.org>
-
- Stop copying unnecessary files in WebKit2 build
- https://bugs.webkit.org/show_bug.cgi?id=92587
-
- Reviewed by Dan Bernstein.
-
- * WebKit2.xcodeproj/project.pbxproj:
- We were accidentally copying ColorSpaceData.h and EventDispatcher.messages.in into the
- build products. Stop this.
-
-2012-07-28 Ryuan Choi <ryuan.choi@samsung.com>
-
- [WK2][EFL] Add ewk_view_scale_{get|set} to EwkView.
- https://bugs.webkit.org/show_bug.cgi?id=92446
-
- Reviewed by Kenneth Rohde Christiansen.
-
- Add methods to Ewk_View to get or set the scale factor of page.
-
- * UIProcess/API/efl/ewk_view.cpp:
- (ewk_view_scale_set):
- (ewk_view_scale_get):
- * UIProcess/API/efl/ewk_view.h:
-
-2012-07-28 Mario Sanchez Prada <msanchez@igalia.com>
-
- [WK2][GTK] Implement a new spell checker API for WebKit2GTK+
- https://bugs.webkit.org/show_bug.cgi?id=90268
-
- Reviewed by Martin Robinson.
-
- Add a simple spell checking API to WK2, allowing to enable/disable
- this feature and to define a list of languages associated to it.
-
- * GNUmakefile.am: Add flags to handle the SPELLCHECK feature.
- * GNUmakefile.list.am: Added new files
-
- Added new internal class that will act both as the implementation
- of TextCheckerClient and as the object WebKitWebContext will
- depend on to implement the newly added API.
-
- * UIProcess/API/gtk/WebKitTextChecker.cpp: Added.
- (toTextChecker):
- (continuousSpellCheckingEnabledCallback):
- (setContinuousSpellCheckingEnabledCallback):
- (checkSpellingOfStringCallback):
- (guessesForWordCallback):
- (learnWordCallback):
- (ignoreWordCallback):
- (WebKitTextChecker::~WebKitTextChecker):
- (WebKitTextChecker::create):
- (WebKitTextChecker::WebKitTextChecker):
- (WebKitTextChecker::checkSpellingOfString):
- (WebKitTextChecker::getGuessesForWord):
- (WebKitTextChecker::learnWord):
- (WebKitTextChecker::ignoreWord):
- (WebKitTextChecker::setSpellCheckingEnabled):
- (WebKitTextChecker::setSpellCheckingLanguages):
- * UIProcess/API/gtk/WebKitTextChecker.h: Added.
- (WebKitTextChecker):
- (WebKitTextChecker::isSpellCheckingEnabled):
- (WebKitTextChecker::getSpellCheckingLanguages):
-
- Added WKTextChecker to WebKitPrivate.h, needed in WebKitTextChecker.
-
- * UIProcess/API/gtk/WebKitPrivate.h:
-
- Add new API to WebKitWebContext to allow enabling/disabling this
- spell checking feature, and to set/get the list of languages used
- to decide which dictionaries will be consulted.
-
- * UIProcess/API/gtk/WebKitWebContext.cpp:
- (_WebKitWebContextPrivate):
- (createDefaultWebContext):
- (webkit_web_context_get_spell_checking_enabled): New API.
- (webkit_web_context_set_spell_checking_enabled): Ditto.
- (webkit_web_context_get_spell_checking_languages): Ditto.
- (webkit_web_context_set_spell_checking_languages): Ditto.
- * UIProcess/API/gtk/WebKitWebContext.h:
-
- New tests for checking the new API added to WebKitWebContext.
-
- * UIProcess/API/gtk/tests/TestWebKitWebContext.cpp:
- (testWebContextSpellChecker):
- (beforeAll):
-
- Update documentation with new sections and symbols.
-
- * UIProcess/API/gtk/docs/webkit2gtk-docs.sgml:
- * UIProcess/API/gtk/docs/webkit2gtk-sections.txt:
-
-2012-07-27 Christophe Dumez <christophe.dumez@intel.com>
-
- [EFL][WK2] Assertion hit in ewk_cookie_manager.cpp
- https://bugs.webkit.org/show_bug.cgi?id=92544
-
- Reviewed by Kenneth Rohde Christiansen.
-
- Removed wrong assertion in ewk_cookie_manager.cpp
- and replace it by an if check. The assertion was
- sometimes hit by our unit tests.
-
- * UIProcess/API/efl/ewk_cookie_manager.cpp:
- (cookiesDidChange):
-
-2012-07-27 Anders Carlsson <andersca@apple.com>
-
- Don't use an NSUserDefault for disabling the web process sandbox
- https://bugs.webkit.org/show_bug.cgi?id=92542
- <rdar://problem/11976060>
-
- Reviewed by Mark Rowe.
-
- The user default was really helpful during WebKit2 bringup, but we no longer need to pay the IPC cost of initializing NSUserDefaults at startup,
- so get rid of the preference and use a good old #ifdef instead.
-
- * WebProcess/mac/WebProcessMac.mm:
- (WebKit::initializeSandbox):
-
-2012-07-27 Christophe Dumez <christophe.dumez@intel.com>
-
- [WK2][WTR] LayoutTestController.deliverWebIntent() needs to be implemented
- https://bugs.webkit.org/show_bug.cgi?id=92228
-
- Reviewed by Anders Carlsson.
-
- Add C API to create a WKIntentData and to deliver
- it to a frame. This is needed by WebKitTestRunner
- to implement LayoutTestController.deliverWebIntent().
-
- * UIProcess/API/C/WKIntentData.cpp:
- (WKIntentDataCreate):
- * UIProcess/API/C/WKIntentData.h:
- * WebProcess/InjectedBundle/API/c/WKBundlePage.cpp:
- (WKBundlePageDeliverIntentToFrame):
- * WebProcess/InjectedBundle/API/c/WKBundlePage.h:
- * WebProcess/WebPage/WebPage.h:
- (WebPage): Make deliverIntentToFrame() public so that it can
- be used by WKBundlePage.
-
-2012-07-27 Anders Carlsson <andersca@apple.com>
-
- Show the unavailable plug-in indicator for Java applets as well
- https://bugs.webkit.org/show_bug.cgi?id=92521
-
- Reviewed by Sam Weinig.
-
- * WebProcess/WebCoreSupport/WebChromeClient.cpp:
- (WebKit::WebChromeClient::unavailablePluginButtonClicked):
- This can now be called on applet elements as well.
-
- * WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
- (WebKit::WebFrameLoaderClient::createJavaAppletWidget):
- Get the MIME type from the applet element.
-
-2012-07-27 Gyuyoung Kim <gyuyoung.kim@samsung.com>
-
- [WK2] Fix build warning in WebEventConversion.cpp
- https://bugs.webkit.org/show_bug.cgi?id=92517
-
- Reviewed by Darin Adler.
-
- There is a build warning related to comparison between signed and unsigned integer expressions.
-
- * Shared/WebEventConversion.cpp:
- (WebKit::WebKit2PlatformTouchEvent::WebKit2PlatformTouchEvent):
-
-2012-07-27 Gyuyoung Kim <gyuyoung.kim@samsung.com>
-
- [WK2] Fix build warning in WebEventConversion.cpp
- https://bugs.webkit.org/show_bug.cgi?id=92517
-
- Reviewed by Darin Adler.
-
- There is a build warning related to comparison between signed and unsigned integer expressions.
-
- * Shared/WebEventConversion.cpp:
- (WebKit::WebKit2PlatformTouchEvent::WebKit2PlatformTouchEvent):
-
-2012-07-27 Christophe Dumez <christophe.dumez@intel.com>
-
- [EFL][WK2] Add download client for Ewk_Context
- https://bugs.webkit.org/show_bug.cgi?id=91345
-
- Reviewed by Kenneth Rohde Christiansen.
-
- Add download client for Ewk_Context so that
- information about downloads can be reported
- to the client application via Ewk_View signals.
-
- The client application needs to listen for
- "download,request" signal on the view and set
- the download path for the download in the
- callback in order to accept it. If the signal
- is ignored or if the download path is not set
- the download will fail.
-
- A new Ewk_Download_Job type is introduced to provide
- information relative to a download to the client
- and to allow the client to interact with it (e.g.
- set its download path, cancel it, ...).
-
- * PlatformEfl.cmake:
- * UIProcess/API/efl/EWebKit2.h:
- * UIProcess/API/efl/PageClientImpl.cpp:
- (WebKit::PageClientImpl::handleDownloadRequest):
- (WebKit):
- * UIProcess/API/efl/PageClientImpl.h:
- (PageClientImpl):
- * UIProcess/API/efl/ewk_context.cpp:
- (_Ewk_Context):
- (_Ewk_Context::_Ewk_Context):
- (_Ewk_Context::~_Ewk_Context):
- (ewk_context_download_job_add):
- (ewk_context_download_job_get):
- (ewk_context_download_job_remove):
- * UIProcess/API/efl/ewk_context_download_client.cpp: Added.
- (toEwkContext):
- (decideDestinationWithSuggestedFilename):
- (didReceiveResponse):
- (didCreateDestination):
- (didReceiveData):
- (didFail):
- (didCancel):
- (didFinish):
- (ewk_context_download_client_attach):
- * UIProcess/API/efl/ewk_context_download_client_private.h: Added.
- * UIProcess/API/efl/ewk_context_private.h:
- * UIProcess/API/efl/ewk_download_job.cpp: Added.
- (_Ewk_Download_Job):
- (_Ewk_Download_Job::_Ewk_Download_Job):
- (_Ewk_Download_Job::~_Ewk_Download_Job):
- (ewk_download_job_ref):
- (ewk_download_job_unref):
- (ewk_download_job_id_get):
- (ewk_download_job_view_get):
- (ewk_download_job_state_get):
- (ewk_download_job_request_get):
- (ewk_download_job_response_get):
- (ewk_download_job_destination_get):
- (ewk_download_job_destination_set):
- (ewk_download_job_suggested_filename_get):
- (ewk_download_job_cancel):
- (ewk_download_job_estimated_progress_get):
- (ewk_download_job_elapsed_time_get):
- (ewk_download_job_response_set):
- (ewk_download_job_suggested_filename_set):
- (ewk_download_job_received_data):
- (ewk_download_job_state_set):
- (ewk_download_job_new):
- * UIProcess/API/efl/ewk_download_job.h: Added.
- * UIProcess/API/efl/ewk_download_job_private.h: Added.
- (WebKit):
- * UIProcess/API/efl/ewk_url_response.cpp:
- (ewk_url_response_content_length_get): Add a function to
- retrieve the content length of a URL response.
- * UIProcess/API/efl/ewk_url_response.h:
- * UIProcess/API/efl/ewk_view.cpp:
- (ewk_view_download_job_cancelled):
- (ewk_view_download_job_requested):
- (ewk_view_download_job_failed):
- (ewk_view_download_job_finished):
- * UIProcess/API/efl/ewk_view.h:
- * UIProcess/API/efl/ewk_view_private.h:
- * UIProcess/API/efl/tests/resources/test.pdf: Added.
- * UIProcess/API/efl/tests/test_ewk2_download_job.cpp: Added. This tests
- the download functionality.
- (DownloadTestData):
- (fileExists):
- (serverCallback):
- (on_download_requested):
- (on_download_cancelled):
- (on_download_failed):
- (on_download_finished):
- (TEST_F):
- * UIProcess/PageClient.h:
- (PageClient):
- * UIProcess/WebPageProxy.cpp:
- (WebKit::WebPageProxy::receivedPolicyDecision):
- (WebKit):
- (WebKit::WebPageProxy::handleDownloadRequest):
- * UIProcess/WebPageProxy.h:
- (WebPageProxy):
-
-2012-07-27 YoungTaeck Song <youngtaeck.song@samsung.com>
-
- [WK2][EFL] Add an ACCELERATED_COMPOSITING implementation for Efl WebKit2
- https://bugs.webkit.org/show_bug.cgi?id=91581
-
- Reviewed by Noam Rosenthal.
-
- This patch is a subset of Efl's UI_SIDE_COMPOSITING implementation.
- When enter accelerated compositing mode, create evas_gl, evas_gl_context, and evas_gl_surface.
-
- * PlatformEfl.cmake:
- * Shared/LayerTreeContext.h:
- (LayerTreeContext):
- * UIProcess/API/efl/PageClientImpl.cpp:
- (WebKit::PageClientImpl::viewSize):
- (WebKit::PageClientImpl::enterAcceleratedCompositingMode):
- (WebKit::PageClientImpl::exitAcceleratedCompositingMode):
- * UIProcess/API/efl/ewk_view.cpp:
- (_Ewk_View_Private_Data):
- (_Ewk_View_Private_Data::_Ewk_View_Private_Data):
- (ewk_view_size_get):
- (ewk_view_create_gl_surface):
- (ewk_view_enter_accelerated_compositing_mode):
- (ewk_view_exit_accelerated_compositing_mode):
- (_ewk_view_smart_calculate):
- * UIProcess/API/efl/ewk_view_private.h:
-
-2012-07-27 Christophe Dumez <christophe.dumez@intel.com>
-
- [EFL][WK2] Add API to Ewk_Cookie_Manager to watch for cookie changes
- https://bugs.webkit.org/show_bug.cgi?id=92484
-
- Reviewed by Kenneth Rohde Christiansen.
-
- Add API tp Ewk_Cookie_Manager so that the client can watch
- for cookie changes.
-
- * UIProcess/API/efl/ewk_cookie_manager.cpp:
- * UIProcess/API/efl/ewk_cookie_manager.h:
- * UIProcess/API/efl/tests/test_ewk2_cookie_manager.cpp: Add unit tests
- for cookie changes watching.
-
-2012-07-27 Christophe Dumez <christophe.dumez@intel.com>
-
- [EFL][WK2] Stop using C API to interact with the page in Ewk_View
- https://bugs.webkit.org/show_bug.cgi?id=92463
-
- Reviewed by Simon Hausmann.
-
- Stop using C API to interact with the PageProxy in Ewk_View
- and use the PageProxy object directly. This avoids useless
- converting to WK type using toAPI() all the time.
-
- * UIProcess/API/efl/ewk_view.cpp:
- (ewk_view_base_add):
- (ewk_view_uri_update):
- (ewk_view_uri_set):
- (ewk_view_reload):
- (ewk_view_reload_bypass_cache):
- (ewk_view_stop):
- (ewk_view_load_progress_get):
- (ewk_view_device_pixel_ratio_set):
- (ewk_view_theme_get):
- (ewk_view_cursor_set):
- (ewk_view_back):
- (ewk_view_forward):
- (ewk_view_intent_deliver):
- (ewk_view_back_possible):
- (ewk_view_forward_possible):
- (ewk_view_setting_encoding_custom_get):
- (ewk_view_setting_encoding_custom_set):
-
-2012-07-27 Dominik Röttsches <dominik.rottsches@intel.com>
-
- [Cairo] Add complex font drawing using HarfbuzzNG
- https://bugs.webkit.org/show_bug.cgi?id=91864
-
- Reviewed by Simon Hausmann and Martin Robinson.
-
- Adding includes for harfbuzz folders.
-
- * CMakeLists.txt:
-
-2012-07-27 Christophe Dumez <christophe.dumez@intel.com>
-
- [EFL][WK2] Add more Ewk_View unit tests
- https://bugs.webkit.org/show_bug.cgi?id=92407
-
- Reviewed by Kenneth Rohde Christiansen.
-
- Add more unit tests for WebKit2 Ewk_View API.
- In particular, navigation, HTML loading and
- device pixel ratio functions are now tested.
-
- * UIProcess/API/efl/tests/UnitTestUtils/EWK2UnitTestBase.cpp:
- (EWK2UnitTest::EWK2UnitTestBase::SetUp): Call ewk_init() instead
- of duplicating initialization code.
- (EWK2UnitTest::EWK2UnitTestBase::TearDown): call ewk_shutdown().
- (TitleChangedData):
- (EWK2UnitTest):
- (EWK2UnitTest::onTitleChanged):
- (EWK2UnitTest::EWK2UnitTestBase::waitUntilTitleChangedTo): Add convenience
- method to wait until the view main frame title changes to a given value.
- * UIProcess/API/efl/tests/UnitTestUtils/EWK2UnitTestBase.h:
- (EWK2UnitTestBase):
- * UIProcess/API/efl/tests/test_ewk2_view.cpp:
- (TEST_F):
- (serverCallbackNavigation):
-
-2012-07-27 Mikhail Pozdnyakov <mikhail.pozdnyakov@intel.com>
-
- [EFL][WK2] Keyboard events miss key location data.
- https://bugs.webkit.org/show_bug.cgi?id=92235
-
- Reviewed by Simon Hausmann.
-
- EFL WK2 did not initialize WebKeyboardEvent::m_isKeypad field.
- This caused failure of fast/events/keydown-numpad-keys.html test.
-
- * Shared/efl/WebEventFactory.cpp: WebKeyboardEvent::m_isKeypad is initialized.
- (WebKit::WebEventFactory::createWebKeyboardEvent):
-
-2012-07-27 Gyuyoung Kim <gyuyoung.kim@samsung.com>
-
- [EFL] Fix wrong return value in EWK_VIEW_XXX macro.
- https://bugs.webkit.org/show_bug.cgi?id=92466
-
- Reviewed by Simon Hausmann.
-
- There are wrong return values in EWK_VIEW_XXX macros. The wrong return values
- should be fixed. In addition, API description is also modified according to returned
- value change.
-
- * UIProcess/API/efl/ewk_view.cpp:
- (ewk_view_uri_set):
- (ewk_view_load_progress_get):
- (ewk_view_device_pixel_ratio_get):
- * UIProcess/API/efl/ewk_view.h:
-
-2012-07-27 Christophe Dumez <christophe.dumez@intel.com>
-
- [EFL][WK2] Add unit tests for Ewk_View form client
- https://bugs.webkit.org/show_bug.cgi?id=92468
-
- Reviewed by Simon Hausmann.
-
- Add unit test for form client functionality in
- Ewk_View.
-
- * UIProcess/API/efl/tests/test_ewk2_view.cpp:
- (onFormAboutToBeSubmitted):
- (TEST_F):
-
-2012-07-26 Zeno Albisser <zeno@webkit.org>
-
- Unreviewed Qt buildfix after r123786.
-
- Qt-minimal builds with ENABLE_REQUEST_ANIMATION_FRAME=0.
- Therefore adding #ifdefs to allow for that configuration.
-
- * WebProcess/WebPage/LayerTreeCoordinator/LayerTreeCoordinator.cpp:
- (WebKit):
- * WebProcess/WebPage/LayerTreeCoordinator/LayerTreeCoordinator.h:
- (LayerTreeCoordinator):
-
-2012-07-26 Zeno Albisser <zeno@webkit.org>
-
- [Qt] requestAnimationFrame should only trigger when a new frame can be displayed.
- https://bugs.webkit.org/show_bug.cgi?id=88638
-
- Disable REQUEST_ANIMATION_FRAME_TIMER for the Qt port and tie
- the servicing of scripted animations to layer syncing for WK2.
- For WK1 we rely on the RefreshAnimation that is based on QAbstractAnimation.
-
- Reviewed by Jocelyn Turcotte.
-
- * WebProcess/WebCoreSupport/WebChromeClient.cpp:
- (WebKit):
- (WebKit::WebChromeClient::scheduleAnimation):
- * WebProcess/WebCoreSupport/WebChromeClient.h:
- (WebChromeClient):
- * WebProcess/WebPage/LayerTreeCoordinator/LayerTreeCoordinator.cpp:
- (WebKit::LayerTreeCoordinator::performScheduledLayerFlush):
- (WebKit::LayerTreeCoordinator::scheduleAnimation):
- (WebKit):
- * WebProcess/WebPage/LayerTreeCoordinator/LayerTreeCoordinator.h:
- (LayerTreeCoordinator):
- * WebProcess/WebPage/LayerTreeHost.h:
- (LayerTreeHost):
-
-2012-07-26 Jer Noble <jer.noble@apple.com>
-
- Add a ChromeClient method to send diagnostic logging messages from WebCore to the client.
- https://bugs.webkit.org/show_bug.cgi?id=92340
-
- Reviewed by Anders Carlsson.
-
- Pipe the ChromeClient logDiagnosticMessage() function through WebKit2 to a new bundle class
- InjectedBundlePageDiagnosticLoggingClient, to be implemented by the client.
-
- * WebProcess/InjectedBundle/API/c/WKBundlePage.cpp:
- (WKBundlePageSetDiagnosticLoggingClient): Added.
- * WebProcess/InjectedBundle/API/c/WKBundlePage.h:
- * WebProcess/InjectedBundle/InjectedBundlePageDiagnosticLoggingClient.cpp: Added.
- (WebKit::InjectedBundlePageDiagnosticLoggingClient::logDiagnosticMessage):
- * WebProcess/InjectedBundle/InjectedBundlePageDiagnosticLoggingClient.h: Added.
- (InjectedBundlePageDiagnosticLoggingClient):
- * WebProcess/WebCoreSupport/WebChromeClient.cpp:
- (WebKit::WebChromeClient::logDiagnosticMessage):
- * WebProcess/WebCoreSupport/WebChromeClient.h:
- * WebProcess/WebPage/WebPage.cpp:
- (WebKit::WebPage::initializeInjectedBundleDiagnosticLoggingClient):
- * WebProcess/WebPage/WebPage.h:
- (WebKit::WebPage::injectedBundleDiagnosticLoggingClient):
-
- Add a convenience class to retrieve the diagnostic message keys:
- * WebProcess/InjectedBundle/InjectedBundlePageDiagnosticLoggingClient.cpp: Added.
- (WebKit::InjectedBundlePageDiagnosticLoggingClient::logDiagnosticMessage):
- * WebProcess/InjectedBundle/InjectedBundlePageDiagnosticLoggingClient.h: Added.
- (InjectedBundlePageDiagnosticLoggingClient):
-
- Add the InjectedBundlePageDiagnosticLoggingClient.cpp,h files.
- * CMakeLists.txt:
- * GNUmakefile.list.am:
- * Target.pri:
- * win/WebKit2.vcproj:
- * WebKit2.xcodeproj/project.pbxproj:
-
-2012-07-25 Jer Noble <jer.noble@apple.com>
-
- Add setting to enable and disable diagnostic logging.
- https://bugs.webkit.org/show_bug.cgi?id=92337
-
- Reviewed by Anders Carlsson.
-
- Add a WebKit2 WKPreferences API to set set the WebCore diagnosticLoggingEnabled setting.
-
- * Shared/WebPreferencesStore.h:
- * UIProcess/API/C/WKPreferences.cpp:
- (WKPreferencesSetDiagnosticLoggingEnabled):
- (WKPreferencesGetDiagnosticLoggingEnabled):
- * UIProcess/API/C/WKPreferencesPrivate.h:
- * WebProcess/WebPage/WebPage.cpp:
- (WebKit::WebPage::updatePreferences): Ensure this preference is propagated to Settings
- whenever the preferences change.
-
-2012-07-26 Thiago Marcos P. Santos <thiago.santos@intel.com>
-
- [EFL][WK2] Regression(r123731): Linking errors due to efreet functions
- https://bugs.webkit.org/show_bug.cgi?id=92378
-
- Unreviewed build fix.
-
- The library list created by PlatformEfl.cmake was being erased by a
- SET called after including the platform specific file. Luckily the
- dependencies were fulfilled by other targets until efreet was add.
-
- * CMakeLists.txt:
-
-2012-07-26 Christophe Dumez <christophe.dumez@intel.com>
-
- [EFL][WK2] Compilation warning in EWK2UnitTestServer.cpp
- https://bugs.webkit.org/show_bug.cgi?id=92387
-
- Reviewed by Kenneth Rohde Christiansen.
-
- Fix compilation warning in EWK2UnitTestServer.cpp.
-
- * UIProcess/API/efl/tests/UnitTestUtils/EWK2UnitTestServer.cpp:
- (EWK2UnitTestServer::EWK2UnitTestServer):
-
-2012-07-26 Christophe Dumez <christophe.dumez@intel.com>
-
- [EFL][WK2] Implement Network Information provider
- https://bugs.webkit.org/show_bug.cgi?id=92343
-
- Reviewed by Kenneth Rohde Christiansen.
-
- Add Network Information provider for WebKit2 EFL
- by using NetworkInfoProviderEfl class from
- WebCore.
-
- * CMakeLists.txt:
- * PlatformEfl.cmake:
- * UIProcess/API/efl/NetworkInfoProvider.cpp: Added.
- (toNetworkInfoProvider):
- (startUpdatingCallback):
- (stopUpdatingCallback):
- (getBandwidthCallback):
- (isMeteredCallback):
- (NetworkInfoProvider::create):
- (NetworkInfoProvider::NetworkInfoProvider):
- (NetworkInfoProvider::~NetworkInfoProvider):
- (NetworkInfoProvider::bandwidth):
- (NetworkInfoProvider::metered):
- (NetworkInfoProvider::startUpdating):
- (NetworkInfoProvider::stopUpdating):
- * UIProcess/API/efl/NetworkInfoProvider.h: Added.
- (NetworkInfoProvider):
-
-2012-07-26 Christophe Dumez <christophe.dumez@intel.com>
-
- [EFL][WK2] Compilation warning in EWK2UnitTestServer.cpp
- https://bugs.webkit.org/show_bug.cgi?id=92387
-
- Reviewed by Kenneth Rohde Christiansen.
-
- Fix compilation warning in EWK2UnitTestServer.cpp.
-
- * UIProcess/API/efl/tests/UnitTestUtils/EWK2UnitTestServer.cpp:
- (EWK2UnitTestServer::EWK2UnitTestServer):
-
-2012-07-26 Thiago Marcos P. Santos <thiago.santos@intel.com>
-
- [EFL][WK2] Regression(r123731): Linking errors due to efreet functions
- https://bugs.webkit.org/show_bug.cgi?id=92378
-
- Unreviewed build fix.
-
- The library list created by PlatformEfl.cmake was being erased by a
- SET called after including the platform specific file. Luckily the
- dependencies were fulfilled by other targets until efreet was add.
-
- * CMakeLists.txt:
-
-2012-07-26 Christophe Dumez <christophe.dumez@intel.com>
-
- [EFL][WK2] Compilation warning in EWK2UnitTestServer.cpp
- https://bugs.webkit.org/show_bug.cgi?id=92387
-
- Reviewed by Kenneth Rohde Christiansen.
-
- Fix compilation warning in EWK2UnitTestServer.cpp.
-
- * UIProcess/API/efl/tests/UnitTestUtils/EWK2UnitTestServer.cpp:
- (EWK2UnitTestServer::EWK2UnitTestServer):
-
-2012-07-26 Christophe Dumez <christophe.dumez@intel.com>
-
- [EFL][WK2] Implement Network Information provider
- https://bugs.webkit.org/show_bug.cgi?id=92343
-
- Reviewed by Kenneth Rohde Christiansen.
-
- Add Network Information provider for WebKit2 EFL
- by using NetworkInfoProviderEfl class from
- WebCore.
-
- * CMakeLists.txt:
- * PlatformEfl.cmake:
- * UIProcess/API/efl/NetworkInfoProvider.cpp: Added.
- (toNetworkInfoProvider):
- (startUpdatingCallback):
- (stopUpdatingCallback):
- (getBandwidthCallback):
- (isMeteredCallback):
- (NetworkInfoProvider::create):
- (NetworkInfoProvider::NetworkInfoProvider):
- (NetworkInfoProvider::~NetworkInfoProvider):
- (NetworkInfoProvider::bandwidth):
- (NetworkInfoProvider::metered):
- (NetworkInfoProvider::startUpdating):
- (NetworkInfoProvider::stopUpdating):
- * UIProcess/API/efl/NetworkInfoProvider.h: Added.
- (NetworkInfoProvider):
-
-2012-07-26 Christophe Dumez <christophe.dumez@intel.com>
-
- [EFL][WK2] Compilation warning in EWK2UnitTestServer.cpp
- https://bugs.webkit.org/show_bug.cgi?id=92387
-
- Reviewed by Kenneth Rohde Christiansen.
-
- Fix compilation warning in EWK2UnitTestServer.cpp.
-
- * UIProcess/API/efl/tests/UnitTestUtils/EWK2UnitTestServer.cpp:
- (EWK2UnitTestServer::EWK2UnitTestServer):
-
-2012-07-26 Christophe Dumez <christophe.dumez@intel.com>
-
- [EFL][WK2] Add unit tests for Ewk_Context
- https://bugs.webkit.org/show_bug.cgi?id=92005
-
- Reviewed by Antonio Gomes.
-
- Add unit tests for WebKit2 Ewk_Context.
-
- * PlatformEfl.cmake:
- * UIProcess/API/efl/ewk_url_scheme_request.cpp:
- (ewk_url_scheme_request_finish):
- * UIProcess/API/efl/ewk_url_scheme_request.h: Mark content_data
- argument as const.
- * UIProcess/API/efl/tests/test_ewk2_context.cpp: Added.
- (TEST_F):
- (schemeRequestCallback):
-
-2012-07-26 Christophe Dumez <christophe.dumez@intel.com>
-
- [EFL][WK2] Add form client for Ewk_View
- https://bugs.webkit.org/show_bug.cgi?id=92358
-
- Reviewed by Kenneth Rohde Christiansen.
-
- Implement a form client for EFL port in order to
- send a "form,request,new" signal on the Ewk_View
- whenever a form will be submitted.
-
- The Ewk_Form_Submission_Request type is
- introduced to provide the client with information
- about the form (e.g. text fields contained in the
- form) and to submit it.
-
- This is typically used to store login information
- that can be used later to pre-fill the form.
-
- * PlatformEfl.cmake:
- * UIProcess/API/efl/EWebKit2.h:
- * UIProcess/API/efl/ewk_form_submission_request.cpp: Added.
- (_Ewk_Form_Submission_Request):
- (_Ewk_Form_Submission_Request::_Ewk_Form_Submission_Request):
- (_Ewk_Form_Submission_Request::~_Ewk_Form_Submission_Request):
- (ewk_form_submission_request_ref):
- (ewk_form_submission_request_unref):
- (ewk_form_submission_request_field_names_get):
- (ewk_form_submission_request_field_value_get):
- (ewk_form_submission_request_submit):
- (ewk_form_submission_request_new):
- * UIProcess/API/efl/ewk_form_submission_request.h: Added.
- * UIProcess/API/efl/ewk_form_submission_request_private.h: Added.
- * UIProcess/API/efl/ewk_view.cpp:
- (ewk_view_base_add):
- (ewk_view_form_submission_request_new):
- * UIProcess/API/efl/ewk_view.h:
- * UIProcess/API/efl/ewk_view_form_client.cpp: Added.
- (willSubmitForm):
- (ewk_view_form_client_attach):
- * UIProcess/API/efl/ewk_view_form_client_private.h: Added.
- * UIProcess/API/efl/ewk_view_private.h:
-
-2012-07-26 Mikhail Pozdnyakov <mikhail.pozdnyakov@intel.com>
-
- [WK2] WebPage::handleEditingKeyboardEvent does not check whether the node allows editing.
- https://bugs.webkit.org/show_bug.cgi?id=92364
-
- Reviewed by Kenneth Rohde Christiansen.
-
- Added a check whether the input node allows editing. If editing is not allowed
- text input event will not be emitted.
-
- * WebProcess/WebPage/WebPage.cpp:
- (WebKit::WebPage::handleEditingKeyboardEvent):
-
-2012-07-26 Zoltan Nyul <zoltan.nyul@intel.com>
-
- [EFL] EFL port should use XDG paths
- https://bugs.webkit.org/show_bug.cgi?id=91719
-
- Reviewed by Kenneth Rohde Christiansen.
-
- Setting xdg paths for application cache, web-database and local-storage.
-
- * PlatformEfl.cmake:
- * UIProcess/efl/WebContextEfl.cpp:
- (WebKit::WebContext::applicationCacheDirectory):
- (WebKit::WebContext::platformDefaultDatabaseDirectory):
- (WebKit::WebContext::platformDefaultLocalStorageDirectory):
-
-2012-07-26 Sudarsana Nagineni <sudarsana.nagineni@linux.intel.com>
-
- [EFL] [WK2] Memory leak in ewk_view_resource_load_client.cpp
- https://bugs.webkit.org/show_bug.cgi?id=92099
-
- Reviewed by Kentaro Hara.
-
- Fix a memory leak by clearing the loadingResources HashMap on exit.
-
- * UIProcess/API/efl/ewk_view.cpp:
- (_Ewk_View_Private_Data::~_Ewk_View_Private_Data):
- (_ewk_view_priv_loading_resources_clear):
- (ewk_view_load_provisional_started):
-
-2012-07-26 Gyuyoung Kim <gyuyoung.kim@samsung.com>
-
- [DRT] LTC:: pageNumberForElementById() could be moved to Internals
- https://bugs.webkit.org/show_bug.cgi?id=92091
-
- Reviewed by Kentaro Hara.
-
- Missing a symbol filter for Mac win port.
-
- * win/WebKit2.def:
- * win/WebKit2CFLite.def:
-
-2012-07-25 Seokju Kwon <seokju.kwon@samsung.com>
-
- [EFL][WK2] Implement the inspector for WebKitTestRunner
- https://bugs.webkit.org/show_bug.cgi?id=92213
-
- Reviewed by Ryosuke Niwa.
-
- Partial Implementation of WebInspectorProxyEfl for WebkitTestRunner.
- And Web Inspector resources installation.
-
- * PlatformEfl.cmake:
- * UIProcess/WebInspectorProxy.cpp:
- (WebKit::WebInspectorProxy::WebInspectorProxy):
- * UIProcess/WebInspectorProxy.h:
- (WebInspectorProxy):
- * UIProcess/efl/WebInspectorProxyEfl.cpp:
- (WebKit::WebInspectorProxy::platformCreateInspectorPage):
- (WebKit::WebInspectorProxy::platformDidClose):
- (WebKit::WebInspectorProxy::inspectorPageURL):
- (WebKit::WebInspectorProxy::inspectorBaseURL):
-
-2012-07-25 Caio Marcelo de Oliveira Filho <caio.oliveira@openbossa.org>
-
- Create a specialized struct for use in HashMap iterators
- https://bugs.webkit.org/show_bug.cgi?id=92137
-
- Reviewed by Ryosuke Niwa.
-
- * Platform/CoreIPC/ArgumentCoders.h: Add encode/decode for KeyValuePair.
-
-2012-07-25 Anders Carlsson <andersca@apple.com>
-
- Crash when calling PluginView::pluginFocusOrWindowFocusChanged when the web page is null
- https://bugs.webkit.org/show_bug.cgi?id=92289
- <rdar://problem/11785352>
-
- Reviewed by Andreas Kling.
-
- Plug-in views that outlive their containing web page for various reasons (such as being protected from
- destruction) need to null check the web page.
-
- * WebProcess/Plugins/PluginView.cpp:
- (WebKit::PluginView::pluginFocusOrWindowFocusChanged):
- (WebKit::PluginView::setComplexTextInputState):
-
-2012-07-25 Christophe Dumez <christophe.dumez@intel.com>
-
- [WK2][WTR] LayoutTestController.sendWebIntentResponse() needs to be implemented
- https://bugs.webkit.org/show_bug.cgi?id=92227
-
- Reviewed by Kenneth Rohde Christiansen.
-
- Add new InjectedBundleIntentRequest class to wrap WebCore's
- IntentRequest and use it in InjectedBundle's
- didReceiveIntentForFrame callback. The WebKitTestRunner needs
- to be able to reply to a Web intent request in order to
- implement LayoutTestController.sendWebIntentResponse(). As
- a consequence, passing a WebIntentData type in not enough.
-
- * CMakeLists.txt:
- * GNUmakefile.list.am:
- * Shared/API/c/WKBase.h:
- * Shared/APIObject.h:
- * Shared/IntentData.cpp:
- (WebKit::IntentData::IntentData):
- (WebKit):
- * Shared/IntentData.h:
- (WebCore):
- (WebKit::IntentData::IntentData):
- (IntentData):
- * Target.pri:
- * WebProcess/InjectedBundle/API/c/WKBundleAPICast.h:
- (WebKit):
- * WebProcess/InjectedBundle/API/c/WKBundleIntentRequest.cpp: Copied from Source/WebKit2/Shared/IntentData.cpp.
- (WKBundleIntentRequestGetTypeID):
- (WKBundleIntentRequestCopyIntent):
- (WKBundleIntentRequestPostResult):
- (WKBundleIntentRequestPostFailure):
- * WebProcess/InjectedBundle/API/c/WKBundleIntentRequest.h: Copied from Source/WebKit2/Shared/IntentData.h.
- * WebProcess/InjectedBundle/API/c/WKBundlePage.h:
- * WebProcess/InjectedBundle/InjectedBundleIntentRequest.cpp: Copied from Source/WebKit2/Shared/IntentData.cpp.
- (WebKit):
- (WebKit::InjectedBundleIntentRequest::create):
- (WebKit::InjectedBundleIntentRequest::InjectedBundleIntentRequest):
- (WebKit::InjectedBundleIntentRequest::postResult):
- (WebKit::InjectedBundleIntentRequest::postFailure):
- (WebKit::InjectedBundleIntentRequest::intent):
- * WebProcess/InjectedBundle/InjectedBundleIntentRequest.h: Copied from Source/WebKit2/Shared/IntentData.h.
- (WebCore):
- (WebKit):
- (InjectedBundleIntentRequest):
- (WebKit::InjectedBundleIntentRequest::type):
- * WebProcess/InjectedBundle/InjectedBundlePageLoaderClient.cpp:
- (WebKit::InjectedBundlePageLoaderClient::didReceiveIntentForFrame):
- * WebProcess/InjectedBundle/InjectedBundlePageLoaderClient.h:
- (WebKit):
- (InjectedBundlePageLoaderClient):
- * WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
- (WebKit::WebFrameLoaderClient::dispatchIntent):
-
-2012-07-25 Anders Carlsson <andersca@apple.com>
-
- Crash when a web page is closed with outstanding scrolling thread barriers
- https://bugs.webkit.org/show_bug.cgi?id=92280
- <rdar://problem/11630200>
-
- Reviewed by Andreas Kling.
-
- There was a check in forceRepaintAsync to handle the drawing area going away before the block had
- been invoked, but this check needs to be done earlier (as the FIXME suggested).
- Move this check to dispatchAfterEnsuringUpdatedScrollPosition instead.
-
+ * WebProcess/WebPage/ca/LayerTreeHostCA.cpp:
+ (WebKit::LayerTreeHostCA::flushPendingLayerChanges):
+ * WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.h:
+ (TiledCoreAnimationDrawingArea):
* WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.mm:
- (WebKit::TiledCoreAnimationDrawingArea::forceRepaintAsync):
- (WebKit::TiledCoreAnimationDrawingArea::dispatchAfterEnsuringUpdatedScrollPosition):
-
-2012-07-25 Alexey Proskuryakov <ap@apple.com>
-
- Chinese IM receives incorrect/duplicated key events in text fields in webpages in Safari.
- https://bugs.webkit.org/show_bug.cgi?id=89048
- <rdar://problem/11786384>
-
- Reviewed by Andreas Kling.
-
- Cannot test text input from UI process side.
-
- Stop relying on IPC to handle key events in order. There are too many complications
- where out of order delivery is performed. Instead, queue the events at UI process
- side.
-
- * UIProcess/WebPageProxy.cpp:
- (WebKit::WebPageProxy::handleKeyboardEvent):
- (WebKit::WebPageProxy::didReceiveEvent):
-
-2012-07-25 Gyuyoung Kim <gyuyoung.kim@samsung.com>
+ (WebKit::TiledCoreAnimationDrawingArea::scheduleCompositingLayerFlush):
+ (WebKit::TiledCoreAnimationDrawingArea::didInstallPageOverlay):
+ (WebKit::TiledCoreAnimationDrawingArea::didUninstallPageOverlay):
+ (WebKit::TiledCoreAnimationDrawingArea::setPageOverlayNeedsDisplay):
+ (WebKit::TiledCoreAnimationDrawingArea::flushLayers):
- [EFL] Use eina_stringshare_add instead of strdup.
- https://bugs.webkit.org/show_bug.cgi?id=92072
+2012-10-04 Christophe Dumez <christophe.dumez@intel.com>
- Reviewed by Kentaro Hara.
+ [EFL][WK2] Add setting to allow file access from file:// URLs
+ https://bugs.webkit.org/show_bug.cgi?id=98121
- Eina of EFL libraries supports a string functionality that replaces strdup. So, EFL port needs
- to replace strdup with eina_stringshare_add function.
-
- * UIProcess/API/efl/ewk_intent.cpp:
- (ewk_intent_suggestions_get):
- (ewk_intent_extra_get):
- * UIProcess/API/efl/ewk_intent.h:
-
-2012-07-25 Ryuan Choi <ryuan.choi@samsung.com>
-
- [EFL][WK2] Add ewk_view_cursor_set to change cursor.
- https://bugs.webkit.org/show_bug.cgi?id=89140
-
- Reviewed by Hajime Morita.
-
- Implement ewk_view_cursor_set to support cursor changes.
-
- * UIProcess/API/efl/PageClientImpl.cpp:
- (WebKit::PageClientImpl::setCursor): Called ewk_view_cursor_set.
- * UIProcess/API/efl/ewk_view.cpp:
- (_Ewk_View_Private_Data):
- (_Ewk_View_Private_Data::_Ewk_View_Private_Data):
- (_Ewk_View_Private_Data::~_Ewk_View_Private_Data):
- (_ewk_view_priv_new): Check whether ecore_x can be used.
- (_ewk_view_smart_add):
- Change order of initialization to use base structure in _ewk_view_priv_new.
- (ewk_view_cursor_set): Added to set cursor.
- * UIProcess/API/efl/ewk_view_private.h:
-
-2012-07-25 Ryuan Choi <ryuan.choi@samsung.com>
-
- [EFL][WK2] Update uri when the active URI is changed while loading.
- https://bugs.webkit.org/show_bug.cgi?id=92001
-
- Reviewed by Hajime Morita.
-
- For now, ewk_view_uri_get just return the last uri of setter.
- This patch updates the uri of ewk_view when it is changed while loading.
-
- * UIProcess/API/efl/ewk_view.cpp:
- (ewk_view_uri_update):
- Added to check whether current active URI has changed and send uri,changed
- signal if it has changed.
- (ewk_view_uri_set):
- Called ewk_view_uri_update to make sure the active uri is updated when the
- load operation is started.
- (ewk_view_reload): Ditto.
- (ewk_view_reload_bypass_cache): Ditto.
- (ewk_view_load_finished): Ditto.
- (ewk_view_load_provisional_redirect): Ditto.
- (ewk_view_load_provisional_started): Ditto.
- (ewk_view_html_string_load): Ditto.
- * UIProcess/API/efl/ewk_view.h: Updated comment for uri,changed signal.
- * UIProcess/API/efl/tests/UnitTestUtils/EWK2UnitTestEnvironment.cpp:
- (EWK2UnitTest::EWK2UnitTestEnvironment::urlForResource):
- Added to get url of custom resource for test.
- * UIProcess/API/efl/tests/UnitTestUtils/EWK2UnitTestEnvironment.h:
- * UIProcess/API/efl/tests/resources/redirect_uri_to_default.html:
- Added to test ewk_view_uri_get when the page is redirected.
- * UIProcess/API/efl/tests/test_ewk2_view.cpp: Ditto.
- (onLoadFinishedForRedirection):
- (TEST_F): Added new test case whether ewk_view_uri_get returns correct uri when
- the page is redirected.
-
-2012-07-25 Mikhail Pozdnyakov <mikhail.pozdnyakov@intel.com>
-
- [EFL][WK2] Add ewk_main.{cpp,h} to EFL WK2
- https://bugs.webkit.org/show_bug.cgi?id=92101
-
- Reviewed by Kenneth Rohde Christiansen.
-
- Added a centralized place for general initialization in UI process for EFL WK2.
-
- * PlatformEfl.cmake:
- * UIProcess/API/efl/EWebKit2.h:
- * UIProcess/API/efl/ewk_main.cpp: Added.
- (ewk_init): General initialization.
- (ewk_shutdown): General freeing.
- (_ewk_init_body): An aux function.
- * UIProcess/API/efl/ewk_main.h: Added.
-
-2012-07-24 Jae Hyun Park <jae.park@company100.net>
-
- WKContextGetGlobalStatistics() assigns wrong value to wkFrameCount in WKContextStatistics
- https://bugs.webkit.org/show_bug.cgi?id=92173
-
- Reviewed by John Sullivan.
-
- In WKContextGetGlobalStatistics(), wkViewCount in WebContext::Statistics
- is assigned to wkFrameCount in WKContextStatistics.
- wkFrameCount in WebContext:Statistics should be assigned to wkFrameCount in WKContextStatistics.
+ Reviewed by Laszlo Gombos.
- * UIProcess/API/C/WKContext.cpp:
- (WKContextGetGlobalStatistics):
+ Add Ewk setting to set / query permission to access
+ files from file:// URLs.
-2012-07-24 Sudarsana Nagineni <sudarsana.nagineni@linux.intel.com>
+ * UIProcess/API/efl/ewk_settings.cpp:
+ (ewk_settings_file_access_from_file_urls_allowed_set):
+ (ewk_settings_file_access_from_file_urls_allowed_get):
+ * UIProcess/API/efl/ewk_settings.h:
+ * UIProcess/API/efl/tests/resources/local_file_access.html: Added.
+ * UIProcess/API/efl/tests/test_ewk2_settings.cpp:
+ (TEST_F): Add unit tests for new ewk setting.
- [EFL][WK2] Add unit tests for custom text encoding setting
- https://bugs.webkit.org/show_bug.cgi?id=91983
+2012-10-04 Christophe Dumez <christophe.dumez@intel.com>
- Reviewed by Dirk Pranke.
+ [EFL] Run unit tests with Xvfb
+ https://bugs.webkit.org/show_bug.cgi?id=98389
- Add unit tests for get and set custom text encoding methods. Also, fix
- a style nit for r123177.
+ Reviewed by Laszlo Gombos.
- * UIProcess/API/efl/ewk_view.cpp:
- (ewk_view_setting_encoding_custom_set): Fix a style nit - add newline
- before return.
+ * UIProcess/API/efl/ewk_main.cpp:
+ (ewk_init): Call ecore_evas_shutdown() instead of
+ edje_shutdown() when ecore_x_init() fails.
+ (ewk_shutdown): Remove extra call to edje_shutdown().
* UIProcess/API/efl/tests/test_ewk2_view.cpp:
- (TEST_F):
-
-2012-07-24 Ryosuke Niwa <rniwa@webkit.org>
-
- WinCairo build fix attempt.
-
- * win/WebKit2CFLite.def:
-
-2012-07-24 Ryosuke Niwa <rniwa@webkit.org>
-
- Windows build fix attempt.
-
- * win/WebKit2.def:
-
-2012-07-24 Jocelyn Turcotte <jocelyn.turcotte@nokia.com>
-
- [Qt] Make sure that an AC sync is triggered when the canvas contents is updated.
- https://bugs.webkit.org/show_bug.cgi?id=92128
-
- Reviewed by Kenneth Rohde Christiansen.
-
- This would cause missed frames when animating an accelerated 2D canvas without
- touching the document.
-
- * WebProcess/WebPage/LayerTreeCoordinator/WebGraphicsLayer.cpp:
- (WebCore::WebGraphicsLayer::setContentsNeedsDisplay):
-
-2012-07-24 Alexey Proskuryakov <ap@apple.com>
-
- [Mac WK2] Improve text input logging
- https://bugs.webkit.org/show_bug.cgi?id=92147
-
- Reviewed by Andreas Kling.
-
- * UIProcess/API/mac/WKView.mm:
- (-[WKView insertText:replacementRange:]):
- (-[WKView keyUp:]):
- (-[WKView keyDown:]):
- (-[WKView flagsChanged:]):
- (-[WKView _executeSavedKeypressCommands]):
- (-[WKView _notifyInputContextAboutDiscardedComposition]):
- (-[WKView _interpretKeyEvent:savingCommandsTo:WebCore::]):
- (-[WKView _updateSecureInputState]):
-
-2012-07-24 Christophe Dumez <christophe.dumez@intel.com>
-
- [EFL][WK2] Provide more useful output when an injected bundle cannot be loaded
- https://bugs.webkit.org/show_bug.cgi?id=92136
-
- Reviewed by Kenneth Rohde Christiansen.
-
- Call eina_error_get() in case an injected bundle cannot be
- loaded in order to print more information about the error.
-
- * WebProcess/InjectedBundle/efl/InjectedBundleEfl.cpp:
- (WebKit::InjectedBundle::load):
+ (TEST_F): Temporarily disable fullscreen unit tests
+ until we get them working with Xvfb.
-2012-07-24 Sudarsana Nagineni <sudarsana.nagineni@linux.intel.com>
-
- [EFL][WK2] Add vibration client
- https://bugs.webkit.org/show_bug.cgi?id=91371
-
- Reviewed by Antonio Gomes.
-
- Implement Vibration provider for WebKit2 EFL and add an API to set
- vibration client callbacks by application to handle the tactile
- feedback in the application when the page content ask for vibration.
-
- * CMakeLists.txt: Add WebCore/Modules/vibration to include path.
- * PlatformEfl.cmake: Add VibrationProvider.cpp file to the build
- system.
- * UIProcess/API/efl/VibrationProvider.cpp: Added.
- (_Ewk_Vibration_Client): Structure contains the vibration client
- callbacks.
- (_Ewk_Vibration_Client::_Ewk_Vibration_Client):
- (toVibrationProvider): Helper function to cast the clientinfo to
- VibrationProvider.
- (vibrateCallback):
- (cancelVibrationCallback):
- (VibrationProvider::create):
- (VibrationProvider::VibrationProvider):
- (VibrationProvider::~VibrationProvider):
- (VibrationProvider::vibrate):
- (VibrationProvider::cancelVibration):
- (VibrationProvider::setVibrationClientCallbacks):
- * UIProcess/API/efl/VibrationProvider.h: Added.
- (VibrationProvider):
- * UIProcess/API/efl/ewk_context.cpp:
- (_Ewk_Context):
- (createDefaultEwkContext):
- (ewk_context_vibration_client_callbacks_set): API to set vibration
- client callbacks.
- * UIProcess/API/efl/ewk_context.h:
-
-2012-07-24 Simon Hausmann <simon.hausmann@nokia.com>
+2012-10-04 Balazs Kelemen <kbalazs@webkit.org>
- [Qt] Fix compilation after QtQuick API changes
- https://bugs.webkit.org/show_bug.cgi?id=91822
-
- Reviewed by Kenneth Rohde Christiansen.
-
- QQuickCanvas is now QQuickWindow, QQuickItem::canvas() is window() and rootItem()
- is contentItem(). Also QQuickWindow::grabFrameBuffer() is now grabWindow().
-
- * UIProcess/API/qt/qquickwebpage.cpp:
- * UIProcess/API/qt/qquickwebview.cpp:
- (QQuickWebViewPrivate::updateIcon):
- * UIProcess/API/qt/tests/qquickwebview/tst_qquickwebview.cpp:
- (tst_QQuickWebView::multipleWebViews):
- (tst_QQuickWebView::basicRenderingSanity):
- (tst_QQuickWebView::transparentWebViews):
- * UIProcess/API/qt/tests/testwindow.h:
- (TestWindow::TestWindow):
- * UIProcess/qt/QtPageClient.cpp:
- (WebKit::QtPageClient::isViewVisible):
- * UIProcess/qt/QtWebPageEventHandler.cpp:
- (WebKit::QtWebPageEventHandler::startDrag):
-
-2012-07-24 Balazs Kelemen <kbalazs@webkit.org>
-
- [Qt] Add quirks for running the web process in a profiler shell, like valgrind
- https://bugs.webkit.org/show_bug.cgi?id=87672
+ Don't allow compositing to be disabled in forced compositing mode
+ https://bugs.webkit.org/show_bug.cgi?id=98048
Reviewed by Jocelyn Turcotte.
- If environment variables QT_WEBKIT_WEB_PROCESS_COMMAND_PREFIX
- and/or QT_WEBKIT_PLUGIN_PROCESS_COMMAND_PREFIX are set, use their
- values as the prefix of the command when launching the child process.
- Example usage:
- export QT_WEB_PROCESS_COMMAND_PREFIX="valgrind --smc-check=all"
- ./MiniBrowser http://somepage.html
- ./WebKitTestRunner --no-timeout-at-all some_layouttest.html
-
- * UIProcess/Launcher/qt/ProcessLauncherQt.cpp:
- (WebKit::ProcessLauncher::launchProcess):
-
-2012-07-23 Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
-
- [Qt] Fix compilation against namespaced Qt
-
- Reviewed by Simon Hausmann.
-
- * Platform/CoreIPC/Connection.h:
- * Platform/PlatformProcessIdentifier.h:
- * Platform/WorkQueue.h:
- * Shared/qt/QtNetworkRequestData.h:
- * Shared/qt/WebEventFactoryQt.h:
- * UIProcess/API/C/qt/WKNativeEvent.h:
- * UIProcess/API/qt/qquickwebview_p.h:
- * UIProcess/API/qt/qwebnavigationhistory_p.h:
- * UIProcess/API/qt/raw/qrawwebview_p.h:
- * UIProcess/DrawingAreaProxy.h:
- * UIProcess/Launcher/ThreadLauncher.h:
- * UIProcess/LayerTreeCoordinatorProxy.h:
- * UIProcess/qt/QtViewportHandler.h:
- * UIProcess/qt/QtWebPageSGNode.h:
- * UIProcess/qt/WebColorChooserProxyQt.h:
- * UIProcess/qt/WebGeolocationProviderQt.h:
- * UIProcess/qt/WebPopupMenuProxyQt.h:
- * WebProcess/WebProcess.h:
-
-2012-07-24 Christophe Dumez <christophe.dumez@intel.com>
-
- [EFL][WK2] Remove unneeded WebURLRequestEfl and WebURLResponseEfl
- https://bugs.webkit.org/show_bug.cgi?id=92087
-
- Reviewed by Kenneth Rohde Christiansen.
-
- Remove WebURLRequestEfl and WebURLResponseEfl classes
- and their corresponding C APIs since we don't need / use
- them.
-
- * Shared/API/c/efl/WKURLRequestEfl.cpp: Removed.
- * Shared/API/c/efl/WKURLRequestEfl.h: Removed.
- * Shared/API/c/efl/WKURLResponseEfl.cpp: Removed.
- * Shared/API/c/efl/WKURLResponseEfl.h: Removed.
- * Shared/efl/WebURLRequestEfl.cpp: Removed.
- * Shared/efl/WebURLRequestEfl.h: Removed.
- * Shared/efl/WebURLResponseEfl.cpp: Removed.
- * Shared/efl/WebURLResponseEfl.h: Removed.
- * UIProcess/API/efl/ewk_url_request.cpp:
-
-2012-07-24 Pierre Rossi <pierre.rossi@gmail.com>
-
- [Qt] Enable touch slider when touch events are enabled
- https://bugs.webkit.org/show_bug.cgi?id=91013
-
- Reviewed by Kenneth Rohde Christiansen.
-
- TOUCH_SLIDER guards are used in WebCore, so we should really
- be setting the corresponding ENABLE define in features.prf.
-
- * Target.pri:
-
-2012-07-24 Christophe Dumez <christophe.dumez@intel.com>
-
- [EFL][WK2] Fix possible crash in didSendRequestForResource
- https://bugs.webkit.org/show_bug.cgi?id=92077
-
- Reviewed by Kenneth Rohde Christiansen.
-
- Add NULL check for wkRedirectResponse in
- didSendRequestForResource() before using it. The
- argument may be NULL if there was no redirection.
-
- * UIProcess/API/efl/ewk_view.h:
- * UIProcess/API/efl/ewk_view_resource_load_client.cpp:
- (didSendRequestForResource):
-
-2012-07-24 Christophe Dumez <christophe.dumez@intel.com>
-
- [WK2][EFL][GTK] Share WebCoreArgumentCoders for soup-related types
- https://bugs.webkit.org/show_bug.cgi?id=92073
-
- Reviewed by Kenneth Rohde Christiansen.
-
- Move WebCoreArgumentCoders for soup-related types such as
- ResourceRequest, ResourceResponse and ResourceError from
- port specific file to Shared/soup/WebCoreArgumentCodersSoup.cpp.
- This way, the different ports using libsoup can share
- code and avoid duplication.
-
- * GNUmakefile.list.am:
- * PlatformEfl.cmake:
- * Shared/efl/WebCoreArgumentCodersEfl.cpp: Removed.
- * Shared/soup/WebCoreArgumentCodersSoup.cpp: Renamed from Source/WebKit2/Shared/gtk/WebCoreArgumentCodersGtk.cpp.
- (CoreIPC):
- (CoreIPC::::encode):
- (CoreIPC::::decode):
-
-2012-07-23 Sheriff Bot <webkit.review.bot@gmail.com>
-
- Unreviewed, rolling out r123184, r123195, and r123197.
- http://trac.webkit.org/changeset/123184
- http://trac.webkit.org/changeset/123195
- http://trac.webkit.org/changeset/123197
- https://bugs.webkit.org/show_bug.cgi?id=92049
-
- pagecycler regression (Requested by morrita on #webkit).
+ Export Settings::setAcceleratedCompositingEnabled because it has been deinlined.
* win/WebKit2.def:
* win/WebKit2CFLite.def:
-2012-07-23 Simon Fraser <simon.fraser@apple.com>
-
- Part 2 of: Implement sticky positioning
- https://bugs.webkit.org/show_bug.cgi?id=90046
-
- Reviewed by Ojan Vafai.
-
- Turn on ENABLE_CSS_STICKY_POSITION.
-
- * Configurations/FeatureDefines.xcconfig:
-
-2012-07-23 Christophe Dumez <christophe.dumez@intel.com>
-
- [WK2] WebKitTestRunner needs to print information about Web intents
- https://bugs.webkit.org/show_bug.cgi?id=90873
-
- Reviewed by Anders Carlsson.
-
- Add Bundle API for Web Intents. This is needed by the WebKitTestRunner
- to print information about the new intent requests and the intent
- service registrations.
-
- * CMakeLists.txt: Move WebIntentData and WebIntentServiceInfo from
- UIProcess/ to Shared/.
- * GNUmakefile.list.am: Move WebIntentData and WebIntentServiceInfo from
- UIProcess/ to Shared/.
- * Shared/APIClientTraits.h:
- * Shared/WebIntentData.cpp: Renamed from Source/WebKit2/UIProcess/WebIntentData.cpp.
- (WebKit):
- (WebKit::WebIntentData::WebIntentData):
- (WebKit::WebIntentData::data):
- (WebKit::WebIntentData::suggestions):
- (WebKit::WebIntentData::extra):
- (WebKit::WebIntentData::extras):
- * Shared/WebIntentData.h: Renamed from Source/WebKit2/UIProcess/WebIntentData.h.
- (WebKit):
- (WebIntentData):
- (WebKit::WebIntentData::create):
- (WebKit::WebIntentData::~WebIntentData):
- (WebKit::WebIntentData::action):
- (WebKit::WebIntentData::payloadType):
- (WebKit::WebIntentData::service):
- (WebKit::WebIntentData::store):
- (WebKit::WebIntentData::type):
- * Shared/WebIntentServiceInfo.cpp: Renamed from Source/WebKit2/UIProcess/WebIntentServiceInfo.cpp.
- (WebKit):
- (WebKit::WebIntentServiceInfo::WebIntentServiceInfo):
- * Shared/WebIntentServiceInfo.h: Renamed from Source/WebKit2/UIProcess/WebIntentServiceInfo.h.
- (WebKit):
- (WebIntentServiceInfo):
- (WebKit::WebIntentServiceInfo::create):
- (WebKit::WebIntentServiceInfo::~WebIntentServiceInfo):
- (WebKit::WebIntentServiceInfo::action):
- (WebKit::WebIntentServiceInfo::payloadType):
- (WebKit::WebIntentServiceInfo::href):
- (WebKit::WebIntentServiceInfo::title):
- (WebKit::WebIntentServiceInfo::disposition):
- (WebKit::WebIntentServiceInfo::type):
- * Target.pri: Move WebIntentData and WebIntentServiceInfo from
- UIProcess/ to Shared/.
- * UIProcess/API/C/WKPage.h:
- * UIProcess/API/efl/ewk_view_loader_client.cpp:
- (didReceiveIntentForFrame):
- (registerIntentServiceForFrame):
- * UIProcess/WebLoaderClient.cpp:
- (WebKit::WebLoaderClient::didReceiveIntentForFrame):
- (WebKit::WebLoaderClient::registerIntentServiceForFrame):
- * UIProcess/WebLoaderClient.h:
- (WebLoaderClient):
- * UIProcess/WebPageProxy.cpp:
- (WebKit::WebPageProxy::registerIntentServiceForFrame):
- (WebKit::WebPageProxy::didReceiveIntentForFrame):
- * UIProcess/WebPageProxy.h:
- (WebPageProxy):
- * UIProcess/WebPageProxy.messages.in:
- * WebProcess/InjectedBundle/API/c/WKBundlePage.h:
- * WebProcess/InjectedBundle/InjectedBundlePageLoaderClient.cpp:
- (WebKit):
- (WebKit::InjectedBundlePageLoaderClient::didReceiveIntentForFrame):
- (WebKit::InjectedBundlePageLoaderClient::registerIntentServiceForFrame):
- * WebProcess/InjectedBundle/InjectedBundlePageLoaderClient.h:
- (WebKit):
- (InjectedBundlePageLoaderClient):
- * WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
- (WebKit::WebFrameLoaderClient::dispatchIntent):
- (WebKit::WebFrameLoaderClient::registerIntentService):
- * WebProcess/qt/QtBuiltinBundlePage.cpp:
- (WebKit::QtBuiltinBundlePage::QtBuiltinBundlePage):
-
-2012-07-23 Christophe Dumez <christophe.dumez@intel.com>
-
- [EFL][WK2] Add unit tests for Ewk_Cookie_Manager
- https://bugs.webkit.org/show_bug.cgi?id=91639
-
- Reviewed by Antonio Gomes.
-
- Add unit tests for Ewk_Cookie_Manager.
-
- * PlatformEfl.cmake:
- * UIProcess/API/efl/ewk_cookie_manager.h: Fix "accept policy" documentation
- to indicate that only cookies set by the main document are accepted by default.
- * UIProcess/API/efl/tests/UnitTestUtils/EWK2UnitTestServer.cpp: Added.
- (EWK2UnitTestServer::EWK2UnitTestServer): Add HTTP server similar to the one
- used by GTK port unit tests.
- (EWK2UnitTestServer::~EWK2UnitTestServer):
- (EWK2UnitTestServer::run):
- (EWK2UnitTestServer::getURIForPath):
- * UIProcess/API/efl/tests/UnitTestUtils/EWK2UnitTestServer.h: Added.
- (EWK2UnitTestServer):
- (EWK2UnitTestServer::baseURI):
- * UIProcess/API/efl/tests/test_ewk2_cookie_manager.cpp: Added.
- (serverCallback):
- (getAcceptPolicyCallback):
- (getAcceptPolicy):
- (getHostnamesWithCookiesCallback):
- (getHostnamesWithCookies):
- (freeHostNames):
- (countHostnamesWithCookies):
- (TEST_F):
- (cleanUpCookieFiles):
-
-2012-07-23 Pierre Rossi <pierre.rossi@gmail.com>
-
- [Qt] Enable touch slider when touch events are enabled
- https://bugs.webkit.org/show_bug.cgi?id=91013
-
- Reviewed by Antonio Gomes.
-
- Take advantage of the logic introduced in r122286.
-
- * Target.pri:
-
-2012-07-23 Pierre Rossi <pierre.rossi@gmail.com>
-
- Unify numTouchEventHandlersChanged and needTouchEvents in the chrome client
- https://bugs.webkit.org/show_bug.cgi?id=91006
-
- Reviewed by Ryosuke Niwa.
-
- Remove numTouchEventHandlersChanged stub.
-
- * WebProcess/WebCoreSupport/WebChromeClient.h:
- (WebChromeClient):
-
-2012-07-23 Simon Fraser <simon.fraser@apple.com>
-
- Part 1 of: Implement sticky positioning
- https://bugs.webkit.org/show_bug.cgi?id=90046
-
- Reviewed by Ojan Vafai.
-
- Add ENABLE_CSS_STICKY_POSITION, defaulting to off initially.
-
- Sort the ENABLE_CSS lines in the file. Make sure all the flags
- are in FEATURE_DEFINES.
-
- * Configurations/FeatureDefines.xcconfig:
-
-2012-07-23 Christophe Dumez <christophe.dumez@intel.com>
-
- [EFL][WK2] Add request manager client
- https://bugs.webkit.org/show_bug.cgi?id=91193
-
- Reviewed by Kenneth Rohde Christiansen.
-
- Add a URL request manager client and attach it
- to the Ewk_Context.
-
- The client application can now register a URL scheme
- via the Ewk_Context API and provide a callback handler
- that will get called whenever a URL request with this
- scheme is made.
-
- A new Ewk_Url_Scheme_Request type is introduced to
- provide information about the request to the client
- and to allow the client to finish it by setting its
- contents.
-
- * PlatformEfl.cmake:
- * UIProcess/API/efl/EWebKit2.h:
- * UIProcess/API/efl/ewk_context.cpp:
- (_Ewk_Url_Scheme_Handler):
- (_Ewk_Url_Scheme_Handler::_Ewk_Url_Scheme_Handler):
- (_Ewk_Context):
- (_Ewk_Context::_Ewk_Context):
- (ewk_context_request_manager_get):
- (ewk_context_url_scheme_request_received):
- (createDefaultEwkContext):
- (ewk_context_uri_scheme_register):
- * UIProcess/API/efl/ewk_context.h:
- * UIProcess/API/efl/ewk_context_private.h:
- * UIProcess/API/efl/ewk_context_request_manager_client.cpp: Added.
- (toEwkContext):
- (didReceiveURIRequest):
- (ewk_context_request_manager_client_attach):
- * UIProcess/API/efl/ewk_context_request_manager_client_private.h: Added.
- * UIProcess/API/efl/ewk_url_scheme_request.cpp: Added.
- (_Ewk_Url_Scheme_Request):
- (_Ewk_Url_Scheme_Request::_Ewk_Url_Scheme_Request):
- (_Ewk_Url_Scheme_Request::~_Ewk_Url_Scheme_Request):
- (ewk_url_scheme_request_ref):
- (ewk_url_scheme_request_unref):
- (ewk_url_scheme_request_scheme_get):
- (ewk_url_scheme_request_url_get):
- (ewk_url_scheme_request_path_get):
- (ewk_url_scheme_request_id_get):
- (ewk_url_scheme_request_finish):
- (ewk_url_scheme_request_new):
- * UIProcess/API/efl/ewk_url_scheme_request.h: Added.
- * UIProcess/API/efl/ewk_url_scheme_request_private.h: Added.
-
-2012-07-23 KwangYong Choi <ky0.choi@samsung.com>
-
- [EFL][WK2] ProcessExecutablePath is required
- https://bugs.webkit.org/show_bug.cgi?id=89719
-
- Reviewed by Kenneth Rohde Christiansen.
-
- Added executablePathOfWebProcess and executablePathOfPluginProcess.
- It's used for getting the location of WebProcess and PluginProcess.
-
- * PlatformEfl.cmake: Added LIBEXECDIR definition
- * Shared/efl/ProcessExecutablePathEfl.cpp: Added.
- (WebKit):
- (WebKit::findWebKitProcess):
- (WebKit::executablePathOfWebProcess): Get the absolute path of WebProcess
- (WebKit::executablePathOfPluginProcess): Get the absolute path of PluginProcess
- * UIProcess/Launcher/efl/ProcessLauncherEfl.cpp:
- (WebKit::ProcessLauncher::launchProcess): Modified to use above routines
-
-2012-07-23 Christophe Dumez <christophe.dumez@intel.com>
-
- WebKit2 needs layoutTestController.setAlwaysAcceptCookies
- https://bugs.webkit.org/show_bug.cgi?id=42778
-
- Reviewed by Kenneth Rohde Christiansen.
-
- Add setAlwaysAcceptCookies() method to InjectedBundle
- so that we can use it in LayoutTestController.
- The method uses WebCookieManager::setHTTPCookieAcceptPolicy()
- internally.
-
- * WebProcess/InjectedBundle/API/c/WKBundle.cpp:
- (WKBundleSetAlwaysAcceptCookies):
- * WebProcess/InjectedBundle/API/c/WKBundlePrivate.h:
- * WebProcess/InjectedBundle/InjectedBundle.cpp:
- (WebKit::InjectedBundle::setAlwaysAcceptCookies):
- (WebKit):
- * WebProcess/InjectedBundle/InjectedBundle.h:
- (InjectedBundle):
-
-2012-07-23 Thiago Marcos P. Santos <thiago.santos@intel.com>
-
- [WK2] SQL Database cannot be disabled at build time
- https://bugs.webkit.org/show_bug.cgi?id=91837
-
- Reviewed by Kenneth Rohde Christiansen.
-
- WebKit2 had no #ifdefs for SQL Database. This patch adds these
- statments and it can now be disabled at build time.
-
- * Shared/OriginAndDatabases.cpp:
- * Shared/OriginAndDatabases.h:
- * Shared/WebCoreArgumentCoders.cpp:
- (CoreIPC):
- * UIProcess/API/C/WKContext.cpp:
- (WKContextGetDatabaseManager):
- * UIProcess/API/C/WKDatabaseManager.cpp:
- (WKDatabaseManagerGetTypeID):
- (WKDatabaseManagerGetOriginKey):
- (WKDatabaseManagerGetOriginQuotaKey):
- (WKDatabaseManagerGetOriginUsageKey):
- (WKDatabaseManagerGetDatabaseDetailsKey):
- (WKDatabaseManagerGetDatabaseDetailsNameKey):
- (WKDatabaseManagerGetDatabaseDetailsDisplayNameKey):
- (WKDatabaseManagerGetDatabaseDetailsExpectedUsageKey):
- (WKDatabaseManagerGetDatabaseDetailsCurrentUsageKey):
- (WKDatabaseManagerSetClient):
- (WKDatabaseManagerGetDatabasesByOrigin):
- (callGetDatabasesByOriginBlockAndDispose):
- (WKDatabaseManagerGetDatabasesByOrigin_b):
- (WKDatabaseManagerGetDatabaseOrigins):
- (callGetDatabaseOriginsBlockBlockAndDispose):
- (WKDatabaseManagerGetDatabaseOrigins_b):
- (WKDatabaseManagerDeleteDatabasesWithNameForOrigin):
- (WKDatabaseManagerDeleteDatabasesForOrigin):
- (WKDatabaseManagerDeleteAllDatabases):
- (WKDatabaseManagerSetQuotaForOrigin):
- * UIProcess/WebContext.cpp:
- (WebKit::WebContext::WebContext):
- (WebKit::WebContext::~WebContext):
- (WebKit::WebContext::shouldTerminate):
- (WebKit::WebContext::disconnectProcess):
- (WebKit::WebContext::didReceiveMessage):
- * UIProcess/WebContext.h:
- (WebContext):
- * UIProcess/WebDatabaseManagerProxy.cpp:
- * UIProcess/WebDatabaseManagerProxy.h:
- * UIProcess/WebDatabaseManagerProxy.messages.in:
- * WebProcess/InjectedBundle/InjectedBundle.cpp:
- (WebKit::InjectedBundle::clearAllDatabases):
- (WebKit::InjectedBundle::setDatabaseQuota):
- * WebProcess/WebCoreSupport/WebDatabaseManager.cpp:
- * WebProcess/WebCoreSupport/WebDatabaseManager.h:
- * WebProcess/WebCoreSupport/WebDatabaseManager.messages.in:
- * WebProcess/WebProcess.cpp:
- (WebKit::WebProcess::didReceiveMessage):
-
-2012-07-23 Kent Tamura <tkent@chromium.org>
-
- Rename ENABLE_METER_TAG and ENABLE_PROGRESS_TAG to ENABLE_METER_ELEMENT and ENABLE_PROGRESS_ELEMENT respectively
- https://bugs.webkit.org/show_bug.cgi?id=91941
-
- Reviewed by Kentaro Hara.
-
- A flag name for an elmement should be ENABLE_*_ELEMENT.
-
- * Configurations/FeatureDefines.xcconfig:
-
-2012-07-22 Kent Tamura <tkent@chromium.org>
-
- Rename ENABLE_DETAILS to ENABLE_DETAILS_ELEMENT
- https://bugs.webkit.org/show_bug.cgi?id=91928
-
- Reviewed by Kentaro Hara.
-
- A flag name for an elmement should be ENABLE_*_ELEMENT.
-
- * Configurations/FeatureDefines.xcconfig:
-
-2012-07-20 Kent Tamura <tkent@chromium.org>
-
- Rename ENABLE_DATALIST to ENABLE_DATALIST_ELEMENT
- https://bugs.webkit.org/show_bug.cgi?id=91846
-
- Reviewed by Kentaro Hara.
-
- A flag name for an elmement should be ENABLE_*_ELEMENT.
-
- * Configurations/FeatureDefines.xcconfig:
-
-2012-07-20 Rafael Brandao <rafael.lobo@openbossa.org>
-
- QtNetworkAccessManager should not rely on signal sslErrors when QT_NO_SSL is defined
- https://bugs.webkit.org/show_bug.cgi?id=91866
-
- Reviewed by Noam Rosenthal.
-
- * WebProcess/qt/QtNetworkAccessManager.cpp:
- (WebKit::QtNetworkAccessManager::QtNetworkAccessManager): QNAM's signal is only defined when
- that flag is undefined. Removed the connection when we have the flag set.
- (WebKit::QtNetworkAccessManager::onSslErrors): When the flag is set, this slot becomes unused.
-
-2012-07-20 Christophe Dumez <christophe.dumez@intel.com>
-
- [EFL] Proxy configuration should honor the no_proxy environment variable
- https://bugs.webkit.org/show_bug.cgi?id=91747
-
- Reviewed by Kenneth Rohde Christiansen.
-
- Use the new custom proxy resolver from WebCore in
- WebKit2-EFL so that it is possible for the client
- to set proxy exceptions via the "no_proxy"
- environment variable.
-
- By default, the proxy set in the "http_proxy"
- environment variable will not be used for requests
- to localhost or 127.0.0.1.
-
- * WebProcess/efl/WebProcessMainEfl.cpp:
- (WebKit::WebProcessMainEfl):
-
-2012-06-01 Dinu Jacob <dinu.jacob@nokia.com>
-
- [Qt][WK2] Add support for multi-select list
- https://bugs.webkit.org/show_bug.cgi?id=85527
-
- Reviewed by Kenneth Rohde Christiansen.
-
- Added support for multi-select list:
- - Added multi-selection flag to PlatformPopupMenuData to indicate whether to accept multiple selections or not.
- - Added selected state to WebPopupItem.
- - Modified WebPopupMenuQt to support multiple selections.
-
- * Shared/PlatformPopupMenuData.cpp:
- (WebKit::PlatformPopupMenuData::PlatformPopupMenuData):
- (WebKit::PlatformPopupMenuData::encode):
- (WebKit::PlatformPopupMenuData::decode):
- * Shared/PlatformPopupMenuData.h:
- (PlatformPopupMenuData):
- * Shared/WebPopupItem.cpp:
- (WebKit::WebPopupItem::WebPopupItem):
- (WebKit::WebPopupItem::encode):
- (WebKit::WebPopupItem::decode):
- * Shared/WebPopupItem.h:
- * UIProcess/API/qt/tests/qmltests/WebView/tst_multiSelect.qml: Added.
- * UIProcess/API/qt/tests/qmltests/common/multiselect.html: Added.
- * UIProcess/WebPageProxy.h:
- (WebPageProxy):
- * UIProcess/WebPopupMenuProxy.h:
- (Client):
- * UIProcess/qt/WebPageProxyQt.cpp:
- (WebKit::WebPageProxy::changeSelectedIndex):
- (WebKit):
- (WebKit::WebPageProxy::closePopupMenu):
- * UIProcess/qt/WebPopupMenuProxyQt.cpp:
- (WebKit::PopupMenuItemModel::multiple):
- (PopupMenuItemModel):
- (WebKit::PopupMenuItemModel::Item::Item):
- (ItemSelectorContextObject):
- (WebKit::ItemSelectorContextObject::allowMultiSelect):
- (WebKit::ItemSelectorContextObject::reject):
- (WebKit::ItemSelectorContextObject::dismiss):
- (WebKit::ItemSelectorContextObject::ItemSelectorContextObject):
- (WebKit):
- (WebKit::ItemSelectorContextObject::onIndexUpdate):
- (WebKit::ItemSelectorContextObject::accept):
- (WebKit::PopupMenuItemModel::PopupMenuItemModel):
- (WebKit::PopupMenuItemModel::select):
- (WebKit::PopupMenuItemModel::toggleItem):
- (WebKit::PopupMenuItemModel::buildItems):
- (WebKit::WebPopupMenuProxyQt::showPopupMenu):
- (WebKit::WebPopupMenuProxyQt::hidePopupMenu):
- (WebKit::WebPopupMenuProxyQt::selectIndex):
- (WebKit::WebPopupMenuProxyQt::createItem):
- * UIProcess/qt/WebPopupMenuProxyQt.h:
- (WebPopupMenuProxyQt):
- * WebProcess/WebCoreSupport/WebPopupMenu.cpp:
- (WebKit::WebPopupMenu::didChangeSelectedIndex):
- (WebKit::WebPopupMenu::populateItems):
- * WebProcess/WebCoreSupport/WebPopupMenu.h:
- (WebPopupMenu):
- * WebProcess/WebCoreSupport/qt/WebPopupMenuQt.cpp:
- (WebKit::WebPopupMenu::setUpPlatformData):
- * WebProcess/WebPage/WebPage.cpp:
- (WebKit::WebPage::didChangeSelectedIndexForActivePopupMenu):
- (WebKit):
- (WebKit::WebPage::changeSelectedIndex):
- * WebProcess/WebPage/WebPage.h:
- (WebPage):
- * WebProcess/WebPage/WebPage.messages.in:
- * WebProcess/WebPage/qt/WebPageQt.cpp:
- (WebKit::WebPage::selectedIndex):
- (WebKit):
- (WebKit::WebPage::hidePopupMenu):
-
-2012-07-20 Gyuyoung Kim <gyuyoung.kim@samsung.com>
-
- Unreviewed, rolling out r123085.
- http://trac.webkit.org/changeset/123085
- https://bugs.webkit.org/show_bug.cgi?id=91719
-
- r123085 causes crashes on EFL layout test bot.
-
- * UIProcess/efl/WebContextEfl.cpp:
- (WebKit::WebContext::applicationCacheDirectory):
-
-2012-07-20 Christophe Dumez <christophe.dumez@intel.com>
-
- [EFL][WK2] Use "load,finished" signal in EWK2UnitTestBase::loadUrlSync() instead of "load,progress"
- https://bugs.webkit.org/show_bug.cgi?id=91721
-
- Reviewed by Kenneth Rohde Christiansen.
-
- The purpose of EWK2UnitTestBase::loadUrlSync() is to load
- a URL in the view and wait synchronously for the load to finish.
- The current implementation uses the "load,progress" signal to
- detect when the load is finished, which is inefficient because
- it gets emitted several times.
-
- It is better to wait for the "load,finished" signal which gets
- emitted only once when the load is complete.
-
- * UIProcess/API/efl/tests/UnitTestUtils/EWK2UnitTestBase.cpp:
- (EWK2UnitTest::onLoadFinished):
- (EWK2UnitTest::EWK2UnitTestBase::EWK2UnitTestBase):
- (EWK2UnitTest::EWK2UnitTestBase::loadUrlSync):
- * UIProcess/API/efl/tests/UnitTestUtils/EWK2UnitTestBase.h:
- (EWK2UnitTestBase):
-
-2012-07-19 MORITA Hajime <morrita@google.com>
-
- [Refactoring] Replace Node's Document pointer with a TreeScope pointer
- https://bugs.webkit.org/show_bug.cgi?id=59816
-
- Reviewed by Ryosuke Niwa.
-
- * win/WebKit2.def: Added newly exported symbols.
- * win/WebKit2CFLite.def: Ditto.
-
-2012-07-19 Sudarsana Nagineni <sudarsana.nagineni@linux.intel.com>
-
- [EFL] [WK2] Add methods to get/set a custom text encoding
- https://bugs.webkit.org/show_bug.cgi?id=90604
-
- Reviewed by Kenneth Rohde Christiansen.
-
- Add methods to get/set custom character encoding.
-
- * UIProcess/API/efl/ewk_view.cpp:
- (_Ewk_View_Private_Data):
- (_ewk_view_priv_del):
- (ewk_view_setting_encoding_custom_get):
- (ewk_view_setting_encoding_custom_set):
- * UIProcess/API/efl/ewk_view.h:
-
-2012-07-19 Gyuyoung Kim <gyuyoung.kim@samsung.com>
-
- Unreviewed. Fix build break because of changing parameter type of
- vibration virtual function on EFL port.
-
- * WebProcess/WebCoreSupport/WebVibrationClient.cpp:
- (WebKit::WebVibrationClient::vibrate):
- * WebProcess/WebCoreSupport/WebVibrationClient.h:
- (WebVibrationClient):
-
-2012-07-19 Sudarsana Nagineni <sudarsana.nagineni@linux.intel.com>
-
- [WK2] Add Vibration API integration to WebContext and WebPage
- https://bugs.webkit.org/show_bug.cgi?id=91081
-
- Reviewed by Anders Carlsson.
-
- Integrate Vibration API to WebPage, WebContext and properly route
- messages to the WebVibrationProxy.
-
- * UIProcess/API/C/WKContext.cpp:
- (WKContextGetVibration):
- * UIProcess/API/C/WKContext.h:
- * UIProcess/WebContext.cpp:
- (WebKit::WebContext::WebContext):
- (WebKit::WebContext::~WebContext):
- (WebKit::WebContext::disconnectProcess):
- (WebKit::WebContext::didReceiveMessage):
- * UIProcess/WebContext.h:
- (WebKit):
- (WebContext):
- (WebKit::WebContext::vibrationProxy):
- * UIProcess/WebProcessProxy.cpp:
- (WebKit::WebProcessProxy::didReceiveMessage):
- * WebProcess/WebPage/WebPage.cpp:
- (WebKit::WebPage::WebPage):
-
-2012-07-19 No'am Rosenthal <noam.rosenthal@nokia.com>
-
- [Qt] Enable CSS shaders in Qt (software mode)
- https://bugs.webkit.org/show_bug.cgi?id=85140
-
- Reviewed by Simon Hausmann.
+2012-10-04 Jocelyn Turcotte <jocelyn.turcotte@digia.com>
- Add CSSCustomFilterEnabled to QWebPreferences. It's disabled by default.
-
- * UIProcess/API/qt/qwebpreferences.cpp:
- (QWebPreferencesPrivate::testAttribute):
- (QWebPreferencesPrivate::setAttribute):
- * UIProcess/API/qt/qwebpreferences_p_p.h:
-
-2012-07-19 No'am Rosenthal <noam.rosenthal@nokia.com>
-
- [Qt] Enable CSS shaders in Qt (software mode)
- https://bugs.webkit.org/show_bug.cgi?id=85140
-
- Reviewed by Simon Hausmann.
-
- Add CSSCustomFilterEnabled to QWebPreferences. It's disabled by default.
-
- * UIProcess/API/qt/qwebpreferences.cpp:
- (QWebPreferencesPrivate::testAttribute):
- (QWebPreferencesPrivate::setAttribute):
- * UIProcess/API/qt/qwebpreferences_p_p.h:
-
-2012-07-19 Pierre Rossi <pierre.rossi@gmail.com>
-
- [Qt][WK2] Map the elementRect exposed in QML to the view for popup menu
- https://bugs.webkit.org/show_bug.cgi?id=91645
+ [Qt] Fix the tst_QQuickWebView::scrollRequest auto test
+ https://bugs.webkit.org/show_bug.cgi?id=98045
Reviewed by Simon Hausmann.
- This way the geometry of the QML item is still sensible even if we panned
- and zoomed.
-
- * UIProcess/qt/WebPopupMenuProxyQt.cpp:
- (ItemSelectorContextObject):
- (WebKit::ItemSelectorContextObject::elementRect):
- (WebKit::ItemSelectorContextObject::ItemSelectorContextObject):
- (WebKit::WebPopupMenuProxyQt::showPopupMenu):
-
-2012-07-19 Zoltan Nyul <zoltan.nyul@intel.com>
-
- [EFL][WK2] Using different cache directory for each WTR process
- https://bugs.webkit.org/show_bug.cgi?id=91719
-
- Reviewed by Kenneth Rohde Christiansen.
-
- Make sure we return a valid application cache directory in
- WebContextEfl.
-
- * UIProcess/efl/WebContextEfl.cpp:
- (WebKit::WebContext::applicationCacheDirectory):
-
-2012-07-18 Christophe Dumez <christophe.dumez@intel.com>
-
- [EFL][WK2] EFL should use DownloadSoup instead of defining DownloadEfl
- https://bugs.webkit.org/show_bug.cgi?id=91602
-
- Reviewed by Kenneth Rohde Christiansen.
-
- Reuse WebProcess/Downloads/soup/DownloadSoup.cpp in EFL port
- instead of redefining our own DownloadEfl.cpp. The EFL port
- is also using libsoup so it is best to avoid code duplication.
-
- * GNUmakefile.am:
- * GNUmakefile.list.am:
- * PlatformEfl.cmake:
- * WebProcess/Downloads/Download.h:
- (WebKit):
- (Download):
- * WebProcess/Downloads/efl/DownloadEfl.cpp: Removed.
- * WebProcess/Downloads/efl/DownloadSoupErrorsEfl.cpp: Added.
- (WebKit):
- (WebKit::platformDownloadNetworkError):
- (WebKit::platformDownloadDestinationError):
- * WebProcess/Downloads/efl/FileDownloaderEfl.cpp: Removed.
- * WebProcess/Downloads/efl/FileDownloaderEfl.h: Removed.
- * WebProcess/Downloads/gtk/DownloadSoupErrorsGtk.cpp: Added.
- (WebKit):
- (WebKit::platformDownloadNetworkError):
- (WebKit::platformDownloadDestinationError):
- * WebProcess/Downloads/soup/DownloadSoup.cpp: Make the code
- compile for other ports than GTK.
- (WebKit::DownloadClient::didReceiveResponse):
- (WebKit::DownloadClient::didReceiveData):
- (WebKit::DownloadClient::didFail):
- (WebKit::Download::continueWithoutCredential):
- (WebKit):
- (WebKit::Download::useCredential):
- (WebKit::Download::cancelAuthenticationChallenge):
- * WebProcess/Downloads/soup/DownloadSoupErrors.h: Added.
- (WebKit):
-
-2012-07-18 Christophe Dumez <christophe.dumez@intel.com>
-
- [WK2] Add C API for Network Information API
- https://bugs.webkit.org/show_bug.cgi?id=90762
+ Relying on QQuickWebViewPrivate::setNeedsDisplay can cause a false positive
+ emission of the loadVisuallyCommitted signal since this method is also
+ called when a layer is deleted or when the root layer changes.
- Reviewed by Kenneth Rohde Christiansen.
-
- Add C API for WKNetworkInfo and WKNetworkInfoManager
- so that they can be used by the client.
-
- * CMakeLists.txt:
- * GNUmakefile.list.am:
- * Target.pri:
- * UIProcess/API/C/WKContext.cpp:
- (WKContextGetNetworkInfoManager):
- * UIProcess/API/C/WKContext.h:
- * UIProcess/API/C/WKNetworkInfo.cpp: Copied from Source/WebKit2/UIProcess/API/C/WKNetworkInfoManager.cpp.
- (WKNetworkInfoGetTypeID):
- (WKNetworkInfoCreate):
- * UIProcess/API/C/WKNetworkInfo.h: Copied from Source/WebKit2/UIProcess/API/C/WKNetworkInfoManager.cpp.
- * UIProcess/API/C/WKNetworkInfoManager.cpp:
- (WKNetworkInfoManagerSetProvider):
- (WKNetworkInfoManagerProviderDidChangeNetworkInformation):
- * UIProcess/API/C/WKNetworkInfoManager.h:
-
-2012-07-18 Christophe Dumez <christophe.dumez@intel.com>
-
- [EFL][WK2] ewk_cookie_manager_persistent_storage_set is not exported
- https://bugs.webkit.org/show_bug.cgi?id=91647
-
- Reviewed by Gustavo Noronha Silva.
-
- Properly export ewk_cookie_manager_persistent_storage_set in
- ewk_cookie_manager.h by using EAPI.
-
- * UIProcess/API/efl/ewk_cookie_manager.h:
-
-2012-07-18 Christophe Dumez <christophe.dumez@intel.com>
-
- [EFL] Add central error management to EFL port
- https://bugs.webkit.org/show_bug.cgi?id=91598
-
- Reviewed by Kenneth Rohde Christiansen.
-
- Make use of ErrorsEfl header from WebCore in
- WebKit2, for Ewk_Web_Error and WebErrorsEfl.
+ Move the signal emission to QQuickWebViewPrivate::didRenderFrame which
+ is called only after a DidRenderFrame message has been received from the
+ web process.
- * UIProcess/API/efl/ewk_web_error.cpp:
- (ewk_web_error_type_get):
- * UIProcess/API/efl/ewk_web_error.h:
- * WebProcess/WebCoreSupport/efl/WebErrorsEfl.cpp:
- (WebKit::cancelledError):
- (WebKit::blockedError):
- (WebKit::cannotShowURLError):
- (WebKit::interruptedForPolicyChangeError):
- (WebKit::cannotShowMIMETypeError):
- (WebKit::fileDoesNotExistError):
- (WebKit::pluginWillHandleLoadError):
+ * UIProcess/API/qt/qquickwebview.cpp:
+ (QQuickWebViewPrivate::setNeedsDisplay):
+ (QQuickWebViewPrivate::didRenderFrame):
+ * UIProcess/API/qt/qquickwebview_p_p.h:
+ (QQuickWebViewPrivate):
+ * UIProcess/qt/QtPageClient.cpp:
+ (WebKit::QtPageClient::didRenderFrame):
-2012-07-18 Thiago Marcos P. Santos <thiago.santos@intel.com>
+2012-10-04 Christophe Dumez <christophe.dumez@intel.com>
- [EFL] Set a theme for EFL WebKit2 unit test fixture
- https://bugs.webkit.org/show_bug.cgi?id=91618
+ Regression(r130363): Broke unit tests
+ https://bugs.webkit.org/show_bug.cgi?id=98341
- Reviewed by Kenneth Rohde Christiansen.
+ Reviewed by Gyuyoung Kim.
- The test fixture should load the theme generated by the build
- instead of trying to load the system theme.
+ Fix WebKit2 EFL to use X11 as well.
- * PlatformEfl.cmake:
* UIProcess/API/efl/tests/UnitTestUtils/EWK2UnitTestBase.cpp:
(EWK2UnitTest::EWK2UnitTestBase::SetUp):
* UIProcess/API/efl/tests/UnitTestUtils/EWK2UnitTestEnvironment.cpp:
- (EWK2UnitTest::EWK2UnitTestEnvironment::defaultTheme):
- (EWK2UnitTest):
- * UIProcess/API/efl/tests/UnitTestUtils/EWK2UnitTestEnvironment.h:
- (EWK2UnitTestEnvironment):
-
-2012-07-18 Pierre Rossi <pierre.rossi@gmail.com>
-
- [Qt] QQuickWebView shouldn't recieve mouse events while dialogs are active
- https://bugs.webkit.org/show_bug.cgi?id=91634
-
- Reviewed by Alexis Menard.
-
- One side-effect of reimplementing childMouseEventFilter() in r122438 is that it can end up
- bypassing the mouseArea mechanism used in QML dialogs and still forward some mouse events
- over to the web process. We can rely on the same m_dialogActive mechanism already used for
- touch events in there as well.
-
- * UIProcess/API/qt/qquickwebview.cpp:
- (QQuickWebView::childMouseEventFilter): ignore events and return early if a dialog is active.
-
-2012-07-18 Pierre Rossi <pierre.rossi@gmail.com>
-
- [Qt] Build fix for ENABLE_TOUCH_EVENTS=0
-
- Rubber-stamped by No'am Rosenthal.
-
- Add the appropriate ENABLE(TOUCH_EVENTS) where they're needed.
-
- * UIProcess/API/qt/raw/qrawwebview.cpp:
- * UIProcess/API/qt/raw/qrawwebview_p.h: include Platform.h so we can use the ENABLE macro.
- * UIProcess/InspectorServer/qt/WebInspectorServerQt.cpp: Also add the missing QFile include.
- * UIProcess/qt/QtWebPageEventHandler.cpp:
- (WebKit::QtWebPageEventHandler::deactivateTapHighlight):
-
-2012-07-18 Christophe Dumez <christophe.dumez@intel.com>
-
- [EFL][WK2] Add Ewk class for cookie manager
- https://bugs.webkit.org/show_bug.cgi?id=91053
-
- Reviewed by Gustavo Noronha Silva.
-
- Add new Ewk_Cookie_Manager class to allow the client
- to set/get the cookie acceptance policy, support
- persistent cookie storage and clear cookies.
-
- The Ewk_Cookie_Manager instance can be retrieved
- from the Ewk_Context API.
-
- * PlatformEfl.cmake:
- * UIProcess/API/efl/EWebKit2.h:
- * UIProcess/API/efl/ewk_context.cpp:
- (_Ewk_Context):
- (_Ewk_Context::_Ewk_Context):
- (_Ewk_Context::~_Ewk_Context):
- (ewk_context_cookie_manager_get):
- * UIProcess/API/efl/ewk_context.h:
- * UIProcess/API/efl/ewk_cookie_manager.cpp: Added.
- (_Ewk_Cookie_Manager):
- (_Ewk_Cookie_Manager::_Ewk_Cookie_Manager):
- (ewk_cookie_manager_persistent_storage_set):
- (ewk_cookie_manager_accept_policy_set):
- (Get_Policy_Async_Data):
- (getAcceptPolicyCallback):
- (ewk_cookie_manager_async_accept_policy_get):
- (Get_Hostnames_Async_Data):
- (getHostnamesWithCookiesCallback):
- (ewk_cookie_manager_async_hostnames_with_cookies_get):
- (ewk_cookie_manager_hostname_cookies_clear):
- (ewk_cookie_manager_cookies_clear):
- (ewk_cookie_manager_free):
- (ewk_cookie_manager_new):
- * UIProcess/API/efl/ewk_cookie_manager.h: Added.
- * UIProcess/API/efl/ewk_cookie_manager_private.h: Added.
-
-2012-07-18 Carlos Garcia Campos <cgarcia@igalia.com>
-
- [GTK] Add WebKitWebView::submit-form signal to WebKit2 GTK+ API
- https://bugs.webkit.org/show_bug.cgi?id=91605
-
- Reviewed by Gustavo Noronha Silva.
-
- The signal is emitted when a form is about to submitted, with a
- form submission request that can be used to get the text fields
- and to continue the form submission wheh done.
-
- * GNUmakefile.list.am: Add new files to compilation.
- * UIProcess/API/gtk/WebKitFormClient.cpp: Added.
- (willSubmitForm): Create a WebKitFormSubmissionRequest and call
- webkitWebViewSubmitFormRequest() with the request.
- (attachFormClientToView): Add impementation for willSubmitForm
- callback.
- * UIProcess/API/gtk/WebKitFormClient.h: Added.
- * UIProcess/API/gtk/WebKitFormSubmissionRequest.cpp: Added.
- (webkit_form_submission_request_init):
- (webkitFormSubmissionRequestFinalize):
- (webkit_form_submission_request_class_init):
- (webkitFormSubmissionRequestCreate): Create a new
- WebKitFormSubmissionRequest for the given values dictionary and
- submission listener.
- (webkit_form_submission_request_get_text_fields): Create a
- GHashTable with the text fields values and return it.
- (webkit_form_submission_request_submit): Continue the form
- submission.
- * UIProcess/API/gtk/WebKitFormSubmissionRequest.h: Added.
- * UIProcess/API/gtk/WebKitFormSubmissionRequestPrivate.h: Added.
- * UIProcess/API/gtk/WebKitWebView.cpp:
- (webkitWebViewConstructed): Attach web view to form client.
- (webkit_web_view_class_init): Add WebKitWebView::submit-form
- signal.
- (webkitWebViewSubmitFormRequest): Emit WebKitWebView::submit-form
- signal.
- * UIProcess/API/gtk/WebKitWebView.h:
- * UIProcess/API/gtk/WebKitWebViewPrivate.h:
- * UIProcess/API/gtk/docs/webkit2gtk-docs.sgml: Add new section for
- WebKitFormSubmissionRequest.
- * UIProcess/API/gtk/docs/webkit2gtk-sections.txt: Add new symbols.
- * UIProcess/API/gtk/tests/TestWebKitWebView.cpp:
- (testWebViewSubmitForm):
- (beforeAll):
- * UIProcess/API/gtk/webkit2.h: Include
- WebKitFormSubmissionRequest.h.
-
-2012-07-18 Carlos Garcia Campos <cgarcia@igalia.com>
-
- [GTK] No main resource in WebView when page has been loaded from history cache
- https://bugs.webkit.org/show_bug.cgi?id=91478
-
- Reviewed by Gustavo Noronha Silva.
-
- We are assuming that a resource loaded for the main frame that is
- provisionally loading is the main resource of the web view. However
- that's not true for pages loaded from history cache, so when you
- go back/forward webkit_web_view_get_main_resource() always returns
- NULL. We can assume that the first resource loaded for the main
- frame is the main resource of the web view when
- pageIsProvisionallyLoading is false.
-
- * UIProcess/API/gtk/WebKitWebView.cpp:
- (webkitWebViewResourceLoadStarted): Make sure we always have a
- main resource for the web view.
- * UIProcess/API/gtk/tests/TestResources.cpp:
- (testWebViewResourcesHistoryCache): Test we always have a main
- resource even after going back/forward.
- (beforeAll): Add new test case.
-
-2012-07-18 Seokju Kwon <seokju.kwon@samsung.com>
-
- [EFL] Rename WebInspectorEfl.cpp as WebInspectorProxyEfl.cpp
- https://bugs.webkit.org/show_bug.cgi?id=91585
-
- Reviewed by Andreas Kling.
-
- Rename WebInspectorEfl.cpp as WebInspectorProxyEfl.cpp
- since it implements the platform specific methods of WebInspectorProxy.
-
- * PlatformEfl.cmake:
- * UIProcess/efl/WebInspectorProxyEfl.cpp: Renamed from Source/WebKit2/UIProcess/efl/WebInspectorEfl.cpp.
- (WebKit):
- (WebKit::WebInspectorProxy::platformCreateInspectorPage):
- (WebKit::WebInspectorProxy::platformOpen):
- (WebKit::WebInspectorProxy::platformDidClose):
- (WebKit::WebInspectorProxy::platformBringToFront):
- (WebKit::WebInspectorProxy::platformIsFront):
- (WebKit::WebInspectorProxy::platformInspectedURLChanged):
- (WebKit::WebInspectorProxy::inspectorPageURL):
- (WebKit::WebInspectorProxy::inspectorBaseURL):
- (WebKit::WebInspectorProxy::platformInspectedWindowHeight):
- (WebKit::WebInspectorProxy::platformAttach):
- (WebKit::WebInspectorProxy::platformDetach):
- (WebKit::WebInspectorProxy::platformSetAttachedWindowHeight):
-
-2012-07-18 Zoltan Horvath <zoltan@webkit.org>
-
- [Qt] Modify the using of the QImage::Format enum to the appropriate functions from NativeImageQt
- https://bugs.webkit.org/show_bug.cgi?id=91600
-
- Reviewed by Andreas Kling.
-
- Use NativeImageQt::defaultFormatForAlphaEnabledImages() and NativeImageQt::defaultFormatForOpaqueImages()
- instead of the direct imagetypes at the appropriate places.
-
- * Shared/qt/ShareableBitmapQt.cpp:
- (WebKit::ShareableBitmap::createQImage):
-
-2012-07-18 Zeno Albisser <zeno@webkit.org>
-
- [Qt][WK2] Caching of ShareableSurfaces breaks tiling.
- https://bugs.webkit.org/show_bug.cgi?id=91609
-
- A ShareableSurface should only be cached,
- when it is GraphicsSurface based.
-
- Reviewed by Kenneth Rohde Christiansen.
-
- * UIProcess/LayerTreeCoordinatorProxy.cpp:
- (WebKit::LayerTreeCoordinatorProxy::updateTileForLayer):
- * UIProcess/LayerTreeCoordinatorProxy.h:
- (LayerTreeCoordinatorProxy):
-
-2012-07-18 Carlos Garcia Campos <cgarcia@igalia.com>
-
- [GTK] Fix a crash due to an invalid assert
- https://bugs.webkit.org/show_bug.cgi?id=91614
-
- Reviewed by Xan Lopez.
-
- In webkitWebViewBaseContainerAdd() there's
- ASSERT(priv->inspectorView); that should be the opposite, since we
- shoulnd't have an inspector view when the inspector view is added.
-
- * UIProcess/API/gtk/WebKitWebViewBase.cpp:
- (webkitWebViewBaseContainerAdd):
-
-2012-07-18 Thiago Marcos P. Santos <thiago.santos@intel.com>
-
- [CMake] Make gtest a shared library
- https://bugs.webkit.org/show_bug.cgi?id=90973
-
- Reviewed by Daniel Bates.
-
- No need to link with gtest dependencies now since it is a shared library.
-
- * PlatformEfl.cmake:
-
-2012-07-18 YoungTaeck Song <youngtaeck.song@samsung.com>
-
- [WK2][EFL] Add a common code using Color instead of QColor
- https://bugs.webkit.org/show_bug.cgi?id=91580
-
- Reviewed by Simon Hausmann.
-
- This patch is a subset of Efl's UI_SIDE_COMPOSITING implementation.
- drawBorder's argument is QColor. So add a common code using Color to be used by Efl.
-
- * UIProcess/texmap/LayerBackingStore.cpp:
- (WebKit::LayerBackingStore::paintToTextureMapper):
-
-2012-07-17 Christophe Dumez <christophe.dumez@intel.com>
-
- [EFL] Replace 0 by NULL in public headers documentation
- https://bugs.webkit.org/show_bug.cgi?id=91470
-
- Reviewed by Dirk Pranke.
-
- Use NULL instead of 0 for pointer types in public
- C headers.
-
- * UIProcess/API/efl/ewk_intent.h:
- * UIProcess/API/efl/ewk_intent_service.h:
- * UIProcess/API/efl/ewk_url_request.h:
- * UIProcess/API/efl/ewk_url_response.h:
- * UIProcess/API/efl/ewk_view.h:
- * UIProcess/API/efl/ewk_web_resource.h:
-
-2012-07-17 Carlos Garcia Campos <cgarcia@igalia.com>
-
- [GTK] Don't use deprecated soup API in WebKit2APITests/TestResources
- https://bugs.webkit.org/show_bug.cgi?id=91496
-
- Reviewed by Martin Robinson.
-
- soup_message_headers_get() is deprecated, use
- soup_message_headers_get_one() instead.
-
- * UIProcess/API/gtk/tests/TestResources.cpp:
- (serverCallback):
-
-2012-07-17 Carlos Garcia Campos <cgarcia@igalia.com>
-
- [GTK] Fix a typo in WebKit2APITests/TestResources
- https://bugs.webkit.org/show_bug.cgi?id=91495
-
- Reviewed by Xan Lopez.
-
- * UIProcess/API/gtk/tests/TestResources.cpp:
- (testWebResourceLoading):
- (testWebResourceResponse):
- (testWebResourceMimeType):
- (testWebResourceActiveURI):
-
-2012-07-17 Vivek Galatage <vivekgalatage@gmail.com>
-
- Web Inspector: refactor InspectorController::connectFrontend() to accept InspectorFrontendChannel.
- https://bugs.webkit.org/show_bug.cgi?id=91196
-
- Reviewed by Pavel Feldman.
-
- Refactoring InspectorClients. InspectorClient::openInspectorFrontend
- now returning the InspectorFrontendChannel.
-
- * WebProcess/WebCoreSupport/WebInspectorClient.cpp:
- (WebKit::WebInspectorClient::openInspectorFrontend):
- * WebProcess/WebCoreSupport/WebInspectorClient.h:
- (WebInspectorClient):
-
-2012-07-17 Carlos Garcia Campos <cgarcia@igalia.com>
-
- [GTK] Paste primary selection when middle clicking in X11 WebKit2
- https://bugs.webkit.org/show_bug.cgi?id=91411
-
- Reviewed by Xan Lopez.
-
- Handle middle click events to paste primary selection as expected
- in any X11 application.
-
- * WebProcess/WebPage/WebPage.cpp:
- (WebKit::handleMouseEvent): Call handleMousePressedEvent() for GTK+
- platform.
- * WebProcess/WebPage/WebPage.h:
- (WebPage): Add handleMousePressedEvent() for GTK+ platform.
- * WebProcess/WebPage/gtk/WebPageGtk.cpp:
- (WebKit::WebPage::handleMousePressedEvent): Handle middle click
- events to paste primary selection like we do in WebKit1.
-
-2012-07-17 Ryuan Choi <ryuan.choi@samsung.com>
-
- [EFL] Move codes related to theme setting from Widget to RenderTheme
- https://bugs.webkit.org/show_bug.cgi?id=89842
-
- Reviewed by Kenneth Rohde Christiansen.
-
- * CMakeLists.txt: Added html/shadow to WebKit_INCLUDE_DIRECTORIES.
- * WebProcess/WebPage/efl/WebPageEfl.cpp:
- (WebKit::WebPage::setThemePath): Called RenderThemeEfl::setThemePath instead of setting theme in FrameView.
-
-2012-07-17 David Barr <davidbarr@chromium.org>
-
- Introduce ENABLE_CSS_IMAGE_ORIENTATION compile flag
- https://bugs.webkit.org/show_bug.cgi?id=89055
-
- Reviewed by Kent Tamura.
-
- The css3-images module is at candidate recommendation.
- http://www.w3.org/TR/2012/CR-css3-images-20120417/#the-image-orientation
-
- Add a configuration option for CSS image-orientation support, disabling it by default.
-
- * Configurations/FeatureDefines.xcconfig:
-
-2012-07-16 Gyuyoung Kim <gyuyoung.kim@samsung.com>
-
- Add RegisterProtocolHandlerClient to the Modules/protocolhandler
- https://bugs.webkit.org/show_bug.cgi?id=90940
-
- Reviewed by Hajime Morita.
-
- As a step to let protocol handler be moved to the modules, RegisterProtocolHandlerClient needs
- to be added to the Modules/protocolhandler. Because ChromeClient has some virtual functions for
- protocol handlers, virtual functions should be moved to RegisterProtocolHandlerClient.
-
- In order to support this, WebRegisterProtocolHandlerClient class is added. However, this is not implemented yet.
- In addition, existing virtual functions in WebChromeClient are moved to WebRegisterProtocolHandlerClient.
-
- * WebProcess/WebCoreSupport/WebChromeClient.h:
- * WebProcess/WebCoreSupport/WebRegisterProtocolHandlerClient.h: Added.
- (WebKit):
- (WebRegisterProtoclHandlerClient):
- (WebKit::WebRegisterProtoclHandlerClient::isProtocolHandlerRegistered):
- (WebKit::WebRegisterProtoclHandlerClient::unregisterProtocolHandler):
-
-2012-07-16 Pete Williamson <petewil@google.com>
-
- Export the iconURL list to make it available to the Internals class for testing
- https://bugs.webkit.org/show_bug.cgi?id=88665
-
- Reviewed by Kent Tamura.
-
- * win/WebKit2.def: export the DocumentL::iconURLs function
-
-2012-07-16 Hajime Morrita <morrita@chromium.org>
-
- WebCore needs WEBCORE_TESTING macro to mark methods being exported for testing.
- https://bugs.webkit.org/show_bug.cgi?id=90764
-
- Reviewed by Adam Barth.
-
- Removed symbols which are now covered by WEBCORE_TESTING.
-
- * win/WebKit2.def:
- * win/WebKit2CFLite.def:
-
-2012-07-16 Christophe Dumez <christophe.dumez@intel.com>
-
- [EFL][WK2] Implement decidePolicyForResponse in policy client
- https://bugs.webkit.org/show_bug.cgi?id=91401
-
- Reviewed by Kenneth Rohde Christiansen.
-
- Provide implementation for decidePolicyForResponse callback
- in WebKit2 EFL's policy client.
-
- * UIProcess/API/efl/ewk_view_policy_client.cpp:
- (decidePolicyForResponseCallback):
- (ewk_view_policy_client_attach):
-
-2012-07-16 Ryuan Choi <ryuan.choi@samsung.com>
-
- [EFL][WK2] Add APIs to support theme.
- https://bugs.webkit.org/show_bug.cgi?id=90107
-
- Reviewed by Hajime Morita.
-
- RenderThemeEfl uses edj file to render native theme of form elements.
- This patch provides default theme and a way to change edj theme file for
- WebKit2/Efl.
-
- * PlatformEfl.cmake:
- * UIProcess/API/efl/ewk_view.cpp:
- (_Ewk_View_Private_Data):
- (ewk_view_base_add):
- (ewk_view_theme_set):
- (ewk_view_theme_get):
- * UIProcess/API/efl/ewk_view.h:
- * UIProcess/WebPageProxy.h:
- (WebPageProxy):
- * UIProcess/efl/WebPageProxyEfl.cpp:
- (WebKit::WebPageProxy::setThemePath):
- * WebProcess/WebPage/WebPage.h:
- * WebProcess/WebPage/WebPage.messages.in:
- * WebProcess/WebPage/efl/WebPageEfl.cpp:
- (WebKit::WebPage::setThemePath):
-
-2012-07-16 Kihong Kwon <kihong.kwon@samsung.com>
-
- Remove setController from BatteryClient
- https://bugs.webkit.org/show_bug.cgi?id=90944
-
- Reviewed by Adam Barth.
-
- Remove WebBatteryClient::setController function.
-
- * WebProcess/WebCoreSupport/WebBatteryClient.cpp:
- * WebProcess/WebCoreSupport/WebBatteryClient.h:
- (WebBatteryClient):
-
-2012-07-16 Christophe Dumez <christophe.dumez@intel.com>
-
- [EFL][WK2] Make Ewk_Navigation_Policy_Decision ref counted
- https://bugs.webkit.org/show_bug.cgi?id=91343
-
- Reviewed by Antonio Gomes.
-
- Make Ewk_Navigation_Policy_Decision ref counted so that the
- client can make navigation policy decisions asynchronously
- by ref'ing the Ewk_Navigation_Policy_Decision object passed
- with the "policy,*" signals.
-
- * UIProcess/API/efl/ewk_navigation_policy_decision.cpp:
- (_Ewk_Navigation_Policy_Decision):
- (_Ewk_Navigation_Policy_Decision::_Ewk_Navigation_Policy_Decision):
- (_Ewk_Navigation_Policy_Decision::~_Ewk_Navigation_Policy_Decision):
- (ewk_navigation_policy_decision_ref):
- (ewk_navigation_policy_decision_unref):
- * UIProcess/API/efl/ewk_navigation_policy_decision.h:
- * UIProcess/API/efl/ewk_view.h:
- * UIProcess/API/efl/ewk_view_policy_client.cpp:
- (decidePolicyForNavigationAction):
- (decidePolicyForNewWindowAction):
-
-2012-07-16 Zoltan Horvath <zoltan@webkit.org>
-
- [Qt] Change NativeImagePtr from QPixmap* to QImage*
- https://bugs.webkit.org/show_bug.cgi?id=88785
-
- Reviewed by Simon Hausmann.
-
- Since we use raster engine there is no difference between QPixmap and QImage, so we are going
- to use QImage everywhere where it is possible. This refactoring contains the change of the
- NativeImagePtr typedef from QPixmap* to QImage* and covers the related modifications.
-
- Part of the change is similar to Viatcheslav Ostapenko's internal work.
-
- Covered by existing tests.
-
- * Shared/qt/ShareableBitmapQt.cpp:
- (WebKit::ShareableBitmap::createImage):
- * UIProcess/qt/QtWebIconDatabaseClient.cpp:
- (WebKit::QtWebIconDatabaseClient::iconImageForPageURL):
- * WebProcess/WebCoreSupport/qt/WebDragClientQt.cpp:
- (WebKit::convertQImageToShareableBitmap):
- (WebKit::WebDragClient::startDrag):
- * WebProcess/WebPage/LayerTreeCoordinator/LayerTreeCoordinator.cpp:
- (WebKit::LayerTreeCoordinator::adoptImageBackingStore):
-
-2012-07-16 Carlos Garcia Campos <cgarcia@igalia.com>
-
- Unreviewed. Fix make distcheck.
-
- * UIProcess/API/gtk/tests/GNUmakefile.am: Add test resources to
- EXTRA_DIST.
-
-2012-07-15 Christophe Dumez <christophe.dumez@intel.com>
-
- [EFL][WK2] Define destructors for Ewk structures
- https://bugs.webkit.org/show_bug.cgi?id=91338
-
- Reviewed by Kentaro Hara.
-
- Add destructors to Ewk structures and move
- memory freeing code from *_free() or *_unref()
- functions to the destructors.
-
- * UIProcess/API/efl/ewk_intent.cpp:
- (_Ewk_Intent::_Ewk_Intent):
- (_Ewk_Intent):
- (_Ewk_Intent::~_Ewk_Intent):
- (ewk_intent_unref):
- * UIProcess/API/efl/ewk_intent_service.cpp:
- (_Ewk_Intent_Service):
- (_Ewk_Intent_Service::~_Ewk_Intent_Service):
- (ewk_intent_service_unref):
- * UIProcess/API/efl/ewk_navigation_policy_decision.cpp:
- (_Ewk_Navigation_Policy_Decision):
- (_Ewk_Navigation_Policy_Decision::~_Ewk_Navigation_Policy_Decision):
- (ewk_navigation_policy_decision_free):
- * UIProcess/API/efl/ewk_url_request.cpp:
- (_Ewk_Url_Request):
- (_Ewk_Url_Request::~_Ewk_Url_Request):
- (ewk_url_request_unref):
- * UIProcess/API/efl/ewk_url_response.cpp:
- (_Ewk_Url_Response):
- (_Ewk_Url_Response::~_Ewk_Url_Response):
- (ewk_url_response_unref):
- * UIProcess/API/efl/ewk_view.cpp:
- (_Ewk_View_Private_Data):
- (_Ewk_View_Private_Data::~_Ewk_View_Private_Data):
- (_ewk_view_priv_del):
- * UIProcess/API/efl/ewk_web_error.cpp:
- (_Ewk_Web_Error):
- (_Ewk_Web_Error::~_Ewk_Web_Error):
- (ewk_web_error_free):
- * UIProcess/API/efl/ewk_web_resource.cpp:
- (_Ewk_Web_Resource):
- (_Ewk_Web_Resource::~_Ewk_Web_Resource):
- (ewk_web_resource_unref):
-
-2012-07-14 Eric Carlson <eric.carlson@apple.com>
-
- Enable AVCF hardware video decoding
- https://bugs.webkit.org/show_bug.cgi?id=90015
- <rdar://problem/10770317>
-
- Reviewed by Anders Carlsson.
-
- * DerivedSources.make: Define HAVE_AVCF if necessary.
-
- * WebProcess/WebCoreSupport/WebChromeClient.cpp:
- (WebKit):
- (WebKit::WebChromeClient::graphicsDeviceAdapter): New, return the layer tree host's
- graphics adapter.
- * WebProcess/WebCoreSupport/WebChromeClient.h:
- (WebChromeClient):
- * WebProcess/WebPage/LayerTreeHost.h:
- (WebCore):
- (LayerTreeHost):
- (WebKit::LayerTreeHost::graphicsDeviceAdapter): New, default implementation.
-
- * WebProcess/WebPage/ca/win/LayerTreeHostCAWin.h:
- (LayerTreeHostCAWin):
-
-2012-07-13 Thiago Marcos P. Santos <thiago.santos@intel.com>
-
- [CMake] Proper handling of ENABLE_API_TESTS build option
- https://bugs.webkit.org/show_bug.cgi?id=91221
-
- Reviewed by Rob Buis.
-
- Build unit tests only if ENABLE_API_TESTS is set.
-
- * PlatformEfl.cmake:
-
-2012-07-13 Christophe Dumez <christophe.dumez@intel.com>
-
- [EFL][WK2] Make new public Ewk headers as installable
- https://bugs.webkit.org/show_bug.cgi?id=91232
-
- Reviewed by Antonio Gomes.
-
- Make new public Ewk headers installable.
-
- * PlatformEfl.cmake:
-
-2012-07-13 Carlos Garcia Campos <cgarcia@igalia.com>
-
- [GTK] Implement disk cache in WebKit2
- https://bugs.webkit.org/show_bug.cgi?id=90797
-
- Reviewed by Xan Lopez.
-
- * WebProcess/gtk/WebProcessGtk.cpp:
- (WebKit::getCacheDiskFreeSize): Use an ASSERT instead of an early
- return since the cache feature is now always added to the session.
- (WebKit::WebProcess::platformSetCacheModel): Get the cache from
- the session and set the maximum cache size as computed by
- calculateCacheSizes().
- (WebKit::WebProcess::platformClearResourceCaches): Call
- soup_cache_clear().
- (WebKit::WebProcess::platformTerminate): Make sure all pending
- data is saved to the disk before the web process finishes.
- * WebProcess/gtk/WebProcessMainGtk.cpp:
- (WebKit::WebProcessMainGtk): Create a SoupCache feature and add it
- to the default SoupSession.
-
-2012-07-13 Carlos Garcia Campos <cgarcia@igalia.com>
-
- [GTK] Fix disk cache size computation in WebKit2
- https://bugs.webkit.org/show_bug.cgi?id=91226
-
- Reviewed by Xan Lopez.
-
- We are passing the free disk space value in bytes to
- calculateCacheSizes() which expects values in MB.
-
- * WebProcess/gtk/WebProcessGtk.cpp:
- (WebKit::WebProcess::platformSetCacheModel):
-
-2012-07-13 Carlos Garcia Campos <cgarcia@igalia.com>
-
- [GTK] WebKit2 crash when going back/forward
- https://bugs.webkit.org/show_bug.cgi?id=91220
-
- Reviewed by Xan Lopez.
-
- For some reason when a page is loaded from the backforward list,
- when the didCommitLoadForFrame callback is called for the main
- frame, the callback didInitiateLoadForResource hasn't been called
- yet, so we don't even have a main resource at that point. We were
- assuming we always had a main resource with a response. For now we
- just check whether we have a resource before trying to set the
- certificate to fix the crash, but we need to figue out why this is
- happening an how to properly fix it.
-
- * UIProcess/API/gtk/WebKitLoaderClient.cpp:
- (didCommitLoadForFrame): Check whether we have a main resource
- before setting the certificate.
-
-2012-07-13 Christophe Dumez <christophe.dumez@intel.com>
-
- [EFL][WK2] Use eina stringsharing for Ewk_Web_Resource's url
- https://bugs.webkit.org/show_bug.cgi?id=91200
-
- Reviewed by Kenneth Rohde Christiansen.
-
- Use eina stringsharing for Ewk_Web_Resource's url
- for consistency.
-
- * UIProcess/API/efl/ewk_web_resource.cpp:
- (_Ewk_Web_Resource):
- (_Ewk_Web_Resource::_Ewk_Web_Resource):
- (ewk_web_resource_unref):
- (ewk_web_resource_url_get):
- * UIProcess/API/efl/ewk_web_resource.h:
-
-2012-07-13 Carlos Garcia Campos <cgarcia@igalia.com>
-
- [GTK] WebKitWebView::mouse-target-changed is not emitted when moved to/from edtiable content
- https://bugs.webkit.org/show_bug.cgi?id=91216
-
- Reviewed by Xan Lopez.
-
- The problem is that the function to check whether two hit test
- results are equal doesn't check the editable flag.
-
- * UIProcess/API/gtk/WebKitHitTestResult.cpp:
- (webkitHitTestResultCompare): Check also the editable flag.
-
-2012-07-13 Gyuyoung Kim <gyuyoung.kim@samsung.com>
-
- [EFL] Add *explicit* keyword to constructor which has a parameter
- https://bugs.webkit.org/show_bug.cgi?id=91207
-
- Reviewed by Zoltan Herczeg.
-
- Add *explicit* keyword to contructor which has a parameter in order to avoid implicit type conversion.
-
- * WebProcess/WebCoreSupport/efl/WebFrameNetworkingContext.h:
- (WebFrameNetworkingContext::WebFrameNetworkingContext):
-
-2012-07-13 Zeno Albisser <zeno@webkit.org>
-
- [Qt][WK2] Implement GraphicsSurface for Linux/GLX.
- https://bugs.webkit.org/show_bug.cgi?id=90881
-
- Add a GLX based GraphicsSurface implementation for Linux.
-
- Reviewed by Noam Rosenthal.
-
- * Shared/ShareableSurface.cpp:
- (WebKit::ShareableSurface::create):
- Only create a GraphicsSurface from a ShareableSurface::Handle
- in case the Handle contains a valid GraphicsSurface token.
- Otherwise fall back to creating a ShareableBitmap.
- * UIProcess/LayerTreeCoordinatorProxy.cpp:
- (WebKit::createLayerTileUniqueKey):
- Create a unique key for a surface based on tileID and layerID.
- (WebKit::LayerTreeCoordinatorProxy::updateTileForLayer):
- Even when GraphicsSurface is enabled, not all ShareableSurfaces
- will necessarily be backed by a GraphicsSurface. In case of
- a ShareableSurface being backed by a ShareableBitmap instead,
- the GraphicsSurface token will always be null.
- So instead of using the GraphicsSurface token as a key for
- storing surfaces in a map, we create a unique key from
- layerID and tileID.
- * UIProcess/LayerTreeCoordinatorProxy.h:
- (LayerTreeCoordinatorProxy):
-
-2012-07-12 Carlos Garcia Campos <cgarcia@igalia.com>
-
- [GTK] Add API to get HTTPS status to WebKit2 GTK+
- https://bugs.webkit.org/show_bug.cgi?id=91100
-
- Reviewed by Martin Robinson.
-
- Add webkit_uri_response_get_https_status() to return
- GTlsCertificate and GTlsCertificateFlags with information about
- the SSL certificate and the possible errors with the certificate.
-
- * GNUmakefile.list.am: Add new files to compilation.
- * PlatformEfl.cmake: Ditto.
- * Shared/efl/PlatformCertificateInfo.h: Removed.
- * Shared/soup/PlatformCertificateInfo.cpp: Added.
- (WebKit::PlatformCertificateInfo::PlatformCertificateInfo):
- (WebKit::PlatformCertificateInfo::~PlatformCertificateInfo):
- (WebKit::PlatformCertificateInfo::encode): Encode the
- GTlsCertificate and GTlsCertificateFlags.
- (WebKit::PlatformCertificateInfo::decode): Decode
- PlatformCertificateInfo into a GTlsCertificate and GTlsCertificateFlags.
- * Shared/soup/PlatformCertificateInfo.h: Renamed from Source/WebKit2/Shared/gtk/PlatformCertificateInfo.h.
- (WebKit::PlatformCertificateInfo::certificate): Return the certificate.
- (WebKit::PlatformCertificateInfo::tlsErrors): Return the TLS errors
- * UIProcess/API/gtk/WebKitLoaderClient.cpp:
- (didCommitLoadForFrame): Set the certificate of the current frame
- to the response of the main resource.
- * UIProcess/API/gtk/WebKitURIResponse.cpp:
- (webkit_uri_response_get_https_status): Return GTlsCertificate and
- GTlsCertificateFlags.
- (webkitURIResponseSetCertificateInfo): Update the internal
- ResourceResponse with the GTlsCertificate and GTlsCertificateFlags
- of the given PlatformCertificateInfo.
- * UIProcess/API/gtk/WebKitURIResponse.h:
- * UIProcess/API/gtk/WebKitURIResponsePrivate.h:
- * UIProcess/API/gtk/docs/webkit2gtk-sections.txt: Add new symbol.
- * UIProcess/API/gtk/tests/GNUmakefile.am:
- * UIProcess/API/gtk/tests/TestMain.h:
- (Test::getResourcesDir): Helper function to get the resources
- directory of the WebKit2 API tests.
- * UIProcess/API/gtk/tests/TestSSL.cpp: Added.
- (testSSL):
- (serverCallback):
- (beforeAll):
- (afterAll):
- * UIProcess/API/gtk/tests/WebKitTestServer.cpp:
- (WebKitTestServer::WebKitTestServer): Add support por SSL test
- servers.
- * UIProcess/API/gtk/tests/WebKitTestServer.h:
- (WebKitTestServer): Add ssl parameter to create a HTTPS server.
- * UIProcess/API/gtk/tests/resources/test-cert.pem: Added.
- * UIProcess/API/gtk/tests/resources/test-key.pem: Added.
-
-2012-07-12 Christophe Dumez <christophe.dumez@intel.com>
-
- [WK2][EFL] Facilitate debugging of the Web Process
- https://bugs.webkit.org/show_bug.cgi?id=90768
-
- Reviewed by Kenneth Rohde Christiansen.
-
- The EFL port now checks if the WEB_PROCESS_CMD_PREFIX
- environment variable is set and uses it as prefix
- when spawning the Web process if it is. This is used
- for debugging purposes with prefixes such as:
- "xterm -title renderer -e gdb --args".
-
- * UIProcess/Launcher/ProcessLauncher.h:
- (LaunchOptions):
- * UIProcess/Launcher/efl/ProcessLauncherEfl.cpp:
- (WebKit::ProcessLauncher::launchProcess):
- * UIProcess/WebProcessProxy.cpp:
- (WebKit::WebProcessProxy::connect):
-
-2012-07-12 Timothy Hatcher <timothy@apple.com>
-
- Make the "Inspect Element" context menu item appear in nightly builds again.
-
- https://webkit.org/b/89323
-
- Reviewed by Anders Carlsson.
-
- * Shared/API/c/WKContextMenuItem.cpp:
- (compatibleContextMenuItemTag): Added. Checks for the specific version of Safari 6 that needs the
- tag fixed up to match values it expects.
- (WKContextMenuItemGetTag): On Mac platforms call compatibleContextMenuItemTag to fix up the tag
- before returning it.
- * Shared/API/c/WKContextMenuItemTypes.h: Fix the order of the WKContextMenuItemTag enum
- to be binary compatible with older versions of WebKit2.
-
-2012-07-12 Thiago Marcos P. Santos <thiago.santos@intel.com>
-
- [EFL] Port the test framework to WebKit 2
- https://bugs.webkit.org/show_bug.cgi?id=90606
-
- Reviewed by Kenneth Rohde Christiansen.
-
- This port of EFL's WebKit 1 test framework uses a more gtest-ish
- way of writing tests and it is based on a test fixture that loads a
- page synchronously as convenience (if needed). This base fixture can be
- easily extended by just inheriting from it.
-
- * PlatformEfl.cmake:
- * UIProcess/API/efl/tests/UnitTestUtils/EWK2UnitTestBase.cpp: Added.
- (EWK2UnitTest):
- (EWK2UnitTest::onLoadProgress):
- (EWK2UnitTest::EWK2UnitTestBase::EWK2UnitTestBase):
- (EWK2UnitTest::EWK2UnitTestBase::SetUp):
- (EWK2UnitTest::EWK2UnitTestBase::TearDown):
- (EWK2UnitTest::EWK2UnitTestBase::loadUrlSync):
- * UIProcess/API/efl/tests/UnitTestUtils/EWK2UnitTestBase.h: Added.
- (EWK2UnitTest):
- (EWK2UnitTestBase):
- (EWK2UnitTest::EWK2UnitTestBase::setLoadProgress):
- (EWK2UnitTest::EWK2UnitTestBase::webView):
- * UIProcess/API/efl/tests/UnitTestUtils/EWK2UnitTestEnvironment.cpp: Added.
- (EWK2UnitTest):
(EWK2UnitTest::EWK2UnitTestEnvironment::EWK2UnitTestEnvironment):
- (EWK2UnitTest::EWK2UnitTestEnvironment::defaultTestPageUrl):
- * UIProcess/API/efl/tests/UnitTestUtils/EWK2UnitTestEnvironment.h: Added.
- (EWK2UnitTest):
+ * UIProcess/API/efl/tests/UnitTestUtils/EWK2UnitTestEnvironment.h:
(EWK2UnitTestEnvironment):
- (EWK2UnitTest::EWK2UnitTestEnvironment::useX11Window):
- (EWK2UnitTest::EWK2UnitTestEnvironment::defaultWidth):
- (EWK2UnitTest::EWK2UnitTestEnvironment::defaultHeight):
- * UIProcess/API/efl/tests/UnitTestUtils/EWK2UnitTestMain.cpp: Added.
- (parseArguments):
+ * UIProcess/API/efl/tests/UnitTestUtils/EWK2UnitTestMain.cpp:
(main):
- * UIProcess/API/efl/tests/resources/default_test_page.html: Added.
- * UIProcess/API/efl/tests/test_ewk2_view.cpp: Added.
- (TEST_F):
-
-2012-07-12 Christophe Dumez <christophe.dumez@intel.com>
-
- [WK2] Add missing Network Information API integration to WebContext and WebPage
- https://bugs.webkit.org/show_bug.cgi?id=90781
-
- Reviewed by Anders Carlsson.
-
- Integrate Network Information API to WebPage, WebContext and
- properly route messages to the WebNetworkInfoManagerProxy.
- Without this, the Network Information tests are crashing for
- WebKit2.
-
- * UIProcess/WebContext.cpp:
- (WebKit::WebContext::WebContext):
- (WebKit::WebContext::~WebContext):
- (WebKit::WebContext::disconnectProcess):
- (WebKit::WebContext::didReceiveMessage):
- (WebKit::WebContext::didReceiveSyncMessage):
- * UIProcess/WebContext.h:
- (WebKit):
- (WebContext):
- (WebKit::WebContext::networkInfoManagerProxy):
- * UIProcess/WebNetworkInfoManagerProxy.cpp:
- (WebKit::WebNetworkInfoManagerProxy::didReceiveSyncMessage):
- (WebKit):
- * UIProcess/WebNetworkInfoManagerProxy.h:
- (WebNetworkInfoManagerProxy):
- * UIProcess/WebProcessProxy.cpp:
- (WebKit::WebProcessProxy::didReceiveMessage):
- (WebKit::WebProcessProxy::didReceiveSyncMessage):
- * WebProcess/WebPage/WebPage.cpp:
- (WebKit::WebPage::WebPage):
-
-2012-07-12 No'am Rosenthal <noam.rosenthal@nokia.com>
-
- Move TextureMapperAnimation and texmap/LayerTransform to platform/graphics
- https://bugs.webkit.org/show_bug.cgi?id=91111
-
- Reviewed by Kenneth Rohde Christiansen.
-
- Include the new filenames.
-
- * WebProcess/WebPage/LayerTreeCoordinator/WebGraphicsLayer.h:
- (WebGraphicsLayer):
-
-2012-07-12 Adenilson Cavalcanti <cavalcantii@gmail.com>
-
- [Qt][WK2] Implement web notifications support
- https://bugs.webkit.org/show_bug.cgi?id=80702
-
- Reviewed by Noam Rosenthal.
-
- Adding a new type of permission request for Desktop Notifications (plus required code
- to register the handle for this requests).
-
- * UIProcess/API/qt/qwebpermissionrequest.cpp:
- (QWebPermissionRequestPrivate::QWebPermissionRequestPrivate):
- (QWebPermissionRequestPrivate):
- (QWebPermissionRequest::create):
- (QWebPermissionRequest::QWebPermissionRequest):
- (QWebPermissionRequest::setAllow):
- * UIProcess/API/qt/qwebpermissionrequest_p.h:
- * UIProcess/API/qt/tests/qmltests/WebView/tst_notification.qml: Added.
- * UIProcess/API/qt/tests/qmltests/common/notification.html: Added.
- * UIProcess/qt/QtWebPageUIClient.cpp:
- (WebKit::QtWebPageUIClient::QtWebPageUIClient):
- (WebKit::QtWebPageUIClient::policyForNotificationPermissionRequest):
- (WebKit):
- * UIProcess/qt/QtWebPageUIClient.h:
-
-2012-07-12 Sudarsana Nagineni <sudarsana.nagineni@linux.intel.com>
-
- [EFL][WK2] Browser crashes running BatteryStatus tests.
- https://bugs.webkit.org/show_bug.cgi?id=91065
-
- Reviewed by Kentaro Hara.
-
- clientInfo was incorrectly casted to BatteryProviderEfl in helper
- function. This patch fixes the issue.
-
- * UIProcess/API/efl/BatteryProvider.cpp:
- (toBatteryProvider):
-
-2012-07-12 Christophe Dumez <christophe.dumez@intel.com>
-
- [EFL] [WK2] regression(r122411) Crashes in Ewk_View
- https://bugs.webkit.org/show_bug.cgi?id=91068
-
- Reviewed by Kentaro Hara.
-
- Avoid using calloc() to allocate memory for structures
- and use new operator instead. calloc() causes unwanted
- behavior when allocing a structure which contains
- non-pointer types (e.g. a HashMap) and leads to
- crashes.
-
- * UIProcess/API/efl/ewk_context.cpp:
- (_Ewk_Context::_Ewk_Context):
- * UIProcess/API/efl/ewk_intent.cpp:
- (_Ewk_Intent):
- (_Ewk_Intent::_Ewk_Intent):
- (ewk_intent_unref):
- (ewk_intent_new):
- * UIProcess/API/efl/ewk_intent_service.cpp:
- (_Ewk_Intent_Service):
- (_Ewk_Intent_Service::_Ewk_Intent_Service):
- (ewk_intent_service_unref):
- (ewk_intent_service_new):
- * UIProcess/API/efl/ewk_navigation_policy_decision.cpp:
- (_Ewk_Navigation_Policy_Decision):
- (_Ewk_Navigation_Policy_Decision::_Ewk_Navigation_Policy_Decision):
- (ewk_navigation_policy_decision_free):
- (ewk_navigation_policy_decision_new):
- * UIProcess/API/efl/ewk_url_request.cpp:
- (_Ewk_Url_Request):
- (_Ewk_Url_Request::_Ewk_Url_Request):
- (ewk_url_request_unref):
- (ewk_url_request_new):
- * UIProcess/API/efl/ewk_url_response.cpp:
- (_Ewk_Url_Response):
- (_Ewk_Url_Response::_Ewk_Url_Response):
- (ewk_url_response_unref):
- (ewk_url_response_new):
- * UIProcess/API/efl/ewk_view.cpp:
- (_Ewk_View_Private_Data):
- (_Ewk_View_Private_Data::_Ewk_View_Private_Data):
- (_ewk_view_priv_new):
- (_ewk_view_priv_del):
- * UIProcess/API/efl/ewk_web_error.cpp:
- (_Ewk_Web_Error):
- (_Ewk_Web_Error::_Ewk_Web_Error):
- (ewk_web_error_free):
- (ewk_web_error_new):
- * UIProcess/API/efl/ewk_web_resource.cpp:
- (_Ewk_Web_Resource):
- (_Ewk_Web_Resource::_Ewk_Web_Resource):
- (ewk_web_resource_unref):
- (ewk_web_resource_new):
-
-2012-07-11 Andras Becsi <andras.becsi@nokia.com>
-
- [Qt][WK2] ASSERT: "!m_viewportItem->isMoving()" in QtViewportHandler::flickMoveEnded()
- https://bugs.webkit.org/show_bug.cgi?id=90875
-
- Reviewed by Kenneth Rohde Christiansen.
-
- Since MultiPointTouchArea and PinchArea use the childMouseEventFilter
- method to filter touch events and because Flickable filters child mouse
- events the canvas calls this function before propagating the touch event
- to the WebView. Since Flickable does not accept touch events the canvas
- tries to propagate a synthesized mouse event through the base class
- childMouseEventFilter function which is accepted by Flickable and
- interferes with the input events we send to Flicakble hence messes up
- the internal state of the WebView.
- This patch reimplements the virtual childMouseEventFilter method so that all
- the mouse and touch events can be processed by WebKit before they arrive to
- Flickable.
-
- * UIProcess/API/qt/qquickwebview.cpp:
- (QQuickWebView::childMouseEventFilter):
- * UIProcess/API/qt/qquickwebview_p.h:
-
-2012-07-12 Carlos Garcia Campos <cgarcia@igalia.com>
-
- Unreviewed. Fix GTK+ debug build after r122425.
-
- * WebProcess/Cookies/soup/WebKitSoupCookieJarSqlite.cpp:
- (webkitSoupCookieJarSqliteNew):
-
-2012-07-12 Sergio Villar Senin <svillar@igalia.com>
-
- [WK2] Performance issue in FindController::findString
- https://bugs.webkit.org/show_bug.cgi?id=78132
-
- Reviewed by Anders Carlsson.
-
- FindController should not unmark all text matches by default. It
- will be done only if the string is not found or if
- markAllTextMatches() is called. This will allow clients to look
- for the next/previous without having to unmark() + mark() all the
- text matches for every single search operation.
-
- * UIProcess/API/gtk/WebKitFindController.cpp:
- (webKitFindControllerPerform):
- (webkit_find_controller_search_next):
- (webkit_find_controller_search_previous):
- * WebProcess/WebPage/FindController.cpp:
- (WebKit::FindController::updateFindUIAfterPageScroll):
- (WebKit::FindController::findString):
-
-2012-07-12 Christophe Dumez <christophe.dumez@intel.com>
-
- [WK2][EFL] Add policy client to Ewk_View
- https://bugs.webkit.org/show_bug.cgi?id=90953
-
- Reviewed by Kenneth Rohde Christiansen.
-
- Emit new "policy,decision,navigation" and "policy,decision,new,window"
- on the Ewk_View when policy decisions should be taken by the client.
-
- A new Ewk_Navigation_Policy_Decision type is introduced to provide
- information about the navigation request and make a decision.
- By default, the navigation request is accepted.
-
- * PlatformEfl.cmake:
- * UIProcess/API/efl/EWebKit2.h:
- * UIProcess/API/efl/ewk_navigation_policy_decision.cpp: Added.
- (_Ewk_Navigation_Policy_Decision):
- (ewk_navigation_policy_decision_free):
- (ewk_navigation_policy_navigation_type_get):
- (ewk_navigation_policy_mouse_button_get):
- (ewk_navigation_policy_modifiers_get):
- (ewk_navigation_policy_frame_name_get):
- (ewk_navigation_policy_request_get):
- (ewk_navigation_policy_decision_accept):
- (ewk_navigation_policy_decision_reject):
- (ewk_navigation_policy_decision_download):
- (ewk_navigation_policy_decision_new):
- * UIProcess/API/efl/ewk_navigation_policy_decision.h: Added.
- * UIProcess/API/efl/ewk_navigation_policy_decision_private.h: Added.
- * UIProcess/API/efl/ewk_private.h: Added.
- * UIProcess/API/efl/ewk_view.cpp:
- (ewk_view_base_add):
- (ewk_view_navigation_policy_decision):
- (ewk_view_new_window_policy_decision):
- * UIProcess/API/efl/ewk_view.h:
- * UIProcess/API/efl/ewk_view_policy_client.cpp: Added.
- (toEwkView):
- (decidePolicyForNavigationAction):
- (decidePolicyForNewWindowAction):
- (ewk_view_policy_client_attach):
- * UIProcess/API/efl/ewk_view_policy_client_private.h: Added.
- * UIProcess/API/efl/ewk_view_private.h:
-
-2012-07-11 Carlos Garcia Campos <cgarcia@igalia.com>
-
- [GTK] Add webkit_cookie_manager_set_persistent_storage() to WebKit2 GTK+ API
- https://bugs.webkit.org/show_bug.cgi?id=83016
-
- Reviewed by Martin Robinson.
-
- Add a custom implementation of SoupCookieJarSqlite based on
- libsoup code but using WebCore SQLite classes. SoupCookieJarSqlite
- is part of libsoup-gnome, it's not a lot of code and it doesn't
- change often, so it's better to simply have our own implementation
- instead of making this important feature depend on an optional
- dependency. There are plans to move the implementation to libsoup,
- if that eventually happens we will remove our code to use libsoup
- directly.
-
- * GNUmakefile.am: Add new dirs to include path.
- * GNUmakefile.list.am: Add new files to compilation.
- * PlatformEfl.cmake: Ditto.
- * Shared/soup/SoupCookiePersistentStorageType.h: Added.
- * UIProcess/API/gtk/WebKitCookieManager.cpp:
- (webkit_cookie_manager_set_persistent_storage): Set a persistent
- storage for cookies.
- * UIProcess/API/gtk/WebKitCookieManager.h:
- * UIProcess/API/gtk/docs/webkit2gtk-sections.txt: Add new symbols
- * UIProcess/API/gtk/tests/TestCookieManager.cpp:
- (testCookieManagerPersistentStorage):
- (serverCallback):
- (beforeAll):
- (afterAll):
- * UIProcess/WebCookieManagerProxy.h:
- (WebCookieManagerProxy): Add setCookiePersistentStorage() method
- when using soup.
- * UIProcess/soup/WebCookieManagerProxySoup.cpp: Added.
- (WebKit::WebCookieManagerProxy::setCookiePersistentStorage): Send
- SetCookiePersistentStorage message to the web process.
- * WebProcess/Cookies/WebCookieManager.h:
- (WebCookieManager): Add setCookiePersistentStorage() method when
- using soup.
- * WebProcess/Cookies/WebCookieManager.messages.in: Add
- SetCookiePersistentStorage message when using soup.
- * WebProcess/Cookies/soup/WebCookieManagerSoup.cpp:
- (WebKit::WebCookieManager::setCookiePersistentStorage): Create a
- new cookie jar for the given filename and storage type and add it
- to the soup session.
- * WebProcess/Cookies/soup/WebKitSoupCookieJarSqlite.cpp: Added.
- (webkitSoupCookieJarSqliteOpenDatabase): Open SQLite database.
- (webkitSoupCookieJarSqliteCreateTable): Create moz_cookies if it
- doesn't exist.
- (webkitSoupCookieJarSqliteLoad): Load the initial set of cookies
- from the database.
- (webkitSoupCookieJarSqliteInsertCookie): Insert a new cookie into
- the database.
- (webkitSoupCookieJarSqliteDeleteCookie): Delete an exising cookie
- from the database.
- (webkitSoupCookieJarSqliteChanged): Insert/delete cookies
- depending on the change.
- (webkitSoupCookieJarSqliteFinalize):
- (webkit_soup_cookie_jar_sqlite_init):
- (webkit_soup_cookie_jar_sqlite_class_init):
- (webkitSoupCookieJarSqliteNew):
- * WebProcess/Cookies/soup/WebKitSoupCookieJarSqlite.h: Added.
-
-2012-07-11 Christophe Dumez <christophe.dumez@intel.com>
-
- [WK2][EFL] Ewk_View should provide more resource loading notifications
- https://bugs.webkit.org/show_bug.cgi?id=90601
-
- Reviewed by Antonio Gomes.
-
- Add new "resource,request,sent", "resource,request,response",
- "resource,request,failed" and "resource,request,finished" to
- Ewk_View in order to notify the clients of the main resource
- load state changes.
-
- Introduce new Ewk_Url_Response type that is used to provide
- information to the clients regarding the resource load
- responses that are received.
-
- * PlatformEfl.cmake:
- * UIProcess/API/efl/EWebKit2.h:
- * UIProcess/API/efl/ewk_url_response.cpp: Added.
- (_Ewk_Url_Response):
- (ewk_url_response_ref):
- (ewk_url_response_unref):
- (ewk_url_response_url_get):
- (ewk_url_response_status_code_get):
- (ewk_url_response_mime_type_get):
- (ewk_url_response_new):
- * UIProcess/API/efl/ewk_url_response.h: Added.
- * UIProcess/API/efl/ewk_url_response_private.h: Added.
- * UIProcess/API/efl/ewk_view.cpp:
- (_Ewk_View_Private_Data):
- (ewk_view_resource_load_initiated):
- (ewk_view_resource_load_response):
- (ewk_view_resource_load_failed):
- (ewk_view_resource_load_finished):
- (ewk_view_resource_request_sent):
- (ewk_view_load_provisional_started):
- * UIProcess/API/efl/ewk_view.h:
- * UIProcess/API/efl/ewk_view_private.h:
- * UIProcess/API/efl/ewk_view_resource_load_client.cpp:
- (toEwkView):
- (didInitiateLoadForResource):
- (didSendRequestForResource):
- (didReceiveResponseForResource):
- (didFinishLoadForResource):
- (didFailLoadForResource):
- (ewk_view_resource_load_client_attach):
-
-2012-07-11 Mark Rowe <mrowe@apple.com>
-
- Fix a logic error in the #if so that the correct code is compiled on Snow Leopard.
-
- I introduced this in r122403 when I inverted the sense of the #if.
-
- * UIProcess/mac/WKFullScreenWindowController.mm:
-
-2012-07-11 Mark Rowe <mrowe@apple.com>
-
- <http://webkit.org/b/91024> Build against the latest SDK when targeting older OS X versions.
-
- Reviewed by Dan Bernstein.
-
- The deployment target is already set to the version that we're targeting, and it's that setting
- which determines which functionality from the SDK is available to us.
-
- * Configurations/Base.xcconfig:
-
-2012-07-11 Mark Rowe <mrowe@apple.com>
-
- <http://webkit.org/b/91022> WebFullScreenController and WKFullScreenWindowController shouldn't add unprefixed methods to AppKit classes
-
- Reviewed by Dan Bernstein.
-
- * UIProcess/mac/WKFullScreenWindowController.mm:
- (convertRectToScreen): Add a static helper method that calls through to -[NSWindow convertRectToScreen:] on OS versions where it exists
- but otherwise provides a compatibility implementation of it.
- (-[WKFullScreenWindowController enterFullScreen:]): Call our new helper.
-
-2012-07-11 Mark Rowe <mrowe@apple.com>
-
- <http://webkit.org/b/91015> Remove BUILDING_ON / TARGETING macros in favor of system availability macros
-
- This removal was handled by a script that translates the relevant macros in to the equivalent checks
- using the system availability macros.
-
- Reviewed by Filip Pizlo.
-
- * Shared/DictionaryPopupInfo.cpp:
- * Shared/DictionaryPopupInfo.h:
- * Shared/mac/PasteboardTypes.mm:
- * Shared/mac/WebEventFactory.mm:
- * UIProcess/API/mac/PDFViewController.mm:
- * UIProcess/API/mac/PageClientImpl.mm:
- * UIProcess/API/mac/WKView.mm:
- * UIProcess/Launcher/mac/DynamicLinkerEnvironmentExtractor.h:
- * UIProcess/Launcher/mac/DynamicLinkerEnvironmentExtractor.mm:
- * UIProcess/Launcher/mac/EnvironmentVariables.cpp:
- * UIProcess/Launcher/mac/EnvironmentVariables.h:
- * UIProcess/Launcher/mac/ProcessLauncherMac.mm:
- * UIProcess/Plugins/mac/PluginProcessProxyMac.mm:
- * UIProcess/WebPageProxy.cpp:
- * UIProcess/WebPageProxy.h:
- * UIProcess/WebPageProxy.messages.in:
- * UIProcess/mac/TextCheckerMac.mm:
- * UIProcess/mac/WKFullScreenWindowController.mm:
- * UIProcess/mac/WebContextMac.mm:
- * UIProcess/mac/WebPageProxyMac.mm:
- * WebKit2Prefix.h:
- * WebProcess/Plugins/Netscape/NetscapeBrowserFuncs.cpp:
- * WebProcess/Plugins/Netscape/mac/NetscapeSandboxFunctions.mm:
- * WebProcess/WebCoreSupport/WebEditorClient.cpp:
- * WebProcess/WebCoreSupport/WebEditorClient.h:
- * WebProcess/WebCoreSupport/mac/WebSystemInterface.mm:
- * WebProcess/WebPage/WebPage.cpp:
- * WebProcess/WebPage/WebPage.h:
- * WebProcess/WebPage/WebPage.messages.in:
- * WebProcess/WebPage/mac/WebPageMac.mm:
- * WebProcess/com.apple.WebProcess.sb.in:
- * WebProcess/mac/KeychainItemShimMethods.mm:
- * WebProcess/mac/SecItemShimMethods.mm:
- * WebProcess/mac/WebProcessMac.mm:
- * WebProcess/mac/WebProcessMainMac.mm:
- * WebProcess/mac/WebProcessShim.mm:
-
-2012-07-11 Simon Fraser <simon.fraser@apple.com>
-
- pagesPerView param is misnamed for WKPageSetPageLength()
- https://bugs.webkit.org/show_bug.cgi?id=91033
-
- Rubber-stamped by Dan Bernstein.
-
- The name of the second parameter to WKPageSetPageLength(),
- 'pagesPerView', was confusing; it's a page size (normally width)
- in pixels.
-
- * UIProcess/API/C/WKPagePrivate.h:
-
-2012-07-11 Anders Carlsson <andersca@apple.com>
-
- Add -Wtautological-compare and -Wsign-compare warning flags
- https://bugs.webkit.org/show_bug.cgi?id=90994
-
- Reviewed by Mark Rowe.
-
- * Configurations/Base.xcconfig:
-
-2012-07-11 No'am Rosenthal <noam.rosenthal@nokia.com>
-
- [Qt][WK2] Test actual rendering results in API tests
- https://bugs.webkit.org/show_bug.cgi?id=80609
-
- Reviewed by Alexis Menard.
-
- Added a very basic test to tst_QQuickWebView to make sure rendering actually occurs.
-
- * UIProcess/API/qt/tests/qquickwebview/tst_qquickwebview.cpp:
- (tst_QQuickWebView):
- (tst_QQuickWebView::basicRenderingSanity):
-
-2012-07-11 Mark Rowe <mrowe@apple.com>
-
- Add a Mountain Lion version of libWebKitSystemInterface.a.
-
- Reviewed by John Sullivan.
+ * UIProcess/API/efl/tests/test_ewk2_view.cpp:
+ (checkFullScreenProperty):
- * Configurations/DebugRelease.xcconfig: Look for the library under its expected name.
+2012-10-03 Christophe Dumez <christophe.dumez@intel.com>
-2012-07-11 No'am Rosenthal <noam.rosenthal@nokia.com>
+ [EFL] Enable use of X11 in DumpRenderTree / WebKitTestRunner
+ https://bugs.webkit.org/show_bug.cgi?id=98231
- [Qt] QRawWebView should notify when rendering is done, so that pixel results can be grabbed at the appropriate moment.
- https://bugs.webkit.org/show_bug.cgi?id=90641
+ Reviewed by Gyuyoung Kim.
- Reviewed by Jocelyn Turcotte.
+ Initialize ecore_x library in ewk_main instead of
+ WebKitTestRunner since WebKit is using ecore_x
+ not WebKitTestRunner itself.
- Implement LayerTreeCoordinator::forceRepaint with logic equivalent to the one in
- LayerTreeHostCA. If we flush the layers synchronously when forceRepaint is called,when
- WKPageForceRepaint returns we are guaranteed to have an up-to-date image, as the visible
- tiles are also synchronously updated.
-
- * UIProcess/API/qt/tests/qrawwebview/tst_qrawwebview.cpp:
- (WebView::WebView):
- (WebView::viewNeedsDisplay):
- (WebView::frameLoaded):
- (WebView):
- (WebView::onRepaintDone):
- (WebView::finishForceRepaint):
- (WebView::finishFirstLayoutForFrame):
- (tst_qrawwebview::doNoBackground1):
- (tst_qrawwebview::doNoBackground2):
- (tst_qrawwebview::doNoBackground3):
- (tst_qrawwebview::run):
- The test for QRawWebView has been updated to use the WebKit2 ForcePaint API prior to
- generating the pixel results. This has exposed a timing bug in the test - setting the
- transparentBackground property of a page has to be done before it's created. This has
- been fixed in the test.
-
- * WebProcess/WebPage/LayerTreeCoordinator/LayerTreeCoordinator.cpp:
- (WebKit::LayerTreeCoordinator::forceRepaint):
- (WebKit::LayerTreeCoordinator::performScheduledLayerFlush):
- (WebKit):
+ * UIProcess/API/efl/ewk_main.cpp:
+ (ewk_init):
+ (ewk_shutdown):
-2012-07-11 MORITA Hajime <morrita@google.com>
+2012-10-03 Kangil Han <kangil.han@samsung.com>
- WebCoreSupport needs objects each of which follows major WebCore objects
- https://bugs.webkit.org/show_bug.cgi?id=88499
+ Fix unused parameter compile warnings.
+ https://bugs.webkit.org/show_bug.cgi?id=98243
Reviewed by Alexey Proskuryakov.
- Added exporting symbols.
-
- * win/WebKit2.def:
- * win/WebKit2CFLite.def:
-
-2012-07-11 Sheriff Bot <webkit.review.bot@gmail.com>
-
- Unreviewed, rolling out r122318.
- http://trac.webkit.org/changeset/122318
- https://bugs.webkit.org/show_bug.cgi?id=90961
-
- It made 11 fast/events/touch fail (Requested by bbandix on
- #webkit).
-
- * UIProcess/API/qt/qquickwebview.cpp:
- * UIProcess/API/qt/qquickwebview_p.h:
-
-2012-07-11 Keunsoon Lee <keunsoon.lee@samsung.com>
-
- [EFL][Wk2] WebErrorsEfl.cpp needs to return non-empty errors
- https://bugs.webkit.org/show_bug.cgi?id=90688
-
- Reviewed by Hajime Morita.
-
- Return meaningful error for each case.
-
- * WebProcess/WebCoreSupport/efl/WebErrorsEfl.cpp:
- (WebKit::cancelledError): create ResourceError for "request canceled".
- (WebKit::blockedError): create ResourceError for "request blocked".
- (WebKit::cannotShowURLError): create ResourceError for "cannot show url".
- (WebKit::interruptedForPolicyChangeError): create ResourceError for "Frame load interrupted by policy change".
- (WebKit::cannotShowMIMETypeError): create ResourceError for "Cannot show mimetype".
- (WebKit::fileDoesNotExistError): create ResourceError for "File does not exist".
- (WebKit::pluginWillHandleLoadError): create ResourceError for "Plugin will handle load".
-
-2012-07-11 Andras Becsi <andras.becsi@nokia.com>
-
- [Qt][WK2] Fix wheel scrolling for simple pages
- https://bugs.webkit.org/show_bug.cgi?id=90793
-
- Reviewed by Kenneth Rohde Christiansen.
-
- Call WebPage::setFixedLayoutSize in setResizesToContentsUsingLayoutSize
- instead of setting the view size manually and scheduling a relayout.
- Since setFixedLayoutSize forces a relayout it also updates the scrollbars
- after the visible rect is available.
- This fixes scrolling with wheel events for a QML WebView loading a simple
- local page which previously ended up in a state where scrolling was disabled
- because the scrollbar update happened before the correct visible rect size was
- available.
-
- Add a QML test and infrastructure to QWebKitTest to cover this case.
-
- * UIProcess/API/qt/qwebkittest.cpp:
- (QWebKitTest::wheelEvent):
- * UIProcess/API/qt/qwebkittest_p.h:
- * UIProcess/API/qt/tests/qmltests/WebView/tst_wheelEventHandling.qml: Added.
- * UIProcess/API/qt/tests/qmltests/common/test4.html: Added.
- * WebProcess/WebPage/WebPage.cpp:
- (WebKit::WebPage::setResizesToContentsUsingLayoutSize):
-
-2012-07-11 Andras Becsi <andras.becsi@nokia.com>
-
- [Qt][WK2] ASSERT: "!m_viewportItem->isMoving()" in QtViewportHandler::flickMoveEnded()
- https://bugs.webkit.org/show_bug.cgi?id=90875
-
- Reviewed by Kenneth Rohde Christiansen.
-
- Since MultiPointTouchArea and PinchArea use the childMouseEventFilter
- method to filter touch events too, and because Flickable filters child
- mouse events the canvas calls this function before propagating the touch
- event to the WebView. Since Flickable does not accept touch events the
- canvas tries to propagate a synthesized mouse event through the base
- class childMouseEventFilter function which is accepted by Flickable and
- interferes with the input events we send to Flicakble hence messes up
- the internal state of the WebView.
- This patch reimplements the virtual childMouseEventFilter method so that all
- the mouse and touch events can be processed by WebKit before they arrive to
- Flickable.
-
- * UIProcess/API/qt/qquickwebview.cpp:
- (QQuickWebView::childMouseEventFilter):
- * UIProcess/API/qt/qquickwebview_p.h:
-
-2012-07-10 Christophe Dumez <christophe.dumez@intel.com>
-
- [WK2][EFL] Add Battery Status Provider
- https://bugs.webkit.org/show_bug.cgi?id=90543
-
- Reviewed by Kenneth Rohde Christiansen.
-
- Define a battery status provider for WebKit2 EFL which
- relies on WebCore::BatteryProviderEfl.
-
- * CMakeLists.txt: Add WebCore/Modules/battery to include
- paths.
- * PlatformEfl.cmake: Add BatteryProvider class to CMake.
- * UIProcess/API/efl/BatteryProvider.cpp: Added.
- (toBatteryProvider):
- (startUpdatingCallback):
- (stopUpdatingCallback):
- (BatteryProvider::~BatteryProvider):
- (BatteryProvider::create):
- (BatteryProvider::BatteryProvider):
- (BatteryProvider::startUpdating):
- (BatteryProvider::stopUpdating):
- (BatteryProvider::didChangeBatteryStatus):
- * UIProcess/API/efl/BatteryProvider.h: Added.
- (BatteryProvider):
- * UIProcess/API/efl/ewk_context.cpp:
- (_Ewk_Context): Add BatteryProvider to Ewk_Context.
- (createDefaultEwkContext):
- (ewk_context_default_get):
-
-2012-07-10 No'am Rosenthal <noam.rosenthal@nokia.com>
-
- [Qt] Enable antialiasing for TextureMapper
- https://bugs.webkit.org/show_bug.cgi?id=90915
-
- Reviewed by Martin Robinson.
-
- Enable the new antialiasing functionality for WebLayerTreeRendering.
- This will make one-tile layers antialiased when using UI_SIDE_COMPOSITING.
-
- * UIProcess/WebLayerTreeRenderer.cpp:
- (WebKit::WebLayerTreeRenderer::ensureRootLayer):
-
-2012-07-10 Adam Barth <abarth@webkit.org>
-
- WebCore::Settings for Hixie76 WebSocket protocol doesn't do anything and should be removed
- https://bugs.webkit.org/show_bug.cgi?id=90910
-
- Reviewed by Eric Seidel.
-
- * Shared/WebPreferencesStore.h:
- (WebKit):
- * UIProcess/API/C/WKPreferences.cpp:
- (WKPreferencesSetHixie76WebSocketProtocolEnabled):
- (WKPreferencesGetHixie76WebSocketProtocolEnabled):
- * WebProcess/InjectedBundle/InjectedBundle.cpp:
- (WebKit::InjectedBundle::overrideBoolPreferenceForTestRunner):
- * WebProcess/WebPage/WebPage.cpp:
- (WebKit::WebPage::updatePreferences):
-
-2012-07-10 Helder Correia <helder.correia@nokia.com>
-
- [Qt] Repaint counter for accelerated compositing
- https://bugs.webkit.org/show_bug.cgi?id=90116
-
- Reviewed by Noam Rosenthal.
-
- No new tests, just introducing a debug feature.
-
- For this feature to be enabled, the environment variable
- QT_WEBKIT_SHOW_COMPOSITING_DEBUG_VISUALS must be set to 1. Once enabled,
- both repaint counters and tile borders will be painted.
-
- Important notes:
- - Only WebKit2 is targetted for now.
- - There is no integration with Preferences. That aproach was
- taken initially but revealed complex and overkill for such a
- debugging-only functionality. Thus, to disable it simply restart with
- the environment variable unset or set to some other value.
-
- A Qt-specific drawRepaintCounter() function was added to
- TextureMapperGL. A QImage is used as scratch buffer to paint borders and
- counters. It is then uploaded to a BitmapTexture acquired from the pool
- and finally draw by TextureMapper. The actual compositing happens inside
- LayerBackingStore::paintToTextureMapper(). Each LayerBackingStoreTile
- now has a repaint counter which gets incremented in
- LayerBackingStore::updateTile().
-
- * UIProcess/texmap/LayerBackingStore.cpp:
- (WebKit::LayerBackingStore::updateTile):
- (WebKit):
- (WebKit::shouldShowTileDebugVisuals):
- (WebKit::LayerBackingStore::paintToTextureMapper):
- * UIProcess/texmap/LayerBackingStore.h:
- (WebKit::LayerBackingStoreTile::LayerBackingStoreTile):
- (LayerBackingStoreTile):
- (WebKit::LayerBackingStoreTile::incrementRepaintCount):
- (WebKit::LayerBackingStoreTile::repaintCount):
-
-2012-07-10 Sudarsana Nagineni <sudarsana.nagineni@linux.intel.com>
-
- [WK2] Add Vibration API support for WebKit2
- https://bugs.webkit.org/show_bug.cgi?id=90058
-
- Reviewed by Anders Carlsson.
-
- Add support for Vibration API to WebKit2.
-
- * CMakeLists.txt:
- * DerivedSources.pri:
- * GNUmakefile.list.am:
- * Platform/CoreIPC/MessageID.h:
- * Shared/API/c/WKBase.h:
- * Shared/APIObject.h:
- * Target.pri:
- * UIProcess/API/C/WKAPICast.h:
- (WebKit):
- * UIProcess/API/C/WKVibration.cpp: Added.
- (WKVibrationGetTypeID):
- (WKVibrationSetProvider):
- * UIProcess/API/C/WKVibration.h: Added.
- * UIProcess/WebVibrationProvider.cpp: Added.
- (WebKit):
- (WebKit::WebVibrationProvider::vibrate):
- (WebKit::WebVibrationProvider::cancelVibration):
- * UIProcess/WebVibrationProvider.h: Added.
- (WebKit):
- (WebVibrationProvider):
- * UIProcess/WebVibrationProxy.cpp: Added.
- (WebKit):
- (WebKit::WebVibrationProxy::create):
- (WebKit::WebVibrationProxy::WebVibrationProxy):
- (WebKit::WebVibrationProxy::~WebVibrationProxy):
- (WebKit::WebVibrationProxy::invalidate):
- (WebKit::WebVibrationProxy::initializeProvider):
- (WebKit::WebVibrationProxy::didReceiveMessage):
- (WebKit::WebVibrationProxy::vibrate):
- (WebKit::WebVibrationProxy::cancelVibration):
- * UIProcess/WebVibrationProxy.h: Added.
- (CoreIPC):
- (WebKit):
- (WebVibrationProxy):
- (WebKit::WebVibrationProxy::clearContext):
- (WebKit::WebVibrationProxy::type):
- * UIProcess/WebVibrationProxy.messages.in: Added.
- * WebProcess/WebCoreSupport/WebVibrationClient.cpp: Added.
- (WebKit):
- (WebKit::WebVibrationClient::vibrate):
- (WebKit::WebVibrationClient::cancelVibration):
- (WebKit::WebVibrationClient::vibrationDestroyed):
- * WebProcess/WebCoreSupport/WebVibrationClient.h: Added.
- (WebKit):
- (WebVibrationClient):
- (WebKit::WebVibrationClient::WebVibrationClient):
- (WebKit::WebVibrationClient::~WebVibrationClient):
-
-2012-07-10 Carlos Garcia Campos <cgarcia@igalia.com>
-
- [GTK] Add API to clear the cache to WebKit2 GTK+
- https://bugs.webkit.org/show_bug.cgi?id=90856
-
- Reviewed by Martin Robinson.
-
- * UIProcess/API/gtk/WebKitWebContext.cpp:
- (webkit_web_context_clear_cache): Call
- WKResourceCacheManagerClearCacheForAllOrigins() to clear all
- resources currently cached.
- * UIProcess/API/gtk/WebKitWebContext.h:
- * UIProcess/API/gtk/docs/webkit2gtk-sections.txt: Add new symbol.
-
-2012-07-10 Sheriff Bot <webkit.review.bot@gmail.com>
-
- Unreviewed, rolling out r122178.
- http://trac.webkit.org/changeset/122178
- https://bugs.webkit.org/show_bug.cgi?id=90857
-
- browser tests, PrerenderBrowserTest.PrerenderFavicon and other
- tests, started to fail (Requested by hayato on #webkit).
-
- * win/WebKit2.def:
-
-2012-07-09 Matt Falkenhagen <falken@chromium.org>
-
- Add ENABLE_DIALOG_ELEMENT and skeleton files
- https://bugs.webkit.org/show_bug.cgi?id=90521
-
- Reviewed by Kent Tamura.
-
- * Configurations/FeatureDefines.xcconfig:
-
-2012-07-09 Pete Williamson <petewil@google.com>
-
- Export the iconURL list to make it available to the Internals class for testing
- https://bugs.webkit.org/show_bug.cgi?id=88665
-
- Reviewed by Kent Tamura.
-
- * win/WebKit2.def: export the DocumentL::iconURLs function
-
-2012-07-09 Christophe Dumez <christophe.dumez@intel.com>
-
- [WK2] Add missing Battery Status API integration to WebContext and WebPage
- https://bugs.webkit.org/show_bug.cgi?id=90784
-
- Reviewed by Anders Carlsson.
-
- Integrate Battery Status API to WebPage, WebContext and
- properly route messages to the WebBatteryManagerProxy.
- Without this, the Battery Status tests are crashing for
- WebKit2.
-
- * UIProcess/API/C/WKContext.cpp:
- (WKContextGetBatteryManager):
- * UIProcess/API/C/WKContext.h:
- * UIProcess/WebContext.cpp:
- (WebKit::WebContext::WebContext):
- (WebKit::WebContext::~WebContext):
- (WebKit::WebContext::disconnectProcess):
- (WebKit::WebContext::didReceiveMessage):
- * UIProcess/WebContext.h:
- (WebKit):
- (WebContext):
- (WebKit::WebContext::batteryManagerProxy):
- * UIProcess/WebProcessProxy.cpp:
- (WebKit::WebProcessProxy::didReceiveMessage):
- * WebProcess/WebCoreSupport/WebBatteryClient.cpp:
- (WebKit::WebBatteryClient::setController):
- (WebKit):
- * WebProcess/WebCoreSupport/WebBatteryClient.h:
- (WebBatteryClient):
- * WebProcess/WebPage/WebPage.cpp:
- (WebKit::WebPage::WebPage):
-
-2012-07-09 Sudarsana Nagineni <sudarsana.nagineni@linux.intel.com>
-
- [EFL] [WK2] ASSERTION FAILED: !HashTranslator::equal(KeyTraits::emptyValue(), key)
- https://bugs.webkit.org/show_bug.cgi?id=90464
-
- Reviewed by Daniel Bates.
-
- HashMap has the property that 0 is the empty value for integer
- keys, so do not use 0 as a key in the HashMap.
-
- * Platform/efl/WorkQueueEfl.cpp:
- (WorkQueue::dispatchAfterDelay):
-
-2012-07-09 Carlos Garcia Campos <cgarcia@igalia.com>
-
- [GTK] Add a setting to enable/disable page cache to WebKit2 GTK+ API
- https://bugs.webkit.org/show_bug.cgi?id=90773
-
- Reviewed by Martin Robinson.
-
- * UIProcess/API/gtk/WebKitSettings.cpp:
- (webKitSettingsSetProperty):
- (webKitSettingsGetProperty):
- (webkit_settings_class_init):
- (webkit_settings_get_enable_page_cache):
- (webkit_settings_set_enable_page_cache):
- * UIProcess/API/gtk/WebKitSettings.h:
- * UIProcess/API/gtk/docs/webkit2gtk-sections.txt:
- * UIProcess/API/gtk/tests/TestWebKitSettings.cpp:
- (testWebKitSettings):
-
-2012-07-09 Sheriff Bot <webkit.review.bot@gmail.com>
-
- Unreviewed, rolling out r122107.
- http://trac.webkit.org/changeset/122107
- https://bugs.webkit.org/show_bug.cgi?id=90794
-
- Build failure on Mac debug bots (Requested by falken_ on
- #webkit).
-
- * Configurations/FeatureDefines.xcconfig:
-
-2012-07-09 Carlos Garcia Campos <cgarcia@igalia.com>
-
- [GTK] Fix inspector detach when inspector was attached by the client
- https://bugs.webkit.org/show_bug.cgi?id=90763
-
- Reviewed by Martin Robinson.
-
- When the inspector is detached, we are unconditionally removing it
- from the inspected view, but if the inspector was attached by the
- client, the parent might be another widget.
-
- * UIProcess/gtk/WebInspectorProxyGtk.cpp:
- (WebKit::WebInspectorProxy::platformDetach): Remove the inspector
- view from its parent widget.
-
-2012-07-09 Matt Falkenhagen <falken@chromium.org>
-
- Add ENABLE_DIALOG_ELEMENT and skeleton files
- https://bugs.webkit.org/show_bug.cgi?id=90521
-
- Reviewed by Kent Tamura.
-
- * Configurations/FeatureDefines.xcconfig:
-
-2012-07-09 Dan Bernstein <mitz@apple.com>
-
- Fix the Mac build when codesign_allocate is not installed at /usr/bin.
-
- * PluginProcess/mac/add-entitlements.sh: Let codesign(1) know where the codesign_allocate
- tool is by setting the CODESIGN_ALLOCATE environment variable to its path as obtained with
- xcrun.
-
-2012-07-06 Christophe Dumez <christophe.dumez@intel.com>
-
- [WK2] Add support for Network Information API
- https://bugs.webkit.org/show_bug.cgi?id=89870
-
- Reviewed by Anders Carlsson.
-
- Add Network Information API support for WebKit2.
-
- * CMakeLists.txt:
- * DerivedSources.pri:
- * GNUmakefile.am:
- * GNUmakefile.list.am:
- * Platform/CoreIPC/MessageID.h:
- * Shared/API/c/WKBase.h:
- * Shared/APIObject.h:
- * Shared/WebNetworkInfo.cpp: Added.
- (WebKit):
- (WebKit::WebNetworkInfo::WebNetworkInfo):
- (WebKit::WebNetworkInfo::~WebNetworkInfo):
- (WebKit::WebNetworkInfo::Data::encode):
- (WebKit::WebNetworkInfo::Data::decode):
- * Shared/WebNetworkInfo.h: Added.
- (WebKit):
- (WebNetworkInfo):
- (Data):
- (WebKit::WebNetworkInfo::create):
- (WebKit::WebNetworkInfo::bandwidth):
- (WebKit::WebNetworkInfo::metered):
- (WebKit::WebNetworkInfo::data):
- (WebKit::WebNetworkInfo::type):
- * Target.pri:
- * UIProcess/API/C/WKAPICast.h:
- (WebKit):
- * UIProcess/API/C/WKNetworkInfoManager.cpp: Added.
- (WKNetworkInfoManagerGetTypeID):
- * UIProcess/API/C/WKNetworkInfoManager.h: Added.
- * UIProcess/WebNetworkInfoManagerProxy.cpp: Added.
- (WebKit):
- (WebKit::WebNetworkInfoManagerProxy::create):
- (WebKit::WebNetworkInfoManagerProxy::WebNetworkInfoManagerProxy):
- (WebKit::WebNetworkInfoManagerProxy::~WebNetworkInfoManagerProxy):
- (WebKit::WebNetworkInfoManagerProxy::invalidate):
- (WebKit::WebNetworkInfoManagerProxy::initializeProvider):
- (WebKit::WebNetworkInfoManagerProxy::providerDidChangeNetworkInformation):
- (WebKit::WebNetworkInfoManagerProxy::didReceiveMessage):
- (WebKit::WebNetworkInfoManagerProxy::startUpdating):
- (WebKit::WebNetworkInfoManagerProxy::stopUpdating):
- (WebKit::WebNetworkInfoManagerProxy::getBandwidth):
- (WebKit::WebNetworkInfoManagerProxy::isMetered):
- * UIProcess/WebNetworkInfoManagerProxy.h: Added.
- (CoreIPC):
- (WebKit):
- (WebNetworkInfoManagerProxy):
- (WebKit::WebNetworkInfoManagerProxy::clearContext):
- (WebKit::WebNetworkInfoManagerProxy::type):
- * UIProcess/WebNetworkInfoManagerProxy.messages.in: Added.
- * UIProcess/WebNetworkInfoProvider.cpp: Added.
- (WebKit):
- (WebKit::WebNetworkInfoProvider::startUpdating):
- (WebKit::WebNetworkInfoProvider::stopUpdating):
- (WebKit::WebNetworkInfoProvider::bandwidth):
- (WebKit::WebNetworkInfoProvider::metered):
- * UIProcess/WebNetworkInfoProvider.h: Added.
- (WebKit):
- (WebNetworkInfoProvider):
- * WebKit2.pri:
- * WebProcess/NetworkInfo/WebNetworkInfoManager.cpp: Added.
- (WebKit):
- (WebKit::WebNetworkInfoManager::WebNetworkInfoManager):
- (WebKit::WebNetworkInfoManager::~WebNetworkInfoManager):
- (WebKit::WebNetworkInfoManager::didReceiveMessage):
- (WebKit::WebNetworkInfoManager::registerWebPage):
- (WebKit::WebNetworkInfoManager::unregisterWebPage):
- (WebKit::WebNetworkInfoManager::bandwidth):
- (WebKit::WebNetworkInfoManager::metered):
- (WebKit::WebNetworkInfoManager::didChangeNetworkInformation):
- * WebProcess/NetworkInfo/WebNetworkInfoManager.h: Added.
- (CoreIPC):
- (WebKit):
- (WebNetworkInfoManager):
- * WebProcess/NetworkInfo/WebNetworkInfoManager.messages.in: Added.
- * WebProcess/WebCoreSupport/WebNetworkInfoClient.cpp: Added.
- (WebKit):
- (WebKit::WebNetworkInfoClient::~WebNetworkInfoClient):
- (WebKit::WebNetworkInfoClient::bandwidth):
- (WebKit::WebNetworkInfoClient::metered):
- (WebKit::WebNetworkInfoClient::startUpdating):
- (WebKit::WebNetworkInfoClient::stopUpdating):
- * WebProcess/WebCoreSupport/WebNetworkInfoClient.h: Added.
- (WebKit):
- (WebNetworkInfoClient):
- (WebKit::WebNetworkInfoClient::WebNetworkInfoClient):
- * WebProcess/WebProcess.cpp:
- (WebKit::WebProcess::WebProcess):
- (WebKit::WebProcess::didReceiveMessage):
- * WebProcess/WebProcess.h:
- (WebProcess):
- (WebKit::WebProcess::networkInfoManager):
-
-2012-07-06 Jessie Berlin <jberlin@apple.com>
-
- WKContext should ask for its injected bundle initialization user data when it needs it so the
- client doesn't have to keep it up to date.
- https://bugs.webkit.org/show_bug.cgi?id=90627
-
- Reviewed by Anders Carlsson.
-
- Add a getInjectedBundleInitializationUserData callback to WKContextInjectedBundleClient.
-
- * Shared/APIClientTraits.cpp:
- Allow the WKContextInjectedBundleClient API to be versioned.
- * Shared/APIClientTraits.h:
-
- * UIProcess/API/C/WKContext.h:
- Add the callback and bump the version of WKContextInjectedBundleClient.
-
- * UIProcess/WebContext.cpp:
- (WebKit::WebContext::ensureWebProcess):
- Prefer any user data returned when the callback is invoked over that set with
- WKContextSetInitializationUserDataForInjectedBundle.
-
- * UIProcess/WebContextInjectedBundleClient.cpp:
- (WebKit::WebContextInjectedBundleClient::getInjectedBundleInitializationUserData):
- Invoke the callback if the client has registered for it.
- * UIProcess/WebContextInjectedBundleClient.h:
-
-2012-07-06 Jessie Berlin <jberlin@apple.com>
+ Fixed unused parameter compile warnings by removing parameter names, adding UNUSED_PARAM usage and commenting out.
- WebContext::injectedBundleInitializationUserData() is unused, should be removed
- https://bugs.webkit.org/show_bug.cgi?id=90486
-
- Reviewed by Anders Carlsson.
-
- * UIProcess/WebContext.h:
- Remove it.
-
-2012-07-06 Carlos Garcia Campos <cgarcia@igalia.com>
-
- [GTK] Add site specific quirks setting to WebKit2 GTK+ API
- https://bugs.webkit.org/show_bug.cgi?id=90663
-
- Reviewed by Martin Robinson.
-
- * UIProcess/API/gtk/WebKitSettings.cpp:
- (webKitSettingsSetProperty):
- (webKitSettingsGetProperty):
- (webkit_settings_class_init):
- (webkit_settings_get_enable_site_specific_quirks):
- (webkit_settings_set_enable_site_specific_quirks):
- * UIProcess/API/gtk/WebKitSettings.h:
- * UIProcess/API/gtk/docs/webkit2gtk-sections.txt:
- * UIProcess/API/gtk/tests/TestWebKitSettings.cpp:
- (testWebKitSettings):
+ * PluginProcess/WebProcessConnection.cpp:
+ (WebKit::WebProcessConnection::createPluginInternal):
+ * PluginProcess/unix/PluginProcessUnix.cpp:
+ (WebKit::PluginProcess::platformInitialize):
+ * WebProcess/Plugins/Netscape/JSNPObject.cpp:
+ (WebKit::JSNPObject::getOwnPropertyNames):
+ * WebProcess/Plugins/Netscape/NetscapeBrowserFuncs.cpp:
+ (WebKit::NPN_RequestRead):
+ (WebKit::NPN_NewStream):
+ (WebKit::NPN_Write):
+ (WebKit::NPN_MemFlush):
+ (WebKit::NPN_ReloadPlugins):
+ (WebKit::NPN_GetJavaPeer):
+ (WebKit::NPN_InvalidateRegion):
+ (WebKit::NPN_ForceRedraw):
+ * WebProcess/Plugins/Netscape/NetscapePlugin.cpp:
+ (WebKit::NetscapePlugin::contentsScaleFactorChanged):
+ * WebProcess/Plugins/Netscape/x11/NetscapePluginX11.cpp:
+ (WebKit::NetscapePlugin::platformPostInitializeWindowed):
+ * WebProcess/Plugins/PluginProxy.cpp:
+ (WebKit::PluginProxy::contentsScaleFactorChanged):
-2012-07-06 Dominik Röttsches <dominik.rottsches@intel.com>
+2012-10-03 Anders Carlsson <andersca@apple.com>
- ProcessLauncher's WorkQueue's name is too long on Windows
- https://bugs.webkit.org/show_bug.cgi?id=44041
+ Plugins are killed after 45 seconds if showing keychain "Allow/Deny" dialog
+ https://bugs.webkit.org/show_bug.cgi?id=85138
+ <rdar://problem/11406430>
Reviewed by Andreas Kling.
- Shorten thread name for process launcher so that we can silence the warning
- for thread names getting truncated under VisualStudio -
- see createThread() in Threading.cpp.
-
- * UIProcess/Launcher/ProcessLauncher.cpp:
- (WebKit::processLauncherWorkQueue):
-
-2012-07-06 Christophe Dumez <christophe.dumez@intel.com>
-
- [EFL] WebKit-EFL headers do not build with gcc < 4.6
- https://bugs.webkit.org/show_bug.cgi?id=90681
-
- Unreviewed EFL build fix.
-
- Remove several forward declarations from ewk_view
- header to avoid typedef redefinitions which are
- illegal in C.
-
- * UIProcess/API/efl/ewk_view.h:
-
-2012-07-06 Csaba Osztrogonác <ossy@webkit.org>
-
- [Qt] Buildfix for newer Qt5
- https://bugs.webkit.org/show_bug.cgi?id=90519
-
- Reviewed by Tor Arne Vestbø.
-
- * UIProcess/API/qt/qwebkittest.cpp: Include qpa/qwindowsysteminterface.h instead of deprecated qwindowsysteminterface_qpa.h.
-
-2012-07-06 Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
-
- [Qt] Adjust to changed generation of master include file
-
- The responsiblity for creating the master include was moved out of syncqt.
- @ignore_for_master_contents still stays, as syncqt (ab-)uses this for
- determining whether a header is private.
-
- https://bugs.webkit.org/show_bug.cgi?id=90461
-
- Reviewed by Tor Arne Vestbø.
-
- * UIProcess/API/qt/tests/bytearraytestdata.h:
- * UIProcess/API/qt/tests/testwindow.h:
-
-2012-07-05 Christophe Dumez <christophe.dumez@intel.com>
-
- [WK2][EFL] Ewk_View needs to report load status changes
- https://bugs.webkit.org/show_bug.cgi?id=90566
-
- Reviewed by Kenneth Rohde Christiansen.
-
- Add new "load,finished", "load,provisional,failed",
- "load,provisional,redirect" and "load,provisional,started"
- signals on the Ewk_View to notify the client of different
- load state changes.
-
- * UIProcess/API/efl/ewk_view.cpp:
- (ewk_view_load_finished):
- (ewk_view_load_provisional_failed):
- (ewk_view_load_provisional_redirect):
- (ewk_view_load_provisional_started):
- * UIProcess/API/efl/ewk_view.h:
- * UIProcess/API/efl/ewk_view_loader_client.cpp:
- (didFinishLoadForFrame):
- (didFailLoadWithErrorForFrame):
- (didStartProvisionalLoadForFrame):
- (didReceiveServerRedirectForProvisionalLoadForFrame):
- (didFailProvisionalLoadWithErrorForFrame):
- (ewk_view_loader_client_attach):
- * UIProcess/API/efl/ewk_view_private.h:
-
-2012-07-05 Luiz Agostini <luiz.agostini@nokia.com>
-
- [Qt] Transform should be applied to the clip rect in QRawWebView::paint
- https://bugs.webkit.org/show_bug.cgi?id=90652
-
- Reviewed by Kenneth Rohde Christiansen.
-
- Applying the transformation matrix to the clip rect in QRawWebView::paint.
-
- * UIProcess/API/qt/raw/qrawwebview.cpp:
- (QRawWebView::paint):
-
-2012-07-05 Christophe Dumez <christophe.dumez@intel.com>
-
- [WK2][EFL] Ewk_View should provide API to set/get device pixel ratio
- https://bugs.webkit.org/show_bug.cgi?id=90590
-
- Reviewed by Kenneth Rohde Christiansen.
-
- Add API to Ewk_View so retrieve and set the device
- pixel ratio.
-
- * UIProcess/API/efl/ewk_view.cpp:
- (ewk_view_device_pixel_ratio_set):
- (ewk_view_device_pixel_ratio_get):
- * UIProcess/API/efl/ewk_view.h:
-
-2012-07-05 Anders Carlsson <andersca@apple.com>
-
- Type-ahead doesn't work in options inside optgroups
- https://bugs.webkit.org/show_bug.cgi?id=90647
- <rdar://problem/5604894>
-
- Reviewed by Dan Bernstein.
-
- Set the title of the menu item to a string that doesn't contain any leading or trailing whitespace.
-
- * UIProcess/mac/WebPopupMenuProxyMac.mm:
- (WebKit::WebPopupMenuProxyMac::populate):
-
-2012-07-05 Christophe Dumez <christophe.dumez@intel.com>
-
- [WK2] Add C API for Battery Status API
- https://bugs.webkit.org/show_bug.cgi?id=90545
+ Remove the watchdog that would kill a plug-in if we've been waiting for a sync reply from it for more than 45 seconds.
+ It's unlikely that someone is going to wait 45 seconds for Safari to recover from a plug-in hang, and the timeout is
+ causing problems with plug-ins (see the bugzilla bug for more information).
- Reviewed by Anders Carlsson.
-
- Add C API for WKBatteryManager and WKBatteryStatus
- so that clients can support the Battery Status API
- in WebKit2.
-
- * CMakeLists.txt:
- * GNUmakefile.list.am:
- * Target.pri:
- * UIProcess/API/C/WKBatteryManager.cpp:
- (WKBatteryManagerProviderDidChangeBatteryStatus):
- (WKBatteryManagerProviderUpdateBatteryStatus):
- * UIProcess/API/C/WKBatteryStatus.cpp: Copied from Source/WebKit2/UIProcess/API/C/WKBatteryManager.cpp.
- (WKBatteryStatusGetTypeID):
- (WKBatteryStatusCreate):
- * UIProcess/API/C/WKBatteryStatus.h: Copied from Source/WebKit2/UIProcess/API/C/WKBatteryManager.cpp.
-
-2012-07-05 Sheriff Bot <webkit.review.bot@gmail.com>
-
- Unreviewed, rolling out r121899.
- http://trac.webkit.org/changeset/121899
- https://bugs.webkit.org/show_bug.cgi?id=90623
-
- Unauthorized WK2 API breakage (Requested by andersca on
- #webkit).
-
- * Shared/API/c/WKSharedAPICast.h:
- (WebKit::toCopiedURLAPI):
-
-2012-07-05 Balazs Kelemen <kbalazs@webkit.org>
-
- [Qt] WTR crashes if a URL is passed as a parameter
- https://bugs.webkit.org/show_bug.cgi?id=88093
-
- Reviewed by Zoltan Herczeg.
-
- * Shared/API/c/WKSharedAPICast.h:
- (WebKit::toCopiedURLAPI):
- Don't special case null string. It's handled
- fine by WebURL and passing 0 is not suitable
- to the API.
-
-2012-07-05 Dongwoo Im <dw.im@samsung.com>
-
- [EFL] Enable the CUSTOM_SCHEME_HANDLER feature as default.
- https://bugs.webkit.org/show_bug.cgi?id=88608
-
- Reviewed by Hajime Morita.
-
- * WebProcess/WebCoreSupport/WebChromeClient.h:
- (WebKit::WebChromeClient::isProtocolHandlerRegistered): Add a stub function.
- (WebKit::WebChromeClient::unregisterProtocolHandler): Add a stub function.
- (WebChromeClient):
-
-2012-07-05 Ryuan Choi <ryuan.choi@samsung.com>
-
- [Wk2][EFL] EFL needs a WebKitTestRunner
- https://bugs.webkit.org/show_bug.cgi?id=87659
-
- Reviewed by Kenneth Rohde Christiansen.
-
- * PlatformEfl.cmake: Added WKImageCairo.cpp in source list.
-
-2012-07-05 Hyerim Bae <hyerim.bae@samsung.com>
-
- [EFL][WK2] Add ewk_view_reload_bypass_cache API.
- https://bugs.webkit.org/show_bug.cgi?id=89413
-
- Reviewed by Kenneth Rohde Christiansen.
-
- Add API, which is for reloading documents without cache.
-
- * UIProcess/API/efl/ewk_view.cpp:
- (ewk_view_reload_bypass_cache):
- * UIProcess/API/efl/ewk_view.h:
-
-2012-07-05 Christophe Dumez <christophe.dumez@intel.com>
-
- [WK2][EFL] Ewk_View needs API to load HTML data
- https://bugs.webkit.org/show_bug.cgi?id=90540
-
- Reviewed by Kenneth Rohde Christiansen.
-
- Add method to Ewk_View to load provided HTML data.
- This is used for e.g. when an URL cannot be reached
- and we need to display an error page.
-
- * UIProcess/API/efl/ewk_view.cpp:
- (ewk_view_html_load):
- * UIProcess/API/efl/ewk_view.h:
-
-2012-07-05 Christophe Dumez <christophe.dumez@intel.com>
-
- [WK2][EFL] Ewk_View needs to report new resource requests
- https://bugs.webkit.org/show_bug.cgi?id=90577
-
- Reviewed by Kenneth Rohde Christiansen.
-
- Add new "resource,request,new" signal to Ewk_View to
- notify clients of the resource requests being initiated.
- New Ewk_Url_Request and Ewk_Web_Resource types are
- introduced in order to provide the clients with the
- needed information regarding the resource requests.
-
- * PlatformEfl.cmake:
- * UIProcess/API/efl/EWebKit2.h:
- * UIProcess/API/efl/ewk_url_request.cpp: Added.
- (_Ewk_Url_Request):
- (ewk_url_request_ref):
- (ewk_url_request_unref):
- (ewk_url_request_url_get):
- (ewk_request_first_party_get):
- (ewk_url_request_http_method_get):
- (ewk_url_request_new):
- * UIProcess/API/efl/ewk_url_request.h: Added.
- * UIProcess/API/efl/ewk_url_request_private.h: Added.
- * UIProcess/API/efl/ewk_view.cpp:
- (ewk_view_base_add):
- (ewk_view_resource_load_initiated):
- * UIProcess/API/efl/ewk_view.h:
- * UIProcess/API/efl/ewk_view_private.h:
- * UIProcess/API/efl/ewk_view_resource_load_client.cpp: Added.
- (didInitiateLoadForResource):
- (ewk_view_resource_load_client_attach):
- * UIProcess/API/efl/ewk_view_resource_load_client_private.h: Added.
- * UIProcess/API/efl/ewk_web_resource.cpp: Added.
- (_Ewk_Web_Resource):
- (ewk_web_resource_ref):
- (ewk_web_resource_unref):
- (ewk_web_resource_uri_get):
- (ewk_web_resource_new):
- (ewk_web_resource_main_get):
- * UIProcess/API/efl/ewk_web_resource.h: Added.
- * UIProcess/API/efl/ewk_web_resource_private.h: Added.
-
-2012-07-04 John Mellor <johnme@chromium.org>
-
- Text Autosizing: Add compile flag and runtime setting
- https://bugs.webkit.org/show_bug.cgi?id=87394
-
- This patch renames Font Boosting to Text Autosizing.
-
- Reviewed by Adam Barth.
-
- * Configurations/FeatureDefines.xcconfig:
-
-2012-07-04 Christophe Dumez <christophe.dumez@intel.com>
-
- [EFL][WK2] Ewk_View should report load errors
- https://bugs.webkit.org/show_bug.cgi?id=90479
-
- Reviewed by Kenneth Rohde Christiansen.
-
- The Ewk_View now emits a "load,error" signal when the
- main frame fails loading. Information about the error
- is provided via the new Ewk_Web_Error type.
-
- * PlatformEfl.cmake:
- * UIProcess/API/efl/EWebKit2.h:
- * UIProcess/API/efl/ewk_view.cpp:
- (ewk_view_load_error):
- * UIProcess/API/efl/ewk_view.h:
- * UIProcess/API/efl/ewk_view_loader_client.cpp:
- (didFailLoadWithErrorForFrame):
- (ewk_view_loader_client_attach):
- * UIProcess/API/efl/ewk_view_private.h:
- * UIProcess/API/efl/ewk_web_error.cpp: Added.
- (_Ewk_Web_Error):
- (ewk_web_error_free):
- (ewk_web_error_domain_get):
- (ewk_web_error_url_get):
- (ewk_web_error_code_get):
- (ewk_web_error_description_get):
- (ewk_web_error_cancellation_get):
- (ewk_web_error_new):
- * UIProcess/API/efl/ewk_web_error.h: Added.
- * UIProcess/API/efl/ewk_web_error_private.h: Added.
-
-2012-07-03 Christophe Dumez <christophe.dumez@intel.com>
-
- [WK2][EFL] Ewk_View should report the load progress
- https://bugs.webkit.org/show_bug.cgi?id=90457
-
- Reviewed by Kenneth Rohde Christiansen.
-
- The Ewk_View now reports the estimated load progress
- of the page via the new "load,progress".
- A method is also added to Ewk_View in order to
- retrieve the current load progress.
-
- * UIProcess/API/efl/ewk_view.cpp:
- (ewk_view_load_progress_get):
- (ewk_view_load_progress_changed):
- * UIProcess/API/efl/ewk_view.h:
- * UIProcess/API/efl/ewk_view_loader_client.cpp:
- (didChangeProgress):
- (ewk_view_loader_client_attach):
- * UIProcess/API/efl/ewk_view_private.h:
-
-2012-07-03 Christophe Dumez <christophe.dumez@intel.com>
-
- [WK2] Add support for Battery Status API
- https://bugs.webkit.org/show_bug.cgi?id=89558
-
- Reviewed by Anders Carlsson.
-
- Add support for Battery Status API to WebKit2.
-
- * CMakeLists.txt:
- * DerivedSources.pri:
- * GNUmakefile.am:
- * GNUmakefile.list.am:
- * Platform/CoreIPC/MessageID.h:
- * Shared/API/c/WKBase.h:
- * Shared/APIObject.h:
- * Shared/WebBatteryStatus.cpp: Added.
- (WebKit):
- (WebKit::WebBatteryStatus::WebBatteryStatus):
- (WebKit::WebBatteryStatus::~WebBatteryStatus):
- (WebKit::WebBatteryStatus::Data::encode):
- (WebKit::WebBatteryStatus::Data::decode):
- * Shared/WebBatteryStatus.h: Added.
- (WebKit):
- (WebBatteryStatus):
- (Data):
- (WebKit::WebBatteryStatus::create):
- (WebKit::WebBatteryStatus::isCharging):
- (WebKit::WebBatteryStatus::chargingTime):
- (WebKit::WebBatteryStatus::dischargingTime):
- (WebKit::WebBatteryStatus::level):
- (WebKit::WebBatteryStatus::data):
- (WebKit::WebBatteryStatus::type):
- * Target.pri:
- * UIProcess/API/C/WKAPICast.h:
- (WebKit):
- * UIProcess/API/C/WKBatteryManager.cpp: Added.
- (WKBatteryManagerGetTypeID):
- * UIProcess/API/C/WKBatteryManager.h: Added.
- * UIProcess/WebBatteryManagerProxy.cpp: Added.
- (WebKit):
- (WebKit::WebBatteryManagerProxy::create):
- (WebKit::WebBatteryManagerProxy::WebBatteryManagerProxy):
- (WebKit::WebBatteryManagerProxy::~WebBatteryManagerProxy):
- (WebKit::WebBatteryManagerProxy::invalidate):
- (WebKit::WebBatteryManagerProxy::initializeProvider):
- (WebKit::WebBatteryManagerProxy::didReceiveMessage):
- (WebKit::WebBatteryManagerProxy::startUpdating):
- (WebKit::WebBatteryManagerProxy::stopUpdating):
- (WebKit::WebBatteryManagerProxy::providerDidChangeBatteryStatus):
- (WebKit::WebBatteryManagerProxy::providerUpdateBatteryStatus):
- * UIProcess/WebBatteryManagerProxy.h: Added.
- (CoreIPC):
- (WebKit):
- (WebBatteryManagerProxy):
- (WebKit::WebBatteryManagerProxy::clearContext):
- (WebKit::WebBatteryManagerProxy::type):
- * UIProcess/WebBatteryManagerProxy.messages.in: Added.
- * UIProcess/WebBatteryProvider.cpp: Added.
- (WebKit):
- (WebKit::WebBatteryProvider::startUpdating):
- (WebKit::WebBatteryProvider::stopUpdating):
- * UIProcess/WebBatteryProvider.h: Added.
- (WebKit):
- (WebBatteryProvider):
- * WebKit2.pri:
- * WebProcess/Battery/WebBatteryManager.cpp: Added.
- (WebKit):
- (WebKit::WebBatteryManager::WebBatteryManager):
- (WebKit::WebBatteryManager::~WebBatteryManager):
- (WebKit::WebBatteryManager::didReceiveMessage):
- (WebKit::WebBatteryManager::registerWebPage):
- (WebKit::WebBatteryManager::unregisterWebPage):
- (WebKit::WebBatteryManager::didChangeBatteryStatus):
- (WebKit::WebBatteryManager::updateBatteryStatus):
- * WebProcess/Battery/WebBatteryManager.h: Added.
- (CoreIPC):
- (WebKit):
- (WebBatteryManager):
- * WebProcess/Battery/WebBatteryManager.messages.in: Added.
- * WebProcess/WebCoreSupport/WebBatteryClient.cpp: Added.
- (WebKit):
- (WebKit::WebBatteryClient::startUpdating):
- (WebKit::WebBatteryClient::stopUpdating):
- (WebKit::WebBatteryClient::batteryControllerDestroyed):
- * WebProcess/WebCoreSupport/WebBatteryClient.h: Added.
- (WebKit):
- (WebBatteryClient):
- (WebKit::WebBatteryClient::WebBatteryClient):
- (WebKit::WebBatteryClient::~WebBatteryClient):
+ * Platform/CoreIPC/Connection.cpp:
+ (CoreIPC::Connection::Connection):
+ (CoreIPC::Connection::waitForSyncReply):
+ * Platform/CoreIPC/Connection.h:
+ (Client):
+ (Connection):
+ * PluginProcess/PluginProcess.cpp:
+ * PluginProcess/PluginProcess.h:
+ (PluginProcess):
+ * PluginProcess/WebProcessConnection.cpp:
+ * PluginProcess/WebProcessConnection.h:
+ (WebProcessConnection):
+ * Shared/WebProcessCreationParameters.cpp:
+ (WebKit::WebProcessCreationParameters::encode):
+ (WebKit::WebProcessCreationParameters::decode):
+ * Shared/WebProcessCreationParameters.h:
+ (WebProcessCreationParameters):
+ * UIProcess/Plugins/PluginProcessManager.cpp:
+ * UIProcess/Plugins/PluginProcessManager.h:
+ (PluginProcessManager):
+ * UIProcess/Plugins/PluginProcessProxy.cpp:
+ * UIProcess/Plugins/PluginProcessProxy.h:
+ (PluginProcessProxy):
+ * UIProcess/WebConnectionToWebProcess.cpp:
+ * UIProcess/WebConnectionToWebProcess.h:
+ (WebConnectionToWebProcess):
+ * UIProcess/WebProcessProxy.cpp:
+ * UIProcess/WebProcessProxy.h:
+ (WebProcessProxy):
+ * UIProcess/WebProcessProxy.messages.in:
+ * UIProcess/mac/WebContextMac.mm:
+ (WebKit::WebContext::platformInitializeWebProcess):
+ * WebProcess/Plugins/PluginProcessConnection.cpp:
+ (WebKit::PluginProcessConnection::PluginProcessConnection):
+ * WebProcess/Plugins/PluginProcessConnection.h:
+ (PluginProcessConnection):
+ * WebProcess/WebConnectionToUIProcess.cpp:
+ * WebProcess/WebConnectionToUIProcess.h:
+ (WebConnectionToUIProcess):
+ * WebProcess/WebCoreSupport/WebChromeClient.cpp:
+ (WebKit::WebChromeClient::runJavaScriptAlert):
+ (WebKit::WebChromeClient::runJavaScriptConfirm):
+ (WebKit::WebChromeClient::runJavaScriptPrompt):
* WebProcess/WebProcess.cpp:
(WebKit::WebProcess::WebProcess):
- (WebKit::WebProcess::didReceiveMessage):
+ (WebKit::WebProcess::initializeWebProcess):
* WebProcess/WebProcess.h:
(WebProcess):
- (WebKit::WebProcess::batteryManager):
-
-2012-07-03 Tor Arne Vestbø <tor.arne.vestbo@nokia.com>
-
- [Qt] Make use of .qmake.cache for caching features
-
- Instead of loading() features from the files that need them (and re-running
- a bunch of checks), we now run feature detection as part of configure.pro,
- and have build-webkit write the computed feature-defines and CONFIG to
- .qmake.cache, which is then loaded by qmake _before_ even defaults_pre
- when building WebKit.pro.
-
- At some point we'll be able to selectivly prevent running of config tests
- in configure.pro, which means we don't need a separate code-path for
- the build-webkit --help case.
-
- We should also move the code in build-webkit that now uses .webkit.config
- to detect clean builds, to use .qmake.cache, since we now store the same
- thing there.
-
- Original patch by Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
-
- Reviewed by Tor Arne Vestbø.
-
- * DerivedSources.pri:
- * Target.pri:
-
-2012-07-03 Sheriff Bot <webkit.review.bot@gmail.com>
-
- Unreviewed, rolling out r121766.
- http://trac.webkit.org/changeset/121766
- https://bugs.webkit.org/show_bug.cgi?id=90465
-
- It caused flakey build errors on the bots (Requested by Ossy
- on #webkit).
-
- * DerivedSources.pri:
- * Target.pri:
-
-2012-07-03 Carlos Garcia Campos <cgarcia@igalia.com>
-
- [GTK] Add WebKitWebView::context-menu-dismissed signal to WebKit2 GTK+ API
- https://bugs.webkit.org/show_bug.cgi?id=90386
-
- Reviewed by Martin Robinson.
-
- * UIProcess/API/gtk/WebKitWebView.cpp:
- (webkit_web_view_class_init): Add context-menu-dismissed signal.
- (contextMenuDismissed): Emit context-menu-dismissed signal.
- (webkitWebViewPopulateContextMenu): Connect to deactivate signal
- of the GtkMenu and emit WebKitWebView::context-menu-dismissed when
- the gtk menu is deactivated.
- * UIProcess/API/gtk/WebKitWebView.h:
- (_WebKitWebViewClass): Add virtual methos for
- context-menu-dismissed signal.
- * UIProcess/API/gtk/tests/TestContextMenu.cpp:
- (testContextMenuDismissed):
- (beforeAll):
- * UIProcess/gtk/WebContextMenuProxyGtk.h:
- (WebKit::WebContextMenuProxyGtk::gtkMenu): Get the GtkMenu built
- for the context menu proxy.
-
-2012-07-03 Piotr Roguski <p.roguski@samsung.com>
-
- [EFL][WK2] Added missing WebPageProxy::ViewIsFocused flag to WebPageProxy::viewStateDidChange()
- call in _ewk_view_smart_focus_out() function.
- https://bugs.webkit.org/show_bug.cgi?id=89877
-
- Reviewed by Andreas Kling.
-
- Although name of the flag suggest it should be used only on focus in,
- omitting it in case of focus out will prevent WebPageProxy::viewStateDidChange()
- from sending Messages::WebPage::SetFocused(false).
-
- * UIProcess/API/efl/ewk_view.cpp:
- (_ewk_view_smart_focus_out):
-
-2012-07-03 Viatcheslav Ostapenko <ostapenko.viatcheslav@nokia.com>
-
- [Qt][WK2] API tests randomly asserts in QQuickWebPage::setContentsScale(qreal)
- https://bugs.webkit.org/show_bug.cgi?id=88679
-
- Reviewed by Csaba Osztrogonác.
-
- Viewport parameters cannot be calculated while viewport is not visible and
- viewport size is 0, so let's delay calculation of viewport parameters until view
- becomes visible.
-
- * UIProcess/qt/QtViewportHandler.cpp:
- (WebKit::QtViewportHandler::pageContentsSizeChanged):
-
-2012-07-03 Tor Arne Vestbø <tor.arne.vestbo@nokia.com>
-
- [Qt] Make use of .qmake.cache for caching features
-
- Instead of loading() features from the files that need them (and re-running
- a bunch of checks), we now run feature detection as part of configure.pro,
- and have build-webkit write the computed feature-defines and CONFIG to
- .qmake.cache, which is then loaded by qmake _before_ even defaults_pre
- when building WebKit.pro.
-
- At some point we'll be able to selectivly prevent running of config tests
- in configure.pro, which means we don't need a separate code-path for
- the build-webkit --help case.
-
- We should also move the code in build-webkit that now uses .webkit.config
- to detect clean builds, to use .qmake.cache, since we now store the same
- thing there.
-
- Original patch by Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
-
- Reviewed by Tor Arne Vestbø.
-
- * DerivedSources.pri:
- * Target.pri:
-
-2012-07-03 Alexis Menard <alexis.menard@openbossa.org>
-
- [Qt] When calling accept() on the FilePickerContextObject with an empty list, early return and call reject().
- https://bugs.webkit.org/show_bug.cgi?id=89755
-
- Reviewed by Simon Hausmann.
-
- When calling accept with an empty list of files we can just bailout
- and call reject(). Any other processing is pointless.
-
- * UIProcess/API/qt/tests/qmltests/WebView/tst_singleFileUpload.qml:
- * UIProcess/qt/QtDialogRunner.cpp:
- (WebKit::FilePickerContextObject::accept):
-
-2012-07-03 Balazs Kelemen <kbalazs@webkit.org>
-
- [Qt][WK2] fast/viewport/viewport-91.html still fails after r121555 and r121661
- https://bugs.webkit.org/show_bug.cgi?id=90376
-
- Reviewed by Csaba Osztrogonác.
-
- layoutTestController.dumpConfigurationForViewport still need
- to use the constant target DPI of 160.
- * WebProcess/WebPage/WebPage.cpp:
- (WebKit::WebPage::viewportConfigurationAsText):
-
-2012-07-03 Christophe Dumez <christophe.dumez@intel.com>
-
- [EFL][WK2] Add API to deliver a Web Intent to a frame
- https://bugs.webkit.org/show_bug.cgi?id=90067
-
- Reviewed by Kenneth Rohde Christiansen.
-
- Add ewk_view_intent_deliver() method on the Ewk_View
- to deliver a Web Intent to the view's main frame.
-
- * UIProcess/API/efl/ewk_view.cpp:
- (ewk_view_intent_deliver):
- * UIProcess/API/efl/ewk_view.h:
-
-2012-07-02 Christophe Dumez <christophe.dumez@intel.com>
-
- [EFL][WK2] Add API to inspect a Web Intent service
- https://bugs.webkit.org/show_bug.cgi?id=90066
-
- Reviewed by Kenneth Rohde Christiansen.
-
- Add EFL API to inspect a Web Intent Service and emit
- a signal on the view when a new intent service
- registers.
-
- * PlatformEfl.cmake:
- * UIProcess/API/efl/EWebKit2.h:
- * UIProcess/API/efl/ewk_intent_service.cpp: Added.
- (_Ewk_Intent_Service):
- (ewk_intent_service_ref):
- (ewk_intent_service_unref):
- (ewk_intent_service_action_get):
- (ewk_intent_service_type_get):
- (ewk_intent_service_href_get):
- (ewk_intent_service_title_get):
- (ewk_intent_service_disposition_get):
- (ewk_intent_service_new):
- * UIProcess/API/efl/ewk_intent_service.h: Added.
- * UIProcess/API/efl/ewk_intent_service_private.h: Copied from Source/WebKit2/UIProcess/API/efl/ewk_view_loader_client.cpp.
- * UIProcess/API/efl/ewk_view.cpp:
- (ewk_view_intent_service_register):
- * UIProcess/API/efl/ewk_view.h:
- * UIProcess/API/efl/ewk_view_loader_client.cpp:
- (registerIntentServiceForFrame):
- (ewk_view_loader_client_attach):
- * UIProcess/API/efl/ewk_view_private.h:
-
-2012-07-02 Christophe Dumez <christophe.dumez@intel.com>
-
- [WK2][EFL] Free Ewk_Intent calloc'd memory with free() instead of delete
- https://bugs.webkit.org/show_bug.cgi?id=90433
-
- Reviewed by Kenneth Rohde Christiansen.
-
- Free calloc'd memory with free() instead of delete in Ewk_Intent.
- Add blank lines before return statements for consistency.
-
- * UIProcess/API/efl/ewk_intent.cpp:
- (ewk_intent_unref):
- (ewk_intent_action_get):
- (ewk_intent_type_get):
- (ewk_intent_service_get):
- (ewk_intent_suggestions_get):
- (ewk_intent_extra_get):
- (ewk_intent_extra_names_get):
- (ewk_intent_new):
-
-2012-07-02 Martin Robinson <mrobinson@igalia.com>
-
- [TextureMapper] The TextureMapper should support edge-distance anti-antialiasing
- https://bugs.webkit.org/show_bug.cgi?id=90308
-
- Reviewed by Noam Rosenthal.
-
- * UIProcess/texmap/LayerBackingStore.cpp:
- (WebKit::LayerBackingStore::paintToTextureMapper): Update the method to call paint with
- the new argument.
-
-2012-07-02 Benjamin Poulain <bpoulain@apple.com>
-
- Do not do any logging initialization when logging is disabled
- https://bugs.webkit.org/show_bug.cgi?id=90228
-
- Reviewed by Simon Fraser.
-
- * Platform/Logging.cpp:
- * Platform/Logging.h:
- * UIProcess/WebContext.cpp:
- (WebKit::WebContext::WebContext):
- * WebProcess/WebProcess.cpp:
- (WebKit::WebProcess::WebProcess):
-
-2012-07-02 No'am Rosenthal <noam.rosenthal@nokia.com>
-
- [Qt][WK2] New API tests introduced in r121620 fail
- https://bugs.webkit.org/show_bug.cgi?id=90372
-
- Reviewed by Luiz Agostini.
-
- Updated the pixel comparison to produce more predictable results.
-
- * UIProcess/API/qt/tests/qrawwebview/tst_qrawwebview.cpp:
- (compareImages):
-
-2012-07-02 Alexis Menard <alexis.menard@openbossa.org>
-
- [Qt] Fix WebProcess crash on Mac when accessing a site with video tag.
- https://bugs.webkit.org/show_bug.cgi?id=90384
-
- Reviewed by Jocelyn Turcotte.
-
- We need to initialize the private symbols used by MediaPlayerPrivateQTKit
- otherwise they will be null and it will lead to a crash. We copy WebSystemInterface
- files for WK2 just like the Mac port as WK2 may have different needs than WK1 layer (we
- may add or remove symbols in here). It doesn't fix the video rendering yet but it's
- first step.
-
- * Target.pri:
- * WebProcess/WebCoreSupport/qt/WebSystemInterface.h: Added.
- * WebProcess/WebCoreSupport/qt/WebSystemInterface.mm: Added.
- (InitWebCoreSystemInterfaceForWK2):
- * WebProcess/qt/WebProcessMainQt.cpp:
- (WebKit::WebProcessMainQt):
-
-2012-07-02 Sudarsana Nagineni <sudarsana.nagineni@linux.intel.com>
-
- [EFL] [WK2] Remove content sniffer and decoder initialization from WebProcess
- https://bugs.webkit.org/show_bug.cgi?id=90275
-
- Reviewed by Martin Robinson.
-
- Do not initialize content sniffer and decoder in the WebProcess
- because the initialization is now done in WebCore.
-
- * WebProcess/efl/WebProcessMainEfl.cpp:
- (WebKit::WebProcessMainEfl):
-
-2012-07-02 Sheriff Bot <webkit.review.bot@gmail.com>
-
- Unreviewed, rolling out r120329, r121113, and r121138.
- http://trac.webkit.org/changeset/120329
- http://trac.webkit.org/changeset/121113
- http://trac.webkit.org/changeset/121138
- https://bugs.webkit.org/show_bug.cgi?id=90368
-
- Introduced noticeable keyboard-related spins due to
- synchronous IPC. (Requested by kling on #webkit).
-
- * UIProcess/WebPageProxy.cpp:
- (WebKit::WebPageProxy::handleKeyboardEvent):
- (WebKit::WebPageProxy::didReceiveEvent):
- * UIProcess/WebPageProxy.h:
- (WebPageProxy):
- * UIProcess/WebPageProxy.messages.in:
- * WebProcess/WebPage/WebPage.cpp:
- (WebKit::WebPage::keyEvent):
-
-2012-07-01 Christophe Dumez <christophe.dumez@intel.com>
-
- [EFL][WK2] Add API to inspect a Web Intent
- https://bugs.webkit.org/show_bug.cgi?id=89749
-
- Reviewed by Kenneth Rohde Christiansen.
-
- Add EFL API to inspect a Web Intent and emit a signal
- on the view when a new intent request is made.
-
- * PlatformEfl.cmake:
- * UIProcess/API/efl/EWebKit2.h:
- * UIProcess/API/efl/ewk_intent.cpp: Added.
- (_Ewk_Intent):
- (ewk_intent_ref):
- (ewk_intent_unref):
- (ewk_intent_action_get):
- (ewk_intent_type_get):
- (ewk_intent_service_get):
- (ewk_intent_suggestions_get):
- (ewk_intent_extra_get):
- (ewk_intent_extra_names_get):
- (ewk_intent_new):
- * UIProcess/API/efl/ewk_intent.h: Added.
- * UIProcess/API/efl/ewk_intent_private.h: Copied from Source/WebKit2/UIProcess/API/efl/ewk_view_loader_client.cpp.
- * UIProcess/API/efl/ewk_view.cpp:
- (ewk_view_intent_request_new):
- * UIProcess/API/efl/ewk_view.h:
- * UIProcess/API/efl/ewk_view_loader_client.cpp:
- (didReceiveIntentForFrame):
- (ewk_view_loader_client_attach):
- * UIProcess/API/efl/ewk_view_private.h:
-2012-06-29 Luiz Agostini <luiz.agostini@nokia.com>
+2012-10-03 Hugo Parente Lima <hugo.lima@openbossa.org>
- [Qt][WK2] Private non-QtQuick API
- https://bugs.webkit.org/show_bug.cgi?id=84532
+ [WK2] PageViewportController.cpp is supposed to be a generic WebKit2 file but only works with Qt port.
+ https://bugs.webkit.org/show_bug.cgi?id=98186
Reviewed by Noam Rosenthal.
- Adding new private non-QtQuick API. This new C++ API makes it possible
- to have control over the lower levels of WebKit without going via QML.
-
- This is a first version of the API, enough to show pages on the screen.
- Many features are not implemented.
-
- * Target.pri:
- * UIProcess/API/qt/raw/qrawwebview.cpp: Added.
- * UIProcess/API/qt/raw/qrawwebview_p.h: Added.
- * UIProcess/API/qt/raw/qrawwebview_p_p.h: Added.
-
- The tests for the new API are pixel tests. They use QRawWebView to load
- html files and generate images, and them compare those images to the ones
- in UIProcess/API/qt/tests/html/resources.
-
- * UIProcess/API/qt/tests/html/bluesquare.html: Added.
- * UIProcess/API/qt/tests/html/redsquare.html: Added.
- * UIProcess/API/qt/tests/html/resources/qwkview_noBackground1.png: Added.
- * UIProcess/API/qt/tests/html/resources/qwkview_noBackground3.png: Added.
- * UIProcess/API/qt/tests/html/resources/qwkview_paint.png: Added.
- * UIProcess/API/qt/tests/qrawwebview/qrawwebview.pro: Added.
- * UIProcess/API/qt/tests/qrawwebview/tst_qrawwebview.cpp: Added.
-
-2012-06-29 Christophe Dumez <christophe.dumez@intel.com>
-
- [WK2] Move intent delivery code from the frame to the page
- https://bugs.webkit.org/show_bug.cgi?id=89974
+ Remove the dependece of WebCore::FloatSize to QSize implicit conversion.
- Reviewed by Anders Carlsson.
-
- Move the intent delivery code from the frame to the page
- and add the corresponding C API for WKPage.
-
- * UIProcess/API/C/WKPage.cpp:
- (WKPageDeliverIntentToFrame):
- * UIProcess/API/C/WKPage.h:
- * UIProcess/WebFrameProxy.cpp:
- (WebKit::WebFrameProxy::stopLoading):
- * UIProcess/WebFrameProxy.h:
- (WebKit):
- * UIProcess/WebPageProxy.cpp:
+ * UIProcess/API/qt/qquickwebpage.cpp:
+ (QQuickWebPagePrivate::updateSize):
+ * UIProcess/API/qt/qquickwebview.cpp:
+ (QQuickWebViewLegacyPrivate::updateViewportSize):
+ (QQuickWebViewFlickablePrivate::updateViewportSize):
+ * UIProcess/PageViewportController.cpp:
+ (WebKit::PageViewportController::didRenderFrame):
+ (WebKit::PageViewportController::pageDidRequestScroll):
+ (WebKit::PageViewportController::syncVisibleContents):
+ (WebKit::PageViewportController::viewportSizeInContentsCoordinates):
(WebKit):
- (WebKit::WebPageProxy::deliverIntentToFrame):
- * UIProcess/WebPageProxy.h:
- (WebPageProxy):
-
-2012-06-29 Dan Bernstein <mitz@apple.com>
-
- Can’t get basic element info from a WKRenderObject
- https://bugs.webkit.org/show_bug.cgi?id=90301
-
- Reviewed by Anders Carlsson.
-
- Moved the element info (tag name, id and class names) from WebRenderLayer to WebRenderObject,
- and gave WebRenderLayer a reference to a (shallow) WebRenderObject. Added WKRenderObject API
- for getting element info, while leaving the WKRenderLayer API in place for now for Safari.
-
- * Shared/API/c/WKRenderLayer.cpp:
- (WKRenderLayerGetRenderer): Added this wrapper.
- (WKRenderLayerCopyRendererName): Changed to get the name from the renderer.
- (WKRenderLayerCopyElementTagName): Changed to go through the renderer.
- (WKRenderLayerCopyElementID): Ditto.
- (WKRenderLayerGetElementClassNames): Ditto.
- * Shared/API/c/WKRenderLayer.h: Added declaration of WKRenderLayerGetRenderer() and comments
- about removing older API.
- * Shared/API/c/WKRenderObject.cpp:
- (WKRenderObjectCopyElementTagName): Added this wrapper.
- (WKRenderObjectCopyElementID): Ditto.
- (WKRenderObjectGetElementClassNames): Ditto.
- * Shared/API/c/WKRenderObject.h:
- * Shared/UserMessageCoders.h:
- (WebKit::UserMessageEncoder::baseEncode): Removed the element info from the encoding of
- WebRenderLayer, and added the renderer. Added the element info to the encoding of
- WebRenderObject.
- (WebKit::UserMessageDecoder::baseDecode): Updated to match the encoding changes.
- * Shared/WebRenderLayer.cpp:
- (WebKit::WebRenderLayer::WebRenderLayer): Changed to initialize the m_renderer member
- variable with a WebRenderObject for the layer’s renderer, and removed the initialization of
- the element-related member variables that were removed.
- * Shared/WebRenderLayer.h:
- (WebKit::WebRenderLayer::create): Changed to take a renderer instead of renderer and element
- info.
- (WebKit::WebRenderLayer::renderer): Added this getter.
- (WebKit::WebRenderLayer::WebRenderLayer): Changed to take a renderer instead of renderer and
- element info.
- * Shared/WebRenderObject.cpp:
- (WebKit::WebRenderObject::create): Changed to pass true for the shouldIncludeDescendants
- parameter.
- (WebKit::WebRenderObject::WebRenderObject): Added a shouldIncludeDescdendants boolean
- parameter. When it is false, the m_children array remains null. Added initialization of
- member variables with the element’s tag name, id and class list.
- * Shared/WebRenderObject.h:
- (WebKit::WebRenderObject::create): Added an overload that takes a RenderObject and creates
- a shallow WebRenderObject.
- (WebRenderObject): Changed to take element tag name, id and class list.
- (WebKit::WebRenderObject::elementTagName): Added this getter.
- (WebKit::WebRenderObject::elementID): Ditto.
- (WebKit::WebRenderObject::elementClassNames): Ditto.
- (WebKit::WebRenderObject::WebRenderObject):
-
-2012-06-29 Tony Chang <tony@chromium.org>
-
- Unreviewed, rolling out r121572.
- http://trac.webkit.org/changeset/121572
- https://bugs.webkit.org/show_bug.cgi?id=90249
-
- Breaks Mac build since it depends on r121547, which was rolled
- out
-
- * WebProcess/Plugins/Netscape/NetscapeBrowserFuncs.cpp:
- (WebKit::NPN_GetValue):
- * WebProcess/WebCoreSupport/WebEditorClient.cpp:
- (WebKit::WebEditorClient::shouldEraseMarkersAfterChangeSelection):
- * WebProcess/WebCoreSupport/WebEditorClient.h:
-
-2012-06-29 Eric Seidel <eric@webkit.org>
-
- Remove BUILDING_ON_LEOPARD now that no ports build on Leopard
- https://bugs.webkit.org/show_bug.cgi?id=90249
-
- Reviewed by Ryosuke Niwa.
-
- * WebProcess/Plugins/Netscape/NetscapeBrowserFuncs.cpp:
- (WebKit::NPN_GetValue):
- * WebProcess/WebCoreSupport/WebEditorClient.cpp:
- (WebKit::WebEditorClient::shouldEraseMarkersAfterChangeSelection):
- * WebProcess/WebCoreSupport/WebEditorClient.h:
-
-2012-06-29 Konrad Piascik <kpiascik@rim.com>
-
- Don't hardcode target dpi of 160 (it should be 96 on desktop)
- https://bugs.webkit.org/show_bug.cgi?id=88114
-
- Reviewed by Adam Barth.
-
- Updated the call to computeViewportAttributes.
-
- * WebProcess/WebPage/WebPage.cpp:
- (WebKit::WebPage::sendViewportAttributesChanged):
- (WebKit::WebPage::viewportConfigurationAsText):
-
-2012-06-29 Sheriff Bot <webkit.review.bot@gmail.com>
-
- Unreviewed, rolling out r121529.
- http://trac.webkit.org/changeset/121529
- https://bugs.webkit.org/show_bug.cgi?id=90260
-
- Failed to compile on Chromium WebKitMacBuilder (Requested by
- keishi on #webkit).
-
- * UIProcess/mac/WKFullScreenWindowController.mm:
- (-[WKFullScreenWindowController finishedEnterFullScreenAnimation:]):
- (-[WKFullScreenWindowController beganExitFullScreenWithInitialFrame:WebCore::finalFrame:WebCore::]):
- * WebProcess/Plugins/Netscape/mac/NetscapeSandboxFunctions.mm:
- * WebProcess/WebCoreSupport/mac/WebSystemInterface.mm:
- (InitWebCoreSystemInterface):
-
-2012-06-29 Eric Seidel <eric@webkit.org>
-
- Remove more BUILDING_ON_LEOPARD branches now that no port builds on Leopard
- https://bugs.webkit.org/show_bug.cgi?id=90252
-
- Reviewed by Ryosuke Niwa.
-
- * UIProcess/mac/WKFullScreenWindowController.mm:
- (-[WKFullScreenWindowController finishedEnterFullScreenAnimation:]):
- (-[WKFullScreenWindowController beganExitFullScreenWithInitialFrame:WebCore::finalFrame:WebCore::]):
- * WebProcess/Plugins/Netscape/mac/NetscapeSandboxFunctions.mm:
- * WebProcess/WebCoreSupport/mac/WebSystemInterface.mm:
- (InitWebCoreSystemInterface):
-
-2012-06-28 MORITA Hajime <morrita@google.com>
+ * UIProcess/PageViewportController.h:
+ (PageViewportController):
- [Refactoring] NodeRenderingContext ctor could be built on top of the ComposedShadowTreeWalker
- https://bugs.webkit.org/show_bug.cgi?id=89732
+2012-10-03 Anders Carlsson <andersca@apple.com>
- Reviewed by Dimitri Glazkov.
+ Try to fix the Qt WebKit2 failures.
- * win/WebKit2.def:
- * win/WebKit2CFLite.def:
+ * WebProcess/WebPage/DrawingAreaImpl.cpp:
+ (WebKit::DrawingAreaImpl::DrawingAreaImpl):
+ Always force compositing if USE(COORDINATED_GRAPHICS) is true.
-2012-06-28 John Sullivan <sullivan@apple.com>
+2012-10-03 Anders Carlsson <andersca@apple.com>
- <https://bugs.webkit.org/show_bug.cgi?id=90216>
- <rdar://problem/11766518>
- Undo handling in WebKit2 is not robust against some page-closing code paths
+ Use the XPC service by default on newer systems
+ https://bugs.webkit.org/show_bug.cgi?id=98297
+ <rdar://problem/12424641>
- Reviewed by Enrica Casucci.
+ Reviewed by Sam Weinig.
- * UIProcess/API/mac/PageClientImpl.h:
- Declared public function viewWillMoveToAnotherWindow().
-
- * UIProcess/API/mac/PageClientImpl.mm:
- (WebKit::PageClientImpl::viewWillMoveToAnotherWindow):
- New function, calls clearAllEditCommands() to remove any Undo actions from the stack.
- This guarantees that no Undo actions will be abandoned when the PageClientImpl is dealloc'ed.
+ * UIProcess/mac/WebProcessProxyMac.mm:
+ (WebKit::shouldUseXPC):
+ Return false for older systems.
- * UIProcess/API/mac/WKView.mm:
- (-[WKView viewWillMoveToWindow:]):
- Now informs PageClientImpl via new function PageClientImpl::viewWillMoveToAnotherWindow().
+ (WebKit::WebProcessProxy::platformConnect):
+ Call shouldUseXPC().
-2012-06-28 Christophe Dumez <christophe.dumez@intel.com>
+2012-10-02 Andy Estes <aestes@apple.com>
- [WK2] Add C API to inspect a Web Intent service
- https://bugs.webkit.org/show_bug.cgi?id=89276
+ [WebKit2] Add the ability to send messages to the WebPageGroupProxy
+ https://bugs.webkit.org/show_bug.cgi?id=98233
Reviewed by Anders Carlsson.
- Add C API for Web intent service so that it can be queried
- on client side.
-
- * CMakeLists.txt:
- * GNUmakefile.list.am:
- * Target.pri:
- * UIProcess/API/C/WKIntentServiceInfo.cpp: Added.
- (WKIntentServiceInfoGetTypeID):
- (WKIntentServiceInfoCopyAction):
- (WKIntentServiceInfoCopyType):
- (WKIntentServiceInfoCopyHref):
- (WKIntentServiceInfoCopyTitle):
- (WKIntentServiceInfoCopyDisposition):
- * UIProcess/API/C/WKIntentServiceInfo.h: Added.
-
-2012-06-28 Balazs Kelemen <kbalazs@webkit.org>
-
- [Qt] KURL assert at fast/loader/opaque-base-url.html
- https://bugs.webkit.org/show_bug.cgi?id=89468
-
- Reviewed by Simon Hausmann.
-
- Don't use the KURL(ParsedURLStringTag, const String&) constructor.
- We cannot be sure that the url in encode was valid and even if it
- was the message could have been corrupted.
- * Shared/qt/WebCoreArgumentCodersQt.cpp:
- (CoreIPC::::encode):
- (CoreIPC::::decode):
-
-2012-06-27 Carlos Garcia Campos <cgarcia@igalia.com>
-
- Unreviewed. Fix the build without TEXTURE_MAPPER_GL.
-
- * WebProcess/WebPage/gtk/LayerTreeHostGtk.cpp:
- * WebProcess/WebPage/gtk/LayerTreeHostGtk.h:
- * WebProcess/WebPage/gtk/WebPageGtk.cpp:
- (WebKit::WebPage::platformInitialize):
-
-2012-06-25 Mark Hahnenberg <mhahnenberg@apple.com>
-
- JSLock should be per-JSGlobalData
- https://bugs.webkit.org/show_bug.cgi?id=89123
-
- Reviewed by Geoffrey Garen.
-
- Changed all sites that used JSLock to instead use the new JSLockHolder
- and pass in the correct JS context that the code is about to interact with that
- needs protection. Also added a couple JSLocks to places that didn't already
- have it that needed it.
-
- * Shared/mac/WebMemorySampler.mac.mm:
- (WebKit::WebMemorySampler::sampleWebKit):
- * WebProcess/InjectedBundle/InjectedBundle.cpp:
- (WebKit::InjectedBundle::javaScriptObjectsCount):
- (WebKit::InjectedBundle::reportException):
- * WebProcess/Plugins/Netscape/JSNPObject.cpp:
- (WebKit::JSNPObject::callMethod):
- (WebKit::JSNPObject::callObject):
- (WebKit::JSNPObject::callConstructor):
- (WebKit::JSNPObject::put):
- (WebKit::JSNPObject::deleteProperty):
- (WebKit::JSNPObject::getOwnPropertyNames):
- (WebKit::JSNPObject::propertyGetter):
- * WebProcess/Plugins/Netscape/NPJSObject.cpp:
- (WebKit::NPJSObject::hasMethod):
- (WebKit::NPJSObject::invoke):
- (WebKit::NPJSObject::invokeDefault):
- (WebKit::NPJSObject::hasProperty):
- (WebKit::NPJSObject::getProperty):
- (WebKit::NPJSObject::setProperty):
- (WebKit::NPJSObject::removeProperty):
- (WebKit::NPJSObject::enumerate):
- (WebKit::NPJSObject::construct):
- * WebProcess/Plugins/Netscape/NPRuntimeObjectMap.cpp:
- (WebKit::NPRuntimeObjectMap::convertJSValueToNPVariant):
- (WebKit::NPRuntimeObjectMap::evaluate):
- (WebKit::NPRuntimeObjectMap::moveGlobalExceptionToExecState):
- * WebProcess/WebPage/WebFrame.cpp:
- (WebKit::WebFrame::jsWrapperForWorld):
- (WebKit::WebFrame::computedStyleIncludingVisitedInfo):
- * WebProcess/WebPage/WebPage.cpp:
- (WebKit::WebPage::runJavaScriptInMainFrame):
+ Add a WebPageGroupProxy.messages.in, implement a stub message receiver
+ in WebPageGroupProxy, and teach WebProcess how to route messages to the
+ appropriate WebPageGroupProxy.
+
+ * CMakeLists.txt: Tell a build system about added files.
+ * DerivedSources.make: Ditto.
+ * DerivedSources.pri: Ditto.
+ * GNUmakefile.list.am: Ditto.
+ * WebKit2.xcodeproj/project.pbxproj: Ditto.
+ * win/WebKit2.vcproj: Ditto.
+ * Platform/CoreIPC/MessageID.h: Add MessageClassWebPageGroupProxy.
+ * WebProcess/WebPage/WebPageGroupProxy.cpp:
+ (WebKit::WebPageGroupProxy::didReceiveMessage): Stub out the method
+ that will receive messages.
+ (WebKit::WebPageGroupProxy::didReceiveWebPageGroupProxyMessage): Stub
+ out a method that will exist in WebPageGroupProxyMessageReceiver.cpp
+ once WebPageGroupProxy.messages.in contains messages.
+ * WebProcess/WebPage/WebPageGroupProxy.h:
+ * WebProcess/WebPage/WebPageGroupProxy.messages.in: Added.
* WebProcess/WebProcess.cpp:
- (WebKit::WebProcess::getWebCoreStatistics):
-
-2012-06-27 Thiago Marcos P. Santos <thiago.santos@intel.com>
-
- REGRESSION(r121135): It made qmltests::WebViewColorChooser::test_accept() fail
- https://bugs.webkit.org/show_bug.cgi?id=89871
-
- Reviewed by Simon Hausmann.
-
- Added proper event synchronization to the test case.
-
- * UIProcess/API/qt/tests/qmltests/WebView/tst_colorChooser.qml:
-
-2012-06-27 Brady Eidson <beidson@apple.com>
-
- https://bugs.webkit.org/show_bug.cgi?id=87513
- WebBackForwardList needs an overhaul to consistently and clearly handle error conditions.
-
- Reviewed by Darin Adler.
-
- - We think a null entry might somehow be getting in the list so we now try to prevent that.
- - We think a null entry might somehow be in the list so we now null check when indexing into m_entries.
- - A lot of index math - especially tracking "no current index" - was implicit or wrong.
- - Operating on a WebBackForwardList whose page has been closed is now an explicit no-op.
- - The session state data reading and writing code was fragile and needed an overhaul.
- - This includes adding a new V1 format of the session data that is easier to validate when reading back in.
-
- * UIProcess/WebBackForwardList.cpp:
- (WebKit::WebBackForwardList::~WebBackForwardList):
- (WebKit::WebBackForwardList::pageClosed):
- (WebKit::WebBackForwardList::addItem):
- (WebKit::WebBackForwardList::goToItem):
- (WebKit::WebBackForwardList::backListCount):
- (WebKit::WebBackForwardList::forwardListCount):
- (WebKit::WebBackForwardList::backListAsImmutableArrayWithLimit):
- (WebKit::WebBackForwardList::forwardListAsImmutableArrayWithLimit):
- (WebKit::WebBackForwardList::clear):
-
- * UIProcess/WebBackForwardList.h:
- (WebBackForwardList):
-
- * UIProcess/cf/WebBackForwardListCF.cpp:
- (WebKit::createEmptySessionHistoryDictionary):
- (WebKit::WebBackForwardList::createCFDictionaryRepresentation):
- (WebKit::WebBackForwardList::restoreFromCFDictionaryRepresentation):
- (WebKit::WebBackForwardList::restoreFromV0CFDictionaryRepresentation):
- (WebKit::WebBackForwardList::restoreFromV1CFDictionaryRepresentation):
- (WebKit::extractBackForwardListEntriesFromArray):
-
-2012-06-27 Zan Dobersek <zandobersek@gmail.com>
-
- [Gtk] Add support for the Gamepad API
- https://bugs.webkit.org/show_bug.cgi?id=87503
-
- Reviewed by Carlos Garcia Campos.
-
- Add the Gamepad feature dependencies libraries to the LIBADD
- list for the libwebkitgtk2 library.
-
- * GNUmakefile.am:
+ (WebKit::WebProcess::didReceiveMessage): Route messages to the
+ WebPageGroupProxy matching destinationID if the message is of class
+ MessageClassWebPageGroupProxy.
-2012-06-26 Simon Hausmann <simon.hausmann@nokia.com>
+2012-10-02 Anders Carlsson <andersca@apple.com>
- [Qt] Avoid use of deprecated Qt API
+ Change most GraphicsLayer::create calls to use the version that takes a GraphicsLayerFactory
+ https://bugs.webkit.org/show_bug.cgi?id=98217
- Reviewed by Tor Arne Vestbø.
-
- QGuiApplication::inputPanel() has been deprecated in favour of
- inputMethod().
-
- * UIProcess/qt/QtWebPageEventHandler.cpp:
- (WebKit::QtWebPageEventHandler::QtWebPageEventHandler):
- (WebKit::QtWebPageEventHandler::~QtWebPageEventHandler):
- (WebKit::setInputPanelVisible):
- (WebKit::QtWebPageEventHandler::inputPanelVisibleChanged):
- (WebKit::QtWebPageEventHandler::updateTextInputState):
-
-2012-06-26 Christophe Dumez <christophe.dumez@intel.com>
-
- [WK2][GTK] Uninitialized variable in TextCheckerGtk.cpp
- https://bugs.webkit.org/show_bug.cgi?id=89948
-
- Reviewed by Martin Robinson.
-
- Properly initialize didInitializeState in
- TextChecker::state().
-
- * UIProcess/gtk/TextCheckerGtk.cpp:
- (WebKit::TextChecker::state):
-
-2012-06-25 Simon Hausmann <simon.hausmann@nokia.com>
-
- [Qt] Make it possible to build WebKit without QtWidgets
- https://bugs.webkit.org/show_bug.cgi?id=78109
-
- Reviewed by Tor Arne Vestbø.
-
- * WebKit2.pri: Add missing WK2 specific dependencies.
- * qt/MainQt.cpp: Do the QStyle initialization hook only if we are
- compiling with QtWidgets support.
- (WebKit):
- (main):
-
-2012-06-25 Raphael Kubo da Costa <rakuco@webkit.org>
-
- [EFL][WK2] Include unistd.h in PlatformProcessIdentifier.h.
- https://bugs.webkit.org/show_bug.cgi?id=89804
-
- Reviewed by Hajime Morita.
-
- The pid_t typedef ends up coming from stdlib.h (indirectly via WTF
- includes) on Mac and Linux, even though that is not mandated by
- POSIX and breaks other platforms (such as FreeBSD). Fix that by
- explicitly including unistd.h, which is where the typedef is
- supposed to come from.
-
- * Platform/PlatformProcessIdentifier.h:
-
-2012-06-25 YoungTaeck Song <youngtaeck.song@samsung.com>
-
- [WK2][Qt][EFL] Extract common code from LayerTreeHostQt
- https://bugs.webkit.org/show_bug.cgi?id=89837
-
- Reviewed by Noam Rosenthal.
-
- Extract common code from LayerTreeHostQt to be used by both Qt and Efl.
- I renamed LayerTreeHost to LayerTreeCoordinator, and these are moved under WebProcess/WebPage/LayerTreeCoordinator.
- I Modified LayerTreeHostProxy to LayerTreeCoordinatorProxy too, Because LayerTreeHostProxy and LayerTreeHost were pair.
- Also WebGraphicsLayer moved under that directory.
+ Reviewed by Andreas Kling.
- * CMakeLists.txt:
- * DerivedSources.pri:
- * GNUmakefile.list.am:
- * Platform/CoreIPC/MessageID.h:
- * Target.pri:
- * UIProcess/API/qt/qquickwebpage.cpp:
- (QQuickWebPagePrivate::paint):
- (QQuickWebPage::updatePaintNode):
- (QQuickWebPagePrivate::updateSize):
- * UIProcess/DrawingAreaProxy.cpp:
- (WebKit::DrawingAreaProxy::didReceiveLayerTreeCoordinatorProxyMessage):
- * UIProcess/DrawingAreaProxy.h:
- (WebKit):
- (WebKit::DrawingAreaProxy::layerTreeCoordinatorProxy):
- (DrawingAreaProxy):
- * UIProcess/DrawingAreaProxyImpl.cpp:
- (WebKit::DrawingAreaProxyImpl::DrawingAreaProxyImpl):
- (WebKit::DrawingAreaProxyImpl::enterAcceleratedCompositingMode):
- (WebKit::DrawingAreaProxyImpl::didReceiveLayerTreeCoordinatorProxyMessage):
- (WebKit::DrawingAreaProxyImpl::setVisibleContentsRect):
- * UIProcess/DrawingAreaProxyImpl.h:
- (WebKit):
- (DrawingAreaProxyImpl):
- * UIProcess/LayerTreeCoordinatorProxy.cpp: Renamed from Source/WebKit2/UIProcess/LayerTreeHostProxy.cpp.
- (WebKit):
- (WebKit::LayerTreeCoordinatorProxy::LayerTreeCoordinatorProxy):
- (WebKit::LayerTreeCoordinatorProxy::~LayerTreeCoordinatorProxy):
- (WebKit::LayerTreeCoordinatorProxy::updateViewport):
- (WebKit::LayerTreeCoordinatorProxy::dispatchUpdate):
- (WebKit::LayerTreeCoordinatorProxy::createTileForLayer):
- (WebKit::LayerTreeCoordinatorProxy::updateTileForLayer):
- (WebKit::LayerTreeCoordinatorProxy::removeTileForLayer):
- (WebKit::LayerTreeCoordinatorProxy::deleteCompositingLayer):
- (WebKit::LayerTreeCoordinatorProxy::setRootCompositingLayer):
- (WebKit::LayerTreeCoordinatorProxy::setCompositingLayerState):
- (WebKit::LayerTreeCoordinatorProxy::setCompositingLayerChildren):
- (WebKit::LayerTreeCoordinatorProxy::setCompositingLayerFilters):
- (WebKit::LayerTreeCoordinatorProxy::didRenderFrame):
- (WebKit::LayerTreeCoordinatorProxy::createDirectlyCompositedImage):
- (WebKit::LayerTreeCoordinatorProxy::destroyDirectlyCompositedImage):
- (WebKit::LayerTreeCoordinatorProxy::setContentsSize):
- (WebKit::LayerTreeCoordinatorProxy::setVisibleContentsRect):
- (WebKit::LayerTreeCoordinatorProxy::renderNextFrame):
- (WebKit::LayerTreeCoordinatorProxy::didChangeScrollPosition):
- (WebKit::LayerTreeCoordinatorProxy::syncCanvas):
- (WebKit::LayerTreeCoordinatorProxy::purgeBackingStores):
- * UIProcess/LayerTreeCoordinatorProxy.h: Renamed from Source/WebKit2/UIProcess/LayerTreeHostProxy.h.
- (WebKit):
- (LayerTreeCoordinatorProxy):
- (WebKit::LayerTreeCoordinatorProxy::layerTreeRenderer):
- * UIProcess/LayerTreeCoordinatorProxy.messages.in: Renamed from Source/WebKit2/UIProcess/LayerTreeHostProxy.messages.in.
- * UIProcess/WebLayerTreeRenderer.cpp:
- (WebKit::WebLayerTreeRenderer::WebLayerTreeRenderer):
- (WebKit::WebLayerTreeRenderer::updateViewport):
- (WebKit::WebLayerTreeRenderer::renderNextFrame):
- (WebKit::WebLayerTreeRenderer::purgeBackingStores):
- (WebKit::WebLayerTreeRenderer::detach):
- * UIProcess/WebLayerTreeRenderer.h:
- (WebKit):
- (WebLayerTreeRenderer):
- * UIProcess/WebPageProxy.cpp:
- (WebKit::WebPageProxy::didReceiveMessage):
- * WebKit2.pri:
- * WebProcess/WebPage/DrawingArea.h:
- (DrawingArea):
- * WebProcess/WebPage/DrawingAreaImpl.cpp:
- (WebKit::DrawingAreaImpl::didReceiveLayerTreeCoordinatorMessage):
- * WebProcess/WebPage/DrawingAreaImpl.h:
- (DrawingAreaImpl):
- * WebProcess/WebPage/LayerTreeCoordinator/LayerTreeCoordinator.cpp: Renamed from Source/WebKit2/WebProcess/WebPage/qt/LayerTreeHostQt.cpp.
- (WebKit):
- (WebKit::LayerTreeCoordinator::create):
- (WebKit::LayerTreeCoordinator::~LayerTreeCoordinator):
+ * WebProcess/WebPage/CoordinatedGraphics/LayerTreeCoordinator.cpp:
(WebKit::LayerTreeCoordinator::LayerTreeCoordinator):
- (WebKit::LayerTreeCoordinator::setLayerFlushSchedulingEnabled):
- (WebKit::LayerTreeCoordinator::scheduleLayerFlush):
- (WebKit::LayerTreeCoordinator::cancelPendingLayerFlush):
- (WebKit::LayerTreeCoordinator::setShouldNotifyAfterNextScheduledLayerFlush):
- (WebKit::LayerTreeCoordinator::setRootCompositingLayer):
- (WebKit::LayerTreeCoordinator::invalidate):
- (WebKit::LayerTreeCoordinator::setNonCompositedContentsNeedDisplay):
- (WebKit::LayerTreeCoordinator::scrollNonCompositedContents):
- (WebKit::LayerTreeCoordinator::forceRepaint):
- (WebKit::LayerTreeCoordinator::sizeDidChange):
- (WebKit::LayerTreeCoordinator::didInstallPageOverlay):
- (WebKit::LayerTreeCoordinator::didUninstallPageOverlay):
- (WebKit::LayerTreeCoordinator::setPageOverlayNeedsDisplay):
- (WebKit::LayerTreeCoordinator::setPageOverlayOpacity):
- (WebKit::LayerTreeCoordinator::flushPendingLayerChanges):
- (WebKit::LayerTreeCoordinator::syncLayerState):
- (WebKit::LayerTreeCoordinator::syncLayerChildren):
- (WebKit::LayerTreeCoordinator::syncCanvas):
- (WebKit::LayerTreeCoordinator::syncLayerFilters):
- (WebKit::LayerTreeCoordinator::attachLayer):
- (WebKit::LayerTreeCoordinator::detachLayer):
- (WebKit::updateOffsetFromViewportForSelf):
- (WebKit::updateOffsetFromViewportForLayer):
- (WebKit::LayerTreeCoordinator::syncFixedLayers):
- (WebKit::LayerTreeCoordinator::performScheduledLayerFlush):
- (WebKit::LayerTreeCoordinator::layerFlushTimerFired):
(WebKit::LayerTreeCoordinator::createPageOverlayLayer):
- (WebKit::LayerTreeCoordinator::destroyPageOverlayLayer):
- (WebKit::LayerTreeCoordinator::adoptImageBackingStore):
- (WebKit::LayerTreeCoordinator::releaseImageBackingStore):
- (WebKit::LayerTreeCoordinator::notifyAnimationStarted):
- (WebKit::LayerTreeCoordinator::notifySyncRequired):
- (WebKit::LayerTreeCoordinator::paintContents):
- (WebKit::LayerTreeCoordinator::showDebugBorders):
- (WebKit::LayerTreeCoordinator::showRepaintCounter):
- (WebKit::LayerTreeHost::supportsAcceleratedCompositing):
- (WebKit::LayerTreeCoordinator::createTile):
- (WebKit::LayerTreeCoordinator::updateTile):
- (WebKit::LayerTreeCoordinator::removeTile):
- (WebKit::LayerTreeCoordinator::visibleContentsRect):
- (WebKit::LayerTreeCoordinator::setVisibleContentsRect):
- (WebKit::LayerTreeCoordinator::renderNextFrame):
- (WebKit::LayerTreeCoordinator::layerTreeTileUpdatesAllowed):
- (WebKit::LayerTreeCoordinator::purgeBackingStores):
- (WebKit::LayerTreeCoordinator::beginContentUpdate):
- * WebProcess/WebPage/LayerTreeCoordinator/LayerTreeCoordinator.h: Renamed from Source/WebKit2/WebProcess/WebPage/qt/LayerTreeHostQt.h.
- (WebKit):
- (LayerTreeCoordinator):
- (WebKit::LayerTreeCoordinator::layerTreeContext):
- (WebKit::LayerTreeCoordinator::pageOverlayShouldApplyFadeWhenPainting):
- (WebKit::LayerTreeCoordinator::pauseRendering):
- (WebKit::LayerTreeCoordinator::resumeRendering):
- (WebKit::LayerTreeCoordinator::deviceScaleFactorDidChange):
- * WebProcess/WebPage/LayerTreeCoordinator/LayerTreeCoordinator.messages.in: Renamed from Source/WebKit2/WebProcess/WebPage/LayerTreeHost.messages.in.
- * WebProcess/WebPage/LayerTreeCoordinator/WebGraphicsLayer.cpp: Renamed from Source/WebKit2/WebProcess/WebCoreSupport/WebGraphicsLayer.cpp.
- (WebCore):
- (WebCore::layerByIDMap):
- (WebCore::WebGraphicsLayer::layerByID):
- (WebCore::toWebLayerID):
- (WebCore::WebGraphicsLayer::didChangeLayerState):
- (WebCore::WebGraphicsLayer::didChangeChildren):
- (WebCore::WebGraphicsLayer::didChangeFilters):
- (WebCore::WebGraphicsLayer::setShouldUpdateVisibleRect):
- (WebCore::WebGraphicsLayer::didChangeGeometry):
- (WebCore::WebGraphicsLayer::WebGraphicsLayer):
- (WebCore::WebGraphicsLayer::~WebGraphicsLayer):
- (WebCore::WebGraphicsLayer::willBeDestroyed):
- (WebCore::WebGraphicsLayer::setChildren):
- (WebCore::WebGraphicsLayer::addChild):
- (WebCore::WebGraphicsLayer::addChildAtIndex):
- (WebCore::WebGraphicsLayer::addChildAbove):
- (WebCore::WebGraphicsLayer::addChildBelow):
- (WebCore::WebGraphicsLayer::replaceChild):
- (WebCore::WebGraphicsLayer::removeFromParent):
- (WebCore::WebGraphicsLayer::setPosition):
- (WebCore::WebGraphicsLayer::setAnchorPoint):
- (WebCore::WebGraphicsLayer::setSize):
- (WebCore::WebGraphicsLayer::setTransform):
- (WebCore::WebGraphicsLayer::setChildrenTransform):
- (WebCore::WebGraphicsLayer::setPreserves3D):
- (WebCore::WebGraphicsLayer::setMasksToBounds):
- (WebCore::WebGraphicsLayer::setDrawsContent):
- (WebCore::WebGraphicsLayer::setContentsOpaque):
- (WebCore::WebGraphicsLayer::setBackfaceVisibility):
- (WebCore::WebGraphicsLayer::setOpacity):
- (WebCore::WebGraphicsLayer::setContentsRect):
- (WebCore::WebGraphicsLayer::setContentsNeedsDisplay):
- (WebCore::WebGraphicsLayer::setContentsToCanvas):
- (WebCore::WebGraphicsLayer::setFilters):
- (WebCore::WebGraphicsLayer::setContentsToImage):
- (WebCore::WebGraphicsLayer::setMaskLayer):
- (WebCore::WebGraphicsLayer::setReplicatedByLayer):
- (WebCore::WebGraphicsLayer::setNeedsDisplay):
- (WebCore::WebGraphicsLayer::setNeedsDisplayInRect):
- (WebCore::WebGraphicsLayer::id):
- (WebCore::WebGraphicsLayer::syncCompositingState):
- (WebCore::toWebGraphicsLayer):
- (WebCore::WebGraphicsLayer::syncChildren):
- (WebCore::WebGraphicsLayer::syncFilters):
- (WebCore::WebGraphicsLayer::syncLayerState):
- (WebCore::WebGraphicsLayer::syncCanvas):
- (WebCore::WebGraphicsLayer::ensureImageBackingStore):
- (WebCore::WebGraphicsLayer::syncCompositingStateForThisLayerOnly):
- (WebCore::WebGraphicsLayer::tiledBackingStorePaintBegin):
- (WebCore::WebGraphicsLayer::setRootLayer):
- (WebCore::WebGraphicsLayer::setVisibleContentRectTrajectoryVector):
- (WebCore::WebGraphicsLayer::setContentsScale):
- (WebCore::WebGraphicsLayer::effectiveContentsScale):
- (WebCore::WebGraphicsLayer::adjustContentsScale):
- (WebCore::WebGraphicsLayer::createBackingStore):
- (WebCore::WebGraphicsLayer::tiledBackingStorePaint):
- (WebCore::WebGraphicsLayer::tiledBackingStorePaintEnd):
- (WebCore::WebGraphicsLayer::tiledBackingStoreUpdatesAllowed):
- (WebCore::WebGraphicsLayer::tiledBackingStoreContentsRect):
- (WebCore::WebGraphicsLayer::shouldUseTiledBackingStore):
- (WebCore::WebGraphicsLayer::tiledBackingStoreVisibleRect):
- (WebCore::WebGraphicsLayer::tiledBackingStoreBackgroundColor):
- (WebCore::WebGraphicsLayer::beginContentUpdate):
- (WebCore::WebGraphicsLayer::createTile):
- (WebCore::WebGraphicsLayer::updateTile):
- (WebCore::WebGraphicsLayer::removeTile):
- (WebCore::WebGraphicsLayer::updateContentBuffers):
- (WebCore::WebGraphicsLayer::purgeBackingStores):
- (WebCore::WebGraphicsLayer::setWebGraphicsLayerClient):
- (WebCore::WebGraphicsLayer::adjustVisibleRect):
- (WebCore::WebGraphicsLayer::computeTransformedVisibleRect):
- (WebCore::createWebGraphicsLayer):
- (WebCore::WebGraphicsLayer::initFactory):
- (WebCore::WebGraphicsLayer::selfOrAncestorHaveNonAffineTransforms):
- * WebProcess/WebPage/LayerTreeCoordinator/WebGraphicsLayer.h: Renamed from Source/WebKit2/WebProcess/WebCoreSupport/WebGraphicsLayer.h.
- (WebCore):
- (WebKit):
- (WebGraphicsLayerClient):
- (WebGraphicsLayer):
- (WebCore::WebGraphicsLayer::image):
- (WebCore::WebGraphicsLayer::fixedToViewport):
- (WebCore::WebGraphicsLayer::setFixedToViewport):
- (WebCore::WebGraphicsLayer::maskTarget):
- (WebCore::WebGraphicsLayer::setMaskTarget):
- * WebProcess/WebPage/LayerTreeHost.cpp:
- (WebKit::LayerTreeHost::create):
- * WebProcess/WebPage/LayerTreeHost.h:
- (LayerTreeHost):
- * WebProcess/WebPage/WebPage.cpp:
- (WebKit::WebPage::didReceiveMessage):
-
-2012-06-25 Anders Carlsson <andersca@apple.com>
-
- [Lion WK2] fast/loader/reload-zero-byte-plugin.html hits assert
- https://bugs.webkit.org/show_bug.cgi?id=89611
- <rdar://problem/11714023>
-
- Reviewed by Sam Weinig.
-
- Make sure to send the response along to the plug-in in the case where the stream was empty.
-
- * WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
- (WebKit::WebFrameLoaderClient::finishedLoading):
-
-2012-06-25 YoungTaeck Song <youngtaeck.song@samsung.com>
-
- [WK2][Qt][EFL] Move LayerBackingStore into common directory
- https://bugs.webkit.org/show_bug.cgi?id=89838
-
- Reviewed by Noam Rosenthal.
-
- Move LayerBackingStore into 'Source/WebKit2/UIProcess/texmap' to be used by both Qt and Efl.
-
- * Target.pri:
- * UIProcess/texmap/LayerBackingStore.cpp: Renamed from Source/WebKit2/UIProcess/qt/LayerBackingStore.cpp.
- (WebKit):
- (WebKit::LayerBackingStoreTile::swapBuffers):
- (WebKit::LayerBackingStoreTile::setBackBuffer):
- (WebKit::LayerBackingStore::createTile):
- (WebKit::LayerBackingStore::removeTile):
- (WebKit::LayerBackingStore::updateTile):
- (WebKit::LayerBackingStore::texture):
- (WebKit::LayerBackingStore::paintToTextureMapper):
- (WebKit::LayerBackingStore::commitTileOperations):
- * UIProcess/texmap/LayerBackingStore.h: Renamed from Source/WebKit2/UIProcess/qt/LayerBackingStore.h.
- (WebKit):
- (LayerBackingStoreTile):
- (WebKit::LayerBackingStoreTile::LayerBackingStoreTile):
- (WebKit::LayerBackingStoreTile::scale):
- (LayerBackingStore):
- (WebKit::LayerBackingStore::create):
- (WebKit::LayerBackingStore::LayerBackingStore):
-
-2012-06-25 Carlos Garcia Campos <cgarcia@igalia.com>
-
- [GTK] Test /webkit2/WebKitWebView/permission-requests fails due to a runtime warning
- https://bugs.webkit.org/show_bug.cgi?id=89858
-
- Reviewed by Xan Lopez.
-
- * UIProcess/API/gtk/tests/TestWebKitWebView.cpp:
- (testWebViewPermissionRequests): Make runtime warnings non-fatal
- for test /webkit2/WebKitWebView/permission-requests.
-
-2012-06-25 Huang Dongsung <luxtella@company100.net>
-
- [GTK] Remove unused code in LayerTreeHostGtk.
- https://bugs.webkit.org/show_bug.cgi?id=89854
-
- LayerTreeHostGtk::deviceScaleFactor() is unused and LayerTreeHost does not have
- virtual float deviceScaleFactor() const;
-
- Reviewed by Martin Robinson.
-
+ * WebProcess/WebPage/ca/LayerTreeHostCA.cpp:
+ (WebKit::LayerTreeHostCA::initialize):
+ (WebKit::LayerTreeHostCA::createPageOverlayLayer):
* WebProcess/WebPage/gtk/LayerTreeHostGtk.cpp:
- * WebProcess/WebPage/gtk/LayerTreeHostGtk.h:
- (LayerTreeHostGtk):
-
-2012-06-24 Andreas Kling <kling@webkit.org>
-
- REGRESSION(r120329): Intermittent WebProcess shutdowns due to out-of-line DidReceiveEvent messages.
- <rdar://problem/11686974>
- <http://webkit.org/b/89659>
-
- Unreviewed tests assertion fix, handleKeyboardEvent() should call didReceiveKeyEvent()
- rather than didReceiveEvent().
-
- * UIProcess/WebPageProxy.cpp:
- (WebKit::WebPageProxy::handleKeyboardEvent):
- (WebKit::WebPageProxy::didReceiveKeyEvent):
-
-2012-06-24 YoungTaeck Song <youngtaeck.song@samsung.com>
-
- [WK2][Qt][EFL] Modify Qt specific code to common code
- https://bugs.webkit.org/show_bug.cgi?id=89839
-
- Reviewed by Noam Rosenthal.
-
- Modify paintToGraphicsContext’s first argument QPainter to PlatformGraphicsContext to be used by both Qt and Efl.
-
- * UIProcess/WebLayerTreeRenderer.cpp:
- (WebKit::WebLayerTreeRenderer::paintToGraphicsContext):
-
-2012-06-24 Simon Fraser <simon.fraser@apple.com>
-
- Rename isPositioned to isOutOfFlowPositioned for clarity
- https://bugs.webkit.org/show_bug.cgi?id=89836
-
- Reviewed by Antti Koivisto.
-
- RenderObject and RenderStyle had an isPositioned() method that was
- confusing, because it excluded relative positioning. Rename to
- isOutOfFlowPositioned(), which makes it clearer that it only applies
- to absolute and fixed positioning.
-
- Simple rename; no behavior change.
-
- * WebProcess/WebPage/qt/LayerTreeHostQt.cpp:
- (WebKit::updateOffsetFromViewportForSelf):
-
-2012-06-24 Andreas Kling <kling@webkit.org>
-
- REGRESSION(r120329): Intermittent WebProcess shutdowns due to out-of-line DidReceiveEvent messages.
- <rdar://problem/11686974>
- <http://webkit.org/b/89659>
-
- Reviewed by Sam Weinig.
-
- Instead of sending DidReceiveEvent for key events as DispatchMessageEvenWhenWaitingForSyncReply,
- use proper synchronous messages. This makes the WebProcess block while the UIProcess handles
- the event but prevents a weird race condition where DidReceiveEvent gets dispatched just before
- a synchronous DecidePolicyForNavigationAction and something happens below DidReceiveEvent that
- invalidates the frame ID passed to DecidePolicyForNavigationAction.
-
- This is a speculative fire-fighting fix.
-
- * UIProcess/WebPageProxy.cpp:
- (WebKit::WebPageProxy::didReceiveKeyEvent):
- (WebKit::WebPageProxy::didReceiveEvent):
- * UIProcess/WebPageProxy.h:
- * UIProcess/WebPageProxy.messages.in:
- * WebProcess/WebPage/WebPage.cpp:
- (WebKit::WebPage::keyEvent):
-
-2012-06-23 Sheriff Bot <webkit.review.bot@gmail.com>
-
- Unreviewed, rolling out r121058.
- http://trac.webkit.org/changeset/121058
- https://bugs.webkit.org/show_bug.cgi?id=89809
-
- Patch causes plugins tests to crash in GTK debug builds
- (Requested by zdobersek on #webkit).
-
- * Shared/mac/WebMemorySampler.mac.mm:
- (WebKit::WebMemorySampler::sampleWebKit):
- * WebProcess/InjectedBundle/InjectedBundle.cpp:
- (WebKit::InjectedBundle::javaScriptObjectsCount):
- (WebKit::InjectedBundle::reportException):
- * WebProcess/Plugins/Netscape/JSNPObject.cpp:
- (WebKit::JSNPObject::callMethod):
- (WebKit::JSNPObject::callObject):
- (WebKit::JSNPObject::callConstructor):
- (WebKit::JSNPObject::put):
- (WebKit::JSNPObject::deleteProperty):
- (WebKit::JSNPObject::getOwnPropertyNames):
- (WebKit::JSNPObject::propertyGetter):
- * WebProcess/Plugins/Netscape/NPJSObject.cpp:
- (WebKit::NPJSObject::hasMethod):
- (WebKit::NPJSObject::invoke):
- (WebKit::NPJSObject::invokeDefault):
- (WebKit::NPJSObject::hasProperty):
- (WebKit::NPJSObject::getProperty):
- (WebKit::NPJSObject::setProperty):
- (WebKit::NPJSObject::removeProperty):
- (WebKit::NPJSObject::enumerate):
- (WebKit::NPJSObject::construct):
- * WebProcess/Plugins/Netscape/NPRuntimeObjectMap.cpp:
- (WebKit::NPRuntimeObjectMap::convertJSValueToNPVariant):
- (WebKit::NPRuntimeObjectMap::evaluate):
- (WebKit::NPRuntimeObjectMap::moveGlobalExceptionToExecState):
- * WebProcess/WebPage/WebFrame.cpp:
- (WebKit::WebFrame::jsWrapperForWorld):
- (WebKit::WebFrame::computedStyleIncludingVisitedInfo):
- * WebProcess/WebPage/WebPage.cpp:
- (WebKit::WebPage::runJavaScriptInMainFrame):
- * WebProcess/WebProcess.cpp:
- (WebKit::WebProcess::getWebCoreStatistics):
-
-2012-06-23 Zan Dobersek <zandobersek@gmail.com>
-
- Unreviewed build fix for GTK's WebKit2 build after r121093.
-
- * UIProcess/API/gtk/WebKitWebView.cpp:
- (webkitWebViewPopulateContextMenu):
-
-2012-06-23 Carlos Garcia Campos <cgarcia@igalia.com>
-
- Unreviewed. Fix several GTK+ unit tests.
-
- GTK+ unit tests using WebViewTest::wait() started to fail due to a
- bug introduced in r121093.
-
- * UIProcess/API/gtk/tests/WebViewTest.cpp:
- (WebViewTest::wait): Use this instead of m_mainLoop as user data
- for the idle callback.
+ (WebKit::LayerTreeHostGtk::initialize):
+ (WebKit::LayerTreeHostGtk::createPageOverlayLayer):
+ * WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.mm:
+ (WebKit::TiledCoreAnimationDrawingArea::createPageOverlayLayer):
-2012-06-23 Carlos Garcia Campos <cgarcia@igalia.com>
+2012-10-03 Alberto Garcia <agarcia@igalia.com>
- [GTK] Add ContextMenu API to WebKit2 GTK+ API
- https://bugs.webkit.org/show_bug.cgi?id=81011
+ [GTK] [WK2] Unused variable in webkitWebViewLoadChanged
+ https://bugs.webkit.org/show_bug.cgi?id=98271
Reviewed by Martin Robinson.
- Add WebKitWebView::context-menu signal and WebKitContextMenu and
- WebKitContextMenuItem objects to customize the default menu or
- buils new menus.
-
- * GNUmakefile.list.am: Add new files to destination.
- * UIProcess/API/gtk/WebKitContextMenu.cpp: Added.
- (webkitContextMenuFinalize):
- (webkit_context_menu_init):
- (webkit_context_menu_class_init):
- (webkitContextMenuPopulate): Populate the given vector of
- ContextMenuItems with the WebKitContextMenu items releasing the
- items added to the vector.
- (webkitContextMenuCreate): Create a new WebKitContextMenu for the
- given WKArrayRef of WKContextMenuItemRef.
- (webkitContextMenuSetParentItem): Set the parent menu item of the
- menu. Used when a menu is added as a submenu of a menu item.
- (webkitContextMenuGetParentItem): Return the parent menu item of
- the menu.
- (webkit_context_menu_new): Create a new WebKitContextMenu.
- (webkit_context_menu_new_with_items): Create a new
- WebKitContextMenu using the given list of WebKitContextMenuItem.
- (webkit_context_menu_prepend): Add item at the beginning.
- (webkit_context_menu_append): Add item at the end.
- (webkit_context_menu_insert): Insert item at a random position.
- (webkit_context_menu_move_item): Move an existing item to a new
- position.
- (webkit_context_menu_get_items): Get the list of items.
- (webkit_context_menu_get_n_items): Get the number of items.
- (webkit_context_menu_first): Get the first item.
- (webkit_context_menu_last): Get the last item.
- (webkit_context_menu_get_item_at_position): Get the item at the
- given position.
- (webkit_context_menu_remove): Remove the given item.
- (webkit_context_menu_remove_all): Remove all items.
- * UIProcess/API/gtk/WebKitContextMenu.h: Added.
- * UIProcess/API/gtk/WebKitContextMenuActions.cpp: Added.
- (webkitContextMenuActionIsCheckable): Check if the given stock
- action is a toggle action.
- (webkitContextMenuActionGetActionTag): Get the WebCore
- ContextMenuAction corresponding to the given stock action.
- (webkitContextMenuActionGetForContextMenuItem): Get the stock
- action corresponding to the given WebCore ContextMenuAction.
- (webkitContextMenuActionGetLabel): Get the label string of the
- given stock action.
- * UIProcess/API/gtk/WebKitContextMenuActions.h: Added.
- * UIProcess/API/gtk/WebKitContextMenuActionsPrivate.h: Added.
- * UIProcess/API/gtk/WebKitContextMenuItem.cpp: Added.
- (webkitContextMenuItemFinalize):
- (webkit_context_menu_item_init):
- (webkit_context_menu_item_class_init):
- (checkAndWarnIfMenuHasParentItem): Check whether the given menu
- is already inside another menu showing a warning in such case.
- (webkitContextMenuItemSetSubMenu): Set the submenu of a menu item,
- checking that the menu is not part of another menu and setting the
- item as the parent of the submenu.
- (webkitContextMenuItemCreate): Create a new WebKitContextMenuItem
- for the given WKContextMenuItemRef.
- (webkitContextMenuItemCreateForGtkItem): Create a new
- WebKitContextMenuItem using the given GtkMenuItem.
- (webkitContextMenuItemSetSubMenuFromGtkMenu): Set the given
- GtkMenu as submenu of the item. This is used only to add Input
- Methods submenu that is created by GTK.
- (webkitContextMenuItemRelease): Release the WebCore
- ContextMenuItem associated to the item.
- (webkit_context_menu_item_new): Create a new WebKitContextMenuItem
- for the given GtkAction.
- (webkit_context_menu_item_new_from_stock_action): Create a new
- WebKitContextMenuItem for a stock action.
- (webkit_context_menu_item_new_from_stock_action_with_label):
- Create a new WebKitContextMenuItem for a stock action using a
- custom label.
- (webkit_context_menu_item_new_with_submenu): Create a new
- WebKitContextMenuItem with a submenu.
- (webkit_context_menu_item_new_separator): Create a new separator
- menu item.
- (webkit_context_menu_item_get_action): Get the GtkAction of the item.
- (webkit_context_menu_item_get_stock_action): Get the stock action
- of the item.
- (webkit_context_menu_item_is_separator): Whether item is a separator.
- (webkit_context_menu_item_set_submenu): Set or replace the
- submenu of the item.
- (webkit_context_menu_item_get_submenu): Get the submenu of the item.
- * UIProcess/API/gtk/WebKitContextMenuItem.h: Added.
- * UIProcess/API/gtk/WebKitContextMenuItemPrivate.h: Added.
- * UIProcess/API/gtk/WebKitContextMenuPrivate.h: Added.
- * UIProcess/API/gtk/WebKitDefines.h:
- * UIProcess/API/gtk/WebKitWebView.cpp:
- (webkit_web_view_class_init): Add WebKitWebView::context-menu signal.
- (getUnicodeMenuItemPosition): Helper function that returns the
- position of the unicode menu item in the proposed context menu.
- (webkitWebViewCreateAndAppendInputMethodsMenuItem): Use
- WebKitContextMenu API to add the input methods submenu to the
- default context menu.
- (webkitWebViewPopulateContextMenu): Create a WebKitContextMenu for
- the default context menu and emit WebKitWebView::context-menu
- signal. Then populate the context menu proxy with the resulting
- WebKitContextMenu.
- * UIProcess/API/gtk/WebKitWebView.h:
- * UIProcess/API/gtk/WebKitWebViewBase.cpp:
- (webkitWebViewBaseButtonPressEvent): In case of right click save
- the event to be used by context menu signal.
- (webkitWebViewBaseTakeContextMenuEvent): Return and release the
- saved button event.
- * UIProcess/API/gtk/WebKitWebViewBasePrivate.h:
- * UIProcess/API/gtk/docs/webkit2gtk-docs.sgml: Add sections for
- WebKitContextMenu and WebKitContextMenuItem.
- * UIProcess/API/gtk/docs/webkit2gtk-sections.txt: Add new symbols.
- * UIProcess/API/gtk/docs/webkit2gtk.types: Add
- webkit_context_menu_get_type and webkit_context_menu_item_get_type.
- * UIProcess/API/gtk/tests/GNUmakefile.am: Add new test for context menu.
- * UIProcess/API/gtk/tests/TestContextMenu.cpp: Added.
- (testContextMenuDefaultMenu):
- (testContextMenuPopulateMenu):
- (testContextMenuCustomMenu):
- (testContextMenuDisableMenu):
- (testContextMenuSubMenu):
- (beforeAll):
- (afterAll):
- * UIProcess/API/gtk/tests/TestMain.h:
- (Test::addLogFatalFlag): Add a log level flag to the mask of flags
- causing the program to abort.
- (Test::removeLogFatalFlag): Remove a log level flag to the mask of
- flags causing the program to abort.
- * UIProcess/API/gtk/tests/WebViewTest.cpp:
- (WebViewTest::quitMainLoop): Finish the main loop.
- (WebViewTest::quitMainLoopAfterProcessingPendingEvents): Finish
- the main loop when all pending events have been processed.
- (quitMainLoopIdleCallback):
- (WebViewTest::wait):
- * UIProcess/API/gtk/tests/WebViewTest.h:
- * UIProcess/API/gtk/webkit2.h: Include WebKitContextMenu.h,
- WebKitContextMenuItem.h and WebKitContextMenuActions.h.
- * UIProcess/API/gtk/webkit2marshal.list:
- * UIProcess/gtk/WebContextMenuProxyGtk.cpp:
- (WebKit::WebContextMenuProxyGtk::showContextMenu): Attach the
- popup menu to the view widget before showing it.
-
-2012-06-22 Alexandru Chiculita <achicu@adobe.com>
-
- [CSS Shaders] Re-enable the CSS Shaders compile time flag on Safari Mac
- https://bugs.webkit.org/show_bug.cgi?id=89781
-
- Reviewed by Dean Jackson.
-
- Added ENABLE_CSS_SHADERS flag as enabled by default on Safari for Mac.
-
- * Configurations/FeatureDefines.xcconfig:
-
-2012-06-22 Ryuan Choi <ryuan.choi@samsung.com>
-
- [EFL][WK2] Support keyboard event
- https://bugs.webkit.org/show_bug.cgi?id=89268
-
- Reviewed by Chang Shu.
-
- * WebProcess/WebCoreSupport/efl/WebEditorClientEfl.cpp:
- (WebKit::WebEditorClient::handleKeyboardEvent): Implemented default behavior.
- * WebProcess/WebPage/efl/WebPageEfl.cpp:
- (WebKit::WebPage::interpretKeyEvent): Implemented like WebKit1/Efl did.
-
-2012-06-20 Mark Hahnenberg <mhahnenberg@apple.com>
-
- JSLock should be per-JSGlobalData
- https://bugs.webkit.org/show_bug.cgi?id=89123
-
- Reviewed by Gavin Barraclough.
-
- Changed all sites that used JSLock to instead use the new JSLockHolder
- and pass in the correct JS context that the code is about to interact with that
- needs protection.
-
- * Shared/mac/WebMemorySampler.mac.mm:
- (WebKit::WebMemorySampler::sampleWebKit):
- * WebProcess/InjectedBundle/InjectedBundle.cpp:
- (WebKit::InjectedBundle::javaScriptObjectsCount):
- (WebKit::InjectedBundle::reportException):
- * WebProcess/Plugins/Netscape/JSNPObject.cpp:
- (WebKit::JSNPObject::callMethod):
- (WebKit::JSNPObject::callObject):
- (WebKit::JSNPObject::callConstructor):
- (WebKit::JSNPObject::put):
- (WebKit::JSNPObject::deleteProperty):
- (WebKit::JSNPObject::getOwnPropertyNames):
- (WebKit::JSNPObject::propertyGetter):
- * WebProcess/Plugins/Netscape/NPJSObject.cpp:
- (WebKit::NPJSObject::hasMethod):
- (WebKit::NPJSObject::invoke):
- (WebKit::NPJSObject::invokeDefault):
- (WebKit::NPJSObject::hasProperty):
- (WebKit::NPJSObject::getProperty):
- (WebKit::NPJSObject::setProperty):
- (WebKit::NPJSObject::removeProperty):
- (WebKit::NPJSObject::enumerate):
- (WebKit::NPJSObject::construct):
- * WebProcess/Plugins/Netscape/NPRuntimeObjectMap.cpp:
- (WebKit::NPRuntimeObjectMap::convertJSValueToNPVariant):
- (WebKit::NPRuntimeObjectMap::evaluate):
- (WebKit::NPRuntimeObjectMap::moveGlobalExceptionToExecState):
- * WebProcess/WebPage/WebFrame.cpp:
- (WebKit::WebFrame::jsWrapperForWorld):
- (WebKit::WebFrame::computedStyleIncludingVisitedInfo):
- * WebProcess/WebPage/WebPage.cpp:
- (WebKit::WebPage::runJavaScriptInMainFrame):
- * WebProcess/WebProcess.cpp:
- (WebKit::WebProcess::getWebCoreStatistics):
-
-2012-06-22 Jocelyn Turcotte <turcotte.j@gmail.com>
-
- [Qt] Fix the remote inspector loading problems on Mac
- https://bugs.webkit.org/show_bug.cgi?id=89747
-
- Reviewed by Simon Hausmann.
-
- Reverse the creation order of the inter-dependent WebSocketServerConnection
- and SocketStreamHandle to make sure that the later has a client properly
- set on construction.
-
- This is to work around the assert on m_state in SocketStreamHandle::setClient.
-
- * UIProcess/InspectorServer/WebSocketServer.cpp:
- (WebKit::WebSocketServer::didAcceptConnection):
- * UIProcess/InspectorServer/WebSocketServer.h:
- (WebKit::WebSocketServer::client):
- (WebSocketServer):
- * UIProcess/InspectorServer/WebSocketServerConnection.cpp:
- (WebKit::WebSocketServerConnection::WebSocketServerConnection):
- (WebKit::WebSocketServerConnection::setSocketHandle):
- (WebKit):
- * UIProcess/InspectorServer/WebSocketServerConnection.h:
- (WebSocketServerConnection):
- * UIProcess/InspectorServer/qt/WebSocketServerQt.cpp:
- (WebKit::QtTcpServerHandler::handleNewConnection):
-
-2012-06-22 Sergio Villar Senin <svillar@igalia.com>
-
- [WK2] FindController::hideFindUI should unmark highlighted text matches
- https://bugs.webkit.org/show_bug.cgi?id=77747
-
- Reviewed by Carlos Garcia Campos.
-
- Unmark all text matches whenever FindController::hideFindUI is
- called to allow callers using the ShowHighlight find option to
- remove highlighting.
-
- This patch enables a unit test for the WebKitFindController
- previously guarded by a #if(0) after r109222.
-
- * UIProcess/API/gtk/tests/TestWebKitFindController.cpp:
- (testFindControllerHide):
- * WebProcess/WebPage/FindController.cpp:
- (WebKit::FindController::hideFindUI):
-
-2012-06-21 Christophe Dumez <christophe.dumez@intel.com>
-
- [WK2] Add C API to inspect a Web Intent
- https://bugs.webkit.org/show_bug.cgi?id=89275
-
- Reviewed by Anders Carlsson.
-
- Add C API for Web Intent so that it can be queried
- on client side.
-
- * CMakeLists.txt:
- * GNUmakefile.list.am:
- * Target.pri:
- * UIProcess/API/C/WKIntentData.cpp: Copied from Source/WebKit2/UIProcess/WebIntentData.cpp.
- (WKIntentDataGetTypeID):
- (WKIntentDataCopyAction):
- (WKIntentDataCopyType):
- (WKIntentDataCopyService):
- (WKIntentDataCopySuggestions):
- (WKIntentDataCopyExtra):
- (WKIntentDataCopyExtras):
- * UIProcess/API/C/WKIntentData.h: Copied from Source/WebKit2/UIProcess/WebIntentData.cpp.
- * UIProcess/WebIntentData.cpp:
- (WebKit::WebIntentData::suggestions):
- (WebKit):
- (WebKit::WebIntentData::extra):
- (WebKit::WebIntentData::extras):
- * UIProcess/WebIntentData.h:
- (WebIntentData):
-
-2012-06-21 Christophe Dumez <christophe.dumez@intel.com>
-
- [WK2] Properly encode/decode service in IntentData
- https://bugs.webkit.org/show_bug.cgi?id=89460
-
- Reviewed by Gustavo Noronha Silva.
-
- Update IntentData::encode() and IntentData::decode()
- so that the "service" member is properly encoded
- and decoded.
-
- * Shared/IntentData.cpp:
- (WebKit::IntentData::encode):
- (WebKit::IntentData::decode):
-
-2012-06-21 Ryuan Choi <ryuan.choi@gmail.com>
-
- [EFL][WK2] Make WebKit2/Efl headers and resources installable.
- https://bugs.webkit.org/show_bug.cgi?id=88207
-
- Reviewed by Chang Shu.
-
- * CMakeLists.txt: Install WebProcess.
- * PlatformEfl.cmake: Generate ewebkit2.pc and install it.
- * efl/ewebkit2.pc.in: Added.
-
-2012-06-21 Ryuan Choi <ryuan.choi@samsung.com>
-
- [EFL[WK2] Add WKViewEfl and WebKit2 API Object to represent Evas_Object.
- https://bugs.webkit.org/show_bug.cgi?id=88935
-
- Reviewed by Chang Shu.
-
- Add WKViewEfl to support WTR/Efl.
-
- * PlatformEfl.cmake:
- * Shared/API/c/WKBase.h:
- * Shared/API/c/efl/WKBaseEfl.h: Added.
- * UIProcess/API/C/WKAPICast.h:
- * UIProcess/API/C/efl/WKAPICastEfl.h: Added.
- (WebKit):
- * UIProcess/API/C/efl/WKView.cpp: Added.
- (WKViewCreate):
- (WKViewGetPage):
- * UIProcess/API/C/efl/WKView.h: Added.
- * UIProcess/API/efl/ewk_view.cpp:
- (ewk_view_page_get):
- * UIProcess/API/efl/ewk_view_private.h:
-
-2012-06-21 Thiago Marcos P. Santos <thiago.santos@intel.com>
-
- [Qt] API tests for ColorChooser
- https://bugs.webkit.org/show_bug.cgi?id=88101
-
- Reviewed by Kenneth Rohde Christiansen.
-
- The test uses the value sanitization to detect if the feature is
- enabled or disabled and will just pass when disabled.
-
- * UIProcess/API/qt/tests/qmltests/WebView/tst_colorChooser.qml: Added.
- * UIProcess/API/qt/tests/qmltests/common/colorChooser.html: Added.
-
-2012-06-21 Thiago Marcos P. Santos <thiago.santos@intel.com>
-
- [WK2][Qt] Color chooser API missing
- https://bugs.webkit.org/show_bug.cgi?id=87749
-
- Reviewed by Kenneth Rohde Christiansen.
-
- Added public experimental API for ColorChooser. This will
- allow the browser to define a custom dialog for selecting
- color when a input field of type "color" get focus.
-
- The current implementation gives a model to the QML Component
- that has methods for canceling a request, selecting a color
- and fetching what is the current value of the HTML input.
-
- * Target.pri:
- * UIProcess/API/qt/qquickwebview.cpp:
- (QQuickWebViewPrivate::QQuickWebViewPrivate):
- (QQuickWebViewExperimental::colorChooser):
- (QQuickWebViewExperimental::setColorChooser):
- * UIProcess/API/qt/qquickwebview_p.h:
- * UIProcess/API/qt/qquickwebview_p_p.h:
- (QQuickWebViewPrivate):
- * UIProcess/qt/QtPageClient.cpp:
- (WebKit::QtPageClient::createColorChooserProxy):
- * UIProcess/qt/WebColorChooserProxyQt.cpp: Added.
- (WebKit):
- (ColorChooserContextObject):
- (WebKit::ColorChooserContextObject::ColorChooserContextObject):
- (WebKit::ColorChooserContextObject::currentColor):
- (WebKit::ColorChooserContextObject::accept):
- (WebKit::ColorChooserContextObject::reject):
- (WebKit::WebColorChooserProxyQt::WebColorChooserProxyQt):
- (WebKit::WebColorChooserProxyQt::~WebColorChooserProxyQt):
- (WebKit::WebColorChooserProxyQt::createItem):
- (WebKit::WebColorChooserProxyQt::createContext):
- (WebKit::WebColorChooserProxyQt::setSelectedColor):
- (WebKit::WebColorChooserProxyQt::notifyColorSelected):
- (WebKit::WebColorChooserProxyQt::endChooser):
- * UIProcess/qt/WebColorChooserProxyQt.h: Added.
- (WebCore):
- (WebKit):
- (WebColorChooserProxyQt):
- (WebKit::WebColorChooserProxyQt::create):
-
-2012-06-21 Mario Sanchez Prada <msanchez@igalia.com>
-
- [GTK] Add support for window.showModalDialog in WebKit2GTK+
- https://bugs.webkit.org/show_bug.cgi?id=79500
-
- Reviewed by Carlos Garcia Campos.
-
- Implement runModal in WebKitUIClient to make the WebKitWebView
- emit a 'run-as-modal' signal when requested, creating a new
- mainloop there to block user interaction with the original window
- while the modal dialog is showing.
-
- * UIProcess/API/gtk/WebKitUIClient.cpp:
- (runModal): Call to the new webkitWebViewRunAsModalPage function.
- (attachUIClientToView): Add runModal.
- * UIProcess/API/gtk/WebKitWebView.cpp:
- (_WebKitWebViewPrivate): Add an atribute for a new main loop.
- (webkitWebViewFinalize): Make sure the main loop for main dialogs,
- if any, is stopped if it was still running.
- (webkit_web_view_class_init): Declare new signal 'run-as-modal'.
- (webkitWebViewRunAsModal): Emit the 'run-as-modal' signal and, if
- handled, create and run a new main loop.
- * UIProcess/API/gtk/WebKitWebView.h:
- (_WebKitWebViewClass): New handler for the 'run-as-modal' signal.
- * UIProcess/API/gtk/WebKitWebViewPrivate.h: Add webkitWebViewRunAsModalPage.
-
- Allow setting and getting the value of WebPage's canRunModal
- attribute in the WebProcess from the UIProcess after the creation
- of a WebPage, to allow using it from WebKitWebView to allow the
- client application to decide whether to allow create modal
- dialogs, which would result in launching an additional nested
- event loop in the web process, after creating the dialog.
-
- * UIProcess/WebPageProxy.cpp:
- (WebKit::WebPageProxy::WebPageProxy): Initialize the new
- m_canRunModal attribute, to cache the current status of the
- WebPage in the WebProcess.
- (WebKit::WebPageProxy::initializeUIClient): Call the new function
- setCanRunModal, instead of manually sending the SetCanRunModal message.
- (WebKit::WebPageProxy::creationParameters): Use m_canRunModal
- instead of m_uiClient.canRunModal when preparing the parameters.
- (WebKit::WebPageProxy::setCanRunModal): New public function, it
- sets the value of m_canRunModal and sends a message to the Web
- process for updating the WebPage, whenever possible.
- (WebKit::WebPageProxy::canRunModal): New public function, returns
- the value of the m_canRunModal attribute.
- * UIProcess/WebPageProxy.h:
- (WebPageProxy): Added new public functions and private attribute.
-
- New property in WebKitSettings to be able to decide whether it is
- allowed to create and run new child webviews as modal dialogs.
-
- * UIProcess/API/gtk/WebKitSettings.cpp:
- (_WebKitSettingsPrivate): New attribute allowModalDialogs.
- (webKitSettingsSetProperty): Handle the new property.
- (webKitSettingsGetProperty): Ditto.
- (webkit_settings_class_init): Install the new property.
- (webkitSettingsAttachSettingsToPage): Make sure the WebPage is
- initialized with the value of the new property.
- (webkit_settings_set_allow_modal_dialogs): New setter.
- (webkit_settings_get_allow_modal_dialogs): New getter.
- * UIProcess/API/gtk/WebKitSettings.h:
- * UIProcess/API/gtk/docs/webkit2gtk-sections.txt: Added new accessors.
-
- Connect to the 'notify::allow-modal-dialogs' signal from
- WebKitSettings to ensure that canRunModal property of the WebPage
- is kept up to date. Ensure that signal handlers for monitoring
- settings are disconnected when the webview is finalized.
+ Use the priv variable to directly access private attributes
+ instead of dereferencing webView->priv all the time.
+ Fixes -Wunused-variable.
* UIProcess/API/gtk/WebKitWebView.cpp:
- (webkitWebViewSetSettings): Connect to the new signal
- 'notify::allow-modal-dialogs', from WebKitSettings.
- (allowModalDialogsChanged): Callback to update WebPage's
- canRunModal property when updated through WebKitSettings.
- (webkitWebViewDisconnectSettingsSignalHandlers): Disconnect signal
- handlers for monitoring WebKitSettings properties.
- (webkitWebViewFinalize): Ensure signal handlers are disconnected.
- (webkit_web_view_set_settings): Ditto.
- * UIProcess/API/gtk/WebKitWebView.h:
-
- Add new unit tests to check the 'run-as-modal' signal is emitted
- only when the new property in WebKitSettings is set to TRUE.
-
- * UIProcess/API/gtk/tests/TestWebKitWebView.cpp:
- (testWebViewAllowModalDialogs): New unit test to check that modal
- dialogs are properly created from JavaScript when allowed.
- (testWebViewDisallowModalDialogs): New unit test to check that
- it's not possible to create modal dialogs when not allowed.
- (beforeAll): Add the new unit test.
-
-2012-06-20 Thiago Marcos P. Santos <thiago.santos@intel.com>
-
- [WK2] Color chooser API missing
- https://bugs.webkit.org/show_bug.cgi?id=87495
-
- Reviewed by Andreas Kling.
-
- Added ColorChooser API to WebKit2. This API allows the
- embedder to define a custom color picker for <input type="color">.
-
- Only one ColorChooser can be active for a page at a time. Although
- the implementation doesn't not assume a modal dialog, no other
- color chooser will be created until the active one is closed.
-
- Also added stubs for all platforms, so it wont break the build when
- enabling color chooser, even though they don't have the backend
- implemented yet.
-
- * CMakeLists.txt:
- * GNUmakefile.list.am:
- * Target.pri:
- * UIProcess/API/efl/PageClientImpl.cpp:
- (WebKit):
- (WebKit::PageClientImpl::createColorChooserProxy):
- * UIProcess/API/efl/PageClientImpl.h:
- (PageClientImpl):
- * UIProcess/API/gtk/PageClientImpl.cpp:
- (WebKit):
- (WebKit::PageClientImpl::createColorChooserProxy):
- * UIProcess/API/gtk/PageClientImpl.h:
- (PageClientImpl):
- * UIProcess/API/mac/PageClientImpl.h:
- (PageClientImpl):
- * UIProcess/API/mac/PageClientImpl.mm:
- (WebKit):
- (WebKit::PageClientImpl::createColorChooserProxy):
- * UIProcess/PageClient.h:
- (WebKit):
- (PageClient):
- * UIProcess/WebColorChooserProxy.h: Added.
- (WebCore):
- (WebKit):
- (WebColorChooserProxy):
- (Client):
- (WebKit::WebColorChooserProxy::Client::~Client):
- (WebKit::WebColorChooserProxy::~WebColorChooserProxy):
- (WebKit::WebColorChooserProxy::invalidate):
- (WebKit::WebColorChooserProxy::WebColorChooserProxy):
- * UIProcess/WebPageProxy.cpp:
- (WebKit::WebPageProxy::close):
- (WebKit):
- (WebKit::WebPageProxy::showColorChooser):
- (WebKit::WebPageProxy::setColorChooserColor):
- (WebKit::WebPageProxy::endColorChooser):
- (WebKit::WebPageProxy::didChooseColor):
- (WebKit::WebPageProxy::didEndColorChooser):
- (WebKit::WebPageProxy::processDidCrash):
- * UIProcess/WebPageProxy.h:
- (WebPageProxy):
- * UIProcess/WebPageProxy.messages.in:
- * UIProcess/qt/QtPageClient.cpp:
- (WebKit):
- (WebKit::QtPageClient::createColorChooserProxy):
- * UIProcess/qt/QtPageClient.h:
- (QtPageClient):
- * UIProcess/win/WebView.cpp:
- (WebKit):
- (WebKit::WebView::createColorChooserProxy):
- * UIProcess/win/WebView.h:
- (WebView):
- * WebKit2.xcodeproj/project.pbxproj:
- * WebProcess/WebCoreSupport/WebChromeClient.cpp:
- (WebKit::WebChromeClient::createColorChooser):
- * WebProcess/WebCoreSupport/WebColorChooser.cpp: Added.
- (WebKit):
- (WebKit::WebColorChooser::WebColorChooser):
- (WebKit::WebColorChooser::~WebColorChooser):
- (WebKit::WebColorChooser::didChooseColor):
- (WebKit::WebColorChooser::didEndChooser):
- (WebKit::WebColorChooser::disconnectFromPage):
- (WebKit::WebColorChooser::setSelectedColor):
- (WebKit::WebColorChooser::endChooser):
- * WebProcess/WebCoreSupport/WebColorChooser.h: Added.
- (WebCore):
- (WebKit):
- (WebColorChooser):
- * WebProcess/WebPage/WebPage.cpp:
- (WebKit::WebPage::WebPage):
- (WebKit::WebPage::close):
- (WebKit):
- (WebKit::WebPage::setActiveColorChooser):
- (WebKit::WebPage::didEndColorChooser):
- (WebKit::WebPage::didChooseColor):
- * WebProcess/WebPage/WebPage.h:
- (WebKit):
- (WebPage):
- (WebKit::WebPage::activeColorChooser):
- * WebProcess/WebPage/WebPage.messages.in:
- * win/WebKit2.vcproj:
-
-2012-06-20 Brady Eidson <beidson@apple.com>
-
- <rdar://problem/11653784> and https://bugs.webkit.org/show_bug.cgi?id=89590
- showModalDialog message handling is flaky in WebKit2
-
- Because RunLoop::performWork() swaps the function queue to a temporary Vector before calling
- the functions an inner run-loop - such as we see with running a modal dialog - does not have
- a change to handle any of the functions that were queued after the WebPageProxy::RunModal message.
-
- By servicing the functions in the queue one at a time we can give the RunLoop a chance to pick up
- where it left off if RunLoop::performWork is re-entered.
-
- To guarantee RunLoop::performWork is re-entered to handle those functions we also need to signal
- its source before entering the modal run loop so our RunLoop is woken up.
-
- Reviewed by Darin Adler.
-
- * Platform/CoreIPC/Connection.cpp:
- (CoreIPC::Connection::wakeUpRunLoop): Added so the WebPageProxy can signal the runloop to be woken up
- before it enters the modal dialog run loop.
- * Platform/CoreIPC/Connection.h:
-
- * UIProcess/WebPageProxy.cpp:
- (WebKit::WebPageProxy::runModal): Call wakeUpRunLoop() before entering the modal dialog run loop.
-
-2012-06-20 Julien Chaffraix <jchaffraix@webkit.org>
-
- Use IntSize in RenderLayer to represent scroll offsets
- https://bugs.webkit.org/show_bug.cgi?id=89154
-
- Reviewed by Eric Seidel.
-
- * WebProcess/WebPage/win/WebPageWin.cpp:
- (WebKit::WebPage::gestureDidScroll):
- Updated to pass an IntSize to scrollByRecursively.
-
-2012-06-20 Christophe Dumez <christophe.dumez@intel.com>
-
- [WK2] Implement Web Intent delivery
- https://bugs.webkit.org/show_bug.cgi?id=88989
-
- Reviewed by Anders Carlsson.
-
- Add a deliverIntent() method to the WebFrame so that
- Web intents can be delivered once matched to a
- specific service.
-
- * UIProcess/WebFrameProxy.cpp:
- (WebKit):
- (WebKit::WebFrameProxy::deliverIntent):
- * UIProcess/WebFrameProxy.h:
- (WebKit):
- (WebFrameProxy):
- * UIProcess/WebIntentData.h:
- (WebKit::WebIntentData::store):
- * WebProcess/WebPage/WebFrame.cpp:
- (WebKit):
- (WebKit::WebFrame::deliverIntent):
- * WebProcess/WebPage/WebFrame.h:
- (WebKit):
- (WebFrame):
- * WebProcess/WebPage/WebPage.cpp:
- (WebKit):
- (WebKit::WebPage::deliverIntentToFrame):
- * WebProcess/WebPage/WebPage.h:
- (WebKit):
- (WebPage):
- * WebProcess/WebPage/WebPage.messages.in:
-
-2012-06-20 Alexis Menard <alexis.menard@openbossa.org>
-
- REGRESSION (120705) : LayerTreeHostQt asserts in debug.
- https://bugs.webkit.org/show_bug.cgi?id=89487
-
- Reviewed by Noam Rosenthal.
-
- We try to call createHandle twice on the same handle when the
- first matching atlas is full. This patch solved the problem by
- moving the createHandle call inside UpdateAtlas and call createHandle
- only when the atlas is not full. We can also remove the surface()
- getter as it is not used anymore.
-
- * WebProcess/WebPage/UpdateAtlas.cpp:
- (WebKit::UpdateAtlas::beginPaintingOnAvailableBuffer):
- * WebProcess/WebPage/UpdateAtlas.h:
- (UpdateAtlas):
- * WebProcess/WebPage/qt/LayerTreeHostQt.cpp:
- (WebKit::LayerTreeHostQt::beginContentUpdate):
-
-2012-06-19 Ryuan Choi <ryuan.choi@samsung.com>
-
- [EFL][Regression] Build break after r120786
- https://bugs.webkit.org/show_bug.cgi?id=89549
-
- Unreviewed build fix for Efl port.
-
- * CMakeLists.txt: Added disassembler in includes.
-
-2012-06-19 Dan Bernstein <mitz@apple.com>
-
- WebKit2 part of: Paginated display API doesn’t allow setting the page progression direction
- https://bugs.webkit.org/show_bug.cgi?id=89394
-
- Reviewed by Darin Adler.
-
- * UIProcess/API/C/WKPage.cpp:
- (WKPageSetPaginationMode): Changed to map new WKPaginationMode values to new
- Pagination::Mode values.
- (WKPageGetPaginationMode): Similarly, in the opposite direction.
- * UIProcess/API/C/WKPagePrivate.h: Replaced WKPaginationMode values with ones that specify
- an axis and a direction along that axis.
- * UIProcess/API/mac/WKBrowsingContextController.mm:
- (-[WKBrowsingContextController setPaginationMode:]): Changed to handle new values.
- (-[WKBrowsingContextController paginationMode]): Ditto.
- * UIProcess/API/mac/WKBrowsingContextControllerPrivate.h: Replaced
- WKBrowsingContextPaginationMode values with ones that specify an axis and a direction along
- that axis.
-
-2012-06-19 Alexis Menard <alexis.menard@openbossa.org>
-
- [Qt] Create an extra atlas when there is no available buffer space.
- https://bugs.webkit.org/show_bug.cgi?id=89012
-
- Reviewed by Noam Rosenthal.
-
- In case of the desktop mode when we scroll the view all the tiles
- are updated. It can happen that there no available buffer space for
- the currently used atlas(especially when scrolling fast). In that case
- we can create a new one. One future improvement could be to make a timer and
- delete this extra atlas when it is not used.
-
- * WebProcess/WebPage/qt/LayerTreeHostQt.cpp:
- (WebKit::beginContentUpdateInAtlas):
- (WebKit::LayerTreeHostQt::beginContentUpdate):
- * WebProcess/WebPage/qt/LayerTreeHostQt.h:
- (LayerTreeHostQt):
-
-2012-06-19 Csaba Osztrogonác <ossy@webkit.org>
-
- [Qt] Buildfix for newer Qt5, use QPointer instead of the deprecated QWeakPointer.
- https://bugs.webkit.org/show_bug.cgi?id=89449
-
- Reviewed by Simon Hausmann.
-
- * UIProcess/API/qt/qquicknetworkreply_p.h:
-
-2012-06-19 Mike West <mkwst@chromium.org>
-
- Introduce ENABLE_CSP_NEXT configuration flag.
- https://bugs.webkit.org/show_bug.cgi?id=89300
-
- Reviewed by Adam Barth.
-
- The 1.0 draft of the Content Security Policy spec is just about to
- move to Last Call. We'll hide work on the upcoming 1.1 spec behind
- this ENABLE flag, disabled by default.
-
- Spec: https://dvcs.w3.org/hg/content-security-policy/raw-file/tip/csp-specification.dev.html
-
- * Configurations/FeatureDefines.xcconfig:
-
-2012-06-19 Mike West <mkwst@chromium.org>
-
- Add a scheme registry for bypassing Content Security Policy.
- https://bugs.webkit.org/show_bug.cgi?id=89373
-
- Reviewed by Adam Barth.
-
- * win/WebKit2.def:
- * win/WebKit2CFLite.def:
-
-2012-06-16 Adam Barth <abarth@webkit.org>
-
- Settings::devicePixelRatio doesn't do anything and is confusing
- https://bugs.webkit.org/show_bug.cgi?id=89272
-
- Reviewed by James Robinson.
-
- * Shared/WebPreferencesStore.h:
- (WebKit):
- - Remove boilerplate code for the setting.
- * UIProcess/API/qt/qquickwebview.cpp:
- (QQuickWebViewExperimental::devicePixelRatio):
- (QQuickWebViewExperimental::setDevicePixelRatio):
- - Change these functions to get and set the real device scale factor.
- * WebProcess/WebPage/WebPage.cpp:
- (WebKit::WebPage::sendViewportAttributesChanged):
- - Use the real device scale factor for the viewport calculation.
- (WebKit::WebPage::updatePreferences):
- - Remove boilerplate code for the setting.
-
-2012-06-15 Christophe Dumez <christophe.dumez@intel.com>
-
- [WK2] Add support for explicit intents
- https://bugs.webkit.org/show_bug.cgi?id=89206
-
- Reviewed by Kenneth Rohde Christiansen.
-
- Expose the service URL of a Web Intent. This URL
- is set for explicit intents.
-
- * Shared/IntentData.h:
- (IntentData):
- * UIProcess/WebIntentData.h:
- (WebKit::WebIntentData::service):
- * WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
- (WebKit::WebFrameLoaderClient::dispatchIntent):
-
-2012-06-15 Christophe Dumez <christophe.dumez@intel.com>
-
- [EFL][WK2] Add title support to Ewk_View
- https://bugs.webkit.org/show_bug.cgi?id=89095
-
- Reviewed by Kenneth Rohde Christiansen.
-
- Add a method to get the title of the main frame in
- an Ewk_View. A "title,changed" signal is now emitted
- on the view to notify clients that the main frame
- title was changed.
-
- * PlatformEfl.cmake:
- * UIProcess/API/efl/ewk_view.cpp:
- (_Ewk_View_Private_Data):
- (_ewk_view_priv_del):
- (ewk_view_base_add):
- (ewk_view_title_get):
- (ewk_view_title_changed):
- * UIProcess/API/efl/ewk_view.h:
- * UIProcess/API/efl/ewk_view_loader_client.cpp: Added.
- (didReceiveTitleForFrame):
- (ewk_view_loader_client_attach):
- * UIProcess/API/efl/ewk_view_loader_client_private.h: Added.
- * UIProcess/API/efl/ewk_view_private.h:
-
-2012-06-15 Christophe Dumez <christophe.dumez@intel.com>
-
- [WK2][EFL] Implement navigation back/forward in Ewk_View
- https://bugs.webkit.org/show_bug.cgi?id=89173
-
- Reviewed by Kenneth Rohde Christiansen.
-
- Add API for Ewk_View to ask the main frame to navigate backwards
- or forwards in history. Also add API to query if such navigation
- is possible.
-
- * UIProcess/API/efl/ewk_view.cpp:
- (ewk_view_back):
- (ewk_view_forward):
- (ewk_view_back_possible):
- (ewk_view_forward_possible):
- * UIProcess/API/efl/ewk_view.h:
-
-2012-06-15 Christophe Dumez <christophe.dumez@intel.com>
-
- [EFL][WK2] Implement reload / stop in Ewk_View
- https://bugs.webkit.org/show_bug.cgi?id=89168
-
- Reviewed by Kenneth Rohde Christiansen.
-
- Add API on the Ewk_View to reload the main frame
- and to stop the current load.
-
- * UIProcess/API/efl/ewk_view.cpp:
- (ewk_view_reload):
- (ewk_view_stop):
- * UIProcess/API/efl/ewk_view.h:
-
-2012-06-14 Kent Tamura <tkent@chromium.org>
-
- Validate form state strings in FormController::setStateForNewFormElements()
- https://bugs.webkit.org/show_bug.cgi?id=88768
-
- Reviewed by Hajime Morita.
-
- * win/WebKit2.def: Expose some symbols used by Internals.cpp.
- * win/WebKit2CFLite.def: ditto.
-
-2012-06-14 Tim Horton <timothy_horton@apple.com>
-
- DrawingArea: Painting is being resumed while the view is not visible
- https://bugs.webkit.org/show_bug.cgi?id=88940
- <rdar://problem/11652545>
-
- Reviewed by Dean Jackson.
-
- Using requestAnimationFrame and the fullscreen API on a DrawingArea-backed window would cause
- rAF to permanently suspend animations after entering full-screen mode, because of the following:
-
- 0. JavaScript causes fullscreen transition to start.
- 1. Painting (and rAF) are suspended.
- 2. The page changes size.
- a. DrawingAreaProxyImpl::sizeDidChange() calls DrawingAreaImpl::updateBackingStoreState, which calls DrawingAreaImpl::resumePainting.
- b. DrawingAreaImpl::resumePainting resumes painting, but does *not* resume rAF, because windowIsVisible is (legitimately) false.
- 3. The view becomes visible, windowIsVisible is updated to true.
- 4. visibilityDidChange() calls resumePainting again, but this time it early exits because painting is not suspended.
-
- Notice that because of the early exit in 4, rAF is never resumed.
-
- To solve this and prevent any further bugs caused by these unnecessary calls to resume/suspendPainting,
- temporarily stop sending SuspendPainting/ResumePainting messages from DrawingAreaProxyImpl::visibilityDidChange
- during the window animations that occur while entering and exiting full-screen.
-
- * UIProcess/API/mac/WKViewInternal.h:
- * UIProcess/API/mac/WKView.mm:
- (-[WKView setAutomaticallySuspendAndResumePainting:]):
- (-[WKView automaticallySuspendAndResumePainting]):
- * UIProcess/DrawingAreaProxyImpl.cpp:
- (WebKit::DrawingAreaProxyImpl::visibilityDidChange):
- * UIProcess/WebPageProxy.h:
- (WebKit::WebPageProxy::setShouldSuspendAndResumePainting):
- (WebKit::WebPageProxy::shouldSuspendAndResumePainting):
- * UIProcess/mac/WKFullScreenWindowController.mm:
- (-[WKFullScreenWindowController enterFullScreen:]):
- (-[WKFullScreenWindowController _startEnterFullScreenAnimationWithDuration:]):
-
-2012-06-14 Jia Pu <jpu@apple.com>
-
- Mark text with text alternative with blue underline.
- https://bugs.webkit.org/show_bug.cgi?id=83047
-
- Reviewed by Enrica Casucci.
-
- Changes in WebKit2 include implementation of new functions declared in AlternativeTextClient,
- and logic for calling Editor::insertDictatedText() instead of Editor::insertText() when there's
- alternatives attached to the input string.
-
- * Shared/API/c/WKContextMenuItemTypes.h:
- * Shared/API/c/WKSharedAPICast.h:
- * Shared/WebCoreArgumentCoders.cpp:
- * Shared/WebCoreArgumentCoders.h:
- * UIProcess/API/mac/PageClientImpl.h:
- * UIProcess/API/mac/PageClientImpl.mm:
- (WebKit::PageClientImpl::PageClientImpl):
- (WebKit::PageClientImpl::pageClosed):
- (WebKit::PageClientImpl::addDictationAlternatives):
- (WebKit::PageClientImpl::removeDictationAlternatives):
- (WebKit::PageClientImpl::showDictationAlternativeUI):
- (WebKit::PageClientImpl::dictationAlternatives):
- (WebKit::PageClientImpl::dismissDictationAlternativeUI):
- * UIProcess/API/mac/WKView.mm:
- (-[WKView insertText:replacementRange:]):
- (-[WKView validAttributesForMarkedText]):
- (-[WKView handleAcceptedAlternativeText:]):
- * UIProcess/API/mac/WKViewInternal.h:
- * UIProcess/PageClient.h:
- * UIProcess/WebPageProxy.cpp:
- (WebKit::WebPageProxy::showDictationAlternativeUI):
- (WebKit::WebPageProxy::dismissDictationAlternativeUI):
- (WebKit::WebPageProxy::removeDictationAlternatives):
- (WebKit::WebPageProxy::dictationAlternatives):
- * UIProcess/WebPageProxy.h:
- * UIProcess/WebPageProxy.messages.in:
- * UIProcess/mac/CorrectionPanel.mm:
- (correctionIndicatorType):
- (WebKit::CorrectionPanel::handleAcceptedReplacement):
- * UIProcess/mac/WebPageProxyMac.mm:
- (WebKit::WebPageProxy::insertDictatedText):
- * WebProcess/WebCoreSupport/WebAlternativeTextClient.h:
- (WebAlternativeTextClient):
- * WebProcess/WebCoreSupport/mac/WebAlternativeTextClient.cpp:
- (WebKit::WebAlternativeTextClient::showCorrectionAlternative):
- (WebKit::WebAlternativeTextClient::dismissAlternative):
- (WebKit::WebAlternativeTextClient::dismissAlternativeSoon):
- (WebKit::WebAlternativeTextClient::recordAutocorrectionResponse):
- (WebKit::WebAlternativeTextClient::removeDictationAlternatives):
- (WebKit::WebAlternativeTextClient::showDictationAlternativeUI):
- (WebKit::WebAlternativeTextClient::dismissDictationAlternativeUI):
- (WebKit::WebAlternativeTextClient::dictationAlternatives):
- * WebProcess/WebPage/WebPage.h:
- * WebProcess/WebPage/WebPage.messages.in:
- * WebProcess/WebPage/mac/WebPageMac.mm:
- (WebKit::WebPage::insertDictatedText):
-
-2012-06-13 Andreas Kling <kling@webkit.org>
+ (webkitWebViewLoadChanged):
- Chinese IM receives incorrect/duplicated key events in text fields in webpages in Safari.
- <http://webkit.org/b/89048>
- <rdar://problem/11449702>
+2012-10-03 Christophe Dumez <christophe.dumez@intel.com>
- Reviewed by Darin Adler.
+ [EFL][WK2] Implement focus/unfocus in UIClient
+ https://bugs.webkit.org/show_bug.cgi?id=98253
- Send the DidReceiveEvent message with the DispatchMessageEvenWhenWaitingForSyncReply flag
- for keyboard events. This ensures that it always arrives before the corresponding synchronous
- InterpretQueuedKeyEvent message.
+ Reviewed by Gyuyoung Kim.
- The problem was that we relied on DidReceiveEvent / InterpretQueuedKeyEvent always arriving in
- the same order they were sent. This was not always true, since DidReceiveEvent (async) would
- get deferred during an unrelated waitForSyncReply() whereas InterpretQueuedKeyEvent (sync)
- gets dispatched right away.
+ Implement focus-related functionality in
+ WebKitEFL's UIClient.
- * WebProcess/WebPage/WebPage.cpp:
- (WebKit::WebPage::keyEvent):
+ * UIProcess/API/efl/ewk_view_ui_client.cpp:
+ (focus):
+ (unfocus):
+ (takeFocus):
+ (ewk_view_ui_client_attach):
-2012-06-14 Carlos Garcia Campos <cgarcia@igalia.com>
+2012-10-03 Carlos Garcia Campos <cgarcia@igalia.com>
- [GTK] Add input methods submenu item to the default context menu for editable content
- https://bugs.webkit.org/show_bug.cgi?id=80600
+ [GTK] WebKitWebView doesn't emit notify:favicon when it changes in some cases in WebKit2
+ https://bugs.webkit.org/show_bug.cgi?id=98153
Reviewed by Martin Robinson.
- * GNUmakefile.am: Add new files to compilation.
- * UIProcess/API/gtk/WebKitContextMenuClient.cpp: Added.
- (getContextMenuFromProposedMenu): Call webkitWebViewContextMenu().
- (attachContextMenuClientToView): Add implementation for
- getContextMenuFromProposedMenu callback.
- * UIProcess/API/gtk/WebKitContextMenuClient.h: Added.
+ The main problem is that it relies on icon-ready signal to be
+ emitted by the favicon database, but that signal is only emitted
+ when the icon is loaded from the network or imported from the
+ database, but not when the icon is already in memory. The way to
+ detect if a web page doesn't have a favicon or it's unknown it's
+ also incorrectly done and the wrong error is returned for pages
+ not having a favicon.
+
+ * UIProcess/API/gtk/WebKitFaviconDatabase.cpp:
+ (GetFaviconSurfaceAsyncData): Add a GError field.
+ (getIconSurfaceSynchronously): Add a GError parameter and fill it
+ accordingly. Use imageForPageURL() instead of
+ nativeImageForPageURL() because the latter always returns NULL for
+ empty images, so it's not possible to know whether it's an empty
+ image or not. If the image is empty is because the web page is
+ known by the database and it doesn't have a favicon.
+ (processPendingIconsForURI): Pass the data error to
+ getIconSurfaceSynchronously(). Don't set the icon if the request
+ has been cancelled.
+ (webkitFaviconDatabaseGetFavicon): Pass NULL as error to
+ getIconSurfaceSynchronously().
+ (setErrorForAsyncResult): Fill also error for
+ WEBKIT_FAVICON_DATABASE_ERROR_FAVICON_UNKNOWN.
+ (webkit_favicon_database_get_favicon): If we get NULL as icon in
+ the first place, check the error code returned by
+ getIconSurfaceSynchronously() and return early if the page doesn't
+ have a favicon. Remove the cancelled signal to avoid race
+ conditions.
+ (webkit_favicon_database_get_favicon_finish): Errors are processed
+ before now, so simply propagate the error if any or return the
+ favicon.
* UIProcess/API/gtk/WebKitWebView.cpp:
- (webkitWebViewConstructed): Attach context menu client to view.
- (webkitWebViewCreateAndAppendDefaultMenuItems): Helper function to
- add default context menu items to the new context menu items vector.
- (webkitWebViewShouldShowInputMethodsMenu): Helper function to
- check whether to show the input methods submenu according to the
- gtk-show-input-method-menu GTK+ setting.
- (webkitWebViewCreateAndAppendInputMethodsMenuItem): Helper
- function to add input methods submenu to the new context menu
- items vector.
- (webkitWebViewContextMenu): Create a new context menu items vector
- containing default items and input methods submenu in case of
- editable content. The active content menu is populated using that
- new vector.
- * UIProcess/API/gtk/WebKitWebViewBase.cpp:
- (webkitWebViewBaseSetActiveContextMenu): Set the active context menu.
- (webkitWebViewBaseGetActiveContextMenu): Get the active context menu.
- * UIProcess/API/gtk/WebKitWebViewBasePrivate.h:
- * UIProcess/API/gtk/WebKitWebViewPrivate.h:
- * UIProcess/gtk/WebContextMenuProxyGtk.cpp:
- (WebKit::WebContextMenuProxyGtk::append): Helper method to add a
- new item to the context menu.
- (WebKit::WebContextMenuProxyGtk::populate): Add items to the
- context menu.
- (WebKit::WebContextMenuProxyGtk::showContextMenu): Populate the
- menu with the given items and popup the menu if it's not empty.
- (WebKit::WebContextMenuProxyGtk::hideContextMenu): Get the GtkMenu
- from the WebCore ContextMenu to popdown it.
- (WebKit::WebContextMenuProxyGtk::WebContextMenuProxyGtk): Call
- webkitWebViewBaseSetActiveContextMenu() to set the menu as the current
- active one for the view.
- (WebKit::WebContextMenuProxyGtk::~WebContextMenuProxyGtk): Call
- webkitWebViewBaseSetActiveContextMenu() with NULL to reset the
- current active context of the view. GtkMenu is destroyed by
- WebCore ContextMenu in its destructor.
- * UIProcess/gtk/WebContextMenuProxyGtk.h:
-
-2012-06-14 Christophe Dumez <christophe.dumez@intel.com>
-
- [WK2] Add implementation for registerIntentService in WebFrameLoaderClient
- https://bugs.webkit.org/show_bug.cgi?id=88399
-
- Reviewed by Kenneth Rohde Christiansen.
-
- Add implementation for registerIntentService() in
- WebFrameLoaderClient.
-
- * CMakeLists.txt:
- * GNUmakefile.list.am:
- * Shared/API/c/WKBase.h:
- * Shared/APIClientTraits.h:
- * Shared/APIObject.h:
- * Shared/IntentServiceInfo.cpp: Added.
- (WebKit):
- (WebKit::IntentServiceInfo::encode):
- (WebKit::IntentServiceInfo::decode):
- * Shared/IntentServiceInfo.h: Added.
- (CoreIPC):
- (WebKit):
- (IntentServiceInfo):
- * Target.pri:
- * UIProcess/API/C/WKAPICast.h:
- (WebKit):
- * UIProcess/API/C/WKPage.h:
- * UIProcess/API/gtk/WebKitLoaderClient.cpp:
- (attachLoaderClientToView):
- * UIProcess/WebIntentServiceInfo.cpp: Added.
- (WebKit):
- (WebKit::WebIntentServiceInfo::WebIntentServiceInfo):
- * UIProcess/WebIntentServiceInfo.h: Added.
- (WebKit):
- (WebIntentServiceInfo):
- (WebKit::WebIntentServiceInfo::create):
- (WebKit::WebIntentServiceInfo::~WebIntentServiceInfo):
- (WebKit::WebIntentServiceInfo::action):
- (WebKit::WebIntentServiceInfo::payloadType):
- (WebKit::WebIntentServiceInfo::href):
- (WebKit::WebIntentServiceInfo::title):
- (WebKit::WebIntentServiceInfo::disposition):
- (WebKit::WebIntentServiceInfo::type):
- * UIProcess/WebLoaderClient.cpp:
- (WebKit):
- (WebKit::WebLoaderClient::registerIntentServiceForFrame):
- * UIProcess/WebLoaderClient.h:
- (WebKit):
- (WebLoaderClient):
- * UIProcess/WebPageProxy.cpp:
- (WebKit):
- (WebKit::WebPageProxy::registerIntentServiceForFrame):
- * UIProcess/WebPageProxy.h:
- (WebKit):
- (WebPageProxy):
- * UIProcess/WebPageProxy.messages.in:
- * WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
- (WebKit):
- (WebKit::WebFrameLoaderClient::registerIntentService):
- * WebProcess/WebCoreSupport/WebFrameLoaderClient.h:
- (WebFrameLoaderClient):
+ (_WebKitWebViewPrivate): Keep a reference of the favicon.
+ (webkitWebViewCancelFaviconRequest): Cancel any async operation to
+ get the favicon.
+ (webkitWebViewUpdateFavicon): Check if favicon has changed and
+ save it emitting also notify::favicon signal.
+ (iconReadyCallback): Only update the favicon if we don't have one
+ already.
+ (webkitWebViewFinalize): Call webkitWebViewCancelFaviconRequest().
+ (getFaviconReadyCallback): Update the favicon.
+ (webkitWebViewRequestFavicon): Request a new favicon.
+ (webkitWebViewLoadChanged): Try to get the favicon when the load
+ has been committed and the URI is the final one.
+ (webkit_web_view_get_favicon): Return the cached favicon.
+ * UIProcess/API/gtk/tests/TestWebKitFaviconDatabase.cpp:
+ (serverCallback):
+ (testSetDirectory):
+ (testGetFavicon):
+ (testWebViewFavicon):
-2012-06-14 Carlos Garcia Campos <cgarcia@igalia.com>
+2012-10-02 Carlos Garcia Campos <cgarcia@igalia.com>
- [WK2] Add WKHitTestResultIsContentEditable()
- https://bugs.webkit.org/show_bug.cgi?id=80597
+ [GTK] Add API to get the web view that initiated a custom URI request to WebKit2 GTK+
+ https://bugs.webkit.org/show_bug.cgi?id=97895
Reviewed by Martin Robinson.
- * Shared/WebHitTestResult.cpp:
- (WebKit::WebHitTestResult::Data::encode): Encode isContentEditable.
- (WebKit::WebHitTestResult::Data::decode): Decode isContentEditable.
- * Shared/WebHitTestResult.h:
- (Data): Add isContentEditable.
- (WebKit::WebHitTestResult::Data::Data): Initialize
- isContentEditable.
- (WebKit::WebHitTestResult::isContentEditable): Returns whether
- hit test result target is editable content.
- * UIProcess/API/C/WKHitTestResult.cpp:
- (WKHitTestResultIsContentEditable): C API to get whether hit test
- result target is editable content.
- * UIProcess/API/C/WKHitTestResult.h:
- * UIProcess/API/gtk/WebKitHitTestResult.cpp:
- (webkitHitTestResultCreate): Add
- WEBKIT_HIT_TEST_RESULT_CONTEXT_EDITABLE flags to the context if
- hit test result target is editable content.
- (webkit_hit_test_result_context_is_editable): Returns TRUE if
- WEBKIT_HIT_TEST_RESULT_CONTEXT_EDITABLE flags is present in
- context.
- * UIProcess/API/gtk/WebKitHitTestResult.h:
- * UIProcess/API/gtk/docs/webkit2gtk-sections.txt: Add new symbols.
- * UIProcess/API/gtk/tests/TestWebKitWebView.cpp:
- (testWebViewMouseTarget): Add tests for
- WEBKIT_HIT_TEST_RESULT_CONTEXT_EDITABLE.
-
-2012-06-14 Grzegorz Czajkowski <g.czajkowski@samsung.com>
-
- [WK2] Fix client interface size for WKPageLoaderClient.
- https://bugs.webkit.org/show_bug.cgi?id=88764
-
- Reviewed by Anders Carlsson.
-
- Fixes offset of WKPageLoaderClient for version 0 by adding didDetectXSSForFrame.
- The offset should be off the first new callback that was added in the new version.
-
- * Shared/APIClientTraits.cpp:
- (WebKit):
-
-2012-06-13 Christophe Dumez <christophe.dumez@intel.com>
-
- [WK2] Add implementation for dispatchIntent in WebFrameLoaderClient
- https://bugs.webkit.org/show_bug.cgi?id=88340
-
- Reviewed by Kenneth Rohde Christiansen.
-
- Add implementation for dispatchIntent() in WebFrameLoaderClient.
-
- * CMakeLists.txt:
- * GNUmakefile.list.am:
- * Shared/API/c/WKBase.h:
- * Shared/APIClientTraits.h:
- * Shared/APIObject.h:
- * Shared/IntentData.cpp: Added.
- (WebKit):
- (WebKit::IntentData::encode):
- (WebKit::IntentData::decode):
- * Shared/IntentData.h: Added.
- (CoreIPC):
- (WebKit):
- (IntentData):
- * Target.pri:
- * UIProcess/API/C/WKAPICast.h:
- (WebKit):
- * UIProcess/API/C/WKPage.h:
- * UIProcess/API/gtk/WebKitLoaderClient.cpp:
- (attachLoaderClientToView):
- * UIProcess/WebIntentData.cpp: Added.
- (WebKit):
- (WebKit::WebIntentData::WebIntentData):
- (WebKit::WebIntentData::data):
- * UIProcess/WebIntentData.h: Added.
- (WebKit):
- (WebIntentData):
- (WebKit::WebIntentData::create):
- (WebKit::WebIntentData::~WebIntentData):
- (WebKit::WebIntentData::action):
- (WebKit::WebIntentData::payloadType):
- (WebKit::WebIntentData::extras):
- (WebKit::WebIntentData::suggestions):
- (WebKit::WebIntentData::type):
- * UIProcess/WebLoaderClient.cpp:
- (WebKit):
- (WebKit::WebLoaderClient::didReceiveIntentForFrame):
- * UIProcess/WebLoaderClient.h:
- (WebKit):
- (WebLoaderClient):
- * UIProcess/WebPageProxy.cpp:
- (WebKit):
- (WebKit::WebPageProxy::didReceiveIntentForFrame):
- * UIProcess/WebPageProxy.h:
- (WebKit):
- (WebPageProxy):
- * UIProcess/WebPageProxy.messages.in:
- * WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
- (WebKit::WebFrameLoaderClient::dispatchIntent):
-
-2012-06-13 Tim Horton <timothy_horton@apple.com>
-
- Rename _swapView:with: to _replaceView:with:
- https://bugs.webkit.org/show_bug.cgi?id=89037
-
- Reviewed by Darin Adler.
-
- _swapView:with: is a misnomer - after calling it, the first view is no longer
- contained within the view hierarchy. "Replace" is a more accurate term.
-
- * UIProcess/mac/WKFullScreenWindowController.mm:
- (-[WKFullScreenWindowController enterFullScreen:]):
- (-[WKFullScreenWindowController finishedExitFullScreenAnimation:]):
- (-[WKFullScreenWindowController _replaceView:with:]):
-
-2012-06-13 Martin Robinson <mrobinson@igalia.com>
-
- [GTK] Add an accelerated compositing implementation for WebKit2
- https://bugs.webkit.org/show_bug.cgi?id=86037
-
- Reviewed by Alejandro G. Castro.
-
- Add an implementation of LayerTreeHost for GTK+ that uses TextureMapperGL.
- Later this implementation will fall back to using the ImageBuffer TextureMapper.
-
- * GNUmakefile.am: Add new files to the compilation.
- * Shared/LayerTreeContext.h:
- (LayerTreeContext): The GTK+ version of the LayerTreeContext just holds window handle.
- * Shared/gtk/LayerTreeContextGtk.cpp: Copied from Source/WebKit2/WebProcess/WebPage/LayerTreeHost.cpp.
- * WebProcess/WebPage/gtk/LayerTreeHostGtk.h: Added.
- * WebProcess/WebPage/gtk/LayerTreeHostGtk.cpp: Added.
- Add this LayerTreeHost implementation that just creates a GL context from the widget X11 window ID.
- Later implementations might find a more cross-platform solution.
- * WebProcess/WebPage/gtk/WebPageGtk.cpp:
- (WebKit::WebPage::platformInitialize): Initialize the native window handle to be zero.
- (WebKit::WebPage::widgetMapped): When mapping the widget, try to get the native window
- handle and send it to the WebProcess.
-
-2012-06-13 Andras Becsi <andras.becsi@nokia.com>
-
- [Qt][WK2] ASSERT(m_rawAttributes.initialScale > 0) in QtViewportHandler::initialRect()
- https://bugs.webkit.org/show_bug.cgi?id=89026
-
- Reviewed by Csaba Osztrogonác.
-
- Only act on viewport attribute changes if the layout size is valid.
-
- * UIProcess/qt/QtViewportHandler.cpp:
- (WebKit::QtViewportHandler::setInitialScaleIfNeeded):
- (WebKit::QtViewportHandler::viewportAttributesChanged):
-
-2012-06-13 Brent Fulgham <bfulgham@webkit.org>
-
- [WinCairo] Build fix after Windows export definition file change.
-
- * win/WebKit2CFLite.def: Add missing symbol exports.
-
-2012-06-13 Allan Sandfeld Jensen <allan.jensen@nokia.com>
-
- [Qt] Fixed visible content rect lost during page-load
- https://bugs.webkit.org/show_bug.cgi?id=88991
-
- Reviewed by Kenneth Rohde Christiansen.
-
- * WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
- (WebKit::WebFrameLoaderClient::transitionToCommittedForNewPage):
-
-2012-06-13 Sheriff Bot <webkit.review.bot@gmail.com>
-
- Unreviewed, rolling out r120209.
- http://trac.webkit.org/changeset/120209
- https://bugs.webkit.org/show_bug.cgi?id=89007
-
- Broke the WebKit2 mac build. (Requested by andersca on
- #webkit).
-
- * CMakeLists.txt:
- * GNUmakefile.list.am:
- * Shared/API/c/WKBase.h:
- * Shared/APIClientTraits.h:
- * Shared/APIObject.h:
- * Shared/IntentData.cpp: Removed.
- * Shared/IntentData.h: Removed.
- * Target.pri:
- * UIProcess/API/C/WKAPICast.h:
- (WebKit):
- * UIProcess/API/C/WKPage.h:
- * UIProcess/API/gtk/WebKitLoaderClient.cpp:
- (attachLoaderClientToView):
- * UIProcess/WebIntentData.cpp: Removed.
- * UIProcess/WebIntentData.h: Removed.
- * UIProcess/WebLoaderClient.cpp:
- * UIProcess/WebLoaderClient.h:
- (WebKit):
- (WebLoaderClient):
- * UIProcess/WebPageProxy.cpp:
- * UIProcess/WebPageProxy.h:
- (WebKit):
- (WebPageProxy):
- * UIProcess/WebPageProxy.messages.in:
- * WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
- (WebKit::WebFrameLoaderClient::dispatchIntent):
-
-2012-06-13 Alexis Menard <alexis.menard@openbossa.org>
-
- Web Inspector: add a way to get the remote inspector url for a given page.
- https://bugs.webkit.org/show_bug.cgi?id=88902
-
- Reviewed by Jocelyn Turcotte.
-
- Expose the remote inspector url for a given page in the API. If you want
- to create a web view and load directly the inspector for the page you want to inspect,
- it helps to get the url as it is impossible to figure it out from the API layer.
-
- * UIProcess/API/qt/qquickwebview.cpp:
- (QQuickWebViewExperimental::remoteInspectorUrl):
- * UIProcess/API/qt/qquickwebview_p.h:
- * UIProcess/InspectorServer/WebInspectorServer.cpp:
- (WebKit):
- (WebKit::WebInspectorServer::inspectorUrlForPageID):
- * UIProcess/InspectorServer/WebInspectorServer.h:
- (WebInspectorServer):
- * UIProcess/InspectorServer/WebSocketServer.cpp:
- (WebKit::WebSocketServer::WebSocketServer):
- (WebKit::WebSocketServer::listen):
- (WebKit::WebSocketServer::close):
- * UIProcess/InspectorServer/WebSocketServer.h:
- (WebKit::WebSocketServer::bindAddress):
- (WebKit::WebSocketServer::port):
- (WebKit::WebSocketServer::serverState):
- (WebSocketServer):
- * UIProcess/InspectorServer/qt/WebInspectorServerQt.cpp:
- (WebKit::remoteInspectorPagePath):
- (WebKit):
- (WebKit::WebInspectorServer::inspectorUrlForPageID):
- (WebKit::WebInspectorServer::buildPageList):
- * UIProcess/WebInspectorProxy.h:
- (WebKit::WebInspectorProxy::remoteInspectionPageID):
-
-2012-06-13 Christophe Dumez <christophe.dumez@intel.com>
-
- [WK2] Add implementation for dispatchIntent in WebFrameLoaderClient
- https://bugs.webkit.org/show_bug.cgi?id=88340
-
- Reviewed by Kenneth Rohde Christiansen.
-
- Add implementation for dispatchIntent() in WebFrameLoaderClient.
-
- * CMakeLists.txt:
- * GNUmakefile.list.am:
- * Shared/API/c/WKBase.h:
- * Shared/APIClientTraits.h:
- * Shared/APIObject.h:
- * Shared/IntentData.cpp: Added.
- (WebKit):
- (WebKit::IntentData::encode):
- (WebKit::IntentData::decode):
- * Shared/IntentData.h: Added.
- (CoreIPC):
- (WebKit):
- (IntentData):
- * Target.pri:
- * UIProcess/API/C/WKAPICast.h:
- (WebKit):
- * UIProcess/API/C/WKPage.h:
- * UIProcess/API/gtk/WebKitLoaderClient.cpp:
- (attachLoaderClientToView):
- * UIProcess/WebIntentData.cpp: Added.
- (WebKit):
- (WebKit::WebIntentData::WebIntentData):
- (WebKit::WebIntentData::data):
- * UIProcess/WebIntentData.h: Added.
- (WebKit):
- (WebIntentData):
- (WebKit::WebIntentData::create):
- (WebKit::WebIntentData::~WebIntentData):
- (WebKit::WebIntentData::action):
- (WebKit::WebIntentData::payloadType):
- (WebKit::WebIntentData::extras):
- (WebKit::WebIntentData::suggestions):
- (WebKit::WebIntentData::type):
- * UIProcess/WebLoaderClient.cpp:
- (WebKit):
- (WebKit::WebLoaderClient::didReceiveIntentForFrame):
- * UIProcess/WebLoaderClient.h:
- (WebKit):
- (WebLoaderClient):
+ The message DidReceiveURIRequest is now sent to the page that
+ initiated the request that forwards the mesassage to the
+ WebSoupRequestManagerProxy.
+
+ * UIProcess/API/C/soup/WKSoupRequestManager.h: Update
+ didReceiveURIRequest callback to receive the initiating page ID.
+ * UIProcess/API/efl/ewk_context_request_manager_client.cpp:
+ (didReceiveURIRequest): Update the callback API change.
+ * UIProcess/API/gtk/WebKitRequestManagerClient.cpp:
+ (didReceiveURIRequest): Pass the initiating page to the
+ WebKitURISchemeRequest constructor.
+ * UIProcess/API/gtk/WebKitURISchemeRequest.cpp:
+ (_WebKitURISchemeRequestPrivate): Keep a reference to the
+ WebPageProxy that initiatesd the request.
+ (webkitURISchemeRequestCreate): Save the initiating page.
+ (webkit_uri_scheme_request_get_web_view): Return the view widget
+ of the initiating WebPageProxy.
+ * UIProcess/API/gtk/WebKitURISchemeRequest.h:
+ * UIProcess/API/gtk/WebKitURISchemeRequestPrivate.h:
+ * UIProcess/API/gtk/docs/webkit2gtk-sections.txt: Add new symbol.
+ * UIProcess/API/gtk/tests/TestWebKitWebContext.cpp:
* UIProcess/WebPageProxy.cpp:
- (WebKit):
- (WebKit::WebPageProxy::didReceiveIntentForFrame):
+ (WebKit::WebPageProxy::didReceiveURIRequest): Forward the request
+ to the soup request manager proxy.
* UIProcess/WebPageProxy.h:
- (WebKit):
- (WebPageProxy):
- * UIProcess/WebPageProxy.messages.in:
- * WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
- (WebKit::WebFrameLoaderClient::dispatchIntent):
-
-2012-06-13 Balazs Kelemen <kbalazs@webkit.org>
-
- [Qt][WK2] Scanning plugins blocks the UI for a long time
- https://bugs.webkit.org/show_bug.cgi?id=88535
-
- Reviewed by Simon Hausmann.
-
- Implement a persistent cache for the meta data of plugins.
- This way the UI process will not block for too long when
- it's time to scan the plugins (except the first time).
- The cache is a json file stored in a standard hidden cache
- directory.
-
- * Shared/qt/QtDefaultDataLocation.cpp: Added.
- (WebKit):
- (WebKit::defaultDataLocation):
- * Shared/qt/QtDefaultDataLocation.h: Added.
- (WebKit):
- Added a common helper for the path we use to
- put stuff into.
-
- * Target.pri:
- * UIProcess/Plugins/qt/PluginProcessProxyQt.cpp:
- (WebKit::cacheFile):
- (WebKit):
- (WebKit::readMetaDataFromCacheFile):
- (WebKit::writeToCacheFile):
- (WebKit::appendToCacheFile):
- (WebKit::tryReadPluginMetaDataFromCacheFile):
- (WebKit::PluginProcessProxy::scanPlugin):
- * UIProcess/qt/WebContextQt.cpp:
-
-2012-06-13 Kenneth Rohde Christiansen <kenneth@webkit.org>
-
- [Qt] Do not set contents pos to the current position
- https://bugs.webkit.org/show_bug.cgi?id=88990
-
- Reviewed by Laszlo Gombos.
-
- This is basically an optimization but it also solves flickering
- in some cases.
-
- * UIProcess/API/qt/qquickwebview.cpp:
- (QQuickWebView::setContentPos):
-
-2012-06-12 MORITA Hajime <morrita@google.com>
-
- Shadow Pseudo ID should be able to nest to point nested shadow DOM.
- https://bugs.webkit.org/show_bug.cgi?id=62218
-
- Reviewed by Dimitri Glazkov.
-
- * win/WebKit2.def:
- * win/WebKit2CFLite.def:
-
-2012-06-12 Kenneth Rohde Christiansen <kenneth@webkit.org>
-
- Unreviewed build fix.
-
- * UIProcess/qt/QtViewportHandler.cpp:
- (WebKit::QtViewportHandler::initialRect):
-
-2012-06-11 Jocelyn Turcotte <jocelyn.turcotte@nokia.com>
-
- Using extrernal ICU library on case unsensitive drives will not work
- https://bugs.webkit.org/show_bug.cgi?id=70913
-
- Reviewed by Csaba Osztrogonác.
-
- * WebProcess/WebPage/UpdateAtlas.cpp:
-
-2012-06-12 Kenneth Rohde Christiansen <kenneth@webkit.org>
-
- [Qt] Do not move/scale content while the user is interacting with it
- https://bugs.webkit.org/show_bug.cgi?id=88872
-
- Reviewed by Simon Hausmann.
-
- Don't try moving content into valid bounds when the content
- size changes and the user is interacting with the content.
-
- Only apply the viewport initial scale after user interaction
- has ended.
-
- * UIProcess/qt/QtViewportHandler.cpp:
- (WebKit::ViewportUpdateDeferrer::~ViewportUpdateDeferrer):
- (WebKit::QtViewportHandler::setInitialScaleIfNeeded):
- (WebKit::QtViewportHandler::viewportAttributesChanged):
- (WebKit::QtViewportHandler::pageContentsSizeChanged):
- (WebKit::QtViewportHandler::initialRect):
- (WebKit):
- * UIProcess/qt/QtViewportHandler.h:
- (QtViewportHandler):
-
-2012-06-11 Kaustubh Atrawalkar <kaustubh@motorola.com>
-
- [DRT] LTC:: counterValueForElementById() could be moved to Internals.
- https://bugs.webkit.org/show_bug.cgi?id=84406
-
- Reviewed by Hajime Morita.
-
- Exporting Internals::counterValueForElement symbols for the win build.
-
- * win/WebKit2.def:
-
-2012-06-11 Ryuan Choi <ryuan.choi@samsung.com>
-
- [CMAKE][WK2] Make WebProcess target name more clear.
- https://bugs.webkit.org/show_bug.cgi?id=88767
-
- Reviewed by Ryosuke Niwa.
-
- * CMakeLists.txt: Change WebProcess_NAME to WebProcess_EXECUTABLE_NAME.
-
-2012-06-11 Alexis Menard <alexis.menard@openbossa.org>
-
- [CSS3 Backgrounds and Borders] Protect box-decoration-break behind a feature flag.
- https://bugs.webkit.org/show_bug.cgi?id=88804
-
- Reviewed by Tony Chang.
-
- Protect box-decoration-break behind a feature flag enabled by default.
-
- * Configurations/FeatureDefines.xcconfig:
-
-2012-06-11 Gyuyoung Kim <gyuyoung.kim@samsung.com>
-
- [CMAKE][EFL] Remove duplicated executable output path
- https://bugs.webkit.org/show_bug.cgi?id=88765
-
- Reviewed by Daniel Bates.
-
- CMake files for EFL port have redefined executable output path. However, EFL port doesn't
- need to define again because it is already defined in top-level CMake file.
-
- * CMakeLists.txt:
-
-2012-06-11 Anders Carlsson <andersca@apple.com>
-
- Pass the right color space over to the web process so we can set it on our CA context
- https://bugs.webkit.org/show_bug.cgi?id=88819
- <rdar://problem/11629050>
-
- Reviewed by John Sullivan.
-
- * Platform/mac/LayerHostingContext.h:
- (LayerHostingContext):
- * Platform/mac/LayerHostingContext.mm:
- (WebKit::LayerHostingContext::createForPort):
- (WebKit::LayerHostingContext::createForWindowServer):
- Use a single constructor and explicitly set up the parameters of the constructed object.
-
- (WebKit::LayerHostingContext::setColorSpace):
- (WebKit::LayerHostingContext::colorSpace):
- Add getter and setter.
-
- * Scripts/webkit2/messages.py:
- (struct_or_class):
- WebKit::ColorSpaceData is a struct.
-
- * Shared/WebPageCreationParameters.cpp:
- Encode and decode the color space parameter.
-
- * Shared/WebPageCreationParameters.h:
- Add the color space.
-
- * Shared/mac/ColorSpaceData.h: Added.
- * Shared/mac/ColorSpaceData.mm: Added.
- Add a new class that represents a color space that can be sent over the wire.
-
- * UIProcess/API/mac/PageClientImpl.h:
- * UIProcess/API/mac/PageClientImpl.mm:
- (WebKit::PageClientImpl::colorSpace):
- Call through to the WKView.
-
- * UIProcess/API/mac/WKView.mm:
- (-[WKView _windowDidChangeBackingProperties:]):
- Fix whitespace.
-
- (-[WKView viewDidChangeBackingProperties]):
- Check if our new color space is different from the current one and null the current one out if that is the case,
- it will be reinitialized by the next call to -[WKView _colorSpace].
-
- (-[WKView _colorSpace:]):
- Compute the color space. If we're not in a window we'll get the main screen's color space.
-
- * UIProcess/DrawingAreaProxy.h:
- (WebKit::DrawingAreaProxy::colorSpaceDidChange):
- Add empty stub.
-
- * UIProcess/PageClient.h:
- Add colorSpace getter.
-
- * UIProcess/WebPageProxy.cpp:
- (WebKit::WebPageProxy::creationParameters):
- Initialize the color space.
-
- * UIProcess/mac/TiledCoreAnimationDrawingAreaProxy.h:
- * UIProcess/mac/TiledCoreAnimationDrawingAreaProxy.mm:
- (WebKit::TiledCoreAnimationDrawingAreaProxy::colorSpaceDidChange):
- Send the new color space over to the web process.
-
- * UIProcess/mac/WebPageProxyMac.mm:
- (WebKit::WebPageProxy::colorSpace):
- Call through to the page client.
-
- * WebKit2.xcodeproj/project.pbxproj:
- Add ColorSpaceData.h and ColorSpaceData.mm.
-
- * WebProcess/WebPage/DrawingArea.h:
- * WebProcess/WebPage/DrawingArea.messages.in:
- Add SetColorSpace message.
-
- * WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.mm:
- (WebKit::TiledCoreAnimationDrawingArea::TiledCoreAnimationDrawingArea):
- Set the color space from the creation parameters.
-
- (WebKit::TiledCoreAnimationDrawingArea::setColorSpace):
- Set the color space on the layer hosting context.
-
- (WebKit::TiledCoreAnimationDrawingArea::updateLayerHostingContext):
- Make sure we apply the color space from the previous layer hosting context if one exists.
-
-2012-06-11 Anders Carlsson <andersca@apple.com>
-
- Crash when a plug-in tries to use the NPRuntime API with JavaScript disabled
- https://bugs.webkit.org/show_bug.cgi?id=88797
- <rdar://problem/11574844>
-
- Reviewed by Brady Eidson.
-
- * PluginProcess/PluginControllerProxy.cpp:
- (WebKit::PluginControllerProxy::initialize):
- Handle the windowNPObjectID being 0.
-
- (WebKit::PluginControllerProxy::windowScriptNPObject):
- Handle m_windownPObject being null.
-
- * WebProcess/Plugins/PluginView.cpp:
- (WebKit::PluginView::windowScriptNPObject):
- Return null if JavaScript is disabled.
-
- (WebKit::PluginView::pluginElementNPObject):
- Ditto.
-
-2012-06-11 Kenneth Rohde Christiansen <kenneth@webkit.org>
-
- Add QML api for setting device width and height
- https://bugs.webkit.org/show_bug.cgi?id=88777
-
- Reviewed by Simon Hausmann.
-
- Add the new API and set the default values to 0 (unset). The
- current values were introduced by Qt and only Qt depends on them.
-
- * Shared/WebPreferencesStore.h:
- (WebKit):
- * UIProcess/API/qt/qquickwebview.cpp:
- (QQuickWebViewExperimental::deviceWidth):
- (QQuickWebViewExperimental::setDeviceWidth):
- (QQuickWebViewExperimental::deviceHeight):
- (QQuickWebViewExperimental::setDeviceHeight):
- * UIProcess/API/qt/qquickwebview_p.h:
- * UIProcess/qt/QtViewportHandler.cpp:
- (WebKit::QtViewportHandler::viewportItemSizeChanged):
- * WebProcess/WebPage/WebPage.cpp:
- (WebKit::WebPage::sendViewportAttributesChanged):
-
-2012-06-11 Michael Brüning <michael.bruning@nokia.com>
-
- [Qt][WK2] Compute and set cache capacities using the current CacheModel
- https://bugs.webkit.org/show_bug.cgi?id=73918
-
- Reviewed by Kenneth Rohde Christiansen.
-
- Added implementation of cache model for Qt WK 2 port including supporting
- functionality such as WebProcess creation parameters and default values
- for disk cache directories.
-
- * Shared/WebProcessCreationParameters.cpp:
- (WebKit::WebProcessCreationParameters::encode):
- (WebKit::WebProcessCreationParameters::decode):
- * Shared/WebProcessCreationParameters.h:
- (WebProcessCreationParameters):
- * UIProcess/qt/WebContextQt.cpp:
- (WebKit::defaultDiskCacheDirectory):
- (WebKit):
- (WebKit::WebContext::platformInitializeWebProcess):
- * WebProcess/qt/WebProcessQt.cpp:
- (WebKit::physicalMemorySizeInBytes):
- (WebKit::WebProcess::platformSetCacheModel):
- (WebKit::WebProcess::platformInitializeWebProcess):
-
-2012-06-10 Darin Adler <darin@apple.com>
-
- Remove unneeded callRemovedLastRef function from TreeShared refactoring
- https://bugs.webkit.org/show_bug.cgi?id=88653
-
- Reviewed by Sam Weinig.
-
- * win/WebKit2.def: Export removedLastRef instead of callRemovedLastRef.
- * win/WebKit2CFLite.def: Ditto.
-
-2012-06-10 Ryuan Choi <ryuan.choi@samsung.com>
-
- [EFL][WK2] Add and refactor ewk API in order to support MiniBrowser without WK API.
- https://bugs.webkit.org/show_bug.cgi?id=84124
-
- Reviewed by Chang Shu.
-
- Modify ewk_view and add ewk_context to provide a platform-depedent WebKit2
- API.
- This patch provides the minimum to support MiniBrowser.
-
- * PlatformEfl.cmake: add ewk_context.cpp.
- * UIProcess/API/efl/EWebKit2.h: Added.
- * UIProcess/API/efl/ewk_context.cpp: Added.
- (_Ewk_Context):
- (createDefaultWebContext):
- (ewk_context_WKContext_get):
- (ewk_context_default_get):
- * UIProcess/API/efl/ewk_context.h: Added.
- * UIProcess/API/efl/ewk_context_private.h: Added.
- * UIProcess/API/efl/ewk_view.cpp:
- (_Ewk_View_Private_Data):
- (_ewk_view_priv_del):
- (ewk_view_base_add):
- (ewk_view_add_with_context):
- (ewk_view_add):
- (ewk_view_uri_set):
- (ewk_view_uri_get):
- * UIProcess/API/efl/ewk_view.h:
- * UIProcess/API/efl/ewk_view_private.h:
-
-2012-06-09 Sukolsak Sakshuwong <sukolsak@google.com>
-
- Add UNDO_MANAGER flag
- https://bugs.webkit.org/show_bug.cgi?id=87908
-
- Reviewed by Tony Chang.
-
- * Configurations/FeatureDefines.xcconfig:
-
-2012-06-08 Brent Fulgham <bfulgham@webkit.org>
- [WinCairo] Build fix after Windows export definition file change.
-
- * win/WebKit2CFLite.def: This file needs to be kept in sync with
- WebKit2.def (aside from the WebKitInterface exports.)
-
-2012-06-08 Viatcheslav Ostapenko <ostapenko.viatcheslav@nokia.com>
-
- [Qt] [WK2] API tests randomly assert in WebLayerTreeRenderer::assignImageToLayer
- https://bugs.webkit.org/show_bug.cgi?id=88667
-
- Reviewed by Noam Rosenthal.
-
- Move deactivation of WebLayerTreeRenderer from LayerTreeHostProxy::purgeBackingStores
- to WebLayerTreeRenderer::purgeGLResources. LayerTreeHostProxy::purgeBackingStores is
- invoked on main thread after going through call gate and it is too late to deactivate
- renderer here, because some update messages are able to go through.
- WebLayerTreeRenderer::purgeGLResources is called directly from render node deallocation
- and it is right place to deactivate renderer.
-
- * UIProcess/LayerTreeHostProxy.cpp:
- (WebKit::LayerTreeHostProxy::purgeBackingStores):
- * UIProcess/WebLayerTreeRenderer.cpp:
- (WebKit::WebLayerTreeRenderer::purgeGLResources):
-
-2012-06-08 Carlos Garcia Campos <cgarcia@igalia.com>
-
- [GTK] Add API to get the library version to WebKit2 GTK+
- https://bugs.webkit.org/show_bug.cgi?id=88426
-
- Reviewed by Martin Robinson.
-
- * GNUmakefile.am:
- * GNUmakefile.list.am:
- * UIProcess/API/gtk/WebKitVersion.cpp: Added.
- (webkit_get_major_version):
- (webkit_get_minor_version):
- (webkit_get_micro_version):
- * UIProcess/API/gtk/WebKitVersion.h.in: Added.
- * UIProcess/API/gtk/docs/webkit2gtk-docs.sgml: Add new symbols.
- * UIProcess/API/gtk/docs/webkit2gtk-sections.txt: Add new section
- for WebKitVersion.
- * UIProcess/API/gtk/tests/GNUmakefile.am:
- * UIProcess/API/gtk/tests/TestWebKitVersion.cpp: Added.
- (testWebKitVersion):
- (testWebKitCheckVersion):
- (beforeAll):
- (afterAll):
- * UIProcess/API/gtk/webkit2.h: Include WebKitVersion.h.
-
-2012-06-08 Dan Bernstein <mitz@apple.com>
-
- Tried to fix the Snow Leopard build after r119806.
-
- * WebKit2Prefix.h:
-
-2012-06-08 Andy Estes <aestes@apple.com>
-
- [WebKit2] Move Mac-specific bits from config.h to WebKit2Prefix.h
- https://bugs.webkit.org/show_bug.cgi?id=88625
-
- Reviewed by Dan Bernstein.
-
- Since the Mac supports prefix headers, there is no point in having
- Mac-specific code in WebKit2's config.h. Move it to WebKit2Prefix.h.
-
- * WebKit2Prefix.h:
- * config.h:
-
-2012-06-07 Kentaro Hara <haraken@chromium.org>
-
- Reduce Node object size from 72 byte to 64 byte
- https://bugs.webkit.org/show_bug.cgi?id=88528
-
- Reviewed by Ryosuke Niwa.
-
- Added a symbol for callRemovedLastRef().
-
- * mac/WebKit2.order:
- * win/WebKit2.def:
- * win/WebKit2CFLite.def:
-
-2012-06-07 Andy Estes <aestes@apple.com>
-
- [WebKit2] Explicitly include CoreFoundation.h in config.h
- https://bugs.webkit.org/show_bug.cgi?id=88619
-
- Reviewed by Dan Bernstein.
-
- WebKit2 relies (probably unintentionally) on CoreFoundation.h being
- included by CoreGraphics.h (via CGSession.h), but some versions of
- CoreGraphics headers don't include CoreFoundation.h. WebKit2 should
- include it explicitly in config.h.
-
- * config.h: Import CoreFoundation.h.
-
-2012-06-07 Andy Estes <aestes@apple.com>
-
- [WebKit2] Only include Cocoa.h on platforms that use AppKit
- https://bugs.webkit.org/show_bug.cgi?id=88517
-
- Reviewed by Sam Weinig.
-
- * WebKit2Prefix.h: Include Platform.h to get USE() macros. GTK needs to
- include autotoolsconfig.h before including Platform.h, so do that first
- if building on GTK. Then, if compiling an Objective-C file, it's safe
- to include Foundation.h, but not necessarily Cocoa.h; only include the
- latter if USE(APPKIT) is true.
- * config.h: There's no need to import Cocoa.h since this is already
- imported in the prefix header.
-
-2012-06-07 Anders Carlsson <andersca@apple.com>
-
- Search highlight does not scroll with the content of the page, and find overlay doesn't work, on large-enough window
- https://bugs.webkit.org/show_bug.cgi?id=88577
- <rdar://problem/11430118>
-
- Reviewed by John Sullivan.
-
- Prevent the page overlay layer from falling into tiled mode.
-
- * WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.mm:
- (WebKit::TiledCoreAnimationDrawingArea::createPageOverlayLayer):
-
-2012-06-07 Alexander Færøy <ahf@0x90.dk>
-
- Add QML API tests for Device Pixel Ratio
- https://bugs.webkit.org/show_bug.cgi?id=88531
-
- Reviewed by Kenneth Rohde Christiansen.
-
- This patch adds an initial test case for the QML device pixel ratio
- API. The test currently fails and is therefore marked as being
- expected to fail. This will be fixed in a separated patch.
-
- * UIProcess/API/qt/tests/qmltests/WebView/tst_devicePixelRatio.qml: Added.
-
-2012-06-07 Christophe Dumez <christophe.dumez@intel.com>
-
- [EFL][WK2] WebKit2-EFL does not link in debug mode
- https://bugs.webkit.org/show_bug.cgi?id=88518
-
- Unreviewed. Fix WebKit2-EFL linking error in debug mode.
-
- * CMakeLists.txt:
-
-2012-06-07 Simon Pena <spena@igalia.com>
-
- [GTK] Fix broken build due to missing <SECTION> in GTK-DOC
- https://bugs.webkit.org/show_bug.cgi?id=88525
-
- Unreviewed gardening. Added missing <SECTION> tag.
-
- * UIProcess/API/gtk/docs/webkit2gtk-sections.txt:
-
-2012-06-07 Carlos Garcia Campos <cgarcia@igalia.com>
-
- [GTK] Add API to register custom URI schemes to WebKit2 GTK+ API
- https://bugs.webkit.org/show_bug.cgi?id=84133
-
- Reviewed by Martin Robinson.
-
- * GNUmakefile.list.am: Add new files to compilation.
- * UIProcess/API/gtk/WebKitPrivate.h:
- * UIProcess/API/gtk/WebKitRequestManagerClient.cpp: Added.
- (didReceiveURIRequest): Callback emitted by the C API when a
- request for a custom URI scheme has been received. Call
- webkitWebContextReceivedURIRequest() to handle the request.
- (didFailToLoadURIRequest): Callback emitted by the C API when a
- request for a custom URI scheme failed to load. Call
- webkitWebContextDidFailToLoadURIRequest() to noitfy the web
- context.
- (attachRequestManagerClientToContext): Initialize the
- WKSoupRequestManagerClient.
- * UIProcess/API/gtk/WebKitRequestManagerClient.h: Added.
- * UIProcess/API/gtk/WebKitURISchemeRequest.cpp: Added.
- (webkit_uri_scheme_request_init):
- (webkitURISchemeRequestFinalize):
- (webkit_uri_scheme_request_class_init):
- (webkitURISchemeRequestCreate): Create a new
- WebKitURISchemeRequest for the given URI and request identifier.
- (webkitURISchemeRequestGetID): Return the request identifier.
- (webkitURISchemeRequestCancel): Cancel the request operation.
- (webkit_uri_scheme_request_get_scheme): Return the scheme of the
- request.
- (webkit_uri_scheme_request_get_uri): Return the full URI of the
- request.
- (webkit_uri_scheme_request_get_path): Return the path of the URI.
- (webkitURISchemeRequestReadCallback): Read callback emitted when
- reading the contents of the input stream.
- (webkit_uri_scheme_request_finish): Finish the request by reading
- the contents of the input stream and sending the data to the
- WebProcess.
- * UIProcess/API/gtk/WebKitURISchemeRequest.h: Added.
- * UIProcess/API/gtk/WebKitURISchemeRequestPrivate.h: Added.
- * UIProcess/API/gtk/WebKitWebContext.cpp:
- (WebKitURISchemeHandler::WebKitURISchemeHandler): Helper struct to
- save callback and user data of registered URI schemes.
- (createDefaultWebContext): Initialize the SoupRequestManager.
- (webkit_web_context_register_uri_scheme): Public API to register a
- custom URI scheme providing a callback that will be called to
- handle requests for that URI scheme.
- (webkitWebContextGetRequestManager): Helper private method to
- return the SoupRequestManager.
- (webkitWebContextReceivedURIRequest): Get the
- WebKitURISchemeHandler for the given request identifier and call
- the callback. Save the request in the request map.
- (webkitWebContextDidFailToLoadURIRequest): Cancel the ongoing
- request.
- (webkitWebContextDidFinishURIRequest): Remove the request from the
- map.
- * UIProcess/API/gtk/WebKitWebContext.h:
- * UIProcess/API/gtk/WebKitWebContextPrivate.h:
- * UIProcess/API/gtk/docs/webkit2gtk-docs.sgml: Add
- WebKitURISchemeRequest section.
- * UIProcess/API/gtk/docs/webkit2gtk-sections.txt: Add new symbols.
- * UIProcess/API/gtk/docs/webkit2gtk.types: Add
- webkit_uri_scheme_request_get_type.
- * UIProcess/API/gtk/tests/TestWebKitWebContext.cpp:
- (testWebContextURIScheme):
- (beforeAll):
- * UIProcess/API/gtk/webkit2.h: Include WebKitURISchemeRequest.h.
-
-2012-06-07 Andras Becsi <andras.becsi@nokia.com>
-
- [Qt][WK2] setPageItemRectVisible() is not guarded by ViewportUpdateDeferrer at scaleAnimationValueChanged()
- https://bugs.webkit.org/show_bug.cgi?id=87954
-
- Reviewed by Kenneth Rohde Christiansen.
-
- Resetting the end value, the easing curve or the duration of the scale animation triggers
- a recalculation of the animation interval. This might change the current value of the
- animated property.
- Since guarding of setPageItemRectVisible() relies on animation state change we have to
- make sure we only act on animation value changes if the animation is in active state.
-
- * UIProcess/qt/QtViewportHandler.cpp:
- (WebKit::QtViewportHandler::QtViewportHandler):
- (WebKit::QtViewportHandler::animatePageItemRectVisible):
- (WebKit::QtViewportHandler::scaleAnimationValueChanged):
-
-2012-06-06 Carlos Garcia Campos <cgarcia@igalia.com>
-
- [SOUP] WebSoupRequestManager should handle loading errors and zero-length replies
- https://bugs.webkit.org/show_bug.cgi?id=88087
-
- Reviewed by Martin Robinson.
-
- * UIProcess/API/C/soup/WKSoupRequestManager.h:
+ (WebPageProxy): Add didReceiveURIRequest().
+ * UIProcess/WebPageProxy.messages.in: Add DidReceiveURIRequest
+ message.
* UIProcess/soup/WebSoupRequestManagerClient.cpp:
- (WebKit::WebSoupRequestManagerClient::didFailToLoadURIRequest):
- Call didFailToLoadURIRequest in the client if present.
+ (WebKit::WebSoupRequestManagerClient::didReceiveURIRequest):
+ Pass the inititing page to the client callback.
* UIProcess/soup/WebSoupRequestManagerClient.h:
+ (WebSoupRequestManagerClient):
* UIProcess/soup/WebSoupRequestManagerProxy.cpp:
- (WebKit::WebSoupRequestManagerProxy::WebSoupRequestManagerProxy):
- Initialize m_loadFailed.
- (WebKit::WebSoupRequestManagerProxy::didReceiveURIRequestData):
- Don't send more data to the web process if the resource failed to
- load.
- (WebKit::WebSoupRequestManagerProxy::didFailToLoadURIRequest): Set
- m_loadFailed and notifiy the client calling didFailToLoadURIRequest.
+ (WebKit::WebSoupRequestManagerProxy::didReceiveURIRequest): Pass
+ the inititing page to the client.
* UIProcess/soup/WebSoupRequestManagerProxy.h:
- * UIProcess/soup/WebSoupRequestManagerProxy.messages.in: Add
- DidFailToLoadURIRequest message.
- * WebProcess/soup/WebKitSoupRequestGeneric.cpp:
- (webkitSoupRequestGenericSendAsync): Pass the cancellable to the
- WebSoupRequestManager.
+ (WebSoupRequestManagerProxy):
+ * UIProcess/soup/WebSoupRequestManagerProxy.messages.in: Remove
+ DidReceiveURIRequest message.
+ * WebProcess/WebCoreSupport/soup/WebFrameNetworkingContext.cpp:
+ (WebKit::WebFrameNetworkingContext::WebFrameNetworkingContext):
+ Save the pageID of the WebFrame.
+ (WebKit::WebFrameNetworkingContext::initiatingPageID): Return the
+ inititing page ID.
+ * WebProcess/WebCoreSupport/soup/WebFrameNetworkingContext.h:
* WebProcess/soup/WebSoupRequestManager.cpp:
- (WebKit::WebSoupRequestAsyncData::WebSoupRequestAsyncData): Helper
- struct to save requests.
- (WebSoupRequestAsyncData): Add a weak pointer to invalidate the
- request when it's destroyed before the operation has finished.
- (WebKit::WebSoupRequestAsyncData::~WebSoupRequestAsyncData):
- Remove the weak pointer.
- (WebKit::WebSoupRequestAsyncData::requestFailed): Return whther
- the request failed.
- (WebKit::WebSoupRequestAsyncData::releaseResult): Return the
- result and clear the pointer.
- (WebKit::WebSoupRequestManager::didHandleURIRequest): Create and
- empty memory stream for zero-length replies instead of creating an
- error.
- (WebKit::WebSoupRequestManager::didReceiveURIRequestData): If the
- request failed and more data expected from the UI process, send a
- message to the UI process to notify that the resource load failed.
- (WebKit::WebSoupRequestManager::send): Save request information in
- the request map.
- * WebProcess/soup/WebSoupRequestManager.h:
-
-2012-06-06 Andy Estes <aestes@apple.com>
-
- Wrap uppercaseWord, lowercaseWord, and capitalizeWord with USE(APPKIT)
- https://bugs.webkit.org/show_bug.cgi?id=88504
-
- Reviewed by Dan Bernstein.
-
- uppercaseWord, lowercaseWord, and capitalizeWord are methods declared
- by NSResponder that subclasses are expected to implement. WebKit should
- only support these implementations on platforms that use AppKit.
+ (WebKit::WebSoupRequestManager::send): Send DidReceiveURIRequest
+ message to the WebPage that initiated the request.
- * UIProcess/WebPageProxy.h:
- * WebProcess/WebCoreSupport/WebEditorClient.h:
- * WebProcess/WebCoreSupport/mac/WebEditorClientMac.mm:
- * WebProcess/WebPage/WebPage.cpp:
- * WebProcess/WebPage/WebPage.h:
- * WebProcess/WebPage/WebPage.messages.in:
-
-2012-06-06 chandra Shekar Vallala <chandra.vallala@motorola.com>
-
- [WK2-Gtk]Compilation errors with flag CONTEXT_MENUS=0
- https://bugs.webkit.org/show_bug.cgi?id=87842
-
- Reviewed by Martin Robinson.
-
- Fix for compilation errors while building webkit2-gtk with CONTEXT_MENUS=0
-
- * UIProcess/gtk/WebContextMenuProxyGtk.cpp: Added code under CONTEXT_MENUS CC
- * UIProcess/gtk/WebContextMenuProxyGtk.h: Ditto
- * WebProcess/WebCoreSupport/gtk/WebContextMenuClientGtk.cpp: Ditto
-
-2012-06-06 Michael Brüning <michael.bruning@nokia.com>
-
- [Qt][WK2] Add preferredMinimumContentsWidth to the viewport info in MiniBrowser.
- https://bugs.webkit.org/show_bug.cgi?id=88327
-
- Reviewed by Kenneth Rohde Christiansen.
-
- * UIProcess/API/qt/qquickwebview.cpp:
- (QQuickWebViewExperimental::setPreferredMinimumContentsWidth):
- * UIProcess/API/qt/qquickwebview_p.h:
-
-2012-06-06 Tim Horton <timothy_horton@apple.com>
-
- WebPage::windowIsVisible is incorrect during resumePainting
- https://bugs.webkit.org/show_bug.cgi?id=88374
- <rdar://problem/11587039>
-
- Reviewed by Simon Fraser.
-
- Currently, when changing window visibility, WKView calls viewStateDidChange(ViewIsVisible)
- and then _updateWindowVisibility. This means that during viewStateDidChange, the WebPage's
- windowIsVisible state is incorrect.
-
- viewStateDidChange(ViewIsVisible) can end up in (one of the DrawingArea implementations)::resumePainting(),
- which uses windowIsVisible to determine whether or not to unpause requestAnimationFrame.
-
- This results in a state where, with some configurations, doing the following:
-
- 1. requestAnimationFrame()
- 2. requestFullScreen()
- 3. requestAnimationFrame()
- 4. cancelFullScreen()
- 5. requestAnimationFrame()
-
- Will cause the second and third rAF calls to have no effect. Even after cancelFullScreen() is called,
- the fact that we have had unpaired suspend/resumeScriptedAnimations will cause the suspend count
- on the ScriptedAnimationController to never return to zero, which will cause us to never
- recover rAF functionality.
-
- The fix is very simple: we should _updateWindowVisibility *before* viewStateDidChange, so that it is
- always correct for any code called underneath that method.
-
- * UIProcess/API/mac/WKView.mm:
- (-[WKView viewDidMoveToWindow]):
- (-[WKView _windowDidOrderOffScreen:]):
- (-[WKView _windowDidOrderOnScreen:]):
-
-2012-06-05 Dinu Jacob <dinu.jacob@nokia.com>
-
- [Qt][WK2] Use Component.onCompleted in API tests for single and multi file upload tests.
- https://bugs.webkit.org/show_bug.cgi?id=88247
-
- Reviewed by Kenneth Rohde Christiansen.
-
- With r116936, Component.onCompleted can be used for callback instead of the
- 1s timer in single and multi file upload tests.
-
- * UIProcess/API/qt/tests/qmltests/WebView/tst_multiFileUpload.qml:
- * UIProcess/API/qt/tests/qmltests/WebView/tst_singleFileUpload.qml:
-
-2012-06-04 Stephanie Lewis <slewis@apple.com>
-
- https://bugs.webkit.org/show_bug.cgi?id=88370
- Memory sampler should trigger low memory signal
-
- Reviewed by Geoff Garen.
-
- Send low memory signal when running the memory sampler. We'd
- like to test memory that cannot be freed.
-
- * Shared/WebMemorySampler.cpp:
- (WebKit::WebMemorySampler::sampleTimerFired):
- * Shared/WebMemorySampler.h:
- (WebMemorySampler):
- * Shared/mac/WebMemorySampler.mac.mm:
- (WebKit):
- (WebKit::WebMemorySampler::sendMemoryPressureEvent):
-
-2012-06-05 Brady Eidson <beidson@apple.com>
-
- <rdar://problem/11575898> and https://bugs.webkit.org/show_bug.cgi?id=88372
- REGRESSION(110494): Can no longer drag-and-drop links into FileMaker Pro 12
-
- - Before r110494 we used to write the NSStringPboardType to the pasteboard.
- After r110494 we write NSURLPboardType instead.
- That's basically a no-op, but the NSStringPboardType needs to be restored.
- - Before r110494 we wrote the link destination URL to the pasteboard.
- After r110494 we write the image src URL if the link is an image.
- We need to revert to writing the link URL.
-
- Fortunately these changes can be accomplished with a 2-line fix.
-
- Reviewed by Enrica Casucci.
-
- * UIProcess/API/mac/WKView.mm:
- (-[WKView _setPromisedData:WebCore::withFileName:withExtension:withTitle:withURL:withVisibleURL:withArchive:WebCore::forPasteboard:]):
- n
-
-2012-06-05 Tor Arne Vestbø <tor.arne.vestbo@nokia.com>
-
- [Qt] Implement log channel initialization for WebKit2
-
- Reviewed by Alexis Menard.
-
- * Platform/Logging.cpp:
- (WebKit):
- * Platform/Logging.h:
- (WebKit):
- * Platform/qt/LoggingQt.cpp: Copied from Source/WebKit2/Platform/gtk/LoggingGtk.cpp
- (WebKit):
- (WebKit::initializeLogChannel):
- * Target.pri:
-
-2012-06-05 Jocelyn Turcotte <jocelyn.turcotte@nokia.com>
-
- WebLayerTreeRenderer behaves wrongly when no contentsScale is set.
- https://bugs.webkit.org/show_bug.cgi?id=88357
-
- Reviewed by Alexis Menard.
-
- The contentsScale needs to get a default value in case no
- value is explicitely set yet.
- This fixes the blank-until-resize problem when running MiniBrowser
- in --desktop mode.
-
- * UIProcess/WebLayerTreeRenderer.cpp:
- (WebKit::WebLayerTreeRenderer::WebLayerTreeRenderer):
-
-2012-06-05 Alexis Menard <alexis.menard@openbossa.org>
-
- [Qt] Don't propagate viewport size changes if the viewport is empty.
- https://bugs.webkit.org/show_bug.cgi?id=88336
+2012-10-02 Zan Dobersek <zandobersek@gmail.com>
- Reviewed by Tor Arne Vestbø.
+ Unreviewed build fix for the GTK port after r130207.
+ Use proper file separators for new entries.
- Qt Quick sequentially set the x, y, width, height of the view. We really want to
- start propagating further when the size of the viewport becomes valid, i.e. both
- height and width are defined. In any case lower level classes are discarding an empty
- size such as WebPage::sendViewportAttributesChanged() so it was pointless to send the size
- through the IPC bus for nothing.
-
- * UIProcess/API/qt/qquickwebview.cpp:
- (QQuickWebViewLegacyPrivate::updateViewportSize):
-
-2012-06-05 Carlos Garcia Campos <cgarcia@igalia.com>
-
- [GTK] Add webkit_download_get_received_data_length to WebKit2 GTK+ API
- https://bugs.webkit.org/show_bug.cgi?id=88323
-
- Reviewed by Martin Robinson.
-
- * UIProcess/API/gtk/WebKitDownload.cpp:
- (webkit_download_get_received_data_length):
- * UIProcess/API/gtk/WebKitDownload.h:
- * UIProcess/API/gtk/docs/webkit2gtk-sections.txt:
- * UIProcess/API/gtk/tests/TestDownloads.cpp:
-
-2012-06-05 Dongwoo Im <dw.im@samsung.com>
-
- Add 'isProtocolHandlerRegistered' and 'unregisterProtocolHandler'.
- https://bugs.webkit.org/show_bug.cgi?id=73176
-
- Reviewed by Adam Barth.
-
- Two more APIs are added in Custom Scheme Handler specification.
- http://dev.w3.org/html5/spec/Overview.html#custom-handlers
- One is 'isProtocolHandlerRegistered' to query whether the specific URL
- is registered or not.
- The other is 'unregisterProtocolHandler' to remove the registered URL.
-
- * Configurations/FeatureDefines.xcconfig: Add a macro 'ENABLE_CUSTOM_SCHEME_HANDLER'.
-
-2012-06-05 Christophe Dumez <christophe.dumez@intel.com>
-
- [EFL][WK2] WebKit2-EFL does not link with gold linker
- https://bugs.webkit.org/show_bug.cgi?id=88295
-
- Unreviewed. Fix linking when using gold linker.
-
- * PlatformEfl.cmake:
-
-2012-06-05 Mario Sanchez Prada <msanchez@igalia.com>
-
- [GTK][WK2] Implement API for Geolocation permission requests in the GTK port
- https://bugs.webkit.org/show_bug.cgi?id=83879
-
- Reviewed by Carlos Garcia Campos.
-
- Added a new kind of permission request for supporting the
- Geolocation API in WebKit2GTK+.
-
- New WebKitGeolocationPermissionRequest class, implementing the
- WebKitPermissionRequest interface, to enabling client applications
- to allow or deny geolocation permission requests.
-
- * GNUmakefile.list.am: Added new files.
- * UIProcess/API/gtk/WebKitGeolocationPermissionRequest.cpp: Added.
- (_WebKitGeolocationPermissionRequestPrivate):
- (webkitGeolocationPermissionRequestAllow):
- (webkitGeolocationPermissionRequestDeny):
- (webkit_permission_request_interface_init):
- (webkit_geolocation_permission_request_init):
- (webkitGeolocationPermissionRequestFinalize):
- (webkit_geolocation_permission_request_class_init):
- (webkitGeolocationPermissionRequestCreate):
- * UIProcess/API/gtk/WebKitGeolocationPermissionRequest.h: Added.
- (_WebKitGeolocationPermissionRequest):
- (_WebKitGeolocationPermissionRequestClass):
- * UIProcess/API/gtk/WebKitGeolocationPermissionRequestPrivate.h: Added.
-
- Include WKGeolocationPermissionRequest.h in WebKitPrivate.h, so we
- can use it from the new WebKitGeolocationPermissionRequest class.
-
- * UIProcess/API/gtk/WebKitPrivate.h: Added new include.
-
- Implement geolocation permission requests in the UI client.
-
- * UIProcess/API/gtk/WebKitUIClient.cpp:
- (decidePolicyForGeolocationPermissionRequest): Create a new
- instance of the WebKitGeolocationPermissionRequest class and call
- to webkitWebViewMakePermissionRequest().
- (attachUIClientToView): Provide an implementation function for
- decidePolicyForGeolocationPermissionRequest.
- * UIProcess/API/gtk/WebKitWebView.h: Add new element to
- WebKitPermissionRequestType enumeration for geolocation requests.
- * UIProcess/API/gtk/webkit2.h: Added header file for
- WebKitGeolocationPermissionRequest
-
- New unit tests to test allowing and denying permission requests.
-
- * UIProcess/API/gtk/tests/TestWebKitWebView.cpp:
- (testWebViewPermissionRequests): New test that loads a simple HTML
- with JavaScript code requesting the current location.
- (beforeAll): Added new test.
-
- Updated documentation files.
-
- * UIProcess/API/gtk/docs/webkit2gtk-docs.sgml:
- * UIProcess/API/gtk/docs/webkit2gtk-sections.txt:
-
-2012-06-04 Sadrul Habib Chowdhury <sadrul@chromium.org>
-
- [chromium] Fix software rendering for device-scale-factor > 1
- https://bugs.webkit.org/show_bug.cgi?id=88136
-
- Reviewed by Darin Fisher.
-
- Export WebCore::Page::setDeviceScaleFactor and WebCore::Settings::setDefaultDeviceScaleFactor.
-
- * win/WebKit2.def:
- * win/WebKit2CFLite.def:
-
-2012-06-04 Andy Estes <aestes@apple.com>
-
- Use ENABLE() and USE() macros in a few more places
- https://bugs.webkit.org/show_bug.cgi?id=88245
-
- Reviewed by Anders Carlsson.
-
- * UIProcess/API/C/WKPluginSiteDataManager.cpp: Only include npapi.h if
- Netscape plug-in API is enabled.
- * UIProcess/mac/CorrectionPanel.h: Wrap with USE(AUTOCORRECTION_PANEL)
- * WebProcess/Authentication/AuthenticationManager.cpp: Use the stub
- version of tryUsePlatformCertificateInfoForChallenge if
- Security.framework isn't available.
- * WebProcess/WebProcess.messages.in: Only generate two messages if
- Security.framework is available.
- * WebProcess/mac/KeychainItemShimMethods.mm: Wrap with
- USE(SECURITY_FRAMEWORK).
-
-2012-06-04 Andy Estes <aestes@apple.com>
-
- Add stub WebKit2 implementations of PLUGIN_PROXY_FOR_VIDEO methods declared in FrameLoaderClient
- https://bugs.webkit.org/show_bug.cgi?id=88244
-
- Reviewed by Anders Carlsson.
-
- * WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
- (WebKit::WebFrameLoaderClient::createMediaPlayerProxyPlugin): Add a stub implementation.
- (WebKit::WebFrameLoaderClient::hideMediaPlayerProxyPlugin): Ditto.
- (WebKit::WebFrameLoaderClient::showMediaPlayerProxyPlugin): Ditto.
- * WebProcess/WebCoreSupport/WebFrameLoaderClient.h:
-
-2012-06-04 Mario Sanchez Prada <msanchez@igalia.com>
-
- [GTK][WK2] Implement geolocation provider for the GTK port
- https://bugs.webkit.org/show_bug.cgi?id=83877
-
- Reviewed by Carlos Garcia Campos.
-
- Add a new client-based geolocation provider for WebKit2GTK+, relying the
- new Geoclue-based geolocation provider available in WebCore.
-
- * GNUmakefile.am:
* GNUmakefile.list.am:
- * UIProcess/API/gtk/WebKitGeolocationProvider.cpp: Added.
- (toGeolocationProvider):
- (startUpdatingCallback):
- (stopUpdatingCallback):
- (WebKitGeolocationProvider::~WebKitGeolocationProvider):
- (WebKitGeolocationProvider::create):
- (WebKitGeolocationProvider::WebKitGeolocationProvider):
- (WebKitGeolocationProvider::startUpdating):
- (WebKitGeolocationProvider::stopUpdating):
- (WebKitGeolocationProvider::notifyPositionChanged):
- (WebKitGeolocationProvider::notifyErrorOccurred):
- * UIProcess/API/gtk/WebKitGeolocationProvider.h: Added.
- * UIProcess/API/gtk/WebKitPrivate.h:
- * UIProcess/API/gtk/WebKitWebContext.cpp:
- (_WebKitWebContextPrivate):
- (createDefaultWebContext):
-
-2012-06-04 Zalan Bujtas <zbujtas@gmail.com>
-
- [Qt][WK2] Rename QtViewportInteractionEngine to QtViewportHandler.
- https://bugs.webkit.org/show_bug.cgi?id=88226
-
- Reviewed by Kenneth Rohde Christiansen.
-
- * Target.pri:
- * UIProcess/API/qt/qquickwebpage_p_p.h:
- (WebKit):
- * UIProcess/API/qt/qquickwebview.cpp:
- (QQuickWebViewFlickablePrivate::~QQuickWebViewFlickablePrivate):
- (QQuickWebViewFlickablePrivate::onComponentComplete):
- (QQuickWebViewFlickablePrivate::didChangeViewportProperties):
- (QQuickWebViewFlickablePrivate::updateViewportSize):
- (QQuickWebViewFlickablePrivate::pageDidRequestScroll):
- (QQuickWebViewFlickablePrivate::didChangeContentsSize):
- * UIProcess/API/qt/qquickwebview_p.h:
- (WebKit):
- * UIProcess/API/qt/qquickwebview_p_p.h:
- (WebKit):
- (QQuickWebViewPrivate::viewportHandler):
- (QQuickWebViewFlickablePrivate::viewportHandler):
- (QQuickWebViewFlickablePrivate):
- * UIProcess/API/qt/qwebkittest.cpp:
- (QWebKitTest::contentsScale):
- (QWebKitTest::devicePixelRatio):
- (QWebKitTest::initialScale):
- (QWebKitTest::minimumScale):
- (QWebKitTest::maximumScale):
- (QWebKitTest::isScalable):
- (QWebKitTest::layoutSize):
- * UIProcess/qt/QtGestureRecognizer.cpp:
- (WebKit::QtGestureRecognizer::viewportHandler):
- * UIProcess/qt/QtGestureRecognizer.h:
- (WebKit):
- * UIProcess/qt/QtPanGestureRecognizer.cpp:
- (WebKit::QtPanGestureRecognizer::update):
- (WebKit::QtPanGestureRecognizer::finish):
- (WebKit::QtPanGestureRecognizer::cancel):
- * UIProcess/qt/QtPinchGestureRecognizer.cpp:
- (WebKit::QtPinchGestureRecognizer::update):
- (WebKit::QtPinchGestureRecognizer::finish):
- (WebKit::QtPinchGestureRecognizer::cancel):
- * UIProcess/qt/QtViewportHandler.cpp: Copied from Source/WebKit2/UIProcess/qt/QtViewportInteractionEngine.cpp.
- (WebKit::ViewportUpdateDeferrer::ViewportUpdateDeferrer):
- (WebKit::ViewportUpdateDeferrer::~ViewportUpdateDeferrer):
- (ViewportUpdateDeferrer):
- (WebKit::QtViewportHandler::suspendPageContent):
- (WebKit::QtViewportHandler::resumePageContent):
- (WebKit::QtViewportHandler::cssScaleFromItem):
- (WebKit::QtViewportHandler::itemScaleFromCSS):
- (WebKit::QtViewportHandler::itemCoordFromCSS):
- (WebKit::QtViewportHandler::itemRectFromCSS):
- (WebKit::QtViewportHandler::QtViewportHandler):
- (WebKit::QtViewportHandler::~QtViewportHandler):
- (WebKit::QtViewportHandler::innerBoundedCSSScale):
- (WebKit::QtViewportHandler::outerBoundedCSSScale):
- (WebKit::QtViewportHandler::viewportAttributesChanged):
- (WebKit::QtViewportHandler::pageContentsSizeChanged):
- (WebKit::QtViewportHandler::setPageItemRectVisible):
- (WebKit::QtViewportHandler::animatePageItemRectVisible):
- (WebKit::QtViewportHandler::flickMoveStarted):
- (WebKit::QtViewportHandler::flickMoveEnded):
- (WebKit::QtViewportHandler::pageItemPositionChanged):
- (WebKit::QtViewportHandler::pageContentPositionRequested):
- (WebKit::QtViewportHandler::scaleAnimationStateChanged):
- (WebKit::QtViewportHandler::scaleAnimationValueChanged):
- (WebKit::QtViewportHandler::touchBegin):
- (WebKit::QtViewportHandler::touchEnd):
- (WebKit::QtViewportHandler::computePosRangeForPageItemAtScale):
- (WebKit::QtViewportHandler::focusEditableArea):
- (WebKit::QtViewportHandler::zoomToAreaGestureEnded):
- (WebKit::QtViewportHandler::nearestValidBounds):
- (WebKit::QtViewportHandler::setCSSScale):
- (WebKit::QtViewportHandler::currentCSSScale):
- (WebKit::QtViewportHandler::scrollAnimationActive):
- (WebKit::QtViewportHandler::panGestureActive):
- (WebKit::QtViewportHandler::panGestureStarted):
- (WebKit::QtViewportHandler::panGestureRequestUpdate):
- (WebKit::QtViewportHandler::panGestureEnded):
- (WebKit::QtViewportHandler::panGestureCancelled):
- (WebKit::QtViewportHandler::scaleAnimationActive):
- (WebKit::QtViewportHandler::cancelScrollAnimation):
- (WebKit::QtViewportHandler::interruptScaleAnimation):
- (WebKit::QtViewportHandler::pinchGestureActive):
- (WebKit::QtViewportHandler::pinchGestureStarted):
- (WebKit::QtViewportHandler::pinchGestureRequestUpdate):
- (WebKit::QtViewportHandler::pinchGestureEnded):
- (WebKit::QtViewportHandler::pinchGestureCancelled):
- (WebKit::QtViewportHandler::visibleContentsRect):
- (WebKit::QtViewportHandler::informVisibleContentChange):
- (WebKit::QtViewportHandler::viewportItemSizeChanged):
- (WebKit::QtViewportHandler::scaleContent):
- * UIProcess/qt/QtViewportHandler.h: Copied from Source/WebKit2/UIProcess/qt/QtViewportInteractionEngine.h.
- (QtViewportHandler):
- * UIProcess/qt/QtViewportInteractionEngine.cpp: Removed.
- * UIProcess/qt/QtViewportInteractionEngine.h: Removed.
- * UIProcess/qt/QtWebPageEventHandler.cpp:
- (WebKit::QtWebPageEventHandler::QtWebPageEventHandler):
- (WebKit::QtWebPageEventHandler::setViewportHandler):
- (WebKit::QtWebPageEventHandler::inputPanelVisibleChanged):
- (WebKit::QtWebPageEventHandler::doneWithTouchEvent):
- (WebKit::QtWebPageEventHandler::didFindZoomableArea):
- * UIProcess/qt/QtWebPageEventHandler.h:
- (WebKit):
- (QtWebPageEventHandler):
- (WebKit::QtWebPageEventHandler::viewportHandler):
-
-2012-06-04 David Kilzer <ddkilzer@apple.com>
-
- BUILD FIX: FeatureDefines.xcconfig should match across projects
-
- * Configurations/FeatureDefines.xcconfig:
- - Add missing ENABLE_LEGACY_CSS_VENDOR_PREFIXES.
-
-2012-06-04 Allan Sandfeld Jensen <allan.jensen@nokia.com>
-
- [Qt] Tap-to-zoom overshoot animation.
- https://bugs.webkit.org/show_bug.cgi?id=87108
-
- Reviewed by Tor Arne Vestbø.
- Reverts the change in animation, so the default is more "neutral".
- This should be made configurable later.
+2012-10-02 Joone Hur <joone.hur@intel.com>
- * UIProcess/qt/QtViewportInteractionEngine.cpp:
- (WebKit::QtViewportInteractionEngine::animatePageItemRectVisible):
+ Unreviewed, GTK+,Efl debug build fix after r130225.
-2012-06-04 Andras Becsi <andras.becsi@nokia.com>
+ This patch allows to include the static xErrorString variable when LOG_DISABLED is 0.
- [Qt][WK2] Refactor the tap gesture recognizer
- https://bugs.webkit.org/show_bug.cgi?id=88096
-
- Reviewed by Simon Hausmann.
-
- Refactor the tap gesture recognizer so that its internal state machine is
- self contained and independent of input event types.
- Also change the internal API for tap highlighting to make the code easier
- to understand on the caller side.
-
- This patch makes the tap gesture recognizer more robust, consistent with
- other gesture recognizers and fixes some issues related to highlighting
- and link activation with respect to native touch events.
-
- * UIProcess/qt/QtTapGestureRecognizer.cpp:
- (WebKit::QtTapGestureRecognizer::QtTapGestureRecognizer):
- (WebKit::QtTapGestureRecognizer::withinDistance):
- (WebKit::QtTapGestureRecognizer::update):
- (WebKit::QtTapGestureRecognizer::finish):
- (WebKit::QtTapGestureRecognizer::cancel):
- (WebKit::QtTapGestureRecognizer::highlightTimeout):
- (WebKit::QtTapGestureRecognizer::singleTapTimeout):
- (WebKit::QtTapGestureRecognizer::tapAndHoldTimeout):
- (WebKit::QtTapGestureRecognizer::reset):
- * UIProcess/qt/QtTapGestureRecognizer.h:
- (QtTapGestureRecognizer):
- * UIProcess/qt/QtWebPageEventHandler.cpp:
- (WebKit::QtWebPageEventHandler::QtWebPageEventHandler):
- (WebKit::QtWebPageEventHandler::activateTapHighlight):
- (WebKit::QtWebPageEventHandler::deactivateTapHighlight):
+ * PluginProcess/unix/PluginProcessMainUnix.cpp:
(WebKit):
- (WebKit::QtWebPageEventHandler::handleSingleTapEvent):
- (WebKit::QtWebPageEventHandler::handleDoubleTapEvent):
- (WebKit::QtWebPageEventHandler::doneWithTouchEvent):
- * UIProcess/qt/QtWebPageEventHandler.h:
- (QtWebPageEventHandler):
-
-2012-06-02 Geoffrey Garen <ggaren@apple.com>
-
- Try to fix the Windows build.
-
- * win/WebKit2.def:
- * win/WebKit2CFLite.def:
-
-2012-06-02 Andy Estes <aestes@apple.com>
-
- [WebKit2] Use USE(), ENABLE(), and HAVE() macros in more places
- https://bugs.webkit.org/show_bug.cgi?id=88182
- Reviewed by Sam Weinig.
-
- Use USE(APPKIT):
- * Shared/mac/NativeWebKeyboardEventMac.mm:
- * Shared/mac/NativeWebMouseEventMac.mm:
- * Shared/mac/NativeWebWheelEventMac.mm:
- * Shared/mac/WebEventFactory.h:
- * UIProcess/API/mac/WKTextInputWindowController.h:
- * UIProcess/API/mac/WKTextInputWindowController.mm:
- * UIProcess/PageClient.h:
- * UIProcess/WebPageProxy.h:
-
- Use ENABLE(NETSCAPE_PLUGIN_API):
- * UIProcess/API/C/WKPluginSiteDataManager.cpp:
- (WKPluginSiteDataManagerClearSiteData):
- (WKPluginSiteDataManagerClearAllSiteData):
-
- Use USE(AUTOCORRECTION_PANEL):
- * UIProcess/API/mac/PageClientImpl.h:
- * UIProcess/API/mac/PageClientImpl.mm:
- (WebKit::PageClientImpl::showCorrectionPanel):
- (WebKit::PageClientImpl::dismissCorrectionPanel):
- (WebKit::PageClientImpl::dismissCorrectionPanelSoon):
- * UIProcess/mac/CorrectionPanel.mm:
-
- Use HAVE(HOSTED_CORE_ANIMATION):
- * UIProcess/mac/WebContextMac.mm:
-
- Put ENABLE(FULLSCREEN_API) in the right place:
- * UIProcess/mac/WebFullScreenManagerProxyMac.mm:
-
- Remove unnecessary use of USE(APPKIT):
- * UIProcess/mac/WebPageProxyMac.mm:
-
- Use USE(SECURITY_FRAMEWORK):
- * WebProcess/Authentication/mac/AuthenticationManager.mac.mm:
-
- Use ENABLE(CONTEXT_MENUS):
- * WebProcess/WebCoreSupport/mac/WebContextMenuClientMac.mm:
-
- Use USE(SECURITY_FRAMEWORK):
- * WebProcess/WebProcess.h:
-
- Remove unnecessary use of USE(SECURITY_FRAMEWORK):
- * WebProcess/mac/WebProcessMac.mm:
+2012-10-02 Sam Weinig <sam@webkit.org>
-2012-06-02 Andy Estes <aestes@apple.com>
+ Fix a typo and add some \n's to make Mark happy.
- Remove a duplicate INIT() from WebSystemInterface.mm
- https://bugs.webkit.org/show_bug.cgi?id=88181
+ Rubber-stamped by Mark "logging must be fast" Rowe.
- Reviewed by Anders Carlsson.
-
- * WebProcess/WebCoreSupport/mac/WebSystemInterface.mm:
- (InitWebCoreSystemInterface):
-
-2012-06-02 Andy Estes <aestes@apple.com>
-
- Remove unnecessary import of <Cocoa/Cocoa.h>
- https://bugs.webkit.org/show_bug.cgi?id=88180
-
- Reviewed by Sam Weinig.
-
- * UIProcess/mac/WKFullKeyboardAccessWatcher.h:
-
-2012-06-02 Andy Estes <aestes@apple.com>
-
- Ensure cpu_type_t is defined by including <mach/machine.h>
- https://bugs.webkit.org/show_bug.cgi?id=88178
-
- Reviewed by Anders Carlsson.
-
- * Shared/Plugins/PluginModuleInfo.h:
+ * WebProcess/InjectedBundle/mac/InjectedBundleMac.mm:
+ (WebKit::InjectedBundle::load):
-2012-06-02 Sam Weinig <sam@webkit.org>
+2012-10-02 Sam Weinig <sam@webkit.org>
- InjectedBundles' sandbox extensions don't do what we think they do
- https://bugs.webkit.org/show_bug.cgi?id=88177
+ Add Objective-C API for the InjectedBundle
+ https://bugs.webkit.org/show_bug.cgi?id=98222
Reviewed by Anders Carlsson.
- This cannot be tested with our current infrastructure (or any modifications of the
- infrastructure I can think of) since it relies on the bundle being put outside
- the build directory where WebKit is put.
-
- * WebProcess/InjectedBundle/mac/InjectedBundleMac.cpp:
- (WebKit::InjectedBundle::load):
- Use SandboxExtension::consumePermanently() rather than consume(), otherwise,
- nulling out the SandboxExtension a few lines later invalidates the extension
- we just consumed.
-
-2012-06-02 Dan Bernstein <mitz@apple.com>
-
- Reverted the last change.
+ Add skeleton of the Objective-C API for the InjectedBundle.
* WebKit2.xcodeproj/project.pbxproj:
+ Add new API files.
+
+ * WebProcess/InjectedBundle/API/mac: Added.
+ * WebProcess/InjectedBundle/API/mac/WKWebProcessPlugIn.h: Added.
+ * WebProcess/InjectedBundle/API/mac/WKWebProcessPlugIn.mm: Added.
+ (-[WKWebProcessPlugIn _initWithPrincipalClassInstance:injectedBundle:]):
+ Initialization method for the WKWebProcessPlugIn object. This object will act as the WKBundleRef
+ object does in the C-SPI.
+ (+[WKWebProcessPlugIn _shared]):
+ Access the shared instance.
+ * WebProcess/InjectedBundle/API/mac/WKWebProcessPlugInInternal.h: Added.
-2012-06-02 Dan Bernstein <mitz@apple.com>
-
- Stop treating two Python scripts as private headers.
-
- * WebKit2.xcodeproj/project.pbxproj: Removed model.py and parser.py from the Copy Headers
- build phase.
-
-2012-06-02 Zeno Albisser <zeno@webkit.org>
-
- Fix and enable WebGL for WebKit2 on Qt.
- https://bugs.webkit.org/show_bug.cgi?id=86214
-
- Added glue code to make use of GraphicsSurface
- as a backend for the webgl-canvas in case of WK2.
-
- Reviewed by Noam Rosenthal.
-
- * UIProcess/API/qt/qwebpreferences.cpp:
- (QWebPreferencesPrivate::testAttribute):
- (QWebPreferencesPrivate::setAttribute):
- (QWebPreferences::webGLEnabled):
- (QWebPreferences::setWebGLEnabled):
- * UIProcess/API/qt/qwebpreferences_p.h:
- * UIProcess/API/qt/qwebpreferences_p_p.h:
- Added WebGLEnabled enum to allow enabling/disabling of
- WebGL using QWebPreferences.
-
- * UIProcess/LayerTreeHostProxy.cpp:
- (WebKit::LayerTreeHostProxy::syncCanvas):
- Dispatch syncCanvas calls to the apropriate
- WebLayerTreeRenderer.
-
- * UIProcess/LayerTreeHostProxy.h:
- (LayerTreeHostProxy):
- * UIProcess/LayerTreeHostProxy.messages.in:
- * UIProcess/WebLayerTreeRenderer.h:
- (WebLayerTreeRenderer):
- * UIProcess/WebLayerTreeRenderer.cpp:
- (WebKit::WebLayerTreeRenderer::syncCanvas):
- (WebKit::WebLayerTreeRenderer::deleteLayer):
- (WebKit::WebLayerTreeRenderer::purgeGLResources):
- Create a TextureMapperSurfaceBackingStore for the canvas
- if necessary and pass or update the graphicsSurfaceToken
- for to be used with the backing store.
-
- * WebProcess/WebCoreSupport/WebGraphicsLayer.cpp:
- (WebCore::WebGraphicsLayer::WebGraphicsLayer):
- (WebCore):
- (WebCore::WebGraphicsLayer::setContentsToCanvas):
- (WebCore::WebGraphicsLayer::syncCanvas):
- Copy the multisample framebuffer contents onto the GraphicsSurface.
- Notify the UIProcess of the availability of a new texture.
- (WebCore::WebGraphicsLayer::syncCompositingStateForThisLayerOnly):
- Sync the canvas as well.
-
- * WebProcess/WebCoreSupport/WebGraphicsLayer.h:
- Added a pure virtual function syncCanvas.
- This is guarded by PLATFORM(QT).
- (WebGraphicsLayerClient):
- (WebGraphicsLayer):
-
- * WebProcess/WebPage/qt/LayerTreeHostQt.cpp:
- (WebKit::LayerTreeHostQt::syncLayerChildren):
- (WebKit):
- (WebKit::LayerTreeHostQt::syncCanvas):
- * WebProcess/WebPage/qt/LayerTreeHostQt.h:
- (LayerTreeHostQt):
-
-2012-06-01 Brady Eidson <beidson@apple.com>
-
- <rdar://problem/11335622> and https://bugs.webkit.org/show_bug.cgi?id=88119
- REGRESSION (r99448) Zero-sized plug-ins no longer get an NPP_SetWindow call
-
- Followup to r119260
-
- Rubber-stamped by Anders Carlsson.
-
- * WebProcess/Plugins/Netscape/NetscapePlugin.cpp:
- (WebKit::NetscapePlugin::callSetWindow): Set the m_hasCalledSetWindow here...
- (WebKit::NetscapePlugin::geometryDidChange): ...instead of here.
-
-2012-06-01 Brady Eidson <beidson@apple.com>
-
- <rdar://problem/11335622> and https://bugs.webkit.org/show_bug.cgi?id=88119
- REGRESSION (r99448) Zero-sized plug-ins no longer get an NPP_SetWindow call
-
- Reviewed by Oliver Hunt.
-
- Add a flag to NetscapePlugin to track whether or not NPP_SetWindow has ever been called.
- Check this flag in geometryDidChange to make sure every plug-in gets the call at least once.
-
- "Everybody gets one. Tell him, Peter."
- "Apparently everybody gets one."
- "Bingo."
-
- * WebProcess/Plugins/Netscape/NetscapePlugin.cpp:
- (WebKit::NetscapePlugin::NetscapePlugin):
- (WebKit::NetscapePlugin::geometryDidChange):
- * WebProcess/Plugins/Netscape/NetscapePlugin.h:
- (NetscapePlugin):
-
-2012-06-01 Dinu Jacob <dinu.jacob@nokia.com>
-
- [WK2] WebLayerTreeRenderer::setContentsSize called synchronously
- https://bugs.webkit.org/show_bug.cgi?id=88091
-
- Reviewed by Noam Rosenthal.
-
- Do not call WebLayerTreeRenderer::setContentsSize synchronously
- from LayerTreeHostProxy.
-
- * UIProcess/LayerTreeHostProxy.cpp:
- (WebKit::LayerTreeHostProxy::setContentsSize):
-
-2012-06-01 Dinu Jacob <dinu.jacob@nokia.com>
-
- [Qt][WK2] Set QWebKitTest::isScalable default as false
- https://bugs.webkit.org/show_bug.cgi?id=88095
-
- Reviewed by Tor Arne Vestbø.
-
- Set QWebKitTest::isScalable default as false
-
- * UIProcess/API/qt/qwebkittest.cpp:
- (QWebKitTest::isScalable):
-
-2012-06-01 Allan Sandfeld Jensen <allan.jensen@nokia.com>
-
- [Qt] Remove QtViewportInteractionEngine::pageItemSizeChanged.
- https://bugs.webkit.org/show_bug.cgi?id=88082
-
- Reviewed by Kenneth Rohde Christiansen.
-
- The function was causing flickering, and after testing it was verified
- that it was no longer needed either.
-
- * UIProcess/qt/QtViewportInteractionEngine.cpp:
- (WebKit::QtViewportInteractionEngine::QtViewportInteractionEngine):
- * UIProcess/qt/QtViewportInteractionEngine.h:
- (QtViewportInteractionEngine):
-
-2012-06-01 Dinu Jacob <dinu.jacob@nokia.com>
-
- [Qt][WK2] Contents not rendered in MiniBrowser for some pages
- https://bugs.webkit.org/show_bug.cgi?id=87922
-
- Reviewed by Kenneth Rohde Christiansen.
-
- Set drawing area visible contents rect if new visible contents rect is different from
- the previous one.
-
- * UIProcess/qt/QtViewportInteractionEngine.cpp:
- (WebKit::QtViewportInteractionEngine::informVisibleContentChange):
- * UIProcess/qt/QtViewportInteractionEngine.h:
- (QtViewportInteractionEngine):
-
-2012-06-01 Kenneth Rohde Christiansen <kenneth@webkit.org>
-
- [Qt] Move suspension to QtViewportInteractionEngine
- https://bugs.webkit.org/show_bug.cgi?id=88078
-
- Reviewed by Simon Hausmann.
-
- Next step is to take care of visibility changes.
-
- * UIProcess/API/qt/qquickwebview.cpp:
- (QQuickWebViewFlickablePrivate::QQuickWebViewFlickablePrivate):
- (QQuickWebViewFlickablePrivate::onComponentComplete):
- * UIProcess/API/qt/qquickwebview_p.h:
- * UIProcess/API/qt/qquickwebview_p_p.h:
- (QQuickWebViewPrivate):
- (QQuickWebViewFlickablePrivate):
- * UIProcess/qt/QtViewportInteractionEngine.cpp:
- (WebKit::ViewportUpdateDeferrer::ViewportUpdateDeferrer):
- (WebKit::ViewportUpdateDeferrer::~ViewportUpdateDeferrer):
- (WebKit::QtViewportInteractionEngine::suspendPageContent):
- (WebKit):
- (WebKit::QtViewportInteractionEngine::resumePageContent):
- * UIProcess/qt/QtViewportInteractionEngine.h:
- (QtViewportInteractionEngine):
-
-2012-06-01 Dinu Jacob <dinu.jacob@nokia.com>
-
- [Qt][W2] Qml Error in ViewportInfoItem.qml in MiniBrowser
- https://bugs.webkit.org/show_bug.cgi?id=87999
-
- Reviewed by Kenneth Rohde Christiansen.
-
- Return default viewport attributes rather than invalid QVariant.
-
- * UIProcess/API/qt/qwebkittest.cpp:
- (QWebKitTest::contentsScale):
- (QWebKitTest::devicePixelRatio):
- (QWebKitTest::initialScale):
- (QWebKitTest::minimumScale):
- (QWebKitTest::maximumScale):
- (QWebKitTest::isScalable):
- (QWebKitTest::layoutSize):
-
-2012-05-31 Kenneth Rohde Christiansen <kenneth@webkit.org>
-
- [Qt] Clean up our viewport handling mess
- https://bugs.webkit.org/show_bug.cgi?id=87977
-
- Reviewed by Simon Hausmann.
-
- Consolidated functionality from QQuickWebViewPrivate* into
- ViewportInteractionEngine that belongs there, in preparation for
- renaming ViewportInteractionEngine in the future.
-
- Remove unneeded methods and move others to private.
-
- * UIProcess/API/qt/qquickwebview.cpp:
- (QQuickWebViewFlickablePrivate::QQuickWebViewFlickablePrivate):
- (QQuickWebViewFlickablePrivate::onComponentComplete):
- (QQuickWebViewFlickablePrivate::didChangeViewportProperties):
- (QQuickWebViewFlickablePrivate::updateViewportSize):
- (QQuickWebViewFlickablePrivate::_q_resume):
- (QQuickWebViewFlickablePrivate::pageDidRequestScroll):
- * UIProcess/API/qt/qquickwebview_p.h:
- * UIProcess/API/qt/qquickwebview_p_p.h:
- (QQuickWebViewPrivate):
- (QQuickWebViewFlickablePrivate):
- * UIProcess/qt/QtViewportInteractionEngine.cpp:
- (WebKit::ViewportUpdateDeferrer::~ViewportUpdateDeferrer):
- (WebKit::QtViewportInteractionEngine::QtViewportInteractionEngine):
- (WebKit::QtViewportInteractionEngine::viewportAttributesChanged):
- (WebKit::QtViewportInteractionEngine::pageContentsSizeChanged):
- (WebKit::QtViewportInteractionEngine::pageItemPositionChanged):
- (WebKit::QtViewportInteractionEngine::pageContentPositionRequested):
- (WebKit::QtViewportInteractionEngine::visibleContentsRect):
- (WebKit):
- (WebKit::QtViewportInteractionEngine::informVisibleContentChange):
- (WebKit::QtViewportInteractionEngine::viewportItemSizeChanged):
- * UIProcess/qt/QtViewportInteractionEngine.h:
- (WebKit):
- (QtViewportInteractionEngine):
-
-2012-05-31 Hajime Morrita <morrita@chromium.org>
-
- REGRESSION(r117572): editing/spelling/spellcheck-async-remove-frame.html crashes on Mac
- https://bugs.webkit.org/show_bug.cgi?id=86859
-
- Reviewed by Ryosuke Niwa.
-
- * WebProcess/WebCoreSupport/WebEditorClient.cpp:
- (WebKit::WebEditorClient::requestCheckingOfString):
- * WebProcess/WebCoreSupport/WebEditorClient.h:
-
-2012-05-31 Andy Estes <aestes@apple.com>
-
- [WebKit2] Remove nested #if conditions from messages.in files
- https://bugs.webkit.org/show_bug.cgi?id=88039
-
- Reviewed by Filip Pizlo.
-
- The code generator that processes messages.in files can't handle nested
- #if conditions. Sadly I added said conditions in r117700 but failed to
- verify the generated result. Un-nest the conditions I added.
-
- * UIProcess/WebPageProxy.messages.in:
- * WebProcess/WebPage/WebPage.messages.in:
-
-2012-05-31 Andy Estes <aestes@apple.com>
-
- Disentangle code that relies on USE(AUTOMATIC_TEXT_REPLACEMENT) from that which merely relies on PLATFORM(MAC)
- https://bugs.webkit.org/show_bug.cgi?id=87933
-
- Reviewed by Dan Bernstein.
-
- * WebProcess/WebCoreSupport/WebEditorClient.h:
- * WebProcess/WebCoreSupport/mac/WebEditorClientMac.mm:
-
-2012-05-31 Carlos Garcia Campos <cgarcia@igalia.com>
-
- [GTK] Add webkit_download_get_request to WebKit2 GTK+ API
- https://bugs.webkit.org/show_bug.cgi?id=87957
-
- Reviewed by Martin Robinson.
-
- * UIProcess/API/gtk/WebKitDownload.cpp:
- (webkit_download_get_request): Return the WebKitURIRequest
- representing the request that originated the download.
- * UIProcess/API/gtk/WebKitDownload.h:
- * UIProcess/API/gtk/docs/webkit2gtk-sections.txt: Add new symbol.
- * UIProcess/API/gtk/tests/TestDownloads.cpp:
- (testDownloadLocalFile):
- (testDownloadRemoteFile):
-
-2012-05-31 Carlos Garcia Campos <cgarcia@igalia.com>
-
- [SOUP] WebProcess crashes when a download is started from an existing ResourceHandle
- https://bugs.webkit.org/show_bug.cgi?id=87953
-
- Reviewed by Martin Robinson.
-
- The output stream to write the downloaded data is created in the
- didReceiveResponse callback of the download client. When a
- download is created for an existing ResourceHandle (this happens
- for example when policy decision is download), the response has
- already been received. In this case we should make sure that the
- download client is notified about the response, so that when data
- actually arrives the output stream has already been created.
-
- * WebProcess/Downloads/soup/DownloadSoup.cpp:
- (WebKit::Download::startWithHandle):
-
-2012-05-31 Carlos Garcia Campos <cgarcia@igalia.com>
-
- [GTK] Fix webkit_web_view_can_execute_editing_command() API doc
- https://bugs.webkit.org/show_bug.cgi?id=87930
-
- Reviewed by Martin Robinson.
-
- * UIProcess/API/gtk/WebKitWebView.cpp:
-
-2012-05-31 Tor Arne Vestbø <tor.arne.vestbo@nokia.com>
-
- [Qt] Simplify QT_VERSION_CHECKS for Qt5 by introducing HAVE(QT5)
- https://bugs.webkit.org/show_bug.cgi?id=87955
-
- Reviewed by Simon Hausmann.
-
- * UIProcess/API/qt/tests/publicapi/tst_publicapi.cpp:
-
-2012-05-31 Zalan Bujtas <zbujtas@gmail.com>
-
- [Qt][WK2] Add missing ViewportUpdateDeferrer guarding to setPageItemRectVisible() calls.
- https://bugs.webkit.org/show_bug.cgi?id=87936
-
- Reviewed by Kenneth Rohde Christiansen.
-
- * UIProcess/qt/QtViewportInteractionEngine.cpp:
- (WebKit::QtViewportInteractionEngine::viewportAttributesChanged):
- (WebKit::QtViewportInteractionEngine::pageContentsSizeChanged):
-
-2012-05-31 Keunsoon Lee <keunsoon.lee@samsung.com>
-
- [EFL][WK2] Add WKURLRequestEfl and WKURLResponseEfl
- https://bugs.webkit.org/show_bug.cgi?id=70231
-
- Reviewed by Chang Shu.
-
- These codes can be used for WKPageDecidePolicyForResponseCallback on page policy callbacks.
- The callback conveys WKURLResponseRef and WKURLRequestRef as parameter.
-
- By the way, EFL browser needs content type from response to decide correct policy.
- Another information, cookie, is necessary with similar reason.
- But, there is no way to obtain such information on WebKit2 main stream, except for WKURLRequestCopyURL().
-
- So, EFL port created those files to extract necessary information from WKURLResponseRef and WKURLRequestRef,
- and not to desturb WebKit2 main stream.
-
- * Shared/API/c/efl/WKURLRequestEfl.cpp: Added.
- (WKURLRequestEflCopyCookies): extracting cookie information from WKURLRequestRef.
- * Shared/API/c/efl/WKURLRequestEfl.h: Added.
- * Shared/API/c/efl/WKURLResponseEfl.cpp: Added.
- (WKURLResponseEflCopyContentType): extracting content type (i.e. MIME type) from WKURLResponseRef.
- * Shared/API/c/efl/WKURLResponseEfl.h: Added.
- * Shared/efl/WebCoreArgumentCodersEfl.cpp: Added.
- (CoreIPC):
- (CoreIPC::::encode):
- (CoreIPC::::decode):
- * Shared/efl/WebURLRequestEfl.cpp: Added.
- (WebKit):
- (WebKit::WebURLRequestEfl::WebURLRequestEfl):
- (WebKit::WebURLRequestEfl::cookies): obtaining cookie information from ResourceRequest.
- * Shared/efl/WebURLRequestEfl.h: Added.
- (WebKit):
- (WebURLRequestEfl):
- (WebKit::WebURLRequestEfl::create):
- * Shared/efl/WebURLResponseEfl.cpp: Added.
- (WebKit):
- (WebKit::WebURLResponseEfl::WebURLResponseEfl):
- (WebKit::WebURLResponseEfl::contentType): obtaining content type (i.e. MIME type) from ResourceResponse.
- * Shared/efl/WebURLResponseEfl.h: Added.
- (WebKit):
- (WebURLResponseEfl):
- (WebKit::WebURLResponseEfl::create):
-
-2012-05-31 Gyuyoung Kim <gyuyoung.kim@samsung.com>
-
- [EFL][WK2] Rename ewk_private.h to ewk_view_private.h
- https://bugs.webkit.org/show_bug.cgi?id=87923
-
- Reviewed by Kenneth Rohde Christiansen.
-
- EFL WK1 decided to divide up ewk_private.h into each file's XXX_private.h file in order to maintain
- internal functions more easily. EFL WK2 needs to adjust this as well.
-
- * UIProcess/API/efl/PageClientImpl.cpp:
- * UIProcess/API/efl/ewk_view_private.h: Renamed from Source/WebKit2/UIProcess/API/efl/ewk_private.h.
- (WebCore):
- * UIProcess/cairo/BackingStoreCairo.cpp:
-
-2012-05-31 Andy Estes <aestes@apple.com>
-
- Move the specification of framework and library linking out of WebKit2.xcodeproj and into WebKit2.xcconfig
- https://bugs.webkit.org/show_bug.cgi?id=87932
-
- Reviewed by Dan Bernstein.
-
- Doing this makes it easier to vary linking based on SDK or other factors.
-
- * Configurations/WebKit2.xcconfig: Create FRAMEWORK_AND_LIBRARY_LDFLAGS,
- which specifies the same list of frameworks and libraries that were
- previously in WebKit2's 'Link Binary With Libraries' build phase, and
- append it to $(OTHER_LDFLAGS).
- * WebKit2.xcodeproj/project.pbxproj: Remove all frameworks and
- libraries from the 'Link Binary With Libraries' build phase.
-
-2012-05-30 Sudarsana Nagineni <sudarsana.nagineni@linux.intel.com>
-
- [GTK] [WK2] Memory leak in webkitWebViewBaseStartDrag
- https://bugs.webkit.org/show_bug.cgi?id=87756
-
- Reviewed by Carlos Garcia Campos.
-
- Fixed memory leaks in drag and drop by using adoptRef instead
- of just getting new references.
-
- * UIProcess/API/gtk/WebKitWebViewBase.cpp:
- (webkitWebViewBaseStartDrag):
-
-2012-05-30 Luiz Agostini <luiz.agostini@nokia.com>
-
- [Qt] handled touchmove events should not cancel tap gesture recognition
- https://bugs.webkit.org/show_bug.cgi?id=87808
-
- Reviewed by Kenneth Rohde Christiansen.
-
- Tap gesture recognition should not be canceled if a touchmove event is handled
- by the web process.
-
- * UIProcess/qt/QtWebPageEventHandler.cpp:
- (WebKit::QtWebPageEventHandler::doneWithTouchEvent):
-
-2012-05-30 Mario Sanchez Prada <msanchez@igalia.com>
-
- [GTK][WK2] Errors in documentation about webkit_web_view_run_javascript()
- https://bugs.webkit.org/show_bug.cgi?id=87866
-
- Reviewed by Martin Robinson.
-
- * UIProcess/API/gtk/WebKitWebView.cpp: Fix errors.
-
-2012-05-30 Andy Estes <aestes@apple.com>
-
- WebProcessMainMac.mm doesn't need to import WKView.h.
-
- Rubber-stamped by Anders Carlsson.
-
- * WebProcess/mac/WebProcessMainMac.mm:
-
-2012-05-30 Marcelo Lira <marcelo.lira@openbossa.org>
-
- WebKit2: Implement layoutTestController.setPluginsEnabled() in WebKitTestRunner.
- https://bugs.webkit.org/show_bug.cgi?id=58593
-
- Adds the ability to change the pluginsEnabled flag in WebCore::Settings
- to WebKitTestRunner's LayoutTestController. The flag is modified via the
- public C API of the WebProcess.
-
- Reviewed by Darin Adler.
-
- * WebProcess/InjectedBundle/API/c/WKBundle.cpp:
- (WKBundleSetPluginsEnabled):
- * WebProcess/InjectedBundle/API/c/WKBundlePrivate.h:
- * WebProcess/InjectedBundle/InjectedBundle.cpp:
- (WebKit::InjectedBundle::setPluginsEnabled): Calls the setPluginsEnabled
- method for the WebCore::Settings of each WebCore::Page in the current
- page group.
- (WebKit):
* WebProcess/InjectedBundle/InjectedBundle.h:
- (InjectedBundle):
-
-2012-05-30 Caio Marcelo de Oliveira Filho <caio.oliveira@openbossa.org>
-
- HashTable.h has using directives for std::pair and std::make_pair
- https://bugs.webkit.org/show_bug.cgi?id=29919
-
- Reviewed by Darin Adler.
-
- Change code to use std::pair and std::make_pair.
-
- * UIProcess/Launcher/mac/DynamicLinkerEnvironmentExtractor.mm:
- (WebKit::DynamicLinkerEnvironmentExtractor::processEnvironmentVariable):
- * UIProcess/WebContext.cpp:
- (WebKit::WebContext::postMessageToInjectedBundle):
-
-2012-05-30 Kenneth Rohde Christiansen <kenneth@webkit.org>
-
- Unreviewed: Fix wrongly typed Qt slot.
-
- * UIProcess/qt/QtViewportInteractionEngine.cpp:
- (WebKit::QtViewportInteractionEngine::QtViewportInteractionEngine):
-
-2012-05-30 Kenneth Rohde Christiansen <kenneth@webkit.org>
-
- [Qt] Move ViewportAttribute related methods to the interaction engine.
- https://bugs.webkit.org/show_bug.cgi?id=87855
-
- Reviewed by Simon Hausmann.
-
- Move the logic of didChange{ViewportProperties|ContentsSize} to the
- interaction engine and update our testing object.
-
- * UIProcess/API/qt/qquickwebview.cpp:
- (QQuickWebViewLegacyPrivate::QQuickWebViewLegacyPrivate):
- (QQuickWebViewFlickablePrivate::didChangeViewportProperties):
- (QQuickWebViewFlickablePrivate::didChangeContentsSize):
- * UIProcess/API/qt/qquickwebview_p_p.h:
- (QQuickWebViewPrivate):
- * UIProcess/API/qt/qwebkittest.cpp:
- (QWebKitTest::contentsScale):
- (QWebKitTest::devicePixelRatio):
- (QWebKitTest::initialScale):
- (QWebKitTest::minimumScale):
- (QWebKitTest::maximumScale):
- (QWebKitTest::isScalable):
- (QWebKitTest::layoutSize):
- * UIProcess/qt/QtViewportInteractionEngine.cpp:
- (WebKit::QtViewportInteractionEngine::viewportAttributesChanged):
- (WebKit):
- (WebKit::QtViewportInteractionEngine::pageContentsSizeChanged):
- * UIProcess/qt/QtViewportInteractionEngine.h:
- (QtViewportInteractionEngine):
-
-2012-05-30 Kenneth Rohde Christiansen <kenneth@webkit.org>
-
- [Qt] Do renames in ViewportInteractionEngine as agreed upon
- https://bugs.webkit.org/show_bug.cgi?id=87845
-
- Reviewed by Simon Hausmann.
-
- Mostly moving methods around and renaming them to be more
- consistent and avoid terminology clashes.
-
- * UIProcess/API/qt/qquickwebview.cpp:
- (QQuickWebViewFlickablePrivate::didChangeViewportProperties):
- (QQuickWebViewFlickablePrivate::pageDidRequestScroll):
- (QQuickWebViewFlickablePrivate::didChangeContentsSize):
- * UIProcess/qt/QtViewportInteractionEngine.cpp:
- (WebKit::boundPosition):
- (WebKit):
- (WebKit::QtViewportInteractionEngine::QtViewportInteractionEngine):
- (WebKit::QtViewportInteractionEngine::setPageItemRectVisible):
- (WebKit::QtViewportInteractionEngine::animatePageItemRectVisible):
- (WebKit::QtViewportInteractionEngine::flickMoveStarted):
- (WebKit::QtViewportInteractionEngine::flickMoveEnded):
- (WebKit::QtViewportInteractionEngine::pageItemPositionChanged):
- (WebKit::QtViewportInteractionEngine::pageContentPositionRequest):
- (WebKit::QtViewportInteractionEngine::scaleAnimationValueChanged):
- (WebKit::QtViewportInteractionEngine::computePosRangeForPageItemAtScale):
- (WebKit::QtViewportInteractionEngine::focusEditableArea):
- (WebKit::QtViewportInteractionEngine::zoomToAreaGestureEnded):
- (WebKit::QtViewportInteractionEngine::nearestValidBounds):
- (WebKit::QtViewportInteractionEngine::cancelScrollAnimation):
- (WebKit::QtViewportInteractionEngine::pinchGestureEnded):
- (WebKit::QtViewportInteractionEngine::pageItemSizeChanged):
- * UIProcess/qt/QtViewportInteractionEngine.h:
- (WebKit::QtViewportInteractionEngine::setDevicePixelRatio):
- (QtViewportInteractionEngine):
-
-2012-05-30 Mariusz Grzegorczyk <mariusz.g@samsung.com>, Ryuan Choi <ryuan.choi@samsung.com>
-
- [EFL][WK2] Fix WebKit2-EFL build
- https://bugs.webkit.org/show_bug.cgi?id=83693
-
- Reviewed by Carlos Garcia Campos.
-
- * CMakeLists.txt: Move IDL generator codes to generate port specific *.messages.in.
- * PlatformEfl.cmake: Add soup related files after r115411 and includes to fix build break.
- * UIProcess/API/efl/PageClientImpl.cpp: Fix build break with ENABLE_TOUCH_EVENTS.
- (WebKit):
- (WebKit::PageClientImpl::doneWithTouchEvent):
- * UIProcess/API/efl/PageClientImpl.h:
- (PageClientImpl):
- * WebProcess/WebCoreSupport/WebChromeClient.cpp: Fix build break with ENABLE_INPUT_TYPE_COLOR and ENABLE_REGISTER_PROTOCOL_HANDLER.
- (WebKit):
- (WebKit::WebChromeClient::createColorChooser):
- * WebProcess/WebCoreSupport/WebChromeClient.h:
- (WebChromeClient):
- * WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp: Fix build break with ENABLE_WEB_INTENTS
- (WebKit):
- (WebKit::WebFrameLoaderClient::dispatchIntent):
- * WebProcess/WebCoreSupport/WebFrameLoaderClient.h:
- (WebCore):
- (WebFrameLoaderClient):
- * WebProcess/WebProcess.cpp: Guard PLATFORM_STRATEGIES codes.
- (WebKit::WebProcess::didGetPlugins):
- * WebProcess/soup/WebSoupRequestManager.cpp: Try to share with EFL port.
- (WebKit::WebSoupRequestManager::didHandleURIRequest):
-
-2012-05-30 Kenneth Rohde Christiansen <kenneth@webkit.org>
-
- [Qt] Variable renaming as preparation of further refactoring.
-
- Rubberstamped by Simon Hausmann.
-
- Change m_viewport to m_viewportItem and m_content to m_pageItem.
-
- * UIProcess/qt/QtViewportInteractionEngine.cpp:
- (WebKit::QtViewportInteractionEngine::QtViewportInteractionEngine):
- (WebKit::QtViewportInteractionEngine::setItemRectVisible):
- (WebKit::QtViewportInteractionEngine::animateItemRectVisible):
- (WebKit::QtViewportInteractionEngine::flickableMoveStarted):
- (WebKit::QtViewportInteractionEngine::flickableMoveEnded):
- (WebKit::QtViewportInteractionEngine::flickableMovingPositionUpdate):
- (WebKit::QtViewportInteractionEngine::scaleAnimationStateChanged):
- (WebKit::QtViewportInteractionEngine::pagePositionRequest):
- (WebKit::QtViewportInteractionEngine::computePosRangeForItemAtScale):
- (WebKit::QtViewportInteractionEngine::focusEditableArea):
- (WebKit::QtViewportInteractionEngine::zoomToAreaGestureEnded):
- (WebKit::QtViewportInteractionEngine::nearestValidBounds):
- (WebKit::QtViewportInteractionEngine::reset):
- (WebKit::QtViewportInteractionEngine::setCSSScale):
- (WebKit::QtViewportInteractionEngine::currentCSSScale):
- (WebKit::QtViewportInteractionEngine::scrollAnimationActive):
- (WebKit::QtViewportInteractionEngine::panGestureActive):
- (WebKit::QtViewportInteractionEngine::panGestureStarted):
- (WebKit::QtViewportInteractionEngine::panGestureRequestUpdate):
- (WebKit::QtViewportInteractionEngine::panGestureEnded):
- (WebKit::QtViewportInteractionEngine::panGestureCancelled):
- (WebKit::QtViewportInteractionEngine::cancelScrollAnimation):
- (WebKit::QtViewportInteractionEngine::pinchGestureStarted):
- (WebKit::QtViewportInteractionEngine::pinchGestureRequestUpdate):
- (WebKit::QtViewportInteractionEngine::scaleContent):
- * UIProcess/qt/QtViewportInteractionEngine.h:
- (QtViewportInteractionEngine):
-
-2012-05-30 Zalan Bujtas <zbujtas@gmail.com>
-
- [Qt][WK2] Do not use anonymous variables for ViewportUpdateDeferrer.
- https://bugs.webkit.org/show_bug.cgi?id=87831
-
- Reviewed by Kenneth Rohde Christiansen.
-
- * UIProcess/qt/QtViewportInteractionEngine.cpp:
- (WebKit::QtViewportInteractionEngine::pagePositionRequest):
- (WebKit::QtViewportInteractionEngine::cancelScrollAnimation):
- (WebKit::QtViewportInteractionEngine::itemSizeChanged):
-
-2012-05-30 Carlos Garcia Campos <cgarcia@igalia.com>
-
- Unreviewed. Fix WebKit2GTK+ API tests in the bots.
-
- * UIProcess/API/gtk/tests/TestWebKitWebView.cpp:
- (testWebViewCanShowMIMEType): Remove the check for multimedia and
- plugins MIME types since they depend on the configuration and they
- are not available in the bots.
-
-2012-05-29 Jer Noble <jer.noble@apple.com>
-
- Noticeable delay taking an HTML5 trailer fullscreen.
- https://bugs.webkit.org/show_bug.cgi?id=87794
-
- Reviewed by Darin Adler.
-
- Work around a not-entirely understood delay when using the results of a CGWindowListCreateImage()
- call as the contents of a placeholder view. The backing of the resulting CGImageRef resides on
- the WindowServer, and drawing that image requires synchronous calls to the WindowServer process.
- By copying the image data, up front, into our own process, we can avoid those synchronous calls
- later and avoid the delay-causing drawing behavior.
-
- * UIProcess/mac/WKFullScreenWindowController.mm:
- (CGImageDeepCopy): Added a helper function which copies the image data into a new CGImage.
- (-[WKFullScreenWindowController enterFullScreen:]): Use the above.
-
-2012-05-29 Sudarsana Nagineni <sudarsana.nagineni@linux.intel.com>
-
- [GTK] [WK2] Reproducible crash in performDragControllerAction
- https://bugs.webkit.org/show_bug.cgi?id=87744
-
- Reviewed by Martin Robinson.
-
- Fix a crash by using deref() instead of delete to dereference and
- release the platformData of DragData.
-
- * WebProcess/WebPage/WebPage.cpp:
- (WebKit::WebPage::performDragControllerAction):
-
-2012-05-29 Simon Pena <spena@igalia.com>
-
- [GTK] Missing field initializers for WKPageLoaderClient and WKPageUIClient
- https://bugs.webkit.org/show_bug.cgi?id=87745
-
- Reviewed by Carlos Garcia Campos.
-
- Add missing initializers for WKPageLoaderClient and
- WKPageUIClient, for callbacks WKPagePluginDidFailCallback and
- WKPageUnavailablePluginButtonClickedCallback, introduced in
- revision r116716.
-
- * UIProcess/API/gtk/WebKitLoaderClient.cpp:
- (attachLoaderClientToView): Initialize WKPagePluginDidFailCallback
- * UIProcess/API/gtk/WebKitUIClient.cpp:
- (attachUIClientToView): Initialize callback
- WKPageUnavailablePluginButtonClickedCallback
-
-2012-05-29 Carlos Garcia Campos <cgarcia@igalia.com>
-
- [GTK] Policy decision headers are not included in the main webkit2.h header
- https://bugs.webkit.org/show_bug.cgi?id=87753
-
- Reviewed by Martin Robinson.
-
- * UIProcess/API/gtk/webkit2.h: Include
- WebKitNavigationPolicyDecision.h and WebKitResponsePolicyDecision.h.
-
-2012-05-29 Carlos Garcia Campos <cgarcia@igalia.com>
-
- [GTK] Add webkit_web_view_can_show_mime_type() to WebKit2 GTK+ API
- https://bugs.webkit.org/show_bug.cgi?id=85998
-
- Reviewed by Martin Robinson.
-
- And use it in the default handler of WebKitWebView::decide-policy
- signal to decide whether to use or ignore a response policy
- decision depending on whether the mime type of the response can be
- displayed in the WebView or not.
-
- * UIProcess/API/gtk/WebKitURIResponse.cpp:
- (webkitURIResponseGetProperty): Add getter for mime-type property.
- (webkit_uri_response_class_init): Add mime-type property.
- (webkit_uri_response_get_mime_type): Return the mime type of the
- response.
- * UIProcess/API/gtk/WebKitURIResponse.h:
- * UIProcess/API/gtk/WebKitWebView.cpp:
- (webkitWebViewDecidePolicy): In case of response policy decisions,
- use the URI response to decide what to do: download if the
- response is an attachment, use if the mime type is supported by
- the web view or ignore otherwise.
- (webkit_web_view_can_show_mime_type): Returns whether the given
- mime type can be displayed in the WebView or not.
- * UIProcess/API/gtk/WebKitWebView.h:
- * UIProcess/API/gtk/docs/webkit2gtk-sections.txt: Add new symbols.
- * UIProcess/API/gtk/tests/TestResources.cpp:
- (testWebResourceResponse):
- (testWebResourceMimeType):
- (serverCallback):
- (beforeAll):
- * UIProcess/API/gtk/tests/TestWebKitWebView.cpp:
- (testWebViewCanShowMIMEType):
- (beforeAll):
-
-2012-05-29 David Barr <davidbarr@chromium.org>
-
- Introduce ENABLE_CSS_IMAGE_RESOLUTION compile flag
- https://bugs.webkit.org/show_bug.cgi?id=87685
-
- Reviewed by Eric Seidel.
-
- Add a configuration option for CSS image-resolution support, disabling it by default.
-
- * Configurations/FeatureDefines.xcconfig:
-
-2012-05-29 Kenneth Rohde Christiansen <kenneth@webkit.org>
-
- [Qt] Move tests from DesktopBehavior which can be made to work
- https://bugs.webkit.org/show_bug.cgi?id=87736
-
- Rubberstamped by Simon Hausmann.
-
- Move and modify the following tests to WebView/ and make them
- use touch events.
-
- * UIProcess/API/qt/tests/qmltests/WebView/tst_itemSelector.qml: Renamed from Source/WebKit2/UIProcess/API/qt/tests/qmltests/DesktopBehavior/tst_itemSelector.qml.
- * UIProcess/API/qt/tests/qmltests/WebView/tst_messaging.qml: Renamed from Source/WebKit2/UIProcess/API/qt/tests/qmltests/DesktopBehavior/tst_messaging.qml.
- * UIProcess/API/qt/tests/qmltests/WebView/tst_multiFileUpload.qml: Renamed from Source/WebKit2/UIProcess/API/qt/tests/qmltests/DesktopBehavior/tst_multiFileUpload.qml.
- * UIProcess/API/qt/tests/qmltests/WebView/tst_singleFileUpload.qml: Renamed from Source/WebKit2/UIProcess/API/qt/tests/qmltests/DesktopBehavior/tst_singleFileUpload.qml.
-
-2012-05-29 Tor Arne Vestbø <tor.arne.vestbo@nokia.com>
-
- [Qt] Sync up favicon-implementation with WebView url changes in r118158
-
- https://bugs.webkit.org/show_bug.cgi?id=87133
-
- We now base64-encode the page url in the image-provider url, so that any
- normalization done by QUrl will not mess up the page-url. The logic of
- creating and parsing the provider-url has been moved into the image
- provider, to keep it in one place.
-
- We were also releasing icons (even ones we hadn't retained), which we can't
- do since we don't know when the icon url is no longer in use.
-
- Reviewed-by Simon Hausmann.
-
- * UIProcess/API/qt/qquickwebview.cpp:
- (QQuickWebViewPrivate::initialize):
- (QQuickWebViewPrivate::loadProgressDidChange):
- (QQuickWebViewPrivate::_q_onUrlChanged):
- (QQuickWebViewPrivate::_q_onIconChangedForPageURL):
- (QQuickWebViewPrivate::updateIcon):
- (QQuickWebView::icon):
- * UIProcess/API/qt/qquickwebview_p.h:
- * UIProcess/API/qt/qquickwebview_p_p.h:
- (QQuickWebViewPrivate):
- * UIProcess/API/qt/qwebiconimageprovider.cpp:
- (QWebIconImageProvider::iconURLForPageURLInContext):
- (QWebIconImageProvider::requestImage):
- * UIProcess/API/qt/qwebiconimageprovider_p.h:
- (WebKit):
- * UIProcess/API/qt/tests/qmltests/WebView/tst_favIconLoad.qml:
- * UIProcess/qt/QtWebIconDatabaseClient.cpp:
- (WebKit::QtWebIconDatabaseClient::didChangeIconForPageURL):
- (WebKit::QtWebIconDatabaseClient::iconForPageURL):
- (WebKit):
- (WebKit::QtWebIconDatabaseClient::iconImageForPageURL):
- * UIProcess/qt/QtWebIconDatabaseClient.h:
- (QtWebIconDatabaseClient):
-
-2012-05-29 Kenneth Rohde Christiansen <kenneth@webkit.org>
-
- [Qt][WK2] Fix failing qmltests::FitToView::test_basic()
- https://bugs.webkit.org/show_bug.cgi?id=87236
-
- Reviewed by Simon Hausmann.
-
- The fix is a combination of things. First of all some events
- were emitted at the wrong times or when nothing had changed.
-
- We also initialized the view saying it was suspended which is
- not correct.
-
- Another bug was that the touch tap, didn't result in marking
- the view as having user interaction. This was recently fixed
- in r118493.
-
- * UIProcess/API/qt/qquickwebpage.cpp:
- (QQuickWebPage::setContentsScale):
- * UIProcess/API/qt/qquickwebview.cpp:
- (QQuickWebViewFlickablePrivate::QQuickWebViewFlickablePrivate):
-
- Make sure pageIsSuspended is initialized to false.
-
- (QQuickWebViewFlickablePrivate::_q_onInformVisibleContentChange):
-
- Early bail out if there is no change.
-
- Inform contentScaleCommitted if the scale changed since last time.
-
- (QQuickWebViewFlickablePrivate::didChangeContentsSize):
-
- Make sure to commit the right signals, ie. *Changed and not *Committed.
-
- * UIProcess/API/qt/qquickwebview_p.h:
- * UIProcess/API/qt/qwebkittest.cpp:
- (touchPoint):
- (QWebKitTest::sendTouchEvent):
- (QWebKitTest::touchTap):
- (QWebKitTest::touchDoubleTap):
-
- Add proper touch emulation for the testing system. Call directly
- to our WebKit API (avoid Qt event loop) to ensure all events gets
- delivered.
-
- * UIProcess/API/qt/qwebkittest_p.h:
- * UIProcess/qt/QtViewportInteractionEngine.cpp:
- (WebKit::QtViewportInteractionEngine::setItemRectVisible):
-
- Assert that a ViewportUpdateDeferrer is always used when calling
- this method.
-
- (WebKit::QtViewportInteractionEngine::animateItemRectVisible):
-
- Remove work around now we have the proper fix in place.
-
- (WebKit::QtViewportInteractionEngine::pagePositionRequest):
-
- Do not send the informVisibleContentChange manually, use the
- ViewportUpdateDeferrer instead.
+ Store an NSBundle rather than a CFBundleRef as the platform bundle.
- (WebKit::QtViewportInteractionEngine::cancelScrollAnimation):
-
- Add missing ViewportUpdateDeferrer.
-
- (WebKit::QtViewportInteractionEngine::pinchGestureStarted):
-
- No reason to emit informVisibleContentChange before pinch
- start, as it is always done on end (due to the ViewportUpdateDeferrer).
-
- (WebKit::QtViewportInteractionEngine::itemSizeChanged):
-
- Add missing ViewportUpdateDeferrer.
-
-2012-05-29 Caio Marcelo de Oliveira Filho <caio.oliveira@openbossa.org>
-
- [Qt] [WK2] Allow user to inject JS scripts when the page loads
- https://bugs.webkit.org/show_bug.cgi?id=85827
-
- Reviewed by Simon Hausmann.
-
- Create a new experimental property to list URLs of JS scripts that should be
- loaded when a page is loaded. These scripts will run in the normal JS environment
- of the page.
-
- The supported URL schemes are file:/// and qrc:///. The scripts are read from the
- UI process and transfered to the Web process.
-
- Together with the experimental messaging API this provides a way for the
- application to manipulate the DOM (by injecting a script that does the
- manipulation and communicating with it via postMessage). This covers some of the
- use cases of QWebElement in our WK1 API.
-
- * UIProcess/API/qt/qquickwebview.cpp:
- (QQuickWebViewPrivate::didRelaunchProcess):
- (readUserScript):
- (QQuickWebViewPrivate::updateUserScripts):
- (QQuickWebViewExperimental::userScripts):
- (QQuickWebViewExperimental::setUserScripts):
- * UIProcess/API/qt/qquickwebview_p.h:
- * UIProcess/API/qt/qquickwebview_p_p.h:
- (QQuickWebViewPrivate):
- * UIProcess/API/qt/tests/qmltests/WebView.pro:
- * UIProcess/API/qt/tests/qmltests/WebView/tst_userScripts.qml: Added.
- * UIProcess/API/qt/tests/qmltests/common/append-document-title.js: Added.
- * UIProcess/API/qt/tests/qmltests/common/big-user-script.js: Added.
- * UIProcess/API/qt/tests/qmltests/common/change-document-title.js: Added.
- * UIProcess/API/qt/tests/qmltests/resources.qrc: Added.
- * UIProcess/WebPageProxy.h:
- (WebPageProxy):
- * UIProcess/qt/WebPageProxyQt.cpp:
- (WebKit::WebPageProxy::setUserScripts):
- (WebKit):
- * WebProcess/WebPage/WebPage.h:
- (WebPage):
- * WebProcess/WebPage/WebPage.messages.in:
- * WebProcess/WebPage/qt/WebPageQt.cpp:
- (WebKit::WebPage::setUserScripts):
- (WebKit):
-
-2012-05-29 Sheriff Bot <webkit.review.bot@gmail.com>
-
- Unreviewed, rolling out r118752.
- http://trac.webkit.org/changeset/118752
- https://bugs.webkit.org/show_bug.cgi?id=87731
-
- incomplete patch (Requested by cmarcelo on #webkit).
-
- * UIProcess/API/qt/qquickwebview.cpp:
- (QQuickWebViewPrivate::didRelaunchProcess):
- * UIProcess/API/qt/qquickwebview_p.h:
- * UIProcess/API/qt/qquickwebview_p_p.h:
- (QQuickWebViewPrivate):
- * UIProcess/API/qt/tests/qmltests/WebView.pro:
- * UIProcess/WebPageProxy.h:
- (WebPageProxy):
- * UIProcess/qt/WebPageProxyQt.cpp:
- * WebProcess/WebPage/WebPage.h:
- (WebPage):
- * WebProcess/WebPage/WebPage.messages.in:
- * WebProcess/WebPage/qt/WebPageQt.cpp:
-
-2012-05-21 Caio Marcelo de Oliveira Filho <caio.oliveira@openbossa.org>
-
- [Qt] [WK2] Allow user to inject JS scripts when the page loads
- https://bugs.webkit.org/show_bug.cgi?id=85827
-
- Reviewed by Simon Hausmann.
-
- Create a new experimental property to list URLs of JS scripts that should be
- loaded when a page is loaded. These scripts will run in the normal JS environment
- of the page.
-
- The supported URL schemes are file:/// and qrc:///. The scripts are read from the
- UI process and transfered to the Web process.
-
- Together with the experimental messaging API this provides a way for the
- application to manipulate the DOM (by injecting a script that does the
- manipulation and communicating with it via postMessage). This covers some of the
- use cases of QWebElement in our WK1 API.
-
- * UIProcess/API/qt/qquickwebview.cpp:
- (QQuickWebViewPrivate::didRelaunchProcess):
- (readUserScript):
- (QQuickWebViewPrivate::updateUserScripts):
- (QQuickWebViewExperimental::userScripts):
- (QQuickWebViewExperimental::setUserScripts):
- * UIProcess/API/qt/qquickwebview_p.h:
- * UIProcess/API/qt/qquickwebview_p_p.h:
- (QQuickWebViewPrivate):
- * UIProcess/API/qt/tests/qmltests/WebView.pro:
- * UIProcess/API/qt/tests/qmltests/WebView/tst_userScripts.qml: Added.
- * UIProcess/API/qt/tests/qmltests/common/append-document-title.js: Added.
- * UIProcess/API/qt/tests/qmltests/common/big-user-script.js: Added.
- * UIProcess/API/qt/tests/qmltests/common/change-document-title.js: Added.
- * UIProcess/API/qt/tests/qmltests/resources.qrc: Added.
- * UIProcess/WebPageProxy.h:
- (WebPageProxy):
- * UIProcess/qt/WebPageProxyQt.cpp:
- (WebKit::WebPageProxy::setUserScripts):
- (WebKit):
- * WebProcess/WebPage/WebPage.h:
- (WebPage):
- * WebProcess/WebPage/WebPage.messages.in:
- * WebProcess/WebPage/qt/WebPageQt.cpp:
- (WebKit::WebPage::setUserScripts):
- (WebKit):
-
-2012-05-29 Carlos Garcia Campos <cgarcia@igalia.com>
-
- [GTK] Add return value information to WebKitWebView::load-failed signal documentation
- https://bugs.webkit.org/show_bug.cgi?id=87704
-
- Reviewed by Martin Robinson.
-
- * UIProcess/API/gtk/WebKitWebView.cpp:
- (webkit_web_view_class_init):
-
-2012-05-29 Carlos Garcia Campos <cgarcia@igalia.com>
-
- [GTK] Add WebKitWebInspector.h to the list of WebKit2 GTK public headers
- https://bugs.webkit.org/show_bug.cgi?id=87703
-
- Reviewed by Martin Robinson.
-
- * GNUmakefile.list.am: Add WebKitWebInspector.h to webkit2gtk_h_api.
-
-2012-05-25 Jesus Sanchez-Palencia <jesus.palencia@openbossa.org>
-
- WebKitTestRunner needs to support layoutTestController.setJavaScriptProfilingEnabled
- https://bugs.webkit.org/show_bug.cgi?id=42328
-
- Reviewed by Eric Seidel.
-
- Removed unneeded setJavaScriptProfilingEnabled function from WTR after its
- move to windows.internals.settings.
-
- * WebProcess/InjectedBundle/API/c/WKBundleInspector.cpp:
- * WebProcess/InjectedBundle/API/c/WKBundleInspector.h:
- * WebProcess/WebPage/WebInspector.cpp:
- (WebKit::WebInspector::setJavaScriptProfilingEnabled):
- * win/WebKit2.def:
+ * WebProcess/InjectedBundle/mac/InjectedBundleMac.cpp: Removed.
+ * WebProcess/InjectedBundle/mac/InjectedBundleMac.mm: Copied from Source/WebKit2/WebProcess/InjectedBundle/mac/InjectedBundleMac.cpp.
+ (WebKit::InjectedBundle::load):
+ If a principal class is provided and no WKBundleInitialize function is present in the bundle, use the principal class
+ as the initialization point. The principal class must conform to the WKWebProcessPlugIn protocol and if a
+ webProcessPlugInInitialize: method is present, it is called.
-2012-05-28 No'am Rosenthal <noam.rosenthal@nokia.com>
+2012-10-02 Dan Bernstein <mitz@apple.com>
- Remove unused argument coders for animation
- https://bugs.webkit.org/show_bug.cgi?id=87435
+ Fixed a crash when the localization option is not passed to the web process.
Reviewed by Sam Weinig.
- Left the used argument coders only, behind a proper USE(UI_SIDE_COMPOSITING) flag.
-
- * Shared/WebCoreArgumentCoders.cpp:
- (CoreIPC):
- * Shared/WebCoreArgumentCoders.h:
-
-2012-05-28 Gyuyoung Kim <gyuyoung.kim@samsung.com>
-
- Move allowRoundingHacks to Internals interface
- https://bugs.webkit.org/show_bug.cgi?id=87328
-
- Reviewed by Hajime Morita.
-
- * win/WebKit2.def: Add setAllowsRoundingHacks() to symbol filter.
-
-2012-05-26 Geoffrey Garen <ggaren@apple.com>
-
- WebKit should be lazy-finalization-safe (esp. the DOM) v2
- https://bugs.webkit.org/show_bug.cgi?id=87581
-
- Reviewed by Oliver Hunt.
-
- * WebProcess/Plugins/Netscape/JSNPObject.cpp:
- (WebKit::JSNPObject::destroy):
- (WebKit::JSNPObject::leakNPObject):
- * WebProcess/Plugins/Netscape/NPRuntimeObjectMap.cpp:
- (WebKit::NPRuntimeObjectMap::finalize): Use static_cast instead of jsCast because
- jsCast does Structure-based validation, and our Structure is not guaranteed
- to be alive when we get finalized.
-
-2012-05-25 Maciej Stachowiak <mjs@apple.com>
-
- REGRESSION (r116720): Subframe PDF scrolls extremely slowly
- https://bugs.webkit.org/show_bug.cgi?id=87557
- <rdar://problem/11499408>
-
- Reviewed by Anders Carlsson.
-
- It's not possible to make an automated test for this.
-
- * WebProcess/Plugins/PDF/BuiltInPDFView.mm:
- (WebKit::BuiltInPDFView::wantsWheelEvents): Return true instead of false and delete
- misleading comment. While the built-in PDF view would get added to the set of scrollable
- areas anyway, there are some code paths that check wantsWheelEvents explicitly, so it seems
- necessary to reutrn true.
-
-2012-05-25 Brady Eidson <beidson@apple.com>
-
- https://bugs.webkit.org/show_bug.cgi?id=87418
- WebBackForwardList should separate "has no current index" from the integer value of the current index
-
- This patch also renames "m_current" to "m_currentIndex" for clarity and symmetry with
- other variable names that reference "index",
-
- It also removes the m_closed and m_enabled flags which were never actually used.
-
- Reviewed by Darin Adler.
-
- * UIProcess/WebBackForwardList.cpp:
- (WebKit::WebBackForwardList::WebBackForwardList):
- (WebKit::WebBackForwardList::addItem):
- (WebKit::WebBackForwardList::goToItem):
- (WebKit::WebBackForwardList::currentItem):
- (WebKit::WebBackForwardList::backItem):
- (WebKit::WebBackForwardList::forwardItem):
- (WebKit::WebBackForwardList::itemAtIndex):
- (WebKit::WebBackForwardList::backListCount):
- (WebKit::WebBackForwardList::forwardListCount):
- (WebKit::WebBackForwardList::backListAsImmutableArrayWithLimit):
- (WebKit::WebBackForwardList::forwardListAsImmutableArrayWithLimit):
- (WebKit::WebBackForwardList::clear):
-
- * UIProcess/WebBackForwardList.h:
- (WebKit::WebBackForwardList::currentIndex):
- (WebBackForwardList):
-
- * UIProcess/cf/WebBackForwardListCF.cpp:
- (WebKit::WebBackForwardList::createCFDictionaryRepresentation):
- (WebKit::WebBackForwardList::restoreFromCFDictionaryRepresentation):
-
-2012-05-25 Beth Dakin <bdakin@apple.com>
-
- https://bugs.webkit.org/show_bug.cgi?id=87529
- Background tabs hosted in window server flash before painting
- when they first become active
-
- Reviewed by Anders Carlsson.
-
- Initialize to LayerHostingModeInWindowServer if that is
- available to avoid having to re-make the context and re-set
- everything later on.
- * UIProcess/WebPageProxy.cpp:
- (WebKit::WebPageProxy::WebPageProxy):
-
-2012-05-25 Mario Sanchez Prada <msanchez@igalia.com>
-
- [GTK][WK2] Implement API for generic permission requests
- https://bugs.webkit.org/show_bug.cgi?id=84018
-
- Reviewed by Martin Robinson.
-
- Added new 'permission-request' signal to WebKitWebView, to be
- fired when WebKit needs confirmation from the user on whether to
- allow or deny certain operations, such as sharing the user's
- location with web site through the Geolocation API.
-
- New WebKitPermissionRequest interface, providing allow() and
- deny() operations, to be called over the objects implementing it
- when emitted along with the new 'permission-request' signal.
-
- * UIProcess/API/gtk/WebKitPermissionRequest.cpp: Added.
- (webkit_permission_request_default_init):
- (webkit_permission_request_allow):
- (webkit_permission_request_deny):
- * UIProcess/API/gtk/WebKitPermissionRequest.h: Added.
- (_WebKitPermissionRequestIface):
- * GNUmakefile.am: Added new files.
-
- Added the new signal to WebKitWebView, providing a default handler
- that will just deny the request when the signal is not handled.
-
- * UIProcess/API/gtk/WebKitWebView.cpp:
- (webkitWebViewDecidePermissionRequest): Default handler.
- (webkit_web_view_class_init): Declare the new signal and connect
- to the default handler.
- (webkitWebViewMakePermissionRequest): Helper function to create a
- make a new permission request and emit the new signal signal.
- * UIProcess/API/gtk/WebKitWebView.h:
- (_WebKitWebViewClass):
- * UIProcess/API/gtk/WebKitWebViewPrivate.h: Declare the creational
- function webkitWebViewMakePermissionRequest for internal use only.
-
- Updated documentation files.
-
- * UIProcess/API/gtk/docs/webkit2gtk-docs.sgml:
- * UIProcess/API/gtk/docs/webkit2gtk-sections.txt:
-
-2012-05-25 Grzegorz Czajkowski <g.czajkowski@samsung.com>
-
- [WK2] Fix client interface size for WKPageContextMenuClient.
- https://bugs.webkit.org/show_bug.cgi?id=87472
-
- Reviewed by Carlos Garcia Campos.
-
- Add correct offset for version 1 and 2 of WKPageContextMenuClient.
- Revision 109750 introduces a new API and increases size of interfaceSizesByVersion
- but the table is not properly initialized for newly introduced version 2.
-
- * Shared/APIClientTraits.cpp:
- (WebKit):
-
-2012-05-24 Andreas Kling <kling@webkit.org>
-
- Mac bots crashing under PluginInfo destructor.
- <http://webkit.org/b/87414>
- <rdar://problem/11527172>
-
- Reviewed by Darin Adler.
-
- We can't safely pass WTF::String to another thread without a deref() race,
- so pass the PluginInfo vector by pointer instead of by value.
-
- * UIProcess/WebContext.cpp:
- (WebKit::WebContext::sendDidGetPlugins):
- (WebKit::WebContext::handleGetPlugins):
- * UIProcess/WebContext.h:
-
-2012-05-25 Zalan Bujtas <zbujtas@gmail.com>
-
- [Qt][WK2] Fix failing qmltests::FitToView::test_basic()
- https://bugs.webkit.org/show_bug.cgi?id=87236
-
- Reviewed by Kenneth Rohde Christiansen.
-
- Rename contentViewportChanged to informVisibleContentChange() to
- reflect its functionality better. Centralize m_hadUserInteraction flag
- setting and add assertions on it to ensure that designated
- functions are called only on user interaction.
-
- * UIProcess/API/qt/qquickwebview.cpp:
- (QQuickWebViewFlickablePrivate::onComponentComplete):
- (QQuickWebViewFlickablePrivate::updateViewportSize):
- (QQuickWebViewFlickablePrivate::_q_onInformVisibleContentChange):
- (QQuickWebViewFlickablePrivate::_q_resume):
- * UIProcess/API/qt/qquickwebview_p.h:
- * UIProcess/API/qt/qquickwebview_p_p.h:
- (QQuickWebViewPrivate::_q_onInformVisibleContentChange):
- (QQuickWebViewFlickablePrivate):
- * UIProcess/qt/QtViewportInteractionEngine.cpp:
- (WebKit::ViewportUpdateDeferrer::~ViewportUpdateDeferrer):
- (WebKit::QtViewportInteractionEngine::flickableMovingPositionUpdate):
- (WebKit::QtViewportInteractionEngine::pagePositionRequest):
- (WebKit::QtViewportInteractionEngine::touchBegin):
- (WebKit::QtViewportInteractionEngine::focusEditableArea):
- (WebKit::QtViewportInteractionEngine::zoomToAreaGestureEnded):
- (WebKit::QtViewportInteractionEngine::panGestureStarted):
- (WebKit::QtViewportInteractionEngine::pinchGestureStarted):
- * UIProcess/qt/QtViewportInteractionEngine.h:
- (QtViewportInteractionEngine):
-
-2012-05-24 Tim Horton <timothy_horton@apple.com>
-
- Add feature defines for web-facing parts of CSS Regions and Exclusions
- https://bugs.webkit.org/show_bug.cgi?id=87442
- <rdar://problem/10887709>
-
- Reviewed by Dan Bernstein.
-
- * Configurations/FeatureDefines.xcconfig:
-
-2012-05-24 Geoffrey Garen <ggaren@apple.com>
-
- WebKit should be lazy-finalization-safe (esp. the DOM)
- https://bugs.webkit.org/show_bug.cgi?id=87456
-
- Reviewed by Filip Pizlo.
-
- * WebProcess/Plugins/Netscape/NPRuntimeObjectMap.cpp:
- (WebKit::NPRuntimeObjectMap::getOrCreateJSObject): Use the new idioms.
-
- (WebKit::NPRuntimeObjectMap::invalidate): Check for null while iterating,
- since that's possible now.
-
- (WebKit::NPRuntimeObjectMap::finalize): Use the new idioms.
-
-2012-05-24 Brady Eidson <beidson@apple.com>
-
- Fix the build after http://trac.webkit.org/changeset/118441
- Also fix a glaring bug with the new code, will run it by original reviewer retroactively.
-
- * UIProcess/cf/WebBackForwardListCF.cpp:
- (WebKit::WebBackForwardList::restoreFromCFDictionaryRepresentation): Fix up the types of the ? operands
- to appease super-strict compilers. Don't allow negative indexes (besides the -1 "No index" index).
-
-2012-05-24 Brady Eidson <beidson@apple.com>
-
- <rdar://problem/10090764> and https://bugs.webkit.org/show_bug.cgi?id=87417
- (Unrepro) Crashes saving session state in WebBackForwardList
-
- Reviewed by Darin Adler.
-
- * UIProcess/WebBackForwardList.cpp:
- (WebKit::WebBackForwardList::addItem): Null check the proposed item and also m_page, to make
- sure the page hasn't been closed making this list inactive. Be more aggressive about
- clearing the current entries out if there is no current item index.
- (WebKit::WebBackForwardList::itemAtIndex): Early null return if there is no current index.
- (WebKit::WebBackForwardList::clear): Don't put the current item back in the array if there was
- no current item.
-
- * UIProcess/cf/WebBackForwardListCF.cpp:
- (WebKit::WebBackForwardList::createCFDictionaryRepresentation): Don't create a meaningless WebURL.
- Don't successfully return a dictionary if any of the entries were null. Be more aggressive about
- validating the current index we plan to return in the dictionary.
- (WebKit::WebBackForwardList::restoreFromCFDictionaryRepresentation): More aggressively validate the
- current index read from disk. Replace a meaningless sanity check with our typical ASSERT.
-
-2012-05-24 Anders Carlsson <andersca@apple.com>
-
- Make sure that the layer hosting mode is up-to-date when reconnecting to a new web process
- https://bugs.webkit.org/show_bug.cgi?id=87421
- <rdar://problem/11510337>
-
- Reviewed by Beth Dakin.
-
- Send over the layer hosting mode as part of the web page creation parameters and create the right
- layer hosting context based on the mode.
-
- * Shared/WebPageCreationParameters.cpp:
- (WebKit::WebPageCreationParameters::encode):
- (WebKit::WebPageCreationParameters::decode):
- * Shared/WebPageCreationParameters.h:
- (WebPageCreationParameters):
- * UIProcess/WebPageProxy.cpp:
- (WebKit::WebPageProxy::creationParameters):
- * WebProcess/WebPage/WebPage.cpp:
- (WebKit::WebPage::WebPage):
- * WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.h:
- (TiledCoreAnimationDrawingArea):
- * WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.mm:
- (WebKit::TiledCoreAnimationDrawingArea::TiledCoreAnimationDrawingArea):
- (WebKit::TiledCoreAnimationDrawingArea::setLayerHostingMode):
- (WebKit):
- (WebKit::TiledCoreAnimationDrawingArea::updateLayerHostingContext):
-
-2012-05-24 John Mellor <johnme@chromium.org>
-
- Font Boosting: Add compile flag and runtime setting
- https://bugs.webkit.org/show_bug.cgi?id=87394
-
- Reviewed by Adam Barth.
-
- Add ENABLE_FONT_BOOSTING.
-
- * Configurations/FeatureDefines.xcconfig:
-
-2012-05-24 Yael Aharon <yael.aharon@nokia.com>
-
- [Qt] Stop using the flag FIXED_POSITION_CREATES_STACKING_CONTEXT
- https://bugs.webkit.org/show_bug.cgi?id=87392
-
- Reviewed by Antonio Gomes.
-
- Turn on the setting setFixedPositionCreatesStackingContext.
-
- * WebProcess/WebPage/WebPage.cpp:
- (WebKit::WebPage::setResizesToContentsUsingLayoutSize):
-
-2012-05-24 Alexey Proskuryakov <ap@apple.com>
-
- [WK2] Let the client give local files universal access on a case by case basis
- https://bugs.webkit.org/show_bug.cgi?id=87174
- <rdar://problem/11024330>
-
- Reviewed by Maciej Stachowiak.
-
- * WebProcess/InjectedBundle/API/c/WKBundlePage.h:
- * WebProcess/InjectedBundle/InjectedBundlePageLoaderClient.cpp:
- (WebKit::InjectedBundlePageLoaderClient::shouldForceUniversalAccessFromLocalURL):
- * WebProcess/InjectedBundle/InjectedBundlePageLoaderClient.h:
- * WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
- (WebKit::WebFrameLoaderClient::shouldForceUniversalAccessFromLocalURL):
- * WebProcess/WebCoreSupport/WebFrameLoaderClient.h:
- * WebProcess/qt/QtBuiltinBundlePage.cpp:
- (WebKit::QtBuiltinBundlePage::QtBuiltinBundlePage):
- Added glue code to call bundle client.
-
-2012-05-24 Alexander Færøy <alexander.faeroy@nokia.com>
-
- Reorder arguments to compare() in the QML WebView tests
- https://bugs.webkit.org/show_bug.cgi?id=87374
-
- Reviewed by Simon Hausmann.
-
- Based on patch by Kenneth Rohde Christiansen.
-
- The reordering is necessary to get correct information printed when
- the tests fails. Without this, the test suite will display the bogus
- value and not the expected value.
-
- This patch also removes the delayed windowShown since this is not
- needed anymore, due to us using the touch events instead of mouse
- events.
-
- * UIProcess/API/qt/tests/qmltests/WebView/tst_doubleTapToZoom.qml:
-
-2012-05-24 Allan Sandfeld Jensen <allan.jensen@nokia.com>
-
- [Qt] Tiles not painted after wheel or keyboard scroll.
- https://bugs.webkit.org/show_bug.cgi?id=87358
-
- Reviewed by Kenneth Rohde Christiansen.
-
- After performing a scroll requested from the WebProcess we also need
- to inform the painting layer of the viewport change.
-
- * UIProcess/qt/QtViewportInteractionEngine.cpp:
- (WebKit::QtViewportInteractionEngine::pagePositionRequest):
-
-2012-05-24 Andras Becsi <andras.becsi@nokia.com>
-
- [Qt][WK2] Fix bounce-back animation on pinch->pan
- https://bugs.webkit.org/show_bug.cgi?id=87266
-
- Reviewed by Kenneth Rohde Christiansen.
-
- If ending an out-of-bounds pinch gesture with releasing one finger
- (transition to a pan gesture) the bounce back animation blinks in
- the end position immediately first, then animates the content back
- into bounds.
-
- QtViewportInteractionEngine::cancelScrollAnimation should return
- early if there is no active kinetic animation.
-
- * UIProcess/qt/QtViewportInteractionEngine.cpp:
- (WebKit::QtViewportInteractionEngine::cancelScrollAnimation):
-
-2012-05-23 Ojan Vafai <ojan@chromium.org>
-
- add back the ability to disable flexbox
- https://bugs.webkit.org/show_bug.cgi?id=87147
-
- Reviewed by Tony Chang.
-
- * Configurations/FeatureDefines.xcconfig:
-
-2012-05-23 Jer Noble <jer.noble@apple.com>
-
- REGRESSION (117623) - Entering/exiting fullscreen HTML5 videos, there is a quick animated fade
- https://bugs.webkit.org/show_bug.cgi?id=87294
-
- Reviewed by Darin Adler.
-
- When setting the sublayers array on the layer hosting view, wrap the call in a CATransaction which disables
- animations.
-
- * UIProcess/API/mac/WKView.mm:
- (-[WKView _updateAcceleratedCompositingMode:WebKit::]):
-
-2012-05-23 Dinu Jacob <dinu.jacob@nokia.com>
-
- [Qt][Wk2] Assertion failure when selecting an option in select list with size attribute greater than one
- https://bugs.webkit.org/show_bug.cgi?id=86974
-
- Reviewed by Simon Hausmann.
-
- Select list with size attribute greater than one will not initially have any
- item in selected state (if no option has 'selected' tag), resulting in
- m_selectedModelIndex in WebPopupMenuProxyQt to be invalid. Hence, need to check
- whether the old index is invalid before accessing the item at that index.
-
- * UIProcess/API/qt/tests/qmltests/DesktopBehavior/tst_itemSelector.qml: Added new test that
- tests selection in a select list with size attribute value of 2.
- * UIProcess/API/qt/tests/qmltests/common/selectwithsize.html: Added.
- * UIProcess/qt/WebPopupMenuProxyQt.cpp:
- (WebKit::PopupMenuItemModel::select): Check whether old index is valid before accessing
- the item at that index.
-
-2012-05-23 Jer Noble <jer.noble@apple.com>
-
- REGRESSION (r116188): After exiting full screen, Safari window is frozen, then inline video speeds through frames as it catches up with audio
- https://bugs.webkit.org/show_bug.cgi?id=87206
-
- Reviewed by Darin Adler.
-
- When re-enabling the Safari window's autodisplay flag, also force the window to re-display.
- Otherwise, the window will not repaint itself until it is forced to by user interaction.
-
- * UIProcess/mac/WKFullScreenWindowController.mm:
- (-[WKFullScreenWindowController completeFinishExitFullScreenAnimationAfterRepaint]):
-
-2012-05-23 Martin Robinson <mrobinson@igalia.com>
-
- [GTK] [WebKit2] Add an API to enable and disable composited layer indicators
- https://bugs.webkit.org/show_bug.cgi?id=87053
-
- Reviewed by Carlos Garcia Campos.
-
- Add a WebKitSetting that allows the client to enable and disable debug
- borders and repaint counters for accelerated content.
-
- * UIProcess/API/gtk/WebKitSettings.cpp:
- (webKitSettingsSetProperty): Added.
- (webKitSettingsGetProperty): Added.
- (webkit_settings_class_init): Add the new property.
- (webkit_settings_set_draw_compositing_indicators): Added.
- (webkit_settings_get_draw_compositing_indicators): Added.
- * UIProcess/API/gtk/WebKitSettings.h:
- * UIProcess/API/gtk/docs/webkit2gtk-sections.txt: Add the new API points to the
- documentation.
- * UIProcess/API/gtk/test/TestWebKitSettings.h: Add a new unit test.
-
-2012-05-23 Michael Brüning <michael.bruning@nokia.com>
-
- [Qt][WK2] Small refactoring WebPage::confirmComposition.
- https://bugs.webkit.org/show_bug.cgi?id=87243
-
- Reviewed by Kenneth Rohde Christiansen.
-
- Change nested if into an early return to reduce complexity.
-
- * WebProcess/WebPage/qt/WebPageQt.cpp:
- (WebKit::WebPage::confirmComposition):
-
-2012-05-22 Alexander Færøy <alexander.faeroy@nokia.com>
-
- [Qt] Missing tests for the evaluateJavaScript API
- https://bugs.webkit.org/show_bug.cgi?id=86351
-
- Reviewed by Kenneth Rohde Christiansen.
-
- * UIProcess/API/qt/tests/qmltests/WebView/tst_evaluateJavaScript.qml:
- * UIProcess/API/qt/tests/qmltests/common/evaluatejavascript.html: Added.
-
-2012-05-23 Allan Sandfeld Jensen <allan.jensen@nokia.com>
-
- [Qt] FloatSize Qt Support
- https://bugs.webkit.org/show_bug.cgi?id=87237
-
- Reviewed by Andreas Kling.
-
- Basic cleanup possible to new Qt support in FloatSize.
-
- * UIProcess/API/qt/qquickwebpage.cpp:
- (QQuickWebPagePrivate::updateSize):
- * UIProcess/API/qt/qwebkittest.cpp:
- (QWebKitTest::layoutSize):
-
-2012-04-18 Tor Arne Vestbø <tor.arne.vestbo@nokia.com>
-
- [Qt] Make the web view's url property follow the active url
-
- https://bugs.webkit.org/show_bug.cgi?id=77554
-
- The url property of the webview now reflects the 'active' url of the
- page, which maps to either the currently loading url, in the case of
- an ongoing load, or the result of a load, even when the load failed.
-
- In practice this means that setting the url though QML, or navigating
- to a new url in the page by e.g clicking, will both instantly change
- the url-property of the webview to the target url. This differs from
- earlier behavior, where we would update the url when the load
- committed.
-
- An optional argument is added to loadHtml(), to allow setting
- the unreachable url when providing replacement content for failed
- loads.
-
- Finally, the location bar in the minibrowser is updated to behave
- a bit more like normal browsers in terms of when the url will change
- and how active focus is handled.
-
- Reviewed by Simon Hausmann.
-
- * UIProcess/API/qt/qquickwebview.cpp:
- (QQuickWebViewPrivate::onComponentComplete):
- (QQuickWebView::reload):
- (QQuickWebView::url):
- (QQuickWebView::setUrl):
- (QQuickWebView::loadHtml):
- * UIProcess/API/qt/qquickwebview_p.h:
- * UIProcess/API/qt/tests/qmltests/DesktopBehavior.pro:
- * UIProcess/API/qt/tests/qmltests/WebView.pro:
- * UIProcess/API/qt/tests/qmltests/WebView/tst_loadUrl.qml:
- * UIProcess/API/qt/tests/qmltests/common/link.html: Added.
- * UIProcess/API/qt/tests/qmltests/common/redirect.html: Added.
- * UIProcess/qt/QtWebPageLoadClient.cpp:
- (QtWebPageLoadClient::QtWebPageLoadClient):
- (QtWebPageLoadClient::didStartProvisionalLoadForFrame):
- (QtWebPageLoadClient::didReceiveServerRedirectForProvisionalLoadForFrame):
- (QtWebPageLoadClient::didCommitLoadForFrame):
- (QtWebPageLoadClient::dispatchLoadFailed):
- (QtWebPageLoadClient::didFailProvisionalLoadWithErrorForFrame):
- (QtWebPageLoadClient::didFailLoadWithErrorForFrame):
- * UIProcess/qt/QtWebPageLoadClient.h:
- (QtWebPageLoadClient):
-
-2012-05-23 Simon Hausmann <simon.hausmann@nokia.com>
-
- [Qt] Race condition in LayerTreeHost/Proxy can cause blank rendering
- https://bugs.webkit.org/show_bug.cgi?id=87239
-
- Reviewed by Kenneth Rohde Christiansen.
-
- On the UI process side the WebLayerTreeRenderer/LayerTreeHostProxy pair is
- created with m_active = false, which makes it ignore any incoming layer updates.
- It remains inactive until the ContentsSGNode is created and setActive(true) is called.
-
- On the web process side the LayerTreeHost is created with m_waitingForUIProcess = false.
-
- Those two variables must be in sync, otherwise a race condition can
- happen: The web process sends updates to the ui process before the
- ContentsSGNode is created. This can happen for example when re-using an
- existing WebProcess to create a QQuickWebView and load a page very fast
- from the disk cache. The update arrives on the ui process side, but it
- is discarded because setActive(true) hasn't been called yet. As a
- result any updates that would for example create and populate the tiles
- required for rendering are ignored.
-
- This patch ensures that the variables are initialized with the same values and that calling
- setActive(true) will trigger the rendering of the next frame.
-
- * UIProcess/WebLayerTreeRenderer.cpp:
- (WebKit::WebLayerTreeRenderer::setActive):
- * WebProcess/WebPage/qt/LayerTreeHostQt.cpp:
- (WebKit::LayerTreeHostQt::LayerTreeHostQt):
-
-2012-05-23 Tor Arne Vestbø <tor.arne.vestbo@nokia.com>
-
- [Qt] Make QtWebError return the failing URL as a QString instead of QUrl
-
- We don't want to use QUrl inside QtWebKit (only in the API layer), due
- to how QUrl normalizes the url.
-
- Reviewed by Simon Hausmann.
-
- * UIProcess/qt/QtWebError.cpp:
- (WebKit::QtWebError::url):
- * UIProcess/qt/QtWebError.h:
-
-2012-05-22 Carlos Garcia Campos <cgarcia@igalia.com>
-
- [GTK] Add inspector API to WebKit2 GTK+
- https://bugs.webkit.org/show_bug.cgi?id=87113
-
- Reviewed by Martin Robinson.
-
- * GNUmakefile.list.am: Add new files to compilation.
- * UIProcess/API/C/gtk/WKInspectorClientGtk.cpp: Added.
- (WKInspectorSetInspectorClientGtk):
- * UIProcess/API/C/gtk/WKInspectorClientGtk.h: Added.
- * UIProcess/API/gtk/WebKitPrivate.h:
- * UIProcess/API/gtk/WebKitWebInspector.cpp: Added.
- (webkitWebInspectorFinalize):
- (webkit_web_inspector_init):
- (webkit_web_inspector_class_init):
- (openWindow): Emit WebKitWebInspector::open-window singal.
- (didClose): Emit WebKitWebInspector::closed signal.
- (bringToFront): Emit WebKitWebInspector::bring-to-front singal.
- (inspectedURLChanged): Set the inspected URI and emit
- GObject::notify signal if it changed.
- (attach): Emit WebKitWebInspector::attach signal.
- (detach): Emit WebKitWebInspector::detach signal.
- (didChangeAttachedHeight): Set the attached height and emit
- GObject::notify signal if it changed.
- (webkitWebInspectorCreate): Ceate a new WebKitWebInspector object
- for the given WKInspector. Also initialize and set the inspector
- client.
- (webkit_web_inspector_get_web_view): Return the web view used to
- render the inspector.
- (webkit_web_inspector_get_inspected_uri): Return the URI that is
- being inspected.
- (webkit_web_inspector_is_attached): Whether the inspector view is
- currently attached.
- (webkit_web_inspector_attach): Request to attach the inspector.
- (webkit_web_inspector_detach): Request to detach the inspector.
- (webkit_web_inspector_show): Request to show the inspector.
- (webkit_web_inspector_close): Request to close the inspector.
- (webkit_web_inspector_get_attached_height): Return the height that
- the inspector view should have when attached.
- * UIProcess/API/gtk/WebKitWebInspector.h: Added.
- * UIProcess/API/gtk/WebKitWebInspectorPrivate.h: Added.
- * UIProcess/API/gtk/WebKitWebView.cpp:
- (webkit_web_view_get_inspector): Return the WebKitWebInspector
- associated to the web view.
- * UIProcess/API/gtk/WebKitWebView.h:
- * UIProcess/API/gtk/docs/webkit2gtk-docs.sgml: Add new section for
- WebKitWebInspector.
- * UIProcess/API/gtk/docs/webkit2gtk-sections.txt: Ad new symbols.
- * UIProcess/API/gtk/docs/webkit2gtk.types: Add
- webkit_web_inspector_get_type.
- * UIProcess/API/gtk/tests/GNUmakefile.am: Add new test for the
- inspector API.
- * UIProcess/API/gtk/tests/TestInspector.cpp: Added.
- (testInspectorDefault):
- (testInspectorCustom):
- (testInspectorWindowDestroyed):
- (beforeAll):
- (afterAll):
- * UIProcess/API/gtk/tests/WebViewTest.cpp:
- (WebViewTest::showInWindowAndWaitUntilMapped): Add optional
- parameter to create a toplevel or popup window.
- (WebViewTest::resizeView): Helper function to set the widget
- allocation to a given size.
- * UIProcess/API/gtk/tests/WebViewTest.h:
- * UIProcess/API/gtk/webkit2.h: Include WebKitWebInspector.h
- * UIProcess/WebInspectorProxy.h:
- (WebKit::WebInspectorProxy::inspectorView): Return the view used
- to render the inspector.
- * UIProcess/gtk/WebInspectorClientGtk.cpp: Added.
- (WebKit::WebInspectorClientGtk::openWindow):
- (WebKit::WebInspectorClientGtk::didClose):
- (WebKit::WebInspectorClientGtk::bringToFront):
- (WebKit::WebInspectorClientGtk::inspectedURLChanged):
- (WebKit::WebInspectorClientGtk::attach):
- (WebKit::WebInspectorClientGtk::detach):
- (WebKit::WebInspectorClientGtk::didChangeAttachedHeight):
- * UIProcess/gtk/WebInspectorClientGtk.h: Added.
- * UIProcess/gtk/WebInspectorProxyGtk.cpp:
- (WebKit::inspectorViewDestroyed): Close the inspector page when
- the inspector view is destroyed, instead of when the inspector
- window is deleted, because the inspector view can now be inside a
- window created by the user.
- (WebKit::WebInspectorProxy::initializeInspectorClientGtk):
- Initialze the inspector client.
- (WebKit::WebInspectorProxy::platformCreateInspectorPage): Add a
- weak pointer to the inspector view to make sure it's NULL when
- destroyed.
- (WebKit::WebInspectorProxy::createInspectorWindow): Call
- openWindow on the inspector client, and return early if the
- callback was handled.
- (WebKit::WebInspectorProxy::platformOpen): Connect to destroy
- signal of the inspector view to close the page when the view is
- destroyed.
- (WebKit::WebInspectorProxy::platformDidClose): Call didClose on
- the inspector client.
- (WebKit::WebInspectorProxy::platformBringToFront): Call
- bringToFront on the inspector client, and return early if the
- callback was handled.
- (WebKit::WebInspectorProxy::platformInspectedURLChanged): Call
- inspectedURLChanged on the inspector client.
- (WebKit::WebInspectorProxy::platformAttach): Call attach on the
- inspector client and return if the callback was handled.
- (WebKit::WebInspectorProxy::platformDetach): Call detach on the
- inspector client and return if the callback was handled.
- (WebKit::WebInspectorProxy::platformSetAttachedWindowHeight): Call
- didChangeAttachedHeight on the inspector client.
-
-2012-05-22 Anders Carlsson <andersca@apple.com>
-
- Functions dispatched by dispatchAfterEnsuringUpdatedScrollPosition can be called after drawing area has been destroyed
- https://bugs.webkit.org/show_bug.cgi?id=87173
- <rdar://problem/11474087>
-
- Reviewed by Beth Dakin.
-
- Don't try to call forceRepaint if the drawing area has already been destroyed.
-
- * WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.mm:
- (WebKit::TiledCoreAnimationDrawingArea::forceRepaintAsync):
-
-2012-05-22 Anders Carlsson <andersca@apple.com>
-
- Crash when a plug-in view outlives its containing WebPage
- https://bugs.webkit.org/show_bug.cgi?id=87163
- <rdar://problem/10849258>
-
- Reviewed by Dan Bernstein.
-
- In rare cases, when a plug-in is kept alive for some reason it can outlive its WebPage. When that happens,
- the PluginView destructor will try to access the (deleted) web page and we'll crash.
-
- Fix this by making the WebPage destructor iterate over all the registered plug-ins and null out the m_webPage pointer.
- Don't try to access the WebPage object if it's null.
-
- Also, remove PLATFORM(MAC) ifdefs around the HashSet of known plug-in views as well as the member functions that access the set;
- we want this to be cross platform now.
-
- * WebProcess/Plugins/PluginView.cpp:
- (WebKit::PluginView::PluginView):
- (WebKit::PluginView::~PluginView):
- (WebKit::PluginView::webPageDestroyed):
- (WebKit):
- * WebProcess/Plugins/PluginView.h:
- (PluginView):
- * WebProcess/WebPage/WebPage.cpp:
- (WebKit::WebPage::~WebPage):
- (WebKit::WebPage::scalePage):
- (WebKit):
- * WebProcess/WebPage/WebPage.h:
- (WebPage):
+ * PluginProcess/mac/PluginProcessMainMac.mm:
+ (WebKit::PluginProcessMain): Changed to not call WKSetDefaultLocalization
+ with the empty string.
+ * WebProcess/mac/WebProcessMainMac.mm:
+ (WebKit::WebProcessMain): Ditto.
-== Rolled over to ChangeLog-2012-05-22 ==
+== Rolled over to ChangeLog-2012-10-02 ==
diff --git a/Source/WebKit2/ChangeLog-2012-10-02 b/Source/WebKit2/ChangeLog-2012-10-02
new file mode 100644
index 000000000..20e00f6ba
--- /dev/null
+++ b/Source/WebKit2/ChangeLog-2012-10-02
@@ -0,0 +1,21927 @@
+2012-10-02 Alexey Proskuryakov <ap@apple.com>
+
+ <rdar://problem/12407920> Need to keep track of messages posted to injected bundle before creating a page
+ https://bugs.webkit.org/show_bug.cgi?id=98210
+
+ Reviewed by Anders Carlsson.
+
+ Restore the pending message functionality, but only for shared process mode, and
+ under a different name.
+
+ * UIProcess/WebContext.cpp:
+ (WebKit::WebContext::setProcessModel):
+ (WebKit::WebContext::createNewWebProcess):
+ (WebKit::WebContext::postMessageToInjectedBundle):
+ * UIProcess/WebContext.h:
+
+2012-10-02 Adrian Perez de Castro <aperez@igalia.com>
+
+ Unix plugin process: xErrorString does not need to be defined in release builds
+ https://bugs.webkit.org/show_bug.cgi?id=98174
+
+ Reviewed by Alexey Proskuryakov.
+
+ The static xErrorString variable is used only for logging purposes,
+ so it causes a warning when doing relese builds (or, in general,
+ when logging is enabled). This disables building in the string
+ when LOG_DISABLED is defined.
+
+ Also, made the more constant by changing the "const char*" type
+ to "const char[]".
+
+ * PluginProcess/unix/PluginProcessMainUnix.cpp:
+ (WebKit):
+
+2012-10-02 Anders Carlsson <andersca@apple.com>
+
+ Fix crash in WebGeolocationManager constructor.
+
+ Defer adding the location manager until there actually is a connection.
+
+ * WebProcess/Geolocation/WebGeolocationManager.cpp:
+ (WebKit::WebGeolocationManager::WebGeolocationManager):
+ (WebKit::WebGeolocationManager::registerWebPage):
+ * WebProcess/Geolocation/WebGeolocationManager.h:
+ (WebGeolocationManager):
+
+2012-10-02 Anders Carlsson <andersca@apple.com>
+
+ Fix build.
+
+ * WebProcess/Geolocation/WebGeolocationManager.cpp:
+ (WebKit::WebGeolocationManager::WebGeolocationManager):
+
+2012-10-02 Anders Carlsson <andersca@apple.com>
+
+ Fix infinite recursion inside WebProcess constructor
+ https://bugs.webkit.org/show_bug.cgi?id=98206
+
+ Reviewed by Brian Weinstein.
+
+ Don't call WebProcess::shared from the WebGeolocationManager constructor since it is invoked from the WebProcess constructor.
+
+ * WebProcess/Geolocation/WebGeolocationManager.cpp:
+ (WebKit::WebGeolocationManager::WebGeolocationManager):
+
+2012-10-02 Hugo Parente Lima <hugo.lima@openbossa.org>
+
+ [WK2] Move some tiled backing store/viewport functions from Qt to generic WebKit2 sources
+ https://bugs.webkit.org/show_bug.cgi?id=98199
+
+ Reviewed by Noam Rosenthal.
+
+ Move commitPageTransitionViewport from Qt to WebKit2.
+
+ * UIProcess/WebPageProxy.cpp:
+ (WebKit):
+ (WebKit::WebPageProxy::commitPageTransitionViewport):
+ * UIProcess/qt/WebPageProxyQt.cpp:
+ * WebProcess/WebPage/WebPage.cpp:
+ (WebKit):
+ (WebKit::WebPage::commitPageTransitionViewport):
+ * WebProcess/WebPage/WebPage.h:
+ (WebPage):
+ * WebProcess/WebPage/WebPage.messages.in:
+ * WebProcess/WebPage/qt/WebPageQt.cpp:
+
+2012-10-02 Anders Carlsson <andersca@apple.com>
+
+ Build fixes.
+
+ * PluginProcess/mac/PluginProcessMac.mm:
+ (WebKit::beginModal):
+ * UIProcess/Plugins/mac/PluginProcessProxyMac.mm:
+ (WebKit::PluginProcessProxy::getPluginProcessSerialNumber):
+ (WebKit::PluginProcessProxy::makePluginProcessTheFrontProcess):
+ (WebKit::PluginProcessProxy::makeUIProcessTheFrontProcess):
+ (WebKit::PluginProcessProxy::exitFullscreen):
+
+2012-10-02 Alexey Proskuryakov <ap@apple.com>
+
+ <rdar://problem/12407139> WebKit2 should provide API that returns all pages in the same process as a given page
+ https://bugs.webkit.org/show_bug.cgi?id=98193
+
+ Reviewed by Sam Weinig.
+
+ * UIProcess/API/C/WKPage.cpp:
+ (WKPageCopyRelatedPages):
+ * UIProcess/API/C/WKPagePrivate.h:
+ * UIProcess/WebPageProxy.cpp:
+ (WebKit::WebPageProxy::relatedPages):
+ * UIProcess/WebPageProxy.h:
+ * UIProcess/WebProcessProxy.cpp:
+ (WebKit::WebProcessProxy::pages):
+ * UIProcess/WebProcessProxy.h:
+ Added. This should work once a process has crashed, too.
+
+2012-10-02 Anders Carlsson <andersca@apple.com>
+
+ Allow LayerTreeHost subclasses to return a custom GraphicsLayerFactory
+ https://bugs.webkit.org/show_bug.cgi?id=98179
+
+ Reviewed by Andreas Kling.
+
+ Implement ChromeClient::graphicsLayerFactory and have it call the DrawingArea's graphicsLayerFactory which
+ for DrawingAreaImpl then calls down to the layer tree host. Make LayerTreeCoordinator implement GraphicsLayerFactory and
+ make it create CoordinatedGraphicsLayers.
+
+ * WebProcess/WebCoreSupport/WebChromeClient.cpp:
+ (WebKit::WebChromeClient::graphicsLayerFactory):
+ (WebKit):
+ * WebProcess/WebCoreSupport/WebChromeClient.h:
+ (WebChromeClient):
+ * WebProcess/WebPage/CoordinatedGraphics/LayerTreeCoordinator.cpp:
+ (WebKit::LayerTreeCoordinator::createGraphicsLayer):
+ (WebKit):
+ (WebKit::LayerTreeCoordinator::graphicsLayerFactory):
+ * WebProcess/WebPage/CoordinatedGraphics/LayerTreeCoordinator.h:
+ (LayerTreeCoordinator):
+ * WebProcess/WebPage/DrawingArea.h:
+ (WebCore):
+ (WebKit::DrawingArea::graphicsLayerFactory):
+ * WebProcess/WebPage/DrawingAreaImpl.cpp:
+ (WebKit::DrawingAreaImpl::graphicsLayerFactory):
+ (WebKit):
+ * WebProcess/WebPage/DrawingAreaImpl.h:
+ (DrawingAreaImpl):
+ * WebProcess/WebPage/LayerTreeHost.h:
+ (WebCore):
+ (WebKit::LayerTreeHost::graphicsLayerFactory):
+ (LayerTreeHost):
+
+2012-10-01 Anders Carlsson <andersca@apple.com>
+
+ Attempt to simplify IPC message dispatching logic in WebKit2
+ https://bugs.webkit.org/show_bug.cgi?id=98097
+
+ Reviewed by Sam Weinig.
+
+ Move the Connection::MessageReceiver class to its own header file. Add a MessageReceiverMap helper class
+ that will be used for dispatching messages based on message class (and eventually destination ID).
+
+ Convert AuthenticationManager and WebGeolocationManager over to this new mechanism.
+
+ * CMakeLists.txt:
+ * GNUmakefile.list.am:
+ Add new files.
+
+ * Platform/CoreIPC/Connection.cpp:
+ (CoreIPC::Connection::dispatchMessage):
+ Check with the message receiver map first before calling Connection::Client::didReceiveMessage.
+
+ * Platform/CoreIPC/Connection.h:
+ (CoreIPC::Connection::addMessageReceiver):
+ Call through to the message receiver map.
+
+ * Platform/CoreIPC/MessageID.h:
+ (CoreIPC::MessageID::messageClass):
+ Rename MessageClassReserved to MessageClassInvalid.
+
+ (MessageID):
+ * Platform/CoreIPC/MessageReceiver.h:
+ Move MessageReceiver from Connection.h to its own file.
+
+ * Platform/CoreIPC/MessageReceiverMap.cpp:
+ New helper class.
+
+ (CoreIPC::MessageReceiverMap::addMessageReceiver):
+ Add the receiver to the map of receivers.
+
+ (CoreIPC::MessageReceiverMap::dispatchMessage):
+ Check if we have any registered receivers for this message class.
+
+ * Platform/CoreIPC/MessageReceiverMap.h:
+ New file.
+
+ * Target.pri:
+ Add new files.
+
+ * WebKit2.xcodeproj/project.pbxproj:
+ Add new files.
+
+ * WebProcess/Authentication/AuthenticationManager.cpp:
+ (WebKit::AuthenticationManager::AuthenticationManager):
+ * WebProcess/Authentication/AuthenticationManager.h:
+ (AuthenticationManager):
+ Register the authentication manager as a message receiver.
+
+ * WebProcess/Geolocation/WebGeolocationManager.cpp:
+ (WebKit::WebGeolocationManager::WebGeolocationManager):
+ * WebProcess/Geolocation/WebGeolocationManager.h:
+ (WebGeolocationManager):
+ Register the geolocation manager as a message receiver.
+
+ * WebProcess/WebProcess.cpp:
+ (WebKit::WebProcess::didReceiveMessage):
+ Remove checks for authentication manager and geolocation manager messages.
+
+ * win/WebKit2.vcproj:
+ Add new files.
+
+2012-10-02 Carlos Garcia Campos <cgarcia@igalia.com>
+
+ [GTK] Programs/WebKit2APITests/TestCookieManager fails
+ https://bugs.webkit.org/show_bug.cgi?id=98176
+
+ Reviewed by Martin Robinson.
+
+ The problem is that the soup server has a g_assert_not_reached()
+ for unknown paths, but know /favicon.icon might be requested.
+
+ * UIProcess/API/gtk/tests/TestCookieManager.cpp:
+ (serverCallback): Ignore unknown paths.
+
+2012-10-02 Hugo Parente Lima <hugo.lima@openbossa.org>
+
+ [WK2] PageViewportControllerClient.h uses WebCore class without declaring them
+ https://bugs.webkit.org/show_bug.cgi?id=98070
+
+ Reviewed by Kenneth Rohde Christiansen.
+
+ This patch just add forward declarations for code correctness.
+
+ * UIProcess/PageViewportControllerClient.h:
+ (WebCore):
+
+2012-10-02 Jocelyn Turcotte <jocelyn.turcotte@digia.com>
+
+ Fix tst_QQuickWebView::scrollRequest after r130029
+ https://bugs.webkit.org/show_bug.cgi?id=98045
+
+ Reviewed by Simon Hausmann.
+
+ The test needs to show the window and wait for the loadVisuallyCommitted()
+ signal like did in the QML API auto tests.
+
+ * UIProcess/API/qt/tests/qquickwebview/tst_qquickwebview.cpp:
+ (tst_QQuickWebView::scrollRequest):
+ * UIProcess/API/qt/tests/util.cpp:
+ (waitForViewportReady):
+ * UIProcess/API/qt/tests/util.h:
+
+2012-10-02 Jinwoo Song <jinwoo7.song@samsung.com>
+
+ [EFL][WK2] Use correct gtest macro for testing true/false
+ https://bugs.webkit.org/show_bug.cgi?id=98142
+
+ Reviewed by Laszlo Gombos.
+
+ Using EXPECT_EQ(true/false, ...) makes clang trip when it tries to convert
+ true/false to a pointer. Tests should use EXPECT_TRUE/FALSE instead.
+
+ * UIProcess/API/efl/tests/test_ewk2_view.cpp:
+ (showPopupMenu):
+ (TEST_F):
+
+2012-10-01 Brady Eidson <beidson@apple.com>
+
+ Remove the Safari 2 -> Safari 3 icon database import code.
+ https://bugs.webkit.org/show_bug.cgi?id=98113
+
+ Reviewed by Maciej Stachowiak.
+
+ Nuke the performImport() IconDatabaseClient method.
+
+ * UIProcess/WebIconDatabase.cpp:
+ (WebKit):
+ * UIProcess/WebIconDatabase.h:
+ (WebIconDatabase):
+
+2012-10-01 Christophe Dumez <christophe.dumez@intel.com>
+
+ Fix compilation warnings
+ https://bugs.webkit.org/show_bug.cgi?id=98020
+
+ Reviewed by Gyuyoung Kim.
+
+ Fix compilation warnings related to ewk_view.
+
+ * UIProcess/API/efl/ewk_view.cpp:
+ (_ewk_view_feed_touch_event_using_touch_point_list_of_evas):
+ (_ewk_view_on_touch_down):
+ (_ewk_view_on_touch_up):
+ (_ewk_view_on_touch_move):
+ * UIProcess/API/efl/ewk_view_ui_client.cpp:
+ (exceededDatabaseQuota):
+
+2012-10-01 Claudio Saavedra <csaavedra@igalia.com>
+
+ [GTK][WK2] Save the download uri as file metadata
+ https://bugs.webkit.org/show_bug.cgi?id=98043
+
+ Reviewed by Carlos Garcia Campos.
+
+ gio/gvfs can store file metadata, let's use this to
+ store the download uri.
+
+ * WebProcess/Downloads/soup/DownloadSoup.cpp:
+ (WebKit::DownloadClient::didReceiveResponse): Save
+ the download uri as metadata.
+
+2012-10-01 Andras Becsi <andras.becsi@digia.com>
+
+ [Qt][WK2] Device pixel ratio lost upon relaunch of the web process
+ https://bugs.webkit.org/show_bug.cgi?id=97908
+
+ Reviewed by Jocelyn Turcotte.
+
+ Use setIntrinsicDeviceScaleFactor instead of setCustomDeviceScaleFactor
+ when setting the device pixel ratio to make the setting permanent.
+
+ * UIProcess/API/qt/qquickwebview.cpp:
+ (QQuickWebViewPrivate::didRelaunchProcess):
+ (QQuickWebViewExperimental::setDevicePixelRatio):
+
+2012-09-27 Jocelyn Turcotte <jocelyn.turcotte@digia.com>
+
+ [Qt] Fix viewport QML auto tests after the viewport changes
+ https://bugs.webkit.org/show_bug.cgi?id=97781
+
+ Reviewed by Simon Hausmann.
+
+ Since the viewport controller has to hold any QML-side viewport updates
+ while it applies and render the new requested position, this has the
+ effect of blocking all those tests if the view is not visible (thus
+ disabling the tile rendering completely in the web process).
+ The viewport should be unlocked after the first rendered frame for
+ static contents.
+
+ Fix those tests by forcing the QQuickView to be visible and by making
+ them wait for the first frame rather than the earlier end of provisional load.
+
+ * UIProcess/API/qt/tests/qmltests/WebView/tst_doubleTapToZoom.qml:
+ * UIProcess/API/qt/tests/qmltests/WebView/tst_fitToView.qml:
+ * UIProcess/API/qt/tests/qmltests/WebView/tst_wheelEventHandling.qml:
+ * UIProcess/API/qt/tests/qmltests/common/TestWebView.qml:
+
+2012-09-27 Jocelyn Turcotte <jocelyn.turcotte@digia.com>
+
+ [Qt] Add a loadVisuallyCommitted() signal
+ https://bugs.webkit.org/show_bug.cgi?id=97780
+
+ Reviewed by Kenneth Rohde Christiansen.
+
+ This signal is emitted when the first DidRenderFrame message is received from
+ the web process after loadCommitted.
+
+ * UIProcess/API/qt/qquickwebview.cpp:
+ (QQuickWebViewPrivate::QQuickWebViewPrivate):
+ (QQuickWebViewPrivate::loadDidCommit):
+ (QQuickWebViewPrivate::setNeedsDisplay):
+ * UIProcess/API/qt/qquickwebview_p.h:
+ * UIProcess/API/qt/qquickwebview_p_p.h:
+ (QQuickWebViewPrivate):
+
+2012-09-27 Jocelyn Turcotte <jocelyn.turcotte@digia.com>
+
+ [Qt] Move Qt-only related methods from WebPageProxy.cpp to WebPageProxyQt.cpp
+
+ Reviewed by Simon Hausmann.
+
+ * UIProcess/WebPageProxy.cpp:
+ * UIProcess/qt/WebPageProxyQt.cpp:
+ (WebKit::WebPageProxy::didFindZoomableArea):
+ (WebKit):
+ (WebKit::WebPageProxy::findZoomableAreaForPoint):
+ (WebKit::WebPageProxy::didReceiveMessageFromNavigatorQtObject):
+ (WebKit::WebPageProxy::authenticationRequiredRequest):
+ (WebKit::WebPageProxy::proxyAuthenticationRequiredRequest):
+ (WebKit::WebPageProxy::certificateVerificationRequest):
+
+2012-09-27 Jocelyn Turcotte <jocelyn.turcotte@digia.com>
+
+ [Qt] Decide when to apply a scrolled position to the viewport based on the rect covered by the tiles
+ https://bugs.webkit.org/show_bug.cgi?id=97777
+
+ Reviewed by Kenneth Rohde Christiansen.
+
+ This patch achieves two things:
+ - Apply a short scroll position request directly if we already have rendered tiles
+ at this position.
+ - Since our visible rect request is asynchronous, the next frame might not always
+ be the one covering this position. This will wait for a frame that does to apply it.
+
+ * UIProcess/API/qt/raw/qrawwebview_p_p.h:
+ (QRawWebViewPrivate::didRenderFrame):
+ * UIProcess/CoordinatedGraphics/LayerTreeCoordinatorProxy.cpp:
+ (WebKit::LayerTreeCoordinatorProxy::didRenderFrame):
+ * UIProcess/CoordinatedGraphics/LayerTreeCoordinatorProxy.h:
+ (LayerTreeCoordinatorProxy):
+ * UIProcess/CoordinatedGraphics/LayerTreeCoordinatorProxy.messages.in:
+ * UIProcess/PageClient.h:
+ (PageClient):
+ * UIProcess/PageViewportController.cpp:
+ (WebKit::PageViewportController::didCommitLoad):
+ (WebKit::PageViewportController::didRenderFrame):
+ (WebKit::PageViewportController::pageDidRequestScroll):
+ * UIProcess/PageViewportController.h:
+ (PageViewportController):
+ * UIProcess/WebPageProxy.h:
+ (WebPageProxy):
+ * UIProcess/qt/QtPageClient.cpp:
+ (WebKit::QtPageClient::didRenderFrame):
+ * UIProcess/qt/QtPageClient.h:
+ (QtPageClient):
+ * UIProcess/qt/WebPageProxyQt.cpp:
+ (WebKit::WebPageProxy::didRenderFrame):
+ * WebProcess/WebPage/CoordinatedGraphics/CoordinatedGraphicsLayer.h:
+ (WebCore::CoordinatedGraphicsLayer::coverRect):
+ * WebProcess/WebPage/CoordinatedGraphics/LayerTreeCoordinator.cpp:
+ (WebKit::LayerTreeCoordinator::flushPendingLayerChanges):
+
+2012-09-27 Jocelyn Turcotte <jocelyn.turcotte@digia.com>
+
+ [Qt] Delay viewport position, scale and contents size updates until tiles are rendered
+ https://bugs.webkit.org/show_bug.cgi?id=97775
+
+ Reviewed by Kenneth Rohde Christiansen.
+
+ A few events from the web process can cause the viewport position or scale to be
+ adjusted in the UI process:
+ - Scroll position request
+ - Viewport attributes (initialScale, minimumScale)
+ - Contents size change
+
+ We previously applied those updates directly to the viewport, which would then in turn
+ produce a corresponding visible rect request to the web process to render the contents
+ at the new position/scale. This could leave the viewport showing the old content, either
+ by scaling the tiles, or by showing checkerboard if no contents was rendered at this
+ position yet. When the web process was done rendering new tiles, the proper tiles
+ were then shown to the user.
+ Since many of these updates happen during page load, all producing an iterative adjustment
+ to the viewport, this could show sharpness and position jitter until the final rendering
+ was done.
+
+ This patch makes those updates go through the PageViewportController first and then to the
+ QQuickWebView rather than the other way around, and keep them pending until the
+ LayerTreeHostProxy reports that the new tiles are ready to be shown. Since the rendering
+ is blocked until the page first layout is done, this apply the modifications to
+ the viewport only once when the first frame is ready to be shown.
+
+ * UIProcess/API/qt/qquickwebview.cpp:
+ * UIProcess/API/qt/qquickwebview_p_p.h:
+ (QQuickWebViewFlickablePrivate):
+ * UIProcess/API/qt/raw/qrawwebview_p_p.h:
+ (QRawWebViewPrivate::didRenderFrame):
+ * UIProcess/CoordinatedGraphics/LayerTreeCoordinatorProxy.cpp:
+ (WebKit::LayerTreeCoordinatorProxy::didRenderFrame):
+ * UIProcess/CoordinatedGraphics/LayerTreeCoordinatorProxy.h:
+ (LayerTreeCoordinatorProxy):
+ * UIProcess/CoordinatedGraphics/LayerTreeCoordinatorProxy.messages.in:
+ * UIProcess/PageClient.h:
+ (PageClient):
+ * UIProcess/PageViewportController.cpp:
+ (WebKit::PageViewportController::didCommitLoad):
+ (WebKit::PageViewportController::didChangeContentsSize):
+ (WebKit::PageViewportController::didRenderFrame):
+ (WebKit::PageViewportController::initialViewportReady):
+ (WebKit::PageViewportController::pageDidRequestScroll):
+ (WebKit::PageViewportController::didChangeContentsVisibility):
+ (WebKit::PageViewportController::resumeContent):
+ (WebKit::PageViewportController::applyScaleAfterRenderingContents):
+ (WebKit):
+ (WebKit::PageViewportController::applyPositionAfterRenderingContents):
+ (WebKit::PageViewportController::updateMinimumScaleToFit):
+ * UIProcess/PageViewportController.h:
+ (PageViewportController):
+ * UIProcess/PageViewportControllerClient.h:
+ (PageViewportControllerClient):
+ * UIProcess/WebPageProxy.h:
+ (WebPageProxy):
+ * UIProcess/qt/PageViewportControllerClientQt.cpp:
+ (WebKit::PageViewportControllerClientQt::didChangeContentsSize):
+ * UIProcess/qt/PageViewportControllerClientQt.h:
+ (PageViewportControllerClientQt):
+ * UIProcess/qt/QtPageClient.cpp:
+ (WebKit::QtPageClient::didRenderFrame):
+ (WebKit):
+ (WebKit::QtPageClient::didChangeContentsSize):
+ * UIProcess/qt/QtPageClient.h:
+ (QtPageClient):
+ * UIProcess/qt/QtWebPageLoadClient.cpp:
+ (WebKit::QtWebPageLoadClient::didCommitLoad):
+ * UIProcess/qt/WebPageProxyQt.cpp:
+ (WebKit::WebPageProxy::didRenderFrame):
+ (WebKit):
+ * WebProcess/WebPage/CoordinatedGraphics/LayerTreeCoordinator.cpp:
+ (WebKit::LayerTreeCoordinator::flushPendingLayerChanges):
+
+2012-09-27 Jocelyn Turcotte <jocelyn.turcotte@digia.com>
+
+ [Qt] Wait for the UI process before re-enabling rendering during page load
+ https://bugs.webkit.org/show_bug.cgi?id=97773
+
+ Reviewed by Kenneth Rohde Christiansen.
+
+ During page navigation, WebCore might ask asynchronously the UI process to
+ scroll to an anchor or restored history position and the UI process will
+ return the corresponding visible rect to be rendered by the web process.
+
+ To avoid rendering tiles for the invalidated area by the new page layout at
+ the wrong position, we should do an extra message round-trip to the UI
+ process before resuming the rendering.
+ Assuming that all messages are handled in order by both the web and UI process,
+ sending the round-trip request in the web process once we sent all scroll
+ requests, contents size and viewport attributes updates and then handling
+ the round-trip response, we make sure that final visible rect request have
+ been handled already.
+
+ * UIProcess/API/qt/raw/qrawwebview.cpp:
+ (QRawWebViewPrivate::pageTransitionViewportReady):
+ * UIProcess/API/qt/raw/qrawwebview_p_p.h:
+ (QRawWebViewPrivate):
+ * UIProcess/PageClient.h:
+ (PageClient):
+ * UIProcess/PageViewportController.cpp:
+ (WebKit::PageViewportController::pageTransitionViewportReady):
+ (WebKit):
+ * UIProcess/PageViewportController.h:
+ (PageViewportController):
+ * UIProcess/WebPageProxy.h:
+ (WebPageProxy):
+ * UIProcess/WebPageProxy.messages.in:
+ * UIProcess/qt/QtPageClient.cpp:
+ (WebKit::QtPageClient::pageTransitionViewportReady):
+ (WebKit):
+ * UIProcess/qt/QtPageClient.h:
+ (QtPageClient):
+ * UIProcess/qt/WebPageProxyQt.cpp:
+ (WebKit::WebPageProxy::commitPageTransitionViewport):
+ (WebKit):
+ (WebKit::WebPageProxy::pageTransitionViewportReady):
+ * WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
+ (WebKit::WebFrameLoaderClient::WebFrameLoaderClient):
+ (WebKit::WebFrameLoaderClient::dispatchDidLayout):
+ (WebKit::WebFrameLoaderClient::frameLoadCompleted):
+ (WebKit::WebFrameLoaderClient::provisionalLoadStarted):
+ * WebProcess/WebCoreSupport/WebFrameLoaderClient.h:
+ (WebFrameLoaderClient):
+ * WebProcess/WebPage/WebPage.cpp:
+ (WebKit::WebPage::didStartPageTransition):
+ (WebKit):
+ (WebKit::WebPage::didCompletePageTransition):
+ * WebProcess/WebPage/WebPage.h:
+ (WebPage):
+ * WebProcess/WebPage/WebPage.messages.in:
+ * WebProcess/WebPage/qt/WebPageQt.cpp:
+ (WebKit::WebPage::commitPageTransitionViewport):
+ (WebKit):
+
+2012-10-01 Alberto Garcia <agarcia@igalia.com>
+
+ WebPrintOperationGtk destructor should be virtual
+ https://bugs.webkit.org/show_bug.cgi?id=98002
+
+ Reviewed by Carlos Garcia Campos.
+
+ WebPrintOperationGtk is an abstract class which can be deleted
+ using a pointer to itself, yet its destructor is not virtual.
+ Fixes -Wdelete-non-virtual-dtor.
+
+ * WebProcess/WebPage/gtk/WebPrintOperationGtk.h:
+ (WebPrintOperationGtk):
+
+2012-09-30 Mario Sanchez Prada <msanchez@igalia.com>
+
+ [WK2][GTK] Add API to get the favicon for a WebKitWebView
+ https://bugs.webkit.org/show_bug.cgi?id=96477
+
+ Reviewed by Carlos Garcia Campos.
+
+ Provide a new simple API to synchronously try to get the favicon
+ associated with a WebView, if any, and to keep track of changes on
+ it, through a new GObject property.
+
+ * UIProcess/API/gtk/WebKitWebView.cpp:
+ (_WebKitWebViewPrivate):
+ (webkitWebViewIconReadyCallback): Callback to handle the
+ 'icon-ready' signal coming from WebKitFaviconDatabase.
+ (webkitWebViewWatchForChangesInFavicon): Connects to the
+ 'icon-ready' signal from WebKitFaviconDatabase, to keep track of
+ changes in favicons, that must be related to the current view.
+ (webkitWebViewDisconnectFaviconDatabaseSignalHandlers):
+ Disconnects the handler for 'icon-ready' if needed.
+ (webkitWebViewGetProperty): Updated for the new "favicon" property .
+ (webkitWebViewFinalize): Disconnect the new signal handler.
+ (webkit_web_view_class_init): Definition of the new property.
+ (webkitWebViewEmitLoadChanged): Make sure we will be watching for
+ changes in the favicon from WEBKIT_LOAD_STARTED on.
+ (webkit_web_view_get_favicon): New API funtcion, returning the
+ current favicon for the WebView, if any, or NULL otherwise.
+ * UIProcess/API/gtk/WebKitWebView.h:
+
+ Internally expose a way to try to get the favicon associated to a
+ page URL synchronously, through WebKitFaviconDatabase.
+
+ * UIProcess/API/gtk/WebKitFaviconDatabase.cpp:
+ (webkitFaviconDatabaseGetFaviconSync): New internal function, it
+ will return either 0 or a valid pointer to a cairo_surface_t.
+ * UIProcess/API/gtk/WebKitFaviconDatabasePrivate.h:
+
+ Add unit tests for checking this new API.
+
+ * UIProcess/API/gtk/tests/TestWebKitFaviconDatabase.cpp:
+ (testWebViewFavicon): New unit test.
+ (beforeAll): Add the test to the test suite.
+
+2012-09-30 Mario Sanchez Prada <msanchez@igalia.com>
+
+ [WK2][GTK] Fix issues with WebKitFaviconDatabase in debug builds
+ https://bugs.webkit.org/show_bug.cgi?id=97966
+
+ Reviewed by Carlos Garcia Campos.
+
+ Fix failing ASSERTs detected when running the unit tests from
+ TestWebKitFaviconDatabase in debug builds.
+
+ * UIProcess/API/gtk/WebKitFaviconDatabase.cpp:
+ (webkitFaviconDatabaseDispose): Close IconDatabase here, which is
+ the right place to do it according to GObject documentation.
+ (webkitFaviconDatabaseFinalize): Just destroy the private data
+ structure and chain up to parent class's finalize method.
+ (webkit_favicon_database_class_init): Override dispose method.
+
+ * UIProcess/API/gtk/tests/TestWebKitFaviconDatabase.cpp:
+ (webkitFaviconDatabaseFinalizedCallback): Delete files when the
+ WebKitFaviconDatabase is being finalized, since by that time the
+ IconDatabase from WebCore will be already closed.
+ (afterAll): Add a weak reference to WebKitFaviconDatabase and
+ provide a GWeakNotify callback (webkitFaviconDatabaseFinalizedCallback).
+
+2012-09-29 Byungwoo Lee <bw80.lee@samsung.com>
+
+ [EFL] Fix build error : Link webkit2 library to ewk2UnitTestInjectedBundleSample.
+ https://bugs.webkit.org/show_bug.cgi?id=97622
+
+ Reviewed by Gyuyoung Kim.
+
+ There is no dependency between ewk2UnitTestInjectedBundleSample and
+ webkit2 library.
+
+ Because of this, on the first build, compiler tries to build
+ injected_bundle_sample.cpp before the forwarding headers are created.
+ This makes build error that the header file 'WebKit2/WKBaseSoup.h'
+ cannot be found.
+
+ To prevent this, webkit2 library is linked to ewk2UnitTestInjectedBundleSample.
+
+ * PlatformEfl.cmake:
+
+2012-09-28 Mariusz Grzegorczyk <mariusz.g@samsung.com>
+
+ [WK2][GTK][EFL] Share WebKit2-GTK plugin process implementation with EFL port
+ https://bugs.webkit.org/show_bug.cgi?id=91844
+
+ Reviewed by Simon Hausmann.
+
+ Implement windowless plugin and functions needed to launch PluginProcess.
+
+ * GNUmakefile.am: Change files and folders related to plugin process from gtk to unix.
+ * GNUmakefile.list.am: Change files and folders related to plugin process from gtk to unix.
+ * Platform/Logging.cpp: Add Plugins channel for LOG.
+ (WebKit):
+ (WebKit::getChannelFromName):
+ (WebKit::initializeLogChannelsIfNecessary):
+ * Platform/Logging.h:
+ (WebKit):
+ * PlatformEfl.cmake: Add files needed by plugin process.
+ * PluginProcess/unix/PluginControllerProxyUnix.cpp: Renamed from Source/WebKit2/PluginProcess/gtk/PluginControllerProxyGtk.cpp.
+ (WebKit):
+ (WebKit::PluginControllerProxy::platformInitialize): Add macros for gtk/efl differents.
+ (WebKit::PluginControllerProxy::platformDestroy):
+ (WebKit::PluginControllerProxy::platformGeometryDidChange):
+ * PluginProcess/unix/PluginProcessMainUnix.cpp: Renamed from Source/WebKit2/PluginProcess/gtk/PluginProcessMainGtk.cpp.
+ (WebKit):
+ (WebKit::webkitXError):
+ (WebKit::PluginProcessMainUnix):
+ * PluginProcess/unix/PluginProcessMainUnix.h: Renamed from Source/WebKit2/PluginProcess/gtk/PluginProcessMainGtk.h.
+ (WebKit):
+ * PluginProcess/unix/PluginProcessUnix.cpp: Renamed from Source/WebKit2/PluginProcess/gtk/PluginProcessGtk.cpp.
+ (WebKit):
+ (WebKit::PluginProcess::platformInitialize):
+ * UIProcess/Plugins/unix/PluginProcessProxyUnix.cpp: Renamed from Source/WebKit2/UIProcess/Plugins/gtk/PluginProcessProxyGtk.cpp.
+ (WebKit):
+ (WebKit::PluginProcessProxy::platformInitializePluginProcess):
+ (WebKit::PluginProcessProxy::scanPlugin):
+ * UIProcess/efl/WebPageProxyEfl.cpp: Add stubs.
+ (WebKit::WebPageProxy::createPluginContainer):
+ (WebKit):
+ (WebKit::WebPageProxy::windowedPluginGeometryDidChange):
+ * WebProcess/Plugins/Netscape/unix/PluginProxyUnix.cpp: Renamed from Source/WebKit2/WebProcess/Plugins/Netscape/gtk/PluginProxyGtk.cpp.
+ (WebKit):
+ (WebKit::PluginProxy::needsBackingStore):
+ * WebProcess/Plugins/Netscape/x11/NetscapePluginX11.cpp: Plugin's windowless implementation.
+ (WebKit::getPluginDisplay):
+ (WebKit::x11Screen):
+ (WebKit::displayDepth):
+ (WebKit::rootWindowID):
+ (WebKit::NetscapePlugin::x11HostDisplay):
+ (WebKit::NetscapePlugin::platformPaint):
+ * config.h:
+ * unix/PluginMainUnix.cpp: Renamed from Source/WebKit2/gtk/PluginMainGtk.cpp.
+ (main):
+
+2012-09-28 Anders Carlsson <andersca@apple.com>
+
+ Remove Java bridge
+ https://bugs.webkit.org/show_bug.cgi?id=97954
+
+ Reviewed by Sam Weinig.
+
+ The Java bridge is not used by any port; Mac now has a NPAPI Java plug-in.
+
+ * WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
+ * WebProcess/WebCoreSupport/WebFrameLoaderClient.h:
+ (WebFrameLoaderClient):
+
+2012-09-28 Dan Bernstein <mitz@apple.com>
+
+ <rdar://problem/12398537> WebKit2 lacks API for disabling document.cookie like -[WebView _setCookieEnabled:]
+ https://bugs.webkit.org/show_bug.cgi?id=97939
+
+ Reviewed by Sam Weinig.
+
+ * Shared/WebPreferencesStore.h:
+ (WebKit): Defined CookieEnabled key with a default value of true.
+ * UIProcess/API/C/WKPreferences.cpp:
+ (WKPreferencesSetCookieEnabled): Added this setter.
+ (WKPreferencesGetCookieEnabled): Added this getter.
+ * UIProcess/API/C/WKPreferencesPrivate.h:
+ * WebProcess/WebPage/WebPage.cpp:
+ (WebKit::WebPage::updatePreferences): Added a call to Settings::setCookieEnabled to push the
+ preference into Settings.
+
+2012-09-28 Sam Weinig <sam@webkit.org>
+
+ Fix pluralization of Info.plist key.
+
+ Rubber-stamped by Anders Carlsson.
+
+ * WebProcessService/Info.plist:
+ * WebProcessServiceForWebKitDevelopment/Info.plist:
+ It's _MultipleInstances, not _MultipleInstance. :(
+
+2012-09-28 Anders Carlsson <andersca@apple.com>
+
+ Pass the correct path length to _NSGetExecutablePath
+ https://bugs.webkit.org/show_bug.cgi?id=97935
+
+ Reviewed by Sam Weinig.
+
+ * WebProcessServiceForWebKitDevelopment/WebProcessServiceForWebKitDevelopmentMain.mm:
+ (WebProcessServiceForWebKitDevelopmentEventHandler):
+ Initialize pathLength before passing it to _NSGetExecutablePath.
+
+2012-09-28 Alberto Garcia <agarcia@igalia.com>
+
+ WebKitLoaderClient: add missing initializer.
+ https://bugs.webkit.org/show_bug.cgi?id=97930
+
+ Reviewed by Martin Robinson.
+
+ WKPageLoaderClient is missing the initializer for the didLayout
+ field. Fixes -Wmissing-field-initializers.
+
+ * UIProcess/API/gtk/WebKitLoaderClient.cpp:
+ (attachLoaderClientToView):
+
+2012-09-28 Mikhail Pozdnyakov <mikhail.pozdnyakov@intel.com>
+
+ Code inside FrameLoaderClient::canShowMIMEType() implementations can be shared among different WK ports
+ https://bugs.webkit.org/show_bug.cgi?id=97547
+
+ Reviewed by Adam Barth.
+
+ Newly added WebCore::MIMETypeRegistry::canShowMIMEType() function is used
+ inside WebKit::WebPageProxy::canShowMIMEType() and WKBundlePageCanShowMIMEType().
+
+ * UIProcess/WebPageProxy.cpp:
+ (WebKit::WebPageProxy::canShowMIMEType):
+ * WebProcess/InjectedBundle/API/c/WKBundlePage.cpp:
+ (WKBundlePageCanShowMIMEType):
+
+2012-09-28 Byungwoo Lee <bw80.lee@samsung.com>
+
+ [EFL][WK2] {Vibration,Battery,NetworkInfo}Provider should contain WKContextRef instead of proxy.
+ https://bugs.webkit.org/show_bug.cgi?id=97839
+
+ Reviewed by Kenneth Rohde Christiansen.
+
+ VibrationProvider has WKRetainPtr<WKVibrationRef> m_wkVibrationRef
+ which has reference for object WebVibrationProxy.
+ The WebVibrationProxy instance is a member of WebContext who has it
+ as RefPtr<WebVibrationProxy>.
+
+ A member of one class is shared with another class, but there is no
+ relation between the two classes.
+
+ This can become a problem when WebContext is deleted before the
+ VibrationProvider, WebVibrationProxy will be alive without WebContext,
+ because VibrationProvider also has the reference for WebVibrationProxy.
+
+ This is a problem because WebVibrationProxy should be a member of
+ WebContext.
+
+ To prevent this, I changed the VibrationProvider to have
+ WKRetainPtr<WKContextRef> instead of WKRetainPtr<WKVibrationRef>.
+ Same for BatteryProvider and NetworkInfoProvider.
+
+ * UIProcess/API/efl/BatteryProvider.cpp:
+ (BatteryProvider::create):
+ (BatteryProvider::BatteryProvider):
+ (BatteryProvider::didChangeBatteryStatus):
+ * UIProcess/API/efl/BatteryProvider.h:
+ (BatteryProvider):
+ * UIProcess/API/efl/NetworkInfoProvider.cpp:
+ (NetworkInfoProvider::create):
+ (NetworkInfoProvider::NetworkInfoProvider):
+ * UIProcess/API/efl/NetworkInfoProvider.h:
+ (NetworkInfoProvider):
+ * UIProcess/API/efl/VibrationProvider.cpp:
+ (VibrationProvider::create):
+ (VibrationProvider::VibrationProvider):
+ * UIProcess/API/efl/VibrationProvider.h:
+ (VibrationProvider):
+ * UIProcess/API/efl/ewk_context.cpp:
+ (_Ewk_Context::_Ewk_Context):
+
+2012-09-28 Mario Sanchez Prada <msanchez@igalia.com>
+
+ [WK2][GTK] Implement new Favicons API
+ https://bugs.webkit.org/show_bug.cgi?id=96476
+
+ Reviewed by Carlos Garcia Campos.
+
+ New object wrapping the internal IconDatabase from WebCore,
+ providing a simple asynchronous API to retrieve the favicon
+ associated to a page URL, and two more functions to simple query
+ the internal database for the URI of the icon associated to a
+ page, if any, and to clear the state of the internal database.
+
+ * UIProcess/API/gtk/WebKitFaviconDatabase.cpp: Added.
+ (_WebKitFaviconDatabasePrivate):
+ (webkit_favicon_database_init):
+ (webkitFaviconDatabaseFinalize):
+ (webkit_favicon_database_class_init):
+ (GetFaviconSurfaceAsyncData): New structure used to pass data
+ across the asynchronous implementation of get_favicon().
+ (GetFaviconSurfaceAsyncData::~GetFaviconSurfaceAsyncData):
+ Disconnects the cancellable if needed.
+ (getIconSurfaceSynchronously): Synchronously returns a pointer to
+ the cairo_surface with the icon's data, if available.
+ (deletePendingIconRequests): Removes the full list of
+ icon requests for a page URL.
+ (processPendingIconsForURI): Process any icon request that
+ might be still pending.
+ (iconDataReadyForPageURLCallback): Called from WebIconDatabase
+ when new data is ready for a favicon.
+ (webkitFaviconDatabaseCreate): Create the WebKitFaviconDatabase
+ object and initializes the API client for WKIconDatabaseClient.
+ (getOrCreatePendingIconRequests): Returns (if available) or
+ creates a new icon request, to be appended to the list of requests
+ for the same page URL.
+ (getIconSurfaceCancelled): Handle the case of a request being
+ cancelled. Must happen on the main thread.
+ (getIconSurfaceCancelledCallback): Callback used with
+ g_cancellable_connect(), which ensure getIconSurfaceCancelled() is
+ called from the main thread.
+ (setErrorForAsyncResult): Helper to set errors in the result.
+ (webkit_favicon_database_error_quark): New function, providint the
+ new error domain for errors of type WebKitFaviconDatabaseError.
+ (webkit_favicon_database_get_favicon): New API function, providing
+ an asynchronous mechanism to query the favicon for a page URL.
+ (webkit_favicon_database_get_favicon_finish): New API function to
+ finish the asyncrhonous request started with get_favicon().
+ (webkit_favicon_database_get_favicon_uri): New API function
+ to easily retrieve, if available, the URI of a favicon.
+ (webkit_favicon_database_clear): New API function to clear the
+ state of the internal icon database.
+ * UIProcess/API/gtk/WebKitFaviconDatabase.h: Added.
+ (_WebKitFaviconDatabase):
+ (_WebKitFaviconDatabaseClass):
+ * UIProcess/API/gtk/WebKitFaviconDatabasePrivate.h: Added to
+ internally expose webkitFaviconDatabaseCreate() to WebKitWebContext.
+ * UIProcess/API/gtk/WebKitPrivate.h: Import WebKit2/WKIconDatabase.h.
+ * GNUmakefile.list.am: Added new files.
+
+ Add a new getter in WebIconDatabase for m_urlImportCompleted.
+
+ * UIProcess/WebIconDatabase.cpp:
+ (WebKit::WebIconDatabase::isUrlImportCompleted): Added this simple
+ getter to allow knowing from WebKitFaviconDatabase whether the
+ initial import has finished, needed for making some decisions.
+ (WebKit):
+ * UIProcess/WebIconDatabase.h:
+ (WebIconDatabase):
+
+ New API in WebKitWebContext to allow obtaining a valid instance of
+ WebKitFaviconDatabase and to set/get the local path to be used.
+
+ * UIProcess/API/gtk/WebKitWebContext.cpp:
+ (_WebKitWebContextPrivate):
+ (webkit_web_context_set_favicon_database_path): New API to allow
+ setting a path for the icon database, other than the default one.
+ (webkit_web_context_get_favicon_database_path): New API to
+ retrieve the path for the icon database currently in use.
+ (webkit_web_context_get_favicon_database): New API to get a valid
+ and properly initialized instance of WebKitFaviconDatabase.
+ * UIProcess/API/gtk/WebKitWebContext.h:
+
+ Make sure we have a default path set for the icon database.
+
+ * UIProcess/gtk/WebContextGtk.cpp:
+ (WebKit::WebContext::platformDefaultIconDatabasePath): Return the
+ default path to be used for the icon database.
+
+ Add unit tests for checking this new API.
+
+ * UIProcess/API/gtk/tests/TestWebKitFaviconDatabase.cpp: Added.
+ (serverCallback): Callback for the test server.
+ (testSetDirectory): New unit test, checks the ability to set and
+ get a specific directory path for the icon database.
+ (testClearDatabase): New unit test, checks the ability to clear
+ the data in the icon database.
+ (testGetFavicon): New unit test, checks the ability to get a
+ favicon from the icon database in different situations.
+ (testGetFaviconURI): New unit test, checks the ability to retrieve
+ the URI for the favicon, if any, associated to a web page.
+ (deleteDatabaseFiles): Helper function to remove temporary files.
+ (beforeAll): Initialize the test server and add the unit tests.
+ (afterAll): Delete the test server and clean up.
+
+2012-09-28 Raphael Kubo da Costa <raphael.kubo.da.costa@intel.com>
+
+ [EFL] Unreviewed test fixes after r129892.
+
+ * UIProcess/API/efl/tests/test_ewk2_context.cpp:
+ (TEST_F): Fix a copy&paste error that changed the test
+ expectations.
+ * UIProcess/API/efl/tests/test_ewk2_cookie_manager.cpp:
+ (TEST_F): Revert the change here since it was already in the right
+ format before.
+
+2012-09-28 Jinwoo Song <jinwoo7.song@samsung.com>
+
+ [EFL][WK2] Some expected and actual parameters in unit tests are reversed
+ https://bugs.webkit.org/show_bug.cgi?id=97624
+
+ Reviewed by Laszlo Gombos.
+
+ According to the gtest guide, ASSERT_XXX, EXPECT_XXX(expected, actual) are recommended
+ but some unit tests do not follow this.(http://code.google.com/p/googletest/wiki/Primer)
+ Google Test's failure messages are optimized for this convention.
+
+ * UIProcess/API/efl/tests/test_ewk2_back_forward_list.cpp:
+ (TEST_F):
+ * UIProcess/API/efl/tests/test_ewk2_context.cpp:
+ (schemeRequestCallback):
+ (TEST_F):
+ * UIProcess/API/efl/tests/test_ewk2_cookie_manager.cpp:
+ (TEST_F):
+ * UIProcess/API/efl/tests/test_ewk2_download_job.cpp:
+ (on_download_requested):
+ (on_download_finished):
+ * UIProcess/API/efl/tests/test_ewk2_intents.cpp:
+ (onIntentServiceRegistration):
+ (onIntentReceived):
+ (TEST_F):
+ * UIProcess/API/efl/tests/test_ewk2_refptr_evas_object.cpp:
+ (TEST_F):
+ * UIProcess/API/efl/tests/test_ewk2_view.cpp:
+ (TEST_F):
+ (onFormAboutToBeSubmitted):
+ (checkBasicPopupMenuItem):
+ (showPopupMenu):
+ (showColorPicker):
+
+2012-09-28 Balazs Kelemen <kbalazs@webkit.org>
+
+ [Qt] QRawWebView tests are broke after r129545
+ https://bugs.webkit.org/show_bug.cgi?id=97907
+
+ Reviewed by Noam Rosenthal.
+
+ The issue here is that we set up the page loader client before initializing the page
+ so the message we send in WebPageProxy::initializeLoaderClient will be lost since the
+ page does not exists at the web process side yet. The trivial fix would be to reorder
+ initialization. In this patch I also moved to the new model of observing layout changes
+ via WKPageDidLayoutCallback since the old one will be deprecated at some time.
+
+ * UIProcess/API/qt/tests/qrawwebview/tst_qrawwebview.cpp:
+ (WebView::WebView):
+ (WebView::didLayout):
+
+2012-09-28 Gyuyoung Kim <gyuyoung.kim@samsung.com>
+
+ Unreviewed, rolling out r129863.
+ http://trac.webkit.org/changeset/129863
+ https://bugs.webkit.org/show_bug.cgi?id=97173
+
+ Broken debug WK2 layout test
+
+ * PlatformEfl.cmake:
+ * UIProcess/API/efl/EWebKit2.h:
+ * UIProcess/API/efl/ewk_context.cpp:
+ (_Ewk_Context::_Ewk_Context):
+ (_Ewk_Context::~_Ewk_Context):
+ * UIProcess/API/efl/ewk_main.cpp:
+ (ewk_init):
+ (ewk_shutdown):
+ * UIProcess/API/efl/ewk_main.h: Added.
+ * UIProcess/API/efl/ewk_main_private.h: Removed.
+ * UIProcess/API/efl/tests/UnitTestUtils/EWK2UnitTestBase.cpp:
+ (EWK2UnitTest::EWK2UnitTestBase::SetUp):
+ (EWK2UnitTest::EWK2UnitTestBase::TearDown):
+ * WebProcess/efl/WebProcessMainEfl.cpp:
+ (WebKit::WebProcessMainEfl):
+
+2012-09-28 Christophe Dumez <christophe.dumez@intel.com>
+
+ [EFL][WK2] exceededDatabaseQuota event is not handled
+ https://bugs.webkit.org/show_bug.cgi?id=97882
+
+ Reviewed by Kenneth Rohde Christiansen.
+
+ Handle exceededDatabaseQuota callback from WKPageUIClient so
+ that we let the browser a chance to decide what to do when
+ the database quota is reached. If the browser does not handle
+ this, then we return a realistic default quota (5MB as
+ recommended by the spec).
+
+ * UIProcess/API/efl/ewk_view.cpp:
+ (ewk_view_database_quota_exceeded):
+ * UIProcess/API/efl/ewk_view.h:
+ * UIProcess/API/efl/ewk_view_private.h:
+ * UIProcess/API/efl/ewk_view_ui_client.cpp:
+ (exceededDatabaseQuota):
+ (ewk_view_ui_client_attach):
+
+2012-09-28 Kai Koehne <kai.koehne@digia.com>
+
+ [Qt] Use qInstallMessageHandler()
+ https://bugs.webkit.org/show_bug.cgi?id=96648
+
+ Reviewed by Jocelyn Turcotte.
+
+ qInstallMsgHandler() got deprecated in Qt 5.
+
+ * PluginProcess/qt/PluginProcessMainQt.cpp:
+ (WebKit::messageHandler):
+ (WebKit::PluginProcessMain):
+ * UIProcess/API/qt/tests/util.cpp:
+ (messageHandler):
+ (suppressDebugOutput):
+ * qt/MainQt.cpp:
+ (messageHandler):
+ (main):
+
+2012-09-28 Byungwoo Lee <bw80.lee@samsung.com>
+
+ [EFL][WK2] Clear provider on destructor of {Vibration,Battery,NetworkInfo}Provider.
+ https://bugs.webkit.org/show_bug.cgi?id=97528
+
+ Reviewed by Kenneth Rohde Christiansen.
+
+ Constructor of {Vibration,Battery,NetworkInfo}Provider set provider
+ but the destructor of the classes doesn't clear provider.
+ This can make a problem about accessing dangling pointer.
+
+ For preventing this problem, clear provider on destructor.
+
+ * UIProcess/API/efl/BatteryProvider.cpp:
+ (BatteryProvider::~BatteryProvider):
+ * UIProcess/API/efl/NetworkInfoProvider.cpp:
+ (NetworkInfoProvider::~NetworkInfoProvider):
+ * UIProcess/API/efl/VibrationProvider.cpp:
+ (VibrationProvider::~VibrationProvider):
+
+2012-09-28 Christophe Dumez <christophe.dumez@intel.com>
+
+ [EFL][WK2] NetworkInfo provider is not initialized in Ewk_Context
+ https://bugs.webkit.org/show_bug.cgi?id=97865
+
+ Reviewed by Kenneth Rohde Christiansen.
+
+ Initialize NetworkInfo provider for EFL port in Ewk_Context
+ with the other providers.
+
+ * UIProcess/API/efl/ewk_context.cpp:
+ (_Ewk_Context):
+ (_Ewk_Context::_Ewk_Context):
+
+2012-09-28 Eunmi Lee <eunmi15.lee@samsung.com>
+
+ [EFL][WK2] Refactoring initialization and shutdown codes of EFL libraries.
+ https://bugs.webkit.org/show_bug.cgi?id=97173
+
+ Reviewed by Gyuyoung Kim.
+
+ Initialize and shutdown the EFL libraries in the ewk_main.cpp for ui
+ process and WebProcessMainEfl.cpp for web process.
+ Additionally, initialization and shutdown are done when ewk_context is
+ created and deleted, so ewk_{init,shutdown} APIs are changed to
+ internal function and applications don't have to call them.
+
+ * PlatformEfl.cmake:
+ * UIProcess/API/efl/EWebKit2.h:
+ * UIProcess/API/efl/ewk_context.cpp:
+ (_Ewk_Context::_Ewk_Context):
+ (_Ewk_Context::~_Ewk_Context):
+ * UIProcess/API/efl/ewk_main.cpp:
+ (ewk_init):
+ (ewk_shutdown):
+ * UIProcess/API/efl/ewk_main.h: Removed.
+ * UIProcess/API/efl/ewk_main_private.h: Added.
+ * UIProcess/API/efl/tests/UnitTestUtils/EWK2UnitTestBase.cpp:
+ (EWK2UnitTest::EWK2UnitTestBase::SetUp):
+ (EWK2UnitTest::EWK2UnitTestBase::TearDown):
+ * WebProcess/efl/WebProcessMainEfl.cpp:
+ (WebKit::WebProcessMainEfl):
+
+2012-09-27 Beth Dakin <bdakin@apple.com>
+
+ https://bugs.webkit.org/show_bug.cgi?id=97823
+ Need to bump the WKBundlePageLoaderClient version after the addition of didLayout
+
+ Reviewed by Brady Eidson.
+
+ Bump the version.
+ * Shared/APIClientTraits.cpp:
+ (WebKit):
+ * Shared/APIClientTraits.h:
+ * WebProcess/InjectedBundle/API/c/WKBundlePage.h:
+
+2012-09-27 Helder Correia <helder.correia@nokia.com>
+
+ [Cairo] Unnecessary creation of ShareableBitmap's for directly composited images
+ https://bugs.webkit.org/show_bug.cgi?id=97745
+
+ Reviewed by Martin Robinson.
+
+ In LayerTreeCoordinator::adoptImageBackingStore(), there is a
+ PLATFORM(QT) code path to check for identical images, but nothing is
+ done for Cairo, which results in the occurrence of avoidable resource
+ allocations.
+
+ The issue happens in e.g. http://www.webkit.org/blog-files/leaves/,
+ where there are many leaves flying around while they're produced out of
+ only four bitmaps.
+
+ This patch uses pointers to cairo_surface_t's as the key to the hashmap
+ that caches bitmaps. This can be safely done since we own the references.
+ We artificially increment the surface references in adoptImageBackingStore()
+ and decrement them in releaseImageBackingStore().
+
+ * WebProcess/WebPage/CoordinatedGraphics/LayerTreeCoordinator.cpp:
+ (WebKit::LayerTreeCoordinator::adoptImageBackingStore):
+ (WebKit::LayerTreeCoordinator::releaseImageBackingStore):
+
+2012-09-27 Anders Carlsson <andersca@apple.com>
+
+ Stop using dispatch_get_current_queue
+ https://bugs.webkit.org/show_bug.cgi?id=97806
+ <rdar://problem/12379094>
+
+ Reviewed by Mark Rowe.
+
+ * Platform/mac/WorkQueueMac.cpp:
+ (WorkQueueAndFunction::WorkQueueAndFunction):
+ (WorkQueueAndFunction):
+ (WorkQueue::executeFunction):
+ (WorkQueue::dispatch):
+ (WorkQueue::dispatchAfterDelay):
+ Keep track of the associated work queue so we can get it in WorkQueue::executeFunction.
+
+ * UIProcess/Launcher/mac/ProcessLauncherMac.mm:
+ (WebKit::setUpTerminationNotificationHandler):
+ We don't care about which queue the termination notification is delivered on since we only want to call
+ waitpid on the child pid so we can just use a global queue.
+
+ * UIProcess/mac/WebInspectorProxyMac.mm:
+ (-[WKWebInspectorProxyObjCAdapter inspectedViewFrameDidChange:]):
+ Use dispatch_get_main_queue here.
+
+2012-09-27 Mario Sanchez Prada <msanchez@igalia.com>
+
+ [WK2] IconDatabase: Add a way to notify when icon data is available
+ https://bugs.webkit.org/show_bug.cgi?id=63945
+
+ Rubber stamped by Anders Carlsson.
+
+ Update version of WKIconDatabaseClient and API traits.
+
+ * Shared/APIClientTraits.cpp:
+ (WebKit):
+ * Shared/APIClientTraits.h:
+ * UIProcess/API/C/WKIconDatabase.h:
+
+2012-09-27 Balazs Kelemen <kbalazs@webkit.org>
+
+ [Qt][WK2] REGRESSION(r128980): It broke all QRawWebView API test
+ https://bugs.webkit.org/show_bug.cgi?id=97561
+
+ Reviewed by Noam Rosenthal.
+
+ Make sure we always send the very first RenderNextFrame message.
+ Before r128980 it was working accidentally because in the common
+ case the web process sent a DeleteCompositingLayer message at some
+ point before the forced repaint would time out and we was sending
+ the first RenderNextFrame when reacting to that.
+
+ * UIProcess/API/qt/raw/qrawwebview.cpp:
+ (QRawWebView::setActive): Set the LayerTreeRenderer to active
+ as well. In the QQuickWebView case it is handled by the QtWebPageSGNode.
+ (QRawWebView::layerTreeRenderer): Added a convenience getter
+ for the LayerTreeRenderer.
+ (QRawWebView::paint):
+ * UIProcess/API/qt/raw/qrawwebview_p.h:
+ (WebKit):
+ * UIProcess/API/qt/tests/qrawwebview/tst_qrawwebview.cpp:
+ (tst_qrawwebview::tst_qrawwebview): Added a call to addQtWebProcessToPath
+ to make my and the follower users of this test easier.
+
+2012-09-27 Eunmi Lee <eunmi15.lee@samsung.com>
+
+ [EFL][WK2] Process touch events using mouse and multi events of Evas.
+ https://bugs.webkit.org/show_bug.cgi?id=96906
+
+ Reviewed by Kenneth Rohde Christiansen.
+
+ Provide default behavior for processing touch events in the ewk_view if
+ application wants to use it.
+ We can to process touch events using mouse and multi events because the
+ Evas creates mouse events for first touch and multi events for second and
+ third touch. It can be modified when Evas starts to support event type
+ for touch events.
+
+ * UIProcess/API/efl/ewk_view.cpp:
+ (_Ewk_View_Private_Data):
+ (_Ewk_View_Private_Data::_Ewk_View_Private_Data):
+ (_ewk_view_feed_touch_event_using_touch_point_list_of_evas):
+ (_ewk_view_on_touch_down):
+ (_ewk_view_on_touch_up):
+ (_ewk_view_on_touch_move):
+ (ewk_view_touch_events_enabled_set):
+ (ewk_view_touch_events_enabled_get):
+ * UIProcess/API/efl/ewk_view.h:
+ * UIProcess/API/efl/tests/UnitTestUtils/EWK2UnitTestBase.cpp:
+ (EWK2UnitTest::EWK2UnitTestBase::mouseDown):
+ (EWK2UnitTest):
+ (EWK2UnitTest::EWK2UnitTestBase::mouseUp):
+ (EWK2UnitTest::EWK2UnitTestBase::mouseMove):
+ (EWK2UnitTest::EWK2UnitTestBase::multiDown):
+ (EWK2UnitTest::EWK2UnitTestBase::multiUp):
+ (EWK2UnitTest::EWK2UnitTestBase::multiMove):
+ * UIProcess/API/efl/tests/UnitTestUtils/EWK2UnitTestBase.h:
+ (EWK2UnitTestBase):
+ * UIProcess/API/efl/tests/test_ewk2_view.cpp:
+ (TEST_F):
+
+2012-09-27 Jinwoo Song <jinwoo7.song@samsung.com>
+
+ [EFL][WK2] Add callback functions for WKPageFindClient
+ https://bugs.webkit.org/show_bug.cgi?id=97431
+
+ Reviewed by Laszlo Gombos.
+
+ Add didFailToFindString() and didCountStringMatches() for WKPageFindClient's callback functions.
+ The unit test for didFindString() and didFailToFindString() have beend added. The unit test for
+ didCountStringMatches() needs a API which wraps the WKPageCountStringMatches but it is not exists yet.
+ Additionaly, I changed the 'unsinged int' to 'unsigned' in the parameter type and removed unnecessary
+ type conversion.
+
+ * UIProcess/API/efl/ewk_view.cpp:
+ (ewk_view_text_find):
+ * UIProcess/API/efl/ewk_view.h:
+ * UIProcess/API/efl/ewk_view_find_client.cpp:
+ (didFindString):
+ (didFailToFindString):
+ (didCountStringMatches):
+ (ewk_view_find_client_attach):
+ * UIProcess/API/efl/tests/test_ewk2_view.cpp:
+ (onTextFound):
+ (TEST_F):
+
+2012-09-27 Allan Sandfeld Jensen <allan.jensen@digia.com>
+
+ Unify event handling of middle mouse button.
+ https://bugs.webkit.org/show_bug.cgi?id=97690
+
+ Reviewed by Tony Chang.
+
+ Remove Qt and GTK port specific handling of middle mouse button press.
+
+ * WebProcess/WebPage/WebPage.cpp:
+ (WebKit::handleMouseEvent):
+ * WebProcess/WebPage/WebPage.h:
+ (WebPage):
+ * WebProcess/WebPage/gtk/WebPageGtk.cpp:
+ (WebKit):
+ * WebProcess/WebPage/qt/WebPageQt.cpp:
+
+2012-09-27 Mikhail Pozdnyakov <mikhail.pozdnyakov@intel.com>
+
+ [WK2] Injected bundle API implementation should use toWTFString()
+ https://bugs.webkit.org/show_bug.cgi?id=97766
+
+ Reviewed by Kenneth Rohde Christiansen.
+
+ Injected bundle API implementation should call toWTFString() rather than convert
+ WKStringRef and WKURLRef to their impls and then call string() method directly.
+ The rational for that are both safety (toWTFString checks the given pointer) and
+ code readability.
+
+ * WebProcess/InjectedBundle/API/c/WKBundle.cpp:
+ (WKBundlePostMessage):
+ (WKBundlePostSynchronousMessage):
+ (WKBundleOverrideBoolPreferenceForTestRunner):
+ (WKBundleAddOriginAccessWhitelistEntry):
+ (WKBundleRemoveOriginAccessWhitelistEntry):
+ (WKBundleClearApplicationCacheForOrigin):
+ (WKBundleGetAppCacheUsageForOrigin):
+ (WKBundleSetApplicationCacheOriginQuota):
+ (WKBundleResetApplicationCacheOriginQuota):
+ (WKBundlePageNumberForElementById):
+ (WKBundleSetUserStyleSheetLocation):
+ (WKBundleSetWebNotificationPermission):
+ * WebProcess/InjectedBundle/API/c/WKBundleFrame.cpp:
+ (WKBundleFramePauseAnimationOnElementWithId):
+ (WKBundleFramePauseTransitionOnElementWithId):
+ (WKBundleFrameAllowsFollowingLink):
+ (WKBundleFrameCopySuggestedFilenameForResourceWithURL):
+ (WKBundleFrameCopyMIMETypeForResourceWithURL):
+ (WKBundleFrameSetTextDirection):
+ * WebProcess/InjectedBundle/API/c/WKBundleInspector.cpp:
+ (WKBundleInspectorEvaluateScriptForTest):
+ * WebProcess/InjectedBundle/API/c/WKBundleIntent.cpp:
+ (WKBundleIntentCreate):
+ * WebProcess/InjectedBundle/API/c/WKBundlePage.cpp:
+ (WKBundlePageExecuteEditingCommand):
+ (WKBundlePageIsEditingCommandEnabled):
+ (WKBundlePageHasLocalDataForURL):
+ (WKBundlePageFindString):
+ (WKBundlePageSetComposition):
+ (WKBundlePageConfirmCompositionWithText):
+ (WKBundlePageCanShowMIMEType):
+
+2012-09-27 Mario Sanchez Prada <msanchez@igalia.com>
+
+ [WK2] IconDatabase: Add a way to notify when icon data is available
+ https://bugs.webkit.org/show_bug.cgi?id=63945
+
+ Reviewed by Anders Carlsson.
+
+ Provide new API to notify the API layer when icon data is
+ available, and use it from the implementation layer when needed,
+ that is, either when the data has been loaded from the network or
+ imported from disk.
+
+ Added new callback to WKIconDatabaseClient API.
+
+ * UIProcess/API/C/WKIconDatabase.h: Added new callback.
+ * UIProcess/WebIconDatabaseClient.cpp:
+ (WebKit::WebIconDatabaseClient::iconDataReadyForPageURL):
+ Implementation of the new callback at this level in the UI
+ process, by using its implementation in the API layer if present.
+ * UIProcess/WebIconDatabaseClient.h:
+ (WebIconDatabaseClient): Added new callback.
+
+ Implemented WebFrameLoaderClient::dispatchDidReceiveIcon, so we
+ get notified in the UI process when loading a new icon.
+
+ * UIProcess/WebIconDatabase.messages.in: Added new message to
+ notify the UI process: DidReceiveIconForPageURL.
+ * UIProcess/WebIconDatabase.cpp:
+ (WebKit::WebIconDatabase::notifyIconDataReadyForPageURL): New
+ private helper function to notify the API layer both that new icon
+ data is ready and that the icon has changed.
+ (WebKit::WebIconDatabase::didReceiveIconForPageURL):
+ Implementation of the new message added, by calling
+ notifyIconDataReadyForPageURL() to notify the API layer.
+ (WebKit::WebIconDatabase::didImportIconDataForPageURL): Call
+ notifyIconDataReadyForPageURL() from here as well.
+ * UIProcess/WebIconDatabase.h: Added new prototypes.
+ * WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
+ (WebKit::WebFrameLoaderClient::dispatchDidReceiveIcon): Send a
+ message to the UI process telling a new icon has been received.
+
+2012-09-26 Sam Weinig <sam@webkit.org>
+
+ Fix XPCServices symlink to not be to an absolute path
+ in the build products directory.
+
+ Reviewed by Dan Bernstein.
+
+ * WebKit2.xcodeproj/project.pbxproj:
+
+2012-09-26 Anders Carlsson <andersca@apple.com>
+
+ Stop using CFURLCreateDataAndPropertiesFromResource
+ https://bugs.webkit.org/show_bug.cgi?id=97728
+ <rdar://problem/12379035>
+
+ Reviewed by Tim Horton.
+
+ Replace a call to CFURLCreateDataAndPropertiesFromResource with -[NSData initWithContentsOfURL:]
+ and add the necessary casts to make the compiler happy.
+
+ * Shared/Plugins/Netscape/mac/NetscapePluginModuleMac.mm:
+ (WebKit::contentsOfPropertyListAtURL):
+
+2012-09-26 Alexey Proskuryakov <ap@apple.com>
+
+ [WK2] Update WebPageProxy::reattachToWebProcess() for multi-web process mode
+ https://bugs.webkit.org/show_bug.cgi?id=97726
+
+ Reviewed by Anders Carlsson.
+
+ * UIProcess/WebContext.cpp:
+ (WebKit::WebContext::ensureSharedWebProcess): createNewWebProcess() now takes care
+ of adding the new process to m_processes.
+ (WebKit::WebContext::createNewWebProcess): Every time we call this function, we need
+ to add the result to m_processes. Better do it internally to avoid mistakes.
+ (WebKit::WebContext::warmInitialProcess): Updated for the above.
+ (WebKit::WebContext::createWebPage): Ditto.
+ (WebKit::WebContext::relaunchProcessIfNecessary): This function makes no sense in
+ multi-web process mode. Assert that we didnt get here accidentally.
+
+ * UIProcess/WebContext.h: (WebKit::WebContext::sendToAllProcessesRelaunchingThemIfNecessary):
+ Only call relaunchProcessIfNecessary in single process mode. The functionality that
+ needs this behavior will be greatly refactored for multi-web process.
+
+ * UIProcess/WebPageProxy.cpp: (WebKit::WebPageProxy::reattachToWebProcess):
+ We already know that we need a new process, "relaunch if necessary" is not the
+ right logic. Also added a few more assertions checking that process state is
+ as expected.
+
+ * UIProcess/WebResourceCacheManagerProxy.cpp:
+ (WebKit::WebResourceCacheManagerProxy::getCacheOrigins): Removed relaunchProcessIfNecessary().
+ It will be called inside sendToAllProcessesRelaunchingThemIfNecessary().
+
+ * UIProcess/Plugins/WebPluginSiteDataManager.cpp:
+ (WebKit::WebPluginSiteDataManager::getSitesWithData): Ditto.
+ (WebKit::WebPluginSiteDataManager::clearSiteData): Ditto.
+
+2012-09-26 Carlos Garcia Campos <cgarcia@igalia.com>
+
+ [GTK] Don't use the C API internally in WebKitJavascriptResult
+ https://bugs.webkit.org/show_bug.cgi?id=96780
+
+ Reviewed by Gustavo Noronha Silva.
+
+ Using the C++ classes directly instead of the C API wrappers we
+ avoid a lot of toImpl/toAPI casts, string conversions and
+ allocations. The code is also a lot simpler and easier to read.
+
+ * UIProcess/API/gtk/WebKitJavascriptResult.cpp:
+ (_WebKitJavascriptResult::_WebKitJavascriptResult):
+ (webkitJavascriptResultCreate):
+ * UIProcess/API/gtk/WebKitJavascriptResultPrivate.h:
+ * UIProcess/API/gtk/WebKitWebView.cpp:
+ (webkitWebViewRunJavaScriptCallback):
+
+2012-09-26 Mikhail Pozdnyakov <mikhail.pozdnyakov@intel.com>
+
+ [WK2][WTR] Policy client: dumping from decidePolicyForResponse callback
+ https://bugs.webkit.org/show_bug.cgi?id=97034
+
+ Reviewed by Kenneth Rohde Christiansen.
+
+ Added suggested filename getter to WKURLResponse interface and also added a property showing whether the response
+ is attachment.
+
+ * Shared/API/c/WKURLResponse.cpp:
+ (WKURLResponseSuggestedFilename):
+ (WKURLResponseIsAttachment):
+ * Shared/API/c/WKURLResponse.h:
+
+2012-09-26 Martin Robinson <mrobinson@igalia.com>
+
+ [GTK] Use XDamage to simplify RedirectedXCompositeWindow
+ https://bugs.webkit.org/show_bug.cgi?id=97267
+
+ Reviewed by Alejandro G. Castro.
+
+ Use XDamage to queue redraws of the widget when redirecting accelerated compositing
+ to an offscreen window. This allows removing a finicky timer-based approach, improves
+ performance, and allows simplifying things greatly.
+
+ * GNUmakefile.am: Add the XDamage CFLAGS and LIBS to the appropriate places.
+ * UIProcess/API/gtk/WebKitWebViewBase.cpp:
+ (_WebKitWebViewBasePrivate): Remove readyToRenderAcceleratedCompositingResults as
+ it's no longer necessary.
+ (webkit_web_view_base_init): Handle the situation where the RedirectedXCompositeWindow
+ is null.
+ (webkitWebViewRenderAcceleratedCompositingResults): Ditto.
+ (resizeWebKitWebViewBaseFromAllocation): Ditto.
+ (webkitWebViewBaseCreateWebPage): Ditto.
+ (redirectedWindowDamagedCallback): Added.
+ * UIProcess/WebPageProxy.h: Remove InvalidateWidget message.
+ * UIProcess/WebPageProxy.messages.in: Ditto.
+ * UIProcess/gtk/WebPageProxyGtk.cpp: Ditto.
+ * WebProcess/WebPage/WebPage.h: Ditto.
+ * WebProcess/WebPage/gtk/LayerTreeHostGtk.cpp:
+ (WebKit::LayerTreeHostGtk::compositeLayersToContext): No longer need to
+ trigger the invalidateWindow message.
+ * WebProcess/WebPage/gtk/WebPageGtk.cpp: Ditto.
+
+2012-09-25 Raphael Kubo da Costa <raphael.kubo.da.costa@intel.com>
+
+ [DRT][WTR] Support overriding the 'WebKitDisplayImagesKey' preference
+ https://bugs.webkit.org/show_bug.cgi?id=96883
+
+ Reviewed by Kenneth Rohde Christiansen.
+
+ * WebProcess/InjectedBundle/InjectedBundle.cpp:
+ (WebKit::InjectedBundle::overrideBoolPreferenceForTestRunner): Add
+ support for changing
+ WebPreferencesKey::loadsImagesAutomaticallyKey().
+
+2012-09-25 Dan Bernstein <mitz@apple.com>
+
+ Try to fix non-Mac builds.
+
+ * WebProcess/WebPage/WebPage.cpp:
+ (WebKit::WebPage::updatePreferences):
+
+2012-09-25 Dan Bernstein <mitz@apple.com>
+
+ WebKit2 part of <rdar://problem/11455228> [mac] Stop using screen fonts
+ https://bugs.webkit.org/show_bug.cgi?id=97620
+
+ Reviewed by John Sullivan.
+
+ * Shared/WebPreferencesStore.h:
+ (WebKit): Changed the default value of the screenFontSubstitutionEnabled preference to false.
+ * Shared/WebProcessCreationParameters.cpp:
+ (WebKit::WebProcessCreationParameters::WebProcessCreationParameters): Added an initializer for
+ the new shouldForceScreenFontSubstitution data member.
+ (WebKit::WebProcessCreationParameters::encode): Added encoding of shouldForceScreenFontSubstitution.
+ (WebKit::WebProcessCreationParameters::decode): Added decoding of shouldForceScreenFontSubstitution.
+ * Shared/WebProcessCreationParameters.h:
+ (WebProcessCreationParameters): Added shouldForceScreenFontSubstitution boolean data member.
+ * UIProcess/mac/WebContextMac.mm:
+ (WebKit::WebContext::platformInitializeWebProcess): Added code to set shouldForceScreenFontSubstitution
+ in the process creation parameters to the value of the NSFontDefaultScreenFontSubstitutionEnabled user
+ defaults key.
+ * WebProcess/WebPage/WebPage.cpp:
+ (WebKit::WebPage::updatePreferences): Changed to enable screen font substitution also if
+ shouldForceScreenFontSubstitution() is true.
+ * WebProcess/WebProcess.h:
+ (WebKit::WebProcess::shouldForceScreenFontSubstitution): Added this getter.
+ (WebProcess): Added m_shouldForceScreenFontSubstitution boolean data member.
+ * WebProcess/mac/WebProcessMac.mm:
+ (WebKit::WebProcess::platformInitializeWebProcess): Added initialization of
+ m_shouldForceScreenFontSubstitution from the creation parameters.
+
+2012-09-25 Alexey Proskuryakov <ap@apple.com>
+
+ Get rid of WebContext::m_pendingMessagesToPostToInjectedBundle
+ https://bugs.webkit.org/show_bug.cgi?id=94368
+
+ Reviewed by Anders Carlsson.
+
+ It doesn't appear to be of any use.
+
+ * UIProcess/WebContext.cpp:
+ (WebKit::WebContext::createNewWebProcess):
+ (WebKit::WebContext::postMessageToInjectedBundle):
+ * UIProcess/WebContext.h:
+
+2012-09-24 Simon Fraser <simon.fraser@apple.com>
+
+ <rdar://problem/12351906> Have DumpRenderTree and WebKitTestRunner crash logs show which test crashed
+
+ Reviewed by Mark Rowe.
+
+ Use a new WebKitSytemInterface function to add data to crash logs about which
+ test was running when the crash happened.
+
+ * WebProcess/WebCoreSupport/mac/WebSystemInterface.mm:
+ (InitWebCoreSystemInterface): Hook up the function pointer for [wk|WK]SetCrashReportApplicationSpecificInformation.
+
+2012-09-25 Beth Dakin <bdakin@apple.com>
+
+ Build fix. I removed this function as a part of
+ https://bugs.webkit.org/show_bug.cgi?id=95397 but it is
+ still needed for nightlies and open source builds.
+
+ * WebProcess/InjectedBundle/API/c/WKBundlePage.cpp:
+ (WKBundlePageSetPaintedObjectsCounterThreshold):
+ * WebProcess/InjectedBundle/API/c/WKBundlePagePrivate.h:
+
+2012-09-25 Beth Dakin <bdakin@apple.com>
+
+ https://bugs.webkit.org/show_bug.cgi?id=95397
+ Need to merge didFirstVisuallyNonEmptyLayout and
+ didNewFirstVisuallyNonEmptyLayout
+ -and corresponding-
+ <rdar://problem/10791680>
+
+ Reviewed by Sam Weinig.
+
+ The new API has two parts. First, the client has to opt into which
+ layout milestones they are interested in hearing about using
+ WKPageListenForLayoutMilestones or
+ WKBundlePageListenForLayoutMilestones(). Then, WebKit will call
+ the didLayout(WKLayoutMilestones) callback on the appropriate
+ clients when the specified layout milestones have fired. didLayout
+ takes the WKLayoutMilestones bit mask, which will indicate which
+ milestones have fired since it is possible for two to fire at the
+ same time.
+
+ Define WKLayoutMilestoneOptions.
+ * Shared/API/c/WKPageLoadTypes.h:
+
+ Define conversions between WKLayoutMilestoneOptions and
+ WebCore::LayoutMilestoneOptions
+ * Shared/API/c/WKSharedAPICast.h:
+ (WebKit::toWKLayoutMilestoneOptions):
+ (WebKit):
+ (WebKit::toLayoutMilestoneOptions):
+
+ New API.
+ * UIProcess/API/C/WKPage.cpp:
+ (WKPageListenForLayoutMilestones):
+ * UIProcess/API/C/WKPage.h:
+ * UIProcess/WebLoaderClient.cpp:
+ (WebKit::WebLoaderClient::didLayout):
+ (WebKit):
+ * UIProcess/WebLoaderClient.h:
+ (WebLoaderClient):
+
+ didFirstLayoutForFrame, didFirstVisuallyNonEmptyLayoutForFrame,
+ and didNewFirstVisuallyNonEmptyLayout are now implemented with
+ didLayout under the hood. So if those old callbacks have been
+ defined, be sure to add the appropriate layout milestones here for
+ backwards-compatibility.
+ * UIProcess/WebPageProxy.cpp:
+ (WebKit::WebPageProxy::initializeLoaderClient):
+
+ New API.
+ (WebKit::WebPageProxy::listenForLayoutMilestones):
+ (WebKit):
+ (WebKit::WebPageProxy::didLayout):
+ * UIProcess/WebPageProxy.h:
+ (WebPageProxy):
+ * UIProcess/WebPageProxy.messages.in:
+
+ New API. And remove the now-unnecessary
+ WKBundlePageSetPaintedObjectsCounterThreshold.
+ * WebProcess/InjectedBundle/API/c/WKBundlePage.cpp:
+ (WKBundlePageListenForLayoutMilestones):
+ * WebProcess/InjectedBundle/API/c/WKBundlePage.h:
+ * WebProcess/InjectedBundle/API/c/WKBundlePagePrivate.h:
+
+ New API.
+ * WebProcess/InjectedBundle/InjectedBundlePageLoaderClient.cpp:
+ (WebKit::InjectedBundlePageLoaderClient::didNewFirstVisuallyNonEmptyLayout):
+ (WebKit):
+ (WebKit::InjectedBundlePageLoaderClient::didLayout):
+ * WebProcess/InjectedBundle/InjectedBundlePageLoaderClient.h:
+ (InjectedBundlePageLoaderClient):
+
+ Remove dispatchDidFirstLayout,
+ dispatchDidFirstVisuallyNonEmptyLayout, and
+ dispatchDidNewFirstVisuallyNonEmptyLayout. They are now replaced
+ by dispatchDidLayout(LayoutMilestoneOptions)
+ * WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
+ (WebKit::WebFrameLoaderClient::dispatchDidLayout):
+ * WebProcess/WebCoreSupport/WebFrameLoaderClient.h:
+ (WebFrameLoaderClient):
+
+ didFirstLayoutForFrame, didFirstVisuallyNonEmptyLayoutForFrame,
+ and didNewFirstVisuallyNonEmptyLayout are now implemented with
+ didLayout under the hood. So if those old callbacks have been
+ defined, be sure to add the appropriate layout milestones here for
+ backwards-compatibility.
+ * WebProcess/WebPage/WebPage.cpp:
+ (WebKit::WebPage::initializeInjectedBundleLoaderClient):
+ (WebKit):
+
+ Call into WebCore to set the layout milestones.
+ (WebKit::WebPage::listenForLayoutMilestones):
+ * WebProcess/WebPage/WebPage.h:
+ (WebPage):
+ * WebProcess/WebPage/WebPage.messages.in:
+
+ Account for the new member of PageLoadClient.
+ * WebProcess/qt/QtBuiltinBundlePage.cpp:
+ (WebKit::QtBuiltinBundlePage::QtBuiltinBundlePage):
+
+2012-09-25 Carlos Garcia Campos <cgarcia@igalia.com>
+
+ [GTK][EFL] Disk cache is never dumped to disk in WebKit2
+ https://bugs.webkit.org/show_bug.cgi?id=97583
+
+ Reviewed by Martin Robinson.
+
+ The problem is that WebProcess::platformTerminate(), where the
+ cache is currently dumped, is not called when the web process
+ finishes because the UI process closes the connection. The cache
+ is created and loaded in the main() so it can also be flushed and
+ dumped there, so that we also make sure it's always called when
+ the process finishes normally when the main loop quits.
+
+ * WebProcess/efl/WebProcessMainEfl.cpp:
+ (WebKit::WebProcessMainEfl): Flush and dump the disk cache when
+ the main loop returns.
+ * WebProcess/gtk/WebProcessMainGtk.cpp:
+ (WebKit::WebProcessMainGtk): Ditto.
+ * WebProcess/soup/WebProcessSoup.cpp:
+ (WebKit::WebProcess::platformTerminate): Do not flush and dump
+ the disk cache.
+
+2012-09-25 Benjamin Poulain <bpoulain@apple.com>
+
+ Add missing support for Geolocation tests on WebKit2
+ https://bugs.webkit.org/show_bug.cgi?id=97518
+
+ Reviewed by Sam Weinig.
+
+ The existing API for reporting error does not support passing and error message.
+
+ The interface UIProcess<->WebProcess is changed to take an error message, the
+ existing API now pass a null String, and the new function
+ WKGeolocationManagerProviderDidFailToDeterminePositionWithErrorMessage() provide
+ the extended support with error message.
+
+ * UIProcess/API/C/WKGeolocationManager.cpp:
+ (WKGeolocationManagerProviderDidFailToDeterminePositionWithErrorMessage):
+ * UIProcess/API/C/WKGeolocationManager.h:
+ * UIProcess/WebGeolocationManagerProxy.cpp:
+ (WebKit::WebGeolocationManagerProxy::providerDidFailToDeterminePosition):
+ * UIProcess/WebGeolocationManagerProxy.h:
+ (WebGeolocationManagerProxy):
+ * WebProcess/Geolocation/WebGeolocationManager.cpp:
+ (WebKit::WebGeolocationManager::didFailToDeterminePosition):
+ * WebProcess/Geolocation/WebGeolocationManager.h:
+ (WebGeolocationManager):
+ * WebProcess/Geolocation/WebGeolocationManager.messages.in:
+
+2012-09-25 Akash Vaswani <avaswani@apple.com>
+
+ Crash after clicking in plugin at kauaiexplorer.com
+ <rdar://problem/11525987/> and https://bugs.webkit.org/show_bug.cgi?id=90925
+
+ Reviewed by Sam Weinig.
+
+ Bug: Clicking the plugin to navigate away from the page caused the browser to crash.
+ This is because it is possible for a beforeunload handler to destroy the plugin
+ while it is still needed. In this case the handler set visibility to "none" and
+ then accessed a property on the plugin script object. This forced a layout
+ that destroyed the plugin.
+ Fix: Protecting PluginView objects until they are no longer required.
+ This was done by adding a RefPtr at the beginning of performURLRequest()
+
+ * WebProcess/Plugins/PluginView.cpp:
+ (WebKit::PluginView::performURLRequest):
+
+2012-09-25 Carlos Garcia Campos <cgarcia@igalia.com>
+
+ [GTK] Don't kill automatically the web process when the ui process finishes
+ https://bugs.webkit.org/show_bug.cgi?id=97580
+
+ Reviewed by Martin Robinson.
+
+ We use prctl(PR_SET_PDEATHSIG, SIGKILL); in linux to make sure the
+ web process is killed when the UI process finishes. This is not
+ needed any more since now the web process stops the main loop when
+ the connection with the UI process is closed in
+ WebProcess::didClose(). This approach is better because it works
+ for any platform and makes the web process finish normally from
+ main().
+
+ * UIProcess/Launcher/gtk/ProcessLauncherGtk.cpp:
+ (WebKit::childSetupFunction): Don't call prctl(PR_SET_PDEATHSIG,
+ SIGKILL) in the child process.
+
+2012-09-25 Benjamin Poulain <benjamin@webkit.org>
+
+ Build fix, GeolocationClientMock should not be included by WebProcess InjectedBundle
+
+ Unreviewed.
+
+ The patch r129252 removes the dependencies on GeolocationClientMock, r129444 removes
+ GeolocationClientMock from the Mac port. The #include breaks new Mac build.
+
+ * WebProcess/InjectedBundle/InjectedBundle.cpp:
+
+2012-09-25 Jocelyn Turcotte <jocelyn.turcotte@digia.com>
+
+ [Qt] PageViewportController: Consolidate positionRangeForViewportAtScale and boundPosition
+ https://bugs.webkit.org/show_bug.cgi?id=97222
+
+ Reviewed by Kenneth Rohde Christiansen.
+
+ Those methods are used together everywhere, merge them into a single
+ clampViewportToContents method.
+
+ * UIProcess/PageViewportController.cpp:
+ (WebKit::PageViewportController::innerBoundedViewportScale):
+ (WebKit::PageViewportController::outerBoundedViewportScale):
+ (WebKit::PageViewportController::clampViewportToContents):
+ (WebKit):
+ (WebKit::PageViewportController::pageDidRequestScroll):
+ (WebKit::PageViewportController::syncVisibleContents):
+ * UIProcess/PageViewportController.h:
+ (PageViewportController):
+ (WebKit):
+ * UIProcess/qt/PageViewportControllerClientQt.cpp:
+ (WebKit::PageViewportControllerClientQt::focusEditableArea):
+ (WebKit::PageViewportControllerClientQt::zoomToAreaGestureEnded):
+ (WebKit::PageViewportControllerClientQt::nearestValidVisibleContentsRect):
+
+2012-09-25 Jocelyn Turcotte <jocelyn.turcotte@digia.com>
+
+ [Qt] Unify the PageViewportController<->Client interface regarding positions
+ https://bugs.webkit.org/show_bug.cgi?id=97220
+
+ Reviewed by Kenneth Rohde Christiansen.
+
+ - Make sure that css units are used for all position arguments
+ - Make sure that all positions represent the viewport relatively to the contents
+ rather than the other way around
+ - Delay clamping the viewport to the contents size in the controller rather than in the client
+
+ * UIProcess/API/qt/qquickwebview.cpp:
+ (QQuickWebViewFlickablePrivate::updateViewportSize):
+ * UIProcess/PageViewportController.cpp:
+ (WebKit::PageViewportController::pageDidRequestScroll):
+ (WebKit::PageViewportController::didChangeViewportSize):
+ (WebKit::PageViewportController::didChangeContentsVisibility):
+ (WebKit::PageViewportController::syncVisibleContents):
+ (WebKit::PageViewportController::positionRangeForViewportAtScale):
+ * UIProcess/PageViewportController.h:
+ (PageViewportController):
+ * UIProcess/PageViewportControllerClient.h:
+ (PageViewportControllerClient):
+ * UIProcess/qt/PageViewportControllerClientQt.cpp:
+ (WebKit::PageViewportControllerClientQt::animateContentRectVisible):
+ (WebKit::PageViewportControllerClientQt::focusEditableArea):
+ (WebKit::PageViewportControllerClientQt::zoomToAreaGestureEnded):
+ (WebKit::PageViewportControllerClientQt::nearestValidVisibleContentsRect):
+ (WebKit::PageViewportControllerClientQt::setViewportPosition):
+ (WebKit::PageViewportControllerClientQt::updateViewportController):
+ * UIProcess/qt/PageViewportControllerClientQt.h:
+ (PageViewportControllerClientQt):
+
+2012-09-25 Jocelyn Turcotte <jocelyn.turcotte@digia.com>
+
+ [Qt] Make sure that desktop pages honour the devicePixelRatio
+ https://bugs.webkit.org/show_bug.cgi?id=97215
+
+ Reviewed by Kenneth Rohde Christiansen.
+
+ The desktopWidth given to computeViewportAttributes is expected to be pixel-ratio adjusted already.
+ We need to make sure that the viewport size is divided by the pixel ratio to prevent
+ the equivalent of a 1.0 devicePixelRatio to be in effect once viewportSize.width() is larger
+ than layoutFallbackWidth.
+
+ * WebProcess/WebPage/WebPage.cpp:
+ (WebKit::WebPage::sendViewportAttributesChanged):
+
+2012-09-25 Simon Pena <spena@igalia.com>
+
+ [GTK] Add Undo / Redo method to WebKit2 GTK+ API
+ https://bugs.webkit.org/show_bug.cgi?id=97553
+
+ Reviewed by Martin Robinson.
+
+ Add the macros for Undo / Redo support, and include them
+ in the documentation.
+
+ * UIProcess/API/gtk/WebKitEditingCommands.h:
+ * UIProcess/API/gtk/docs/webkit2gtk-sections.txt:
+
+2012-09-25 Jocelyn Turcotte <jocelyn.turcotte@digia.com>
+
+ [Qt] Abstract as much devicePixelRatio logic as possible behind PageViewportController
+ https://bugs.webkit.org/show_bug.cgi?id=97214
+
+ Reviewed by Kenneth Rohde Christiansen.
+
+ Currently the client is required to multiply the scales it receives each bime by the
+ devicePixelRatio. This shouldn't be required since essentially, the only places that the
+ devicePixelRatio should be in use, is to adjust the layout size, multiply the base scale
+ and for scale constants.
+
+ Other related changes:
+ - Make sure that the controller and it's client are only exchanging effective scales
+ (cssScale * devicePixelRatio)
+ - Remove members duplicating m_rawAttributes values
+ - Use a separate member for the minimum scale to fit the page, separate from the viewport arguments
+ - Make sure that the minimum scale to fit is adjusted if the contents size isn't
+ updated after the viewport attributes changed
+ - Make the scale conversion functions private to discourage this logic from spreading in the client
+
+ * UIProcess/PageViewportController.cpp:
+ (WebKit::PageViewportController::PageViewportController):
+ (WebKit::PageViewportController::innerBoundedViewportScale):
+ (WebKit::PageViewportController::outerBoundedViewportScale):
+ (WebKit):
+ (WebKit::PageViewportController::devicePixelRatio):
+ (WebKit::PageViewportController::didChangeContentsSize):
+ (WebKit::PageViewportController::didChangeViewportAttributes):
+ (WebKit::PageViewportController::resumeContent):
+ (WebKit::PageViewportController::updateMinimumScaleToFit):
+ * UIProcess/PageViewportController.h:
+ (PageViewportController):
+ (WebKit::PageViewportController::minimumContentsScale):
+ (WebKit::PageViewportController::maximumContentsScale):
+ (WebKit::PageViewportController::currentContentsScale):
+ (WebKit::PageViewportController::fromViewportScale):
+ (WebKit::PageViewportController::toViewportScale):
+ * UIProcess/qt/PageViewportControllerClientQt.cpp:
+ (WebKit::PageViewportControllerClientQt::focusEditableArea):
+ (WebKit::PageViewportControllerClientQt::zoomToAreaGestureEnded):
+ (WebKit::PageViewportControllerClientQt::nearestValidVisibleContentsRect):
+ (WebKit::PageViewportControllerClientQt::setContentsRectToNearestValidBounds):
+ (WebKit::PageViewportControllerClientQt::pinchGestureRequestUpdate):
+
+2012-09-25 Simon Pena <spena@igalia.com>
+
+ [GTK] Fix typo in accessing union field in a GdkEvent in a WebKit2 unit test
+ https://bugs.webkit.org/show_bug.cgi?id=97564
+
+ Reviewed by Martin Robinson.
+
+ In the WebViewTest::moveMouseTo method, the wrong field in
+ a union was being accessed in a GdkEvent: instead of the button
+ field, we were supposed to act on the motion one. This patch
+ fixes the typo.
+
+ * UIProcess/API/gtk/tests/WebViewTest.cpp:
+ (WebViewTest::mouseMoveTo):
+
+2012-09-25 Carlos Garcia Campos <cgarcia@igalia.com>
+
+ [GTK] Don't use the C API internally in WebKitFindController
+ https://bugs.webkit.org/show_bug.cgi?id=96775
+
+ Reviewed by Gustavo Noronha Silva.
+
+ Using the C++ classes directly instead of the C API wrappers we
+ avoid a lot of toImpl/toAPI casts, string conversions and
+ allocations. The code is also a lot simpler and easier to read.
+
+ * UIProcess/API/gtk/WebKitFindController.cpp:
+ (getPage):
+ (webkitFindControllerConstructed):
+ (webKitFindControllerPerform):
+ (webkit_find_controller_search_next):
+ (webkit_find_controller_search_previous):
+ (webkit_find_controller_search_finish):
+
+2012-09-25 Jocelyn Turcotte <jocelyn.turcotte@digia.com>
+
+ [Qt] Apply the devicePixelRatio as soon as possible
+ https://bugs.webkit.org/show_bug.cgi?id=97211
+
+ Reviewed by Kenneth Rohde Christiansen.
+
+ Having to wait for the contents size to apply the devicePixelRatio can
+ be problematic since the devicePixelRatio affects the layout width, which
+ then affects the contents size.
+
+ Fix the initial issue that this was working around by preventing the
+ early return if useFixedLayout() is true.
+
+ * UIProcess/API/qt/qquickwebview.cpp:
+ (QQuickWebViewPrivate::QQuickWebViewPrivate):
+ (QQuickWebViewFlickablePrivate::didChangeContentsSize):
+ (QQuickWebViewExperimental::devicePixelRatio):
+ (QQuickWebViewExperimental::setDevicePixelRatio):
+ * UIProcess/API/qt/qquickwebview_p_p.h:
+ (QQuickWebViewPrivate::didChangeContentsSize):
+ (QQuickWebViewPrivate):
+ * UIProcess/DrawingAreaProxyImpl.cpp:
+ (WebKit::DrawingAreaProxyImpl::sendUpdateBackingStoreState):
+
+2012-09-25 Jocelyn Turcotte <jocelyn.turcotte@digia.com>
+
+ [Qt] Don't render at scale 1.0 when doing a pinch-zoom out
+ https://bugs.webkit.org/show_bug.cgi?id=97212
+
+ Reviewed by Kenneth Rohde Christiansen.
+
+ When the user starts pinching this creates extra rendering that is bound to the
+ page size and can be considerably big, reducing performance and peaking the tile
+ memory usage.
+
+ Fixing this might require a different approach that we could experiment with.
+
+ * UIProcess/qt/PageViewportControllerClientQt.cpp:
+ (WebKit::PageViewportControllerClientQt::animateContentRectVisible):
+ (WebKit::PageViewportControllerClientQt::pinchGestureRequestUpdate):
+
+2012-09-25 Michael Brüning <michael.bruning@digia.com>
+
+ [Qt][WK2] Focus out is not handled properly
+ https://bugs.webkit.org/show_bug.cgi?id=96997
+
+ Reviewed by Simon Hausmann.
+
+ Adds a handler for QQuickWebView::itemChange event that is sent to
+ QQuickItems when their focus has been changed to replace focusOutEvent.
+
+ This fixes the problem because the focus has been updated when
+ itemChange is called, while it is not yet update when focusOutEvent
+ is called.
+
+ * UIProcess/API/qt/qquickwebview.cpp: Removed focusOutEvent.
+ (QQuickWebView::itemChange): Added in place of focusOutEvent.
+ * UIProcess/API/qt/qquickwebview_p.h:
+ * UIProcess/qt/QtWebPageEventHandler.cpp:
+ (WebKit::QtWebPageEventHandler::handleFocusLost): Renamed from handleFocusOutEvent, parameter removed.
+ * UIProcess/qt/QtWebPageEventHandler.h:
+ (QtWebPageEventHandler):
+
+2012-09-25 Mikhail Pozdnyakov <mikhail.pozdnyakov@intel.com>
+
+ [WK2] Supported media MIME types are not included to the list of shown MIME types.
+ https://bugs.webkit.org/show_bug.cgi?id=97552
+
+ Reviewed by Kenneth Rohde Christiansen.
+
+ Added supported media MIME types to the list of shown MIME types in order to fix
+ media tests regression after r129479.
+
+ * UIProcess/WebPageProxy.cpp:
+ (WebKit::WebPageProxy::canShowMIMEType):
+ * WebProcess/InjectedBundle/API/c/WKBundlePage.cpp:
+ (WKBundlePageCanShowMIMEType):
+
+2012-09-25 KwangYong Choi <ky0.choi@samsung.com>
+
+ [EFL][WK2] Added hideColorPicker test case
+ https://bugs.webkit.org/show_bug.cgi?id=97522
+
+ Reviewed by Kenneth Rohde Christiansen.
+
+ Added a test case for removing input element during color picker is shown.
+
+ * UIProcess/API/efl/tests/test_ewk2_view.cpp:
+ (setColorPickerColor):
+ (showColorPicker):
+ (hideColorPicker):
+ (TEST_F):
+
+2012-09-25 Mikhail Pozdnyakov <mikhail.pozdnyakov@intel.com>
+
+ [WK2][WTR] WTR bundle client loads binary data as text
+ https://bugs.webkit.org/show_bug.cgi?id=97532
+
+ Reviewed by Kenneth Rohde Christiansen.
+
+ Added WKBundlePageCanShowMIMEType() function to WKBundlePage private API.
+ This function is put to WKBundlePage to keep consistency with WebKit::WebPageProxy::canShowMIMEType().
+ Actually it does not need anything from page.
+
+ * WebProcess/InjectedBundle/API/c/WKBundlePage.cpp:
+ (WKBundlePageCanShowMIMEType):
+ * WebProcess/InjectedBundle/API/c/WKBundlePagePrivate.h:
+
+2012-09-25 Carlos Garcia Campos <cgarcia@igalia.com>
+
+ [GTK] Don't use the C API internally in WebKitWebView
+ https://bugs.webkit.org/show_bug.cgi?id=96767
+
+ Reviewed by Gustavo Noronha Silva.
+
+ Using the C++ classes directly instead of the C API wrappers we
+ avoid a lot of toImpl/toAPI casts, string conversions and
+ allocations. The code is also a lot simpler and easier to read.
+
+ * UIProcess/API/gtk/WebKitContextMenuClient.cpp:
+ (getContextMenuFromProposedMenu):
+ * UIProcess/API/gtk/WebKitResourceLoadClient.cpp:
+ (didInitiateLoadForResource):
+ * UIProcess/API/gtk/WebKitUIClient.cpp:
+ (createNewPage):
+ (runJavaScriptPrompt):
+ (mouseDidMoveOverElement):
+ (printFrame):
+ * UIProcess/API/gtk/WebKitURIRequest.cpp:
+ (webkitURIRequestCreateForResourceRequest):
+ (webkitURIRequestGetResourceRequest):
+ * UIProcess/API/gtk/WebKitURIRequestPrivate.h:
+ * UIProcess/API/gtk/WebKitWebView.cpp:
+ (allowModalDialogsChanged):
+ (zoomTextOnlyChanged):
+ (webkitWebViewSetSettings):
+ (webkitWebViewConstructed):
+ (webkitWebViewUpdateURI):
+ (webkitWebViewCreateNewPage):
+ (webkitWebViewRunJavaScriptPrompt):
+ (webkitWebViewMouseTargetChanged):
+ (webkitWebViewPrintFrame):
+ (webkitWebViewResourceLoadStarted):
+ (webkitWebViewPopulateContextMenu):
+ (webkit_web_view_load_uri):
+ (webkit_web_view_load_html):
+ (webkit_web_view_load_alternate_html):
+ (webkit_web_view_load_plain_text):
+ (webkit_web_view_load_request):
+ (webkit_web_view_reload):
+ (webkit_web_view_reload_bypass_cache):
+ (webkit_web_view_stop_loading):
+ (webkit_web_view_go_back):
+ (webkit_web_view_can_go_back):
+ (webkit_web_view_go_forward):
+ (webkit_web_view_can_go_forward):
+ (webkit_web_view_get_custom_charset):
+ (webkit_web_view_set_custom_charset):
+ (webkit_web_view_go_to_back_forward_list_item):
+ (webkit_web_view_set_settings):
+ (webkit_web_view_set_zoom_level):
+ (webkit_web_view_get_zoom_level):
+ (webkit_web_view_can_execute_editing_command):
+ (webkit_web_view_execute_editing_command):
+ (webkit_web_view_run_javascript):
+ (webkit_web_view_get_inspector):
+ (webkit_web_view_can_show_mime_type):
+ (ViewSaveAsyncData):
+ (getContentsAsMHTMLDataCallback):
+ (webkit_web_view_save):
+ (webkit_web_view_save_finish):
+ (webkit_web_view_save_to_file):
+ * UIProcess/API/gtk/WebKitWebViewBase.cpp:
+ (webkitWebViewBaseCreate):
+ (webkitWebViewBaseCreateWebPage):
+ * UIProcess/API/gtk/WebKitWebViewBasePrivate.h:
+ * UIProcess/API/gtk/WebKitWebViewPrivate.h:
+
+2012-09-24 Bo Liu <boliu@chromium.org>
+
+ Reland "Add in-place reload behavior to ImagesEnabled setting" with optimizations
+ https://bugs.webkit.org/show_bug.cgi?id=97055
+
+ Reviewed by Adam Barth.
+
+ Relanding 128780, 128676, 128645. Was reverted in 128914 due to
+ performance regression in Chromium.
+
+ New changes in addition to previously reverted patches:
+
+ Refactored CachedResource::requestResource, loadResource, and
+ revalidateResource. Moved CachedResource::load method to end of
+ requestResource so there is one place where load is called for all
+ resources.
+
+ Added a enum parameter for requestResource and
+ determineRevalidationPolicy so that FrameLoaderClient::allowImage call
+ do not need to be called multiple times.
+
+ Removed CachedImage::load call in requestImage so it is not called
+ twice.
+
+ Removed unnecessary Frame.h includes in CachedResource and
+ CachedImage.
+
+ Removed dead load() method declaration in CachedImage.
+
+ Updated text expectation for two image-permissions tests to reflect
+ the removed calls to allowImage.
+
+ * win/WebKit2.def:
+
+2012-09-24 Sam Weinig <sam@webkit.org>
+
+ WKProcessGroup can't load injected bundle with file URL
+ <rdar://problem/12322774>
+ https://bugs.webkit.org/show_bug.cgi?id=97520
+
+ Reviewed by Anders Carlsson.
+
+ * UIProcess/API/mac/WKProcessGroup.mm:
+ (-[WKProcessGroup initWithInjectedBundleURL:]):
+ Fix typo. We need to pass the string as path, not as a URL.
+
+2012-09-24 Sam Weinig <sam@webkit.org>
+
+ Use NSUserDefaults rather than an environment variable to control whether to use an XPC Service for the WebProcess
+ https://bugs.webkit.org/show_bug.cgi?id=97514
+
+ Reviewed by Anders Carlsson.
+
+ * GNUmakefile.list.am:
+ * PlatformEfl.cmake:
+ * Target.pri:
+ Add new files.
+
+ * UIProcess/Launcher/ProcessLauncher.h:
+ * UIProcess/WebProcessProxy.cpp:
+ (WebKit::WebProcessProxy::connect):
+ Move platform specific launch options to a new function, platformConnect.
+
+ * UIProcess/WebProcessProxy.h:
+ * UIProcess/efl/WebProcessProxyEfl.cpp: Added.
+ Move Efl specific launch options here.
+
+ (WebKit::WebProcessProxy::platformConnect):
+ * UIProcess/gtk/WebProcessProxyGtk.cpp: Added.
+ Add stub.
+
+ (WebKit::WebProcessProxy::platformConnect):
+ * UIProcess/mac/WebProcessProxyMac.mm:
+ (WebKit::WebProcessProxy::platformConnect):
+ Move Mac specific launch option setting here, and switch from
+ using an environment variable to NSUserDefaults.
+
+ * UIProcess/qt/WebProcessProxyQt.cpp: Added.
+ (WebKit::WebProcessProxy::platformConnect):
+ Add stub.
+
+ * UIProcess/win/WebProcessProxyWin.cpp:
+ (WebKit::WebProcessProxy::platformConnect):
+ Add stub.
+
+2012-09-24 Laszlo Gombos <l.gombos@samsung.com>
+
+ [GTK][EFL] Remove cairo prefix from include statements
+ https://bugs.webkit.org/show_bug.cgi?id=97509
+
+ Reviewed by Gyuyoung Kim.
+
+ Make the build system consistent by always assuming that directory
+ that includes the cairo headers is included in the include path.
+
+ * UIProcess/cairo/BackingStoreCairo.cpp:
+ * WebProcess/Plugins/Netscape/x11/NetscapePluginX11.cpp:
+
+2012-09-24 Sheriff Bot <webkit.review.bot@gmail.com>
+
+ Unreviewed, rolling out r129388.
+ http://trac.webkit.org/changeset/129388
+ https://bugs.webkit.org/show_bug.cgi?id=97477
+
+ Caused an assertion in a WebKit2 unit test (Requested by
+ abarth on #webkit).
+
+ * win/WebKit2.def:
+
+2012-09-24 Simon Pena <spena@igalia.com>
+
+ [GTK] Add Select All method to WebKit2 GTK+ API
+ https://bugs.webkit.org/show_bug.cgi?id=97460
+
+ Reviewed by Martin Robinson.
+
+ Following the same approach used when added Cut, Copy and Paste,
+ the Select All method is added to the WebKit2 GTK+ API.
+
+ This introduces a new macro in the WebKitEditingCommands,
+ updates the documentation, and includes a new unit test.
+
+ * UIProcess/API/gtk/WebKitEditingCommands.h: Add a new macro for
+ the Select All command.
+ * UIProcess/API/gtk/docs/webkit2gtk-sections.txt: Include the Select All
+ command in the documentation.
+ * UIProcess/API/gtk/tests/TestWebViewEditor.cpp: Cover the new command
+ with a unit test.
+ (testWebViewEditorSelectAll):
+ (beforeAll):
+
+2012-09-24 Bo Liu <boliu@chromium.org>
+
+ Reland "Add in-place reload behavior to ImagesEnabled setting" with optimizations
+ https://bugs.webkit.org/show_bug.cgi?id=97055
+
+ Reviewed by Adam Barth.
+
+ Relanding 128780, 128676, 128645. Was reverted in 128914 due to
+ performance regression in Chromium.
+
+ New changes in addition to previously reverted patches:
+
+ Refactored CachedResource::requestResource, loadResource, and
+ revalidateResource. Moved CachedResource::load method to end of
+ requestResource so there is one place where load is called for all
+ resources.
+
+ Added a enum parameter for requestResource and
+ determineRevalidationPolicy so that FrameLoaderClient::allowImage call
+ do not need to be called multiple times.
+
+ Removed CachedImage::load call in requestImage so it is not called
+ twice.
+
+ Removed unnecessary Frame.h includes in CachedResource and
+ CachedImage.
+
+ Removed dead load() method declaration in CachedImage.
+
+ Updated text expectation for two image-permissions tests to reflect
+ the removed calls to allowImage.
+
+ * win/WebKit2.def:
+
+2012-09-24 Joone Hur <joone.hur@intel.com>, Gustavo Noronha Silva <gustavo.noronha@collabora.com>
+
+ [GTK] Implement GraphicsLayer using Clutter
+ https://bugs.webkit.org/show_bug.cgi?id=73767
+
+ Reviewed by Martin Robinson.
+
+ Fixed link errors by adding Clutter library and header to WebKit2 build.
+
+ * GNUmakefile.am:
+
+2012-09-24 Carlos Garcia Campos <cgarcia@igalia.com>
+
+ [GTK] WebKitWebView:is-loading is not updated when the is loaded is started by link clicked navigation action
+ https://bugs.webkit.org/show_bug.cgi?id=97458
+
+ Reviewed by Xan Lopez.
+
+ WebKitWebView:is-loading is set to TRUE when the load is started
+ by using the API. We want to make sure that both URI and
+ is-loading are updated before load-started is emitted, so we can
+ update both right before emitting load-started.
+
+ * UIProcess/API/gtk/WebKitWebView.cpp:
+ (webkitWebViewEmitLoadChanged): Update both uri and is-loading
+ properties before emitting load-changed signal with
+ WEBKIT_LOAD_STARTED.
+ (webkit_web_view_load_uri): Don't call
+ webkitWebViewSetIsLoading().
+ (webkit_web_view_load_html): Ditto.
+ (webkit_web_view_load_alternate_html): Ditto.
+ (webkit_web_view_load_plain_text): Ditto.
+ (webkit_web_view_load_request): Ditto.
+ (webkit_web_view_reload): Ditto.
+ (webkit_web_view_reload_bypass_cache): Ditto.
+ (webkit_web_view_go_back): Ditto.
+ (webkit_web_view_go_forward): Ditto.
+ (webkit_web_view_go_to_back_forward_list_item): Ditto.
+
+2012-09-24 Byungwoo Lee <bw80.lee@samsung.com>
+
+ [EFL][WK2] Change the install path for libewk2UnitTestInjectedBundleSample.so.
+ https://bugs.webkit.org/show_bug.cgi?id=97302
+
+ Reviewed by Gyuyoung Kim.
+
+ libewk2UnitTestInjectedBundleSample.so file is created under the
+ Source directory.
+ Change install directory for the library to under the build directory.
+
+ * PlatformEfl.cmake:
+ * UIProcess/API/efl/tests/UnitTestUtils/EWK2UnitTestEnvironment.cpp:
+ (EWK2UnitTest::EWK2UnitTestEnvironment::injectedBundleSample):
+
+2012-09-24 Vivek Galatage <vivekgalatage@gmail.com>
+
+ Web Inspector: implement testing harness for pure protocol tests.
+ https://bugs.webkit.org/show_bug.cgi?id=90675
+
+ Reviewed by Yury Semikhatsky.
+
+ Adding the export symbol definitions required on Apple Windows and WinCairo
+ ports to support Inspector Protocol testing harness.
+
+ * win/WebKit2.def:
+ * win/WebKit2CFLite.def:
+
+2012-09-24 KwangYong Choi <ky0.choi@samsung.com>
+
+ [EFL][WK2] Invalid featuring of INPUT_TYPE_COLOR in test_ewk2_view.
+ https://bugs.webkit.org/show_bug.cgi?id=97430
+
+ Reviewed by Kenneth Rohde Christiansen.
+
+ The tests of ewk_view_context_get and ewk_view_feed_touch_event are not related to
+ INPUT_TYPE_COLOR. These tests should be moved to outside of INPUT_TYPE_COLOR block.
+
+ * UIProcess/API/efl/tests/test_ewk2_view.cpp:
+ (TEST_F):
+
+2012-09-23 Seokju Kwon <seokju.kwon@samsung.com>
+
+ [EFL][WK2] Add setting to toggle developer extensions
+ https://bugs.webkit.org/show_bug.cgi?id=96974
+
+ Reviewed by Kenneth Rohde Christiansen.
+
+ This is required to allow the user to inspect pages. (Web inspector)
+
+ * UIProcess/API/efl/ewk_settings.cpp:
+ (ewk_settings_developer_extras_enabled_set):
+ (ewk_settings_developer_extras_enabled_get):
+ * UIProcess/API/efl/ewk_settings.h:
+ * UIProcess/API/efl/tests/test_ewk2_settings.cpp:
+ (TEST_F):
+
+2012-09-23 Byungwoo Lee <bw80.lee@gmail.com>
+
+ Fix build warnings : -Wunused-parameter, -Wparentheses, -Wuninitialized.
+ https://bugs.webkit.org/show_bug.cgi?id=97306
+
+ Reviewed by Benjamin Poulain.
+
+ Fix build warning about -Wunused-parameter on Connection.cpp,
+ WKEinaSharedString.cpp, ewk_view_loader_client.cpp, WebPage.cpp by
+ using ASSERT_UNUSED() macro or removing parameter name.
+ Fix build warning about -Wuninitialized on WebEventFactory.cpp by
+ continueing the loop at the default switch case not to use the
+ uninitialized variable.
+
+ * Platform/CoreIPC/Connection.cpp:
+ (CoreIPC::Connection::waitForSyncReply):
+ * Shared/efl/WebEventFactory.cpp:
+ (WebKit::WebEventFactory::createWebTouchEvent):
+ * UIProcess/API/cpp/efl/WKEinaSharedString.cpp:
+ (WKEinaSharedString::WKEinaSharedString):
+ * UIProcess/API/efl/ewk_view_loader_client.cpp:
+ (didSameDocumentNavigationForFrame):
+ * WebProcess/WebPage/WebPage.cpp:
+ (WebKit::WebPage::SandboxExtensionTracker::beginLoad):
+
+2012-09-22 Sam Weinig <sam@webkit.org>
+
+ Install WebProcess XPC services into the right places
+ https://bugs.webkit.org/show_bug.cgi?id=97385
+
+ Reviewed by Anders Carlsson.
+
+ * Configurations/WebProcessService.xcconfig:
+ Update INSTALL_PATH to go into WebKit2.framework/Versions/A/XPCServices.
+
+ * Configurations/WebProcessServiceForWebKitDevelopment.xcconfig:
+ Since this config file is almost identical to WebProcessService.xcconfig,
+ just #include it and change the one thing that is different, the INFOPLIST_FILE
+
+ * WebKit2.xcodeproj/project.pbxproj:
+ Follow XPC procedure and copy the services into the right place, WebKit2.framework/Versions/A/XPCServices
+ in all builds except production builds where it is not necessary. Also add a symlink like everyone else
+ does.
+
+2012-09-22 Sam Weinig <sam@webkit.org>
+
+ Allow setting a custom path to where the plug-in sandbox profiles are being kept
+ https://bugs.webkit.org/show_bug.cgi?id=97399
+
+ Reviewed by Anders Carlsson.
+
+ Add a new default to allow controlling where to look for plug-in sandbox profiles
+ called "PlugInSandboxProfileDirectoryPath".
+
+ * PluginProcess/mac/PluginProcessMac.mm:
+ (WebKit::initializeSandbox):
+ Use the passed in sandboxProfileDirectoryPath instead of hard coding /usr/share/sandbox/.
+
+ (WebKit::PluginProcess::platformInitialize):
+ * Shared/Plugins/PluginProcessCreationParameters.cpp:
+ (WebKit::PluginProcessCreationParameters::encode):
+ (WebKit::PluginProcessCreationParameters::decode):
+ * Shared/Plugins/PluginProcessCreationParameters.h:
+ (PluginProcessCreationParameters):
+ * UIProcess/Plugins/mac/PluginProcessProxyMac.mm:
+ (WebKit::PluginProcessProxy::platformInitializePluginProcess):
+ Grab the sandboxProfileDirectoryPath from standardUserDefaults and pass it to
+ the plug-in.
+
+2012-09-21 Sam Weinig <sam@webkit.org>
+
+ Fix the Lion and Snow Leopard builds.
+
+ * UIProcess/Launcher/mac/ProcessLauncherMac.mm:
+ (WebKit::connectToWebProcessServiceForWebKitDevelopment):
+ (WebKit::createWebProcessServiceForWebKitDevelopment):
+ (WebKit::createWebProcessService):
+
+2012-09-21 Sam Weinig <sam@webkit.org>
+
+ WebProcess XPC services need have their environment set without disrupting all other XPC services
+ https://bugs.webkit.org/show_bug.cgi?id=95161
+
+ Reviewed by Anders Carlsson.
+
+ Replace the WebKit2Service with two new XPC services, the WebProcessService, which is only used
+ when installed on the system, and the WebProcessServiceForWebKitDevelopment which is used at all
+ other times. We need both services because XPC can't in general be configured to have a custom
+ environment at runtime, and thus WebProcessServiceForWebKitDevelopment has the ability to re-exec
+ itself into a desired state. That capability is rather undesirable for installed usage, where we
+ don't want to allow arbitrary changes to the environment of the service, which would allow breaking
+ the App Sandbox.
+
+ * Configurations/WebProcessService.xcconfig: Copied from Source/WebKit2/Configurations/WebKit2Service.xcconfig.
+ * Configurations/WebProcessServiceForWebKitDevelopment.xcconfig: Renamed from Source/WebKit2/Configurations/WebKit2Service.xcconfig.
+ Add new configuration files.
+
+ * Platform/mac/WorkQueueMac.cpp:
+ (WorkQueue::registerMachPortEventHandler):
+ (WorkQueue::unregisterMachPortEventHandler):
+ Add helpful assertions. Without them, we confusingly crash a bit later in HashTable code.
+
+ * UIProcess/Launcher/mac/ProcessLauncherMac.mm:
+ (WebKit::addDYLDEnvironmentAdditions):
+ Factor out environment additions to this helper function.
+
+ (WebKit::connectToWebProcessServiceForWebKitDevelopment):
+ (WebKit::createWebProcessServiceForWebKitDevelopment):
+ Add functionality to setup the webkit development service via re-exec.
+
+ (WebKit::createWebProcessService):
+ Add functionality to connect to the installed WebProcess service.
+
+ (WebKit::createProcess):
+ Factor out posix_spawn based launching into this helper function.
+
+ (WebKit::ProcessLauncher::launchProcess):
+ Call the correct process creation function based on launch data and install state.
+
+ * WebKit2.xcodeproj/project.pbxproj:
+ Add new files to the project.
+
+ * WebProcess/mac/WebProcessServiceEntryPoints.h: Renamed from Source/WebKit2/WebProcess/mac/WebProcessXPCServiceMain.h.
+ * WebProcess/mac/WebProcessServiceEntryPoints.mm: Renamed from Source/WebKit2/WebProcess/mac/WebProcessXPCServiceMain.mm.
+ (WebKit::WebProcessServiceEventHandler):
+ (WebProcessServiceMain):
+ (InitializeWebProcessForWebProcessServiceForWebKitDevelopment):
+ Rename to WebProcessServiceEntryPoints since this is now used for both the WebProcessService and the
+ WebProcessServiceForWebKitDevelopment.
+
+ * WebProcessService/Info.plist: Copied from Source/WebKit2/WebKit2Service/Info.plist.
+ * WebProcessService/WebProcessServiceMain.mm: Renamed from Source/WebKit2/WebKit2Service/MainMacService.mm.
+ Add main for the WebProcessService which just calls into the WebProcessServiceEntryPoints in WebKit2.framework.
+
+ * WebProcessServiceForWebKitDevelopment/Info.plist: Renamed from Source/WebKit2/WebKit2Service/Info.plist.
+ * WebProcessServiceForWebKitDevelopment/WebProcessServiceForWebKitDevelopmentMain.mm: Added.
+ Add main for the WebProcessServiceForWebKitDevelopment, which can't just call directly into WebProcessServiceEntryPoints
+ as the framework path might not be set up correctly. This is also where we re-exec ourselves when required.
+
+2012-09-21 Anders Carlsson <andersca@apple.com>
+
+ Fix WebKit2 sandbox profile.
+
+ Instead of using #pragmas, just disable all warnings in DerivedSources.make. I suspect
+ that passing -traditional to the preprocessor disables support for #pragmas but I'm afraid
+ to change it to something else.
+
+ * DerivedSources.make:
+ * WebProcess/com.apple.WebProcess.sb.in:
+
+2012-09-21 Benjamin Poulain <bpoulain@apple.com>
+
+ fast/dom/Geolocation/disconnected-frame.html test asserts
+ https://bugs.webkit.org/show_bug.cgi?id=97376
+
+ Reviewed by Alexey Proskuryakov.
+
+ In GeolocationPermissionRequestManager::cancelRequestForGeolocation, we access an iterator
+ after its value has been removed from the table.
+ There are two problems with that:
+ -The iterator is no longer valid after the container has been modified.
+ -If it was the last element, the table has been freed and the iterator points to deleted memory.
+
+ We solve the issue by keeping a copy of the ID. We could have inverted the order of the calls
+ but that would make the issue less visible for future change.
+
+ Testing covered by fast/dom/Geolocation/disconnected-frame.html.
+
+ * WebProcess/Geolocation/GeolocationPermissionRequestManager.cpp:
+ (WebKit::GeolocationPermissionRequestManager::cancelRequestForGeolocation):
+
+2012-09-21 Sam Weinig <sam@webkit.org>
+
+ REGRESSION (r120361) Warnings while preprocessing com.apple.WebProcess.sb.in
+ https://bugs.webkit.org/show_bug.cgi?id=91079
+ <rdar://problem/12332660>
+
+ Reviewed by Anders Carlsson.
+
+ * WebProcess/com.apple.WebProcess.sb.in:
+ Add pragma to ignore the invalid preprocessor warnings.
+
+2012-09-21 Chris Rogers <crogers@google.com>
+
+ Add Web Audio support for deprecated/legacy APIs
+ https://bugs.webkit.org/show_bug.cgi?id=97050
+
+ Reviewed by Eric Carlson.
+
+ * Configurations/FeatureDefines.xcconfig:
+
+2012-09-21 Benjamin Poulain <bpoulain@apple.com>
+
+ [WK2] Add basic testing support for Geolocation
+ https://bugs.webkit.org/show_bug.cgi?id=97278
+
+ Reviewed by Kenneth Rohde Christiansen.
+
+ * Shared/API/c/WKNumber.h: Fix an unfortunate copy-paste :)
+
+ * WebProcess/InjectedBundle/API/c/WKBundle.cpp:
+ * WebProcess/InjectedBundle/API/c/WKBundlePrivate.h:
+ * WebProcess/InjectedBundle/InjectedBundle.cpp:
+ * WebProcess/InjectedBundle/InjectedBundle.h:
+ (InjectedBundle):
+ Remove the code forcing the Geolocation permissions. It was working around the normal
+ Geolocation code and updating all the GeolocationController, which is a terrible idea.
+
+2012-09-21 Alexey Proskuryakov <ap@apple.com>
+
+ [WK2] Make Web Inspector work in multiple web process mode
+ https://bugs.webkit.org/show_bug.cgi?id=97354
+
+ Reviewed by Timothy Hatcher.
+
+ * UIProcess/mac/WebInspectorProxyMac.mm: (WebKit::WebInspectorProxy::platformCreateInspectorPage):
+ Tell WKView that it's related to original page, making inspector page be in the same process.
+
+2012-09-21 Carlos Garcia Campos <cgarcia@igalia.com>
+
+ [GTK] Implement ViewState methods in PageClientImpl in WebKit2
+ https://bugs.webkit.org/show_bug.cgi?id=97202
+
+ Reviewed by Martin Robinson.
+
+ Implement isViewWindowActive(), isViewFocused(), isViewVisible()
+ and isViewInWindow() in PageClientImpl.
+
+ * GNUmakefile.list.am: Add new files to compilation.
+ * UIProcess/API/C/gtk/WKView.cpp:
+ (WKViewSetFocus): New private method used by WTR to focus the
+ WebView.
+ * UIProcess/API/C/gtk/WKViewPrivate.h: Added.
+ * UIProcess/API/gtk/PageClientImpl.cpp:
+ (WebKit::PageClientImpl::isViewWindowActive): Return
+ webkitWebViewBaseIsInWindowActive().
+ (WebKit::PageClientImpl::isViewFocused): Return
+ webkitWebViewBaseIsFocused().
+ (WebKit::PageClientImpl::isViewVisible): Return
+ webkitWebViewBaseIsVisible().
+ (WebKit::PageClientImpl::isViewInWindow): Return
+ webkitWebViewBaseIsInWindow().
+ * UIProcess/API/gtk/WebKitWebViewBase.cpp:
+ (webkitWebViewBaseNotifyResizerSize): Updated to not receive the
+ window as parameter since it's now saved in the instance struct.
+ (toplevelWindowResizeGripVisibilityChanged): Update to
+ webkitWebViewBaseNotifyResizerSize() API change.
+ (toplevelWindowFocusInEvent): Update ViewWindowIsActive flag and
+ notify the WebPageProxy if it changed.
+ (toplevelWindowFocusOutEvent): Ditto.
+ (webkitWebViewBaseSetToplevelOnScreenWindow): Set the toplevel
+ on-screen window where the view is currently added and notify
+ WebPageProxy if it changed.
+ (webkitWebViewBaseRealize): Call
+ webkitWebViewBaseSetToplevelOnScreenWindow() if the view has been
+ added to an on-screen window.
+ (webkitWebViewBaseFinalize): Reset the toplevel on-screen window
+ to make sure all signals are disconnected when the view is
+ destroyed.
+ (webkit_web_view_base_init): Remove unneeded initialization.
+ (resizeWebKitWebViewBaseFromAllocation): Update to
+ webkitWebViewBaseNotifyResizerSize() API change.
+ (webkitWebViewBaseMap): Update ViewIsVisible flag and notify
+ WebPageProxy if it changed.
+ (webkitWebViewBaseUnmap): Ditto.
+ (webkitWebViewBaseFocusInEvent): Call webkitWebViewBaseSetFocus()
+ passing true to focus the view.
+ (webkitWebViewBaseFocusOutEvent): Call webkitWebViewBaseSetFocus()
+ passing false to unfocus the view.
+ (webkitWebViewBaseParentSet): Reset the toplevel on-screen window
+ if the view is re-parented.
+ (webkit_web_view_base_class_init): Add implementations for map and
+ parent-set virtual functions.
+ (webkitWebViewBaseSetFocus): Update the ViewIsFocused and notify
+ WebPageProxy if it changed.
+ (webkitWebViewBaseIsInWindowActive):
+ (webkitWebViewBaseIsFocused):
+ (webkitWebViewBaseIsVisible):
+ (webkitWebViewBaseIsInWindow):
+ * UIProcess/API/gtk/WebKitWebViewBasePrivate.h:
+ * UIProcess/API/gtk/tests/TestWebKitWebView.cpp:
+ (testWebViewMouseTarget): Use a GTK_WINDOW_TOPLEVEL instead of
+ POPUP for this test to make sure the view receives focus change
+ events.
+
+2012-09-21 Carlos Garcia Campos <cgarcia@igalia.com>
+
+ [GTK] Add WebKitWebView:is-loading property to WebKit2 GTK+ API
+ https://bugs.webkit.org/show_bug.cgi?id=97330
+
+ Reviewed by Xan Lopez.
+
+ WebKitWebView:is-loading property allows to monitor when the view
+ is loading something without having to deal with load-changed
+ signal and all the details of the load status. This also allows to
+ know when a new load is started before it goes to STARTED status.
+
+ * UIProcess/API/gtk/WebKitWebView.cpp:
+ (webkitWebViewGetProperty): Implement getter for is-loading
+ property.
+ (webkit_web_view_class_init): Add is-loading property.
+ (webkitWebViewSetIsLoading): Set whether web view is loading a
+ page and emit notify signal if the is-loading property has
+ changed. Also update the active URI when a new load operation has
+ started.
+ (webkitWebViewEmitLoadChanged): Set is-loading to FALSE when load
+ finishes.
+ (webkitWebViewLoadFailed): Set is-loading to FALSE when load fails.
+ (webkit_web_view_load_uri): Set is-loading to TRUE.
+ (webkit_web_view_load_html): Ditto.
+ (webkit_web_view_load_alternate_html): Ditto.
+ (webkit_web_view_load_plain_text): Ditto.
+ (webkit_web_view_load_request): Ditto.
+ (webkit_web_view_reload): Ditto.
+ (webkit_web_view_reload_bypass_cache): Ditto.
+ (webkit_web_view_is_loading): Return whether the view is loading a
+ page.
+ (webkit_web_view_go_back): Set is-loading to TRUE.
+ (webkit_web_view_go_forward): Ditto.
+ (webkit_web_view_go_to_back_forward_list_item): Ditto.
+ * UIProcess/API/gtk/WebKitWebView.h:
+ * UIProcess/API/gtk/docs/webkit2gtk-sections.txt: Add new symbol.
+ * UIProcess/API/gtk/tests/LoadTrackingTest.cpp:
+ (loadChangedCallback):
+ (loadFailedCallback):
+ * UIProcess/API/gtk/tests/TestLoaderClient.cpp:
+ (testWebViewIsLoading):
+ (beforeAll):
+
+2012-09-20 Eunmi Lee <eunmi15.lee@samsung.com>
+
+ [EFL][WK2] Add API to feed touch event.
+ https://bugs.webkit.org/show_bug.cgi?id=96903
+
+ Reviewed by Kenneth Rohde Christiansen.
+
+ The applications will use this API to feed touch event to the view
+ when they want to generate touch event from their own event processor.
+ WTR also will use this API to generate touch event with multiple touch
+ points for passing test cases of touch event in the WebKit2/EFL.
+
+ * PlatformEfl.cmake:
+ * UIProcess/API/efl/EWebKit2.h:
+ * UIProcess/API/efl/ewk_view.cpp:
+ (ewk_view_feed_touch_event):
+ * UIProcess/API/efl/ewk_view.h:
+ * UIProcess/API/efl/tests/test_ewk2_view.cpp:
+ (TEST_F):
+
+2012-09-20 Patrick Gansterer <paroga@webkit.org>
+
+ Add String::numberToStringFixedWidth()
+ https://bugs.webkit.org/show_bug.cgi?id=96330
+
+ Reviewed by Benjamin Poulain.
+
+ * win/WebKit2.def:
+ * win/WebKit2CFLite.def:
+
+2012-09-17 Jon Lee <jonlee@apple.com>
+
+ Safari 6 notifications' onclick handlers can't call window.open()
+ https://bugs.webkit.org/show_bug.cgi?id=96959
+ <rdar://problem/12132427>
+
+ Reviewed by Darin Adler.
+
+ The click is not being treated as a user gesture when the message is sent to the web process.
+
+ * WebProcess/Notifications/WebNotificationManager.cpp:
+ (WebKit::WebNotificationManager::didClickNotification): Gets called when the user clicks on the
+ platform notification. Set UserGestureIndicator to show the click event is due to user gesture.
+
+2012-09-20 Eunmi Lee <eunmi15.lee@samsung.com>
+
+ [EFL][WK2] Add APIs to create, delete and get ewk_context.
+ https://bugs.webkit.org/show_bug.cgi?id=89186
+
+ Reviewed by Kenneth Rohde Christiansen.
+
+ Provide APIs to create ewk_context with or without injected bundle path
+ and delete created ewk_context.
+ Additionally, the ewk_view can be created with ewk_context which is not
+ default context, so we have to get ewk_context from ewk_view.
+
+ * PlatformEfl.cmake:
+ * UIProcess/API/efl/PageClientImpl.cpp:
+ (WebKit::PageClientImpl::handleDownloadRequest):
+ * UIProcess/API/efl/ewk_context.cpp:
+ (_Ewk_Context):
+ (_Ewk_Context::_Ewk_Context):
+ (ewk_context_ref):
+ (ewk_context_unref):
+ (ewk_context_new):
+ (ewk_context_new_with_injected_bundle_path):
+ * UIProcess/API/efl/ewk_context.h:
+ * UIProcess/API/efl/ewk_view.cpp:
+ (_Ewk_View_Private_Data):
+ (_Ewk_View_Private_Data::_Ewk_View_Private_Data):
+ (_ewk_view_priv_del):
+ (_ewk_view_initialize):
+ (ewk_view_context_get):
+ * UIProcess/API/efl/ewk_view.h:
+ * UIProcess/API/efl/tests/InjectedBundle/injected_bundle_sample.cpp: Added.
+ * UIProcess/API/efl/tests/UnitTestUtils/EWK2UnitTestEnvironment.cpp:
+ (EWK2UnitTest::EWK2UnitTestEnvironment::injectedBundleSample):
+ (EWK2UnitTest):
+ * UIProcess/API/efl/tests/UnitTestUtils/EWK2UnitTestEnvironment.h:
+ (EWK2UnitTestEnvironment):
+ * UIProcess/API/efl/tests/test_ewk2_context.cpp:
+ (TEST_F):
+ * UIProcess/API/efl/tests/test_ewk2_cookie_manager.cpp:
+ (TEST_F):
+ * UIProcess/API/efl/tests/test_ewk2_view.cpp:
+ (TEST_F):
+
+2012-09-20 KwangYong Choi <ky0.choi@samsung.com>
+
+ [EFL][WK2] Implemented color picker API
+ https://bugs.webkit.org/show_bug.cgi?id=91832
+
+ Reviewed by Kenneth Rohde Christiansen.
+
+ Add support for color picker API for EFL port in WebKit2.
+
+ The external application can implement input picker by overriding
+ smart class function.
+
+ * UIProcess/API/efl/ewk_view.cpp:
+ (_Ewk_View_Private_Data):
+ (_Ewk_View_Private_Data::_Ewk_View_Private_Data):
+ (ewk_view_color_picker_request):
+ (ewk_view_color_picker_dismiss):
+ (ewk_view_color_picker_color_set):
+ * UIProcess/API/efl/ewk_view.h:
+ * UIProcess/API/efl/ewk_view_private.h:
+ * UIProcess/API/efl/ewk_view_ui_client.cpp:
+ (showColorPicker):
+ (hideColorPicker):
+ (ewk_view_ui_client_attach):
+ * UIProcess/API/efl/tests/test_ewk2_view.cpp:
+ (onColorPickerDone):
+ (setColorPickerColor):
+ (showColorPicker):
+ (hideColorPicker):
+ (TEST_F):
+
+2012-09-20 Balazs Kelemen <kbalazs@webkit.org>
+
+ [CoordinatedGraphics] Don't reset m_shouldSyncFrame in flushPendingLayerChanges
+ https://bugs.webkit.org/show_bug.cgi?id=97108
+
+ Reviewed by Noam Rosenthal.
+
+ Stop ignoring if m_shouldSyncFrame has been set between the two
+ layer flush. It can be set during layout in several situations,
+ for example when a layer is deleted or changed state. We want to
+ send the DidRenderFrame message at the next flush in those situations
+ so the UI process will apply the changes as soon as possible.
+
+ * WebProcess/WebPage/CoordinatedGraphics/LayerTreeCoordinator.cpp:
+ (WebKit::LayerTreeCoordinator::flushPendingLayerChanges):
+
+2012-09-20 Byungwoo Lee <bw80.lee@samsung.com>
+
+ [EFL][WK2] Check timeout on waitUntilLoadFinished() and waitUntilTitleChangedTo().
+ https://bugs.webkit.org/show_bug.cgi?id=97081
+
+ Reviewed by Gyuyoung Kim.
+
+ Add assertion to check timeout on waitUntilLoadFinished() and
+ waitUntilTitleChangedTo().
+ Set the default timeout for the functions as 10 seconds.
+
+ * UIProcess/API/efl/tests/UnitTestUtils/EWK2UnitTestBase.h:
+ (EWK2UnitTestBase):
+ * UIProcess/API/efl/tests/test_ewk2_back_forward_list.cpp:
+ (TEST_F):
+ * UIProcess/API/efl/tests/test_ewk2_context.cpp:
+ (TEST_F):
+ * UIProcess/API/efl/tests/test_ewk2_view.cpp:
+ (TEST_F):
+
+2012-09-20 Jinwoo Song <jinwoo7.song@samsung.com>
+
+ [EFL] Change the log macro names to be more consistent with EINA LOG
+ https://bugs.webkit.org/show_bug.cgi?id=97158
+
+ Reviewed by Kenneth Rohde Christiansen.
+
+ Some log macro names in WebKit2 are inconsistent with EINA LOG names
+ such as WRN/INF not WARN/INFO.
+
+ #define WRN(...) EINA_LOG_DOM_WARN(_ewk_log_dom, __VA_ARGS__)
+ #define INF(...) EINA_LOG_DOM_INFO(_ewk_log_dom, __VA_ARGS__)
+
+ This patch changes the such names to be consistent with EINA LOG's names.
+
+ * UIProcess/API/efl/ewk_main.cpp:
+ (ewk_init):
+ * UIProcess/API/efl/ewk_private.h:
+ * UIProcess/API/efl/ewk_view.cpp:
+ (ewk_view_webprocess_crashed):
+
+2012-09-20 Christophe Dumez <christophe.dumez@intel.com>
+
+ [EFL][WK2] Same page navigation does not update view URI
+ https://bugs.webkit.org/show_bug.cgi?id=97094
+
+ Reviewed by Kenneth Rohde Christiansen.
+
+ Handle didSameDocumentNavigationForFrame callback in
+ WKPageLoaderClient in order to update the view URI.
+ This fixes issues with the view URI not being updated
+ in case of a same page navigation.
+
+ * UIProcess/API/efl/ewk_view_loader_client.cpp:
+ (didSameDocumentNavigationForFrame):
+ (ewk_view_loader_client_attach):
+ * UIProcess/API/efl/ewk_view_private.h:
+ * UIProcess/API/efl/tests/UnitTestUtils/EWK2UnitTestBase.cpp:
+ (CallbackDataTimer):
+ (EWK2UnitTest::CallbackDataTimer::CallbackDataTimer):
+ (EWK2UnitTest::CallbackDataTimer::~CallbackDataTimer):
+ (EWK2UnitTest::CallbackDataTimer::isDone):
+ (EWK2UnitTest::CallbackDataTimer::setDone):
+ (EWK2UnitTest::CallbackDataTimer::didTimeOut):
+ (EWK2UnitTest::CallbackDataTimer::setTimedOut):
+ (EWK2UnitTest):
+ (CallbackDataExpectedValue):
+ (EWK2UnitTest::CallbackDataExpectedValue::CallbackDataExpectedValue):
+ (EWK2UnitTest::CallbackDataExpectedValue::expectedValue):
+ (EWK2UnitTest::onLoadFinished):
+ (EWK2UnitTest::timeOutWhileWaitingUntilLoadFinished):
+ (EWK2UnitTest::EWK2UnitTestBase::waitUntilLoadFinished):
+ (EWK2UnitTest::onTitleChanged):
+ (EWK2UnitTest::timeOutWhileWaitingUntilTitleChangedTo):
+ (EWK2UnitTest::EWK2UnitTestBase::waitUntilTitleChangedTo):
+ (EWK2UnitTest::onURIChanged):
+ (EWK2UnitTest::timeOutWhileWaitingUntilURIChangedTo):
+ (EWK2UnitTest::EWK2UnitTestBase::waitUntilURIChangedTo): Add convenience function to test
+ framework in order to wait until the view URI changes to a given value.
+ * UIProcess/API/efl/tests/UnitTestUtils/EWK2UnitTestBase.h:
+ (EWK2UnitTestBase):
+ * UIProcess/API/efl/tests/resources/same_page_navigation.html: Added.
+ * UIProcess/API/efl/tests/test_ewk2_view.cpp:
+ (TEST_F): Add corresponding unit test to verify fix and prevent regressions
+ in the future.
+
+2012-09-19 Dan Bernstein <mitz@apple.com>
+
+ WebKit2 part of adding a setting and API for disabling screen font substitution
+ https://bugs.webkit.org/show_bug.cgi?id=97168
+
+ Reviewed by Tim Horton.
+
+ * Shared/WebPreferencesStore.h:
+ (WebKit): Defined ScreenFontSubstitutionEnabled key with a default value of true.
+ * UIProcess/API/C/WKPreferences.cpp:
+ (WKPreferencesSetScreenFontSubstitutionEnabled): Added this setter.
+ (WKPreferencesGetScreenFontSubstitutionEnabled): Added this getter.
+ * UIProcess/API/C/WKPreferencesPrivate.h:
+ * WebProcess/WebPage/WebPage.cpp:
+ (WebKit::WebPage::updatePreferences): Added a call to Settings::setScreenFontSubstitutionEnabled
+ to push the preference into Settings.
+
+2012-09-19 Jinwoo Song <jinwoo7.song@samsung.com>
+
+ Fix unused parameter compile warnings in WebKit/WebKit2
+ https://bugs.webkit.org/show_bug.cgi?id=96742
+
+ Reviewed by Gyuyoung Kim.
+
+ Fix unused parameter compile warning messages(-Wunused-parameter) in WebKit2 during EFL build.
+ WebCore's warning messages were fixed in r128570.
+
+ * Shared/FontInfo.cpp:
+ (WebKit::FontInfo::encode):
+ (WebKit::FontInfo::decode):
+ * Shared/PlatformPopupMenuData.cpp:
+ (WebKit::PlatformPopupMenuData::encode):
+ (WebKit::PlatformPopupMenuData::decode):
+ * Shared/SandboxExtension.h:
+ (WebKit::SandboxExtension::createHandleForTemporaryFile):
+ * Shared/ShareableSurface.cpp:
+ (WebKit::ShareableSurface::create):
+ * Shared/WebMemorySampler.cpp:
+ (WebKit::WebMemorySampler::appendCurrentMemoryUsageToFile):
+ * UIProcess/API/C/WKPage.cpp:
+ (WKPageGetContentsAsMHTMLData):
+ * UIProcess/API/C/WKPluginSiteDataManager.cpp:
+ (WKPluginSiteDataManagerClearSiteData):
+ (WKPluginSiteDataManagerClearAllSiteData):
+ * UIProcess/API/C/WKPreferences.cpp:
+ (WKPreferencesSetHixie76WebSocketProtocolEnabled):
+ (WKPreferencesGetHixie76WebSocketProtocolEnabled):
+ * UIProcess/API/efl/BatteryProvider.cpp:
+ (startUpdatingCallback):
+ (stopUpdatingCallback):
+ * UIProcess/API/efl/PageClientImpl.cpp:
+ (WebKit::PageClientImpl::doneWithTouchEvent):
+ * UIProcess/API/efl/VibrationProvider.cpp:
+ (vibrateCallback):
+ (cancelVibrationCallback):
+ * UIProcess/API/efl/ewk_context_download_client.cpp:
+ (decideDestinationWithSuggestedFilename):
+ (didCreateDestination):
+ * UIProcess/API/efl/ewk_view.cpp:
+ (_ewk_view_on_focus_in):
+ (_ewk_view_on_focus_out):
+ (_ewk_view_on_mouse_wheel):
+ (_ewk_view_on_mouse_down):
+ (_ewk_view_on_mouse_up):
+ (_ewk_view_on_mouse_move):
+ (_ewk_view_on_key_down):
+ (_ewk_view_on_key_up):
+ (_ewk_view_smart_move):
+ (ewk_view_contents_size_changed):
+ * UIProcess/API/efl/ewk_view_find_client.cpp:
+ (didFindString):
+ * UIProcess/API/efl/ewk_view_form_client.cpp:
+ (willSubmitForm):
+ * UIProcess/API/efl/ewk_view_loader_client.cpp:
+ (didReceiveIntentForFrame):
+ (registerIntentServiceForFrame):
+ (didFinishLoadForFrame):
+ (didFailLoadWithErrorForFrame):
+ (didStartProvisionalLoadForFrame):
+ (didReceiveServerRedirectForProvisionalLoadForFrame):
+ (didFailProvisionalLoadWithErrorForFrame):
+ (didChangeBackForwardList):
+ * UIProcess/API/efl/ewk_view_policy_client.cpp:
+ (decidePolicyForNavigationAction):
+ (decidePolicyForNewWindowAction):
+ (decidePolicyForResponseCallback):
+ * UIProcess/DrawingAreaProxy.h:
+ (WebKit::DrawingAreaProxy::update):
+ (WebKit::DrawingAreaProxy::didUpdateBackingStoreState):
+ * UIProcess/DrawingAreaProxyImpl.cpp:
+ (WebKit::DrawingAreaProxyImpl::didUpdateBackingStoreState):
+ (WebKit::DrawingAreaProxyImpl::enterAcceleratedCompositingMode):
+ (WebKit::DrawingAreaProxyImpl::updateAcceleratedCompositingMode):
+ * UIProcess/FindIndicator.cpp:
+ (WebKit::FindIndicator::draw):
+ * UIProcess/GeolocationPermissionRequestManagerProxy.cpp:
+ (WebKit::GeolocationPermissionRequestManagerProxy::didReceiveGeolocationPermissionDecision):
+ * UIProcess/Plugins/unix/PluginInfoStoreUnix.cpp:
+ (WebKit::PluginInfoStore::shouldUsePlugin):
+ * UIProcess/WebContext.cpp:
+ (WebKit::WebContext::setHTTPPipeliningEnabled):
+ * UIProcess/WebFullScreenManagerProxy.cpp:
+ (WebKit::WebFullScreenManagerProxy::supportsFullScreen):
+ * UIProcess/WebPageProxy.cpp:
+ (WebKit::WebPageProxy::sessionStateData):
+ (WebKit::WebPageProxy::recommendedScrollbarStyleDidChange):
+ (WebKit::WebPageProxy::didBlockInsecurePluginVersion):
+ * UIProcess/WebProcessProxy.cpp:
+ (WebKit::WebProcessProxy::createWebPage):
+ * UIProcess/efl/TextCheckerEfl.cpp:
+ (WebKit::TextChecker::continuousSpellCheckingEnabledStateChanged):
+ (WebKit::TextChecker::grammarCheckingEnabledStateChanged):
+ * UIProcess/efl/WebFullScreenManagerProxyEfl.cpp:
+ (WebKit::WebFullScreenManagerProxy::beganEnterFullScreen):
+ (WebKit::WebFullScreenManagerProxy::beganExitFullScreen):
+ * UIProcess/efl/WebPageProxyEfl.cpp:
+ (WebKit::WebPageProxy::standardUserAgent):
+ (WebKit::WebPageProxy::getEditorCommandsForKeyEvent):
+ * WebProcess/Downloads/soup/DownloadSoup.cpp:
+ (WebKit::Download::start):
+ (WebKit::Download::startWithHandle):
+ (WebKit::Download::didDecideDestination):
+ (WebKit::Download::receivedCredential):
+ (WebKit::Download::receivedRequestToContinueWithoutCredential):
+ (WebKit::Download::receivedCancellation):
+ * WebProcess/Geolocation/WebGeolocationManager.cpp:
+ (WebKit::WebGeolocationManager::didChangePosition):
+ * WebProcess/IconDatabase/WebIconDatabaseProxy.cpp:
+ (WebKit::WebIconDatabaseProxy::synchronousIconForPageURL):
+ (WebKit::WebIconDatabaseProxy::synchronousIconURLForPageURL):
+ (WebKit::WebIconDatabaseProxy::synchronousIconDataKnownForIconURL):
+ (WebKit::WebIconDatabaseProxy::synchronousLoadDecisionForIconURL):
+ (WebKit::WebIconDatabaseProxy::iconDataForIconURL):
+ * WebProcess/InjectedBundle/API/c/WKBundleFrame.cpp:
+ (WKBundleFrameCopyWebArchiveFilteringSubframes):
+ * WebProcess/InjectedBundle/API/c/WKBundlePage.cpp:
+ (WKAccessibilityRootObject):
+ (WKAccessibilityFocusedObject):
+ * WebProcess/InjectedBundle/InjectedBundle.cpp:
+ (WebKit::InjectedBundle::setGeoLocationPermission):
+ (WebKit::InjectedBundle::didReceiveMessage):
+ (WebKit::InjectedBundle::webNotificationID):
+ * WebProcess/Notifications/WebNotificationManager.cpp:
+ (WebKit::WebNotificationManager::initialize):
+ (WebKit::WebNotificationManager::didUpdateNotificationDecision):
+ (WebKit::WebNotificationManager::didRemoveNotificationDecisions):
+ (WebKit::WebNotificationManager::policyForOrigin):
+ (WebKit::WebNotificationManager::notificationIDForTesting):
+ (WebKit::WebNotificationManager::show):
+ (WebKit::WebNotificationManager::cancel):
+ (WebKit::WebNotificationManager::clearNotifications):
+ (WebKit::WebNotificationManager::didDestroyNotification):
+ (WebKit::WebNotificationManager::didShowNotification):
+ (WebKit::WebNotificationManager::didClickNotification):
+ (WebKit::WebNotificationManager::didCloseNotifications):
+ * WebProcess/Plugins/PluginView.cpp:
+ (WebKit::PluginView::paint):
+ * WebProcess/WebCoreSupport/WebChromeClient.cpp:
+ (WebKit::WebChromeClient::addMessageToConsole):
+ (WebKit::WebChromeClient::contentsSizeChanged):
+ (WebKit::WebChromeClient::customHighlightRect):
+ (WebKit::WebChromeClient::paintCustomHighlight):
+ (WebKit::WebChromeClient::supportsFullScreenForElement):
+ * WebProcess/WebCoreSupport/WebContextMenuClient.cpp:
+ (WebKit::WebContextMenuClient::downloadURL):
+ * WebProcess/WebCoreSupport/WebDragClient.cpp:
+ (WebKit::WebDragClient::dragSourceActionMaskForPoint):
+ * WebProcess/WebCoreSupport/WebEditorClient.cpp:
+ (WebKit::WebEditorClient::shouldEraseMarkersAfterChangeSelection):
+ * WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
+ (WebKit::WebFrameLoaderClient::dispatchDidCancelAuthenticationChallenge):
+ (WebKit::WebFrameLoaderClient::dispatchDidLoadResourceFromMemoryCache):
+ (WebKit::WebFrameLoaderClient::shouldStopLoadingForHistoryItem):
+ (WebKit::WebFrameLoaderClient::canShowMIMEType):
+ (WebKit::WebFrameLoaderClient::canShowMIMETypeAsHTML):
+ (WebKit::WebFrameLoaderClient::representationExistsForURLScheme):
+ (WebKit::WebFrameLoaderClient::generatedMIMETypeForURLScheme):
+ (WebKit::WebFrameLoaderClient::createFrame):
+ (WebKit::WebFrameLoaderClient::createJavaAppletWidget):
+ (WebKit::WebFrameLoaderClient::registerForIconNotification):
+ * WebProcess/WebCoreSupport/WebInspectorClient.cpp:
+ (WebKit::WebInspectorClient::drawRect):
+ * WebProcess/WebPage/DrawingArea.h:
+ (WebKit::DrawingArea::forceRepaintAsync):
+ (WebKit::DrawingArea::updateBackingStoreState):
+ * WebProcess/WebPage/FindController.cpp:
+ (WebKit::FindController::mouseEvent):
+ * WebProcess/WebPage/LayerTreeHost.cpp:
+ (WebKit::LayerTreeHost::create):
+ * WebProcess/WebPage/LayerTreeHost.h:
+ (WebKit::LayerTreeHost::forceRepaintAsync):
+ * WebProcess/WebPage/TapHighlightController.cpp:
+ (WebKit::TapHighlightController::drawRect):
+ * WebProcess/WebPage/WebPage.cpp:
+ (WebKit::WebPage::getWebArchiveOfFrame):
+ * WebProcess/WebProcess.cpp:
+ (WebKit::WebProcess::getSitesWithPluginData):
+ (WebKit::WebProcess::clearPluginSiteData):
+ * WebProcess/soup/WebKitSoupRequestGeneric.cpp:
+ (webkitSoupRequestGenericSendFinish):
+ * WebProcess/soup/WebKitSoupRequestInputStream.cpp:
+ (webkitSoupRequestInputStreamReadAsync):
+ (webkitSoupRequestInputStreamReadFinish):
+
+2012-09-19 Pratik Solanki <psolanki@apple.com>
+
+ Warning in SandboxExtension.h if WEB_PROCESS_SANDBOX is not enabled
+ https://bugs.webkit.org/show_bug.cgi?id=97137
+
+ Reviewed by Benjamin Poulain.
+
+ m_size is only used when WEB_PROCESS_SANDBOX is enabled, so move its declaration inside
+ #if ENABLE(WEB_PROCESS_SANDBOX).
+
+ * Shared/SandboxExtension.h:
+ (HandleArray):
+
+2012-09-19 Sudarsana Nagineni <sudarsana.nagineni@intel.com>
+
+ [WTR] Memory leaks in TestRunner::deliverWebIntent()
+ https://bugs.webkit.org/show_bug.cgi?id=97111
+
+ Reviewed by Kenneth Rohde Christiansen.
+
+ Fix memory leaks in WKBundleIntentCreate() by adopting strings
+ created with WKStringCreateWithUTF8CString().
+
+ * WebProcess/InjectedBundle/API/c/WKBundleIntent.cpp:
+ (WKBundleIntentCreate):
+
+2012-09-19 Christophe Dumez <christophe.dumez@intel.com>
+
+ [EFL][WK2] fast/forms/select-writing-direction-natural.html is failing
+ https://bugs.webkit.org/show_bug.cgi?id=97082
+
+ Reviewed by Kenneth Rohde Christiansen.
+
+ WebChromeClient::selectItemWritingDirectionIsNatural() now returns
+ true for EFL-WK2, consistently with EFL-WK1, so that the style
+ is properly adjusted in RenderMenuList::adjustInnerStyle().
+
+ * WebProcess/WebCoreSupport/WebChromeClient.cpp:
+ (WebKit::WebChromeClient::selectItemWritingDirectionIsNatural):
+
+2012-09-19 Carlos Garcia Campos <cgarcia@igalia.com>
+
+ [GTK] Add API to get/set the security policy of a given URI scheme to WebKit2 GTK+
+ https://bugs.webkit.org/show_bug.cgi?id=96497
+
+ Reviewed by Martin Robinson.
+
+ Add WebKitSecurityManager object associated to a WebKitWebContext
+ to get/set the security policy of a URI scheme.
+
+ * GNUmakefile.list.am: Add new files to compilation.
+ * Shared/WebProcessCreationParameters.cpp:
+ (WebKit::WebProcessCreationParameters::encode): Encode the list of
+ schemes to be reigstered as Local, NoAccess, DisplayIsolated and
+ CORSEnabled.
+ (WebKit::WebProcessCreationParameters::decode): Decode the list of
+ schemes to be reigstered as Local, NoAccess, DisplayIsolated and
+ CORSEnabled.
+ * Shared/WebProcessCreationParameters.h:
+ (WebProcessCreationParameters): Add new parameters to be able to
+ register schemes as Local, NoAccess, DisplayIsolated and
+ CORSEnabled.
+ * UIProcess/API/gtk/WebKitSecurityManager.cpp: Added.
+ (webkit_security_manager_init):
+ (webkitSecurityManagerFinalize):
+ (webkit_security_manager_class_init):
+ (webkitSecurityManagerCreate): Private function to create the
+ WebKitSecurityManager object associated to the given
+ WebKitWebContext.
+ (registerSecurityPolicyForURIScheme):
+ (checkSecurityPolicyForURIScheme):
+ (webkit_security_manager_register_uri_scheme_as_local):
+ (webkit_security_manager_uri_scheme_is_local):
+ (webkit_security_manager_register_uri_scheme_as_no_access):
+ (webkit_security_manager_uri_scheme_is_no_access):
+ (webkit_security_manager_register_uri_scheme_as_display_isolated):
+ (webkit_security_manager_uri_scheme_is_display_isolated):
+ (webkit_security_manager_register_uri_scheme_as_secure):
+ (webkit_security_manager_uri_scheme_is_secure):
+ (webkit_security_manager_register_uri_scheme_as_cors_enabled):
+ (webkit_security_manager_uri_scheme_is_cors_enabled):
+ (webkit_security_manager_register_uri_scheme_as_empty_document):
+ (webkit_security_manager_uri_scheme_is_empty_document):
+ * UIProcess/API/gtk/WebKitSecurityManager.h: Added.
+ * UIProcess/API/gtk/WebKitSecurityManagerPrivate.h: Added.
+ * UIProcess/API/gtk/WebKitWebContext.cpp:
+ (webkit_web_context_get_security_manager): Return the
+ WebKitSecurityManager object, creating it before if it doesn't exist.
+ * UIProcess/API/gtk/WebKitWebContext.h:
+ * UIProcess/API/gtk/docs/webkit2gtk-docs.sgml: Add new section for
+ WebKitSecurityManager.
+ * UIProcess/API/gtk/docs/webkit2gtk-sections.txt: Add new symbols.
+ * UIProcess/API/gtk/tests/TestWebKitWebContext.cpp:
+ (testWebContextSecurityPolicy):
+ (beforeAll):
+ * UIProcess/API/gtk/webkit2.h: Add WebKitSecurityManager.h.
+ * UIProcess/WebContext.cpp:
+ (WebKit::WebContext::createNewWebProcess): Copy new vector
+ schemes.
+ (WebKit::WebContext::registerURLSchemeAsLocal): Send a message to
+ WebProcess to register the given URL scheme as Local.
+ (WebKit::WebContext::registerURLSchemeAsNoAccess): Send a message
+ to WebProcess to register the given URL scheme as NoAccess.
+ (WebKit::WebContext::registerURLSchemeAsDisplayIsolated): Send a
+ message to WebProcess to register the given URL scheme as
+ DisplayIsolated.
+ (WebKit::WebContext::registerURLSchemeAsCORSEnabled): Send a
+ message to WebProcess to register the given URL scheme as
+ CORSEnabled.
+ * UIProcess/WebContext.h:
+ (WebContext):
+ * WebProcess/WebProcess.cpp:
+ (WebKit::WebProcess::registerURLSchemeAsLocal): Register the
+ given URL scheme as Local in the SchemeRegistry.
+ (WebKit::WebProcess::registerURLSchemeAsNoAccess): Register the
+ given URL scheme as NoAccess in the SchemeRegistry.
+ (WebKit::WebProcess::registerURLSchemeAsDisplayIsolated): Register
+ the given URL scheme as DisplayIsolated in the SchemeRegistry.
+ (WebKit::WebProcess::registerURLSchemeAsCORSEnabled): Register the
+ given URL scheme as CORSEnabled in the SchemeRegistry.
+ * WebProcess/WebProcess.h:
+ * WebProcess/WebProcess.messages.in: Add new messages.
+
+2012-09-19 Balazs Kelemen <kbalazs@webkit.org>
+
+ [Texmap] Potential crash in TextureMapperLayer because of referencing deleted mask/replica layer
+ https://bugs.webkit.org/show_bug.cgi?id=96919
+
+ Reviewed by Noam Rosenthal.
+
+ Delay syncing deleted layers until flushPendingLayerChanges so the UI side state
+ will contain all changes related to the deletion of a layer. This saves us from
+ referencing a deleted layer.
+
+ * WebProcess/WebPage/CoordinatedGraphics/LayerTreeCoordinator.cpp:
+ (WebKit::LayerTreeCoordinator::flushPendingLayerChanges):
+ (WebKit::LayerTreeCoordinator::detachLayer):
+ * WebProcess/WebPage/CoordinatedGraphics/LayerTreeCoordinator.h:
+ (LayerTreeCoordinator):
+
+2012-09-19 Byungwoo Lee <bw80.lee@samsung.com>
+
+ [EFL][WK2] waitUntilTitleChangedTo() and waitUntilLoadFinished() needs timeout.
+ https://bugs.webkit.org/show_bug.cgi?id=96910
+
+ Reviewed by Kenneth Rohde Christiansen.
+
+ Currently, the waitUntilTitleChangedTo() and waitUntilLoadFinished()
+ functions doesn't handle timeout by itself.
+ And if there are some failed cases that loading is not finished or
+ title is not changed to the expected string, test case just stopped
+ with timeout and there is no more information about this such as line
+ number.
+
+ To handle timeout status more properly, timeout parameter is added to
+ these functions.
+
+ * UIProcess/API/efl/tests/UnitTestUtils/EWK2UnitTestBase.cpp:
+ (EWK2UnitTest::LoadFinishedData::LoadFinishedData):
+ (LoadFinishedData):
+ (EWK2UnitTest::LoadFinishedData::~LoadFinishedData):
+ (EWK2UnitTest):
+ (EWK2UnitTest::onLoadFinished):
+ (EWK2UnitTest::timeOutWhileWaitingUntilLoadFinished):
+ (EWK2UnitTest::EWK2UnitTestBase::waitUntilLoadFinished):
+ (EWK2UnitTest::TitleChangedData::TitleChangedData):
+ (TitleChangedData):
+ (EWK2UnitTest::TitleChangedData::~TitleChangedData):
+ (EWK2UnitTest::onTitleChanged):
+ (EWK2UnitTest::timeOutWhileWaitingUntilTitleChangedTo):
+ (EWK2UnitTest::EWK2UnitTestBase::waitUntilTitleChangedTo):
+ * UIProcess/API/efl/tests/UnitTestUtils/EWK2UnitTestBase.h:
+ (EWK2UnitTestBase):
+
+2012-09-18 Byungwoo Lee <bw80.lee@samsung.com>
+
+ [EFL][WK2] Add javascript popup API.
+ https://bugs.webkit.org/show_bug.cgi?id=95672
+
+ Reviewed by Gyuyoung Kim.
+
+ Add smart class member function for javascript alert(), confirm() and prompt().
+
+ * UIProcess/API/efl/ewk_view.cpp:
+ (ewk_view_run_javascript_alert):
+ (ewk_view_run_javascript_confirm):
+ (ewk_view_run_javascript_prompt):
+ * UIProcess/API/efl/ewk_view.h:
+ * UIProcess/API/efl/ewk_view_private.h:
+ * UIProcess/API/efl/ewk_view_ui_client.cpp:
+ (runJavaScriptAlert):
+ (runJavaScriptConfirm):
+ (runJavaScriptPrompt):
+ (ewk_view_ui_client_attach):
+ * UIProcess/API/efl/tests/test_ewk2_view.cpp:
+ Added unit test for javascript popup smart class member function.
+ (checkAlert):
+ (TEST_F):
+ (checkConfirm):
+ (checkPrompt):
+
+2012-09-18 Sailesh Agrawal <sail@chromium.org>
+
+ Chromium: Scrollbar with tickmarks doesn't respond to clicks
+ https://bugs.webkit.org/show_bug.cgi?id=96049
+
+ Reviewed by Beth Dakin.
+
+ Update exported symbols.
+
+ * win/WebKit2.def:
+ * win/WebKit2CFLite.def:
+
+2012-09-18 Jinwoo Song <jinwoo7.song@samsung.com>
+
+ [EFL][WK2] Add log macros for EINA_LOG_DOM_XXX series
+ https://bugs.webkit.org/show_bug.cgi?id=97061
+
+ Reviewed by Gyuyoung Kim.
+
+ EFL Webkit2 is using the EINA_LOG_DOM_XXX series in several places to log a message on the specified domain and format.
+ This patch adds log macros to simplify these logging codes.
+
+ * UIProcess/API/efl/ewk_main.cpp:
+ (ewk_init):
+ * UIProcess/API/efl/ewk_private.h:
+ * UIProcess/API/efl/ewk_view.cpp:
+ (ewk_view_webprocess_crashed):
+
+2012-09-17 Martin Robinson <mrobinson@igalia.com>
+
+ [WebKit2] [GTK] Add API for controlling the user agent
+ https://bugs.webkit.org/show_bug.cgi?id=95697
+
+ Reviewed by Carlos Garcia Campos.
+
+ Add API for changing the user agent in WebKit2. This adds two styles of
+ setting the user agent: complete override and a method that just inserts
+ the application name and version, but preserves the carefully crafted user agent
+ in the library.
+
+ * UIProcess/API/gtk/WebKitSettings.cpp:
+ (_WebKitSettingsPrivate): Added a new field to store the user agent.
+ This is stored in the private data structure, because we can only
+ set the user agent when attaching the settings to the page.
+ (webKitSettingsSetProperty): Add hooks for the new user agent property.
+ (webKitSettingsGetProperty): Ditto.
+ (webkit_settings_class_init): Ditto.
+ (webkitSettingsAttachSettingsToPage): Ditto.
+ (webkit_settings_get_user_agent): Added.
+ (webkit_settings_set_user_agent): Added.
+ (webkit_settings_set_user_agent_with_application_name): Added.
+ * UIProcess/API/gtk/WebKitSettings.h: Added new methods.
+ * UIProcess/API/gtk/WebKitWebView.cpp: Update the glue for the settings
+ when attaching and detaching from WebViews.
+ * UIProcess/API/gtk/docs/webkit2gtk-sections.txt: Added new methods to
+ the documentation.
+ * UIProcess/API/gtk/tests/TestWebKitSettings.cpp: Test the new user agent
+ property.
+ (testWebKitSettingsUserAgent): Ditto.
+ (beforeAll): Ditto.
+ * UIProcess/gtk/WebPageProxyGtk.cpp:
+ (WebKit::WebPageProxy::standardUserAgent): Now use the shared WebCore
+ code when setting the user agent.
+
+2012-09-18 Ryuan Choi <ryuan.choi@samsung.com>
+
+ [EFL][WK2] Implement PageClientImpl::isViewFocused.
+ https://bugs.webkit.org/show_bug.cgi?id=97015
+
+ Reviewed by Gyuyoung Kim.
+
+ WebKit2/Efl always returns true for PageClientImpl::isViewFocused.
+ So window.onblur events will not be generated when webview lost focus.
+
+ This patch implements isViewFocused to return the current focus of webview.
+
+ * UIProcess/API/efl/PageClientImpl.cpp:
+ (WebKit::PageClientImpl::isViewFocused):
+
+2012-09-18 Byungwoo Lee <bw80.lee@samsung.com>
+
+ Title string should be changed when document.title is set to ''.
+ https://bugs.webkit.org/show_bug.cgi?id=96793
+
+ Reviewed by Kenneth Rohde Christiansen.
+
+ Added unit test for setting document.title and checking the title
+ string with title,changed signal and ewk_view_title_get() function.
+
+ * UIProcess/API/efl/tests/test_ewk2_view.cpp:
+ (TEST_F):
+
+2012-09-18 Anders Carlsson <andersca@apple.com>
+
+ Division by zero crash in BackingStore::scroll
+ https://bugs.webkit.org/show_bug.cgi?id=97046
+ <rdar://problem/11722564>
+
+ Reviewed by Dan Bernstein.
+
+ It appears that DrawingAreaImpl::scroll can be called with an empty scroll rect. Do nothing
+ if that's the case. Also, assert that the scrolling rect in BackingStoreMac is never empty.
+
+ * UIProcess/mac/BackingStoreMac.mm:
+ (WebKit::BackingStore::scroll):
+ * WebProcess/WebPage/DrawingAreaImpl.cpp:
+ (WebKit::DrawingAreaImpl::scroll):
+
+2012-09-18 Bo Liu <boliu@chromium.org>
+
+ Revert 128780, 128676, 128645
+ https://bugs.webkit.org/show_bug.cgi?id=97022
+
+ Reviewed by Adam Barth.
+
+ I made these revisions to add in-place reload behavior to ImagesEnabled setting.
+ Reverting this for now due to them causing performance regression in
+ chromium, possibly caused by increased calls to
+ PermissionClient::imageAllowed.
+
+ * win/WebKit2.def:
+
+2012-09-18 Martin Robinson <mrobinson@igalia.com>
+
+ [GTK] [WebKit2] Use XComposite window for accelerated compositing
+ https://bugs.webkit.org/show_bug.cgi?id=94417
+
+ Reviewed by Carlos Garcia Campos.
+
+ Instead of rendering directly to the widget's native window, render to an
+ offscreen window redirected to a Pixmap with XComposite.
+
+ * UIProcess/API/gtk/WebKitWebViewBase.cpp:
+ (_WebKitWebViewBasePrivate): Added a few members necessary to track the
+ offscreen window.
+ (webkit_web_view_base_init):
+ (renderAcceleratedCompositingResults): Added this helper functions which renders
+ the results of the accelerated compositing operations during the GTK+ draw loop.
+ (webkitWebViewBaseDraw): Call renderAcceleratedCompositingResults when appropriate.
+ (resizeWebKitWebViewBaseFromAllocation): Resize the offscreen window when appropriate.
+ (webkitWebViewBaseSizeAllocate): Do not call resizeWebKitWebViewBaseFromAllocation when
+ the actual size of the widget does not change. This prevents destroying and recreating
+ the offscreen window pixmap when it isn't necessary.
+ (webkitWebViewBaseMap): We no longer send the window id during map, instead it's sent
+ as soon as there is WebPageProxy.
+ (webkitWebViewBaseCreateWebPage): Send the window id of the redirected window to
+ the WebProcess.
+ (queueAnotherDrawOfAcceleratedCompositingResults): Added this helper which works
+ around the issue of slow updates of the pixmap backing the redirected XComposite window.
+ (webkitWebViewBaseQueueDrawOfAcceleratedCompositingResults): Added this method which
+ is what the WebProcess uses to force a redraw on the UIProcess side.
+ * UIProcess/API/gtk/WebKitWebViewBasePrivate.h: Added new method to the list of private methods.
+ * UIProcess/DrawingAreaProxyImpl.h:
+ (DrawingAreaProxyImpl):
+ (WebKit::DrawingAreaProxyImpl::isInAcceleratedCompositingMode): Exposed this method publically
+ so that it can be used from WebKitWebViewBase.
+ * UIProcess/WebPageProxy.h:
+ (WebPageProxy): Renamed widgetMapped to setAcceleratedCompositingWindowId.
+ * UIProcess/WebPageProxy.messages.in: Ditto.
+ * UIProcess/gtk/WebPageProxyGtk.cpp: Ditto.
+ (WebKit::WebPageProxy::setAcceleratedCompositingWindowId):
+ * WebProcess/WebPage/WebPage.h:
+ (WebPage): Ditto.
+ * WebProcess/WebPage/WebPage.messages.in: Ditto.
+ * WebProcess/WebPage/gtk/LayerTreeHostGtk.cpp:
+ (WebKit::LayerTreeHostGtk::sizeDidChange): Force a composite to the resized window right
+ away so that the new window pixmap is updated before the first draw.
+ (WebKit::LayerTreeHostGtk::compositeLayersToContext): If the composition is for a resize,
+ first clear the entire GL context so that we don't see black artifacts during resize.
+ * WebProcess/WebPage/gtk/LayerTreeHostGtk.h:
+ (LayerTreeHostGtk): Update the signature of compositeLayersToContext.
+ * WebProcess/WebPage/gtk/WebPageGtk.cpp:
+ (WebKit::WebPage::setAcceleratedCompositingWindowId): Added.
+
+2012-09-18 Sheriff Bot <webkit.review.bot@gmail.com>
+
+ Unreviewed, rolling out r128849.
+ http://trac.webkit.org/changeset/128849
+ https://bugs.webkit.org/show_bug.cgi?id=97007
+
+ Causes test_ewk2_view to time out. (Requested by rakuco on
+ #webkit).
+
+ * UIProcess/API/efl/ewk_view.cpp:
+ (ewk_view_webprocess_crashed):
+ * UIProcess/API/efl/ewk_view.h:
+ * UIProcess/API/efl/ewk_view_private.h:
+ * UIProcess/API/efl/ewk_view_ui_client.cpp:
+ (ewk_view_ui_client_attach):
+ * UIProcess/API/efl/tests/test_ewk2_view.cpp:
+ (TEST_F):
+
+2012-09-18 Carlos Garcia Campos <cgarcia@igalia.com>
+
+ [GTK] Set the area of tooltips in WebKit2
+ https://bugs.webkit.org/show_bug.cgi?id=96618
+
+ Reviewed by Martin Robinson.
+
+ In GTK+ tooltips are associated to a widget, if the mouse is moved
+ inside the widget area, the tooltip position doesn't change even
+ if the tooltip text changes. To support multiple tooltips for the
+ same widget, we need to set the area of the widget for every
+ tooltip.
+
+ * Shared/WebHitTestResult.cpp:
+ (WebKit::WebHitTestResult::Data::encode): Encode elementBoundingBox.
+ (WebKit::WebHitTestResult::Data::decode): Decode elementBoundingBox.
+ * Shared/WebHitTestResult.h:
+ (Data): Add elementBoundingBox to WebHitTestResult::Data.
+ (WebKit::WebHitTestResult::Data::elementBoundingBoxInWindowCoordinates):
+ Get the bounding box of the inner non shared node of the hit test
+ result in window coordinates.
+ (WebKit::WebHitTestResult::Data::Data):
+ (WebKit::WebHitTestResult::elementBoundingBox):
+ (WebHitTestResult):
+ * UIProcess/API/gtk/WebKitWebView.cpp:
+ (webkitWebViewMouseTargetChanged): Call webkitWebViewBaseSetTooltipArea.
+ * UIProcess/API/gtk/WebKitWebViewBase.cpp:
+ (webkitWebViewBaseQueryTooltip): Use the tooltipArea if it's not empty.
+ (webkitWebViewBaseSetTooltipArea): Set the tooltipArea.
+ * UIProcess/API/gtk/WebKitWebViewBasePrivate.h:
+
+2012-09-18 Tor Arne Vestbø <tor.arne.vestbo@nokia.com>
+
+ [Qt] Fix build without the QtQuick module
+
+ Reviewed by Simon Hausmann.
+
+ * Target.pri:
+
+2012-09-17 Eunmi Lee <eunmi15.lee@samsung.com>
+
+ [EFL][WK2] Add NativeWebTouchEvent and handle the Touch event.
+ https://bugs.webkit.org/show_bug.cgi?id=90662
+
+ Reviewed by Gyuyoung Kim.
+
+ Implement codes to handle touch event for WebKit2 EFL port.
+ Additionally, types and structure for touch event are defined because
+ they are not in the Evas.
+
+ * PlatformEfl.cmake:
+ * Shared/NativeWebTouchEvent.h:
+ (NativeWebTouchEvent):
+ * Shared/efl/NativeWebTouchEventEfl.cpp: Added.
+ (WebKit):
+ (WebKit::NativeWebTouchEvent::NativeWebTouchEvent):
+ * Shared/efl/WebEventFactory.cpp:
+ (WebKit):
+ (WebKit::typeForTouchEvent):
+ (WebKit::WebEventFactory::createWebTouchEvent):
+ * Shared/efl/WebEventFactory.h:
+ (WebEventFactory):
+ * UIProcess/API/efl/ewk_touch.h: Added.
+
+2012-09-17 Csaba Osztrogonác <ossy@webkit.org>
+
+ Unreviewed, rolling out r128826 and r128813.
+
+ * WebProcess/Plugins/Netscape/JSNPObject.cpp:
+ (WebKit):
+ (WebKit::JSNPObject::JSNPObject):
+ * WebProcess/Plugins/Netscape/JSNPObject.h:
+ (JSNPObject):
+
+2012-09-17 Kent Tamura <tkent@chromium.org>
+
+ Export RuntimeEnabledFeatures::isLangAttributeAwareFormControlUIEnabled correctly
+ https://bugs.webkit.org/show_bug.cgi?id=96855
+
+ Reviewed by Hajime Morita.
+
+ * win/WebKit2.def: Remove a symbol
+ * win/WebKit2CFLite.def: ditto.
+
+2012-09-17 Byungwoo Lee <bw80.lee@samsung.com>
+
+ [EFL][WK2] Add javascript popup API.
+ https://bugs.webkit.org/show_bug.cgi?id=95672
+
+ Reviewed by Gyuyoung Kim.
+
+ Add smart class member function for javascript alert(), confirm() and prompt().
+
+ * UIProcess/API/efl/ewk_view.cpp:
+ (ewk_view_run_javascript_alert):
+ (ewk_view_run_javascript_confirm):
+ (ewk_view_run_javascript_prompt):
+ * UIProcess/API/efl/ewk_view.h:
+ * UIProcess/API/efl/ewk_view_private.h:
+ * UIProcess/API/efl/ewk_view_ui_client.cpp:
+ (runJavaScriptAlert):
+ (runJavaScriptConfirm):
+ (runJavaScriptPrompt):
+ (ewk_view_ui_client_attach):
+ * UIProcess/API/efl/tests/test_ewk2_view.cpp:
+ Added unit test for javascript popup smart class member function.
+ (checkAlert):
+ (TEST_F):
+ (checkConfirm):
+ (checkPrompt):
+
+2012-09-17 Regina Chung <heejin.r.chung@samsung.com>
+
+ [EFL][WK2] Regression (r128163)
+ https://bugs.webkit.org/show_bug.cgi?id=96610
+
+ Reviewed by Gyuyoung Kim.
+
+ While removing compile warnings r128163 changed the logic of code for entering
+ accelerated compositing mode, resulting in never being able to enter it.
+ Changed back to the correct code and fixed the compile warning by using an
+ appropriate EINA macro.
+
+ * UIProcess/API/efl/ewk_view.cpp:
+ (ewk_view_accelerated_compositing_mode_enter): Changed EINA_SAFETY_ON_NULL_RETURN_VAL to *if* condition statement.
+
+2012-09-17 Sam Weinig <sam@webkit.org>
+
+ Fix the Snow Leopard build.
+
+ * PluginProcess/mac/PluginProcessMac.mm:
+ (WebKit::PluginProcess::platformInitialize):
+
+2012-09-17 Sam Weinig <sam@webkit.org>
+
+ Add experimental code to enter a sandbox for a plug-in.
+ Based on a patch by Ivan Krstić.
+ <rdar://problem/11823151>
+
+ Reviewed by Anders Carlsson.
+
+ Enter a sandbox for a plug-in if a sandbox profile is found in /usr/share/sandbox/ that
+ has the plug-ins bundle identifier for a name.
+
+ * PluginProcess/mac/PluginProcessMac.mm:
+ (WebKit::initializeSandbox):
+ (WebKit::PluginProcess::platformInitialize):
+ Enter the sandbox provided if a profile can be found.
+
+ * WebProcess/Plugins/Netscape/mac/NetscapeSandboxFunctions.h:
+ * WebProcess/Plugins/Netscape/mac/NetscapeSandboxFunctions.mm:
+ (enterSandbox):
+ Factor out the core sandbox entering logic (so if can be used above) and make sure
+ that Remote Save Panel is enabled.
+
+2012-09-17 Mark Hahnenberg <mhahnenberg@apple.com>
+
+ Fixing the build after http://trac.webkit.org/changeset/128813
+
+ * WebProcess/Plugins/Netscape/JSNPObject.cpp:
+ (WebKit):
+ (WebKit::JSNPObject::JSNPObject):
+ * WebProcess/Plugins/Netscape/JSNPObject.h:
+ (JSNPObject):
+
+2012-09-17 Anders Carlsson <andersca@apple.com>
+
+ Crash if we fail to allocate memory for the argument encoder buffer.
+ https://bugs.webkit.org/show_bug.cgi?id=88367
+
+ Reviewed by Andreas Kling.
+ <rdar://problem/11488239>
+
+ Since there's no way to recover from malloc returning null here, just crash.
+
+ * Platform/CoreIPC/ArgumentEncoder.cpp:
+ (CoreIPC::ArgumentEncoder::grow):
+
+2012-09-17 Beth Dakin <bdakin@apple.com>
+
+ https://bugs.webkit.org/show_bug.cgi?id=96936
+ Opt into layers for fixed positioned elements for TiledDrawingArea
+
+ Reviewed by Tim Horton.
+
+ This code already exists in DrawingAreaImpl, and we need it for
+ TiledCoreAnimationDrawingArea as well.
+ * WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.mm:
+ (WebKit::TiledCoreAnimationDrawingArea::updatePreferences):
+
+2012-09-17 Anders Carlsson <andersca@apple.com>
+
+ Don't load a blocked plug-in if a non-blocked version of the same plug-in exists
+ https://bugs.webkit.org/show_bug.cgi?id=96933
+ <rdar://problem/12206720>
+
+ Reviewed by Andreas Kling.
+
+ If a plug-in with the same bundle identifier already exists and it's blocked, remove it and replace it
+ with the other version.
+
+ * UIProcess/Plugins/mac/PluginInfoStoreMac.mm:
+ (WebKit::PluginInfoStore::shouldUsePlugin):
+
+2012-09-17 Tor Arne Vestbø <tor.arne.vestbo@nokia.com>
+
+ [Qt] Remove 'using namespace WebCore' from header file
+
+ Broke the build on Mac OS X by causing clashes between Fixed from
+ /usr/include/MacTypes.h and Source/WebCore/platform/Length.h.
+
+ Reviewed by Simon Hausmann..
+
+ * UIProcess/PageViewportController.cpp:
+ * UIProcess/PageViewportController.h:
+ (PageViewportController):
+ (WebKit::PageViewportController::contentsLayoutSize):
+ (WebKit):
+ * UIProcess/qt/PageViewportControllerClientQt.cpp:
+ * UIProcess/qt/PageViewportControllerClientQt.h:
+ (PageViewportControllerClientQt):
+
+2012-09-15 Vivek Galatage <vivekgalatage@gmail.com>
+
+ WinCairo build fix due to missing symbols for setImagesEnabled and setStorageBlockingPolicy
+ https://bugs.webkit.org/show_bug.cgi?id=96866
+
+ Reviewed by Kentaro Hara.
+
+ Adding missing symbol defines in the def file to fix the build break
+ for WinCairo
+
+ * win/WebKit2CFLite.def:
+
+2012-09-15 Jinwoo Song <jinwoo7.song@samsung.com>
+
+ [EFL][WK2] Provide implementation for PageClientImpl::processDidCrash()
+ https://bugs.webkit.org/show_bug.cgi?id=96197
+
+ Reviewed by Gyuyoung Kim.
+
+ WebKit2 EFL does not have an implementation for PageClientImpl::processDidCrash().
+ So when WebProcess has crashed, UI process does nothing and is left alone as it is.
+
+ This patch checks if loading was ongoing, if so, set the load progress as 1.
+ Then send a signal callback "webprocess,crashed" for an application to handle it.
+ If the application does not handle the crash event, show an Eina Log warning message
+ with a url at web process exit and load an error page.
+
+ * UIProcess/API/efl/PageClientImpl.cpp:
+ (WebKit::PageClientImpl::processDidCrash):
+ * UIProcess/API/efl/ewk_private.h:
+ * UIProcess/API/efl/ewk_view.cpp:
+ (ewk_view_webprocess_crashed):
+ * UIProcess/API/efl/ewk_view.h:
+ * UIProcess/API/efl/ewk_view_private.h:
+
+2012-09-15 Pierre Rossi <pierre.rossi@gmail.com>
+
+ [Qt] QDoc fixes for Qt 5 documentation
+ https://bugs.webkit.org/show_bug.cgi?id=96796
+
+ Reviewed by Simon Hausmann.
+
+ Fixup miscellaneous qdoc commands syntax.
+
+ * UIProcess/API/qt/qquickwebview.cpp:
+ * UIProcess/API/qt/qwebloadrequest.cpp:
+
+2012-09-14 Gyuyoung Kim <gyuyoung.kim@samsung.com>
+
+ Add *explicit* keyword to constructors to WebKit2/UIProcess
+ https://bugs.webkit.org/show_bug.cgi?id=96732
+
+ Reviewed by Kentaro Hara.
+
+ As a step of *explicit* cleanup for constructors which have only one parameter,
+ *explicit* is added to WebKit2/UIProcess in order to avoid implicit type conversion.
+
+ * UIProcess/Authentication/AuthenticationDecisionListener.h:
+ (AuthenticationDecisionListener):
+ * UIProcess/Authentication/WebCredential.h:
+ (WebCredential):
+ * UIProcess/Authentication/WebProtectionSpace.h:
+ (WebProtectionSpace):
+ * UIProcess/GenericCallback.h:
+ (WebKit::CallbackBase::CallbackBase):
+ * UIProcess/InspectorServer/WebSocketServer.h:
+ * UIProcess/ResponsivenessTimer.h:
+ (ResponsivenessTimer):
+ * UIProcess/WebApplicationCacheManagerProxy.h:
+ (WebApplicationCacheManagerProxy):
+ * UIProcess/WebBackForwardList.h:
+ (WebBackForwardList):
+ * UIProcess/WebContextUserMessageCoders.h:
+ (WebKit::WebContextUserMessageEncoder::WebContextUserMessageEncoder):
+ * UIProcess/WebFullScreenManagerProxy.h:
+ (WebFullScreenManagerProxy):
+ * UIProcess/WebGrammarDetail.h:
+ (WebGrammarDetail):
+ * UIProcess/WebInspectorProxy.h:
+ (WebInspectorProxy):
+ * UIProcess/WebKeyValueStorageManagerProxy.h:
+ (WebKeyValueStorageManagerProxy):
+ * UIProcess/WebMediaCacheManagerProxy.h:
+ (WebMediaCacheManagerProxy):
+ * UIProcess/WebNavigationData.h:
+ (WebNavigationData):
+ * UIProcess/WebOpenPanelResultListenerProxy.h:
+ (WebOpenPanelResultListenerProxy):
+ * UIProcess/WebPopupMenuProxy.h:
+ (WebKit::WebPopupMenuProxy::WebPopupMenuProxy):
+ * UIProcess/WebPreferences.h:
+ (WebPreferences):
+
+2012-09-14 Beth Dakin <bdakin@apple.com>
+
+ https://bugs.webkit.org/show_bug.cgi?id=96846
+ Tests failing on WK2 bots after giving fixed positioning its own
+ stacking context
+
+ Reviewed by Geoffrey Garen.
+
+ Tests are failing because I checked in updated results that expect
+ fixed positioning to create a stacking context. However,
+ WebKitTestRunner does not enable ScrollingCoordinator, so the code
+ that I added to enable stacking contexts for fixedPos is never
+ actually running. This patch moves that code to a place where it will
+ run for the testing tools, which matches the patch for WK1.
+ * WebProcess/WebPage/DrawingAreaImpl.cpp:
+ (WebKit::DrawingAreaImpl::updatePreferences):
+ * WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.mm:
+ (WebKit::TiledCoreAnimationDrawingArea::TiledCoreAnimationDrawingArea):
+
+2012-09-14 Julien Chaffraix <jchaffraix@webkit.org>
+
+ Revert r127457 and following fixes due to several hit-testing regressions
+ https://bugs.webkit.org/show_bug.cgi?id=96830
+
+ Reviewed by Antonio Gomes.
+
+ This change reverts r127457, r127863 and r128505.
+
+ * win/WebKit2.def:
+ * win/WebKit2CFLite.def:
+
+2012-09-14 Adam Barth <abarth@webkit.org>
+
+ Remove webkitPostMessage
+ https://bugs.webkit.org/show_bug.cgi?id=96577
+
+ Reviewed by Ojan Vafai.
+
+ Add ENABLE_LEGACY_VENDOR_PREFIXES flag.
+
+ * Configurations/FeatureDefines.xcconfig:
+
+2012-09-14 Jeffrey Pfau <jpfau@apple.com>
+
+ Allow third-party storage blocking setting to change while a page is loaded
+ https://bugs.webkit.org/show_bug.cgi?id=95790
+
+ Reviewed by Brady Eidson.
+
+ Inform plugins about changes to the storage blocking policy by way of the private browsing feature.
+
+ * PluginProcess/PluginControllerProxy.cpp:
+ (WebKit::PluginControllerProxy::storageBlockingStateChanged):
+ (WebKit):
+ * PluginProcess/PluginControllerProxy.h:
+ (PluginControllerProxy):
+ * PluginProcess/PluginControllerProxy.messages.in: Add WK2 message for storageBlockingStateChanged.
+ * WebProcess/Plugins/Netscape/NetscapePlugin.cpp:
+ (WebKit::NetscapePlugin::storageBlockingStateChanged):
+ (WebKit):
+ (WebKit::NetscapePlugin::privateBrowsingStateChanged):
+ (WebKit::NetscapePlugin::updateNPNPrivateMode): Set plugin's private browsing if either private browsing or storage blocking is enabled.
+ * WebProcess/Plugins/Netscape/NetscapePlugin.h:
+ (NetscapePlugin):
+ * WebProcess/Plugins/PDF/BuiltInPDFView.h:
+ (BuiltInPDFView):
+ * WebProcess/Plugins/PDF/BuiltInPDFView.mm: Treat storageBlockingStateChanged as a no-op.
+ (WebKit::BuiltInPDFView::storageBlockingStateChanged):
+ (WebKit):
+ * WebProcess/Plugins/Plugin.h: Add pure virtual storageBlockingStateChanged method.
+ (Plugin):
+ * WebProcess/Plugins/PluginProxy.cpp:
+ (WebKit::PluginProxy::storageBlockingStateChanged):
+ (WebKit):
+ * WebProcess/Plugins/PluginProxy.h:
+ (PluginProxy):
+ * WebProcess/Plugins/PluginView.cpp:
+ (WebKit::PluginView::storageBlockingStateChanged):
+ (WebKit):
+ * WebProcess/Plugins/PluginView.h:
+ (PluginView):
+ * win/WebKit2.def:
+
+2012-09-14 Beth Dakin <bdakin@apple.com>
+
+ https://bugs.webkit.org/show_bug.cgi?id=96688
+ Put position:fixed elements in their own layers and allow them to
+ create a stacking context
+ -and corresponding-
+ <rdar://problem/11467961>
+
+ Reviewed by Simon Fraser.
+
+ Soon we want pages with fixed positioned elements to be able to be
+ scrolled by the ScrollingCoordinator. As a part of that work, we have
+ to composite fixed position elements, and we have to allow those
+ elements to create a stacking context.
+ * WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.mm:
+ (WebKit::TiledCoreAnimationDrawingArea::TiledCoreAnimationDrawingArea):
+
+2012-09-14 Bo Liu <boliu@chromium.org>
+
+ Add in-place reload behavior to ImagesEnabled setting
+ https://bugs.webkit.org/show_bug.cgi?id=95478
+
+ Reviewed by Adam Barth.
+
+ Export WebCore::Settings::setImagesEnabled symbol.
+
+ * win/WebKit2.def:
+
+2012-09-14 Sudarsana Nagineni <sudarsana.nagineni@linux.intel.com>
+
+ [EFL] RefPtr<Evas_Object> unit tests fails
+ https://bugs.webkit.org/show_bug.cgi?id=96809
+
+ Reviewed by Kenneth Rohde Christiansen.
+
+ Added missing return.
+
+ * UIProcess/API/efl/tests/UnitTestUtils/EWK2UnitTestBase.h:
+ (EWK2UnitTest::EWK2UnitTestBase::canvas):
+
+2012-09-14 Christophe Dumez <christophe.dumez@intel.com>
+
+ WebKitTestRunner needs layoutTestController.dumpDatabaseCallbacks
+ https://bugs.webkit.org/show_bug.cgi?id=57570
+
+ Reviewed by Kenneth Rohde Christiansen.
+
+ Add new didExceedDatabaseQuota callback to WKBundlePageUIClient
+ and call it from WebChromeClient::exceededDatabaseQuota().
+ This is needed by WebKitTestRunner to dump information about
+ database callbacks.
+
+ * Shared/APIClientTraits.h:
+ * WebProcess/InjectedBundle/API/c/WKBundlePage.h:
+ * WebProcess/InjectedBundle/InjectedBundle.cpp:
+ (WebKit::InjectedBundle::setDatabaseQuota): Call WebDatabaseManager::setQuotaForOrigin()
+ with "file__0" instead of "file:///" as origin identifier. WebDatabaseManager expects
+ a database identifier, not a string representation of the security origin. "file__0" is
+ the string that is used as databaseIdentifier of local files. This bug was causing the
+ database quota not to be set. The test cases would therefore fail due to the quota being
+ 0 instead of the value explicitly set.
+ * WebProcess/InjectedBundle/InjectedBundlePageUIClient.cpp:
+ (WebKit::InjectedBundlePageUIClient::didExceedDatabaseQuota):
+ (WebKit):
+ * WebProcess/InjectedBundle/InjectedBundlePageUIClient.h:
+ (InjectedBundlePageUIClient):
+ * WebProcess/WebCoreSupport/WebChromeClient.cpp:
+ (WebKit::WebChromeClient::exceededDatabaseQuota):
+
+2012-09-14 Christophe Dumez <christophe.dumez@intel.com>
+
+ WebKitTestRunner needs layoutTestController.setStopProvisionalFrameLoads
+ https://bugs.webkit.org/show_bug.cgi?id=42691
+
+ Reviewed by Kenneth Rohde Christiansen.
+
+ Add WKBundleFrame private API to stop loading of a frame.
+ This is needed by WebKitTestRunner to implement
+ testrunner.setStopProvisionalFrameLoads.
+
+ Original patch by Alexey Proskuryakov.
+
+ * WebProcess/InjectedBundle/API/c/WKBundleFrame.cpp:
+ (WKBundleFrameStopLoading):
+ * WebProcess/InjectedBundle/API/c/WKBundleFramePrivate.h:
+ * WebProcess/WebPage/WebFrame.cpp:
+ (WebKit::WebFrame::stopLoading):
+ (WebKit):
+ * WebProcess/WebPage/WebFrame.h:
+ (WebFrame):
+
+2012-09-14 Kenneth Rohde Christiansen <kenneth@webkit.org>
+
+ [EFL] Add unit test for RefPtr<Evas_Object>
+ https://bugs.webkit.org/show_bug.cgi?id=96776
+
+ Reviewed by Simon Hausmann.
+
+ Basic testing of the new EFL specific RefPtr type.
+
+ * PlatformEfl.cmake:
+ * UIProcess/API/efl/tests/UnitTestUtils/EWK2UnitTestBase.h:
+ (EWK2UnitTest::EWK2UnitTestBase::backingStore):
+ (EWK2UnitTest::EWK2UnitTestBase::canvas):
+
+ Add some new accessors for Ecore_Evas and Evas*.
+
+ * UIProcess/API/efl/tests/test_ewk2_refptr_evas_object.cpp: Added.
+ (TEST_F):
+
+2012-09-14 Tor Arne Vestbø <tor.arne.vestbo@nokia.com>
+
+ [Qt] Move .mm file to OBJECTIVE_SOURCES
+
+ Reviewed by Simon Hausmann.
+
+ * Target.pri:
+
+2012-09-14 Sudarsana Nagineni <sudarsana.nagineni@linux.intel.com>
+
+ WebKitTestRunner needs layoutTestController.setTabKeyCyclesThroughElements
+ https://bugs.webkit.org/show_bug.cgi?id=42687
+
+ Reviewed by Kenneth Rohde Christiansen.
+
+ Implement testRunner.setTabKeyCyclesThroughElements for
+ WebKitTestRunner.
+
+ * WebProcess/InjectedBundle/API/c/WKBundle.cpp:
+ (WKBundleSetTabKeyCyclesThroughElements):
+ * WebProcess/InjectedBundle/API/c/WKBundlePrivate.h:
+ * WebProcess/InjectedBundle/InjectedBundle.cpp:
+ (WebKit::InjectedBundle::setTabKeyCyclesThroughElements):
+ (WebKit):
+ * WebProcess/InjectedBundle/InjectedBundle.h:
+ (InjectedBundle):
+
+2012-09-14 Keishi Hattori <keishi@webkit.org>
+
+ Add runtime flag that enables lang attribute for form controls in LayoutTests
+ https://bugs.webkit.org/show_bug.cgi?id=96636
+
+ Reviewed by Kent Tamura.
+
+ * win/WebKit2.def:
+ * win/WebKit2CFLite.def:
+
+2012-09-14 Grzegorz Czajkowski <g.czajkowski@samsung.com>
+
+ Add method to get the list of all available dictionaries
+ https://bugs.webkit.org/show_bug.cgi?id=96518
+
+ Reviewed by Carlos Garcia Campos.
+
+ * UIProcess/API/gtk/WebKitTextChecker.cpp:
+ (WebKitTextChecker::getSpellCheckingLanguages):
+ Update the method name that is called inside getSpellCheckingLanguages.
+ This replace doesn't affect any on API changes.
+
+2012-09-13 KwangYong Choi <ky0.choi@samsung.com>
+
+ [WK2] Add color picker API support for WebKit2
+ https://bugs.webkit.org/show_bug.cgi?id=95058
+
+ Reviewed by Gyuyoung Kim.
+
+ Add support for color picker API to WebKit2.
+
+ * CMakeLists.txt:
+ * GNUmakefile.list.am:
+ * Shared/API/c/WKBase.h:
+ * Shared/APIClientTraits.cpp:
+ (WebKit):
+ * Shared/APIClientTraits.h:
+ * Shared/APIObject.h:
+ * Target.pri:
+ * UIProcess/API/C/WKAPICast.h:
+ (WebKit):
+ * UIProcess/API/C/WKColorPickerResultListener.cpp: Added.
+ (WKColorPickerResultListenerGetTypeID):
+ (WKColorPickerResultListenerColorSet):
+ * UIProcess/API/C/WKColorPickerResultListener.h: Added.
+ * UIProcess/API/C/WKPage.h:
+ * UIProcess/API/gtk/WebKitUIClient.cpp:
+ (attachUIClientToView):
+ * UIProcess/WebColorChooserProxy.cpp: Added.
+ (WebKit):
+ (WebKit::WebColorChooserProxy::WebColorChooserProxy):
+ (WebKit::WebColorChooserProxy::~WebColorChooserProxy):
+ (WebKit::WebColorChooserProxy::endChooser):
+ (WebKit::WebColorChooserProxy::setSelectedColor):
+ * UIProcess/WebColorChooserProxy.h:
+ (WebColorChooserProxy):
+ (WebKit::WebColorChooserProxy::create):
+ * UIProcess/WebColorPickerResultListenerProxy.cpp: Added.
+ (WebKit):
+ (WebKit::WebColorPickerResultListenerProxy::WebColorPickerResultListenerProxy):
+ (WebKit::WebColorPickerResultListenerProxy::~WebColorPickerResultListenerProxy):
+ (WebKit::WebColorPickerResultListenerProxy::invalidate):
+ (WebKit::WebColorPickerResultListenerProxy::setColor):
+ * UIProcess/WebColorPickerResultListenerProxy.h: Added.
+ (WebKit):
+ (WebColorPickerResultListenerProxy):
+ (WebKit::WebColorPickerResultListenerProxy::create):
+ (WebKit::WebColorPickerResultListenerProxy::type):
+ * UIProcess/WebPageProxy.cpp:
+ (WebKit::WebPageProxy::close):
+ (WebKit::WebPageProxy::showColorChooser):
+ (WebKit::WebPageProxy::didEndColorChooser):
+ (WebKit::WebPageProxy::processDidCrash):
+ * UIProcess/WebPageProxy.h:
+ (WebKit):
+ (WebPageProxy):
+ * UIProcess/WebUIClient.cpp:
+ (WebKit):
+ (WebKit::WebUIClient::showColorPicker):
+ (WebKit::WebUIClient::hideColorPicker):
+ * UIProcess/WebUIClient.h:
+ (WebKit):
+ (WebUIClient):
+ * WebKit2.xcodeproj/project.pbxproj:
+ * win/WebKit2.vcproj:
+ * win/WebKit2Generated.make:
+
+2012-09-13 KwangYong Choi <ky0.choi@samsung.com>
+
+ [EFL][WK2] Implement missing initializeLogChannel function
+ https://bugs.webkit.org/show_bug.cgi?id=96478
+
+ Reviewed by Gyuyoung Kim.
+
+ Implemented log channel initialization function for EFL platform in WebKit2.
+
+ * Platform/Logging.cpp:
+ (WebKit):
+ * Platform/Logging.h:
+ (WebKit):
+ * Platform/efl/LoggingEfl.cpp: Added.
+ (WebKit):
+ (WebKit::initializeLogChannel): Channel is initialized if its name is found in WEBKIT_DEBUG.
+ * PlatformEfl.cmake:
+
+2012-09-13 Mark Rowe <mrowe@apple.com>
+
+ <rdar://problem/12283706> WebKit looks for some files on the system even when building against an SDK.
+
+ Reviewed by David Kilzer.
+
+ If an SDK is being used, pass it through to our custom invocations of the preprocessor.
+
+ * DerivedSources.make:
+
+2012-09-13 Brent Fulgham <bfulgham@webkit.org>
+
+ [WinCairo] Unreviewed build fix for export declarations.
+
+ New entries were added to the standard Windows export definition
+ file, but were not added to the WinCairo version, breaking the build.
+
+ * win/WebKit2CFLite.def: Incoproate changes from WebKit2.def file.
+
+2012-09-13 Tim Horton <timothy_horton@apple.com>
+
+ Add optional debug logging when we fall into/out of threaded scrolling
+ https://bugs.webkit.org/show_bug.cgi?id=93898
+ <rdar://problem/12089098>
+
+ Reviewed by Simon Fraser.
+
+ Update the scrolling tree's scrollingPerformanceLoggingEnabled preference
+ before the early-return if we don't have layer debugging borders on.
+
+ * WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.mm:
+ (WebKit::TiledCoreAnimationDrawingArea::updatePreferences):
+
+2012-09-13 Sudarsana Nagineni <sudarsana.nagineni@linux.intel.com>
+
+ [WK2][WTR] WebKitTestRunner needs testRunner.callShouldCloseOnWebView
+ https://bugs.webkit.org/show_bug.cgi?id=96366
+
+ Reviewed by Anders Carlsson.
+
+ Implement testRunner.callShouldCloseOnWebView for WebKitTestRunner
+ by calling shouldClose() on the FrameLoader.
+
+ * WebProcess/InjectedBundle/API/c/WKBundleFrame.cpp:
+ (WKBundleFrameCallShouldCloseOnWebView):
+ * WebProcess/InjectedBundle/API/c/WKBundleFrame.h:
+
+2012-09-13 Thiago Marcos P. Santos <thiago.santos@intel.com>
+
+ [EFL] Assertion reached on RenderThemeEFL when setting a theme to an invalid path
+ https://bugs.webkit.org/show_bug.cgi?id=96649
+
+ Reviewed by Kenneth Rohde Christiansen.
+
+ Updated the alternative test theme file. It is basically
+ the default theme with extra padding on the button widget as
+ specified by the comments on the test case.
+
+ * UIProcess/API/efl/tests/resources/big_button_theme.edj:
+
+2012-09-13 Balazs Kelemen <kbalazs@webkit.org>
+
+ [WK2] LayerTreeCoordinator should release unused UpdatedAtlases
+ https://bugs.webkit.org/show_bug.cgi?id=95072
+
+ Reviewed by Jocelyn Turcotte.
+
+ Release graphic buffers that haven't been used for a while in order to save memory.
+ This way we can give back memory to the system when no user interaction happens
+ after a period of time, for example when we are in the background.
+
+ * Shared/ShareableBitmap.h:
+ * WebProcess/WebPage/CoordinatedGraphics/LayerTreeCoordinator.cpp:
+ (WebKit::LayerTreeCoordinator::LayerTreeCoordinator):
+ (WebKit::LayerTreeCoordinator::beginContentUpdate):
+ (WebKit):
+ (WebKit::LayerTreeCoordinator::scheduleReleaseInactiveAtlases):
+ (WebKit::LayerTreeCoordinator::releaseInactiveAtlasesTimerFired):
+ * WebProcess/WebPage/CoordinatedGraphics/LayerTreeCoordinator.h:
+ (LayerTreeCoordinator):
+ * WebProcess/WebPage/UpdateAtlas.cpp:
+ (WebKit::UpdateAtlas::UpdateAtlas):
+ (WebKit::UpdateAtlas::didSwapBuffers):
+ Don't call buildLayoutIfNeeded here. It's enought to call it in beginPaintingOnAvailableBuffer
+ and this way we can track whether this atlas is used with m_areaAllocator.
+ (WebKit::UpdateAtlas::beginPaintingOnAvailableBuffer):
+ * WebProcess/WebPage/UpdateAtlas.h:
+ (WebKit::UpdateAtlas::addTimeInactive):
+ (WebKit::UpdateAtlas::isInactive):
+ (WebKit::UpdateAtlas::isInUse):
+ (UpdateAtlas):
+
+2012-09-13 Lauro Neto <lauro.neto@openbossa.org>
+
+ [Qt][WK2] fast/forms/access-key-for-all-elements.html fails
+ https://bugs.webkit.org/show_bug.cgi?id=73917
+
+ Reviewed by Simon Hausmann.
+
+ Access-key tests were failing due to hardcoded Mac OS X in the
+ Qt WK2 user agent string. This commit moves the WK1 implementation
+ to a shared one to be used by both versions.
+
+ Use the shared implementation instead of hardcoding the user agent.
+
+ * UIProcess/qt/WebPageProxyQt.cpp:
+ (WebKit::WebPageProxy::standardUserAgent):
+
+2012-09-13 Simon Hausmann <simon.hausmann@nokia.com>
+
+ [Qt] Fix build of WTR and the QML2 plugin on Windows
+ https://bugs.webkit.org/show_bug.cgi?id=96652
+
+ Reviewed by Tor Arne Vestbø.
+
+ Some components that we build such as WTR or the QML2 plugin include
+ WebKit2 header files as well as WebKit2's config.h. Only the include
+ paths of WebKit2 are required for that at the moment (WEBKIT +=
+ webkit2). Only on Windows WebKit2's config.h also includes
+ WebCore/config.h, which in turn requires to have WebCore/platform in
+ your include search path. That in turn means that any component that
+ wants to use WebKit2 headers also needs the WebCore headers, but only
+ one Windows. It turns out that for the Qt build we don't need it, so
+ skip it in our configuration and make the include path requirement
+ the same across all the platforms we build.
+
+ * config.h:
+
+2012-09-13 Andras Becsi <andras.becsi@nokia.com>
+
+ [Qt][WK2] REGRESSION(r128245): It made zillion API tests fail
+ https://bugs.webkit.org/show_bug.cgi?id=96531
+
+ Reviewed by Jocelyn Turcotte.
+
+ Preferences have to be updated after the drawing area was created
+ for compositing mode to be set.
+
+ * WebProcess/WebPage/WebPage.cpp:
+ (WebKit::WebPage::WebPage):
+
+2012-09-13 Simon Hausmann <simon.hausmann@nokia.com>
+
+ [Qt] Fix UIProcess build with Qt on Windows
+ https://bugs.webkit.org/show_bug.cgi?id=96635
+
+ Reviewed by Csaba Osztrogonác.
+
+ Enabling setShouldCloseConnectionOnProcessTermination on the connection
+ is something that is only implemented in ConnectionUnix, not
+ ConnectionWin.cpp, where appears to be built-in functionality.
+
+ * UIProcess/WebConnectionToWebProcess.cpp:
+ (WebKit::WebConnectionToWebProcess::WebConnectionToWebProcess):
+
+2012-09-13 Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
+
+ [Qt] Fix build against namespaced Qt
+
+ Reviewed by Tor Arne Vestbø.
+
+ * UIProcess/qt/PageViewportControllerClientQt.h:
+
+2012-09-13 Michał Pakuła vel Rutka <m.pakula@samsung.com>
+
+ [EFL][Qt][WK2] Implement shared undo controller for EFL and Qt port.
+ https://bugs.webkit.org/show_bug.cgi?id=92504
+
+ Reviewed by Kenneth Rohde Christiansen.
+
+ EFL port needs an undo controller similiar to one from Qt port. Instead of
+ duplicating the code existing class was renamed and moved to UIProcess
+ directory.
+
+ * PlatformEfl.cmake:
+ * Target.pri:
+ * UIProcess/API/efl/PageClientImpl.cpp:
+ (WebKit::PageClientImpl::registerEditCommand):
+ (WebKit::PageClientImpl::clearAllEditCommands):
+ (WebKit::PageClientImpl::canUndoRedo):
+ (WebKit::PageClientImpl::executeUndoRedo):
+ * UIProcess/API/efl/PageClientImpl.h:
+ (PageClientImpl):
+ * UIProcess/API/qt/qquickwebview_p_p.h:
+ (QQuickWebViewPrivate):
+ * UIProcess/DefaultUndoController.cpp: Renamed from Source/WebKit2/UIProcess/qt/QtWebUndoController.cpp.
+ (WebKit):
+ (WebKit::DefaultUndoController::registerEditCommand):
+ (WebKit::DefaultUndoController::clearAllEditCommands):
+ (WebKit::DefaultUndoController::canUndoRedo):
+ (WebKit::DefaultUndoController::executeUndoRedo):
+ * UIProcess/DefaultUndoController.h: Renamed from Source/WebKit2/UIProcess/qt/QtWebUndoController.h.
+ (WebKit):
+ (DefaultUndoController):
+ * UIProcess/qt/QtPageClient.cpp:
+ (WebKit::QtPageClient::initialize):
+ * UIProcess/qt/QtPageClient.h:
+ (WebKit):
+ (QtPageClient):
+
+2012-09-13 Christophe Dumez <christophe.dumez@intel.com>
+
+ [EFL][WK2] Make _ref() functions return the object
+ https://bugs.webkit.org/show_bug.cgi?id=96604
+
+ Reviewed by Gyuyoung Kim.
+
+ Make _ref() functions return the ref'd object to
+ make them more convenient to use. Also fix their
+ usage to make use of the newly returned value.
+
+ This change is consistent with eina_stringshare_ref()
+ in EFL and g_object_ref() in glib.
+
+ * UIProcess/API/efl/ewk_back_forward_list.cpp:
+ (createEinaList):
+ * UIProcess/API/efl/ewk_back_forward_list_item.cpp:
+ (ewk_back_forward_list_item_ref):
+ * UIProcess/API/efl/ewk_back_forward_list_item.h:
+ * UIProcess/API/efl/ewk_context.cpp:
+ (ewk_context_download_job_add):
+ * UIProcess/API/efl/ewk_download_job.cpp:
+ (ewk_download_job_ref):
+ (ewk_download_job_response_set):
+ * UIProcess/API/efl/ewk_download_job.h:
+ * UIProcess/API/efl/ewk_form_submission_request.cpp:
+ (ewk_form_submission_request_ref):
+ * UIProcess/API/efl/ewk_form_submission_request.h:
+ * UIProcess/API/efl/ewk_intent.cpp:
+ (ewk_intent_ref):
+ * UIProcess/API/efl/ewk_intent.h:
+ * UIProcess/API/efl/ewk_intent_service.cpp:
+ (ewk_intent_service_ref):
+ * UIProcess/API/efl/ewk_intent_service.h:
+ * UIProcess/API/efl/ewk_navigation_policy_decision.cpp:
+ (ewk_navigation_policy_decision_ref):
+ * UIProcess/API/efl/ewk_navigation_policy_decision.h:
+ * UIProcess/API/efl/ewk_url_request.cpp:
+ (ewk_url_request_ref):
+ * UIProcess/API/efl/ewk_url_request.h:
+ * UIProcess/API/efl/ewk_url_response.cpp:
+ (ewk_url_response_ref):
+ * UIProcess/API/efl/ewk_url_response.h:
+ * UIProcess/API/efl/ewk_url_scheme_request.cpp:
+ (ewk_url_scheme_request_ref):
+ * UIProcess/API/efl/ewk_url_scheme_request.h:
+ * UIProcess/API/efl/ewk_view.cpp:
+ (ewk_view_resource_load_initiated):
+ * UIProcess/API/efl/ewk_web_resource.cpp:
+ (ewk_web_resource_ref):
+ * UIProcess/API/efl/ewk_web_resource.h:
+
+2012-09-12 Sheriff Bot <webkit.review.bot@gmail.com>
+
+ Unreviewed, rolling out r127876.
+ http://trac.webkit.org/changeset/127876
+ https://bugs.webkit.org/show_bug.cgi?id=96600
+
+ mouse click doesn't work for spin button if spin button in
+ iframe (Requested by yosin on #webkit).
+
+ * WebProcess/InjectedBundle/InjectedBundleNavigationAction.cpp:
+ (WebKit::InjectedBundleNavigationAction::InjectedBundleNavigationAction):
+ * WebProcess/WebPage/WebPage.cpp:
+ (WebKit::handleContextMenuEvent):
+ (WebKit::WebPage::highlightPotentialActivation):
+ (WebKit::WebPage::findZoomableAreaForPoint):
+ * WebProcess/WebPage/mac/WebPageMac.mm:
+ (WebKit::WebPage::characterIndexForPoint):
+ (WebKit::WebPage::performDictionaryLookupAtLocation):
+ (WebKit::WebPage::shouldDelayWindowOrderingEvent):
+ (WebKit::WebPage::acceptsFirstMouse):
+ * win/WebKit2.def:
+ * win/WebKit2CFLite.def:
+
+2012-09-12 Brady Eidson <beidson@apple.com>
+
+ Assert in NetscapePlugin::destroy() with async plugin init
+ <rdar://problem/12277595> and https://bugs.webkit.org/show_bug.cgi?id=96576
+
+ Reviewed by Anders Carlsson.
+
+ Most of the NPN_* API calls have a plug-in protector during the calls.
+ NPN_Invoke and NPN_InvokeDefault do not.
+
+ * WebProcess/Plugins/Netscape/NetscapeBrowserFuncs.cpp:
+ (WebKit::NPN_Invoke): Protect the plug-in during this call.
+ (WebKit::NPN_InvokeDefault): Ditto.
+
+2012-09-11 Alexey Proskuryakov <ap@apple.com>
+
+ <rdar://problem/12275537> REGRESSION(r127384): Non-existent directories are no longer created for sandbox paths
+ https://bugs.webkit.org/show_bug.cgi?id=96442
+
+ Reviewed by Darin Adler.
+
+ * Shared/SandboxExtension.h:
+ (WebKit::SandboxExtension::createHandleForReadWriteDirectory):
+ * Shared/mac/SandboxExtensionMac.mm:
+ (WebKit::SandboxExtension::createHandleForReadWriteDirectory):
+ Added a function for read-write configuration directories. It matches
+ appendReadwriteSandboxDirectory() function behavior from WebProcessMac.mm.
+
+ * UIProcess/WebContext.cpp:
+ (WebKit::WebContext::createNewWebProcess):
+ * UIProcess/mac/WebContextMac.mm:
+ (WebKit::WebContext::platformInitializeWebProcess):
+ Use the new function for directories that need to be created if they don't exist.
+
+2012-09-12 Christophe Dumez <christophe.dumez@intel.com>
+
+ [WK2][WKTR] TestRunner needs to implement originsWithApplicationCache
+ https://bugs.webkit.org/show_bug.cgi?id=96496
+
+ Reviewed by Kenneth Rohde Christiansen.
+
+ Add Bundle C API to retrieve security origins with
+ an application cache. This is needed by WebKitTestRunner
+ to support originsWithApplicationCache.
+
+ * WebProcess/InjectedBundle/API/c/WKBundle.cpp:
+ (WKBundleCopyOriginsWithApplicationCache):
+ * WebProcess/InjectedBundle/API/c/WKBundlePrivate.h:
+ * WebProcess/InjectedBundle/InjectedBundle.cpp:
+ (WebKit::InjectedBundle::originsWithApplicationCache):
+ (WebKit):
+ * WebProcess/InjectedBundle/InjectedBundle.h:
+ (InjectedBundle):
+
+2012-09-12 Christophe Dumez <christophe.dumez@intel.com>
+
+ [WK2][WKTR] TestRunner needs to implement dumpApplicationCacheDelegateCallbacks
+ https://bugs.webkit.org/show_bug.cgi?id=96374
+
+ Reviewed by Kenneth Rohde Christiansen.
+
+ Add Bundle C API to reset the application cache quota
+ for a given origin.
+
+ Add new reachedApplicationCacheOriginQuota callback
+ to WKBundlePageUIClient which is called from
+ WebChromeClient::reachedApplicationCacheOriginQuota().
+
+ Those are needed by WebKitTestRunner to dump
+ information about the application cache callbacks
+ if instructed to.
+
+ * Shared/APIClientTraits.cpp:
+ (WebKit):
+ * Shared/APIClientTraits.h:
+ * WebProcess/InjectedBundle/API/c/WKBundle.cpp:
+ (WKBundleSetApplicationCacheOriginQuota):
+ (WKBundleResetApplicationCacheOriginQuota):
+ * WebProcess/InjectedBundle/API/c/WKBundlePage.h:
+ * WebProcess/InjectedBundle/API/c/WKBundlePrivate.h:
+ * WebProcess/InjectedBundle/InjectedBundle.cpp:
+ (WebKit::InjectedBundle::resetApplicationCacheOriginQuota):
+ (WebKit):
+ * WebProcess/InjectedBundle/InjectedBundle.h:
+ (InjectedBundle):
+ * WebProcess/InjectedBundle/InjectedBundlePageUIClient.cpp:
+ (WebKit::InjectedBundlePageUIClient::didReachApplicationCacheOriginQuota):
+ (WebKit):
+ * WebProcess/InjectedBundle/InjectedBundlePageUIClient.h:
+ (WebKit):
+ (InjectedBundlePageUIClient):
+ * WebProcess/WebCoreSupport/WebChromeClient.cpp:
+ (WebKit::WebChromeClient::reachedApplicationCacheOriginQuota):
+ * win/WebKit2.def:
+ * win/WebKit2CFLite.def:
+
+2012-09-12 Sheriff Bot <webkit.review.bot@gmail.com>
+
+ Unreviewed, rolling out r128280.
+ http://trac.webkit.org/changeset/128280
+ https://bugs.webkit.org/show_bug.cgi?id=96498
+
+ it broke compilation on windows debug bot (Requested by loislo
+ on #webkit).
+
+ * Shared/APIClientTraits.cpp:
+ (WebKit):
+ * Shared/APIClientTraits.h:
+ * WebProcess/InjectedBundle/API/c/WKBundle.cpp:
+ (WKBundleSetApplicationCacheOriginQuota):
+ * WebProcess/InjectedBundle/API/c/WKBundlePage.h:
+ * WebProcess/InjectedBundle/API/c/WKBundlePrivate.h:
+ * WebProcess/InjectedBundle/InjectedBundle.cpp:
+ * WebProcess/InjectedBundle/InjectedBundle.h:
+ (InjectedBundle):
+ * WebProcess/InjectedBundle/InjectedBundlePageUIClient.cpp:
+ * WebProcess/InjectedBundle/InjectedBundlePageUIClient.h:
+ (WebKit):
+ (InjectedBundlePageUIClient):
+ * WebProcess/WebCoreSupport/WebChromeClient.cpp:
+ (WebKit::WebChromeClient::reachedApplicationCacheOriginQuota):
+
+2012-09-12 Byungwoo Lee <bw80.lee@samsung.com>
+
+ [EFL][WK2] WorkQueue::dispatchAfterDelay() doesn't work properly.
+ https://bugs.webkit.org/show_bug.cgi?id=91179
+
+ Reviewed by Gyuyoung Kim.
+
+ When UI Process is crashed and WebProcess's ecore main loop is very
+ busy or lockup also, watchdocCallback() function in the
+ ChildProcess.cpp doesn't triggered. And this is because of that
+ WorkQueue::dispatchAfterDelay() function uses ecore timer for getting
+ timer event.
+
+ For removing the dependency between the dispatchAfterDelay() and ecore
+ main loop, new timer event mechanism is added to WorkQueue main loop.
+
+ * Platform/WorkQueue.h:
+ (TimerWorkItem):
+ (WorkQueue::TimerWorkItem::dispatch):
+ (WorkQueue::TimerWorkItem::expireTime):
+ (WorkQueue::TimerWorkItem::expired):
+ (WorkQueue):
+ * Platform/efl/WorkQueueEfl.cpp:
+ (WorkQueue::TimerWorkItem::create):
+ (WorkQueue::TimerWorkItem::TimerWorkItem):
+ (WorkQueue::performFileDescriptorWork):
+ (WorkQueue::getCurrentTime):
+ (WorkQueue::getNextTimeOut):
+ (WorkQueue::performTimerWork):
+ (WorkQueue::workQueueThread):
+ (WorkQueue::dispatchAfterDelay):
+
+2012-09-12 Christophe Dumez <christophe.dumez@intel.com>
+
+ [WK2][WKTR] TestRunner needs to implement dumpApplicationCacheDelegateCallbacks
+ https://bugs.webkit.org/show_bug.cgi?id=96374
+
+ Reviewed by Kenneth Rohde Christiansen.
+
+ Add Bundle C API to reset the application cache quota
+ for a given origin.
+
+ Add new reachedApplicationCacheOriginQuota callback
+ to WKBundlePageUIClient which is called from
+ WebChromeClient::reachedApplicationCacheOriginQuota().
+
+ Those are needed by WebKitTestRunner to dump
+ information about the application cache callbacks
+ if instructed to.
+
+ * Shared/APIClientTraits.cpp:
+ (WebKit):
+ * Shared/APIClientTraits.h:
+ * WebProcess/InjectedBundle/API/c/WKBundle.cpp:
+ (WKBundleSetApplicationCacheOriginQuota):
+ (WKBundleResetApplicationCacheOriginQuota):
+ * WebProcess/InjectedBundle/API/c/WKBundlePage.h:
+ * WebProcess/InjectedBundle/API/c/WKBundlePrivate.h:
+ * WebProcess/InjectedBundle/InjectedBundle.cpp:
+ (WebKit::InjectedBundle::resetApplicationCacheOriginQuota):
+ (WebKit):
+ * WebProcess/InjectedBundle/InjectedBundle.h:
+ (InjectedBundle):
+ * WebProcess/InjectedBundle/InjectedBundlePageUIClient.cpp:
+ (WebKit::InjectedBundlePageUIClient::didReachApplicationCacheOriginQuota):
+ (WebKit):
+ * WebProcess/InjectedBundle/InjectedBundlePageUIClient.h:
+ (WebKit):
+ (InjectedBundlePageUIClient):
+ * WebProcess/WebCoreSupport/WebChromeClient.cpp:
+ (WebKit::WebChromeClient::reachedApplicationCacheOriginQuota):
+
+2012-09-12 Mikhail Pozdnyakov <mikhail.pozdnyakov@intel.com>
+
+ [WK2] [WTR] WebKitTestRunner needs TestRunner.workerThreadCount
+ https://bugs.webkit.org/show_bug.cgi?id=96388
+
+ Reviewed by Kenneth Rohde Christiansen.
+
+ Added WKBundleGetWorkerThreadCount() function to Injected Bundle private API.
+
+ * WebProcess/InjectedBundle/API/c/WKBundle.cpp:
+ (WKBundleGetWorkerThreadCount):
+ * WebProcess/InjectedBundle/API/c/WKBundlePrivate.h:
+ * WebProcess/InjectedBundle/InjectedBundle.cpp:
+ (WebKit::InjectedBundle::workerThreadCount): Returns count of worker threads.
+ (WebKit):
+ * WebProcess/InjectedBundle/InjectedBundle.h:
+ (InjectedBundle):
+
+2012-09-12 Darin Adler <darin@apple.com>
+
+ Make NetscapePlugin::m_timers use HashMap<OwnPtr> instead of deleteAllValues
+ https://bugs.webkit.org/show_bug.cgi?id=96469
+
+ Reviewed by Dan Bernstein.
+
+ * WebProcess/Plugins/Netscape/NetscapePlugin.cpp:
+ (WebKit::NetscapePlugin::scheduleTimer): Call release rather than leakPtr when
+ entering a timer into the map.
+ (WebKit::NetscapePlugin::unscheduleTimer): Take an existing timer from the map
+ with the take function rather than the roundabout code needed before.
+ (WebKit::NetscapePlugin::destroy): Remove now-unneeded call to deleteAllValues.
+ * WebProcess/Plugins/Netscape/NetscapePlugin.h: Change the value type for
+ TimerMap to OwnPtr<Timer> rather than Timer*.
+
+2012-09-11 Anders Carlsson <andersca@apple.com>
+
+ Accelerated compositing should always be forced when using the tiled drawing area
+ https://bugs.webkit.org/show_bug.cgi?id=96449
+
+ Reviewed by Andy Estes.
+
+ There's code in WebPage::updatePreferences that will turn off accelerated compositing unless accelerated drawing is enabled.
+ This should only be done in the non-tiled model, so move the code to DrawingAreaImpl::updatePreferences.
+
+ * WebProcess/WebPage/DrawingArea.h:
+ (WebKit::DrawingArea::updatePreferences):
+ This now takes a WebPreferencesStore.
+
+ * WebProcess/WebPage/DrawingAreaImpl.cpp:
+ (WebKit::DrawingAreaImpl::updatePreferences):
+ Move code here from WebPage::updatePreferences.
+
+ * WebProcess/WebPage/WebPage.cpp:
+ (WebKit::WebPage::updatePreferences):
+ Pass the WebPreferencesStore to DrawingArea::updatePreferences.
+
+ * WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.h:
+ * WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.mm:
+ (WebKit::TiledCoreAnimationDrawingArea::TiledCoreAnimationDrawingArea):
+ Remove call to updatePreferences, it's going to be called by the WebPage object later.
+
+ (WebKit::TiledCoreAnimationDrawingArea::updatePreferences):
+ This now takes a WebPreferencesStore.
+
+2012-09-11 Brady Eidson <beidson@apple.com>
+
+ Get rid of the PluginProcessShim for 64-bit plug-ins
+ <rdar://problem/12068560> and https://bugs.webkit.org/show_bug.cgi?id=96415
+
+ Reviewed by Anders Carlsson.
+
+ * PluginProcess/PluginProcess.h:
+ (PluginProcess):
+
+ * PluginProcess/mac/PluginProcessMac.mm:
+ (WebKit::getCurrentEventButtonState):
+ (WebKit):
+ (WebKit::beginModal): Moved from the shim, to be shared with shimmed processes.
+ (WebKit::endModal): Ditto.
+ (WebKit::replacedRunModalForWindow): Only used by Cocoa overrides.
+ (WebKit::PluginProcess::initializeShim):
+ (WebKit::PluginProcess::initializeCocoaOverrides):
+
+ * PluginProcess/mac/PluginProcessMainMac.mm:
+ (WebKit::PluginProcessMain): Only call initializeShim for 32-bit processes, always call initializeCocoaOverrides
+
+ * PluginProcess/mac/PluginProcessShim.h:
+ (PluginProcessShimCallbacks):
+ * PluginProcess/mac/PluginProcessShim.mm:
+ (WebKit):
+ (WebKit::shimModalDialog): Call beginModal/endModal from the shim callbacks.
+ (WebKit::shimAlert): Ditto.
+ (WebKit::WebKitPluginProcessShimInitialize): Don't do the Cocoa overrides as they are now handled outside the shim.
+
+2012-09-11 Marcelo Lira <marcelo.lira@openbossa.org>
+
+ Restore original value of mock scrollbars enabled in InternalSettings
+ https://bugs.webkit.org/show_bug.cgi?id=87680
+
+ Reviewed by Adam Barth.
+
+ Added backup support for mock scrollbars state in
+ InternalSettings::Backup, and removed support for these
+ from Qt's DumpRenderTree.
+
+ * win/WebKit2.def:
+
+2012-09-11 Brady Eidson <beidson@apple.com>
+
+ We should wait longer before killing the PluginProcess.
+ <rdar://problem/12067728> and https://bugs.webkit.org/show_bug.cgi?id=96407
+
+ Reviewed by Anders Carlsson.
+
+ Currently we kill the PluginProcess 15 seconds after the last plug-in is destroyed.
+ This is short enough that most users will have the process killed many times during browsing sessions,
+ which is painful because relaunching the process is I/O and kernel intensive.
+
+ In an ideal world we could keep it around forever until the system tells us resources are running low.
+
+ In reality we do want to kill it occasionally to get a clean slate from any plug-in leaks.
+
+ A reasonable balance for now is to set a minimum lifetime of 30 minutes on the plug-in process and to
+ extend the termination timer from 15 seconds to 10 minutes.
+
+ * PluginProcess/PluginProcess.cpp:
+ (WebKit::PluginProcess::PluginProcess):
+ (WebKit::PluginProcess::initializePluginProcess):
+ (WebKit::PluginProcess::setMinimumLifetime):
+ (WebKit):
+ (WebKit::PluginProcess::minimumLifetimeTimerFired):
+ * PluginProcess/PluginProcess.h:
+ (PluginProcess):
+
+ * Shared/Plugins/PluginProcessCreationParameters.cpp:
+ (WebKit::PluginProcessCreationParameters::encode):
+ (WebKit::PluginProcessCreationParameters::decode):
+ * Shared/Plugins/PluginProcessCreationParameters.h:
+ (PluginProcessCreationParameters):
+
+ * UIProcess/Plugins/PluginProcessProxy.cpp:
+ (WebKit):
+ (WebKit::PluginProcessProxy::didFinishLaunching):
+
+2012-09-11 Jinwoo Song <jinwoo7.song@samsung.com>
+
+ Deploy StringBuilder::appendNumber() and StringBuilder::appendLiteral() in more places
+ https://bugs.webkit.org/show_bug.cgi?id=96344
+
+ Reviewed by Benjamin Poulain.
+
+ Use StringBuilder::appendNumber() instead of String::number(). Also deploy
+ StringBuilder::appendLiteral() instead of String::append() in the surrounding code.
+
+ * Shared/WebMemorySampler.cpp:
+ (WebKit::WebMemorySampler::appendCurrentMemoryUsageToFile):
+ * UIProcess/InspectorServer/WebSocketServerConnection.cpp:
+ (WebKit::WebSocketServerConnection::sendHTTPResponseHeader):
+ * UIProcess/InspectorServer/qt/WebInspectorServerQt.cpp:
+ (WebKit::WebInspectorServer::inspectorUrlForPageID):
+ (WebKit::WebInspectorServer::buildPageList):
+
+2012-09-11 Anders Carlsson <andersca@apple.com>
+
+ Fix speling error in comment.
+
+ * WebProcess/Plugins/Netscape/NetscapePlugin.cpp:
+ (WebKit::isTransparentSilverlightBackgroundValue):
+
+2012-09-11 Raphael Kubo da Costa <rakuco@webkit.org>
+
+ [EFL] Rewrite the EFL-related Find modules
+ https://bugs.webkit.org/show_bug.cgi?id=95237
+
+ Reviewed by Kenneth Rohde Christiansen.
+
+ * CMakeLists.txt: Stop setting the LINK_FLAGS property.
+ * PlatformEfl.cmake: Add libraries and include directories for
+ each Enlightenment Foundation Library used by the port.
+
+2012-09-11 Christophe Dumez <christophe.dumez@intel.com>
+
+ [WK2][WKTR] TestRunner needs to implement setApplicationCacheOriginQuota
+ https://bugs.webkit.org/show_bug.cgi?id=96379
+
+ Reviewed by Kenneth Rohde Christiansen.
+
+ Add Bundle C API to set the application cache quota for a
+ given security origin. This is needed by WebKitTestRunner
+ to implement setApplicationCacheOriginQuota().
+
+ * WebProcess/InjectedBundle/API/c/WKBundle.cpp:
+ (WKBundleSetApplicationCacheOriginQuota):
+ * WebProcess/InjectedBundle/API/c/WKBundlePrivate.h:
+ * WebProcess/InjectedBundle/InjectedBundle.cpp:
+ (WebKit::InjectedBundle::setApplicationCacheOriginQuota):
+ (WebKit):
+ * WebProcess/InjectedBundle/InjectedBundle.h:
+ (InjectedBundle):
+
+2012-09-11 Mikhail Pozdnyakov <mikhail.pozdnyakov@intel.com>
+
+ [WK2][WTR] WebKitTestRunner needs testRunner.setSpatialNavigationEnabled
+ https://bugs.webkit.org/show_bug.cgi?id=96269
+
+ Reviewed by Kenneth Rohde Christiansen.
+
+ Added a new setter for spacial navigation enabling to Injected Bundle private API.
+
+ * WebProcess/InjectedBundle/API/c/WKBundle.cpp:
+ (WKBundleSetSpatialNavigationEnabled):
+ * WebProcess/InjectedBundle/API/c/WKBundlePrivate.h:
+ * WebProcess/InjectedBundle/InjectedBundle.cpp:
+ (WebKit::InjectedBundle::setSpatialNavigationEnabled):
+ (WebKit):
+ * WebProcess/InjectedBundle/InjectedBundle.h:
+ (InjectedBundle):
+
+2012-09-11 Marcelo Lira <marcelo.lira@openbossa.org>
+
+ [Qt][WK2] Page loading status API lacks a status for intentionally stopped loading
+ https://bugs.webkit.org/show_bug.cgi?id=83062
+
+ Reviewed by Tor Arne Vestbø.
+
+ When the loading of a page is intentionally interrupted, the loading
+ status is set to the new state LoadStoppedStatus. This reflects
+ reality more accurately because the page was not fully loaded
+ (a LoadSucceededStatus), and it wasn't an unexpected error
+ (a LoadFailedStatus).
+
+ * UIProcess/API/qt/qquickwebview.cpp:
+ (QQuickWebViewPrivate::loadDidStop):
+ * UIProcess/API/qt/qquickwebview_p.h:
+ * UIProcess/API/qt/qquickwebview_p_p.h:
+ (QQuickWebViewPrivate):
+ * UIProcess/API/qt/tests/publicapi/tst_publicapi.cpp:
+ * UIProcess/API/qt/tests/qmltests/WebView/tst_loadUrl.qml:
+ * UIProcess/API/qt/tests/qmltests/common/TestWebView.qml:
+ * UIProcess/qt/QtWebPageLoadClient.cpp:
+ (WebKit::QtWebPageLoadClient::dispatchLoadStopped):
+ (WebKit):
+ (WebKit::QtWebPageLoadClient::dispatchLoadFailed):
+ * UIProcess/qt/QtWebPageLoadClient.h:
+ (QtWebPageLoadClient):
+
+2012-09-11 Tor Arne Vestbø <tor.arne.vestbo@nokia.com>
+
+ [Qt] Add a configure step to the Qt build system
+
+ This allows building the Qt port using just 'qmake WebKit.pro'. Using
+ the build-webkit script is still supported, and will add slightly more
+ logic to the build, such as detecting the need for clean or incremental
+ builds.
+
+ Internally, the build system now uses a new variable, WEBKIT_CONFIG, for
+ all things related to configuring the build, such as use/have/enable flags,
+ and these are translated to defines in default_post. Project files should
+ no longer check contains(DEFINES,...) to detect features, but use the new
+ enable?(), use?(), and have?() functions. The no_webkit1 and no_webkit2
+ options have been translated into WEBKIT_CONFIG options as well, and can
+ be checked using build?().
+
+ Reviewed by Simon Hausmann.
+
+ * Target.pri:
+ * UIProcess/API/qt/tests/tests.pri:
+ * WebKit2.pri:
+ * config.h:
+
+2012-09-11 Christophe Dumez <christophe.dumez@intel.com>
+
+ [WK2][WKTR] TestRunner needs to implement clearApplicationCacheForOrigin
+ https://bugs.webkit.org/show_bug.cgi?id=96372
+
+ Reviewed by Kenneth Rohde Christiansen.
+
+ Add Bundle C API to clear the application cache for a
+ given origin. This is needed by WebKitTestRunner to
+ implement clearApplicationCacheForOrigin().
+
+ * WebProcess/InjectedBundle/API/c/WKBundle.cpp:
+ (WKBundleClearApplicationCacheForOrigin):
+ * WebProcess/InjectedBundle/API/c/WKBundlePrivate.h:
+ * WebProcess/InjectedBundle/InjectedBundle.cpp:
+ (WebKit::InjectedBundle::clearApplicationCacheForOrigin):
+ (WebKit):
+ * WebProcess/InjectedBundle/InjectedBundle.h:
+ (InjectedBundle):
+
+2012-09-11 Mikhail Pozdnyakov <mikhail.pozdnyakov@intel.com>
+
+ [WK2][WTR] WebKitTestRunner needs layoutTestController.setMinimumTimerInterval
+ https://bugs.webkit.org/show_bug.cgi?id=96256
+
+ Reviewed by Kenneth Rohde Christiansen.
+
+ Added new setter for minimum DOM timer interval to InjectedBundle private API.
+
+ * WebProcess/InjectedBundle/API/c/WKBundle.cpp:
+ (WKBundleSetMinimumTimerInterval):
+ * WebProcess/InjectedBundle/API/c/WKBundlePrivate.h:
+ * WebProcess/InjectedBundle/InjectedBundle.cpp:
+ (WebKit::InjectedBundle::setMinimumTimerInterval):
+ (WebKit):
+ * WebProcess/InjectedBundle/InjectedBundle.h:
+ (InjectedBundle):
+
+2012-09-11 Kangil Han <kangil.han@samsung.com>
+
+ [WK2][EFL] Fix compile warnings when enable tiled backing store
+ https://bugs.webkit.org/show_bug.cgi?id=95342
+
+ Reviewed by Gyuyoung Kim.
+
+ Fixed compile time warning messages when enable tiled backing store.
+
+ * UIProcess/API/efl/ewk_view.cpp:
+ (ewk_view_accelerated_compositing_mode_enter): Fixed invalid use of 'EINA_SAFETY_ON_NULL_RETURN_VAL' since it used '!' ahead of evasGl value so it is always null.
+ * WebProcess/WebPage/CoordinatedGraphics/CoordinatedGraphicsLayer.cpp:
+ (WebCore::CoordinatedGraphicsLayer::setChildren): Replaced 'int' i with 'unsigned' because its comparing value is 'size_t'.
+ * WebProcess/WebPage/CoordinatedGraphics/LayerTreeCoordinator.cpp:
+ (WebKit::LayerTreeCoordinator::renderNextFrame): Replaced 'int' i with 'unsigned' because its comparing value is 'size_t'.
+ (WebKit::LayerTreeCoordinator::beginContentUpdate): Replaced 'int' i with 'unsigned' because its comparing value is 'size_t'.
+
+2012-09-11 Byungwoo Lee <bw80.lee@samsung.com>
+
+ [EFL][WK2] WKEinaSharedString needs a function to adopt eina stringshare.
+ https://bugs.webkit.org/show_bug.cgi?id=96201
+
+ Reviewed by Kenneth Rohde Christiansen.
+
+ WKEinaSharedString needs a to adopt eina stringshare directly.
+
+ With this adopt function, an instance that is directly created with
+ eina_stringshare_add() can be easily handled by WKEinaSharedString
+ without calling eina_stringshare_del() for preventing memory leak.
+
+ * UIProcess/API/cpp/efl/WKEinaSharedString.cpp:
+ (WKEinaSharedString::adopt):
+ * UIProcess/API/cpp/efl/WKEinaSharedString.h:
+ * UIProcess/API/efl/tests/test_ewk2_eina_shared_string.cpp:
+ (TEST_F):
+
+2012-09-11 Andras Becsi <andras.becsi@nokia.com>
+
+ [Qt][WK2] Fix the build with recent Qt5
+ https://bugs.webkit.org/show_bug.cgi?id=96283
+
+ Reviewed by Simon Hausmann.
+
+ We should not use deprecated Qt API because doing that results
+ in build failure since all the deprecated API was disabled
+ in qtbase (https://codereview.qt-project.org/#change,24890).
+
+ * UIProcess/API/qt/qwebnavigationhistory.cpp:
+ (QWebNavigationListModel::roleNames):
+ (QWebNavigationListModel::reset):
+ * UIProcess/API/qt/qwebnavigationhistory_p.h:
+ * UIProcess/API/qt/tests/qrawwebview/tst_qrawwebview.cpp:
+ (WebView::load):
+ * UIProcess/qt/WebPopupMenuProxyQt.cpp:
+ (PopupMenuItemModel):
+ (WebKit::PopupMenuItemModel::PopupMenuItemModel):
+ (WebKit::PopupMenuItemModel::roleNames):
+ (WebKit):
+
+2012-09-11 Christophe Dumez <christophe.dumez@intel.com>
+
+ WTR needs an implementation of applicationCacheDiskUsageForOrigin
+ https://bugs.webkit.org/show_bug.cgi?id=87188
+
+ Reviewed by Kenneth Rohde Christiansen.
+
+ Add Bundle private C API to retrieve the application cache
+ usage for a specific security origin. This is needed by
+ WebKitTestRunner.
+
+ * WebProcess/InjectedBundle/API/c/WKBundle.cpp:
+ (WKBundleGetAppCacheUsageForOrigin):
+ * WebProcess/InjectedBundle/API/c/WKBundlePrivate.h:
+ * WebProcess/InjectedBundle/InjectedBundle.cpp:
+ (WebKit::InjectedBundle::appCacheUsageForOrigin):
+ (WebKit):
+ * WebProcess/InjectedBundle/InjectedBundle.h:
+ (InjectedBundle):
+
+2012-09-11 Zhigang Gong <zhigang.gong@linux.intel.com>
+
+ [EFL][WK2] Add necessary include directory in WebKit2
+ https://bugs.webkit.org/show_bug.cgi?id=95173
+
+ Unreviewed build fix.
+
+ revision r126694: Move TextureMapperGL to use
+ GraphicsContext3D. modify the TextureMapperGL.h to include
+ GraphicsContext3D.h. And when enable TEXTURE_MAPPER,
+ file WebKit2/Shared/ShareableSurface.cpp will include
+ TextureMapperGL.h then depends on GraphicsContext3D.h
+ thus it need to add ANGLE director. As currently, this
+ problem only affect EFL platform, according to Gyuyoung Kim's
+ suggestion, we add this include dir into EFL private file
+ PlatformEfl.cmake. Otherwise, the build will fail.
+
+ To trigger this problem by using the following command:
+ ./Tools/Scripts/build-webkit --efl --3d-rendering --tiled-backing-store
+
+ * CMakeLists.txt:
+
+2012-09-10 Byungwoo Lee <bw80.lee@samsung.com>
+
+ [EFL][WK2] Build warning : fix warning about extended initializer lists on EWK2UnitTestBase.cpp.
+ https://bugs.webkit.org/show_bug.cgi?id=95990
+
+ Reviewed by Gyuyoung Kim.
+
+ Fix build warning about extended initializer lists only available with
+ -std=c++0x or -std=gnu++0x.
+
+ * UIProcess/API/efl/tests/UnitTestUtils/EWK2UnitTestBase.cpp:
+ (EWK2UnitTest::ewk2UnitTestBrowserViewSmartClass):
+ (EWK2UnitTest):
+ (EWK2UnitTest::EWK2UnitTestBase::EWK2UnitTestBase):
+
+2012-09-10 Beth Dakin <bdakin@apple.com>
+
+ https://bugs.webkit.org/show_bug.cgi?id=96158
+ Need API to suppress scrollbar animations
+ -and corresponding-
+ <rdar://problem/12210972>
+
+ Reviewed by Sam Weinig.
+
+ Add suppressScrollbarAnimations as a WebCreationParameter.
+ * Shared/WebPageCreationParameters.h:
+ (WebPageCreationParameters):
+
+ New API. Calls into the web process for the setter but not the
+ getter.
+ * UIProcess/API/C/WKPage.cpp:
+ (WKPageSetSuppressScrollbarAnimations):
+ (WKPageAreScrollbarAnimationsSuppressed):
+ * UIProcess/API/C/WKPage.h:
+ * UIProcess/WebPageProxy.cpp:
+ (WebKit::WebPageProxy::WebPageProxy):
+ (WebKit::WebPageProxy::setSuppressScrollbarAnimations):
+ (WebKit):
+ (WebKit::WebPageProxy::creationParameters):
+ * UIProcess/WebPageProxy.h:
+ (WebPageProxy):
+ (WebKit::WebPageProxy::areScrollbarAnimationsSuppressed):
+ * WebProcess/WebPage/WebPage.messages.in:
+
+ Call into WebCore.
+ * WebProcess/WebPage/WebPage.cpp:
+ (WebKit::WebPage::setSuppressScrollbarAnimations):
+ (WebKit):
+ * WebProcess/WebPage/WebPage.h:
+ (WebPage):
+
+ This ScrollableArea area function is re-named by this patch in
+ WebCore.
+ * WebProcess/Plugins/PDF/BuiltInPDFView.h:
+ * WebProcess/Plugins/PDF/BuiltInPDFView.mm:
+ (WebKit::BuiltInPDFView::scrollbarsCanBeActive):
+
+2012-09-10 James Robinson <jamesr@chromium.org>
+
+ Unreviewed, rolling out r127837.
+ http://trac.webkit.org/changeset/127837
+ https://bugs.webkit.org/show_bug.cgi?id=93898
+
+ Broke ScrollingCoordinator on chromium
+
+ * WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.mm:
+ (WebKit::TiledCoreAnimationDrawingArea::updatePreferences):
+
+2012-09-10 Jer Noble <jer.noble@apple.com>
+
+ Unreviewed; rolling out r128081.
+ http://trac.webkit.org/changeset/128081
+ https://bugs.webkit.org/show_bug.cgi?id=96134
+
+ New test http/tests/media/video-donottrack.html fails to run on Apple test bots.
+
+ * Shared/APIClientTraits.h:
+ * WebProcess/InjectedBundle/API/c/WKBundlePage.h:
+ * WebProcess/InjectedBundle/InjectedBundlePageLoaderClient.cpp:
+ * WebProcess/InjectedBundle/InjectedBundlePageLoaderClient.h:
+ (InjectedBundlePageLoaderClient):
+ * WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
+ * WebProcess/WebCoreSupport/WebFrameLoaderClient.h:
+ (WebFrameLoaderClient):
+ * WebProcess/qt/QtBuiltinBundlePage.cpp:
+ (WebKit::QtBuiltinBundlePage::QtBuiltinBundlePage):
+
+2012-09-07 Jon Lee <jonlee@apple.com>
+
+ Update notifications to latest spec
+ https://bugs.webkit.org/show_bug.cgi?id=91726
+ <rdar://problem/11910451>
+
+ Reviewed by Alexey Proskuryakov.
+
+ Expose lang and dir.
+
+ * UIProcess/API/C/WKNotification.cpp:
+ (WKNotificationCopyLang):
+ (WKNotificationCopyDir):
+ * UIProcess/API/C/WKNotification.h:
+ * UIProcess/Notifications/WebNotification.cpp:
+ (WebKit::WebNotification::WebNotification):
+ * UIProcess/Notifications/WebNotification.h:
+ (WebKit::WebNotification::create):
+ (WebKit::WebNotification::lang):
+ (WebKit::WebNotification::dir):
+ (WebNotification):
+ * UIProcess/Notifications/WebNotificationManagerProxy.cpp:
+ (WebKit::WebNotificationManagerProxy::show):
+ * UIProcess/Notifications/WebNotificationManagerProxy.h:
+ (WebNotificationManagerProxy):
+ * UIProcess/WebPageProxy.cpp:
+ (WebKit::WebPageProxy::showNotification):
+ * UIProcess/WebPageProxy.h:
+ (WebPageProxy):
+ * UIProcess/WebPageProxy.messages.in:
+ * WebProcess/Notifications/WebNotificationManager.cpp:
+ (WebKit::WebNotificationManager::show):
+
+2012-09-10 Alexey Proskuryakov <ap@apple.com>
+
+ Build fix.
+
+ * UIProcess/WebContext.h: Added a default value for relatedPage argment - if
+ you don't have one, null is fine.
+
+2012-09-10 Alexey Proskuryakov <ap@apple.com>
+
+ [WK2] Add an API to open a page in same process
+ https://bugs.webkit.org/show_bug.cgi?id=96306
+
+ Reviewed by Anders Carlsson.
+
+ The name "related" inspired by <http://wiki.whatwg.org/wiki/Links_to_Unrelated_Browsing_Contexts>.
+
+ * UIProcess/API/mac/WKView.h: Added an API. It's unwieldy, but I blame
+ WKBrowsingContextGroup, not the related view.
+
+ * UIProcess/API/mac/WKViewPrivate.h: Matching SPI for clients that mostly use
+ C APIs.
+
+ * UIProcess/API/mac/WKView.mm:
+ (-[WKView initWithFrame:processGroup:browsingContextGroup:]): Use new back-end
+ signature.
+ (-[WKView initWithFrame:processGroup:browsingContextGroup:relatedToView:]):
+ Get page from WKView, and call back-end.
+ (-[WKView initWithFrame:contextRef:pageGroupRef:]): Reimplement existing method
+ by calling new, more powerful one.
+ (-[WKView initWithFrame:contextRef:pageGroupRef:relatedToPage:]): Just one change,
+ pass relatedPage to the context.
+
+ * UIProcess/WebContext.cpp: (WebKit::WebContext::createWebPage): If related page
+ is not null, use its process.
+
+ * UIProcess/WebContext.h: (WebContext): Updated createWebPage signature.
+
+2012-09-10 Brady Eidson <beidson@apple.com>
+
+ Javascript in foreground tabs should not wait synchronously for plug-ins to load
+ <rdar://problem/12067415> and https://bugs.webkit.org/show_bug.cgi?id=96167
+
+ Reviewed by Geoff Garen.
+
+ Synchronously waiting for initialization to complete when javascript accesses the plug-in script object severely
+ reduces the effectiveness of having an asynchronous NPP_New.
+
+ Such as with background tabs that have never been viewed, we already have cases where JS calls into the plug-in
+ element fail because we haven't bothered to initialize the plug-in.
+
+ We get a huge win by expanding that to foreground tabs that simply haven't finished initializing their plug-ins.
+
+ * WebProcess/Plugins/PluginView.cpp:
+ (WebKit::PluginView::scriptObject): If initialization is not complete just return 0 - They can get at the script object later.
+
+ Remove the notion of "wait for asynchronous initialization" altogether:
+ * WebProcess/Plugins/Netscape/NetscapePlugin.h:
+ (NetscapePlugin):
+ * WebProcess/Plugins/PDF/BuiltInPDFView.h:
+ (BuiltInPDFView):
+ * WebProcess/Plugins/Plugin.h:
+ (Plugin):
+ * WebProcess/Plugins/PluginProxy.cpp:
+ * WebProcess/Plugins/PluginProxy.h:
+ (PluginProxy):
+
+2012-09-07 Jer Noble <jer.noble@apple.com>
+
+ <audio> and <video> should send Do Not Track when appropriate
+ https://bugs.webkit.org/show_bug.cgi?id=96134
+
+ Reviewed by Eric Carlson.
+
+ Add support for the shouldSendDoNotTrackHTTPHeader by passing the request
+ on to the WebFrameLoadDelegate.
+
+ * Shared/APIClientTraits.cpp: Increment the interfaceSizes for
+ WKBundlePageLoaderClient by the value of the new functions.
+ * Shared/APIClientTraits.h: Ditto.
+ * WebProcess/InjectedBundle/API/c/WKBundlePage.h: Add a new API to
+ WKBundlePageLoaderClient and bump the version number.
+ * WebProcess/InjectedBundle/InjectedBundlePageLoaderClient.cpp:
+ (WebKit::InjectedBundlePageLoaderClient::shouldSendDoNotTrackHTTPHeader):
+ Pass the question on to the client.
+ * WebProcess/InjectedBundle/InjectedBundlePageLoaderClient.h:
+ * WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
+ (WebKit::WebFrameLoaderClient::shouldSendDoNotTrackHTTPHeader):
+ Pass the question on to the bundle.
+ * WebProcess/WebCoreSupport/WebFrameLoaderClient.h:
+ * WebProcess/qt/QtBuiltinBundlePage.cpp:
+ (WebKit::QtBuiltinBundlePage::QtBuiltinBundlePage):
+ Add an entry for the new function in the Qt loader client.
+
+2012-09-10 Carlos Garcia Campos <cgarcia@igalia.com>
+
+ [SOUP] Don't convert to UTF-8 the suggestedFilename passed to Download::decideDestinationWithSuggestedFilename()
+ https://bugs.webkit.org/show_bug.cgi?id=96261
+
+ Reviewed by Martin Robinson.
+
+ * WebProcess/Downloads/soup/DownloadSoup.cpp:
+ (WebKit::DownloadClient::didReceiveResponse):
+
+2012-09-10 Alexander Shalamov <alexander.shalamov@intel.com>
+
+ [EFL][WK2] Add fullscreen enter / exit signals to the ewk_view API
+ https://bugs.webkit.org/show_bug.cgi?id=92362
+
+ Reviewed by Gyuyoung Kim.
+
+ Handle WebFullScreenManagerProxy::enterFullScreen and exitFullScreen
+ methods, so that ewk_view could enter and exit fullscreen mode when requested.
+ Also, two callbacks were added to ewk_view API, so that UI could customise
+ behavior when fullscreen mode is requested, e.g. show security dialog.
+
+ * UIProcess/API/efl/ewk_settings.cpp:
+ (ewk_settings_fullscreen_enabled_set):
+ (ewk_settings_fullscreen_enabled_get):
+ * UIProcess/API/efl/ewk_settings.h:
+ * UIProcess/API/efl/ewk_view.cpp:
+ (_ewk_view_initialize):
+ (ewk_view_full_screen_enter):
+ (ewk_view_full_screen_exit):
+ * UIProcess/API/efl/ewk_view.h:
+ * UIProcess/API/efl/ewk_view_private.h:
+ * UIProcess/API/efl/tests/test_ewk2_settings.cpp:
+ (TEST_F):
+ * UIProcess/API/efl/tests/test_ewk2_view.cpp:
+ (fullScreenCallback):
+ (checkFullScreenProperty):
+ (TEST_F):
+ * UIProcess/efl/WebFullScreenManagerProxyEfl.cpp:
+ (WebKit::WebFullScreenManagerProxy::enterFullScreen):
+ (WebKit::WebFullScreenManagerProxy::exitFullScreen):
+
+2012-09-10 Kevin Funk <kevin.funk@kdab.com>
+
+ [Qt] Fix deprecation failures if QT_NO_DEPRECATED enabled
+ https://bugs.webkit.org/show_bug.cgi?id=96258
+
+ Reviewed by Simon Hausmann.
+
+ Sync with latest changes in Qt5.
+
+ * WebProcess/WebCoreSupport/qt/WebErrorsQt.cpp:
+ * WebProcess/qt/WebProcessQt.cpp:
+
+2012-09-10 Carlos Garcia Campos <cgarcia@igalia.com>
+
+ [GTK] Sanitize the suggested filename when building the download destination URI
+ https://bugs.webkit.org/show_bug.cgi?id=96260
+
+ Reviewed by Gustavo Noronha Silva.
+
+ The suggested filename returned by the server can contain
+ directory separators so that the filename would be interpreted as
+ a full path.
+
+ * UIProcess/API/gtk/WebKitDownload.cpp:
+ (webkitDownloadDecideDestination): Convert any directory separator
+ contained in the suggested filename to an underscore.
+
+2012-09-10 Simon Hausmann <simon.hausmann@nokia.com>
+
+ [Qt] Fix generation of forward headers for generated files in WebCore on Windows
+ https://bugs.webkit.org/show_bug.cgi?id=96245
+
+ Reviewed by Tor Arne Vestbø.
+
+ We generate the forwarding header files of generated WebCore sources by using
+ mkdir to ensure the target directory exists, followed by
+ echo #include "..." > file.h. On Windows mkdir returns with an error if the
+ target directory exists. For us that is not an error, so work around it with
+ (mkdir path 2>nul || echo>nul)
+
+ * DerivedSources.pri:
+
+2012-09-10 Allan Sandfeld Jensen <allan.jensen@nokia.com>
+
+ [Qt][WK2] REGRESSION(r127861): It made one test fail and one test crash
+ https://bugs.webkit.org/show_bug.cgi?id=96243
+
+ Reviewed by Kenneth Rohde Christiansen.
+
+ Skip the code if QClipboard is not available, and give WebCore a chance to handle the event first.
+
+ * WebProcess/WebPage/WebPage.cpp:
+ (WebKit::handleMouseEvent):
+ * WebProcess/WebPage/qt/WebPageQt.cpp:
+ (WebKit::WebPage::handleMouseReleaseEvent):
+
+2012-09-10 Simon Hausmann <simon.hausmann@nokia.com>
+
+ [Qt] WK2 build fixes for MSVC
+ https://bugs.webkit.org/show_bug.cgi?id=96248
+
+ Reviewed by Tor Arne Vestbø.
+
+ MSVC is picky when it comes to the use of forward declaration and the use of
+ such forward declared types in templates. In these instances inline functions were
+ passed parameters in RefPtrs that were only forward declared, but at compile time
+ MSVC wants to know what type it is in order to completely instantiate RefPtr (which
+ needs to call the type destructor for example). Therefore this patch resolves a couple
+ of forward declarations with direct header file inclusions.
+
+ * UIProcess/API/qt/raw/qrawwebview_p_p.h:
+ * UIProcess/InspectorServer/WebSocketServerClient.h:
+ * UIProcess/qt/QtPageClient.h:
+
+2012-09-10 Andras Becsi <andras.becsi@nokia.com>
+
+ [Qt][WK2] QWebKitTest should retrieve the viewport state from the PageViewportController
+ https://bugs.webkit.org/show_bug.cgi?id=96106
+
+ Reviewed by Simon Hausmann.
+
+ The functions in PageViewportControllerClientQt proxying the
+ viewport state values can be removed if QWebKitTest uses the
+ PageViewportController to retrieve these values.
+
+ * UIProcess/API/qt/qquickwebview_p_p.h:
+ (QQuickWebViewPrivate::viewportController):
+ * UIProcess/API/qt/qwebkittest.cpp:
+ (QWebKitTest::viewport):
+ (QWebKitTest::devicePixelRatio):
+ (QWebKitTest::contentsScale):
+ * UIProcess/PageViewportController.h:
+ (WebKit::PageViewportController::currentContentsScale):
+ * UIProcess/qt/PageViewportControllerClientQt.cpp:
+ * UIProcess/qt/PageViewportControllerClientQt.h:
+ (PageViewportControllerClientQt):
+
+2012-09-10 Simon Hausmann <simon.hausmann@nokia.com>
+
+ [WK2] Make WK2 C API headers compile in the Qt build on Windows
+ https://bugs.webkit.org/show_bug.cgi?id=96246
+
+ Reviewed by Kenneth Rohde Christiansen.
+
+ WKBase.h and WKAPICast.h include files that are specific to the Safari/Windows
+ port if WIN32 or _WIN32 is defined. When building WebKit2 on Windows with Qt, we
+ do not want to include these files, as they define an API that is different to ours
+ (the view aspect differs). Therefore guard the inclusion with !defined(BUILDING_QT__)
+
+ * Shared/API/c/WKBase.h:
+ * UIProcess/API/C/WKAPICast.h:
+
+2012-09-10 Kevin Funk <kevin.funk@kdab.com>
+
+ Replace calls to QString::fromAscii which is deprecated in Qt5
+ https://bugs.webkit.org/show_bug.cgi?id=96242
+
+ Reviewed by Simon Hausmann.
+
+ Replace with QString::fromLatin1 which does the same.
+
+ * UIProcess/API/qt/tests/qrawwebview/tst_qrawwebview.cpp:
+
+2012-09-10 Christophe Dumez <christophe.dumez@intel.com>
+
+ [WK2] New fast/forms/number/number-interactive-validation-required.html fails
+ https://bugs.webkit.org/show_bug.cgi?id=95936
+
+ Reviewed by Kenneth Rohde Christiansen.
+
+ Add WKPreference private API for manipulate the interactive form
+ validation setting. This is now needed by WebKitTestRunner.
+
+ * Shared/WebPreferencesStore.h:
+ (WebKit):
+ * UIProcess/API/C/WKPreferences.cpp:
+ (WKPreferencesSetInteractiveFormValidationEnabled):
+ (WKPreferencesGetInteractiveFormValidationEnabled):
+ * UIProcess/API/C/WKPreferencesPrivate.h:
+ * WebProcess/WebPage/WebPage.cpp:
+ (WebKit::WebPage::updatePreferences):
+
+2012-09-09 Sam Weinig <sam@webkit.org>
+
+ Simplify WebKit2 XPC service backend now that I know it doesn't need to soft link WebKit2.framework
+ https://bugs.webkit.org/show_bug.cgi?id=96228
+
+ Reviewed by Dan Bernstein.
+
+ We soft link the non-XPC service WebProcess backend to the WebKit2 framework to
+ ensure that we can close all the necessary file descriptors at launch, without
+ fear that we will be closing one we open while initializing WebKit2 or one of its
+ dependencies. Since we don't need to close file descriptors in the XPC service
+ backend, we don't need to soft link! While here, also do some cleanup and code
+ sharing.
+
+ * UIProcess/Launcher/mac/ProcessLauncherMac.mm:
+ (WebKit::launchXPCService):
+ We don't need to send the framework executable path anymore (it was used for the
+ soft linking), but we do need the client identifier.
+
+ * WebKit2.xcodeproj/project.pbxproj:
+ Add new files. Link the XPC service to WebKit2.framework.
+
+ * WebKit2Service/MainMacService.mm:
+ Now that we don't have to soft link, just make this a stub that calls immediately
+ into the WebKit2 framework.
+
+ * WebProcess/mac/WebProcessInitialization.h: Added.
+ * WebProcess/mac/WebProcessInitialization.mm: Added.
+ (WebKit::InitializeWebProcess):
+ Move initialization that is common between the XPC and non-XPC backends here.
+
+ * WebProcess/mac/WebProcessMainMac.mm:
+ (WebKit::WebProcessMain):
+ Remove XPC backend related code. Use new shared InitializeWebProcess function.
+
+ * WebProcess/mac/WebProcessXPCServiceMain.h: Added.
+ * WebProcess/mac/WebProcessXPCServiceMain.mm: Added.
+ (WebKit::WebKit2ServiceEventHandler):
+ (WebProcessXPCServiceMain):
+ Move XPC service backend initialization here.
+
+2012-09-09 Emil A Eklund <eae@chromium.org>
+
+ Rename Node::getRect/getPixelSnappedRect and remove ContainerNode::getRect
+ https://bugs.webkit.org/show_bug.cgi?id=81413
+
+ Reviewed by David Hyatt.
+
+ Update WebPage to call pixelSnappedBoundingBox.
+
+ * WebProcess/WebPage/WebPage.cpp:
+ (WebKit::WebPage::editorState):
+
+2012-09-08 Sam Weinig <sam@webkit.org>
+
+ Switch to entering the sandbox directly from main(), rather than waiting for the initialization message
+ https://bugs.webkit.org/show_bug.cgi?id=96194
+
+ Reviewed by Dan Bernstein.
+
+ * UIProcess/Launcher/mac/ProcessLauncherMac.mm:
+ (WebKit::ProcessLauncher::launchProcess):
+ Pass a client identifier to WebProcess as a command line argument
+ so that it can be used to create private temporary and cache directories.
+
+ * WebProcess/WebProcess.h:
+ (WebProcess):
+ * WebProcess/mac/WebProcessMac.mm:
+ (WebKit::WebProcess::initializeSandbox):
+ (WebKit::WebProcess::platformInitializeWebProcess):
+ Expose the initializeSandbox() function and stop calling it from platformInitializeWebProcess()
+ since it is now going to be called from WebProcessMain. Also, move changing the current working
+ directory to sandbox initialization function and replace use of creation parameters with just
+ the client identifier.
+
+ * WebProcess/com.apple.WebProcess.sb.in:
+ Add some new exceptions that come from entering the sandbox earlier in the AppKit
+ initialization process. Don't allow access to com.apple.coreservices.appleevents.
+
+ * WebProcess/mac/WebProcessMainMac.mm:
+ (WebKit::WebProcessMainXPC):
+ (WebKit::WebProcessMain):
+ Enter the sandbox explicitly, not waiting until the initialization message. Also,
+ since we now have an extra parameter for the client identifier, make the WebProcess
+ launches the UIProcess code path work by extracting a client identifier from the
+ client executable path.
+
+2012-09-09 Patrick Gansterer <paroga@webkit.org>
+
+ Make the String initialization on the function side of String::number()
+ https://bugs.webkit.org/show_bug.cgi?id=95940
+
+ Reviewed by Benjamin Poulain.
+
+ * win/WebKit2.def:
+ * win/WebKit2CFLite.def:
+
+2012-09-09 Pierre Rossi <pierre.rossi@gmail.com>
+
+ [WK2] expose element rect for color input type
+ https://bugs.webkit.org/show_bug.cgi?id=91664
+
+ Reviewed by Simon Hausmann.
+
+ In the same way we do for select elements already. This allows placing the picker
+ in a sensible location.
+
+ * UIProcess/API/efl/PageClientImpl.cpp: Update the function's signature.
+ (WebKit::PageClientImpl::createColorChooserProxy): Ditto.
+ * UIProcess/API/efl/PageClientImpl.h: Ditto.
+ (PageClientImpl):
+ * UIProcess/API/gtk/PageClientImpl.cpp:
+ (WebKit::PageClientImpl::createColorChooserProxy): Ditto.
+ * UIProcess/API/gtk/PageClientImpl.h: Ditto.
+ (PageClientImpl):
+ * UIProcess/API/mac/PageClientImpl.h: Ditto.
+ (PageClientImpl):
+ * UIProcess/API/mac/PageClientImpl.mm:
+ (WebKit::PageClientImpl::createColorChooserProxy): Ditto.
+ * UIProcess/API/qt/raw/qrawwebview.cpp:
+ (QRawWebViewPrivate::createColorChooserProxy): Ditto.
+ * UIProcess/API/qt/raw/qrawwebview_p_p.h: Ditto.
+ (QRawWebViewPrivate):
+ * UIProcess/PageClient.h: Ditto.
+ (PageClient):
+ * UIProcess/WebPageProxy.cpp:
+ (WebKit::WebPageProxy::showColorChooser): Compute the rect mapped to the current view's transform.
+ * UIProcess/WebPageProxy.h:
+ (WebPageProxy):
+ * UIProcess/WebPageProxy.messages.in:
+ * UIProcess/qt/QtPageClient.cpp:
+ (WebKit::QtPageClient::createColorChooserProxy):
+ * UIProcess/qt/QtPageClient.h:
+ (QtPageClient):
+ * UIProcess/qt/WebColorChooserProxyQt.cpp:
+ (ColorChooserContextObject):
+ (WebKit::ColorChooserContextObject::ColorChooserContextObject):
+ (WebKit::ColorChooserContextObject::elementRect):
+ (WebKit::ColorChooserContextObject::accept):
+ (WebKit::WebColorChooserProxyQt::WebColorChooserProxyQt):
+ * UIProcess/qt/WebColorChooserProxyQt.h:
+ (WebKit::WebColorChooserProxyQt::create):
+ (WebColorChooserProxyQt):
+ * UIProcess/win/WebView.cpp:
+ (WebKit::WebView::createColorChooserProxy): Update the function's signature.
+ * UIProcess/win/WebView.h:
+ (WebView): Ditto.
+ * WebProcess/WebCoreSupport/WebColorChooser.cpp:
+ (WebKit::WebColorChooser::WebColorChooser):
+
+2012-09-09 Simon Hausmann <simon.hausmann@nokia.com>
+
+ [Qt] Add missing files to the WebKit2 build on Windows
+ https://bugs.webkit.org/show_bug.cgi?id=96177
+
+ Reviewed by Kenneth Rohde Christiansen.
+
+ For the build on Windows we can re-use existing functionality from the Safari/Windows
+ build, such as the IPC implementation.
+
+ * Target.pri:
+
+2012-09-09 Simon Hausmann <simon.hausmann@nokia.com>
+
+ [WK2] Fix PLATFORM(WIN) vs. OS(WINDOWS) in various files
+ https://bugs.webkit.org/show_bug.cgi?id=96178
+
+ Reviewed by Kenneth Rohde Christiansen.
+
+ PLATFORM(WIN) is used in various places, where it is safe to use OS(WINDOWS) to allow
+ the re-use of that code path in ports beyond Safari/Windows.
+
+ * Platform/CoreIPC/BinarySemaphore.h:
+ (BinarySemaphore):
+ * Platform/CoreIPC/Connection.h:
+ (Connection):
+ * Platform/SharedMemory.h:
+ (Handle):
+ (SharedMemory):
+ * Platform/WorkQueue.h:
+
+2012-09-08 Jinwoo Song <jinwoo7.song@samsung.com>
+
+ [EFL][WK2] Minibrowser crashes on right mouse click
+ https://bugs.webkit.org/show_bug.cgi?id=95955
+
+ Reviewed by Simon Hausmann.
+
+ Make early return if the PageClient does not create a ContextMenuProxy.
+
+ * UIProcess/WebPageProxy.cpp:
+ (WebKit::WebPageProxy::internalShowContextMenu):
+
+2012-09-08 Simon Hausmann <simon.hausmann@nokia.com>
+
+ [Qt] Fix CoreIPC setup between ProcessLauncher and WebProcessMain on Windows
+ https://bugs.webkit.org/show_bug.cgi?id=96179
+
+ Reviewed by Kenneth Rohde Christiansen.
+
+ * UIProcess/Launcher/qt/ProcessLauncherQt.cpp:
+ (WebKit::ProcessLauncher::launchProcess): Hide Unixy platform specific code
+ and includes behind appropriate platform #ifdefs and use
+ CoreIPC::Connection::createServerAndClientIdentifiers to set up the IPC pipes.
+ We also need to tell Windows about our intent of using the client handle in
+ the child web process.
+ * WebProcess/qt/WebProcessMainQt.cpp:
+ (WebKit::WebProcessMainQt): After retrieving the IPC identifier we call
+ WebKit::WebProcess::shared().initialize with it. That function actually
+ cares a CIPC::Connection::Identifier as argument, which happens to be an
+ int on Unix, but it's actually a HANDLE on Windows. Change the parameter
+ type according to and a reinterpret_cast from the converted unsigned integer,
+ similar to WebProcessMainWin.cpp.
+
+2012-09-08 Christophe Dumez <christophe.dumez@intel.com>
+
+ [WK2] New fast/events/tab-focus-link-in-canvas fails from r126908
+ https://bugs.webkit.org/show_bug.cgi?id=95329
+
+ Reviewed by Kenneth Rohde Christiansen.
+
+ Add implementation for overriding the WebKitTabToLinksPreferenceKey
+ preference as well as the corresponding WKPreferences API that
+ is needed by WebKitTestRunner.
+
+ * Shared/WebPreferencesStore.h:
+ (WebKit):
+ * UIProcess/API/C/WKPreferences.cpp:
+ (WKPreferencesSetTabToLinksEnabled):
+ (WKPreferencesGetTabToLinksEnabled):
+ * UIProcess/API/C/WKPreferencesPrivate.h:
+ * WebProcess/InjectedBundle/InjectedBundle.cpp:
+ (WebKit::InjectedBundle::overrideBoolPreferenceForTestRunner):
+ * WebProcess/WebPage/WebPage.h:
+ (WebKit::WebPage::setTabToLinksEnabled):
+ (WebKit::WebPage::tabToLinksEnabled):
+
+2012-09-07 Benjamin Poulain <bpoulain@apple.com>
+
+ Rename the ustring() accessor to string()
+ https://bugs.webkit.org/show_bug.cgi?id=95919
+
+ Reviewed by Geoffrey Garen.
+
+ * WebProcess/Plugins/Netscape/NPJSObject.cpp:
+ (WebKit::NPJSObject::enumerate):
+
+2012-09-06 Jeffrey Pfau <jpfau@apple.com>
+
+ Extend third-party storage blocking API to optionally allow blocking all storage
+ https://bugs.webkit.org/show_bug.cgi?id=95915
+
+ Reviewed by Brady Eidson.
+
+ Update WK2 API to use revised Settings API.
+
+ * Shared/WebPreferencesStore.h:
+ (WebKit):
+ * UIProcess/API/C/WKAPICast.h:
+ (WebKit::toStorageBlockingPolicy):
+ (WebKit):
+ (WebKit::toAPI):
+ * UIProcess/API/C/WKPreferences.cpp:
+ (WKPreferencesSetStorageBlockingPolicy):
+ (WKPreferencesGetStorageBlockingPolicy):
+ * UIProcess/API/C/WKPreferences.h:
+ * WebProcess/WebPage/WebPage.cpp:
+ (WebKit::WebPage::updatePreferences):
+
+2012-09-07 Sudarsana Nagineni <sudarsana.nagineni@linux.intel.com>
+
+ [EFL] [WK2] Set theme for the inspector view
+ https://bugs.webkit.org/show_bug.cgi?id=96108
+
+ Reviewed by Kenneth Rohde Christiansen.
+
+ Set the theme for the inspector view when it is created.
+
+ * UIProcess/efl/WebInspectorProxyEfl.cpp:
+ (WebKit::WebInspectorProxy::platformCreateInspectorPage):
+
+2012-09-07 Christophe Dumez <christophe.dumez@intel.com>
+
+ [EFL] Use same default minimum logical font size in DRT and WTR
+ https://bugs.webkit.org/show_bug.cgi?id=96116
+
+ Reviewed by Martin Robinson.
+
+ Add private bundle C API to set the minimum logicial font
+ size setting. This is needed by WebKitTestRunner.
+
+ * WebProcess/InjectedBundle/API/c/WKBundle.cpp:
+ (WKBundleSetMinimumLogicalFontSize):
+ * WebProcess/InjectedBundle/API/c/WKBundlePrivate.h:
+ * WebProcess/InjectedBundle/InjectedBundle.cpp:
+ (WebKit::InjectedBundle::setMinimumLogicalFontSize):
+ (WebKit):
+ * WebProcess/InjectedBundle/InjectedBundle.h:
+ (InjectedBundle):
+
+2012-09-07 Allan Sandfeld Jensen <allan.jensen@nokia.com>
+
+ Simplify hitTestResultAtPoint and nodesFromRect APIs
+ https://bugs.webkit.org/show_bug.cgi?id=95720
+
+ Reviewed by Antonio Gomes.
+
+ Update calls to new API and update exported symbols.
+
+ * WebProcess/InjectedBundle/InjectedBundleNavigationAction.cpp:
+ (WebKit::InjectedBundleNavigationAction::InjectedBundleNavigationAction):
+ * WebProcess/WebPage/WebPage.cpp:
+ (WebKit::handleContextMenuEvent):
+ (WebKit::WebPage::highlightPotentialActivation): Corrects the misplaced arguments while converting them.
+ (WebKit::WebPage::findZoomableAreaForPoint):
+ * WebProcess/WebPage/mac/WebPageMac.mm:
+ (WebKit::WebPage::characterIndexForPoint):
+ (WebKit::WebPage::performDictionaryLookupAtLocation):
+ (WebKit::WebPage::shouldDelayWindowOrderingEvent):
+ (WebKit::WebPage::acceptsFirstMouse):
+ * win/WebKit2.def:
+ * win/WebKit2CFLite.def:
+
+2012-09-07 Allan Sandfeld Jensen <allan.jensen@nokia.com>
+
+ X11 Global Selection
+ https://bugs.webkit.org/show_bug.cgi?id=88238
+
+ Reviewed by Tony Chang.
+
+ Implements the hooks for supporting global selections in Qt WebKit2.
+
+ * WebProcess/WebCoreSupport/WebEditorClient.cpp:
+ (WebKit::WebEditorClient::respondToChangedSelection):
+ (WebKit::WebEditorClient::updateGlobalSelection):
+ (WebKit::WebEditorClient::supportsGlobalSelection):
+ * WebProcess/WebCoreSupport/WebEditorClient.h:
+ * WebProcess/WebCoreSupport/gtk/WebEditorClientGtk.cpp:
+ (WebKit::WebEditorClient::updateGlobalSelection):
+ * WebProcess/WebPage/WebPage.cpp:
+ (WebKit::handleMouseEvent):
+ * WebProcess/WebPage/WebPage.h:
+ (WebPage):
+ * WebProcess/WebPage/qt/WebPageQt.cpp:
+ (WebKit::WebPage::handleMouseReleaseEvent):
+
+2012-09-07 Mikhail Pozdnyakov <mikhail.pozdnyakov@intel.com>
+
+ [WK2] APIClientTraits<WKPageLoaderClient> and APIClientTraits<WKBundlePageLoaderClient> are not initialized properly
+ https://bugs.webkit.org/show_bug.cgi?id=96079
+
+ Reviewed by Kenneth Rohde Christiansen.
+
+ APIClientTraits<WKPageLoaderClient> was missing offset for version number 2 and
+ APIClientTraits<WKBundlePageLoaderClient> was missing offset for version number 3.
+
+ * Shared/APIClientTraits.cpp:
+ (WebKit):
+
+2012-09-07 Eunmi Lee <eunmi15.lee@samsung.com>
+
+ [EFL][WK2] Add APIs to enable or disable the mouse events of the ewk_view.
+ https://bugs.webkit.org/show_bug.cgi?id=88631
+
+ Reviewed by Gyuyoung Kim.
+
+ We can turn on/off the mouse events of the ewk_view using the mouse
+ events enabling API. This API can be used when we want to turn off the
+ mouse events on the touchscreen device to process the touch events
+ instead of the mouse events.
+
+ * UIProcess/API/efl/ewk_view.cpp:
+ (_Ewk_View_Private_Data):
+ (_Ewk_View_Private_Data::_Ewk_View_Private_Data):
+ (_ewk_view_smart_add):
+ (ewk_view_mouse_events_enabled_set):
+ (ewk_view_mouse_events_enabled_get):
+ * UIProcess/API/efl/ewk_view.h:
+ * UIProcess/API/efl/tests/test_ewk2_view.cpp:
+ (TEST_F):
+
+2012-09-07 Tim Horton <timothy_horton@apple.com>
+
+ Add optional debug logging when we fall into/out of threaded scrolling
+ https://bugs.webkit.org/show_bug.cgi?id=93898
+ <rdar://problem/12089098>
+
+ Reviewed by Simon Fraser.
+
+ Update the scrolling tree's scrollingPerformanceLoggingEnabled preference
+ before the early-return if we don't have layer debugging borders on.
+
+ * WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.mm:
+ (WebKit::TiledCoreAnimationDrawingArea::updatePreferences):
+
+2012-09-06 Jinwoo Song <jinwoo7.song@samsung.com>
+
+ Deploy StringBuilder in more places in WebKit2
+ https://bugs.webkit.org/show_bug.cgi?id=95924
+
+ Reviewed by Benjamin Poulain.
+
+ Deploy StringBuilder to concatenate strings more efficiently.
+
+ * Shared/WebMemorySampler.cpp:
+ (WebKit):
+ (WebKit::WebMemorySampler::WebMemorySampler):
+ (WebKit::WebMemorySampler::stop):
+ (WebKit::WebMemorySampler::writeHeaders):
+ (WebKit::WebMemorySampler::appendCurrentMemoryUsageToFile):
+ * Shared/WebMemorySampler.h:
+ (WebMemorySampler):
+ * WebProcess/Plugins/Netscape/NetscapeBrowserFuncs.cpp:
+ (WebKit::capitalizeRFC822HeaderFieldName):
+ * WebProcess/WebCoreSupport/WebContextMenuClient.cpp:
+ (WebKit::WebContextMenuClient::searchWithGoogle):
+
+2012-09-06 Ryuan Choi <ryuan.choi@samsung.com>
+
+ [EFL][WK2] Add API unit tests for ewk_view_theme_set.
+ https://bugs.webkit.org/show_bug.cgi?id=94670
+
+ Reviewed by Gyuyoung Kim.
+
+ Added unit tests for ewk_view_theme_set.
+
+ * UIProcess/API/efl/tests/UnitTestUtils/EWK2UnitTestEnvironment.cpp:
+ (EWK2UnitTest::EWK2UnitTestEnvironment::pathForResource):
+ Added to get path of resource.
+ * UIProcess/API/efl/tests/UnitTestUtils/EWK2UnitTestEnvironment.h:
+ Ditto.
+ * UIProcess/API/efl/tests/resources/big_button_theme.edj:
+ Added test theme file which has text_confinement of button as
+ rel1 { ... offset : 150 8; } rel2 { ... offset : -150 -11; }.
+ * UIProcess/API/efl/tests/resources/empty_theme.edj:
+ Added test theme file which includes nothing.
+ * UIProcess/API/efl/tests/test_ewk2_view.cpp:
+ Added unit test for ewk_view_theme_set.
+
+2012-09-06 Csaba Osztrogonác <ossy@webkit.org>
+
+ Move RenderView::setFixedPositionedObjectsNeedLayout to FrameView
+ https://bugs.webkit.org/show_bug.cgi?id=96017
+
+ Unreviewed Qt-WK2 buildfix after r127783.
+
+ * WebProcess/WebPage/CoordinatedGraphics/LayerTreeCoordinator.cpp:
+ (WebKit::LayerTreeCoordinator::syncFixedLayers):
+
+2012-09-05 Alexey Proskuryakov <ap@apple.com>
+
+ [WK2] Annotate multi-process FIXMEs with bug numbers
+ https://bugs.webkit.org/show_bug.cgi?id=95916
+
+ Reviewed by Eric Carlson.
+
+ * UIProcess/WebContext.cpp:
+ (WebKit::WebContext::setProcessModel): Ensure that plug-in process is enabled.
+ Comments in WebPluginSiteDataManager said that it's required for multi-process.
+ (WebKit::WebContext::createNewWebProcess): Added a bug number.
+ (WebKit::WebContext::disconnectProcess): Ditto.
+ (WebKit::WebContext::createWebPage): Ditto.
+ (WebKit::WebContext::download): Ditto.
+ (WebKit::WebContext::getWebCoreStatistics): Ditto.
+
+ * UIProcess/Plugins/WebPluginSiteDataManager.cpp:
+ (WebKit::WebPluginSiteDataManager::getSitesWithData):
+ (WebKit::WebPluginSiteDataManager::clearSiteData):
+ Removed FIXMEs - some ports haven't switched to plugin process yet, but that
+ doesn't stop others from having a multi-process model. Added an ASSERT to document
+ this requirement (in addition to the check in WebContext).
+
+ * UIProcess/Downloads/DownloadProxy.cpp:
+ (WebKit::DownloadProxy::cancel):
+ (WebKit::DownloadProxy::didReceiveAuthenticationChallenge):
+ (WebKit::DownloadProxy::startTransfer):
+ * UIProcess/WebApplicationCacheManagerProxy.cpp:
+ (WebKit::WebApplicationCacheManagerProxy::getApplicationCacheOrigins):
+ (WebKit::WebApplicationCacheManagerProxy::deleteEntriesForOrigin):
+ (WebKit::WebApplicationCacheManagerProxy::deleteAllEntries):
+ * UIProcess/WebCookieManagerProxy.cpp:
+ (WebKit::WebCookieManagerProxy::getHostnamesWithCookies):
+ (WebKit::WebCookieManagerProxy::getHTTPCookieAcceptPolicy):
+ * UIProcess/WebDatabaseManagerProxy.cpp:
+ (WebKit::WebDatabaseManagerProxy::getDatabasesByOrigin):
+ (WebKit::WebDatabaseManagerProxy::getDatabaseOrigins):
+ (WebKit::WebDatabaseManagerProxy::deleteDatabaseWithNameForOrigin):
+ (WebKit::WebDatabaseManagerProxy::deleteDatabasesForOrigin):
+ (WebKit::WebDatabaseManagerProxy::deleteAllDatabases):
+ (WebKit::WebDatabaseManagerProxy::setQuotaForOrigin):
+ * UIProcess/WebIconDatabase.cpp:
+ (WebKit::WebIconDatabase::getLoadDecisionForIconURL):
+ (WebKit::WebIconDatabase::didFinishURLImport):
+ * UIProcess/WebKeyValueStorageManagerProxy.cpp:
+ (WebKit::WebKeyValueStorageManagerProxy::getKeyValueStorageOrigins):
+ (WebKit::WebKeyValueStorageManagerProxy::deleteEntriesForOrigin):
+ (WebKit::WebKeyValueStorageManagerProxy::deleteAllEntries):
+ * UIProcess/WebMediaCacheManagerProxy.cpp:
+ (WebKit::WebMediaCacheManagerProxy::getHostnamesWithMediaCache):
+ * UIProcess/WebResourceCacheManagerProxy.cpp:
+ (WebKit::WebResourceCacheManagerProxy::getCacheOrigins):
+ (WebKit::WebResourceCacheManagerProxy::clearCacheForOrigin):
+ (WebKit::WebResourceCacheManagerProxy::clearCacheForAllOrigins):
+ Added bug numbers.
+
+2012-09-06 Michael Saboff <msaboff@apple.com>
+
+ WebKit2 IPC always sends strings using 16 bit data format
+ https://bugs.webkit.org/show_bug.cgi?id=95811
+
+ Reviewed by Benjamin Poulain.
+
+ Changed string encoding to pass an 8bit flag and then send either 8 or 16 bit
+ character data.
+
+ * Platform/CoreIPC/ArgumentCoders.cpp:
+ (CoreIPC::::encode):
+ (CoreIPC::decodeStringText): New templatized string creation and decoder method.
+ (CoreIPC::::decode):
+
+2012-09-06 Carlos Garcia Campos <cgarcia@igalia.com>
+
+ [GTK] [WK2] Crash when navigating between pages
+ https://bugs.webkit.org/show_bug.cgi?id=95949
+
+ Reviewed by Martin Robinson.
+
+ Do not trust isMainResource parameter in
+ webkitWebViewResourceLoadStarted(), because it's always true for
+ all subresources of pages loaded from the history cache. We can
+ simply assume that the first resource loaded for the main frame
+ is the main web view resource.
+
+ * UIProcess/API/gtk/WebKitResourceLoadClient.cpp:
+ (didInitiateLoadForResource):
+ * UIProcess/API/gtk/WebKitWebView.cpp:
+ (webkitWebViewResourceLoadStarted):
+ * UIProcess/API/gtk/WebKitWebViewPrivate.h:
+
+2012-09-06 Balazs Kelemen <kbalazs@webkit.org>
+
+ [WK2] Crash in WebPageProxy::showPopupMenu if PageClient does not implement createPopupMenuProxy
+ https://bugs.webkit.org/show_bug.cgi?id=95862
+
+ Reviewed by Simon Hausmann.
+
+ Bail out early if the PageClient does not create a PopupMenuProxy for us.
+
+ * UIProcess/WebPageProxy.cpp:
+ (WebKit::WebPageProxy::showPopupMenu):
+
+2012-09-06 Christophe Dumez <christophe.dumez@intel.com>
+
+ [EFL][WK2] Provide implementation for WebPage::performDefaultBehaviorForKeyEvent()
+ https://bugs.webkit.org/show_bug.cgi?id=95943
+
+ Reviewed by Kenneth Rohde Christiansen.
+
+ Provide implementation for WebPage::performDefaultBehaviorForKeyEvent()
+ in EFL WK2.
+
+ * WebProcess/WebPage/efl/WebPageEfl.cpp:
+ (WebKit::WebPage::performDefaultBehaviorForKeyEvent):
+
+2012-09-06 Patrick Gansterer <paroga@webkit.org>
+
+ Remove String::operator+=() from windows platform code
+ https://bugs.webkit.org/show_bug.cgi?id=95904
+
+ Reviewed by Benjamin Poulain.
+
+ Use StringBuilder and operator+() to concatenate strings instead of operator+=().
+
+ * UIProcess/win/WebView.cpp:
+ (WebKit::imeCompositionArgumentNames):
+
+2012-09-06 Kihong Kwon <kihong.kwon@samsung.com>
+
+ [CMake] Add notifications path to the WebKit2/CMakeLists.txt
+ https://bugs.webkit.org/show_bug.cgi?id=95843
+
+ Reviewed by Laszlo Gombos.
+
+ Add WebCore/Modules/Notifications to the WebKit2_INCLUDE_DIRECTORIES of WebKit2/CMakeLists.txt.
+ There are some build errors when ENABLE_NOTIFICATIONS feature is enabled.
+
+ * CMakeLists.txt:
+
+2012-09-06 Simon Hausmann <simon.hausmann@nokia.com>
+
+ [Qt] Various small Windows / MSVC build fixes
+ https://bugs.webkit.org/show_bug.cgi?id=95934
+
+ Reviewed by Kenneth Rohde Christiansen.
+
+ * Shared/LayerTreeContext.h: Include stdint.h due to the use of uint32_t as layer id.
+ * UIProcess/API/qt/qquickwebview_p.h:
+ (WebKit): Fix struct vs. class forward declaration mismatch, causing linking errors.
+ * UIProcess/API/qt/tests/bytearraytestdata.h: Remove export macro from internal test class
+ that is not used anymore. Using the export macro from a DLL when the code in question is not
+ part of the DLL results in the export macro expanding to dllimport, giving incorrect linkage
+ for the unit test.
+ * WebProcess/qt/WebProcessMainQt.cpp:
+ (WebKit::WebProcessMainQt): Removed explicit call to srandom(), which is not available on Windows.
+ The call appears to be unnecessary in the light of the WTF::initializeThreading() call below, which
+ in turn calls WTF::initializeRandomNumberGenerator(), which does the same thing already (and isn't
+ needed on Windows, as per comment in wtf/RandomNumberSeed.h)
+
+2012-09-06 Simon Hausmann <simon.hausmann@nokia.com>
+
+ [Qt] Fix build with ANGLE on platforms that provide EGL/GLESv2
+ https://bugs.webkit.org/show_bug.cgi?id=95965
+
+ Reviewed by Tor Arne Vestbø.
+
+ Depend on ANGLE if necessary, due to the use WebCore types that pull in ANGLE
+ headers (GraphicsContext3D.h in particular).
+
+ * Target.pri:
+
+2012-09-06 Andras Becsi <andras.becsi@nokia.com>
+
+ [WK2] Make [Qt]ViewportHandler cross platform
+ https://bugs.webkit.org/show_bug.cgi?id=91257
+
+ Reviewed by Kenneth Rohde Christiansen and Simon Hausmann.
+
+ Since QtViewportHandler includes behaviour that is not platform
+ specific together with hooks to the QtQuick API layer, a platform
+ independent implementation would allow other ports to use the
+ viewport controlling functionality provided.
+
+ This patch removes QtViewportHandler and introduces a platform
+ independent PageViewportController class that is responsible
+ for handling requests from the web process (eg. content size
+ changes, viewport attributes changes and scroll position requests).
+ Requests from the web process are acted on by a platform specific
+ client class which implements the PageViewportControllerClient
+ interface which provides hooks to the platform specific API layer.
+
+ The PageViewportController is also responsible to notify the web
+ process about changes in the viewport state (eg. viewport size,
+ visible rect, content scale and movement trajectory).
+ The client is responsible to delegate these UI changes to the
+ PageViewportController.
+
+ For now only PageViewportControllerClientQt implements the client
+ interface besides providing other QQuick specific functionality
+ (gestures, animations, etc).
+
+ * Target.pri:
+ * UIProcess/API/qt/qquickwebpage_p_p.h:
+ * UIProcess/API/qt/qquickwebview.cpp:
+ (QQuickWebViewPrivate::onComponentComplete):
+ (QQuickWebViewFlickablePrivate::~QQuickWebViewFlickablePrivate):
+ (QQuickWebViewFlickablePrivate::didChangeViewportProperties):
+ (QQuickWebViewFlickablePrivate::updateViewportSize):
+ (QQuickWebViewFlickablePrivate::pageDidRequestScroll):
+ (QQuickWebViewFlickablePrivate::didChangeContentsSize):
+ * UIProcess/API/qt/qquickwebview_p.h:
+ (WebKit):
+ * UIProcess/API/qt/qquickwebview_p_p.h:
+ (WebKit):
+ (QQuickWebViewPrivate::pageViewportControllerClient):
+ (QQuickWebViewPrivate):
+ (QQuickWebViewFlickablePrivate):
+ * UIProcess/API/qt/qwebkittest.cpp:
+ (QWebKitTest::viewport):
+ (QWebKitTest::devicePixelRatio):
+ (QWebKitTest::contentsScale):
+ * UIProcess/PageViewportController.cpp: Added.
+ (WebKit):
+ (WebKit::bound):
+ (WebKit::fuzzyCompare):
+ (WebKit::boundPosition):
+ (WebKit::ViewportUpdateDeferrer::ViewportUpdateDeferrer):
+ (WebKit::ViewportUpdateDeferrer::~ViewportUpdateDeferrer):
+ (WebKit::PageViewportController::PageViewportController):
+ (WebKit::PageViewportController::convertFromViewport):
+ (WebKit::PageViewportController::convertToViewport):
+ (WebKit::PageViewportController::innerBoundedContentsScale):
+ (WebKit::PageViewportController::outerBoundedContentsScale):
+ (WebKit::PageViewportController::didChangeContentsSize):
+ (WebKit::PageViewportController::pageDidRequestScroll):
+ (WebKit::PageViewportController::setViewportSize):
+ (WebKit::PageViewportController::setVisibleContentsRect):
+ (WebKit::PageViewportController::syncVisibleContents):
+ (WebKit::PageViewportController::didChangeViewportAttributes):
+ (WebKit::PageViewportController::suspendContent):
+ (WebKit::PageViewportController::resumeContent):
+ (WebKit::PageViewportController::positionRangeForContentAtScale):
+ * UIProcess/PageViewportController.h: Added.
+ (WebCore):
+ (WebKit):
+ (ViewportUpdateDeferrer):
+ (PageViewportController):
+ (WebKit::PageViewportController::~PageViewportController):
+ (WebKit::PageViewportController::hasSuspendedContent):
+ (WebKit::PageViewportController::hadUserInteraction):
+ (WebKit::PageViewportController::allowsUserScaling):
+ (WebKit::PageViewportController::contentsLayoutSize):
+ (WebKit::PageViewportController::devicePixelRatio):
+ (WebKit::PageViewportController::minimumContentsScale):
+ (WebKit::PageViewportController::maximumContentsScale):
+ (WebKit::PageViewportController::setHadUserInteraction):
+ * UIProcess/PageViewportControllerClient.h: Added.
+ (WebKit):
+ (PageViewportControllerClient):
+ (WebKit::PageViewportControllerClient::PageViewportControllerClient):
+ (WebKit::PageViewportControllerClient::~PageViewportControllerClient):
+ * UIProcess/qt/PageViewportControllerClientQt.cpp: Added.
+ (WebKit):
+ (WebKit::PageViewportControllerClientQt::PageViewportControllerClientQt):
+ (WebKit::PageViewportControllerClientQt::ScaleAnimation::updateCurrentValue):
+ (WebKit::PageViewportControllerClientQt::~PageViewportControllerClientQt):
+ (WebKit::PageViewportControllerClientQt::setContentRectVisiblePositionAtScale):
+ (WebKit::PageViewportControllerClientQt::animateContentRectVisible):
+ (WebKit::PageViewportControllerClientQt::flickMoveStarted):
+ (WebKit::PageViewportControllerClientQt::flickMoveEnded):
+ (WebKit::PageViewportControllerClientQt::pageItemPositionChanged):
+ (WebKit::PageViewportControllerClientQt::scaleAnimationStateChanged):
+ (WebKit::PageViewportControllerClientQt::touchBegin):
+ (WebKit::PageViewportControllerClientQt::touchEnd):
+ (WebKit::PageViewportControllerClientQt::focusEditableArea):
+ (WebKit::PageViewportControllerClientQt::zoomToAreaGestureEnded):
+ (WebKit::PageViewportControllerClientQt::nearestValidVisibleContentsRect):
+ (WebKit::PageViewportControllerClientQt::setContentsPosition):
+ (WebKit::PageViewportControllerClientQt::setContentsScale):
+ (WebKit::PageViewportControllerClientQt::setContentsRectToNearestValidBounds):
+ (WebKit::PageViewportControllerClientQt::didResumeContent):
+ (WebKit::PageViewportControllerClientQt::allowsUserScaling):
+ (WebKit::PageViewportControllerClientQt::devicePixelRatio):
+ (WebKit::PageViewportControllerClientQt::minimumContentsScale):
+ (WebKit::PageViewportControllerClientQt::maximumContentsScale):
+ (WebKit::PageViewportControllerClientQt::currentContentsScale):
+ (WebKit::PageViewportControllerClientQt::contentsLayoutSize):
+ (WebKit::PageViewportControllerClientQt::scrollAnimationActive):
+ (WebKit::PageViewportControllerClientQt::panGestureActive):
+ (WebKit::PageViewportControllerClientQt::panGestureStarted):
+ (WebKit::PageViewportControllerClientQt::panGestureRequestUpdate):
+ (WebKit::PageViewportControllerClientQt::panGestureEnded):
+ (WebKit::PageViewportControllerClientQt::panGestureCancelled):
+ (WebKit::PageViewportControllerClientQt::scaleAnimationActive):
+ (WebKit::PageViewportControllerClientQt::cancelScrollAnimation):
+ (WebKit::PageViewportControllerClientQt::interruptScaleAnimation):
+ (WebKit::PageViewportControllerClientQt::pinchGestureActive):
+ (WebKit::PageViewportControllerClientQt::pinchGestureStarted):
+ (WebKit::PageViewportControllerClientQt::pinchGestureRequestUpdate):
+ (WebKit::PageViewportControllerClientQt::pinchGestureEnded):
+ (WebKit::PageViewportControllerClientQt::pinchGestureCancelled):
+ (WebKit::PageViewportControllerClientQt::visibleContentsRect):
+ (WebKit::PageViewportControllerClientQt::didChangeContentsSize):
+ (WebKit::PageViewportControllerClientQt::didChangeVisibleContents):
+ (WebKit::PageViewportControllerClientQt::didChangeViewportAttributes):
+ (WebKit::PageViewportControllerClientQt::updateViewportController):
+ (WebKit::PageViewportControllerClientQt::scaleContent):
+ (WebKit::PageViewportControllerClientQt::viewportScaleForRect):
+ * UIProcess/qt/PageViewportControllerClientQt.h: Added.
+ (WebKit):
+ (PageViewportControllerClientQt):
+ (WebKit::PageViewportControllerClientQt::setController):
+ (ScaleAnimation):
+ (WebKit::PageViewportControllerClientQt::ScaleAnimation::ScaleAnimation):
+ (WebKit::PageViewportControllerClientQt::ScaleStackItem::ScaleStackItem):
+ (ScaleStackItem):
+ * UIProcess/qt/QtGestureRecognizer.cpp:
+ (WebKit::QtGestureRecognizer::viewportController):
+ * UIProcess/qt/QtGestureRecognizer.h:
+ (WebKit):
+ * UIProcess/qt/QtPanGestureRecognizer.cpp:
+ (WebKit::QtPanGestureRecognizer::update):
+ (WebKit::QtPanGestureRecognizer::finish):
+ (WebKit::QtPanGestureRecognizer::cancel):
+ * UIProcess/qt/QtPinchGestureRecognizer.cpp:
+ (WebKit::QtPinchGestureRecognizer::update):
+ (WebKit::QtPinchGestureRecognizer::finish):
+ (WebKit::QtPinchGestureRecognizer::cancel):
+ * UIProcess/qt/QtViewportHandler.cpp: Removed.
+ * UIProcess/qt/QtWebPageEventHandler.cpp:
+ (WebKit::QtWebPageEventHandler::QtWebPageEventHandler):
+ (WebKit::QtWebPageEventHandler::setViewportController):
+ (WebKit::QtWebPageEventHandler::inputPanelVisibleChanged):
+ (WebKit::QtWebPageEventHandler::handleInputEvent):
+ (WebKit::QtWebPageEventHandler::doneWithTouchEvent):
+ (WebKit::QtWebPageEventHandler::didFindZoomableArea):
+ * UIProcess/qt/QtWebPageEventHandler.h:
+ (WebKit):
+ (QtWebPageEventHandler):
+ (WebKit::QtWebPageEventHandler::viewportController):
+
+2012-09-06 Ryuan Choi <ryuan.choi@samsung.com>
+
+ [EFL][WK2] WebMemorySampler.cpp is included twice.
+ https://bugs.webkit.org/show_bug.cgi?id=95910
+
+ Reviewed by Kentaro Hara.
+
+ Now WebMemorySampler.cpp is in CMakeLists.txt and PlatformEfl.cmake.
+
+ * PlatformEfl.cmake: Removed WebMemorySampler.cpp from source lists.
+
+2012-09-05 Ryuan Choi <ryuan.choi@samsung.com>
+
+ [EFL][WK2] Implement missing feature to support <select> tag
+ https://bugs.webkit.org/show_bug.cgi?id=95708
+
+ Reviewed by Gyuyoung Kim.
+
+ Added missing APIs for select tag.
+
+ This patch provides all functionality of current WebPopupItem to applications.
+
+ * UIProcess/API/efl/ewk_popup_menu_item.cpp:
+ (_Ewk_Popup_Menu_Item):
+ (_Ewk_Popup_Menu_Item::_Ewk_Popup_Menu_Item):
+ (ewk_popup_menu_item_new):
+ (ewk_popup_menu_item_text_direction_get):
+ (ewk_popup_menu_item_text_direction_override_get):
+ (ewk_popup_menu_item_tooltip_get):
+ (ewk_popup_menu_item_accessibility_text_get):
+ (ewk_popup_menu_item_enabled_get):
+ (ewk_popup_menu_item_is_label_get):
+ (ewk_popup_menu_item_selected_get):
+ * UIProcess/API/efl/ewk_popup_menu_item.h:
+ * UIProcess/API/efl/ewk_popup_menu_item_private.h:
+ * UIProcess/API/efl/ewk_view.cpp:
+ (ewk_view_popup_menu_request):
+ * UIProcess/API/efl/tests/test_ewk2_view.cpp:
+ (checkBasicPopupMenuItem):
+ (showPopupMenu): Updated test case to cover new APIs.
+ (TEST_F):
+
+2012-09-05 Christophe Dumez <christophe.dumez@intel.com>
+
+ [EFL][WK2] Provide implementation for WebProcess functions
+ https://bugs.webkit.org/show_bug.cgi?id=95857
+
+ Reviewed by Kenneth Rohde Christiansen.
+
+ Rename WebProcessGtk to WebProcessSoup and reuse it in
+ EFL port since all the code is soup-related. We now
+ have a proper implementation for the WebProcess
+ platform methods.
+
+ * GNUmakefile.list.am:
+ * PlatformEfl.cmake:
+ * WebProcess/efl/WebProcessEfl.cpp: Removed.
+ * WebProcess/efl/WebProcessMainEfl.cpp:
+ (WebKit::WebProcessMainEfl): Enable soup cache for the soup session similarly to GTK port.
+ * WebProcess/soup/WebProcessSoup.cpp: Renamed from Source/WebKit2/WebProcess/gtk/WebProcessGtk.cpp.
+ (WebKit):
+ (WebKit::getCacheDiskFreeSize):
+ (WebKit::getMemorySize):
+ (WebKit::WebProcess::platformSetCacheModel):
+ (WebKit::WebProcess::platformClearResourceCaches):
+ (WebKit::buildAcceptLanguages):
+ (WebKit::setSoupSessionAcceptLanguage):
+ (WebKit::languageChanged):
+ (WebKit::WebProcess::platformInitializeWebProcess):
+ (WebKit::WebProcess::platformTerminate):
+
+2012-09-05 Benjamin Poulain <bpoulain@apple.com>
+
+ More fixes for String::operator+=() on Mac
+ https://bugs.webkit.org/show_bug.cgi?id=95880
+
+ Reviewed by Adam Barth.
+
+ * UIProcess/WebInspectorProxy.cpp:
+ (WebKit::WebInspectorProxy::createInspectorPage): This is a legitimate use of append(),
+ there is no other concatenation outside that branch.
+ * WebProcess/Plugins/Netscape/NetscapeBrowserFuncs.cpp:
+ (WebKit::parseRFC822HeaderFields): Use string operators instead of +=.
+ * WebProcess/Plugins/Netscape/NetscapePlugin.cpp:
+ (WebKit::NetscapePlugin::userAgent): Another legitimate use of append().
+
+2012-09-05 Alexey Proskuryakov <ap@apple.com>
+
+ [WK2] Make visited link tracking work in multi-process mode
+ https://bugs.webkit.org/show_bug.cgi?id=95869
+
+ Reviewed by Dan Bernstein.
+
+ * UIProcess/VisitedLinkProvider.h:
+ * UIProcess/VisitedLinkProvider.cpp:
+ (WebKit::VisitedLinkProvider::VisitedLinkProvider): m_webProcessHasVisitedLinkState
+ was making no sense in multi-process world, so it was let go.
+ (WebKit::VisitedLinkProvider::processDidFinishLaunching): Track new processes.
+ (WebKit::VisitedLinkProvider::processDidClose): Clean up pointers that are going
+ to become stale.
+ (WebKit::VisitedLinkProvider::pendingVisitedLinksTimerFired): Added comments. Fixed
+ a bug where we would churn table size in some cases. Added debug logging in failure
+ case. Re-implemented messaging code to work with multiple web processes.
+
+ * UIProcess/WebContext.cpp:
+ (WebKit::WebContext::processDidFinishLaunching): Pass process proxy pointer to
+ m_visitedLinkProvider, as it now needs to track processes.
+ (WebKit::WebContext::disconnectProcess): Ditto. Also re-enabled visited link provider
+ cleanup in multi-process mode.
+
+2012-09-05 Brady Eidson <beidson@apple.com>
+
+ Frequent crashes in PluginView::scriptObject under runtimeObjectCustomGetOwnPropertySlot
+ <rdar://problem/12142226> and https://bugs.webkit.org/show_bug.cgi?id=95026
+
+ Patch partially by Andras Becsi <andras.becsi@nokia.com>
+
+ Reviewed by Andy Estes.
+
+ If a plug-in fails to initialize then the m_plugin pointer is cleared out.
+ When accessing the script object it is appropriate to unconditionally null check m_plugin.
+
+ * WebProcess/Plugins/PluginView.cpp:
+ (WebKit::PluginView::scriptObject): Null check m_plugin before trying to use it.
+
+2012-09-05 Christophe Dumez <christophe.dumez@intel.com>
+
+ [EFL][WK2] Provide implementation for WebFrameNetworkingContext
+ https://bugs.webkit.org/show_bug.cgi?id=95826
+
+ Reviewed by Kenneth Rohde Christiansen.
+
+ Remove EFL-specific and empty implementation for WebFrameNetworkingContext
+ and use the existing soup implementation instead.
+
+ * PlatformEfl.cmake:
+ * WebProcess/WebCoreSupport/efl/WebFrameNetworkingContext.h: Removed.
+
+2012-09-05 Kaustubh Atrawalkar <kaustubh@motorola.com>
+
+ [DRT] LTC:: Move printing related APIs from LayoutTestController to Internals
+ https://bugs.webkit.org/show_bug.cgi?id=92735
+
+ Reviewed by Hajime Morita.
+
+ Move numberOfPages, pageProperty & pageSizeAndMarginsInPixels in Internals and remove duplicated code from DumprenderTree & WebkitTestRunner.
+ Add symbols for Mac Win builds for corresponding newly added APIs.
+
+ * win/WebKit2.def:
+ * win/WebKit2CFLite.def:
+
+2012-09-05 Balazs Kelemen <kbalazs@webkit.org>
+
+ [Qt] QRawWebViewPrivate does not initialize some members
+ https://bugs.webkit.org/show_bug.cgi?id=95709
+
+ Reviewed by Luiz Agostini.
+
+ Don't miss initializing the bool flags.
+
+ * UIProcess/API/qt/raw/qrawwebview.cpp:
+ (QRawWebViewPrivate::QRawWebViewPrivate):
+
+2012-09-04 Kangil Han <kangil.han@samsung.com>
+
+ [WK2] Use explicit constructor in InjectedBundle.
+ https://bugs.webkit.org/show_bug.cgi?id=95746
+
+ Reviewed by Sam Weinig.
+
+ Added explicit keyword in constructor of InjectedBundle in order to avoid implicit type conversion.
+
+ * WebProcess/InjectedBundle/InjectedBundle.h:
+ (InjectedBundle):
+
+2012-09-03 Sam Weinig <sam@webkit.org>
+
+ Part 1 of removing PlatformString.h, move remaining functions to new homes
+ https://bugs.webkit.org/show_bug.cgi?id=95702
+
+ Reviewed by Beth Dakin.
+
+ * UIProcess/WebPageProxy.h:
+ Forward declare SharedBuffer.
+
+2012-09-04 Jeffrey Pfau <jpfau@apple.com>
+
+ Make plugins respect third-party storage blocking setting
+ https://bugs.webkit.org/show_bug.cgi?id=94888
+
+ Reviewed by Brady Eidson.
+
+ Plugins that are in a third-party context should be put into private browsing mode so their storage is temporary.
+
+ * WebProcess/Plugins/PluginView.cpp:
+ (WebKit::PluginView::isPrivateBrowsingEnabled): Put the plugin into private browsing mode if it is in a third-party context.
+ (WebKit::PluginView::privateBrowsingStateChanged): Make sure a plugin doesn't leave private browsing mode if it's in a third-party context.
+
+2012-09-04 Pekka Vuorela <pvuorela@iki.fi>
+
+ [Qt] Remove use of deprecated QInputMethod method
+ https://bugs.webkit.org/show_bug.cgi?id=95741
+
+ Reviewed by Simon Hausmann.
+
+ Adapt from deprecated QInputMethod::visible() to isVisible().
+
+ * UIProcess/qt/QtWebPageEventHandler.cpp:
+ (WebKit::setInputPanelVisible):
+ (WebKit::QtWebPageEventHandler::inputPanelVisibleChanged):
+
+2012-09-04 Allan Sandfeld Jensen <allan.jensen@nokia.com>
+
+ Allow child-frame content in hit-tests.
+ https://bugs.webkit.org/show_bug.cgi?id=95204
+
+ Reviewed by Antonio Gomes.
+
+ Update symbols for the Windows build-system.
+
+ * win/WebKit2.def:
+ * win/WebKit2CFLite.def:
+
+2012-09-04 Ryuan Choi <ryuan.choi@samsung.com>
+
+ [EFL] Drop default theme concept
+ https://bugs.webkit.org/show_bug.cgi?id=94778
+
+ Reviewed by Gyuyoung Kim.
+
+ * PlatformEfl.cmake: Removed DEFAULT_THEME_PATH definitions.
+ * UIProcess/API/efl/ewk_view.cpp:
+ (_ewk_view_initialize): Removed default theme concept.
+ * UIProcess/API/efl/ewk_view.h:
+ Updated doxygen document not to mention default theme.
+
+2012-09-03 Kangil Han <kangil.han@samsung.com>
+
+ [WK2][WTR] Implement WebKitEnableCaretBrowsing attribute in testRunner.overridePreference
+ https://bugs.webkit.org/show_bug.cgi?id=95576
+
+ Reviewed by Maciej Stachowiak.
+
+ Added a line of macro to implement WebKitEnableCaretBrowsing attribute in testRunner.overridePreference
+
+ * WebProcess/InjectedBundle/InjectedBundle.cpp:
+ (WebKit::InjectedBundle::overrideBoolPreferenceForTestRunner):
+
+2012-09-03 Allan Sandfeld Jensen <allan.jensen@nokia.com>
+
+ [Qt] Not all activated elements highlighted, but some frames are
+ https://bugs.webkit.org/show_bug.cgi?id=95683
+
+ Reviewed by Kenneth Rohde Christiansen.
+
+ Use the new function Node::willRespondToMouseClickEvents to better determine if the element
+ can be tap-activated and avoid documents and frames completely.
+
+ * WebProcess/WebPage/WebPage.cpp:
+ (WebKit::WebPage::highlightPotentialActivation):
+
+2012-09-03 Eunmi Lee <eunmi15.lee@samsung.com>
+
+ [EFL][WK2] Add ewk_settings.
+ https://bugs.webkit.org/show_bug.cgi?id=91206
+
+ Reviewed by Gyuyoung Kim.
+
+ Add the ewk_settings which wraps the WKPreferencesRef.
+ The ewk_settings will be created by the ewk_view and it will be
+ destroyed when the ewk_view is destroyed. I make each view to have
+ its own group to make one ewk_settings sets preferences only for
+ one ewk_view.
+ The application can get the ewk_settings from ewk_view using
+ ewk_view_settings_get() API.
+
+ * UIProcess/API/efl/EWebKit2.h:
+ * UIProcess/API/efl/ewk_settings.cpp: Added.
+ (ewk_settings_enable_scripts_set):
+ (ewk_settings_enable_scripts_get):
+ (ewk_settings_auto_load_images_set):
+ (ewk_settings_auto_load_images_get):
+ * UIProcess/API/efl/ewk_settings.h: Added.
+ * UIProcess/API/efl/ewk_settings_private.h: Added.
+ (_Ewk_Settings):
+ (_Ewk_Settings::_Ewk_Settings):
+ * UIProcess/API/efl/ewk_view.cpp:
+ (_Ewk_View_Private_Data):
+ (_ewk_view_initialize):
+ (ewk_view_settings_get):
+ * UIProcess/API/efl/ewk_view.h:
+ * UIProcess/API/efl/tests/test_ewk2_settings.cpp: Added.
+ (TEST_F):
+ * UIProcess/API/efl/tests/test_ewk2_view.cpp:
+ (TEST_F):
+
+2012-09-03 Allan Sandfeld Jensen <allan.jensen@nokia.com>
+
+ Wheel-events fails temporarily after reload
+ https://bugs.webkit.org/show_bug.cgi?id=94934
+
+ Reviewed by Kenneth Rohde Christiansen.
+
+ Set fixed visible content rect using visibleContentBounds instead of WebPage::size. Otherwise the
+ content rect will be incorrectly set to the entire document size, when resizesToContents is active.
+
+ Test: UIProcess/API/qt/tests/qmltests/WebView/tst_wheelEventHandling.qml
+
+ * UIProcess/API/qt/tests/qmltests/WebView/tst_wheelEventHandling.qml:
+ * WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
+ (WebKit::WebFrameLoaderClient::transitionToCommittedForNewPage):
+
+2012-09-03 Jinwoo Song <jinwoo7.song@samsung.com>
+
+ [EFL] Use WebKitVersion.h to get version information
+ https://bugs.webkit.org/show_bug.cgi?id=95669
+
+ Reviewed by Gyuyoung Kim.
+
+ Use WEBKIT_MAJOR_VERSION and WEBKIT_MINOR_VERSION
+ in the WebKitVersion.h
+
+ * UIProcess/efl/WebPageProxyEfl.cpp:
+ (WebKit::WebPageProxy::standardUserAgent):
+
+2012-09-03 Christophe Dumez <christophe.dumez@intel.com>
+
+ [EFL][WK2] Skip EWK2UnitTestBase.ewk_cookie_manager_permanent_storage API test
+ https://bugs.webkit.org/show_bug.cgi?id=95671
+
+ Reviewed by Kenneth Rohde Christiansen.
+
+ Skip EWK2UnitTestBase.ewk_cookie_manager_permanent_storage
+ API test since it is flaky on the bots.
+
+ * UIProcess/API/efl/tests/test_ewk2_cookie_manager.cpp:
+ (TEST_F):
+
+2012-09-02 Kenichi Ishibashi <bashi@chromium.org>
+
+ WK2: Build failure on SnowLeopard after r127384
+ https://bugs.webkit.org/show_bug.cgi?id=95665
+
+ Reviewed by Dan Bernstein.
+
+ Add SandboxExtension::consumePermanently(const Handle&) for !ENABLE(WEB_PROCESS_SANDBOX) to fix link error.
+
+ * Shared/SandboxExtension.h:
+ (WebKit::SandboxExtension::consumePermanently):
+
+2012-09-02 Ryuan Choi <ryuan.choi@samsung.com>
+
+ [EFL][WK2] Keep activePopupMenu to call valueChangedForPopupMenu() outside showPopupMenu()
+ https://bugs.webkit.org/show_bug.cgi?id=95355
+
+ Reviewed by Gyuyoung Kim.
+
+ Efl does not have a proper way to support nested loop so that applications
+ may change value after showPopupMenu() is finished.
+
+ * UIProcess/API/efl/tests/test_ewk2_view.cpp: Improved test case to cover this bug.
+ (selectItemAfterDelayed):
+ (showPopupMenu):
+ * UIProcess/WebPageProxy.cpp:
+ (WebKit::WebPageProxy::showPopupMenu):
+ Guard with !PLATFORM(EFL) to keep the activePopupMenu valid to call valueChangedForPopupMenu
+ outside showPopupMenu().
+
+2012-09-02 Byungwoo Lee <bw80.lee@gmail.com>
+
+ [EFL] Add missing semicolon at the end of some lines.
+ https://bugs.webkit.org/show_bug.cgi?id=95640
+
+ Reviewed by Gyuyoung Kim.
+
+ EWK_VIEW_PRIV_GET_OR_RETURN macro and other related macro can be used
+ without semicolon, because it ends with a semicolon or complete block.
+ This can make a human mistake about missing semicolon.
+
+ Fixed the macros to require semicolon, and added missing semicolons.
+
+ * UIProcess/API/efl/ewk_view.cpp:
+ (_ewk_view_smart_focus_in):
+ (_ewk_view_smart_focus_out):
+ (_ewk_view_smart_mouse_wheel):
+ (_ewk_view_smart_mouse_down):
+ (_ewk_view_smart_mouse_up):
+ (_ewk_view_smart_mouse_move):
+ (_ewk_view_smart_key_down):
+ (_ewk_view_smart_key_up):
+ (_ewk_view_initialize):
+
+2012-09-01 Sam Weinig <sam@webkit.org>
+
+ Remove unused member variable from WebProcess.
+
+ Rubber-stamped by Dan Bernstein.
+
+ * WebProcess/WebProcess.h:
+ (WebProcess):
+ Remove m_applicationCachePathExtension.
+
+2012-09-01 Sam Weinig <sam@webkit.org>
+
+ Use dynamic sandbox extension rather than sandbox parameters for paths provided by the UIProcess
+ https://bugs.webkit.org/show_bug.cgi?id=95651
+
+ Reviewed by Dan Bernstein.
+
+ This is the first step to not relying on the initialization message to initialize
+ the sandbox.
+
+ * Shared/SandboxExtension.h:
+ (SandboxExtension):
+ * Shared/mac/SandboxExtensionMac.mm:
+ (WebKit::SandboxExtension::consumePermanently):
+ Add static version of SandboxExtension::consumePermanently which takes a
+ SandboxExtension::Handle. There is no reason to create a SandboxExtension
+ just to consume it forever.
+
+ * Shared/WebProcessCreationParameters.cpp:
+ (WebKit::WebProcessCreationParameters::encode):
+ (WebKit::WebProcessCreationParameters::decode):
+ * Shared/WebProcessCreationParameters.h:
+ (WebProcessCreationParameters):
+ Add SandboxExtension::Handles for paths we need access to, and remove
+ webInspectorBaseDirectory, which is unused.
+
+ * UIProcess/WebContext.cpp:
+ (WebKit::WebContext::createNewWebProcess):
+ * UIProcess/mac/WebContextMac.mm:
+ (WebKit::WebContext::platformInitializeWebProcess):
+ Create SandboxExtension::Handles for paths we need access to, and move
+ getting the presenterApplicationPid to platformInitializeWebProcess, since
+ it is Mac only.
+
+ * WebProcess/WebProcess.cpp:
+ (WebKit::WebProcess::initializeWebProcess):
+ Move setting the presenterApplicationPid to platformInitializeWebProcess.
+
+ * WebProcess/mac/WebProcessMac.mm:
+ (WebKit::initializeSandbox):
+ (WebKit::WebProcess::platformInitializeWebProcess):
+ Replace the use of sandbox parameters for opening access for necessary paths
+ with permanent consumption of sandbox extensions.
+
+ * WebProcess/com.apple.WebProcess.sb.in:
+ Remove sandbox rules that are now handled via extensions.
+
+2012-08-31 Byungwoo Lee <bw80.lee@samsung.com>
+
+ Build warning : -Wformat on WebMemorySampler.cpp.
+ https://bugs.webkit.org/show_bug.cgi?id=95550
+
+ Reviewed by Darin Adler.
+
+ Fix build warning.
+ Use String::number instead of String::format.
+
+ * Shared/WebMemorySampler.cpp:
+ (WebKit::WebMemorySampler::appendCurrentMemoryUsageToFile):
+
+2012-08-31 Alexey Proskuryakov <ap@apple.com>
+
+ [WK2] Use initial process in multi-process mode, too
+ https://bugs.webkit.org/show_bug.cgi?id=95612
+
+ Reviewed by Sam Weinig.
+
+ * UIProcess/WebContext.cpp:
+ (WebKit::WebContext::WebContext):
+ (WebKit::WebContext::warmInitialProcess):
+ (WebKit::WebContext::disconnectProcess):
+ (WebKit::WebContext::createWebPage):
+ * UIProcess/WebContext.h:
+ Added a boolean telling whether the last (normally, the only) process in m_processes
+ is available for use in a new page.
+
+2012-08-31 Alexey Proskuryakov <ap@apple.com>
+
+ [WK2] WebProcesses should not wait 60 seconds to close in multi-process mode
+ https://bugs.webkit.org/show_bug.cgi?id=95616
+
+ Reviewed by Darin Adler.
+
+ * Shared/ChildProcess.cpp: (WebKit::ChildProcess::ChildProcess):
+ * Shared/ChildProcess.h: (WebKit::ChildProcess::setTerminationTimeout):
+ Expose a setter for timeout instead of taking it at construction time. If a derived
+ class doesn't call the setter, default to 0.
+
+ * PluginProcess/PluginProcess.cpp:
+ (WebKit::PluginProcess::PluginProcess):
+ (WebKit::PluginProcess::initializePluginProcess):
+ Use timeout from initialization message.
+
+ * WebProcess/WebProcess.cpp:
+ (WebKit::WebProcess::WebProcess):
+ (WebKit::WebProcess::initializeWebProcess):
+ Ditto.
+
+ * Shared/Plugins/PluginProcessCreationParameters.cpp:
+ (WebKit::PluginProcessCreationParameters::encode):
+ (WebKit::PluginProcessCreationParameters::decode):
+ * Shared/Plugins/PluginProcessCreationParameters.h:
+ * Shared/WebProcessCreationParameters.cpp:
+ (WebKit::WebProcessCreationParameters::encode):
+ (WebKit::WebProcessCreationParameters::decode):
+ * Shared/WebProcessCreationParameters.h:
+ Funnel timeout across process boundary.
+
+ * UIProcess/Plugins/PluginProcessProxy.cpp: (WebKit::PluginProcessProxy::didFinishLaunching):
+ Pass timeout as initialization message after launch.
+
+ * UIProcess/WebContext.cpp:
+ (WebKit::WebContext::createNewWebProcess): Pass timeout as initialization message
+ (unlike plugin process proxy, web process proxy doesn't wait, and relies on the message
+ being queued).
+ (WebKit::WebContext::disconnectProcess): Skip invalidating global managers when
+ one process quits. We still need to do something, but running this code would just
+ result in assertion failures any time a page was closed.
+
+2012-08-31 Brady Eidson <beidson@apple.com>
+
+ REGRESSION (r127252): incomplete repaint on Flash element after pinch to zoom
+ <rdar://problem/12217897> and https://bugs.webkit.org/show_bug.cgi?id=95607
+
+ Reviewed by Simon Fraser.
+
+ * WebProcess/Plugins/PluginView.cpp:
+ (WebKit::PluginView::viewGeometryDidChange): Only give the window coordinate clip rect a chance
+ to override the boundsRect() if the page scale factor is 1.
+
+2012-08-31 Tony Chang <tony@chromium.org>
+
+ Remove ENABLE_CSS3_FLEXBOX compile time flag
+ https://bugs.webkit.org/show_bug.cgi?id=95382
+
+ Reviewed by Ojan Vafai.
+
+ Everyone is already enabling this by default and the spec has stablized.
+
+ * Configurations/FeatureDefines.xcconfig:
+
+2012-08-31 Pratik Solanki <psolanki@apple.com>
+
+ objc_msgSend and IMP should be cast appropriately before using
+ https://bugs.webkit.org/show_bug.cgi?id=95242
+
+ Reviewed by Benjamin Poulain.
+
+ Follow on fix for Mac EWS - use objc-runtime.h instead of runtime.h so
+ that it finds the declaration for objc_msgSend.
+
+ * UIProcess/API/mac/PDFViewController.mm:
+
+2012-08-31 Jon Lee <jonlee@apple.com>
+
+ [Tests] Add basic tests to http/tests/notifications
+ https://bugs.webkit.org/show_bug.cgi?id=95493
+ <rdar://problem/12209303>
+
+ Reviewed by Alexey Proskuryakov.
+
+ Simplify the passing of the permission policy to just a boolean instead of converting it
+ back and forth from the NotificationClient::Permission enum.
+
+ * WebProcess/InjectedBundle/API/c/WKBundlePrivate.h: Move the declaration to the section
+ of functions that are TestRunner SPI.
+ * WebProcess/InjectedBundle/InjectedBundle.cpp:
+ (WebKit::InjectedBundle::setWebNotificationPermission): Use a boolean.
+ * WebProcess/Notifications/NotificationPermissionRequestManager.cpp:
+ (WebKit::NotificationPermissionRequestManager::setPermissionLevelForTesting):
+ * WebProcess/Notifications/NotificationPermissionRequestManager.h:
+ (NotificationPermissionRequestManager):
+
+ * win/WebKit2.vcproj: Add WKNotificationPermissionRequest.{h,cpp}.
+ * win/WebKit2Generated.make: Export WKNotificationPermissionRequest.h.
+
+2012-08-31 Balazs Kelemen <kbalazs@webkit.org>
+
+ [Qt] ASSERT(m_useFixedLayout) in WebPage when using QRawWebView without setting fixed layout
+ https://bugs.webkit.org/show_bug.cgi?id=95557
+
+ Reviewed by Noam Rosenthal.
+
+ Let QRawWebView work with non-fixed layout size.
+
+ * UIProcess/API/qt/raw/qrawwebview.cpp:
+ (QRawWebView::setSize): Also put the member assigment into
+ the point where the new size is ensured to be committed.
+
+2012-08-31 Balazs Kelemen <kbalazs@webkit.org>
+
+ [Qt] LayerTreeRenderer::callOnMainTread method name is misleading
+ https://bugs.webkit.org/show_bug.cgi?id=95558
+
+ Reviewed by Kenneth Rohde Christiansen.
+
+ Fix the typo in the function name so callers will really call this
+ and not WTF::callOnMainThread. Renamed to dispatchOnMainThread to
+ make it clear that these things are not the same.
+
+ * UIProcess/CoordinatedGraphics/LayerTreeRenderer.cpp:
+ (WebKit::LayerTreeRenderer::dispatchOnMainThread):
+ (WebKit::LayerTreeRenderer::flushLayerChanges):
+ (WebKit::LayerTreeRenderer::purgeGLResources):
+ * UIProcess/CoordinatedGraphics/LayerTreeRenderer.h:
+ (LayerTreeRenderer):
+
+2012-08-31 Brady Eidson <beidson@apple.com>
+
+ REGRESSION (127047): Crash in PluginProxy::windowVisibilityChanged when changing tabs
+ <rdar://problem/12211180> and https://bugs.webkit.org/show_bug.cgi?id=95515
+
+ Reviewed by Dan Bernstein.
+
+ Plug-ins created in background tabs don't get initialized until they first become visible,
+ so telling them they are now invisible leads to messaging on behalf of an uninitialized plug-in.
+
+ Many other methods related to visibility and focus only call through if the plug-in is initialized,
+ so setWindowIsVisible should do the same.
+
+ * WebProcess/Plugins/PluginView.cpp:
+ (WebKit::PluginView::setWindowIsVisible): Only tell initialized plug-ins of window visibility changes.
+
+2012-08-31 Milian Wolff <milian.wolff@kdab.com>
+
+ [Qt] QNX does not support SOCK_SEQPACKET socket type for socketpair in ProcessLauncherQt
+ https://bugs.webkit.org/show_bug.cgi?id=95553
+
+ Reviewed by Simon Hausmann.
+
+ Calling socketpair with SOCK_SEQPACKET socket type fails on QNX with an error 241 (EPROTOTYPE),
+ as can be seen by the following debug output: "Creation of socket failed with errno: 241".
+ A test app shows that SOCK_DGRAM works properly on QNX, thus use it instead of SOCK_SEQPACKET.
+
+ * UIProcess/Launcher/qt/ProcessLauncherQt.cpp:
+
+2012-08-30 Mark Hahnenberg <mhahnenberg@apple.com>
+
+ ~JSNPObject should call invalidate() if it hasn't been called already
+ https://bugs.webkit.org/show_bug.cgi?id=95497
+
+ Reviewed by Geoffrey Garen.
+
+ Finalization is no longer eager, just like destruction, so the original intent behind
+ this ASSERT in ~JSNPObject is no longer relevant. Therefore, we can just call invalidate()
+ ourselves in ~JSNPObject.
+
+ * WebProcess/Plugins/Netscape/JSNPObject.cpp:
+ (WebKit::JSNPObject::~JSNPObject):
+
+2012-08-30 Sam Weinig <sam@webkit.org>
+
+ Allow dynamic mach-lookup extensions in the WebProcess
+ <rdar://problem/12207996>
+
+ Reviewed by Gavin Barraclough.
+
+ Like we allow file read/write dynamic sandbox extensions, we should allow
+ mach-lookup extensions.
+
+ * WebProcess/com.apple.WebProcess.sb.in:
+
+2012-08-30 Geoffrey Garen <ggaren@apple.com>
+
+ Use one object instead of two for closures, eliminating ScopeChainNode
+ https://bugs.webkit.org/show_bug.cgi?id=95501
+
+ Reviewed by Filip Pizlo.
+
+ Mechanical changes to update for JSC interface change.
+
+2012-08-30 JungJik Lee <jungjik.lee@samsung.com>
+
+ [EFL][WK2] Add WebMemorySampler feature.
+ https://bugs.webkit.org/show_bug.cgi?id=91214
+
+ Reviewed by Kenneth Rohde Christiansen.
+
+ Add WebMemorySampler feature to EFL port. WebMemorySampler records memory usage of
+ WebProcess and UI Process and also it records application memory status in real time.
+ Included items on the result are JIT, JS heap, fastmalloc bytes and
+ application memory info from /proc/process_id/statm.
+
+ * PlatformEfl.cmake:
+ * Shared/linux/WebMemorySamplerLinux.cpp: Added.
+ (WebKit):
+ (ApplicationMemoryStats):
+ (WebKit::nextToken):
+ (WebKit::appendKeyValuePair):
+ (WebKit::sampleMemoryAllocatedForApplication):
+ (WebKit::WebMemorySampler::processName):
+ (WebKit::WebMemorySampler::sampleWebKit):
+ (WebKit::WebMemorySampler::sendMemoryPressureEvent):
+ * UIProcess/API/efl/ewk_context.cpp:
+ (_Ewk_Context::_Ewk_Context):
+
+2012-08-30 Pratik Solanki <psolanki@apple.com>
+
+ objc_msgSend and IMP should be cast appropriately before using
+ https://bugs.webkit.org/show_bug.cgi?id=95242
+
+ Reviewed by Benjamin Poulain.
+
+ Use wtfObjcMsgSend and wtfCallIMP templates which do appropriate casts
+ to a function pointer with right types when calling objc_msgSend and an
+ IMP method directly.
+
+ * UIProcess/API/mac/PDFViewController.mm:
+ (WebKit::PDFViewScrollView_scrollWheel):
+
+2012-08-30 Benjamin Poulain <bpoulain@apple.com>
+
+ Replace JSC::UString by WTF::String
+ https://bugs.webkit.org/show_bug.cgi?id=95271
+
+ Reviewed by Geoffrey Garen.
+
+ Update to code to switch from UString to String.
+
+ * WebProcess/Plugins/Netscape/JSNPMethod.cpp:
+ (WebKit::JSNPMethod::finishCreation):
+ * WebProcess/Plugins/Netscape/JSNPMethod.h:
+ (WebKit::JSNPMethod::create):
+ (JSNPMethod):
+ * WebProcess/Plugins/Netscape/JSNPObject.cpp:
+ (WebKit::npIdentifierFromIdentifier):
+ * WebProcess/Plugins/Netscape/NPRuntimeObjectMap.cpp:
+ (WebKit::NPRuntimeObjectMap::evaluate):
+ (WebKit::NPRuntimeObjectMap::moveGlobalExceptionToExecState):
+
+2012-08-29 Mark Hahnenberg <mhahnenberg@apple.com>
+
+ JSNPObject doesn't always protect its data when calling into plugin code
+ https://bugs.webkit.org/show_bug.cgi?id=95394
+
+ Reviewed by Brady Eidson.
+
+ We need to use NPRuntimeObjectMap::PluginProtector when calling into plugin code since
+ there's no telling what the plugin will do, including destroying itself.
+
+ * WebProcess/Plugins/Netscape/JSNPObject.cpp:
+ (WebKit::JSNPObject::getOwnPropertySlot):
+ (WebKit::JSNPObject::getOwnPropertyDescriptor):
+
+2012-08-30 Mike Sierra <mike.sierra@nokia.com>
+
+ [QT][WK2] webview API doc
+ https://bugs.webkit.org/show_bug.cgi?id=81701
+
+ Reviewed by Simon Hausmann.
+
+ Various improvements and additions to the documentation of the QML WebView element.
+
+ * UIProcess/API/qt/qquickwebview.cpp:
+
+2012-08-29 Kangil Han <kangil.han@samsung.com>
+
+ [EFL][WK2] Replace PageClientImpl with ewk view in constructor of EflViewportHandler.
+ https://bugs.webkit.org/show_bug.cgi?id=95408
+
+ Reviewed by Gyuyoung Kim.
+
+ To keep consistency of implementation, derived classes(from ewk view) should have view reference.
+ From this, derived classes would have less interference from changes that would happen in port specific classes, i.e. PageClientImpl.
+
+ * UIProcess/API/efl/EflViewportHandler.cpp:
+ (WebKit::EflViewportHandler::EflViewportHandler):
+ (WebKit::EflViewportHandler::drawingArea):
+ (WebKit):
+ (WebKit::EflViewportHandler::updateViewportSize):
+ * UIProcess/API/efl/EflViewportHandler.h:
+ (WebKit::EflViewportHandler::create):
+ (EflViewportHandler):
+ * UIProcess/API/efl/ewk_view.cpp:
+ (_ewk_view_initialize):
+
+2012-08-29 Gyuyoung Kim <gyuyoung.kim@samsung.com>
+
+ [WK2] Use ASCIILiteral hotness for DEFINE_STATIC_LOCAL string
+ https://bugs.webkit.org/show_bug.cgi?id=95318
+
+ Reviewed by Benjamin Poulain.
+
+ As recommended by http://trac.webkit.org/wiki/EfficientStrings,
+ WebKit2 needs to use ASCIILiteral for the string of DEFINE_STATIC_LOCAL.
+
+ * Shared/WebError.cpp:
+ (WebKit::WebError::webKitErrorDomain):
+ * Shared/WebPreferencesStore.cpp:
+ (WebPreferencesKey):
+ * UIProcess/InspectorServer/WebInspectorServer.cpp:
+ (WebKit::WebInspectorServer::didReceiveWebSocketUpgradeHTTPRequest):
+ * UIProcess/InspectorServer/qt/WebInspectorServerQt.cpp:
+ (WebKit::remoteInspectorPagePath):
+ * UIProcess/WebDatabaseManagerProxy.cpp:
+ (WebKit::WebDatabaseManagerProxy::originKey):
+ (WebKit::WebDatabaseManagerProxy::originQuotaKey):
+ (WebKit::WebDatabaseManagerProxy::originUsageKey):
+ (WebKit::WebDatabaseManagerProxy::databaseDetailsKey):
+ (WebKit::WebDatabaseManagerProxy::databaseDetailsNameKey):
+ (WebKit::WebDatabaseManagerProxy::databaseDetailsDisplayNameKey):
+ (WebKit::WebDatabaseManagerProxy::databaseDetailsExpectedUsageKey):
+ (WebKit::WebDatabaseManagerProxy::databaseDetailsCurrentUsageKey):
+ * UIProcess/WebPageProxy.cpp:
+ (WebKit::WebPageProxy::executeEditCommand):
+ * WebProcess/WebCoreSupport/WebEditorClient.cpp:
+ (WebKit::WebEditorClient::didBeginEditing):
+ (WebKit::WebEditorClient::respondToChangedContents):
+ (WebKit::WebEditorClient::respondToChangedSelection):
+ (WebKit::WebEditorClient::didEndEditing):
+ * WebProcess/WebProcess.cpp:
+ (WebKit::getWebCoreMemoryCacheStatistics):
+
+2012-08-29 Luciano Wolf <luciano.wolf@openbossa.org>
+
+ [Qt][WK2] ApplicationCache LayoutTests failed
+ https://bugs.webkit.org/show_bug.cgi?id=69541
+
+ Reviewed by Kenneth Rohde Christiansen.
+
+ Returns defaultDiskCacheDirectory when no cache directory was provided.
+ It's used by setOfflineWebApplicationCacheEnabled method that won't work
+ with an invalid cache directory.
+
+ * UIProcess/qt/WebContextQt.cpp:
+ (WebKit::WebContext::applicationCacheDirectory):
+
+2012-08-29 José Dapena Paz <jdapena@igalia.com>
+
+ [Gtk] Process Gtk 3.4 smooth scroll events properly.
+ https://bugs.webkit.org/show_bug.cgi?id=88070
+
+ Gtk 3.3.18 added smooth scroll events, adding a new scroll direction that
+ provides detailed delta information.
+
+ Added GDK_SMOOTH_SCROLL_MASK to the events listened, and added
+ code to process properly the new direction GDK_SCROLL_SMOOTH and
+ its deltas.
+
+ Reviewed by Martin Robinson.
+
+ * Shared/gtk/WebEventFactory.cpp:
+ (WebKit::WebEventFactory::createWebWheelEvent):
+ * UIProcess/API/gtk/WebKitWebViewBase.cpp:
+ (webkitWebViewBaseRealize):
+
+2012-08-29 Brady Eidson <beidson@apple.com>
+
+ REGRESSION: Not sending NPP_SetWindow is causing Flash to not throttle itself
+ <rdar://problem/12133021> and https://bugs.webkit.org/show_bug.cgi?id=95274
+
+ Reviewed by Sam Weinig.
+
+ * UIProcess/API/mac/WKView.mm:
+ (-[WKView viewDidMoveToWindow]): Previously we'd only update window visibility when the window is hidden.
+ Now we also update window visibility when the window is shown.
+
+ * WebProcess/Plugins/Netscape/NetscapePlugin.cpp:
+ (WebKit::NetscapePlugin::callSetWindowInvisible): Call set window with a manufactured empty clip rect to tell
+ the plug-in that it is complete hidden.
+ (WebKit):
+ * WebProcess/Plugins/Netscape/NetscapePlugin.h:
+ (NetscapePlugin):
+ * WebProcess/Plugins/Netscape/mac/NetscapePluginMac.mm:
+ (WebKit::NetscapePlugin::windowVisibilityChanged): Call "callSetWindow" or "callSetWindowInvisible" as appropriate.
+
+ * WebProcess/Plugins/PluginView.cpp:
+ (WebKit::PluginView::setWindowIsVisible): Tell the plugin that its visibility changed.
+ (WebKit::PluginView::viewGeometryDidChange): Grab a clip rect that - although incorrect - at least is correct if
+ the PluginView is completely hidden.
+
+2012-08-29 Jon Lee <jonlee@apple.com>
+
+ Build patch for Qt
+
+ * Target.pri: Missing WKMutableArray.cpp.
+
+2012-08-29 Jon Lee <jonlee@apple.com>
+
+ Build patch for Qt.
+
+ * Target.pri: Export WKArray and WKMutableArray for Qt.
+
+2012-08-29 Jon Lee <jonlee@apple.com>
+
+ Added missing exports for Windows.
+
+ * win/WebKit2Generated.make:
+
+2012-08-29 Jon Lee <jonlee@apple.com>
+
+ Windows build fix.
+
+ * win/WebKit2Generated.make: Export WKNotificationManager.h.
+
+2012-08-29 Jon Lee <jonlee@apple.com>
+
+ [WK2] Add SPI to retrieve internal IDs for web notifications
+ https://bugs.webkit.org/show_bug.cgi?id=95100
+ <rdar://problem/12180208>
+
+ Reviewed by Alexey Proskuryakov.
+
+ This is work toward providing Mac support for web notifications in DRT and WTR (77969).
+
+ Add function to retrieve the internal ID for a notification. This is needed by tests to support simulating
+ a user click on a notification.
+
+ * DerivedSources.pri: Expose JSNotification.h as private header.
+ * WebProcess/InjectedBundle/API/c/WKBundle.cpp:
+ (WKBundleGetWebNotificationID): Calls into notification manager to get internal ID.
+ * WebProcess/InjectedBundle/API/c/WKBundlePrivate.h: Add WKBundleGetWebNotificationID() to be able
+ retrieve notification ID.
+ * WebProcess/InjectedBundle/InjectedBundle.cpp:
+ (WebKit::InjectedBundle::webNotificationID):
+ (WebKit):
+ * WebProcess/InjectedBundle/InjectedBundle.h:
+ (InjectedBundle):
+ * WebProcess/Notifications/WebNotificationManager.cpp:
+ (WebKit::WebNotificationManager::notificationIDForTesting):
+ (WebKit):
+ * WebProcess/Notifications/WebNotificationManager.h:
+ (WebNotificationManager):
+
+2012-08-28 Martin Robinson <mrobinson@igalia.com>
+
+ [GTK] Enable the edge distance anti-aliasing for accelerated compositing layers
+ https://bugs.webkit.org/show_bug.cgi?id=95272
+
+ Reviewed by No'am Rosenthal.
+
+ Turn on edge-distance anti-aliasing for GTK+ WebKit2. This
+ improves the quality of layer rendering.
+
+ * WebProcess/WebPage/gtk/LayerTreeHostGtk.cpp:
+ (WebKit::LayerTreeHostGtk::initialize):
+
+2012-08-28 Kangil Han <kangil.han@samsung.com>
+
+ [WK2] Use explicit constructor in PageClientImpl.
+ https://bugs.webkit.org/show_bug.cgi?id=95170
+
+ Reviewed by Darin Adler.
+
+ Added explicit keyword in constructor of PageClientImpl in order to avoid implicit type conversion.
+
+ * UIProcess/API/gtk/PageClientImpl.h:
+ (PageClientImpl):
+ * UIProcess/API/mac/PageClientImpl.h:
+ (PageClientImpl):
+
+2012-08-28 Rik Cabanier <cabanier@adobe.com>
+
+ Add ENABLE_CSS_COMPOSITING flag to WebKit2 project
+ https://bugs.webkit.org/show_bug.cgi?id=95227
+
+ Reviewed by Dirk Schulze.
+
+ The WebKit2 project was not updated to compile with the CSS_COMPOSITING flag.
+ This caused crashes when the webkit2 code had to use that flag.
+
+ * Configurations/FeatureDefines.xcconfig:
+
+2012-08-28 Sheriff Bot <webkit.review.bot@gmail.com>
+
+ Unreviewed, rolling out r126914.
+ http://trac.webkit.org/changeset/126914
+ https://bugs.webkit.org/show_bug.cgi?id=95239
+
+ it breaks everything and fixes nothing (Requested by pizlo on
+ #webkit).
+
+ * Platform/CoreIPC/ArgumentCoders.h:
+ * Platform/CoreIPC/Connection.cpp:
+ (CoreIPC::Connection::SyncMessageState::getOrCreate):
+ (CoreIPC::Connection::waitForMessage):
+ (CoreIPC::Connection::processIncomingMessage):
+ * Platform/gtk/WorkQueueGtk.cpp:
+ (WorkQueue::registerEventSourceHandler):
+ (WorkQueue::unregisterEventSourceHandler):
+ * Platform/mac/WorkQueueMac.cpp:
+ (WorkQueue::unregisterMachPortEventHandler):
+ * Shared/Plugins/NPRemoteObjectMap.cpp:
+ (WebKit::NPRemoteObjectMap::pluginDestroyed):
+ * Shared/UserMessageCoders.h:
+ (WebKit::UserMessageEncoder::baseEncode):
+ * Shared/WebPreferencesStore.cpp:
+ (WebKit::valueForKey):
+ (WebKit::WebPreferencesStore::getBoolValueForKey):
+ * Shared/mac/WebCoreArgumentCodersMac.mm:
+ (CoreIPC::::decode):
+ * Shared/qt/ArgumentCodersQt.cpp:
+ (CoreIPC::::decode):
+ * Shared/soup/WebCoreArgumentCodersSoup.cpp:
+ (CoreIPC::::decode):
+ * UIProcess/API/efl/ewk_back_forward_list.cpp:
+ (_Ewk_Back_Forward_List::~_Ewk_Back_Forward_List):
+ * UIProcess/API/efl/ewk_context.cpp:
+ (_Ewk_Context::~_Ewk_Context):
+ * UIProcess/API/efl/ewk_view.cpp:
+ (_ewk_view_priv_loading_resources_clear):
+ * UIProcess/API/gtk/WebKitWebView.cpp:
+ (webkit_web_view_get_subresources):
+ * UIProcess/API/gtk/WebKitWebViewBase.cpp:
+ (webkitWebViewBaseContainerForall):
+ * UIProcess/API/mac/WKPrintingView.mm:
+ (-[WKPrintingView _expectedPreviewCallbackForRect:]):
+ (pageDidDrawToPDF):
+ (-[WKPrintingView _drawPreview:]):
+ * UIProcess/API/mac/WKView.mm:
+ (commandNameForSelector):
+ (-[WKView validateUserInterfaceItem:]):
+ * UIProcess/CoordinatedGraphics/CoordinatedBackingStore.cpp:
+ (WebKit::CoordinatedBackingStore::updateTile):
+ (WebKit::CoordinatedBackingStore::texture):
+ (WebKit::CoordinatedBackingStore::paintToTextureMapper):
+ (WebKit::CoordinatedBackingStore::commitTileOperations):
+ * UIProcess/CoordinatedGraphics/LayerTreeCoordinatorProxy.cpp:
+ (WebKit::LayerTreeCoordinatorProxy::updateTileForLayer):
+ * UIProcess/CoordinatedGraphics/LayerTreeRenderer.cpp:
+ (WebKit::LayerTreeRenderer::adjustPositionForFixedLayers):
+ (WebKit::LayerTreeRenderer::syncCanvas):
+ (WebKit::LayerTreeRenderer::setLayerChildren):
+ (WebKit::LayerTreeRenderer::setLayerFilters):
+ (WebKit::LayerTreeRenderer::setLayerState):
+ (WebKit::LayerTreeRenderer::assignImageToLayer):
+ * UIProcess/GeolocationPermissionRequestManagerProxy.cpp:
+ (WebKit::GeolocationPermissionRequestManagerProxy::invalidateRequests):
+ * UIProcess/InspectorServer/WebInspectorServer.cpp:
+ (WebKit::WebInspectorServer::~WebInspectorServer):
+ (WebKit::WebInspectorServer::registerPage):
+ * UIProcess/InspectorServer/WebSocketServerConnection.cpp:
+ (WebKit::WebSocketServerConnection::sendHTTPResponseHeader):
+ * UIProcess/InspectorServer/qt/WebInspectorServerQt.cpp:
+ (WebKit::WebInspectorServer::buildPageList):
+ * UIProcess/Notifications/NotificationPermissionRequestManagerProxy.cpp:
+ (WebKit::NotificationPermissionRequestManagerProxy::invalidateRequests):
+ * UIProcess/Plugins/PluginProcessProxy.cpp:
+ (WebKit::PluginProcessProxy::pluginProcessCrashedOrFailedToLaunch):
+ * UIProcess/WebContext.cpp:
+ (WebKit::createDictionaryFromHashMap):
+ * UIProcess/WebIconDatabase.cpp:
+ (WebKit::WebIconDatabase::didFinishURLImport):
+ * UIProcess/WebIntentData.cpp:
+ (WebKit::WebIntentData::extras):
+ * UIProcess/WebProcessProxy.cpp:
+ (WebKit::WebProcessProxy::checkURLReceivedFromWebProcess):
+ (WebKit::WebProcessProxy::addBackForwardItem):
+ (WebKit::WebProcessProxy::frameCountInPage):
+ * WebProcess/Geolocation/GeolocationPermissionRequestManager.cpp:
+ (WebKit::GeolocationPermissionRequestManager::cancelRequestForGeolocation):
+ (WebKit::GeolocationPermissionRequestManager::didReceiveGeolocationPermissionDecision):
+ * WebProcess/InjectedBundle/DOM/InjectedBundleNodeHandle.cpp:
+ (WebKit::InjectedBundleNodeHandle::getOrCreate):
+ * WebProcess/InjectedBundle/DOM/InjectedBundleRangeHandle.cpp:
+ (WebKit::InjectedBundleRangeHandle::getOrCreate):
+ * WebProcess/InjectedBundle/InjectedBundleIntent.cpp:
+ (WebKit::InjectedBundleIntent::extras):
+ * WebProcess/Notifications/WebNotificationManager.cpp:
+ (WebKit::WebNotificationManager::policyForOrigin):
+ (WebKit::WebNotificationManager::show):
+ (WebKit::WebNotificationManager::clearNotifications):
+ (WebKit::WebNotificationManager::removeNotificationFromContextMap):
+ * WebProcess/Plugins/Netscape/NPRuntimeObjectMap.cpp:
+ (WebKit::NPRuntimeObjectMap::invalidate):
+ * WebProcess/Plugins/Netscape/NetscapePlugin.cpp:
+ (WebKit::NetscapePlugin::destroyStream):
+ (WebKit::NetscapePlugin::unscheduleTimer):
+ (WebKit::NetscapePlugin::frameDidFinishLoading):
+ (WebKit::NetscapePlugin::frameDidFail):
+ * WebProcess/Plugins/PluginView.cpp:
+ (WebKit::buildHTTPHeaders):
+ (WebKit::PluginView::~PluginView):
+ * WebProcess/WebPage/CoordinatedGraphics/CoordinatedGraphicsLayer.cpp:
+ (WebCore::CoordinatedGraphicsLayer::layerByID):
+ * WebProcess/WebPage/CoordinatedGraphics/LayerTreeCoordinator.cpp:
+ (WebKit::LayerTreeCoordinator::adoptImageBackingStore):
+ (WebKit::LayerTreeCoordinator::releaseImageBackingStore):
+ * WebProcess/WebPage/WebBackForwardListProxy.cpp:
+ (WebKit::WebBackForwardListProxy::removeItem):
+ * WebProcess/WebPage/mac/WebPageMac.mm:
+ (WebKit::commandNameForSelectorName):
+ * WebProcess/WebProcess.cpp:
+ (WebKit::WebProcess::visitedLinkStateChanged):
+ (WebKit::WebProcess::allVisitedLinkStateChanged):
+ (WebKit::WebProcess::focusedWebPage):
+ (WebKit::WebProcess::createWebPage):
+ (WebKit::WebProcess::webPageGroup):
+ (WebKit::fromCountedSetToHashMap):
+ (WebKit::WebProcess::setTextCheckerState):
+
+2012-08-28 Alexey Proskuryakov <ap@apple.com>
+
+ [WK2] Expose process model as API
+ https://bugs.webkit.org/show_bug.cgi?id=95228
+
+ Reviewed by Jon Honeycutt.
+
+ * UIProcess/API/C/WKAPICast.h:
+ (WebKit::toProcessModel):
+ (WebKit::toAPI):
+ Convert ProcessModel values.
+
+ * UIProcess/API/C/WKContext.cpp:
+ (WKContextSetProcessModel):
+ (WKContextGetProcessModel):
+ * UIProcess/API/C/WKContext.h:
+ * UIProcess/WebContext.cpp: (WebKit::WebContext::setProcessModel):
+ * UIProcess/WebContext.h:
+ Added a setter and a getter. Setting process model is only allowed when there are
+ no processes yet - that's checked with a CRASH to guarantee that clients using
+ production builds of WebKit2 don't misstep.
+
+2012-08-28 Caio Marcelo de Oliveira Filho <caio.oliveira@openbossa.org>
+
+ Rename first/second to key/value in HashMap iterators
+ https://bugs.webkit.org/show_bug.cgi?id=82784
+
+ Reviewed by Eric Seidel.
+
+ * Platform/CoreIPC/ArgumentCoders.h:
+ * Platform/CoreIPC/Connection.cpp:
+ (CoreIPC::Connection::SyncMessageState::getOrCreate):
+ (CoreIPC::Connection::waitForMessage):
+ (CoreIPC::Connection::processIncomingMessage):
+ * Platform/gtk/WorkQueueGtk.cpp:
+ (WorkQueue::registerEventSourceHandler):
+ (WorkQueue::unregisterEventSourceHandler):
+ * Platform/mac/WorkQueueMac.cpp:
+ (WorkQueue::unregisterMachPortEventHandler):
+ * Shared/Plugins/NPRemoteObjectMap.cpp:
+ (WebKit::NPRemoteObjectMap::pluginDestroyed):
+ * Shared/UserMessageCoders.h:
+ (WebKit::UserMessageEncoder::baseEncode):
+ * Shared/WebPreferencesStore.cpp:
+ (WebKit::valueForKey):
+ (WebKit::WebPreferencesStore::getBoolValueForKey):
+ * Shared/mac/WebCoreArgumentCodersMac.mm:
+ (CoreIPC::::decode):
+ * Shared/qt/ArgumentCodersQt.cpp:
+ (CoreIPC::::decode):
+ * Shared/soup/WebCoreArgumentCodersSoup.cpp:
+ (CoreIPC::::decode):
+ * UIProcess/API/efl/ewk_back_forward_list.cpp:
+ (_Ewk_Back_Forward_List::~_Ewk_Back_Forward_List):
+ * UIProcess/API/efl/ewk_context.cpp:
+ (_Ewk_Context::~_Ewk_Context):
+ * UIProcess/API/efl/ewk_view.cpp:
+ (_ewk_view_priv_loading_resources_clear):
+ * UIProcess/API/gtk/WebKitWebView.cpp:
+ (webkit_web_view_get_subresources):
+ * UIProcess/API/gtk/WebKitWebViewBase.cpp:
+ (webkitWebViewBaseContainerForall):
+ * UIProcess/API/mac/WKPrintingView.mm:
+ (-[WKPrintingView _expectedPreviewCallbackForRect:]):
+ (pageDidDrawToPDF):
+ (-[WKPrintingView _drawPreview:]):
+ * UIProcess/API/mac/WKView.mm:
+ (commandNameForSelector):
+ (-[WKView validateUserInterfaceItem:]):
+ * UIProcess/CoordinatedGraphics/CoordinatedBackingStore.cpp:
+ (WebKit::CoordinatedBackingStore::updateTile):
+ (WebKit::CoordinatedBackingStore::texture):
+ (WebKit::CoordinatedBackingStore::paintToTextureMapper):
+ (WebKit::CoordinatedBackingStore::commitTileOperations):
+ * UIProcess/CoordinatedGraphics/LayerTreeCoordinatorProxy.cpp:
+ (WebKit::LayerTreeCoordinatorProxy::updateTileForLayer):
+ * UIProcess/CoordinatedGraphics/LayerTreeRenderer.cpp:
+ (WebKit::LayerTreeRenderer::adjustPositionForFixedLayers):
+ (WebKit::LayerTreeRenderer::syncCanvas):
+ (WebKit::LayerTreeRenderer::setLayerChildren):
+ (WebKit::LayerTreeRenderer::setLayerFilters):
+ (WebKit::LayerTreeRenderer::setLayerState):
+ (WebKit::LayerTreeRenderer::assignImageToLayer):
+ * UIProcess/GeolocationPermissionRequestManagerProxy.cpp:
+ (WebKit::GeolocationPermissionRequestManagerProxy::invalidateRequests):
+ * UIProcess/InspectorServer/WebInspectorServer.cpp:
+ (WebKit::WebInspectorServer::~WebInspectorServer):
+ (WebKit::WebInspectorServer::registerPage):
+ * UIProcess/InspectorServer/WebSocketServerConnection.cpp:
+ (WebKit::WebSocketServerConnection::sendHTTPResponseHeader):
+ * UIProcess/InspectorServer/qt/WebInspectorServerQt.cpp:
+ (WebKit::WebInspectorServer::buildPageList):
+ * UIProcess/Notifications/NotificationPermissionRequestManagerProxy.cpp:
+ (WebKit::NotificationPermissionRequestManagerProxy::invalidateRequests):
+ * UIProcess/Plugins/PluginProcessProxy.cpp:
+ (WebKit::PluginProcessProxy::pluginProcessCrashedOrFailedToLaunch):
+ * UIProcess/WebContext.cpp:
+ (WebKit::createDictionaryFromHashMap):
+ * UIProcess/WebIconDatabase.cpp:
+ (WebKit::WebIconDatabase::didFinishURLImport):
+ * UIProcess/WebIntentData.cpp:
+ (WebKit::WebIntentData::extras):
+ * UIProcess/WebProcessProxy.cpp:
+ (WebKit::WebProcessProxy::checkURLReceivedFromWebProcess):
+ (WebKit::WebProcessProxy::addBackForwardItem):
+ (WebKit::WebProcessProxy::frameCountInPage):
+ * WebProcess/Geolocation/GeolocationPermissionRequestManager.cpp:
+ (WebKit::GeolocationPermissionRequestManager::cancelRequestForGeolocation):
+ (WebKit::GeolocationPermissionRequestManager::didReceiveGeolocationPermissionDecision):
+ * WebProcess/InjectedBundle/DOM/InjectedBundleNodeHandle.cpp:
+ (WebKit::InjectedBundleNodeHandle::getOrCreate):
+ * WebProcess/InjectedBundle/DOM/InjectedBundleRangeHandle.cpp:
+ (WebKit::InjectedBundleRangeHandle::getOrCreate):
+ * WebProcess/InjectedBundle/InjectedBundleIntent.cpp:
+ (WebKit::InjectedBundleIntent::extras):
+ * WebProcess/Notifications/WebNotificationManager.cpp:
+ (WebKit::WebNotificationManager::policyForOrigin):
+ (WebKit::WebNotificationManager::show):
+ (WebKit::WebNotificationManager::clearNotifications):
+ (WebKit::WebNotificationManager::removeNotificationFromContextMap):
+ * WebProcess/Plugins/Netscape/NPRuntimeObjectMap.cpp:
+ (WebKit::NPRuntimeObjectMap::invalidate):
+ * WebProcess/Plugins/Netscape/NetscapePlugin.cpp:
+ (WebKit::NetscapePlugin::destroyStream):
+ (WebKit::NetscapePlugin::unscheduleTimer):
+ (WebKit::NetscapePlugin::frameDidFinishLoading):
+ (WebKit::NetscapePlugin::frameDidFail):
+ * WebProcess/Plugins/PluginView.cpp:
+ (WebKit::buildHTTPHeaders):
+ (WebKit::PluginView::~PluginView):
+ * WebProcess/WebPage/CoordinatedGraphics/CoordinatedGraphicsLayer.cpp:
+ (WebCore::CoordinatedGraphicsLayer::layerByID):
+ * WebProcess/WebPage/CoordinatedGraphics/LayerTreeCoordinator.cpp:
+ (WebKit::LayerTreeCoordinator::adoptImageBackingStore):
+ (WebKit::LayerTreeCoordinator::releaseImageBackingStore):
+ * WebProcess/WebPage/WebBackForwardListProxy.cpp:
+ (WebKit::WebBackForwardListProxy::removeItem):
+ * WebProcess/WebPage/mac/WebPageMac.mm:
+ (WebKit::commandNameForSelectorName):
+ * WebProcess/WebProcess.cpp:
+ (WebKit::WebProcess::visitedLinkStateChanged):
+ (WebKit::WebProcess::allVisitedLinkStateChanged):
+ (WebKit::WebProcess::focusedWebPage):
+ (WebKit::WebProcess::createWebPage):
+ (WebKit::WebProcess::webPageGroup):
+ (WebKit::fromCountedSetToHashMap):
+ (WebKit::WebProcess::setTextCheckerState):
+
+2012-08-28 Jon Lee <jonlee@apple.com>
+
+ [WK2] Bugs in maintenance of internal state when user decides whether to grant notification permissions
+ https://bugs.webkit.org/show_bug.cgi?id=95220
+ <rdar://problem/12189895>
+
+ Reviewed by Jessie Berlin.
+
+ A couple of the maps maintained by the request manager should have been cleaned up when the user decided on
+ whether to grant a website permission to post notifications.
+
+ Also, the web process' copy of the permissions was not updated appropriately. This meant that in the
+ permission callback, Notification.permission was not the same value as the permission value included as
+ the first parameter of the callback.
+
+ This first surfaced as part of the work to bring Mac support for web notifications. I have a test that
+ will check for regressions in this area, once all of that has been checked in (bug 77969).
+
+ * WebProcess/Notifications/NotificationPermissionRequestManager.cpp:
+ (WebKit::NotificationPermissionRequestManager::didReceiveNotificationPermissionDecision):
+
+2012-08-28 Jon Lee <jonlee@apple.com>
+
+ [WK2] Add SPI for injected bundle to manually set permissions
+ https://bugs.webkit.org/show_bug.cgi?id=95127
+ <rdar://problem/12182635>
+
+ Reviewed by Jessie Berlin.
+
+ This is work toward providing Mac support for web notifications in DRT and WTR (77969).
+
+ Add support functions to WebKit2 which maintain the map of permissions to origins for web notifications.
+ For WebKit1 the map is managed by DumpRenderTree.
+
+ * WebProcess/InjectedBundle/InjectedBundle.h: Add TestRunner SPI.
+ * WebProcess/InjectedBundle/InjectedBundle.cpp:
+ (WebKit::InjectedBundle::setWebNotificationPermission):
+ (WebKit::InjectedBundle::removeAllWebNotificationPermissions):
+
+ * WebProcess/InjectedBundle/API/c/WKBundlePrivate.h: Expose as WK API. Also, rearrange the ordering of the
+ functions so that it reflects the same order found in InjectedBundle.h.
+ * WebProcess/InjectedBundle/API/c/WKBundle.cpp:
+
+ * WebProcess/Notifications/NotificationPermissionRequestManager.cpp:
+ (WebKit::NotificationPermissionRequestManager::setPermissionLevelForTesting): Manually set the permission
+ level for an origin.
+ (WebKit::NotificationPermissionRequestManager::removeAllPermissionsForTesting):
+ * WebProcess/Notifications/NotificationPermissionRequestManager.h:
+ (NotificationPermissionRequestManager):
+ * WebProcess/Notifications/WebNotificationManager.cpp:
+ (WebKit::WebNotificationManager::removeAllPermissionsForTesting): Clear the permission map.
+ * WebProcess/Notifications/WebNotificationManager.h: Promote didUpdateNotificationDecision message as public
+ function, so that NotificationPermissionRequestManager can update the permission map.
+
+2012-08-28 Christophe Dumez <christophe.dumez@intel.com>
+
+ [EFL] WebKit EFL updates view on HTTP 204 response
+ https://bugs.webkit.org/show_bug.cgi?id=95199
+
+ Reviewed by Kenneth Rohde Christiansen.
+
+ Ignore HTTP responses which have status code equal
+ to 204 (No Content).
+
+ * UIProcess/API/efl/ewk_view_policy_client.cpp:
+ (decidePolicyForResponseCallback):
+
+2012-08-28 Zeno Albisser <zeno@webkit.org>
+
+ LayerTreeCoordinatorProxy should use uint64_t for surface key.
+ https://bugs.webkit.org/show_bug.cgi?id=95175
+
+ GraphicsSurface tokens are of type uint64_t.
+ Therefore LayerTreeCoordinatorProxy must use the same type to
+ identify a GraphicsSurface/ShareableSurface.
+
+ Reviewed by Noam Rosenthal.
+
+ * Shared/ShareableSurface.h:
+ (WebKit::ShareableSurface::Handle::graphicsSurfaceToken):
+ * UIProcess/CoordinatedGraphics/LayerTreeCoordinatorProxy.cpp:
+ (WebKit::LayerTreeCoordinatorProxy::updateTileForLayer):
+ * UIProcess/CoordinatedGraphics/LayerTreeCoordinatorProxy.h:
+ (LayerTreeCoordinatorProxy):
+
+2012-08-28 Ryuan Choi <ryuan.choi@samsung.com>
+
+ [EFL][WK2] Implement WebPopupMenuProxyEfl to support <select>
+ https://bugs.webkit.org/show_bug.cgi?id=88616
+
+ Reviewed by Gyuyoung Kim.
+
+ Implemented popup menu proxy and interface for Efl.
+
+ Applications should implement popup menu by overriding
+ smart class function to support select tag.
+
+ * PlatformEfl.cmake:
+ * UIProcess/API/efl/EWebKit2.h: Included ewk_popup_menu_item.h
+ * UIProcess/API/efl/PageClientImpl.cpp:
+ (WebKit::PageClientImpl::createPopupMenuProxy):
+ * UIProcess/API/efl/ewk_popup_menu_item.cpp: Added.
+ (_Ewk_Popup_Menu_Item):
+ (_Ewk_Popup_Menu_Item::_Ewk_Popup_Menu_Item):
+ (ewk_popup_menu_item_new):
+ (ewk_popup_menu_item_free):
+ (ewk_popup_menu_item_type_get): Added API to retrieve type of item.
+ (ewk_popup_menu_item_text_get): Added API to retrieve text of item.
+ * UIProcess/API/efl/ewk_popup_menu_item.h: Added.
+ * UIProcess/API/efl/ewk_popup_menu_item_private.h: Added.
+ * UIProcess/API/efl/ewk_view.cpp:
+ (_Ewk_View_Private_Data):
+ (_Ewk_View_Private_Data::_Ewk_View_Private_Data):
+ (_Ewk_View_Private_Data::~_Ewk_View_Private_Data):
+ (ewk_view_popup_menu_request): Added to call popup_menu_show, smart class function.
+ (ewk_view_popup_menu_close): Added API to call popup_menu_hide, smart class function.
+ (ewk_view_popup_menu_select): Added API to change selected index.
+ * UIProcess/API/efl/ewk_view.h:
+ Added smart class function for applications to override.
+ * UIProcess/API/efl/ewk_view_private.h:
+ * UIProcess/API/efl/tests/UnitTestUtils/EWK2UnitTestBase.cpp:
+ (EWK2UnitTest::EWK2UnitTestBase::EWK2UnitTestBase):
+ (EWK2UnitTest::EWK2UnitTestBase::SetUp):
+ (EWK2UnitTest::EWK2UnitTestBase::loadUrlSync):
+ (EWK2UnitTest::EWK2UnitTestBase::waitUntilLoadFinished):
+ Extracted from loadUrlSync for tests using ewk_view_html_string_load to
+ share onLoadFinished.
+ * UIProcess/API/efl/tests/UnitTestUtils/EWK2UnitTestBase.h:
+ (EWK2UnitTest::EWK2UnitTestBase::ewkViewClass):
+ Added ewkViewClass to test smart methods such as popup_menu_show.
+ * UIProcess/API/efl/tests/test_ewk2_view.cpp:
+ (popup_menu_show):
+ (TEST_F): Added a test case for ewk_view_popup_menu_select and related codes.
+ * UIProcess/efl/WebPopupMenuProxyEfl.cpp: Added.
+ (WebKit):
+ (WebKit::WebPopupMenuProxyEfl::WebPopupMenuProxyEfl):
+ (WebKit::WebPopupMenuProxyEfl::showPopupMenu):
+ (WebKit::WebPopupMenuProxyEfl::hidePopupMenu):
+ (WebKit::WebPopupMenuProxyEfl::valueChanged):
+ * UIProcess/efl/WebPopupMenuProxyEfl.h: Added.
+ (WebPopupMenuProxyEfl):
+ (WebKit::WebPopupMenuProxyEfl::create):
+
+2012-08-27 Kangil Han <kangil.han@samsung.com>
+
+ [EFL][WK2] Fix PageClientImpl layer violation
+ https://bugs.webkit.org/show_bug.cgi?id=94906
+
+ Reviewed by Gyuyoung Kim.
+
+ Given WK2 hierarchy, current PageClientImpl has violated API layer by having WebPageProxy.
+ Subsequently, it has been given WebContext, static singleton object, in its argument unnecessarily.
+ Therefore, this patch moved WebPageProxy from PageClientImpl to Ewk_View_Private_Data.
+ Plus, WebContext was removed from PageClientImpl since it is not needed anymore.
+ As a result, EFL has same form of PageClientImpl with other ports, i.e. gtk+ and mac.
+ From API point of view, nothing has been changed because all things done locally.
+
+ * UIProcess/API/efl/PageClientImpl.cpp:
+ (WebKit::PageClientImpl::PageClientImpl):
+ (WebKit::PageClientImpl::createDrawingAreaProxy):
+ * UIProcess/API/efl/PageClientImpl.h:
+ (WebKit::PageClientImpl::create):
+ (PageClientImpl):
+ * UIProcess/API/efl/ewk_view.cpp:
+ (_Ewk_View_Private_Data):
+ (_ewk_view_smart_focus_in):
+ (_ewk_view_smart_focus_out):
+ (_ewk_view_smart_mouse_wheel):
+ (_ewk_view_smart_mouse_down):
+ (_ewk_view_smart_mouse_up):
+ (_ewk_view_smart_mouse_move):
+ (_ewk_view_smart_key_down):
+ (_ewk_view_smart_key_up):
+ (_ewk_view_smart_calculate):
+ (_ewk_view_smart_color_set):
+ (_ewk_view_initialize):
+ (ewk_view_uri_update):
+ (ewk_view_uri_set):
+ (ewk_view_reload):
+ (ewk_view_reload_bypass_cache):
+ (ewk_view_stop):
+ (ewk_view_title_get):
+ (ewk_view_load_progress_get):
+ (ewk_view_scale_set):
+ (ewk_view_scale_get):
+ (ewk_view_device_pixel_ratio_set):
+ (ewk_view_device_pixel_ratio_get):
+ (ewk_view_theme_set):
+ (ewk_view_back):
+ (ewk_view_forward):
+ (ewk_view_intent_deliver):
+ (ewk_view_back_possible):
+ (ewk_view_forward_possible):
+ (ewk_view_html_string_load):
+ (ewk_view_page_get):
+ (ewk_view_setting_encoding_custom_get):
+ (ewk_view_setting_encoding_custom_set):
+ (ewk_view_text_find):
+ (ewk_view_text_find_highlight_clear):
+
+2012-08-27 Sheriff Bot <webkit.review.bot@gmail.com>
+
+ Unreviewed, rolling out r126836.
+ http://trac.webkit.org/changeset/126836
+ https://bugs.webkit.org/show_bug.cgi?id=95163
+
+ Broke all Apple ports, EFL, and Qt. (Requested by tkent on
+ #webkit).
+
+ * Platform/CoreIPC/ArgumentCoders.h:
+ * Platform/CoreIPC/Connection.cpp:
+ (CoreIPC::Connection::SyncMessageState::getOrCreate):
+ (CoreIPC::Connection::waitForMessage):
+ (CoreIPC::Connection::processIncomingMessage):
+ * Platform/gtk/WorkQueueGtk.cpp:
+ (WorkQueue::registerEventSourceHandler):
+ (WorkQueue::unregisterEventSourceHandler):
+ * Platform/mac/WorkQueueMac.cpp:
+ (WorkQueue::unregisterMachPortEventHandler):
+ * Shared/Plugins/NPRemoteObjectMap.cpp:
+ (WebKit::NPRemoteObjectMap::pluginDestroyed):
+ * Shared/UserMessageCoders.h:
+ (WebKit::UserMessageEncoder::baseEncode):
+ * Shared/WebPreferencesStore.cpp:
+ (WebKit::valueForKey):
+ (WebKit::WebPreferencesStore::getBoolValueForKey):
+ * Shared/mac/WebCoreArgumentCodersMac.mm:
+ (CoreIPC::::decode):
+ * Shared/qt/ArgumentCodersQt.cpp:
+ (CoreIPC::::decode):
+ * Shared/soup/WebCoreArgumentCodersSoup.cpp:
+ (CoreIPC::::decode):
+ * UIProcess/API/efl/ewk_back_forward_list.cpp:
+ (_Ewk_Back_Forward_List::~_Ewk_Back_Forward_List):
+ * UIProcess/API/efl/ewk_context.cpp:
+ (_Ewk_Context::~_Ewk_Context):
+ * UIProcess/API/efl/ewk_view.cpp:
+ (_ewk_view_priv_loading_resources_clear):
+ * UIProcess/API/gtk/WebKitWebView.cpp:
+ (webkit_web_view_get_subresources):
+ * UIProcess/API/gtk/WebKitWebViewBase.cpp:
+ (webkitWebViewBaseContainerForall):
+ * UIProcess/API/mac/WKPrintingView.mm:
+ (-[WKPrintingView _expectedPreviewCallbackForRect:]):
+ (pageDidDrawToPDF):
+ (-[WKPrintingView _drawPreview:]):
+ * UIProcess/API/mac/WKView.mm:
+ (commandNameForSelector):
+ (-[WKView validateUserInterfaceItem:]):
+ * UIProcess/CoordinatedGraphics/CoordinatedBackingStore.cpp:
+ (WebKit::CoordinatedBackingStore::updateTile):
+ (WebKit::CoordinatedBackingStore::texture):
+ (WebKit::CoordinatedBackingStore::paintToTextureMapper):
+ (WebKit::CoordinatedBackingStore::commitTileOperations):
+ * UIProcess/CoordinatedGraphics/LayerTreeCoordinatorProxy.cpp:
+ (WebKit::LayerTreeCoordinatorProxy::updateTileForLayer):
+ * UIProcess/CoordinatedGraphics/LayerTreeRenderer.cpp:
+ (WebKit::LayerTreeRenderer::adjustPositionForFixedLayers):
+ (WebKit::LayerTreeRenderer::syncCanvas):
+ (WebKit::LayerTreeRenderer::setLayerChildren):
+ (WebKit::LayerTreeRenderer::setLayerFilters):
+ (WebKit::LayerTreeRenderer::setLayerState):
+ (WebKit::LayerTreeRenderer::assignImageToLayer):
+ * UIProcess/GeolocationPermissionRequestManagerProxy.cpp:
+ (WebKit::GeolocationPermissionRequestManagerProxy::invalidateRequests):
+ * UIProcess/InspectorServer/WebInspectorServer.cpp:
+ (WebKit::WebInspectorServer::~WebInspectorServer):
+ (WebKit::WebInspectorServer::registerPage):
+ * UIProcess/InspectorServer/WebSocketServerConnection.cpp:
+ (WebKit::WebSocketServerConnection::sendHTTPResponseHeader):
+ * UIProcess/InspectorServer/qt/WebInspectorServerQt.cpp:
+ (WebKit::WebInspectorServer::buildPageList):
+ * UIProcess/Notifications/NotificationPermissionRequestManagerProxy.cpp:
+ (WebKit::NotificationPermissionRequestManagerProxy::invalidateRequests):
+ * UIProcess/Plugins/PluginProcessProxy.cpp:
+ (WebKit::PluginProcessProxy::pluginProcessCrashedOrFailedToLaunch):
+ * UIProcess/WebContext.cpp:
+ (WebKit::createDictionaryFromHashMap):
+ * UIProcess/WebIconDatabase.cpp:
+ (WebKit::WebIconDatabase::didFinishURLImport):
+ * UIProcess/WebIntentData.cpp:
+ (WebKit::WebIntentData::extras):
+ * UIProcess/WebProcessProxy.cpp:
+ (WebKit::WebProcessProxy::checkURLReceivedFromWebProcess):
+ (WebKit::WebProcessProxy::addBackForwardItem):
+ (WebKit::WebProcessProxy::frameCountInPage):
+ * WebProcess/Geolocation/GeolocationPermissionRequestManager.cpp:
+ (WebKit::GeolocationPermissionRequestManager::cancelRequestForGeolocation):
+ (WebKit::GeolocationPermissionRequestManager::didReceiveGeolocationPermissionDecision):
+ * WebProcess/InjectedBundle/DOM/InjectedBundleNodeHandle.cpp:
+ (WebKit::InjectedBundleNodeHandle::getOrCreate):
+ * WebProcess/InjectedBundle/DOM/InjectedBundleRangeHandle.cpp:
+ (WebKit::InjectedBundleRangeHandle::getOrCreate):
+ * WebProcess/InjectedBundle/InjectedBundleIntent.cpp:
+ (WebKit::InjectedBundleIntent::extras):
+ * WebProcess/Notifications/WebNotificationManager.cpp:
+ (WebKit::WebNotificationManager::policyForOrigin):
+ (WebKit::WebNotificationManager::show):
+ (WebKit::WebNotificationManager::clearNotifications):
+ (WebKit::WebNotificationManager::removeNotificationFromContextMap):
+ * WebProcess/Plugins/Netscape/NPRuntimeObjectMap.cpp:
+ (WebKit::NPRuntimeObjectMap::invalidate):
+ * WebProcess/Plugins/Netscape/NetscapePlugin.cpp:
+ (WebKit::NetscapePlugin::destroyStream):
+ (WebKit::NetscapePlugin::unscheduleTimer):
+ (WebKit::NetscapePlugin::frameDidFinishLoading):
+ (WebKit::NetscapePlugin::frameDidFail):
+ * WebProcess/Plugins/PluginView.cpp:
+ (WebKit::buildHTTPHeaders):
+ (WebKit::PluginView::~PluginView):
+ * WebProcess/WebPage/CoordinatedGraphics/CoordinatedGraphicsLayer.cpp:
+ (WebCore::CoordinatedGraphicsLayer::layerByID):
+ * WebProcess/WebPage/CoordinatedGraphics/LayerTreeCoordinator.cpp:
+ (WebKit::LayerTreeCoordinator::adoptImageBackingStore):
+ (WebKit::LayerTreeCoordinator::releaseImageBackingStore):
+ * WebProcess/WebPage/WebBackForwardListProxy.cpp:
+ (WebKit::WebBackForwardListProxy::removeItem):
+ * WebProcess/WebPage/mac/WebPageMac.mm:
+ (WebKit::commandNameForSelectorName):
+ * WebProcess/WebProcess.cpp:
+ (WebKit::WebProcess::visitedLinkStateChanged):
+ (WebKit::WebProcess::allVisitedLinkStateChanged):
+ (WebKit::WebProcess::focusedWebPage):
+ (WebKit::WebProcess::createWebPage):
+ (WebKit::WebProcess::webPageGroup):
+ (WebKit::fromCountedSetToHashMap):
+ (WebKit::WebProcess::setTextCheckerState):
+
+2012-08-27 Caio Marcelo de Oliveira Filho <caio.oliveira@openbossa.org>
+
+ Rename first/second to key/value in HashMap iterators
+ https://bugs.webkit.org/show_bug.cgi?id=82784
+
+ Reviewed by Eric Seidel.
+
+ * Platform/CoreIPC/ArgumentCoders.h:
+ * Platform/CoreIPC/Connection.cpp:
+ (CoreIPC::Connection::SyncMessageState::getOrCreate):
+ (CoreIPC::Connection::waitForMessage):
+ (CoreIPC::Connection::processIncomingMessage):
+ * Platform/gtk/WorkQueueGtk.cpp:
+ (WorkQueue::registerEventSourceHandler):
+ (WorkQueue::unregisterEventSourceHandler):
+ * Platform/mac/WorkQueueMac.cpp:
+ (WorkQueue::unregisterMachPortEventHandler):
+ * Shared/Plugins/NPRemoteObjectMap.cpp:
+ (WebKit::NPRemoteObjectMap::pluginDestroyed):
+ * Shared/UserMessageCoders.h:
+ (WebKit::UserMessageEncoder::baseEncode):
+ * Shared/WebPreferencesStore.cpp:
+ (WebKit::valueForKey):
+ (WebKit::WebPreferencesStore::getBoolValueForKey):
+ * Shared/mac/WebCoreArgumentCodersMac.mm:
+ (CoreIPC::::decode):
+ * Shared/qt/ArgumentCodersQt.cpp:
+ (CoreIPC::::decode):
+ * Shared/soup/WebCoreArgumentCodersSoup.cpp:
+ (CoreIPC::::decode):
+ * UIProcess/API/efl/ewk_back_forward_list.cpp:
+ (_Ewk_Back_Forward_List::~_Ewk_Back_Forward_List):
+ * UIProcess/API/efl/ewk_context.cpp:
+ (_Ewk_Context::~_Ewk_Context):
+ * UIProcess/API/efl/ewk_view.cpp:
+ (_ewk_view_priv_loading_resources_clear):
+ * UIProcess/API/gtk/WebKitWebView.cpp:
+ (webkit_web_view_get_subresources):
+ * UIProcess/API/gtk/WebKitWebViewBase.cpp:
+ (webkitWebViewBaseContainerForall):
+ * UIProcess/API/mac/WKPrintingView.mm:
+ (-[WKPrintingView _expectedPreviewCallbackForRect:]):
+ (pageDidDrawToPDF):
+ (-[WKPrintingView _drawPreview:]):
+ * UIProcess/API/mac/WKView.mm:
+ (commandNameForSelector):
+ (-[WKView validateUserInterfaceItem:]):
+ * UIProcess/CoordinatedGraphics/CoordinatedBackingStore.cpp:
+ (WebKit::CoordinatedBackingStore::updateTile):
+ (WebKit::CoordinatedBackingStore::texture):
+ (WebKit::CoordinatedBackingStore::paintToTextureMapper):
+ (WebKit::CoordinatedBackingStore::commitTileOperations):
+ * UIProcess/CoordinatedGraphics/LayerTreeCoordinatorProxy.cpp:
+ (WebKit::LayerTreeCoordinatorProxy::updateTileForLayer):
+ * UIProcess/CoordinatedGraphics/LayerTreeRenderer.cpp:
+ (WebKit::LayerTreeRenderer::adjustPositionForFixedLayers):
+ (WebKit::LayerTreeRenderer::syncCanvas):
+ (WebKit::LayerTreeRenderer::setLayerChildren):
+ (WebKit::LayerTreeRenderer::setLayerFilters):
+ (WebKit::LayerTreeRenderer::setLayerState):
+ (WebKit::LayerTreeRenderer::assignImageToLayer):
+ * UIProcess/GeolocationPermissionRequestManagerProxy.cpp:
+ (WebKit::GeolocationPermissionRequestManagerProxy::invalidateRequests):
+ * UIProcess/InspectorServer/WebInspectorServer.cpp:
+ (WebKit::WebInspectorServer::~WebInspectorServer):
+ (WebKit::WebInspectorServer::registerPage):
+ * UIProcess/InspectorServer/WebSocketServerConnection.cpp:
+ (WebKit::WebSocketServerConnection::sendHTTPResponseHeader):
+ * UIProcess/InspectorServer/qt/WebInspectorServerQt.cpp:
+ (WebKit::WebInspectorServer::buildPageList):
+ * UIProcess/Notifications/NotificationPermissionRequestManagerProxy.cpp:
+ (WebKit::NotificationPermissionRequestManagerProxy::invalidateRequests):
+ * UIProcess/Plugins/PluginProcessProxy.cpp:
+ (WebKit::PluginProcessProxy::pluginProcessCrashedOrFailedToLaunch):
+ * UIProcess/WebContext.cpp:
+ (WebKit::createDictionaryFromHashMap):
+ * UIProcess/WebIconDatabase.cpp:
+ (WebKit::WebIconDatabase::didFinishURLImport):
+ * UIProcess/WebIntentData.cpp:
+ (WebKit::WebIntentData::extras):
+ * UIProcess/WebProcessProxy.cpp:
+ (WebKit::WebProcessProxy::checkURLReceivedFromWebProcess):
+ (WebKit::WebProcessProxy::addBackForwardItem):
+ (WebKit::WebProcessProxy::frameCountInPage):
+ * WebProcess/Geolocation/GeolocationPermissionRequestManager.cpp:
+ (WebKit::GeolocationPermissionRequestManager::cancelRequestForGeolocation):
+ (WebKit::GeolocationPermissionRequestManager::didReceiveGeolocationPermissionDecision):
+ * WebProcess/InjectedBundle/DOM/InjectedBundleNodeHandle.cpp:
+ (WebKit::InjectedBundleNodeHandle::getOrCreate):
+ * WebProcess/InjectedBundle/DOM/InjectedBundleRangeHandle.cpp:
+ (WebKit::InjectedBundleRangeHandle::getOrCreate):
+ * WebProcess/InjectedBundle/InjectedBundleIntent.cpp:
+ (WebKit::InjectedBundleIntent::extras):
+ * WebProcess/Notifications/WebNotificationManager.cpp:
+ (WebKit::WebNotificationManager::policyForOrigin):
+ (WebKit::WebNotificationManager::show):
+ (WebKit::WebNotificationManager::clearNotifications):
+ (WebKit::WebNotificationManager::removeNotificationFromContextMap):
+ * WebProcess/Plugins/Netscape/NPRuntimeObjectMap.cpp:
+ (WebKit::NPRuntimeObjectMap::invalidate):
+ * WebProcess/Plugins/Netscape/NetscapePlugin.cpp:
+ (WebKit::NetscapePlugin::destroyStream):
+ (WebKit::NetscapePlugin::unscheduleTimer):
+ (WebKit::NetscapePlugin::frameDidFinishLoading):
+ (WebKit::NetscapePlugin::frameDidFail):
+ * WebProcess/Plugins/PluginView.cpp:
+ (WebKit::buildHTTPHeaders):
+ (WebKit::PluginView::~PluginView):
+ * WebProcess/WebPage/CoordinatedGraphics/CoordinatedGraphicsLayer.cpp:
+ (WebCore::CoordinatedGraphicsLayer::layerByID):
+ * WebProcess/WebPage/CoordinatedGraphics/LayerTreeCoordinator.cpp:
+ (WebKit::LayerTreeCoordinator::adoptImageBackingStore):
+ (WebKit::LayerTreeCoordinator::releaseImageBackingStore):
+ * WebProcess/WebPage/WebBackForwardListProxy.cpp:
+ (WebKit::WebBackForwardListProxy::removeItem):
+ * WebProcess/WebPage/mac/WebPageMac.mm:
+ (WebKit::commandNameForSelectorName):
+ * WebProcess/WebProcess.cpp:
+ (WebKit::WebProcess::visitedLinkStateChanged):
+ (WebKit::WebProcess::allVisitedLinkStateChanged):
+ (WebKit::WebProcess::focusedWebPage):
+ (WebKit::WebProcess::createWebPage):
+ (WebKit::WebProcess::webPageGroup):
+ (WebKit::fromCountedSetToHashMap):
+ (WebKit::WebProcess::setTextCheckerState):
+
+2012-08-27 Simon Fraser <simon.fraser@apple.com>
+
+ Make Force Repaint work with tiled backing store
+ https://bugs.webkit.org/show_bug.cgi?id=95102
+
+ Reviewed by Dan Bernstein.
+
+ Have forceRepaint() call down to the tiled backing of each FrameView,
+ so they can repaint.
+
+ * WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.mm:
+ (WebKit::TiledCoreAnimationDrawingArea::forceRepaint):
+
+2012-08-27 Rafael Brandao <rafael.lobo@openbossa.org>
+
+ [Qt] Fix typo in CoordinatedGraphicsLayer::syncAnimatedProperties
+ https://bugs.webkit.org/show_bug.cgi?id=95085
+
+ Reviewed by Noam Rosenthal.
+
+ * WebProcess/WebPage/CoordinatedGraphics/CoordinatedGraphicsLayer.cpp: The flag should be disabled
+ once we process the sync for animated properties. Previously, it was never disabling it once enabled.
+
+2012-08-27 Philippe Normand <pnormand@igalia.com>
+
+ [GStreamer][Qt] WebAudio support
+ https://bugs.webkit.org/show_bug.cgi?id=94806
+
+ Reviewed by Simon Hausmann.
+
+ New boolean webAudioEnabled WebSetting to be used at runtime to
+ toggle WebAudio support on or off.
+
+ * UIProcess/API/qt/qwebpreferences.cpp:
+ (QWebPreferencesPrivate::testAttribute):
+ (QWebPreferencesPrivate::setAttribute):
+ (QWebPreferences::webAudioEnabled):
+ (QWebPreferences::setWebAudioEnabled):
+ * UIProcess/API/qt/qwebpreferences_p.h:
+ * UIProcess/API/qt/qwebpreferences_p_p.h:
+
+2012-08-27 Simon Hausmann <simon.hausmann@nokia.com>
+
+ [Qt][WK2] REGRESSION(r126067): It made qmltests::DoubleTapToZoom::test_basic() fail
+ https://bugs.webkit.org/show_bug.cgi?id=94949
+
+ Reviewed by Kenneth Rohde Christiansen.
+
+ Use JSON to serialize the client rect for the async evaluateJavaScript call.
+
+ * UIProcess/API/qt/tests/qmltests/WebView/tst_doubleTapToZoom.qml:
+
+2012-08-27 Simon Hausmann <simon.hausmann@nokia.com>
+
+ [Qt] Fix failing QML2 auto tests due to conflicting signal declaration
+ https://bugs.webkit.org/show_bug.cgi?id=95059
+
+ Reviewed by Kenneth Rohde Christiansen.
+
+ Don't define a scaleChanged signal when QQuickItem already declares one to notify about changes
+ in the scale property. As it turns out there is not need for declaring a signal in the test case
+ at all.
+
+ * UIProcess/API/qt/tests/qmltests/WebView/tst_doubleTapToZoom.qml:
+ * UIProcess/API/qt/tests/qmltests/WebView/tst_fitToView.qml:
+
+2012-08-27 Mikhail Pozdnyakov <mikhail.pozdnyakov@intel.com>
+
+ Rename RegisterProtocolHandler API to NavigatorContentUtils
+ https://bugs.webkit.org/show_bug.cgi?id=94920
+
+ Reviewed by Adam Barth.
+
+ Renaming whatever RegisterProtocolHandler-prefixed to NavigatorContentUtils-prefixed.
+
+ * Configurations/FeatureDefines.xcconfig:
+ * WebProcess/WebCoreSupport/WebNavigatorContentUtilsClient.h: Renamed from Source/WebKit2/WebProcess/WebCoreSupport/WebRegisterProtocolHandlerClient.h.
+ (WebKit):
+ (WebNavigatorContentUtilsClient):
+ (WebKit::WebNavigatorContentUtilsClient::~WebNavigatorContentUtilsClient):
+ (WebKit::WebNavigatorContentUtilsClient::isProtocolHandlerRegistered):
+ (WebKit::WebNavigatorContentUtilsClient::unregisterProtocolHandler):
+
+2012-08-25 Vivek Galatage <vivekgalatage@gmail.com>
+
+ WinCairo Build Broken due to missing export definitions
+ https://bugs.webkit.org/show_bug.cgi?id=95007
+
+ Reviewed by Ryosuke Niwa.
+
+ Export symbols were missing from the def file for WinCairo port. Added
+ these missing symbols to avoid build break
+
+ * win/WebKit2CFLite.def:
+
+2012-08-24 Alexey Proskuryakov <ap@apple.com>
+
+ <rdar://problem/12157689> REGRESSION: WebProcessProxy destructor is sometimes called recursively
+ https://bugs.webkit.org/show_bug.cgi?id=94997
+
+ Reviewed by Dan Bernstein.
+
+ * UIProcess/WebContext.cpp: (WebKit::WebContext::disconnectProcess): Make sure that
+ we don't try to delete WebProcessProxy while the vector still contains it. Previously,
+ we used RefPtr::clear, which zeroes out the value before destructing, but doing that
+ in every RefPtr destructor would be bad for performance.
+
+2012-08-24 Benjamin Poulain <bpoulain@apple.com>
+
+ Unify Number to StringImpl conversion
+ https://bugs.webkit.org/show_bug.cgi?id=94879
+
+ Reviewed by Geoffrey Garen.
+
+ * win/WebKit2.def: Update the exported symbols.
+
+2012-08-24 Andras Becsi <andras.becsi@nokia.com>
+
+ [Qt][WK2] Fix custom device pixel ratio propagation and add QML API tests
+ https://bugs.webkit.org/show_bug.cgi?id=88531
+
+ Reviewed by Kenneth Rohde Christiansen.
+
+ Defer setting the custom device pixel ratio until the page item has
+ a valid size to make sure that the scale factor reaches the web process.
+
+ QML test based on patch by Alexander Færøy.
+
+ * UIProcess/API/qt/qquickwebview.cpp:
+ (QQuickWebViewPrivate::QQuickWebViewPrivate):
+ (QQuickWebViewPrivate::didRelaunchProcess):
+ (QQuickWebViewPrivate::didChangeContentsSize):
+ (QQuickWebViewFlickablePrivate::didChangeContentsSize):
+ (QQuickWebViewExperimental::devicePixelRatio):
+ (QQuickWebViewExperimental::setDevicePixelRatio):
+ * UIProcess/API/qt/qquickwebview_p.h:
+ * UIProcess/API/qt/qquickwebview_p_p.h:
+ (QQuickWebViewPrivate):
+ * UIProcess/API/qt/tests/qmltests/WebView/tst_devicePixelRatio.qml: Added.
+ Test case for the QML device pixel ratio API.
+
+2012-08-24 Kangil Han <kangil.han@samsung.com>
+
+ [EFL] Fix compile warning
+ https://bugs.webkit.org/show_bug.cgi?id=94930
+
+ Reviewed by Kenneth Rohde Christiansen.
+
+ Fixed compile warning.
+
+ * UIProcess/API/efl/ewk_back_forward_list.cpp:
+ (ewk_back_forward_list_n_back_items_copy): NULL used in arithmetic [-Wpointer-arith]
+ (ewk_back_forward_list_n_forward_items_copy): NULL used in arithmetic [-Wpointer-arith]
+
+2012-08-24 Mikhail Pozdnyakov <mikhail.pozdnyakov@intel.com>
+
+ [EFL][WK2] Back-forward list API needs extension
+ https://bugs.webkit.org/show_bug.cgi?id=94582
+
+ Reviewed by Kenneth Rohde Christiansen.
+
+ Added several new functions wrapping existing WK2 C back-forward list API
+ and returning list of items preceding or following the current one.
+ Corresponding API unit tests are also added.
+
+ * UIProcess/API/efl/ewk_back_forward_list.cpp:
+ (createEinaList):
+ (ewk_back_forward_list_n_back_items_copy):
+ (ewk_back_forward_list_n_forward_items_copy):
+ * UIProcess/API/efl/ewk_back_forward_list.h:
+ * UIProcess/API/efl/tests/test_ewk2_back_forward_list.cpp:
+ (freeEinaList):
+ (TEST_F):
+
+2012-08-24 Michael Brüning <michaelbruening@gmail.com>
+
+ [Qt][WK2] Make viewport related experimental.test properties encapsulated.
+ https://bugs.webkit.org/show_bug.cgi?id=88320
+
+ Reviewed by Kenneth Rohde Christiansen.
+
+ Introducing a new viewport attribute to QWebKitTest to group the viewport related
+ attributes into one QJsonObject. Also adding a static method to convert a QSizeF to
+ a QJsonObject.
+
+ * UIProcess/API/qt/qwebkittest.cpp:
+ (qSizeFToJsonObject):
+ (QWebKitTest::viewport):
+ (QWebKitTest::devicePixelRatio):
+ (QWebKitTest::contentsScale):
+ * UIProcess/API/qt/qwebkittest_p.h:
+ * UIProcess/qt/QtViewportHandler.cpp:
+ (WebKit::QtViewportHandler::viewportAttributesChanged):
+
+2012-08-23 Frederik Gladhorn <gladhorn@kde.org>
+
+ Make it possible to build WebKit with Python 3 (and 2)
+ https://bugs.webkit.org/show_bug.cgi?id=94814
+
+ Reviewed by Ryosuke Niwa.
+
+ Exceptions need a hack to work with both.
+ string.join was already deprecated in Python 2.
+ Relative imports are no longer supported, use package name instead.
+
+ * Scripts/webkit2/messages.py:
+ * Scripts/webkit2/parser.py:
+
+2012-08-24 Mark Rowe <mrowe@apple.com>
+
+ <http://webkit.org/b/94910> Copy the entire webkit2 module in to the WebKit2 framework wrapper.
+
+ Reviewed by Dan Bernstein.
+
+ This will allow relative imports within the webkit2 module to be removed in the future without
+ requiring future changes to clients of the module.
+
+ * WebKit2.xcodeproj/project.pbxproj: Remove the webkit2 group from the project, and add it back
+ as a folder reference. This allows the directory and its contents to be copied in to the PrivateHeaders
+ directory. We also need to add a script phase to clean up any .pyc files that may be present in
+ the module.
+
+2012-08-23 Sheriff Bot <webkit.review.bot@gmail.com>
+
+ Unreviewed, rolling out r126542.
+ http://trac.webkit.org/changeset/126542
+ https://bugs.webkit.org/show_bug.cgi?id=94907
+
+ Broke WK2 build on OS X (Requested by tronical_ on #webkit).
+
+ * Scripts/webkit2/messages.py:
+ * Scripts/webkit2/parser.py:
+
+2012-08-23 Frederik Gladhorn <gladhorn@kde.org>
+
+ Make it possible to build WebKit with Python 3 (and 2)
+ https://bugs.webkit.org/show_bug.cgi?id=94814
+
+ Reviewed by Ryosuke Niwa.
+
+ Exceptions need a hack to work with both.
+ string.join was already deprecated in Python 2.
+ Relative imports are no longer supported, use package name instead.
+
+ * Scripts/webkit2/messages.py:
+ * Scripts/webkit2/parser.py:
+
+2012-08-23 Mark Hahnenberg <mhahnenberg@apple.com>
+
+ Change behavior of MasqueradesAsUndefined to better accommodate DFG changes
+ https://bugs.webkit.org/show_bug.cgi?id=93884
+
+ Reviewed by Filip Pizlo.
+
+ With some upcoming changes to the DFG to remove uses of ClassInfo, we will be changing the behavior of
+ MasqueradesAsUndefined. In order to make this change consistent across all of our execution engines,
+ we will make this change to MasqueradesAsUndefined as a separate patch. After this patch, MasqueradesAsUndefined
+ objects will only masquerade as undefined in their original context (i.e. their original JSGlobalObject).
+ For example, if an object that masquerades as undefined in frame A is passed to frame B, it will not
+ masquerade as undefined within frame B, but it will continue to masquerade in frame A.
+
+ * WebProcess/Plugins/Netscape/NPRuntimeObjectMap.cpp:
+ (WebKit::NPRuntimeObjectMap::convertJSValueToNPVariant): Passing ExecState to toBoolean call.
+
+2012-08-23 Brady Eidson <beidson@apple.com>
+
+ REGRESSION (r124815): PDF in frame does not display any more
+ <rdar://problem/12063306> and https://bugs.webkit.org/show_bug.cgi?id=94869
+
+ Reviewed by Alexey Proskuryakov.
+
+ * WebProcess/Plugins/PDF/BuiltInPDFView.mm:
+ (WebKit::BuiltInPDFView::initialize): Tell the controller that initialization was successful.
+
+2012-08-23 Mark Rowe <mrowe@apple.com>
+
+ Make WebKit2 build with the latest version of clang.
+
+ Reviewed by Dan Bernstein.
+
+ * Configurations/Base.xcconfig: Ensure that operator new isn't exported as a weak external symbol.
+
+2012-08-22 Jesus Sanchez-Palencia <jesus.palencia@openbossa.org>
+
+ [EFL] Use WTF_USE_SOUP instead BUILDING_SOUP__
+ https://bugs.webkit.org/show_bug.cgi?id=94744
+
+ Reviewed by Gustavo Noronha Silva.
+
+ Use #if defined(WTF_USE_SOUP) instead of #if defined(BUILDING_SOUP__)
+ since the former is used everywhere.
+
+ * Shared/API/c/WKBase.h:
+
+2012-08-23 Christophe Dumez <christophe.dumez@intel.com>
+
+ [EFL][WK2] Free ewk context data on program exit.
+ https://bugs.webkit.org/show_bug.cgi?id=94808
+
+ Reviewed by Kenneth Rohde Christiansen.
+
+ Make sure the default Ewk_Context gets freed
+ on program exit.
+
+ The patch also fixes leaking of WKContextRef
+ inside Ewk_Context which should have been
+ adopted.
+
+ * UIProcess/API/efl/ewk_context.cpp:
+ (_Ewk_Context::_Ewk_Context):
+ (ewk_context_default_get):
+
+2012-08-23 Adrienne Walker <enne@google.com>
+
+ Convert ScrollableArea ASSERT_NOT_REACHED virtuals
+ https://bugs.webkit.org/show_bug.cgi?id=93306
+
+ Reviewed by Darin Adler.
+
+ Add implementations where necessary to make derived classes concrete.
+ Add OVERRIDE for ScrollableArea functions.
+
+ * UIProcess/win/WebPopupMenuProxyWin.cpp:
+ (WebKit::WebPopupMenuProxyWin::visibleHeight):
+ (WebKit):
+ (WebKit::WebPopupMenuProxyWin::visibleWidth):
+ (WebKit::WebPopupMenuProxyWin::contentsSize):
+ (WebKit::WebPopupMenuProxyWin::scrollableAreaBoundingBox):
+ * UIProcess/win/WebPopupMenuProxyWin.h:
+ (WebPopupMenuProxyWin):
+ * WebProcess/Plugins/PDF/BuiltInPDFView.h:
+
+2012-08-23 Mikhail Pozdnyakov <mikhail.pozdnyakov@intel.com>
+
+ [EFL][WK2] ewk_intent_request API test does not free Eina_List
+ https://bugs.webkit.org/show_bug.cgi?id=94809
+
+ Reviewed by Kenneth Rohde Christiansen.
+
+ The used Eina_List should be freed due to ewk_intent_suggestions_get() documentation.
+
+ * UIProcess/API/efl/tests/test_ewk2_intents.cpp:
+ (onIntentReceived):
+
+2012-08-23 Andras Becsi <andras.becsi@nokia.com>
+
+ [Qt][WK2] Helper functions used by the raw webview tests should not be guarded by HAVE_QTQUICK
+
+ Reviewed by Simon Hausmann.
+
+ This fixes the build if the QtQuick module is not present.
+
+ * UIProcess/API/qt/tests/util.cpp:
+ (messageHandler):
+ (suppressDebugOutput):
+ * UIProcess/API/qt/tests/util.h:
+
+2012-08-23 Carlos Garcia Campos <cgarcia@igalia.com>
+
+ REGRESSION(r126306): it broke the plugin process
+ https://bugs.webkit.org/show_bug.cgi?id=94797
+
+ Reviewed by Xan Lopez.
+
+ * GNUmakefile.am:
+
+2012-08-23 Mikhail Pozdnyakov <mikhail.pozdnyakov@intel.com>
+
+ [WK2] Refactoring: WebBackForwardList getters should be const
+ https://bugs.webkit.org/show_bug.cgi?id=94711
+
+ Reviewed by Kenneth Rohde Christiansen.
+
+ Before the change were not consistent with each other
+ (WebBackForwardList::entries() was const but WebBackForwardList::currentIndex() was not).
+ Besides having not const getters is not a good practice in C++. (Please read
+ Scott Meyers. Effective C++ (3rd edition). ISBN: 0-321-33487-6.
+ Item 3: 'Use const whenever possible').
+
+ * UIProcess/WebBackForwardList.cpp:
+ (WebKit::WebBackForwardList::backListCount):
+ (WebKit::WebBackForwardList::forwardListCount):
+ (WebKit::WebBackForwardList::backListAsImmutableArrayWithLimit):
+ (WebKit::WebBackForwardList::forwardListAsImmutableArrayWithLimit):
+ * UIProcess/WebBackForwardList.h:
+ (WebKit::WebBackForwardList::currentIndex):
+ (WebBackForwardList):
+
+2012-08-22 Nikhil Bhargava <nbhargava@google.com>
+
+ Reduce Font.h includes across project -- improves RenderObject.h compile time
+ https://bugs.webkit.org/show_bug.cgi?id=93629
+
+ Reviewed by Eric Seidel.
+
+ Adds includes due to change in RenderStyle.h
+
+ * WebProcess/WebPage/mac/WebPageMac.mm:
+
+2012-08-22 Beth Dakin <bdakin@apple.com>
+
+ https://bugs.webkit.org/show_bug.cgi?id=94401
+ Add support for making a web site become paginated using overflow:
+ paged-x | paged-y
+ -and corresponding-
+ <rdar://problem/11831783>
+
+ Reviewed by Dave Hyatt.
+
+ WebCore::Page::Pagination is now just WebCore::Pagination.
+ * Shared/WebPageCreationParameters.h:
+ (WebPageCreationParameters):
+ * UIProcess/API/C/WKPage.cpp:
+ (WKPageSetPaginationMode):
+ (WKPageGetPaginationMode):
+ * UIProcess/WebPageProxy.cpp:
+ (WebKit::WebPageProxy::WebPageProxy):
+ (WebKit::WebPageProxy::setPaginationMode):
+ * UIProcess/WebPageProxy.h:
+ (WebPageProxy):
+ (WebKit::WebPageProxy::paginationMode):
+ * WebProcess/WebPage/WebPage.cpp:
+ (WebKit::WebPage::setPaginationMode):
+ (WebKit::WebPage::setPaginationBehavesLikeColumns):
+ (WebKit::WebPage::setPageLength):
+ (WebKit::WebPage::setGapBetweenPages):
+ * WebProcess/WebPage/WebPage.h:
+ (WebPage):
+
+2012-08-22 Jer Noble <jer.noble@apple.com>
+
+ Browser menu visible when calling webkitRequestFullscreen after user manually enters full screen mode
+ https://bugs.webkit.org/show_bug.cgi?id=93892
+
+ Reviewed by Eric Carlson.
+
+ Allow the full screen window to "Join All Spaces", so that once it's original full screen space is destroyed,
+ it can join the new one.
+
+ * UIProcess/mac/WKFullScreenWindowController.mm:
+ (-[WKFullScreenWindowController _startEnterFullScreenAnimationWithDuration:]):
+
+2012-08-22 Alexey Proskuryakov <ap@apple.com>
+
+ [WK2] Support posting injected bundle messages to a page
+ https://bugs.webkit.org/show_bug.cgi?id=94630
+
+ Reviewed by Sam Weinig.
+
+ * Shared/APIClientTraits.cpp:
+ * Shared/APIClientTraits.h:
+ * Shared/CoreIPCSupport/InjectedBundleMessageKinds.h:
+ * UIProcess/API/C/WKPage.cpp:
+ (WKPagePostMessageToInjectedBundle):
+ * UIProcess/API/C/WKPage.h:
+ * UIProcess/WebPageProxy.cpp:
+ (WebKit::WebPageProxy::postMessageToInjectedBundle):
+ * UIProcess/WebPageProxy.h:
+ * WebProcess/InjectedBundle/API/c/WKBundle.h:
+ * WebProcess/InjectedBundle/InjectedBundle.cpp:
+ (WebKit::InjectedBundle::didReceiveMessageToPage):
+ (WebKit::InjectedBundle::didReceiveMessage):
+ * WebProcess/InjectedBundle/InjectedBundle.h:
+ * WebProcess/InjectedBundle/InjectedBundleClient.cpp:
+ (WebKit::InjectedBundleClient::didReceiveMessageToPage):
+ * WebProcess/InjectedBundle/InjectedBundleClient.h:
+ (InjectedBundleClient):
+ Added a PostMessageToPage injected bundle message type, with all associated
+ machinery. API is WKPagePostMessageToInjectedBundle(), and an associated
+ didReceiveMessageToPage() injected bundle client function.
+
+ * WebProcess/qt/QtBuiltinBundle.cpp: (WebKit::QtBuiltinBundle::initialize):
+ Updated for new client API.
+
+ * UIProcess/WebContext.cpp: (WebKit::WebContext::postMessageToInjectedBundle):
+ Implemented multiple process model case.
+
+2012-08-22 Gustavo Noronha Silva <gns@gnome.org>
+
+ [GTK] Split WebCore/platform into a separate library
+ https://bugs.webkit.org/show_bug.cgi?id=94435
+
+ Reviewed by Martin Robinson.
+
+ More people have been reporting problems when linking WebCore because
+ the command line limit is being exceeded. Splitting WebCore a bit more
+ is in order.
+
+ * GNUmakefile.am: link libWebCorePlatform into libwebkit2gtk
+
+2012-08-22 Carlos Garcia Campos <cgarcia@igalia.com>
+
+ [GTK] Preferred languages and spellchecker APIs are not consistent in WebKit2
+ https://bugs.webkit.org/show_bug.cgi?id=94683
+
+ Reviewed by Alejandro G. Castro.
+
+ Change spell-checker and preferred languages API to use a GStrv
+ instead of a comma-separated string and GList. This makes the API
+ more consistent and convenient to use.
+
+ * UIProcess/API/gtk/WebKitTextChecker.cpp:
+ (WebKitTextChecker::getSpellCheckingLanguages): Return a
+ Vector<String> instead of a String.
+ (WebKitTextChecker::setSpellCheckingLanguages): Receive a
+ Vector<String> instead of a String.
+ * UIProcess/API/gtk/WebKitTextChecker.h:
+ (WebKitTextChecker): Use a GPtrArray to cache languages.
+ * UIProcess/API/gtk/WebKitWebContext.cpp:
+ (webkit_web_context_get_spell_checking_languages):
+ (webkit_web_context_set_spell_checking_languages):
+ (webkit_web_context_set_preferred_languages):
+ * UIProcess/API/gtk/WebKitWebContext.h:
+ * UIProcess/API/gtk/tests/TestWebKitWebContext.cpp:
+ (testWebContextSpellChecker):
+ (testWebContextLanguages):
+
+2012-08-22 Csaba Osztrogonác <ossy@webkit.org>
+
+ [Qt][WK2] Enable runtime enabled features: DeviceMotion and DeviceOrientation
+ https://bugs.webkit.org/show_bug.cgi?id=94692
+
+ Reviewed by Kenneth Rohde Christiansen.
+
+ * WebProcess/qt/WebProcessQt.cpp:
+ (WebKit::WebProcess::platformInitializeWebProcess):
+
+2012-08-22 Allan Sandfeld Jensen <allan.jensen@nokia.com>
+
+ Wrong default for new ScrollAnimatorEnabled preference.
+
+ Reviewed by Simon Hausmann.
+
+ ScrollAnimatorEnabled introduced in r126291, should default to 'true'
+ to preserve existing behaviour on WK2 platforms that already enabled
+ SMOOTH_SCROLLING unconditionally.
+
+ * Shared/WebPreferencesStore.h:
+ (WebKit):
+
+2012-08-22 Allan Sandfeld Jensen <allan.jensen@nokia.com>
+
+ Unreviewed, build fixup for r126291.
+
+ * Shared/WebPreferencesStore.h:
+ (WebKit):
+
+2012-08-22 Allan Sandfeld Jensen <allan.jensen@nokia.com>
+
+ [Qt] Optionally support smooth-scrolling on all platforms
+ https://bugs.webkit.org/show_bug.cgi?id=74926
+
+ Reviewed by Simon Hausmann.
+
+ Expose scroll-animator preference, but ensure animated smooth scrolling
+ on the web process side is disabled when scrolling has been delegated
+ to the UI process.
+
+ * Shared/WebPreferencesStore.h:
+ * WebProcess/WebPage/WebPage.cpp:
+ (WebKit::WebPage::setResizesToContentsUsingLayoutSize):
+ (WebKit::WebPage::updatePreferences):
+
+2012-08-22 Luiz Agostini <luiz.agostini@nokia.com>
+
+ [Qt] Avoid using WebKit macros in qrawwebview_p.h
+ https://bugs.webkit.org/show_bug.cgi?id=94648
+
+ Reviewed by Noam Rosenthal.
+
+ ENABLE(FEATURE) should not be used in qrawwebview_p.h because it is an API header file.
+
+ * UIProcess/API/qt/raw/qrawwebview.cpp:
+ (QRawWebView::sendTouchEvent):
+ * UIProcess/API/qt/raw/qrawwebview_p.h:
+
+2012-08-21 Sheriff Bot <webkit.review.bot@gmail.com>
+
+ Unreviewed, rolling out r126216.
+ http://trac.webkit.org/changeset/126216
+ https://bugs.webkit.org/show_bug.cgi?id=94661
+
+ "Broke many Mac-WK2 tests" (Requested by bradee-oh on
+ #webkit).
+
+ * WebProcess/com.apple.WebProcess.sb.in:
+
+2012-08-21 Sudarsana Nagineni <sudarsana.nagineni@linux.intel.com>
+
+ [GTK] [WK2] Memory leaks in TestWebKitFindController
+ https://bugs.webkit.org/show_bug.cgi?id=94627
+
+ Reviewed by Martin Robinson.
+
+ Fix memory leaks in TestWebKitFindController by using adoptGRef
+ instead of just getting new reference of GdkPixbuf.
+
+ * UIProcess/API/gtk/tests/TestWebKitFindController.cpp:
+ (testFindControllerHide):
+
+2012-08-21 Alexey Proskuryakov <ap@apple.com>
+
+ <rdar://problem/11241850> Block access to xpcd in WebProcess.sb
+
+ Reviewed by Sam Weinig and Jon Honeycutt.
+
+ * WebProcess/com.apple.WebProcess.sb.in:
+
+2012-08-21 Alexey Proskuryakov <ap@apple.com>
+
+ <rdar://problem/8900275> Remove PubSub access from WebProcess, since it is no longer necessary
+
+ Reviewed by Mark Rowe.
+
+ * WebProcess/com.apple.WebProcess.sb.in:
+
+2012-08-21 Thiago Marcos P. Santos <thiago.santos@intel.com>
+
+ [EFL] Some public API functions don't have their symbols exported
+ https://bugs.webkit.org/show_bug.cgi?id=94589
+
+ Reviewed by Kenneth Rohde Christiansen.
+
+ Added missing export symbol macro to these public API functions.
+
+ * UIProcess/API/efl/ewk_view.h:
+
+2012-08-21 Martin Robinson <mrobinson@igalia.com>
+
+ [GTK] Using a native window for the WebView breaks GtkOverlay
+ https://bugs.webkit.org/show_bug.cgi?id=90085
+
+ Reviewed by Alejandro G. Castro.
+
+ Add XComposite libraries to the linker list for WebKit2.
+
+ * GNUmakefile.am: Add XComposite
+
+2012-08-21 Jesse van den Kieboom <jessevdk@gnome.org> and Carlos Garcia Campos <cgarcia@igalia.com>
+
+ [GTK] Add destroy notify for register_uri_scheme
+ https://bugs.webkit.org/show_bug.cgi?id=94315
+
+ Reviewed by Philippe Normand.
+
+ For introspection to work correctly, a destroy notify needs to be
+ added to register_uri_scheme so that bindings know when to
+ finalize the user_data.
+
+ * UIProcess/API/gtk/WebKitWebContext.cpp:
+ (webkit_web_context_register_uri_scheme):
+ (webkitWebContextReceivedURIRequest):
+ * UIProcess/API/gtk/WebKitWebContext.h:
+ * UIProcess/API/gtk/tests/TestWebKitWebContext.cpp:
+
+2012-08-21 Simon Hausmann <simon.hausmann@nokia.com>
+
+ Unreviewed build fix for newer Qt 5: QT += qmltest does not imply QT += testlib anymore, but
+ the code here needs QSignalSpy from QTestLib
+
+ * UIProcess/API/qt/tests/qmltests/DesktopBehavior.pro:
+ * UIProcess/API/qt/tests/qmltests/WebView.pro:
+
+2012-08-18 John Sullivan <sullivan@apple.com>
+
+ <https://bugs.webkit.org/show_bug.cgi?id=94486>
+ <rdar://problem/12128557>
+ REGRESSION (r121482, Lion-only): Closing a popover containing a WKView can crash
+
+ Reviewed by Darin Adler.
+
+ * UIProcess/API/mac/WKView.mm:
+ (-[WKView viewWillMoveToWindow:]):
+ Avoid calling the code added in 121482 that ensures that the undo stack is cleaned up
+ before the WKView is moved from one window to another when the WKView is being moved
+ out of a popover window. This avoids a bug in OS X 10.7 that was fixed in 10.8.
+ While this technically reopens a potentially crashing code path that 121482 closed,
+ it only reopens it for WKViews that are used for text editing and that are removed
+ from an NSPopover at some time earlier than tear-down of the NSPopover.
+
+2012-08-20 Allan Sandfeld Jensen <allan.jensen@nokia.com>
+
+ [Qt] Custom tap-highlight-color renders fully opaque
+ https://bugs.webkit.org/show_bug.cgi?id=94468
+
+ Reviewed by Kenneth Rohde Christiansen.
+
+ Draw tap-highlight-color at 50% transparency, to better match how
+ existing WebKit browsers act on custom tap-highlight colors.
+
+ * WebProcess/WebPage/TapHighlightController.cpp:
+ (WebKit::TapHighlightController::drawRect):
+
+2012-08-20 Carlos Garcia Campos <cgarcia@igalia.com>
+
+ [GTK] Replace webkit_web_view_replace_content with webkit_web_view_load_alternate_html
+ https://bugs.webkit.org/show_bug.cgi?id=94471
+
+ Reviewed by Martin Robinson.
+
+ In WebKit1 there's code to prevent that load signals are emitted
+ when loading internal custom error pages. We added
+ webkit_web_view_replace_content() with the same idea, but it has
+ ended up being problematic, because it allows to add any HTML
+ content (in WebKit1 we assumed internal error pages never failed
+ and always loaded) and it's impossible to know when the load has
+ finished. It also required a lot of logic to handle
+ replace_content as an especial case, in order to hide the fact
+ that it loads content. This patch renames
+ webkit_web_view_replace_content() as
+ webkit_web_view_load_alternate_html() and emit load events
+ normally.
+
+ * UIProcess/API/gtk/WebKitWebView.cpp:
+ (_WebKitWebViewPrivate):
+ (webkitWebViewLoadChanged):
+ (webkitWebViewLoadFailed):
+ (webkitWebViewSetEstimatedLoadProgress):
+ (webkitWebViewResourceLoadStarted):
+ (webkitWebViewGetLoadingWebResource):
+ (webkitWebViewRemoveLoadingWebResource):
+ (webkitWebViewResourceLoadFinished):
+ (webkit_web_view_load_alternate_html):
+ * UIProcess/API/gtk/WebKitWebView.h:
+ * UIProcess/API/gtk/docs/webkit2gtk-sections.txt:
+ * UIProcess/API/gtk/tests/TestLoaderClient.cpp:
+ (testLoadAlternateHTML):
+ (beforeAll):
+ * UIProcess/API/gtk/tests/TestResources.cpp:
+ (beforeAll):
+ * UIProcess/API/gtk/tests/TestWebKitWebView.cpp:
+ (beforeAll):
+ * UIProcess/API/gtk/tests/WebViewTest.cpp:
+ (WebViewTest::loadAlternateHTML):
+ * UIProcess/API/gtk/tests/WebViewTest.h:
+
+2012-08-20 Mikhail Pozdnyakov <mikhail.pozdnyakov@intel.com>
+
+ [EFL][WK2] Add unit tests for WKEinaSharedString
+ https://bugs.webkit.org/show_bug.cgi?id=94104
+
+ Reviewed by Kenneth Rohde Christiansen.
+
+ Added unit tests for WKEinaSharedString class.
+
+ * PlatformEfl.cmake:
+ * UIProcess/API/efl/tests/test_ewk2_eina_shared_string.cpp: Added.
+ (checkString):
+ (TEST_F):
+
+2012-08-20 Carlos Garcia Campos <cgarcia@igalia.com>
+
+ [GTK] Add API to set preferred languages to WebKit2 GTK+
+ https://bugs.webkit.org/show_bug.cgi?id=90878
+
+ Reviewed by Martin Robinson.
+
+ * UIProcess/API/gtk/WebKitWebContext.cpp:
+ (webkit_web_context_set_preferred_languages): Public API to set a
+ list of preferred languages sorted from most desirable to least
+ desirable.
+ * UIProcess/API/gtk/WebKitWebContext.h:
+ * UIProcess/API/gtk/docs/webkit2gtk-sections.txt: Add new symbol.
+ * UIProcess/API/gtk/tests/TestWebKitWebContext.cpp:
+ (testWebContextLanguages):
+ (serverCallback):
+ (beforeAll):
+ (afterAll):
+ * UIProcess/API/gtk/tests/WebViewTest.cpp:
+ (resourceGetDataCallback):
+ (WebViewTest::mainResourceData): Moved from TestWebKitWebContext
+ to make it available to all WebViewTests.
+ * UIProcess/API/gtk/tests/WebViewTest.h:
+ * WebProcess/WebProcess.cpp:
+ (WebKit::WebProcess::userPreferredLanguagesChanged): Notify our
+ observer that the languages have been overriden.
+ * WebProcess/gtk/WebProcessGtk.cpp:
+ (WebKit::buildAcceptLanguages): Helper function to build the
+ accept languages as specified in RFC 2616.
+ (WebKit::setSoupSessionAcceptLanguage): Set the accept-language
+ property of the default SoupSession.
+ (WebKit::languageChanged): Update the preferred languages in
+ SoupSession.
+ (WebKit::WebProcess::platformInitializeWebProcess): Add an
+ observer to be notified when the list of preferred languages is
+ updated.
+ (WebKit::WebProcess::platformTerminate): Remove the observer added
+ in platformInitializeWebProcess().
+
+2012-08-19 Dan Bernstein <mitz@apple.com>
+
+ WebPageProxy::setCursor does not check that the view is still in an active window
+ https://bugs.webkit.org/show_bug.cgi?id=94427
+
+ Reviewed by Alexey Proskuryakov.
+
+ The Web process may ask to change the cursor when the view is in an active window, but
+ if by the time the UI process receives the message, the view is no longer in a window or the
+ window is not active , then the cursor should not change.
+
+ * UIProcess/WebPageProxy.cpp:
+ (WebKit::WebPageProxy::setCursor): Added a check that the view is in an active window before
+ allowing the page to change the cursor.
+
+2012-08-19 Sheriff Bot <webkit.review.bot@gmail.com>
+
+ Unreviewed, rolling out r125972.
+ http://trac.webkit.org/changeset/125972
+ https://bugs.webkit.org/show_bug.cgi?id=94431
+
+ Breaks AppleMac builds (Requested by pfeldman on #webkit).
+
+ * UIProcess/API/gtk/WebKitWebContext.cpp:
+ * UIProcess/API/gtk/WebKitWebContext.h:
+ * UIProcess/API/gtk/docs/webkit2gtk-sections.txt:
+ * UIProcess/API/gtk/tests/TestWebKitWebContext.cpp:
+ (beforeAll):
+ (afterAll):
+ * UIProcess/API/gtk/tests/WebViewTest.cpp:
+ (WebViewTest::WebViewTest):
+ * UIProcess/API/gtk/tests/WebViewTest.h:
+ * WebProcess/WebProcess.cpp:
+ (WebKit::WebProcess::userPreferredLanguagesChanged):
+ * WebProcess/gtk/WebProcessGtk.cpp:
+ (WebKit::WebProcess::platformInitializeWebProcess):
+ (WebKit::WebProcess::platformTerminate):
+
+2012-08-19 Christophe Dumez <christophe.dumez@intel.com>
+
+ [EFL][WK2] Add API unit tests for Web Intents
+ https://bugs.webkit.org/show_bug.cgi?id=90454
+
+ Reviewed by Kenneth Rohde Christiansen.
+
+ Add unit testing for Web intent requests,
+ including the "intent,request,new" signal on
+ the Ewk_View and the Ewk_Intent API.
+
+ * UIProcess/API/efl/ewk_view.h: Fix documentation for argument type of "intent,request,new" signal.
+ * UIProcess/API/efl/tests/UnitTestUtils/EWK2UnitTestBase.cpp:
+ (EWK2UnitTest::EWK2UnitTestBase::mouseClick): Add utility method to simulate a click at given
+ coordinates. This is needed for testing functionality that requires a user gesture.
+ (EWK2UnitTest):
+ * UIProcess/API/efl/tests/UnitTestUtils/EWK2UnitTestBase.h:
+ (EWK2UnitTestBase):
+ * UIProcess/API/efl/tests/resources/intent-request.html: Added.
+ * UIProcess/API/efl/tests/test_ewk2_intents.cpp:
+ (stringSortCb):
+ (onIntentReceived):
+ (TEST_F):
+
+2012-08-18 Carlos Garcia Campos <cgarcia@igalia.com>
+
+ [GTK] Add API to set preferred languages to WebKit2 GTK+
+ https://bugs.webkit.org/show_bug.cgi?id=90878
+
+ Reviewed by Martin Robinson.
+
+ * UIProcess/API/gtk/WebKitWebContext.cpp:
+ (webkit_web_context_set_preferred_languages): Public API to set a
+ list of preferred languages sorted from most desirable to least
+ desirable.
+ * UIProcess/API/gtk/WebKitWebContext.h:
+ * UIProcess/API/gtk/docs/webkit2gtk-sections.txt: Add new symbol.
+ * UIProcess/API/gtk/tests/TestWebKitWebContext.cpp:
+ (testWebContextLanguages):
+ (serverCallback):
+ (beforeAll):
+ (afterAll):
+ * UIProcess/API/gtk/tests/WebViewTest.cpp:
+ (resourceGetDataCallback):
+ (WebViewTest::mainResourceData): Moved from TestWebKitWebContext
+ to make it available to all WebViewTests.
+ * UIProcess/API/gtk/tests/WebViewTest.h:
+ * WebProcess/WebProcess.cpp:
+ (WebKit::WebProcess::userPreferredLanguagesChanged): Notify our
+ observer that the languages have been overriden.
+ * WebProcess/gtk/WebProcessGtk.cpp:
+ (WebKit::buildAcceptLanguages): Helper function to build the
+ accept languages as specified in RFC 2616.
+ (WebKit::setSoupSessionAcceptLanguage): Set the accept-language
+ property of the default SoupSession.
+ (WebKit::languageChanged): Update the preferred languages in
+ SoupSession.
+ (WebKit::WebProcess::platformInitializeWebProcess): Add an
+ observer to be notified when the list of preferred languages is
+ updated.
+ (WebKit::WebProcess::platformTerminate): Remove the observer added
+ in platformInitializeWebProcess().
+
+2012-08-18 Mikhail Pozdnyakov <mikhail.pozdnyakov@intel.com>
+
+ [EFL][WK2] ewk_back_forward_list_item properties should be in sync with WebProcessProxy::m_backForwardListItemMap
+ https://bugs.webkit.org/show_bug.cgi?id=94248
+
+ Reviewed by Kenneth Rohde Christiansen.
+
+ Currently ewk_back_forward_list_item properties are initialized from
+ WKBackForwardListItemRef once in the constructor and then just stored.
+ This is erroneous approach as back forward items can be initialized within
+ several iterations, meaning several ipc calls to UI process and several updates
+ of WebProcessProxy::m_backForwardListItemMap where the items are stored.
+ Hence the values of ewk_back_forward_list_item properties should be updated
+ with the corresponding WKBackForwardListItem function invokes every time
+ they are called.
+
+ * UIProcess/API/efl/ewk_back_forward_list_item.cpp:
+ (_Ewk_Back_Forward_List_Item): Data members have to be mutable as assigned being const pointers.
+ (_Ewk_Back_Forward_List_Item::_Ewk_Back_Forward_List_Item):
+ (ewk_back_forward_list_item_uri_get):
+ (ewk_back_forward_list_item_title_get):
+ (ewk_back_forward_list_item_original_uri_get):
+
+2012-08-17 Enrica Casucci <enrica@apple.com>
+
+ Adding back the first statement of WebProcessMain accidentally
+ removed in r125358.
+
+ Reviewed by Sam Weinig.
+
+ * WebProcess/mac/WebProcessMainMac.mm: Adding back the stripping
+ of DYLD_INSERT_LIBRARIES.
+
+2012-08-17 Sudarsana Nagineni <sudarsana.nagineni@linux.intel.com>
+
+ [EFL] REGRESSION(r125923): Breaks EFL build
+ https://bugs.webkit.org/show_bug.cgi?id=94376
+
+ Reviewed by Alexey Proskuryakov.
+
+ Fix EFL build break after r125923.
+
+ * UIProcess/WebPageProxy.cpp:
+ (WebKit::WebPageProxy::didReceiveIntentForFrame):
+
+2012-08-17 Alexey Proskuryakov <ap@apple.com>
+
+ Access m_process directly in WebPageProxy.cpp
+ https://bugs.webkit.org/show_bug.cgi?id=94363
+
+ Reviewed by John Sullivan.
+
+ Consistency fix - we don't use accessors when we don't have to, and there is a mix in this file.
+
+ * UIProcess/WebPageProxy.cpp:
+
+2012-08-17 Claudio Saavedra <csaavedra@igalia.com>
+
+ [GTK] Add WK2 API to get suggested filename for URI responses
+ https://bugs.webkit.org/show_bug.cgi?id=92967
+
+ Reviewed by Carlos Garcia Campos.
+
+ Webcore has API to get the suggested filename for a response, add
+ a property and getter for it in WebKitURIResponse.
+
+ * UIProcess/API/gtk/WebKitURIResponse.cpp:
+ (_WebKitURIResponsePrivate): Add a CString holding the value.
+ (webkitURIResponseGetProperty): Add the gobject bits for the
+ property.
+ (webkit_uri_response_class_init): Install the property.
+ (webkit_uri_response_get_suggested_filename): New getter.
+ * UIProcess/API/gtk/WebKitURIResponse.h: Declare the public
+ method.
+ * UIProcess/API/gtk/docs/webkit2gtk-sections.txt: Add the new API
+ symbols.
+ * UIProcess/API/gtk/tests/TestResources.cpp:
+ (testWebResourceSuggestedFilename): Test the new API.
+ (serverCallback): Add the the content-disposition header
+ in one case, in order to test it.
+ (beforeAll): Add the new test.
+
+2012-08-17 Mikhail Pozdnyakov <mikhail.pozdnyakov@intel.com>
+
+ [EFL][wk2] Add unit tests for back-forward list API
+ https://bugs.webkit.org/show_bug.cgi?id=92617
+
+ Reviewed by Kenneth Rohde Christiansen.
+
+ Added unit tests covering the existing EFL WK2 back-forward list API.
+
+ * PlatformEfl.cmake:
+ * UIProcess/API/efl/tests/resources/default_test_page.html:
+ * UIProcess/API/efl/tests/test_ewk2_back_forward_list.cpp: Added.
+ (serverCallbackNavigation):
+ (checkItem):
+ (urlFromTitle):
+ (TEST_F):
+
+2012-08-17 Jeff Miller <jeffm@apple.com>
+
+ UserMessageEncoder::baseEncode() should ASSERT when attempting to encode a non-shareable image
+ https://bugs.webkit.org/show_bug.cgi?id=94245
+
+ Reviewed by Alexey Proskuryakov.
+
+ It's a programming error if a client attempts to encode an image that has an
+ allocated bitmap, but isn't shareable, so we should assert in this case.
+
+ * Shared/UserMessageCoders.h:
+ (WebKit::UserMessageEncoder::baseEncode):
+ Assert if we're trying to encode valid non-shareable image.
+
+2012-08-17 Sudarsana Nagineni <sudarsana.nagineni@linux.intel.com>
+
+ [EFL] [WK2] Add unit tests for vibration_client_callbacks_set API
+ https://bugs.webkit.org/show_bug.cgi?id=93890
+
+ Reviewed by Kenneth Rohde Christiansen.
+
+ This patch covers unit testing of the Vibration API as delivered.
+
+ * UIProcess/API/efl/tests/test_ewk2_context.cpp:
+ (VibrationCbData):
+ (vibrateCallback):
+ (cancelVibrationCallback):
+ (loadVibrationHTMLString):
+ (TEST_F):
+
+2012-08-17 Carlos Garcia Campos <cgarcia@igalia.com>
+
+ [GTK] Rename WebKitWebView print-requested signal to print
+ https://bugs.webkit.org/show_bug.cgi?id=94306
+
+ Reviewed by Martin Robinson.
+
+ WebKitWebView::print-requested is inconsistent with the rest of
+ the API. It's a true_handled signal that allows users to implement
+ their own print dialog, or block printing, or rely on
+ defaults. The signal should be WebKitWebView::print like other
+ signals (create, close, decide_policy, etc.)
+
+ * UIProcess/API/gtk/WebKitWebView.cpp:
+ (webkit_web_view_class_init):
+ (webkitWebViewPrintFrame):
+ * UIProcess/API/gtk/WebKitWebView.h:
+ (_WebKitWebViewClass):
+ * UIProcess/API/gtk/tests/TestPrinting.cpp:
+ (webViewPrintCallback):
+ (testWebViewPrint):
+ (beforeAll):
+
+2012-08-17 Sudarsana Nagineni <sudarsana.nagineni@linux.intel.com>
+
+ [EFL] [WK2] Free Eina Strbuf with eina_strbuf_free() instead of eina_strbuf_string_free()
+ https://bugs.webkit.org/show_bug.cgi?id=94312
+
+ Reviewed by Kenneth Rohde Christiansen.
+
+ eina_strbuf_string_free() frees the contents of a string buffer but not the
+ buffer, so eina_strbuf_free() must be used to free the buffer.
+
+ Contents of the buffer has already been take care by stealing it with
+ eina_strbuf_string_steal(), so no reason to call eina_strbuf_string_free().
+
+ * UIProcess/API/efl/tests/test_ewk2_cookie_manager.cpp:
+ (serverCallback):
+
+2012-08-17 Mikhail Pozdnyakov <mikhail.pozdnyakov@intel.com>
+
+ [EFL][WK2] Getting unnecessary EINA_SAFETY_ON_NULL_RETURN_VAL warnings while page navigation
+ https://bugs.webkit.org/show_bug.cgi?id=94308
+
+ Reviewed by Kenneth Rohde Christiansen.
+
+ The reason is that loadClient.didChangeBackForwardList callback is invoked with zero
+ arguments which is valid case while page back-forward navigation and means basically
+ that the back-froward list has changed but items were not added or deleted.
+
+ * UIProcess/API/efl/ewk_back_forward_list.cpp:
+ (ewk_back_forward_list_changed):
+
+2012-08-16 Lauro Neto <lauro.neto@openbossa.org>
+
+ [Qt] Failure to build with --no-inspector
+ https://bugs.webkit.org/show_bug.cgi?id=94148
+
+ Reviewed by Noam Rosenthal.
+
+ Add guards around usage of inspector functions.
+
+ * UIProcess/API/qt/qquickwebview.cpp:
+ (QQuickWebViewExperimental::remoteInspectorUrl):
+
+2012-08-16 Jocelyn Turcotte <jocelyn.turcotte@nokia.com>
+
+ [Qt] Remove an unused variable
+
+ Reviewed by Simon Hausmann.
+
+ * UIProcess/API/qt/qquickwebpage.cpp:
+ (QQuickWebPagePrivate::QQuickWebPagePrivate):
+ * UIProcess/API/qt/qquickwebpage_p_p.h:
+ (QQuickWebPagePrivate):
+
+2012-08-16 Jocelyn Turcotte <jocelyn.turcotte@nokia.com>
+
+ [Qt][WK2] Change the default cache model to enable the page cache
+ https://bugs.webkit.org/show_bug.cgi?id=94221
+
+ Reviewed by Simon Hausmann.
+
+ The default CacheModelDocumentViewer disables the memory back-forward page cache.
+ As uses of applications using QQuickWebView might vary, I'm setting the default to
+ CacheModelDocumentBrowser.
+ We should eventually expose this in the API to allow serious Web browsers setting it
+ to CacheModelPrimaryWebBrowser or to CacheModelDocumentViewer for application tight
+ on memory with limited page navigations.
+
+ * UIProcess/qt/QtWebContext.cpp:
+ (WebKit::QtWebContext::defaultContext):
+
+2012-08-15 Jocelyn Turcotte <jocelyn.turcotte@nokia.com>
+
+ [Qt] Make sure that we don't prematurely force the first layout during loading.
+ https://bugs.webkit.org/show_bug.cgi?id=94106
+
+ Reviewed by Kenneth Rohde Christiansen.
+
+ This would have the nasty effect that the frame loader would report the first layout
+ before loadCommitted was reported. This would resume the rendering engine prematurely,
+ showing blank content and reporting an empty contents size.
+
+ * WebProcess/WebPage/WebPage.cpp:
+ (WebKit::WebPage::setFixedLayoutSize):
+
+2012-08-16 Marcelo Lira <marcelo.lira@openbossa.org>
+
+ [Qt] Input method hints are not being set.
+ https://bugs.webkit.org/show_bug.cgi?id=92386
+
+ Reviewed by Kenneth Rohde Christiansen.
+
+ Input method hints for an editable element must be obtained from a proper
+ HTML element. If the editable element is a complex one, it will have elements
+ in the Shadow DOM, and it's one of those that will be returned as the root
+ editable element. This works for editable DIVs, but not for INPUT elements.
+ Using Element::shadowHost() on the root editable element will provide the
+ needed HTML element, and for further clarity a method that does this was added
+ to FrameSelection.
+
+ Added an API test to the Qt port regarding the correct setting
+ of input method hints information on INPUT HTML tags.
+
+ * UIProcess/API/qt/tests/html/inputmethod.html:
+ * UIProcess/API/qt/tests/qquickwebview/tst_qquickwebview.cpp:
+ (tst_QQuickWebView):
+ (tst_QQuickWebView::inputMethodHints):
+ * WebProcess/WebPage/WebPage.cpp:
+ (WebKit::WebPage::editorState):
+
+2012-08-16 Zeno Albisser <zeno@webkit.org>
+
+ Make GraphicsSurface double buffered by default.
+ https://bugs.webkit.org/show_bug.cgi?id=93252
+
+ Create only a single GraphicsSurface per canvas
+ on both supported platforms Mac/Linux.
+ The GraphicsSurface on Mac internally uses two IOSurface
+ to provide a front and a back buffer.
+ The GLX implementation of GraphicsSurface uses
+ an XWindow which already provides a front and a back buffer.
+
+ Reviewed by Noam Rosenthal.
+
+ * Shared/ShareableSurface.h:
+ (Handle):
+ Change the type of GraphicsSurface token to uint64_t.
+ * UIProcess/CoordinatedGraphics/LayerTreeCoordinatorProxy.cpp:
+ (WebKit::LayerTreeCoordinatorProxy::syncCanvas):
+ Add a parameter that denotes the current front buffer of the
+ GraphicsSurface.
+ * UIProcess/CoordinatedGraphics/LayerTreeCoordinatorProxy.h:
+ (LayerTreeCoordinatorProxy):
+ * UIProcess/CoordinatedGraphics/LayerTreeCoordinatorProxy.messages.in:
+ * UIProcess/CoordinatedGraphics/LayerTreeRenderer.cpp:
+ (WebKit::LayerTreeRenderer::syncCanvas):
+ * UIProcess/CoordinatedGraphics/LayerTreeRenderer.h:
+ (LayerTreeRenderer):
+ * WebProcess/WebPage/CoordinatedGraphics/CoordinatedGraphicsLayer.cpp:
+ (WebCore::CoordinatedGraphicsLayer::syncCanvas):
+ * WebProcess/WebPage/CoordinatedGraphics/CoordinatedGraphicsLayer.h:
+ (CoordinatedGraphicsLayerClient):
+ * WebProcess/WebPage/CoordinatedGraphics/LayerTreeCoordinator.cpp:
+ (WebKit::LayerTreeCoordinator::syncCanvas):
+ * WebProcess/WebPage/CoordinatedGraphics/LayerTreeCoordinator.h:
+ (LayerTreeCoordinator):
+
+2012-08-16 Pierre Rossi <pierre.rossi@gmail.com>
+
+ [Qt] Remove FontQt4, HAVE_QRAWFONT flag and the related dead code
+ https://bugs.webkit.org/show_bug.cgi?id=93960
+
+ Reviewed by Simon Hausmann.
+
+ Following the removal of Qt 4 support from trunk in r124879.
+
+ * WebProcess/WebProcess.cpp:
+ (WebKit::WebProcess::getWebCoreStatistics):
+
+2012-08-16 Christophe Dumez <christophe.dumez@intel.com>
+
+ [EFL][WK2] Add unit tests for Web intent registration
+ https://bugs.webkit.org/show_bug.cgi?id=94133
+
+ Reviewed by Kenneth Rohde Christiansen.
+
+ Add unit tests for Web Intent service registration.
+ This tests the "intent,service,register" signaling
+ on the Ewk_View as well as Ewk_Intent_Service.
+
+ * PlatformEfl.cmake:
+ * UIProcess/API/efl/tests/resources/intent-service.html: Added.
+ * UIProcess/API/efl/tests/test_ewk2_intents.cpp: Added.
+ (onIntentServiceRegistration):
+ (TEST_F):
+
+2012-08-16 Marja Hölttä <marja@chromium.org>
+
+ FormController, WebHistoryItem: Enable reading selected file names from document state
+ https://bugs.webkit.org/show_bug.cgi?id=91231
+
+ Reviewed by Jochen Eisinger.
+
+ This change enables Chromium to set up file permissions properly when
+ the session restore feature restores a page with selected files.
+
+ * win/WebKit2.def: Exported FormController::getReferencedFilePaths and HistoryController::saveDocumentAndScrollState.
+
+2012-08-15 Ryosuke Niwa <rniwa@webkit.org>
+
+ Update manual tests and comments to refer to TestRunner instead of LayoutTestController
+ https://bugs.webkit.org/show_bug.cgi?id=94168
+
+ Reviewed by Kent Tamura.
+
+ * Shared/WebPreferencesStore.cpp:
+ (WebKit::WebPreferencesStore::getBoolValueForKey):
+
+2012-08-15 Bruno de Oliveira Abinader <bruno.abinader@basyskom.com>
+
+ [css3-text] Add CSS3 Text decoration compile flag
+ https://bugs.webkit.org/show_bug.cgi?id=93863
+
+ Reviewed by Julien Chaffraix.
+
+ This patch handles the compile flag implementation, which will come disabled by
+ default, thus not exposing the CSS3 text decoration features to the web, unless
+ when explicitly enabling it with "--css3-text-decoration" build parameter.
+
+ * Configurations/FeatureDefines.xcconfig:
+
+2012-08-15 Sheriff Bot <webkit.review.bot@gmail.com>
+
+ Unreviewed, rolling out r125687.
+ http://trac.webkit.org/changeset/125687
+ https://bugs.webkit.org/show_bug.cgi?id=94147
+
+ It broke the whole world (Requested by Ossy_night on #webkit).
+
+ * WebProcess/Plugins/Netscape/NPRuntimeObjectMap.cpp:
+ (WebKit::NPRuntimeObjectMap::convertJSValueToNPVariant):
+
+2012-08-15 Beth Dakin <bdakin@apple.com>
+
+ https://bugs.webkit.org/show_bug.cgi?id=93693
+ [WK2] REGRESSION(125091): pixel results don't sow scrollbars
+ anymore
+
+ Reviewed by Sam Weinig.
+
+ This is a regression from http://trac.webkit.org/changeset/125091
+ in which I failed to noticed that
+ WKBundlePageCreateSnapshotInViewCoordinates() did actually do
+ something different than
+ WKBundlePageCreateSnapshotInDocumentCoordinates(). Specifically,
+ it used ScrollView::paint() to paint instead of
+ FrameView::paintContents(). So this patch restores that
+ functionality by adding a value to SnapshotOptions indicating
+ whether the snapshot should be taken in ViewCoordinates
+ (otherwise it defaults to DocumentCoordinates).
+
+ * Shared/API/c/WKImage.h:
+ * Shared/API/c/WKSharedAPICast.h:
+ (WebKit::toSnapshotOptions):
+ * Shared/ImageOptions.h:
+ * WebProcess/WebPage/WebPage.cpp:
+ (WebKit::WebPage::scaledSnapshotWithOptions):
+
+ Even though we plan to deprecate this API, it should keep doing
+ the right thing until it's gone.
+ * WebProcess/InjectedBundle/API/c/WKBundlePage.cpp:
+ (WKBundlePageCreateSnapshotInViewCoordinates):
+
+2012-08-15 Brady Eidson <beidson@apple.com>
+
+ Removing a plug-in element from a page opened in a background tab in Safari crashes
+ <rdar://problem/12057991> and https://bugs.webkit.org/show_bug.cgi?id=93913
+
+ Reviewed by Beth Dakin.
+
+ This only happens in WebKit2 with asynchronous plug-in initialization enabled.
+
+ * WebProcess/Plugins/PluginProxy.cpp:
+ (WebKit::PluginProxy::destroy): Null-check m_connection, as it might not have been created yet.
+
+ * win/WebKit2.def: Export Page::setCanStartMedia for InternalSettings/DRT use.
+
+2012-08-14 Mark Hahnenberg <mhahnenberg@apple.com>
+
+ Change behavior of MasqueradesAsUndefined to better accommodate DFG changes
+ https://bugs.webkit.org/show_bug.cgi?id=93884
+
+ Reviewed by Geoffrey Garen.
+
+ With some upcoming changes to the DFG to remove uses of ClassInfo, we will be changing the behavior of
+ MasqueradesAsUndefined. In order to make this change consistent across all of our execution engines,
+ we will make this change to MasqueradesAsUndefined as a separate patch. After this patch, MasqueradesAsUndefined
+ objects will only masquerade as undefined in their original context (i.e. their original JSGlobalObject).
+ For example, if an object that masquerades as undefined in frame A is passed to frame B, it will not
+ masquerade as undefined within frame B, but it will continue to masquerade in frame A.
+
+ * WebProcess/Plugins/Netscape/NPRuntimeObjectMap.cpp:
+ (WebKit::NPRuntimeObjectMap::convertJSValueToNPVariant): Passing ExecState to toBoolean call.
+
+2012-08-15 Mikhail Pozdnyakov <mikhail.pozdnyakov@intel.com>
+
+ [EFL][WK2] Refactoring: start using WKEinaSharedString in ewk_ classes
+ https://bugs.webkit.org/show_bug.cgi?id=93964
+
+ Reviewed by Kenneth Rohde Christiansen.
+
+ Started using WKEinaSharedString where it is advisable.
+
+ * UIProcess/API/cpp/efl/WKEinaSharedString.cpp:
+ (WKEinaSharedString::operator==):
+ * UIProcess/API/cpp/efl/WKEinaSharedString.h:
+ * UIProcess/API/efl/ewk_download_job.cpp:
+ (_Ewk_Download_Job):
+ (_Ewk_Download_Job::_Ewk_Download_Job):
+ (_Ewk_Download_Job::~_Ewk_Download_Job):
+ (ewk_download_job_destination_set):
+ (ewk_download_job_suggested_filename_set):
+ * UIProcess/API/efl/ewk_intent.cpp:
+ (_Ewk_Intent):
+ (_Ewk_Intent::_Ewk_Intent):
+ (_Ewk_Intent::~_Ewk_Intent):
+ (ewk_intent_action_get):
+ (ewk_intent_type_get):
+ (ewk_intent_service_get):
+ * UIProcess/API/efl/ewk_intent_service.cpp:
+ (_Ewk_Intent_Service):
+ (_Ewk_Intent_Service::_Ewk_Intent_Service):
+ (_Ewk_Intent_Service::~_Ewk_Intent_Service):
+ (ewk_intent_service_action_get):
+ (ewk_intent_service_type_get):
+ (ewk_intent_service_href_get):
+ (ewk_intent_service_title_get):
+ (ewk_intent_service_disposition_get):
+ * UIProcess/API/efl/ewk_navigation_policy_decision.cpp:
+ (_Ewk_Navigation_Policy_Decision):
+ (_Ewk_Navigation_Policy_Decision::_Ewk_Navigation_Policy_Decision):
+ (_Ewk_Navigation_Policy_Decision::~_Ewk_Navigation_Policy_Decision):
+ * UIProcess/API/efl/ewk_url_request.cpp:
+ (_Ewk_Url_Request):
+ (_Ewk_Url_Request::_Ewk_Url_Request):
+ (_Ewk_Url_Request::~_Ewk_Url_Request):
+ (ewk_url_request_url_get):
+ (ewk_request_cookies_first_party_get):
+ (ewk_url_request_http_method_get):
+ * UIProcess/API/efl/ewk_url_response.cpp:
+ (_Ewk_Url_Response):
+ (_Ewk_Url_Response::_Ewk_Url_Response):
+ (_Ewk_Url_Response::~_Ewk_Url_Response):
+ (ewk_url_response_url_get):
+ (ewk_url_response_mime_type_get):
+ * UIProcess/API/efl/ewk_view.cpp:
+ (_Ewk_View_Private_Data):
+ (_Ewk_View_Private_Data::_Ewk_View_Private_Data):
+ (_Ewk_View_Private_Data::~_Ewk_View_Private_Data):
+ (ewk_view_uri_update):
+ (ewk_view_title_get):
+ (ewk_view_theme_set):
+ (ewk_view_setting_encoding_custom_get):
+ (ewk_view_setting_encoding_custom_set):
+ * UIProcess/API/efl/ewk_web_error.cpp:
+ (_Ewk_Web_Error):
+ (_Ewk_Web_Error::_Ewk_Web_Error):
+ (_Ewk_Web_Error::~_Ewk_Web_Error):
+ (ewk_web_error_url_get):
+ (ewk_web_error_description_get):
+ * UIProcess/API/efl/ewk_web_resource.cpp:
+ (_Ewk_Web_Resource):
+ (_Ewk_Web_Resource::_Ewk_Web_Resource):
+ (_Ewk_Web_Resource::~_Ewk_Web_Resource):
+
+2012-08-15 Christophe Dumez <christophe.dumez@intel.com>
+
+ [WK2] Add support for Web Intents MessagePorts
+ https://bugs.webkit.org/show_bug.cgi?id=89072
+
+ Reviewed by Kenneth Rohde Christiansen.
+
+ Add support for WebIntents MessagePorts in WebKit2.
+ MessagePorts can be passed with a Web Intent in
+ order to open a direct communication channel
+ between the Web application and the intent service.
+
+ This functionality is already supported by WebKit 1.
+
+ This patch introduces a new InjectedBundleIntent
+ class which wraps a WebCore::Intent. This way
+ information regarding the MessagePorts in a Web
+ Intent is kept when using an injected bundle.
+
+ For the UIProcess, WebIntentData now carries
+ identifiers for the MessagePorts which can go over
+ IPC. Those identifiers map to actual MessagePorts
+ stored in the Web process. This way, when the UI
+ delivers an intent to a frame, we can get back the
+ corresponding MessagePorts from the Web process
+ before delivering the intent to the DOMWindow.
+
+ This functionality is already tested by:
+
+ - webintents/web-intents-invoke-port.html
+ - webintents/web-intents-obj-constructor.html
+
+ * CMakeLists.txt:
+ * GNUmakefile.list.am:
+ * Shared/API/c/WKBase.h:
+ * Shared/APIObject.h:
+ * Shared/IntentData.cpp: Add MessagePort identifiers.
+ (WebKit::IntentData::IntentData):
+ (WebKit::IntentData::encode):
+ (WebKit::IntentData::decode):
+ * Shared/IntentData.h:
+ (IntentData):
+ * Target.pri:
+ * UIProcess/API/C/WKIntentData.cpp: Rename WKIntentDataCopyExtra() to
+ WKIntentDataCopyExtraValue() for clarity.
+ (WKIntentDataCopyExtraValue):
+ * UIProcess/API/C/WKIntentData.h: Remove WKIntentDataCreate() function now
+ that WTR uses WKBundleIntentCreate() instead.
+ * UIProcess/API/efl/ewk_intent.cpp:
+ (ewk_intent_extra_get): Use WKIntentDataCopyExtraValue() instead of
+ WKIntentDataCopyExtra() since it was renamed.
+ * UIProcess/WebIntentData.cpp:
+ (WebKit::WebIntentData::WebIntentData):
+ (WebKit::WebIntentData::~WebIntentData): Remove MessagePorts from WebProcess upon
+ WebIntentData destruction.
+ (WebKit):
+ (WebKit::WebIntentData::extras):
+ * UIProcess/WebIntentData.h:
+ (WebKit):
+ (WebKit::WebIntentData::create):
+ (WebIntentData):
+ * UIProcess/WebPageProxy.cpp:
+ (WebKit::WebPageProxy::didReceiveIntentForFrame):
+ * UIProcess/WebProcessProxy.cpp:
+ (WebKit):
+ (WebKit::WebProcessProxy::removeMessagePortChannel):
+ * UIProcess/WebProcessProxy.h:
+ (WebProcessProxy):
+ * WebProcess/InjectedBundle/API/c/WKBundleAPICast.h:
+ (WebKit):
+ * WebProcess/InjectedBundle/API/c/WKBundleIntent.cpp: Copied from Source/WebKit2/UIProcess/API/C/WKIntentData.cpp.
+ (WKBundleIntentGetTypeID):
+ (WKBundleIntentCreate):
+ (WKBundleIntentCopyAction):
+ (WKBundleIntentCopyType):
+ (WKBundleIntentCopyService):
+ (WKBundleIntentCopySuggestions):
+ (WKBundleIntentCopyExtraValue):
+ (WKBundleIntentCopyExtras):
+ (WKBundleIntentMessagePortCount):
+ * WebProcess/InjectedBundle/API/c/WKBundleIntent.h: Copied from Source/WebKit2/UIProcess/API/C/WKIntentData.h.
+ * WebProcess/InjectedBundle/API/c/WKBundleIntentRequest.cpp:
+ (WKBundleIntentRequestCopyIntent):
+ * WebProcess/InjectedBundle/API/c/WKBundleIntentRequest.h:
+ * WebProcess/InjectedBundle/API/c/WKBundlePage.cpp:
+ (WKBundlePageDeliverIntentToFrame):
+ * WebProcess/InjectedBundle/API/c/WKBundlePage.h:
+ * WebProcess/InjectedBundle/InjectedBundleIntent.cpp: Copied from Source/WebKit2/UIProcess/WebIntentData.cpp.
+ (WebKit):
+ (WebKit::InjectedBundleIntent::create):
+ (WebKit::InjectedBundleIntent::InjectedBundleIntent):
+ (WebKit::InjectedBundleIntent::action):
+ (WebKit::InjectedBundleIntent::payloadType):
+ (WebKit::InjectedBundleIntent::service):
+ (WebKit::InjectedBundleIntent::data):
+ (WebKit::InjectedBundleIntent::extra):
+ (WebKit::InjectedBundleIntent::extras):
+ (WebKit::InjectedBundleIntent::suggestions):
+ * WebProcess/InjectedBundle/InjectedBundleIntent.h: Copied from Source/WebKit2/UIProcess/WebIntentData.h.
+ (WebKit):
+ (InjectedBundleIntent):
+ (WebKit::InjectedBundleIntent::coreIntent):
+ (WebKit::InjectedBundleIntent::type):
+ * WebProcess/InjectedBundle/InjectedBundleIntentRequest.cpp:
+ (WebKit::InjectedBundleIntentRequest::intent):
+ * WebProcess/InjectedBundle/InjectedBundleIntentRequest.h:
+ (WebKit):
+ (InjectedBundleIntentRequest):
+ * WebProcess/WebPage/WebFrame.cpp:
+ (WebKit::WebFrame::deliverIntent):
+ (WebKit):
+ * WebProcess/WebPage/WebFrame.h:
+ (WebCore):
+ (WebFrame):
+ * WebProcess/WebPage/WebPage.cpp:
+ (WebKit):
+ (WebKit::WebPage::deliverCoreIntentToFrame):
+ * WebProcess/WebPage/WebPage.h:
+ (WebCore):
+ (WebPage):
+ * WebProcess/WebProcess.cpp: Store MessagePorts in WebProcess and keep mapping with
+ their identifiers.
+ (WebKit):
+ (WebKit::WebProcess::addMessagePortChannel):
+ (WebKit::WebProcess::messagePortChannel):
+ (WebKit::WebProcess::removeMessagePortChannel):
+ * WebProcess/WebProcess.h:
+ (WebCore):
+ (WebProcess):
+ * WebProcess/WebProcess.messages.in:
+
+2012-08-14 Adam Barth <abarth@webkit.org>
+
+ Delete Frame::domWindow() and Frame::existingDOMWindow()
+ https://bugs.webkit.org/show_bug.cgi?id=93990
+
+ Reviewed by Eric Seidel.
+
+ * WebProcess/WebPage/WebFrame.cpp:
+ (WebKit::WebFrame::deliverIntent):
+ (WebKit::WebFrame::pendingUnloadCount):
+
+2012-08-14 Lauro Neto <lauro.neto@openbossa.org>
+
+ Convert signals/slots to Q_* macros.
+
+ [Qt] Use Q_SLOTS and Q_SIGNALS instead of slots and signals
+ https://bugs.webkit.org/show_bug.cgi?id=93996
+
+ Reviewed by Kenneth Rohde Christiansen.
+
+ Change usage of keyword-conflicting 'signals' and 'slots' for
+ Q_SIGNALS and Q_SLOTS macro.
+
+ * UIProcess/API/qt/qwebkittest_p.h:
+ * UIProcess/API/qt/tests/inspectorserver/tst_inspectorserver.cpp:
+ (tst_InspectorServer):
+ * UIProcess/API/qt/tests/publicapi/tst_publicapi.cpp:
+ (tst_publicapi):
+ * UIProcess/API/qt/tests/qquickwebview/tst_qquickwebview.cpp:
+ (tst_QQuickWebView):
+ * UIProcess/API/qt/tests/qrawwebview/tst_qrawwebview.cpp:
+ (WebView):
+ (tst_qrawwebview):
+ * UIProcess/API/qt/tests/util.cpp:
+ (LoadSpy):
+ * UIProcess/API/qt/tests/util.h:
+ (LoadStartedCatcher):
+ * UIProcess/InspectorServer/qt/WebSocketServerQt.h:
+ (QtTcpServerHandler):
+ * UIProcess/qt/QtDialogRunner.cpp:
+ (DialogContextBase):
+ (DialogContextObject):
+ (BaseAuthenticationContextObject):
+ (CertificateVerificationDialogContextObject):
+ (FilePickerContextObject):
+ (DatabaseQuotaDialogContextObject):
+ * UIProcess/qt/QtDialogRunner.h:
+ (QtDialogRunner):
+ * UIProcess/qt/QtWebPageEventHandler.h:
+ (QtWebPageEventHandler):
+ * WebProcess/Downloads/qt/QtFileDownloader.h:
+
+2012-08-14 Alexey Proskuryakov <ap@apple.com>
+
+ [WK2] Track multiple Web Processes per context
+ https://bugs.webkit.org/show_bug.cgi?id=93915
+
+ Reviewed by Sam Weinig.
+
+ * UIProcess/Downloads/DownloadProxy.cpp:
+ (WebKit::DownloadProxy::didReceiveAuthenticationChallenge): Downloads don't work
+ yet, added a FIXME.
+
+ * UIProcess/WebContext.cpp:
+ (WebKit::WebContext::deprecatedSharedProcess): Renamed from process(), added an
+ assertion that this is only used in single proces mode.
+ (WebKit::WebContext::textCheckerStateChanged): Abstract out access to web processes.
+ (WebKit::WebContext::ensureSharedWebProcess): Renamed ensureWebProcess() for clarity.
+ (WebKit::WebContext::createNewWebProcess): Extracted code for creating a process
+ from ensureWebProcess().
+ (WebKit::WebContext::warmInitialProcess): Create the process more explicitly.
+ (WebKit::WebContext::enableProcessTermination): Iterate over all processes.
+ (WebKit::WebContext::shouldTerminate): Updated assertion.
+ (WebKit::WebContext::processDidFinishLaunching): Changed to use process argument
+ instead of m_process.
+ (WebKit::WebContext::disconnectProcess): Updated code forto use m_processes.
+ (WebKit::WebContext::createWebPage): Handle both process policies (initial support
+ for multi-process).
+ (WebKit::WebContext::relaunchProcessIfNecessary): Added cases for both policies.
+ (WebKit::WebContext::download): Ditto.
+ (WebKit::WebContext::postMessageToInjectedBundle): Ditto.
+ (WebKit::WebContext::didReceiveSyncMessage): Fixed whitespace.
+ (WebKit::WebContext::getWebCoreStatistics): Added cases for both policies.
+
+ * UIProcess/WebContext.h:
+ (WebKit::WebContext::sendToAllProcesses):
+ (WebKit::WebContext::sendToAllProcessesRelaunchingThemIfNecessary):
+ Send to all processes. Changed return type to void, since no caller checked it.
+
+ * UIProcess/WebProcessProxy.cpp: (WebKit::WebProcessProxy::createWebPage): Removed
+ an assertion that assumed one process per context.
+
+ * UIProcess/WebTextChecker.cpp: (WebKit::updateStateForAllWebProcesses): Updated
+ to use a WebContext method.
+
+2012-08-14 Mikhail Pozdnyakov <mikhail.pozdnyakov@intel.com>
+
+ WebKitTestRunner needs layoutTestController.dumpResourceLoadCallbacks
+ https://bugs.webkit.org/show_bug.cgi?id=42332
+
+ Reviewed by Kenneth Rohde Christiansen.
+
+ Added new getters to WKURL, WKURLRequest, WKURLResponse so that it is possible
+ to dump information necessary for the tests passing.
+
+ * Shared/API/c/WKURL.cpp:
+ (WKURLCopyPath):
+ * Shared/API/c/WKURL.h:
+ * Shared/API/c/WKURLRequest.cpp:
+ (WKURLRequestCopyFirstPartyForCookies):
+ (WKURLRequestCopyHTTPMethod):
+ * Shared/API/c/WKURLRequest.h:
+ * Shared/API/c/WKURLResponse.cpp:
+ (WKURLResponseHTTPStatusCode):
+ * Shared/API/c/WKURLResponse.h:
+ * Shared/WebURL.h:
+ (WebKit::WebURL::path):
+ (WebURL):
+
+2012-08-14 Allan Sandfeld Jensen <allan.jensen@nokia.com>
+
+ [Qt] UpdateAtlas is wasting memory
+ https://bugs.webkit.org/show_bug.cgi?id=93606
+
+ Reviewed by Jocelyn Turcotte.
+
+ Imported and QAreaAllocator from Qt3D and ported it to WebCore style,
+ and use this new area allocator to replace old one from UpdateAtlas.
+
+ * CMakeLists.txt:
+ * Target.pri:
+ * WebProcess/WebPage/AreaAllocator.cpp: Added.
+ (WebKit::AreaAllocator::AreaAllocator):
+ (WebKit::AreaAllocator::~AreaAllocator):
+ (WebKit::AreaAllocator::expand):
+ (WebKit::AreaAllocator::expandBy):
+ (WebKit::AreaAllocator::release):
+ (WebKit::AreaAllocator::overhead):
+ (WebKit::AreaAllocator::roundAllocation):
+ (WebKit::GeneralAreaAllocator::GeneralAreaAllocator):
+ (WebKit::GeneralAreaAllocator::~GeneralAreaAllocator):
+ (WebKit::GeneralAreaAllocator::freeNode):
+ (WebKit::GeneralAreaAllocator::expand):
+ (WebKit::fitsWithin):
+ (WebKit::GeneralAreaAllocator::allocate):
+ (WebKit::GeneralAreaAllocator::allocateFromNode):
+ (WebKit::GeneralAreaAllocator::splitNode):
+ (WebKit::GeneralAreaAllocator::updateLargestFree):
+ (WebKit::GeneralAreaAllocator::release):
+ (WebKit::GeneralAreaAllocator::overhead):
+ * WebProcess/WebPage/AreaAllocator.h: Added.
+ (WebCore::nextPowerOfTwo):
+ (AreaAllocator):
+ (WebKit::AreaAllocator::size):
+ (WebKit::AreaAllocator::minimumAllocation):
+ (WebKit::AreaAllocator::setMinimumAllocation):
+ (WebKit::AreaAllocator::margin):
+ (WebKit::AreaAllocator::setMargin):
+ (GeneralAreaAllocator):
+ (Node):
+ * WebProcess/WebPage/CoordinatedGraphics/LayerTreeCoordinator.cpp:
+ (WebKit::LayerTreeCoordinator::renderNextFrame):
+ (WebKit::LayerTreeCoordinator::beginContentUpdate):
+ * WebProcess/WebPage/CoordinatedGraphics/LayerTreeCoordinator.h:
+ (LayerTreeCoordinator):
+ * WebProcess/WebPage/UpdateAtlas.cpp:
+ (WebKit::UpdateAtlas::UpdateAtlas):
+ (WebKit::UpdateAtlas::buildLayoutIfNeeded):
+ (WebKit::UpdateAtlas::didSwapBuffers):
+ (WebKit::UpdateAtlas::beginPaintingOnAvailableBuffer):
+ * WebProcess/WebPage/UpdateAtlas.h:
+ (UpdateAtlas):
+
+2012-08-14 Sergio Villar Senin <svillar@igalia.com>
+
+ [GTK] REGRESSION (r122428) WebKit2APITests/TestWebKitFindController fails "next" test
+ https://bugs.webkit.org/show_bug.cgi?id=91083
+
+ Reviewed by Carlos Garcia Campos.
+
+ After r122428 search_next()/search_prev() should return just 1 match
+ if the text is found.
+
+ * UIProcess/API/gtk/tests/TestWebKitFindController.cpp:
+ (testFindControllerNext):
+ (testFindControllerPrevious):
+
+2012-08-13 Carlos Garcia Campos <cgarcia@igalia.com>
+
+ [GTK] Implement smart separators for context menu in WebKit2 GTK+
+ https://bugs.webkit.org/show_bug.cgi?id=90449
+
+ Reviewed by Martin Robinson.
+
+ Don't add to the context menu separators that are at the very
+ beginning or end of the menu. Once the context menu is shown,
+ monitor menu items visibility to hide or show separators to make
+ sure they never appear in the context menu unless they are between
+ two visible items.
+
+ * UIProcess/API/gtk/tests/TestContextMenu.cpp:
+ (testContextMenuSmartSeparators):
+ (beforeAll):
+ * UIProcess/gtk/WebContextMenuProxyGtk.cpp:
+ (WebKit::contextMenuItemVisibilityChanged):
+ (WebKit):
+ (WebKit::WebContextMenuProxyGtk::append):
+ (WebKit::WebContextMenuProxyGtk::populate):
+
+2012-08-14 Kihong Kwon <kihong.kwon@samsung.com>
+
+ [WK2] Add getter for capture attribute of input element
+ https://bugs.webkit.org/show_bug.cgi?id=93710
+
+ Reviewed by Antonio Gomes.
+
+ Add getter for capture attribute to WKOpenPanelParameters to support HTML Media Capture.
+
+ * Shared/WebCoreArgumentCoders.cpp:
+ (CoreIPC::::encode):
+ (CoreIPC::::decode):
+ * Shared/WebOpenPanelParameters.cpp:
+ (WebKit):
+ (WebKit::WebOpenPanelParameters::capture):
+ * Shared/WebOpenPanelParameters.h:
+ (WebOpenPanelParameters):
+ * UIProcess/API/C/WKOpenPanelParameters.cpp:
+ (WKOpenPanelParametersCopyCapture):
+ * UIProcess/API/C/WKOpenPanelParameters.h:
+
+2012-08-13 Tom Sepez <tsepez@chromium.org>
+
+ [chromium] release FrameLoaderClientImpl::m_pluginWidget refptr upon Plugin Document detach.
+ https://bugs.webkit.org/show_bug.cgi?id=93283
+
+ Reviewed by Eric Seidel.
+
+ Chromium has a refptr that needs to be NULLed at this point.
+
+ Change the client redirectDataToPlugin method(s) to expect the possibility of
+ a NULL argument, keeping existing behaviour otherwise.
+
+ * WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
+ (WebKit::WebFrameLoaderClient::redirectDataToPlugin):
+
+2012-08-13 Raphael Kubo da Costa <rakuco@webkit.org>
+
+ [EFL] Unreviewed bot fix after r125467.
+
+ * PlatformEfl.cmake: Make the WK2 tests link against glib, gobject
+ and gio as well.
+
+2012-08-13 Raphael Kubo da Costa <rakuco@webkit.org>
+
+ [EFL] Unreviewed attempt at fixing the bots after r125467.
+
+ * PlatformEfl.cmake: Link against GIO and GObject due to the usage
+ of libsoup.
+
+2012-08-11 Raphael Kubo da Costa <rakuco@webkit.org>
+
+ [CMake] Rewrite FindLibSoup2.cmake.
+ https://bugs.webkit.org/show_bug.cgi?id=93191
+
+ Reviewed by Rob Buis.
+
+ * PlatformEfl.cmake: Use LIBSOUP_FOO instead of LIBSOUP24_FOO, and
+ do not use LIBSOUP24_LDFLAGS, as it is not needed anymore.
+
+2012-08-13 Alexey Proskuryakov <ap@apple.com>
+
+ [WK2] Move a remaining per-process message from WebContext to WebProcessProxy
+ https://bugs.webkit.org/show_bug.cgi?id=93883
+
+ More Windows build fixing.
+
+ * UIProcess/WebContext.cpp:
+ (WebKit::WebContext::dummy):
+
+2012-08-13 Alexey Proskuryakov <ap@apple.com>
+
+ [WK2] Move a remaining per-process message from WebContext to WebProcessProxy
+ https://bugs.webkit.org/show_bug.cgi?id=93883
+
+ More Windows build fix
+
+ * UIProcess/WebContext.cpp:
+ (WebKit::WebPage::dummy):
+ * UIProcess/WebContext.h: (WebContext):
+ * UIProcess/WebContext.messages.in:
+ Add a dummy sync message - the same workaround is already used in WebPage.
+
+2012-08-13 Brady Eidson <beidson@apple.com>
+
+ With asynchronous plug-in initialization, WebProcess and PluginProcess can deadlock
+ <rdar://problem/12062125> and https://bugs.webkit.org/show_bug.cgi?id=93894
+
+ Reviewed by Alexey Proskuryakov.
+
+ A few things were in play here:
+ - The WebProcess thought the plug-in was done initializing but it wasn't.
+ - The sync message out from the PluginProcess was not being handled by the WebProcess.
+
+ Expose the ability for the PluginProcess to act as if it is handling a sync message and needs messages dispatched:
+ * Platform/CoreIPC/Connection.h:
+ (CoreIPC::Connection::incrementDispatchMessageMarkedDispatchWhenWaitingForSyncReplyCount):
+ (CoreIPC::Connection::decrementDispatchMessageMarkedDispatchWhenWaitingForSyncReplyCount):
+
+ * PluginProcess/PluginControllerProxy.cpp:
+ (WebKit::PluginControllerProxy::PluginControllerProxy):
+ (WebKit::PluginControllerProxy::setInitializationReply): Save the delayed reply for synchronous initialization.
+ (WebKit::PluginControllerProxy::takeInitializationReply): Give back the delayed reply for initialization completion.
+ (WebKit::PluginControllerProxy::initialize):
+ * PluginProcess/PluginControllerProxy.h:
+ (WebKit::PluginControllerProxy::isInitializing): Accessor so WebProcessConnection knows whether or not to store the
+ delayed reply for later.
+
+ * PluginProcess/WebProcessConnection.messages.in: Make the synchronous form of "CreatePlugin" have a delayed reply.
+ * PluginProcess/WebProcessConnection.cpp:
+ (WebKit::WebProcessConnection::createPlugin): Store away the delayed reply message so it can be responded to after
+ asynchronous initialization completes.
+ (WebKit::WebProcessConnection::createPluginAsynchronously): If there is a stored away delayed reply message, respond to
+ it instead of sending the asynchronously reply.
+ * PluginProcess/WebProcessConnection.h:
+ (WebProcessConnection):
+
+2012-08-13 Alexey Proskuryakov <ap@apple.com>
+
+ [WK2] Move a remaining per-process message from WebContext to WebProcessProxy
+ https://bugs.webkit.org/show_bug.cgi?id=93883
+
+ Windows build fix.
+
+ * WebProcess/WebProcess.cpp:
+ (WebKit::WebProcess::getSitesWithPluginData):
+ (WebKit::WebProcess::clearPluginSiteData):
+ Use WebProcessProxy for the message here, too.
+
+2012-08-13 Alexey Proskuryakov <ap@apple.com>
+
+ [WK2] Move a remaining per-process message from WebContext to WebProcessProxy
+ https://bugs.webkit.org/show_bug.cgi?id=93883
+
+ Reviewed by Sam Weinig.
+
+ There was one plug-in message renaming. Moving it, and also other plug-in messages
+ for consistency.
+
+ * UIProcess/WebContext.cpp:
+ (WebKit): Got rid of the last MESSAGE_CHECK in this file.
+ (WebKit::WebContext::WebContext): Moved m_pluginWorkQueue to a singleton.
+ We don't need more than one queue (all it does is read plug-in info), and if we
+ needed, it would have been per-process, not per-context.
+ (WebKit::WebContext::~WebContext): No more work queue.
+ (WebKit::WebContext::processDidFinishLaunching): Ditto.
+
+ * UIProcess/WebContext.h: No longer needs to be a QueueClient.
+
+ * UIProcess/WebContext.messages.in:
+ * UIProcess/WebProcessProxy.messages.in:
+ Moved plug-in related messages.
+
+ * UIProcess/WebProcessProxy.cpp:
+ (WebKit::pluginWorkQueue): Moved from WebContext to a singleton.
+ (WebKit::WebProcessProxy::sendDidGetPlugins): Moved from WebContext.
+ (WebKit::WebProcessProxy::handleGetPlugins): Ditto.
+ (WebKit::WebProcessProxy::getPlugins): Ditto.
+ (WebKit::WebProcessProxy::getPluginPath): Ditto.
+ (WebKit::WebProcessProxy::getPluginProcessConnection): Ditto.
+ (WebKit::WebProcessProxy::didGetSitesWithPluginData): Ditto.
+ (WebKit::WebProcessProxy::didClearPluginSiteData): Ditto.
+
+ * UIProcess/WebProcessProxy.h: Process proxy needs to be thread safe ref counted
+ now, since it sends messages to itself on a work queue and back.
+
+ * WebProcess/WebCoreSupport/WebPlatformStrategies.cpp:
+ (WebKit::WebPlatformStrategies::populatePluginCache): Updated for new receiver.
+
+ * WebProcess/WebPage/WebPage.cpp: (WebKit::WebPage::createPlugin): Ditto.
+
+ * WebProcess/WebProcess.cpp: (WebKit::canPluginHandleResponse): Ditto.
+
+2012-08-13 Raphael Kubo da Costa <rakuco@webkit.org>
+
+ [CMake] Remove glib-related Find modules and write single new one instead.
+ https://bugs.webkit.org/show_bug.cgi?id=93786
+
+ Reviewed by Rob Buis.
+
+ * PlatformEfl.cmake: Use GLIB_* instead of Glib_*.
+
+2012-08-13 Christophe Dumez <christophe.dumez@intel.com>
+
+ [SOUP][WK2] Missing LocalTerminationDisabler in WebCookieManager::setCookiePersistentStorage()
+ https://bugs.webkit.org/show_bug.cgi?id=93837
+
+ Reviewed by Carlos Garcia Campos.
+
+ Add missing WebCore::LocalTerminationDisabler in
+ WebCookieManager::setCookiePersistentStorage() to
+ temporarily disable process termination.
+
+ * WebProcess/Cookies/soup/WebCookieManagerSoup.cpp:
+ (WebKit::WebCookieManager::setCookiePersistentStorage):
+
+2012-08-12 Nuno Lopes <nlopes@apple.com>
+
+ Fix build with recent clang.
+ https://bugs.webkit.org/show_bug.cgi?id=90701
+
+ Reviewed by Eric Seidel.
+
+ * Shared/CommandLine.h:
+ (CommandLine):
+ * WebProcess/Notifications/NotificationPermissionRequestManager.cpp:
+ (WebKit::NotificationPermissionRequestManager::NotificationPermissionRequestManager):
+ * WebProcess/Notifications/NotificationPermissionRequestManager.h:
+ (NotificationPermissionRequestManager):
+
+2012-08-11 Sam Weinig <sam@webkit.org>
+
+ Fix the build.
+
+ * Platform/CoreIPC/Connection.h:
+ Add missing include.
+
+2012-08-11 Sam Weinig <sam@webkit.org>
+
+ [WK2] Get rid of ProcessModelSharedSecondaryThread
+ https://bugs.webkit.org/show_bug.cgi?id=93652
+
+ Reviewed by Dan Bernstein.
+
+ The threaded model for WebKit2 has been broken a long time and its continued existence in
+ the code only serves to confuse. It's time to say good bye to it.
+
+ * UIProcess/API/C/WKContext.cpp:
+ * UIProcess/API/C/WKContextPrivate.h:
+ Remove WKContextGetSharedThreadContext().
+
+ * UIProcess/ProcessModel.h:
+ Remove ProcessModelSharedSecondaryThread from the ProcessModel enum.
+
+ * UIProcess/WebContext.cpp:
+ * UIProcess/WebContext.h:
+ Remove WebContext::sharedThreadContext().
+
+ * UIProcess/WebProcessProxy.cpp:
+ (WebKit::WebProcessProxy::~WebProcessProxy):
+ (WebKit::WebProcessProxy::connect):
+ (WebKit::WebProcessProxy::isLaunching):
+ * UIProcess/WebProcessProxy.h:
+ Remove the ThreadLauncher member and stop deriving from ThreadLauncher::Client.
+
+ * UIProcess/Launcher/ThreadLauncher.cpp: Removed.
+ * UIProcess/Launcher/ThreadLauncher.h: Removed.
+ * UIProcess/Launcher/efl/ThreadLauncherEfl.cpp: Removed.
+ * UIProcess/Launcher/gtk/ThreadLauncherGtk.cpp: Removed.
+ * UIProcess/Launcher/mac/ThreadLauncherMac.mm: Removed.
+ * UIProcess/Launcher/qt/ThreadLauncherQt.cpp: Removed.
+ * UIProcess/Launcher/win/ThreadLauncherWin.cpp: Removed.
+ * WebKit2.xcodeproj/project.pbxproj:
+ * win/WebKit2.vcproj:
+ * CMakeLists.txt:
+ * GNUmakefile.list.am:
+ * PlatformEfl.cmake:
+ * Target.pri:
+ Remove ThreadLauncher files.
+
+2012-08-11 Sam Weinig <sam@webkit.org>
+
+ Enable XPC Service based WebProcess with runtime flag
+ https://bugs.webkit.org/show_bug.cgi?id=93773
+
+ Reviewed by Dan Bernstein.
+
+ Use the XPC Service for WebProcess code path if WEBKIT_USE_XPC_SERVICE_FOR_WEB_PROCESS
+ is set in the environment.
+
+ * UIProcess/Launcher/mac/ProcessLauncherMac.mm:
+ (WebKit::launchXPCService):
+ Fix issue that was causing this code not to compile. This was not caught before since
+ the code was not being built.
+
+ * UIProcess/WebProcessProxy.cpp:
+ (WebKit::WebProcessProxy::connect):
+ Switch from hard coding always using the XPC Service code path if
+ HAVE(XPC) was true, to doing it conditionally on an environment variable.
+
+2012-08-11 Sam Weinig <sam@webkit.org>
+
+ Make it possible to run the WebProcess as an XPC service
+ https://bugs.webkit.org/show_bug.cgi?id=92814
+
+ Reviewed by Anders Carlsson.
+
+ In this initial implementation, we are only using the XPC service
+ to launch the WebProcess, and then using the xpc_connection to send
+ over a mach_port to the WebProcess which is then used for creating
+ the CoreIPC connection. In the future, we will switch to using the
+ xpc_connection for all messaging.
+
+ When the XPC service is enabled (it is compiled out by default for now), both
+ the XPC service and the old spawned process are runtime choosable. This allows
+ the connect to pre-existing process workflow to continue to work.
+
+ There are a few additional caveats of this initial implementation:
+ - It is only set up for the WebProcess (not for the PluginProcess)
+ - The WebProcess shim does not work.
+ - It requires a new environment variable to be set when launching
+ to find the right service to launch (__XPC_DYLD_FRAMEWORK_PATH).
+
+ * Configurations/WebKit2Service.xcconfig: Added.
+ Add new configuration file for the service.
+
+ * Platform/CoreIPC/Connection.h:
+ (CoreIPC::Connection::Identifier::Identifier):
+ (CoreIPC::Connection::identifierIsNull):
+ Added to encapsulate the concept of a null identifier, now that it
+ is not possible to just compare to null.
+
+ * Platform/CoreIPC/mac/ConnectionMac.cpp:
+ (CoreIPC::Connection::platformInvalidate):
+ (CoreIPC::Connection::platformInitialize):
+ Change Connection::Identifier on the Mac to be a struct instead of
+ a typedef to a mach_port. This allows for the Connection to get both
+ the listening port and a reference to the xpc_connection (if it
+ compiled in). For now, all we do is retain the xpc_connection when it
+ is given to us, and release on Connection invalidation.
+
+ * PluginProcess/PluginProcess.cpp:
+ (WebKit::PluginProcess::createWebProcessConnection):
+ * PluginProcess/mac/PluginProcessMainMac.mm:
+ (WebKit::PluginProcessMain):
+ * WebProcess/Plugins/PluginProcessConnectionManager.cpp:
+ (WebKit::PluginProcessConnectionManager::getPluginProcessConnection):
+ Use the Connection::Identifier constructor.
+
+ * UIProcess/Launcher/ProcessLauncher.h:
+ (LaunchOptions):
+ Add a UseXPC option to the LaunchOptions so we can dynamically choose whether to use it.
+
+ (ProcessLauncher):
+ Make processTypeAsString public to allow better factoring in the implementation file
+ using static functions.
+
+ * UIProcess/Launcher/mac/ProcessLauncherMac.mm:
+ Factor out the different launching options into helper functions. Always start by
+ trying to connect to a pre-existing process.
+
+ (WebKit::launchXPCService):
+ Create a new xpc_connection to our service, and give it a unique instance UUID.
+ Then, send a bootstrap message with a mach_port and wait for a reply to complete
+ the launch procedure.
+
+ (WebKit::tryPreexistingProcess):
+ Move the code to connect to a preexisting process to its own helper function.
+
+ (WebKit::ProcessLauncher::launchProcess):
+ Clean up a bit, calling the helper functions and adding call to launch the XPC service
+ if it is enabled.
+
+ * UIProcess/Launcher/mac/ThreadLauncherMac.mm:
+ (WebKit::webThreadBody):
+ (WebKit::ThreadLauncher::createWebThread):
+ Switch to using the constructor version of Identifier.
+
+ * UIProcess/Plugins/PluginProcessProxy.cpp:
+ (WebKit::PluginProcessProxy::PluginProcessProxy):
+ Don't try to use the XPC service for plugins yet.
+
+ (WebKit::PluginProcessProxy::didFinishLaunching):
+ Use Connection::identifierIsNull instead of explicit null check.
+
+ * UIProcess/WebProcessProxy.cpp:
+ (WebKit::WebProcessProxy::connect):
+ If XPC is compiled in (it currently is not) enable it by default.
+
+ * WebKit2.xcodeproj/project.pbxproj:
+ Add the new files and targets.
+
+ * WebKit2Service: Added.
+ * WebKit2Service/Info.plist: Added.
+ Add the paper work needed for an XPC service. Importantly, set up the XPC
+ service to be an Application service type, use NSApplicationMain as its run
+ loop, and allow for multiple instantiations. Also make sure the service acts
+ like the WebProcess binary by making it a LSUIElement, enabling LSFileQuarantine,
+ and setting the principle class to NSApplication.
+
+ * WebKit2Service/MainMacService.mm: Added.
+ (WebKit2ServiceEventHandler):
+ (main):
+ The initialization of the XPC service is quite a bit different than the
+ WebProcess version, since we don't get passed parameters in argv. Instead,
+ we initiate the XPC service via xpc_main, and wait for the bootstrap message
+ we sent in ProcessLauncherMac.mm. When we receive that message we can load
+ WebKit2 framework and initialize the WebProcess normally (we also get the mach_port
+ for the CoreIPC connection in that bootstrap message).
+
+ * WebProcess/mac/WebProcessMainMac.mm:
+ (WebKit::WebProcessMainXPC):
+ Add a variant of WebProcessMain that is used for the XPC service case, where we don't
+ have command line arguments and don't need to talk to the mach bootstrap server.
+
+ (WebKit::WebProcessMain):
+ * mac/MainMac.cpp: Removed.
+ * mac/MainMacProcess.cpp: Copied from Source/WebKit2/mac/MainMac.cpp.
+ Rename MainMac to MainMacProcess to signify that it is different from the XPC
+ service main.
+
+2012-08-09 Jer Noble <jer.noble@apple.com>
+
+ Crash exiting from HTML5 FS mode to normal mode via ESC key
+ https://bugs.webkit.org/show_bug.cgi?id=93663
+
+ Reviewed by Eric Carlson.
+
+ Crash is due to a refcount underrun with _watchdogTimer due to adopting an autoreleased NSTimer.
+ Use the non-autoreleased NSTimer creation method and manually add to the main NSRunLoop.
+
+ * UIProcess/mac/WKFullScreenWindowController.mm:
+ (-[WKFullScreenWindowController cancelOperation:]):
+
+2012-08-10 Rafael Brandao <rafael.lobo@openbossa.org>
+
+ [Qt] WebViewLoadFavIcon::test_favIconLoad() fails
+ https://bugs.webkit.org/show_bug.cgi?id=91888
+
+ Reviewed by Simon Hausmann.
+
+ * UIProcess/API/qt/tests/qmltests/WebView/tst_favIconLoad.qml:
+ We should wait for iconChanged signal instead of loadFinished,
+ there was no guarantee that at that point we would get it already.
+
+2012-08-10 Allan Sandfeld Jensen <allan.jensen@nokia.com>
+
+ [Qt] Uninitialized flags in CoordinatedGraphicsLayer
+ https://bugs.webkit.org/show_bug.cgi?id=93719
+
+ Reviewed by Kenneth Rohde Christiansen.
+
+ * WebProcess/WebPage/CoordinatedGraphics/CoordinatedGraphicsLayer.cpp:
+ (WebCore::CoordinatedGraphicsLayer::CoordinatedGraphicsLayer):
+
+2012-08-10 Mario Sanchez Prada <msanchez@igalia.com>
+
+ [WK2][GTK] Implement new API to save a web page using MHTML
+ https://bugs.webkit.org/show_bug.cgi?id=89873
+
+ Reviewed by Carlos Garcia Campos.
+
+ Implemented new asynchronous API in WebKitWebView for saving a web
+ page to a GInputStream or to a file, using MHTML as the only
+ supported method at the moment.
+
+ * UIProcess/API/gtk/WebKitWebView.cpp:
+ (ViewSaveAsyncData):
+ (webViewFileSavedCallback):
+ (webViewMHTMLDataGotCallback):
+ (webkit_web_view_save):
+ (webkit_web_view_save_finish):
+ (webkit_web_view_save_to_file):
+ (webkit_web_view_save_to_file_finish):
+ * UIProcess/API/gtk/WebKitWebView.h:
+
+ Added new unit test.
+
+ * UIProcess/API/gtk/tests/TestWebKitWebView.cpp:
+ (testWebViewSave):
+ (beforeAll):
+ (afterAll):
+
+ Updated documentation files with new symbols.
+
+ * UIProcess/API/gtk/docs/webkit2gtk-sections.txt:
+
+2012-08-09 Carlos Garcia Campos <cgarcia@igalia.com>
+
+ Handle SSL errors for SOUP
+ https://bugs.webkit.org/show_bug.cgi?id=90267
+
+ Reviewed by Martin Robinson.
+
+ Ignore SSL errors by default for compatibility.
+
+ * WebProcess/efl/WebProcessMainEfl.cpp:
+ (WebKit::WebProcessMainEfl):
+ * WebProcess/gtk/WebProcessMainGtk.cpp:
+ (WebKit::WebProcessMainGtk):
+
+2012-08-09 Alexey Proskuryakov <ap@apple.com>
+
+ [WK2] Add a process model constant for multiple processes
+ https://bugs.webkit.org/show_bug.cgi?id=93642
+
+ Reviewed by Anders Carlsson.
+
+ * UIProcess/ProcessModel.h: Added ProcessModelMultipleSecondaryProcesses.
+ Deleted ProcessModelSecondaryProcess in favor of more descriptive ProcessModelSharedSecondaryProcess -
+ these used to behave the same.
+
+ * UIProcess/WebContext.cpp: (WebKit::WebContext::create): Changed to use ProcessModelSharedSecondaryProcess.
+
+ * UIProcess/WebProcessProxy.h: Removed an unncessary include of ProcessModel.h.
+
+2012-08-09 Dan Bernstein <mitz@apple.com>
+
+ <rdar://problem/12035637> 32-bit PluginProcess launches without appropriate DYLD environment variables if UI process is 64-bit only
+ https://bugs.webkit.org/show_bug.cgi?id=93596
+
+ Reviewed by Mark Rowe.
+
+ * UIProcess/Launcher/mac/ProcessLauncherMac.mm:
+ (WebKit::ProcessLauncher::launchProcess): Changed to pass the current architecture, rather than
+ the intended child process architecture, to the DynamicLinkerEnvironmentExtractor constructor.
+
+2012-08-09 Tim Horton <timothy_horton@apple.com>
+
+ Add optional debug logging for tiled scrolling
+ https://bugs.webkit.org/show_bug.cgi?id=93305
+
+ Reviewed by Simon Fraser.
+
+ Add a new boolean preference, ScrollingPerformanceLoggingEnabled, which will be used to toggle
+ the WebCore parts of this change.
+
+ * Shared/WebPreferencesStore.h: Add ScrollingPerformanceLoggingEnabled.
+ * UIProcess/API/C/WKPreferences.cpp:
+ (WKPreferencesSetScrollingPerformanceLoggingEnabled): Added.
+ (WKPreferencesGetScrollingPerformanceLoggingEnabled): Added.
+ * UIProcess/API/C/WKPreferencesPrivate.h: Add getters and setters for ScrollingPerformanceLoggingEnabled.
+ * WebProcess/WebPage/WebPage.cpp:
+ (WebKit::WebPage::WebPage): Add ScrollingPerformanceLoggingEnabled.
+ (WebKit::WebPage::updatePreferences): Add ScrollingPerformanceLoggingEnabled.
+ (WebKit::WebPage::setScrollingPerformanceLoggingEnabled): Propagate settings changes through to FrameView.
+ * WebProcess/WebPage/WebPage.h:
+ (WebKit::WebPage::scrollingPerformanceLoggingEnabled): Add a getter for the setting so that TiledCoreAnimationDrawingArea can access it.
+ * WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.mm:
+ (WebKit::TiledCoreAnimationDrawingArea::updatePreferences): Pass ScrollingPerformanceLoggingEnabled down into the scrolling thread.
+
+2012-08-08 Shane Stephens <shanestephens@google.com>
+
+ Compile flag for CSS Hierarchies
+ https://bugs.webkit.org/show_bug.cgi?id=92433
+
+ Reviewed by Tony Chang.
+
+ * Configurations/FeatureDefines.xcconfig:
+
+2012-08-08 Anders Carlsson <andersca@apple.com>
+
+ REGRESSION: Crash when plug-in initialization fails
+ https://bugs.webkit.org/show_bug.cgi?id=93534
+ <rdar://problem/12059786>
+
+ Reviewed by Simon Fraser.
+
+ Protect the PluginProxy while calling out to functions that could cause it to be destroyed.
+
+ * WebProcess/Plugins/PluginProxy.cpp:
+ (WebKit::PluginProxy::didFailToCreatePluginInternal):
+
+2012-08-08 Anders Carlsson <andersca@apple.com>
+
+ Make isTransparentSilverlightBackgroundValue handle all the possible transparent colors
+ https://bugs.webkit.org/show_bug.cgi?id=93532
+
+ Reviewed by Simon Fraser.
+
+ * WebProcess/Plugins/Netscape/NetscapePlugin.cpp:
+ (WebKit::isTransparentSilverlightBackgroundValue):
+ Check for all the possible transparent colors and assume that the color is opaque otherwise.
+
+ (WebKit::NetscapePlugin::initialize):
+ Pass the lowercase string to isTransparentSilverlightBackgroundValue.
+
+2012-08-08 Beth Dakin <bdakin@apple.com>
+
+ https://bugs.webkit.org/show_bug.cgi?id=92275
+ Need a way to get a snapshot image that does not show the selection
+ -and corresponding-
+ <rdar://problem/11956802>
+
+ Reviewed by Anders Carlsson.
+
+ Added new API WKBundlePageCreateSnapshotWithOptions()
+
+ New enum SnapshotOptions tracks whether snapshots should exclude
+ selection highlighting in addition to tracking whether the image is
+ sharable like the original ImageOptions.
+ * Shared/API/c/WKImage.h:
+ * Shared/API/c/WKSharedAPICast.h:
+ (WebKit::snapshotOptionsFromImageOptions):
+ (WebKit):
+ (WebKit::toSnapshotOptions):
+ * Shared/ImageOptions.h:
+
+ New API.
+ * WebProcess/InjectedBundle/API/c/WKBundlePage.h:
+ * WebProcess/InjectedBundle/API/c/WKBundlePage.cpp:
+ (WKBundlePageCreateSnapshotWithOptions):
+
+ These existing APIs all now call
+ WebPage::scaledSnapshotWithOptions().
+ (WKBundlePageCreateSnapshotInViewCoordinates):
+ (WKBundlePageCreateSnapshotInDocumentCoordinates):
+ (WKBundlePageCreateScaledSnapshotInDocumentCoordinates):
+
+ This patch removes WebPage::snapshotInViewCoordinates(),
+ WebPage::snapshotInDocumentCoordinates(), and
+ WebPage::scaledSnapshotInDocumentCoordinates(). All of the logic is
+ now consolidated into WebPage::scaledSnapshotWithOptions(). It turns
+ out that we never did anything different for document coordinates
+ versus view coordinates, so that complexity could just be eliminated
+ outright.
+ * WebProcess/WebPage/WebPage.cpp:
+ (WebKit::snapshotOptionsToImageOptions):
+ (WebKit::WebPage::scaledSnapshotWithOptions):
+ (WebKit):
+ * WebProcess/WebPage/WebPage.h:
+ (WebPage):
+
+2012-08-08 Anders Carlsson <andersca@apple.com>
+
+ Make the Silverlight CAOpenGLLayer opaque if we know the plug-in contents is opaque to reduce blending
+ https://bugs.webkit.org/show_bug.cgi?id=93508
+ <rdar://problem/12056765>
+
+ Reviewed by Simon Fraser.
+
+ * Shared/Plugins/Netscape/mac/NetscapePluginModuleMac.mm:
+ (WebKit::NetscapePluginModule::determineQuirks):
+ * Shared/Plugins/PluginQuirks.h:
+ Rename the MakeTransparentIfBackgroundAttributeExists quirk to MakeOpaqueUnlessTransparentSilverlightBackgroundAttributeExists
+ since we'll explicitly check for opaque background colors (at least one opaque background color for now), instead of just making the
+ plug-in transparent whenever there's a background specified.
+
+ * WebProcess/Plugins/Netscape/NetscapePlugin.cpp:
+ (WebKit::isTransparentSilverlightBackgroundValue):
+ Helper function for determining if a background value is transparent. Just check for opaque black now and treat everything else as transparent.
+
+ (WebKit::NetscapePlugin::initialize):
+ Call isTransparentSilverlightBackgroundValue.
+
+ * WebProcess/Plugins/Netscape/mac/NetscapePluginMac.mm:
+ (WebKit::makeCGLPresentLayerOpaque):
+ Helper function for grabbing the CGLPresentLayer from the layer hierarchy and setting it to be opaque.
+
+ (WebKit::NetscapePlugin::updatePluginLayer):
+ Call makeCGLPresentLayerOpaque if the plug-in has the MakeOpaqueUnlessTransparentSilverlightBackgroundAttributeExists quirk and
+ the plug-in is not transparent.
+
+2012-08-08 Mikhail Pozdnyakov <mikhail.pozdnyakov@intel.com>
+
+ [WK2] Coding style violation was brought with r125031
+ https://bugs.webkit.org/show_bug.cgi?id=93503
+
+ Reviewed by Alexey Proskuryakov.
+
+ WKURLResponseCopyMimeType is corrected to WKURLResponseCopyMIMEType.
+
+ * Shared/API/c/WKURLResponse.cpp:
+ (WKURLResponseCopyMIMEType):
+ * Shared/API/c/WKURLResponse.h:
+
+2012-08-08 Mikhail Pozdnyakov <mikhail.pozdnyakov@intel.com>
+
+ [EFL] EFL Webkit needs a class wrapping eina stringshare
+ https://bugs.webkit.org/show_bug.cgi?id=93229
+
+ Reviewed by Kenneth Rohde Christiansen.
+
+ Added a new auxiliary class wrapping Eina Stringshare and providing
+ more convenient C++ interface for using it.
+
+ * PlatformEfl.cmake:
+ * UIProcess/API/cpp/efl/WKEinaSharedString.cpp: Added.
+ (:m_string):
+ (WKEinaSharedString::~WKEinaSharedString):
+ (WKEinaSharedString::operator=):
+ * UIProcess/API/cpp/efl/WKEinaSharedString.h: Added.
+ (WebKit):
+
+2012-08-08 Balazs Kelemen <kbalazs@webkit.org>
+
+ [Qt] Snowshoe desktop crashes when opening a new tab
+ https://bugs.webkit.org/show_bug.cgi?id=92753
+
+ Reviewed by Jocelyn Turcotte.
+
+ Change back forceRepaint to consider the UI process state.
+ It has been tweaked to satisfy the needs of WKPageForceRepaint but
+ it has other callers so this new behavior was not safe. This patch
+ implements WebPage::forceRepaintAsync for testing purposes. It is
+ done by LayerTreeCoordinator that holds the callback and sends the
+ reply message in the next flushPendingLayerChanges. In theory it
+ could be implemented for the non conposited path in DrawingAreaImpl
+ as well but neither it is needed nor can I test it.
+
+ * WebProcess/WebPage/CoordinatedGraphics/LayerTreeCoordinator.cpp:
+ (WebKit::LayerTreeCoordinator::LayerTreeCoordinator):
+ (WebKit::LayerTreeCoordinator::forceRepaintAsync):
+ (WebKit):
+ (WebKit::LayerTreeCoordinator::flushPendingLayerChanges):
+ * WebProcess/WebPage/CoordinatedGraphics/LayerTreeCoordinator.h:
+ (LayerTreeCoordinator):
+ * WebProcess/WebPage/DrawingAreaImpl.cpp:
+ (WebKit::DrawingAreaImpl::forceRepaintAsync):
+ (WebKit):
+ * WebProcess/WebPage/DrawingAreaImpl.h:
+ (DrawingAreaImpl):
+ * WebProcess/WebPage/LayerTreeHost.h:
+ (WebKit::LayerTreeHost::forceRepaintAsync):
+
+2012-08-08 Mikhail Pozdnyakov <mikhail.pozdnyakov@intel.com>
+
+ [WK2] [WTR] Provide Resource Response dumping.
+ https://bugs.webkit.org/show_bug.cgi?id=93454
+
+ Reviewed by Kenneth Rohde Christiansen.
+
+ Several new getter functions were added to WKURLResponse and WKURL, so that WTR has
+ necessary data for dumping.
+
+ * Shared/API/c/WKURL.cpp:
+ (WKURLCopyLastPathComponent):
+ * Shared/API/c/WKURL.h:
+ * Shared/API/c/WKURLResponse.cpp:
+ (WKURLResponseCopyURL): Returns URL of the response.
+ (WKURLResponseCopyMimeType): Returns MIME type of the response.
+ * Shared/API/c/WKURLResponse.h:
+ * Shared/WebURL.h:
+ (WebKit::WebURL::lastPathComponent): Returns last path component of the URL.
+ (WebURL):
+
+2012-08-08 Eunmi Lee <eunmi15.lee@samsung.com>
+
+ [EFL][WK2] Make ewk_view inheritable in the WebKit2.
+ https://bugs.webkit.org/show_bug.cgi?id=90054
+
+ Reviewed by Kenneth Rohde Christiansen.
+
+ Make the ewk_view inheritable by exposing ewk_view_smart_class_set()
+ API. Additionally, the ewk_view_smart_add() API is added to create
+ Evas_Object for WebKit2 EFL. The default initialization is done in the
+ ewk_view_smart_add(), so the object which inherits the ewk_view should
+ use ewk_view_smart_add() instead of evas_object_smart_add() to create
+ Evas_Object.
+
+ * UIProcess/API/efl/ewk_context.cpp:
+ (ewk_context_new_from_WKContext):
+ * UIProcess/API/efl/ewk_context_private.h:
+ * UIProcess/API/efl/ewk_view.cpp:
+ (ewk_view_smart_class_set):
+ (_ewk_view_smart_class_new):
+ (_ewk_view_initialize):
+ (_ewk_view_add_with_smart):
+ (ewk_view_base_add):
+ (ewk_view_smart_add):
+ (ewk_view_add_with_context):
+ * UIProcess/API/efl/ewk_view.h:
+
+2012-08-08 Allan Sandfeld Jensen <allan.jensen@nokia.com>
+
+ [Qt] WebProcess hangs on plugin initialization.
+ https://bugs.webkit.org/show_bug.cgi?id=93272
+
+ Reviewed by Kenneth Rohde Christiansen.
+
+ * UIProcess/Plugins/PluginProcessProxy.cpp:
+ (WebKit::PluginProcessProxy::didFinishLaunching): Ensure PluginProcessConnectionManager is informed of plugin crashes.
+ * WebProcess/WebPage/WebPage.cpp:
+ (WebKit::WebPage::WebPage): Let setIsInWindow set canStartMedia asynchronously.
+
+2012-08-08 Andras Becsi <andras.becsi@nokia.com>
+
+ [Qt][WK2] Set the fixed layout setting before creating the page
+ https://bugs.webkit.org/show_bug.cgi?id=93374
+
+ Reviewed by Noam Rosenthal.
+
+ Any page setting should preferrable be set before creating the page
+ but fixed layout was set after the initialization of the web page.
+
+ * UIProcess/API/qt/qquickwebview.cpp:
+ (QQuickWebViewPrivate::initialize):
+ (QQuickWebViewFlickablePrivate::initialize):
+
+2012-08-08 Mario Sanchez Prada <msanchez@igalia.com>
+
+ [WK2] Add new C API to generate MHTML data from the UI process
+ https://bugs.webkit.org/show_bug.cgi?id=89872
+
+ Reviewed by Anders Carlsson.
+
+ Add new C API in the UI Process, using ENABLE(MHTML) guards as needed.
+
+ * UIProcess/API/C/WKPage.cpp:
+ (WKPageGetContentsAsMHTMLData):
+ * UIProcess/API/C/WKPage.h:
+
+ Implementation in the UI Process's WebPage proxy object.
+
+ * UIProcess/WebPageProxy.cpp:
+ (WebKit):
+ (WebKit::WebPageProxy::getContentsAsMHTMLData):
+ * UIProcess/WebPageProxy.h:
+ (WebPageProxy):
+
+ Implementation in the WebProcess, relying in WebCore::MHTMLArchive.
+
+ * WebProcess/WebPage/WebPage.cpp:
+ (WebKit):
+ (WebKit::WebPage::getContentsAsMHTMLData):
+ * WebProcess/WebPage/WebPage.h:
+ (WebPage):
+ * WebProcess/WebPage/WebPage.messages.in:
+
+2012-08-07 YoungTaeck Song <youngtaeck.song@samsung.com>
+
+ [WK2][EFL] Implement accelerated compositing on WK2 Efl port
+ https://bugs.webkit.org/show_bug.cgi?id=89840
+
+ Reviewed by Noam Rosenthal.
+
+ Implement accelerated composition with TiledBackingStore on WK2 Efl port.
+ This implementation is based on COORDINATED_GRAPHICS.
+
+ * CMakeLists.txt:
+ * PlatformEfl.cmake:
+ * Shared/ShareableSurface.cpp:
+ * Shared/WebCoreArgumentCoders.cpp:
+ * Shared/WebCoreArgumentCoders.h:
+ * UIProcess/API/efl/PageClientImpl.cpp:
+ (WebKit::PageClientImpl::PageClientImpl):
+ (WebKit::PageClientImpl::didChangeContentsSize):
+ (WebKit):
+ * UIProcess/API/efl/PageClientImpl.h:
+ (PageClientImpl):
+ * UIProcess/API/efl/ViewportProcessor.cpp: Added.
+ (WebKit):
+ (WebKit::ViewportProcessor::ViewportProcessor):
+ (WebKit::ViewportProcessor::~ViewportProcessor):
+ (WebKit::ViewportProcessor::display):
+ (WebKit::ViewportProcessor::updateViewportSize):
+ (WebKit::ViewportProcessor::setVisibleContentsRect):
+ (WebKit::ViewportProcessor::didChangeContentsSize):
+ * UIProcess/API/efl/ViewportProcessor.h: Added.
+ (WebKit):
+ (ViewportProcessor):
+ (WebKit::ViewportProcessor::create):
+ (WebKit::ViewportProcessor::drawingArea):
+ (WebKit::ViewportProcessor::viewSize):
+ * UIProcess/API/efl/ewk_view.cpp:
+ (_Ewk_View_Private_Data):
+ (_ewk_view_smart_calculate):
+ (ewk_view_base_add):
+ (ewk_view_display):
+ (ewk_view_contents_size_changed):
+ * UIProcess/API/efl/ewk_view_private.h:
+ * UIProcess/PageClient.h:
+ (PageClient):
+ * UIProcess/WebPageProxy.cpp:
+ (WebKit):
+ (WebKit::WebPageProxy::didChangeContentsSize):
+ * UIProcess/WebPageProxy.h:
+ (WebPageProxy):
+ * UIProcess/WebPageProxy.messages.in:
+ * WebProcess/WebPage/LayerTreeCoordinator/LayerTreeCoordinator.cpp:
+ * WebProcess/WebPage/LayerTreeCoordinator/LayerTreeCoordinator.h:
+ * WebProcess/WebPage/LayerTreeHost.cpp:
+ (WebKit::LayerTreeHost::create):
+ * WebProcess/WebPage/LayerTreeHost.h:
+ (WebKit):
+ * WebProcess/efl/WebProcessMainEfl.cpp:
+ (WebKit::WebProcessMainEfl):
+
+2012-08-07 Csaba Osztrogonác <ossy@webkit.org>
+
+ [Qt] New API tests introuduced in r119723 marked as fail, but pass
+ https://bugs.webkit.org/show_bug.cgi?id=88870
+
+ Reviewed by Alexis Menard.
+
+ Revert r119723, because there are 2 failing tests, and the author and
+ the reviewer of the original patch ignore the bug report long time ago.
+
+ * UIProcess/API/qt/tests/qmltests/WebView/tst_devicePixelRatio.qml: Removed.
+
+2012-08-07 No'am Rosenthal <noam.rosenthal@nokia.com>
+
+ GraphicsLayerAnimation shouldn't use HashMap<String>
+ https://bugs.webkit.org/show_bug.cgi?id=93284
+
+ Reviewed by Kenneth Rohde Christiansen.
+
+ Apply the changes to GraphicsLayerAnimation API.
+
+ * WebProcess/WebPage/CoordinatedGraphics/CoordinatedGraphicsLayer.cpp:
+ (WebCore::CoordinatedGraphicsLayer::addAnimation):
+
+2012-08-07 No'am Rosenthal <noam.rosenthal@nokia.com>
+
+ [Qt] Make it possible to build without QtQuick
+
+ Reviewed by Simon Hausmann.
+
+ * Target.pri:
+ * UIProcess/API/qt/tests/tests.pri:
+ * UIProcess/API/qt/tests/util.cpp:
+ * UIProcess/API/qt/tests/util.h:
+ * UIProcess/qt/WebFullScreenManagerProxyQt.cpp:
+ (WebKit::WebFullScreenManagerProxy::invalidate):
+ (WebKit::WebFullScreenManagerProxy::enterFullScreen):
+ (WebKit::WebFullScreenManagerProxy::exitFullScreen):
+ * UIProcess/qt/WebPageProxyQt.cpp:
+ (WebKit::WebPageProxy::resolveApplicationSchemeRequest):
+ (WebKit::WebPageProxy::sendApplicationSchemeReply):
+ * WebKit2.pri:
+
+2012-07-19 Simon Hausmann <simon.hausmann@nokia.com>
+
+ [Qt] Remove Qt 4 specific code paths
+ https://bugs.webkit.org/show_bug.cgi?id=88161
+
+ Reviewed by Kenneth Rohde Christiansen.
+
+ * UIProcess/API/qt/qquickwebview.cpp:
+ * UIProcess/API/qt/tests/publicapi/tst_publicapi.cpp:
+ (gatherAPI):
+ * WebKit2.pri:
+
+2012-08-07 Mikhail Pozdnyakov <mikhail.pozdnyakov@intel.com>
+
+ [EFL][WK2] Add back forward list API
+ https://bugs.webkit.org/show_bug.cgi?id=92345
+
+ Reviewed by Kenneth Rohde Christiansen.
+
+ Added new Back Forward list API to EFL WK2. Ewk_Back_Forward_List and
+ Ewk_Back_Forward_List_Item structures were added. The new API is
+ mostly the same as one from UIProcess/API/C/{ WKBackForwardList.h, WKBackForwardListItem.h }.
+
+ * PlatformEfl.cmake:
+ * UIProcess/API/efl/ewk_back_forward_list.cpp: Added.
+ (_Ewk_Back_Forward_List):
+ (_Ewk_Back_Forward_List::_Ewk_Back_Forward_List):
+ (getOrCreateItem):
+ (webkit_back_forward_list_current_item_get):
+ (webkit_back_forward_list_back_item_get):
+ (webkit_back_forward_list_forward_item_get):
+ (webkit_back_forward_list_item_at_index_get):
+ (webkit_back_forward_list_length_get):
+ (ewk_back_forward_list_changed):
+ (ewk_back_forward_list_new):
+ (ewk_back_forward_list_free):
+ * UIProcess/API/efl/ewk_back_forward_list.h: Added.
+ * UIProcess/API/efl/ewk_back_forward_list_item.cpp: Added.
+ (getItemProperty):
+ (_Ewk_Back_Forward_List_Item):
+ (_Ewk_Back_Forward_List_Item::_Ewk_Back_Forward_List_Item):
+ (_Ewk_Back_Forward_List_Item::~_Ewk_Back_Forward_List_Item):
+ (ewk_back_forward_list_item_ref):
+ (ewk_back_forward_list_item_unref):
+ (ewk_back_forward_list_item_uri_get):
+ (ewk_back_forward_list_item_title_get):
+ (ewk_back_forward_list_item_original_uri_get):
+ (ewk_back_forward_list_item_new):
+ * UIProcess/API/efl/ewk_back_forward_list_item.h: Added.
+ * UIProcess/API/efl/ewk_back_forward_list_item_private.h: Added.
+ * UIProcess/API/efl/ewk_back_forward_list_private.h: Added.
+ * UIProcess/API/efl/ewk_view.cpp:
+ (_Ewk_View_Private_Data):
+ (_Ewk_View_Private_Data::_Ewk_View_Private_Data):
+ (_Ewk_View_Private_Data::~_Ewk_View_Private_Data):
+ (ewk_view_back_forward_list_get): New function to get back-forward list.
+ * UIProcess/API/efl/ewk_view.h:
+ * UIProcess/API/efl/ewk_view_loader_client.cpp:
+ (didChangeBackForwardList): The callback added to update back-forward list items cache.
+ (ewk_view_loader_client_attach):
+
+2012-08-07 Mikhail Pozdnyakov <mikhail.pozdnyakov@intel.com>
+
+ CUSTOM_SCHEME_HANDLER flag should depend on REGISTER_PROTOCOL_HANDLER
+ https://bugs.webkit.org/show_bug.cgi?id=93081
+
+ Reviewed by Adam Barth.
+
+ CUSTOM_SCHEME_HANDLER #if guards are enclosed in the REGISTER_PROTOCOL_HANDLER guards.
+
+ * WebProcess/WebCoreSupport/WebRegisterProtocolHandlerClient.h:
+ (WebRegisterProtocolHandlerClient):
+
+2012-08-07 Hyerim Bae <hyerim.bae@samsung.com>
+
+ [EFL][WK2] Add ewk_view_find_client.h / cpp for wrapping WKPageSetPageFindClient.
+ https://bugs.webkit.org/show_bug.cgi?id=90927
+
+ Reviewed by Kentaro Hara.
+
+ Add ewk_view_find_client.h / files for wrapping WKPageSetPageFindClient,
+ add didFindString callback member of WKPageSetPageFindClient.
+
+ * PlatformEfl.cmake:
+ * UIProcess/API/efl/ewk_view.cpp:
+ (ewk_view_base_add):
+ (ewk_view_text_found):
+ (ewk_view_text_find):
+ (ewk_view_text_find_highlight_clear):
+ * UIProcess/API/efl/ewk_view.h:
+ * UIProcess/API/efl/ewk_view_find_client.cpp: Added.
+ (toEwkView):
+ (didFindString):
+ (ewk_view_find_client_attach):
+ * UIProcess/API/efl/ewk_view_find_client_private.h: Added.
+ * UIProcess/API/efl/ewk_view_private.h:
+
+2012-08-06 Sheriff Bot <webkit.review.bot@gmail.com>
+
+ Unreviewed, rolling out r124816.
+ http://trac.webkit.org/changeset/124816
+ https://bugs.webkit.org/show_bug.cgi?id=93311
+
+ made some tests crash (Requested by noamr on #webkit).
+
+ * WebProcess/WebPage/CoordinatedGraphics/CoordinatedGraphicsLayer.cpp:
+ (WebCore::CoordinatedGraphicsLayer::addAnimation):
+
+2012-08-06 No'am Rosenthal <noam.rosenthal@nokia.com>
+
+ GraphicsLayerAnimation shouldn't use HashMap<String>
+ https://bugs.webkit.org/show_bug.cgi?id=93284
+
+ Reviewed by Kenneth Rohde Christiansen.
+
+ Apply the changes to GraphicsLayerAnimation API.
+
+ * WebProcess/WebPage/CoordinatedGraphics/CoordinatedGraphicsLayer.cpp:
+ (WebCore::CoordinatedGraphicsLayer::addAnimation):
+
+2012-08-03 Brady Eidson <beidson@apple.com>
+
+ Out-of-process plug-ins should support asynchronous initialization
+ <rdar://problem/10598594> and https://bugs.webkit.org/show_bug.cgi?id=92919
+
+ Reviewed by Anders Carlsson.
+
+ If a plug-in has been deemed capable of asynchronous initialization when run out of process...
+ ...then do that!
+
+ Add flags to communicate that this plugin create is meant to create a plug-in already requested asynchronously and
+ to include whether or not the initialize call should include an artificial delay (for testing):
+ * PluginProcess/PluginCreationParameters.cpp:
+ (WebKit::PluginCreationParameters::PluginCreationParameters):
+ (WebKit::PluginCreationParameters::encode):
+ (WebKit::PluginCreationParameters::decode):
+ * PluginProcess/PluginCreationParameters.h:
+ (PluginCreationParameters):
+
+ Add a flag for the UI Process to tell the PluginProcess that it supports asynchronous initialization:
+ * Shared/Plugins/PluginProcessCreationParameters.cpp:
+ (WebKit::PluginProcessCreationParameters::PluginProcessCreationParameters):
+ (WebKit::PluginProcessCreationParameters::encode):
+ (WebKit::PluginProcessCreationParameters::decode):
+ * Shared/Plugins/PluginProcessCreationParameters.h:
+ (PluginProcessCreationParameters):
+
+ Allow the UI Process to pass along whether the plug-on supports asynchronous initialization:
+ * UIProcess/Plugins/PluginProcessProxy.cpp:
+ (WebKit::PluginProcessProxy::pluginProcessCrashedOrFailedToLaunch):
+ (WebKit::PluginProcessProxy::didCreateWebProcessConnection):
+ * UIProcess/Plugins/PluginProcessProxy.h:
+ (PluginProcessProxy):
+ * UIProcess/Plugins/mac/PluginProcessProxyMac.mm:
+ (WebKit::PluginProcessProxy::platformInitializePluginProcess):
+ * UIProcess/WebProcessProxy.messages.in:
+
+ Allow the Plugin Process to pass whether or not it supports asynchronous initialization, originally determined
+ in the UI Process, along to the WebProcess:
+ * PluginProcess/PluginProcess.cpp:
+ (WebKit::PluginProcess::PluginProcess):
+ (WebKit::PluginProcess::initializePluginProcess):
+ (WebKit::PluginProcess::createWebProcessConnection):
+ * PluginProcess/PluginProcess.h:
+ (PluginProcess):
+ * UIProcess/Plugins/PluginProcessProxy.messages.in:
+
+ Add a flag so PluginProcessConnections remember whether or not they support asynchronous initialization:
+ * WebProcess/Plugins/PluginProcessConnection.cpp:
+ (WebKit::PluginProcessConnection::PluginProcessConnection):
+ (WebKit::PluginProcessConnection::setSupportsAsynchronousPluginInitialization):
+ (WebKit):
+ * WebProcess/Plugins/PluginProcessConnection.h:
+ (WebKit::PluginProcessConnection::create):
+ (WebKit::PluginProcessConnection::supportsAsynchronousPluginInitialization):
+ (PluginProcessConnection):
+
+ Create PluginProcessConnections with the flag passed down from the PluginProcess about whether or not they
+ support asynchronous initialization:
+ * WebProcess/Plugins/PluginProcessConnectionManager.cpp:
+ (WebKit::PluginProcessConnectionManager::getPluginProcessConnection):
+
+ Responding to messages from the WebProcess, most of the heavy decision making in asynchronous initialization is here:
+ * PluginProcess/WebProcessConnection.cpp:
+ (WebKit::asynchronousInstanceIDsToIgnore): A set of instance IDs to *not* create asynchronously later because we know
+ we no longer need to.
+ (WebKit):
+ (WebKit::WebProcessConnection::didReceiveMessage):
+ (WebKit::WebProcessConnection::destroyPlugin): If the plug-in doesn't exist but is awaiting asynchronous creation, flag
+ this instance ID in the "asynchronous ignore set".
+ (WebKit::WebProcessConnection::createPluginInternal): Renamed from createPlugin, actually does the plug-in creation.
+ (WebKit::WebProcessConnection::createPlugin): Adds the instance ID to the "asynchronous ignore set" then calls createPluginInternal.
+ (WebKit::WebProcessConnection::createPluginAsynchronously): If the instance ID is in the "asynchronous ignore set", remove it from the
+ set and do nothing else. Otherwise, perform the initialization and then send the asynchronous result back to the WebProcess.
+ * PluginProcess/WebProcessConnection.h:
+ (WebProcessConnection):
+ * PluginProcess/WebProcessConnection.messages.in:
+
+ Add helpers for asynchronous initialization that all plug-in types must implement:
+ * WebProcess/Plugins/Plugin.h:
+ (Plugin):
+
+ Add helpers for asynchronous initialization that plug-in controllers can override:
+ * WebProcess/Plugins/PluginController.h:
+ (PluginController):
+ (WebKit::PluginController::asynchronousPluginInitializationEnabled):
+ (WebKit::PluginController::asynchronousPluginInitializationEnabledForAllPlugins):
+ (WebKit::PluginController::artificialPluginInitializationDelayEnabled):
+
+ Give PluginProxys the ability to initialize either asynchronously or synchronously, and also the ability to synchronously
+ wait for previously asynchronous initialization (in case their PluginScriptObject is required):
+ * WebProcess/Plugins/PluginProxy.cpp:
+ (WebKit::PluginProxy::PluginProxy):
+ (WebKit::PluginProxy::initialize): Store the plugin creation parameters as a member, and decide whether to try synchronous
+ or asynchronous initialization.
+ (WebKit):
+ (WebKit::PluginProxy::canInitializeAsynchronously): Answer based on preferences and what the PluginProcessConnection says
+ that it supports.
+ (WebKit::PluginProxy::waitForAsynchronousInitialization): Synchronously wait on initialization when asynchronous initialization
+ was previously requested.
+ (WebKit::PluginProxy::initializeSynchronously):
+ (WebKit::PluginProxy::didCreatePlugin): Double-check that we're still expecting asynchronous initialization, then call
+ through to didCreatePluginInternal.
+ (WebKit::PluginProxy::didCreatePluginInternal): Handle completion of initialization (both synchronously and asynchronously)
+ (WebKit::PluginProxy::didFailToCreatePlugin): Double-check that we're still expecting asynchronous initialization, then call
+ through to didFailToCreatePluginInternal.
+ (WebKit::PluginProxy::didFailToCreatePluginInternal): Handle failure to initialize (both synchronously and asynchronously)
+ (WebKit::PluginProxy::destroy):
+ * WebProcess/Plugins/PluginProxy.h:
+ (WebKit):
+ (WebKit::PluginProxy::isInitializingAsynchronously):
+ (PluginProxy):
+ * WebProcess/Plugins/PluginProxy.messages.in:
+
+ * WebProcess/Plugins/PluginView.cpp:
+ (WebKit::PluginView::PluginView):
+ (WebKit::PluginView::~PluginView): Always destroy the plug-in even if it hasn't been initialized yet, as it might be initializing
+ right now.
+ (WebKit::PluginView::initializePlugin): Don't handle the result of initialization immediately. Break that out in to two
+ methods that will be called later.
+ (WebKit):
+ (WebKit::PluginView::didFailToInitializePlugin):
+ (WebKit::PluginView::didInitializePlugin):
+ (WebKit::PluginView::scriptObject): If we truly need the script object, then wait for a synchronous initialization of the plug-in.
+ (WebKit::PluginView::asynchronousPluginInitializationEnabled):
+ (WebKit::PluginView::asynchronousPluginInitializationEnabledForAllPlugins):
+ (WebKit::PluginView::artificialPluginInitializationDelayEnabled):
+ * WebProcess/Plugins/PluginView.h:
+ (PluginView):
+
+ These methods shouldn't be called in the PluginProcess, only in the WebProcess:
+ * PluginProcess/PluginControllerProxy.cpp:
+ (WebKit::PluginControllerProxy::didInitializePlugin):
+ (WebKit):
+ (WebKit::PluginControllerProxy::didFailToInitializePlugin):
+ * PluginProcess/PluginControllerProxy.h:
+ (PluginControllerProxy):
+
+ NetscapePlugin is for in-process plug-ins:
+ * WebProcess/Plugins/Netscape/NetscapePlugin.h:
+ (NetscapePlugin):
+ (WebKit::NetscapePlugin::waitForAsynchronousInitialization):
+ (WebKit::NetscapePlugin::isInitializingAsynchronously):
+
+ Built-in PDFView is currently only in-process:
+ * WebProcess/Plugins/PDF/BuiltInPDFView.h:
+ (BuiltInPDFView):
+ (WebKit::BuiltInPDFView::waitForAsynchronousInitialization):
+ (WebKit::BuiltInPDFView::isInitializingAsynchronously):
+
+2012-08-06 Luciano Wolf <luciano.wolf@openbossa.org>
+
+ [Qt] Default sizes for input-text and text-area are different when running DRT/WTR
+ https://bugs.webkit.org/show_bug.cgi?id=91990
+
+ Reviewed by Kenneth Rohde Christiansen.
+
+ WTR wasn't using the proper font types provided by testfonts directory.
+ The same approach as DRT was applied and now it takes info from QFont to
+ update the store variable.
+
+ * UIProcess/qt/WebPreferencesQt.cpp:
+ (WebKit::setStringValueIfInUserDefaults):
+ (WebKit):
+ (WebKit::WebPreferences::platformInitializeStore):
+
+2012-08-06 No'am Rosenthal <noam.rosenthal@nokia.com>
+
+ [Qt] Use GraphicsLayerAnimation in LayerTreeCoordinator
+ https://bugs.webkit.org/show_bug.cgi?id=93147
+
+ Reviewed by Kenneth Rohde Christiansen
+
+ Allow controlling animations outside of WebCore. This is an intermediate step before moving
+ to threaded animations.
+
+ CoordinatedGraphicsLayer maintains the GraphicsLayerAnimation structures, and applies the
+ animation interpolation at the right time, before syncing the rest of the layer info and
+ the visible contents rect.
+
+ This also allows sending shorter IPC messages for animated opacity/transform changes,
+ without the rest of the layer info.
+
+ * UIProcess/CoordinatedGraphics/LayerTreeCoordinatorProxy.cpp:
+ (WebKit::LayerTreeCoordinatorProxy::setLayerAnimatedOpacity):
+ (WebKit):
+ (WebKit::LayerTreeCoordinatorProxy::setLayerAnimatedTransform):
+ * UIProcess/CoordinatedGraphics/LayerTreeCoordinatorProxy.h:
+ (LayerTreeCoordinatorProxy):
+ * UIProcess/CoordinatedGraphics/LayerTreeCoordinatorProxy.messages.in:
+ * UIProcess/CoordinatedGraphics/LayerTreeRenderer.cpp:
+ (WebKit::LayerTreeRenderer::setAnimatedOpacity):
+ (WebKit):
+ (WebKit::LayerTreeRenderer::setAnimatedTransform):
+ * UIProcess/CoordinatedGraphics/LayerTreeRenderer.h:
+ (LayerTreeRenderer):
+ * WebProcess/WebPage/CoordinatedGraphics/CoordinatedGraphicsLayer.cpp:
+ (WebCore::CoordinatedGraphicsLayer::didChangeAnimatedProperties):
+ (WebCore):
+ (WebCore::CoordinatedGraphicsLayer::CoordinatedGraphicsLayer):
+ (WebCore::CoordinatedGraphicsLayer::syncLayerState):
+ (WebCore::CoordinatedGraphicsLayer::syncAnimatedProperties):
+ (WebCore::CoordinatedGraphicsLayer::syncCompositingStateForThisLayerOnly):
+ (WebCore::CoordinatedGraphicsLayer::computeTransformedVisibleRect):
+ account for the animated transform in the visible rect.
+
+ (WebCore::CoordinatedGraphicsLayer::addAnimation):
+ (WebCore::CoordinatedGraphicsLayer::pauseAnimation):
+ (WebCore::CoordinatedGraphicsLayer::removeAnimation):
+ (WebCore::CoordinatedGraphicsLayer::animationStartedTimerFired):
+ (WebCore::CoordinatedGraphicsLayer::setAnimatedTransform):
+ (WebCore::CoordinatedGraphicsLayer::setAnimatedOpacity):
+ * WebProcess/WebPage/CoordinatedGraphics/CoordinatedGraphicsLayer.h:
+ (CoordinatedGraphicsLayerClient):
+ (CoordinatedGraphicsLayer):
+ * WebProcess/WebPage/CoordinatedGraphics/LayerTreeCoordinator.cpp:
+ (WebKit):
+ (WebKit::LayerTreeCoordinator::setLayerAnimatedOpacity):
+ (WebKit::LayerTreeCoordinator::setLayerAnimatedTransform):
+ * WebProcess/WebPage/CoordinatedGraphics/LayerTreeCoordinator.h:
+ (LayerTreeCoordinator):
+
+2012-08-06 Anders Carlsson <andersca@apple.com>
+
+ If the Apple Java plug-in is blocked and no runtime is installed, don't load it
+ https://bugs.webkit.org/show_bug.cgi?id=93289
+ <rdar://problem/11730092>
+
+ Reviewed by Dan Bernstein.
+
+ If the Apple Java plug-in is blocked, but there's no Java runtime installed (or the Java plug-in is disabled),
+ don't even include it in the plug-in info store.
+
+ * UIProcess/Plugins/PluginInfoStore.cpp:
+ (WebKit::PluginInfoStore::shouldBlockPlugin):
+ Since this is static now, it shouldn't be const.
+
+ * UIProcess/Plugins/PluginInfoStore.h:
+ (PluginInfoStore):
+ shouldBlockPlugin can be static.
+
+ * UIProcess/Plugins/mac/PluginInfoStoreMac.mm:
+ (WebKit::PluginInfoStore::shouldUsePlugin):
+ Return false if the Apple Java plug-in is blocked but Java isn't installed or enabled.
+
+ (WebKit::PluginInfoStore::shouldBlockPlugin):
+ Since this is static now, it shouldn't be const.
+
+2012-08-06 Mario Sanchez Prada <msanchez@igalia.com>
+
+ [WK2][GTK] Improvements for the new spell-checking API
+ https://bugs.webkit.org/show_bug.cgi?id=93262
+
+ Reviewed by Carlos Garcia Campos.
+
+ Improve the way the new spell-checking API is implemented, by
+ using better internal representations for data, documenting better
+ the new functions and using better unit tests.
+
+ * UIProcess/API/gtk/WebKitTextChecker.cpp:
+ (WebKitTextChecker::getSpellCheckingLanguages): Just return the
+ value previously cached when calling to the setter function.
+ (WebKitTextChecker::setSpellCheckingLanguages): Update the text
+ checker in WebCore and cache the value returned from it.
+ * UIProcess/API/gtk/WebKitTextChecker.h:
+ (WebKitTextChecker): Use a CString instead of an String to cache
+ the list of spell checking languages. Update getter and setter.
+ * UIProcess/API/gtk/WebKitWebContext.cpp:
+ (_WebKitWebContextPrivate): No need to cache the spell checking
+ languages here anymore.
+ (webkit_web_context_get_spell_checking_languages): Improve
+ both implementation and documentation to be more consistent.
+ (webkit_web_context_set_spell_checking_languages): Make
+ 'languages' a mandatory (non-NULL) parameter. Update documentation.
+ * UIProcess/API/gtk/tests/TestWebKitWebContext.cpp:
+ (testWebContextSpellChecker): Test even more situations.
+
+2012-08-06 Andras Becsi <andras.becsi@nokia.com>
+
+ [Qt][WK2] Remove workarounds from input event handling
+ https://bugs.webkit.org/show_bug.cgi?id=93125
+
+ Reviewed by Jocelyn Turcotte.
+
+ Since input event propagation in Qt5 has been fixed we can remove
+ the workarounds introduced to prevent the QML WebView from receiving
+ input events targeting a child dialog.
+ To do this the childMouseEventFilter function has to be changed to
+ force touch and mouse events through the default propagation path.
+
+ * UIProcess/API/qt/qquickwebview.cpp:
+ (QQuickWebViewPrivate::QQuickWebViewPrivate):
+ (QQuickWebViewLegacyPrivate::initialize):
+ (QQuickWebView::childMouseEventFilter):
+ (QQuickWebView::touchEvent):
+ * UIProcess/API/qt/qquickwebview_p_p.h:
+ (QQuickWebViewPrivate):
+ (QQuickWebViewLegacyPrivate):
+ * UIProcess/qt/QtDialogRunner.cpp:
+ (WebKit::QtDialogRunner::run):
+ * UIProcess/qt/WebColorChooserProxyQt.cpp:
+ (WebKit::WebColorChooserProxyQt::createItem):
+ (WebKit::WebColorChooserProxyQt::endChooser):
+ * UIProcess/qt/WebPopupMenuProxyQt.cpp:
+ (WebKit::WebPopupMenuProxyQt::showPopupMenu):
+ (WebKit::WebPopupMenuProxyQt::hidePopupMenu):
+
+2012-08-06 Mario Sanchez Prada <msanchez@igalia.com>
+
+ [WK2][GTK] Implement a new spell checker API for WebKit2GTK+
+ https://bugs.webkit.org/show_bug.cgi?id=90268
+
+ Reviewed by Martin Robinson.
+
+ Add a simple spell checking API to WK2, allowing to enable/disable
+ this feature and to define a list of languages associated to it.
+
+ * GNUmakefile.am: Add flags to handle the SPELLCHECK feature.
+ * GNUmakefile.list.am: Added new files
+
+ Added new internal class that will act both as the implementation
+ of TextCheckerClient and as the object WebKitWebContext will
+ depend on to implement the newly added API.
+
+ * UIProcess/API/gtk/WebKitTextChecker.cpp: Added.
+ (toTextChecker):
+ (continuousSpellCheckingEnabledCallback):
+ (setContinuousSpellCheckingEnabledCallback):
+ (checkSpellingOfStringCallback):
+ (guessesForWordCallback):
+ (learnWordCallback):
+ (ignoreWordCallback):
+ (WebKitTextChecker::~WebKitTextChecker):
+ (WebKitTextChecker::create):
+ (WebKitTextChecker::WebKitTextChecker):
+ (WebKitTextChecker::checkSpellingOfString):
+ (WebKitTextChecker::getGuessesForWord):
+ (WebKitTextChecker::learnWord):
+ (WebKitTextChecker::ignoreWord):
+ (WebKitTextChecker::setSpellCheckingEnabled):
+ (WebKitTextChecker::setSpellCheckingLanguages):
+ * UIProcess/API/gtk/WebKitTextChecker.h: Added.
+ (WebKitTextChecker):
+ (WebKitTextChecker::isSpellCheckingEnabled):
+ (WebKitTextChecker::getSpellCheckingLanguages):
+
+ Added WKTextChecker to WebKitPrivate.h, needed in WebKitTextChecker.
+
+ * UIProcess/API/gtk/WebKitPrivate.h:
+
+ Add new API to WebKitWebContext to allow enabling/disabling this
+ spell checking feature, and to set/get the list of languages used
+ to decide which dictionaries will be consulted.
+
+ * UIProcess/API/gtk/WebKitWebContext.cpp:
+ (_WebKitWebContextPrivate):
+ (createDefaultWebContext):
+ (webkit_web_context_get_spell_checking_enabled): New API.
+ (webkit_web_context_set_spell_checking_enabled): Ditto.
+ (webkit_web_context_get_spell_checking_languages): Ditto.
+ (webkit_web_context_set_spell_checking_languages): Ditto.
+ * UIProcess/API/gtk/WebKitWebContext.h:
+
+ New tests for checking the new API added to WebKitWebContext.
+
+ * UIProcess/API/gtk/tests/TestWebKitWebContext.cpp:
+ (testWebContextSpellChecker):
+ (beforeAll):
+
+ Update documentation with new sections and symbols.
+
+ * UIProcess/API/gtk/docs/webkit2gtk-docs.sgml:
+ * UIProcess/API/gtk/docs/webkit2gtk-sections.txt:
+
+2012-08-05 Benjamin Poulain <bpoulain@apple.com>
+
+ Assert in checkValidity() in hashtable.h from WebGeolocationManager::didFailToDeterminePosition() when fetching http://html5demos.com/geo
+ https://bugs.webkit.org/show_bug.cgi?id=80386
+
+ Reviewed by Alexey Proskuryakov.
+
+ WebKit2's WebGeolocationManager was delivering events without accounting that each event
+ can modify the list of page that need delivery.
+ Any page can remove itself by invoking clearWatch() from the callback function. A page can also cause another
+ page to be removed.
+
+ This patch solves the issue by taking a copy of the list of page before delivery. Each page is
+ referenced as it can be deleted during the delivery.
+
+ Unfortunately, this cannot be tested due to missing features of WebKitTestRunner.
+
+ * WebProcess/Geolocation/WebGeolocationManager.cpp:
+ (WebKit::WebGeolocationManager::didChangePosition):
+ (WebKit::WebGeolocationManager::didFailToDeterminePosition):
+
+2012-08-04 No'am Rosenthal <noam.rosenthal@nokia.com>
+
+ [Qt] UI_SIDE_COMPOSITING code has confusing names
+ https://bugs.webkit.org/show_bug.cgi?id=93164
+
+ Reviewed by Kenneth Rohde Christiansen.
+
+ Renamed and consolidated code guarded under UI_SIDE_COMPOSITING, now under
+ USE(COORDINATED_GRAPHICS) guard and CoordinatedGraphics folders.
+
+ * CMakeLists.txt:
+ * DerivedSources.pri:
+ * Shared/WebCoreArgumentCoders.cpp:
+ (CoreIPC):
+ * Shared/WebCoreArgumentCoders.h:
+ * Shared/WebLayerTreeInfo.cpp:
+ * Shared/WebLayerTreeInfo.h:
+ * Target.pri:
+ * UIProcess/API/qt/qquickwebpage.cpp:
+ (QQuickWebPage::updatePaintNode):
+ * UIProcess/API/qt/raw/qrawwebview.cpp:
+ (QRawWebView::paint):
+ * UIProcess/CoordinatedGraphics/CoordinatedBackingStore.cpp: Renamed from Source/WebKit2/UIProcess/texmap/LayerBackingStore.cpp.
+ * UIProcess/CoordinatedGraphics/CoordinatedBackingStore.h: Renamed from Source/WebKit2/UIProcess/texmap/LayerBackingStore.h.
+ * UIProcess/CoordinatedGraphics/LayerTreeCoordinatorProxy.cpp: Renamed from Source/WebKit2/UIProcess/LayerTreeCoordinatorProxy.cpp.
+ * UIProcess/CoordinatedGraphics/LayerTreeCoordinatorProxy.h: Renamed from Source/WebKit2/UIProcess/LayerTreeCoordinatorProxy.h.
+ * UIProcess/CoordinatedGraphics/LayerTreeCoordinatorProxy.messages.in: Renamed from Source/WebKit2/UIProcess/LayerTreeCoordinatorProxy.messages.in.
+ * UIProcess/CoordinatedGraphics/LayerTreeRenderer.cpp: Renamed from Source/WebKit2/UIProcess/WebLayerTreeRenderer.cpp.
+ * UIProcess/CoordinatedGraphics/LayerTreeRenderer.h: Renamed from Source/WebKit2/UIProcess/WebLayerTreeRenderer.h.
+ * UIProcess/DrawingAreaProxy.cpp:
+ (WebKit):
+ * UIProcess/DrawingAreaProxy.h:
+ (DrawingAreaProxy):
+ * UIProcess/DrawingAreaProxyImpl.cpp:
+ (WebKit::DrawingAreaProxyImpl::DrawingAreaProxyImpl):
+ (WebKit::DrawingAreaProxyImpl::enterAcceleratedCompositingMode):
+ (WebKit):
+ * UIProcess/DrawingAreaProxyImpl.h:
+ (DrawingAreaProxyImpl):
+ * UIProcess/WebPageProxy.cpp:
+ (WebKit::WebPageProxy::didReceiveMessage):
+ * UIProcess/qt/QtWebPageSGNode.cpp:
+ (WebKit::ContentsSGNode::ContentsSGNode):
+ (WebKit::ContentsSGNode::layerTreeRenderer):
+ (ContentsSGNode):
+ (WebKit::QtWebPageSGNode::setRenderer):
+ * UIProcess/qt/QtWebPageSGNode.h:
+ (WebKit):
+ (QtWebPageSGNode):
+ * WebKit2.pri:
+ * WebProcess/WebCoreSupport/WebChromeClient.cpp:
+ (WebKit::WebChromeClient::scheduleAnimation):
+ * WebProcess/WebPage/CoordinatedGraphics/CoordinatedGraphicsLayer.cpp: Renamed from Source/WebKit2/WebProcess/WebPage/LayerTreeCoordinator/WebGraphicsLayer.cpp.
+ * WebProcess/WebPage/CoordinatedGraphics/CoordinatedGraphicsLayer.h: Renamed from Source/WebKit2/WebProcess/WebPage/LayerTreeCoordinator/WebGraphicsLayer.h.
+ * WebProcess/WebPage/CoordinatedGraphics/CoordinatedTile.cpp: Renamed from Source/WebKit2/WebProcess/WebPage/TiledBackingStoreRemoteTile.cpp.
+ * WebProcess/WebPage/CoordinatedGraphics/CoordinatedTile.h: Renamed from Source/WebKit2/WebProcess/WebPage/TiledBackingStoreRemoteTile.h.
+ * WebProcess/WebPage/CoordinatedGraphics/LayerTreeCoordinator.cpp: Renamed from Source/WebKit2/WebProcess/WebPage/LayerTreeCoordinator/LayerTreeCoordinator.cpp.
+ * WebProcess/WebPage/CoordinatedGraphics/LayerTreeCoordinator.h: Renamed from Source/WebKit2/WebProcess/WebPage/LayerTreeCoordinator/LayerTreeCoordinator.h.
+ * WebProcess/WebPage/CoordinatedGraphics/LayerTreeCoordinator.messages.in: Renamed from Source/WebKit2/WebProcess/WebPage/LayerTreeCoordinator/LayerTreeCoordinator.messages.in.
+ * WebProcess/WebPage/DrawingArea.h:
+ (DrawingArea):
+ * WebProcess/WebPage/DrawingAreaImpl.cpp:
+ (WebKit):
+ * WebProcess/WebPage/DrawingAreaImpl.h:
+ (DrawingAreaImpl):
+ * WebProcess/WebPage/LayerTreeHost.h:
+ (LayerTreeHost):
+ * WebProcess/WebPage/UpdateAtlas.cpp:
+ * WebProcess/WebPage/UpdateAtlas.h:
+ * WebProcess/qt/WebProcessMainQt.cpp:
+ (WebKit::WebProcessMainQt):
+
+2012-08-04 Christophe Dumez <christophe.dumez@intel.com>
+
+ [WK2] Move WebIntentData from Shared to UIProcess
+ https://bugs.webkit.org/show_bug.cgi?id=93175
+
+ Reviewed by Kenneth Rohde Christiansen.
+
+ Move WebIntentData from Shared to UIProcess to
+ prepare for MessagePorts support in WK2.
+
+ * CMakeLists.txt:
+ * GNUmakefile.list.am:
+ * Target.pri:
+ * UIProcess/WebIntentData.cpp: Renamed from Source/WebKit2/Shared/WebIntentData.cpp.
+ (WebKit):
+ (WebKit::WebIntentData::WebIntentData):
+ (WebKit::WebIntentData::data):
+ (WebKit::WebIntentData::suggestions):
+ (WebKit::WebIntentData::extra):
+ (WebKit::WebIntentData::extras):
+ * UIProcess/WebIntentData.h: Renamed from Source/WebKit2/Shared/WebIntentData.h.
+ (WebKit):
+ (WebIntentData):
+ (WebKit::WebIntentData::create):
+ (WebKit::WebIntentData::~WebIntentData):
+ (WebKit::WebIntentData::action):
+ (WebKit::WebIntentData::payloadType):
+ (WebKit::WebIntentData::service):
+ (WebKit::WebIntentData::store):
+ (WebKit::WebIntentData::type):
+
+2012-08-03 Anders Carlsson <andersca@apple.com>
+
+ Nothing happens when clicking on the unavailable plug-in button for a blocked plug-in
+ https://bugs.webkit.org/show_bug.cgi?id=93161
+
+ Reviewed by John Sullivan.
+
+ Be more robust against values being added to the RenderEmbeddedObject::PluginUnavailabilityReason
+ enumeration, and use a switch statement instead of blindly casting the type value to a WKPluginUnavailabilityReason.
+
+ * UIProcess/WebPageProxy.cpp:
+ (WebKit::WebPageProxy::unavailablePluginButtonClicked):
+
+2012-08-03 Brady Eidson <beidson@apple.com>
+
+ Small part of "Out-of-process plug-ins should support asynchronous initialization."
+ <rdar://problem/10598594> and https://bugs.webkit.org/show_bug.cgi?id=92919
+
+ Unreviewed (build fix).
+
+ * Shared/WebPreferencesStore.h:
+ (WebKit): Include this file which has the declaration of the new pref.
+
+2012-08-03 Brady Eidson <beidson@apple.com>
+
+ Small part of "Out-of-process plug-ins should support asynchronous initialization."
+ <rdar://problem/10598594> and https://bugs.webkit.org/show_bug.cgi?id=92919
+
+ Reviewed by Anders Carlsson.
+
+ -Add API-level preferences for forcing asynchronous initialization of all plug-ins (for testing).
+ -Make sure "overridePreference" is hooked up properly for all needed preferences.
+
+ * UIProcess/API/C/WKPreferences.cpp:
+ (WKPreferencesSetAsynchronousPluginInitializationEnabledForAllPlugins):
+ (WKPreferencesGetAsynchronousPluginInitializationEnabledForAllPlugins):
+ * UIProcess/API/C/WKPreferencesPrivate.h:
+
+ * WebProcess/InjectedBundle/InjectedBundle.cpp:
+ (WebKit::InjectedBundle::overrideBoolPreferenceForTestRunner):
+
+ * WebProcess/WebPage/WebPage.cpp:
+ (WebKit::WebPage::WebPage):
+ (WebKit::WebPage::updatePreferences):
+ * WebProcess/WebPage/WebPage.h:
+ (WebKit::WebPage::setAsynchronousPluginInitializationEnabled):
+ (WebKit::WebPage::asynchronousPluginInitializationEnabledForAllPlugins):
+ (WebKit::WebPage::setAsynchronousPluginInitializationEnabledForAllPlugins):
+ (WebKit::WebPage::setArtificialPluginInitializationDelayEnabled):
+ (WebPage):
+
+2012-08-02 Jeffrey Pfau <jpfau@apple.com>
+
+ Add API for enabling blanket third-party data blocking
+ https://bugs.webkit.org/show_bug.cgi?id=93022
+
+ Reviewed by Anders Carlsson.
+
+ Added API for enabling third-party storage blocking.
+
+ * Shared/WebPreferencesStore.h:
+ (WebKit):
+ * UIProcess/API/C/WKPreferences.cpp:
+ (WKPreferencesSetThirdPartyStorageBlockingEnabled):
+ (WKPreferencesGetThirdPartyStorageBlockingEnabled):
+ * UIProcess/API/C/WKPreferences.h:
+ * WebProcess/WebPage/WebPage.cpp:
+ (WebKit::WebPage::updatePreferences):
+
+2012-08-03 Hugo Parente Lima <hugo.lima@openbossa.org>
+
+ [Qt][WK2] There's no way to test the gesture tap on WTR
+ https://bugs.webkit.org/show_bug.cgi?id=92895
+
+ Reviewed by Kenneth Rohde Christiansen.
+
+ Add an instance of QtViewportHandler to QQuickWebViewPrivate, so it's
+ now available on mobile and desktop modes, as a side effect gesture tap
+ events can now be created and sent to WebCore.
+
+ This is needed to test tap gestures and to get tap gestures working
+ when you have a WebView (in desktop mode) on notebooks equipped with
+ touch screens.
+
+ * UIProcess/API/qt/qquickwebview.cpp:
+ (QQuickWebViewPrivate::onComponentComplete):
+ (QQuickWebViewFlickablePrivate::onComponentComplete): Implementation
+ moved to QQuickWebViewPrivate::onComponentComplete.
+ * UIProcess/API/qt/qquickwebview_p_p.h:
+ (QQuickWebViewPrivate):
+ (QQuickWebViewFlickablePrivate):
+
+2012-08-02 Alexey Proskuryakov <ap@apple.com>
+
+ [WK2] Move some WebContext messages to WebProcessProxy
+ https://bugs.webkit.org/show_bug.cgi?id=93046
+
+ Reviewed by Anders Carlsson.
+
+ * UIProcess/WebContext.cpp: (WebKit::WebContext::didReceiveSyncMessage): Unrelated
+ fix - use actual process argument instead of second-guessing where the message came
+ from.
+
+ * UIProcess/WebContext.h: (WebKit::WebContext::historyClient): Expose history client,
+ since WebProcessProxy now needs it.
+
+ * UIProcess/WebContext.messages.in:
+ * UIProcess/WebProcessProxy.cpp:
+ (WebKit::WebProcessProxy::didNavigateWithNavigationData):
+ (WebKit::WebProcessProxy::didPerformClientRedirect):
+ (WebKit::WebProcessProxy::didPerformServerRedirect):
+ (WebKit::WebProcessProxy::didUpdateHistoryTitle):
+ * UIProcess/WebProcessProxy.h:
+ * UIProcess/WebProcessProxy.messages.in:
+ * WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
+ (WebKit::WebFrameLoaderClient::updateGlobalHistory):
+ (WebKit::WebFrameLoaderClient::updateGlobalHistoryRedirectLinks):
+ (WebKit::WebFrameLoaderClient::setTitle):
+ Move the messages.
+
+2012-08-03 Balazs Kelemen <kbalazs@webkit.org>
+
+ Unreviewed, rolling out r124603.
+ http://trac.webkit.org/changeset/124603
+ https://bugs.webkit.org/show_bug.cgi?id=93077
+
+ Made a few tests crash under
+ LayerTreeCoordinator::flushPendingLayerChanges
+
+ * WebProcess/WebPage/LayerTreeCoordinator/LayerTreeCoordinator.cpp:
+ (WebKit::LayerTreeCoordinator::LayerTreeCoordinator):
+ (WebKit::LayerTreeCoordinator::forceRepaint):
+ (WebKit::LayerTreeCoordinator::layerTreeTileUpdatesAllowed):
+ * WebProcess/WebPage/LayerTreeCoordinator/LayerTreeCoordinator.h:
+ (LayerTreeCoordinator):
+
+2012-08-03 Mario Sanchez Prada <msanchez@igalia.com>
+
+ Unreviewed build fix for GTK after r124479.
+
+ * UIProcess/WebInspectorProxy.cpp:
+ (WebKit): Moved static const definitions from header file.
+ * UIProcess/WebInspectorProxy.h:
+ (WebInspectorProxy): Don't give values to static const members
+ here.
+
+2012-08-03 Balazs Kelemen <kbalazs@webkit.org>
+
+ [WK2] LayerTreeCoordinator can disallow tile updates in forceRepaint
+ https://bugs.webkit.org/show_bug.cgi?id=93077
+
+ Reviewed by Jocelyn Turcotte.
+
+ Force tile updates when doing a forced repaint.
+
+ * WebProcess/WebPage/LayerTreeCoordinator/LayerTreeCoordinator.cpp:
+ (WebKit::LayerTreeCoordinator::LayerTreeCoordinator):
+ (WebKit::LayerTreeCoordinator::forceRepaint):
+ (WebKit::LayerTreeCoordinator::layerTreeTileUpdatesAllowed):
+ * WebProcess/WebPage/LayerTreeCoordinator/LayerTreeCoordinator.h:
+ (LayerTreeCoordinator):
+
+2012-08-02 Carlos Garcia Campos <cgarcia@igalia.com>
+
+ [GTK] Inspector should set a default attached height before being attached
+ https://bugs.webkit.org/show_bug.cgi?id=90767
+
+ Reviewed by Xan Lopez.
+
+ We are currently using the minimum attached height in
+ WebKitWebViewBase as the default height for the inspector when
+ attached. It would be easier for WebKitWebViewBase and embedders
+ implementing attach() if the inspector already had an attached
+ height set when it's being attached.
+
+ * UIProcess/API/gtk/WebKitWebViewBase.cpp:
+ (webkitWebViewBaseContainerAdd): Don't initialize
+ inspectorViewHeight.
+ (webkitWebViewBaseSetInspectorViewHeight): Allow to set the
+ inspector view height before having an inpector view, but only
+ queue a resize when the view already has an inspector view.
+ * UIProcess/API/gtk/tests/TestInspector.cpp:
+ (testInspectorDefault):
+ (testInspectorManualAttachDetach):
+ * UIProcess/gtk/WebInspectorProxyGtk.cpp:
+ (WebKit::WebInspectorProxy::platformAttach): Set the default
+ attached height before attach the inspector view.
+
+2012-08-02 Dinu Jacob <dinu.jacob@nokia.com>
+
+ WebKitTestRunner needs layoutTestController.setUserStyleSheetEnabled
+ https://bugs.webkit.org/show_bug.cgi?id=42679
+
+ Reviewed by Eric Seidel.
+
+ Added WKBundleSetUserStyleSheetLocation API.
+
+ * WebProcess/InjectedBundle/API/c/WKBundle.cpp:
+ (WKBundleSetUserStyleSheetLocation): Added.
+ * WebProcess/InjectedBundle/API/c/WKBundlePrivate.h: Added WKBundleSetUserStyleSheetLocation.
+ * WebProcess/InjectedBundle/InjectedBundle.cpp:
+ (WebKit::InjectedBundle::setUserStyleSheetLocation): Added. Sets the user style sheet location
+ for all pages in the page group.
+ (WebKit):
+ * WebProcess/InjectedBundle/InjectedBundle.h:
+ (InjectedBundle):
+
+2012-08-02 Lauro Neto <lauro.neto@openbossa.org>
+
+ [Qt] Fix axis locking when panning on N9
+ https://bugs.webkit.org/show_bug.cgi?id=92394
+
+ Reviewed by Simon Hausmann.
+
+ Make the QQuickWebView axis locker calculate the
+ time between events using QInputEvent.timestamp, which
+ is set from the native event when available.
+
+ Also use touchPoint.pos() instead of screenPos() to
+ correct the axis detection when running on N9, which
+ has a native landscape display and the applications usually
+ run in portrait mode.
+
+ * UIProcess/API/qt/qquickwebview.cpp:
+ (QQuickWebViewPrivate::FlickableAxisLocker::FlickableAxisLocker):
+ (QQuickWebViewPrivate::FlickableAxisLocker::touchVelocity):
+ (QQuickWebViewPrivate::FlickableAxisLocker::update):
+ * UIProcess/API/qt/qquickwebview_p_p.h:
+ (FlickableAxisLocker):
+
+2012-08-02 Hyerim Bae <hyerim.bae@samsung.com>
+
+ [EFL][WK2]Add ewk_view_ui_client.
+ https://bugs.webkit.org/show_bug.cgi?id=89864
+
+ Reviewed by Kentaro Hara.
+
+ Add ewk_view_ui_client.h / cpp files for wrapping WKPageSetPageUIClient,
+ add close, createNewPage callback member to WKPageSetPageUIClient.
+
+ * PlatformEfl.cmake:
+ * UIProcess/API/efl/ewk_view.cpp:
+ (ewk_view_base_add):
+ (ewk_view_page_close):
+ (ewk_view_page_create):
+ * UIProcess/API/efl/ewk_view.h:
+ * UIProcess/API/efl/ewk_view_private.h:
+ * UIProcess/API/efl/ewk_view_ui_client.cpp: Added.
+ (toEwkView):
+ (closePage):
+ (createNewPage):
+ (ewk_view_ui_client_attach):
+ * UIProcess/API/efl/ewk_view_ui_client_private.h: Added.
+
+2012-08-02 Carlos Garcia Campos <cgarcia@igalia.com>
+
+ [GTK] No main resource in WebView on load committed when page has been loaded from history cache
+ https://bugs.webkit.org/show_bug.cgi?id=91482
+
+ Reviewed by Martin Robinson.
+
+ We assume that on load committed, we already have a main resource
+ in the web view, and it has already received a response. This is
+ not true for pages loaded from the history cache, so when going
+ back/forward, we don't have a main resource when the
+ load-committed signal is emitted. We must ensure that the loading
+ process documented in the API is the same for pages loaded from
+ the history cache too.
+
+ * UIProcess/API/gtk/WebKitLoaderClient.cpp:
+ (didCommitLoadForFrame): Call webkitWebViewLoadChanged() and let
+ the web view handle the certificate.
+ * UIProcess/API/gtk/WebKitWebResource.cpp:
+ (webkitWebResourceGetFrame): Helper private function to easily get
+ the WKFrame associated with a WebResource.
+ * UIProcess/API/gtk/WebKitWebResourcePrivate.h:
+ * UIProcess/API/gtk/WebKitWebView.cpp:
+ (webkitWebViewDisconnectMainResourceResponseChangedSignalHandler):
+ Disconnect the notify::response signal of the main resource.
+ (webkitWebViewFinalize): Call
+ webkitWebViewDisconnectMainResourceResponseChangedSignalHandler().
+ (setCertificateToMainResource): Set the TLS certificate on the
+ response of the main resource.
+ (webkitWebViewEmitLoadChanged): Helper function to emit
+ load-chancged signal.
+ (webkitWebViewEmitDelayedLoadEvents): If we were waiting for the
+ main resource, emit the signals that were delayed.
+ (webkitWebViewLoadChanged): Do not emit committed or finished if
+ we are still waiting for the main resource. Set the TLS
+ certificate if we already have a main resource or wait until we
+ have the main resource with a response.
+ (mainResourceResponseChangedCallback): Emitted when the main
+ resource received the response. Set the certificate on the
+ response and emit load signals delayed.
+ (waitForMainResourceResponseIfWaitingForResource): If we are
+ waiting for the main resource, connect to the notify::response
+ signal of the WebResource to make sure it has a response already
+ when load signal delayed are emitted.
+ (webkitWebViewResourceLoadStarted): Call
+ waitForMainResourceResponseIfWaitingForResource().
+ * UIProcess/API/gtk/tests/LoadTrackingTest.cpp:
+ (loadChangedCallback):
+ (LoadTrackingTest::goBack):
+ (LoadTrackingTest::goForward):
+ * UIProcess/API/gtk/tests/LoadTrackingTest.h:
+ (LoadTrackingTest):
+ * UIProcess/API/gtk/tests/TestLoaderClient.cpp:
+ (testWebViewHistoryLoad):
+ (serverCallback):
+ (beforeAll):
+
+2012-08-02 Andras Becsi <andras.becsi@nokia.com>
+
+ [Qt][WK2] Click, mouse and links rely on touch mocking.
+ https://bugs.webkit.org/show_bug.cgi?id=83091
+
+ Reviewed by Simon Hausmann.
+
+ Send the incoming mouse events directly to the gesture recognizers to make
+ the WebView behave consistent with other Flickables.
+ This patch unifies the code paths for input events and makes it possible
+ to enable mouse events on the flickable web view again, thus makes the
+ mobile-version of QQuickWebView usable on desktop.
+
+ * UIProcess/API/qt/qquickwebview.cpp:
+ (QQuickWebViewPrivate::handleMouseEvent):
+ (QQuickWebViewFlickablePrivate::QQuickWebViewFlickablePrivate):
+ (QQuickWebViewFlickablePrivate::handleMouseEvent):
+ (QQuickWebView::mousePressEvent):
+ (QQuickWebView::mouseMoveEvent):
+ (QQuickWebView::mouseReleaseEvent):
+ (QQuickWebView::mouseDoubleClickEvent):
+ * UIProcess/API/qt/qquickwebview_p_p.h:
+ (QQuickWebViewPrivate):
+ (QQuickWebViewFlickablePrivate):
+ * UIProcess/qt/QtPanGestureRecognizer.cpp:
+ (WebKit::QtPanGestureRecognizer::update):
+ * UIProcess/qt/QtWebPageEventHandler.cpp:
+ (WebKit::QtWebPageEventHandler::QtWebPageEventHandler):
+ (WebKit::QtWebPageEventHandler::handleInputEvent):
+ (WebKit):
+ (WebKit::QtWebPageEventHandler::doneWithTouchEvent):
+ * UIProcess/qt/QtWebPageEventHandler.h:
+ (QtWebPageEventHandler):
+
+2012-08-01 Brady Eidson <beidson@apple.com>
+
+ Small part of "Out-of-process plug-ins should support asynchronous initialization."
+ <rdar://problem/10598594> and https://bugs.webkit.org/show_bug.cgi?id=92919
+
+ Reviewed by Anders Carlsson.
+
+ Add API-level preferences for:
+ - Is asynchronous plug-in initialization enabled.
+ - Is an artificial initialization delay (for testing purposes) enabled.
+
+ * Shared/WebPreferencesStore.h:
+ (WebKit):
+
+ * UIProcess/API/C/WKPreferences.cpp:
+ (WKPreferencesSetAsynchronousPluginInitializationEnabled):
+ (WKPreferencesGetAsynchronousPluginInitializationEnabled):
+ (WKPreferencesSetArtificialPluginInitializationDelayEnabled):
+ (WKPreferencesGetArtificialPluginInitializationDelayEnabled):
+ * UIProcess/API/C/WKPreferencesPrivate.h:
+
+ * WebProcess/WebPage/WebPage.cpp:
+ (WebKit::WebPage::WebPage):
+ (WebKit::WebPage::updatePreferences):
+ * WebProcess/WebPage/WebPage.h:
+ (WebKit::WebPage::asynchronousPluginInitializationEnabled):
+ (WebKit::WebPage::artificialPluginInitializationDelayEnabled):
+ (WebPage):
+
+2012-08-01 Jian Li <jianli@chromium.org>
+
+ Add new CSS property "-webkit-widget-region" to expose dashboard region support for other port
+ https://bugs.webkit.org/show_bug.cgi?id=90298
+
+ Reviewed by Adam Barth.
+
+ * Configurations/FeatureDefines.xcconfig: Add ENABLE_WIDGET_REGION define.
+
+2012-08-01 Jesus Sanchez-Palencia <jesus.palencia@openbossa.org>
+
+ [Qt][WK2] Race condition between first layout and viewport attributes initialization
+ https://bugs.webkit.org/show_bug.cgi?id=92902
+
+ Reviewed by Noam Rosenthal.
+
+ Initializing m_rawAttributes from QtViewportHandler to avoid calculation of random
+ scale factors on the first layout is triggered.
+
+ * UIProcess/qt/QtViewportHandler.cpp:
+ (WebKit::QtViewportHandler::QtViewportHandler):
+
+2012-08-01 Zeno Albisser <zeno@webkit.org>
+
+ [Qt]REGRESSION(r123786): It made 3 fast/animation tests fail.
+ https://bugs.webkit.org/show_bug.cgi?id=92490
+
+ Make sure that scripted animations are also serviced when
+ forceRepaint is being executed. As this is what is being used for
+ running layout tests.
+ Move servicing of scripted animations and layoutIfNeeded call
+ into a separate function syncDisplayState.
+ This function can then be called from forceRepaint as well as from
+ performScheduledLayerFlush.
+
+ Reviewed by Noam Rosenthal.
+
+ * WebProcess/WebPage/LayerTreeCoordinator/LayerTreeCoordinator.cpp:
+ (WebKit::LayerTreeCoordinator::forceRepaint):
+ (WebKit::LayerTreeCoordinator::performScheduledLayerFlush):
+ (WebKit):
+ (WebKit::LayerTreeCoordinator::syncDisplayState):
+ * WebProcess/WebPage/LayerTreeCoordinator/LayerTreeCoordinator.h:
+ (LayerTreeCoordinator):
+
+2012-08-01 Carlos Garcia Campos <cgarcia@igalia.com>
+
+ Unreviewed. Fix GTK+ build with recent version of GTK+.
+
+ Use g_threads_enter/leave instead of the wrapper macros. This
+ gives a compile warning because they are now deprecated but at
+ least it builds.
+
+ * UIProcess/API/gtk/WebKitWebView.cpp:
+ (webkitWebViewRunAsModal): Fix enter/leave order.
+ * UIProcess/gtk/WebPopupMenuProxyGtk.cpp:
+ (WebKit::WebPopupMenuProxyGtk::showPopupMenu):
+
+2012-07-31 Anders Carlsson <andersca@apple.com>
+
+ Prefer the Oracle Java plug-in over the Apple Java plug-in
+ https://bugs.webkit.org/show_bug.cgi?id=92780
+
+ Reviewed by Oliver Hunt.
+
+ * UIProcess/Plugins/mac/PluginInfoStoreMac.mm:
+ (WebKit::findPluginWithBundleIdentifier):
+ Add a new helper for finding a plug-in with the given bundle identifier.
+
+ (WebKit::checkForPreferredPlugin):
+ Helper function for making sure that an old plug-in is never loaded if a new plug-in is found, and that the old plug-in
+ is removed from the list of loaded plug-ins if the new plug-in is found.
+
+ (WebKit::PluginInfoStore::shouldUsePlugin):
+ Prefer the Oracle Java plug-in over the Apple Java plug-in.
+
+2012-07-31 Alexey Proskuryakov <ap@apple.com>
+
+ [WK2] Use an actual WebProcessProxy when decoding messages
+ https://bugs.webkit.org/show_bug.cgi?id=92788
+
+ Reviewed by Anders Carlsson.
+
+ WebContextUserMessageDecoder gets process proxy from a WebContext object, but we
+ know which process a message came from, and can just use that.
+
+ * UIProcess/WebContextUserMessageCoders.h:
+ (WebKit::WebContextUserMessageDecoder::WebContextUserMessageDecoder):
+ (WebKit::WebContextUserMessageDecoder::decode):
+ This is the focal point of this patch - decoder no longer needs to call m_context->process().
+
+ * UIProcess/WebContext.cpp:
+ (WebKit::WebContext::didReceiveMessage):
+ (WebKit::WebContext::didReceiveSyncMessage):
+ * UIProcess/WebContext.h:
+ These methods now take a WebProcessProxy pointer instead of IPC::Connection,
+ so that they can call the updated coder.
+ A number of other didReceiveMessage can be modified to take WebProcessProxy later
+ if needed (it's a richer interface than IPC::Connection), although not all messages
+ come from WebProcesses.
+
+ * UIProcess/WebConnectionToWebProcess.cpp:
+ (WebKit::WebConnectionToWebProcess::didReceiveMessage):
+ * UIProcess/WebPageProxy.cpp:
+ (WebKit::WebPageProxy::willGoToBackForwardListItem):
+ (WebKit::WebPageProxy::registerIntentServiceForFrame):
+ (WebKit::WebPageProxy::didStartProvisionalLoadForFrame):
+ (WebKit::WebPageProxy::didReceiveServerRedirectForProvisionalLoadForFrame):
+ (WebKit::WebPageProxy::didFailProvisionalLoadForFrame):
+ (WebKit::WebPageProxy::didCommitLoadForFrame):
+ (WebKit::WebPageProxy::didFinishDocumentLoadForFrame):
+ (WebKit::WebPageProxy::didFinishLoadForFrame):
+ (WebKit::WebPageProxy::didFailLoadForFrame):
+ (WebKit::WebPageProxy::didSameDocumentNavigationForFrame):
+ (WebKit::WebPageProxy::didReceiveTitleForFrame):
+ (WebKit::WebPageProxy::didFirstLayoutForFrame):
+ (WebKit::WebPageProxy::didFirstVisuallyNonEmptyLayoutForFrame):
+ (WebKit::WebPageProxy::didNewFirstVisuallyNonEmptyLayout):
+ (WebKit::WebPageProxy::didRemoveFrameFromHierarchy):
+ (WebKit::WebPageProxy::didDisplayInsecureContentForFrame):
+ (WebKit::WebPageProxy::didRunInsecureContentForFrame):
+ (WebKit::WebPageProxy::didDetectXSSForFrame):
+ (WebKit::WebPageProxy::didReceiveIntentForFrame):
+ (WebKit::WebPageProxy::decidePolicyForNavigationAction):
+ (WebKit::WebPageProxy::decidePolicyForNewWindowAction):
+ (WebKit::WebPageProxy::decidePolicyForResponse):
+ (WebKit::WebPageProxy::unableToImplementPolicy):
+ (WebKit::WebPageProxy::willSubmitForm):
+ (WebKit::WebPageProxy::mouseDidMoveOverElement):
+ (WebKit::WebPageProxy::internalShowContextMenu):
+ * UIProcess/WebProcessProxy.cpp:
+ (WebKit::WebProcessProxy::didReceiveMessage):
+ (WebKit::WebProcessProxy::didReceiveSyncMessage):
+ Updated arguments accordingly.
+
+2012-07-31 Andras Becsi <andras.becsi@nokia.com>
+
+ [WK2] Visible content rect update with null trajectory vector does not reach the backing store
+ https://bugs.webkit.org/show_bug.cgi?id=92750
+
+ Reviewed by Jocelyn Turcotte.
+
+ Make sure that notifications with a null trajectory vector reach the backing store
+ since a null vector means that all tiles around the viewport were requested.
+
+ * WebProcess/WebPage/LayerTreeCoordinator/LayerTreeCoordinator.cpp:
+ (WebKit::LayerTreeCoordinator::setVisibleContentsRect):
+
+2012-07-31 Marcelo Lira <marcelo.lira@openbossa.org>
+
+ [Qt] Input method update should also include hints
+ https://bugs.webkit.org/show_bug.cgi?id=92744
+
+ Reviewed by Simon Hausmann.
+
+ The QInputMethod is told to query for input method hints when updated.
+
+ * UIProcess/qt/QtWebPageEventHandler.cpp:
+ (WebKit::QtWebPageEventHandler::updateTextInputState):
+
+2012-07-31 Danilo Cesar Lemes de Paula <danilo.cesar@collabora.co.uk>
+
+ add Farstream flags/deps to WebKit, for WebRTC
+ https://bugs.webkit.org/show_bug.cgi?id=87524
+
+ Reviewed by Philippe Normand.
+
+ Since Farstream will be used as the backend for GTK's WebRTC, this
+ patch adds it as a dependency to the build system.
+
+ * GNUmakefile.am:
+
+2012-07-30 Huang Dongsung <luxtella@company100.net>
+
+ [Texmap] Remove the backing store after 'style.visibility' for an element sets 'hidden'.
+ https://bugs.webkit.org/show_bug.cgi?id=92492
+
+ Reviewed by Noam Rosenthal.
+
+ Texmap handles visibility:hidden in this patch, so WebGraphicsLayer
+ sends the LayerTreeCoordinatorProxyMessages with additional infomation
+ to UIProcess.
+
+ * Shared/WebLayerTreeInfo.h:
+ * UIProcess/WebLayerTreeRenderer.cpp:
+ (WebKit::WebLayerTreeRenderer::setLayerState):
+ * WebProcess/WebPage/LayerTreeCoordinator/WebGraphicsLayer.cpp:
+ (WebCore::WebGraphicsLayer::setContentsVisible):
+ (WebCore):
+ (WebCore::WebGraphicsLayer::syncLayerState):
+ * WebProcess/WebPage/LayerTreeCoordinator/WebGraphicsLayer.h:
+ (WebGraphicsLayer):
+
+2012-07-30 Sam Weinig <sam@webkit.org>
+
+ Add a proper umbrella header for the public WebKit2 API headers
+ https://bugs.webkit.org/show_bug.cgi?id=92708
+ <rdar://problem/11970825>
+
+ Reviewed by Dan Bernstein.
+
+ Create a new umbrella WebKit2.h and add the currently public (as decided by their
+ status in Xcode) Objective-C headers.
+
+ * UIProcess/API/mac/WebKit2.h: Added.
+ * WebKit2.xcodeproj/project.pbxproj:
+ While we are here, make WebKit2_C.h a private header.
+
+2012-07-30 Sam Weinig <sam@webkit.org>
+
+ Rename WebKit2.h to WebKit2_C.h
+ https://bugs.webkit.org/show_bug.cgi?id=92704
+
+ Reviewed by Dan Bernstein.
+
+ * GNUmakefile.list.am:
+ * Target.pri:
+ * UIProcess/API/C/WebKit2_C.h: Renamed from Source/WebKit2/UIProcess/API/C/WebKit2.h.
+ * UIProcess/API/gtk/WebKitBackForwardListPrivate.h:
+ * UIProcess/API/gtk/WebKitPolicyDecisionPrivate.h:
+ * UIProcess/API/gtk/WebKitPrivate.h:
+ * UIProcess/API/gtk/WebKitSettingsPrivate.h:
+ * UIProcess/API/gtk/WebKitWebViewPrivate.h:
+ * WebKit2.xcodeproj/project.pbxproj:
+ * win/WebKit2.vcproj:
+ * win/WebKit2Generated.make:
+ Update for changed header file name.
+
+2012-07-28 Sam Weinig <sam@webkit.org>
+
+ Add ability to load from a string to the ObjC WK API
+ https://bugs.webkit.org/show_bug.cgi?id=92590
+
+ Reviewed by Dan Bernstein.
+
+ This adds an often used method to the new Objective-C API and will
+ be helpful for writing API tests.
+
+ * UIProcess/API/mac/WKBrowsingContextController.h:
+ * UIProcess/API/mac/WKBrowsingContextController.mm:
+ (-[WKBrowsingContextController loadHTMLString:baseURL:]):
+ Implement via calling down to WKPageLoadHTMLString.
+
+2012-07-30 Rafael Brandao <rafael.lobo@openbossa.org>
+
+ [WK2] Kill the concept of secondary shared process
+ https://bugs.webkit.org/show_bug.cgi?id=92676
+
+ Reviewed by Alexey Proskuryakov.
+
+ Build fix after r124092.
+
+ * UIProcess/qt/QtWebContext.cpp: Build fix for Qt. In exchange of the
+ method removed, I've used WebContext::create(String()).
+
+2012-07-30 Alexey Proskuryakov <ap@apple.com>
+
+ [WK2] Kill the concept of secondary shared process
+ https://bugs.webkit.org/show_bug.cgi?id=92676
+
+ Reviewed by Sam Weinig.
+
+ * UIProcess/API/C/WKContext.cpp:
+ * UIProcess/API/C/WKContext.h:
+ * UIProcess/WebContext.cpp:
+ * UIProcess/WebContext.h:
+ Deleted shared process related code. We don't need to build the singleton into
+ the cross-platform C API, platform-specific API wrappers are perfectly capable
+ of doing that.
+
+ * UIProcess/API/efl/ewk_context.cpp: (createDefaultEwkContext):
+ * UIProcess/API/gtk/WebKitWebContext.cpp: (createDefaultWebContext):
+ Use WKContextCreate() when creating default context.
+
+2012-07-30 Claudio Saavedra <csaavedra@igalia.com>
+
+ [GTK] critical warning: gdk_window_get_cursor() called on a NULL window
+ https://bugs.webkit.org/show_bug.cgi?id=92651
+
+ Reviewed by Martin Robinson.
+
+ PageClientImpl::setCursor() might get called before the
+ window is realized, so safeguard against it.
+
+ * UIProcess/API/gtk/PageClientImpl.cpp:
+ (WebKit::PageClientImpl::setCursor): early return if the window is
+ not realized.
+
+2012-07-30 Sheriff Bot <webkit.review.bot@gmail.com>
+
+ Unreviewed, rolling out r123983.
+ http://trac.webkit.org/changeset/123983
+ https://bugs.webkit.org/show_bug.cgi?id=92663
+
+ EFL build is broken when unit tests are enabled (Requested by
+ paroga on #webkit).
+
+ * CMakeLists.txt:
+ * PlatformEfl.cmake:
+
+2012-07-30 Sheriff Bot <webkit.review.bot@gmail.com>
+
+ Unreviewed, rolling out r123966 and r123967.
+ http://trac.webkit.org/changeset/123966
+ http://trac.webkit.org/changeset/123967
+ https://bugs.webkit.org/show_bug.cgi?id=92656
+
+ This patch is causing assertion failures on the debug bot
+ (also rolling out a dependent patch) (Requested by mrobinson
+ on #webkit).
+
+ * GNUmakefile.am:
+ * GNUmakefile.list.am:
+ * UIProcess/API/gtk/WebKitPrivate.h:
+ * UIProcess/API/gtk/WebKitTextChecker.cpp: Removed.
+ * UIProcess/API/gtk/WebKitTextChecker.h: Removed.
+ * UIProcess/API/gtk/WebKitWebContext.cpp:
+ (_WebKitWebContextPrivate):
+ (createDefaultWebContext):
+ * UIProcess/API/gtk/WebKitWebContext.h:
+ * UIProcess/API/gtk/docs/webkit2gtk-sections.txt:
+ * UIProcess/API/gtk/tests/TestWebKitWebContext.cpp:
+ (beforeAll):
+
+2012-07-29 Vsevolod Vlasov <vsevik@chromium.org>
+
+ Web Inspector: Resource agent's reference to cached resources should be weak.
+ https://bugs.webkit.org/show_bug.cgi?id=92108
+
+ Reviewed by Pavel Feldman.
+
+ * win/WebKit2.def:
+ * win/WebKit2CFLite.def:
+
+2012-07-30 Sheriff Bot <webkit.review.bot@gmail.com>
+
+ Unreviewed, rolling out r124000.
+ http://trac.webkit.org/changeset/124000
+ https://bugs.webkit.org/show_bug.cgi?id=92632
+
+ seems to have broken chromium Range_InstanceSizeUnknown unit
+ test across many platforms (Requested by tomhudson on
+ #webkit).
+
+ * win/WebKit2.def:
+ * win/WebKit2CFLite.def:
+
+2012-07-27 Jocelyn Turcotte <jocelyn.turcotte@nokia.com>
+
+ [Qt] Remove accurateVisibleContentsPosition and use a FloatRect for visibleContentsRect instead
+ https://bugs.webkit.org/show_bug.cgi?id=92536
+
+ Reviewed by Noam Rosenthal.
+
+ AccurateVisibleContentsPosition carries the same information as visibleContentsRect.location() and
+ is needed for fixed layer position updates.
+ This patch instead uses a FloatRect for the visible contents rect from the web view down to the
+ LayerCoordinatorProxy, and converts it to an IntRect at this moment, before sending it to the
+ web process.
+ This also moves the check to prevent sending the same rect to the moment of the conversion
+ in LayerTreeCoordinatorProxy to fix a bug where the fixed layer deltas wouldn't be updated
+ unless the integer part of position components changed.
+
+ * UIProcess/API/qt/qquickwebview.cpp:
+ (QQuickWebViewLegacyPrivate::updateViewportSize):
+ * UIProcess/DrawingAreaProxy.h:
+ (WebKit::DrawingAreaProxy::setVisibleContentsRect):
+ * UIProcess/DrawingAreaProxyImpl.cpp:
+ (WebKit::DrawingAreaProxyImpl::setVisibleContentsRect):
+ * UIProcess/DrawingAreaProxyImpl.h:
+ (DrawingAreaProxyImpl):
+ * UIProcess/LayerTreeCoordinatorProxy.cpp:
+ (WebKit::LayerTreeCoordinatorProxy::LayerTreeCoordinatorProxy):
+ (WebKit::LayerTreeCoordinatorProxy::setVisibleContentsRect):
+ * UIProcess/LayerTreeCoordinatorProxy.h:
+ (LayerTreeCoordinatorProxy):
+ * UIProcess/WebLayerTreeRenderer.cpp:
+ (WebKit::WebLayerTreeRenderer::WebLayerTreeRenderer):
+ (WebKit::WebLayerTreeRenderer::setVisibleContentsRect):
+ (WebKit::WebLayerTreeRenderer::adjustPositionForFixedLayers):
+ * UIProcess/WebLayerTreeRenderer.h:
+ (WebLayerTreeRenderer):
+ * UIProcess/qt/QtViewportHandler.cpp:
+ (WebKit::QtViewportHandler::visibleContentsRect):
+ (WebKit::QtViewportHandler::informVisibleContentChange):
+ * UIProcess/qt/QtViewportHandler.h:
+ (QtViewportHandler):
+
+2012-07-27 Jocelyn Turcotte <jocelyn.turcotte@nokia.com>
+
+ [Qt] Fix issues remaining with fixed positioned layers
+ https://bugs.webkit.org/show_bug.cgi?id=92528
+
+ Reviewed by Noam Rosenthal.
+
+ This partially fixes jittering of fixed layers when zoomed in and the
+ blurriness of rendered tiles of the non-composited contents layer.
+
+ * UIProcess/WebLayerTreeRenderer.cpp:
+ (WebKit::boundedScrollPosition):
+ (WebKit::WebLayerTreeRenderer::paintToCurrentGLContext):
+ Remove the adjustment on the root layer. This cancels setPixelAligned and causes the blurriness.
+ (WebKit::WebLayerTreeRenderer::adjustPositionForFixedLayers):
+ Use m_accurateVisibleContentsPosition to calculate the delta.
+ (WebKit::WebLayerTreeRenderer::didChangeScrollPosition):
+
+2012-07-29 Vsevolod Vlasov <vsevik@chromium.org>
+
+ Web Inspector: Resource agent's reference to cached resources should be weak.
+ https://bugs.webkit.org/show_bug.cgi?id=92108
+
+ Reviewed by Pavel Feldman.
+
+ * win/WebKit2.def:
+ * win/WebKit2CFLite.def:
+
+2012-07-29 YoungTaeck Song <youngtaeck.song@samsung.com>
+
+ [WK2][EFL] TILED_BACKING_STORE support on Efl WebKit2
+ https://bugs.webkit.org/show_bug.cgi?id=91582
+
+ Reviewed by Noam Rosenthal.
+
+ This patch is a subset of Efl's UI_SIDE_COMPOSITING implementation.
+ Add a dummy function for fixing building error when enabling TILED_BACKING_STORE.
+
+ * UIProcess/API/efl/PageClientImpl.cpp:
+ (WebKit):
+ (WebKit::PageClientImpl::pageDidRequestScroll):
+ * UIProcess/API/efl/PageClientImpl.h:
+ (PageClientImpl):
+ * WebProcess/WebCoreSupport/WebChromeClient.cpp:
+ (WebKit::WebChromeClient::contentsSizeChanged):
+
+2012-07-29 Patrick Gansterer <paroga@webkit.org>
+
+ [CMake] Use WEBKIT_CREATE_FORWARDING_HEADERS to generate WK2 forwarding headers
+ https://bugs.webkit.org/show_bug.cgi?id=83579
+
+ Reviewed by Daniel Bates.
+
+ Using a list of directories in combination with the WEBKIT_CREATE_FORWARDING_HEADERS
+ macro allows us to share the common generation of forwarding headers across ports.
+
+ * CMakeLists.txt:
+ * PlatformEfl.cmake:
+
+2012-07-28 Sam Weinig <sam@webkit.org>
+
+ Stop copying unnecessary files in WebKit2 build
+ https://bugs.webkit.org/show_bug.cgi?id=92587
+
+ Reviewed by Dan Bernstein.
+
+ * WebKit2.xcodeproj/project.pbxproj:
+ We were accidentally copying ColorSpaceData.h and EventDispatcher.messages.in into the
+ build products. Stop this.
+
+2012-07-28 Ryuan Choi <ryuan.choi@samsung.com>
+
+ [WK2][EFL] Add ewk_view_scale_{get|set} to EwkView.
+ https://bugs.webkit.org/show_bug.cgi?id=92446
+
+ Reviewed by Kenneth Rohde Christiansen.
+
+ Add methods to Ewk_View to get or set the scale factor of page.
+
+ * UIProcess/API/efl/ewk_view.cpp:
+ (ewk_view_scale_set):
+ (ewk_view_scale_get):
+ * UIProcess/API/efl/ewk_view.h:
+
+2012-07-28 Mario Sanchez Prada <msanchez@igalia.com>
+
+ [WK2][GTK] Implement a new spell checker API for WebKit2GTK+
+ https://bugs.webkit.org/show_bug.cgi?id=90268
+
+ Reviewed by Martin Robinson.
+
+ Add a simple spell checking API to WK2, allowing to enable/disable
+ this feature and to define a list of languages associated to it.
+
+ * GNUmakefile.am: Add flags to handle the SPELLCHECK feature.
+ * GNUmakefile.list.am: Added new files
+
+ Added new internal class that will act both as the implementation
+ of TextCheckerClient and as the object WebKitWebContext will
+ depend on to implement the newly added API.
+
+ * UIProcess/API/gtk/WebKitTextChecker.cpp: Added.
+ (toTextChecker):
+ (continuousSpellCheckingEnabledCallback):
+ (setContinuousSpellCheckingEnabledCallback):
+ (checkSpellingOfStringCallback):
+ (guessesForWordCallback):
+ (learnWordCallback):
+ (ignoreWordCallback):
+ (WebKitTextChecker::~WebKitTextChecker):
+ (WebKitTextChecker::create):
+ (WebKitTextChecker::WebKitTextChecker):
+ (WebKitTextChecker::checkSpellingOfString):
+ (WebKitTextChecker::getGuessesForWord):
+ (WebKitTextChecker::learnWord):
+ (WebKitTextChecker::ignoreWord):
+ (WebKitTextChecker::setSpellCheckingEnabled):
+ (WebKitTextChecker::setSpellCheckingLanguages):
+ * UIProcess/API/gtk/WebKitTextChecker.h: Added.
+ (WebKitTextChecker):
+ (WebKitTextChecker::isSpellCheckingEnabled):
+ (WebKitTextChecker::getSpellCheckingLanguages):
+
+ Added WKTextChecker to WebKitPrivate.h, needed in WebKitTextChecker.
+
+ * UIProcess/API/gtk/WebKitPrivate.h:
+
+ Add new API to WebKitWebContext to allow enabling/disabling this
+ spell checking feature, and to set/get the list of languages used
+ to decide which dictionaries will be consulted.
+
+ * UIProcess/API/gtk/WebKitWebContext.cpp:
+ (_WebKitWebContextPrivate):
+ (createDefaultWebContext):
+ (webkit_web_context_get_spell_checking_enabled): New API.
+ (webkit_web_context_set_spell_checking_enabled): Ditto.
+ (webkit_web_context_get_spell_checking_languages): Ditto.
+ (webkit_web_context_set_spell_checking_languages): Ditto.
+ * UIProcess/API/gtk/WebKitWebContext.h:
+
+ New tests for checking the new API added to WebKitWebContext.
+
+ * UIProcess/API/gtk/tests/TestWebKitWebContext.cpp:
+ (testWebContextSpellChecker):
+ (beforeAll):
+
+ Update documentation with new sections and symbols.
+
+ * UIProcess/API/gtk/docs/webkit2gtk-docs.sgml:
+ * UIProcess/API/gtk/docs/webkit2gtk-sections.txt:
+
+2012-07-27 Christophe Dumez <christophe.dumez@intel.com>
+
+ [EFL][WK2] Assertion hit in ewk_cookie_manager.cpp
+ https://bugs.webkit.org/show_bug.cgi?id=92544
+
+ Reviewed by Kenneth Rohde Christiansen.
+
+ Removed wrong assertion in ewk_cookie_manager.cpp
+ and replace it by an if check. The assertion was
+ sometimes hit by our unit tests.
+
+ * UIProcess/API/efl/ewk_cookie_manager.cpp:
+ (cookiesDidChange):
+
+2012-07-27 Anders Carlsson <andersca@apple.com>
+
+ Don't use an NSUserDefault for disabling the web process sandbox
+ https://bugs.webkit.org/show_bug.cgi?id=92542
+ <rdar://problem/11976060>
+
+ Reviewed by Mark Rowe.
+
+ The user default was really helpful during WebKit2 bringup, but we no longer need to pay the IPC cost of initializing NSUserDefaults at startup,
+ so get rid of the preference and use a good old #ifdef instead.
+
+ * WebProcess/mac/WebProcessMac.mm:
+ (WebKit::initializeSandbox):
+
+2012-07-27 Christophe Dumez <christophe.dumez@intel.com>
+
+ [WK2][WTR] LayoutTestController.deliverWebIntent() needs to be implemented
+ https://bugs.webkit.org/show_bug.cgi?id=92228
+
+ Reviewed by Anders Carlsson.
+
+ Add C API to create a WKIntentData and to deliver
+ it to a frame. This is needed by WebKitTestRunner
+ to implement LayoutTestController.deliverWebIntent().
+
+ * UIProcess/API/C/WKIntentData.cpp:
+ (WKIntentDataCreate):
+ * UIProcess/API/C/WKIntentData.h:
+ * WebProcess/InjectedBundle/API/c/WKBundlePage.cpp:
+ (WKBundlePageDeliverIntentToFrame):
+ * WebProcess/InjectedBundle/API/c/WKBundlePage.h:
+ * WebProcess/WebPage/WebPage.h:
+ (WebPage): Make deliverIntentToFrame() public so that it can
+ be used by WKBundlePage.
+
+2012-07-27 Anders Carlsson <andersca@apple.com>
+
+ Show the unavailable plug-in indicator for Java applets as well
+ https://bugs.webkit.org/show_bug.cgi?id=92521
+
+ Reviewed by Sam Weinig.
+
+ * WebProcess/WebCoreSupport/WebChromeClient.cpp:
+ (WebKit::WebChromeClient::unavailablePluginButtonClicked):
+ This can now be called on applet elements as well.
+
+ * WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
+ (WebKit::WebFrameLoaderClient::createJavaAppletWidget):
+ Get the MIME type from the applet element.
+
+2012-07-27 Gyuyoung Kim <gyuyoung.kim@samsung.com>
+
+ [WK2] Fix build warning in WebEventConversion.cpp
+ https://bugs.webkit.org/show_bug.cgi?id=92517
+
+ Reviewed by Darin Adler.
+
+ There is a build warning related to comparison between signed and unsigned integer expressions.
+
+ * Shared/WebEventConversion.cpp:
+ (WebKit::WebKit2PlatformTouchEvent::WebKit2PlatformTouchEvent):
+
+2012-07-27 Gyuyoung Kim <gyuyoung.kim@samsung.com>
+
+ [WK2] Fix build warning in WebEventConversion.cpp
+ https://bugs.webkit.org/show_bug.cgi?id=92517
+
+ Reviewed by Darin Adler.
+
+ There is a build warning related to comparison between signed and unsigned integer expressions.
+
+ * Shared/WebEventConversion.cpp:
+ (WebKit::WebKit2PlatformTouchEvent::WebKit2PlatformTouchEvent):
+
+2012-07-27 Christophe Dumez <christophe.dumez@intel.com>
+
+ [EFL][WK2] Add download client for Ewk_Context
+ https://bugs.webkit.org/show_bug.cgi?id=91345
+
+ Reviewed by Kenneth Rohde Christiansen.
+
+ Add download client for Ewk_Context so that
+ information about downloads can be reported
+ to the client application via Ewk_View signals.
+
+ The client application needs to listen for
+ "download,request" signal on the view and set
+ the download path for the download in the
+ callback in order to accept it. If the signal
+ is ignored or if the download path is not set
+ the download will fail.
+
+ A new Ewk_Download_Job type is introduced to provide
+ information relative to a download to the client
+ and to allow the client to interact with it (e.g.
+ set its download path, cancel it, ...).
+
+ * PlatformEfl.cmake:
+ * UIProcess/API/efl/EWebKit2.h:
+ * UIProcess/API/efl/PageClientImpl.cpp:
+ (WebKit::PageClientImpl::handleDownloadRequest):
+ (WebKit):
+ * UIProcess/API/efl/PageClientImpl.h:
+ (PageClientImpl):
+ * UIProcess/API/efl/ewk_context.cpp:
+ (_Ewk_Context):
+ (_Ewk_Context::_Ewk_Context):
+ (_Ewk_Context::~_Ewk_Context):
+ (ewk_context_download_job_add):
+ (ewk_context_download_job_get):
+ (ewk_context_download_job_remove):
+ * UIProcess/API/efl/ewk_context_download_client.cpp: Added.
+ (toEwkContext):
+ (decideDestinationWithSuggestedFilename):
+ (didReceiveResponse):
+ (didCreateDestination):
+ (didReceiveData):
+ (didFail):
+ (didCancel):
+ (didFinish):
+ (ewk_context_download_client_attach):
+ * UIProcess/API/efl/ewk_context_download_client_private.h: Added.
+ * UIProcess/API/efl/ewk_context_private.h:
+ * UIProcess/API/efl/ewk_download_job.cpp: Added.
+ (_Ewk_Download_Job):
+ (_Ewk_Download_Job::_Ewk_Download_Job):
+ (_Ewk_Download_Job::~_Ewk_Download_Job):
+ (ewk_download_job_ref):
+ (ewk_download_job_unref):
+ (ewk_download_job_id_get):
+ (ewk_download_job_view_get):
+ (ewk_download_job_state_get):
+ (ewk_download_job_request_get):
+ (ewk_download_job_response_get):
+ (ewk_download_job_destination_get):
+ (ewk_download_job_destination_set):
+ (ewk_download_job_suggested_filename_get):
+ (ewk_download_job_cancel):
+ (ewk_download_job_estimated_progress_get):
+ (ewk_download_job_elapsed_time_get):
+ (ewk_download_job_response_set):
+ (ewk_download_job_suggested_filename_set):
+ (ewk_download_job_received_data):
+ (ewk_download_job_state_set):
+ (ewk_download_job_new):
+ * UIProcess/API/efl/ewk_download_job.h: Added.
+ * UIProcess/API/efl/ewk_download_job_private.h: Added.
+ (WebKit):
+ * UIProcess/API/efl/ewk_url_response.cpp:
+ (ewk_url_response_content_length_get): Add a function to
+ retrieve the content length of a URL response.
+ * UIProcess/API/efl/ewk_url_response.h:
+ * UIProcess/API/efl/ewk_view.cpp:
+ (ewk_view_download_job_cancelled):
+ (ewk_view_download_job_requested):
+ (ewk_view_download_job_failed):
+ (ewk_view_download_job_finished):
+ * UIProcess/API/efl/ewk_view.h:
+ * UIProcess/API/efl/ewk_view_private.h:
+ * UIProcess/API/efl/tests/resources/test.pdf: Added.
+ * UIProcess/API/efl/tests/test_ewk2_download_job.cpp: Added. This tests
+ the download functionality.
+ (DownloadTestData):
+ (fileExists):
+ (serverCallback):
+ (on_download_requested):
+ (on_download_cancelled):
+ (on_download_failed):
+ (on_download_finished):
+ (TEST_F):
+ * UIProcess/PageClient.h:
+ (PageClient):
+ * UIProcess/WebPageProxy.cpp:
+ (WebKit::WebPageProxy::receivedPolicyDecision):
+ (WebKit):
+ (WebKit::WebPageProxy::handleDownloadRequest):
+ * UIProcess/WebPageProxy.h:
+ (WebPageProxy):
+
+2012-07-27 YoungTaeck Song <youngtaeck.song@samsung.com>
+
+ [WK2][EFL] Add an ACCELERATED_COMPOSITING implementation for Efl WebKit2
+ https://bugs.webkit.org/show_bug.cgi?id=91581
+
+ Reviewed by Noam Rosenthal.
+
+ This patch is a subset of Efl's UI_SIDE_COMPOSITING implementation.
+ When enter accelerated compositing mode, create evas_gl, evas_gl_context, and evas_gl_surface.
+
+ * PlatformEfl.cmake:
+ * Shared/LayerTreeContext.h:
+ (LayerTreeContext):
+ * UIProcess/API/efl/PageClientImpl.cpp:
+ (WebKit::PageClientImpl::viewSize):
+ (WebKit::PageClientImpl::enterAcceleratedCompositingMode):
+ (WebKit::PageClientImpl::exitAcceleratedCompositingMode):
+ * UIProcess/API/efl/ewk_view.cpp:
+ (_Ewk_View_Private_Data):
+ (_Ewk_View_Private_Data::_Ewk_View_Private_Data):
+ (ewk_view_size_get):
+ (ewk_view_create_gl_surface):
+ (ewk_view_enter_accelerated_compositing_mode):
+ (ewk_view_exit_accelerated_compositing_mode):
+ (_ewk_view_smart_calculate):
+ * UIProcess/API/efl/ewk_view_private.h:
+
+2012-07-27 Christophe Dumez <christophe.dumez@intel.com>
+
+ [EFL][WK2] Add API to Ewk_Cookie_Manager to watch for cookie changes
+ https://bugs.webkit.org/show_bug.cgi?id=92484
+
+ Reviewed by Kenneth Rohde Christiansen.
+
+ Add API tp Ewk_Cookie_Manager so that the client can watch
+ for cookie changes.
+
+ * UIProcess/API/efl/ewk_cookie_manager.cpp:
+ * UIProcess/API/efl/ewk_cookie_manager.h:
+ * UIProcess/API/efl/tests/test_ewk2_cookie_manager.cpp: Add unit tests
+ for cookie changes watching.
+
+2012-07-27 Christophe Dumez <christophe.dumez@intel.com>
+
+ [EFL][WK2] Stop using C API to interact with the page in Ewk_View
+ https://bugs.webkit.org/show_bug.cgi?id=92463
+
+ Reviewed by Simon Hausmann.
+
+ Stop using C API to interact with the PageProxy in Ewk_View
+ and use the PageProxy object directly. This avoids useless
+ converting to WK type using toAPI() all the time.
+
+ * UIProcess/API/efl/ewk_view.cpp:
+ (ewk_view_base_add):
+ (ewk_view_uri_update):
+ (ewk_view_uri_set):
+ (ewk_view_reload):
+ (ewk_view_reload_bypass_cache):
+ (ewk_view_stop):
+ (ewk_view_load_progress_get):
+ (ewk_view_device_pixel_ratio_set):
+ (ewk_view_theme_get):
+ (ewk_view_cursor_set):
+ (ewk_view_back):
+ (ewk_view_forward):
+ (ewk_view_intent_deliver):
+ (ewk_view_back_possible):
+ (ewk_view_forward_possible):
+ (ewk_view_setting_encoding_custom_get):
+ (ewk_view_setting_encoding_custom_set):
+
+2012-07-27 Dominik Röttsches <dominik.rottsches@intel.com>
+
+ [Cairo] Add complex font drawing using HarfbuzzNG
+ https://bugs.webkit.org/show_bug.cgi?id=91864
+
+ Reviewed by Simon Hausmann and Martin Robinson.
+
+ Adding includes for harfbuzz folders.
+
+ * CMakeLists.txt:
+
+2012-07-27 Christophe Dumez <christophe.dumez@intel.com>
+
+ [EFL][WK2] Add more Ewk_View unit tests
+ https://bugs.webkit.org/show_bug.cgi?id=92407
+
+ Reviewed by Kenneth Rohde Christiansen.
+
+ Add more unit tests for WebKit2 Ewk_View API.
+ In particular, navigation, HTML loading and
+ device pixel ratio functions are now tested.
+
+ * UIProcess/API/efl/tests/UnitTestUtils/EWK2UnitTestBase.cpp:
+ (EWK2UnitTest::EWK2UnitTestBase::SetUp): Call ewk_init() instead
+ of duplicating initialization code.
+ (EWK2UnitTest::EWK2UnitTestBase::TearDown): call ewk_shutdown().
+ (TitleChangedData):
+ (EWK2UnitTest):
+ (EWK2UnitTest::onTitleChanged):
+ (EWK2UnitTest::EWK2UnitTestBase::waitUntilTitleChangedTo): Add convenience
+ method to wait until the view main frame title changes to a given value.
+ * UIProcess/API/efl/tests/UnitTestUtils/EWK2UnitTestBase.h:
+ (EWK2UnitTestBase):
+ * UIProcess/API/efl/tests/test_ewk2_view.cpp:
+ (TEST_F):
+ (serverCallbackNavigation):
+
+2012-07-27 Mikhail Pozdnyakov <mikhail.pozdnyakov@intel.com>
+
+ [EFL][WK2] Keyboard events miss key location data.
+ https://bugs.webkit.org/show_bug.cgi?id=92235
+
+ Reviewed by Simon Hausmann.
+
+ EFL WK2 did not initialize WebKeyboardEvent::m_isKeypad field.
+ This caused failure of fast/events/keydown-numpad-keys.html test.
+
+ * Shared/efl/WebEventFactory.cpp: WebKeyboardEvent::m_isKeypad is initialized.
+ (WebKit::WebEventFactory::createWebKeyboardEvent):
+
+2012-07-27 Gyuyoung Kim <gyuyoung.kim@samsung.com>
+
+ [EFL] Fix wrong return value in EWK_VIEW_XXX macro.
+ https://bugs.webkit.org/show_bug.cgi?id=92466
+
+ Reviewed by Simon Hausmann.
+
+ There are wrong return values in EWK_VIEW_XXX macros. The wrong return values
+ should be fixed. In addition, API description is also modified according to returned
+ value change.
+
+ * UIProcess/API/efl/ewk_view.cpp:
+ (ewk_view_uri_set):
+ (ewk_view_load_progress_get):
+ (ewk_view_device_pixel_ratio_get):
+ * UIProcess/API/efl/ewk_view.h:
+
+2012-07-27 Christophe Dumez <christophe.dumez@intel.com>
+
+ [EFL][WK2] Add unit tests for Ewk_View form client
+ https://bugs.webkit.org/show_bug.cgi?id=92468
+
+ Reviewed by Simon Hausmann.
+
+ Add unit test for form client functionality in
+ Ewk_View.
+
+ * UIProcess/API/efl/tests/test_ewk2_view.cpp:
+ (onFormAboutToBeSubmitted):
+ (TEST_F):
+
+2012-07-26 Zeno Albisser <zeno@webkit.org>
+
+ Unreviewed Qt buildfix after r123786.
+
+ Qt-minimal builds with ENABLE_REQUEST_ANIMATION_FRAME=0.
+ Therefore adding #ifdefs to allow for that configuration.
+
+ * WebProcess/WebPage/LayerTreeCoordinator/LayerTreeCoordinator.cpp:
+ (WebKit):
+ * WebProcess/WebPage/LayerTreeCoordinator/LayerTreeCoordinator.h:
+ (LayerTreeCoordinator):
+
+2012-07-26 Zeno Albisser <zeno@webkit.org>
+
+ [Qt] requestAnimationFrame should only trigger when a new frame can be displayed.
+ https://bugs.webkit.org/show_bug.cgi?id=88638
+
+ Disable REQUEST_ANIMATION_FRAME_TIMER for the Qt port and tie
+ the servicing of scripted animations to layer syncing for WK2.
+ For WK1 we rely on the RefreshAnimation that is based on QAbstractAnimation.
+
+ Reviewed by Jocelyn Turcotte.
+
+ * WebProcess/WebCoreSupport/WebChromeClient.cpp:
+ (WebKit):
+ (WebKit::WebChromeClient::scheduleAnimation):
+ * WebProcess/WebCoreSupport/WebChromeClient.h:
+ (WebChromeClient):
+ * WebProcess/WebPage/LayerTreeCoordinator/LayerTreeCoordinator.cpp:
+ (WebKit::LayerTreeCoordinator::performScheduledLayerFlush):
+ (WebKit::LayerTreeCoordinator::scheduleAnimation):
+ (WebKit):
+ * WebProcess/WebPage/LayerTreeCoordinator/LayerTreeCoordinator.h:
+ (LayerTreeCoordinator):
+ * WebProcess/WebPage/LayerTreeHost.h:
+ (LayerTreeHost):
+
+2012-07-26 Jer Noble <jer.noble@apple.com>
+
+ Add a ChromeClient method to send diagnostic logging messages from WebCore to the client.
+ https://bugs.webkit.org/show_bug.cgi?id=92340
+
+ Reviewed by Anders Carlsson.
+
+ Pipe the ChromeClient logDiagnosticMessage() function through WebKit2 to a new bundle class
+ InjectedBundlePageDiagnosticLoggingClient, to be implemented by the client.
+
+ * WebProcess/InjectedBundle/API/c/WKBundlePage.cpp:
+ (WKBundlePageSetDiagnosticLoggingClient): Added.
+ * WebProcess/InjectedBundle/API/c/WKBundlePage.h:
+ * WebProcess/InjectedBundle/InjectedBundlePageDiagnosticLoggingClient.cpp: Added.
+ (WebKit::InjectedBundlePageDiagnosticLoggingClient::logDiagnosticMessage):
+ * WebProcess/InjectedBundle/InjectedBundlePageDiagnosticLoggingClient.h: Added.
+ (InjectedBundlePageDiagnosticLoggingClient):
+ * WebProcess/WebCoreSupport/WebChromeClient.cpp:
+ (WebKit::WebChromeClient::logDiagnosticMessage):
+ * WebProcess/WebCoreSupport/WebChromeClient.h:
+ * WebProcess/WebPage/WebPage.cpp:
+ (WebKit::WebPage::initializeInjectedBundleDiagnosticLoggingClient):
+ * WebProcess/WebPage/WebPage.h:
+ (WebKit::WebPage::injectedBundleDiagnosticLoggingClient):
+
+ Add a convenience class to retrieve the diagnostic message keys:
+ * WebProcess/InjectedBundle/InjectedBundlePageDiagnosticLoggingClient.cpp: Added.
+ (WebKit::InjectedBundlePageDiagnosticLoggingClient::logDiagnosticMessage):
+ * WebProcess/InjectedBundle/InjectedBundlePageDiagnosticLoggingClient.h: Added.
+ (InjectedBundlePageDiagnosticLoggingClient):
+
+ Add the InjectedBundlePageDiagnosticLoggingClient.cpp,h files.
+ * CMakeLists.txt:
+ * GNUmakefile.list.am:
+ * Target.pri:
+ * win/WebKit2.vcproj:
+ * WebKit2.xcodeproj/project.pbxproj:
+
+2012-07-25 Jer Noble <jer.noble@apple.com>
+
+ Add setting to enable and disable diagnostic logging.
+ https://bugs.webkit.org/show_bug.cgi?id=92337
+
+ Reviewed by Anders Carlsson.
+
+ Add a WebKit2 WKPreferences API to set set the WebCore diagnosticLoggingEnabled setting.
+
+ * Shared/WebPreferencesStore.h:
+ * UIProcess/API/C/WKPreferences.cpp:
+ (WKPreferencesSetDiagnosticLoggingEnabled):
+ (WKPreferencesGetDiagnosticLoggingEnabled):
+ * UIProcess/API/C/WKPreferencesPrivate.h:
+ * WebProcess/WebPage/WebPage.cpp:
+ (WebKit::WebPage::updatePreferences): Ensure this preference is propagated to Settings
+ whenever the preferences change.
+
+2012-07-26 Thiago Marcos P. Santos <thiago.santos@intel.com>
+
+ [EFL][WK2] Regression(r123731): Linking errors due to efreet functions
+ https://bugs.webkit.org/show_bug.cgi?id=92378
+
+ Unreviewed build fix.
+
+ The library list created by PlatformEfl.cmake was being erased by a
+ SET called after including the platform specific file. Luckily the
+ dependencies were fulfilled by other targets until efreet was add.
+
+ * CMakeLists.txt:
+
+2012-07-26 Christophe Dumez <christophe.dumez@intel.com>
+
+ [EFL][WK2] Compilation warning in EWK2UnitTestServer.cpp
+ https://bugs.webkit.org/show_bug.cgi?id=92387
+
+ Reviewed by Kenneth Rohde Christiansen.
+
+ Fix compilation warning in EWK2UnitTestServer.cpp.
+
+ * UIProcess/API/efl/tests/UnitTestUtils/EWK2UnitTestServer.cpp:
+ (EWK2UnitTestServer::EWK2UnitTestServer):
+
+2012-07-26 Christophe Dumez <christophe.dumez@intel.com>
+
+ [EFL][WK2] Implement Network Information provider
+ https://bugs.webkit.org/show_bug.cgi?id=92343
+
+ Reviewed by Kenneth Rohde Christiansen.
+
+ Add Network Information provider for WebKit2 EFL
+ by using NetworkInfoProviderEfl class from
+ WebCore.
+
+ * CMakeLists.txt:
+ * PlatformEfl.cmake:
+ * UIProcess/API/efl/NetworkInfoProvider.cpp: Added.
+ (toNetworkInfoProvider):
+ (startUpdatingCallback):
+ (stopUpdatingCallback):
+ (getBandwidthCallback):
+ (isMeteredCallback):
+ (NetworkInfoProvider::create):
+ (NetworkInfoProvider::NetworkInfoProvider):
+ (NetworkInfoProvider::~NetworkInfoProvider):
+ (NetworkInfoProvider::bandwidth):
+ (NetworkInfoProvider::metered):
+ (NetworkInfoProvider::startUpdating):
+ (NetworkInfoProvider::stopUpdating):
+ * UIProcess/API/efl/NetworkInfoProvider.h: Added.
+ (NetworkInfoProvider):
+
+2012-07-26 Christophe Dumez <christophe.dumez@intel.com>
+
+ [EFL][WK2] Compilation warning in EWK2UnitTestServer.cpp
+ https://bugs.webkit.org/show_bug.cgi?id=92387
+
+ Reviewed by Kenneth Rohde Christiansen.
+
+ Fix compilation warning in EWK2UnitTestServer.cpp.
+
+ * UIProcess/API/efl/tests/UnitTestUtils/EWK2UnitTestServer.cpp:
+ (EWK2UnitTestServer::EWK2UnitTestServer):
+
+2012-07-26 Thiago Marcos P. Santos <thiago.santos@intel.com>
+
+ [EFL][WK2] Regression(r123731): Linking errors due to efreet functions
+ https://bugs.webkit.org/show_bug.cgi?id=92378
+
+ Unreviewed build fix.
+
+ The library list created by PlatformEfl.cmake was being erased by a
+ SET called after including the platform specific file. Luckily the
+ dependencies were fulfilled by other targets until efreet was add.
+
+ * CMakeLists.txt:
+
+2012-07-26 Christophe Dumez <christophe.dumez@intel.com>
+
+ [EFL][WK2] Compilation warning in EWK2UnitTestServer.cpp
+ https://bugs.webkit.org/show_bug.cgi?id=92387
+
+ Reviewed by Kenneth Rohde Christiansen.
+
+ Fix compilation warning in EWK2UnitTestServer.cpp.
+
+ * UIProcess/API/efl/tests/UnitTestUtils/EWK2UnitTestServer.cpp:
+ (EWK2UnitTestServer::EWK2UnitTestServer):
+
+2012-07-26 Christophe Dumez <christophe.dumez@intel.com>
+
+ [EFL][WK2] Implement Network Information provider
+ https://bugs.webkit.org/show_bug.cgi?id=92343
+
+ Reviewed by Kenneth Rohde Christiansen.
+
+ Add Network Information provider for WebKit2 EFL
+ by using NetworkInfoProviderEfl class from
+ WebCore.
+
+ * CMakeLists.txt:
+ * PlatformEfl.cmake:
+ * UIProcess/API/efl/NetworkInfoProvider.cpp: Added.
+ (toNetworkInfoProvider):
+ (startUpdatingCallback):
+ (stopUpdatingCallback):
+ (getBandwidthCallback):
+ (isMeteredCallback):
+ (NetworkInfoProvider::create):
+ (NetworkInfoProvider::NetworkInfoProvider):
+ (NetworkInfoProvider::~NetworkInfoProvider):
+ (NetworkInfoProvider::bandwidth):
+ (NetworkInfoProvider::metered):
+ (NetworkInfoProvider::startUpdating):
+ (NetworkInfoProvider::stopUpdating):
+ * UIProcess/API/efl/NetworkInfoProvider.h: Added.
+ (NetworkInfoProvider):
+
+2012-07-26 Christophe Dumez <christophe.dumez@intel.com>
+
+ [EFL][WK2] Compilation warning in EWK2UnitTestServer.cpp
+ https://bugs.webkit.org/show_bug.cgi?id=92387
+
+ Reviewed by Kenneth Rohde Christiansen.
+
+ Fix compilation warning in EWK2UnitTestServer.cpp.
+
+ * UIProcess/API/efl/tests/UnitTestUtils/EWK2UnitTestServer.cpp:
+ (EWK2UnitTestServer::EWK2UnitTestServer):
+
+2012-07-26 Christophe Dumez <christophe.dumez@intel.com>
+
+ [EFL][WK2] Add unit tests for Ewk_Context
+ https://bugs.webkit.org/show_bug.cgi?id=92005
+
+ Reviewed by Antonio Gomes.
+
+ Add unit tests for WebKit2 Ewk_Context.
+
+ * PlatformEfl.cmake:
+ * UIProcess/API/efl/ewk_url_scheme_request.cpp:
+ (ewk_url_scheme_request_finish):
+ * UIProcess/API/efl/ewk_url_scheme_request.h: Mark content_data
+ argument as const.
+ * UIProcess/API/efl/tests/test_ewk2_context.cpp: Added.
+ (TEST_F):
+ (schemeRequestCallback):
+
+2012-07-26 Christophe Dumez <christophe.dumez@intel.com>
+
+ [EFL][WK2] Add form client for Ewk_View
+ https://bugs.webkit.org/show_bug.cgi?id=92358
+
+ Reviewed by Kenneth Rohde Christiansen.
+
+ Implement a form client for EFL port in order to
+ send a "form,request,new" signal on the Ewk_View
+ whenever a form will be submitted.
+
+ The Ewk_Form_Submission_Request type is
+ introduced to provide the client with information
+ about the form (e.g. text fields contained in the
+ form) and to submit it.
+
+ This is typically used to store login information
+ that can be used later to pre-fill the form.
+
+ * PlatformEfl.cmake:
+ * UIProcess/API/efl/EWebKit2.h:
+ * UIProcess/API/efl/ewk_form_submission_request.cpp: Added.
+ (_Ewk_Form_Submission_Request):
+ (_Ewk_Form_Submission_Request::_Ewk_Form_Submission_Request):
+ (_Ewk_Form_Submission_Request::~_Ewk_Form_Submission_Request):
+ (ewk_form_submission_request_ref):
+ (ewk_form_submission_request_unref):
+ (ewk_form_submission_request_field_names_get):
+ (ewk_form_submission_request_field_value_get):
+ (ewk_form_submission_request_submit):
+ (ewk_form_submission_request_new):
+ * UIProcess/API/efl/ewk_form_submission_request.h: Added.
+ * UIProcess/API/efl/ewk_form_submission_request_private.h: Added.
+ * UIProcess/API/efl/ewk_view.cpp:
+ (ewk_view_base_add):
+ (ewk_view_form_submission_request_new):
+ * UIProcess/API/efl/ewk_view.h:
+ * UIProcess/API/efl/ewk_view_form_client.cpp: Added.
+ (willSubmitForm):
+ (ewk_view_form_client_attach):
+ * UIProcess/API/efl/ewk_view_form_client_private.h: Added.
+ * UIProcess/API/efl/ewk_view_private.h:
+
+2012-07-26 Mikhail Pozdnyakov <mikhail.pozdnyakov@intel.com>
+
+ [WK2] WebPage::handleEditingKeyboardEvent does not check whether the node allows editing.
+ https://bugs.webkit.org/show_bug.cgi?id=92364
+
+ Reviewed by Kenneth Rohde Christiansen.
+
+ Added a check whether the input node allows editing. If editing is not allowed
+ text input event will not be emitted.
+
+ * WebProcess/WebPage/WebPage.cpp:
+ (WebKit::WebPage::handleEditingKeyboardEvent):
+
+2012-07-26 Zoltan Nyul <zoltan.nyul@intel.com>
+
+ [EFL] EFL port should use XDG paths
+ https://bugs.webkit.org/show_bug.cgi?id=91719
+
+ Reviewed by Kenneth Rohde Christiansen.
+
+ Setting xdg paths for application cache, web-database and local-storage.
+
+ * PlatformEfl.cmake:
+ * UIProcess/efl/WebContextEfl.cpp:
+ (WebKit::WebContext::applicationCacheDirectory):
+ (WebKit::WebContext::platformDefaultDatabaseDirectory):
+ (WebKit::WebContext::platformDefaultLocalStorageDirectory):
+
+2012-07-26 Sudarsana Nagineni <sudarsana.nagineni@linux.intel.com>
+
+ [EFL] [WK2] Memory leak in ewk_view_resource_load_client.cpp
+ https://bugs.webkit.org/show_bug.cgi?id=92099
+
+ Reviewed by Kentaro Hara.
+
+ Fix a memory leak by clearing the loadingResources HashMap on exit.
+
+ * UIProcess/API/efl/ewk_view.cpp:
+ (_Ewk_View_Private_Data::~_Ewk_View_Private_Data):
+ (_ewk_view_priv_loading_resources_clear):
+ (ewk_view_load_provisional_started):
+
+2012-07-26 Gyuyoung Kim <gyuyoung.kim@samsung.com>
+
+ [DRT] LTC:: pageNumberForElementById() could be moved to Internals
+ https://bugs.webkit.org/show_bug.cgi?id=92091
+
+ Reviewed by Kentaro Hara.
+
+ Missing a symbol filter for Mac win port.
+
+ * win/WebKit2.def:
+ * win/WebKit2CFLite.def:
+
+2012-07-25 Seokju Kwon <seokju.kwon@samsung.com>
+
+ [EFL][WK2] Implement the inspector for WebKitTestRunner
+ https://bugs.webkit.org/show_bug.cgi?id=92213
+
+ Reviewed by Ryosuke Niwa.
+
+ Partial Implementation of WebInspectorProxyEfl for WebkitTestRunner.
+ And Web Inspector resources installation.
+
+ * PlatformEfl.cmake:
+ * UIProcess/WebInspectorProxy.cpp:
+ (WebKit::WebInspectorProxy::WebInspectorProxy):
+ * UIProcess/WebInspectorProxy.h:
+ (WebInspectorProxy):
+ * UIProcess/efl/WebInspectorProxyEfl.cpp:
+ (WebKit::WebInspectorProxy::platformCreateInspectorPage):
+ (WebKit::WebInspectorProxy::platformDidClose):
+ (WebKit::WebInspectorProxy::inspectorPageURL):
+ (WebKit::WebInspectorProxy::inspectorBaseURL):
+
+2012-07-25 Caio Marcelo de Oliveira Filho <caio.oliveira@openbossa.org>
+
+ Create a specialized struct for use in HashMap iterators
+ https://bugs.webkit.org/show_bug.cgi?id=92137
+
+ Reviewed by Ryosuke Niwa.
+
+ * Platform/CoreIPC/ArgumentCoders.h: Add encode/decode for KeyValuePair.
+
+2012-07-25 Anders Carlsson <andersca@apple.com>
+
+ Crash when calling PluginView::pluginFocusOrWindowFocusChanged when the web page is null
+ https://bugs.webkit.org/show_bug.cgi?id=92289
+ <rdar://problem/11785352>
+
+ Reviewed by Andreas Kling.
+
+ Plug-in views that outlive their containing web page for various reasons (such as being protected from
+ destruction) need to null check the web page.
+
+ * WebProcess/Plugins/PluginView.cpp:
+ (WebKit::PluginView::pluginFocusOrWindowFocusChanged):
+ (WebKit::PluginView::setComplexTextInputState):
+
+2012-07-25 Christophe Dumez <christophe.dumez@intel.com>
+
+ [WK2][WTR] LayoutTestController.sendWebIntentResponse() needs to be implemented
+ https://bugs.webkit.org/show_bug.cgi?id=92227
+
+ Reviewed by Kenneth Rohde Christiansen.
+
+ Add new InjectedBundleIntentRequest class to wrap WebCore's
+ IntentRequest and use it in InjectedBundle's
+ didReceiveIntentForFrame callback. The WebKitTestRunner needs
+ to be able to reply to a Web intent request in order to
+ implement LayoutTestController.sendWebIntentResponse(). As
+ a consequence, passing a WebIntentData type in not enough.
+
+ * CMakeLists.txt:
+ * GNUmakefile.list.am:
+ * Shared/API/c/WKBase.h:
+ * Shared/APIObject.h:
+ * Shared/IntentData.cpp:
+ (WebKit::IntentData::IntentData):
+ (WebKit):
+ * Shared/IntentData.h:
+ (WebCore):
+ (WebKit::IntentData::IntentData):
+ (IntentData):
+ * Target.pri:
+ * WebProcess/InjectedBundle/API/c/WKBundleAPICast.h:
+ (WebKit):
+ * WebProcess/InjectedBundle/API/c/WKBundleIntentRequest.cpp: Copied from Source/WebKit2/Shared/IntentData.cpp.
+ (WKBundleIntentRequestGetTypeID):
+ (WKBundleIntentRequestCopyIntent):
+ (WKBundleIntentRequestPostResult):
+ (WKBundleIntentRequestPostFailure):
+ * WebProcess/InjectedBundle/API/c/WKBundleIntentRequest.h: Copied from Source/WebKit2/Shared/IntentData.h.
+ * WebProcess/InjectedBundle/API/c/WKBundlePage.h:
+ * WebProcess/InjectedBundle/InjectedBundleIntentRequest.cpp: Copied from Source/WebKit2/Shared/IntentData.cpp.
+ (WebKit):
+ (WebKit::InjectedBundleIntentRequest::create):
+ (WebKit::InjectedBundleIntentRequest::InjectedBundleIntentRequest):
+ (WebKit::InjectedBundleIntentRequest::postResult):
+ (WebKit::InjectedBundleIntentRequest::postFailure):
+ (WebKit::InjectedBundleIntentRequest::intent):
+ * WebProcess/InjectedBundle/InjectedBundleIntentRequest.h: Copied from Source/WebKit2/Shared/IntentData.h.
+ (WebCore):
+ (WebKit):
+ (InjectedBundleIntentRequest):
+ (WebKit::InjectedBundleIntentRequest::type):
+ * WebProcess/InjectedBundle/InjectedBundlePageLoaderClient.cpp:
+ (WebKit::InjectedBundlePageLoaderClient::didReceiveIntentForFrame):
+ * WebProcess/InjectedBundle/InjectedBundlePageLoaderClient.h:
+ (WebKit):
+ (InjectedBundlePageLoaderClient):
+ * WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
+ (WebKit::WebFrameLoaderClient::dispatchIntent):
+
+2012-07-25 Anders Carlsson <andersca@apple.com>
+
+ Crash when a web page is closed with outstanding scrolling thread barriers
+ https://bugs.webkit.org/show_bug.cgi?id=92280
+ <rdar://problem/11630200>
+
+ Reviewed by Andreas Kling.
+
+ There was a check in forceRepaintAsync to handle the drawing area going away before the block had
+ been invoked, but this check needs to be done earlier (as the FIXME suggested).
+ Move this check to dispatchAfterEnsuringUpdatedScrollPosition instead.
+
+ * WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.mm:
+ (WebKit::TiledCoreAnimationDrawingArea::forceRepaintAsync):
+ (WebKit::TiledCoreAnimationDrawingArea::dispatchAfterEnsuringUpdatedScrollPosition):
+
+2012-07-25 Alexey Proskuryakov <ap@apple.com>
+
+ Chinese IM receives incorrect/duplicated key events in text fields in webpages in Safari.
+ https://bugs.webkit.org/show_bug.cgi?id=89048
+ <rdar://problem/11786384>
+
+ Reviewed by Andreas Kling.
+
+ Cannot test text input from UI process side.
+
+ Stop relying on IPC to handle key events in order. There are too many complications
+ where out of order delivery is performed. Instead, queue the events at UI process
+ side.
+
+ * UIProcess/WebPageProxy.cpp:
+ (WebKit::WebPageProxy::handleKeyboardEvent):
+ (WebKit::WebPageProxy::didReceiveEvent):
+
+2012-07-25 Gyuyoung Kim <gyuyoung.kim@samsung.com>
+
+ [EFL] Use eina_stringshare_add instead of strdup.
+ https://bugs.webkit.org/show_bug.cgi?id=92072
+
+ Reviewed by Kentaro Hara.
+
+ Eina of EFL libraries supports a string functionality that replaces strdup. So, EFL port needs
+ to replace strdup with eina_stringshare_add function.
+
+ * UIProcess/API/efl/ewk_intent.cpp:
+ (ewk_intent_suggestions_get):
+ (ewk_intent_extra_get):
+ * UIProcess/API/efl/ewk_intent.h:
+
+2012-07-25 Ryuan Choi <ryuan.choi@samsung.com>
+
+ [EFL][WK2] Add ewk_view_cursor_set to change cursor.
+ https://bugs.webkit.org/show_bug.cgi?id=89140
+
+ Reviewed by Hajime Morita.
+
+ Implement ewk_view_cursor_set to support cursor changes.
+
+ * UIProcess/API/efl/PageClientImpl.cpp:
+ (WebKit::PageClientImpl::setCursor): Called ewk_view_cursor_set.
+ * UIProcess/API/efl/ewk_view.cpp:
+ (_Ewk_View_Private_Data):
+ (_Ewk_View_Private_Data::_Ewk_View_Private_Data):
+ (_Ewk_View_Private_Data::~_Ewk_View_Private_Data):
+ (_ewk_view_priv_new): Check whether ecore_x can be used.
+ (_ewk_view_smart_add):
+ Change order of initialization to use base structure in _ewk_view_priv_new.
+ (ewk_view_cursor_set): Added to set cursor.
+ * UIProcess/API/efl/ewk_view_private.h:
+
+2012-07-25 Ryuan Choi <ryuan.choi@samsung.com>
+
+ [EFL][WK2] Update uri when the active URI is changed while loading.
+ https://bugs.webkit.org/show_bug.cgi?id=92001
+
+ Reviewed by Hajime Morita.
+
+ For now, ewk_view_uri_get just return the last uri of setter.
+ This patch updates the uri of ewk_view when it is changed while loading.
+
+ * UIProcess/API/efl/ewk_view.cpp:
+ (ewk_view_uri_update):
+ Added to check whether current active URI has changed and send uri,changed
+ signal if it has changed.
+ (ewk_view_uri_set):
+ Called ewk_view_uri_update to make sure the active uri is updated when the
+ load operation is started.
+ (ewk_view_reload): Ditto.
+ (ewk_view_reload_bypass_cache): Ditto.
+ (ewk_view_load_finished): Ditto.
+ (ewk_view_load_provisional_redirect): Ditto.
+ (ewk_view_load_provisional_started): Ditto.
+ (ewk_view_html_string_load): Ditto.
+ * UIProcess/API/efl/ewk_view.h: Updated comment for uri,changed signal.
+ * UIProcess/API/efl/tests/UnitTestUtils/EWK2UnitTestEnvironment.cpp:
+ (EWK2UnitTest::EWK2UnitTestEnvironment::urlForResource):
+ Added to get url of custom resource for test.
+ * UIProcess/API/efl/tests/UnitTestUtils/EWK2UnitTestEnvironment.h:
+ * UIProcess/API/efl/tests/resources/redirect_uri_to_default.html:
+ Added to test ewk_view_uri_get when the page is redirected.
+ * UIProcess/API/efl/tests/test_ewk2_view.cpp: Ditto.
+ (onLoadFinishedForRedirection):
+ (TEST_F): Added new test case whether ewk_view_uri_get returns correct uri when
+ the page is redirected.
+
+2012-07-25 Mikhail Pozdnyakov <mikhail.pozdnyakov@intel.com>
+
+ [EFL][WK2] Add ewk_main.{cpp,h} to EFL WK2
+ https://bugs.webkit.org/show_bug.cgi?id=92101
+
+ Reviewed by Kenneth Rohde Christiansen.
+
+ Added a centralized place for general initialization in UI process for EFL WK2.
+
+ * PlatformEfl.cmake:
+ * UIProcess/API/efl/EWebKit2.h:
+ * UIProcess/API/efl/ewk_main.cpp: Added.
+ (ewk_init): General initialization.
+ (ewk_shutdown): General freeing.
+ (_ewk_init_body): An aux function.
+ * UIProcess/API/efl/ewk_main.h: Added.
+
+2012-07-24 Jae Hyun Park <jae.park@company100.net>
+
+ WKContextGetGlobalStatistics() assigns wrong value to wkFrameCount in WKContextStatistics
+ https://bugs.webkit.org/show_bug.cgi?id=92173
+
+ Reviewed by John Sullivan.
+
+ In WKContextGetGlobalStatistics(), wkViewCount in WebContext::Statistics
+ is assigned to wkFrameCount in WKContextStatistics.
+ wkFrameCount in WebContext:Statistics should be assigned to wkFrameCount in WKContextStatistics.
+
+ * UIProcess/API/C/WKContext.cpp:
+ (WKContextGetGlobalStatistics):
+
+2012-07-24 Sudarsana Nagineni <sudarsana.nagineni@linux.intel.com>
+
+ [EFL][WK2] Add unit tests for custom text encoding setting
+ https://bugs.webkit.org/show_bug.cgi?id=91983
+
+ Reviewed by Dirk Pranke.
+
+ Add unit tests for get and set custom text encoding methods. Also, fix
+ a style nit for r123177.
+
+ * UIProcess/API/efl/ewk_view.cpp:
+ (ewk_view_setting_encoding_custom_set): Fix a style nit - add newline
+ before return.
+ * UIProcess/API/efl/tests/test_ewk2_view.cpp:
+ (TEST_F):
+
+2012-07-24 Ryosuke Niwa <rniwa@webkit.org>
+
+ WinCairo build fix attempt.
+
+ * win/WebKit2CFLite.def:
+
+2012-07-24 Ryosuke Niwa <rniwa@webkit.org>
+
+ Windows build fix attempt.
+
+ * win/WebKit2.def:
+
+2012-07-24 Jocelyn Turcotte <jocelyn.turcotte@nokia.com>
+
+ [Qt] Make sure that an AC sync is triggered when the canvas contents is updated.
+ https://bugs.webkit.org/show_bug.cgi?id=92128
+
+ Reviewed by Kenneth Rohde Christiansen.
+
+ This would cause missed frames when animating an accelerated 2D canvas without
+ touching the document.
+
+ * WebProcess/WebPage/LayerTreeCoordinator/WebGraphicsLayer.cpp:
+ (WebCore::WebGraphicsLayer::setContentsNeedsDisplay):
+
+2012-07-24 Alexey Proskuryakov <ap@apple.com>
+
+ [Mac WK2] Improve text input logging
+ https://bugs.webkit.org/show_bug.cgi?id=92147
+
+ Reviewed by Andreas Kling.
+
+ * UIProcess/API/mac/WKView.mm:
+ (-[WKView insertText:replacementRange:]):
+ (-[WKView keyUp:]):
+ (-[WKView keyDown:]):
+ (-[WKView flagsChanged:]):
+ (-[WKView _executeSavedKeypressCommands]):
+ (-[WKView _notifyInputContextAboutDiscardedComposition]):
+ (-[WKView _interpretKeyEvent:savingCommandsTo:WebCore::]):
+ (-[WKView _updateSecureInputState]):
+
+2012-07-24 Christophe Dumez <christophe.dumez@intel.com>
+
+ [EFL][WK2] Provide more useful output when an injected bundle cannot be loaded
+ https://bugs.webkit.org/show_bug.cgi?id=92136
+
+ Reviewed by Kenneth Rohde Christiansen.
+
+ Call eina_error_get() in case an injected bundle cannot be
+ loaded in order to print more information about the error.
+
+ * WebProcess/InjectedBundle/efl/InjectedBundleEfl.cpp:
+ (WebKit::InjectedBundle::load):
+
+2012-07-24 Sudarsana Nagineni <sudarsana.nagineni@linux.intel.com>
+
+ [EFL][WK2] Add vibration client
+ https://bugs.webkit.org/show_bug.cgi?id=91371
+
+ Reviewed by Antonio Gomes.
+
+ Implement Vibration provider for WebKit2 EFL and add an API to set
+ vibration client callbacks by application to handle the tactile
+ feedback in the application when the page content ask for vibration.
+
+ * CMakeLists.txt: Add WebCore/Modules/vibration to include path.
+ * PlatformEfl.cmake: Add VibrationProvider.cpp file to the build
+ system.
+ * UIProcess/API/efl/VibrationProvider.cpp: Added.
+ (_Ewk_Vibration_Client): Structure contains the vibration client
+ callbacks.
+ (_Ewk_Vibration_Client::_Ewk_Vibration_Client):
+ (toVibrationProvider): Helper function to cast the clientinfo to
+ VibrationProvider.
+ (vibrateCallback):
+ (cancelVibrationCallback):
+ (VibrationProvider::create):
+ (VibrationProvider::VibrationProvider):
+ (VibrationProvider::~VibrationProvider):
+ (VibrationProvider::vibrate):
+ (VibrationProvider::cancelVibration):
+ (VibrationProvider::setVibrationClientCallbacks):
+ * UIProcess/API/efl/VibrationProvider.h: Added.
+ (VibrationProvider):
+ * UIProcess/API/efl/ewk_context.cpp:
+ (_Ewk_Context):
+ (createDefaultEwkContext):
+ (ewk_context_vibration_client_callbacks_set): API to set vibration
+ client callbacks.
+ * UIProcess/API/efl/ewk_context.h:
+
+2012-07-24 Simon Hausmann <simon.hausmann@nokia.com>
+
+ [Qt] Fix compilation after QtQuick API changes
+ https://bugs.webkit.org/show_bug.cgi?id=91822
+
+ Reviewed by Kenneth Rohde Christiansen.
+
+ QQuickCanvas is now QQuickWindow, QQuickItem::canvas() is window() and rootItem()
+ is contentItem(). Also QQuickWindow::grabFrameBuffer() is now grabWindow().
+
+ * UIProcess/API/qt/qquickwebpage.cpp:
+ * UIProcess/API/qt/qquickwebview.cpp:
+ (QQuickWebViewPrivate::updateIcon):
+ * UIProcess/API/qt/tests/qquickwebview/tst_qquickwebview.cpp:
+ (tst_QQuickWebView::multipleWebViews):
+ (tst_QQuickWebView::basicRenderingSanity):
+ (tst_QQuickWebView::transparentWebViews):
+ * UIProcess/API/qt/tests/testwindow.h:
+ (TestWindow::TestWindow):
+ * UIProcess/qt/QtPageClient.cpp:
+ (WebKit::QtPageClient::isViewVisible):
+ * UIProcess/qt/QtWebPageEventHandler.cpp:
+ (WebKit::QtWebPageEventHandler::startDrag):
+
+2012-07-24 Balazs Kelemen <kbalazs@webkit.org>
+
+ [Qt] Add quirks for running the web process in a profiler shell, like valgrind
+ https://bugs.webkit.org/show_bug.cgi?id=87672
+
+ Reviewed by Jocelyn Turcotte.
+
+ If environment variables QT_WEBKIT_WEB_PROCESS_COMMAND_PREFIX
+ and/or QT_WEBKIT_PLUGIN_PROCESS_COMMAND_PREFIX are set, use their
+ values as the prefix of the command when launching the child process.
+ Example usage:
+ export QT_WEB_PROCESS_COMMAND_PREFIX="valgrind --smc-check=all"
+ ./MiniBrowser http://somepage.html
+ ./WebKitTestRunner --no-timeout-at-all some_layouttest.html
+
+ * UIProcess/Launcher/qt/ProcessLauncherQt.cpp:
+ (WebKit::ProcessLauncher::launchProcess):
+
+2012-07-23 Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
+
+ [Qt] Fix compilation against namespaced Qt
+
+ Reviewed by Simon Hausmann.
+
+ * Platform/CoreIPC/Connection.h:
+ * Platform/PlatformProcessIdentifier.h:
+ * Platform/WorkQueue.h:
+ * Shared/qt/QtNetworkRequestData.h:
+ * Shared/qt/WebEventFactoryQt.h:
+ * UIProcess/API/C/qt/WKNativeEvent.h:
+ * UIProcess/API/qt/qquickwebview_p.h:
+ * UIProcess/API/qt/qwebnavigationhistory_p.h:
+ * UIProcess/API/qt/raw/qrawwebview_p.h:
+ * UIProcess/DrawingAreaProxy.h:
+ * UIProcess/Launcher/ThreadLauncher.h:
+ * UIProcess/LayerTreeCoordinatorProxy.h:
+ * UIProcess/qt/QtViewportHandler.h:
+ * UIProcess/qt/QtWebPageSGNode.h:
+ * UIProcess/qt/WebColorChooserProxyQt.h:
+ * UIProcess/qt/WebGeolocationProviderQt.h:
+ * UIProcess/qt/WebPopupMenuProxyQt.h:
+ * WebProcess/WebProcess.h:
+
+2012-07-24 Christophe Dumez <christophe.dumez@intel.com>
+
+ [EFL][WK2] Remove unneeded WebURLRequestEfl and WebURLResponseEfl
+ https://bugs.webkit.org/show_bug.cgi?id=92087
+
+ Reviewed by Kenneth Rohde Christiansen.
+
+ Remove WebURLRequestEfl and WebURLResponseEfl classes
+ and their corresponding C APIs since we don't need / use
+ them.
+
+ * Shared/API/c/efl/WKURLRequestEfl.cpp: Removed.
+ * Shared/API/c/efl/WKURLRequestEfl.h: Removed.
+ * Shared/API/c/efl/WKURLResponseEfl.cpp: Removed.
+ * Shared/API/c/efl/WKURLResponseEfl.h: Removed.
+ * Shared/efl/WebURLRequestEfl.cpp: Removed.
+ * Shared/efl/WebURLRequestEfl.h: Removed.
+ * Shared/efl/WebURLResponseEfl.cpp: Removed.
+ * Shared/efl/WebURLResponseEfl.h: Removed.
+ * UIProcess/API/efl/ewk_url_request.cpp:
+
+2012-07-24 Pierre Rossi <pierre.rossi@gmail.com>
+
+ [Qt] Enable touch slider when touch events are enabled
+ https://bugs.webkit.org/show_bug.cgi?id=91013
+
+ Reviewed by Kenneth Rohde Christiansen.
+
+ TOUCH_SLIDER guards are used in WebCore, so we should really
+ be setting the corresponding ENABLE define in features.prf.
+
+ * Target.pri:
+
+2012-07-24 Christophe Dumez <christophe.dumez@intel.com>
+
+ [EFL][WK2] Fix possible crash in didSendRequestForResource
+ https://bugs.webkit.org/show_bug.cgi?id=92077
+
+ Reviewed by Kenneth Rohde Christiansen.
+
+ Add NULL check for wkRedirectResponse in
+ didSendRequestForResource() before using it. The
+ argument may be NULL if there was no redirection.
+
+ * UIProcess/API/efl/ewk_view.h:
+ * UIProcess/API/efl/ewk_view_resource_load_client.cpp:
+ (didSendRequestForResource):
+
+2012-07-24 Christophe Dumez <christophe.dumez@intel.com>
+
+ [WK2][EFL][GTK] Share WebCoreArgumentCoders for soup-related types
+ https://bugs.webkit.org/show_bug.cgi?id=92073
+
+ Reviewed by Kenneth Rohde Christiansen.
+
+ Move WebCoreArgumentCoders for soup-related types such as
+ ResourceRequest, ResourceResponse and ResourceError from
+ port specific file to Shared/soup/WebCoreArgumentCodersSoup.cpp.
+ This way, the different ports using libsoup can share
+ code and avoid duplication.
+
+ * GNUmakefile.list.am:
+ * PlatformEfl.cmake:
+ * Shared/efl/WebCoreArgumentCodersEfl.cpp: Removed.
+ * Shared/soup/WebCoreArgumentCodersSoup.cpp: Renamed from Source/WebKit2/Shared/gtk/WebCoreArgumentCodersGtk.cpp.
+ (CoreIPC):
+ (CoreIPC::::encode):
+ (CoreIPC::::decode):
+
+2012-07-23 Sheriff Bot <webkit.review.bot@gmail.com>
+
+ Unreviewed, rolling out r123184, r123195, and r123197.
+ http://trac.webkit.org/changeset/123184
+ http://trac.webkit.org/changeset/123195
+ http://trac.webkit.org/changeset/123197
+ https://bugs.webkit.org/show_bug.cgi?id=92049
+
+ pagecycler regression (Requested by morrita on #webkit).
+
+ * win/WebKit2.def:
+ * win/WebKit2CFLite.def:
+
+2012-07-23 Simon Fraser <simon.fraser@apple.com>
+
+ Part 2 of: Implement sticky positioning
+ https://bugs.webkit.org/show_bug.cgi?id=90046
+
+ Reviewed by Ojan Vafai.
+
+ Turn on ENABLE_CSS_STICKY_POSITION.
+
+ * Configurations/FeatureDefines.xcconfig:
+
+2012-07-23 Christophe Dumez <christophe.dumez@intel.com>
+
+ [WK2] WebKitTestRunner needs to print information about Web intents
+ https://bugs.webkit.org/show_bug.cgi?id=90873
+
+ Reviewed by Anders Carlsson.
+
+ Add Bundle API for Web Intents. This is needed by the WebKitTestRunner
+ to print information about the new intent requests and the intent
+ service registrations.
+
+ * CMakeLists.txt: Move WebIntentData and WebIntentServiceInfo from
+ UIProcess/ to Shared/.
+ * GNUmakefile.list.am: Move WebIntentData and WebIntentServiceInfo from
+ UIProcess/ to Shared/.
+ * Shared/APIClientTraits.h:
+ * Shared/WebIntentData.cpp: Renamed from Source/WebKit2/UIProcess/WebIntentData.cpp.
+ (WebKit):
+ (WebKit::WebIntentData::WebIntentData):
+ (WebKit::WebIntentData::data):
+ (WebKit::WebIntentData::suggestions):
+ (WebKit::WebIntentData::extra):
+ (WebKit::WebIntentData::extras):
+ * Shared/WebIntentData.h: Renamed from Source/WebKit2/UIProcess/WebIntentData.h.
+ (WebKit):
+ (WebIntentData):
+ (WebKit::WebIntentData::create):
+ (WebKit::WebIntentData::~WebIntentData):
+ (WebKit::WebIntentData::action):
+ (WebKit::WebIntentData::payloadType):
+ (WebKit::WebIntentData::service):
+ (WebKit::WebIntentData::store):
+ (WebKit::WebIntentData::type):
+ * Shared/WebIntentServiceInfo.cpp: Renamed from Source/WebKit2/UIProcess/WebIntentServiceInfo.cpp.
+ (WebKit):
+ (WebKit::WebIntentServiceInfo::WebIntentServiceInfo):
+ * Shared/WebIntentServiceInfo.h: Renamed from Source/WebKit2/UIProcess/WebIntentServiceInfo.h.
+ (WebKit):
+ (WebIntentServiceInfo):
+ (WebKit::WebIntentServiceInfo::create):
+ (WebKit::WebIntentServiceInfo::~WebIntentServiceInfo):
+ (WebKit::WebIntentServiceInfo::action):
+ (WebKit::WebIntentServiceInfo::payloadType):
+ (WebKit::WebIntentServiceInfo::href):
+ (WebKit::WebIntentServiceInfo::title):
+ (WebKit::WebIntentServiceInfo::disposition):
+ (WebKit::WebIntentServiceInfo::type):
+ * Target.pri: Move WebIntentData and WebIntentServiceInfo from
+ UIProcess/ to Shared/.
+ * UIProcess/API/C/WKPage.h:
+ * UIProcess/API/efl/ewk_view_loader_client.cpp:
+ (didReceiveIntentForFrame):
+ (registerIntentServiceForFrame):
+ * UIProcess/WebLoaderClient.cpp:
+ (WebKit::WebLoaderClient::didReceiveIntentForFrame):
+ (WebKit::WebLoaderClient::registerIntentServiceForFrame):
+ * UIProcess/WebLoaderClient.h:
+ (WebLoaderClient):
+ * UIProcess/WebPageProxy.cpp:
+ (WebKit::WebPageProxy::registerIntentServiceForFrame):
+ (WebKit::WebPageProxy::didReceiveIntentForFrame):
+ * UIProcess/WebPageProxy.h:
+ (WebPageProxy):
+ * UIProcess/WebPageProxy.messages.in:
+ * WebProcess/InjectedBundle/API/c/WKBundlePage.h:
+ * WebProcess/InjectedBundle/InjectedBundlePageLoaderClient.cpp:
+ (WebKit):
+ (WebKit::InjectedBundlePageLoaderClient::didReceiveIntentForFrame):
+ (WebKit::InjectedBundlePageLoaderClient::registerIntentServiceForFrame):
+ * WebProcess/InjectedBundle/InjectedBundlePageLoaderClient.h:
+ (WebKit):
+ (InjectedBundlePageLoaderClient):
+ * WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
+ (WebKit::WebFrameLoaderClient::dispatchIntent):
+ (WebKit::WebFrameLoaderClient::registerIntentService):
+ * WebProcess/qt/QtBuiltinBundlePage.cpp:
+ (WebKit::QtBuiltinBundlePage::QtBuiltinBundlePage):
+
+2012-07-23 Christophe Dumez <christophe.dumez@intel.com>
+
+ [EFL][WK2] Add unit tests for Ewk_Cookie_Manager
+ https://bugs.webkit.org/show_bug.cgi?id=91639
+
+ Reviewed by Antonio Gomes.
+
+ Add unit tests for Ewk_Cookie_Manager.
+
+ * PlatformEfl.cmake:
+ * UIProcess/API/efl/ewk_cookie_manager.h: Fix "accept policy" documentation
+ to indicate that only cookies set by the main document are accepted by default.
+ * UIProcess/API/efl/tests/UnitTestUtils/EWK2UnitTestServer.cpp: Added.
+ (EWK2UnitTestServer::EWK2UnitTestServer): Add HTTP server similar to the one
+ used by GTK port unit tests.
+ (EWK2UnitTestServer::~EWK2UnitTestServer):
+ (EWK2UnitTestServer::run):
+ (EWK2UnitTestServer::getURIForPath):
+ * UIProcess/API/efl/tests/UnitTestUtils/EWK2UnitTestServer.h: Added.
+ (EWK2UnitTestServer):
+ (EWK2UnitTestServer::baseURI):
+ * UIProcess/API/efl/tests/test_ewk2_cookie_manager.cpp: Added.
+ (serverCallback):
+ (getAcceptPolicyCallback):
+ (getAcceptPolicy):
+ (getHostnamesWithCookiesCallback):
+ (getHostnamesWithCookies):
+ (freeHostNames):
+ (countHostnamesWithCookies):
+ (TEST_F):
+ (cleanUpCookieFiles):
+
+2012-07-23 Pierre Rossi <pierre.rossi@gmail.com>
+
+ [Qt] Enable touch slider when touch events are enabled
+ https://bugs.webkit.org/show_bug.cgi?id=91013
+
+ Reviewed by Antonio Gomes.
+
+ Take advantage of the logic introduced in r122286.
+
+ * Target.pri:
+
+2012-07-23 Pierre Rossi <pierre.rossi@gmail.com>
+
+ Unify numTouchEventHandlersChanged and needTouchEvents in the chrome client
+ https://bugs.webkit.org/show_bug.cgi?id=91006
+
+ Reviewed by Ryosuke Niwa.
+
+ Remove numTouchEventHandlersChanged stub.
+
+ * WebProcess/WebCoreSupport/WebChromeClient.h:
+ (WebChromeClient):
+
+2012-07-23 Simon Fraser <simon.fraser@apple.com>
+
+ Part 1 of: Implement sticky positioning
+ https://bugs.webkit.org/show_bug.cgi?id=90046
+
+ Reviewed by Ojan Vafai.
+
+ Add ENABLE_CSS_STICKY_POSITION, defaulting to off initially.
+
+ Sort the ENABLE_CSS lines in the file. Make sure all the flags
+ are in FEATURE_DEFINES.
+
+ * Configurations/FeatureDefines.xcconfig:
+
+2012-07-23 Christophe Dumez <christophe.dumez@intel.com>
+
+ [EFL][WK2] Add request manager client
+ https://bugs.webkit.org/show_bug.cgi?id=91193
+
+ Reviewed by Kenneth Rohde Christiansen.
+
+ Add a URL request manager client and attach it
+ to the Ewk_Context.
+
+ The client application can now register a URL scheme
+ via the Ewk_Context API and provide a callback handler
+ that will get called whenever a URL request with this
+ scheme is made.
+
+ A new Ewk_Url_Scheme_Request type is introduced to
+ provide information about the request to the client
+ and to allow the client to finish it by setting its
+ contents.
+
+ * PlatformEfl.cmake:
+ * UIProcess/API/efl/EWebKit2.h:
+ * UIProcess/API/efl/ewk_context.cpp:
+ (_Ewk_Url_Scheme_Handler):
+ (_Ewk_Url_Scheme_Handler::_Ewk_Url_Scheme_Handler):
+ (_Ewk_Context):
+ (_Ewk_Context::_Ewk_Context):
+ (ewk_context_request_manager_get):
+ (ewk_context_url_scheme_request_received):
+ (createDefaultEwkContext):
+ (ewk_context_uri_scheme_register):
+ * UIProcess/API/efl/ewk_context.h:
+ * UIProcess/API/efl/ewk_context_private.h:
+ * UIProcess/API/efl/ewk_context_request_manager_client.cpp: Added.
+ (toEwkContext):
+ (didReceiveURIRequest):
+ (ewk_context_request_manager_client_attach):
+ * UIProcess/API/efl/ewk_context_request_manager_client_private.h: Added.
+ * UIProcess/API/efl/ewk_url_scheme_request.cpp: Added.
+ (_Ewk_Url_Scheme_Request):
+ (_Ewk_Url_Scheme_Request::_Ewk_Url_Scheme_Request):
+ (_Ewk_Url_Scheme_Request::~_Ewk_Url_Scheme_Request):
+ (ewk_url_scheme_request_ref):
+ (ewk_url_scheme_request_unref):
+ (ewk_url_scheme_request_scheme_get):
+ (ewk_url_scheme_request_url_get):
+ (ewk_url_scheme_request_path_get):
+ (ewk_url_scheme_request_id_get):
+ (ewk_url_scheme_request_finish):
+ (ewk_url_scheme_request_new):
+ * UIProcess/API/efl/ewk_url_scheme_request.h: Added.
+ * UIProcess/API/efl/ewk_url_scheme_request_private.h: Added.
+
+2012-07-23 KwangYong Choi <ky0.choi@samsung.com>
+
+ [EFL][WK2] ProcessExecutablePath is required
+ https://bugs.webkit.org/show_bug.cgi?id=89719
+
+ Reviewed by Kenneth Rohde Christiansen.
+
+ Added executablePathOfWebProcess and executablePathOfPluginProcess.
+ It's used for getting the location of WebProcess and PluginProcess.
+
+ * PlatformEfl.cmake: Added LIBEXECDIR definition
+ * Shared/efl/ProcessExecutablePathEfl.cpp: Added.
+ (WebKit):
+ (WebKit::findWebKitProcess):
+ (WebKit::executablePathOfWebProcess): Get the absolute path of WebProcess
+ (WebKit::executablePathOfPluginProcess): Get the absolute path of PluginProcess
+ * UIProcess/Launcher/efl/ProcessLauncherEfl.cpp:
+ (WebKit::ProcessLauncher::launchProcess): Modified to use above routines
+
+2012-07-23 Christophe Dumez <christophe.dumez@intel.com>
+
+ WebKit2 needs layoutTestController.setAlwaysAcceptCookies
+ https://bugs.webkit.org/show_bug.cgi?id=42778
+
+ Reviewed by Kenneth Rohde Christiansen.
+
+ Add setAlwaysAcceptCookies() method to InjectedBundle
+ so that we can use it in LayoutTestController.
+ The method uses WebCookieManager::setHTTPCookieAcceptPolicy()
+ internally.
+
+ * WebProcess/InjectedBundle/API/c/WKBundle.cpp:
+ (WKBundleSetAlwaysAcceptCookies):
+ * WebProcess/InjectedBundle/API/c/WKBundlePrivate.h:
+ * WebProcess/InjectedBundle/InjectedBundle.cpp:
+ (WebKit::InjectedBundle::setAlwaysAcceptCookies):
+ (WebKit):
+ * WebProcess/InjectedBundle/InjectedBundle.h:
+ (InjectedBundle):
+
+2012-07-23 Thiago Marcos P. Santos <thiago.santos@intel.com>
+
+ [WK2] SQL Database cannot be disabled at build time
+ https://bugs.webkit.org/show_bug.cgi?id=91837
+
+ Reviewed by Kenneth Rohde Christiansen.
+
+ WebKit2 had no #ifdefs for SQL Database. This patch adds these
+ statments and it can now be disabled at build time.
+
+ * Shared/OriginAndDatabases.cpp:
+ * Shared/OriginAndDatabases.h:
+ * Shared/WebCoreArgumentCoders.cpp:
+ (CoreIPC):
+ * UIProcess/API/C/WKContext.cpp:
+ (WKContextGetDatabaseManager):
+ * UIProcess/API/C/WKDatabaseManager.cpp:
+ (WKDatabaseManagerGetTypeID):
+ (WKDatabaseManagerGetOriginKey):
+ (WKDatabaseManagerGetOriginQuotaKey):
+ (WKDatabaseManagerGetOriginUsageKey):
+ (WKDatabaseManagerGetDatabaseDetailsKey):
+ (WKDatabaseManagerGetDatabaseDetailsNameKey):
+ (WKDatabaseManagerGetDatabaseDetailsDisplayNameKey):
+ (WKDatabaseManagerGetDatabaseDetailsExpectedUsageKey):
+ (WKDatabaseManagerGetDatabaseDetailsCurrentUsageKey):
+ (WKDatabaseManagerSetClient):
+ (WKDatabaseManagerGetDatabasesByOrigin):
+ (callGetDatabasesByOriginBlockAndDispose):
+ (WKDatabaseManagerGetDatabasesByOrigin_b):
+ (WKDatabaseManagerGetDatabaseOrigins):
+ (callGetDatabaseOriginsBlockBlockAndDispose):
+ (WKDatabaseManagerGetDatabaseOrigins_b):
+ (WKDatabaseManagerDeleteDatabasesWithNameForOrigin):
+ (WKDatabaseManagerDeleteDatabasesForOrigin):
+ (WKDatabaseManagerDeleteAllDatabases):
+ (WKDatabaseManagerSetQuotaForOrigin):
+ * UIProcess/WebContext.cpp:
+ (WebKit::WebContext::WebContext):
+ (WebKit::WebContext::~WebContext):
+ (WebKit::WebContext::shouldTerminate):
+ (WebKit::WebContext::disconnectProcess):
+ (WebKit::WebContext::didReceiveMessage):
+ * UIProcess/WebContext.h:
+ (WebContext):
+ * UIProcess/WebDatabaseManagerProxy.cpp:
+ * UIProcess/WebDatabaseManagerProxy.h:
+ * UIProcess/WebDatabaseManagerProxy.messages.in:
+ * WebProcess/InjectedBundle/InjectedBundle.cpp:
+ (WebKit::InjectedBundle::clearAllDatabases):
+ (WebKit::InjectedBundle::setDatabaseQuota):
+ * WebProcess/WebCoreSupport/WebDatabaseManager.cpp:
+ * WebProcess/WebCoreSupport/WebDatabaseManager.h:
+ * WebProcess/WebCoreSupport/WebDatabaseManager.messages.in:
+ * WebProcess/WebProcess.cpp:
+ (WebKit::WebProcess::didReceiveMessage):
+
+2012-07-23 Kent Tamura <tkent@chromium.org>
+
+ Rename ENABLE_METER_TAG and ENABLE_PROGRESS_TAG to ENABLE_METER_ELEMENT and ENABLE_PROGRESS_ELEMENT respectively
+ https://bugs.webkit.org/show_bug.cgi?id=91941
+
+ Reviewed by Kentaro Hara.
+
+ A flag name for an elmement should be ENABLE_*_ELEMENT.
+
+ * Configurations/FeatureDefines.xcconfig:
+
+2012-07-22 Kent Tamura <tkent@chromium.org>
+
+ Rename ENABLE_DETAILS to ENABLE_DETAILS_ELEMENT
+ https://bugs.webkit.org/show_bug.cgi?id=91928
+
+ Reviewed by Kentaro Hara.
+
+ A flag name for an elmement should be ENABLE_*_ELEMENT.
+
+ * Configurations/FeatureDefines.xcconfig:
+
+2012-07-20 Kent Tamura <tkent@chromium.org>
+
+ Rename ENABLE_DATALIST to ENABLE_DATALIST_ELEMENT
+ https://bugs.webkit.org/show_bug.cgi?id=91846
+
+ Reviewed by Kentaro Hara.
+
+ A flag name for an elmement should be ENABLE_*_ELEMENT.
+
+ * Configurations/FeatureDefines.xcconfig:
+
+2012-07-20 Rafael Brandao <rafael.lobo@openbossa.org>
+
+ QtNetworkAccessManager should not rely on signal sslErrors when QT_NO_SSL is defined
+ https://bugs.webkit.org/show_bug.cgi?id=91866
+
+ Reviewed by Noam Rosenthal.
+
+ * WebProcess/qt/QtNetworkAccessManager.cpp:
+ (WebKit::QtNetworkAccessManager::QtNetworkAccessManager): QNAM's signal is only defined when
+ that flag is undefined. Removed the connection when we have the flag set.
+ (WebKit::QtNetworkAccessManager::onSslErrors): When the flag is set, this slot becomes unused.
+
+2012-07-20 Christophe Dumez <christophe.dumez@intel.com>
+
+ [EFL] Proxy configuration should honor the no_proxy environment variable
+ https://bugs.webkit.org/show_bug.cgi?id=91747
+
+ Reviewed by Kenneth Rohde Christiansen.
+
+ Use the new custom proxy resolver from WebCore in
+ WebKit2-EFL so that it is possible for the client
+ to set proxy exceptions via the "no_proxy"
+ environment variable.
+
+ By default, the proxy set in the "http_proxy"
+ environment variable will not be used for requests
+ to localhost or 127.0.0.1.
+
+ * WebProcess/efl/WebProcessMainEfl.cpp:
+ (WebKit::WebProcessMainEfl):
+
+2012-06-01 Dinu Jacob <dinu.jacob@nokia.com>
+
+ [Qt][WK2] Add support for multi-select list
+ https://bugs.webkit.org/show_bug.cgi?id=85527
+
+ Reviewed by Kenneth Rohde Christiansen.
+
+ Added support for multi-select list:
+ - Added multi-selection flag to PlatformPopupMenuData to indicate whether to accept multiple selections or not.
+ - Added selected state to WebPopupItem.
+ - Modified WebPopupMenuQt to support multiple selections.
+
+ * Shared/PlatformPopupMenuData.cpp:
+ (WebKit::PlatformPopupMenuData::PlatformPopupMenuData):
+ (WebKit::PlatformPopupMenuData::encode):
+ (WebKit::PlatformPopupMenuData::decode):
+ * Shared/PlatformPopupMenuData.h:
+ (PlatformPopupMenuData):
+ * Shared/WebPopupItem.cpp:
+ (WebKit::WebPopupItem::WebPopupItem):
+ (WebKit::WebPopupItem::encode):
+ (WebKit::WebPopupItem::decode):
+ * Shared/WebPopupItem.h:
+ * UIProcess/API/qt/tests/qmltests/WebView/tst_multiSelect.qml: Added.
+ * UIProcess/API/qt/tests/qmltests/common/multiselect.html: Added.
+ * UIProcess/WebPageProxy.h:
+ (WebPageProxy):
+ * UIProcess/WebPopupMenuProxy.h:
+ (Client):
+ * UIProcess/qt/WebPageProxyQt.cpp:
+ (WebKit::WebPageProxy::changeSelectedIndex):
+ (WebKit):
+ (WebKit::WebPageProxy::closePopupMenu):
+ * UIProcess/qt/WebPopupMenuProxyQt.cpp:
+ (WebKit::PopupMenuItemModel::multiple):
+ (PopupMenuItemModel):
+ (WebKit::PopupMenuItemModel::Item::Item):
+ (ItemSelectorContextObject):
+ (WebKit::ItemSelectorContextObject::allowMultiSelect):
+ (WebKit::ItemSelectorContextObject::reject):
+ (WebKit::ItemSelectorContextObject::dismiss):
+ (WebKit::ItemSelectorContextObject::ItemSelectorContextObject):
+ (WebKit):
+ (WebKit::ItemSelectorContextObject::onIndexUpdate):
+ (WebKit::ItemSelectorContextObject::accept):
+ (WebKit::PopupMenuItemModel::PopupMenuItemModel):
+ (WebKit::PopupMenuItemModel::select):
+ (WebKit::PopupMenuItemModel::toggleItem):
+ (WebKit::PopupMenuItemModel::buildItems):
+ (WebKit::WebPopupMenuProxyQt::showPopupMenu):
+ (WebKit::WebPopupMenuProxyQt::hidePopupMenu):
+ (WebKit::WebPopupMenuProxyQt::selectIndex):
+ (WebKit::WebPopupMenuProxyQt::createItem):
+ * UIProcess/qt/WebPopupMenuProxyQt.h:
+ (WebPopupMenuProxyQt):
+ * WebProcess/WebCoreSupport/WebPopupMenu.cpp:
+ (WebKit::WebPopupMenu::didChangeSelectedIndex):
+ (WebKit::WebPopupMenu::populateItems):
+ * WebProcess/WebCoreSupport/WebPopupMenu.h:
+ (WebPopupMenu):
+ * WebProcess/WebCoreSupport/qt/WebPopupMenuQt.cpp:
+ (WebKit::WebPopupMenu::setUpPlatformData):
+ * WebProcess/WebPage/WebPage.cpp:
+ (WebKit::WebPage::didChangeSelectedIndexForActivePopupMenu):
+ (WebKit):
+ (WebKit::WebPage::changeSelectedIndex):
+ * WebProcess/WebPage/WebPage.h:
+ (WebPage):
+ * WebProcess/WebPage/WebPage.messages.in:
+ * WebProcess/WebPage/qt/WebPageQt.cpp:
+ (WebKit::WebPage::selectedIndex):
+ (WebKit):
+ (WebKit::WebPage::hidePopupMenu):
+
+2012-07-20 Gyuyoung Kim <gyuyoung.kim@samsung.com>
+
+ Unreviewed, rolling out r123085.
+ http://trac.webkit.org/changeset/123085
+ https://bugs.webkit.org/show_bug.cgi?id=91719
+
+ r123085 causes crashes on EFL layout test bot.
+
+ * UIProcess/efl/WebContextEfl.cpp:
+ (WebKit::WebContext::applicationCacheDirectory):
+
+2012-07-20 Christophe Dumez <christophe.dumez@intel.com>
+
+ [EFL][WK2] Use "load,finished" signal in EWK2UnitTestBase::loadUrlSync() instead of "load,progress"
+ https://bugs.webkit.org/show_bug.cgi?id=91721
+
+ Reviewed by Kenneth Rohde Christiansen.
+
+ The purpose of EWK2UnitTestBase::loadUrlSync() is to load
+ a URL in the view and wait synchronously for the load to finish.
+ The current implementation uses the "load,progress" signal to
+ detect when the load is finished, which is inefficient because
+ it gets emitted several times.
+
+ It is better to wait for the "load,finished" signal which gets
+ emitted only once when the load is complete.
+
+ * UIProcess/API/efl/tests/UnitTestUtils/EWK2UnitTestBase.cpp:
+ (EWK2UnitTest::onLoadFinished):
+ (EWK2UnitTest::EWK2UnitTestBase::EWK2UnitTestBase):
+ (EWK2UnitTest::EWK2UnitTestBase::loadUrlSync):
+ * UIProcess/API/efl/tests/UnitTestUtils/EWK2UnitTestBase.h:
+ (EWK2UnitTestBase):
+
+2012-07-19 MORITA Hajime <morrita@google.com>
+
+ [Refactoring] Replace Node's Document pointer with a TreeScope pointer
+ https://bugs.webkit.org/show_bug.cgi?id=59816
+
+ Reviewed by Ryosuke Niwa.
+
+ * win/WebKit2.def: Added newly exported symbols.
+ * win/WebKit2CFLite.def: Ditto.
+
+2012-07-19 Sudarsana Nagineni <sudarsana.nagineni@linux.intel.com>
+
+ [EFL] [WK2] Add methods to get/set a custom text encoding
+ https://bugs.webkit.org/show_bug.cgi?id=90604
+
+ Reviewed by Kenneth Rohde Christiansen.
+
+ Add methods to get/set custom character encoding.
+
+ * UIProcess/API/efl/ewk_view.cpp:
+ (_Ewk_View_Private_Data):
+ (_ewk_view_priv_del):
+ (ewk_view_setting_encoding_custom_get):
+ (ewk_view_setting_encoding_custom_set):
+ * UIProcess/API/efl/ewk_view.h:
+
+2012-07-19 Gyuyoung Kim <gyuyoung.kim@samsung.com>
+
+ Unreviewed. Fix build break because of changing parameter type of
+ vibration virtual function on EFL port.
+
+ * WebProcess/WebCoreSupport/WebVibrationClient.cpp:
+ (WebKit::WebVibrationClient::vibrate):
+ * WebProcess/WebCoreSupport/WebVibrationClient.h:
+ (WebVibrationClient):
+
+2012-07-19 Sudarsana Nagineni <sudarsana.nagineni@linux.intel.com>
+
+ [WK2] Add Vibration API integration to WebContext and WebPage
+ https://bugs.webkit.org/show_bug.cgi?id=91081
+
+ Reviewed by Anders Carlsson.
+
+ Integrate Vibration API to WebPage, WebContext and properly route
+ messages to the WebVibrationProxy.
+
+ * UIProcess/API/C/WKContext.cpp:
+ (WKContextGetVibration):
+ * UIProcess/API/C/WKContext.h:
+ * UIProcess/WebContext.cpp:
+ (WebKit::WebContext::WebContext):
+ (WebKit::WebContext::~WebContext):
+ (WebKit::WebContext::disconnectProcess):
+ (WebKit::WebContext::didReceiveMessage):
+ * UIProcess/WebContext.h:
+ (WebKit):
+ (WebContext):
+ (WebKit::WebContext::vibrationProxy):
+ * UIProcess/WebProcessProxy.cpp:
+ (WebKit::WebProcessProxy::didReceiveMessage):
+ * WebProcess/WebPage/WebPage.cpp:
+ (WebKit::WebPage::WebPage):
+
+2012-07-19 No'am Rosenthal <noam.rosenthal@nokia.com>
+
+ [Qt] Enable CSS shaders in Qt (software mode)
+ https://bugs.webkit.org/show_bug.cgi?id=85140
+
+ Reviewed by Simon Hausmann.
+
+ Add CSSCustomFilterEnabled to QWebPreferences. It's disabled by default.
+
+ * UIProcess/API/qt/qwebpreferences.cpp:
+ (QWebPreferencesPrivate::testAttribute):
+ (QWebPreferencesPrivate::setAttribute):
+ * UIProcess/API/qt/qwebpreferences_p_p.h:
+
+2012-07-19 No'am Rosenthal <noam.rosenthal@nokia.com>
+
+ [Qt] Enable CSS shaders in Qt (software mode)
+ https://bugs.webkit.org/show_bug.cgi?id=85140
+
+ Reviewed by Simon Hausmann.
+
+ Add CSSCustomFilterEnabled to QWebPreferences. It's disabled by default.
+
+ * UIProcess/API/qt/qwebpreferences.cpp:
+ (QWebPreferencesPrivate::testAttribute):
+ (QWebPreferencesPrivate::setAttribute):
+ * UIProcess/API/qt/qwebpreferences_p_p.h:
+
+2012-07-19 Pierre Rossi <pierre.rossi@gmail.com>
+
+ [Qt][WK2] Map the elementRect exposed in QML to the view for popup menu
+ https://bugs.webkit.org/show_bug.cgi?id=91645
+
+ Reviewed by Simon Hausmann.
+
+ This way the geometry of the QML item is still sensible even if we panned
+ and zoomed.
+
+ * UIProcess/qt/WebPopupMenuProxyQt.cpp:
+ (ItemSelectorContextObject):
+ (WebKit::ItemSelectorContextObject::elementRect):
+ (WebKit::ItemSelectorContextObject::ItemSelectorContextObject):
+ (WebKit::WebPopupMenuProxyQt::showPopupMenu):
+
+2012-07-19 Zoltan Nyul <zoltan.nyul@intel.com>
+
+ [EFL][WK2] Using different cache directory for each WTR process
+ https://bugs.webkit.org/show_bug.cgi?id=91719
+
+ Reviewed by Kenneth Rohde Christiansen.
+
+ Make sure we return a valid application cache directory in
+ WebContextEfl.
+
+ * UIProcess/efl/WebContextEfl.cpp:
+ (WebKit::WebContext::applicationCacheDirectory):
+
+2012-07-18 Christophe Dumez <christophe.dumez@intel.com>
+
+ [EFL][WK2] EFL should use DownloadSoup instead of defining DownloadEfl
+ https://bugs.webkit.org/show_bug.cgi?id=91602
+
+ Reviewed by Kenneth Rohde Christiansen.
+
+ Reuse WebProcess/Downloads/soup/DownloadSoup.cpp in EFL port
+ instead of redefining our own DownloadEfl.cpp. The EFL port
+ is also using libsoup so it is best to avoid code duplication.
+
+ * GNUmakefile.am:
+ * GNUmakefile.list.am:
+ * PlatformEfl.cmake:
+ * WebProcess/Downloads/Download.h:
+ (WebKit):
+ (Download):
+ * WebProcess/Downloads/efl/DownloadEfl.cpp: Removed.
+ * WebProcess/Downloads/efl/DownloadSoupErrorsEfl.cpp: Added.
+ (WebKit):
+ (WebKit::platformDownloadNetworkError):
+ (WebKit::platformDownloadDestinationError):
+ * WebProcess/Downloads/efl/FileDownloaderEfl.cpp: Removed.
+ * WebProcess/Downloads/efl/FileDownloaderEfl.h: Removed.
+ * WebProcess/Downloads/gtk/DownloadSoupErrorsGtk.cpp: Added.
+ (WebKit):
+ (WebKit::platformDownloadNetworkError):
+ (WebKit::platformDownloadDestinationError):
+ * WebProcess/Downloads/soup/DownloadSoup.cpp: Make the code
+ compile for other ports than GTK.
+ (WebKit::DownloadClient::didReceiveResponse):
+ (WebKit::DownloadClient::didReceiveData):
+ (WebKit::DownloadClient::didFail):
+ (WebKit::Download::continueWithoutCredential):
+ (WebKit):
+ (WebKit::Download::useCredential):
+ (WebKit::Download::cancelAuthenticationChallenge):
+ * WebProcess/Downloads/soup/DownloadSoupErrors.h: Added.
+ (WebKit):
+
+2012-07-18 Christophe Dumez <christophe.dumez@intel.com>
+
+ [WK2] Add C API for Network Information API
+ https://bugs.webkit.org/show_bug.cgi?id=90762
+
+ Reviewed by Kenneth Rohde Christiansen.
+
+ Add C API for WKNetworkInfo and WKNetworkInfoManager
+ so that they can be used by the client.
+
+ * CMakeLists.txt:
+ * GNUmakefile.list.am:
+ * Target.pri:
+ * UIProcess/API/C/WKContext.cpp:
+ (WKContextGetNetworkInfoManager):
+ * UIProcess/API/C/WKContext.h:
+ * UIProcess/API/C/WKNetworkInfo.cpp: Copied from Source/WebKit2/UIProcess/API/C/WKNetworkInfoManager.cpp.
+ (WKNetworkInfoGetTypeID):
+ (WKNetworkInfoCreate):
+ * UIProcess/API/C/WKNetworkInfo.h: Copied from Source/WebKit2/UIProcess/API/C/WKNetworkInfoManager.cpp.
+ * UIProcess/API/C/WKNetworkInfoManager.cpp:
+ (WKNetworkInfoManagerSetProvider):
+ (WKNetworkInfoManagerProviderDidChangeNetworkInformation):
+ * UIProcess/API/C/WKNetworkInfoManager.h:
+
+2012-07-18 Christophe Dumez <christophe.dumez@intel.com>
+
+ [EFL][WK2] ewk_cookie_manager_persistent_storage_set is not exported
+ https://bugs.webkit.org/show_bug.cgi?id=91647
+
+ Reviewed by Gustavo Noronha Silva.
+
+ Properly export ewk_cookie_manager_persistent_storage_set in
+ ewk_cookie_manager.h by using EAPI.
+
+ * UIProcess/API/efl/ewk_cookie_manager.h:
+
+2012-07-18 Christophe Dumez <christophe.dumez@intel.com>
+
+ [EFL] Add central error management to EFL port
+ https://bugs.webkit.org/show_bug.cgi?id=91598
+
+ Reviewed by Kenneth Rohde Christiansen.
+
+ Make use of ErrorsEfl header from WebCore in
+ WebKit2, for Ewk_Web_Error and WebErrorsEfl.
+
+ * UIProcess/API/efl/ewk_web_error.cpp:
+ (ewk_web_error_type_get):
+ * UIProcess/API/efl/ewk_web_error.h:
+ * WebProcess/WebCoreSupport/efl/WebErrorsEfl.cpp:
+ (WebKit::cancelledError):
+ (WebKit::blockedError):
+ (WebKit::cannotShowURLError):
+ (WebKit::interruptedForPolicyChangeError):
+ (WebKit::cannotShowMIMETypeError):
+ (WebKit::fileDoesNotExistError):
+ (WebKit::pluginWillHandleLoadError):
+
+2012-07-18 Thiago Marcos P. Santos <thiago.santos@intel.com>
+
+ [EFL] Set a theme for EFL WebKit2 unit test fixture
+ https://bugs.webkit.org/show_bug.cgi?id=91618
+
+ Reviewed by Kenneth Rohde Christiansen.
+
+ The test fixture should load the theme generated by the build
+ instead of trying to load the system theme.
+
+ * PlatformEfl.cmake:
+ * UIProcess/API/efl/tests/UnitTestUtils/EWK2UnitTestBase.cpp:
+ (EWK2UnitTest::EWK2UnitTestBase::SetUp):
+ * UIProcess/API/efl/tests/UnitTestUtils/EWK2UnitTestEnvironment.cpp:
+ (EWK2UnitTest::EWK2UnitTestEnvironment::defaultTheme):
+ (EWK2UnitTest):
+ * UIProcess/API/efl/tests/UnitTestUtils/EWK2UnitTestEnvironment.h:
+ (EWK2UnitTestEnvironment):
+
+2012-07-18 Pierre Rossi <pierre.rossi@gmail.com>
+
+ [Qt] QQuickWebView shouldn't recieve mouse events while dialogs are active
+ https://bugs.webkit.org/show_bug.cgi?id=91634
+
+ Reviewed by Alexis Menard.
+
+ One side-effect of reimplementing childMouseEventFilter() in r122438 is that it can end up
+ bypassing the mouseArea mechanism used in QML dialogs and still forward some mouse events
+ over to the web process. We can rely on the same m_dialogActive mechanism already used for
+ touch events in there as well.
+
+ * UIProcess/API/qt/qquickwebview.cpp:
+ (QQuickWebView::childMouseEventFilter): ignore events and return early if a dialog is active.
+
+2012-07-18 Pierre Rossi <pierre.rossi@gmail.com>
+
+ [Qt] Build fix for ENABLE_TOUCH_EVENTS=0
+
+ Rubber-stamped by No'am Rosenthal.
+
+ Add the appropriate ENABLE(TOUCH_EVENTS) where they're needed.
+
+ * UIProcess/API/qt/raw/qrawwebview.cpp:
+ * UIProcess/API/qt/raw/qrawwebview_p.h: include Platform.h so we can use the ENABLE macro.
+ * UIProcess/InspectorServer/qt/WebInspectorServerQt.cpp: Also add the missing QFile include.
+ * UIProcess/qt/QtWebPageEventHandler.cpp:
+ (WebKit::QtWebPageEventHandler::deactivateTapHighlight):
+
+2012-07-18 Christophe Dumez <christophe.dumez@intel.com>
+
+ [EFL][WK2] Add Ewk class for cookie manager
+ https://bugs.webkit.org/show_bug.cgi?id=91053
+
+ Reviewed by Gustavo Noronha Silva.
+
+ Add new Ewk_Cookie_Manager class to allow the client
+ to set/get the cookie acceptance policy, support
+ persistent cookie storage and clear cookies.
+
+ The Ewk_Cookie_Manager instance can be retrieved
+ from the Ewk_Context API.
+
+ * PlatformEfl.cmake:
+ * UIProcess/API/efl/EWebKit2.h:
+ * UIProcess/API/efl/ewk_context.cpp:
+ (_Ewk_Context):
+ (_Ewk_Context::_Ewk_Context):
+ (_Ewk_Context::~_Ewk_Context):
+ (ewk_context_cookie_manager_get):
+ * UIProcess/API/efl/ewk_context.h:
+ * UIProcess/API/efl/ewk_cookie_manager.cpp: Added.
+ (_Ewk_Cookie_Manager):
+ (_Ewk_Cookie_Manager::_Ewk_Cookie_Manager):
+ (ewk_cookie_manager_persistent_storage_set):
+ (ewk_cookie_manager_accept_policy_set):
+ (Get_Policy_Async_Data):
+ (getAcceptPolicyCallback):
+ (ewk_cookie_manager_async_accept_policy_get):
+ (Get_Hostnames_Async_Data):
+ (getHostnamesWithCookiesCallback):
+ (ewk_cookie_manager_async_hostnames_with_cookies_get):
+ (ewk_cookie_manager_hostname_cookies_clear):
+ (ewk_cookie_manager_cookies_clear):
+ (ewk_cookie_manager_free):
+ (ewk_cookie_manager_new):
+ * UIProcess/API/efl/ewk_cookie_manager.h: Added.
+ * UIProcess/API/efl/ewk_cookie_manager_private.h: Added.
+
+2012-07-18 Carlos Garcia Campos <cgarcia@igalia.com>
+
+ [GTK] Add WebKitWebView::submit-form signal to WebKit2 GTK+ API
+ https://bugs.webkit.org/show_bug.cgi?id=91605
+
+ Reviewed by Gustavo Noronha Silva.
+
+ The signal is emitted when a form is about to submitted, with a
+ form submission request that can be used to get the text fields
+ and to continue the form submission wheh done.
+
+ * GNUmakefile.list.am: Add new files to compilation.
+ * UIProcess/API/gtk/WebKitFormClient.cpp: Added.
+ (willSubmitForm): Create a WebKitFormSubmissionRequest and call
+ webkitWebViewSubmitFormRequest() with the request.
+ (attachFormClientToView): Add impementation for willSubmitForm
+ callback.
+ * UIProcess/API/gtk/WebKitFormClient.h: Added.
+ * UIProcess/API/gtk/WebKitFormSubmissionRequest.cpp: Added.
+ (webkit_form_submission_request_init):
+ (webkitFormSubmissionRequestFinalize):
+ (webkit_form_submission_request_class_init):
+ (webkitFormSubmissionRequestCreate): Create a new
+ WebKitFormSubmissionRequest for the given values dictionary and
+ submission listener.
+ (webkit_form_submission_request_get_text_fields): Create a
+ GHashTable with the text fields values and return it.
+ (webkit_form_submission_request_submit): Continue the form
+ submission.
+ * UIProcess/API/gtk/WebKitFormSubmissionRequest.h: Added.
+ * UIProcess/API/gtk/WebKitFormSubmissionRequestPrivate.h: Added.
+ * UIProcess/API/gtk/WebKitWebView.cpp:
+ (webkitWebViewConstructed): Attach web view to form client.
+ (webkit_web_view_class_init): Add WebKitWebView::submit-form
+ signal.
+ (webkitWebViewSubmitFormRequest): Emit WebKitWebView::submit-form
+ signal.
+ * UIProcess/API/gtk/WebKitWebView.h:
+ * UIProcess/API/gtk/WebKitWebViewPrivate.h:
+ * UIProcess/API/gtk/docs/webkit2gtk-docs.sgml: Add new section for
+ WebKitFormSubmissionRequest.
+ * UIProcess/API/gtk/docs/webkit2gtk-sections.txt: Add new symbols.
+ * UIProcess/API/gtk/tests/TestWebKitWebView.cpp:
+ (testWebViewSubmitForm):
+ (beforeAll):
+ * UIProcess/API/gtk/webkit2.h: Include
+ WebKitFormSubmissionRequest.h.
+
+2012-07-18 Carlos Garcia Campos <cgarcia@igalia.com>
+
+ [GTK] No main resource in WebView when page has been loaded from history cache
+ https://bugs.webkit.org/show_bug.cgi?id=91478
+
+ Reviewed by Gustavo Noronha Silva.
+
+ We are assuming that a resource loaded for the main frame that is
+ provisionally loading is the main resource of the web view. However
+ that's not true for pages loaded from history cache, so when you
+ go back/forward webkit_web_view_get_main_resource() always returns
+ NULL. We can assume that the first resource loaded for the main
+ frame is the main resource of the web view when
+ pageIsProvisionallyLoading is false.
+
+ * UIProcess/API/gtk/WebKitWebView.cpp:
+ (webkitWebViewResourceLoadStarted): Make sure we always have a
+ main resource for the web view.
+ * UIProcess/API/gtk/tests/TestResources.cpp:
+ (testWebViewResourcesHistoryCache): Test we always have a main
+ resource even after going back/forward.
+ (beforeAll): Add new test case.
+
+2012-07-18 Seokju Kwon <seokju.kwon@samsung.com>
+
+ [EFL] Rename WebInspectorEfl.cpp as WebInspectorProxyEfl.cpp
+ https://bugs.webkit.org/show_bug.cgi?id=91585
+
+ Reviewed by Andreas Kling.
+
+ Rename WebInspectorEfl.cpp as WebInspectorProxyEfl.cpp
+ since it implements the platform specific methods of WebInspectorProxy.
+
+ * PlatformEfl.cmake:
+ * UIProcess/efl/WebInspectorProxyEfl.cpp: Renamed from Source/WebKit2/UIProcess/efl/WebInspectorEfl.cpp.
+ (WebKit):
+ (WebKit::WebInspectorProxy::platformCreateInspectorPage):
+ (WebKit::WebInspectorProxy::platformOpen):
+ (WebKit::WebInspectorProxy::platformDidClose):
+ (WebKit::WebInspectorProxy::platformBringToFront):
+ (WebKit::WebInspectorProxy::platformIsFront):
+ (WebKit::WebInspectorProxy::platformInspectedURLChanged):
+ (WebKit::WebInspectorProxy::inspectorPageURL):
+ (WebKit::WebInspectorProxy::inspectorBaseURL):
+ (WebKit::WebInspectorProxy::platformInspectedWindowHeight):
+ (WebKit::WebInspectorProxy::platformAttach):
+ (WebKit::WebInspectorProxy::platformDetach):
+ (WebKit::WebInspectorProxy::platformSetAttachedWindowHeight):
+
+2012-07-18 Zoltan Horvath <zoltan@webkit.org>
+
+ [Qt] Modify the using of the QImage::Format enum to the appropriate functions from NativeImageQt
+ https://bugs.webkit.org/show_bug.cgi?id=91600
+
+ Reviewed by Andreas Kling.
+
+ Use NativeImageQt::defaultFormatForAlphaEnabledImages() and NativeImageQt::defaultFormatForOpaqueImages()
+ instead of the direct imagetypes at the appropriate places.
+
+ * Shared/qt/ShareableBitmapQt.cpp:
+ (WebKit::ShareableBitmap::createQImage):
+
+2012-07-18 Zeno Albisser <zeno@webkit.org>
+
+ [Qt][WK2] Caching of ShareableSurfaces breaks tiling.
+ https://bugs.webkit.org/show_bug.cgi?id=91609
+
+ A ShareableSurface should only be cached,
+ when it is GraphicsSurface based.
+
+ Reviewed by Kenneth Rohde Christiansen.
+
+ * UIProcess/LayerTreeCoordinatorProxy.cpp:
+ (WebKit::LayerTreeCoordinatorProxy::updateTileForLayer):
+ * UIProcess/LayerTreeCoordinatorProxy.h:
+ (LayerTreeCoordinatorProxy):
+
+2012-07-18 Carlos Garcia Campos <cgarcia@igalia.com>
+
+ [GTK] Fix a crash due to an invalid assert
+ https://bugs.webkit.org/show_bug.cgi?id=91614
+
+ Reviewed by Xan Lopez.
+
+ In webkitWebViewBaseContainerAdd() there's
+ ASSERT(priv->inspectorView); that should be the opposite, since we
+ shoulnd't have an inspector view when the inspector view is added.
+
+ * UIProcess/API/gtk/WebKitWebViewBase.cpp:
+ (webkitWebViewBaseContainerAdd):
+
+2012-07-18 Thiago Marcos P. Santos <thiago.santos@intel.com>
+
+ [CMake] Make gtest a shared library
+ https://bugs.webkit.org/show_bug.cgi?id=90973
+
+ Reviewed by Daniel Bates.
+
+ No need to link with gtest dependencies now since it is a shared library.
+
+ * PlatformEfl.cmake:
+
+2012-07-18 YoungTaeck Song <youngtaeck.song@samsung.com>
+
+ [WK2][EFL] Add a common code using Color instead of QColor
+ https://bugs.webkit.org/show_bug.cgi?id=91580
+
+ Reviewed by Simon Hausmann.
+
+ This patch is a subset of Efl's UI_SIDE_COMPOSITING implementation.
+ drawBorder's argument is QColor. So add a common code using Color to be used by Efl.
+
+ * UIProcess/texmap/LayerBackingStore.cpp:
+ (WebKit::LayerBackingStore::paintToTextureMapper):
+
+2012-07-17 Christophe Dumez <christophe.dumez@intel.com>
+
+ [EFL] Replace 0 by NULL in public headers documentation
+ https://bugs.webkit.org/show_bug.cgi?id=91470
+
+ Reviewed by Dirk Pranke.
+
+ Use NULL instead of 0 for pointer types in public
+ C headers.
+
+ * UIProcess/API/efl/ewk_intent.h:
+ * UIProcess/API/efl/ewk_intent_service.h:
+ * UIProcess/API/efl/ewk_url_request.h:
+ * UIProcess/API/efl/ewk_url_response.h:
+ * UIProcess/API/efl/ewk_view.h:
+ * UIProcess/API/efl/ewk_web_resource.h:
+
+2012-07-17 Carlos Garcia Campos <cgarcia@igalia.com>
+
+ [GTK] Don't use deprecated soup API in WebKit2APITests/TestResources
+ https://bugs.webkit.org/show_bug.cgi?id=91496
+
+ Reviewed by Martin Robinson.
+
+ soup_message_headers_get() is deprecated, use
+ soup_message_headers_get_one() instead.
+
+ * UIProcess/API/gtk/tests/TestResources.cpp:
+ (serverCallback):
+
+2012-07-17 Carlos Garcia Campos <cgarcia@igalia.com>
+
+ [GTK] Fix a typo in WebKit2APITests/TestResources
+ https://bugs.webkit.org/show_bug.cgi?id=91495
+
+ Reviewed by Xan Lopez.
+
+ * UIProcess/API/gtk/tests/TestResources.cpp:
+ (testWebResourceLoading):
+ (testWebResourceResponse):
+ (testWebResourceMimeType):
+ (testWebResourceActiveURI):
+
+2012-07-17 Vivek Galatage <vivekgalatage@gmail.com>
+
+ Web Inspector: refactor InspectorController::connectFrontend() to accept InspectorFrontendChannel.
+ https://bugs.webkit.org/show_bug.cgi?id=91196
+
+ Reviewed by Pavel Feldman.
+
+ Refactoring InspectorClients. InspectorClient::openInspectorFrontend
+ now returning the InspectorFrontendChannel.
+
+ * WebProcess/WebCoreSupport/WebInspectorClient.cpp:
+ (WebKit::WebInspectorClient::openInspectorFrontend):
+ * WebProcess/WebCoreSupport/WebInspectorClient.h:
+ (WebInspectorClient):
+
+2012-07-17 Carlos Garcia Campos <cgarcia@igalia.com>
+
+ [GTK] Paste primary selection when middle clicking in X11 WebKit2
+ https://bugs.webkit.org/show_bug.cgi?id=91411
+
+ Reviewed by Xan Lopez.
+
+ Handle middle click events to paste primary selection as expected
+ in any X11 application.
+
+ * WebProcess/WebPage/WebPage.cpp:
+ (WebKit::handleMouseEvent): Call handleMousePressedEvent() for GTK+
+ platform.
+ * WebProcess/WebPage/WebPage.h:
+ (WebPage): Add handleMousePressedEvent() for GTK+ platform.
+ * WebProcess/WebPage/gtk/WebPageGtk.cpp:
+ (WebKit::WebPage::handleMousePressedEvent): Handle middle click
+ events to paste primary selection like we do in WebKit1.
+
+2012-07-17 Ryuan Choi <ryuan.choi@samsung.com>
+
+ [EFL] Move codes related to theme setting from Widget to RenderTheme
+ https://bugs.webkit.org/show_bug.cgi?id=89842
+
+ Reviewed by Kenneth Rohde Christiansen.
+
+ * CMakeLists.txt: Added html/shadow to WebKit_INCLUDE_DIRECTORIES.
+ * WebProcess/WebPage/efl/WebPageEfl.cpp:
+ (WebKit::WebPage::setThemePath): Called RenderThemeEfl::setThemePath instead of setting theme in FrameView.
+
+2012-07-17 David Barr <davidbarr@chromium.org>
+
+ Introduce ENABLE_CSS_IMAGE_ORIENTATION compile flag
+ https://bugs.webkit.org/show_bug.cgi?id=89055
+
+ Reviewed by Kent Tamura.
+
+ The css3-images module is at candidate recommendation.
+ http://www.w3.org/TR/2012/CR-css3-images-20120417/#the-image-orientation
+
+ Add a configuration option for CSS image-orientation support, disabling it by default.
+
+ * Configurations/FeatureDefines.xcconfig:
+
+2012-07-16 Gyuyoung Kim <gyuyoung.kim@samsung.com>
+
+ Add RegisterProtocolHandlerClient to the Modules/protocolhandler
+ https://bugs.webkit.org/show_bug.cgi?id=90940
+
+ Reviewed by Hajime Morita.
+
+ As a step to let protocol handler be moved to the modules, RegisterProtocolHandlerClient needs
+ to be added to the Modules/protocolhandler. Because ChromeClient has some virtual functions for
+ protocol handlers, virtual functions should be moved to RegisterProtocolHandlerClient.
+
+ In order to support this, WebRegisterProtocolHandlerClient class is added. However, this is not implemented yet.
+ In addition, existing virtual functions in WebChromeClient are moved to WebRegisterProtocolHandlerClient.
+
+ * WebProcess/WebCoreSupport/WebChromeClient.h:
+ * WebProcess/WebCoreSupport/WebRegisterProtocolHandlerClient.h: Added.
+ (WebKit):
+ (WebRegisterProtoclHandlerClient):
+ (WebKit::WebRegisterProtoclHandlerClient::isProtocolHandlerRegistered):
+ (WebKit::WebRegisterProtoclHandlerClient::unregisterProtocolHandler):
+
+2012-07-16 Pete Williamson <petewil@google.com>
+
+ Export the iconURL list to make it available to the Internals class for testing
+ https://bugs.webkit.org/show_bug.cgi?id=88665
+
+ Reviewed by Kent Tamura.
+
+ * win/WebKit2.def: export the DocumentL::iconURLs function
+
+2012-07-16 Hajime Morrita <morrita@chromium.org>
+
+ WebCore needs WEBCORE_TESTING macro to mark methods being exported for testing.
+ https://bugs.webkit.org/show_bug.cgi?id=90764
+
+ Reviewed by Adam Barth.
+
+ Removed symbols which are now covered by WEBCORE_TESTING.
+
+ * win/WebKit2.def:
+ * win/WebKit2CFLite.def:
+
+2012-07-16 Christophe Dumez <christophe.dumez@intel.com>
+
+ [EFL][WK2] Implement decidePolicyForResponse in policy client
+ https://bugs.webkit.org/show_bug.cgi?id=91401
+
+ Reviewed by Kenneth Rohde Christiansen.
+
+ Provide implementation for decidePolicyForResponse callback
+ in WebKit2 EFL's policy client.
+
+ * UIProcess/API/efl/ewk_view_policy_client.cpp:
+ (decidePolicyForResponseCallback):
+ (ewk_view_policy_client_attach):
+
+2012-07-16 Ryuan Choi <ryuan.choi@samsung.com>
+
+ [EFL][WK2] Add APIs to support theme.
+ https://bugs.webkit.org/show_bug.cgi?id=90107
+
+ Reviewed by Hajime Morita.
+
+ RenderThemeEfl uses edj file to render native theme of form elements.
+ This patch provides default theme and a way to change edj theme file for
+ WebKit2/Efl.
+
+ * PlatformEfl.cmake:
+ * UIProcess/API/efl/ewk_view.cpp:
+ (_Ewk_View_Private_Data):
+ (ewk_view_base_add):
+ (ewk_view_theme_set):
+ (ewk_view_theme_get):
+ * UIProcess/API/efl/ewk_view.h:
+ * UIProcess/WebPageProxy.h:
+ (WebPageProxy):
+ * UIProcess/efl/WebPageProxyEfl.cpp:
+ (WebKit::WebPageProxy::setThemePath):
+ * WebProcess/WebPage/WebPage.h:
+ * WebProcess/WebPage/WebPage.messages.in:
+ * WebProcess/WebPage/efl/WebPageEfl.cpp:
+ (WebKit::WebPage::setThemePath):
+
+2012-07-16 Kihong Kwon <kihong.kwon@samsung.com>
+
+ Remove setController from BatteryClient
+ https://bugs.webkit.org/show_bug.cgi?id=90944
+
+ Reviewed by Adam Barth.
+
+ Remove WebBatteryClient::setController function.
+
+ * WebProcess/WebCoreSupport/WebBatteryClient.cpp:
+ * WebProcess/WebCoreSupport/WebBatteryClient.h:
+ (WebBatteryClient):
+
+2012-07-16 Christophe Dumez <christophe.dumez@intel.com>
+
+ [EFL][WK2] Make Ewk_Navigation_Policy_Decision ref counted
+ https://bugs.webkit.org/show_bug.cgi?id=91343
+
+ Reviewed by Antonio Gomes.
+
+ Make Ewk_Navigation_Policy_Decision ref counted so that the
+ client can make navigation policy decisions asynchronously
+ by ref'ing the Ewk_Navigation_Policy_Decision object passed
+ with the "policy,*" signals.
+
+ * UIProcess/API/efl/ewk_navigation_policy_decision.cpp:
+ (_Ewk_Navigation_Policy_Decision):
+ (_Ewk_Navigation_Policy_Decision::_Ewk_Navigation_Policy_Decision):
+ (_Ewk_Navigation_Policy_Decision::~_Ewk_Navigation_Policy_Decision):
+ (ewk_navigation_policy_decision_ref):
+ (ewk_navigation_policy_decision_unref):
+ * UIProcess/API/efl/ewk_navigation_policy_decision.h:
+ * UIProcess/API/efl/ewk_view.h:
+ * UIProcess/API/efl/ewk_view_policy_client.cpp:
+ (decidePolicyForNavigationAction):
+ (decidePolicyForNewWindowAction):
+
+2012-07-16 Zoltan Horvath <zoltan@webkit.org>
+
+ [Qt] Change NativeImagePtr from QPixmap* to QImage*
+ https://bugs.webkit.org/show_bug.cgi?id=88785
+
+ Reviewed by Simon Hausmann.
+
+ Since we use raster engine there is no difference between QPixmap and QImage, so we are going
+ to use QImage everywhere where it is possible. This refactoring contains the change of the
+ NativeImagePtr typedef from QPixmap* to QImage* and covers the related modifications.
+
+ Part of the change is similar to Viatcheslav Ostapenko's internal work.
+
+ Covered by existing tests.
+
+ * Shared/qt/ShareableBitmapQt.cpp:
+ (WebKit::ShareableBitmap::createImage):
+ * UIProcess/qt/QtWebIconDatabaseClient.cpp:
+ (WebKit::QtWebIconDatabaseClient::iconImageForPageURL):
+ * WebProcess/WebCoreSupport/qt/WebDragClientQt.cpp:
+ (WebKit::convertQImageToShareableBitmap):
+ (WebKit::WebDragClient::startDrag):
+ * WebProcess/WebPage/LayerTreeCoordinator/LayerTreeCoordinator.cpp:
+ (WebKit::LayerTreeCoordinator::adoptImageBackingStore):
+
+2012-07-16 Carlos Garcia Campos <cgarcia@igalia.com>
+
+ Unreviewed. Fix make distcheck.
+
+ * UIProcess/API/gtk/tests/GNUmakefile.am: Add test resources to
+ EXTRA_DIST.
+
+2012-07-15 Christophe Dumez <christophe.dumez@intel.com>
+
+ [EFL][WK2] Define destructors for Ewk structures
+ https://bugs.webkit.org/show_bug.cgi?id=91338
+
+ Reviewed by Kentaro Hara.
+
+ Add destructors to Ewk structures and move
+ memory freeing code from *_free() or *_unref()
+ functions to the destructors.
+
+ * UIProcess/API/efl/ewk_intent.cpp:
+ (_Ewk_Intent::_Ewk_Intent):
+ (_Ewk_Intent):
+ (_Ewk_Intent::~_Ewk_Intent):
+ (ewk_intent_unref):
+ * UIProcess/API/efl/ewk_intent_service.cpp:
+ (_Ewk_Intent_Service):
+ (_Ewk_Intent_Service::~_Ewk_Intent_Service):
+ (ewk_intent_service_unref):
+ * UIProcess/API/efl/ewk_navigation_policy_decision.cpp:
+ (_Ewk_Navigation_Policy_Decision):
+ (_Ewk_Navigation_Policy_Decision::~_Ewk_Navigation_Policy_Decision):
+ (ewk_navigation_policy_decision_free):
+ * UIProcess/API/efl/ewk_url_request.cpp:
+ (_Ewk_Url_Request):
+ (_Ewk_Url_Request::~_Ewk_Url_Request):
+ (ewk_url_request_unref):
+ * UIProcess/API/efl/ewk_url_response.cpp:
+ (_Ewk_Url_Response):
+ (_Ewk_Url_Response::~_Ewk_Url_Response):
+ (ewk_url_response_unref):
+ * UIProcess/API/efl/ewk_view.cpp:
+ (_Ewk_View_Private_Data):
+ (_Ewk_View_Private_Data::~_Ewk_View_Private_Data):
+ (_ewk_view_priv_del):
+ * UIProcess/API/efl/ewk_web_error.cpp:
+ (_Ewk_Web_Error):
+ (_Ewk_Web_Error::~_Ewk_Web_Error):
+ (ewk_web_error_free):
+ * UIProcess/API/efl/ewk_web_resource.cpp:
+ (_Ewk_Web_Resource):
+ (_Ewk_Web_Resource::~_Ewk_Web_Resource):
+ (ewk_web_resource_unref):
+
+2012-07-14 Eric Carlson <eric.carlson@apple.com>
+
+ Enable AVCF hardware video decoding
+ https://bugs.webkit.org/show_bug.cgi?id=90015
+ <rdar://problem/10770317>
+
+ Reviewed by Anders Carlsson.
+
+ * DerivedSources.make: Define HAVE_AVCF if necessary.
+
+ * WebProcess/WebCoreSupport/WebChromeClient.cpp:
+ (WebKit):
+ (WebKit::WebChromeClient::graphicsDeviceAdapter): New, return the layer tree host's
+ graphics adapter.
+ * WebProcess/WebCoreSupport/WebChromeClient.h:
+ (WebChromeClient):
+ * WebProcess/WebPage/LayerTreeHost.h:
+ (WebCore):
+ (LayerTreeHost):
+ (WebKit::LayerTreeHost::graphicsDeviceAdapter): New, default implementation.
+
+ * WebProcess/WebPage/ca/win/LayerTreeHostCAWin.h:
+ (LayerTreeHostCAWin):
+
+2012-07-13 Thiago Marcos P. Santos <thiago.santos@intel.com>
+
+ [CMake] Proper handling of ENABLE_API_TESTS build option
+ https://bugs.webkit.org/show_bug.cgi?id=91221
+
+ Reviewed by Rob Buis.
+
+ Build unit tests only if ENABLE_API_TESTS is set.
+
+ * PlatformEfl.cmake:
+
+2012-07-13 Christophe Dumez <christophe.dumez@intel.com>
+
+ [EFL][WK2] Make new public Ewk headers as installable
+ https://bugs.webkit.org/show_bug.cgi?id=91232
+
+ Reviewed by Antonio Gomes.
+
+ Make new public Ewk headers installable.
+
+ * PlatformEfl.cmake:
+
+2012-07-13 Carlos Garcia Campos <cgarcia@igalia.com>
+
+ [GTK] Implement disk cache in WebKit2
+ https://bugs.webkit.org/show_bug.cgi?id=90797
+
+ Reviewed by Xan Lopez.
+
+ * WebProcess/gtk/WebProcessGtk.cpp:
+ (WebKit::getCacheDiskFreeSize): Use an ASSERT instead of an early
+ return since the cache feature is now always added to the session.
+ (WebKit::WebProcess::platformSetCacheModel): Get the cache from
+ the session and set the maximum cache size as computed by
+ calculateCacheSizes().
+ (WebKit::WebProcess::platformClearResourceCaches): Call
+ soup_cache_clear().
+ (WebKit::WebProcess::platformTerminate): Make sure all pending
+ data is saved to the disk before the web process finishes.
+ * WebProcess/gtk/WebProcessMainGtk.cpp:
+ (WebKit::WebProcessMainGtk): Create a SoupCache feature and add it
+ to the default SoupSession.
+
+2012-07-13 Carlos Garcia Campos <cgarcia@igalia.com>
+
+ [GTK] Fix disk cache size computation in WebKit2
+ https://bugs.webkit.org/show_bug.cgi?id=91226
+
+ Reviewed by Xan Lopez.
+
+ We are passing the free disk space value in bytes to
+ calculateCacheSizes() which expects values in MB.
+
+ * WebProcess/gtk/WebProcessGtk.cpp:
+ (WebKit::WebProcess::platformSetCacheModel):
+
+2012-07-13 Carlos Garcia Campos <cgarcia@igalia.com>
+
+ [GTK] WebKit2 crash when going back/forward
+ https://bugs.webkit.org/show_bug.cgi?id=91220
+
+ Reviewed by Xan Lopez.
+
+ For some reason when a page is loaded from the backforward list,
+ when the didCommitLoadForFrame callback is called for the main
+ frame, the callback didInitiateLoadForResource hasn't been called
+ yet, so we don't even have a main resource at that point. We were
+ assuming we always had a main resource with a response. For now we
+ just check whether we have a resource before trying to set the
+ certificate to fix the crash, but we need to figue out why this is
+ happening an how to properly fix it.
+
+ * UIProcess/API/gtk/WebKitLoaderClient.cpp:
+ (didCommitLoadForFrame): Check whether we have a main resource
+ before setting the certificate.
+
+2012-07-13 Christophe Dumez <christophe.dumez@intel.com>
+
+ [EFL][WK2] Use eina stringsharing for Ewk_Web_Resource's url
+ https://bugs.webkit.org/show_bug.cgi?id=91200
+
+ Reviewed by Kenneth Rohde Christiansen.
+
+ Use eina stringsharing for Ewk_Web_Resource's url
+ for consistency.
+
+ * UIProcess/API/efl/ewk_web_resource.cpp:
+ (_Ewk_Web_Resource):
+ (_Ewk_Web_Resource::_Ewk_Web_Resource):
+ (ewk_web_resource_unref):
+ (ewk_web_resource_url_get):
+ * UIProcess/API/efl/ewk_web_resource.h:
+
+2012-07-13 Carlos Garcia Campos <cgarcia@igalia.com>
+
+ [GTK] WebKitWebView::mouse-target-changed is not emitted when moved to/from edtiable content
+ https://bugs.webkit.org/show_bug.cgi?id=91216
+
+ Reviewed by Xan Lopez.
+
+ The problem is that the function to check whether two hit test
+ results are equal doesn't check the editable flag.
+
+ * UIProcess/API/gtk/WebKitHitTestResult.cpp:
+ (webkitHitTestResultCompare): Check also the editable flag.
+
+2012-07-13 Gyuyoung Kim <gyuyoung.kim@samsung.com>
+
+ [EFL] Add *explicit* keyword to constructor which has a parameter
+ https://bugs.webkit.org/show_bug.cgi?id=91207
+
+ Reviewed by Zoltan Herczeg.
+
+ Add *explicit* keyword to contructor which has a parameter in order to avoid implicit type conversion.
+
+ * WebProcess/WebCoreSupport/efl/WebFrameNetworkingContext.h:
+ (WebFrameNetworkingContext::WebFrameNetworkingContext):
+
+2012-07-13 Zeno Albisser <zeno@webkit.org>
+
+ [Qt][WK2] Implement GraphicsSurface for Linux/GLX.
+ https://bugs.webkit.org/show_bug.cgi?id=90881
+
+ Add a GLX based GraphicsSurface implementation for Linux.
+
+ Reviewed by Noam Rosenthal.
+
+ * Shared/ShareableSurface.cpp:
+ (WebKit::ShareableSurface::create):
+ Only create a GraphicsSurface from a ShareableSurface::Handle
+ in case the Handle contains a valid GraphicsSurface token.
+ Otherwise fall back to creating a ShareableBitmap.
+ * UIProcess/LayerTreeCoordinatorProxy.cpp:
+ (WebKit::createLayerTileUniqueKey):
+ Create a unique key for a surface based on tileID and layerID.
+ (WebKit::LayerTreeCoordinatorProxy::updateTileForLayer):
+ Even when GraphicsSurface is enabled, not all ShareableSurfaces
+ will necessarily be backed by a GraphicsSurface. In case of
+ a ShareableSurface being backed by a ShareableBitmap instead,
+ the GraphicsSurface token will always be null.
+ So instead of using the GraphicsSurface token as a key for
+ storing surfaces in a map, we create a unique key from
+ layerID and tileID.
+ * UIProcess/LayerTreeCoordinatorProxy.h:
+ (LayerTreeCoordinatorProxy):
+
+2012-07-12 Carlos Garcia Campos <cgarcia@igalia.com>
+
+ [GTK] Add API to get HTTPS status to WebKit2 GTK+
+ https://bugs.webkit.org/show_bug.cgi?id=91100
+
+ Reviewed by Martin Robinson.
+
+ Add webkit_uri_response_get_https_status() to return
+ GTlsCertificate and GTlsCertificateFlags with information about
+ the SSL certificate and the possible errors with the certificate.
+
+ * GNUmakefile.list.am: Add new files to compilation.
+ * PlatformEfl.cmake: Ditto.
+ * Shared/efl/PlatformCertificateInfo.h: Removed.
+ * Shared/soup/PlatformCertificateInfo.cpp: Added.
+ (WebKit::PlatformCertificateInfo::PlatformCertificateInfo):
+ (WebKit::PlatformCertificateInfo::~PlatformCertificateInfo):
+ (WebKit::PlatformCertificateInfo::encode): Encode the
+ GTlsCertificate and GTlsCertificateFlags.
+ (WebKit::PlatformCertificateInfo::decode): Decode
+ PlatformCertificateInfo into a GTlsCertificate and GTlsCertificateFlags.
+ * Shared/soup/PlatformCertificateInfo.h: Renamed from Source/WebKit2/Shared/gtk/PlatformCertificateInfo.h.
+ (WebKit::PlatformCertificateInfo::certificate): Return the certificate.
+ (WebKit::PlatformCertificateInfo::tlsErrors): Return the TLS errors
+ * UIProcess/API/gtk/WebKitLoaderClient.cpp:
+ (didCommitLoadForFrame): Set the certificate of the current frame
+ to the response of the main resource.
+ * UIProcess/API/gtk/WebKitURIResponse.cpp:
+ (webkit_uri_response_get_https_status): Return GTlsCertificate and
+ GTlsCertificateFlags.
+ (webkitURIResponseSetCertificateInfo): Update the internal
+ ResourceResponse with the GTlsCertificate and GTlsCertificateFlags
+ of the given PlatformCertificateInfo.
+ * UIProcess/API/gtk/WebKitURIResponse.h:
+ * UIProcess/API/gtk/WebKitURIResponsePrivate.h:
+ * UIProcess/API/gtk/docs/webkit2gtk-sections.txt: Add new symbol.
+ * UIProcess/API/gtk/tests/GNUmakefile.am:
+ * UIProcess/API/gtk/tests/TestMain.h:
+ (Test::getResourcesDir): Helper function to get the resources
+ directory of the WebKit2 API tests.
+ * UIProcess/API/gtk/tests/TestSSL.cpp: Added.
+ (testSSL):
+ (serverCallback):
+ (beforeAll):
+ (afterAll):
+ * UIProcess/API/gtk/tests/WebKitTestServer.cpp:
+ (WebKitTestServer::WebKitTestServer): Add support por SSL test
+ servers.
+ * UIProcess/API/gtk/tests/WebKitTestServer.h:
+ (WebKitTestServer): Add ssl parameter to create a HTTPS server.
+ * UIProcess/API/gtk/tests/resources/test-cert.pem: Added.
+ * UIProcess/API/gtk/tests/resources/test-key.pem: Added.
+
+2012-07-12 Christophe Dumez <christophe.dumez@intel.com>
+
+ [WK2][EFL] Facilitate debugging of the Web Process
+ https://bugs.webkit.org/show_bug.cgi?id=90768
+
+ Reviewed by Kenneth Rohde Christiansen.
+
+ The EFL port now checks if the WEB_PROCESS_CMD_PREFIX
+ environment variable is set and uses it as prefix
+ when spawning the Web process if it is. This is used
+ for debugging purposes with prefixes such as:
+ "xterm -title renderer -e gdb --args".
+
+ * UIProcess/Launcher/ProcessLauncher.h:
+ (LaunchOptions):
+ * UIProcess/Launcher/efl/ProcessLauncherEfl.cpp:
+ (WebKit::ProcessLauncher::launchProcess):
+ * UIProcess/WebProcessProxy.cpp:
+ (WebKit::WebProcessProxy::connect):
+
+2012-07-12 Timothy Hatcher <timothy@apple.com>
+
+ Make the "Inspect Element" context menu item appear in nightly builds again.
+
+ https://webkit.org/b/89323
+
+ Reviewed by Anders Carlsson.
+
+ * Shared/API/c/WKContextMenuItem.cpp:
+ (compatibleContextMenuItemTag): Added. Checks for the specific version of Safari 6 that needs the
+ tag fixed up to match values it expects.
+ (WKContextMenuItemGetTag): On Mac platforms call compatibleContextMenuItemTag to fix up the tag
+ before returning it.
+ * Shared/API/c/WKContextMenuItemTypes.h: Fix the order of the WKContextMenuItemTag enum
+ to be binary compatible with older versions of WebKit2.
+
+2012-07-12 Thiago Marcos P. Santos <thiago.santos@intel.com>
+
+ [EFL] Port the test framework to WebKit 2
+ https://bugs.webkit.org/show_bug.cgi?id=90606
+
+ Reviewed by Kenneth Rohde Christiansen.
+
+ This port of EFL's WebKit 1 test framework uses a more gtest-ish
+ way of writing tests and it is based on a test fixture that loads a
+ page synchronously as convenience (if needed). This base fixture can be
+ easily extended by just inheriting from it.
+
+ * PlatformEfl.cmake:
+ * UIProcess/API/efl/tests/UnitTestUtils/EWK2UnitTestBase.cpp: Added.
+ (EWK2UnitTest):
+ (EWK2UnitTest::onLoadProgress):
+ (EWK2UnitTest::EWK2UnitTestBase::EWK2UnitTestBase):
+ (EWK2UnitTest::EWK2UnitTestBase::SetUp):
+ (EWK2UnitTest::EWK2UnitTestBase::TearDown):
+ (EWK2UnitTest::EWK2UnitTestBase::loadUrlSync):
+ * UIProcess/API/efl/tests/UnitTestUtils/EWK2UnitTestBase.h: Added.
+ (EWK2UnitTest):
+ (EWK2UnitTestBase):
+ (EWK2UnitTest::EWK2UnitTestBase::setLoadProgress):
+ (EWK2UnitTest::EWK2UnitTestBase::webView):
+ * UIProcess/API/efl/tests/UnitTestUtils/EWK2UnitTestEnvironment.cpp: Added.
+ (EWK2UnitTest):
+ (EWK2UnitTest::EWK2UnitTestEnvironment::EWK2UnitTestEnvironment):
+ (EWK2UnitTest::EWK2UnitTestEnvironment::defaultTestPageUrl):
+ * UIProcess/API/efl/tests/UnitTestUtils/EWK2UnitTestEnvironment.h: Added.
+ (EWK2UnitTest):
+ (EWK2UnitTestEnvironment):
+ (EWK2UnitTest::EWK2UnitTestEnvironment::useX11Window):
+ (EWK2UnitTest::EWK2UnitTestEnvironment::defaultWidth):
+ (EWK2UnitTest::EWK2UnitTestEnvironment::defaultHeight):
+ * UIProcess/API/efl/tests/UnitTestUtils/EWK2UnitTestMain.cpp: Added.
+ (parseArguments):
+ (main):
+ * UIProcess/API/efl/tests/resources/default_test_page.html: Added.
+ * UIProcess/API/efl/tests/test_ewk2_view.cpp: Added.
+ (TEST_F):
+
+2012-07-12 Christophe Dumez <christophe.dumez@intel.com>
+
+ [WK2] Add missing Network Information API integration to WebContext and WebPage
+ https://bugs.webkit.org/show_bug.cgi?id=90781
+
+ Reviewed by Anders Carlsson.
+
+ Integrate Network Information API to WebPage, WebContext and
+ properly route messages to the WebNetworkInfoManagerProxy.
+ Without this, the Network Information tests are crashing for
+ WebKit2.
+
+ * UIProcess/WebContext.cpp:
+ (WebKit::WebContext::WebContext):
+ (WebKit::WebContext::~WebContext):
+ (WebKit::WebContext::disconnectProcess):
+ (WebKit::WebContext::didReceiveMessage):
+ (WebKit::WebContext::didReceiveSyncMessage):
+ * UIProcess/WebContext.h:
+ (WebKit):
+ (WebContext):
+ (WebKit::WebContext::networkInfoManagerProxy):
+ * UIProcess/WebNetworkInfoManagerProxy.cpp:
+ (WebKit::WebNetworkInfoManagerProxy::didReceiveSyncMessage):
+ (WebKit):
+ * UIProcess/WebNetworkInfoManagerProxy.h:
+ (WebNetworkInfoManagerProxy):
+ * UIProcess/WebProcessProxy.cpp:
+ (WebKit::WebProcessProxy::didReceiveMessage):
+ (WebKit::WebProcessProxy::didReceiveSyncMessage):
+ * WebProcess/WebPage/WebPage.cpp:
+ (WebKit::WebPage::WebPage):
+
+2012-07-12 No'am Rosenthal <noam.rosenthal@nokia.com>
+
+ Move TextureMapperAnimation and texmap/LayerTransform to platform/graphics
+ https://bugs.webkit.org/show_bug.cgi?id=91111
+
+ Reviewed by Kenneth Rohde Christiansen.
+
+ Include the new filenames.
+
+ * WebProcess/WebPage/LayerTreeCoordinator/WebGraphicsLayer.h:
+ (WebGraphicsLayer):
+
+2012-07-12 Adenilson Cavalcanti <cavalcantii@gmail.com>
+
+ [Qt][WK2] Implement web notifications support
+ https://bugs.webkit.org/show_bug.cgi?id=80702
+
+ Reviewed by Noam Rosenthal.
+
+ Adding a new type of permission request for Desktop Notifications (plus required code
+ to register the handle for this requests).
+
+ * UIProcess/API/qt/qwebpermissionrequest.cpp:
+ (QWebPermissionRequestPrivate::QWebPermissionRequestPrivate):
+ (QWebPermissionRequestPrivate):
+ (QWebPermissionRequest::create):
+ (QWebPermissionRequest::QWebPermissionRequest):
+ (QWebPermissionRequest::setAllow):
+ * UIProcess/API/qt/qwebpermissionrequest_p.h:
+ * UIProcess/API/qt/tests/qmltests/WebView/tst_notification.qml: Added.
+ * UIProcess/API/qt/tests/qmltests/common/notification.html: Added.
+ * UIProcess/qt/QtWebPageUIClient.cpp:
+ (WebKit::QtWebPageUIClient::QtWebPageUIClient):
+ (WebKit::QtWebPageUIClient::policyForNotificationPermissionRequest):
+ (WebKit):
+ * UIProcess/qt/QtWebPageUIClient.h:
+
+2012-07-12 Sudarsana Nagineni <sudarsana.nagineni@linux.intel.com>
+
+ [EFL][WK2] Browser crashes running BatteryStatus tests.
+ https://bugs.webkit.org/show_bug.cgi?id=91065
+
+ Reviewed by Kentaro Hara.
+
+ clientInfo was incorrectly casted to BatteryProviderEfl in helper
+ function. This patch fixes the issue.
+
+ * UIProcess/API/efl/BatteryProvider.cpp:
+ (toBatteryProvider):
+
+2012-07-12 Christophe Dumez <christophe.dumez@intel.com>
+
+ [EFL] [WK2] regression(r122411) Crashes in Ewk_View
+ https://bugs.webkit.org/show_bug.cgi?id=91068
+
+ Reviewed by Kentaro Hara.
+
+ Avoid using calloc() to allocate memory for structures
+ and use new operator instead. calloc() causes unwanted
+ behavior when allocing a structure which contains
+ non-pointer types (e.g. a HashMap) and leads to
+ crashes.
+
+ * UIProcess/API/efl/ewk_context.cpp:
+ (_Ewk_Context::_Ewk_Context):
+ * UIProcess/API/efl/ewk_intent.cpp:
+ (_Ewk_Intent):
+ (_Ewk_Intent::_Ewk_Intent):
+ (ewk_intent_unref):
+ (ewk_intent_new):
+ * UIProcess/API/efl/ewk_intent_service.cpp:
+ (_Ewk_Intent_Service):
+ (_Ewk_Intent_Service::_Ewk_Intent_Service):
+ (ewk_intent_service_unref):
+ (ewk_intent_service_new):
+ * UIProcess/API/efl/ewk_navigation_policy_decision.cpp:
+ (_Ewk_Navigation_Policy_Decision):
+ (_Ewk_Navigation_Policy_Decision::_Ewk_Navigation_Policy_Decision):
+ (ewk_navigation_policy_decision_free):
+ (ewk_navigation_policy_decision_new):
+ * UIProcess/API/efl/ewk_url_request.cpp:
+ (_Ewk_Url_Request):
+ (_Ewk_Url_Request::_Ewk_Url_Request):
+ (ewk_url_request_unref):
+ (ewk_url_request_new):
+ * UIProcess/API/efl/ewk_url_response.cpp:
+ (_Ewk_Url_Response):
+ (_Ewk_Url_Response::_Ewk_Url_Response):
+ (ewk_url_response_unref):
+ (ewk_url_response_new):
+ * UIProcess/API/efl/ewk_view.cpp:
+ (_Ewk_View_Private_Data):
+ (_Ewk_View_Private_Data::_Ewk_View_Private_Data):
+ (_ewk_view_priv_new):
+ (_ewk_view_priv_del):
+ * UIProcess/API/efl/ewk_web_error.cpp:
+ (_Ewk_Web_Error):
+ (_Ewk_Web_Error::_Ewk_Web_Error):
+ (ewk_web_error_free):
+ (ewk_web_error_new):
+ * UIProcess/API/efl/ewk_web_resource.cpp:
+ (_Ewk_Web_Resource):
+ (_Ewk_Web_Resource::_Ewk_Web_Resource):
+ (ewk_web_resource_unref):
+ (ewk_web_resource_new):
+
+2012-07-11 Andras Becsi <andras.becsi@nokia.com>
+
+ [Qt][WK2] ASSERT: "!m_viewportItem->isMoving()" in QtViewportHandler::flickMoveEnded()
+ https://bugs.webkit.org/show_bug.cgi?id=90875
+
+ Reviewed by Kenneth Rohde Christiansen.
+
+ Since MultiPointTouchArea and PinchArea use the childMouseEventFilter
+ method to filter touch events and because Flickable filters child mouse
+ events the canvas calls this function before propagating the touch event
+ to the WebView. Since Flickable does not accept touch events the canvas
+ tries to propagate a synthesized mouse event through the base class
+ childMouseEventFilter function which is accepted by Flickable and
+ interferes with the input events we send to Flicakble hence messes up
+ the internal state of the WebView.
+ This patch reimplements the virtual childMouseEventFilter method so that all
+ the mouse and touch events can be processed by WebKit before they arrive to
+ Flickable.
+
+ * UIProcess/API/qt/qquickwebview.cpp:
+ (QQuickWebView::childMouseEventFilter):
+ * UIProcess/API/qt/qquickwebview_p.h:
+
+2012-07-12 Carlos Garcia Campos <cgarcia@igalia.com>
+
+ Unreviewed. Fix GTK+ debug build after r122425.
+
+ * WebProcess/Cookies/soup/WebKitSoupCookieJarSqlite.cpp:
+ (webkitSoupCookieJarSqliteNew):
+
+2012-07-12 Sergio Villar Senin <svillar@igalia.com>
+
+ [WK2] Performance issue in FindController::findString
+ https://bugs.webkit.org/show_bug.cgi?id=78132
+
+ Reviewed by Anders Carlsson.
+
+ FindController should not unmark all text matches by default. It
+ will be done only if the string is not found or if
+ markAllTextMatches() is called. This will allow clients to look
+ for the next/previous without having to unmark() + mark() all the
+ text matches for every single search operation.
+
+ * UIProcess/API/gtk/WebKitFindController.cpp:
+ (webKitFindControllerPerform):
+ (webkit_find_controller_search_next):
+ (webkit_find_controller_search_previous):
+ * WebProcess/WebPage/FindController.cpp:
+ (WebKit::FindController::updateFindUIAfterPageScroll):
+ (WebKit::FindController::findString):
+
+2012-07-12 Christophe Dumez <christophe.dumez@intel.com>
+
+ [WK2][EFL] Add policy client to Ewk_View
+ https://bugs.webkit.org/show_bug.cgi?id=90953
+
+ Reviewed by Kenneth Rohde Christiansen.
+
+ Emit new "policy,decision,navigation" and "policy,decision,new,window"
+ on the Ewk_View when policy decisions should be taken by the client.
+
+ A new Ewk_Navigation_Policy_Decision type is introduced to provide
+ information about the navigation request and make a decision.
+ By default, the navigation request is accepted.
+
+ * PlatformEfl.cmake:
+ * UIProcess/API/efl/EWebKit2.h:
+ * UIProcess/API/efl/ewk_navigation_policy_decision.cpp: Added.
+ (_Ewk_Navigation_Policy_Decision):
+ (ewk_navigation_policy_decision_free):
+ (ewk_navigation_policy_navigation_type_get):
+ (ewk_navigation_policy_mouse_button_get):
+ (ewk_navigation_policy_modifiers_get):
+ (ewk_navigation_policy_frame_name_get):
+ (ewk_navigation_policy_request_get):
+ (ewk_navigation_policy_decision_accept):
+ (ewk_navigation_policy_decision_reject):
+ (ewk_navigation_policy_decision_download):
+ (ewk_navigation_policy_decision_new):
+ * UIProcess/API/efl/ewk_navigation_policy_decision.h: Added.
+ * UIProcess/API/efl/ewk_navigation_policy_decision_private.h: Added.
+ * UIProcess/API/efl/ewk_private.h: Added.
+ * UIProcess/API/efl/ewk_view.cpp:
+ (ewk_view_base_add):
+ (ewk_view_navigation_policy_decision):
+ (ewk_view_new_window_policy_decision):
+ * UIProcess/API/efl/ewk_view.h:
+ * UIProcess/API/efl/ewk_view_policy_client.cpp: Added.
+ (toEwkView):
+ (decidePolicyForNavigationAction):
+ (decidePolicyForNewWindowAction):
+ (ewk_view_policy_client_attach):
+ * UIProcess/API/efl/ewk_view_policy_client_private.h: Added.
+ * UIProcess/API/efl/ewk_view_private.h:
+
+2012-07-11 Carlos Garcia Campos <cgarcia@igalia.com>
+
+ [GTK] Add webkit_cookie_manager_set_persistent_storage() to WebKit2 GTK+ API
+ https://bugs.webkit.org/show_bug.cgi?id=83016
+
+ Reviewed by Martin Robinson.
+
+ Add a custom implementation of SoupCookieJarSqlite based on
+ libsoup code but using WebCore SQLite classes. SoupCookieJarSqlite
+ is part of libsoup-gnome, it's not a lot of code and it doesn't
+ change often, so it's better to simply have our own implementation
+ instead of making this important feature depend on an optional
+ dependency. There are plans to move the implementation to libsoup,
+ if that eventually happens we will remove our code to use libsoup
+ directly.
+
+ * GNUmakefile.am: Add new dirs to include path.
+ * GNUmakefile.list.am: Add new files to compilation.
+ * PlatformEfl.cmake: Ditto.
+ * Shared/soup/SoupCookiePersistentStorageType.h: Added.
+ * UIProcess/API/gtk/WebKitCookieManager.cpp:
+ (webkit_cookie_manager_set_persistent_storage): Set a persistent
+ storage for cookies.
+ * UIProcess/API/gtk/WebKitCookieManager.h:
+ * UIProcess/API/gtk/docs/webkit2gtk-sections.txt: Add new symbols
+ * UIProcess/API/gtk/tests/TestCookieManager.cpp:
+ (testCookieManagerPersistentStorage):
+ (serverCallback):
+ (beforeAll):
+ (afterAll):
+ * UIProcess/WebCookieManagerProxy.h:
+ (WebCookieManagerProxy): Add setCookiePersistentStorage() method
+ when using soup.
+ * UIProcess/soup/WebCookieManagerProxySoup.cpp: Added.
+ (WebKit::WebCookieManagerProxy::setCookiePersistentStorage): Send
+ SetCookiePersistentStorage message to the web process.
+ * WebProcess/Cookies/WebCookieManager.h:
+ (WebCookieManager): Add setCookiePersistentStorage() method when
+ using soup.
+ * WebProcess/Cookies/WebCookieManager.messages.in: Add
+ SetCookiePersistentStorage message when using soup.
+ * WebProcess/Cookies/soup/WebCookieManagerSoup.cpp:
+ (WebKit::WebCookieManager::setCookiePersistentStorage): Create a
+ new cookie jar for the given filename and storage type and add it
+ to the soup session.
+ * WebProcess/Cookies/soup/WebKitSoupCookieJarSqlite.cpp: Added.
+ (webkitSoupCookieJarSqliteOpenDatabase): Open SQLite database.
+ (webkitSoupCookieJarSqliteCreateTable): Create moz_cookies if it
+ doesn't exist.
+ (webkitSoupCookieJarSqliteLoad): Load the initial set of cookies
+ from the database.
+ (webkitSoupCookieJarSqliteInsertCookie): Insert a new cookie into
+ the database.
+ (webkitSoupCookieJarSqliteDeleteCookie): Delete an exising cookie
+ from the database.
+ (webkitSoupCookieJarSqliteChanged): Insert/delete cookies
+ depending on the change.
+ (webkitSoupCookieJarSqliteFinalize):
+ (webkit_soup_cookie_jar_sqlite_init):
+ (webkit_soup_cookie_jar_sqlite_class_init):
+ (webkitSoupCookieJarSqliteNew):
+ * WebProcess/Cookies/soup/WebKitSoupCookieJarSqlite.h: Added.
+
+2012-07-11 Christophe Dumez <christophe.dumez@intel.com>
+
+ [WK2][EFL] Ewk_View should provide more resource loading notifications
+ https://bugs.webkit.org/show_bug.cgi?id=90601
+
+ Reviewed by Antonio Gomes.
+
+ Add new "resource,request,sent", "resource,request,response",
+ "resource,request,failed" and "resource,request,finished" to
+ Ewk_View in order to notify the clients of the main resource
+ load state changes.
+
+ Introduce new Ewk_Url_Response type that is used to provide
+ information to the clients regarding the resource load
+ responses that are received.
+
+ * PlatformEfl.cmake:
+ * UIProcess/API/efl/EWebKit2.h:
+ * UIProcess/API/efl/ewk_url_response.cpp: Added.
+ (_Ewk_Url_Response):
+ (ewk_url_response_ref):
+ (ewk_url_response_unref):
+ (ewk_url_response_url_get):
+ (ewk_url_response_status_code_get):
+ (ewk_url_response_mime_type_get):
+ (ewk_url_response_new):
+ * UIProcess/API/efl/ewk_url_response.h: Added.
+ * UIProcess/API/efl/ewk_url_response_private.h: Added.
+ * UIProcess/API/efl/ewk_view.cpp:
+ (_Ewk_View_Private_Data):
+ (ewk_view_resource_load_initiated):
+ (ewk_view_resource_load_response):
+ (ewk_view_resource_load_failed):
+ (ewk_view_resource_load_finished):
+ (ewk_view_resource_request_sent):
+ (ewk_view_load_provisional_started):
+ * UIProcess/API/efl/ewk_view.h:
+ * UIProcess/API/efl/ewk_view_private.h:
+ * UIProcess/API/efl/ewk_view_resource_load_client.cpp:
+ (toEwkView):
+ (didInitiateLoadForResource):
+ (didSendRequestForResource):
+ (didReceiveResponseForResource):
+ (didFinishLoadForResource):
+ (didFailLoadForResource):
+ (ewk_view_resource_load_client_attach):
+
+2012-07-11 Mark Rowe <mrowe@apple.com>
+
+ Fix a logic error in the #if so that the correct code is compiled on Snow Leopard.
+
+ I introduced this in r122403 when I inverted the sense of the #if.
+
+ * UIProcess/mac/WKFullScreenWindowController.mm:
+
+2012-07-11 Mark Rowe <mrowe@apple.com>
+
+ <http://webkit.org/b/91024> Build against the latest SDK when targeting older OS X versions.
+
+ Reviewed by Dan Bernstein.
+
+ The deployment target is already set to the version that we're targeting, and it's that setting
+ which determines which functionality from the SDK is available to us.
+
+ * Configurations/Base.xcconfig:
+
+2012-07-11 Mark Rowe <mrowe@apple.com>
+
+ <http://webkit.org/b/91022> WebFullScreenController and WKFullScreenWindowController shouldn't add unprefixed methods to AppKit classes
+
+ Reviewed by Dan Bernstein.
+
+ * UIProcess/mac/WKFullScreenWindowController.mm:
+ (convertRectToScreen): Add a static helper method that calls through to -[NSWindow convertRectToScreen:] on OS versions where it exists
+ but otherwise provides a compatibility implementation of it.
+ (-[WKFullScreenWindowController enterFullScreen:]): Call our new helper.
+
+2012-07-11 Mark Rowe <mrowe@apple.com>
+
+ <http://webkit.org/b/91015> Remove BUILDING_ON / TARGETING macros in favor of system availability macros
+
+ This removal was handled by a script that translates the relevant macros in to the equivalent checks
+ using the system availability macros.
+
+ Reviewed by Filip Pizlo.
+
+ * Shared/DictionaryPopupInfo.cpp:
+ * Shared/DictionaryPopupInfo.h:
+ * Shared/mac/PasteboardTypes.mm:
+ * Shared/mac/WebEventFactory.mm:
+ * UIProcess/API/mac/PDFViewController.mm:
+ * UIProcess/API/mac/PageClientImpl.mm:
+ * UIProcess/API/mac/WKView.mm:
+ * UIProcess/Launcher/mac/DynamicLinkerEnvironmentExtractor.h:
+ * UIProcess/Launcher/mac/DynamicLinkerEnvironmentExtractor.mm:
+ * UIProcess/Launcher/mac/EnvironmentVariables.cpp:
+ * UIProcess/Launcher/mac/EnvironmentVariables.h:
+ * UIProcess/Launcher/mac/ProcessLauncherMac.mm:
+ * UIProcess/Plugins/mac/PluginProcessProxyMac.mm:
+ * UIProcess/WebPageProxy.cpp:
+ * UIProcess/WebPageProxy.h:
+ * UIProcess/WebPageProxy.messages.in:
+ * UIProcess/mac/TextCheckerMac.mm:
+ * UIProcess/mac/WKFullScreenWindowController.mm:
+ * UIProcess/mac/WebContextMac.mm:
+ * UIProcess/mac/WebPageProxyMac.mm:
+ * WebKit2Prefix.h:
+ * WebProcess/Plugins/Netscape/NetscapeBrowserFuncs.cpp:
+ * WebProcess/Plugins/Netscape/mac/NetscapeSandboxFunctions.mm:
+ * WebProcess/WebCoreSupport/WebEditorClient.cpp:
+ * WebProcess/WebCoreSupport/WebEditorClient.h:
+ * WebProcess/WebCoreSupport/mac/WebSystemInterface.mm:
+ * WebProcess/WebPage/WebPage.cpp:
+ * WebProcess/WebPage/WebPage.h:
+ * WebProcess/WebPage/WebPage.messages.in:
+ * WebProcess/WebPage/mac/WebPageMac.mm:
+ * WebProcess/com.apple.WebProcess.sb.in:
+ * WebProcess/mac/KeychainItemShimMethods.mm:
+ * WebProcess/mac/SecItemShimMethods.mm:
+ * WebProcess/mac/WebProcessMac.mm:
+ * WebProcess/mac/WebProcessMainMac.mm:
+ * WebProcess/mac/WebProcessShim.mm:
+
+2012-07-11 Simon Fraser <simon.fraser@apple.com>
+
+ pagesPerView param is misnamed for WKPageSetPageLength()
+ https://bugs.webkit.org/show_bug.cgi?id=91033
+
+ Rubber-stamped by Dan Bernstein.
+
+ The name of the second parameter to WKPageSetPageLength(),
+ 'pagesPerView', was confusing; it's a page size (normally width)
+ in pixels.
+
+ * UIProcess/API/C/WKPagePrivate.h:
+
+2012-07-11 Anders Carlsson <andersca@apple.com>
+
+ Add -Wtautological-compare and -Wsign-compare warning flags
+ https://bugs.webkit.org/show_bug.cgi?id=90994
+
+ Reviewed by Mark Rowe.
+
+ * Configurations/Base.xcconfig:
+
+2012-07-11 No'am Rosenthal <noam.rosenthal@nokia.com>
+
+ [Qt][WK2] Test actual rendering results in API tests
+ https://bugs.webkit.org/show_bug.cgi?id=80609
+
+ Reviewed by Alexis Menard.
+
+ Added a very basic test to tst_QQuickWebView to make sure rendering actually occurs.
+
+ * UIProcess/API/qt/tests/qquickwebview/tst_qquickwebview.cpp:
+ (tst_QQuickWebView):
+ (tst_QQuickWebView::basicRenderingSanity):
+
+2012-07-11 Mark Rowe <mrowe@apple.com>
+
+ Add a Mountain Lion version of libWebKitSystemInterface.a.
+
+ Reviewed by John Sullivan.
+
+ * Configurations/DebugRelease.xcconfig: Look for the library under its expected name.
+
+2012-07-11 No'am Rosenthal <noam.rosenthal@nokia.com>
+
+ [Qt] QRawWebView should notify when rendering is done, so that pixel results can be grabbed at the appropriate moment.
+ https://bugs.webkit.org/show_bug.cgi?id=90641
+
+ Reviewed by Jocelyn Turcotte.
+
+ Implement LayerTreeCoordinator::forceRepaint with logic equivalent to the one in
+ LayerTreeHostCA. If we flush the layers synchronously when forceRepaint is called,when
+ WKPageForceRepaint returns we are guaranteed to have an up-to-date image, as the visible
+ tiles are also synchronously updated.
+
+ * UIProcess/API/qt/tests/qrawwebview/tst_qrawwebview.cpp:
+ (WebView::WebView):
+ (WebView::viewNeedsDisplay):
+ (WebView::frameLoaded):
+ (WebView):
+ (WebView::onRepaintDone):
+ (WebView::finishForceRepaint):
+ (WebView::finishFirstLayoutForFrame):
+ (tst_qrawwebview::doNoBackground1):
+ (tst_qrawwebview::doNoBackground2):
+ (tst_qrawwebview::doNoBackground3):
+ (tst_qrawwebview::run):
+ The test for QRawWebView has been updated to use the WebKit2 ForcePaint API prior to
+ generating the pixel results. This has exposed a timing bug in the test - setting the
+ transparentBackground property of a page has to be done before it's created. This has
+ been fixed in the test.
+
+ * WebProcess/WebPage/LayerTreeCoordinator/LayerTreeCoordinator.cpp:
+ (WebKit::LayerTreeCoordinator::forceRepaint):
+ (WebKit::LayerTreeCoordinator::performScheduledLayerFlush):
+ (WebKit):
+
+2012-07-11 MORITA Hajime <morrita@google.com>
+
+ WebCoreSupport needs objects each of which follows major WebCore objects
+ https://bugs.webkit.org/show_bug.cgi?id=88499
+
+ Reviewed by Alexey Proskuryakov.
+
+ Added exporting symbols.
+
+ * win/WebKit2.def:
+ * win/WebKit2CFLite.def:
+
+2012-07-11 Sheriff Bot <webkit.review.bot@gmail.com>
+
+ Unreviewed, rolling out r122318.
+ http://trac.webkit.org/changeset/122318
+ https://bugs.webkit.org/show_bug.cgi?id=90961
+
+ It made 11 fast/events/touch fail (Requested by bbandix on
+ #webkit).
+
+ * UIProcess/API/qt/qquickwebview.cpp:
+ * UIProcess/API/qt/qquickwebview_p.h:
+
+2012-07-11 Keunsoon Lee <keunsoon.lee@samsung.com>
+
+ [EFL][Wk2] WebErrorsEfl.cpp needs to return non-empty errors
+ https://bugs.webkit.org/show_bug.cgi?id=90688
+
+ Reviewed by Hajime Morita.
+
+ Return meaningful error for each case.
+
+ * WebProcess/WebCoreSupport/efl/WebErrorsEfl.cpp:
+ (WebKit::cancelledError): create ResourceError for "request canceled".
+ (WebKit::blockedError): create ResourceError for "request blocked".
+ (WebKit::cannotShowURLError): create ResourceError for "cannot show url".
+ (WebKit::interruptedForPolicyChangeError): create ResourceError for "Frame load interrupted by policy change".
+ (WebKit::cannotShowMIMETypeError): create ResourceError for "Cannot show mimetype".
+ (WebKit::fileDoesNotExistError): create ResourceError for "File does not exist".
+ (WebKit::pluginWillHandleLoadError): create ResourceError for "Plugin will handle load".
+
+2012-07-11 Andras Becsi <andras.becsi@nokia.com>
+
+ [Qt][WK2] Fix wheel scrolling for simple pages
+ https://bugs.webkit.org/show_bug.cgi?id=90793
+
+ Reviewed by Kenneth Rohde Christiansen.
+
+ Call WebPage::setFixedLayoutSize in setResizesToContentsUsingLayoutSize
+ instead of setting the view size manually and scheduling a relayout.
+ Since setFixedLayoutSize forces a relayout it also updates the scrollbars
+ after the visible rect is available.
+ This fixes scrolling with wheel events for a QML WebView loading a simple
+ local page which previously ended up in a state where scrolling was disabled
+ because the scrollbar update happened before the correct visible rect size was
+ available.
+
+ Add a QML test and infrastructure to QWebKitTest to cover this case.
+
+ * UIProcess/API/qt/qwebkittest.cpp:
+ (QWebKitTest::wheelEvent):
+ * UIProcess/API/qt/qwebkittest_p.h:
+ * UIProcess/API/qt/tests/qmltests/WebView/tst_wheelEventHandling.qml: Added.
+ * UIProcess/API/qt/tests/qmltests/common/test4.html: Added.
+ * WebProcess/WebPage/WebPage.cpp:
+ (WebKit::WebPage::setResizesToContentsUsingLayoutSize):
+
+2012-07-11 Andras Becsi <andras.becsi@nokia.com>
+
+ [Qt][WK2] ASSERT: "!m_viewportItem->isMoving()" in QtViewportHandler::flickMoveEnded()
+ https://bugs.webkit.org/show_bug.cgi?id=90875
+
+ Reviewed by Kenneth Rohde Christiansen.
+
+ Since MultiPointTouchArea and PinchArea use the childMouseEventFilter
+ method to filter touch events too, and because Flickable filters child
+ mouse events the canvas calls this function before propagating the touch
+ event to the WebView. Since Flickable does not accept touch events the
+ canvas tries to propagate a synthesized mouse event through the base
+ class childMouseEventFilter function which is accepted by Flickable and
+ interferes with the input events we send to Flicakble hence messes up
+ the internal state of the WebView.
+ This patch reimplements the virtual childMouseEventFilter method so that all
+ the mouse and touch events can be processed by WebKit before they arrive to
+ Flickable.
+
+ * UIProcess/API/qt/qquickwebview.cpp:
+ (QQuickWebView::childMouseEventFilter):
+ * UIProcess/API/qt/qquickwebview_p.h:
+
+2012-07-10 Christophe Dumez <christophe.dumez@intel.com>
+
+ [WK2][EFL] Add Battery Status Provider
+ https://bugs.webkit.org/show_bug.cgi?id=90543
+
+ Reviewed by Kenneth Rohde Christiansen.
+
+ Define a battery status provider for WebKit2 EFL which
+ relies on WebCore::BatteryProviderEfl.
+
+ * CMakeLists.txt: Add WebCore/Modules/battery to include
+ paths.
+ * PlatformEfl.cmake: Add BatteryProvider class to CMake.
+ * UIProcess/API/efl/BatteryProvider.cpp: Added.
+ (toBatteryProvider):
+ (startUpdatingCallback):
+ (stopUpdatingCallback):
+ (BatteryProvider::~BatteryProvider):
+ (BatteryProvider::create):
+ (BatteryProvider::BatteryProvider):
+ (BatteryProvider::startUpdating):
+ (BatteryProvider::stopUpdating):
+ (BatteryProvider::didChangeBatteryStatus):
+ * UIProcess/API/efl/BatteryProvider.h: Added.
+ (BatteryProvider):
+ * UIProcess/API/efl/ewk_context.cpp:
+ (_Ewk_Context): Add BatteryProvider to Ewk_Context.
+ (createDefaultEwkContext):
+ (ewk_context_default_get):
+
+2012-07-10 No'am Rosenthal <noam.rosenthal@nokia.com>
+
+ [Qt] Enable antialiasing for TextureMapper
+ https://bugs.webkit.org/show_bug.cgi?id=90915
+
+ Reviewed by Martin Robinson.
+
+ Enable the new antialiasing functionality for WebLayerTreeRendering.
+ This will make one-tile layers antialiased when using UI_SIDE_COMPOSITING.
+
+ * UIProcess/WebLayerTreeRenderer.cpp:
+ (WebKit::WebLayerTreeRenderer::ensureRootLayer):
+
+2012-07-10 Adam Barth <abarth@webkit.org>
+
+ WebCore::Settings for Hixie76 WebSocket protocol doesn't do anything and should be removed
+ https://bugs.webkit.org/show_bug.cgi?id=90910
+
+ Reviewed by Eric Seidel.
+
+ * Shared/WebPreferencesStore.h:
+ (WebKit):
+ * UIProcess/API/C/WKPreferences.cpp:
+ (WKPreferencesSetHixie76WebSocketProtocolEnabled):
+ (WKPreferencesGetHixie76WebSocketProtocolEnabled):
+ * WebProcess/InjectedBundle/InjectedBundle.cpp:
+ (WebKit::InjectedBundle::overrideBoolPreferenceForTestRunner):
+ * WebProcess/WebPage/WebPage.cpp:
+ (WebKit::WebPage::updatePreferences):
+
+2012-07-10 Helder Correia <helder.correia@nokia.com>
+
+ [Qt] Repaint counter for accelerated compositing
+ https://bugs.webkit.org/show_bug.cgi?id=90116
+
+ Reviewed by Noam Rosenthal.
+
+ No new tests, just introducing a debug feature.
+
+ For this feature to be enabled, the environment variable
+ QT_WEBKIT_SHOW_COMPOSITING_DEBUG_VISUALS must be set to 1. Once enabled,
+ both repaint counters and tile borders will be painted.
+
+ Important notes:
+ - Only WebKit2 is targetted for now.
+ - There is no integration with Preferences. That aproach was
+ taken initially but revealed complex and overkill for such a
+ debugging-only functionality. Thus, to disable it simply restart with
+ the environment variable unset or set to some other value.
+
+ A Qt-specific drawRepaintCounter() function was added to
+ TextureMapperGL. A QImage is used as scratch buffer to paint borders and
+ counters. It is then uploaded to a BitmapTexture acquired from the pool
+ and finally draw by TextureMapper. The actual compositing happens inside
+ LayerBackingStore::paintToTextureMapper(). Each LayerBackingStoreTile
+ now has a repaint counter which gets incremented in
+ LayerBackingStore::updateTile().
+
+ * UIProcess/texmap/LayerBackingStore.cpp:
+ (WebKit::LayerBackingStore::updateTile):
+ (WebKit):
+ (WebKit::shouldShowTileDebugVisuals):
+ (WebKit::LayerBackingStore::paintToTextureMapper):
+ * UIProcess/texmap/LayerBackingStore.h:
+ (WebKit::LayerBackingStoreTile::LayerBackingStoreTile):
+ (LayerBackingStoreTile):
+ (WebKit::LayerBackingStoreTile::incrementRepaintCount):
+ (WebKit::LayerBackingStoreTile::repaintCount):
+
+2012-07-10 Sudarsana Nagineni <sudarsana.nagineni@linux.intel.com>
+
+ [WK2] Add Vibration API support for WebKit2
+ https://bugs.webkit.org/show_bug.cgi?id=90058
+
+ Reviewed by Anders Carlsson.
+
+ Add support for Vibration API to WebKit2.
+
+ * CMakeLists.txt:
+ * DerivedSources.pri:
+ * GNUmakefile.list.am:
+ * Platform/CoreIPC/MessageID.h:
+ * Shared/API/c/WKBase.h:
+ * Shared/APIObject.h:
+ * Target.pri:
+ * UIProcess/API/C/WKAPICast.h:
+ (WebKit):
+ * UIProcess/API/C/WKVibration.cpp: Added.
+ (WKVibrationGetTypeID):
+ (WKVibrationSetProvider):
+ * UIProcess/API/C/WKVibration.h: Added.
+ * UIProcess/WebVibrationProvider.cpp: Added.
+ (WebKit):
+ (WebKit::WebVibrationProvider::vibrate):
+ (WebKit::WebVibrationProvider::cancelVibration):
+ * UIProcess/WebVibrationProvider.h: Added.
+ (WebKit):
+ (WebVibrationProvider):
+ * UIProcess/WebVibrationProxy.cpp: Added.
+ (WebKit):
+ (WebKit::WebVibrationProxy::create):
+ (WebKit::WebVibrationProxy::WebVibrationProxy):
+ (WebKit::WebVibrationProxy::~WebVibrationProxy):
+ (WebKit::WebVibrationProxy::invalidate):
+ (WebKit::WebVibrationProxy::initializeProvider):
+ (WebKit::WebVibrationProxy::didReceiveMessage):
+ (WebKit::WebVibrationProxy::vibrate):
+ (WebKit::WebVibrationProxy::cancelVibration):
+ * UIProcess/WebVibrationProxy.h: Added.
+ (CoreIPC):
+ (WebKit):
+ (WebVibrationProxy):
+ (WebKit::WebVibrationProxy::clearContext):
+ (WebKit::WebVibrationProxy::type):
+ * UIProcess/WebVibrationProxy.messages.in: Added.
+ * WebProcess/WebCoreSupport/WebVibrationClient.cpp: Added.
+ (WebKit):
+ (WebKit::WebVibrationClient::vibrate):
+ (WebKit::WebVibrationClient::cancelVibration):
+ (WebKit::WebVibrationClient::vibrationDestroyed):
+ * WebProcess/WebCoreSupport/WebVibrationClient.h: Added.
+ (WebKit):
+ (WebVibrationClient):
+ (WebKit::WebVibrationClient::WebVibrationClient):
+ (WebKit::WebVibrationClient::~WebVibrationClient):
+
+2012-07-10 Carlos Garcia Campos <cgarcia@igalia.com>
+
+ [GTK] Add API to clear the cache to WebKit2 GTK+
+ https://bugs.webkit.org/show_bug.cgi?id=90856
+
+ Reviewed by Martin Robinson.
+
+ * UIProcess/API/gtk/WebKitWebContext.cpp:
+ (webkit_web_context_clear_cache): Call
+ WKResourceCacheManagerClearCacheForAllOrigins() to clear all
+ resources currently cached.
+ * UIProcess/API/gtk/WebKitWebContext.h:
+ * UIProcess/API/gtk/docs/webkit2gtk-sections.txt: Add new symbol.
+
+2012-07-10 Sheriff Bot <webkit.review.bot@gmail.com>
+
+ Unreviewed, rolling out r122178.
+ http://trac.webkit.org/changeset/122178
+ https://bugs.webkit.org/show_bug.cgi?id=90857
+
+ browser tests, PrerenderBrowserTest.PrerenderFavicon and other
+ tests, started to fail (Requested by hayato on #webkit).
+
+ * win/WebKit2.def:
+
+2012-07-09 Matt Falkenhagen <falken@chromium.org>
+
+ Add ENABLE_DIALOG_ELEMENT and skeleton files
+ https://bugs.webkit.org/show_bug.cgi?id=90521
+
+ Reviewed by Kent Tamura.
+
+ * Configurations/FeatureDefines.xcconfig:
+
+2012-07-09 Pete Williamson <petewil@google.com>
+
+ Export the iconURL list to make it available to the Internals class for testing
+ https://bugs.webkit.org/show_bug.cgi?id=88665
+
+ Reviewed by Kent Tamura.
+
+ * win/WebKit2.def: export the DocumentL::iconURLs function
+
+2012-07-09 Christophe Dumez <christophe.dumez@intel.com>
+
+ [WK2] Add missing Battery Status API integration to WebContext and WebPage
+ https://bugs.webkit.org/show_bug.cgi?id=90784
+
+ Reviewed by Anders Carlsson.
+
+ Integrate Battery Status API to WebPage, WebContext and
+ properly route messages to the WebBatteryManagerProxy.
+ Without this, the Battery Status tests are crashing for
+ WebKit2.
+
+ * UIProcess/API/C/WKContext.cpp:
+ (WKContextGetBatteryManager):
+ * UIProcess/API/C/WKContext.h:
+ * UIProcess/WebContext.cpp:
+ (WebKit::WebContext::WebContext):
+ (WebKit::WebContext::~WebContext):
+ (WebKit::WebContext::disconnectProcess):
+ (WebKit::WebContext::didReceiveMessage):
+ * UIProcess/WebContext.h:
+ (WebKit):
+ (WebContext):
+ (WebKit::WebContext::batteryManagerProxy):
+ * UIProcess/WebProcessProxy.cpp:
+ (WebKit::WebProcessProxy::didReceiveMessage):
+ * WebProcess/WebCoreSupport/WebBatteryClient.cpp:
+ (WebKit::WebBatteryClient::setController):
+ (WebKit):
+ * WebProcess/WebCoreSupport/WebBatteryClient.h:
+ (WebBatteryClient):
+ * WebProcess/WebPage/WebPage.cpp:
+ (WebKit::WebPage::WebPage):
+
+2012-07-09 Sudarsana Nagineni <sudarsana.nagineni@linux.intel.com>
+
+ [EFL] [WK2] ASSERTION FAILED: !HashTranslator::equal(KeyTraits::emptyValue(), key)
+ https://bugs.webkit.org/show_bug.cgi?id=90464
+
+ Reviewed by Daniel Bates.
+
+ HashMap has the property that 0 is the empty value for integer
+ keys, so do not use 0 as a key in the HashMap.
+
+ * Platform/efl/WorkQueueEfl.cpp:
+ (WorkQueue::dispatchAfterDelay):
+
+2012-07-09 Carlos Garcia Campos <cgarcia@igalia.com>
+
+ [GTK] Add a setting to enable/disable page cache to WebKit2 GTK+ API
+ https://bugs.webkit.org/show_bug.cgi?id=90773
+
+ Reviewed by Martin Robinson.
+
+ * UIProcess/API/gtk/WebKitSettings.cpp:
+ (webKitSettingsSetProperty):
+ (webKitSettingsGetProperty):
+ (webkit_settings_class_init):
+ (webkit_settings_get_enable_page_cache):
+ (webkit_settings_set_enable_page_cache):
+ * UIProcess/API/gtk/WebKitSettings.h:
+ * UIProcess/API/gtk/docs/webkit2gtk-sections.txt:
+ * UIProcess/API/gtk/tests/TestWebKitSettings.cpp:
+ (testWebKitSettings):
+
+2012-07-09 Sheriff Bot <webkit.review.bot@gmail.com>
+
+ Unreviewed, rolling out r122107.
+ http://trac.webkit.org/changeset/122107
+ https://bugs.webkit.org/show_bug.cgi?id=90794
+
+ Build failure on Mac debug bots (Requested by falken_ on
+ #webkit).
+
+ * Configurations/FeatureDefines.xcconfig:
+
+2012-07-09 Carlos Garcia Campos <cgarcia@igalia.com>
+
+ [GTK] Fix inspector detach when inspector was attached by the client
+ https://bugs.webkit.org/show_bug.cgi?id=90763
+
+ Reviewed by Martin Robinson.
+
+ When the inspector is detached, we are unconditionally removing it
+ from the inspected view, but if the inspector was attached by the
+ client, the parent might be another widget.
+
+ * UIProcess/gtk/WebInspectorProxyGtk.cpp:
+ (WebKit::WebInspectorProxy::platformDetach): Remove the inspector
+ view from its parent widget.
+
+2012-07-09 Matt Falkenhagen <falken@chromium.org>
+
+ Add ENABLE_DIALOG_ELEMENT and skeleton files
+ https://bugs.webkit.org/show_bug.cgi?id=90521
+
+ Reviewed by Kent Tamura.
+
+ * Configurations/FeatureDefines.xcconfig:
+
+2012-07-09 Dan Bernstein <mitz@apple.com>
+
+ Fix the Mac build when codesign_allocate is not installed at /usr/bin.
+
+ * PluginProcess/mac/add-entitlements.sh: Let codesign(1) know where the codesign_allocate
+ tool is by setting the CODESIGN_ALLOCATE environment variable to its path as obtained with
+ xcrun.
+
+2012-07-06 Christophe Dumez <christophe.dumez@intel.com>
+
+ [WK2] Add support for Network Information API
+ https://bugs.webkit.org/show_bug.cgi?id=89870
+
+ Reviewed by Anders Carlsson.
+
+ Add Network Information API support for WebKit2.
+
+ * CMakeLists.txt:
+ * DerivedSources.pri:
+ * GNUmakefile.am:
+ * GNUmakefile.list.am:
+ * Platform/CoreIPC/MessageID.h:
+ * Shared/API/c/WKBase.h:
+ * Shared/APIObject.h:
+ * Shared/WebNetworkInfo.cpp: Added.
+ (WebKit):
+ (WebKit::WebNetworkInfo::WebNetworkInfo):
+ (WebKit::WebNetworkInfo::~WebNetworkInfo):
+ (WebKit::WebNetworkInfo::Data::encode):
+ (WebKit::WebNetworkInfo::Data::decode):
+ * Shared/WebNetworkInfo.h: Added.
+ (WebKit):
+ (WebNetworkInfo):
+ (Data):
+ (WebKit::WebNetworkInfo::create):
+ (WebKit::WebNetworkInfo::bandwidth):
+ (WebKit::WebNetworkInfo::metered):
+ (WebKit::WebNetworkInfo::data):
+ (WebKit::WebNetworkInfo::type):
+ * Target.pri:
+ * UIProcess/API/C/WKAPICast.h:
+ (WebKit):
+ * UIProcess/API/C/WKNetworkInfoManager.cpp: Added.
+ (WKNetworkInfoManagerGetTypeID):
+ * UIProcess/API/C/WKNetworkInfoManager.h: Added.
+ * UIProcess/WebNetworkInfoManagerProxy.cpp: Added.
+ (WebKit):
+ (WebKit::WebNetworkInfoManagerProxy::create):
+ (WebKit::WebNetworkInfoManagerProxy::WebNetworkInfoManagerProxy):
+ (WebKit::WebNetworkInfoManagerProxy::~WebNetworkInfoManagerProxy):
+ (WebKit::WebNetworkInfoManagerProxy::invalidate):
+ (WebKit::WebNetworkInfoManagerProxy::initializeProvider):
+ (WebKit::WebNetworkInfoManagerProxy::providerDidChangeNetworkInformation):
+ (WebKit::WebNetworkInfoManagerProxy::didReceiveMessage):
+ (WebKit::WebNetworkInfoManagerProxy::startUpdating):
+ (WebKit::WebNetworkInfoManagerProxy::stopUpdating):
+ (WebKit::WebNetworkInfoManagerProxy::getBandwidth):
+ (WebKit::WebNetworkInfoManagerProxy::isMetered):
+ * UIProcess/WebNetworkInfoManagerProxy.h: Added.
+ (CoreIPC):
+ (WebKit):
+ (WebNetworkInfoManagerProxy):
+ (WebKit::WebNetworkInfoManagerProxy::clearContext):
+ (WebKit::WebNetworkInfoManagerProxy::type):
+ * UIProcess/WebNetworkInfoManagerProxy.messages.in: Added.
+ * UIProcess/WebNetworkInfoProvider.cpp: Added.
+ (WebKit):
+ (WebKit::WebNetworkInfoProvider::startUpdating):
+ (WebKit::WebNetworkInfoProvider::stopUpdating):
+ (WebKit::WebNetworkInfoProvider::bandwidth):
+ (WebKit::WebNetworkInfoProvider::metered):
+ * UIProcess/WebNetworkInfoProvider.h: Added.
+ (WebKit):
+ (WebNetworkInfoProvider):
+ * WebKit2.pri:
+ * WebProcess/NetworkInfo/WebNetworkInfoManager.cpp: Added.
+ (WebKit):
+ (WebKit::WebNetworkInfoManager::WebNetworkInfoManager):
+ (WebKit::WebNetworkInfoManager::~WebNetworkInfoManager):
+ (WebKit::WebNetworkInfoManager::didReceiveMessage):
+ (WebKit::WebNetworkInfoManager::registerWebPage):
+ (WebKit::WebNetworkInfoManager::unregisterWebPage):
+ (WebKit::WebNetworkInfoManager::bandwidth):
+ (WebKit::WebNetworkInfoManager::metered):
+ (WebKit::WebNetworkInfoManager::didChangeNetworkInformation):
+ * WebProcess/NetworkInfo/WebNetworkInfoManager.h: Added.
+ (CoreIPC):
+ (WebKit):
+ (WebNetworkInfoManager):
+ * WebProcess/NetworkInfo/WebNetworkInfoManager.messages.in: Added.
+ * WebProcess/WebCoreSupport/WebNetworkInfoClient.cpp: Added.
+ (WebKit):
+ (WebKit::WebNetworkInfoClient::~WebNetworkInfoClient):
+ (WebKit::WebNetworkInfoClient::bandwidth):
+ (WebKit::WebNetworkInfoClient::metered):
+ (WebKit::WebNetworkInfoClient::startUpdating):
+ (WebKit::WebNetworkInfoClient::stopUpdating):
+ * WebProcess/WebCoreSupport/WebNetworkInfoClient.h: Added.
+ (WebKit):
+ (WebNetworkInfoClient):
+ (WebKit::WebNetworkInfoClient::WebNetworkInfoClient):
+ * WebProcess/WebProcess.cpp:
+ (WebKit::WebProcess::WebProcess):
+ (WebKit::WebProcess::didReceiveMessage):
+ * WebProcess/WebProcess.h:
+ (WebProcess):
+ (WebKit::WebProcess::networkInfoManager):
+
+2012-07-06 Jessie Berlin <jberlin@apple.com>
+
+ WKContext should ask for its injected bundle initialization user data when it needs it so the
+ client doesn't have to keep it up to date.
+ https://bugs.webkit.org/show_bug.cgi?id=90627
+
+ Reviewed by Anders Carlsson.
+
+ Add a getInjectedBundleInitializationUserData callback to WKContextInjectedBundleClient.
+
+ * Shared/APIClientTraits.cpp:
+ Allow the WKContextInjectedBundleClient API to be versioned.
+ * Shared/APIClientTraits.h:
+
+ * UIProcess/API/C/WKContext.h:
+ Add the callback and bump the version of WKContextInjectedBundleClient.
+
+ * UIProcess/WebContext.cpp:
+ (WebKit::WebContext::ensureWebProcess):
+ Prefer any user data returned when the callback is invoked over that set with
+ WKContextSetInitializationUserDataForInjectedBundle.
+
+ * UIProcess/WebContextInjectedBundleClient.cpp:
+ (WebKit::WebContextInjectedBundleClient::getInjectedBundleInitializationUserData):
+ Invoke the callback if the client has registered for it.
+ * UIProcess/WebContextInjectedBundleClient.h:
+
+2012-07-06 Jessie Berlin <jberlin@apple.com>
+
+ WebContext::injectedBundleInitializationUserData() is unused, should be removed
+ https://bugs.webkit.org/show_bug.cgi?id=90486
+
+ Reviewed by Anders Carlsson.
+
+ * UIProcess/WebContext.h:
+ Remove it.
+
+2012-07-06 Carlos Garcia Campos <cgarcia@igalia.com>
+
+ [GTK] Add site specific quirks setting to WebKit2 GTK+ API
+ https://bugs.webkit.org/show_bug.cgi?id=90663
+
+ Reviewed by Martin Robinson.
+
+ * UIProcess/API/gtk/WebKitSettings.cpp:
+ (webKitSettingsSetProperty):
+ (webKitSettingsGetProperty):
+ (webkit_settings_class_init):
+ (webkit_settings_get_enable_site_specific_quirks):
+ (webkit_settings_set_enable_site_specific_quirks):
+ * UIProcess/API/gtk/WebKitSettings.h:
+ * UIProcess/API/gtk/docs/webkit2gtk-sections.txt:
+ * UIProcess/API/gtk/tests/TestWebKitSettings.cpp:
+ (testWebKitSettings):
+
+2012-07-06 Dominik Röttsches <dominik.rottsches@intel.com>
+
+ ProcessLauncher's WorkQueue's name is too long on Windows
+ https://bugs.webkit.org/show_bug.cgi?id=44041
+
+ Reviewed by Andreas Kling.
+
+ Shorten thread name for process launcher so that we can silence the warning
+ for thread names getting truncated under VisualStudio -
+ see createThread() in Threading.cpp.
+
+ * UIProcess/Launcher/ProcessLauncher.cpp:
+ (WebKit::processLauncherWorkQueue):
+
+2012-07-06 Christophe Dumez <christophe.dumez@intel.com>
+
+ [EFL] WebKit-EFL headers do not build with gcc < 4.6
+ https://bugs.webkit.org/show_bug.cgi?id=90681
+
+ Unreviewed EFL build fix.
+
+ Remove several forward declarations from ewk_view
+ header to avoid typedef redefinitions which are
+ illegal in C.
+
+ * UIProcess/API/efl/ewk_view.h:
+
+2012-07-06 Csaba Osztrogonác <ossy@webkit.org>
+
+ [Qt] Buildfix for newer Qt5
+ https://bugs.webkit.org/show_bug.cgi?id=90519
+
+ Reviewed by Tor Arne Vestbø.
+
+ * UIProcess/API/qt/qwebkittest.cpp: Include qpa/qwindowsysteminterface.h instead of deprecated qwindowsysteminterface_qpa.h.
+
+2012-07-06 Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
+
+ [Qt] Adjust to changed generation of master include file
+
+ The responsiblity for creating the master include was moved out of syncqt.
+ @ignore_for_master_contents still stays, as syncqt (ab-)uses this for
+ determining whether a header is private.
+
+ https://bugs.webkit.org/show_bug.cgi?id=90461
+
+ Reviewed by Tor Arne Vestbø.
+
+ * UIProcess/API/qt/tests/bytearraytestdata.h:
+ * UIProcess/API/qt/tests/testwindow.h:
+
+2012-07-05 Christophe Dumez <christophe.dumez@intel.com>
+
+ [WK2][EFL] Ewk_View needs to report load status changes
+ https://bugs.webkit.org/show_bug.cgi?id=90566
+
+ Reviewed by Kenneth Rohde Christiansen.
+
+ Add new "load,finished", "load,provisional,failed",
+ "load,provisional,redirect" and "load,provisional,started"
+ signals on the Ewk_View to notify the client of different
+ load state changes.
+
+ * UIProcess/API/efl/ewk_view.cpp:
+ (ewk_view_load_finished):
+ (ewk_view_load_provisional_failed):
+ (ewk_view_load_provisional_redirect):
+ (ewk_view_load_provisional_started):
+ * UIProcess/API/efl/ewk_view.h:
+ * UIProcess/API/efl/ewk_view_loader_client.cpp:
+ (didFinishLoadForFrame):
+ (didFailLoadWithErrorForFrame):
+ (didStartProvisionalLoadForFrame):
+ (didReceiveServerRedirectForProvisionalLoadForFrame):
+ (didFailProvisionalLoadWithErrorForFrame):
+ (ewk_view_loader_client_attach):
+ * UIProcess/API/efl/ewk_view_private.h:
+
+2012-07-05 Luiz Agostini <luiz.agostini@nokia.com>
+
+ [Qt] Transform should be applied to the clip rect in QRawWebView::paint
+ https://bugs.webkit.org/show_bug.cgi?id=90652
+
+ Reviewed by Kenneth Rohde Christiansen.
+
+ Applying the transformation matrix to the clip rect in QRawWebView::paint.
+
+ * UIProcess/API/qt/raw/qrawwebview.cpp:
+ (QRawWebView::paint):
+
+2012-07-05 Christophe Dumez <christophe.dumez@intel.com>
+
+ [WK2][EFL] Ewk_View should provide API to set/get device pixel ratio
+ https://bugs.webkit.org/show_bug.cgi?id=90590
+
+ Reviewed by Kenneth Rohde Christiansen.
+
+ Add API to Ewk_View so retrieve and set the device
+ pixel ratio.
+
+ * UIProcess/API/efl/ewk_view.cpp:
+ (ewk_view_device_pixel_ratio_set):
+ (ewk_view_device_pixel_ratio_get):
+ * UIProcess/API/efl/ewk_view.h:
+
+2012-07-05 Anders Carlsson <andersca@apple.com>
+
+ Type-ahead doesn't work in options inside optgroups
+ https://bugs.webkit.org/show_bug.cgi?id=90647
+ <rdar://problem/5604894>
+
+ Reviewed by Dan Bernstein.
+
+ Set the title of the menu item to a string that doesn't contain any leading or trailing whitespace.
+
+ * UIProcess/mac/WebPopupMenuProxyMac.mm:
+ (WebKit::WebPopupMenuProxyMac::populate):
+
+2012-07-05 Christophe Dumez <christophe.dumez@intel.com>
+
+ [WK2] Add C API for Battery Status API
+ https://bugs.webkit.org/show_bug.cgi?id=90545
+
+ Reviewed by Anders Carlsson.
+
+ Add C API for WKBatteryManager and WKBatteryStatus
+ so that clients can support the Battery Status API
+ in WebKit2.
+
+ * CMakeLists.txt:
+ * GNUmakefile.list.am:
+ * Target.pri:
+ * UIProcess/API/C/WKBatteryManager.cpp:
+ (WKBatteryManagerProviderDidChangeBatteryStatus):
+ (WKBatteryManagerProviderUpdateBatteryStatus):
+ * UIProcess/API/C/WKBatteryStatus.cpp: Copied from Source/WebKit2/UIProcess/API/C/WKBatteryManager.cpp.
+ (WKBatteryStatusGetTypeID):
+ (WKBatteryStatusCreate):
+ * UIProcess/API/C/WKBatteryStatus.h: Copied from Source/WebKit2/UIProcess/API/C/WKBatteryManager.cpp.
+
+2012-07-05 Sheriff Bot <webkit.review.bot@gmail.com>
+
+ Unreviewed, rolling out r121899.
+ http://trac.webkit.org/changeset/121899
+ https://bugs.webkit.org/show_bug.cgi?id=90623
+
+ Unauthorized WK2 API breakage (Requested by andersca on
+ #webkit).
+
+ * Shared/API/c/WKSharedAPICast.h:
+ (WebKit::toCopiedURLAPI):
+
+2012-07-05 Balazs Kelemen <kbalazs@webkit.org>
+
+ [Qt] WTR crashes if a URL is passed as a parameter
+ https://bugs.webkit.org/show_bug.cgi?id=88093
+
+ Reviewed by Zoltan Herczeg.
+
+ * Shared/API/c/WKSharedAPICast.h:
+ (WebKit::toCopiedURLAPI):
+ Don't special case null string. It's handled
+ fine by WebURL and passing 0 is not suitable
+ to the API.
+
+2012-07-05 Dongwoo Im <dw.im@samsung.com>
+
+ [EFL] Enable the CUSTOM_SCHEME_HANDLER feature as default.
+ https://bugs.webkit.org/show_bug.cgi?id=88608
+
+ Reviewed by Hajime Morita.
+
+ * WebProcess/WebCoreSupport/WebChromeClient.h:
+ (WebKit::WebChromeClient::isProtocolHandlerRegistered): Add a stub function.
+ (WebKit::WebChromeClient::unregisterProtocolHandler): Add a stub function.
+ (WebChromeClient):
+
+2012-07-05 Ryuan Choi <ryuan.choi@samsung.com>
+
+ [Wk2][EFL] EFL needs a WebKitTestRunner
+ https://bugs.webkit.org/show_bug.cgi?id=87659
+
+ Reviewed by Kenneth Rohde Christiansen.
+
+ * PlatformEfl.cmake: Added WKImageCairo.cpp in source list.
+
+2012-07-05 Hyerim Bae <hyerim.bae@samsung.com>
+
+ [EFL][WK2] Add ewk_view_reload_bypass_cache API.
+ https://bugs.webkit.org/show_bug.cgi?id=89413
+
+ Reviewed by Kenneth Rohde Christiansen.
+
+ Add API, which is for reloading documents without cache.
+
+ * UIProcess/API/efl/ewk_view.cpp:
+ (ewk_view_reload_bypass_cache):
+ * UIProcess/API/efl/ewk_view.h:
+
+2012-07-05 Christophe Dumez <christophe.dumez@intel.com>
+
+ [WK2][EFL] Ewk_View needs API to load HTML data
+ https://bugs.webkit.org/show_bug.cgi?id=90540
+
+ Reviewed by Kenneth Rohde Christiansen.
+
+ Add method to Ewk_View to load provided HTML data.
+ This is used for e.g. when an URL cannot be reached
+ and we need to display an error page.
+
+ * UIProcess/API/efl/ewk_view.cpp:
+ (ewk_view_html_load):
+ * UIProcess/API/efl/ewk_view.h:
+
+2012-07-05 Christophe Dumez <christophe.dumez@intel.com>
+
+ [WK2][EFL] Ewk_View needs to report new resource requests
+ https://bugs.webkit.org/show_bug.cgi?id=90577
+
+ Reviewed by Kenneth Rohde Christiansen.
+
+ Add new "resource,request,new" signal to Ewk_View to
+ notify clients of the resource requests being initiated.
+ New Ewk_Url_Request and Ewk_Web_Resource types are
+ introduced in order to provide the clients with the
+ needed information regarding the resource requests.
+
+ * PlatformEfl.cmake:
+ * UIProcess/API/efl/EWebKit2.h:
+ * UIProcess/API/efl/ewk_url_request.cpp: Added.
+ (_Ewk_Url_Request):
+ (ewk_url_request_ref):
+ (ewk_url_request_unref):
+ (ewk_url_request_url_get):
+ (ewk_request_first_party_get):
+ (ewk_url_request_http_method_get):
+ (ewk_url_request_new):
+ * UIProcess/API/efl/ewk_url_request.h: Added.
+ * UIProcess/API/efl/ewk_url_request_private.h: Added.
+ * UIProcess/API/efl/ewk_view.cpp:
+ (ewk_view_base_add):
+ (ewk_view_resource_load_initiated):
+ * UIProcess/API/efl/ewk_view.h:
+ * UIProcess/API/efl/ewk_view_private.h:
+ * UIProcess/API/efl/ewk_view_resource_load_client.cpp: Added.
+ (didInitiateLoadForResource):
+ (ewk_view_resource_load_client_attach):
+ * UIProcess/API/efl/ewk_view_resource_load_client_private.h: Added.
+ * UIProcess/API/efl/ewk_web_resource.cpp: Added.
+ (_Ewk_Web_Resource):
+ (ewk_web_resource_ref):
+ (ewk_web_resource_unref):
+ (ewk_web_resource_uri_get):
+ (ewk_web_resource_new):
+ (ewk_web_resource_main_get):
+ * UIProcess/API/efl/ewk_web_resource.h: Added.
+ * UIProcess/API/efl/ewk_web_resource_private.h: Added.
+
+2012-07-04 John Mellor <johnme@chromium.org>
+
+ Text Autosizing: Add compile flag and runtime setting
+ https://bugs.webkit.org/show_bug.cgi?id=87394
+
+ This patch renames Font Boosting to Text Autosizing.
+
+ Reviewed by Adam Barth.
+
+ * Configurations/FeatureDefines.xcconfig:
+
+2012-07-04 Christophe Dumez <christophe.dumez@intel.com>
+
+ [EFL][WK2] Ewk_View should report load errors
+ https://bugs.webkit.org/show_bug.cgi?id=90479
+
+ Reviewed by Kenneth Rohde Christiansen.
+
+ The Ewk_View now emits a "load,error" signal when the
+ main frame fails loading. Information about the error
+ is provided via the new Ewk_Web_Error type.
+
+ * PlatformEfl.cmake:
+ * UIProcess/API/efl/EWebKit2.h:
+ * UIProcess/API/efl/ewk_view.cpp:
+ (ewk_view_load_error):
+ * UIProcess/API/efl/ewk_view.h:
+ * UIProcess/API/efl/ewk_view_loader_client.cpp:
+ (didFailLoadWithErrorForFrame):
+ (ewk_view_loader_client_attach):
+ * UIProcess/API/efl/ewk_view_private.h:
+ * UIProcess/API/efl/ewk_web_error.cpp: Added.
+ (_Ewk_Web_Error):
+ (ewk_web_error_free):
+ (ewk_web_error_domain_get):
+ (ewk_web_error_url_get):
+ (ewk_web_error_code_get):
+ (ewk_web_error_description_get):
+ (ewk_web_error_cancellation_get):
+ (ewk_web_error_new):
+ * UIProcess/API/efl/ewk_web_error.h: Added.
+ * UIProcess/API/efl/ewk_web_error_private.h: Added.
+
+2012-07-03 Christophe Dumez <christophe.dumez@intel.com>
+
+ [WK2][EFL] Ewk_View should report the load progress
+ https://bugs.webkit.org/show_bug.cgi?id=90457
+
+ Reviewed by Kenneth Rohde Christiansen.
+
+ The Ewk_View now reports the estimated load progress
+ of the page via the new "load,progress".
+ A method is also added to Ewk_View in order to
+ retrieve the current load progress.
+
+ * UIProcess/API/efl/ewk_view.cpp:
+ (ewk_view_load_progress_get):
+ (ewk_view_load_progress_changed):
+ * UIProcess/API/efl/ewk_view.h:
+ * UIProcess/API/efl/ewk_view_loader_client.cpp:
+ (didChangeProgress):
+ (ewk_view_loader_client_attach):
+ * UIProcess/API/efl/ewk_view_private.h:
+
+2012-07-03 Christophe Dumez <christophe.dumez@intel.com>
+
+ [WK2] Add support for Battery Status API
+ https://bugs.webkit.org/show_bug.cgi?id=89558
+
+ Reviewed by Anders Carlsson.
+
+ Add support for Battery Status API to WebKit2.
+
+ * CMakeLists.txt:
+ * DerivedSources.pri:
+ * GNUmakefile.am:
+ * GNUmakefile.list.am:
+ * Platform/CoreIPC/MessageID.h:
+ * Shared/API/c/WKBase.h:
+ * Shared/APIObject.h:
+ * Shared/WebBatteryStatus.cpp: Added.
+ (WebKit):
+ (WebKit::WebBatteryStatus::WebBatteryStatus):
+ (WebKit::WebBatteryStatus::~WebBatteryStatus):
+ (WebKit::WebBatteryStatus::Data::encode):
+ (WebKit::WebBatteryStatus::Data::decode):
+ * Shared/WebBatteryStatus.h: Added.
+ (WebKit):
+ (WebBatteryStatus):
+ (Data):
+ (WebKit::WebBatteryStatus::create):
+ (WebKit::WebBatteryStatus::isCharging):
+ (WebKit::WebBatteryStatus::chargingTime):
+ (WebKit::WebBatteryStatus::dischargingTime):
+ (WebKit::WebBatteryStatus::level):
+ (WebKit::WebBatteryStatus::data):
+ (WebKit::WebBatteryStatus::type):
+ * Target.pri:
+ * UIProcess/API/C/WKAPICast.h:
+ (WebKit):
+ * UIProcess/API/C/WKBatteryManager.cpp: Added.
+ (WKBatteryManagerGetTypeID):
+ * UIProcess/API/C/WKBatteryManager.h: Added.
+ * UIProcess/WebBatteryManagerProxy.cpp: Added.
+ (WebKit):
+ (WebKit::WebBatteryManagerProxy::create):
+ (WebKit::WebBatteryManagerProxy::WebBatteryManagerProxy):
+ (WebKit::WebBatteryManagerProxy::~WebBatteryManagerProxy):
+ (WebKit::WebBatteryManagerProxy::invalidate):
+ (WebKit::WebBatteryManagerProxy::initializeProvider):
+ (WebKit::WebBatteryManagerProxy::didReceiveMessage):
+ (WebKit::WebBatteryManagerProxy::startUpdating):
+ (WebKit::WebBatteryManagerProxy::stopUpdating):
+ (WebKit::WebBatteryManagerProxy::providerDidChangeBatteryStatus):
+ (WebKit::WebBatteryManagerProxy::providerUpdateBatteryStatus):
+ * UIProcess/WebBatteryManagerProxy.h: Added.
+ (CoreIPC):
+ (WebKit):
+ (WebBatteryManagerProxy):
+ (WebKit::WebBatteryManagerProxy::clearContext):
+ (WebKit::WebBatteryManagerProxy::type):
+ * UIProcess/WebBatteryManagerProxy.messages.in: Added.
+ * UIProcess/WebBatteryProvider.cpp: Added.
+ (WebKit):
+ (WebKit::WebBatteryProvider::startUpdating):
+ (WebKit::WebBatteryProvider::stopUpdating):
+ * UIProcess/WebBatteryProvider.h: Added.
+ (WebKit):
+ (WebBatteryProvider):
+ * WebKit2.pri:
+ * WebProcess/Battery/WebBatteryManager.cpp: Added.
+ (WebKit):
+ (WebKit::WebBatteryManager::WebBatteryManager):
+ (WebKit::WebBatteryManager::~WebBatteryManager):
+ (WebKit::WebBatteryManager::didReceiveMessage):
+ (WebKit::WebBatteryManager::registerWebPage):
+ (WebKit::WebBatteryManager::unregisterWebPage):
+ (WebKit::WebBatteryManager::didChangeBatteryStatus):
+ (WebKit::WebBatteryManager::updateBatteryStatus):
+ * WebProcess/Battery/WebBatteryManager.h: Added.
+ (CoreIPC):
+ (WebKit):
+ (WebBatteryManager):
+ * WebProcess/Battery/WebBatteryManager.messages.in: Added.
+ * WebProcess/WebCoreSupport/WebBatteryClient.cpp: Added.
+ (WebKit):
+ (WebKit::WebBatteryClient::startUpdating):
+ (WebKit::WebBatteryClient::stopUpdating):
+ (WebKit::WebBatteryClient::batteryControllerDestroyed):
+ * WebProcess/WebCoreSupport/WebBatteryClient.h: Added.
+ (WebKit):
+ (WebBatteryClient):
+ (WebKit::WebBatteryClient::WebBatteryClient):
+ (WebKit::WebBatteryClient::~WebBatteryClient):
+ * WebProcess/WebProcess.cpp:
+ (WebKit::WebProcess::WebProcess):
+ (WebKit::WebProcess::didReceiveMessage):
+ * WebProcess/WebProcess.h:
+ (WebProcess):
+ (WebKit::WebProcess::batteryManager):
+
+2012-07-03 Tor Arne Vestbø <tor.arne.vestbo@nokia.com>
+
+ [Qt] Make use of .qmake.cache for caching features
+
+ Instead of loading() features from the files that need them (and re-running
+ a bunch of checks), we now run feature detection as part of configure.pro,
+ and have build-webkit write the computed feature-defines and CONFIG to
+ .qmake.cache, which is then loaded by qmake _before_ even defaults_pre
+ when building WebKit.pro.
+
+ At some point we'll be able to selectivly prevent running of config tests
+ in configure.pro, which means we don't need a separate code-path for
+ the build-webkit --help case.
+
+ We should also move the code in build-webkit that now uses .webkit.config
+ to detect clean builds, to use .qmake.cache, since we now store the same
+ thing there.
+
+ Original patch by Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
+
+ Reviewed by Tor Arne Vestbø.
+
+ * DerivedSources.pri:
+ * Target.pri:
+
+2012-07-03 Sheriff Bot <webkit.review.bot@gmail.com>
+
+ Unreviewed, rolling out r121766.
+ http://trac.webkit.org/changeset/121766
+ https://bugs.webkit.org/show_bug.cgi?id=90465
+
+ It caused flakey build errors on the bots (Requested by Ossy
+ on #webkit).
+
+ * DerivedSources.pri:
+ * Target.pri:
+
+2012-07-03 Carlos Garcia Campos <cgarcia@igalia.com>
+
+ [GTK] Add WebKitWebView::context-menu-dismissed signal to WebKit2 GTK+ API
+ https://bugs.webkit.org/show_bug.cgi?id=90386
+
+ Reviewed by Martin Robinson.
+
+ * UIProcess/API/gtk/WebKitWebView.cpp:
+ (webkit_web_view_class_init): Add context-menu-dismissed signal.
+ (contextMenuDismissed): Emit context-menu-dismissed signal.
+ (webkitWebViewPopulateContextMenu): Connect to deactivate signal
+ of the GtkMenu and emit WebKitWebView::context-menu-dismissed when
+ the gtk menu is deactivated.
+ * UIProcess/API/gtk/WebKitWebView.h:
+ (_WebKitWebViewClass): Add virtual methos for
+ context-menu-dismissed signal.
+ * UIProcess/API/gtk/tests/TestContextMenu.cpp:
+ (testContextMenuDismissed):
+ (beforeAll):
+ * UIProcess/gtk/WebContextMenuProxyGtk.h:
+ (WebKit::WebContextMenuProxyGtk::gtkMenu): Get the GtkMenu built
+ for the context menu proxy.
+
+2012-07-03 Piotr Roguski <p.roguski@samsung.com>
+
+ [EFL][WK2] Added missing WebPageProxy::ViewIsFocused flag to WebPageProxy::viewStateDidChange()
+ call in _ewk_view_smart_focus_out() function.
+ https://bugs.webkit.org/show_bug.cgi?id=89877
+
+ Reviewed by Andreas Kling.
+
+ Although name of the flag suggest it should be used only on focus in,
+ omitting it in case of focus out will prevent WebPageProxy::viewStateDidChange()
+ from sending Messages::WebPage::SetFocused(false).
+
+ * UIProcess/API/efl/ewk_view.cpp:
+ (_ewk_view_smart_focus_out):
+
+2012-07-03 Viatcheslav Ostapenko <ostapenko.viatcheslav@nokia.com>
+
+ [Qt][WK2] API tests randomly asserts in QQuickWebPage::setContentsScale(qreal)
+ https://bugs.webkit.org/show_bug.cgi?id=88679
+
+ Reviewed by Csaba Osztrogonác.
+
+ Viewport parameters cannot be calculated while viewport is not visible and
+ viewport size is 0, so let's delay calculation of viewport parameters until view
+ becomes visible.
+
+ * UIProcess/qt/QtViewportHandler.cpp:
+ (WebKit::QtViewportHandler::pageContentsSizeChanged):
+
+2012-07-03 Tor Arne Vestbø <tor.arne.vestbo@nokia.com>
+
+ [Qt] Make use of .qmake.cache for caching features
+
+ Instead of loading() features from the files that need them (and re-running
+ a bunch of checks), we now run feature detection as part of configure.pro,
+ and have build-webkit write the computed feature-defines and CONFIG to
+ .qmake.cache, which is then loaded by qmake _before_ even defaults_pre
+ when building WebKit.pro.
+
+ At some point we'll be able to selectivly prevent running of config tests
+ in configure.pro, which means we don't need a separate code-path for
+ the build-webkit --help case.
+
+ We should also move the code in build-webkit that now uses .webkit.config
+ to detect clean builds, to use .qmake.cache, since we now store the same
+ thing there.
+
+ Original patch by Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
+
+ Reviewed by Tor Arne Vestbø.
+
+ * DerivedSources.pri:
+ * Target.pri:
+
+2012-07-03 Alexis Menard <alexis.menard@openbossa.org>
+
+ [Qt] When calling accept() on the FilePickerContextObject with an empty list, early return and call reject().
+ https://bugs.webkit.org/show_bug.cgi?id=89755
+
+ Reviewed by Simon Hausmann.
+
+ When calling accept with an empty list of files we can just bailout
+ and call reject(). Any other processing is pointless.
+
+ * UIProcess/API/qt/tests/qmltests/WebView/tst_singleFileUpload.qml:
+ * UIProcess/qt/QtDialogRunner.cpp:
+ (WebKit::FilePickerContextObject::accept):
+
+2012-07-03 Balazs Kelemen <kbalazs@webkit.org>
+
+ [Qt][WK2] fast/viewport/viewport-91.html still fails after r121555 and r121661
+ https://bugs.webkit.org/show_bug.cgi?id=90376
+
+ Reviewed by Csaba Osztrogonác.
+
+ layoutTestController.dumpConfigurationForViewport still need
+ to use the constant target DPI of 160.
+ * WebProcess/WebPage/WebPage.cpp:
+ (WebKit::WebPage::viewportConfigurationAsText):
+
+2012-07-03 Christophe Dumez <christophe.dumez@intel.com>
+
+ [EFL][WK2] Add API to deliver a Web Intent to a frame
+ https://bugs.webkit.org/show_bug.cgi?id=90067
+
+ Reviewed by Kenneth Rohde Christiansen.
+
+ Add ewk_view_intent_deliver() method on the Ewk_View
+ to deliver a Web Intent to the view's main frame.
+
+ * UIProcess/API/efl/ewk_view.cpp:
+ (ewk_view_intent_deliver):
+ * UIProcess/API/efl/ewk_view.h:
+
+2012-07-02 Christophe Dumez <christophe.dumez@intel.com>
+
+ [EFL][WK2] Add API to inspect a Web Intent service
+ https://bugs.webkit.org/show_bug.cgi?id=90066
+
+ Reviewed by Kenneth Rohde Christiansen.
+
+ Add EFL API to inspect a Web Intent Service and emit
+ a signal on the view when a new intent service
+ registers.
+
+ * PlatformEfl.cmake:
+ * UIProcess/API/efl/EWebKit2.h:
+ * UIProcess/API/efl/ewk_intent_service.cpp: Added.
+ (_Ewk_Intent_Service):
+ (ewk_intent_service_ref):
+ (ewk_intent_service_unref):
+ (ewk_intent_service_action_get):
+ (ewk_intent_service_type_get):
+ (ewk_intent_service_href_get):
+ (ewk_intent_service_title_get):
+ (ewk_intent_service_disposition_get):
+ (ewk_intent_service_new):
+ * UIProcess/API/efl/ewk_intent_service.h: Added.
+ * UIProcess/API/efl/ewk_intent_service_private.h: Copied from Source/WebKit2/UIProcess/API/efl/ewk_view_loader_client.cpp.
+ * UIProcess/API/efl/ewk_view.cpp:
+ (ewk_view_intent_service_register):
+ * UIProcess/API/efl/ewk_view.h:
+ * UIProcess/API/efl/ewk_view_loader_client.cpp:
+ (registerIntentServiceForFrame):
+ (ewk_view_loader_client_attach):
+ * UIProcess/API/efl/ewk_view_private.h:
+
+2012-07-02 Christophe Dumez <christophe.dumez@intel.com>
+
+ [WK2][EFL] Free Ewk_Intent calloc'd memory with free() instead of delete
+ https://bugs.webkit.org/show_bug.cgi?id=90433
+
+ Reviewed by Kenneth Rohde Christiansen.
+
+ Free calloc'd memory with free() instead of delete in Ewk_Intent.
+ Add blank lines before return statements for consistency.
+
+ * UIProcess/API/efl/ewk_intent.cpp:
+ (ewk_intent_unref):
+ (ewk_intent_action_get):
+ (ewk_intent_type_get):
+ (ewk_intent_service_get):
+ (ewk_intent_suggestions_get):
+ (ewk_intent_extra_get):
+ (ewk_intent_extra_names_get):
+ (ewk_intent_new):
+
+2012-07-02 Martin Robinson <mrobinson@igalia.com>
+
+ [TextureMapper] The TextureMapper should support edge-distance anti-antialiasing
+ https://bugs.webkit.org/show_bug.cgi?id=90308
+
+ Reviewed by Noam Rosenthal.
+
+ * UIProcess/texmap/LayerBackingStore.cpp:
+ (WebKit::LayerBackingStore::paintToTextureMapper): Update the method to call paint with
+ the new argument.
+
+2012-07-02 Benjamin Poulain <bpoulain@apple.com>
+
+ Do not do any logging initialization when logging is disabled
+ https://bugs.webkit.org/show_bug.cgi?id=90228
+
+ Reviewed by Simon Fraser.
+
+ * Platform/Logging.cpp:
+ * Platform/Logging.h:
+ * UIProcess/WebContext.cpp:
+ (WebKit::WebContext::WebContext):
+ * WebProcess/WebProcess.cpp:
+ (WebKit::WebProcess::WebProcess):
+
+2012-07-02 No'am Rosenthal <noam.rosenthal@nokia.com>
+
+ [Qt][WK2] New API tests introduced in r121620 fail
+ https://bugs.webkit.org/show_bug.cgi?id=90372
+
+ Reviewed by Luiz Agostini.
+
+ Updated the pixel comparison to produce more predictable results.
+
+ * UIProcess/API/qt/tests/qrawwebview/tst_qrawwebview.cpp:
+ (compareImages):
+
+2012-07-02 Alexis Menard <alexis.menard@openbossa.org>
+
+ [Qt] Fix WebProcess crash on Mac when accessing a site with video tag.
+ https://bugs.webkit.org/show_bug.cgi?id=90384
+
+ Reviewed by Jocelyn Turcotte.
+
+ We need to initialize the private symbols used by MediaPlayerPrivateQTKit
+ otherwise they will be null and it will lead to a crash. We copy WebSystemInterface
+ files for WK2 just like the Mac port as WK2 may have different needs than WK1 layer (we
+ may add or remove symbols in here). It doesn't fix the video rendering yet but it's
+ first step.
+
+ * Target.pri:
+ * WebProcess/WebCoreSupport/qt/WebSystemInterface.h: Added.
+ * WebProcess/WebCoreSupport/qt/WebSystemInterface.mm: Added.
+ (InitWebCoreSystemInterfaceForWK2):
+ * WebProcess/qt/WebProcessMainQt.cpp:
+ (WebKit::WebProcessMainQt):
+
+2012-07-02 Sudarsana Nagineni <sudarsana.nagineni@linux.intel.com>
+
+ [EFL] [WK2] Remove content sniffer and decoder initialization from WebProcess
+ https://bugs.webkit.org/show_bug.cgi?id=90275
+
+ Reviewed by Martin Robinson.
+
+ Do not initialize content sniffer and decoder in the WebProcess
+ because the initialization is now done in WebCore.
+
+ * WebProcess/efl/WebProcessMainEfl.cpp:
+ (WebKit::WebProcessMainEfl):
+
+2012-07-02 Sheriff Bot <webkit.review.bot@gmail.com>
+
+ Unreviewed, rolling out r120329, r121113, and r121138.
+ http://trac.webkit.org/changeset/120329
+ http://trac.webkit.org/changeset/121113
+ http://trac.webkit.org/changeset/121138
+ https://bugs.webkit.org/show_bug.cgi?id=90368
+
+ Introduced noticeable keyboard-related spins due to
+ synchronous IPC. (Requested by kling on #webkit).
+
+ * UIProcess/WebPageProxy.cpp:
+ (WebKit::WebPageProxy::handleKeyboardEvent):
+ (WebKit::WebPageProxy::didReceiveEvent):
+ * UIProcess/WebPageProxy.h:
+ (WebPageProxy):
+ * UIProcess/WebPageProxy.messages.in:
+ * WebProcess/WebPage/WebPage.cpp:
+ (WebKit::WebPage::keyEvent):
+
+2012-07-01 Christophe Dumez <christophe.dumez@intel.com>
+
+ [EFL][WK2] Add API to inspect a Web Intent
+ https://bugs.webkit.org/show_bug.cgi?id=89749
+
+ Reviewed by Kenneth Rohde Christiansen.
+
+ Add EFL API to inspect a Web Intent and emit a signal
+ on the view when a new intent request is made.
+
+ * PlatformEfl.cmake:
+ * UIProcess/API/efl/EWebKit2.h:
+ * UIProcess/API/efl/ewk_intent.cpp: Added.
+ (_Ewk_Intent):
+ (ewk_intent_ref):
+ (ewk_intent_unref):
+ (ewk_intent_action_get):
+ (ewk_intent_type_get):
+ (ewk_intent_service_get):
+ (ewk_intent_suggestions_get):
+ (ewk_intent_extra_get):
+ (ewk_intent_extra_names_get):
+ (ewk_intent_new):
+ * UIProcess/API/efl/ewk_intent.h: Added.
+ * UIProcess/API/efl/ewk_intent_private.h: Copied from Source/WebKit2/UIProcess/API/efl/ewk_view_loader_client.cpp.
+ * UIProcess/API/efl/ewk_view.cpp:
+ (ewk_view_intent_request_new):
+ * UIProcess/API/efl/ewk_view.h:
+ * UIProcess/API/efl/ewk_view_loader_client.cpp:
+ (didReceiveIntentForFrame):
+ (ewk_view_loader_client_attach):
+ * UIProcess/API/efl/ewk_view_private.h:
+
+2012-06-29 Luiz Agostini <luiz.agostini@nokia.com>
+
+ [Qt][WK2] Private non-QtQuick API
+ https://bugs.webkit.org/show_bug.cgi?id=84532
+
+ Reviewed by Noam Rosenthal.
+
+ Adding new private non-QtQuick API. This new C++ API makes it possible
+ to have control over the lower levels of WebKit without going via QML.
+
+ This is a first version of the API, enough to show pages on the screen.
+ Many features are not implemented.
+
+ * Target.pri:
+ * UIProcess/API/qt/raw/qrawwebview.cpp: Added.
+ * UIProcess/API/qt/raw/qrawwebview_p.h: Added.
+ * UIProcess/API/qt/raw/qrawwebview_p_p.h: Added.
+
+ The tests for the new API are pixel tests. They use QRawWebView to load
+ html files and generate images, and them compare those images to the ones
+ in UIProcess/API/qt/tests/html/resources.
+
+ * UIProcess/API/qt/tests/html/bluesquare.html: Added.
+ * UIProcess/API/qt/tests/html/redsquare.html: Added.
+ * UIProcess/API/qt/tests/html/resources/qwkview_noBackground1.png: Added.
+ * UIProcess/API/qt/tests/html/resources/qwkview_noBackground3.png: Added.
+ * UIProcess/API/qt/tests/html/resources/qwkview_paint.png: Added.
+ * UIProcess/API/qt/tests/qrawwebview/qrawwebview.pro: Added.
+ * UIProcess/API/qt/tests/qrawwebview/tst_qrawwebview.cpp: Added.
+
+2012-06-29 Christophe Dumez <christophe.dumez@intel.com>
+
+ [WK2] Move intent delivery code from the frame to the page
+ https://bugs.webkit.org/show_bug.cgi?id=89974
+
+ Reviewed by Anders Carlsson.
+
+ Move the intent delivery code from the frame to the page
+ and add the corresponding C API for WKPage.
+
+ * UIProcess/API/C/WKPage.cpp:
+ (WKPageDeliverIntentToFrame):
+ * UIProcess/API/C/WKPage.h:
+ * UIProcess/WebFrameProxy.cpp:
+ (WebKit::WebFrameProxy::stopLoading):
+ * UIProcess/WebFrameProxy.h:
+ (WebKit):
+ * UIProcess/WebPageProxy.cpp:
+ (WebKit):
+ (WebKit::WebPageProxy::deliverIntentToFrame):
+ * UIProcess/WebPageProxy.h:
+ (WebPageProxy):
+
+2012-06-29 Dan Bernstein <mitz@apple.com>
+
+ Can’t get basic element info from a WKRenderObject
+ https://bugs.webkit.org/show_bug.cgi?id=90301
+
+ Reviewed by Anders Carlsson.
+
+ Moved the element info (tag name, id and class names) from WebRenderLayer to WebRenderObject,
+ and gave WebRenderLayer a reference to a (shallow) WebRenderObject. Added WKRenderObject API
+ for getting element info, while leaving the WKRenderLayer API in place for now for Safari.
+
+ * Shared/API/c/WKRenderLayer.cpp:
+ (WKRenderLayerGetRenderer): Added this wrapper.
+ (WKRenderLayerCopyRendererName): Changed to get the name from the renderer.
+ (WKRenderLayerCopyElementTagName): Changed to go through the renderer.
+ (WKRenderLayerCopyElementID): Ditto.
+ (WKRenderLayerGetElementClassNames): Ditto.
+ * Shared/API/c/WKRenderLayer.h: Added declaration of WKRenderLayerGetRenderer() and comments
+ about removing older API.
+ * Shared/API/c/WKRenderObject.cpp:
+ (WKRenderObjectCopyElementTagName): Added this wrapper.
+ (WKRenderObjectCopyElementID): Ditto.
+ (WKRenderObjectGetElementClassNames): Ditto.
+ * Shared/API/c/WKRenderObject.h:
+ * Shared/UserMessageCoders.h:
+ (WebKit::UserMessageEncoder::baseEncode): Removed the element info from the encoding of
+ WebRenderLayer, and added the renderer. Added the element info to the encoding of
+ WebRenderObject.
+ (WebKit::UserMessageDecoder::baseDecode): Updated to match the encoding changes.
+ * Shared/WebRenderLayer.cpp:
+ (WebKit::WebRenderLayer::WebRenderLayer): Changed to initialize the m_renderer member
+ variable with a WebRenderObject for the layer’s renderer, and removed the initialization of
+ the element-related member variables that were removed.
+ * Shared/WebRenderLayer.h:
+ (WebKit::WebRenderLayer::create): Changed to take a renderer instead of renderer and element
+ info.
+ (WebKit::WebRenderLayer::renderer): Added this getter.
+ (WebKit::WebRenderLayer::WebRenderLayer): Changed to take a renderer instead of renderer and
+ element info.
+ * Shared/WebRenderObject.cpp:
+ (WebKit::WebRenderObject::create): Changed to pass true for the shouldIncludeDescendants
+ parameter.
+ (WebKit::WebRenderObject::WebRenderObject): Added a shouldIncludeDescdendants boolean
+ parameter. When it is false, the m_children array remains null. Added initialization of
+ member variables with the element’s tag name, id and class list.
+ * Shared/WebRenderObject.h:
+ (WebKit::WebRenderObject::create): Added an overload that takes a RenderObject and creates
+ a shallow WebRenderObject.
+ (WebRenderObject): Changed to take element tag name, id and class list.
+ (WebKit::WebRenderObject::elementTagName): Added this getter.
+ (WebKit::WebRenderObject::elementID): Ditto.
+ (WebKit::WebRenderObject::elementClassNames): Ditto.
+ (WebKit::WebRenderObject::WebRenderObject):
+
+2012-06-29 Tony Chang <tony@chromium.org>
+
+ Unreviewed, rolling out r121572.
+ http://trac.webkit.org/changeset/121572
+ https://bugs.webkit.org/show_bug.cgi?id=90249
+
+ Breaks Mac build since it depends on r121547, which was rolled
+ out
+
+ * WebProcess/Plugins/Netscape/NetscapeBrowserFuncs.cpp:
+ (WebKit::NPN_GetValue):
+ * WebProcess/WebCoreSupport/WebEditorClient.cpp:
+ (WebKit::WebEditorClient::shouldEraseMarkersAfterChangeSelection):
+ * WebProcess/WebCoreSupport/WebEditorClient.h:
+
+2012-06-29 Eric Seidel <eric@webkit.org>
+
+ Remove BUILDING_ON_LEOPARD now that no ports build on Leopard
+ https://bugs.webkit.org/show_bug.cgi?id=90249
+
+ Reviewed by Ryosuke Niwa.
+
+ * WebProcess/Plugins/Netscape/NetscapeBrowserFuncs.cpp:
+ (WebKit::NPN_GetValue):
+ * WebProcess/WebCoreSupport/WebEditorClient.cpp:
+ (WebKit::WebEditorClient::shouldEraseMarkersAfterChangeSelection):
+ * WebProcess/WebCoreSupport/WebEditorClient.h:
+
+2012-06-29 Konrad Piascik <kpiascik@rim.com>
+
+ Don't hardcode target dpi of 160 (it should be 96 on desktop)
+ https://bugs.webkit.org/show_bug.cgi?id=88114
+
+ Reviewed by Adam Barth.
+
+ Updated the call to computeViewportAttributes.
+
+ * WebProcess/WebPage/WebPage.cpp:
+ (WebKit::WebPage::sendViewportAttributesChanged):
+ (WebKit::WebPage::viewportConfigurationAsText):
+
+2012-06-29 Sheriff Bot <webkit.review.bot@gmail.com>
+
+ Unreviewed, rolling out r121529.
+ http://trac.webkit.org/changeset/121529
+ https://bugs.webkit.org/show_bug.cgi?id=90260
+
+ Failed to compile on Chromium WebKitMacBuilder (Requested by
+ keishi on #webkit).
+
+ * UIProcess/mac/WKFullScreenWindowController.mm:
+ (-[WKFullScreenWindowController finishedEnterFullScreenAnimation:]):
+ (-[WKFullScreenWindowController beganExitFullScreenWithInitialFrame:WebCore::finalFrame:WebCore::]):
+ * WebProcess/Plugins/Netscape/mac/NetscapeSandboxFunctions.mm:
+ * WebProcess/WebCoreSupport/mac/WebSystemInterface.mm:
+ (InitWebCoreSystemInterface):
+
+2012-06-29 Eric Seidel <eric@webkit.org>
+
+ Remove more BUILDING_ON_LEOPARD branches now that no port builds on Leopard
+ https://bugs.webkit.org/show_bug.cgi?id=90252
+
+ Reviewed by Ryosuke Niwa.
+
+ * UIProcess/mac/WKFullScreenWindowController.mm:
+ (-[WKFullScreenWindowController finishedEnterFullScreenAnimation:]):
+ (-[WKFullScreenWindowController beganExitFullScreenWithInitialFrame:WebCore::finalFrame:WebCore::]):
+ * WebProcess/Plugins/Netscape/mac/NetscapeSandboxFunctions.mm:
+ * WebProcess/WebCoreSupport/mac/WebSystemInterface.mm:
+ (InitWebCoreSystemInterface):
+
+2012-06-28 MORITA Hajime <morrita@google.com>
+
+ [Refactoring] NodeRenderingContext ctor could be built on top of the ComposedShadowTreeWalker
+ https://bugs.webkit.org/show_bug.cgi?id=89732
+
+ Reviewed by Dimitri Glazkov.
+
+ * win/WebKit2.def:
+ * win/WebKit2CFLite.def:
+
+2012-06-28 John Sullivan <sullivan@apple.com>
+
+ <https://bugs.webkit.org/show_bug.cgi?id=90216>
+ <rdar://problem/11766518>
+ Undo handling in WebKit2 is not robust against some page-closing code paths
+
+ Reviewed by Enrica Casucci.
+
+ * UIProcess/API/mac/PageClientImpl.h:
+ Declared public function viewWillMoveToAnotherWindow().
+
+ * UIProcess/API/mac/PageClientImpl.mm:
+ (WebKit::PageClientImpl::viewWillMoveToAnotherWindow):
+ New function, calls clearAllEditCommands() to remove any Undo actions from the stack.
+ This guarantees that no Undo actions will be abandoned when the PageClientImpl is dealloc'ed.
+
+ * UIProcess/API/mac/WKView.mm:
+ (-[WKView viewWillMoveToWindow:]):
+ Now informs PageClientImpl via new function PageClientImpl::viewWillMoveToAnotherWindow().
+
+2012-06-28 Christophe Dumez <christophe.dumez@intel.com>
+
+ [WK2] Add C API to inspect a Web Intent service
+ https://bugs.webkit.org/show_bug.cgi?id=89276
+
+ Reviewed by Anders Carlsson.
+
+ Add C API for Web intent service so that it can be queried
+ on client side.
+
+ * CMakeLists.txt:
+ * GNUmakefile.list.am:
+ * Target.pri:
+ * UIProcess/API/C/WKIntentServiceInfo.cpp: Added.
+ (WKIntentServiceInfoGetTypeID):
+ (WKIntentServiceInfoCopyAction):
+ (WKIntentServiceInfoCopyType):
+ (WKIntentServiceInfoCopyHref):
+ (WKIntentServiceInfoCopyTitle):
+ (WKIntentServiceInfoCopyDisposition):
+ * UIProcess/API/C/WKIntentServiceInfo.h: Added.
+
+2012-06-28 Balazs Kelemen <kbalazs@webkit.org>
+
+ [Qt] KURL assert at fast/loader/opaque-base-url.html
+ https://bugs.webkit.org/show_bug.cgi?id=89468
+
+ Reviewed by Simon Hausmann.
+
+ Don't use the KURL(ParsedURLStringTag, const String&) constructor.
+ We cannot be sure that the url in encode was valid and even if it
+ was the message could have been corrupted.
+ * Shared/qt/WebCoreArgumentCodersQt.cpp:
+ (CoreIPC::::encode):
+ (CoreIPC::::decode):
+
+2012-06-27 Carlos Garcia Campos <cgarcia@igalia.com>
+
+ Unreviewed. Fix the build without TEXTURE_MAPPER_GL.
+
+ * WebProcess/WebPage/gtk/LayerTreeHostGtk.cpp:
+ * WebProcess/WebPage/gtk/LayerTreeHostGtk.h:
+ * WebProcess/WebPage/gtk/WebPageGtk.cpp:
+ (WebKit::WebPage::platformInitialize):
+
+2012-06-25 Mark Hahnenberg <mhahnenberg@apple.com>
+
+ JSLock should be per-JSGlobalData
+ https://bugs.webkit.org/show_bug.cgi?id=89123
+
+ Reviewed by Geoffrey Garen.
+
+ Changed all sites that used JSLock to instead use the new JSLockHolder
+ and pass in the correct JS context that the code is about to interact with that
+ needs protection. Also added a couple JSLocks to places that didn't already
+ have it that needed it.
+
+ * Shared/mac/WebMemorySampler.mac.mm:
+ (WebKit::WebMemorySampler::sampleWebKit):
+ * WebProcess/InjectedBundle/InjectedBundle.cpp:
+ (WebKit::InjectedBundle::javaScriptObjectsCount):
+ (WebKit::InjectedBundle::reportException):
+ * WebProcess/Plugins/Netscape/JSNPObject.cpp:
+ (WebKit::JSNPObject::callMethod):
+ (WebKit::JSNPObject::callObject):
+ (WebKit::JSNPObject::callConstructor):
+ (WebKit::JSNPObject::put):
+ (WebKit::JSNPObject::deleteProperty):
+ (WebKit::JSNPObject::getOwnPropertyNames):
+ (WebKit::JSNPObject::propertyGetter):
+ * WebProcess/Plugins/Netscape/NPJSObject.cpp:
+ (WebKit::NPJSObject::hasMethod):
+ (WebKit::NPJSObject::invoke):
+ (WebKit::NPJSObject::invokeDefault):
+ (WebKit::NPJSObject::hasProperty):
+ (WebKit::NPJSObject::getProperty):
+ (WebKit::NPJSObject::setProperty):
+ (WebKit::NPJSObject::removeProperty):
+ (WebKit::NPJSObject::enumerate):
+ (WebKit::NPJSObject::construct):
+ * WebProcess/Plugins/Netscape/NPRuntimeObjectMap.cpp:
+ (WebKit::NPRuntimeObjectMap::convertJSValueToNPVariant):
+ (WebKit::NPRuntimeObjectMap::evaluate):
+ (WebKit::NPRuntimeObjectMap::moveGlobalExceptionToExecState):
+ * WebProcess/WebPage/WebFrame.cpp:
+ (WebKit::WebFrame::jsWrapperForWorld):
+ (WebKit::WebFrame::computedStyleIncludingVisitedInfo):
+ * WebProcess/WebPage/WebPage.cpp:
+ (WebKit::WebPage::runJavaScriptInMainFrame):
+ * WebProcess/WebProcess.cpp:
+ (WebKit::WebProcess::getWebCoreStatistics):
+
+2012-06-27 Thiago Marcos P. Santos <thiago.santos@intel.com>
+
+ REGRESSION(r121135): It made qmltests::WebViewColorChooser::test_accept() fail
+ https://bugs.webkit.org/show_bug.cgi?id=89871
+
+ Reviewed by Simon Hausmann.
+
+ Added proper event synchronization to the test case.
+
+ * UIProcess/API/qt/tests/qmltests/WebView/tst_colorChooser.qml:
+
+2012-06-27 Brady Eidson <beidson@apple.com>
+
+ https://bugs.webkit.org/show_bug.cgi?id=87513
+ WebBackForwardList needs an overhaul to consistently and clearly handle error conditions.
+
+ Reviewed by Darin Adler.
+
+ - We think a null entry might somehow be getting in the list so we now try to prevent that.
+ - We think a null entry might somehow be in the list so we now null check when indexing into m_entries.
+ - A lot of index math - especially tracking "no current index" - was implicit or wrong.
+ - Operating on a WebBackForwardList whose page has been closed is now an explicit no-op.
+ - The session state data reading and writing code was fragile and needed an overhaul.
+ - This includes adding a new V1 format of the session data that is easier to validate when reading back in.
+
+ * UIProcess/WebBackForwardList.cpp:
+ (WebKit::WebBackForwardList::~WebBackForwardList):
+ (WebKit::WebBackForwardList::pageClosed):
+ (WebKit::WebBackForwardList::addItem):
+ (WebKit::WebBackForwardList::goToItem):
+ (WebKit::WebBackForwardList::backListCount):
+ (WebKit::WebBackForwardList::forwardListCount):
+ (WebKit::WebBackForwardList::backListAsImmutableArrayWithLimit):
+ (WebKit::WebBackForwardList::forwardListAsImmutableArrayWithLimit):
+ (WebKit::WebBackForwardList::clear):
+
+ * UIProcess/WebBackForwardList.h:
+ (WebBackForwardList):
+
+ * UIProcess/cf/WebBackForwardListCF.cpp:
+ (WebKit::createEmptySessionHistoryDictionary):
+ (WebKit::WebBackForwardList::createCFDictionaryRepresentation):
+ (WebKit::WebBackForwardList::restoreFromCFDictionaryRepresentation):
+ (WebKit::WebBackForwardList::restoreFromV0CFDictionaryRepresentation):
+ (WebKit::WebBackForwardList::restoreFromV1CFDictionaryRepresentation):
+ (WebKit::extractBackForwardListEntriesFromArray):
+
+2012-06-27 Zan Dobersek <zandobersek@gmail.com>
+
+ [Gtk] Add support for the Gamepad API
+ https://bugs.webkit.org/show_bug.cgi?id=87503
+
+ Reviewed by Carlos Garcia Campos.
+
+ Add the Gamepad feature dependencies libraries to the LIBADD
+ list for the libwebkitgtk2 library.
+
+ * GNUmakefile.am:
+
+2012-06-26 Simon Hausmann <simon.hausmann@nokia.com>
+
+ [Qt] Avoid use of deprecated Qt API
+
+ Reviewed by Tor Arne Vestbø.
+
+ QGuiApplication::inputPanel() has been deprecated in favour of
+ inputMethod().
+
+ * UIProcess/qt/QtWebPageEventHandler.cpp:
+ (WebKit::QtWebPageEventHandler::QtWebPageEventHandler):
+ (WebKit::QtWebPageEventHandler::~QtWebPageEventHandler):
+ (WebKit::setInputPanelVisible):
+ (WebKit::QtWebPageEventHandler::inputPanelVisibleChanged):
+ (WebKit::QtWebPageEventHandler::updateTextInputState):
+
+2012-06-26 Christophe Dumez <christophe.dumez@intel.com>
+
+ [WK2][GTK] Uninitialized variable in TextCheckerGtk.cpp
+ https://bugs.webkit.org/show_bug.cgi?id=89948
+
+ Reviewed by Martin Robinson.
+
+ Properly initialize didInitializeState in
+ TextChecker::state().
+
+ * UIProcess/gtk/TextCheckerGtk.cpp:
+ (WebKit::TextChecker::state):
+
+2012-06-25 Simon Hausmann <simon.hausmann@nokia.com>
+
+ [Qt] Make it possible to build WebKit without QtWidgets
+ https://bugs.webkit.org/show_bug.cgi?id=78109
+
+ Reviewed by Tor Arne Vestbø.
+
+ * WebKit2.pri: Add missing WK2 specific dependencies.
+ * qt/MainQt.cpp: Do the QStyle initialization hook only if we are
+ compiling with QtWidgets support.
+ (WebKit):
+ (main):
+
+2012-06-25 Raphael Kubo da Costa <rakuco@webkit.org>
+
+ [EFL][WK2] Include unistd.h in PlatformProcessIdentifier.h.
+ https://bugs.webkit.org/show_bug.cgi?id=89804
+
+ Reviewed by Hajime Morita.
+
+ The pid_t typedef ends up coming from stdlib.h (indirectly via WTF
+ includes) on Mac and Linux, even though that is not mandated by
+ POSIX and breaks other platforms (such as FreeBSD). Fix that by
+ explicitly including unistd.h, which is where the typedef is
+ supposed to come from.
+
+ * Platform/PlatformProcessIdentifier.h:
+
+2012-06-25 YoungTaeck Song <youngtaeck.song@samsung.com>
+
+ [WK2][Qt][EFL] Extract common code from LayerTreeHostQt
+ https://bugs.webkit.org/show_bug.cgi?id=89837
+
+ Reviewed by Noam Rosenthal.
+
+ Extract common code from LayerTreeHostQt to be used by both Qt and Efl.
+ I renamed LayerTreeHost to LayerTreeCoordinator, and these are moved under WebProcess/WebPage/LayerTreeCoordinator.
+ I Modified LayerTreeHostProxy to LayerTreeCoordinatorProxy too, Because LayerTreeHostProxy and LayerTreeHost were pair.
+ Also WebGraphicsLayer moved under that directory.
+
+ * CMakeLists.txt:
+ * DerivedSources.pri:
+ * GNUmakefile.list.am:
+ * Platform/CoreIPC/MessageID.h:
+ * Target.pri:
+ * UIProcess/API/qt/qquickwebpage.cpp:
+ (QQuickWebPagePrivate::paint):
+ (QQuickWebPage::updatePaintNode):
+ (QQuickWebPagePrivate::updateSize):
+ * UIProcess/DrawingAreaProxy.cpp:
+ (WebKit::DrawingAreaProxy::didReceiveLayerTreeCoordinatorProxyMessage):
+ * UIProcess/DrawingAreaProxy.h:
+ (WebKit):
+ (WebKit::DrawingAreaProxy::layerTreeCoordinatorProxy):
+ (DrawingAreaProxy):
+ * UIProcess/DrawingAreaProxyImpl.cpp:
+ (WebKit::DrawingAreaProxyImpl::DrawingAreaProxyImpl):
+ (WebKit::DrawingAreaProxyImpl::enterAcceleratedCompositingMode):
+ (WebKit::DrawingAreaProxyImpl::didReceiveLayerTreeCoordinatorProxyMessage):
+ (WebKit::DrawingAreaProxyImpl::setVisibleContentsRect):
+ * UIProcess/DrawingAreaProxyImpl.h:
+ (WebKit):
+ (DrawingAreaProxyImpl):
+ * UIProcess/LayerTreeCoordinatorProxy.cpp: Renamed from Source/WebKit2/UIProcess/LayerTreeHostProxy.cpp.
+ (WebKit):
+ (WebKit::LayerTreeCoordinatorProxy::LayerTreeCoordinatorProxy):
+ (WebKit::LayerTreeCoordinatorProxy::~LayerTreeCoordinatorProxy):
+ (WebKit::LayerTreeCoordinatorProxy::updateViewport):
+ (WebKit::LayerTreeCoordinatorProxy::dispatchUpdate):
+ (WebKit::LayerTreeCoordinatorProxy::createTileForLayer):
+ (WebKit::LayerTreeCoordinatorProxy::updateTileForLayer):
+ (WebKit::LayerTreeCoordinatorProxy::removeTileForLayer):
+ (WebKit::LayerTreeCoordinatorProxy::deleteCompositingLayer):
+ (WebKit::LayerTreeCoordinatorProxy::setRootCompositingLayer):
+ (WebKit::LayerTreeCoordinatorProxy::setCompositingLayerState):
+ (WebKit::LayerTreeCoordinatorProxy::setCompositingLayerChildren):
+ (WebKit::LayerTreeCoordinatorProxy::setCompositingLayerFilters):
+ (WebKit::LayerTreeCoordinatorProxy::didRenderFrame):
+ (WebKit::LayerTreeCoordinatorProxy::createDirectlyCompositedImage):
+ (WebKit::LayerTreeCoordinatorProxy::destroyDirectlyCompositedImage):
+ (WebKit::LayerTreeCoordinatorProxy::setContentsSize):
+ (WebKit::LayerTreeCoordinatorProxy::setVisibleContentsRect):
+ (WebKit::LayerTreeCoordinatorProxy::renderNextFrame):
+ (WebKit::LayerTreeCoordinatorProxy::didChangeScrollPosition):
+ (WebKit::LayerTreeCoordinatorProxy::syncCanvas):
+ (WebKit::LayerTreeCoordinatorProxy::purgeBackingStores):
+ * UIProcess/LayerTreeCoordinatorProxy.h: Renamed from Source/WebKit2/UIProcess/LayerTreeHostProxy.h.
+ (WebKit):
+ (LayerTreeCoordinatorProxy):
+ (WebKit::LayerTreeCoordinatorProxy::layerTreeRenderer):
+ * UIProcess/LayerTreeCoordinatorProxy.messages.in: Renamed from Source/WebKit2/UIProcess/LayerTreeHostProxy.messages.in.
+ * UIProcess/WebLayerTreeRenderer.cpp:
+ (WebKit::WebLayerTreeRenderer::WebLayerTreeRenderer):
+ (WebKit::WebLayerTreeRenderer::updateViewport):
+ (WebKit::WebLayerTreeRenderer::renderNextFrame):
+ (WebKit::WebLayerTreeRenderer::purgeBackingStores):
+ (WebKit::WebLayerTreeRenderer::detach):
+ * UIProcess/WebLayerTreeRenderer.h:
+ (WebKit):
+ (WebLayerTreeRenderer):
+ * UIProcess/WebPageProxy.cpp:
+ (WebKit::WebPageProxy::didReceiveMessage):
+ * WebKit2.pri:
+ * WebProcess/WebPage/DrawingArea.h:
+ (DrawingArea):
+ * WebProcess/WebPage/DrawingAreaImpl.cpp:
+ (WebKit::DrawingAreaImpl::didReceiveLayerTreeCoordinatorMessage):
+ * WebProcess/WebPage/DrawingAreaImpl.h:
+ (DrawingAreaImpl):
+ * WebProcess/WebPage/LayerTreeCoordinator/LayerTreeCoordinator.cpp: Renamed from Source/WebKit2/WebProcess/WebPage/qt/LayerTreeHostQt.cpp.
+ (WebKit):
+ (WebKit::LayerTreeCoordinator::create):
+ (WebKit::LayerTreeCoordinator::~LayerTreeCoordinator):
+ (WebKit::LayerTreeCoordinator::LayerTreeCoordinator):
+ (WebKit::LayerTreeCoordinator::setLayerFlushSchedulingEnabled):
+ (WebKit::LayerTreeCoordinator::scheduleLayerFlush):
+ (WebKit::LayerTreeCoordinator::cancelPendingLayerFlush):
+ (WebKit::LayerTreeCoordinator::setShouldNotifyAfterNextScheduledLayerFlush):
+ (WebKit::LayerTreeCoordinator::setRootCompositingLayer):
+ (WebKit::LayerTreeCoordinator::invalidate):
+ (WebKit::LayerTreeCoordinator::setNonCompositedContentsNeedDisplay):
+ (WebKit::LayerTreeCoordinator::scrollNonCompositedContents):
+ (WebKit::LayerTreeCoordinator::forceRepaint):
+ (WebKit::LayerTreeCoordinator::sizeDidChange):
+ (WebKit::LayerTreeCoordinator::didInstallPageOverlay):
+ (WebKit::LayerTreeCoordinator::didUninstallPageOverlay):
+ (WebKit::LayerTreeCoordinator::setPageOverlayNeedsDisplay):
+ (WebKit::LayerTreeCoordinator::setPageOverlayOpacity):
+ (WebKit::LayerTreeCoordinator::flushPendingLayerChanges):
+ (WebKit::LayerTreeCoordinator::syncLayerState):
+ (WebKit::LayerTreeCoordinator::syncLayerChildren):
+ (WebKit::LayerTreeCoordinator::syncCanvas):
+ (WebKit::LayerTreeCoordinator::syncLayerFilters):
+ (WebKit::LayerTreeCoordinator::attachLayer):
+ (WebKit::LayerTreeCoordinator::detachLayer):
+ (WebKit::updateOffsetFromViewportForSelf):
+ (WebKit::updateOffsetFromViewportForLayer):
+ (WebKit::LayerTreeCoordinator::syncFixedLayers):
+ (WebKit::LayerTreeCoordinator::performScheduledLayerFlush):
+ (WebKit::LayerTreeCoordinator::layerFlushTimerFired):
+ (WebKit::LayerTreeCoordinator::createPageOverlayLayer):
+ (WebKit::LayerTreeCoordinator::destroyPageOverlayLayer):
+ (WebKit::LayerTreeCoordinator::adoptImageBackingStore):
+ (WebKit::LayerTreeCoordinator::releaseImageBackingStore):
+ (WebKit::LayerTreeCoordinator::notifyAnimationStarted):
+ (WebKit::LayerTreeCoordinator::notifySyncRequired):
+ (WebKit::LayerTreeCoordinator::paintContents):
+ (WebKit::LayerTreeCoordinator::showDebugBorders):
+ (WebKit::LayerTreeCoordinator::showRepaintCounter):
+ (WebKit::LayerTreeHost::supportsAcceleratedCompositing):
+ (WebKit::LayerTreeCoordinator::createTile):
+ (WebKit::LayerTreeCoordinator::updateTile):
+ (WebKit::LayerTreeCoordinator::removeTile):
+ (WebKit::LayerTreeCoordinator::visibleContentsRect):
+ (WebKit::LayerTreeCoordinator::setVisibleContentsRect):
+ (WebKit::LayerTreeCoordinator::renderNextFrame):
+ (WebKit::LayerTreeCoordinator::layerTreeTileUpdatesAllowed):
+ (WebKit::LayerTreeCoordinator::purgeBackingStores):
+ (WebKit::LayerTreeCoordinator::beginContentUpdate):
+ * WebProcess/WebPage/LayerTreeCoordinator/LayerTreeCoordinator.h: Renamed from Source/WebKit2/WebProcess/WebPage/qt/LayerTreeHostQt.h.
+ (WebKit):
+ (LayerTreeCoordinator):
+ (WebKit::LayerTreeCoordinator::layerTreeContext):
+ (WebKit::LayerTreeCoordinator::pageOverlayShouldApplyFadeWhenPainting):
+ (WebKit::LayerTreeCoordinator::pauseRendering):
+ (WebKit::LayerTreeCoordinator::resumeRendering):
+ (WebKit::LayerTreeCoordinator::deviceScaleFactorDidChange):
+ * WebProcess/WebPage/LayerTreeCoordinator/LayerTreeCoordinator.messages.in: Renamed from Source/WebKit2/WebProcess/WebPage/LayerTreeHost.messages.in.
+ * WebProcess/WebPage/LayerTreeCoordinator/WebGraphicsLayer.cpp: Renamed from Source/WebKit2/WebProcess/WebCoreSupport/WebGraphicsLayer.cpp.
+ (WebCore):
+ (WebCore::layerByIDMap):
+ (WebCore::WebGraphicsLayer::layerByID):
+ (WebCore::toWebLayerID):
+ (WebCore::WebGraphicsLayer::didChangeLayerState):
+ (WebCore::WebGraphicsLayer::didChangeChildren):
+ (WebCore::WebGraphicsLayer::didChangeFilters):
+ (WebCore::WebGraphicsLayer::setShouldUpdateVisibleRect):
+ (WebCore::WebGraphicsLayer::didChangeGeometry):
+ (WebCore::WebGraphicsLayer::WebGraphicsLayer):
+ (WebCore::WebGraphicsLayer::~WebGraphicsLayer):
+ (WebCore::WebGraphicsLayer::willBeDestroyed):
+ (WebCore::WebGraphicsLayer::setChildren):
+ (WebCore::WebGraphicsLayer::addChild):
+ (WebCore::WebGraphicsLayer::addChildAtIndex):
+ (WebCore::WebGraphicsLayer::addChildAbove):
+ (WebCore::WebGraphicsLayer::addChildBelow):
+ (WebCore::WebGraphicsLayer::replaceChild):
+ (WebCore::WebGraphicsLayer::removeFromParent):
+ (WebCore::WebGraphicsLayer::setPosition):
+ (WebCore::WebGraphicsLayer::setAnchorPoint):
+ (WebCore::WebGraphicsLayer::setSize):
+ (WebCore::WebGraphicsLayer::setTransform):
+ (WebCore::WebGraphicsLayer::setChildrenTransform):
+ (WebCore::WebGraphicsLayer::setPreserves3D):
+ (WebCore::WebGraphicsLayer::setMasksToBounds):
+ (WebCore::WebGraphicsLayer::setDrawsContent):
+ (WebCore::WebGraphicsLayer::setContentsOpaque):
+ (WebCore::WebGraphicsLayer::setBackfaceVisibility):
+ (WebCore::WebGraphicsLayer::setOpacity):
+ (WebCore::WebGraphicsLayer::setContentsRect):
+ (WebCore::WebGraphicsLayer::setContentsNeedsDisplay):
+ (WebCore::WebGraphicsLayer::setContentsToCanvas):
+ (WebCore::WebGraphicsLayer::setFilters):
+ (WebCore::WebGraphicsLayer::setContentsToImage):
+ (WebCore::WebGraphicsLayer::setMaskLayer):
+ (WebCore::WebGraphicsLayer::setReplicatedByLayer):
+ (WebCore::WebGraphicsLayer::setNeedsDisplay):
+ (WebCore::WebGraphicsLayer::setNeedsDisplayInRect):
+ (WebCore::WebGraphicsLayer::id):
+ (WebCore::WebGraphicsLayer::syncCompositingState):
+ (WebCore::toWebGraphicsLayer):
+ (WebCore::WebGraphicsLayer::syncChildren):
+ (WebCore::WebGraphicsLayer::syncFilters):
+ (WebCore::WebGraphicsLayer::syncLayerState):
+ (WebCore::WebGraphicsLayer::syncCanvas):
+ (WebCore::WebGraphicsLayer::ensureImageBackingStore):
+ (WebCore::WebGraphicsLayer::syncCompositingStateForThisLayerOnly):
+ (WebCore::WebGraphicsLayer::tiledBackingStorePaintBegin):
+ (WebCore::WebGraphicsLayer::setRootLayer):
+ (WebCore::WebGraphicsLayer::setVisibleContentRectTrajectoryVector):
+ (WebCore::WebGraphicsLayer::setContentsScale):
+ (WebCore::WebGraphicsLayer::effectiveContentsScale):
+ (WebCore::WebGraphicsLayer::adjustContentsScale):
+ (WebCore::WebGraphicsLayer::createBackingStore):
+ (WebCore::WebGraphicsLayer::tiledBackingStorePaint):
+ (WebCore::WebGraphicsLayer::tiledBackingStorePaintEnd):
+ (WebCore::WebGraphicsLayer::tiledBackingStoreUpdatesAllowed):
+ (WebCore::WebGraphicsLayer::tiledBackingStoreContentsRect):
+ (WebCore::WebGraphicsLayer::shouldUseTiledBackingStore):
+ (WebCore::WebGraphicsLayer::tiledBackingStoreVisibleRect):
+ (WebCore::WebGraphicsLayer::tiledBackingStoreBackgroundColor):
+ (WebCore::WebGraphicsLayer::beginContentUpdate):
+ (WebCore::WebGraphicsLayer::createTile):
+ (WebCore::WebGraphicsLayer::updateTile):
+ (WebCore::WebGraphicsLayer::removeTile):
+ (WebCore::WebGraphicsLayer::updateContentBuffers):
+ (WebCore::WebGraphicsLayer::purgeBackingStores):
+ (WebCore::WebGraphicsLayer::setWebGraphicsLayerClient):
+ (WebCore::WebGraphicsLayer::adjustVisibleRect):
+ (WebCore::WebGraphicsLayer::computeTransformedVisibleRect):
+ (WebCore::createWebGraphicsLayer):
+ (WebCore::WebGraphicsLayer::initFactory):
+ (WebCore::WebGraphicsLayer::selfOrAncestorHaveNonAffineTransforms):
+ * WebProcess/WebPage/LayerTreeCoordinator/WebGraphicsLayer.h: Renamed from Source/WebKit2/WebProcess/WebCoreSupport/WebGraphicsLayer.h.
+ (WebCore):
+ (WebKit):
+ (WebGraphicsLayerClient):
+ (WebGraphicsLayer):
+ (WebCore::WebGraphicsLayer::image):
+ (WebCore::WebGraphicsLayer::fixedToViewport):
+ (WebCore::WebGraphicsLayer::setFixedToViewport):
+ (WebCore::WebGraphicsLayer::maskTarget):
+ (WebCore::WebGraphicsLayer::setMaskTarget):
+ * WebProcess/WebPage/LayerTreeHost.cpp:
+ (WebKit::LayerTreeHost::create):
+ * WebProcess/WebPage/LayerTreeHost.h:
+ (LayerTreeHost):
+ * WebProcess/WebPage/WebPage.cpp:
+ (WebKit::WebPage::didReceiveMessage):
+
+2012-06-25 Anders Carlsson <andersca@apple.com>
+
+ [Lion WK2] fast/loader/reload-zero-byte-plugin.html hits assert
+ https://bugs.webkit.org/show_bug.cgi?id=89611
+ <rdar://problem/11714023>
+
+ Reviewed by Sam Weinig.
+
+ Make sure to send the response along to the plug-in in the case where the stream was empty.
+
+ * WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
+ (WebKit::WebFrameLoaderClient::finishedLoading):
+
+2012-06-25 YoungTaeck Song <youngtaeck.song@samsung.com>
+
+ [WK2][Qt][EFL] Move LayerBackingStore into common directory
+ https://bugs.webkit.org/show_bug.cgi?id=89838
+
+ Reviewed by Noam Rosenthal.
+
+ Move LayerBackingStore into 'Source/WebKit2/UIProcess/texmap' to be used by both Qt and Efl.
+
+ * Target.pri:
+ * UIProcess/texmap/LayerBackingStore.cpp: Renamed from Source/WebKit2/UIProcess/qt/LayerBackingStore.cpp.
+ (WebKit):
+ (WebKit::LayerBackingStoreTile::swapBuffers):
+ (WebKit::LayerBackingStoreTile::setBackBuffer):
+ (WebKit::LayerBackingStore::createTile):
+ (WebKit::LayerBackingStore::removeTile):
+ (WebKit::LayerBackingStore::updateTile):
+ (WebKit::LayerBackingStore::texture):
+ (WebKit::LayerBackingStore::paintToTextureMapper):
+ (WebKit::LayerBackingStore::commitTileOperations):
+ * UIProcess/texmap/LayerBackingStore.h: Renamed from Source/WebKit2/UIProcess/qt/LayerBackingStore.h.
+ (WebKit):
+ (LayerBackingStoreTile):
+ (WebKit::LayerBackingStoreTile::LayerBackingStoreTile):
+ (WebKit::LayerBackingStoreTile::scale):
+ (LayerBackingStore):
+ (WebKit::LayerBackingStore::create):
+ (WebKit::LayerBackingStore::LayerBackingStore):
+
+2012-06-25 Carlos Garcia Campos <cgarcia@igalia.com>
+
+ [GTK] Test /webkit2/WebKitWebView/permission-requests fails due to a runtime warning
+ https://bugs.webkit.org/show_bug.cgi?id=89858
+
+ Reviewed by Xan Lopez.
+
+ * UIProcess/API/gtk/tests/TestWebKitWebView.cpp:
+ (testWebViewPermissionRequests): Make runtime warnings non-fatal
+ for test /webkit2/WebKitWebView/permission-requests.
+
+2012-06-25 Huang Dongsung <luxtella@company100.net>
+
+ [GTK] Remove unused code in LayerTreeHostGtk.
+ https://bugs.webkit.org/show_bug.cgi?id=89854
+
+ LayerTreeHostGtk::deviceScaleFactor() is unused and LayerTreeHost does not have
+ virtual float deviceScaleFactor() const;
+
+ Reviewed by Martin Robinson.
+
+ * WebProcess/WebPage/gtk/LayerTreeHostGtk.cpp:
+ * WebProcess/WebPage/gtk/LayerTreeHostGtk.h:
+ (LayerTreeHostGtk):
+
+2012-06-24 Andreas Kling <kling@webkit.org>
+
+ REGRESSION(r120329): Intermittent WebProcess shutdowns due to out-of-line DidReceiveEvent messages.
+ <rdar://problem/11686974>
+ <http://webkit.org/b/89659>
+
+ Unreviewed tests assertion fix, handleKeyboardEvent() should call didReceiveKeyEvent()
+ rather than didReceiveEvent().
+
+ * UIProcess/WebPageProxy.cpp:
+ (WebKit::WebPageProxy::handleKeyboardEvent):
+ (WebKit::WebPageProxy::didReceiveKeyEvent):
+
+2012-06-24 YoungTaeck Song <youngtaeck.song@samsung.com>
+
+ [WK2][Qt][EFL] Modify Qt specific code to common code
+ https://bugs.webkit.org/show_bug.cgi?id=89839
+
+ Reviewed by Noam Rosenthal.
+
+ Modify paintToGraphicsContext’s first argument QPainter to PlatformGraphicsContext to be used by both Qt and Efl.
+
+ * UIProcess/WebLayerTreeRenderer.cpp:
+ (WebKit::WebLayerTreeRenderer::paintToGraphicsContext):
+
+2012-06-24 Simon Fraser <simon.fraser@apple.com>
+
+ Rename isPositioned to isOutOfFlowPositioned for clarity
+ https://bugs.webkit.org/show_bug.cgi?id=89836
+
+ Reviewed by Antti Koivisto.
+
+ RenderObject and RenderStyle had an isPositioned() method that was
+ confusing, because it excluded relative positioning. Rename to
+ isOutOfFlowPositioned(), which makes it clearer that it only applies
+ to absolute and fixed positioning.
+
+ Simple rename; no behavior change.
+
+ * WebProcess/WebPage/qt/LayerTreeHostQt.cpp:
+ (WebKit::updateOffsetFromViewportForSelf):
+
+2012-06-24 Andreas Kling <kling@webkit.org>
+
+ REGRESSION(r120329): Intermittent WebProcess shutdowns due to out-of-line DidReceiveEvent messages.
+ <rdar://problem/11686974>
+ <http://webkit.org/b/89659>
+
+ Reviewed by Sam Weinig.
+
+ Instead of sending DidReceiveEvent for key events as DispatchMessageEvenWhenWaitingForSyncReply,
+ use proper synchronous messages. This makes the WebProcess block while the UIProcess handles
+ the event but prevents a weird race condition where DidReceiveEvent gets dispatched just before
+ a synchronous DecidePolicyForNavigationAction and something happens below DidReceiveEvent that
+ invalidates the frame ID passed to DecidePolicyForNavigationAction.
+
+ This is a speculative fire-fighting fix.
+
+ * UIProcess/WebPageProxy.cpp:
+ (WebKit::WebPageProxy::didReceiveKeyEvent):
+ (WebKit::WebPageProxy::didReceiveEvent):
+ * UIProcess/WebPageProxy.h:
+ * UIProcess/WebPageProxy.messages.in:
+ * WebProcess/WebPage/WebPage.cpp:
+ (WebKit::WebPage::keyEvent):
+
+2012-06-23 Sheriff Bot <webkit.review.bot@gmail.com>
+
+ Unreviewed, rolling out r121058.
+ http://trac.webkit.org/changeset/121058
+ https://bugs.webkit.org/show_bug.cgi?id=89809
+
+ Patch causes plugins tests to crash in GTK debug builds
+ (Requested by zdobersek on #webkit).
+
+ * Shared/mac/WebMemorySampler.mac.mm:
+ (WebKit::WebMemorySampler::sampleWebKit):
+ * WebProcess/InjectedBundle/InjectedBundle.cpp:
+ (WebKit::InjectedBundle::javaScriptObjectsCount):
+ (WebKit::InjectedBundle::reportException):
+ * WebProcess/Plugins/Netscape/JSNPObject.cpp:
+ (WebKit::JSNPObject::callMethod):
+ (WebKit::JSNPObject::callObject):
+ (WebKit::JSNPObject::callConstructor):
+ (WebKit::JSNPObject::put):
+ (WebKit::JSNPObject::deleteProperty):
+ (WebKit::JSNPObject::getOwnPropertyNames):
+ (WebKit::JSNPObject::propertyGetter):
+ * WebProcess/Plugins/Netscape/NPJSObject.cpp:
+ (WebKit::NPJSObject::hasMethod):
+ (WebKit::NPJSObject::invoke):
+ (WebKit::NPJSObject::invokeDefault):
+ (WebKit::NPJSObject::hasProperty):
+ (WebKit::NPJSObject::getProperty):
+ (WebKit::NPJSObject::setProperty):
+ (WebKit::NPJSObject::removeProperty):
+ (WebKit::NPJSObject::enumerate):
+ (WebKit::NPJSObject::construct):
+ * WebProcess/Plugins/Netscape/NPRuntimeObjectMap.cpp:
+ (WebKit::NPRuntimeObjectMap::convertJSValueToNPVariant):
+ (WebKit::NPRuntimeObjectMap::evaluate):
+ (WebKit::NPRuntimeObjectMap::moveGlobalExceptionToExecState):
+ * WebProcess/WebPage/WebFrame.cpp:
+ (WebKit::WebFrame::jsWrapperForWorld):
+ (WebKit::WebFrame::computedStyleIncludingVisitedInfo):
+ * WebProcess/WebPage/WebPage.cpp:
+ (WebKit::WebPage::runJavaScriptInMainFrame):
+ * WebProcess/WebProcess.cpp:
+ (WebKit::WebProcess::getWebCoreStatistics):
+
+2012-06-23 Zan Dobersek <zandobersek@gmail.com>
+
+ Unreviewed build fix for GTK's WebKit2 build after r121093.
+
+ * UIProcess/API/gtk/WebKitWebView.cpp:
+ (webkitWebViewPopulateContextMenu):
+
+2012-06-23 Carlos Garcia Campos <cgarcia@igalia.com>
+
+ Unreviewed. Fix several GTK+ unit tests.
+
+ GTK+ unit tests using WebViewTest::wait() started to fail due to a
+ bug introduced in r121093.
+
+ * UIProcess/API/gtk/tests/WebViewTest.cpp:
+ (WebViewTest::wait): Use this instead of m_mainLoop as user data
+ for the idle callback.
+
+2012-06-23 Carlos Garcia Campos <cgarcia@igalia.com>
+
+ [GTK] Add ContextMenu API to WebKit2 GTK+ API
+ https://bugs.webkit.org/show_bug.cgi?id=81011
+
+ Reviewed by Martin Robinson.
+
+ Add WebKitWebView::context-menu signal and WebKitContextMenu and
+ WebKitContextMenuItem objects to customize the default menu or
+ buils new menus.
+
+ * GNUmakefile.list.am: Add new files to destination.
+ * UIProcess/API/gtk/WebKitContextMenu.cpp: Added.
+ (webkitContextMenuFinalize):
+ (webkit_context_menu_init):
+ (webkit_context_menu_class_init):
+ (webkitContextMenuPopulate): Populate the given vector of
+ ContextMenuItems with the WebKitContextMenu items releasing the
+ items added to the vector.
+ (webkitContextMenuCreate): Create a new WebKitContextMenu for the
+ given WKArrayRef of WKContextMenuItemRef.
+ (webkitContextMenuSetParentItem): Set the parent menu item of the
+ menu. Used when a menu is added as a submenu of a menu item.
+ (webkitContextMenuGetParentItem): Return the parent menu item of
+ the menu.
+ (webkit_context_menu_new): Create a new WebKitContextMenu.
+ (webkit_context_menu_new_with_items): Create a new
+ WebKitContextMenu using the given list of WebKitContextMenuItem.
+ (webkit_context_menu_prepend): Add item at the beginning.
+ (webkit_context_menu_append): Add item at the end.
+ (webkit_context_menu_insert): Insert item at a random position.
+ (webkit_context_menu_move_item): Move an existing item to a new
+ position.
+ (webkit_context_menu_get_items): Get the list of items.
+ (webkit_context_menu_get_n_items): Get the number of items.
+ (webkit_context_menu_first): Get the first item.
+ (webkit_context_menu_last): Get the last item.
+ (webkit_context_menu_get_item_at_position): Get the item at the
+ given position.
+ (webkit_context_menu_remove): Remove the given item.
+ (webkit_context_menu_remove_all): Remove all items.
+ * UIProcess/API/gtk/WebKitContextMenu.h: Added.
+ * UIProcess/API/gtk/WebKitContextMenuActions.cpp: Added.
+ (webkitContextMenuActionIsCheckable): Check if the given stock
+ action is a toggle action.
+ (webkitContextMenuActionGetActionTag): Get the WebCore
+ ContextMenuAction corresponding to the given stock action.
+ (webkitContextMenuActionGetForContextMenuItem): Get the stock
+ action corresponding to the given WebCore ContextMenuAction.
+ (webkitContextMenuActionGetLabel): Get the label string of the
+ given stock action.
+ * UIProcess/API/gtk/WebKitContextMenuActions.h: Added.
+ * UIProcess/API/gtk/WebKitContextMenuActionsPrivate.h: Added.
+ * UIProcess/API/gtk/WebKitContextMenuItem.cpp: Added.
+ (webkitContextMenuItemFinalize):
+ (webkit_context_menu_item_init):
+ (webkit_context_menu_item_class_init):
+ (checkAndWarnIfMenuHasParentItem): Check whether the given menu
+ is already inside another menu showing a warning in such case.
+ (webkitContextMenuItemSetSubMenu): Set the submenu of a menu item,
+ checking that the menu is not part of another menu and setting the
+ item as the parent of the submenu.
+ (webkitContextMenuItemCreate): Create a new WebKitContextMenuItem
+ for the given WKContextMenuItemRef.
+ (webkitContextMenuItemCreateForGtkItem): Create a new
+ WebKitContextMenuItem using the given GtkMenuItem.
+ (webkitContextMenuItemSetSubMenuFromGtkMenu): Set the given
+ GtkMenu as submenu of the item. This is used only to add Input
+ Methods submenu that is created by GTK.
+ (webkitContextMenuItemRelease): Release the WebCore
+ ContextMenuItem associated to the item.
+ (webkit_context_menu_item_new): Create a new WebKitContextMenuItem
+ for the given GtkAction.
+ (webkit_context_menu_item_new_from_stock_action): Create a new
+ WebKitContextMenuItem for a stock action.
+ (webkit_context_menu_item_new_from_stock_action_with_label):
+ Create a new WebKitContextMenuItem for a stock action using a
+ custom label.
+ (webkit_context_menu_item_new_with_submenu): Create a new
+ WebKitContextMenuItem with a submenu.
+ (webkit_context_menu_item_new_separator): Create a new separator
+ menu item.
+ (webkit_context_menu_item_get_action): Get the GtkAction of the item.
+ (webkit_context_menu_item_get_stock_action): Get the stock action
+ of the item.
+ (webkit_context_menu_item_is_separator): Whether item is a separator.
+ (webkit_context_menu_item_set_submenu): Set or replace the
+ submenu of the item.
+ (webkit_context_menu_item_get_submenu): Get the submenu of the item.
+ * UIProcess/API/gtk/WebKitContextMenuItem.h: Added.
+ * UIProcess/API/gtk/WebKitContextMenuItemPrivate.h: Added.
+ * UIProcess/API/gtk/WebKitContextMenuPrivate.h: Added.
+ * UIProcess/API/gtk/WebKitDefines.h:
+ * UIProcess/API/gtk/WebKitWebView.cpp:
+ (webkit_web_view_class_init): Add WebKitWebView::context-menu signal.
+ (getUnicodeMenuItemPosition): Helper function that returns the
+ position of the unicode menu item in the proposed context menu.
+ (webkitWebViewCreateAndAppendInputMethodsMenuItem): Use
+ WebKitContextMenu API to add the input methods submenu to the
+ default context menu.
+ (webkitWebViewPopulateContextMenu): Create a WebKitContextMenu for
+ the default context menu and emit WebKitWebView::context-menu
+ signal. Then populate the context menu proxy with the resulting
+ WebKitContextMenu.
+ * UIProcess/API/gtk/WebKitWebView.h:
+ * UIProcess/API/gtk/WebKitWebViewBase.cpp:
+ (webkitWebViewBaseButtonPressEvent): In case of right click save
+ the event to be used by context menu signal.
+ (webkitWebViewBaseTakeContextMenuEvent): Return and release the
+ saved button event.
+ * UIProcess/API/gtk/WebKitWebViewBasePrivate.h:
+ * UIProcess/API/gtk/docs/webkit2gtk-docs.sgml: Add sections for
+ WebKitContextMenu and WebKitContextMenuItem.
+ * UIProcess/API/gtk/docs/webkit2gtk-sections.txt: Add new symbols.
+ * UIProcess/API/gtk/docs/webkit2gtk.types: Add
+ webkit_context_menu_get_type and webkit_context_menu_item_get_type.
+ * UIProcess/API/gtk/tests/GNUmakefile.am: Add new test for context menu.
+ * UIProcess/API/gtk/tests/TestContextMenu.cpp: Added.
+ (testContextMenuDefaultMenu):
+ (testContextMenuPopulateMenu):
+ (testContextMenuCustomMenu):
+ (testContextMenuDisableMenu):
+ (testContextMenuSubMenu):
+ (beforeAll):
+ (afterAll):
+ * UIProcess/API/gtk/tests/TestMain.h:
+ (Test::addLogFatalFlag): Add a log level flag to the mask of flags
+ causing the program to abort.
+ (Test::removeLogFatalFlag): Remove a log level flag to the mask of
+ flags causing the program to abort.
+ * UIProcess/API/gtk/tests/WebViewTest.cpp:
+ (WebViewTest::quitMainLoop): Finish the main loop.
+ (WebViewTest::quitMainLoopAfterProcessingPendingEvents): Finish
+ the main loop when all pending events have been processed.
+ (quitMainLoopIdleCallback):
+ (WebViewTest::wait):
+ * UIProcess/API/gtk/tests/WebViewTest.h:
+ * UIProcess/API/gtk/webkit2.h: Include WebKitContextMenu.h,
+ WebKitContextMenuItem.h and WebKitContextMenuActions.h.
+ * UIProcess/API/gtk/webkit2marshal.list:
+ * UIProcess/gtk/WebContextMenuProxyGtk.cpp:
+ (WebKit::WebContextMenuProxyGtk::showContextMenu): Attach the
+ popup menu to the view widget before showing it.
+
+2012-06-22 Alexandru Chiculita <achicu@adobe.com>
+
+ [CSS Shaders] Re-enable the CSS Shaders compile time flag on Safari Mac
+ https://bugs.webkit.org/show_bug.cgi?id=89781
+
+ Reviewed by Dean Jackson.
+
+ Added ENABLE_CSS_SHADERS flag as enabled by default on Safari for Mac.
+
+ * Configurations/FeatureDefines.xcconfig:
+
+2012-06-22 Ryuan Choi <ryuan.choi@samsung.com>
+
+ [EFL][WK2] Support keyboard event
+ https://bugs.webkit.org/show_bug.cgi?id=89268
+
+ Reviewed by Chang Shu.
+
+ * WebProcess/WebCoreSupport/efl/WebEditorClientEfl.cpp:
+ (WebKit::WebEditorClient::handleKeyboardEvent): Implemented default behavior.
+ * WebProcess/WebPage/efl/WebPageEfl.cpp:
+ (WebKit::WebPage::interpretKeyEvent): Implemented like WebKit1/Efl did.
+
+2012-06-20 Mark Hahnenberg <mhahnenberg@apple.com>
+
+ JSLock should be per-JSGlobalData
+ https://bugs.webkit.org/show_bug.cgi?id=89123
+
+ Reviewed by Gavin Barraclough.
+
+ Changed all sites that used JSLock to instead use the new JSLockHolder
+ and pass in the correct JS context that the code is about to interact with that
+ needs protection.
+
+ * Shared/mac/WebMemorySampler.mac.mm:
+ (WebKit::WebMemorySampler::sampleWebKit):
+ * WebProcess/InjectedBundle/InjectedBundle.cpp:
+ (WebKit::InjectedBundle::javaScriptObjectsCount):
+ (WebKit::InjectedBundle::reportException):
+ * WebProcess/Plugins/Netscape/JSNPObject.cpp:
+ (WebKit::JSNPObject::callMethod):
+ (WebKit::JSNPObject::callObject):
+ (WebKit::JSNPObject::callConstructor):
+ (WebKit::JSNPObject::put):
+ (WebKit::JSNPObject::deleteProperty):
+ (WebKit::JSNPObject::getOwnPropertyNames):
+ (WebKit::JSNPObject::propertyGetter):
+ * WebProcess/Plugins/Netscape/NPJSObject.cpp:
+ (WebKit::NPJSObject::hasMethod):
+ (WebKit::NPJSObject::invoke):
+ (WebKit::NPJSObject::invokeDefault):
+ (WebKit::NPJSObject::hasProperty):
+ (WebKit::NPJSObject::getProperty):
+ (WebKit::NPJSObject::setProperty):
+ (WebKit::NPJSObject::removeProperty):
+ (WebKit::NPJSObject::enumerate):
+ (WebKit::NPJSObject::construct):
+ * WebProcess/Plugins/Netscape/NPRuntimeObjectMap.cpp:
+ (WebKit::NPRuntimeObjectMap::convertJSValueToNPVariant):
+ (WebKit::NPRuntimeObjectMap::evaluate):
+ (WebKit::NPRuntimeObjectMap::moveGlobalExceptionToExecState):
+ * WebProcess/WebPage/WebFrame.cpp:
+ (WebKit::WebFrame::jsWrapperForWorld):
+ (WebKit::WebFrame::computedStyleIncludingVisitedInfo):
+ * WebProcess/WebPage/WebPage.cpp:
+ (WebKit::WebPage::runJavaScriptInMainFrame):
+ * WebProcess/WebProcess.cpp:
+ (WebKit::WebProcess::getWebCoreStatistics):
+
+2012-06-22 Jocelyn Turcotte <turcotte.j@gmail.com>
+
+ [Qt] Fix the remote inspector loading problems on Mac
+ https://bugs.webkit.org/show_bug.cgi?id=89747
+
+ Reviewed by Simon Hausmann.
+
+ Reverse the creation order of the inter-dependent WebSocketServerConnection
+ and SocketStreamHandle to make sure that the later has a client properly
+ set on construction.
+
+ This is to work around the assert on m_state in SocketStreamHandle::setClient.
+
+ * UIProcess/InspectorServer/WebSocketServer.cpp:
+ (WebKit::WebSocketServer::didAcceptConnection):
+ * UIProcess/InspectorServer/WebSocketServer.h:
+ (WebKit::WebSocketServer::client):
+ (WebSocketServer):
+ * UIProcess/InspectorServer/WebSocketServerConnection.cpp:
+ (WebKit::WebSocketServerConnection::WebSocketServerConnection):
+ (WebKit::WebSocketServerConnection::setSocketHandle):
+ (WebKit):
+ * UIProcess/InspectorServer/WebSocketServerConnection.h:
+ (WebSocketServerConnection):
+ * UIProcess/InspectorServer/qt/WebSocketServerQt.cpp:
+ (WebKit::QtTcpServerHandler::handleNewConnection):
+
+2012-06-22 Sergio Villar Senin <svillar@igalia.com>
+
+ [WK2] FindController::hideFindUI should unmark highlighted text matches
+ https://bugs.webkit.org/show_bug.cgi?id=77747
+
+ Reviewed by Carlos Garcia Campos.
+
+ Unmark all text matches whenever FindController::hideFindUI is
+ called to allow callers using the ShowHighlight find option to
+ remove highlighting.
+
+ This patch enables a unit test for the WebKitFindController
+ previously guarded by a #if(0) after r109222.
+
+ * UIProcess/API/gtk/tests/TestWebKitFindController.cpp:
+ (testFindControllerHide):
+ * WebProcess/WebPage/FindController.cpp:
+ (WebKit::FindController::hideFindUI):
+
+2012-06-21 Christophe Dumez <christophe.dumez@intel.com>
+
+ [WK2] Add C API to inspect a Web Intent
+ https://bugs.webkit.org/show_bug.cgi?id=89275
+
+ Reviewed by Anders Carlsson.
+
+ Add C API for Web Intent so that it can be queried
+ on client side.
+
+ * CMakeLists.txt:
+ * GNUmakefile.list.am:
+ * Target.pri:
+ * UIProcess/API/C/WKIntentData.cpp: Copied from Source/WebKit2/UIProcess/WebIntentData.cpp.
+ (WKIntentDataGetTypeID):
+ (WKIntentDataCopyAction):
+ (WKIntentDataCopyType):
+ (WKIntentDataCopyService):
+ (WKIntentDataCopySuggestions):
+ (WKIntentDataCopyExtra):
+ (WKIntentDataCopyExtras):
+ * UIProcess/API/C/WKIntentData.h: Copied from Source/WebKit2/UIProcess/WebIntentData.cpp.
+ * UIProcess/WebIntentData.cpp:
+ (WebKit::WebIntentData::suggestions):
+ (WebKit):
+ (WebKit::WebIntentData::extra):
+ (WebKit::WebIntentData::extras):
+ * UIProcess/WebIntentData.h:
+ (WebIntentData):
+
+2012-06-21 Christophe Dumez <christophe.dumez@intel.com>
+
+ [WK2] Properly encode/decode service in IntentData
+ https://bugs.webkit.org/show_bug.cgi?id=89460
+
+ Reviewed by Gustavo Noronha Silva.
+
+ Update IntentData::encode() and IntentData::decode()
+ so that the "service" member is properly encoded
+ and decoded.
+
+ * Shared/IntentData.cpp:
+ (WebKit::IntentData::encode):
+ (WebKit::IntentData::decode):
+
+2012-06-21 Ryuan Choi <ryuan.choi@gmail.com>
+
+ [EFL][WK2] Make WebKit2/Efl headers and resources installable.
+ https://bugs.webkit.org/show_bug.cgi?id=88207
+
+ Reviewed by Chang Shu.
+
+ * CMakeLists.txt: Install WebProcess.
+ * PlatformEfl.cmake: Generate ewebkit2.pc and install it.
+ * efl/ewebkit2.pc.in: Added.
+
+2012-06-21 Ryuan Choi <ryuan.choi@samsung.com>
+
+ [EFL[WK2] Add WKViewEfl and WebKit2 API Object to represent Evas_Object.
+ https://bugs.webkit.org/show_bug.cgi?id=88935
+
+ Reviewed by Chang Shu.
+
+ Add WKViewEfl to support WTR/Efl.
+
+ * PlatformEfl.cmake:
+ * Shared/API/c/WKBase.h:
+ * Shared/API/c/efl/WKBaseEfl.h: Added.
+ * UIProcess/API/C/WKAPICast.h:
+ * UIProcess/API/C/efl/WKAPICastEfl.h: Added.
+ (WebKit):
+ * UIProcess/API/C/efl/WKView.cpp: Added.
+ (WKViewCreate):
+ (WKViewGetPage):
+ * UIProcess/API/C/efl/WKView.h: Added.
+ * UIProcess/API/efl/ewk_view.cpp:
+ (ewk_view_page_get):
+ * UIProcess/API/efl/ewk_view_private.h:
+
+2012-06-21 Thiago Marcos P. Santos <thiago.santos@intel.com>
+
+ [Qt] API tests for ColorChooser
+ https://bugs.webkit.org/show_bug.cgi?id=88101
+
+ Reviewed by Kenneth Rohde Christiansen.
+
+ The test uses the value sanitization to detect if the feature is
+ enabled or disabled and will just pass when disabled.
+
+ * UIProcess/API/qt/tests/qmltests/WebView/tst_colorChooser.qml: Added.
+ * UIProcess/API/qt/tests/qmltests/common/colorChooser.html: Added.
+
+2012-06-21 Thiago Marcos P. Santos <thiago.santos@intel.com>
+
+ [WK2][Qt] Color chooser API missing
+ https://bugs.webkit.org/show_bug.cgi?id=87749
+
+ Reviewed by Kenneth Rohde Christiansen.
+
+ Added public experimental API for ColorChooser. This will
+ allow the browser to define a custom dialog for selecting
+ color when a input field of type "color" get focus.
+
+ The current implementation gives a model to the QML Component
+ that has methods for canceling a request, selecting a color
+ and fetching what is the current value of the HTML input.
+
+ * Target.pri:
+ * UIProcess/API/qt/qquickwebview.cpp:
+ (QQuickWebViewPrivate::QQuickWebViewPrivate):
+ (QQuickWebViewExperimental::colorChooser):
+ (QQuickWebViewExperimental::setColorChooser):
+ * UIProcess/API/qt/qquickwebview_p.h:
+ * UIProcess/API/qt/qquickwebview_p_p.h:
+ (QQuickWebViewPrivate):
+ * UIProcess/qt/QtPageClient.cpp:
+ (WebKit::QtPageClient::createColorChooserProxy):
+ * UIProcess/qt/WebColorChooserProxyQt.cpp: Added.
+ (WebKit):
+ (ColorChooserContextObject):
+ (WebKit::ColorChooserContextObject::ColorChooserContextObject):
+ (WebKit::ColorChooserContextObject::currentColor):
+ (WebKit::ColorChooserContextObject::accept):
+ (WebKit::ColorChooserContextObject::reject):
+ (WebKit::WebColorChooserProxyQt::WebColorChooserProxyQt):
+ (WebKit::WebColorChooserProxyQt::~WebColorChooserProxyQt):
+ (WebKit::WebColorChooserProxyQt::createItem):
+ (WebKit::WebColorChooserProxyQt::createContext):
+ (WebKit::WebColorChooserProxyQt::setSelectedColor):
+ (WebKit::WebColorChooserProxyQt::notifyColorSelected):
+ (WebKit::WebColorChooserProxyQt::endChooser):
+ * UIProcess/qt/WebColorChooserProxyQt.h: Added.
+ (WebCore):
+ (WebKit):
+ (WebColorChooserProxyQt):
+ (WebKit::WebColorChooserProxyQt::create):
+
+2012-06-21 Mario Sanchez Prada <msanchez@igalia.com>
+
+ [GTK] Add support for window.showModalDialog in WebKit2GTK+
+ https://bugs.webkit.org/show_bug.cgi?id=79500
+
+ Reviewed by Carlos Garcia Campos.
+
+ Implement runModal in WebKitUIClient to make the WebKitWebView
+ emit a 'run-as-modal' signal when requested, creating a new
+ mainloop there to block user interaction with the original window
+ while the modal dialog is showing.
+
+ * UIProcess/API/gtk/WebKitUIClient.cpp:
+ (runModal): Call to the new webkitWebViewRunAsModalPage function.
+ (attachUIClientToView): Add runModal.
+ * UIProcess/API/gtk/WebKitWebView.cpp:
+ (_WebKitWebViewPrivate): Add an atribute for a new main loop.
+ (webkitWebViewFinalize): Make sure the main loop for main dialogs,
+ if any, is stopped if it was still running.
+ (webkit_web_view_class_init): Declare new signal 'run-as-modal'.
+ (webkitWebViewRunAsModal): Emit the 'run-as-modal' signal and, if
+ handled, create and run a new main loop.
+ * UIProcess/API/gtk/WebKitWebView.h:
+ (_WebKitWebViewClass): New handler for the 'run-as-modal' signal.
+ * UIProcess/API/gtk/WebKitWebViewPrivate.h: Add webkitWebViewRunAsModalPage.
+
+ Allow setting and getting the value of WebPage's canRunModal
+ attribute in the WebProcess from the UIProcess after the creation
+ of a WebPage, to allow using it from WebKitWebView to allow the
+ client application to decide whether to allow create modal
+ dialogs, which would result in launching an additional nested
+ event loop in the web process, after creating the dialog.
+
+ * UIProcess/WebPageProxy.cpp:
+ (WebKit::WebPageProxy::WebPageProxy): Initialize the new
+ m_canRunModal attribute, to cache the current status of the
+ WebPage in the WebProcess.
+ (WebKit::WebPageProxy::initializeUIClient): Call the new function
+ setCanRunModal, instead of manually sending the SetCanRunModal message.
+ (WebKit::WebPageProxy::creationParameters): Use m_canRunModal
+ instead of m_uiClient.canRunModal when preparing the parameters.
+ (WebKit::WebPageProxy::setCanRunModal): New public function, it
+ sets the value of m_canRunModal and sends a message to the Web
+ process for updating the WebPage, whenever possible.
+ (WebKit::WebPageProxy::canRunModal): New public function, returns
+ the value of the m_canRunModal attribute.
+ * UIProcess/WebPageProxy.h:
+ (WebPageProxy): Added new public functions and private attribute.
+
+ New property in WebKitSettings to be able to decide whether it is
+ allowed to create and run new child webviews as modal dialogs.
+
+ * UIProcess/API/gtk/WebKitSettings.cpp:
+ (_WebKitSettingsPrivate): New attribute allowModalDialogs.
+ (webKitSettingsSetProperty): Handle the new property.
+ (webKitSettingsGetProperty): Ditto.
+ (webkit_settings_class_init): Install the new property.
+ (webkitSettingsAttachSettingsToPage): Make sure the WebPage is
+ initialized with the value of the new property.
+ (webkit_settings_set_allow_modal_dialogs): New setter.
+ (webkit_settings_get_allow_modal_dialogs): New getter.
+ * UIProcess/API/gtk/WebKitSettings.h:
+ * UIProcess/API/gtk/docs/webkit2gtk-sections.txt: Added new accessors.
+
+ Connect to the 'notify::allow-modal-dialogs' signal from
+ WebKitSettings to ensure that canRunModal property of the WebPage
+ is kept up to date. Ensure that signal handlers for monitoring
+ settings are disconnected when the webview is finalized.
+
+ * UIProcess/API/gtk/WebKitWebView.cpp:
+ (webkitWebViewSetSettings): Connect to the new signal
+ 'notify::allow-modal-dialogs', from WebKitSettings.
+ (allowModalDialogsChanged): Callback to update WebPage's
+ canRunModal property when updated through WebKitSettings.
+ (webkitWebViewDisconnectSettingsSignalHandlers): Disconnect signal
+ handlers for monitoring WebKitSettings properties.
+ (webkitWebViewFinalize): Ensure signal handlers are disconnected.
+ (webkit_web_view_set_settings): Ditto.
+ * UIProcess/API/gtk/WebKitWebView.h:
+
+ Add new unit tests to check the 'run-as-modal' signal is emitted
+ only when the new property in WebKitSettings is set to TRUE.
+
+ * UIProcess/API/gtk/tests/TestWebKitWebView.cpp:
+ (testWebViewAllowModalDialogs): New unit test to check that modal
+ dialogs are properly created from JavaScript when allowed.
+ (testWebViewDisallowModalDialogs): New unit test to check that
+ it's not possible to create modal dialogs when not allowed.
+ (beforeAll): Add the new unit test.
+
+2012-06-20 Thiago Marcos P. Santos <thiago.santos@intel.com>
+
+ [WK2] Color chooser API missing
+ https://bugs.webkit.org/show_bug.cgi?id=87495
+
+ Reviewed by Andreas Kling.
+
+ Added ColorChooser API to WebKit2. This API allows the
+ embedder to define a custom color picker for <input type="color">.
+
+ Only one ColorChooser can be active for a page at a time. Although
+ the implementation doesn't not assume a modal dialog, no other
+ color chooser will be created until the active one is closed.
+
+ Also added stubs for all platforms, so it wont break the build when
+ enabling color chooser, even though they don't have the backend
+ implemented yet.
+
+ * CMakeLists.txt:
+ * GNUmakefile.list.am:
+ * Target.pri:
+ * UIProcess/API/efl/PageClientImpl.cpp:
+ (WebKit):
+ (WebKit::PageClientImpl::createColorChooserProxy):
+ * UIProcess/API/efl/PageClientImpl.h:
+ (PageClientImpl):
+ * UIProcess/API/gtk/PageClientImpl.cpp:
+ (WebKit):
+ (WebKit::PageClientImpl::createColorChooserProxy):
+ * UIProcess/API/gtk/PageClientImpl.h:
+ (PageClientImpl):
+ * UIProcess/API/mac/PageClientImpl.h:
+ (PageClientImpl):
+ * UIProcess/API/mac/PageClientImpl.mm:
+ (WebKit):
+ (WebKit::PageClientImpl::createColorChooserProxy):
+ * UIProcess/PageClient.h:
+ (WebKit):
+ (PageClient):
+ * UIProcess/WebColorChooserProxy.h: Added.
+ (WebCore):
+ (WebKit):
+ (WebColorChooserProxy):
+ (Client):
+ (WebKit::WebColorChooserProxy::Client::~Client):
+ (WebKit::WebColorChooserProxy::~WebColorChooserProxy):
+ (WebKit::WebColorChooserProxy::invalidate):
+ (WebKit::WebColorChooserProxy::WebColorChooserProxy):
+ * UIProcess/WebPageProxy.cpp:
+ (WebKit::WebPageProxy::close):
+ (WebKit):
+ (WebKit::WebPageProxy::showColorChooser):
+ (WebKit::WebPageProxy::setColorChooserColor):
+ (WebKit::WebPageProxy::endColorChooser):
+ (WebKit::WebPageProxy::didChooseColor):
+ (WebKit::WebPageProxy::didEndColorChooser):
+ (WebKit::WebPageProxy::processDidCrash):
+ * UIProcess/WebPageProxy.h:
+ (WebPageProxy):
+ * UIProcess/WebPageProxy.messages.in:
+ * UIProcess/qt/QtPageClient.cpp:
+ (WebKit):
+ (WebKit::QtPageClient::createColorChooserProxy):
+ * UIProcess/qt/QtPageClient.h:
+ (QtPageClient):
+ * UIProcess/win/WebView.cpp:
+ (WebKit):
+ (WebKit::WebView::createColorChooserProxy):
+ * UIProcess/win/WebView.h:
+ (WebView):
+ * WebKit2.xcodeproj/project.pbxproj:
+ * WebProcess/WebCoreSupport/WebChromeClient.cpp:
+ (WebKit::WebChromeClient::createColorChooser):
+ * WebProcess/WebCoreSupport/WebColorChooser.cpp: Added.
+ (WebKit):
+ (WebKit::WebColorChooser::WebColorChooser):
+ (WebKit::WebColorChooser::~WebColorChooser):
+ (WebKit::WebColorChooser::didChooseColor):
+ (WebKit::WebColorChooser::didEndChooser):
+ (WebKit::WebColorChooser::disconnectFromPage):
+ (WebKit::WebColorChooser::setSelectedColor):
+ (WebKit::WebColorChooser::endChooser):
+ * WebProcess/WebCoreSupport/WebColorChooser.h: Added.
+ (WebCore):
+ (WebKit):
+ (WebColorChooser):
+ * WebProcess/WebPage/WebPage.cpp:
+ (WebKit::WebPage::WebPage):
+ (WebKit::WebPage::close):
+ (WebKit):
+ (WebKit::WebPage::setActiveColorChooser):
+ (WebKit::WebPage::didEndColorChooser):
+ (WebKit::WebPage::didChooseColor):
+ * WebProcess/WebPage/WebPage.h:
+ (WebKit):
+ (WebPage):
+ (WebKit::WebPage::activeColorChooser):
+ * WebProcess/WebPage/WebPage.messages.in:
+ * win/WebKit2.vcproj:
+
+2012-06-20 Brady Eidson <beidson@apple.com>
+
+ <rdar://problem/11653784> and https://bugs.webkit.org/show_bug.cgi?id=89590
+ showModalDialog message handling is flaky in WebKit2
+
+ Because RunLoop::performWork() swaps the function queue to a temporary Vector before calling
+ the functions an inner run-loop - such as we see with running a modal dialog - does not have
+ a change to handle any of the functions that were queued after the WebPageProxy::RunModal message.
+
+ By servicing the functions in the queue one at a time we can give the RunLoop a chance to pick up
+ where it left off if RunLoop::performWork is re-entered.
+
+ To guarantee RunLoop::performWork is re-entered to handle those functions we also need to signal
+ its source before entering the modal run loop so our RunLoop is woken up.
+
+ Reviewed by Darin Adler.
+
+ * Platform/CoreIPC/Connection.cpp:
+ (CoreIPC::Connection::wakeUpRunLoop): Added so the WebPageProxy can signal the runloop to be woken up
+ before it enters the modal dialog run loop.
+ * Platform/CoreIPC/Connection.h:
+
+ * UIProcess/WebPageProxy.cpp:
+ (WebKit::WebPageProxy::runModal): Call wakeUpRunLoop() before entering the modal dialog run loop.
+
+2012-06-20 Julien Chaffraix <jchaffraix@webkit.org>
+
+ Use IntSize in RenderLayer to represent scroll offsets
+ https://bugs.webkit.org/show_bug.cgi?id=89154
+
+ Reviewed by Eric Seidel.
+
+ * WebProcess/WebPage/win/WebPageWin.cpp:
+ (WebKit::WebPage::gestureDidScroll):
+ Updated to pass an IntSize to scrollByRecursively.
+
+2012-06-20 Christophe Dumez <christophe.dumez@intel.com>
+
+ [WK2] Implement Web Intent delivery
+ https://bugs.webkit.org/show_bug.cgi?id=88989
+
+ Reviewed by Anders Carlsson.
+
+ Add a deliverIntent() method to the WebFrame so that
+ Web intents can be delivered once matched to a
+ specific service.
+
+ * UIProcess/WebFrameProxy.cpp:
+ (WebKit):
+ (WebKit::WebFrameProxy::deliverIntent):
+ * UIProcess/WebFrameProxy.h:
+ (WebKit):
+ (WebFrameProxy):
+ * UIProcess/WebIntentData.h:
+ (WebKit::WebIntentData::store):
+ * WebProcess/WebPage/WebFrame.cpp:
+ (WebKit):
+ (WebKit::WebFrame::deliverIntent):
+ * WebProcess/WebPage/WebFrame.h:
+ (WebKit):
+ (WebFrame):
+ * WebProcess/WebPage/WebPage.cpp:
+ (WebKit):
+ (WebKit::WebPage::deliverIntentToFrame):
+ * WebProcess/WebPage/WebPage.h:
+ (WebKit):
+ (WebPage):
+ * WebProcess/WebPage/WebPage.messages.in:
+
+2012-06-20 Alexis Menard <alexis.menard@openbossa.org>
+
+ REGRESSION (120705) : LayerTreeHostQt asserts in debug.
+ https://bugs.webkit.org/show_bug.cgi?id=89487
+
+ Reviewed by Noam Rosenthal.
+
+ We try to call createHandle twice on the same handle when the
+ first matching atlas is full. This patch solved the problem by
+ moving the createHandle call inside UpdateAtlas and call createHandle
+ only when the atlas is not full. We can also remove the surface()
+ getter as it is not used anymore.
+
+ * WebProcess/WebPage/UpdateAtlas.cpp:
+ (WebKit::UpdateAtlas::beginPaintingOnAvailableBuffer):
+ * WebProcess/WebPage/UpdateAtlas.h:
+ (UpdateAtlas):
+ * WebProcess/WebPage/qt/LayerTreeHostQt.cpp:
+ (WebKit::LayerTreeHostQt::beginContentUpdate):
+
+2012-06-19 Ryuan Choi <ryuan.choi@samsung.com>
+
+ [EFL][Regression] Build break after r120786
+ https://bugs.webkit.org/show_bug.cgi?id=89549
+
+ Unreviewed build fix for Efl port.
+
+ * CMakeLists.txt: Added disassembler in includes.
+
+2012-06-19 Dan Bernstein <mitz@apple.com>
+
+ WebKit2 part of: Paginated display API doesn’t allow setting the page progression direction
+ https://bugs.webkit.org/show_bug.cgi?id=89394
+
+ Reviewed by Darin Adler.
+
+ * UIProcess/API/C/WKPage.cpp:
+ (WKPageSetPaginationMode): Changed to map new WKPaginationMode values to new
+ Pagination::Mode values.
+ (WKPageGetPaginationMode): Similarly, in the opposite direction.
+ * UIProcess/API/C/WKPagePrivate.h: Replaced WKPaginationMode values with ones that specify
+ an axis and a direction along that axis.
+ * UIProcess/API/mac/WKBrowsingContextController.mm:
+ (-[WKBrowsingContextController setPaginationMode:]): Changed to handle new values.
+ (-[WKBrowsingContextController paginationMode]): Ditto.
+ * UIProcess/API/mac/WKBrowsingContextControllerPrivate.h: Replaced
+ WKBrowsingContextPaginationMode values with ones that specify an axis and a direction along
+ that axis.
+
+2012-06-19 Alexis Menard <alexis.menard@openbossa.org>
+
+ [Qt] Create an extra atlas when there is no available buffer space.
+ https://bugs.webkit.org/show_bug.cgi?id=89012
+
+ Reviewed by Noam Rosenthal.
+
+ In case of the desktop mode when we scroll the view all the tiles
+ are updated. It can happen that there no available buffer space for
+ the currently used atlas(especially when scrolling fast). In that case
+ we can create a new one. One future improvement could be to make a timer and
+ delete this extra atlas when it is not used.
+
+ * WebProcess/WebPage/qt/LayerTreeHostQt.cpp:
+ (WebKit::beginContentUpdateInAtlas):
+ (WebKit::LayerTreeHostQt::beginContentUpdate):
+ * WebProcess/WebPage/qt/LayerTreeHostQt.h:
+ (LayerTreeHostQt):
+
+2012-06-19 Csaba Osztrogonác <ossy@webkit.org>
+
+ [Qt] Buildfix for newer Qt5, use QPointer instead of the deprecated QWeakPointer.
+ https://bugs.webkit.org/show_bug.cgi?id=89449
+
+ Reviewed by Simon Hausmann.
+
+ * UIProcess/API/qt/qquicknetworkreply_p.h:
+
+2012-06-19 Mike West <mkwst@chromium.org>
+
+ Introduce ENABLE_CSP_NEXT configuration flag.
+ https://bugs.webkit.org/show_bug.cgi?id=89300
+
+ Reviewed by Adam Barth.
+
+ The 1.0 draft of the Content Security Policy spec is just about to
+ move to Last Call. We'll hide work on the upcoming 1.1 spec behind
+ this ENABLE flag, disabled by default.
+
+ Spec: https://dvcs.w3.org/hg/content-security-policy/raw-file/tip/csp-specification.dev.html
+
+ * Configurations/FeatureDefines.xcconfig:
+
+2012-06-19 Mike West <mkwst@chromium.org>
+
+ Add a scheme registry for bypassing Content Security Policy.
+ https://bugs.webkit.org/show_bug.cgi?id=89373
+
+ Reviewed by Adam Barth.
+
+ * win/WebKit2.def:
+ * win/WebKit2CFLite.def:
+
+2012-06-16 Adam Barth <abarth@webkit.org>
+
+ Settings::devicePixelRatio doesn't do anything and is confusing
+ https://bugs.webkit.org/show_bug.cgi?id=89272
+
+ Reviewed by James Robinson.
+
+ * Shared/WebPreferencesStore.h:
+ (WebKit):
+ - Remove boilerplate code for the setting.
+ * UIProcess/API/qt/qquickwebview.cpp:
+ (QQuickWebViewExperimental::devicePixelRatio):
+ (QQuickWebViewExperimental::setDevicePixelRatio):
+ - Change these functions to get and set the real device scale factor.
+ * WebProcess/WebPage/WebPage.cpp:
+ (WebKit::WebPage::sendViewportAttributesChanged):
+ - Use the real device scale factor for the viewport calculation.
+ (WebKit::WebPage::updatePreferences):
+ - Remove boilerplate code for the setting.
+
+2012-06-15 Christophe Dumez <christophe.dumez@intel.com>
+
+ [WK2] Add support for explicit intents
+ https://bugs.webkit.org/show_bug.cgi?id=89206
+
+ Reviewed by Kenneth Rohde Christiansen.
+
+ Expose the service URL of a Web Intent. This URL
+ is set for explicit intents.
+
+ * Shared/IntentData.h:
+ (IntentData):
+ * UIProcess/WebIntentData.h:
+ (WebKit::WebIntentData::service):
+ * WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
+ (WebKit::WebFrameLoaderClient::dispatchIntent):
+
+2012-06-15 Christophe Dumez <christophe.dumez@intel.com>
+
+ [EFL][WK2] Add title support to Ewk_View
+ https://bugs.webkit.org/show_bug.cgi?id=89095
+
+ Reviewed by Kenneth Rohde Christiansen.
+
+ Add a method to get the title of the main frame in
+ an Ewk_View. A "title,changed" signal is now emitted
+ on the view to notify clients that the main frame
+ title was changed.
+
+ * PlatformEfl.cmake:
+ * UIProcess/API/efl/ewk_view.cpp:
+ (_Ewk_View_Private_Data):
+ (_ewk_view_priv_del):
+ (ewk_view_base_add):
+ (ewk_view_title_get):
+ (ewk_view_title_changed):
+ * UIProcess/API/efl/ewk_view.h:
+ * UIProcess/API/efl/ewk_view_loader_client.cpp: Added.
+ (didReceiveTitleForFrame):
+ (ewk_view_loader_client_attach):
+ * UIProcess/API/efl/ewk_view_loader_client_private.h: Added.
+ * UIProcess/API/efl/ewk_view_private.h:
+
+2012-06-15 Christophe Dumez <christophe.dumez@intel.com>
+
+ [WK2][EFL] Implement navigation back/forward in Ewk_View
+ https://bugs.webkit.org/show_bug.cgi?id=89173
+
+ Reviewed by Kenneth Rohde Christiansen.
+
+ Add API for Ewk_View to ask the main frame to navigate backwards
+ or forwards in history. Also add API to query if such navigation
+ is possible.
+
+ * UIProcess/API/efl/ewk_view.cpp:
+ (ewk_view_back):
+ (ewk_view_forward):
+ (ewk_view_back_possible):
+ (ewk_view_forward_possible):
+ * UIProcess/API/efl/ewk_view.h:
+
+2012-06-15 Christophe Dumez <christophe.dumez@intel.com>
+
+ [EFL][WK2] Implement reload / stop in Ewk_View
+ https://bugs.webkit.org/show_bug.cgi?id=89168
+
+ Reviewed by Kenneth Rohde Christiansen.
+
+ Add API on the Ewk_View to reload the main frame
+ and to stop the current load.
+
+ * UIProcess/API/efl/ewk_view.cpp:
+ (ewk_view_reload):
+ (ewk_view_stop):
+ * UIProcess/API/efl/ewk_view.h:
+
+2012-06-14 Kent Tamura <tkent@chromium.org>
+
+ Validate form state strings in FormController::setStateForNewFormElements()
+ https://bugs.webkit.org/show_bug.cgi?id=88768
+
+ Reviewed by Hajime Morita.
+
+ * win/WebKit2.def: Expose some symbols used by Internals.cpp.
+ * win/WebKit2CFLite.def: ditto.
+
+2012-06-14 Tim Horton <timothy_horton@apple.com>
+
+ DrawingArea: Painting is being resumed while the view is not visible
+ https://bugs.webkit.org/show_bug.cgi?id=88940
+ <rdar://problem/11652545>
+
+ Reviewed by Dean Jackson.
+
+ Using requestAnimationFrame and the fullscreen API on a DrawingArea-backed window would cause
+ rAF to permanently suspend animations after entering full-screen mode, because of the following:
+
+ 0. JavaScript causes fullscreen transition to start.
+ 1. Painting (and rAF) are suspended.
+ 2. The page changes size.
+ a. DrawingAreaProxyImpl::sizeDidChange() calls DrawingAreaImpl::updateBackingStoreState, which calls DrawingAreaImpl::resumePainting.
+ b. DrawingAreaImpl::resumePainting resumes painting, but does *not* resume rAF, because windowIsVisible is (legitimately) false.
+ 3. The view becomes visible, windowIsVisible is updated to true.
+ 4. visibilityDidChange() calls resumePainting again, but this time it early exits because painting is not suspended.
+
+ Notice that because of the early exit in 4, rAF is never resumed.
+
+ To solve this and prevent any further bugs caused by these unnecessary calls to resume/suspendPainting,
+ temporarily stop sending SuspendPainting/ResumePainting messages from DrawingAreaProxyImpl::visibilityDidChange
+ during the window animations that occur while entering and exiting full-screen.
+
+ * UIProcess/API/mac/WKViewInternal.h:
+ * UIProcess/API/mac/WKView.mm:
+ (-[WKView setAutomaticallySuspendAndResumePainting:]):
+ (-[WKView automaticallySuspendAndResumePainting]):
+ * UIProcess/DrawingAreaProxyImpl.cpp:
+ (WebKit::DrawingAreaProxyImpl::visibilityDidChange):
+ * UIProcess/WebPageProxy.h:
+ (WebKit::WebPageProxy::setShouldSuspendAndResumePainting):
+ (WebKit::WebPageProxy::shouldSuspendAndResumePainting):
+ * UIProcess/mac/WKFullScreenWindowController.mm:
+ (-[WKFullScreenWindowController enterFullScreen:]):
+ (-[WKFullScreenWindowController _startEnterFullScreenAnimationWithDuration:]):
+
+2012-06-14 Jia Pu <jpu@apple.com>
+
+ Mark text with text alternative with blue underline.
+ https://bugs.webkit.org/show_bug.cgi?id=83047
+
+ Reviewed by Enrica Casucci.
+
+ Changes in WebKit2 include implementation of new functions declared in AlternativeTextClient,
+ and logic for calling Editor::insertDictatedText() instead of Editor::insertText() when there's
+ alternatives attached to the input string.
+
+ * Shared/API/c/WKContextMenuItemTypes.h:
+ * Shared/API/c/WKSharedAPICast.h:
+ * Shared/WebCoreArgumentCoders.cpp:
+ * Shared/WebCoreArgumentCoders.h:
+ * UIProcess/API/mac/PageClientImpl.h:
+ * UIProcess/API/mac/PageClientImpl.mm:
+ (WebKit::PageClientImpl::PageClientImpl):
+ (WebKit::PageClientImpl::pageClosed):
+ (WebKit::PageClientImpl::addDictationAlternatives):
+ (WebKit::PageClientImpl::removeDictationAlternatives):
+ (WebKit::PageClientImpl::showDictationAlternativeUI):
+ (WebKit::PageClientImpl::dictationAlternatives):
+ (WebKit::PageClientImpl::dismissDictationAlternativeUI):
+ * UIProcess/API/mac/WKView.mm:
+ (-[WKView insertText:replacementRange:]):
+ (-[WKView validAttributesForMarkedText]):
+ (-[WKView handleAcceptedAlternativeText:]):
+ * UIProcess/API/mac/WKViewInternal.h:
+ * UIProcess/PageClient.h:
+ * UIProcess/WebPageProxy.cpp:
+ (WebKit::WebPageProxy::showDictationAlternativeUI):
+ (WebKit::WebPageProxy::dismissDictationAlternativeUI):
+ (WebKit::WebPageProxy::removeDictationAlternatives):
+ (WebKit::WebPageProxy::dictationAlternatives):
+ * UIProcess/WebPageProxy.h:
+ * UIProcess/WebPageProxy.messages.in:
+ * UIProcess/mac/CorrectionPanel.mm:
+ (correctionIndicatorType):
+ (WebKit::CorrectionPanel::handleAcceptedReplacement):
+ * UIProcess/mac/WebPageProxyMac.mm:
+ (WebKit::WebPageProxy::insertDictatedText):
+ * WebProcess/WebCoreSupport/WebAlternativeTextClient.h:
+ (WebAlternativeTextClient):
+ * WebProcess/WebCoreSupport/mac/WebAlternativeTextClient.cpp:
+ (WebKit::WebAlternativeTextClient::showCorrectionAlternative):
+ (WebKit::WebAlternativeTextClient::dismissAlternative):
+ (WebKit::WebAlternativeTextClient::dismissAlternativeSoon):
+ (WebKit::WebAlternativeTextClient::recordAutocorrectionResponse):
+ (WebKit::WebAlternativeTextClient::removeDictationAlternatives):
+ (WebKit::WebAlternativeTextClient::showDictationAlternativeUI):
+ (WebKit::WebAlternativeTextClient::dismissDictationAlternativeUI):
+ (WebKit::WebAlternativeTextClient::dictationAlternatives):
+ * WebProcess/WebPage/WebPage.h:
+ * WebProcess/WebPage/WebPage.messages.in:
+ * WebProcess/WebPage/mac/WebPageMac.mm:
+ (WebKit::WebPage::insertDictatedText):
+
+2012-06-13 Andreas Kling <kling@webkit.org>
+
+ Chinese IM receives incorrect/duplicated key events in text fields in webpages in Safari.
+ <http://webkit.org/b/89048>
+ <rdar://problem/11449702>
+
+ Reviewed by Darin Adler.
+
+ Send the DidReceiveEvent message with the DispatchMessageEvenWhenWaitingForSyncReply flag
+ for keyboard events. This ensures that it always arrives before the corresponding synchronous
+ InterpretQueuedKeyEvent message.
+
+ The problem was that we relied on DidReceiveEvent / InterpretQueuedKeyEvent always arriving in
+ the same order they were sent. This was not always true, since DidReceiveEvent (async) would
+ get deferred during an unrelated waitForSyncReply() whereas InterpretQueuedKeyEvent (sync)
+ gets dispatched right away.
+
+ * WebProcess/WebPage/WebPage.cpp:
+ (WebKit::WebPage::keyEvent):
+
+2012-06-14 Carlos Garcia Campos <cgarcia@igalia.com>
+
+ [GTK] Add input methods submenu item to the default context menu for editable content
+ https://bugs.webkit.org/show_bug.cgi?id=80600
+
+ Reviewed by Martin Robinson.
+
+ * GNUmakefile.am: Add new files to compilation.
+ * UIProcess/API/gtk/WebKitContextMenuClient.cpp: Added.
+ (getContextMenuFromProposedMenu): Call webkitWebViewContextMenu().
+ (attachContextMenuClientToView): Add implementation for
+ getContextMenuFromProposedMenu callback.
+ * UIProcess/API/gtk/WebKitContextMenuClient.h: Added.
+ * UIProcess/API/gtk/WebKitWebView.cpp:
+ (webkitWebViewConstructed): Attach context menu client to view.
+ (webkitWebViewCreateAndAppendDefaultMenuItems): Helper function to
+ add default context menu items to the new context menu items vector.
+ (webkitWebViewShouldShowInputMethodsMenu): Helper function to
+ check whether to show the input methods submenu according to the
+ gtk-show-input-method-menu GTK+ setting.
+ (webkitWebViewCreateAndAppendInputMethodsMenuItem): Helper
+ function to add input methods submenu to the new context menu
+ items vector.
+ (webkitWebViewContextMenu): Create a new context menu items vector
+ containing default items and input methods submenu in case of
+ editable content. The active content menu is populated using that
+ new vector.
+ * UIProcess/API/gtk/WebKitWebViewBase.cpp:
+ (webkitWebViewBaseSetActiveContextMenu): Set the active context menu.
+ (webkitWebViewBaseGetActiveContextMenu): Get the active context menu.
+ * UIProcess/API/gtk/WebKitWebViewBasePrivate.h:
+ * UIProcess/API/gtk/WebKitWebViewPrivate.h:
+ * UIProcess/gtk/WebContextMenuProxyGtk.cpp:
+ (WebKit::WebContextMenuProxyGtk::append): Helper method to add a
+ new item to the context menu.
+ (WebKit::WebContextMenuProxyGtk::populate): Add items to the
+ context menu.
+ (WebKit::WebContextMenuProxyGtk::showContextMenu): Populate the
+ menu with the given items and popup the menu if it's not empty.
+ (WebKit::WebContextMenuProxyGtk::hideContextMenu): Get the GtkMenu
+ from the WebCore ContextMenu to popdown it.
+ (WebKit::WebContextMenuProxyGtk::WebContextMenuProxyGtk): Call
+ webkitWebViewBaseSetActiveContextMenu() to set the menu as the current
+ active one for the view.
+ (WebKit::WebContextMenuProxyGtk::~WebContextMenuProxyGtk): Call
+ webkitWebViewBaseSetActiveContextMenu() with NULL to reset the
+ current active context of the view. GtkMenu is destroyed by
+ WebCore ContextMenu in its destructor.
+ * UIProcess/gtk/WebContextMenuProxyGtk.h:
+
+2012-06-14 Christophe Dumez <christophe.dumez@intel.com>
+
+ [WK2] Add implementation for registerIntentService in WebFrameLoaderClient
+ https://bugs.webkit.org/show_bug.cgi?id=88399
+
+ Reviewed by Kenneth Rohde Christiansen.
+
+ Add implementation for registerIntentService() in
+ WebFrameLoaderClient.
+
+ * CMakeLists.txt:
+ * GNUmakefile.list.am:
+ * Shared/API/c/WKBase.h:
+ * Shared/APIClientTraits.h:
+ * Shared/APIObject.h:
+ * Shared/IntentServiceInfo.cpp: Added.
+ (WebKit):
+ (WebKit::IntentServiceInfo::encode):
+ (WebKit::IntentServiceInfo::decode):
+ * Shared/IntentServiceInfo.h: Added.
+ (CoreIPC):
+ (WebKit):
+ (IntentServiceInfo):
+ * Target.pri:
+ * UIProcess/API/C/WKAPICast.h:
+ (WebKit):
+ * UIProcess/API/C/WKPage.h:
+ * UIProcess/API/gtk/WebKitLoaderClient.cpp:
+ (attachLoaderClientToView):
+ * UIProcess/WebIntentServiceInfo.cpp: Added.
+ (WebKit):
+ (WebKit::WebIntentServiceInfo::WebIntentServiceInfo):
+ * UIProcess/WebIntentServiceInfo.h: Added.
+ (WebKit):
+ (WebIntentServiceInfo):
+ (WebKit::WebIntentServiceInfo::create):
+ (WebKit::WebIntentServiceInfo::~WebIntentServiceInfo):
+ (WebKit::WebIntentServiceInfo::action):
+ (WebKit::WebIntentServiceInfo::payloadType):
+ (WebKit::WebIntentServiceInfo::href):
+ (WebKit::WebIntentServiceInfo::title):
+ (WebKit::WebIntentServiceInfo::disposition):
+ (WebKit::WebIntentServiceInfo::type):
+ * UIProcess/WebLoaderClient.cpp:
+ (WebKit):
+ (WebKit::WebLoaderClient::registerIntentServiceForFrame):
+ * UIProcess/WebLoaderClient.h:
+ (WebKit):
+ (WebLoaderClient):
+ * UIProcess/WebPageProxy.cpp:
+ (WebKit):
+ (WebKit::WebPageProxy::registerIntentServiceForFrame):
+ * UIProcess/WebPageProxy.h:
+ (WebKit):
+ (WebPageProxy):
+ * UIProcess/WebPageProxy.messages.in:
+ * WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
+ (WebKit):
+ (WebKit::WebFrameLoaderClient::registerIntentService):
+ * WebProcess/WebCoreSupport/WebFrameLoaderClient.h:
+ (WebFrameLoaderClient):
+
+2012-06-14 Carlos Garcia Campos <cgarcia@igalia.com>
+
+ [WK2] Add WKHitTestResultIsContentEditable()
+ https://bugs.webkit.org/show_bug.cgi?id=80597
+
+ Reviewed by Martin Robinson.
+
+ * Shared/WebHitTestResult.cpp:
+ (WebKit::WebHitTestResult::Data::encode): Encode isContentEditable.
+ (WebKit::WebHitTestResult::Data::decode): Decode isContentEditable.
+ * Shared/WebHitTestResult.h:
+ (Data): Add isContentEditable.
+ (WebKit::WebHitTestResult::Data::Data): Initialize
+ isContentEditable.
+ (WebKit::WebHitTestResult::isContentEditable): Returns whether
+ hit test result target is editable content.
+ * UIProcess/API/C/WKHitTestResult.cpp:
+ (WKHitTestResultIsContentEditable): C API to get whether hit test
+ result target is editable content.
+ * UIProcess/API/C/WKHitTestResult.h:
+ * UIProcess/API/gtk/WebKitHitTestResult.cpp:
+ (webkitHitTestResultCreate): Add
+ WEBKIT_HIT_TEST_RESULT_CONTEXT_EDITABLE flags to the context if
+ hit test result target is editable content.
+ (webkit_hit_test_result_context_is_editable): Returns TRUE if
+ WEBKIT_HIT_TEST_RESULT_CONTEXT_EDITABLE flags is present in
+ context.
+ * UIProcess/API/gtk/WebKitHitTestResult.h:
+ * UIProcess/API/gtk/docs/webkit2gtk-sections.txt: Add new symbols.
+ * UIProcess/API/gtk/tests/TestWebKitWebView.cpp:
+ (testWebViewMouseTarget): Add tests for
+ WEBKIT_HIT_TEST_RESULT_CONTEXT_EDITABLE.
+
+2012-06-14 Grzegorz Czajkowski <g.czajkowski@samsung.com>
+
+ [WK2] Fix client interface size for WKPageLoaderClient.
+ https://bugs.webkit.org/show_bug.cgi?id=88764
+
+ Reviewed by Anders Carlsson.
+
+ Fixes offset of WKPageLoaderClient for version 0 by adding didDetectXSSForFrame.
+ The offset should be off the first new callback that was added in the new version.
+
+ * Shared/APIClientTraits.cpp:
+ (WebKit):
+
+2012-06-13 Christophe Dumez <christophe.dumez@intel.com>
+
+ [WK2] Add implementation for dispatchIntent in WebFrameLoaderClient
+ https://bugs.webkit.org/show_bug.cgi?id=88340
+
+ Reviewed by Kenneth Rohde Christiansen.
+
+ Add implementation for dispatchIntent() in WebFrameLoaderClient.
+
+ * CMakeLists.txt:
+ * GNUmakefile.list.am:
+ * Shared/API/c/WKBase.h:
+ * Shared/APIClientTraits.h:
+ * Shared/APIObject.h:
+ * Shared/IntentData.cpp: Added.
+ (WebKit):
+ (WebKit::IntentData::encode):
+ (WebKit::IntentData::decode):
+ * Shared/IntentData.h: Added.
+ (CoreIPC):
+ (WebKit):
+ (IntentData):
+ * Target.pri:
+ * UIProcess/API/C/WKAPICast.h:
+ (WebKit):
+ * UIProcess/API/C/WKPage.h:
+ * UIProcess/API/gtk/WebKitLoaderClient.cpp:
+ (attachLoaderClientToView):
+ * UIProcess/WebIntentData.cpp: Added.
+ (WebKit):
+ (WebKit::WebIntentData::WebIntentData):
+ (WebKit::WebIntentData::data):
+ * UIProcess/WebIntentData.h: Added.
+ (WebKit):
+ (WebIntentData):
+ (WebKit::WebIntentData::create):
+ (WebKit::WebIntentData::~WebIntentData):
+ (WebKit::WebIntentData::action):
+ (WebKit::WebIntentData::payloadType):
+ (WebKit::WebIntentData::extras):
+ (WebKit::WebIntentData::suggestions):
+ (WebKit::WebIntentData::type):
+ * UIProcess/WebLoaderClient.cpp:
+ (WebKit):
+ (WebKit::WebLoaderClient::didReceiveIntentForFrame):
+ * UIProcess/WebLoaderClient.h:
+ (WebKit):
+ (WebLoaderClient):
+ * UIProcess/WebPageProxy.cpp:
+ (WebKit):
+ (WebKit::WebPageProxy::didReceiveIntentForFrame):
+ * UIProcess/WebPageProxy.h:
+ (WebKit):
+ (WebPageProxy):
+ * UIProcess/WebPageProxy.messages.in:
+ * WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
+ (WebKit::WebFrameLoaderClient::dispatchIntent):
+
+2012-06-13 Tim Horton <timothy_horton@apple.com>
+
+ Rename _swapView:with: to _replaceView:with:
+ https://bugs.webkit.org/show_bug.cgi?id=89037
+
+ Reviewed by Darin Adler.
+
+ _swapView:with: is a misnomer - after calling it, the first view is no longer
+ contained within the view hierarchy. "Replace" is a more accurate term.
+
+ * UIProcess/mac/WKFullScreenWindowController.mm:
+ (-[WKFullScreenWindowController enterFullScreen:]):
+ (-[WKFullScreenWindowController finishedExitFullScreenAnimation:]):
+ (-[WKFullScreenWindowController _replaceView:with:]):
+
+2012-06-13 Martin Robinson <mrobinson@igalia.com>
+
+ [GTK] Add an accelerated compositing implementation for WebKit2
+ https://bugs.webkit.org/show_bug.cgi?id=86037
+
+ Reviewed by Alejandro G. Castro.
+
+ Add an implementation of LayerTreeHost for GTK+ that uses TextureMapperGL.
+ Later this implementation will fall back to using the ImageBuffer TextureMapper.
+
+ * GNUmakefile.am: Add new files to the compilation.
+ * Shared/LayerTreeContext.h:
+ (LayerTreeContext): The GTK+ version of the LayerTreeContext just holds window handle.
+ * Shared/gtk/LayerTreeContextGtk.cpp: Copied from Source/WebKit2/WebProcess/WebPage/LayerTreeHost.cpp.
+ * WebProcess/WebPage/gtk/LayerTreeHostGtk.h: Added.
+ * WebProcess/WebPage/gtk/LayerTreeHostGtk.cpp: Added.
+ Add this LayerTreeHost implementation that just creates a GL context from the widget X11 window ID.
+ Later implementations might find a more cross-platform solution.
+ * WebProcess/WebPage/gtk/WebPageGtk.cpp:
+ (WebKit::WebPage::platformInitialize): Initialize the native window handle to be zero.
+ (WebKit::WebPage::widgetMapped): When mapping the widget, try to get the native window
+ handle and send it to the WebProcess.
+
+2012-06-13 Andras Becsi <andras.becsi@nokia.com>
+
+ [Qt][WK2] ASSERT(m_rawAttributes.initialScale > 0) in QtViewportHandler::initialRect()
+ https://bugs.webkit.org/show_bug.cgi?id=89026
+
+ Reviewed by Csaba Osztrogonác.
+
+ Only act on viewport attribute changes if the layout size is valid.
+
+ * UIProcess/qt/QtViewportHandler.cpp:
+ (WebKit::QtViewportHandler::setInitialScaleIfNeeded):
+ (WebKit::QtViewportHandler::viewportAttributesChanged):
+
+2012-06-13 Brent Fulgham <bfulgham@webkit.org>
+
+ [WinCairo] Build fix after Windows export definition file change.
+
+ * win/WebKit2CFLite.def: Add missing symbol exports.
+
+2012-06-13 Allan Sandfeld Jensen <allan.jensen@nokia.com>
+
+ [Qt] Fixed visible content rect lost during page-load
+ https://bugs.webkit.org/show_bug.cgi?id=88991
+
+ Reviewed by Kenneth Rohde Christiansen.
+
+ * WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
+ (WebKit::WebFrameLoaderClient::transitionToCommittedForNewPage):
+
+2012-06-13 Sheriff Bot <webkit.review.bot@gmail.com>
+
+ Unreviewed, rolling out r120209.
+ http://trac.webkit.org/changeset/120209
+ https://bugs.webkit.org/show_bug.cgi?id=89007
+
+ Broke the WebKit2 mac build. (Requested by andersca on
+ #webkit).
+
+ * CMakeLists.txt:
+ * GNUmakefile.list.am:
+ * Shared/API/c/WKBase.h:
+ * Shared/APIClientTraits.h:
+ * Shared/APIObject.h:
+ * Shared/IntentData.cpp: Removed.
+ * Shared/IntentData.h: Removed.
+ * Target.pri:
+ * UIProcess/API/C/WKAPICast.h:
+ (WebKit):
+ * UIProcess/API/C/WKPage.h:
+ * UIProcess/API/gtk/WebKitLoaderClient.cpp:
+ (attachLoaderClientToView):
+ * UIProcess/WebIntentData.cpp: Removed.
+ * UIProcess/WebIntentData.h: Removed.
+ * UIProcess/WebLoaderClient.cpp:
+ * UIProcess/WebLoaderClient.h:
+ (WebKit):
+ (WebLoaderClient):
+ * UIProcess/WebPageProxy.cpp:
+ * UIProcess/WebPageProxy.h:
+ (WebKit):
+ (WebPageProxy):
+ * UIProcess/WebPageProxy.messages.in:
+ * WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
+ (WebKit::WebFrameLoaderClient::dispatchIntent):
+
+2012-06-13 Alexis Menard <alexis.menard@openbossa.org>
+
+ Web Inspector: add a way to get the remote inspector url for a given page.
+ https://bugs.webkit.org/show_bug.cgi?id=88902
+
+ Reviewed by Jocelyn Turcotte.
+
+ Expose the remote inspector url for a given page in the API. If you want
+ to create a web view and load directly the inspector for the page you want to inspect,
+ it helps to get the url as it is impossible to figure it out from the API layer.
+
+ * UIProcess/API/qt/qquickwebview.cpp:
+ (QQuickWebViewExperimental::remoteInspectorUrl):
+ * UIProcess/API/qt/qquickwebview_p.h:
+ * UIProcess/InspectorServer/WebInspectorServer.cpp:
+ (WebKit):
+ (WebKit::WebInspectorServer::inspectorUrlForPageID):
+ * UIProcess/InspectorServer/WebInspectorServer.h:
+ (WebInspectorServer):
+ * UIProcess/InspectorServer/WebSocketServer.cpp:
+ (WebKit::WebSocketServer::WebSocketServer):
+ (WebKit::WebSocketServer::listen):
+ (WebKit::WebSocketServer::close):
+ * UIProcess/InspectorServer/WebSocketServer.h:
+ (WebKit::WebSocketServer::bindAddress):
+ (WebKit::WebSocketServer::port):
+ (WebKit::WebSocketServer::serverState):
+ (WebSocketServer):
+ * UIProcess/InspectorServer/qt/WebInspectorServerQt.cpp:
+ (WebKit::remoteInspectorPagePath):
+ (WebKit):
+ (WebKit::WebInspectorServer::inspectorUrlForPageID):
+ (WebKit::WebInspectorServer::buildPageList):
+ * UIProcess/WebInspectorProxy.h:
+ (WebKit::WebInspectorProxy::remoteInspectionPageID):
+
+2012-06-13 Christophe Dumez <christophe.dumez@intel.com>
+
+ [WK2] Add implementation for dispatchIntent in WebFrameLoaderClient
+ https://bugs.webkit.org/show_bug.cgi?id=88340
+
+ Reviewed by Kenneth Rohde Christiansen.
+
+ Add implementation for dispatchIntent() in WebFrameLoaderClient.
+
+ * CMakeLists.txt:
+ * GNUmakefile.list.am:
+ * Shared/API/c/WKBase.h:
+ * Shared/APIClientTraits.h:
+ * Shared/APIObject.h:
+ * Shared/IntentData.cpp: Added.
+ (WebKit):
+ (WebKit::IntentData::encode):
+ (WebKit::IntentData::decode):
+ * Shared/IntentData.h: Added.
+ (CoreIPC):
+ (WebKit):
+ (IntentData):
+ * Target.pri:
+ * UIProcess/API/C/WKAPICast.h:
+ (WebKit):
+ * UIProcess/API/C/WKPage.h:
+ * UIProcess/API/gtk/WebKitLoaderClient.cpp:
+ (attachLoaderClientToView):
+ * UIProcess/WebIntentData.cpp: Added.
+ (WebKit):
+ (WebKit::WebIntentData::WebIntentData):
+ (WebKit::WebIntentData::data):
+ * UIProcess/WebIntentData.h: Added.
+ (WebKit):
+ (WebIntentData):
+ (WebKit::WebIntentData::create):
+ (WebKit::WebIntentData::~WebIntentData):
+ (WebKit::WebIntentData::action):
+ (WebKit::WebIntentData::payloadType):
+ (WebKit::WebIntentData::extras):
+ (WebKit::WebIntentData::suggestions):
+ (WebKit::WebIntentData::type):
+ * UIProcess/WebLoaderClient.cpp:
+ (WebKit):
+ (WebKit::WebLoaderClient::didReceiveIntentForFrame):
+ * UIProcess/WebLoaderClient.h:
+ (WebKit):
+ (WebLoaderClient):
+ * UIProcess/WebPageProxy.cpp:
+ (WebKit):
+ (WebKit::WebPageProxy::didReceiveIntentForFrame):
+ * UIProcess/WebPageProxy.h:
+ (WebKit):
+ (WebPageProxy):
+ * UIProcess/WebPageProxy.messages.in:
+ * WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
+ (WebKit::WebFrameLoaderClient::dispatchIntent):
+
+2012-06-13 Balazs Kelemen <kbalazs@webkit.org>
+
+ [Qt][WK2] Scanning plugins blocks the UI for a long time
+ https://bugs.webkit.org/show_bug.cgi?id=88535
+
+ Reviewed by Simon Hausmann.
+
+ Implement a persistent cache for the meta data of plugins.
+ This way the UI process will not block for too long when
+ it's time to scan the plugins (except the first time).
+ The cache is a json file stored in a standard hidden cache
+ directory.
+
+ * Shared/qt/QtDefaultDataLocation.cpp: Added.
+ (WebKit):
+ (WebKit::defaultDataLocation):
+ * Shared/qt/QtDefaultDataLocation.h: Added.
+ (WebKit):
+ Added a common helper for the path we use to
+ put stuff into.
+
+ * Target.pri:
+ * UIProcess/Plugins/qt/PluginProcessProxyQt.cpp:
+ (WebKit::cacheFile):
+ (WebKit):
+ (WebKit::readMetaDataFromCacheFile):
+ (WebKit::writeToCacheFile):
+ (WebKit::appendToCacheFile):
+ (WebKit::tryReadPluginMetaDataFromCacheFile):
+ (WebKit::PluginProcessProxy::scanPlugin):
+ * UIProcess/qt/WebContextQt.cpp:
+
+2012-06-13 Kenneth Rohde Christiansen <kenneth@webkit.org>
+
+ [Qt] Do not set contents pos to the current position
+ https://bugs.webkit.org/show_bug.cgi?id=88990
+
+ Reviewed by Laszlo Gombos.
+
+ This is basically an optimization but it also solves flickering
+ in some cases.
+
+ * UIProcess/API/qt/qquickwebview.cpp:
+ (QQuickWebView::setContentPos):
+
+2012-06-12 MORITA Hajime <morrita@google.com>
+
+ Shadow Pseudo ID should be able to nest to point nested shadow DOM.
+ https://bugs.webkit.org/show_bug.cgi?id=62218
+
+ Reviewed by Dimitri Glazkov.
+
+ * win/WebKit2.def:
+ * win/WebKit2CFLite.def:
+
+2012-06-12 Kenneth Rohde Christiansen <kenneth@webkit.org>
+
+ Unreviewed build fix.
+
+ * UIProcess/qt/QtViewportHandler.cpp:
+ (WebKit::QtViewportHandler::initialRect):
+
+2012-06-11 Jocelyn Turcotte <jocelyn.turcotte@nokia.com>
+
+ Using extrernal ICU library on case unsensitive drives will not work
+ https://bugs.webkit.org/show_bug.cgi?id=70913
+
+ Reviewed by Csaba Osztrogonác.
+
+ * WebProcess/WebPage/UpdateAtlas.cpp:
+
+2012-06-12 Kenneth Rohde Christiansen <kenneth@webkit.org>
+
+ [Qt] Do not move/scale content while the user is interacting with it
+ https://bugs.webkit.org/show_bug.cgi?id=88872
+
+ Reviewed by Simon Hausmann.
+
+ Don't try moving content into valid bounds when the content
+ size changes and the user is interacting with the content.
+
+ Only apply the viewport initial scale after user interaction
+ has ended.
+
+ * UIProcess/qt/QtViewportHandler.cpp:
+ (WebKit::ViewportUpdateDeferrer::~ViewportUpdateDeferrer):
+ (WebKit::QtViewportHandler::setInitialScaleIfNeeded):
+ (WebKit::QtViewportHandler::viewportAttributesChanged):
+ (WebKit::QtViewportHandler::pageContentsSizeChanged):
+ (WebKit::QtViewportHandler::initialRect):
+ (WebKit):
+ * UIProcess/qt/QtViewportHandler.h:
+ (QtViewportHandler):
+
+2012-06-11 Kaustubh Atrawalkar <kaustubh@motorola.com>
+
+ [DRT] LTC:: counterValueForElementById() could be moved to Internals.
+ https://bugs.webkit.org/show_bug.cgi?id=84406
+
+ Reviewed by Hajime Morita.
+
+ Exporting Internals::counterValueForElement symbols for the win build.
+
+ * win/WebKit2.def:
+
+2012-06-11 Ryuan Choi <ryuan.choi@samsung.com>
+
+ [CMAKE][WK2] Make WebProcess target name more clear.
+ https://bugs.webkit.org/show_bug.cgi?id=88767
+
+ Reviewed by Ryosuke Niwa.
+
+ * CMakeLists.txt: Change WebProcess_NAME to WebProcess_EXECUTABLE_NAME.
+
+2012-06-11 Alexis Menard <alexis.menard@openbossa.org>
+
+ [CSS3 Backgrounds and Borders] Protect box-decoration-break behind a feature flag.
+ https://bugs.webkit.org/show_bug.cgi?id=88804
+
+ Reviewed by Tony Chang.
+
+ Protect box-decoration-break behind a feature flag enabled by default.
+
+ * Configurations/FeatureDefines.xcconfig:
+
+2012-06-11 Gyuyoung Kim <gyuyoung.kim@samsung.com>
+
+ [CMAKE][EFL] Remove duplicated executable output path
+ https://bugs.webkit.org/show_bug.cgi?id=88765
+
+ Reviewed by Daniel Bates.
+
+ CMake files for EFL port have redefined executable output path. However, EFL port doesn't
+ need to define again because it is already defined in top-level CMake file.
+
+ * CMakeLists.txt:
+
+2012-06-11 Anders Carlsson <andersca@apple.com>
+
+ Pass the right color space over to the web process so we can set it on our CA context
+ https://bugs.webkit.org/show_bug.cgi?id=88819
+ <rdar://problem/11629050>
+
+ Reviewed by John Sullivan.
+
+ * Platform/mac/LayerHostingContext.h:
+ (LayerHostingContext):
+ * Platform/mac/LayerHostingContext.mm:
+ (WebKit::LayerHostingContext::createForPort):
+ (WebKit::LayerHostingContext::createForWindowServer):
+ Use a single constructor and explicitly set up the parameters of the constructed object.
+
+ (WebKit::LayerHostingContext::setColorSpace):
+ (WebKit::LayerHostingContext::colorSpace):
+ Add getter and setter.
+
+ * Scripts/webkit2/messages.py:
+ (struct_or_class):
+ WebKit::ColorSpaceData is a struct.
+
+ * Shared/WebPageCreationParameters.cpp:
+ Encode and decode the color space parameter.
+
+ * Shared/WebPageCreationParameters.h:
+ Add the color space.
+
+ * Shared/mac/ColorSpaceData.h: Added.
+ * Shared/mac/ColorSpaceData.mm: Added.
+ Add a new class that represents a color space that can be sent over the wire.
+
+ * UIProcess/API/mac/PageClientImpl.h:
+ * UIProcess/API/mac/PageClientImpl.mm:
+ (WebKit::PageClientImpl::colorSpace):
+ Call through to the WKView.
+
+ * UIProcess/API/mac/WKView.mm:
+ (-[WKView _windowDidChangeBackingProperties:]):
+ Fix whitespace.
+
+ (-[WKView viewDidChangeBackingProperties]):
+ Check if our new color space is different from the current one and null the current one out if that is the case,
+ it will be reinitialized by the next call to -[WKView _colorSpace].
+
+ (-[WKView _colorSpace:]):
+ Compute the color space. If we're not in a window we'll get the main screen's color space.
+
+ * UIProcess/DrawingAreaProxy.h:
+ (WebKit::DrawingAreaProxy::colorSpaceDidChange):
+ Add empty stub.
+
+ * UIProcess/PageClient.h:
+ Add colorSpace getter.
+
+ * UIProcess/WebPageProxy.cpp:
+ (WebKit::WebPageProxy::creationParameters):
+ Initialize the color space.
+
+ * UIProcess/mac/TiledCoreAnimationDrawingAreaProxy.h:
+ * UIProcess/mac/TiledCoreAnimationDrawingAreaProxy.mm:
+ (WebKit::TiledCoreAnimationDrawingAreaProxy::colorSpaceDidChange):
+ Send the new color space over to the web process.
+
+ * UIProcess/mac/WebPageProxyMac.mm:
+ (WebKit::WebPageProxy::colorSpace):
+ Call through to the page client.
+
+ * WebKit2.xcodeproj/project.pbxproj:
+ Add ColorSpaceData.h and ColorSpaceData.mm.
+
+ * WebProcess/WebPage/DrawingArea.h:
+ * WebProcess/WebPage/DrawingArea.messages.in:
+ Add SetColorSpace message.
+
+ * WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.mm:
+ (WebKit::TiledCoreAnimationDrawingArea::TiledCoreAnimationDrawingArea):
+ Set the color space from the creation parameters.
+
+ (WebKit::TiledCoreAnimationDrawingArea::setColorSpace):
+ Set the color space on the layer hosting context.
+
+ (WebKit::TiledCoreAnimationDrawingArea::updateLayerHostingContext):
+ Make sure we apply the color space from the previous layer hosting context if one exists.
+
+2012-06-11 Anders Carlsson <andersca@apple.com>
+
+ Crash when a plug-in tries to use the NPRuntime API with JavaScript disabled
+ https://bugs.webkit.org/show_bug.cgi?id=88797
+ <rdar://problem/11574844>
+
+ Reviewed by Brady Eidson.
+
+ * PluginProcess/PluginControllerProxy.cpp:
+ (WebKit::PluginControllerProxy::initialize):
+ Handle the windowNPObjectID being 0.
+
+ (WebKit::PluginControllerProxy::windowScriptNPObject):
+ Handle m_windownPObject being null.
+
+ * WebProcess/Plugins/PluginView.cpp:
+ (WebKit::PluginView::windowScriptNPObject):
+ Return null if JavaScript is disabled.
+
+ (WebKit::PluginView::pluginElementNPObject):
+ Ditto.
+
+2012-06-11 Kenneth Rohde Christiansen <kenneth@webkit.org>
+
+ Add QML api for setting device width and height
+ https://bugs.webkit.org/show_bug.cgi?id=88777
+
+ Reviewed by Simon Hausmann.
+
+ Add the new API and set the default values to 0 (unset). The
+ current values were introduced by Qt and only Qt depends on them.
+
+ * Shared/WebPreferencesStore.h:
+ (WebKit):
+ * UIProcess/API/qt/qquickwebview.cpp:
+ (QQuickWebViewExperimental::deviceWidth):
+ (QQuickWebViewExperimental::setDeviceWidth):
+ (QQuickWebViewExperimental::deviceHeight):
+ (QQuickWebViewExperimental::setDeviceHeight):
+ * UIProcess/API/qt/qquickwebview_p.h:
+ * UIProcess/qt/QtViewportHandler.cpp:
+ (WebKit::QtViewportHandler::viewportItemSizeChanged):
+ * WebProcess/WebPage/WebPage.cpp:
+ (WebKit::WebPage::sendViewportAttributesChanged):
+
+2012-06-11 Michael Brüning <michael.bruning@nokia.com>
+
+ [Qt][WK2] Compute and set cache capacities using the current CacheModel
+ https://bugs.webkit.org/show_bug.cgi?id=73918
+
+ Reviewed by Kenneth Rohde Christiansen.
+
+ Added implementation of cache model for Qt WK 2 port including supporting
+ functionality such as WebProcess creation parameters and default values
+ for disk cache directories.
+
+ * Shared/WebProcessCreationParameters.cpp:
+ (WebKit::WebProcessCreationParameters::encode):
+ (WebKit::WebProcessCreationParameters::decode):
+ * Shared/WebProcessCreationParameters.h:
+ (WebProcessCreationParameters):
+ * UIProcess/qt/WebContextQt.cpp:
+ (WebKit::defaultDiskCacheDirectory):
+ (WebKit):
+ (WebKit::WebContext::platformInitializeWebProcess):
+ * WebProcess/qt/WebProcessQt.cpp:
+ (WebKit::physicalMemorySizeInBytes):
+ (WebKit::WebProcess::platformSetCacheModel):
+ (WebKit::WebProcess::platformInitializeWebProcess):
+
+2012-06-10 Darin Adler <darin@apple.com>
+
+ Remove unneeded callRemovedLastRef function from TreeShared refactoring
+ https://bugs.webkit.org/show_bug.cgi?id=88653
+
+ Reviewed by Sam Weinig.
+
+ * win/WebKit2.def: Export removedLastRef instead of callRemovedLastRef.
+ * win/WebKit2CFLite.def: Ditto.
+
+2012-06-10 Ryuan Choi <ryuan.choi@samsung.com>
+
+ [EFL][WK2] Add and refactor ewk API in order to support MiniBrowser without WK API.
+ https://bugs.webkit.org/show_bug.cgi?id=84124
+
+ Reviewed by Chang Shu.
+
+ Modify ewk_view and add ewk_context to provide a platform-depedent WebKit2
+ API.
+ This patch provides the minimum to support MiniBrowser.
+
+ * PlatformEfl.cmake: add ewk_context.cpp.
+ * UIProcess/API/efl/EWebKit2.h: Added.
+ * UIProcess/API/efl/ewk_context.cpp: Added.
+ (_Ewk_Context):
+ (createDefaultWebContext):
+ (ewk_context_WKContext_get):
+ (ewk_context_default_get):
+ * UIProcess/API/efl/ewk_context.h: Added.
+ * UIProcess/API/efl/ewk_context_private.h: Added.
+ * UIProcess/API/efl/ewk_view.cpp:
+ (_Ewk_View_Private_Data):
+ (_ewk_view_priv_del):
+ (ewk_view_base_add):
+ (ewk_view_add_with_context):
+ (ewk_view_add):
+ (ewk_view_uri_set):
+ (ewk_view_uri_get):
+ * UIProcess/API/efl/ewk_view.h:
+ * UIProcess/API/efl/ewk_view_private.h:
+
+2012-06-09 Sukolsak Sakshuwong <sukolsak@google.com>
+
+ Add UNDO_MANAGER flag
+ https://bugs.webkit.org/show_bug.cgi?id=87908
+
+ Reviewed by Tony Chang.
+
+ * Configurations/FeatureDefines.xcconfig:
+
+2012-06-08 Brent Fulgham <bfulgham@webkit.org>
+ [WinCairo] Build fix after Windows export definition file change.
+
+ * win/WebKit2CFLite.def: This file needs to be kept in sync with
+ WebKit2.def (aside from the WebKitInterface exports.)
+
+2012-06-08 Viatcheslav Ostapenko <ostapenko.viatcheslav@nokia.com>
+
+ [Qt] [WK2] API tests randomly assert in WebLayerTreeRenderer::assignImageToLayer
+ https://bugs.webkit.org/show_bug.cgi?id=88667
+
+ Reviewed by Noam Rosenthal.
+
+ Move deactivation of WebLayerTreeRenderer from LayerTreeHostProxy::purgeBackingStores
+ to WebLayerTreeRenderer::purgeGLResources. LayerTreeHostProxy::purgeBackingStores is
+ invoked on main thread after going through call gate and it is too late to deactivate
+ renderer here, because some update messages are able to go through.
+ WebLayerTreeRenderer::purgeGLResources is called directly from render node deallocation
+ and it is right place to deactivate renderer.
+
+ * UIProcess/LayerTreeHostProxy.cpp:
+ (WebKit::LayerTreeHostProxy::purgeBackingStores):
+ * UIProcess/WebLayerTreeRenderer.cpp:
+ (WebKit::WebLayerTreeRenderer::purgeGLResources):
+
+2012-06-08 Carlos Garcia Campos <cgarcia@igalia.com>
+
+ [GTK] Add API to get the library version to WebKit2 GTK+
+ https://bugs.webkit.org/show_bug.cgi?id=88426
+
+ Reviewed by Martin Robinson.
+
+ * GNUmakefile.am:
+ * GNUmakefile.list.am:
+ * UIProcess/API/gtk/WebKitVersion.cpp: Added.
+ (webkit_get_major_version):
+ (webkit_get_minor_version):
+ (webkit_get_micro_version):
+ * UIProcess/API/gtk/WebKitVersion.h.in: Added.
+ * UIProcess/API/gtk/docs/webkit2gtk-docs.sgml: Add new symbols.
+ * UIProcess/API/gtk/docs/webkit2gtk-sections.txt: Add new section
+ for WebKitVersion.
+ * UIProcess/API/gtk/tests/GNUmakefile.am:
+ * UIProcess/API/gtk/tests/TestWebKitVersion.cpp: Added.
+ (testWebKitVersion):
+ (testWebKitCheckVersion):
+ (beforeAll):
+ (afterAll):
+ * UIProcess/API/gtk/webkit2.h: Include WebKitVersion.h.
+
+2012-06-08 Dan Bernstein <mitz@apple.com>
+
+ Tried to fix the Snow Leopard build after r119806.
+
+ * WebKit2Prefix.h:
+
+2012-06-08 Andy Estes <aestes@apple.com>
+
+ [WebKit2] Move Mac-specific bits from config.h to WebKit2Prefix.h
+ https://bugs.webkit.org/show_bug.cgi?id=88625
+
+ Reviewed by Dan Bernstein.
+
+ Since the Mac supports prefix headers, there is no point in having
+ Mac-specific code in WebKit2's config.h. Move it to WebKit2Prefix.h.
+
+ * WebKit2Prefix.h:
+ * config.h:
+
+2012-06-07 Kentaro Hara <haraken@chromium.org>
+
+ Reduce Node object size from 72 byte to 64 byte
+ https://bugs.webkit.org/show_bug.cgi?id=88528
+
+ Reviewed by Ryosuke Niwa.
+
+ Added a symbol for callRemovedLastRef().
+
+ * mac/WebKit2.order:
+ * win/WebKit2.def:
+ * win/WebKit2CFLite.def:
+
+2012-06-07 Andy Estes <aestes@apple.com>
+
+ [WebKit2] Explicitly include CoreFoundation.h in config.h
+ https://bugs.webkit.org/show_bug.cgi?id=88619
+
+ Reviewed by Dan Bernstein.
+
+ WebKit2 relies (probably unintentionally) on CoreFoundation.h being
+ included by CoreGraphics.h (via CGSession.h), but some versions of
+ CoreGraphics headers don't include CoreFoundation.h. WebKit2 should
+ include it explicitly in config.h.
+
+ * config.h: Import CoreFoundation.h.
+
+2012-06-07 Andy Estes <aestes@apple.com>
+
+ [WebKit2] Only include Cocoa.h on platforms that use AppKit
+ https://bugs.webkit.org/show_bug.cgi?id=88517
+
+ Reviewed by Sam Weinig.
+
+ * WebKit2Prefix.h: Include Platform.h to get USE() macros. GTK needs to
+ include autotoolsconfig.h before including Platform.h, so do that first
+ if building on GTK. Then, if compiling an Objective-C file, it's safe
+ to include Foundation.h, but not necessarily Cocoa.h; only include the
+ latter if USE(APPKIT) is true.
+ * config.h: There's no need to import Cocoa.h since this is already
+ imported in the prefix header.
+
+2012-06-07 Anders Carlsson <andersca@apple.com>
+
+ Search highlight does not scroll with the content of the page, and find overlay doesn't work, on large-enough window
+ https://bugs.webkit.org/show_bug.cgi?id=88577
+ <rdar://problem/11430118>
+
+ Reviewed by John Sullivan.
+
+ Prevent the page overlay layer from falling into tiled mode.
+
+ * WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.mm:
+ (WebKit::TiledCoreAnimationDrawingArea::createPageOverlayLayer):
+
+2012-06-07 Alexander Færøy <ahf@0x90.dk>
+
+ Add QML API tests for Device Pixel Ratio
+ https://bugs.webkit.org/show_bug.cgi?id=88531
+
+ Reviewed by Kenneth Rohde Christiansen.
+
+ This patch adds an initial test case for the QML device pixel ratio
+ API. The test currently fails and is therefore marked as being
+ expected to fail. This will be fixed in a separated patch.
+
+ * UIProcess/API/qt/tests/qmltests/WebView/tst_devicePixelRatio.qml: Added.
+
+2012-06-07 Christophe Dumez <christophe.dumez@intel.com>
+
+ [EFL][WK2] WebKit2-EFL does not link in debug mode
+ https://bugs.webkit.org/show_bug.cgi?id=88518
+
+ Unreviewed. Fix WebKit2-EFL linking error in debug mode.
+
+ * CMakeLists.txt:
+
+2012-06-07 Simon Pena <spena@igalia.com>
+
+ [GTK] Fix broken build due to missing <SECTION> in GTK-DOC
+ https://bugs.webkit.org/show_bug.cgi?id=88525
+
+ Unreviewed gardening. Added missing <SECTION> tag.
+
+ * UIProcess/API/gtk/docs/webkit2gtk-sections.txt:
+
+2012-06-07 Carlos Garcia Campos <cgarcia@igalia.com>
+
+ [GTK] Add API to register custom URI schemes to WebKit2 GTK+ API
+ https://bugs.webkit.org/show_bug.cgi?id=84133
+
+ Reviewed by Martin Robinson.
+
+ * GNUmakefile.list.am: Add new files to compilation.
+ * UIProcess/API/gtk/WebKitPrivate.h:
+ * UIProcess/API/gtk/WebKitRequestManagerClient.cpp: Added.
+ (didReceiveURIRequest): Callback emitted by the C API when a
+ request for a custom URI scheme has been received. Call
+ webkitWebContextReceivedURIRequest() to handle the request.
+ (didFailToLoadURIRequest): Callback emitted by the C API when a
+ request for a custom URI scheme failed to load. Call
+ webkitWebContextDidFailToLoadURIRequest() to noitfy the web
+ context.
+ (attachRequestManagerClientToContext): Initialize the
+ WKSoupRequestManagerClient.
+ * UIProcess/API/gtk/WebKitRequestManagerClient.h: Added.
+ * UIProcess/API/gtk/WebKitURISchemeRequest.cpp: Added.
+ (webkit_uri_scheme_request_init):
+ (webkitURISchemeRequestFinalize):
+ (webkit_uri_scheme_request_class_init):
+ (webkitURISchemeRequestCreate): Create a new
+ WebKitURISchemeRequest for the given URI and request identifier.
+ (webkitURISchemeRequestGetID): Return the request identifier.
+ (webkitURISchemeRequestCancel): Cancel the request operation.
+ (webkit_uri_scheme_request_get_scheme): Return the scheme of the
+ request.
+ (webkit_uri_scheme_request_get_uri): Return the full URI of the
+ request.
+ (webkit_uri_scheme_request_get_path): Return the path of the URI.
+ (webkitURISchemeRequestReadCallback): Read callback emitted when
+ reading the contents of the input stream.
+ (webkit_uri_scheme_request_finish): Finish the request by reading
+ the contents of the input stream and sending the data to the
+ WebProcess.
+ * UIProcess/API/gtk/WebKitURISchemeRequest.h: Added.
+ * UIProcess/API/gtk/WebKitURISchemeRequestPrivate.h: Added.
+ * UIProcess/API/gtk/WebKitWebContext.cpp:
+ (WebKitURISchemeHandler::WebKitURISchemeHandler): Helper struct to
+ save callback and user data of registered URI schemes.
+ (createDefaultWebContext): Initialize the SoupRequestManager.
+ (webkit_web_context_register_uri_scheme): Public API to register a
+ custom URI scheme providing a callback that will be called to
+ handle requests for that URI scheme.
+ (webkitWebContextGetRequestManager): Helper private method to
+ return the SoupRequestManager.
+ (webkitWebContextReceivedURIRequest): Get the
+ WebKitURISchemeHandler for the given request identifier and call
+ the callback. Save the request in the request map.
+ (webkitWebContextDidFailToLoadURIRequest): Cancel the ongoing
+ request.
+ (webkitWebContextDidFinishURIRequest): Remove the request from the
+ map.
+ * UIProcess/API/gtk/WebKitWebContext.h:
+ * UIProcess/API/gtk/WebKitWebContextPrivate.h:
+ * UIProcess/API/gtk/docs/webkit2gtk-docs.sgml: Add
+ WebKitURISchemeRequest section.
+ * UIProcess/API/gtk/docs/webkit2gtk-sections.txt: Add new symbols.
+ * UIProcess/API/gtk/docs/webkit2gtk.types: Add
+ webkit_uri_scheme_request_get_type.
+ * UIProcess/API/gtk/tests/TestWebKitWebContext.cpp:
+ (testWebContextURIScheme):
+ (beforeAll):
+ * UIProcess/API/gtk/webkit2.h: Include WebKitURISchemeRequest.h.
+
+2012-06-07 Andras Becsi <andras.becsi@nokia.com>
+
+ [Qt][WK2] setPageItemRectVisible() is not guarded by ViewportUpdateDeferrer at scaleAnimationValueChanged()
+ https://bugs.webkit.org/show_bug.cgi?id=87954
+
+ Reviewed by Kenneth Rohde Christiansen.
+
+ Resetting the end value, the easing curve or the duration of the scale animation triggers
+ a recalculation of the animation interval. This might change the current value of the
+ animated property.
+ Since guarding of setPageItemRectVisible() relies on animation state change we have to
+ make sure we only act on animation value changes if the animation is in active state.
+
+ * UIProcess/qt/QtViewportHandler.cpp:
+ (WebKit::QtViewportHandler::QtViewportHandler):
+ (WebKit::QtViewportHandler::animatePageItemRectVisible):
+ (WebKit::QtViewportHandler::scaleAnimationValueChanged):
+
+2012-06-06 Carlos Garcia Campos <cgarcia@igalia.com>
+
+ [SOUP] WebSoupRequestManager should handle loading errors and zero-length replies
+ https://bugs.webkit.org/show_bug.cgi?id=88087
+
+ Reviewed by Martin Robinson.
+
+ * UIProcess/API/C/soup/WKSoupRequestManager.h:
+ * UIProcess/soup/WebSoupRequestManagerClient.cpp:
+ (WebKit::WebSoupRequestManagerClient::didFailToLoadURIRequest):
+ Call didFailToLoadURIRequest in the client if present.
+ * UIProcess/soup/WebSoupRequestManagerClient.h:
+ * UIProcess/soup/WebSoupRequestManagerProxy.cpp:
+ (WebKit::WebSoupRequestManagerProxy::WebSoupRequestManagerProxy):
+ Initialize m_loadFailed.
+ (WebKit::WebSoupRequestManagerProxy::didReceiveURIRequestData):
+ Don't send more data to the web process if the resource failed to
+ load.
+ (WebKit::WebSoupRequestManagerProxy::didFailToLoadURIRequest): Set
+ m_loadFailed and notifiy the client calling didFailToLoadURIRequest.
+ * UIProcess/soup/WebSoupRequestManagerProxy.h:
+ * UIProcess/soup/WebSoupRequestManagerProxy.messages.in: Add
+ DidFailToLoadURIRequest message.
+ * WebProcess/soup/WebKitSoupRequestGeneric.cpp:
+ (webkitSoupRequestGenericSendAsync): Pass the cancellable to the
+ WebSoupRequestManager.
+ * WebProcess/soup/WebSoupRequestManager.cpp:
+ (WebKit::WebSoupRequestAsyncData::WebSoupRequestAsyncData): Helper
+ struct to save requests.
+ (WebSoupRequestAsyncData): Add a weak pointer to invalidate the
+ request when it's destroyed before the operation has finished.
+ (WebKit::WebSoupRequestAsyncData::~WebSoupRequestAsyncData):
+ Remove the weak pointer.
+ (WebKit::WebSoupRequestAsyncData::requestFailed): Return whther
+ the request failed.
+ (WebKit::WebSoupRequestAsyncData::releaseResult): Return the
+ result and clear the pointer.
+ (WebKit::WebSoupRequestManager::didHandleURIRequest): Create and
+ empty memory stream for zero-length replies instead of creating an
+ error.
+ (WebKit::WebSoupRequestManager::didReceiveURIRequestData): If the
+ request failed and more data expected from the UI process, send a
+ message to the UI process to notify that the resource load failed.
+ (WebKit::WebSoupRequestManager::send): Save request information in
+ the request map.
+ * WebProcess/soup/WebSoupRequestManager.h:
+
+2012-06-06 Andy Estes <aestes@apple.com>
+
+ Wrap uppercaseWord, lowercaseWord, and capitalizeWord with USE(APPKIT)
+ https://bugs.webkit.org/show_bug.cgi?id=88504
+
+ Reviewed by Dan Bernstein.
+
+ uppercaseWord, lowercaseWord, and capitalizeWord are methods declared
+ by NSResponder that subclasses are expected to implement. WebKit should
+ only support these implementations on platforms that use AppKit.
+
+ * UIProcess/WebPageProxy.h:
+ * WebProcess/WebCoreSupport/WebEditorClient.h:
+ * WebProcess/WebCoreSupport/mac/WebEditorClientMac.mm:
+ * WebProcess/WebPage/WebPage.cpp:
+ * WebProcess/WebPage/WebPage.h:
+ * WebProcess/WebPage/WebPage.messages.in:
+
+2012-06-06 chandra Shekar Vallala <chandra.vallala@motorola.com>
+
+ [WK2-Gtk]Compilation errors with flag CONTEXT_MENUS=0
+ https://bugs.webkit.org/show_bug.cgi?id=87842
+
+ Reviewed by Martin Robinson.
+
+ Fix for compilation errors while building webkit2-gtk with CONTEXT_MENUS=0
+
+ * UIProcess/gtk/WebContextMenuProxyGtk.cpp: Added code under CONTEXT_MENUS CC
+ * UIProcess/gtk/WebContextMenuProxyGtk.h: Ditto
+ * WebProcess/WebCoreSupport/gtk/WebContextMenuClientGtk.cpp: Ditto
+
+2012-06-06 Michael Brüning <michael.bruning@nokia.com>
+
+ [Qt][WK2] Add preferredMinimumContentsWidth to the viewport info in MiniBrowser.
+ https://bugs.webkit.org/show_bug.cgi?id=88327
+
+ Reviewed by Kenneth Rohde Christiansen.
+
+ * UIProcess/API/qt/qquickwebview.cpp:
+ (QQuickWebViewExperimental::setPreferredMinimumContentsWidth):
+ * UIProcess/API/qt/qquickwebview_p.h:
+
+2012-06-06 Tim Horton <timothy_horton@apple.com>
+
+ WebPage::windowIsVisible is incorrect during resumePainting
+ https://bugs.webkit.org/show_bug.cgi?id=88374
+ <rdar://problem/11587039>
+
+ Reviewed by Simon Fraser.
+
+ Currently, when changing window visibility, WKView calls viewStateDidChange(ViewIsVisible)
+ and then _updateWindowVisibility. This means that during viewStateDidChange, the WebPage's
+ windowIsVisible state is incorrect.
+
+ viewStateDidChange(ViewIsVisible) can end up in (one of the DrawingArea implementations)::resumePainting(),
+ which uses windowIsVisible to determine whether or not to unpause requestAnimationFrame.
+
+ This results in a state where, with some configurations, doing the following:
+
+ 1. requestAnimationFrame()
+ 2. requestFullScreen()
+ 3. requestAnimationFrame()
+ 4. cancelFullScreen()
+ 5. requestAnimationFrame()
+
+ Will cause the second and third rAF calls to have no effect. Even after cancelFullScreen() is called,
+ the fact that we have had unpaired suspend/resumeScriptedAnimations will cause the suspend count
+ on the ScriptedAnimationController to never return to zero, which will cause us to never
+ recover rAF functionality.
+
+ The fix is very simple: we should _updateWindowVisibility *before* viewStateDidChange, so that it is
+ always correct for any code called underneath that method.
+
+ * UIProcess/API/mac/WKView.mm:
+ (-[WKView viewDidMoveToWindow]):
+ (-[WKView _windowDidOrderOffScreen:]):
+ (-[WKView _windowDidOrderOnScreen:]):
+
+2012-06-05 Dinu Jacob <dinu.jacob@nokia.com>
+
+ [Qt][WK2] Use Component.onCompleted in API tests for single and multi file upload tests.
+ https://bugs.webkit.org/show_bug.cgi?id=88247
+
+ Reviewed by Kenneth Rohde Christiansen.
+
+ With r116936, Component.onCompleted can be used for callback instead of the
+ 1s timer in single and multi file upload tests.
+
+ * UIProcess/API/qt/tests/qmltests/WebView/tst_multiFileUpload.qml:
+ * UIProcess/API/qt/tests/qmltests/WebView/tst_singleFileUpload.qml:
+
+2012-06-04 Stephanie Lewis <slewis@apple.com>
+
+ https://bugs.webkit.org/show_bug.cgi?id=88370
+ Memory sampler should trigger low memory signal
+
+ Reviewed by Geoff Garen.
+
+ Send low memory signal when running the memory sampler. We'd
+ like to test memory that cannot be freed.
+
+ * Shared/WebMemorySampler.cpp:
+ (WebKit::WebMemorySampler::sampleTimerFired):
+ * Shared/WebMemorySampler.h:
+ (WebMemorySampler):
+ * Shared/mac/WebMemorySampler.mac.mm:
+ (WebKit):
+ (WebKit::WebMemorySampler::sendMemoryPressureEvent):
+
+2012-06-05 Brady Eidson <beidson@apple.com>
+
+ <rdar://problem/11575898> and https://bugs.webkit.org/show_bug.cgi?id=88372
+ REGRESSION(110494): Can no longer drag-and-drop links into FileMaker Pro 12
+
+ - Before r110494 we used to write the NSStringPboardType to the pasteboard.
+ After r110494 we write NSURLPboardType instead.
+ That's basically a no-op, but the NSStringPboardType needs to be restored.
+ - Before r110494 we wrote the link destination URL to the pasteboard.
+ After r110494 we write the image src URL if the link is an image.
+ We need to revert to writing the link URL.
+
+ Fortunately these changes can be accomplished with a 2-line fix.
+
+ Reviewed by Enrica Casucci.
+
+ * UIProcess/API/mac/WKView.mm:
+ (-[WKView _setPromisedData:WebCore::withFileName:withExtension:withTitle:withURL:withVisibleURL:withArchive:WebCore::forPasteboard:]):
+ n
+
+2012-06-05 Tor Arne Vestbø <tor.arne.vestbo@nokia.com>
+
+ [Qt] Implement log channel initialization for WebKit2
+
+ Reviewed by Alexis Menard.
+
+ * Platform/Logging.cpp:
+ (WebKit):
+ * Platform/Logging.h:
+ (WebKit):
+ * Platform/qt/LoggingQt.cpp: Copied from Source/WebKit2/Platform/gtk/LoggingGtk.cpp
+ (WebKit):
+ (WebKit::initializeLogChannel):
+ * Target.pri:
+
+2012-06-05 Jocelyn Turcotte <jocelyn.turcotte@nokia.com>
+
+ WebLayerTreeRenderer behaves wrongly when no contentsScale is set.
+ https://bugs.webkit.org/show_bug.cgi?id=88357
+
+ Reviewed by Alexis Menard.
+
+ The contentsScale needs to get a default value in case no
+ value is explicitely set yet.
+ This fixes the blank-until-resize problem when running MiniBrowser
+ in --desktop mode.
+
+ * UIProcess/WebLayerTreeRenderer.cpp:
+ (WebKit::WebLayerTreeRenderer::WebLayerTreeRenderer):
+
+2012-06-05 Alexis Menard <alexis.menard@openbossa.org>
+
+ [Qt] Don't propagate viewport size changes if the viewport is empty.
+ https://bugs.webkit.org/show_bug.cgi?id=88336
+
+ Reviewed by Tor Arne Vestbø.
+
+ Qt Quick sequentially set the x, y, width, height of the view. We really want to
+ start propagating further when the size of the viewport becomes valid, i.e. both
+ height and width are defined. In any case lower level classes are discarding an empty
+ size such as WebPage::sendViewportAttributesChanged() so it was pointless to send the size
+ through the IPC bus for nothing.
+
+ * UIProcess/API/qt/qquickwebview.cpp:
+ (QQuickWebViewLegacyPrivate::updateViewportSize):
+
+2012-06-05 Carlos Garcia Campos <cgarcia@igalia.com>
+
+ [GTK] Add webkit_download_get_received_data_length to WebKit2 GTK+ API
+ https://bugs.webkit.org/show_bug.cgi?id=88323
+
+ Reviewed by Martin Robinson.
+
+ * UIProcess/API/gtk/WebKitDownload.cpp:
+ (webkit_download_get_received_data_length):
+ * UIProcess/API/gtk/WebKitDownload.h:
+ * UIProcess/API/gtk/docs/webkit2gtk-sections.txt:
+ * UIProcess/API/gtk/tests/TestDownloads.cpp:
+
+2012-06-05 Dongwoo Im <dw.im@samsung.com>
+
+ Add 'isProtocolHandlerRegistered' and 'unregisterProtocolHandler'.
+ https://bugs.webkit.org/show_bug.cgi?id=73176
+
+ Reviewed by Adam Barth.
+
+ Two more APIs are added in Custom Scheme Handler specification.
+ http://dev.w3.org/html5/spec/Overview.html#custom-handlers
+ One is 'isProtocolHandlerRegistered' to query whether the specific URL
+ is registered or not.
+ The other is 'unregisterProtocolHandler' to remove the registered URL.
+
+ * Configurations/FeatureDefines.xcconfig: Add a macro 'ENABLE_CUSTOM_SCHEME_HANDLER'.
+
+2012-06-05 Christophe Dumez <christophe.dumez@intel.com>
+
+ [EFL][WK2] WebKit2-EFL does not link with gold linker
+ https://bugs.webkit.org/show_bug.cgi?id=88295
+
+ Unreviewed. Fix linking when using gold linker.
+
+ * PlatformEfl.cmake:
+
+2012-06-05 Mario Sanchez Prada <msanchez@igalia.com>
+
+ [GTK][WK2] Implement API for Geolocation permission requests in the GTK port
+ https://bugs.webkit.org/show_bug.cgi?id=83879
+
+ Reviewed by Carlos Garcia Campos.
+
+ Added a new kind of permission request for supporting the
+ Geolocation API in WebKit2GTK+.
+
+ New WebKitGeolocationPermissionRequest class, implementing the
+ WebKitPermissionRequest interface, to enabling client applications
+ to allow or deny geolocation permission requests.
+
+ * GNUmakefile.list.am: Added new files.
+ * UIProcess/API/gtk/WebKitGeolocationPermissionRequest.cpp: Added.
+ (_WebKitGeolocationPermissionRequestPrivate):
+ (webkitGeolocationPermissionRequestAllow):
+ (webkitGeolocationPermissionRequestDeny):
+ (webkit_permission_request_interface_init):
+ (webkit_geolocation_permission_request_init):
+ (webkitGeolocationPermissionRequestFinalize):
+ (webkit_geolocation_permission_request_class_init):
+ (webkitGeolocationPermissionRequestCreate):
+ * UIProcess/API/gtk/WebKitGeolocationPermissionRequest.h: Added.
+ (_WebKitGeolocationPermissionRequest):
+ (_WebKitGeolocationPermissionRequestClass):
+ * UIProcess/API/gtk/WebKitGeolocationPermissionRequestPrivate.h: Added.
+
+ Include WKGeolocationPermissionRequest.h in WebKitPrivate.h, so we
+ can use it from the new WebKitGeolocationPermissionRequest class.
+
+ * UIProcess/API/gtk/WebKitPrivate.h: Added new include.
+
+ Implement geolocation permission requests in the UI client.
+
+ * UIProcess/API/gtk/WebKitUIClient.cpp:
+ (decidePolicyForGeolocationPermissionRequest): Create a new
+ instance of the WebKitGeolocationPermissionRequest class and call
+ to webkitWebViewMakePermissionRequest().
+ (attachUIClientToView): Provide an implementation function for
+ decidePolicyForGeolocationPermissionRequest.
+ * UIProcess/API/gtk/WebKitWebView.h: Add new element to
+ WebKitPermissionRequestType enumeration for geolocation requests.
+ * UIProcess/API/gtk/webkit2.h: Added header file for
+ WebKitGeolocationPermissionRequest
+
+ New unit tests to test allowing and denying permission requests.
+
+ * UIProcess/API/gtk/tests/TestWebKitWebView.cpp:
+ (testWebViewPermissionRequests): New test that loads a simple HTML
+ with JavaScript code requesting the current location.
+ (beforeAll): Added new test.
+
+ Updated documentation files.
+
+ * UIProcess/API/gtk/docs/webkit2gtk-docs.sgml:
+ * UIProcess/API/gtk/docs/webkit2gtk-sections.txt:
+
+2012-06-04 Sadrul Habib Chowdhury <sadrul@chromium.org>
+
+ [chromium] Fix software rendering for device-scale-factor > 1
+ https://bugs.webkit.org/show_bug.cgi?id=88136
+
+ Reviewed by Darin Fisher.
+
+ Export WebCore::Page::setDeviceScaleFactor and WebCore::Settings::setDefaultDeviceScaleFactor.
+
+ * win/WebKit2.def:
+ * win/WebKit2CFLite.def:
+
+2012-06-04 Andy Estes <aestes@apple.com>
+
+ Use ENABLE() and USE() macros in a few more places
+ https://bugs.webkit.org/show_bug.cgi?id=88245
+
+ Reviewed by Anders Carlsson.
+
+ * UIProcess/API/C/WKPluginSiteDataManager.cpp: Only include npapi.h if
+ Netscape plug-in API is enabled.
+ * UIProcess/mac/CorrectionPanel.h: Wrap with USE(AUTOCORRECTION_PANEL)
+ * WebProcess/Authentication/AuthenticationManager.cpp: Use the stub
+ version of tryUsePlatformCertificateInfoForChallenge if
+ Security.framework isn't available.
+ * WebProcess/WebProcess.messages.in: Only generate two messages if
+ Security.framework is available.
+ * WebProcess/mac/KeychainItemShimMethods.mm: Wrap with
+ USE(SECURITY_FRAMEWORK).
+
+2012-06-04 Andy Estes <aestes@apple.com>
+
+ Add stub WebKit2 implementations of PLUGIN_PROXY_FOR_VIDEO methods declared in FrameLoaderClient
+ https://bugs.webkit.org/show_bug.cgi?id=88244
+
+ Reviewed by Anders Carlsson.
+
+ * WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
+ (WebKit::WebFrameLoaderClient::createMediaPlayerProxyPlugin): Add a stub implementation.
+ (WebKit::WebFrameLoaderClient::hideMediaPlayerProxyPlugin): Ditto.
+ (WebKit::WebFrameLoaderClient::showMediaPlayerProxyPlugin): Ditto.
+ * WebProcess/WebCoreSupport/WebFrameLoaderClient.h:
+
+2012-06-04 Mario Sanchez Prada <msanchez@igalia.com>
+
+ [GTK][WK2] Implement geolocation provider for the GTK port
+ https://bugs.webkit.org/show_bug.cgi?id=83877
+
+ Reviewed by Carlos Garcia Campos.
+
+ Add a new client-based geolocation provider for WebKit2GTK+, relying the
+ new Geoclue-based geolocation provider available in WebCore.
+
+ * GNUmakefile.am:
+ * GNUmakefile.list.am:
+ * UIProcess/API/gtk/WebKitGeolocationProvider.cpp: Added.
+ (toGeolocationProvider):
+ (startUpdatingCallback):
+ (stopUpdatingCallback):
+ (WebKitGeolocationProvider::~WebKitGeolocationProvider):
+ (WebKitGeolocationProvider::create):
+ (WebKitGeolocationProvider::WebKitGeolocationProvider):
+ (WebKitGeolocationProvider::startUpdating):
+ (WebKitGeolocationProvider::stopUpdating):
+ (WebKitGeolocationProvider::notifyPositionChanged):
+ (WebKitGeolocationProvider::notifyErrorOccurred):
+ * UIProcess/API/gtk/WebKitGeolocationProvider.h: Added.
+ * UIProcess/API/gtk/WebKitPrivate.h:
+ * UIProcess/API/gtk/WebKitWebContext.cpp:
+ (_WebKitWebContextPrivate):
+ (createDefaultWebContext):
+
+2012-06-04 Zalan Bujtas <zbujtas@gmail.com>
+
+ [Qt][WK2] Rename QtViewportInteractionEngine to QtViewportHandler.
+ https://bugs.webkit.org/show_bug.cgi?id=88226
+
+ Reviewed by Kenneth Rohde Christiansen.
+
+ * Target.pri:
+ * UIProcess/API/qt/qquickwebpage_p_p.h:
+ (WebKit):
+ * UIProcess/API/qt/qquickwebview.cpp:
+ (QQuickWebViewFlickablePrivate::~QQuickWebViewFlickablePrivate):
+ (QQuickWebViewFlickablePrivate::onComponentComplete):
+ (QQuickWebViewFlickablePrivate::didChangeViewportProperties):
+ (QQuickWebViewFlickablePrivate::updateViewportSize):
+ (QQuickWebViewFlickablePrivate::pageDidRequestScroll):
+ (QQuickWebViewFlickablePrivate::didChangeContentsSize):
+ * UIProcess/API/qt/qquickwebview_p.h:
+ (WebKit):
+ * UIProcess/API/qt/qquickwebview_p_p.h:
+ (WebKit):
+ (QQuickWebViewPrivate::viewportHandler):
+ (QQuickWebViewFlickablePrivate::viewportHandler):
+ (QQuickWebViewFlickablePrivate):
+ * UIProcess/API/qt/qwebkittest.cpp:
+ (QWebKitTest::contentsScale):
+ (QWebKitTest::devicePixelRatio):
+ (QWebKitTest::initialScale):
+ (QWebKitTest::minimumScale):
+ (QWebKitTest::maximumScale):
+ (QWebKitTest::isScalable):
+ (QWebKitTest::layoutSize):
+ * UIProcess/qt/QtGestureRecognizer.cpp:
+ (WebKit::QtGestureRecognizer::viewportHandler):
+ * UIProcess/qt/QtGestureRecognizer.h:
+ (WebKit):
+ * UIProcess/qt/QtPanGestureRecognizer.cpp:
+ (WebKit::QtPanGestureRecognizer::update):
+ (WebKit::QtPanGestureRecognizer::finish):
+ (WebKit::QtPanGestureRecognizer::cancel):
+ * UIProcess/qt/QtPinchGestureRecognizer.cpp:
+ (WebKit::QtPinchGestureRecognizer::update):
+ (WebKit::QtPinchGestureRecognizer::finish):
+ (WebKit::QtPinchGestureRecognizer::cancel):
+ * UIProcess/qt/QtViewportHandler.cpp: Copied from Source/WebKit2/UIProcess/qt/QtViewportInteractionEngine.cpp.
+ (WebKit::ViewportUpdateDeferrer::ViewportUpdateDeferrer):
+ (WebKit::ViewportUpdateDeferrer::~ViewportUpdateDeferrer):
+ (ViewportUpdateDeferrer):
+ (WebKit::QtViewportHandler::suspendPageContent):
+ (WebKit::QtViewportHandler::resumePageContent):
+ (WebKit::QtViewportHandler::cssScaleFromItem):
+ (WebKit::QtViewportHandler::itemScaleFromCSS):
+ (WebKit::QtViewportHandler::itemCoordFromCSS):
+ (WebKit::QtViewportHandler::itemRectFromCSS):
+ (WebKit::QtViewportHandler::QtViewportHandler):
+ (WebKit::QtViewportHandler::~QtViewportHandler):
+ (WebKit::QtViewportHandler::innerBoundedCSSScale):
+ (WebKit::QtViewportHandler::outerBoundedCSSScale):
+ (WebKit::QtViewportHandler::viewportAttributesChanged):
+ (WebKit::QtViewportHandler::pageContentsSizeChanged):
+ (WebKit::QtViewportHandler::setPageItemRectVisible):
+ (WebKit::QtViewportHandler::animatePageItemRectVisible):
+ (WebKit::QtViewportHandler::flickMoveStarted):
+ (WebKit::QtViewportHandler::flickMoveEnded):
+ (WebKit::QtViewportHandler::pageItemPositionChanged):
+ (WebKit::QtViewportHandler::pageContentPositionRequested):
+ (WebKit::QtViewportHandler::scaleAnimationStateChanged):
+ (WebKit::QtViewportHandler::scaleAnimationValueChanged):
+ (WebKit::QtViewportHandler::touchBegin):
+ (WebKit::QtViewportHandler::touchEnd):
+ (WebKit::QtViewportHandler::computePosRangeForPageItemAtScale):
+ (WebKit::QtViewportHandler::focusEditableArea):
+ (WebKit::QtViewportHandler::zoomToAreaGestureEnded):
+ (WebKit::QtViewportHandler::nearestValidBounds):
+ (WebKit::QtViewportHandler::setCSSScale):
+ (WebKit::QtViewportHandler::currentCSSScale):
+ (WebKit::QtViewportHandler::scrollAnimationActive):
+ (WebKit::QtViewportHandler::panGestureActive):
+ (WebKit::QtViewportHandler::panGestureStarted):
+ (WebKit::QtViewportHandler::panGestureRequestUpdate):
+ (WebKit::QtViewportHandler::panGestureEnded):
+ (WebKit::QtViewportHandler::panGestureCancelled):
+ (WebKit::QtViewportHandler::scaleAnimationActive):
+ (WebKit::QtViewportHandler::cancelScrollAnimation):
+ (WebKit::QtViewportHandler::interruptScaleAnimation):
+ (WebKit::QtViewportHandler::pinchGestureActive):
+ (WebKit::QtViewportHandler::pinchGestureStarted):
+ (WebKit::QtViewportHandler::pinchGestureRequestUpdate):
+ (WebKit::QtViewportHandler::pinchGestureEnded):
+ (WebKit::QtViewportHandler::pinchGestureCancelled):
+ (WebKit::QtViewportHandler::visibleContentsRect):
+ (WebKit::QtViewportHandler::informVisibleContentChange):
+ (WebKit::QtViewportHandler::viewportItemSizeChanged):
+ (WebKit::QtViewportHandler::scaleContent):
+ * UIProcess/qt/QtViewportHandler.h: Copied from Source/WebKit2/UIProcess/qt/QtViewportInteractionEngine.h.
+ (QtViewportHandler):
+ * UIProcess/qt/QtViewportInteractionEngine.cpp: Removed.
+ * UIProcess/qt/QtViewportInteractionEngine.h: Removed.
+ * UIProcess/qt/QtWebPageEventHandler.cpp:
+ (WebKit::QtWebPageEventHandler::QtWebPageEventHandler):
+ (WebKit::QtWebPageEventHandler::setViewportHandler):
+ (WebKit::QtWebPageEventHandler::inputPanelVisibleChanged):
+ (WebKit::QtWebPageEventHandler::doneWithTouchEvent):
+ (WebKit::QtWebPageEventHandler::didFindZoomableArea):
+ * UIProcess/qt/QtWebPageEventHandler.h:
+ (WebKit):
+ (QtWebPageEventHandler):
+ (WebKit::QtWebPageEventHandler::viewportHandler):
+
+2012-06-04 David Kilzer <ddkilzer@apple.com>
+
+ BUILD FIX: FeatureDefines.xcconfig should match across projects
+
+ * Configurations/FeatureDefines.xcconfig:
+ - Add missing ENABLE_LEGACY_CSS_VENDOR_PREFIXES.
+
+2012-06-04 Allan Sandfeld Jensen <allan.jensen@nokia.com>
+
+ [Qt] Tap-to-zoom overshoot animation.
+ https://bugs.webkit.org/show_bug.cgi?id=87108
+
+ Reviewed by Tor Arne Vestbø.
+
+ Reverts the change in animation, so the default is more "neutral".
+ This should be made configurable later.
+
+ * UIProcess/qt/QtViewportInteractionEngine.cpp:
+ (WebKit::QtViewportInteractionEngine::animatePageItemRectVisible):
+
+2012-06-04 Andras Becsi <andras.becsi@nokia.com>
+
+ [Qt][WK2] Refactor the tap gesture recognizer
+ https://bugs.webkit.org/show_bug.cgi?id=88096
+
+ Reviewed by Simon Hausmann.
+
+ Refactor the tap gesture recognizer so that its internal state machine is
+ self contained and independent of input event types.
+ Also change the internal API for tap highlighting to make the code easier
+ to understand on the caller side.
+
+ This patch makes the tap gesture recognizer more robust, consistent with
+ other gesture recognizers and fixes some issues related to highlighting
+ and link activation with respect to native touch events.
+
+ * UIProcess/qt/QtTapGestureRecognizer.cpp:
+ (WebKit::QtTapGestureRecognizer::QtTapGestureRecognizer):
+ (WebKit::QtTapGestureRecognizer::withinDistance):
+ (WebKit::QtTapGestureRecognizer::update):
+ (WebKit::QtTapGestureRecognizer::finish):
+ (WebKit::QtTapGestureRecognizer::cancel):
+ (WebKit::QtTapGestureRecognizer::highlightTimeout):
+ (WebKit::QtTapGestureRecognizer::singleTapTimeout):
+ (WebKit::QtTapGestureRecognizer::tapAndHoldTimeout):
+ (WebKit::QtTapGestureRecognizer::reset):
+ * UIProcess/qt/QtTapGestureRecognizer.h:
+ (QtTapGestureRecognizer):
+ * UIProcess/qt/QtWebPageEventHandler.cpp:
+ (WebKit::QtWebPageEventHandler::QtWebPageEventHandler):
+ (WebKit::QtWebPageEventHandler::activateTapHighlight):
+ (WebKit::QtWebPageEventHandler::deactivateTapHighlight):
+ (WebKit):
+ (WebKit::QtWebPageEventHandler::handleSingleTapEvent):
+ (WebKit::QtWebPageEventHandler::handleDoubleTapEvent):
+ (WebKit::QtWebPageEventHandler::doneWithTouchEvent):
+ * UIProcess/qt/QtWebPageEventHandler.h:
+ (QtWebPageEventHandler):
+
+2012-06-02 Geoffrey Garen <ggaren@apple.com>
+
+ Try to fix the Windows build.
+
+ * win/WebKit2.def:
+ * win/WebKit2CFLite.def:
+
+2012-06-02 Andy Estes <aestes@apple.com>
+
+ [WebKit2] Use USE(), ENABLE(), and HAVE() macros in more places
+ https://bugs.webkit.org/show_bug.cgi?id=88182
+
+ Reviewed by Sam Weinig.
+
+ Use USE(APPKIT):
+ * Shared/mac/NativeWebKeyboardEventMac.mm:
+ * Shared/mac/NativeWebMouseEventMac.mm:
+ * Shared/mac/NativeWebWheelEventMac.mm:
+ * Shared/mac/WebEventFactory.h:
+ * UIProcess/API/mac/WKTextInputWindowController.h:
+ * UIProcess/API/mac/WKTextInputWindowController.mm:
+ * UIProcess/PageClient.h:
+ * UIProcess/WebPageProxy.h:
+
+ Use ENABLE(NETSCAPE_PLUGIN_API):
+ * UIProcess/API/C/WKPluginSiteDataManager.cpp:
+ (WKPluginSiteDataManagerClearSiteData):
+ (WKPluginSiteDataManagerClearAllSiteData):
+
+ Use USE(AUTOCORRECTION_PANEL):
+ * UIProcess/API/mac/PageClientImpl.h:
+ * UIProcess/API/mac/PageClientImpl.mm:
+ (WebKit::PageClientImpl::showCorrectionPanel):
+ (WebKit::PageClientImpl::dismissCorrectionPanel):
+ (WebKit::PageClientImpl::dismissCorrectionPanelSoon):
+ * UIProcess/mac/CorrectionPanel.mm:
+
+ Use HAVE(HOSTED_CORE_ANIMATION):
+ * UIProcess/mac/WebContextMac.mm:
+
+ Put ENABLE(FULLSCREEN_API) in the right place:
+ * UIProcess/mac/WebFullScreenManagerProxyMac.mm:
+
+ Remove unnecessary use of USE(APPKIT):
+ * UIProcess/mac/WebPageProxyMac.mm:
+
+ Use USE(SECURITY_FRAMEWORK):
+ * WebProcess/Authentication/mac/AuthenticationManager.mac.mm:
+
+ Use ENABLE(CONTEXT_MENUS):
+ * WebProcess/WebCoreSupport/mac/WebContextMenuClientMac.mm:
+
+ Use USE(SECURITY_FRAMEWORK):
+ * WebProcess/WebProcess.h:
+
+ Remove unnecessary use of USE(SECURITY_FRAMEWORK):
+ * WebProcess/mac/WebProcessMac.mm:
+
+2012-06-02 Andy Estes <aestes@apple.com>
+
+ Remove a duplicate INIT() from WebSystemInterface.mm
+ https://bugs.webkit.org/show_bug.cgi?id=88181
+
+ Reviewed by Anders Carlsson.
+
+ * WebProcess/WebCoreSupport/mac/WebSystemInterface.mm:
+ (InitWebCoreSystemInterface):
+
+2012-06-02 Andy Estes <aestes@apple.com>
+
+ Remove unnecessary import of <Cocoa/Cocoa.h>
+ https://bugs.webkit.org/show_bug.cgi?id=88180
+
+ Reviewed by Sam Weinig.
+
+ * UIProcess/mac/WKFullKeyboardAccessWatcher.h:
+
+2012-06-02 Andy Estes <aestes@apple.com>
+
+ Ensure cpu_type_t is defined by including <mach/machine.h>
+ https://bugs.webkit.org/show_bug.cgi?id=88178
+
+ Reviewed by Anders Carlsson.
+
+ * Shared/Plugins/PluginModuleInfo.h:
+
+2012-06-02 Sam Weinig <sam@webkit.org>
+
+ InjectedBundles' sandbox extensions don't do what we think they do
+ https://bugs.webkit.org/show_bug.cgi?id=88177
+
+ Reviewed by Anders Carlsson.
+
+ This cannot be tested with our current infrastructure (or any modifications of the
+ infrastructure I can think of) since it relies on the bundle being put outside
+ the build directory where WebKit is put.
+
+ * WebProcess/InjectedBundle/mac/InjectedBundleMac.cpp:
+ (WebKit::InjectedBundle::load):
+ Use SandboxExtension::consumePermanently() rather than consume(), otherwise,
+ nulling out the SandboxExtension a few lines later invalidates the extension
+ we just consumed.
+
+2012-06-02 Dan Bernstein <mitz@apple.com>
+
+ Reverted the last change.
+
+ * WebKit2.xcodeproj/project.pbxproj:
+
+2012-06-02 Dan Bernstein <mitz@apple.com>
+
+ Stop treating two Python scripts as private headers.
+
+ * WebKit2.xcodeproj/project.pbxproj: Removed model.py and parser.py from the Copy Headers
+ build phase.
+
+2012-06-02 Zeno Albisser <zeno@webkit.org>
+
+ Fix and enable WebGL for WebKit2 on Qt.
+ https://bugs.webkit.org/show_bug.cgi?id=86214
+
+ Added glue code to make use of GraphicsSurface
+ as a backend for the webgl-canvas in case of WK2.
+
+ Reviewed by Noam Rosenthal.
+
+ * UIProcess/API/qt/qwebpreferences.cpp:
+ (QWebPreferencesPrivate::testAttribute):
+ (QWebPreferencesPrivate::setAttribute):
+ (QWebPreferences::webGLEnabled):
+ (QWebPreferences::setWebGLEnabled):
+ * UIProcess/API/qt/qwebpreferences_p.h:
+ * UIProcess/API/qt/qwebpreferences_p_p.h:
+ Added WebGLEnabled enum to allow enabling/disabling of
+ WebGL using QWebPreferences.
+
+ * UIProcess/LayerTreeHostProxy.cpp:
+ (WebKit::LayerTreeHostProxy::syncCanvas):
+ Dispatch syncCanvas calls to the apropriate
+ WebLayerTreeRenderer.
+
+ * UIProcess/LayerTreeHostProxy.h:
+ (LayerTreeHostProxy):
+ * UIProcess/LayerTreeHostProxy.messages.in:
+ * UIProcess/WebLayerTreeRenderer.h:
+ (WebLayerTreeRenderer):
+ * UIProcess/WebLayerTreeRenderer.cpp:
+ (WebKit::WebLayerTreeRenderer::syncCanvas):
+ (WebKit::WebLayerTreeRenderer::deleteLayer):
+ (WebKit::WebLayerTreeRenderer::purgeGLResources):
+ Create a TextureMapperSurfaceBackingStore for the canvas
+ if necessary and pass or update the graphicsSurfaceToken
+ for to be used with the backing store.
+
+ * WebProcess/WebCoreSupport/WebGraphicsLayer.cpp:
+ (WebCore::WebGraphicsLayer::WebGraphicsLayer):
+ (WebCore):
+ (WebCore::WebGraphicsLayer::setContentsToCanvas):
+ (WebCore::WebGraphicsLayer::syncCanvas):
+ Copy the multisample framebuffer contents onto the GraphicsSurface.
+ Notify the UIProcess of the availability of a new texture.
+ (WebCore::WebGraphicsLayer::syncCompositingStateForThisLayerOnly):
+ Sync the canvas as well.
+
+ * WebProcess/WebCoreSupport/WebGraphicsLayer.h:
+ Added a pure virtual function syncCanvas.
+ This is guarded by PLATFORM(QT).
+ (WebGraphicsLayerClient):
+ (WebGraphicsLayer):
+
+ * WebProcess/WebPage/qt/LayerTreeHostQt.cpp:
+ (WebKit::LayerTreeHostQt::syncLayerChildren):
+ (WebKit):
+ (WebKit::LayerTreeHostQt::syncCanvas):
+ * WebProcess/WebPage/qt/LayerTreeHostQt.h:
+ (LayerTreeHostQt):
+
+2012-06-01 Brady Eidson <beidson@apple.com>
+
+ <rdar://problem/11335622> and https://bugs.webkit.org/show_bug.cgi?id=88119
+ REGRESSION (r99448) Zero-sized plug-ins no longer get an NPP_SetWindow call
+
+ Followup to r119260
+
+ Rubber-stamped by Anders Carlsson.
+
+ * WebProcess/Plugins/Netscape/NetscapePlugin.cpp:
+ (WebKit::NetscapePlugin::callSetWindow): Set the m_hasCalledSetWindow here...
+ (WebKit::NetscapePlugin::geometryDidChange): ...instead of here.
+
+2012-06-01 Brady Eidson <beidson@apple.com>
+
+ <rdar://problem/11335622> and https://bugs.webkit.org/show_bug.cgi?id=88119
+ REGRESSION (r99448) Zero-sized plug-ins no longer get an NPP_SetWindow call
+
+ Reviewed by Oliver Hunt.
+
+ Add a flag to NetscapePlugin to track whether or not NPP_SetWindow has ever been called.
+ Check this flag in geometryDidChange to make sure every plug-in gets the call at least once.
+
+ "Everybody gets one. Tell him, Peter."
+ "Apparently everybody gets one."
+ "Bingo."
+
+ * WebProcess/Plugins/Netscape/NetscapePlugin.cpp:
+ (WebKit::NetscapePlugin::NetscapePlugin):
+ (WebKit::NetscapePlugin::geometryDidChange):
+ * WebProcess/Plugins/Netscape/NetscapePlugin.h:
+ (NetscapePlugin):
+
+2012-06-01 Dinu Jacob <dinu.jacob@nokia.com>
+
+ [WK2] WebLayerTreeRenderer::setContentsSize called synchronously
+ https://bugs.webkit.org/show_bug.cgi?id=88091
+
+ Reviewed by Noam Rosenthal.
+
+ Do not call WebLayerTreeRenderer::setContentsSize synchronously
+ from LayerTreeHostProxy.
+
+ * UIProcess/LayerTreeHostProxy.cpp:
+ (WebKit::LayerTreeHostProxy::setContentsSize):
+
+2012-06-01 Dinu Jacob <dinu.jacob@nokia.com>
+
+ [Qt][WK2] Set QWebKitTest::isScalable default as false
+ https://bugs.webkit.org/show_bug.cgi?id=88095
+
+ Reviewed by Tor Arne Vestbø.
+
+ Set QWebKitTest::isScalable default as false
+
+ * UIProcess/API/qt/qwebkittest.cpp:
+ (QWebKitTest::isScalable):
+
+2012-06-01 Allan Sandfeld Jensen <allan.jensen@nokia.com>
+
+ [Qt] Remove QtViewportInteractionEngine::pageItemSizeChanged.
+ https://bugs.webkit.org/show_bug.cgi?id=88082
+
+ Reviewed by Kenneth Rohde Christiansen.
+
+ The function was causing flickering, and after testing it was verified
+ that it was no longer needed either.
+
+ * UIProcess/qt/QtViewportInteractionEngine.cpp:
+ (WebKit::QtViewportInteractionEngine::QtViewportInteractionEngine):
+ * UIProcess/qt/QtViewportInteractionEngine.h:
+ (QtViewportInteractionEngine):
+
+2012-06-01 Dinu Jacob <dinu.jacob@nokia.com>
+
+ [Qt][WK2] Contents not rendered in MiniBrowser for some pages
+ https://bugs.webkit.org/show_bug.cgi?id=87922
+
+ Reviewed by Kenneth Rohde Christiansen.
+
+ Set drawing area visible contents rect if new visible contents rect is different from
+ the previous one.
+
+ * UIProcess/qt/QtViewportInteractionEngine.cpp:
+ (WebKit::QtViewportInteractionEngine::informVisibleContentChange):
+ * UIProcess/qt/QtViewportInteractionEngine.h:
+ (QtViewportInteractionEngine):
+
+2012-06-01 Kenneth Rohde Christiansen <kenneth@webkit.org>
+
+ [Qt] Move suspension to QtViewportInteractionEngine
+ https://bugs.webkit.org/show_bug.cgi?id=88078
+
+ Reviewed by Simon Hausmann.
+
+ Next step is to take care of visibility changes.
+
+ * UIProcess/API/qt/qquickwebview.cpp:
+ (QQuickWebViewFlickablePrivate::QQuickWebViewFlickablePrivate):
+ (QQuickWebViewFlickablePrivate::onComponentComplete):
+ * UIProcess/API/qt/qquickwebview_p.h:
+ * UIProcess/API/qt/qquickwebview_p_p.h:
+ (QQuickWebViewPrivate):
+ (QQuickWebViewFlickablePrivate):
+ * UIProcess/qt/QtViewportInteractionEngine.cpp:
+ (WebKit::ViewportUpdateDeferrer::ViewportUpdateDeferrer):
+ (WebKit::ViewportUpdateDeferrer::~ViewportUpdateDeferrer):
+ (WebKit::QtViewportInteractionEngine::suspendPageContent):
+ (WebKit):
+ (WebKit::QtViewportInteractionEngine::resumePageContent):
+ * UIProcess/qt/QtViewportInteractionEngine.h:
+ (QtViewportInteractionEngine):
+
+2012-06-01 Dinu Jacob <dinu.jacob@nokia.com>
+
+ [Qt][W2] Qml Error in ViewportInfoItem.qml in MiniBrowser
+ https://bugs.webkit.org/show_bug.cgi?id=87999
+
+ Reviewed by Kenneth Rohde Christiansen.
+
+ Return default viewport attributes rather than invalid QVariant.
+
+ * UIProcess/API/qt/qwebkittest.cpp:
+ (QWebKitTest::contentsScale):
+ (QWebKitTest::devicePixelRatio):
+ (QWebKitTest::initialScale):
+ (QWebKitTest::minimumScale):
+ (QWebKitTest::maximumScale):
+ (QWebKitTest::isScalable):
+ (QWebKitTest::layoutSize):
+
+2012-05-31 Kenneth Rohde Christiansen <kenneth@webkit.org>
+
+ [Qt] Clean up our viewport handling mess
+ https://bugs.webkit.org/show_bug.cgi?id=87977
+
+ Reviewed by Simon Hausmann.
+
+ Consolidated functionality from QQuickWebViewPrivate* into
+ ViewportInteractionEngine that belongs there, in preparation for
+ renaming ViewportInteractionEngine in the future.
+
+ Remove unneeded methods and move others to private.
+
+ * UIProcess/API/qt/qquickwebview.cpp:
+ (QQuickWebViewFlickablePrivate::QQuickWebViewFlickablePrivate):
+ (QQuickWebViewFlickablePrivate::onComponentComplete):
+ (QQuickWebViewFlickablePrivate::didChangeViewportProperties):
+ (QQuickWebViewFlickablePrivate::updateViewportSize):
+ (QQuickWebViewFlickablePrivate::_q_resume):
+ (QQuickWebViewFlickablePrivate::pageDidRequestScroll):
+ * UIProcess/API/qt/qquickwebview_p.h:
+ * UIProcess/API/qt/qquickwebview_p_p.h:
+ (QQuickWebViewPrivate):
+ (QQuickWebViewFlickablePrivate):
+ * UIProcess/qt/QtViewportInteractionEngine.cpp:
+ (WebKit::ViewportUpdateDeferrer::~ViewportUpdateDeferrer):
+ (WebKit::QtViewportInteractionEngine::QtViewportInteractionEngine):
+ (WebKit::QtViewportInteractionEngine::viewportAttributesChanged):
+ (WebKit::QtViewportInteractionEngine::pageContentsSizeChanged):
+ (WebKit::QtViewportInteractionEngine::pageItemPositionChanged):
+ (WebKit::QtViewportInteractionEngine::pageContentPositionRequested):
+ (WebKit::QtViewportInteractionEngine::visibleContentsRect):
+ (WebKit):
+ (WebKit::QtViewportInteractionEngine::informVisibleContentChange):
+ (WebKit::QtViewportInteractionEngine::viewportItemSizeChanged):
+ * UIProcess/qt/QtViewportInteractionEngine.h:
+ (WebKit):
+ (QtViewportInteractionEngine):
+
+2012-05-31 Hajime Morrita <morrita@chromium.org>
+
+ REGRESSION(r117572): editing/spelling/spellcheck-async-remove-frame.html crashes on Mac
+ https://bugs.webkit.org/show_bug.cgi?id=86859
+
+ Reviewed by Ryosuke Niwa.
+
+ * WebProcess/WebCoreSupport/WebEditorClient.cpp:
+ (WebKit::WebEditorClient::requestCheckingOfString):
+ * WebProcess/WebCoreSupport/WebEditorClient.h:
+
+2012-05-31 Andy Estes <aestes@apple.com>
+
+ [WebKit2] Remove nested #if conditions from messages.in files
+ https://bugs.webkit.org/show_bug.cgi?id=88039
+
+ Reviewed by Filip Pizlo.
+
+ The code generator that processes messages.in files can't handle nested
+ #if conditions. Sadly I added said conditions in r117700 but failed to
+ verify the generated result. Un-nest the conditions I added.
+
+ * UIProcess/WebPageProxy.messages.in:
+ * WebProcess/WebPage/WebPage.messages.in:
+
+2012-05-31 Andy Estes <aestes@apple.com>
+
+ Disentangle code that relies on USE(AUTOMATIC_TEXT_REPLACEMENT) from that which merely relies on PLATFORM(MAC)
+ https://bugs.webkit.org/show_bug.cgi?id=87933
+
+ Reviewed by Dan Bernstein.
+
+ * WebProcess/WebCoreSupport/WebEditorClient.h:
+ * WebProcess/WebCoreSupport/mac/WebEditorClientMac.mm:
+
+2012-05-31 Carlos Garcia Campos <cgarcia@igalia.com>
+
+ [GTK] Add webkit_download_get_request to WebKit2 GTK+ API
+ https://bugs.webkit.org/show_bug.cgi?id=87957
+
+ Reviewed by Martin Robinson.
+
+ * UIProcess/API/gtk/WebKitDownload.cpp:
+ (webkit_download_get_request): Return the WebKitURIRequest
+ representing the request that originated the download.
+ * UIProcess/API/gtk/WebKitDownload.h:
+ * UIProcess/API/gtk/docs/webkit2gtk-sections.txt: Add new symbol.
+ * UIProcess/API/gtk/tests/TestDownloads.cpp:
+ (testDownloadLocalFile):
+ (testDownloadRemoteFile):
+
+2012-05-31 Carlos Garcia Campos <cgarcia@igalia.com>
+
+ [SOUP] WebProcess crashes when a download is started from an existing ResourceHandle
+ https://bugs.webkit.org/show_bug.cgi?id=87953
+
+ Reviewed by Martin Robinson.
+
+ The output stream to write the downloaded data is created in the
+ didReceiveResponse callback of the download client. When a
+ download is created for an existing ResourceHandle (this happens
+ for example when policy decision is download), the response has
+ already been received. In this case we should make sure that the
+ download client is notified about the response, so that when data
+ actually arrives the output stream has already been created.
+
+ * WebProcess/Downloads/soup/DownloadSoup.cpp:
+ (WebKit::Download::startWithHandle):
+
+2012-05-31 Carlos Garcia Campos <cgarcia@igalia.com>
+
+ [GTK] Fix webkit_web_view_can_execute_editing_command() API doc
+ https://bugs.webkit.org/show_bug.cgi?id=87930
+
+ Reviewed by Martin Robinson.
+
+ * UIProcess/API/gtk/WebKitWebView.cpp:
+
+2012-05-31 Tor Arne Vestbø <tor.arne.vestbo@nokia.com>
+
+ [Qt] Simplify QT_VERSION_CHECKS for Qt5 by introducing HAVE(QT5)
+ https://bugs.webkit.org/show_bug.cgi?id=87955
+
+ Reviewed by Simon Hausmann.
+
+ * UIProcess/API/qt/tests/publicapi/tst_publicapi.cpp:
+
+2012-05-31 Zalan Bujtas <zbujtas@gmail.com>
+
+ [Qt][WK2] Add missing ViewportUpdateDeferrer guarding to setPageItemRectVisible() calls.
+ https://bugs.webkit.org/show_bug.cgi?id=87936
+
+ Reviewed by Kenneth Rohde Christiansen.
+
+ * UIProcess/qt/QtViewportInteractionEngine.cpp:
+ (WebKit::QtViewportInteractionEngine::viewportAttributesChanged):
+ (WebKit::QtViewportInteractionEngine::pageContentsSizeChanged):
+
+2012-05-31 Keunsoon Lee <keunsoon.lee@samsung.com>
+
+ [EFL][WK2] Add WKURLRequestEfl and WKURLResponseEfl
+ https://bugs.webkit.org/show_bug.cgi?id=70231
+
+ Reviewed by Chang Shu.
+
+ These codes can be used for WKPageDecidePolicyForResponseCallback on page policy callbacks.
+ The callback conveys WKURLResponseRef and WKURLRequestRef as parameter.
+
+ By the way, EFL browser needs content type from response to decide correct policy.
+ Another information, cookie, is necessary with similar reason.
+ But, there is no way to obtain such information on WebKit2 main stream, except for WKURLRequestCopyURL().
+
+ So, EFL port created those files to extract necessary information from WKURLResponseRef and WKURLRequestRef,
+ and not to desturb WebKit2 main stream.
+
+ * Shared/API/c/efl/WKURLRequestEfl.cpp: Added.
+ (WKURLRequestEflCopyCookies): extracting cookie information from WKURLRequestRef.
+ * Shared/API/c/efl/WKURLRequestEfl.h: Added.
+ * Shared/API/c/efl/WKURLResponseEfl.cpp: Added.
+ (WKURLResponseEflCopyContentType): extracting content type (i.e. MIME type) from WKURLResponseRef.
+ * Shared/API/c/efl/WKURLResponseEfl.h: Added.
+ * Shared/efl/WebCoreArgumentCodersEfl.cpp: Added.
+ (CoreIPC):
+ (CoreIPC::::encode):
+ (CoreIPC::::decode):
+ * Shared/efl/WebURLRequestEfl.cpp: Added.
+ (WebKit):
+ (WebKit::WebURLRequestEfl::WebURLRequestEfl):
+ (WebKit::WebURLRequestEfl::cookies): obtaining cookie information from ResourceRequest.
+ * Shared/efl/WebURLRequestEfl.h: Added.
+ (WebKit):
+ (WebURLRequestEfl):
+ (WebKit::WebURLRequestEfl::create):
+ * Shared/efl/WebURLResponseEfl.cpp: Added.
+ (WebKit):
+ (WebKit::WebURLResponseEfl::WebURLResponseEfl):
+ (WebKit::WebURLResponseEfl::contentType): obtaining content type (i.e. MIME type) from ResourceResponse.
+ * Shared/efl/WebURLResponseEfl.h: Added.
+ (WebKit):
+ (WebURLResponseEfl):
+ (WebKit::WebURLResponseEfl::create):
+
+2012-05-31 Gyuyoung Kim <gyuyoung.kim@samsung.com>
+
+ [EFL][WK2] Rename ewk_private.h to ewk_view_private.h
+ https://bugs.webkit.org/show_bug.cgi?id=87923
+
+ Reviewed by Kenneth Rohde Christiansen.
+
+ EFL WK1 decided to divide up ewk_private.h into each file's XXX_private.h file in order to maintain
+ internal functions more easily. EFL WK2 needs to adjust this as well.
+
+ * UIProcess/API/efl/PageClientImpl.cpp:
+ * UIProcess/API/efl/ewk_view_private.h: Renamed from Source/WebKit2/UIProcess/API/efl/ewk_private.h.
+ (WebCore):
+ * UIProcess/cairo/BackingStoreCairo.cpp:
+
+2012-05-31 Andy Estes <aestes@apple.com>
+
+ Move the specification of framework and library linking out of WebKit2.xcodeproj and into WebKit2.xcconfig
+ https://bugs.webkit.org/show_bug.cgi?id=87932
+
+ Reviewed by Dan Bernstein.
+
+ Doing this makes it easier to vary linking based on SDK or other factors.
+
+ * Configurations/WebKit2.xcconfig: Create FRAMEWORK_AND_LIBRARY_LDFLAGS,
+ which specifies the same list of frameworks and libraries that were
+ previously in WebKit2's 'Link Binary With Libraries' build phase, and
+ append it to $(OTHER_LDFLAGS).
+ * WebKit2.xcodeproj/project.pbxproj: Remove all frameworks and
+ libraries from the 'Link Binary With Libraries' build phase.
+
+2012-05-30 Sudarsana Nagineni <sudarsana.nagineni@linux.intel.com>
+
+ [GTK] [WK2] Memory leak in webkitWebViewBaseStartDrag
+ https://bugs.webkit.org/show_bug.cgi?id=87756
+
+ Reviewed by Carlos Garcia Campos.
+
+ Fixed memory leaks in drag and drop by using adoptRef instead
+ of just getting new references.
+
+ * UIProcess/API/gtk/WebKitWebViewBase.cpp:
+ (webkitWebViewBaseStartDrag):
+
+2012-05-30 Luiz Agostini <luiz.agostini@nokia.com>
+
+ [Qt] handled touchmove events should not cancel tap gesture recognition
+ https://bugs.webkit.org/show_bug.cgi?id=87808
+
+ Reviewed by Kenneth Rohde Christiansen.
+
+ Tap gesture recognition should not be canceled if a touchmove event is handled
+ by the web process.
+
+ * UIProcess/qt/QtWebPageEventHandler.cpp:
+ (WebKit::QtWebPageEventHandler::doneWithTouchEvent):
+
+2012-05-30 Mario Sanchez Prada <msanchez@igalia.com>
+
+ [GTK][WK2] Errors in documentation about webkit_web_view_run_javascript()
+ https://bugs.webkit.org/show_bug.cgi?id=87866
+
+ Reviewed by Martin Robinson.
+
+ * UIProcess/API/gtk/WebKitWebView.cpp: Fix errors.
+
+2012-05-30 Andy Estes <aestes@apple.com>
+
+ WebProcessMainMac.mm doesn't need to import WKView.h.
+
+ Rubber-stamped by Anders Carlsson.
+
+ * WebProcess/mac/WebProcessMainMac.mm:
+
+2012-05-30 Marcelo Lira <marcelo.lira@openbossa.org>
+
+ WebKit2: Implement layoutTestController.setPluginsEnabled() in WebKitTestRunner.
+ https://bugs.webkit.org/show_bug.cgi?id=58593
+
+ Adds the ability to change the pluginsEnabled flag in WebCore::Settings
+ to WebKitTestRunner's LayoutTestController. The flag is modified via the
+ public C API of the WebProcess.
+
+ Reviewed by Darin Adler.
+
+ * WebProcess/InjectedBundle/API/c/WKBundle.cpp:
+ (WKBundleSetPluginsEnabled):
+ * WebProcess/InjectedBundle/API/c/WKBundlePrivate.h:
+ * WebProcess/InjectedBundle/InjectedBundle.cpp:
+ (WebKit::InjectedBundle::setPluginsEnabled): Calls the setPluginsEnabled
+ method for the WebCore::Settings of each WebCore::Page in the current
+ page group.
+ (WebKit):
+ * WebProcess/InjectedBundle/InjectedBundle.h:
+ (InjectedBundle):
+
+2012-05-30 Caio Marcelo de Oliveira Filho <caio.oliveira@openbossa.org>
+
+ HashTable.h has using directives for std::pair and std::make_pair
+ https://bugs.webkit.org/show_bug.cgi?id=29919
+
+ Reviewed by Darin Adler.
+
+ Change code to use std::pair and std::make_pair.
+
+ * UIProcess/Launcher/mac/DynamicLinkerEnvironmentExtractor.mm:
+ (WebKit::DynamicLinkerEnvironmentExtractor::processEnvironmentVariable):
+ * UIProcess/WebContext.cpp:
+ (WebKit::WebContext::postMessageToInjectedBundle):
+
+2012-05-30 Kenneth Rohde Christiansen <kenneth@webkit.org>
+
+ Unreviewed: Fix wrongly typed Qt slot.
+
+ * UIProcess/qt/QtViewportInteractionEngine.cpp:
+ (WebKit::QtViewportInteractionEngine::QtViewportInteractionEngine):
+
+2012-05-30 Kenneth Rohde Christiansen <kenneth@webkit.org>
+
+ [Qt] Move ViewportAttribute related methods to the interaction engine.
+ https://bugs.webkit.org/show_bug.cgi?id=87855
+
+ Reviewed by Simon Hausmann.
+
+ Move the logic of didChange{ViewportProperties|ContentsSize} to the
+ interaction engine and update our testing object.
+
+ * UIProcess/API/qt/qquickwebview.cpp:
+ (QQuickWebViewLegacyPrivate::QQuickWebViewLegacyPrivate):
+ (QQuickWebViewFlickablePrivate::didChangeViewportProperties):
+ (QQuickWebViewFlickablePrivate::didChangeContentsSize):
+ * UIProcess/API/qt/qquickwebview_p_p.h:
+ (QQuickWebViewPrivate):
+ * UIProcess/API/qt/qwebkittest.cpp:
+ (QWebKitTest::contentsScale):
+ (QWebKitTest::devicePixelRatio):
+ (QWebKitTest::initialScale):
+ (QWebKitTest::minimumScale):
+ (QWebKitTest::maximumScale):
+ (QWebKitTest::isScalable):
+ (QWebKitTest::layoutSize):
+ * UIProcess/qt/QtViewportInteractionEngine.cpp:
+ (WebKit::QtViewportInteractionEngine::viewportAttributesChanged):
+ (WebKit):
+ (WebKit::QtViewportInteractionEngine::pageContentsSizeChanged):
+ * UIProcess/qt/QtViewportInteractionEngine.h:
+ (QtViewportInteractionEngine):
+
+2012-05-30 Kenneth Rohde Christiansen <kenneth@webkit.org>
+
+ [Qt] Do renames in ViewportInteractionEngine as agreed upon
+ https://bugs.webkit.org/show_bug.cgi?id=87845
+
+ Reviewed by Simon Hausmann.
+
+ Mostly moving methods around and renaming them to be more
+ consistent and avoid terminology clashes.
+
+ * UIProcess/API/qt/qquickwebview.cpp:
+ (QQuickWebViewFlickablePrivate::didChangeViewportProperties):
+ (QQuickWebViewFlickablePrivate::pageDidRequestScroll):
+ (QQuickWebViewFlickablePrivate::didChangeContentsSize):
+ * UIProcess/qt/QtViewportInteractionEngine.cpp:
+ (WebKit::boundPosition):
+ (WebKit):
+ (WebKit::QtViewportInteractionEngine::QtViewportInteractionEngine):
+ (WebKit::QtViewportInteractionEngine::setPageItemRectVisible):
+ (WebKit::QtViewportInteractionEngine::animatePageItemRectVisible):
+ (WebKit::QtViewportInteractionEngine::flickMoveStarted):
+ (WebKit::QtViewportInteractionEngine::flickMoveEnded):
+ (WebKit::QtViewportInteractionEngine::pageItemPositionChanged):
+ (WebKit::QtViewportInteractionEngine::pageContentPositionRequest):
+ (WebKit::QtViewportInteractionEngine::scaleAnimationValueChanged):
+ (WebKit::QtViewportInteractionEngine::computePosRangeForPageItemAtScale):
+ (WebKit::QtViewportInteractionEngine::focusEditableArea):
+ (WebKit::QtViewportInteractionEngine::zoomToAreaGestureEnded):
+ (WebKit::QtViewportInteractionEngine::nearestValidBounds):
+ (WebKit::QtViewportInteractionEngine::cancelScrollAnimation):
+ (WebKit::QtViewportInteractionEngine::pinchGestureEnded):
+ (WebKit::QtViewportInteractionEngine::pageItemSizeChanged):
+ * UIProcess/qt/QtViewportInteractionEngine.h:
+ (WebKit::QtViewportInteractionEngine::setDevicePixelRatio):
+ (QtViewportInteractionEngine):
+
+2012-05-30 Mariusz Grzegorczyk <mariusz.g@samsung.com>, Ryuan Choi <ryuan.choi@samsung.com>
+
+ [EFL][WK2] Fix WebKit2-EFL build
+ https://bugs.webkit.org/show_bug.cgi?id=83693
+
+ Reviewed by Carlos Garcia Campos.
+
+ * CMakeLists.txt: Move IDL generator codes to generate port specific *.messages.in.
+ * PlatformEfl.cmake: Add soup related files after r115411 and includes to fix build break.
+ * UIProcess/API/efl/PageClientImpl.cpp: Fix build break with ENABLE_TOUCH_EVENTS.
+ (WebKit):
+ (WebKit::PageClientImpl::doneWithTouchEvent):
+ * UIProcess/API/efl/PageClientImpl.h:
+ (PageClientImpl):
+ * WebProcess/WebCoreSupport/WebChromeClient.cpp: Fix build break with ENABLE_INPUT_TYPE_COLOR and ENABLE_REGISTER_PROTOCOL_HANDLER.
+ (WebKit):
+ (WebKit::WebChromeClient::createColorChooser):
+ * WebProcess/WebCoreSupport/WebChromeClient.h:
+ (WebChromeClient):
+ * WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp: Fix build break with ENABLE_WEB_INTENTS
+ (WebKit):
+ (WebKit::WebFrameLoaderClient::dispatchIntent):
+ * WebProcess/WebCoreSupport/WebFrameLoaderClient.h:
+ (WebCore):
+ (WebFrameLoaderClient):
+ * WebProcess/WebProcess.cpp: Guard PLATFORM_STRATEGIES codes.
+ (WebKit::WebProcess::didGetPlugins):
+ * WebProcess/soup/WebSoupRequestManager.cpp: Try to share with EFL port.
+ (WebKit::WebSoupRequestManager::didHandleURIRequest):
+
+2012-05-30 Kenneth Rohde Christiansen <kenneth@webkit.org>
+
+ [Qt] Variable renaming as preparation of further refactoring.
+
+ Rubberstamped by Simon Hausmann.
+
+ Change m_viewport to m_viewportItem and m_content to m_pageItem.
+
+ * UIProcess/qt/QtViewportInteractionEngine.cpp:
+ (WebKit::QtViewportInteractionEngine::QtViewportInteractionEngine):
+ (WebKit::QtViewportInteractionEngine::setItemRectVisible):
+ (WebKit::QtViewportInteractionEngine::animateItemRectVisible):
+ (WebKit::QtViewportInteractionEngine::flickableMoveStarted):
+ (WebKit::QtViewportInteractionEngine::flickableMoveEnded):
+ (WebKit::QtViewportInteractionEngine::flickableMovingPositionUpdate):
+ (WebKit::QtViewportInteractionEngine::scaleAnimationStateChanged):
+ (WebKit::QtViewportInteractionEngine::pagePositionRequest):
+ (WebKit::QtViewportInteractionEngine::computePosRangeForItemAtScale):
+ (WebKit::QtViewportInteractionEngine::focusEditableArea):
+ (WebKit::QtViewportInteractionEngine::zoomToAreaGestureEnded):
+ (WebKit::QtViewportInteractionEngine::nearestValidBounds):
+ (WebKit::QtViewportInteractionEngine::reset):
+ (WebKit::QtViewportInteractionEngine::setCSSScale):
+ (WebKit::QtViewportInteractionEngine::currentCSSScale):
+ (WebKit::QtViewportInteractionEngine::scrollAnimationActive):
+ (WebKit::QtViewportInteractionEngine::panGestureActive):
+ (WebKit::QtViewportInteractionEngine::panGestureStarted):
+ (WebKit::QtViewportInteractionEngine::panGestureRequestUpdate):
+ (WebKit::QtViewportInteractionEngine::panGestureEnded):
+ (WebKit::QtViewportInteractionEngine::panGestureCancelled):
+ (WebKit::QtViewportInteractionEngine::cancelScrollAnimation):
+ (WebKit::QtViewportInteractionEngine::pinchGestureStarted):
+ (WebKit::QtViewportInteractionEngine::pinchGestureRequestUpdate):
+ (WebKit::QtViewportInteractionEngine::scaleContent):
+ * UIProcess/qt/QtViewportInteractionEngine.h:
+ (QtViewportInteractionEngine):
+
+2012-05-30 Zalan Bujtas <zbujtas@gmail.com>
+
+ [Qt][WK2] Do not use anonymous variables for ViewportUpdateDeferrer.
+ https://bugs.webkit.org/show_bug.cgi?id=87831
+
+ Reviewed by Kenneth Rohde Christiansen.
+
+ * UIProcess/qt/QtViewportInteractionEngine.cpp:
+ (WebKit::QtViewportInteractionEngine::pagePositionRequest):
+ (WebKit::QtViewportInteractionEngine::cancelScrollAnimation):
+ (WebKit::QtViewportInteractionEngine::itemSizeChanged):
+
+2012-05-30 Carlos Garcia Campos <cgarcia@igalia.com>
+
+ Unreviewed. Fix WebKit2GTK+ API tests in the bots.
+
+ * UIProcess/API/gtk/tests/TestWebKitWebView.cpp:
+ (testWebViewCanShowMIMEType): Remove the check for multimedia and
+ plugins MIME types since they depend on the configuration and they
+ are not available in the bots.
+
+2012-05-29 Jer Noble <jer.noble@apple.com>
+
+ Noticeable delay taking an HTML5 trailer fullscreen.
+ https://bugs.webkit.org/show_bug.cgi?id=87794
+
+ Reviewed by Darin Adler.
+
+ Work around a not-entirely understood delay when using the results of a CGWindowListCreateImage()
+ call as the contents of a placeholder view. The backing of the resulting CGImageRef resides on
+ the WindowServer, and drawing that image requires synchronous calls to the WindowServer process.
+ By copying the image data, up front, into our own process, we can avoid those synchronous calls
+ later and avoid the delay-causing drawing behavior.
+
+ * UIProcess/mac/WKFullScreenWindowController.mm:
+ (CGImageDeepCopy): Added a helper function which copies the image data into a new CGImage.
+ (-[WKFullScreenWindowController enterFullScreen:]): Use the above.
+
+2012-05-29 Sudarsana Nagineni <sudarsana.nagineni@linux.intel.com>
+
+ [GTK] [WK2] Reproducible crash in performDragControllerAction
+ https://bugs.webkit.org/show_bug.cgi?id=87744
+
+ Reviewed by Martin Robinson.
+
+ Fix a crash by using deref() instead of delete to dereference and
+ release the platformData of DragData.
+
+ * WebProcess/WebPage/WebPage.cpp:
+ (WebKit::WebPage::performDragControllerAction):
+
+2012-05-29 Simon Pena <spena@igalia.com>
+
+ [GTK] Missing field initializers for WKPageLoaderClient and WKPageUIClient
+ https://bugs.webkit.org/show_bug.cgi?id=87745
+
+ Reviewed by Carlos Garcia Campos.
+
+ Add missing initializers for WKPageLoaderClient and
+ WKPageUIClient, for callbacks WKPagePluginDidFailCallback and
+ WKPageUnavailablePluginButtonClickedCallback, introduced in
+ revision r116716.
+
+ * UIProcess/API/gtk/WebKitLoaderClient.cpp:
+ (attachLoaderClientToView): Initialize WKPagePluginDidFailCallback
+ * UIProcess/API/gtk/WebKitUIClient.cpp:
+ (attachUIClientToView): Initialize callback
+ WKPageUnavailablePluginButtonClickedCallback
+
+2012-05-29 Carlos Garcia Campos <cgarcia@igalia.com>
+
+ [GTK] Policy decision headers are not included in the main webkit2.h header
+ https://bugs.webkit.org/show_bug.cgi?id=87753
+
+ Reviewed by Martin Robinson.
+
+ * UIProcess/API/gtk/webkit2.h: Include
+ WebKitNavigationPolicyDecision.h and WebKitResponsePolicyDecision.h.
+
+2012-05-29 Carlos Garcia Campos <cgarcia@igalia.com>
+
+ [GTK] Add webkit_web_view_can_show_mime_type() to WebKit2 GTK+ API
+ https://bugs.webkit.org/show_bug.cgi?id=85998
+
+ Reviewed by Martin Robinson.
+
+ And use it in the default handler of WebKitWebView::decide-policy
+ signal to decide whether to use or ignore a response policy
+ decision depending on whether the mime type of the response can be
+ displayed in the WebView or not.
+
+ * UIProcess/API/gtk/WebKitURIResponse.cpp:
+ (webkitURIResponseGetProperty): Add getter for mime-type property.
+ (webkit_uri_response_class_init): Add mime-type property.
+ (webkit_uri_response_get_mime_type): Return the mime type of the
+ response.
+ * UIProcess/API/gtk/WebKitURIResponse.h:
+ * UIProcess/API/gtk/WebKitWebView.cpp:
+ (webkitWebViewDecidePolicy): In case of response policy decisions,
+ use the URI response to decide what to do: download if the
+ response is an attachment, use if the mime type is supported by
+ the web view or ignore otherwise.
+ (webkit_web_view_can_show_mime_type): Returns whether the given
+ mime type can be displayed in the WebView or not.
+ * UIProcess/API/gtk/WebKitWebView.h:
+ * UIProcess/API/gtk/docs/webkit2gtk-sections.txt: Add new symbols.
+ * UIProcess/API/gtk/tests/TestResources.cpp:
+ (testWebResourceResponse):
+ (testWebResourceMimeType):
+ (serverCallback):
+ (beforeAll):
+ * UIProcess/API/gtk/tests/TestWebKitWebView.cpp:
+ (testWebViewCanShowMIMEType):
+ (beforeAll):
+
+2012-05-29 David Barr <davidbarr@chromium.org>
+
+ Introduce ENABLE_CSS_IMAGE_RESOLUTION compile flag
+ https://bugs.webkit.org/show_bug.cgi?id=87685
+
+ Reviewed by Eric Seidel.
+
+ Add a configuration option for CSS image-resolution support, disabling it by default.
+
+ * Configurations/FeatureDefines.xcconfig:
+
+2012-05-29 Kenneth Rohde Christiansen <kenneth@webkit.org>
+
+ [Qt] Move tests from DesktopBehavior which can be made to work
+ https://bugs.webkit.org/show_bug.cgi?id=87736
+
+ Rubberstamped by Simon Hausmann.
+
+ Move and modify the following tests to WebView/ and make them
+ use touch events.
+
+ * UIProcess/API/qt/tests/qmltests/WebView/tst_itemSelector.qml: Renamed from Source/WebKit2/UIProcess/API/qt/tests/qmltests/DesktopBehavior/tst_itemSelector.qml.
+ * UIProcess/API/qt/tests/qmltests/WebView/tst_messaging.qml: Renamed from Source/WebKit2/UIProcess/API/qt/tests/qmltests/DesktopBehavior/tst_messaging.qml.
+ * UIProcess/API/qt/tests/qmltests/WebView/tst_multiFileUpload.qml: Renamed from Source/WebKit2/UIProcess/API/qt/tests/qmltests/DesktopBehavior/tst_multiFileUpload.qml.
+ * UIProcess/API/qt/tests/qmltests/WebView/tst_singleFileUpload.qml: Renamed from Source/WebKit2/UIProcess/API/qt/tests/qmltests/DesktopBehavior/tst_singleFileUpload.qml.
+
+2012-05-29 Tor Arne Vestbø <tor.arne.vestbo@nokia.com>
+
+ [Qt] Sync up favicon-implementation with WebView url changes in r118158
+
+ https://bugs.webkit.org/show_bug.cgi?id=87133
+
+ We now base64-encode the page url in the image-provider url, so that any
+ normalization done by QUrl will not mess up the page-url. The logic of
+ creating and parsing the provider-url has been moved into the image
+ provider, to keep it in one place.
+
+ We were also releasing icons (even ones we hadn't retained), which we can't
+ do since we don't know when the icon url is no longer in use.
+
+ Reviewed-by Simon Hausmann.
+
+ * UIProcess/API/qt/qquickwebview.cpp:
+ (QQuickWebViewPrivate::initialize):
+ (QQuickWebViewPrivate::loadProgressDidChange):
+ (QQuickWebViewPrivate::_q_onUrlChanged):
+ (QQuickWebViewPrivate::_q_onIconChangedForPageURL):
+ (QQuickWebViewPrivate::updateIcon):
+ (QQuickWebView::icon):
+ * UIProcess/API/qt/qquickwebview_p.h:
+ * UIProcess/API/qt/qquickwebview_p_p.h:
+ (QQuickWebViewPrivate):
+ * UIProcess/API/qt/qwebiconimageprovider.cpp:
+ (QWebIconImageProvider::iconURLForPageURLInContext):
+ (QWebIconImageProvider::requestImage):
+ * UIProcess/API/qt/qwebiconimageprovider_p.h:
+ (WebKit):
+ * UIProcess/API/qt/tests/qmltests/WebView/tst_favIconLoad.qml:
+ * UIProcess/qt/QtWebIconDatabaseClient.cpp:
+ (WebKit::QtWebIconDatabaseClient::didChangeIconForPageURL):
+ (WebKit::QtWebIconDatabaseClient::iconForPageURL):
+ (WebKit):
+ (WebKit::QtWebIconDatabaseClient::iconImageForPageURL):
+ * UIProcess/qt/QtWebIconDatabaseClient.h:
+ (QtWebIconDatabaseClient):
+
+2012-05-29 Kenneth Rohde Christiansen <kenneth@webkit.org>
+
+ [Qt][WK2] Fix failing qmltests::FitToView::test_basic()
+ https://bugs.webkit.org/show_bug.cgi?id=87236
+
+ Reviewed by Simon Hausmann.
+
+ The fix is a combination of things. First of all some events
+ were emitted at the wrong times or when nothing had changed.
+
+ We also initialized the view saying it was suspended which is
+ not correct.
+
+ Another bug was that the touch tap, didn't result in marking
+ the view as having user interaction. This was recently fixed
+ in r118493.
+
+ * UIProcess/API/qt/qquickwebpage.cpp:
+ (QQuickWebPage::setContentsScale):
+ * UIProcess/API/qt/qquickwebview.cpp:
+ (QQuickWebViewFlickablePrivate::QQuickWebViewFlickablePrivate):
+
+ Make sure pageIsSuspended is initialized to false.
+
+ (QQuickWebViewFlickablePrivate::_q_onInformVisibleContentChange):
+
+ Early bail out if there is no change.
+
+ Inform contentScaleCommitted if the scale changed since last time.
+
+ (QQuickWebViewFlickablePrivate::didChangeContentsSize):
+
+ Make sure to commit the right signals, ie. *Changed and not *Committed.
+
+ * UIProcess/API/qt/qquickwebview_p.h:
+ * UIProcess/API/qt/qwebkittest.cpp:
+ (touchPoint):
+ (QWebKitTest::sendTouchEvent):
+ (QWebKitTest::touchTap):
+ (QWebKitTest::touchDoubleTap):
+
+ Add proper touch emulation for the testing system. Call directly
+ to our WebKit API (avoid Qt event loop) to ensure all events gets
+ delivered.
+
+ * UIProcess/API/qt/qwebkittest_p.h:
+ * UIProcess/qt/QtViewportInteractionEngine.cpp:
+ (WebKit::QtViewportInteractionEngine::setItemRectVisible):
+
+ Assert that a ViewportUpdateDeferrer is always used when calling
+ this method.
+
+ (WebKit::QtViewportInteractionEngine::animateItemRectVisible):
+
+ Remove work around now we have the proper fix in place.
+
+ (WebKit::QtViewportInteractionEngine::pagePositionRequest):
+
+ Do not send the informVisibleContentChange manually, use the
+ ViewportUpdateDeferrer instead.
+
+ (WebKit::QtViewportInteractionEngine::cancelScrollAnimation):
+
+ Add missing ViewportUpdateDeferrer.
+
+ (WebKit::QtViewportInteractionEngine::pinchGestureStarted):
+
+ No reason to emit informVisibleContentChange before pinch
+ start, as it is always done on end (due to the ViewportUpdateDeferrer).
+
+ (WebKit::QtViewportInteractionEngine::itemSizeChanged):
+
+ Add missing ViewportUpdateDeferrer.
+
+2012-05-29 Caio Marcelo de Oliveira Filho <caio.oliveira@openbossa.org>
+
+ [Qt] [WK2] Allow user to inject JS scripts when the page loads
+ https://bugs.webkit.org/show_bug.cgi?id=85827
+
+ Reviewed by Simon Hausmann.
+
+ Create a new experimental property to list URLs of JS scripts that should be
+ loaded when a page is loaded. These scripts will run in the normal JS environment
+ of the page.
+
+ The supported URL schemes are file:/// and qrc:///. The scripts are read from the
+ UI process and transfered to the Web process.
+
+ Together with the experimental messaging API this provides a way for the
+ application to manipulate the DOM (by injecting a script that does the
+ manipulation and communicating with it via postMessage). This covers some of the
+ use cases of QWebElement in our WK1 API.
+
+ * UIProcess/API/qt/qquickwebview.cpp:
+ (QQuickWebViewPrivate::didRelaunchProcess):
+ (readUserScript):
+ (QQuickWebViewPrivate::updateUserScripts):
+ (QQuickWebViewExperimental::userScripts):
+ (QQuickWebViewExperimental::setUserScripts):
+ * UIProcess/API/qt/qquickwebview_p.h:
+ * UIProcess/API/qt/qquickwebview_p_p.h:
+ (QQuickWebViewPrivate):
+ * UIProcess/API/qt/tests/qmltests/WebView.pro:
+ * UIProcess/API/qt/tests/qmltests/WebView/tst_userScripts.qml: Added.
+ * UIProcess/API/qt/tests/qmltests/common/append-document-title.js: Added.
+ * UIProcess/API/qt/tests/qmltests/common/big-user-script.js: Added.
+ * UIProcess/API/qt/tests/qmltests/common/change-document-title.js: Added.
+ * UIProcess/API/qt/tests/qmltests/resources.qrc: Added.
+ * UIProcess/WebPageProxy.h:
+ (WebPageProxy):
+ * UIProcess/qt/WebPageProxyQt.cpp:
+ (WebKit::WebPageProxy::setUserScripts):
+ (WebKit):
+ * WebProcess/WebPage/WebPage.h:
+ (WebPage):
+ * WebProcess/WebPage/WebPage.messages.in:
+ * WebProcess/WebPage/qt/WebPageQt.cpp:
+ (WebKit::WebPage::setUserScripts):
+ (WebKit):
+
+2012-05-29 Sheriff Bot <webkit.review.bot@gmail.com>
+
+ Unreviewed, rolling out r118752.
+ http://trac.webkit.org/changeset/118752
+ https://bugs.webkit.org/show_bug.cgi?id=87731
+
+ incomplete patch (Requested by cmarcelo on #webkit).
+
+ * UIProcess/API/qt/qquickwebview.cpp:
+ (QQuickWebViewPrivate::didRelaunchProcess):
+ * UIProcess/API/qt/qquickwebview_p.h:
+ * UIProcess/API/qt/qquickwebview_p_p.h:
+ (QQuickWebViewPrivate):
+ * UIProcess/API/qt/tests/qmltests/WebView.pro:
+ * UIProcess/WebPageProxy.h:
+ (WebPageProxy):
+ * UIProcess/qt/WebPageProxyQt.cpp:
+ * WebProcess/WebPage/WebPage.h:
+ (WebPage):
+ * WebProcess/WebPage/WebPage.messages.in:
+ * WebProcess/WebPage/qt/WebPageQt.cpp:
+
+2012-05-21 Caio Marcelo de Oliveira Filho <caio.oliveira@openbossa.org>
+
+ [Qt] [WK2] Allow user to inject JS scripts when the page loads
+ https://bugs.webkit.org/show_bug.cgi?id=85827
+
+ Reviewed by Simon Hausmann.
+
+ Create a new experimental property to list URLs of JS scripts that should be
+ loaded when a page is loaded. These scripts will run in the normal JS environment
+ of the page.
+
+ The supported URL schemes are file:/// and qrc:///. The scripts are read from the
+ UI process and transfered to the Web process.
+
+ Together with the experimental messaging API this provides a way for the
+ application to manipulate the DOM (by injecting a script that does the
+ manipulation and communicating with it via postMessage). This covers some of the
+ use cases of QWebElement in our WK1 API.
+
+ * UIProcess/API/qt/qquickwebview.cpp:
+ (QQuickWebViewPrivate::didRelaunchProcess):
+ (readUserScript):
+ (QQuickWebViewPrivate::updateUserScripts):
+ (QQuickWebViewExperimental::userScripts):
+ (QQuickWebViewExperimental::setUserScripts):
+ * UIProcess/API/qt/qquickwebview_p.h:
+ * UIProcess/API/qt/qquickwebview_p_p.h:
+ (QQuickWebViewPrivate):
+ * UIProcess/API/qt/tests/qmltests/WebView.pro:
+ * UIProcess/API/qt/tests/qmltests/WebView/tst_userScripts.qml: Added.
+ * UIProcess/API/qt/tests/qmltests/common/append-document-title.js: Added.
+ * UIProcess/API/qt/tests/qmltests/common/big-user-script.js: Added.
+ * UIProcess/API/qt/tests/qmltests/common/change-document-title.js: Added.
+ * UIProcess/API/qt/tests/qmltests/resources.qrc: Added.
+ * UIProcess/WebPageProxy.h:
+ (WebPageProxy):
+ * UIProcess/qt/WebPageProxyQt.cpp:
+ (WebKit::WebPageProxy::setUserScripts):
+ (WebKit):
+ * WebProcess/WebPage/WebPage.h:
+ (WebPage):
+ * WebProcess/WebPage/WebPage.messages.in:
+ * WebProcess/WebPage/qt/WebPageQt.cpp:
+ (WebKit::WebPage::setUserScripts):
+ (WebKit):
+
+2012-05-29 Carlos Garcia Campos <cgarcia@igalia.com>
+
+ [GTK] Add return value information to WebKitWebView::load-failed signal documentation
+ https://bugs.webkit.org/show_bug.cgi?id=87704
+
+ Reviewed by Martin Robinson.
+
+ * UIProcess/API/gtk/WebKitWebView.cpp:
+ (webkit_web_view_class_init):
+
+2012-05-29 Carlos Garcia Campos <cgarcia@igalia.com>
+
+ [GTK] Add WebKitWebInspector.h to the list of WebKit2 GTK public headers
+ https://bugs.webkit.org/show_bug.cgi?id=87703
+
+ Reviewed by Martin Robinson.
+
+ * GNUmakefile.list.am: Add WebKitWebInspector.h to webkit2gtk_h_api.
+
+2012-05-25 Jesus Sanchez-Palencia <jesus.palencia@openbossa.org>
+
+ WebKitTestRunner needs to support layoutTestController.setJavaScriptProfilingEnabled
+ https://bugs.webkit.org/show_bug.cgi?id=42328
+
+ Reviewed by Eric Seidel.
+
+ Removed unneeded setJavaScriptProfilingEnabled function from WTR after its
+ move to windows.internals.settings.
+
+ * WebProcess/InjectedBundle/API/c/WKBundleInspector.cpp:
+ * WebProcess/InjectedBundle/API/c/WKBundleInspector.h:
+ * WebProcess/WebPage/WebInspector.cpp:
+ (WebKit::WebInspector::setJavaScriptProfilingEnabled):
+ * win/WebKit2.def:
+
+2012-05-28 No'am Rosenthal <noam.rosenthal@nokia.com>
+
+ Remove unused argument coders for animation
+ https://bugs.webkit.org/show_bug.cgi?id=87435
+
+ Reviewed by Sam Weinig.
+
+ Left the used argument coders only, behind a proper USE(UI_SIDE_COMPOSITING) flag.
+
+ * Shared/WebCoreArgumentCoders.cpp:
+ (CoreIPC):
+ * Shared/WebCoreArgumentCoders.h:
+
+2012-05-28 Gyuyoung Kim <gyuyoung.kim@samsung.com>
+
+ Move allowRoundingHacks to Internals interface
+ https://bugs.webkit.org/show_bug.cgi?id=87328
+
+ Reviewed by Hajime Morita.
+
+ * win/WebKit2.def: Add setAllowsRoundingHacks() to symbol filter.
+
+2012-05-26 Geoffrey Garen <ggaren@apple.com>
+
+ WebKit should be lazy-finalization-safe (esp. the DOM) v2
+ https://bugs.webkit.org/show_bug.cgi?id=87581
+
+ Reviewed by Oliver Hunt.
+
+ * WebProcess/Plugins/Netscape/JSNPObject.cpp:
+ (WebKit::JSNPObject::destroy):
+ (WebKit::JSNPObject::leakNPObject):
+ * WebProcess/Plugins/Netscape/NPRuntimeObjectMap.cpp:
+ (WebKit::NPRuntimeObjectMap::finalize): Use static_cast instead of jsCast because
+ jsCast does Structure-based validation, and our Structure is not guaranteed
+ to be alive when we get finalized.
+
+2012-05-25 Maciej Stachowiak <mjs@apple.com>
+
+ REGRESSION (r116720): Subframe PDF scrolls extremely slowly
+ https://bugs.webkit.org/show_bug.cgi?id=87557
+ <rdar://problem/11499408>
+
+ Reviewed by Anders Carlsson.
+
+ It's not possible to make an automated test for this.
+
+ * WebProcess/Plugins/PDF/BuiltInPDFView.mm:
+ (WebKit::BuiltInPDFView::wantsWheelEvents): Return true instead of false and delete
+ misleading comment. While the built-in PDF view would get added to the set of scrollable
+ areas anyway, there are some code paths that check wantsWheelEvents explicitly, so it seems
+ necessary to reutrn true.
+
+2012-05-25 Brady Eidson <beidson@apple.com>
+
+ https://bugs.webkit.org/show_bug.cgi?id=87418
+ WebBackForwardList should separate "has no current index" from the integer value of the current index
+
+ This patch also renames "m_current" to "m_currentIndex" for clarity and symmetry with
+ other variable names that reference "index",
+
+ It also removes the m_closed and m_enabled flags which were never actually used.
+
+ Reviewed by Darin Adler.
+
+ * UIProcess/WebBackForwardList.cpp:
+ (WebKit::WebBackForwardList::WebBackForwardList):
+ (WebKit::WebBackForwardList::addItem):
+ (WebKit::WebBackForwardList::goToItem):
+ (WebKit::WebBackForwardList::currentItem):
+ (WebKit::WebBackForwardList::backItem):
+ (WebKit::WebBackForwardList::forwardItem):
+ (WebKit::WebBackForwardList::itemAtIndex):
+ (WebKit::WebBackForwardList::backListCount):
+ (WebKit::WebBackForwardList::forwardListCount):
+ (WebKit::WebBackForwardList::backListAsImmutableArrayWithLimit):
+ (WebKit::WebBackForwardList::forwardListAsImmutableArrayWithLimit):
+ (WebKit::WebBackForwardList::clear):
+
+ * UIProcess/WebBackForwardList.h:
+ (WebKit::WebBackForwardList::currentIndex):
+ (WebBackForwardList):
+
+ * UIProcess/cf/WebBackForwardListCF.cpp:
+ (WebKit::WebBackForwardList::createCFDictionaryRepresentation):
+ (WebKit::WebBackForwardList::restoreFromCFDictionaryRepresentation):
+
+2012-05-25 Beth Dakin <bdakin@apple.com>
+
+ https://bugs.webkit.org/show_bug.cgi?id=87529
+ Background tabs hosted in window server flash before painting
+ when they first become active
+
+ Reviewed by Anders Carlsson.
+
+ Initialize to LayerHostingModeInWindowServer if that is
+ available to avoid having to re-make the context and re-set
+ everything later on.
+ * UIProcess/WebPageProxy.cpp:
+ (WebKit::WebPageProxy::WebPageProxy):
+
+2012-05-25 Mario Sanchez Prada <msanchez@igalia.com>
+
+ [GTK][WK2] Implement API for generic permission requests
+ https://bugs.webkit.org/show_bug.cgi?id=84018
+
+ Reviewed by Martin Robinson.
+
+ Added new 'permission-request' signal to WebKitWebView, to be
+ fired when WebKit needs confirmation from the user on whether to
+ allow or deny certain operations, such as sharing the user's
+ location with web site through the Geolocation API.
+
+ New WebKitPermissionRequest interface, providing allow() and
+ deny() operations, to be called over the objects implementing it
+ when emitted along with the new 'permission-request' signal.
+
+ * UIProcess/API/gtk/WebKitPermissionRequest.cpp: Added.
+ (webkit_permission_request_default_init):
+ (webkit_permission_request_allow):
+ (webkit_permission_request_deny):
+ * UIProcess/API/gtk/WebKitPermissionRequest.h: Added.
+ (_WebKitPermissionRequestIface):
+ * GNUmakefile.am: Added new files.
+
+ Added the new signal to WebKitWebView, providing a default handler
+ that will just deny the request when the signal is not handled.
+
+ * UIProcess/API/gtk/WebKitWebView.cpp:
+ (webkitWebViewDecidePermissionRequest): Default handler.
+ (webkit_web_view_class_init): Declare the new signal and connect
+ to the default handler.
+ (webkitWebViewMakePermissionRequest): Helper function to create a
+ make a new permission request and emit the new signal signal.
+ * UIProcess/API/gtk/WebKitWebView.h:
+ (_WebKitWebViewClass):
+ * UIProcess/API/gtk/WebKitWebViewPrivate.h: Declare the creational
+ function webkitWebViewMakePermissionRequest for internal use only.
+
+ Updated documentation files.
+
+ * UIProcess/API/gtk/docs/webkit2gtk-docs.sgml:
+ * UIProcess/API/gtk/docs/webkit2gtk-sections.txt:
+
+2012-05-25 Grzegorz Czajkowski <g.czajkowski@samsung.com>
+
+ [WK2] Fix client interface size for WKPageContextMenuClient.
+ https://bugs.webkit.org/show_bug.cgi?id=87472
+
+ Reviewed by Carlos Garcia Campos.
+
+ Add correct offset for version 1 and 2 of WKPageContextMenuClient.
+ Revision 109750 introduces a new API and increases size of interfaceSizesByVersion
+ but the table is not properly initialized for newly introduced version 2.
+
+ * Shared/APIClientTraits.cpp:
+ (WebKit):
+
+2012-05-24 Andreas Kling <kling@webkit.org>
+
+ Mac bots crashing under PluginInfo destructor.
+ <http://webkit.org/b/87414>
+ <rdar://problem/11527172>
+
+ Reviewed by Darin Adler.
+
+ We can't safely pass WTF::String to another thread without a deref() race,
+ so pass the PluginInfo vector by pointer instead of by value.
+
+ * UIProcess/WebContext.cpp:
+ (WebKit::WebContext::sendDidGetPlugins):
+ (WebKit::WebContext::handleGetPlugins):
+ * UIProcess/WebContext.h:
+
+2012-05-25 Zalan Bujtas <zbujtas@gmail.com>
+
+ [Qt][WK2] Fix failing qmltests::FitToView::test_basic()
+ https://bugs.webkit.org/show_bug.cgi?id=87236
+
+ Reviewed by Kenneth Rohde Christiansen.
+
+ Rename contentViewportChanged to informVisibleContentChange() to
+ reflect its functionality better. Centralize m_hadUserInteraction flag
+ setting and add assertions on it to ensure that designated
+ functions are called only on user interaction.
+
+ * UIProcess/API/qt/qquickwebview.cpp:
+ (QQuickWebViewFlickablePrivate::onComponentComplete):
+ (QQuickWebViewFlickablePrivate::updateViewportSize):
+ (QQuickWebViewFlickablePrivate::_q_onInformVisibleContentChange):
+ (QQuickWebViewFlickablePrivate::_q_resume):
+ * UIProcess/API/qt/qquickwebview_p.h:
+ * UIProcess/API/qt/qquickwebview_p_p.h:
+ (QQuickWebViewPrivate::_q_onInformVisibleContentChange):
+ (QQuickWebViewFlickablePrivate):
+ * UIProcess/qt/QtViewportInteractionEngine.cpp:
+ (WebKit::ViewportUpdateDeferrer::~ViewportUpdateDeferrer):
+ (WebKit::QtViewportInteractionEngine::flickableMovingPositionUpdate):
+ (WebKit::QtViewportInteractionEngine::pagePositionRequest):
+ (WebKit::QtViewportInteractionEngine::touchBegin):
+ (WebKit::QtViewportInteractionEngine::focusEditableArea):
+ (WebKit::QtViewportInteractionEngine::zoomToAreaGestureEnded):
+ (WebKit::QtViewportInteractionEngine::panGestureStarted):
+ (WebKit::QtViewportInteractionEngine::pinchGestureStarted):
+ * UIProcess/qt/QtViewportInteractionEngine.h:
+ (QtViewportInteractionEngine):
+
+2012-05-24 Tim Horton <timothy_horton@apple.com>
+
+ Add feature defines for web-facing parts of CSS Regions and Exclusions
+ https://bugs.webkit.org/show_bug.cgi?id=87442
+ <rdar://problem/10887709>
+
+ Reviewed by Dan Bernstein.
+
+ * Configurations/FeatureDefines.xcconfig:
+
+2012-05-24 Geoffrey Garen <ggaren@apple.com>
+
+ WebKit should be lazy-finalization-safe (esp. the DOM)
+ https://bugs.webkit.org/show_bug.cgi?id=87456
+
+ Reviewed by Filip Pizlo.
+
+ * WebProcess/Plugins/Netscape/NPRuntimeObjectMap.cpp:
+ (WebKit::NPRuntimeObjectMap::getOrCreateJSObject): Use the new idioms.
+
+ (WebKit::NPRuntimeObjectMap::invalidate): Check for null while iterating,
+ since that's possible now.
+
+ (WebKit::NPRuntimeObjectMap::finalize): Use the new idioms.
+
+2012-05-24 Brady Eidson <beidson@apple.com>
+
+ Fix the build after http://trac.webkit.org/changeset/118441
+ Also fix a glaring bug with the new code, will run it by original reviewer retroactively.
+
+ * UIProcess/cf/WebBackForwardListCF.cpp:
+ (WebKit::WebBackForwardList::restoreFromCFDictionaryRepresentation): Fix up the types of the ? operands
+ to appease super-strict compilers. Don't allow negative indexes (besides the -1 "No index" index).
+
+2012-05-24 Brady Eidson <beidson@apple.com>
+
+ <rdar://problem/10090764> and https://bugs.webkit.org/show_bug.cgi?id=87417
+ (Unrepro) Crashes saving session state in WebBackForwardList
+
+ Reviewed by Darin Adler.
+
+ * UIProcess/WebBackForwardList.cpp:
+ (WebKit::WebBackForwardList::addItem): Null check the proposed item and also m_page, to make
+ sure the page hasn't been closed making this list inactive. Be more aggressive about
+ clearing the current entries out if there is no current item index.
+ (WebKit::WebBackForwardList::itemAtIndex): Early null return if there is no current index.
+ (WebKit::WebBackForwardList::clear): Don't put the current item back in the array if there was
+ no current item.
+
+ * UIProcess/cf/WebBackForwardListCF.cpp:
+ (WebKit::WebBackForwardList::createCFDictionaryRepresentation): Don't create a meaningless WebURL.
+ Don't successfully return a dictionary if any of the entries were null. Be more aggressive about
+ validating the current index we plan to return in the dictionary.
+ (WebKit::WebBackForwardList::restoreFromCFDictionaryRepresentation): More aggressively validate the
+ current index read from disk. Replace a meaningless sanity check with our typical ASSERT.
+
+2012-05-24 Anders Carlsson <andersca@apple.com>
+
+ Make sure that the layer hosting mode is up-to-date when reconnecting to a new web process
+ https://bugs.webkit.org/show_bug.cgi?id=87421
+ <rdar://problem/11510337>
+
+ Reviewed by Beth Dakin.
+
+ Send over the layer hosting mode as part of the web page creation parameters and create the right
+ layer hosting context based on the mode.
+
+ * Shared/WebPageCreationParameters.cpp:
+ (WebKit::WebPageCreationParameters::encode):
+ (WebKit::WebPageCreationParameters::decode):
+ * Shared/WebPageCreationParameters.h:
+ (WebPageCreationParameters):
+ * UIProcess/WebPageProxy.cpp:
+ (WebKit::WebPageProxy::creationParameters):
+ * WebProcess/WebPage/WebPage.cpp:
+ (WebKit::WebPage::WebPage):
+ * WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.h:
+ (TiledCoreAnimationDrawingArea):
+ * WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.mm:
+ (WebKit::TiledCoreAnimationDrawingArea::TiledCoreAnimationDrawingArea):
+ (WebKit::TiledCoreAnimationDrawingArea::setLayerHostingMode):
+ (WebKit):
+ (WebKit::TiledCoreAnimationDrawingArea::updateLayerHostingContext):
+
+2012-05-24 John Mellor <johnme@chromium.org>
+
+ Font Boosting: Add compile flag and runtime setting
+ https://bugs.webkit.org/show_bug.cgi?id=87394
+
+ Reviewed by Adam Barth.
+
+ Add ENABLE_FONT_BOOSTING.
+
+ * Configurations/FeatureDefines.xcconfig:
+
+2012-05-24 Yael Aharon <yael.aharon@nokia.com>
+
+ [Qt] Stop using the flag FIXED_POSITION_CREATES_STACKING_CONTEXT
+ https://bugs.webkit.org/show_bug.cgi?id=87392
+
+ Reviewed by Antonio Gomes.
+
+ Turn on the setting setFixedPositionCreatesStackingContext.
+
+ * WebProcess/WebPage/WebPage.cpp:
+ (WebKit::WebPage::setResizesToContentsUsingLayoutSize):
+
+2012-05-24 Alexey Proskuryakov <ap@apple.com>
+
+ [WK2] Let the client give local files universal access on a case by case basis
+ https://bugs.webkit.org/show_bug.cgi?id=87174
+ <rdar://problem/11024330>
+
+ Reviewed by Maciej Stachowiak.
+
+ * WebProcess/InjectedBundle/API/c/WKBundlePage.h:
+ * WebProcess/InjectedBundle/InjectedBundlePageLoaderClient.cpp:
+ (WebKit::InjectedBundlePageLoaderClient::shouldForceUniversalAccessFromLocalURL):
+ * WebProcess/InjectedBundle/InjectedBundlePageLoaderClient.h:
+ * WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
+ (WebKit::WebFrameLoaderClient::shouldForceUniversalAccessFromLocalURL):
+ * WebProcess/WebCoreSupport/WebFrameLoaderClient.h:
+ * WebProcess/qt/QtBuiltinBundlePage.cpp:
+ (WebKit::QtBuiltinBundlePage::QtBuiltinBundlePage):
+ Added glue code to call bundle client.
+
+2012-05-24 Alexander Færøy <alexander.faeroy@nokia.com>
+
+ Reorder arguments to compare() in the QML WebView tests
+ https://bugs.webkit.org/show_bug.cgi?id=87374
+
+ Reviewed by Simon Hausmann.
+
+ Based on patch by Kenneth Rohde Christiansen.
+
+ The reordering is necessary to get correct information printed when
+ the tests fails. Without this, the test suite will display the bogus
+ value and not the expected value.
+
+ This patch also removes the delayed windowShown since this is not
+ needed anymore, due to us using the touch events instead of mouse
+ events.
+
+ * UIProcess/API/qt/tests/qmltests/WebView/tst_doubleTapToZoom.qml:
+
+2012-05-24 Allan Sandfeld Jensen <allan.jensen@nokia.com>
+
+ [Qt] Tiles not painted after wheel or keyboard scroll.
+ https://bugs.webkit.org/show_bug.cgi?id=87358
+
+ Reviewed by Kenneth Rohde Christiansen.
+
+ After performing a scroll requested from the WebProcess we also need
+ to inform the painting layer of the viewport change.
+
+ * UIProcess/qt/QtViewportInteractionEngine.cpp:
+ (WebKit::QtViewportInteractionEngine::pagePositionRequest):
+
+2012-05-24 Andras Becsi <andras.becsi@nokia.com>
+
+ [Qt][WK2] Fix bounce-back animation on pinch->pan
+ https://bugs.webkit.org/show_bug.cgi?id=87266
+
+ Reviewed by Kenneth Rohde Christiansen.
+
+ If ending an out-of-bounds pinch gesture with releasing one finger
+ (transition to a pan gesture) the bounce back animation blinks in
+ the end position immediately first, then animates the content back
+ into bounds.
+
+ QtViewportInteractionEngine::cancelScrollAnimation should return
+ early if there is no active kinetic animation.
+
+ * UIProcess/qt/QtViewportInteractionEngine.cpp:
+ (WebKit::QtViewportInteractionEngine::cancelScrollAnimation):
+
+2012-05-23 Ojan Vafai <ojan@chromium.org>
+
+ add back the ability to disable flexbox
+ https://bugs.webkit.org/show_bug.cgi?id=87147
+
+ Reviewed by Tony Chang.
+
+ * Configurations/FeatureDefines.xcconfig:
+
+2012-05-23 Jer Noble <jer.noble@apple.com>
+
+ REGRESSION (117623) - Entering/exiting fullscreen HTML5 videos, there is a quick animated fade
+ https://bugs.webkit.org/show_bug.cgi?id=87294
+
+ Reviewed by Darin Adler.
+
+ When setting the sublayers array on the layer hosting view, wrap the call in a CATransaction which disables
+ animations.
+
+ * UIProcess/API/mac/WKView.mm:
+ (-[WKView _updateAcceleratedCompositingMode:WebKit::]):
+
+2012-05-23 Dinu Jacob <dinu.jacob@nokia.com>
+
+ [Qt][Wk2] Assertion failure when selecting an option in select list with size attribute greater than one
+ https://bugs.webkit.org/show_bug.cgi?id=86974
+
+ Reviewed by Simon Hausmann.
+
+ Select list with size attribute greater than one will not initially have any
+ item in selected state (if no option has 'selected' tag), resulting in
+ m_selectedModelIndex in WebPopupMenuProxyQt to be invalid. Hence, need to check
+ whether the old index is invalid before accessing the item at that index.
+
+ * UIProcess/API/qt/tests/qmltests/DesktopBehavior/tst_itemSelector.qml: Added new test that
+ tests selection in a select list with size attribute value of 2.
+ * UIProcess/API/qt/tests/qmltests/common/selectwithsize.html: Added.
+ * UIProcess/qt/WebPopupMenuProxyQt.cpp:
+ (WebKit::PopupMenuItemModel::select): Check whether old index is valid before accessing
+ the item at that index.
+
+2012-05-23 Jer Noble <jer.noble@apple.com>
+
+ REGRESSION (r116188): After exiting full screen, Safari window is frozen, then inline video speeds through frames as it catches up with audio
+ https://bugs.webkit.org/show_bug.cgi?id=87206
+
+ Reviewed by Darin Adler.
+
+ When re-enabling the Safari window's autodisplay flag, also force the window to re-display.
+ Otherwise, the window will not repaint itself until it is forced to by user interaction.
+
+ * UIProcess/mac/WKFullScreenWindowController.mm:
+ (-[WKFullScreenWindowController completeFinishExitFullScreenAnimationAfterRepaint]):
+
+2012-05-23 Martin Robinson <mrobinson@igalia.com>
+
+ [GTK] [WebKit2] Add an API to enable and disable composited layer indicators
+ https://bugs.webkit.org/show_bug.cgi?id=87053
+
+ Reviewed by Carlos Garcia Campos.
+
+ Add a WebKitSetting that allows the client to enable and disable debug
+ borders and repaint counters for accelerated content.
+
+ * UIProcess/API/gtk/WebKitSettings.cpp:
+ (webKitSettingsSetProperty): Added.
+ (webKitSettingsGetProperty): Added.
+ (webkit_settings_class_init): Add the new property.
+ (webkit_settings_set_draw_compositing_indicators): Added.
+ (webkit_settings_get_draw_compositing_indicators): Added.
+ * UIProcess/API/gtk/WebKitSettings.h:
+ * UIProcess/API/gtk/docs/webkit2gtk-sections.txt: Add the new API points to the
+ documentation.
+ * UIProcess/API/gtk/test/TestWebKitSettings.h: Add a new unit test.
+
+2012-05-23 Michael Brüning <michael.bruning@nokia.com>
+
+ [Qt][WK2] Small refactoring WebPage::confirmComposition.
+ https://bugs.webkit.org/show_bug.cgi?id=87243
+
+ Reviewed by Kenneth Rohde Christiansen.
+
+ Change nested if into an early return to reduce complexity.
+
+ * WebProcess/WebPage/qt/WebPageQt.cpp:
+ (WebKit::WebPage::confirmComposition):
+
+2012-05-22 Alexander Færøy <alexander.faeroy@nokia.com>
+
+ [Qt] Missing tests for the evaluateJavaScript API
+ https://bugs.webkit.org/show_bug.cgi?id=86351
+
+ Reviewed by Kenneth Rohde Christiansen.
+
+ * UIProcess/API/qt/tests/qmltests/WebView/tst_evaluateJavaScript.qml:
+ * UIProcess/API/qt/tests/qmltests/common/evaluatejavascript.html: Added.
+
+2012-05-23 Allan Sandfeld Jensen <allan.jensen@nokia.com>
+
+ [Qt] FloatSize Qt Support
+ https://bugs.webkit.org/show_bug.cgi?id=87237
+
+ Reviewed by Andreas Kling.
+
+ Basic cleanup possible to new Qt support in FloatSize.
+
+ * UIProcess/API/qt/qquickwebpage.cpp:
+ (QQuickWebPagePrivate::updateSize):
+ * UIProcess/API/qt/qwebkittest.cpp:
+ (QWebKitTest::layoutSize):
+
+2012-04-18 Tor Arne Vestbø <tor.arne.vestbo@nokia.com>
+
+ [Qt] Make the web view's url property follow the active url
+
+ https://bugs.webkit.org/show_bug.cgi?id=77554
+
+ The url property of the webview now reflects the 'active' url of the
+ page, which maps to either the currently loading url, in the case of
+ an ongoing load, or the result of a load, even when the load failed.
+
+ In practice this means that setting the url though QML, or navigating
+ to a new url in the page by e.g clicking, will both instantly change
+ the url-property of the webview to the target url. This differs from
+ earlier behavior, where we would update the url when the load
+ committed.
+
+ An optional argument is added to loadHtml(), to allow setting
+ the unreachable url when providing replacement content for failed
+ loads.
+
+ Finally, the location bar in the minibrowser is updated to behave
+ a bit more like normal browsers in terms of when the url will change
+ and how active focus is handled.
+
+ Reviewed by Simon Hausmann.
+
+ * UIProcess/API/qt/qquickwebview.cpp:
+ (QQuickWebViewPrivate::onComponentComplete):
+ (QQuickWebView::reload):
+ (QQuickWebView::url):
+ (QQuickWebView::setUrl):
+ (QQuickWebView::loadHtml):
+ * UIProcess/API/qt/qquickwebview_p.h:
+ * UIProcess/API/qt/tests/qmltests/DesktopBehavior.pro:
+ * UIProcess/API/qt/tests/qmltests/WebView.pro:
+ * UIProcess/API/qt/tests/qmltests/WebView/tst_loadUrl.qml:
+ * UIProcess/API/qt/tests/qmltests/common/link.html: Added.
+ * UIProcess/API/qt/tests/qmltests/common/redirect.html: Added.
+ * UIProcess/qt/QtWebPageLoadClient.cpp:
+ (QtWebPageLoadClient::QtWebPageLoadClient):
+ (QtWebPageLoadClient::didStartProvisionalLoadForFrame):
+ (QtWebPageLoadClient::didReceiveServerRedirectForProvisionalLoadForFrame):
+ (QtWebPageLoadClient::didCommitLoadForFrame):
+ (QtWebPageLoadClient::dispatchLoadFailed):
+ (QtWebPageLoadClient::didFailProvisionalLoadWithErrorForFrame):
+ (QtWebPageLoadClient::didFailLoadWithErrorForFrame):
+ * UIProcess/qt/QtWebPageLoadClient.h:
+ (QtWebPageLoadClient):
+
+2012-05-23 Simon Hausmann <simon.hausmann@nokia.com>
+
+ [Qt] Race condition in LayerTreeHost/Proxy can cause blank rendering
+ https://bugs.webkit.org/show_bug.cgi?id=87239
+
+ Reviewed by Kenneth Rohde Christiansen.
+
+ On the UI process side the WebLayerTreeRenderer/LayerTreeHostProxy pair is
+ created with m_active = false, which makes it ignore any incoming layer updates.
+ It remains inactive until the ContentsSGNode is created and setActive(true) is called.
+
+ On the web process side the LayerTreeHost is created with m_waitingForUIProcess = false.
+
+ Those two variables must be in sync, otherwise a race condition can
+ happen: The web process sends updates to the ui process before the
+ ContentsSGNode is created. This can happen for example when re-using an
+ existing WebProcess to create a QQuickWebView and load a page very fast
+ from the disk cache. The update arrives on the ui process side, but it
+ is discarded because setActive(true) hasn't been called yet. As a
+ result any updates that would for example create and populate the tiles
+ required for rendering are ignored.
+
+ This patch ensures that the variables are initialized with the same values and that calling
+ setActive(true) will trigger the rendering of the next frame.
+
+ * UIProcess/WebLayerTreeRenderer.cpp:
+ (WebKit::WebLayerTreeRenderer::setActive):
+ * WebProcess/WebPage/qt/LayerTreeHostQt.cpp:
+ (WebKit::LayerTreeHostQt::LayerTreeHostQt):
+
+2012-05-23 Tor Arne Vestbø <tor.arne.vestbo@nokia.com>
+
+ [Qt] Make QtWebError return the failing URL as a QString instead of QUrl
+
+ We don't want to use QUrl inside QtWebKit (only in the API layer), due
+ to how QUrl normalizes the url.
+
+ Reviewed by Simon Hausmann.
+
+ * UIProcess/qt/QtWebError.cpp:
+ (WebKit::QtWebError::url):
+ * UIProcess/qt/QtWebError.h:
+
+2012-05-22 Carlos Garcia Campos <cgarcia@igalia.com>
+
+ [GTK] Add inspector API to WebKit2 GTK+
+ https://bugs.webkit.org/show_bug.cgi?id=87113
+
+ Reviewed by Martin Robinson.
+
+ * GNUmakefile.list.am: Add new files to compilation.
+ * UIProcess/API/C/gtk/WKInspectorClientGtk.cpp: Added.
+ (WKInspectorSetInspectorClientGtk):
+ * UIProcess/API/C/gtk/WKInspectorClientGtk.h: Added.
+ * UIProcess/API/gtk/WebKitPrivate.h:
+ * UIProcess/API/gtk/WebKitWebInspector.cpp: Added.
+ (webkitWebInspectorFinalize):
+ (webkit_web_inspector_init):
+ (webkit_web_inspector_class_init):
+ (openWindow): Emit WebKitWebInspector::open-window singal.
+ (didClose): Emit WebKitWebInspector::closed signal.
+ (bringToFront): Emit WebKitWebInspector::bring-to-front singal.
+ (inspectedURLChanged): Set the inspected URI and emit
+ GObject::notify signal if it changed.
+ (attach): Emit WebKitWebInspector::attach signal.
+ (detach): Emit WebKitWebInspector::detach signal.
+ (didChangeAttachedHeight): Set the attached height and emit
+ GObject::notify signal if it changed.
+ (webkitWebInspectorCreate): Ceate a new WebKitWebInspector object
+ for the given WKInspector. Also initialize and set the inspector
+ client.
+ (webkit_web_inspector_get_web_view): Return the web view used to
+ render the inspector.
+ (webkit_web_inspector_get_inspected_uri): Return the URI that is
+ being inspected.
+ (webkit_web_inspector_is_attached): Whether the inspector view is
+ currently attached.
+ (webkit_web_inspector_attach): Request to attach the inspector.
+ (webkit_web_inspector_detach): Request to detach the inspector.
+ (webkit_web_inspector_show): Request to show the inspector.
+ (webkit_web_inspector_close): Request to close the inspector.
+ (webkit_web_inspector_get_attached_height): Return the height that
+ the inspector view should have when attached.
+ * UIProcess/API/gtk/WebKitWebInspector.h: Added.
+ * UIProcess/API/gtk/WebKitWebInspectorPrivate.h: Added.
+ * UIProcess/API/gtk/WebKitWebView.cpp:
+ (webkit_web_view_get_inspector): Return the WebKitWebInspector
+ associated to the web view.
+ * UIProcess/API/gtk/WebKitWebView.h:
+ * UIProcess/API/gtk/docs/webkit2gtk-docs.sgml: Add new section for
+ WebKitWebInspector.
+ * UIProcess/API/gtk/docs/webkit2gtk-sections.txt: Ad new symbols.
+ * UIProcess/API/gtk/docs/webkit2gtk.types: Add
+ webkit_web_inspector_get_type.
+ * UIProcess/API/gtk/tests/GNUmakefile.am: Add new test for the
+ inspector API.
+ * UIProcess/API/gtk/tests/TestInspector.cpp: Added.
+ (testInspectorDefault):
+ (testInspectorCustom):
+ (testInspectorWindowDestroyed):
+ (beforeAll):
+ (afterAll):
+ * UIProcess/API/gtk/tests/WebViewTest.cpp:
+ (WebViewTest::showInWindowAndWaitUntilMapped): Add optional
+ parameter to create a toplevel or popup window.
+ (WebViewTest::resizeView): Helper function to set the widget
+ allocation to a given size.
+ * UIProcess/API/gtk/tests/WebViewTest.h:
+ * UIProcess/API/gtk/webkit2.h: Include WebKitWebInspector.h
+ * UIProcess/WebInspectorProxy.h:
+ (WebKit::WebInspectorProxy::inspectorView): Return the view used
+ to render the inspector.
+ * UIProcess/gtk/WebInspectorClientGtk.cpp: Added.
+ (WebKit::WebInspectorClientGtk::openWindow):
+ (WebKit::WebInspectorClientGtk::didClose):
+ (WebKit::WebInspectorClientGtk::bringToFront):
+ (WebKit::WebInspectorClientGtk::inspectedURLChanged):
+ (WebKit::WebInspectorClientGtk::attach):
+ (WebKit::WebInspectorClientGtk::detach):
+ (WebKit::WebInspectorClientGtk::didChangeAttachedHeight):
+ * UIProcess/gtk/WebInspectorClientGtk.h: Added.
+ * UIProcess/gtk/WebInspectorProxyGtk.cpp:
+ (WebKit::inspectorViewDestroyed): Close the inspector page when
+ the inspector view is destroyed, instead of when the inspector
+ window is deleted, because the inspector view can now be inside a
+ window created by the user.
+ (WebKit::WebInspectorProxy::initializeInspectorClientGtk):
+ Initialze the inspector client.
+ (WebKit::WebInspectorProxy::platformCreateInspectorPage): Add a
+ weak pointer to the inspector view to make sure it's NULL when
+ destroyed.
+ (WebKit::WebInspectorProxy::createInspectorWindow): Call
+ openWindow on the inspector client, and return early if the
+ callback was handled.
+ (WebKit::WebInspectorProxy::platformOpen): Connect to destroy
+ signal of the inspector view to close the page when the view is
+ destroyed.
+ (WebKit::WebInspectorProxy::platformDidClose): Call didClose on
+ the inspector client.
+ (WebKit::WebInspectorProxy::platformBringToFront): Call
+ bringToFront on the inspector client, and return early if the
+ callback was handled.
+ (WebKit::WebInspectorProxy::platformInspectedURLChanged): Call
+ inspectedURLChanged on the inspector client.
+ (WebKit::WebInspectorProxy::platformAttach): Call attach on the
+ inspector client and return if the callback was handled.
+ (WebKit::WebInspectorProxy::platformDetach): Call detach on the
+ inspector client and return if the callback was handled.
+ (WebKit::WebInspectorProxy::platformSetAttachedWindowHeight): Call
+ didChangeAttachedHeight on the inspector client.
+
+2012-05-22 Anders Carlsson <andersca@apple.com>
+
+ Functions dispatched by dispatchAfterEnsuringUpdatedScrollPosition can be called after drawing area has been destroyed
+ https://bugs.webkit.org/show_bug.cgi?id=87173
+ <rdar://problem/11474087>
+
+ Reviewed by Beth Dakin.
+
+ Don't try to call forceRepaint if the drawing area has already been destroyed.
+
+ * WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.mm:
+ (WebKit::TiledCoreAnimationDrawingArea::forceRepaintAsync):
+
+2012-05-22 Anders Carlsson <andersca@apple.com>
+
+ Crash when a plug-in view outlives its containing WebPage
+ https://bugs.webkit.org/show_bug.cgi?id=87163
+ <rdar://problem/10849258>
+
+ Reviewed by Dan Bernstein.
+
+ In rare cases, when a plug-in is kept alive for some reason it can outlive its WebPage. When that happens,
+ the PluginView destructor will try to access the (deleted) web page and we'll crash.
+
+ Fix this by making the WebPage destructor iterate over all the registered plug-ins and null out the m_webPage pointer.
+ Don't try to access the WebPage object if it's null.
+
+ Also, remove PLATFORM(MAC) ifdefs around the HashSet of known plug-in views as well as the member functions that access the set;
+ we want this to be cross platform now.
+
+ * WebProcess/Plugins/PluginView.cpp:
+ (WebKit::PluginView::PluginView):
+ (WebKit::PluginView::~PluginView):
+ (WebKit::PluginView::webPageDestroyed):
+ (WebKit):
+ * WebProcess/Plugins/PluginView.h:
+ (PluginView):
+ * WebProcess/WebPage/WebPage.cpp:
+ (WebKit::WebPage::~WebPage):
+ (WebKit::WebPage::scalePage):
+ (WebKit):
+ * WebProcess/WebPage/WebPage.h:
+ (WebPage):
+
+== Rolled over to ChangeLog-2012-05-22 ==
diff --git a/Source/WebKit2/Configurations/FeatureDefines.xcconfig b/Source/WebKit2/Configurations/FeatureDefines.xcconfig
index 835e2e40d..3f40c7149 100644
--- a/Source/WebKit2/Configurations/FeatureDefines.xcconfig
+++ b/Source/WebKit2/Configurations/FeatureDefines.xcconfig
@@ -38,7 +38,7 @@ ENABLE_BLOB = ENABLE_BLOB;
ENABLE_CHANNEL_MESSAGING = ENABLE_CHANNEL_MESSAGING;
ENABLE_CSP_NEXT = ;
ENABLE_CSS_BOX_DECORATION_BREAK = ENABLE_CSS_BOX_DECORATION_BREAK;
-ENABLE_CSS_COMPOSITING = ;
+ENABLE_CSS_COMPOSITING = ENABLE_CSS_COMPOSITING;
ENABLE_CSS_EXCLUSIONS = ENABLE_CSS_EXCLUSIONS;
ENABLE_CSS_FILTERS = ENABLE_CSS_FILTERS;
ENABLE_CSS_HIERARCHIES = ;
@@ -64,6 +64,8 @@ ENABLE_FILTERS_macosx = ENABLE_FILTERS;
ENABLE_FULLSCREEN_API = ENABLE_FULLSCREEN_API;
ENABLE_GAMEPAD = ;
ENABLE_GEOLOCATION = ENABLE_GEOLOCATION;
+ENABLE_HIDDEN_PAGE_DOM_TIMER_THROTTLING = $(ENABLE_HIDDEN_PAGE_DOM_TIMER_THROTTLING_$(REAL_PLATFORM_NAME));
+ENABLE_HIDDEN_PAGE_DOM_TIMER_THROTTLING_macosx = ENABLE_HIDDEN_PAGE_DOM_TIMER_THROTTLING;
ENABLE_HIGH_DPI_CANVAS = ENABLE_HIGH_DPI_CANVAS;
ENABLE_ICONDATABASE = $(ENABLE_ICONDATABASE_$(REAL_PLATFORM_NAME));
ENABLE_ICONDATABASE_macosx = ENABLE_ICONDATABASE;
@@ -114,6 +116,11 @@ ENABLE_NOTIFICATIONS_macosx_1070 = ;
ENABLE_NOTIFICATIONS_macosx_1080 = ENABLE_NOTIFICATIONS;
ENABLE_NOTIFICATIONS_macosx_1090 = ENABLE_NOTIFICATIONS;
ENABLE_PAGE_VISIBILITY_API = ;
+ENABLE_PDFKIT_PLUGIN = $(ENABLE_PDFKIT_PLUGIN_$(REAL_PLATFORM_NAME));
+ENABLE_PDFKIT_PLUGIN_macosx = $(ENABLE_PDFKIT_PLUGIN_macosx_$(TARGET_MAC_OS_X_VERSION_MAJOR));
+ENABLE_PDFKIT_PLUGIN_macosx_1070 = ;
+ENABLE_PDFKIT_PLUGIN_macosx_1080 = ;
+ENABLE_PDFKIT_PLUGIN_macosx_1090 = ENABLE_PDFKIT_PLUGIN;
ENABLE_PROGRESS_ELEMENT = ENABLE_PROGRESS_ELEMENT;
ENABLE_QUOTA = ;
ENABLE_REQUEST_ANIMATION_FRAME = ENABLE_REQUEST_ANIMATION_FRAME;
@@ -137,9 +144,8 @@ ENABLE_WEBGL = ENABLE_WEBGL;
ENABLE_WEB_AUDIO = ENABLE_WEB_AUDIO;
ENABLE_WEB_SOCKETS = ENABLE_WEB_SOCKETS;
ENABLE_WEB_TIMING = ;
-ENABLE_WIDGET_REGION = $(ENABLE_WIDGET_REGION_$(REAL_PLATFORM_NAME));
-ENABLE_WIDGET_REGION_macosx = ENABLE_WIDGET_REGION;
+ENABLE_WIDGET_REGION = ;
ENABLE_WORKERS = ENABLE_WORKERS;
ENABLE_XSLT = ENABLE_XSLT;
-FEATURE_DEFINES = $(ENABLE_3D_RENDERING) $(ENABLE_ACCELERATED_2D_CANVAS) $(ENABLE_ANIMATION_API) $(ENABLE_BLOB) $(ENABLE_CHANNEL_MESSAGING) $(ENABLE_CSP_NEXT) $(ENABLE_CSS_BOX_DECORATION_BREAK) $(ENABLE_CSS_EXCLUSIONS) $(ENABLE_CSS_COMPOSITING) $(ENABLE_CSS_FILTERS) $(ENABLE_CSS_HIERARCHIES) $(ENABLE_CSS_IMAGE_ORIENTATION) $(ENABLE_CSS_IMAGE_RESOLUTION) $(ENABLE_CSS_REGIONS) $(ENABLE_CSS_SHADERS) $(ENABLE_CSS_STICKY_POSITION) $(ENABLE_CSS_VARIABLES) $(ENABLE_CSS3_TEXT_DECORATION) $(ENABLE_CUSTOM_SCHEME_HANDLER) $(ENABLE_DASHBOARD_SUPPORT) $(ENABLE_DATALIST_ELEMENT) $(ENABLE_DATA_TRANSFER_ITEMS) $(ENABLE_DETAILS_ELEMENT) $(ENABLE_DEVICE_ORIENTATION) $(ENABLE_DIALOG_ELEMENT) $(ENABLE_DIRECTORY_UPLOAD) $(ENABLE_FILE_SYSTEM) $(ENABLE_FILTERS) $(ENABLE_FULLSCREEN_API) $(ENABLE_GAMEPAD) $(ENABLE_GEOLOCATION) $(ENABLE_HIGH_DPI_CANVAS) $(ENABLE_ICONDATABASE) $(ENABLE_IFRAME_SEAMLESS) $(ENABLE_INDEXED_DATABASE) $(ENABLE_INPUT_SPEECH) $(ENABLE_INPUT_TYPE_COLOR) $(ENABLE_INPUT_TYPE_DATE) $(ENABLE_INPUT_TYPE_DATETIME) $(ENABLE_INPUT_TYPE_DATETIMELOCAL) $(ENABLE_INPUT_TYPE_MONTH) $(ENABLE_INPUT_TYPE_TIME) $(ENABLE_INPUT_TYPE_WEEK) $(ENABLE_JAVASCRIPT_DEBUGGER) $(ENABLE_LEGACY_CSS_VENDOR_PREFIXES) $(ENABLE_LEGACY_NOTIFICATIONS) $(LEGACY_VENDOR_PREFIXES) $(ENABLE_LEGACY_WEB_AUDIO) $(ENABLE_LINK_PREFETCH) $(ENABLE_LINK_PRERENDER) $(ENABLE_MATHML) $(ENABLE_MEDIA_SOURCE) $(ENABLE_MEDIA_STATISTICS) $(ENABLE_METER_ELEMENT) $(ENABLE_MHTML) $(ENABLE_MICRODATA) $(ENABLE_MUTATION_OBSERVERS) $(ENABLE_NAVIGATOR_CONTENT_UTILS) $(ENABLE_NOTIFICATIONS) $(ENABLE_PAGE_VISIBILITY_API) $(ENABLE_PROGRESS_ELEMENT) $(ENABLE_QUOTA) $(ENABLE_REQUEST_ANIMATION_FRAME) $(ENABLE_SCRIPTED_SPEECH) $(ENABLE_SHADOW_DOM) $(ENABLE_SHARED_WORKERS) $(ENABLE_SQL_DATABASE) $(ENABLE_STYLE_SCOPED) $(ENABLE_SVG) $(ENABLE_SVG_DOM_OBJC_BINDINGS) $(ENABLE_SVG_FONTS) $(ENABLE_TEXT_AUTOSIZING) $(ENABLE_TEXT_NOTIFICATIONS_ONLY) $(ENABLE_TOUCH_ICON_LOADING) $(ENABLE_UNDO_MANAGER) $(ENABLE_VIDEO) $(ENABLE_VIDEO_TRACK) $(ENABLE_WEBGL) $(ENABLE_WEB_AUDIO) $(ENABLE_WEB_SOCKETS) $(ENABLE_WEB_TIMING) $(ENABLE_WIDGET_REGION) $(ENABLE_WORKERS) $(ENABLE_XSLT);
+FEATURE_DEFINES = $(ENABLE_3D_RENDERING) $(ENABLE_ACCELERATED_2D_CANVAS) $(ENABLE_ANIMATION_API) $(ENABLE_BLOB) $(ENABLE_CHANNEL_MESSAGING) $(ENABLE_CSP_NEXT) $(ENABLE_CSS_BOX_DECORATION_BREAK) $(ENABLE_CSS_EXCLUSIONS) $(ENABLE_CSS_COMPOSITING) $(ENABLE_CSS_FILTERS) $(ENABLE_CSS_HIERARCHIES) $(ENABLE_CSS_IMAGE_ORIENTATION) $(ENABLE_CSS_IMAGE_RESOLUTION) $(ENABLE_CSS_REGIONS) $(ENABLE_CSS_SHADERS) $(ENABLE_CSS_STICKY_POSITION) $(ENABLE_CSS_VARIABLES) $(ENABLE_CSS3_TEXT_DECORATION) $(ENABLE_CUSTOM_SCHEME_HANDLER) $(ENABLE_DASHBOARD_SUPPORT) $(ENABLE_DATALIST_ELEMENT) $(ENABLE_DATA_TRANSFER_ITEMS) $(ENABLE_DETAILS_ELEMENT) $(ENABLE_DEVICE_ORIENTATION) $(ENABLE_DIALOG_ELEMENT) $(ENABLE_DIRECTORY_UPLOAD) $(ENABLE_FILE_SYSTEM) $(ENABLE_FILTERS) $(ENABLE_FULLSCREEN_API) $(ENABLE_GAMEPAD) $(ENABLE_GEOLOCATION) $(ENABLE_HIDDEN_PAGE_DOM_TIMER_THROTTLING) $(ENABLE_HIGH_DPI_CANVAS) $(ENABLE_ICONDATABASE) $(ENABLE_IFRAME_SEAMLESS) $(ENABLE_INDEXED_DATABASE) $(ENABLE_INPUT_SPEECH) $(ENABLE_INPUT_TYPE_COLOR) $(ENABLE_INPUT_TYPE_DATE) $(ENABLE_INPUT_TYPE_DATETIME) $(ENABLE_INPUT_TYPE_DATETIMELOCAL) $(ENABLE_INPUT_TYPE_MONTH) $(ENABLE_INPUT_TYPE_TIME) $(ENABLE_INPUT_TYPE_WEEK) $(ENABLE_JAVASCRIPT_DEBUGGER) $(ENABLE_LEGACY_CSS_VENDOR_PREFIXES) $(ENABLE_LEGACY_NOTIFICATIONS) $(LEGACY_VENDOR_PREFIXES) $(ENABLE_LEGACY_WEB_AUDIO) $(ENABLE_LINK_PREFETCH) $(ENABLE_LINK_PRERENDER) $(ENABLE_MATHML) $(ENABLE_MEDIA_SOURCE) $(ENABLE_MEDIA_STATISTICS) $(ENABLE_METER_ELEMENT) $(ENABLE_MHTML) $(ENABLE_MICRODATA) $(ENABLE_MUTATION_OBSERVERS) $(ENABLE_NAVIGATOR_CONTENT_UTILS) $(ENABLE_NOTIFICATIONS) $(ENABLE_PAGE_VISIBILITY_API) $(ENABLE_PDFKIT_PLUGIN) $(ENABLE_PROGRESS_ELEMENT) $(ENABLE_QUOTA) $(ENABLE_REQUEST_ANIMATION_FRAME) $(ENABLE_SCRIPTED_SPEECH) $(ENABLE_SHADOW_DOM) $(ENABLE_SHARED_WORKERS) $(ENABLE_SQL_DATABASE) $(ENABLE_STYLE_SCOPED) $(ENABLE_SVG) $(ENABLE_SVG_DOM_OBJC_BINDINGS) $(ENABLE_SVG_FONTS) $(ENABLE_TEXT_AUTOSIZING) $(ENABLE_TEXT_NOTIFICATIONS_ONLY) $(ENABLE_TOUCH_ICON_LOADING) $(ENABLE_UNDO_MANAGER) $(ENABLE_VIDEO) $(ENABLE_VIDEO_TRACK) $(ENABLE_WEBGL) $(ENABLE_WEB_AUDIO) $(ENABLE_WEB_SOCKETS) $(ENABLE_WEB_TIMING) $(ENABLE_WIDGET_REGION) $(ENABLE_WORKERS) $(ENABLE_XSLT);
diff --git a/Source/WebKit2/Configurations/NetworkProcess.xcconfig b/Source/WebKit2/Configurations/NetworkProcess.xcconfig
new file mode 100644
index 000000000..aebab349e
--- /dev/null
+++ b/Source/WebKit2/Configurations/NetworkProcess.xcconfig
@@ -0,0 +1,29 @@
+// Copyright (C) 2012 Apple Inc. All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions
+// are met:
+// 1. Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// 2. Redistributions in binary form must reproduce the above copyright
+// notice, this list of conditions and the following disclaimer in the
+// documentation and/or other materials provided with the distribution.
+//
+// THIS SOFTWARE IS PROVIDED BY APPLE INC. ``AS IS'' AND ANY
+// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR
+// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
+// OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+#include "BaseTarget.xcconfig"
+
+GCC_ENABLE_OBJC_GC = NO;
+PRODUCT_NAME = NetworkProcess;
+INFOPLIST_FILE = NetworkProcess/Info.plist;
+INSTALL_PATH = $(WEBKIT2_FRAMEWORKS_DIR)/WebKit2.framework;
diff --git a/Source/WebKit2/Configurations/Version.xcconfig b/Source/WebKit2/Configurations/Version.xcconfig
index 2fff18a71..0415cfc2a 100644
--- a/Source/WebKit2/Configurations/Version.xcconfig
+++ b/Source/WebKit2/Configurations/Version.xcconfig
@@ -22,7 +22,7 @@
// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
MAJOR_VERSION = 537;
-MINOR_VERSION = 12;
+MINOR_VERSION = 15;
TINY_VERSION = 0;
FULL_VERSION = $(MAJOR_VERSION).$(MINOR_VERSION);
diff --git a/Source/WebKit2/DerivedSources.make b/Source/WebKit2/DerivedSources.make
index 896c8e06e..aff292408 100644
--- a/Source/WebKit2/DerivedSources.make
+++ b/Source/WebKit2/DerivedSources.make
@@ -22,9 +22,11 @@
VPATH = \
$(WebKit2) \
+ $(WebKit2)/NetworkProcess \
$(WebKit2)/PluginProcess \
$(WebKit2)/PluginProcess/mac \
$(WebKit2)/Shared/Plugins \
+ $(WebKit2)/Shared \
$(WebKit2)/WebProcess/ApplicationCache \
$(WebKit2)/WebProcess/Authentication \
$(WebKit2)/WebProcess/Cookies \
@@ -51,6 +53,7 @@ MESSAGE_RECEIVERS = \
DrawingAreaProxy \
DownloadProxy \
EventDispatcher \
+ NetworkProcess \
NPObjectMessageReceiver \
PluginControllerProxy \
PluginProcess \
@@ -61,6 +64,7 @@ MESSAGE_RECEIVERS = \
WebApplicationCacheManagerProxy \
WebCookieManager \
WebCookieManagerProxy \
+ WebConnection \
WebContext \
WebDatabaseManager \
WebDatabaseManagerProxy \
@@ -79,6 +83,7 @@ MESSAGE_RECEIVERS = \
WebNotificationManagerProxy \
WebNotificationManager \
WebPage \
+ WebPageGroupProxy \
WebPageProxy \
WebProcess \
WebProcessConnection \
diff --git a/Source/WebKit2/DerivedSources.pri b/Source/WebKit2/DerivedSources.pri
index ad0288b18..0fdc49c7d 100644
--- a/Source/WebKit2/DerivedSources.pri
+++ b/Source/WebKit2/DerivedSources.pri
@@ -59,6 +59,7 @@ VPATH = \
UIProcess/Downloads \
UIProcess/Notifications \
UIProcess/Plugins \
+ Shared \
Shared/Plugins
MESSAGE_RECEIVERS = \
@@ -76,6 +77,7 @@ MESSAGE_RECEIVERS = \
WebApplicationCacheManagerProxy.messages.in \
WebBatteryManager.messages.in \
WebBatteryManagerProxy.messages.in \
+ WebConnection.messages.in \
WebContext.messages.in \
WebCookieManager.messages.in \
WebCookieManagerProxy.messages.in \
@@ -100,6 +102,7 @@ MESSAGE_RECEIVERS = \
LayerTreeCoordinator.messages.in \
WebInspector.messages.in \
WebPage.messages.in \
+ WebPageGroupProxy.messages.in \
WebPageProxy.messages.in \
WebProcess.messages.in \
WebProcessConnection.messages.in \
diff --git a/Source/WebKit2/GNUmakefile.am b/Source/WebKit2/GNUmakefile.am
index 52020862f..f956d0edd 100644
--- a/Source/WebKit2/GNUmakefile.am
+++ b/Source/WebKit2/GNUmakefile.am
@@ -55,7 +55,7 @@ libwebkit2gtk_@WEBKITGTK_API_MAJOR_VERSION@_@WEBKITGTK_API_MINOR_VERSION@_la_CPP
-I$(srcdir)/Source/WebKit2/UIProcess/Launcher/gtk \
-I$(srcdir)/Source/WebKit2/UIProcess/Notifications \
-I$(srcdir)/Source/WebKit2/UIProcess/Plugins \
- -I$(srcdir)/Source/WebKit2/UIProcess/Plugins/gtk \
+ -I$(srcdir)/Source/WebKit2/UIProcess/Plugins/unix \
-I$(srcdir)/Source/WebKit2/UIProcess/soup \
-I$(srcdir)/Source/WebKit2/WebProcess \
-I$(srcdir)/Source/WebKit2/WebProcess/ApplicationCache \
@@ -82,7 +82,7 @@ libwebkit2gtk_@WEBKITGTK_API_MAJOR_VERSION@_@WEBKITGTK_API_MINOR_VERSION@_la_CPP
-I$(srcdir)/Source/WebKit2/WebProcess/soup \
-I$(srcdir)/Source/WebKit2/WebProcess/Plugins \
-I$(srcdir)/Source/WebKit2/WebProcess/Plugins/Netscape \
- -I$(srcdir)/Source/WebKit2/WebProcess/Plugins/Netscape/gtk \
+ -I$(srcdir)/Source/WebKit2/WebProcess/Plugins/Netscape/unix \
-I$(srcdir)/Source/WebKit2/WebProcess/WebCoreSupport \
-I$(srcdir)/Source/WebKit2/WebProcess/WebCoreSupport/gtk \
-I$(srcdir)/Source/WebKit2/WebProcess/WebCoreSupport/soup \
@@ -110,6 +110,7 @@ libwebkit2gtk_@WEBKITGTK_API_MAJOR_VERSION@_@WEBKITGTK_API_MINOR_VERSION@_la_CPP
$(LIBSOUP_CFLAGS) \
$(UNICODE_CFLAGS) \
$(XCOMPOSITE_CFLAGS) \
+ $(XDAMAGE_CFLAGS) \
$(XT_CFLAGS)
libwebkit2gtk_@WEBKITGTK_API_MAJOR_VERSION@_@WEBKITGTK_API_MINOR_VERSION@_la_CXXFLAGS = \
@@ -184,6 +185,7 @@ libwebkit2gtk_@WEBKITGTK_API_MAJOR_VERSION@_@WEBKITGTK_API_MINOR_VERSION@_la_LIB
$(UNICODE_LIBS) \
$(XRENDER_LIBS) \
$(XCOMPOSITE_LIBS) \
+ $(XDAMAGE_LIBS) \
$(XT_LIBS) \
$(ZLIB_LIBS)
@@ -217,6 +219,7 @@ BUILT_SOURCES += $(GENSOURCES_WEBKIT2)/webkit2gtk/include/webkit2
vpath %.messages.in = \
$(WebKit2)/PluginProcess \
+ $(WebKit2)/Shared \
$(WebKit2)/Shared/Plugins \
$(WebKit2)/UIProcess \
$(WebKit2)/UIProcess/ApplicationCache \
@@ -427,7 +430,7 @@ Programs_WebKitPluginProcess_CPPFLAGS = \
-I$(srcdir)/Source/WebKit2/Platform \
-I$(srcdir)/Source/WebKit2/Platform/CoreIPC/ \
-I$(srcdir)/Source/WebKit2/PluginProcess/ \
- -I$(srcdir)/Source/WebKit2/PluginProcess/gtk \
+ -I$(srcdir)/Source/WebKit2/PluginProcess/unix \
-I$(srcdir)/Source/WebKit2/Shared \
-I$(srcdir)/Source/WebKit2/Shared/Plugins \
-I$(srcdir)/Source/WebKit2/Shared/Plugins/Netscape/ \
@@ -526,6 +529,7 @@ EXTRA_DIST += \
$(WebKit2)/UIProcess/API/gtk/webkit2marshal.list \
$(WebKit2)/Scripts/generate-forwarding-headers.pl \
$(shell ls $(WebKit2)/PluginProcess/*.in) \
+ $(shell ls $(WebKit2)/Shared/*.in) \
$(shell ls $(WebKit2)/Shared/Plugins/*.in) \
$(shell ls $(WebKit2)/UIProcess/*.in) \
$(shell ls $(WebKit2)/UIProcess/Downloads/*.in) \
diff --git a/Source/WebKit2/GNUmakefile.list.am b/Source/WebKit2/GNUmakefile.list.am
index 5015fb3e2..371f4f558 100644
--- a/Source/WebKit2/GNUmakefile.list.am
+++ b/Source/WebKit2/GNUmakefile.list.am
@@ -104,6 +104,7 @@ webkit2gtk_h_api += \
$(WebKit2)/UIProcess/API/gtk/WebKitDownload.h \
$(WebKit2)/UIProcess/API/gtk/WebKitEditingCommands.h \
$(WebKit2)/UIProcess/API/gtk/WebKitError.h \
+ $(WebKit2)/UIProcess/API/gtk/WebKitFaviconDatabase.h \
$(WebKit2)/UIProcess/API/gtk/WebKitFileChooserRequest.h \
$(WebKit2)/UIProcess/API/gtk/WebKitFindController.h \
$(WebKit2)/UIProcess/API/gtk/WebKitFormSubmissionRequest.h \
@@ -164,6 +165,8 @@ webkit2_built_sources += \
DerivedSources/WebKit2/WebBatteryManagerProxyMessages.h \
DerivedSources/WebKit2/WebContextMessageReceiver.cpp \
DerivedSources/WebKit2/WebContextMessages.h \
+ DerivedSources/WebKit2/WebConnectionMessageReceiver.cpp \
+ DerivedSources/WebKit2/WebConnectionMessages.h \
DerivedSources/WebKit2/WebCookieManagerMessageReceiver.cpp \
DerivedSources/WebKit2/WebCookieManagerMessages.h \
DerivedSources/WebKit2/WebCookieManagerProxyMessageReceiver.cpp \
@@ -204,6 +207,8 @@ webkit2_built_sources += \
DerivedSources/WebKit2/WebNotificationManagerMessages.h \
DerivedSources/WebKit2/WebNotificationManagerProxyMessageReceiver.cpp \
DerivedSources/WebKit2/WebNotificationManagerProxyMessages.h \
+ DerivedSources/WebKit2/WebPageGroupProxyMessageReceiver.cpp \
+ DerivedSources/WebKit2/WebPageGroupProxyMessages.h \
DerivedSources/WebKit2/WebPageProxyMessageReceiver.cpp \
DerivedSources/WebKit2/WebPageProxyMessages.h \
DerivedSources/WebKit2/WebPageMessageReceiver.cpp \
@@ -253,6 +258,9 @@ webkit2_sources += \
Source/WebKit2/Platform/CoreIPC/DataReference.h \
Source/WebKit2/Platform/CoreIPC/HandleMessage.h \
Source/WebKit2/Platform/CoreIPC/MessageID.h \
+ Source/WebKit2/Platform/CoreIPC/MessageReceiver.h \
+ Source/WebKit2/Platform/CoreIPC/MessageReceiverMap.cpp \
+ Source/WebKit2/Platform/CoreIPC/MessageReceiverMap.h \
Source/WebKit2/Platform/CoreIPC/MessageSender.h \
Source/WebKit2/Platform/CoreIPC/unix/AttachmentUnix.cpp \
Source/WebKit2/Platform/CoreIPC/unix/ConnectionUnix.cpp \
@@ -277,8 +285,8 @@ webkit2_sources += \
Source/WebKit2/PluginProcess/PluginProcessMain.h \
Source/WebKit2/PluginProcess/WebProcessConnection.cpp \
Source/WebKit2/PluginProcess/WebProcessConnection.h \
- Source/WebKit2/PluginProcess/gtk/PluginControllerProxyGtk.cpp \
- Source/WebKit2/PluginProcess/gtk/PluginProcessGtk.cpp \
+ Source/WebKit2/PluginProcess/unix/PluginControllerProxyUnix.cpp \
+ Source/WebKit2/PluginProcess/unix/PluginProcessUnix.cpp \
Source/WebKit2/Shared/DragControllerAction.h \
Source/WebKit2/Shared/FontInfo.h \
Source/WebKit2/Shared/HTTPCookieAcceptPolicy.h \
@@ -356,7 +364,6 @@ webkit2_sources += \
Source/WebKit2/Shared/ChildProcess.cpp \
Source/WebKit2/Shared/ChildProcess.h \
Source/WebKit2/Shared/CommandLine.h \
- Source/WebKit2/Shared/CoreIPCSupport/InjectedBundleMessageKinds.h \
Source/WebKit2/Shared/CoreIPCSupport/WebConnectionMessageKinds.h \
Source/WebKit2/Shared/CoreIPCSupport/WebContextMessageKinds.h \
Source/WebKit2/Shared/CoreIPCSupport/WebPageProxyMessageKinds.h \
@@ -643,6 +650,9 @@ webkit2_sources += \
Source/WebKit2/UIProcess/API/gtk/WebKitEditingCommands.h \
Source/WebKit2/UIProcess/API/gtk/WebKitError.h \
Source/WebKit2/UIProcess/API/gtk/WebKitError.cpp \
+ Source/WebKit2/UIProcess/API/gtk/WebKitFaviconDatabase.h \
+ Source/WebKit2/UIProcess/API/gtk/WebKitFaviconDatabase.cpp \
+ Source/WebKit2/UIProcess/API/gtk/WebKitFaviconDatabasePrivate.h \
Source/WebKit2/UIProcess/API/gtk/WebKitFileChooserRequest.cpp \
Source/WebKit2/UIProcess/API/gtk/WebKitFileChooserRequest.h \
Source/WebKit2/UIProcess/API/gtk/WebKitFileChooserRequestPrivate.h \
@@ -802,8 +812,8 @@ webkit2_sources += \
Source/WebKit2/UIProcess/Plugins/PluginProcessProxy.h \
Source/WebKit2/UIProcess/Plugins/WebPluginSiteDataManager.h \
Source/WebKit2/UIProcess/Plugins/WebPluginSiteDataManager.cpp \
- Source/WebKit2/UIProcess/Plugins/gtk/PluginProcessProxyGtk.cpp \
Source/WebKit2/UIProcess/Plugins/unix/PluginInfoStoreUnix.cpp \
+ Source/WebKit2/UIProcess/Plugins/unix/PluginProcessProxyUnix.cpp \
Source/WebKit2/UIProcess/ProcessModel.h \
Source/WebKit2/UIProcess/ResponsivenessTimer.cpp \
Source/WebKit2/UIProcess/ResponsivenessTimer.h \
@@ -1062,7 +1072,7 @@ webkit2_sources += \
Source/WebKit2/WebProcess/Plugins/Netscape/NPRuntimeObjectMap.h \
Source/WebKit2/WebProcess/Plugins/Netscape/NPRuntimeUtilities.cpp \
Source/WebKit2/WebProcess/Plugins/Netscape/NPRuntimeUtilities.h \
- Source/WebKit2/WebProcess/Plugins/Netscape/gtk/PluginProxyGtk.cpp \
+ Source/WebKit2/WebProcess/Plugins/Netscape/unix/PluginProxyUnix.cpp \
Source/WebKit2/WebProcess/Plugins/Netscape/x11/NetscapePluginX11.cpp \
Source/WebKit2/WebProcess/Plugins/PluginController.h \
Source/WebKit2/WebProcess/Plugins/Plugin.cpp \
@@ -1210,6 +1220,9 @@ webkit2_plugin_process_sources += \
Source/WebKit2/Platform/CoreIPC/DataReference.h \
Source/WebKit2/Platform/CoreIPC/HandleMessage.h \
Source/WebKit2/Platform/CoreIPC/MessageID.h \
+ Source/WebKit2/Platform/CoreIPC/MessageReceiver.h \
+ Source/WebKit2/Platform/CoreIPC/MessageReceiverMap.cpp \
+ Source/WebKit2/Platform/CoreIPC/MessageReceiverMap.h \
Source/WebKit2/Platform/CoreIPC/MessageSender.h \
Source/WebKit2/Platform/CoreIPC/unix/AttachmentUnix.cpp \
Source/WebKit2/Platform/CoreIPC/unix/ConnectionUnix.cpp \
@@ -1232,10 +1245,10 @@ webkit2_plugin_process_sources += \
Source/WebKit2/PluginProcess/WebProcessConnection.h \
Source/WebKit2/Shared/Plugins/PluginProcessCreationParameters.cpp \
Source/WebKit2/Shared/Plugins/PluginProcessCreationParameters.h \
- Source/WebKit2/PluginProcess/gtk/PluginControllerProxyGtk.cpp \
- Source/WebKit2/PluginProcess/gtk/PluginProcessGtk.cpp \
- Source/WebKit2/PluginProcess/gtk/PluginProcessMainGtk.h \
- Source/WebKit2/PluginProcess/gtk/PluginProcessMainGtk.cpp \
+ Source/WebKit2/PluginProcess/unix/PluginControllerProxyUnix.cpp \
+ Source/WebKit2/PluginProcess/unix/PluginProcessMainUnix.h \
+ Source/WebKit2/PluginProcess/unix/PluginProcessMainUnix.cpp \
+ Source/WebKit2/PluginProcess/unix/PluginProcessUnix.cpp \
Source/WebKit2/Shared/ChildProcess.cpp \
Source/WebKit2/Shared/ChildProcess.h \
Source/WebKit2/Shared/ProcessExecutablePath.h \
@@ -1268,7 +1281,7 @@ webkit2_plugin_process_sources += \
Source/WebKit2/Shared/gtk/WebEventFactory.cpp \
Source/WebKit2/Shared/cairo/ShareableBitmapCairo.cpp \
Source/WebKit2/Shared/soup/WebCoreArgumentCodersSoup.cpp \
- Source/WebKit2/UIProcess/Plugins/gtk/PluginProcessProxyGtk.cpp \
+ Source/WebKit2/UIProcess/Plugins/unix/PluginProcessProxyUnix.cpp \
Source/WebKit2/WebProcess/Plugins/Plugin.cpp \
Source/WebKit2/WebProcess/Plugins/Plugin.h \
Source/WebKit2/WebProcess/Plugins/Netscape/NPRuntimeUtilities.cpp \
@@ -1280,6 +1293,6 @@ webkit2_plugin_process_sources += \
Source/WebKit2/WebProcess/Plugins/Netscape/NetscapePluginStream.cpp \
Source/WebKit2/WebProcess/Plugins/Netscape/NetscapePluginStream.h \
Source/WebKit2/WebProcess/Plugins/Netscape/x11/NetscapePluginX11.cpp \
- Source/WebKit2/gtk/PluginMainGtk.cpp
+ Source/WebKit2/unix/PluginMainUnix.cpp
endif # ENABLE_PLUGIN_PROCESS
diff --git a/Source/WebKit2/NetworkProcess/Info.plist b/Source/WebKit2/NetworkProcess/Info.plist
new file mode 100644
index 000000000..ca50b3cab
--- /dev/null
+++ b/Source/WebKit2/NetworkProcess/Info.plist
@@ -0,0 +1,30 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+ <key>CFBundleExecutable</key>
+ <string>${EXECUTABLE_NAME}</string>
+ <key>CFBundleGetInfoString</key>
+ <string>${BUNDLE_VERSION}, Copyright 2003-2012 Apple Inc.</string>
+ <key>CFBundleIdentifier</key>
+ <string>com.apple.WebKit.${PRODUCT_NAME}</string>
+ <key>CFBundleInfoDictionaryVersion</key>
+ <string>6.0</string>
+ <key>CFBundleName</key>
+ <string>${PRODUCT_NAME}</string>
+ <key>CFBundlePackageType</key>
+ <string>APPL</string>
+ <key>CFBundleShortVersionString</key>
+ <string>${SHORT_VERSION_STRING}</string>
+ <key>CFBundleVersion</key>
+ <string>${BUNDLE_VERSION}</string>
+ <key>LSFileQuarantineEnabled</key>
+ <true/>
+ <key>LSMinimumSystemVersion</key>
+ <string>${MACOSX_DEPLOYMENT_TARGET}</string>
+ <key>LSUIElement</key>
+ <true/>
+ <key>NSPrincipalClass</key>
+ <string>NSApplication</string>
+</dict>
+</plist>
diff --git a/Source/WebKit2/NetworkProcess/NetworkProcess.cpp b/Source/WebKit2/NetworkProcess/NetworkProcess.cpp
new file mode 100644
index 000000000..b2289b07b
--- /dev/null
+++ b/Source/WebKit2/NetworkProcess/NetworkProcess.cpp
@@ -0,0 +1,97 @@
+/*
+ * Copyright (C) 2012 Apple Inc. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include "config.h"
+#include "NetworkProcess.h"
+
+#if ENABLE(NETWORK_PROCESS)
+
+#include "ArgumentCoders.h"
+#include "Attachment.h"
+#include <WebCore/RunLoop.h>
+
+using namespace WebCore;
+
+namespace WebKit {
+
+NetworkProcess& NetworkProcess::shared()
+{
+ DEFINE_STATIC_LOCAL(NetworkProcess, networkProcess, ());
+ return networkProcess;
+}
+
+NetworkProcess::NetworkProcess()
+{
+}
+
+NetworkProcess::~NetworkProcess()
+{
+}
+
+void NetworkProcess::initialize(CoreIPC::Connection::Identifier serverIdentifier, WebCore::RunLoop* runLoop)
+{
+ ASSERT(!m_uiConnection);
+
+ m_uiConnection = CoreIPC::Connection::createClientConnection(serverIdentifier, this, runLoop);
+ m_uiConnection->setDidCloseOnConnectionWorkQueueCallback(didCloseOnConnectionWorkQueue);
+ m_uiConnection->open();
+}
+
+bool NetworkProcess::shouldTerminate()
+{
+ return true;
+}
+
+void NetworkProcess::didReceiveMessage(CoreIPC::Connection* connection, CoreIPC::MessageID messageID, CoreIPC::ArgumentDecoder* arguments)
+{
+ didReceiveNetworkProcessMessage(connection, messageID, arguments);
+}
+
+void NetworkProcess::didClose(CoreIPC::Connection*)
+{
+ // Either the connection to the UIProcess or a connection to a WebProcess has gone away.
+ // In the future we'll do appropriate cleanup and decide whether or not we want to keep
+ // the NetworkProcess open.
+ // For now we'll always close it.
+ RunLoop::current()->stop();
+}
+
+void NetworkProcess::didReceiveInvalidMessage(CoreIPC::Connection*, CoreIPC::MessageID)
+{
+ RunLoop::current()->stop();
+}
+
+void NetworkProcess::syncMessageSendTimedOut(CoreIPC::Connection*)
+{
+}
+
+void NetworkProcess::initializeNetworkProcess(const NetworkProcessCreationParameters& parameters)
+{
+ platformInitialize(parameters);
+}
+
+} // namespace WebKit
+
+#endif // ENABLE(NETWORK_PROCESS)
diff --git a/Source/WebKit2/NetworkProcess/NetworkProcess.h b/Source/WebKit2/NetworkProcess/NetworkProcess.h
new file mode 100644
index 000000000..f72a8f9ab
--- /dev/null
+++ b/Source/WebKit2/NetworkProcess/NetworkProcess.h
@@ -0,0 +1,76 @@
+/*
+ * Copyright (C) 2012 Apple Inc. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef NetworkProcess_h
+#define NetworkProcess_h
+
+#if ENABLE(NETWORK_PROCESS)
+
+#include "ChildProcess.h"
+#include <wtf/Forward.h>
+
+namespace WebCore {
+ class RunLoop;
+}
+
+namespace WebKit {
+
+struct NetworkProcessCreationParameters;
+
+class NetworkProcess : ChildProcess {
+ WTF_MAKE_NONCOPYABLE(NetworkProcess);
+public:
+ static NetworkProcess& shared();
+
+ void initialize(CoreIPC::Connection::Identifier, WebCore::RunLoop*);
+
+private:
+ NetworkProcess();
+ ~NetworkProcess();
+
+ void platformInitialize(const NetworkProcessCreationParameters&);
+
+ // ChildProcess
+ virtual bool shouldTerminate();
+
+ // CoreIPC::Connection::Client
+ virtual void didReceiveMessage(CoreIPC::Connection*, CoreIPC::MessageID, CoreIPC::ArgumentDecoder*);
+ virtual void didClose(CoreIPC::Connection*);
+ virtual void didReceiveInvalidMessage(CoreIPC::Connection*, CoreIPC::MessageID);
+ virtual void syncMessageSendTimedOut(CoreIPC::Connection*);
+
+ // Message Handlers
+ void didReceiveNetworkProcessMessage(CoreIPC::Connection*, CoreIPC::MessageID, CoreIPC::ArgumentDecoder*);
+ void initializeNetworkProcess(const NetworkProcessCreationParameters&);
+
+ // The connection to the UI process.
+ RefPtr<CoreIPC::Connection> m_uiConnection;
+};
+
+} // namespace WebKit
+
+#endif // ENABLE(NETWORK_PROCESS)
+
+#endif // NetworkProcess_h
diff --git a/Source/WebKit2/NetworkProcess/NetworkProcess.messages.in b/Source/WebKit2/NetworkProcess/NetworkProcess.messages.in
new file mode 100644
index 000000000..5e46a8efb
--- /dev/null
+++ b/Source/WebKit2/NetworkProcess/NetworkProcess.messages.in
@@ -0,0 +1,30 @@
+# Copyright (C) 2012 Apple Inc. All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions
+# are met:
+# 1. Redistributions of source code must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+# 2. Redistributions in binary form must reproduce the above copyright
+# notice, this list of conditions and the following disclaimer in the
+# documentation and/or other materials provided with the distribution.
+#
+# THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS'' AND
+# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+# WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+# DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS BE LIABLE FOR
+# ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+# SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
+# CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+# OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+#if ENABLE(NETWORK_PROCESS)
+
+messages -> NetworkProcess {
+ # Initializes the network process.
+ InitializeNetworkProcess(WebKit::NetworkProcessCreationParameters processCreationParameters)
+}
+
+#endif // ENABLE(NETWORK_PROCESS)
diff --git a/Source/WebKit2/NetworkProcess/NetworkProcessMain.h b/Source/WebKit2/NetworkProcess/NetworkProcessMain.h
new file mode 100644
index 000000000..ee55a37d6
--- /dev/null
+++ b/Source/WebKit2/NetworkProcess/NetworkProcessMain.h
@@ -0,0 +1,41 @@
+/*
+ * Copyright (C) 2012 Apple Inc. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef NetworkProcessMain_h
+#define NetworkProcessMain_h
+
+#if ENABLE(NETWORK_PROCESS)
+
+namespace WebKit {
+
+class CommandLine;
+
+int NetworkProcessMain(const CommandLine&);
+
+} // namespace WebKit
+
+#endif // ENABLE(NETWORK_PROCESS)
+
+#endif // NetworkProcessMain_h
diff --git a/Source/WebKit2/NetworkProcess/mac/NetworkProcessMac.mm b/Source/WebKit2/NetworkProcess/mac/NetworkProcessMac.mm
new file mode 100644
index 000000000..e635acb19
--- /dev/null
+++ b/Source/WebKit2/NetworkProcess/mac/NetworkProcessMac.mm
@@ -0,0 +1,50 @@
+/*
+ * Copyright (C) 2012 Apple Inc. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#import "config.h"
+#import "NetworkProcess.h"
+
+#if ENABLE(NETWORK_PROCESS)
+
+#import "NetworkProcessCreationParameters.h"
+#import <WebCore/LocalizedStrings.h>
+#import <WebKitSystemInterface.h>
+#import <wtf/text/WTFString.h>
+
+using namespace WebCore;
+
+namespace WebKit {
+
+void NetworkProcess::platformInitialize(const NetworkProcessCreationParameters& parameters)
+{
+ NSString *applicationName = [NSString stringWithFormat:WEB_UI_STRING("%@ Networking", "visible name of the network process. The argument is the application name."),
+ (NSString *)parameters.parentProcessName];
+
+ WKSetVisibleApplicationName((CFStringRef)applicationName);
+}
+
+} // namespace WebKit
+
+#endif // ENABLE(NETWORK_PROCESS)
diff --git a/Source/WebKit2/NetworkProcess/mac/NetworkProcessMainMac.mm b/Source/WebKit2/NetworkProcess/mac/NetworkProcessMainMac.mm
new file mode 100644
index 000000000..537126f66
--- /dev/null
+++ b/Source/WebKit2/NetworkProcess/mac/NetworkProcessMainMac.mm
@@ -0,0 +1,98 @@
+/*
+ * Copyright (C) 2012 Apple Inc. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#import "config.h"
+#import "NetworkProcessMain.h"
+
+#if ENABLE(NETWORK_PROCESS)
+
+#import "CommandLine.h"
+#import "EnvironmentUtilities.h"
+#import "NetworkProcess.h"
+#import <WebCore/RunLoop.h>
+#import <WebKitSystemInterface.h>
+#import <mach/mach_error.h>
+#import <runtime/InitializeThreading.h>
+#import <servers/bootstrap.h>
+#import <stdio.h>
+#import <wtf/MainThread.h>
+#import <wtf/RetainPtr.h>
+#import <wtf/text/CString.h>
+#import <wtf/text/WTFString.h>
+
+#define SHOW_CRASH_REPORTER 1
+
+using namespace WebCore;
+
+namespace WebKit {
+
+// FIXME: There is much code here that is duplicated in WebProcessMainMac.mm, we should add a shared base class where
+// we can put everything.
+
+int NetworkProcessMain(const CommandLine& commandLine)
+{
+ String serviceName = commandLine["servicename"];
+ if (serviceName.isEmpty())
+ return EXIT_FAILURE;
+
+ // Get the server port.
+ mach_port_t serverPort;
+ kern_return_t kr = bootstrap_look_up(bootstrap_port, serviceName.utf8().data(), &serverPort);
+ if (kr) {
+ WTFLogAlways("bootstrap_look_up result: %s (%x)\n", mach_error_string(kr), kr);
+ return EXIT_FAILURE;
+ }
+
+ String localization = commandLine["localization"];
+ RetainPtr<CFStringRef> cfLocalization(AdoptCF, CFStringCreateWithCharacters(0, reinterpret_cast<const UniChar*>(localization.characters()), localization.length()));
+ if (cfLocalization)
+ WKSetDefaultLocalization(cfLocalization.get());
+
+#if !SHOW_CRASH_REPORTER
+ // Installs signal handlers that exit on a crash so that CrashReporter does not show up.
+ signal(SIGILL, _exit);
+ signal(SIGFPE, _exit);
+ signal(SIGBUS, _exit);
+ signal(SIGSEGV, _exit);
+#endif
+
+
+ JSC::initializeThreading();
+ WTF::initializeMainThread();
+ RunLoop::initializeMainRunLoop();
+
+ // Initialize the network process connection.
+ NetworkProcess::shared().initialize(CoreIPC::Connection::Identifier(serverPort), RunLoop::main());
+
+ [NSApplication sharedApplication];
+
+ RunLoop::run();
+
+ return 0;
+}
+
+} // namespace WebKit
+
+#endif // ENABLE(NETWORK_PROCESS)
diff --git a/Source/WebKit2/Platform/CoreIPC/ArgumentCoders.h b/Source/WebKit2/Platform/CoreIPC/ArgumentCoders.h
index dd54dfeef..af163be6d 100644
--- a/Source/WebKit2/Platform/CoreIPC/ArgumentCoders.h
+++ b/Source/WebKit2/Platform/CoreIPC/ArgumentCoders.h
@@ -75,8 +75,8 @@ template<typename T, typename U> struct ArgumentCoder<std::pair<T, U> > {
template<typename KeyType, typename ValueType> struct ArgumentCoder<WTF::KeyValuePair<KeyType, ValueType> > {
static void encode(ArgumentEncoder* encoder, const WTF::KeyValuePair<KeyType, ValueType>& pair)
{
- encoder->encode(pair.first);
- encoder->encode(pair.second);
+ encoder->encode(pair.key);
+ encoder->encode(pair.value);
}
static bool decode(ArgumentDecoder* decoder, WTF::KeyValuePair<KeyType, ValueType>& pair)
@@ -89,8 +89,8 @@ template<typename KeyType, typename ValueType> struct ArgumentCoder<WTF::KeyValu
if (!decoder->decode(value))
return false;
- pair.first = key;
- pair.second = value;
+ pair.key = key;
+ pair.value = value;
return true;
}
};
diff --git a/Source/WebKit2/Platform/CoreIPC/Connection.cpp b/Source/WebKit2/Platform/CoreIPC/Connection.cpp
index b19eb7507..02634874c 100644
--- a/Source/WebKit2/Platform/CoreIPC/Connection.cpp
+++ b/Source/WebKit2/Platform/CoreIPC/Connection.cpp
@@ -102,12 +102,12 @@ PassRefPtr<Connection::SyncMessageState> Connection::SyncMessageState::getOrCrea
SyncMessageStateMap::AddResult result = syncMessageStateMap().add(runLoop, 0);
if (!result.isNewEntry) {
- ASSERT(result.iterator->second);
- return result.iterator->second;
+ ASSERT(result.iterator->value);
+ return result.iterator->value;
}
RefPtr<SyncMessageState> syncMessageState = adoptRef(new SyncMessageState(runLoop));
- result.iterator->second = syncMessageState.get();
+ result.iterator->value = syncMessageState.get();
return syncMessageState.release();
}
@@ -203,7 +203,6 @@ Connection::Connection(Identifier identifier, bool isServer, Client* client, Run
, m_inDispatchMessageCount(0)
, m_inDispatchMessageMarkedDispatchWhenWaitingForSyncReplyCount(0)
, m_didReceiveInvalidMessage(false)
- , m_defaultSyncMessageTimeout(NoTimeout)
, m_syncMessageState(SyncMessageState::getOrCreate(clientRunLoop))
, m_shouldWaitForSyncReplies(true)
{
@@ -284,13 +283,6 @@ void Connection::markCurrentlyDispatchedMessageAsInvalid()
m_didReceiveInvalidMessage = true;
}
-void Connection::setDefaultSyncMessageTimeout(double defaultSyncMessageTimeout)
-{
- ASSERT(defaultSyncMessageTimeout != DefaultTimeout);
-
- m_defaultSyncMessageTimeout = defaultSyncMessageTimeout;
-}
-
PassOwnPtr<ArgumentEncoder> Connection::createSyncMessageArgumentEncoder(uint64_t destinationID, uint64_t& syncRequestID)
{
OwnPtr<ArgumentEncoder> argumentEncoder = ArgumentEncoder::create(destinationID);
@@ -362,10 +354,10 @@ PassOwnPtr<ArgumentDecoder> Connection::waitForMessage(MessageID messageID, uint
MutexLocker locker(m_waitForMessageMutex);
HashMap<std::pair<unsigned, uint64_t>, ArgumentDecoder*>::iterator it = m_waitForMessageMap.find(messageAndDestination);
- if (it->second) {
+ if (it->value) {
// FIXME: m_waitForMessageMap should really hold OwnPtrs to
// ArgumentDecoders, but HashMap doesn't currently support OwnPtrs.
- OwnPtr<ArgumentDecoder> arguments = adoptPtr(it->second);
+ OwnPtr<ArgumentDecoder> arguments = adoptPtr(it->value);
m_waitForMessageMap.remove(it);
return arguments.release();
@@ -427,9 +419,6 @@ PassOwnPtr<ArgumentDecoder> Connection::sendSyncMessage(MessageID messageID, uin
PassOwnPtr<ArgumentDecoder> Connection::waitForSyncReply(uint64_t syncRequestID, double timeout, unsigned syncSendFlags)
{
- if (timeout == DefaultTimeout)
- timeout = m_defaultSyncMessageTimeout;
-
// Use a really long timeout.
if (timeout == NoTimeout)
timeout = 1e10;
@@ -482,10 +471,6 @@ PassOwnPtr<ArgumentDecoder> Connection::waitForSyncReply(uint64_t syncRequestID,
}
- // We timed out.
- if (m_client)
- m_client->syncMessageSendTimedOut(this);
-
return nullptr;
}
@@ -539,8 +524,8 @@ void Connection::processIncomingMessage(MessageID messageID, PassOwnPtr<Argument
HashMap<std::pair<unsigned, uint64_t>, ArgumentDecoder*>::iterator it = m_waitForMessageMap.find(std::make_pair(messageID.toInt(), incomingMessage.destinationID()));
if (it != m_waitForMessageMap.end()) {
- it->second = incomingMessage.releaseArguments().leakPtr();
- ASSERT(it->second);
+ it->value = incomingMessage.releaseArguments().leakPtr();
+ ASSERT(it->value);
m_waitForMessageCondition.signal();
return;
@@ -668,6 +653,15 @@ void Connection::enqueueIncomingMessage(IncomingMessage& incomingMessage)
m_clientRunLoop->dispatch(WTF::bind(&Connection::dispatchOneMessage, this));
}
+void Connection::dispatchMessage(MessageID messageID, ArgumentDecoder* argumentDecoder)
+{
+ // Try the message receiver map first.
+ if (m_messageReceiverMap.dispatchMessage(this, messageID, argumentDecoder))
+ return;
+
+ m_client->didReceiveMessage(this, messageID, argumentDecoder);
+}
+
void Connection::dispatchMessage(IncomingMessage& message)
{
OwnPtr<ArgumentDecoder> arguments = message.releaseArguments();
@@ -688,7 +682,7 @@ void Connection::dispatchMessage(IncomingMessage& message)
if (message.messageID().isSync())
dispatchSyncMessage(message.messageID(), arguments.get());
else
- m_client->didReceiveMessage(this, message.messageID(), arguments.get());
+ dispatchMessage(message.messageID(), arguments.get());
m_didReceiveInvalidMessage |= arguments->isInvalid();
m_inDispatchMessageCount--;
diff --git a/Source/WebKit2/Platform/CoreIPC/Connection.h b/Source/WebKit2/Platform/CoreIPC/Connection.h
index 8850de0d3..652bcfe30 100644
--- a/Source/WebKit2/Platform/CoreIPC/Connection.h
+++ b/Source/WebKit2/Platform/CoreIPC/Connection.h
@@ -31,9 +31,9 @@
#include "ArgumentDecoder.h"
#include "ArgumentEncoder.h"
#include "Arguments.h"
-#include "MessageID.h"
+#include "MessageReceiver.h"
+#include "MessageReceiverMap.h"
#include "WorkQueue.h"
-#include <wtf/HashMap.h>
#include <wtf/PassRefPtr.h>
#include <wtf/OwnPtr.h>
#include <wtf/Threading.h>
@@ -85,20 +85,10 @@ while (0)
class Connection : public ThreadSafeRefCounted<Connection> {
public:
- class MessageReceiver {
- public:
- virtual void didReceiveMessage(Connection*, MessageID, ArgumentDecoder*) = 0;
- virtual void didReceiveSyncMessage(Connection*, MessageID, ArgumentDecoder*, OwnPtr<ArgumentEncoder>&) { ASSERT_NOT_REACHED(); }
-
- protected:
- virtual ~MessageReceiver() { }
- };
-
class Client : public MessageReceiver {
public:
virtual void didClose(Connection*) = 0;
virtual void didReceiveInvalidMessage(Connection*, MessageID) = 0;
- virtual void syncMessageSendTimedOut(Connection*) = 0;
#if PLATFORM(WIN)
virtual Vector<HWND> windowsToReceiveSentMessagesWhileWaitingForSyncReply() = 0;
@@ -161,6 +151,8 @@ public:
static PassRefPtr<Connection> createClientConnection(Identifier, Client*, WebCore::RunLoop* clientRunLoop);
~Connection();
+ Client* client() const { return m_client; }
+
#if OS(DARWIN)
void setShouldCloseConnectionOnMachExceptions();
#elif PLATFORM(QT)
@@ -181,19 +173,21 @@ public:
void addQueueClient(QueueClient*);
void removeQueueClient(QueueClient*);
+ void addMessageReceiver(MessageClass messageClass, MessageReceiver* messageReceiver)
+ {
+ m_messageReceiverMap.addMessageReceiver(messageClass, messageReceiver);
+ }
+
bool open();
void invalidate();
void markCurrentlyDispatchedMessageAsInvalid();
- void setDefaultSyncMessageTimeout(double);
-
void postConnectionDidCloseOnConnectionWorkQueue();
- static const int DefaultTimeout = 0;
static const int NoTimeout = -1;
template<typename T> bool send(const T& message, uint64_t destinationID, unsigned messageSendFlags = 0);
- template<typename T> bool sendSync(const T& message, const typename T::Reply& reply, uint64_t destinationID, double timeout = DefaultTimeout, unsigned syncSendFlags = 0);
+ template<typename T> bool sendSync(const T& message, const typename T::Reply& reply, uint64_t destinationID, double timeout = NoTimeout, unsigned syncSendFlags = 0);
template<typename T> bool waitForAndDispatchImmediately(uint64_t destinationID, double timeout);
PassOwnPtr<ArgumentEncoder> createSyncMessageArgumentEncoder(uint64_t destinationID, uint64_t& syncRequestID);
@@ -279,8 +273,9 @@ private:
// Called on the listener thread.
void dispatchConnectionDidClose();
- void dispatchMessage(IncomingMessage&);
void dispatchOneMessage();
+ void dispatchMessage(IncomingMessage&);
+ void dispatchMessage(MessageID, ArgumentDecoder*);
void dispatchSyncMessage(MessageID, ArgumentDecoder*);
void didFailToSendSyncMessage();
@@ -305,12 +300,12 @@ private:
unsigned m_inDispatchMessageMarkedDispatchWhenWaitingForSyncReplyCount;
bool m_didReceiveInvalidMessage;
- double m_defaultSyncMessageTimeout;
-
// Incoming messages.
Mutex m_incomingMessagesLock;
Deque<IncomingMessage> m_incomingMessages;
+ MessageReceiverMap m_messageReceiverMap;
+
// Outgoing messages.
Mutex m_outgoingMessagesLock;
Deque<OutgoingMessage> m_outgoingMessages;
diff --git a/Source/WebKit2/Platform/CoreIPC/MessageID.h b/Source/WebKit2/Platform/CoreIPC/MessageID.h
index 22d306b04..5c21336dd 100644
--- a/Source/WebKit2/Platform/CoreIPC/MessageID.h
+++ b/Source/WebKit2/Platform/CoreIPC/MessageID.h
@@ -29,7 +29,7 @@
namespace CoreIPC {
enum MessageClass {
- MessageClassReserved = 0,
+ MessageClassInvalid = 0,
// Messages sent by Core IPC.
MessageClassCoreIPC,
@@ -37,7 +37,6 @@ enum MessageClass {
// Messages sent by the UI process to the web process.
MessageClassAuthenticationManager,
MessageClassDrawingArea,
- MessageClassInjectedBundle,
MessageClassLayerTreeCoordinator,
MessageClassWebApplicationCacheManager,
MessageClassWebBatteryManagerProxy,
@@ -52,6 +51,7 @@ enum MessageClass {
MessageClassWebNetworkInfoManagerProxy,
MessageClassWebNotificationManager,
MessageClassWebPage,
+ MessageClassWebPageGroupProxy,
MessageClassWebProcess,
MessageClassWebResourceCacheManager,
MessageClassEventDispatcher,
@@ -65,6 +65,7 @@ enum MessageClass {
MessageClassLayerTreeCoordinatorProxy,
MessageClassWebApplicationCacheManagerProxy,
MessageClassWebBatteryManager,
+ MessageClassWebConnection,
MessageClassWebContext,
MessageClassWebContextLegacy,
MessageClassWebCookieManagerProxy,
@@ -104,6 +105,9 @@ enum MessageClass {
// NPObject messages sent by both the plug-in process and the web process.
MessageClassNPObjectMessageReceiver,
+
+ // Messages sent by the UI process to the network process.
+ MessageClassNetworkProcess,
};
template<typename> struct MessageKindTraits { };
@@ -180,6 +184,11 @@ public:
bool shouldDispatchMessageWhenWaitingForSyncReply() const { return getFlags() & DispatchMessageWhenWaitingForSyncReply; }
bool isSync() const { return getFlags() & SyncMessage; }
+ MessageClass messageClass() const
+ {
+ return static_cast<MessageClass>(getClass());
+ }
+
private:
static inline unsigned stripMostSignificantBit(unsigned value)
{
diff --git a/Source/WebKit2/Platform/CoreIPC/MessageReceiver.h b/Source/WebKit2/Platform/CoreIPC/MessageReceiver.h
new file mode 100644
index 000000000..f7b61ccdc
--- /dev/null
+++ b/Source/WebKit2/Platform/CoreIPC/MessageReceiver.h
@@ -0,0 +1,52 @@
+/*
+ * Copyright (C) 2012 Apple Inc. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef MessageReceiver_h
+#define MessageReceiver_h
+
+#include "MessageID.h"
+#include <wtf/Assertions.h>
+#include <wtf/OwnPtr.h>
+
+namespace CoreIPC {
+
+class ArgumentDecoder;
+class ArgumentEncoder;
+class Connection;
+
+class MessageReceiver {
+public:
+ virtual ~MessageReceiver() { }
+
+ virtual void didReceiveMessage(Connection*, MessageID, ArgumentDecoder*) = 0;
+ virtual void didReceiveSyncMessage(Connection*, MessageID, ArgumentDecoder*, OwnPtr<ArgumentEncoder>&)
+ {
+ ASSERT_NOT_REACHED();
+ }
+};
+
+} // namespace CoreIPC
+
+#endif // MessageReceiver_h
diff --git a/Source/WebKit2/Platform/CoreIPC/MessageReceiverMap.cpp b/Source/WebKit2/Platform/CoreIPC/MessageReceiverMap.cpp
new file mode 100644
index 000000000..e4c666e6b
--- /dev/null
+++ b/Source/WebKit2/Platform/CoreIPC/MessageReceiverMap.cpp
@@ -0,0 +1,77 @@
+/*
+ * Copyright (C) 2012 Apple Inc. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include "config.h"
+#include "MessageReceiverMap.h"
+
+#include "MessageReceiver.h"
+
+namespace CoreIPC {
+
+MessageReceiverMap::MessageReceiverMap()
+{
+}
+
+MessageReceiverMap::~MessageReceiverMap()
+{
+}
+
+void MessageReceiverMap::addMessageReceiver(MessageClass messageClass, MessageReceiver* messageReceiver)
+{
+ ASSERT(!m_globalMessageReceivers.contains(messageClass));
+ m_globalMessageReceivers.set(messageClass, messageReceiver);
+}
+
+void MessageReceiverMap::invalidate()
+{
+ m_globalMessageReceivers.clear();
+}
+
+bool MessageReceiverMap::knowsHowToHandleMessage(MessageID messageID) const
+{
+ return m_globalMessageReceivers.contains(messageID.messageClass());
+}
+
+bool MessageReceiverMap::dispatchMessage(Connection* connection, MessageID messageID, ArgumentDecoder* argumentDecoder)
+{
+ if (MessageReceiver* messageReceiver = m_globalMessageReceivers.get(messageID.messageClass())) {
+ messageReceiver->didReceiveMessage(connection, messageID, argumentDecoder);
+ return true;
+ }
+
+ return false;
+}
+
+bool MessageReceiverMap::dispatchSyncMessage(Connection* connection, MessageID messageID, ArgumentDecoder* argumentDecoder, OwnPtr<ArgumentEncoder>& reply)
+{
+ if (MessageReceiver* messageReceiver = m_globalMessageReceivers.get(messageID.messageClass())) {
+ messageReceiver->didReceiveSyncMessage(connection, messageID, argumentDecoder, reply);
+ return true;
+ }
+
+ return false;
+}
+
+} // namespace CoreIPC
diff --git a/Source/WebKit2/Platform/CoreIPC/MessageReceiverMap.h b/Source/WebKit2/Platform/CoreIPC/MessageReceiverMap.h
new file mode 100644
index 000000000..b3fb2ee2d
--- /dev/null
+++ b/Source/WebKit2/Platform/CoreIPC/MessageReceiverMap.h
@@ -0,0 +1,60 @@
+/*
+ * Copyright (C) 2012 Apple Inc. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef MessageReceiverMap_h
+#define MessageReceiverMap_h
+
+#include "MessageID.h"
+#include <wtf/Forward.h>
+#include <wtf/HashMap.h>
+
+namespace CoreIPC {
+
+class ArgumentEncoder;
+class ArgumentDecoder;
+class Connection;
+class MessageReceiver;
+
+class MessageReceiverMap {
+public:
+ MessageReceiverMap();
+ ~MessageReceiverMap();
+
+ void addMessageReceiver(MessageClass, MessageReceiver*);
+
+ void invalidate();
+ bool knowsHowToHandleMessage(MessageID) const;
+
+ bool dispatchMessage(Connection*, MessageID, ArgumentDecoder*);
+ bool dispatchSyncMessage(Connection*, MessageID, ArgumentDecoder*, OwnPtr<ArgumentEncoder>&);
+
+private:
+ // Message receivers that don't require a destination ID.
+ HashMap<unsigned, MessageReceiver*> m_globalMessageReceivers;
+};
+
+};
+
+#endif // MessageReceiverMap_h
diff --git a/Source/WebKit2/Platform/CoreIPC/mac/ConnectionMac.cpp b/Source/WebKit2/Platform/CoreIPC/mac/ConnectionMac.cpp
index 3db1b83d7..72989dda0 100644
--- a/Source/WebKit2/Platform/CoreIPC/mac/ConnectionMac.cpp
+++ b/Source/WebKit2/Platform/CoreIPC/mac/ConnectionMac.cpp
@@ -111,7 +111,10 @@ bool Connection::open()
m_isConnected = true;
// Send the initialize message, which contains a send right for the server to use.
- deprecatedSend(CoreIPCMessage::InitializeConnection, 0, MachPort(m_receivePort, MACH_MSG_TYPE_MAKE_SEND));
+ OwnPtr<ArgumentEncoder> argumentEncoder = ArgumentEncoder::create(0);
+ argumentEncoder->encode(MachPort(m_receivePort, MACH_MSG_TYPE_MAKE_SEND));
+
+ sendMessage(MessageID(CoreIPCMessage::InitializeConnection), argumentEncoder.release());
// Set the dead name handler for our send port.
initializeDeadNameSource();
@@ -127,7 +130,10 @@ bool Connection::open()
if (m_exceptionPort) {
m_connectionQueue.registerMachPortEventHandler(m_exceptionPort, WorkQueue::MachPortDataAvailable, bind(&Connection::exceptionSourceEventHandler, this));
- deprecatedSend(CoreIPCMessage::SetExceptionPort, 0, MachPort(m_exceptionPort, MACH_MSG_TYPE_MAKE_SEND));
+ OwnPtr<ArgumentEncoder> argumentEncoder = ArgumentEncoder::create(0);
+ argumentEncoder->encode(MachPort(m_exceptionPort, MACH_MSG_TYPE_MAKE_SEND));
+
+ sendMessage(MessageID(CoreIPCMessage::SetExceptionPort), argumentEncoder.release());
}
return true;
diff --git a/Source/WebKit2/Platform/Logging.cpp b/Source/WebKit2/Platform/Logging.cpp
index 17694c993..df98e724e 100644
--- a/Source/WebKit2/Platform/Logging.cpp
+++ b/Source/WebKit2/Platform/Logging.cpp
@@ -37,6 +37,7 @@ WTFLogChannel LogTextInput = { 0x00000004, "WebKit2LogLevel", WTFLogChannelOf
WTFLogChannel LogView = { 0x00000008, "WebKit2LogLevel", WTFLogChannelOff };
WTFLogChannel LogIconDatabase = { 0x00000010, "WebKit2LogLevel", WTFLogChannelOff };
WTFLogChannel LogKeyHandling = { 0x00000020, "WebKit2LogLevel", WTFLogChannelOff };
+WTFLogChannel LogPlugins = { 0x00000040, "WebKit2LogLevel", WTFLogChannelOff };
#if !PLATFORM(MAC) && !PLATFORM(GTK) && !PLATFORM(QT) && !PLATFORM(EFL)
void initializeLogChannel(WTFLogChannel* channel)
@@ -69,6 +70,9 @@ WTFLogChannel* getChannelFromName(const String& channelName)
if (equalIgnoringCase(channelName, String("KeyHandling")))
return &LogKeyHandling;
+ if (equalIgnoringCase(channelName, String("Plugins")))
+ return &LogPlugins;
+
return 0;
}
#endif
@@ -83,6 +87,7 @@ void initializeLogChannelsIfNecessary()
initializeLogChannel(&LogContextMenu);
initializeLogChannel(&LogIconDatabase);
initializeLogChannel(&LogKeyHandling);
+ initializeLogChannel(&LogPlugins);
initializeLogChannel(&LogSessionState);
initializeLogChannel(&LogTextInput);
initializeLogChannel(&LogView);
diff --git a/Source/WebKit2/Platform/Logging.h b/Source/WebKit2/Platform/Logging.h
index 173d604e9..603686f3d 100644
--- a/Source/WebKit2/Platform/Logging.h
+++ b/Source/WebKit2/Platform/Logging.h
@@ -40,6 +40,7 @@ namespace WebKit {
extern WTFLogChannel LogContextMenu;
extern WTFLogChannel LogIconDatabase;
extern WTFLogChannel LogKeyHandling;
+extern WTFLogChannel LogPlugins;
extern WTFLogChannel LogSessionState;
extern WTFLogChannel LogTextInput;
extern WTFLogChannel LogView;
diff --git a/Source/WebKit2/Platform/gtk/WorkQueueGtk.cpp b/Source/WebKit2/Platform/gtk/WorkQueueGtk.cpp
index 1dfab83cc..6885d485b 100644
--- a/Source/WebKit2/Platform/gtk/WorkQueueGtk.cpp
+++ b/Source/WebKit2/Platform/gtk/WorkQueueGtk.cpp
@@ -166,7 +166,7 @@ void WorkQueue::registerEventSourceHandler(int fileDescriptor, int condition, co
Vector<EventSource*> sources;
EventSourceIterator it = m_eventSources.find(fileDescriptor);
if (it != m_eventSources.end())
- sources = it->second;
+ sources = it->value;
sources.append(eventSource);
m_eventSources.set(fileDescriptor, sources);
@@ -186,7 +186,7 @@ void WorkQueue::unregisterEventSourceHandler(int fileDescriptor)
ASSERT(m_eventSources.contains(fileDescriptor));
if (it != m_eventSources.end()) {
- Vector<EventSource*> sources = it->second;
+ Vector<EventSource*> sources = it->value;
for (unsigned i = 0; i < sources.size(); i++)
sources[i]->cancel();
diff --git a/Source/WebKit2/Platform/mac/WorkQueueMac.cpp b/Source/WebKit2/Platform/mac/WorkQueueMac.cpp
index 9e57e150c..ded1d7ac3 100644
--- a/Source/WebKit2/Platform/mac/WorkQueueMac.cpp
+++ b/Source/WebKit2/Platform/mac/WorkQueueMac.cpp
@@ -30,30 +30,39 @@
#include <mach/mach_port.h>
#include <wtf/PassOwnPtr.h>
+struct WorkQueueAndFunction {
+ WorkQueueAndFunction(WorkQueue* workQueue, const Function<void()>& function)
+ : workQueue(workQueue)
+ , function(function)
+ {
+ }
+
+ WorkQueue* workQueue;
+ Function<void()> function;
+};
+
void WorkQueue::executeFunction(void* context)
{
- WorkQueue* queue = static_cast<WorkQueue*>(dispatch_get_context(dispatch_get_current_queue()));
- OwnPtr<Function<void()> > function = adoptPtr(static_cast<Function<void()>*>(context));
+ OwnPtr<WorkQueueAndFunction> workQueueAndFunction = adoptPtr(static_cast<WorkQueueAndFunction*>(context));
{
- MutexLocker locker(queue->m_isValidMutex);
- if (!queue->m_isValid)
+ MutexLocker locker(workQueueAndFunction->workQueue->m_isValidMutex);
+ if (!workQueueAndFunction->workQueue->m_isValid)
return;
}
- (*function)();
+ (workQueueAndFunction->function)();
}
void WorkQueue::dispatch(const Function<void()>& function)
{
- dispatch_async_f(m_dispatchQueue, new Function<void()>(function), executeFunction);
+ dispatch_async_f(m_dispatchQueue, new WorkQueueAndFunction(this, function), executeFunction);
}
void WorkQueue::dispatchAfterDelay(const Function<void()>& function, double delay)
{
dispatch_time_t delayTime = dispatch_time(DISPATCH_TIME_NOW, delay * NSEC_PER_SEC);
-
- dispatch_after_f(delayTime, m_dispatchQueue, new Function<void()>(function), executeFunction);
+ dispatch_after_f(delayTime, m_dispatchQueue, new WorkQueueAndFunction(this, function), executeFunction);
}
class WorkQueue::EventSource {
@@ -155,7 +164,7 @@ void WorkQueue::unregisterMachPortEventHandler(mach_port_t machPort)
ASSERT(m_eventSources.contains(machPort));
- EventSource* eventSource = it->second;
+ EventSource* eventSource = it->value;
// Cancel and release the source. It will be deleted in its finalize handler.
dispatch_source_cancel(eventSource->dispatchSource());
dispatch_release(eventSource->dispatchSource());
diff --git a/Source/WebKit2/Platform/qt/WorkQueueQt.cpp b/Source/WebKit2/Platform/qt/WorkQueueQt.cpp
index aaa2be3d0..9b4f4dc96 100644
--- a/Source/WebKit2/Platform/qt/WorkQueueQt.cpp
+++ b/Source/WebKit2/Platform/qt/WorkQueueQt.cpp
@@ -90,7 +90,7 @@ QSocketNotifier* WorkQueue::registerSocketEventHandler(int socketDescriptor, QSo
notifier->moveToThread(m_workThread);
WorkQueue::WorkItemQt* itemQt = new WorkQueue::WorkItemQt(this, notifier, SIGNAL(activated(int)), function);
itemQt->moveToThread(m_workThread);
- notifier->setEnabled(true);
+ QMetaObject::invokeMethod(notifier, "setEnabled", Q_ARG(bool, true));
return notifier;
}
diff --git a/Source/WebKit2/PlatformEfl.cmake b/Source/WebKit2/PlatformEfl.cmake
index d3932b6dc..a12f44ab2 100644
--- a/Source/WebKit2/PlatformEfl.cmake
+++ b/Source/WebKit2/PlatformEfl.cmake
@@ -7,6 +7,10 @@ LIST(APPEND WebKit2_SOURCES
Platform/CoreIPC/unix/ConnectionUnix.cpp
Platform/CoreIPC/unix/AttachmentUnix.cpp
+ PluginProcess/unix/PluginControllerProxyUnix.cpp
+ PluginProcess/unix/PluginProcessMainUnix.cpp
+ PluginProcess/unix/PluginProcessUnix.cpp
+
Shared/API/c/cairo/WKImageCairo.cpp
Shared/API/c/gtk/WKGraphicsContextGtk.cpp
@@ -28,6 +32,8 @@ LIST(APPEND WebKit2_SOURCES
UIProcess/DefaultUndoController.cpp
+ Shared/Plugins/Netscape/x11/NetscapePluginModuleX11.cpp
+
UIProcess/API/C/efl/WKView.cpp
UIProcess/API/cpp/efl/WKEinaSharedString.cpp
@@ -44,15 +50,19 @@ LIST(APPEND WebKit2_SOURCES
UIProcess/API/efl/ewk_back_forward_list_item.cpp
UIProcess/API/efl/ewk_context.cpp
UIProcess/API/efl/ewk_context_download_client.cpp
+ UIProcess/API/efl/ewk_context_history_client.cpp
UIProcess/API/efl/ewk_context_request_manager_client.cpp
UIProcess/API/efl/ewk_cookie_manager.cpp
UIProcess/API/efl/ewk_download_job.cpp
+ UIProcess/API/efl/ewk_error.cpp
UIProcess/API/efl/ewk_form_submission_request.cpp
UIProcess/API/efl/ewk_intent.cpp
UIProcess/API/efl/ewk_intent_service.cpp
UIProcess/API/efl/ewk_main.cpp
+ UIProcess/API/efl/ewk_navigation_data.cpp
UIProcess/API/efl/ewk_navigation_policy_decision.cpp
UIProcess/API/efl/ewk_popup_menu_item.cpp
+ UIProcess/API/efl/ewk_resource.cpp
UIProcess/API/efl/ewk_settings.cpp
UIProcess/API/efl/ewk_url_request.cpp
UIProcess/API/efl/ewk_url_response.cpp
@@ -64,8 +74,6 @@ LIST(APPEND WebKit2_SOURCES
UIProcess/API/efl/ewk_view_policy_client.cpp
UIProcess/API/efl/ewk_view_resource_load_client.cpp
UIProcess/API/efl/ewk_view_ui_client.cpp
- UIProcess/API/efl/ewk_web_error.cpp
- UIProcess/API/efl/ewk_web_resource.cpp
UIProcess/cairo/BackingStoreCairo.cpp
@@ -85,6 +93,7 @@ LIST(APPEND WebKit2_SOURCES
UIProcess/Launcher/efl/ProcessLauncherEfl.cpp
UIProcess/Plugins/unix/PluginInfoStoreUnix.cpp
+ UIProcess/Plugins/unix/PluginProcessProxyUnix.cpp
WebProcess/Cookies/soup/WebCookieManagerSoup.cpp
WebProcess/Cookies/soup/WebKitSoupCookieJarSqlite.cpp
@@ -94,6 +103,10 @@ LIST(APPEND WebKit2_SOURCES
WebProcess/InjectedBundle/efl/InjectedBundleEfl.cpp
+ WebProcess/Plugins/Netscape/unix/PluginProxyUnix.cpp
+
+ WebProcess/Plugins/Netscape/x11/NetscapePluginX11.cpp
+
WebProcess/WebCoreSupport/efl/WebContextMenuClientEfl.cpp
WebProcess/WebCoreSupport/efl/WebEditorClientEfl.cpp
WebProcess/WebCoreSupport/efl/WebErrorsEfl.cpp
@@ -217,25 +230,49 @@ SET (EWebKit2_HEADERS
"${CMAKE_CURRENT_SOURCE_DIR}/UIProcess/API/efl/ewk_context.h"
"${CMAKE_CURRENT_SOURCE_DIR}/UIProcess/API/efl/ewk_cookie_manager.h"
"${CMAKE_CURRENT_SOURCE_DIR}/UIProcess/API/efl/ewk_download_job.h"
+ "${CMAKE_CURRENT_SOURCE_DIR}/UIProcess/API/efl/ewk_error.h"
"${CMAKE_CURRENT_SOURCE_DIR}/UIProcess/API/efl/ewk_form_submission_request.h"
"${CMAKE_CURRENT_SOURCE_DIR}/UIProcess/API/efl/ewk_intent.h"
"${CMAKE_CURRENT_SOURCE_DIR}/UIProcess/API/efl/ewk_intent_service.h"
"${CMAKE_CURRENT_SOURCE_DIR}/UIProcess/API/efl/ewk_main.h"
+ "${CMAKE_CURRENT_SOURCE_DIR}/UIProcess/API/efl/ewk_navigation_data.h"
"${CMAKE_CURRENT_SOURCE_DIR}/UIProcess/API/efl/ewk_navigation_policy_decision.h"
"${CMAKE_CURRENT_SOURCE_DIR}/UIProcess/API/efl/ewk_popup_menu_item.h"
+ "${CMAKE_CURRENT_SOURCE_DIR}/UIProcess/API/efl/ewk_resource.h"
"${CMAKE_CURRENT_SOURCE_DIR}/UIProcess/API/efl/ewk_settings.h"
"${CMAKE_CURRENT_SOURCE_DIR}/UIProcess/API/efl/ewk_touch.h"
"${CMAKE_CURRENT_SOURCE_DIR}/UIProcess/API/efl/ewk_url_request.h"
"${CMAKE_CURRENT_SOURCE_DIR}/UIProcess/API/efl/ewk_url_response.h"
"${CMAKE_CURRENT_SOURCE_DIR}/UIProcess/API/efl/ewk_url_scheme_request.h"
"${CMAKE_CURRENT_SOURCE_DIR}/UIProcess/API/efl/ewk_view.h"
- "${CMAKE_CURRENT_SOURCE_DIR}/UIProcess/API/efl/ewk_web_error.h"
- "${CMAKE_CURRENT_SOURCE_DIR}/UIProcess/API/efl/ewk_web_resource.h"
)
INSTALL(FILES ${CMAKE_BINARY_DIR}/WebKit2/efl/ewebkit2.pc DESTINATION lib/pkgconfig)
INSTALL(FILES ${EWebKit2_HEADERS} DESTINATION include/${WebKit2_LIBRARY_NAME}-${PROJECT_VERSION_MAJOR})
+IF (ENABLE_PLUGIN_PROCESS)
+ ADD_DEFINITIONS(-DENABLE_PLUGIN_PROCESS=1)
+
+ SET (PluginProcess_EXECUTABLE_NAME PluginProcess)
+ LIST (APPEND PluginProcess_INCLUDE_DIRECTORIES
+ "${WEBKIT2_DIR}/PluginProcess/unix"
+ )
+
+ INCLUDE_DIRECTORIES(${PluginProcess_INCLUDE_DIRECTORIES})
+
+ LIST (APPEND PluginProcess_SOURCES
+ ${WEBKIT2_DIR}/unix/PluginMainUnix.cpp
+ )
+
+ SET(PluginProcess_LIBRARIES
+ ${WebKit2_LIBRARY_NAME}
+ )
+
+ ADD_EXECUTABLE(${PluginProcess_EXECUTABLE_NAME} ${PluginProcess_SOURCES})
+ TARGET_LINK_LIBRARIES(${PluginProcess_EXECUTABLE_NAME} ${PluginProcess_LIBRARIES})
+ INSTALL(TARGETS ${PluginProcess_EXECUTABLE_NAME} DESTINATION "${EXEC_INSTALL_DIR}")
+ENDIF () # ENABLE_PLUGIN_PROCESS
+
INCLUDE_DIRECTORIES(${THIRDPARTY_DIR}/gtest/include)
SET(EWK2UnitTests_LIBRARIES
@@ -288,6 +325,7 @@ TARGET_LINK_LIBRARIES(ewk2UnitTestUtils ${EWK2UnitTests_LIBRARIES})
SET(EWK2UnitTests_BINARIES
test_ewk2_back_forward_list
test_ewk2_context
+ test_ewk2_context_history_callbacks
test_ewk2_cookie_manager
test_ewk2_download_job
test_ewk2_eina_shared_string
@@ -306,6 +344,7 @@ IF (ENABLE_API_TESTS)
ENDFOREACH ()
ADD_LIBRARY(ewk2UnitTestInjectedBundleSample SHARED ${TEST_INJECTED_BUNDLE_DIR}/injected_bundle_sample.cpp)
+ TARGET_LINK_LIBRARIES(ewk2UnitTestInjectedBundleSample ${WebKit2_LIBRARY_NAME})
ENDIF ()
IF (ENABLE_INSPECTOR)
diff --git a/Source/WebKit2/PluginProcess.pro b/Source/WebKit2/PluginProcess.pro
index 8113afd20..82a8c2f17 100644
--- a/Source/WebKit2/PluginProcess.pro
+++ b/Source/WebKit2/PluginProcess.pro
@@ -6,7 +6,7 @@
TEMPLATE = app
-QT += webkit
+QT += webkitwidgets
TARGET = QtWebPluginProcess
DESTDIR = $${ROOT_BUILD_DIR}/bin
diff --git a/Source/WebKit2/PluginProcess/PluginControllerProxy.cpp b/Source/WebKit2/PluginProcess/PluginControllerProxy.cpp
index 31a5d61a6..cef3d40a4 100644
--- a/Source/WebKit2/PluginProcess/PluginControllerProxy.cpp
+++ b/Source/WebKit2/PluginProcess/PluginControllerProxy.cpp
@@ -521,6 +521,21 @@ void PluginControllerProxy::handleKeyboardEvent(const WebKeyboardEvent& keyboard
handled = m_plugin->handleKeyboardEvent(keyboardEvent);
}
+void PluginControllerProxy::handleEditingCommand(const String& commandName, const String& argument, bool& handled)
+{
+ handled = m_plugin->handleEditingCommand(commandName, argument);
+}
+
+void PluginControllerProxy::isEditingCommandEnabled(const String& commandName, bool& enabled)
+{
+ enabled = m_plugin->isEditingCommandEnabled(commandName);
+}
+
+void PluginControllerProxy::handlesPageScaleFactor(bool& isHandled)
+{
+ isHandled = m_plugin->handlesPageScaleFactor();
+}
+
void PluginControllerProxy::paintEntirePlugin()
{
if (m_pluginSize.isEmpty())
diff --git a/Source/WebKit2/PluginProcess/PluginControllerProxy.h b/Source/WebKit2/PluginProcess/PluginControllerProxy.h
index b4a40673e..83dd3fb74 100644
--- a/Source/WebKit2/PluginProcess/PluginControllerProxy.h
+++ b/Source/WebKit2/PluginProcess/PluginControllerProxy.h
@@ -137,6 +137,9 @@ private:
void handleMouseEnterEvent(const WebMouseEvent&, bool& handled);
void handleMouseLeaveEvent(const WebMouseEvent&, bool& handled);
void handleKeyboardEvent(const WebKeyboardEvent&, bool& handled);
+ void handleEditingCommand(const String&, const String&, bool&);
+ void isEditingCommandEnabled(const String&, bool&);
+ void handlesPageScaleFactor(bool&);
void paintEntirePlugin();
void snapshot(ShareableBitmap::Handle& backingStoreHandle);
void setFocus(bool);
diff --git a/Source/WebKit2/PluginProcess/PluginControllerProxy.messages.in b/Source/WebKit2/PluginProcess/PluginControllerProxy.messages.in
index d7c2d02b2..0671a23c0 100644
--- a/Source/WebKit2/PluginProcess/PluginControllerProxy.messages.in
+++ b/Source/WebKit2/PluginProcess/PluginControllerProxy.messages.in
@@ -73,6 +73,15 @@ messages -> PluginControllerProxy {
# Sent when a keyboard should be processed.
HandleKeyboardEvent(WebKit::WebKeyboardEvent keyboardEvent) -> (bool handled)
+
+ # Sent when an editing command should be processed.
+ HandleEditingCommand(WTF::String commandName, WTF::String argument) -> (bool handled);
+
+ # Return whether or not a plugin wants to enable the given editing command.
+ IsEditingCommandEnabled(WTF::String commandName) -> (bool enabled);
+
+ # Return whether or not a plugin wants to handle page scale factor itself.
+ HandlesPageScaleFactor() -> (bool enabled);
# Sent when the plug-in focus changes.
SetFocus(bool isFocused)
diff --git a/Source/WebKit2/PluginProcess/PluginProcess.cpp b/Source/WebKit2/PluginProcess/PluginProcess.cpp
index 1bffafe74..7125d7d86 100644
--- a/Source/WebKit2/PluginProcess/PluginProcess.cpp
+++ b/Source/WebKit2/PluginProcess/PluginProcess.cpp
@@ -150,10 +150,6 @@ void PluginProcess::didReceiveInvalidMessage(CoreIPC::Connection*, CoreIPC::Mess
{
}
-void PluginProcess::syncMessageSendTimedOut(CoreIPC::Connection*)
-{
-}
-
void PluginProcess::initializePluginProcess(const PluginProcessCreationParameters& parameters)
{
ASSERT(!m_pluginModule);
diff --git a/Source/WebKit2/PluginProcess/PluginProcess.h b/Source/WebKit2/PluginProcess/PluginProcess.h
index be34e9fce..645153cee 100644
--- a/Source/WebKit2/PluginProcess/PluginProcess.h
+++ b/Source/WebKit2/PluginProcess/PluginProcess.h
@@ -77,7 +77,6 @@ private:
virtual void didReceiveMessage(CoreIPC::Connection*, CoreIPC::MessageID, CoreIPC::ArgumentDecoder*);
virtual void didClose(CoreIPC::Connection*);
virtual void didReceiveInvalidMessage(CoreIPC::Connection*, CoreIPC::MessageID);
- virtual void syncMessageSendTimedOut(CoreIPC::Connection*);
// Message handlers.
void didReceivePluginProcessMessage(CoreIPC::Connection*, CoreIPC::MessageID, CoreIPC::ArgumentDecoder*);
diff --git a/Source/WebKit2/PluginProcess/WebProcessConnection.cpp b/Source/WebKit2/PluginProcess/WebProcessConnection.cpp
index 1d95df1ed..0507d613b 100644
--- a/Source/WebKit2/PluginProcess/WebProcessConnection.cpp
+++ b/Source/WebKit2/PluginProcess/WebProcessConnection.cpp
@@ -237,10 +237,6 @@ void WebProcessConnection::didReceiveInvalidMessage(CoreIPC::Connection*, CoreIP
// FIXME: Implement.
}
-void WebProcessConnection::syncMessageSendTimedOut(CoreIPC::Connection*)
-{
-}
-
void WebProcessConnection::createPluginInternal(const PluginCreationParameters& creationParameters, bool& result, bool& wantsWheelEvents, uint32_t& remoteLayerClientID)
{
OwnPtr<PluginControllerProxy> pluginControllerProxy = PluginControllerProxy::create(this, creationParameters);
@@ -260,6 +256,8 @@ void WebProcessConnection::createPluginInternal(const PluginCreationParameters&
wantsWheelEvents = pluginControllerProxyPtr->wantsWheelEvents();
#if PLATFORM(MAC)
remoteLayerClientID = pluginControllerProxyPtr->remoteLayerClientID();
+#else
+ UNUSED_PARAM(remoteLayerClientID);
#endif
}
diff --git a/Source/WebKit2/PluginProcess/WebProcessConnection.h b/Source/WebKit2/PluginProcess/WebProcessConnection.h
index ce98e1036..8296b5470 100644
--- a/Source/WebKit2/PluginProcess/WebProcessConnection.h
+++ b/Source/WebKit2/PluginProcess/WebProcessConnection.h
@@ -66,7 +66,6 @@ private:
virtual void didReceiveSyncMessage(CoreIPC::Connection*, CoreIPC::MessageID, CoreIPC::ArgumentDecoder*, OwnPtr<CoreIPC::ArgumentEncoder>&);
virtual void didClose(CoreIPC::Connection*);
virtual void didReceiveInvalidMessage(CoreIPC::Connection*, CoreIPC::MessageID);
- virtual void syncMessageSendTimedOut(CoreIPC::Connection*);
// Message handlers.
void didReceiveWebProcessConnectionMessage(CoreIPC::Connection*, CoreIPC::MessageID, CoreIPC::ArgumentDecoder*);
diff --git a/Source/WebKit2/PluginProcess/mac/PluginProcessMac.mm b/Source/WebKit2/PluginProcess/mac/PluginProcessMac.mm
index 6a313f26c..de7d5831f 100644
--- a/Source/WebKit2/PluginProcess/mac/PluginProcessMac.mm
+++ b/Source/WebKit2/PluginProcess/mac/PluginProcessMac.mm
@@ -189,11 +189,18 @@ static unsigned modalCount = 0;
static void beginModal()
{
+#if COMPILER(CLANG)
+#pragma clang diagnostic push
+#pragma clang diagnostic ignored "-Wdeprecated-declarations"
+#endif
// Make sure to make ourselves the front process
ProcessSerialNumber psn;
GetCurrentProcess(&psn);
SetFrontProcess(&psn);
-
+#if COMPILER(CLANG)
+#pragma clang diagnostic pop
+#endif
+
if (!modalCount++)
setModal(true);
}
diff --git a/Source/WebKit2/PluginProcess/mac/PluginProcessMainMac.mm b/Source/WebKit2/PluginProcess/mac/PluginProcessMainMac.mm
index 45b56b925..ffe1e2dd3 100644
--- a/Source/WebKit2/PluginProcess/mac/PluginProcessMainMac.mm
+++ b/Source/WebKit2/PluginProcess/mac/PluginProcessMainMac.mm
@@ -84,9 +84,10 @@ int PluginProcessMain(const CommandLine& commandLine)
}
String localization = commandLine["localization"];
- RetainPtr<CFStringRef> cfLocalization(AdoptCF, CFStringCreateWithCharacters(0, reinterpret_cast<const UniChar*>(localization.characters()), localization.length()));
- if (cfLocalization)
+ if (!localization.isEmpty()) {
+ RetainPtr<CFStringRef> cfLocalization(AdoptCF, CFStringCreateWithCharacters(0, reinterpret_cast<const UniChar*>(localization.characters()), localization.length()));
WKSetDefaultLocalization(cfLocalization.get());
+ }
#if defined(__i386__)
{
diff --git a/Source/WebKit2/PluginProcess/qt/PluginProcessMainQt.cpp b/Source/WebKit2/PluginProcess/qt/PluginProcessMainQt.cpp
index 8cb6bcdf5..ac6f2c1bd 100644
--- a/Source/WebKit2/PluginProcess/qt/PluginProcessMainQt.cpp
+++ b/Source/WebKit2/PluginProcess/qt/PluginProcessMainQt.cpp
@@ -44,10 +44,10 @@ using namespace WebCore;
namespace WebKit {
-static void messageHandler(QtMsgType type, const char* message)
+static void messageHandler(QtMsgType type, const QMessageLogContext&, const QString& message)
{
if (type == QtCriticalMsg) {
- fprintf(stderr, "%s\n", message);
+ fprintf(stderr, "%s\n", qPrintable(message));
return;
}
@@ -71,7 +71,7 @@ Q_DECL_EXPORT int PluginProcessMain(int argc, char** argv)
{
QByteArray suppressOutput = qgetenv("QT_WEBKIT_SUPPRESS_WEB_PROCESS_OUTPUT");
if (!suppressOutput.isEmpty() && suppressOutput != "0")
- qInstallMsgHandler(messageHandler);
+ qInstallMessageHandler(messageHandler);
QGuiApplication app(argc, argv);
diff --git a/Source/WebKit2/PluginProcess/gtk/PluginControllerProxyGtk.cpp b/Source/WebKit2/PluginProcess/unix/PluginControllerProxyUnix.cpp
index cbcc1d730..cbcc1d730 100644
--- a/Source/WebKit2/PluginProcess/gtk/PluginControllerProxyGtk.cpp
+++ b/Source/WebKit2/PluginProcess/unix/PluginControllerProxyUnix.cpp
diff --git a/Source/WebKit2/PluginProcess/gtk/PluginProcessMainGtk.cpp b/Source/WebKit2/PluginProcess/unix/PluginProcessMainUnix.cpp
index 870c01c27..4113d3dfa 100644
--- a/Source/WebKit2/PluginProcess/gtk/PluginProcessMainGtk.cpp
+++ b/Source/WebKit2/PluginProcess/unix/PluginProcessMainUnix.cpp
@@ -1,5 +1,7 @@
/*
* Copyright (C) 2011 Igalia S.L.
+ * Copyright (C) 2011 Apple Inc.
+ * Copyright (C) 2012 Samsung Electronics
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
@@ -10,10 +12,10 @@
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
*
- * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ``AS IS''
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
* THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS
* BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
@@ -24,44 +26,65 @@
*/
#include "config.h"
-#include "PluginProcessMainGtk.h"
+#include "PluginProcessMainUnix.h"
+#include "Logging.h"
#include "NetscapePlugin.h"
#include "PluginProcess.h"
+#include "ScriptController.h"
#include <WebCore/RunLoop.h>
+#if PLATFORM(GTK)
#include <gdk/gdkx.h>
#include <gtk/gtk.h>
-#include <runtime/InitializeThreading.h>
-#include <wtf/MainThread.h>
+#elif PLATFORM(EFL) && HAVE_ECORE_X
+#include <Ecore_X.h>
+#endif
using namespace WebCore;
namespace WebKit {
-static int webkitgtkXError(Display* xdisplay, XErrorEvent* error)
+#ifdef XP_UNIX
+
+#if !LOG_DISABLED
+static const char xErrorString[] = "The program '%s' received an X Window System error.\n"
+ "This probably reflects a bug in a browser plugin.\n"
+ "The error was '%s'.\n"
+ " (Details: serial %ld error_code %d request_code %d minor_code %d)\n";
+#endif /* !LOG_DISABLED */
+
+static char* programName = 0;
+
+static int webkitXError(Display* xdisplay, XErrorEvent* error)
{
- gchar errorMessage[64];
+ char errorMessage[64];
XGetErrorText(xdisplay, error->error_code, errorMessage, 63);
- g_warning("The program '%s' received an X Window System error.\n"
- "This probably reflects a bug in a browser plugin.\n"
- "The error was '%s'.\n"
- " (Details: serial %ld error_code %d request_code %d minor_code %d)\n",
- g_get_prgname(), errorMessage,
- error->serial, error->error_code,
- error->request_code, error->minor_code);
+
+ LOG(Plugins, xErrorString,
+ programName, errorMessage,
+ error->serial, error->error_code,
+ error->request_code, error->minor_code);
+
return 0;
}
+#endif
-WK_EXPORT int PluginProcessMainGtk(int argc, char* argv[])
+WK_EXPORT int PluginProcessMainUnix(int argc, char* argv[])
{
ASSERT(argc == 2 || argc == 3);
bool scanPlugin = !strcmp(argv[1], "-scanPlugin");
ASSERT(argc == 2 || (argc == 3 && scanPlugin));
+#if PLATFORM(GTK)
gtk_init(&argc, &argv);
+#elif PLATFORM(EFL)
+#ifdef HAVE_ECORE_X
+ if (!ecore_x_init(0))
+#endif
+ return 1;
+#endif
- JSC::initializeThreading();
- WTF::initializeMainThread();
+ ScriptController::initializeThreading();
if (scanPlugin) {
String pluginPath(argv[2]);
@@ -75,7 +98,10 @@ WK_EXPORT int PluginProcessMainGtk(int argc, char* argv[])
// Plugins can produce X errors that are handled by the GDK X error handler, which
// exits the process. Since we don't want to crash due to plugin bugs, we install a
// custom error handler to show a warning when a X error happens without aborting.
- XSetErrorHandler(webkitgtkXError);
+#if defined(XP_UNIX)
+ programName = basename(argv[0]);
+ XSetErrorHandler(webkitXError);
+#endif
int socket = atoi(argv[1]);
WebKit::PluginProcess::shared().initialize(socket, RunLoop::main());
@@ -85,5 +111,3 @@ WK_EXPORT int PluginProcessMainGtk(int argc, char* argv[])
}
} // namespace WebKit
-
-
diff --git a/Source/WebKit2/PluginProcess/gtk/PluginProcessMainGtk.h b/Source/WebKit2/PluginProcess/unix/PluginProcessMainUnix.h
index 39cc6e659..540c596aa 100644
--- a/Source/WebKit2/PluginProcess/gtk/PluginProcessMainGtk.h
+++ b/Source/WebKit2/PluginProcess/unix/PluginProcessMainUnix.h
@@ -24,8 +24,8 @@
* THE POSSIBILITY OF SUCH DAMAGE.
*/
-#ifndef PluginProcessMainGtk_h
-#define PluginProcessMainGtk_h
+#ifndef PluginProcessMainUnix_h
+#define PluginProcessMainUnix_h
#include <WebKit2/WKBase.h>
@@ -33,7 +33,7 @@ namespace WebKit {
#ifdef __cplusplus
extern "C" {
-WK_EXPORT int PluginProcessMainGtk(int argc, char* argv[]);
+WK_EXPORT int PluginProcessMainUnix(int argc, char* argv[]);
} // extern "C"
#endif // __cplusplus
diff --git a/Source/WebKit2/PluginProcess/gtk/PluginProcessGtk.cpp b/Source/WebKit2/PluginProcess/unix/PluginProcessUnix.cpp
index ee78f9a7b..50daa02aa 100644
--- a/Source/WebKit2/PluginProcess/gtk/PluginProcessGtk.cpp
+++ b/Source/WebKit2/PluginProcess/unix/PluginProcessUnix.cpp
@@ -33,7 +33,7 @@
namespace WebKit {
-void PluginProcess::platformInitialize(const PluginProcessCreationParameters& parameters)
+void PluginProcess::platformInitialize(const PluginProcessCreationParameters&)
{
notImplemented();
}
diff --git a/Source/WebKit2/Scripts/webkit2/messages.py b/Source/WebKit2/Scripts/webkit2/messages.py
index bd9dc9a28..e15dc1b15 100644
--- a/Source/WebKit2/Scripts/webkit2/messages.py
+++ b/Source/WebKit2/Scripts/webkit2/messages.py
@@ -26,6 +26,7 @@ from webkit2 import parser
DELAYED_ATTRIBUTE = 'Delayed'
DISPATCH_ON_CONNECTION_QUEUE_ATTRIBUTE = 'DispatchOnConnectionQueue'
+VARIADIC_ATTRIBUTE = 'Variadic'
_license_header = """/*
* Copyright (C) 2010 Apple Inc. All rights reserved.
@@ -71,15 +72,6 @@ def messages_to_kind_enum(messages):
result.append('};\n')
return ''.join(result)
-
-def message_is_variadic(message):
- variadic_types = frozenset([
- 'WebKit::InjectedBundleUserMessageEncoder',
- 'WebKit::WebContextUserMessageEncoder',
- ])
-
- return len(message.parameters) and message.parameters[-1].type in variadic_types
-
def function_parameter_type(type):
# Don't use references for built-in types.
builtin_types = frozenset([
@@ -122,7 +114,7 @@ def reply_type(message):
def decode_type(message):
- if message_is_variadic(message):
+ if message.has_attribute(VARIADIC_ATTRIBUTE):
return arguments_type(message.parameters[:-1], reply_parameter_type)
return base_class(message)
@@ -197,6 +189,7 @@ def struct_or_class(namespace, type):
'WebKit::DictionaryPopupInfo',
'WebKit::DrawingAreaInfo',
'WebKit::EditorState',
+ 'WebKit::NetworkProcessCreationParameters',
'WebKit::PlatformPopupMenuData',
'WebKit::PluginCreationParameters',
'WebKit::PluginProcessCreationParameters',
@@ -313,7 +306,7 @@ def handler_function(receiver, message):
def async_case_statement(receiver, message):
dispatch_function_args = ['arguments', 'this', '&%s' % handler_function(receiver, message)]
dispatch_function = 'handleMessage'
- if message_is_variadic(message):
+ if message.has_attribute(VARIADIC_ATTRIBUTE):
dispatch_function += 'Variadic'
if message.has_attribute(DISPATCH_ON_CONNECTION_QUEUE_ATTRIBUTE):
dispatch_function += 'OnConnectionQueue'
@@ -333,7 +326,7 @@ def sync_case_statement(receiver, message):
dispatch_function = 'handleMessage'
if message.has_attribute(DELAYED_ATTRIBUTE):
dispatch_function += 'Delayed'
- if message_is_variadic(message):
+ if message.has_attribute(VARIADIC_ATTRIBUTE):
dispatch_function += 'Variadic'
result = []
diff --git a/Source/WebKit2/Shared/API/c/WKArray.cpp b/Source/WebKit2/Shared/API/c/WKArray.cpp
index 6ca9af273..5bf35e3c3 100644
--- a/Source/WebKit2/Shared/API/c/WKArray.cpp
+++ b/Source/WebKit2/Shared/API/c/WKArray.cpp
@@ -42,6 +42,12 @@ WKArrayRef WKArrayCreate(WKTypeRef* values, size_t numberOfValues)
return toAPI(array.release().leakRef());
}
+WKArrayRef WKArrayCreateAdoptingValues(WKTypeRef* values, size_t numberOfValues)
+{
+ RefPtr<ImmutableArray> array = ImmutableArray::adopt(reinterpret_cast<APIObject**>(const_cast<void**>(values)), numberOfValues);
+ return toAPI(array.release().leakRef());
+}
+
WKTypeRef WKArrayGetItemAtIndex(WKArrayRef arrayRef, size_t index)
{
return toImpl(arrayRef)->at(index);
diff --git a/Source/WebKit2/Shared/API/c/WKArray.h b/Source/WebKit2/Shared/API/c/WKArray.h
index da4560a0a..25900f313 100644
--- a/Source/WebKit2/Shared/API/c/WKArray.h
+++ b/Source/WebKit2/Shared/API/c/WKArray.h
@@ -37,6 +37,7 @@ extern "C" {
WK_EXPORT WKTypeID WKArrayGetTypeID();
WK_EXPORT WKArrayRef WKArrayCreate(WKTypeRef* values, size_t numberOfValues);
+WK_EXPORT WKArrayRef WKArrayCreateAdoptingValues(WKTypeRef* values, size_t numberOfValues);
WK_EXPORT WKTypeRef WKArrayGetItemAtIndex(WKArrayRef array, size_t index);
WK_EXPORT size_t WKArrayGetSize(WKArrayRef array);
diff --git a/Source/WebKit2/Shared/API/c/WKBase.h b/Source/WebKit2/Shared/API/c/WKBase.h
index ab6ca84cd..1a2761024 100644
--- a/Source/WebKit2/Shared/API/c/WKBase.h
+++ b/Source/WebKit2/Shared/API/c/WKBase.h
@@ -79,6 +79,18 @@ typedef const struct OpaqueWKURLRequest* WKURLRequestRef;
typedef const struct OpaqueWKURLResponse* WKURLResponseRef;
typedef const struct OpaqueWKUserContentURLPattern* WKUserContentURLPatternRef;
+enum WKUserContentInjectedFrames {
+ kWKInjectInAllFrames,
+ kWKInjectInTopFrameOnly
+};
+typedef enum WKUserContentInjectedFrames WKUserContentInjectedFrames;
+
+enum WKUserScriptInjectionTime {
+ kWKInjectAtDocumentStart,
+ kWKInjectAtDocumentEnd
+};
+typedef enum WKUserScriptInjectionTime WKUserScriptInjectionTime;
+
/* WebKit2 main API types */
typedef const struct OpaqueWKApplicationCacheManager* WKApplicationCacheManagerRef;
diff --git a/Source/WebKit2/Shared/API/c/WKSharedAPICast.h b/Source/WebKit2/Shared/API/c/WKSharedAPICast.h
index 94a77e176..86940ffed 100644
--- a/Source/WebKit2/Shared/API/c/WKSharedAPICast.h
+++ b/Source/WebKit2/Shared/API/c/WKSharedAPICast.h
@@ -48,6 +48,8 @@
#include <WebCore/FrameLoaderTypes.h>
#include <WebCore/IntRect.h>
#include <WebCore/LayoutMilestones.h>
+#include <WebCore/UserContentTypes.h>
+#include <WebCore/UserScriptTypes.h>
#include <wtf/TypeTraits.h>
namespace WebKit {
@@ -811,6 +813,32 @@ inline SnapshotOptions toSnapshotOptions(WKSnapshotOptions wkSnapshotOptions)
return snapshotOptions;
}
+inline WebCore::UserScriptInjectionTime toUserScriptInjectionTime(WKUserScriptInjectionTime wkInjectedTime)
+{
+ switch (wkInjectedTime) {
+ case kWKInjectAtDocumentStart:
+ return WebCore::InjectAtDocumentStart;
+ case kWKInjectAtDocumentEnd:
+ return WebCore::InjectAtDocumentEnd;
+ }
+
+ ASSERT_NOT_REACHED();
+ return WebCore::InjectAtDocumentStart;
+}
+
+inline WebCore::UserContentInjectedFrames toUserContentInjectedFrames(WKUserContentInjectedFrames wkInjectedFrames)
+{
+ switch (wkInjectedFrames) {
+ case kWKInjectInAllFrames:
+ return WebCore::InjectInAllFrames;
+ case kWKInjectInTopFrameOnly:
+ return WebCore::InjectInTopFrameOnly;
+ }
+
+ ASSERT_NOT_REACHED();
+ return WebCore::InjectInAllFrames;
+}
+
} // namespace WebKit
#endif // WKSharedAPICast_h
diff --git a/Source/WebKit2/Shared/API/c/WKURLResponse.cpp b/Source/WebKit2/Shared/API/c/WKURLResponse.cpp
index 2d25f282a..875ad3df5 100644
--- a/Source/WebKit2/Shared/API/c/WKURLResponse.cpp
+++ b/Source/WebKit2/Shared/API/c/WKURLResponse.cpp
@@ -51,3 +51,13 @@ int32_t WKURLResponseHTTPStatusCode(WKURLResponseRef responseRef)
{
return toImpl(responseRef)->resourceResponse().httpStatusCode();
}
+
+WKStringRef WKURLResponseCopySuggestedFilename(WKURLResponseRef responseRef)
+{
+ return toCopiedAPI(toImpl(responseRef)->resourceResponse().suggestedFilename());
+}
+
+bool WKURLResponseIsAttachment(WKURLResponseRef responseRef)
+{
+ return toImpl(responseRef)->resourceResponse().isAttachment();
+}
diff --git a/Source/WebKit2/Shared/API/c/WKURLResponse.h b/Source/WebKit2/Shared/API/c/WKURLResponse.h
index d4c269340..08f91d4f3 100644
--- a/Source/WebKit2/Shared/API/c/WKURLResponse.h
+++ b/Source/WebKit2/Shared/API/c/WKURLResponse.h
@@ -40,6 +40,10 @@ WK_EXPORT WKStringRef WKURLResponseCopyMIMEType(WKURLResponseRef);
WK_EXPORT int32_t WKURLResponseHTTPStatusCode(WKURLResponseRef);
+WK_EXPORT WKStringRef WKURLResponseCopySuggestedFilename(WKURLResponseRef);
+
+WK_EXPORT bool WKURLResponseIsAttachment(WKURLResponseRef);
+
#ifdef __cplusplus
}
#endif
diff --git a/Source/WebKit2/Shared/API/c/cf/WKURLCF.cpp b/Source/WebKit2/Shared/API/c/cf/WKURLCF.cpp
index e1d4ee7bb..4e40bdf4e 100644
--- a/Source/WebKit2/Shared/API/c/cf/WKURLCF.cpp
+++ b/Source/WebKit2/Shared/API/c/cf/WKURLCF.cpp
@@ -38,6 +38,9 @@ using namespace WebKit;
WKURLRef WKURLCreateWithCFURL(CFURLRef cfURL)
{
+ if (!cfURL)
+ return 0;
+
String urlString(CFURLGetString(cfURL));
return toCopiedURLAPI(urlString);
}
diff --git a/Source/WebKit2/Shared/APIClientTraits.cpp b/Source/WebKit2/Shared/APIClientTraits.cpp
index 76f13ad1f..eb7a51bfa 100644
--- a/Source/WebKit2/Shared/APIClientTraits.cpp
+++ b/Source/WebKit2/Shared/APIClientTraits.cpp
@@ -40,6 +40,7 @@ const size_t APIClientTraits<WKBundlePageLoaderClient>::interfaceSizesByVersion[
offsetof(WKBundlePageLoaderClient, didLayoutForFrame),
offsetof(WKBundlePageLoaderClient, didFinishProgress),
offsetof(WKBundlePageLoaderClient, didReceiveIntentForFrame),
+ offsetof(WKBundlePageLoaderClient, registerIntentServiceForFrame),
sizeof(WKBundlePageLoaderClient)
};
@@ -86,4 +87,9 @@ const size_t APIClientTraits<WKContextInjectedBundleClient>::interfaceSizesByVer
sizeof(WKContextInjectedBundleClient)
};
+const size_t APIClientTraits<WKIconDatabaseClient>::interfaceSizesByVersion[] = {
+ offsetof(WKIconDatabaseClient, iconDataReadyForPageURL),
+ sizeof(WKIconDatabaseClient)
+};
+
} // namespace WebKit
diff --git a/Source/WebKit2/Shared/APIClientTraits.h b/Source/WebKit2/Shared/APIClientTraits.h
index 9b7663d0a..4ad4fb1b2 100644
--- a/Source/WebKit2/Shared/APIClientTraits.h
+++ b/Source/WebKit2/Shared/APIClientTraits.h
@@ -29,6 +29,7 @@
#include "WKBundle.h"
#include "WKBundlePage.h"
#include "WKContext.h"
+#include "WKIconDatabase.h"
#include "WKPage.h"
namespace WebKit {
@@ -43,7 +44,7 @@ template<> struct APIClientTraits<WKBundleClient> {
};
template<> struct APIClientTraits<WKBundlePageLoaderClient> {
- static const size_t interfaceSizesByVersion[4];
+ static const size_t interfaceSizesByVersion[5];
};
template<> struct APIClientTraits<WKBundlePageResourceLoadClient> {
@@ -78,6 +79,10 @@ template<> struct APIClientTraits<WKContextInjectedBundleClient> {
static const size_t interfaceSizesByVersion[2];
};
+template<> struct APIClientTraits<WKIconDatabaseClient> {
+ static const size_t interfaceSizesByVersion[2];
+};
+
} // namespace WebKit
#endif // APIClientTraits_h
diff --git a/Source/WebKit2/Shared/ImmutableArray.cpp b/Source/WebKit2/Shared/ImmutableArray.cpp
index 67b2a34c5..2d45ae9be 100644
--- a/Source/WebKit2/Shared/ImmutableArray.cpp
+++ b/Source/WebKit2/Shared/ImmutableArray.cpp
@@ -32,6 +32,13 @@ ImmutableArray::ImmutableArray()
{
}
+ImmutableArray::ImmutableArray(AdoptTag, APIObject** entries, size_t size)
+ : m_entries(size)
+{
+ for (size_t i = 0; i < size; ++i)
+ m_entries[i] = adoptRef(entries[i]);
+}
+
ImmutableArray::ImmutableArray(APIObject** entries, size_t size)
: m_entries(size)
{
diff --git a/Source/WebKit2/Shared/ImmutableArray.h b/Source/WebKit2/Shared/ImmutableArray.h
index e26e4aa5d..d2208cdc4 100644
--- a/Source/WebKit2/Shared/ImmutableArray.h
+++ b/Source/WebKit2/Shared/ImmutableArray.h
@@ -38,6 +38,7 @@ namespace WebKit {
class ImmutableArray : public APIObject {
public:
static const Type APIType = TypeArray;
+ enum AdoptTag { Adopt };
static PassRefPtr<ImmutableArray> create()
{
@@ -47,6 +48,10 @@ public:
{
return adoptRef(new ImmutableArray(entries, size));
}
+ static PassRefPtr<ImmutableArray> adopt(APIObject** entries, size_t size)
+ {
+ return adoptRef(new ImmutableArray(Adopt, entries, size));
+ }
static PassRefPtr<ImmutableArray> adopt(Vector<RefPtr<APIObject> >& entries)
{
return adoptRef(new ImmutableArray(entries));
@@ -64,7 +69,8 @@ public:
protected:
ImmutableArray();
- ImmutableArray(APIObject** entries, size_t size);
+ ImmutableArray(AdoptTag, APIObject** entries, size_t);
+ ImmutableArray(APIObject** entries, size_t);
ImmutableArray(Vector<RefPtr<APIObject> >& entries);
virtual Type type() const { return APIType; }
diff --git a/Source/WebKit2/Shared/Network/NetworkProcessCreationParameters.cpp b/Source/WebKit2/Shared/Network/NetworkProcessCreationParameters.cpp
new file mode 100644
index 000000000..efbe3572d
--- /dev/null
+++ b/Source/WebKit2/Shared/Network/NetworkProcessCreationParameters.cpp
@@ -0,0 +1,58 @@
+/*
+ * Copyright (C) 2012 Apple Inc. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include "config.h"
+#include "NetworkProcessCreationParameters.h"
+
+#if ENABLE(NETWORK_PROCESS)
+
+#include "ArgumentCoders.h"
+
+namespace WebKit {
+
+NetworkProcessCreationParameters::NetworkProcessCreationParameters()
+{
+}
+
+void NetworkProcessCreationParameters::encode(CoreIPC::ArgumentEncoder* encoder) const
+{
+#if PLATFORM(MAC)
+ encoder->encode(parentProcessName);
+#endif
+}
+
+bool NetworkProcessCreationParameters::decode(CoreIPC::ArgumentDecoder* decoder, NetworkProcessCreationParameters& result)
+{
+#if PLATFORM(MAC)
+ if (!decoder->decode(result.parentProcessName))
+ return false;
+#endif
+
+ return true;
+}
+
+} // namespace WebKit
+
+#endif // ENABLE(NETWORK_PROCESS)
diff --git a/Source/WebKit2/Shared/Network/NetworkProcessCreationParameters.h b/Source/WebKit2/Shared/Network/NetworkProcessCreationParameters.h
new file mode 100644
index 000000000..4f59e2941
--- /dev/null
+++ b/Source/WebKit2/Shared/Network/NetworkProcessCreationParameters.h
@@ -0,0 +1,55 @@
+/*
+ * Copyright (C) 2012 Apple Inc. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef NetworkProcessCreationParameters_h
+#define NetworkProcessCreationParameters_h
+
+#if ENABLE(NETWORK_PROCESS)
+
+#include <wtf/text/WTFString.h>
+
+namespace CoreIPC {
+ class ArgumentDecoder;
+ class ArgumentEncoder;
+}
+
+namespace WebKit {
+
+struct NetworkProcessCreationParameters {
+ NetworkProcessCreationParameters();
+
+ void encode(CoreIPC::ArgumentEncoder*) const;
+ static bool decode(CoreIPC::ArgumentDecoder*, NetworkProcessCreationParameters&);
+
+#if PLATFORM(MAC)
+ String parentProcessName;
+#endif
+};
+
+} // namespace WebKit
+
+#endif // ENABLE(NETWORK_PROCESS)
+
+#endif // NetworkProcessCreationParameters_h
diff --git a/Source/WebKit2/Shared/Plugins/NPRemoteObjectMap.cpp b/Source/WebKit2/Shared/Plugins/NPRemoteObjectMap.cpp
index 7641af5e8..b5ec2d9da 100644
--- a/Source/WebKit2/Shared/Plugins/NPRemoteObjectMap.cpp
+++ b/Source/WebKit2/Shared/Plugins/NPRemoteObjectMap.cpp
@@ -200,7 +200,7 @@ void NPRemoteObjectMap::pluginDestroyed(Plugin* plugin)
// Gather the receivers associated with this plug-in.
for (HashMap<uint64_t, NPObjectMessageReceiver*>::const_iterator it = m_registeredNPObjects.begin(), end = m_registeredNPObjects.end(); it != end; ++it) {
- NPObjectMessageReceiver* npObjectMessageReceiver = it->second;
+ NPObjectMessageReceiver* npObjectMessageReceiver = it->value;
if (npObjectMessageReceiver->plugin() == plugin)
messageReceivers.append(npObjectMessageReceiver);
}
diff --git a/Source/WebKit2/Shared/Plugins/Netscape/mac/NetscapePluginModuleMac.mm b/Source/WebKit2/Shared/Plugins/Netscape/mac/NetscapePluginModuleMac.mm
index a4635e035..81b38e0ec 100644
--- a/Source/WebKit2/Shared/Plugins/Netscape/mac/NetscapePluginModuleMac.mm
+++ b/Source/WebKit2/Shared/Plugins/Netscape/mac/NetscapePluginModuleMac.mm
@@ -93,14 +93,11 @@ static bool getPluginArchitecture(CFBundleRef bundle, PluginModuleInfo& plugin)
static RetainPtr<CFDictionaryRef> contentsOfPropertyListAtURL(CFURLRef propertyListURL)
{
- CFDataRef propertyListData;
- CFURLCreateDataAndPropertiesFromResource(kCFAllocatorDefault, propertyListURL, &propertyListData, 0, 0, 0);
+ RetainPtr<NSData> propertyListData = adoptNS([[NSData alloc] initWithContentsOfURL:(NSURL *)propertyListURL]);
if (!propertyListData)
return 0;
- RetainPtr<CFPropertyListRef> propertyList(AdoptCF, CFPropertyListCreateWithData(kCFAllocatorDefault, propertyListData, kCFPropertyListImmutable, 0, 0));
- CFRelease(propertyListData);
-
+ RetainPtr<CFPropertyListRef> propertyList(AdoptCF, CFPropertyListCreateWithData(kCFAllocatorDefault, (CFDataRef)propertyListData.get(), kCFPropertyListImmutable, 0, 0));
if (!propertyList)
return 0;
diff --git a/Source/WebKit2/Shared/ShareableSurface.cpp b/Source/WebKit2/Shared/ShareableSurface.cpp
index 43bd525b4..be093e0c0 100644
--- a/Source/WebKit2/Shared/ShareableSurface.cpp
+++ b/Source/WebKit2/Shared/ShareableSurface.cpp
@@ -22,6 +22,7 @@
#include "GraphicsContext.h"
#include "WebCoreArgumentCoders.h"
+#include <WebCore/GraphicsSurfaceToken.h>
#if USE(TEXTURE_MAPPER)
#include "TextureMapperGL.h"
@@ -32,9 +33,6 @@ using namespace WebCore;
namespace WebKit {
ShareableSurface::Handle::Handle()
-#if USE(GRAPHICS_SURFACE)
- : m_graphicsSurfaceToken(0)
-#endif
{
}
@@ -44,7 +42,7 @@ void ShareableSurface::Handle::encode(CoreIPC::ArgumentEncoder* encoder) const
encoder->encode(m_flags);
#if USE(GRAPHICS_SURFACE)
encoder->encode(m_graphicsSurfaceToken);
- if (m_graphicsSurfaceToken)
+ if (m_graphicsSurfaceToken.isValid())
return;
#endif
encoder->encode(m_bitmapHandle);
@@ -59,7 +57,7 @@ bool ShareableSurface::Handle::decode(CoreIPC::ArgumentDecoder* decoder, Handle&
#if USE(GRAPHICS_SURFACE)
if (!decoder->decode(handle.m_graphicsSurfaceToken))
return false;
- if (handle.m_graphicsSurfaceToken)
+ if (handle.m_graphicsSurfaceToken.isValid())
return true;
#endif
if (!decoder->decode(handle.m_bitmapHandle))
@@ -151,7 +149,7 @@ ShareableSurface::~ShareableSurface()
PassRefPtr<ShareableSurface> ShareableSurface::create(const Handle& handle)
{
#if USE(GRAPHICS_SURFACE)
- if (handle.graphicsSurfaceToken()) {
+ if (handle.graphicsSurfaceToken().isValid()) {
RefPtr<GraphicsSurface> surface = GraphicsSurface::create(handle.m_size, handle.m_flags, handle.m_graphicsSurfaceToken);
if (surface)
return adoptRef(new ShareableSurface(handle.m_size, handle.m_flags, PassRefPtr<GraphicsSurface>(surface)));
@@ -171,8 +169,8 @@ bool ShareableSurface::createHandle(Handle& handle)
handle.m_flags = m_flags;
#if USE(GRAPHICS_SURFACE)
- handle.m_graphicsSurfaceToken = m_graphicsSurface ? m_graphicsSurface->exportToken() : 0;
- if (handle.m_graphicsSurfaceToken)
+ handle.m_graphicsSurfaceToken = m_graphicsSurface ? m_graphicsSurface->exportToken() : GraphicsSurfaceToken();
+ if (handle.m_graphicsSurfaceToken.isValid())
return true;
#endif
if (!m_bitmap->createHandle(handle.m_bitmapHandle))
diff --git a/Source/WebKit2/Shared/ShareableSurface.h b/Source/WebKit2/Shared/ShareableSurface.h
index b685b0777..598dc5911 100644
--- a/Source/WebKit2/Shared/ShareableSurface.h
+++ b/Source/WebKit2/Shared/ShareableSurface.h
@@ -55,14 +55,14 @@ public:
static bool decode(CoreIPC::ArgumentDecoder*, Handle&);
#if USE(GRAPHICS_SURFACE)
- uint64_t graphicsSurfaceToken() const { return m_graphicsSurfaceToken; }
+ WebCore::GraphicsSurfaceToken graphicsSurfaceToken() const { return m_graphicsSurfaceToken; }
#endif
private:
friend class ShareableSurface;
mutable ShareableBitmap::Handle m_bitmapHandle;
#if USE(GRAPHICS_SURFACE)
- uint64_t m_graphicsSurfaceToken;
+ WebCore::GraphicsSurfaceToken m_graphicsSurfaceToken;
#endif
WebCore::IntSize m_size;
ShareableBitmap::Flags m_flags;
diff --git a/Source/WebKit2/Shared/UserMessageCoders.h b/Source/WebKit2/Shared/UserMessageCoders.h
index ee4ab64ff..2ec5bb4d5 100644
--- a/Source/WebKit2/Shared/UserMessageCoders.h
+++ b/Source/WebKit2/Shared/UserMessageCoders.h
@@ -93,8 +93,8 @@ public:
ImmutableDictionary::MapType::const_iterator it = map.begin();
ImmutableDictionary::MapType::const_iterator end = map.end();
for (; it != end; ++it) {
- encoder->encode(it->first);
- encoder->encode(Owner(it->second.get()));
+ encoder->encode(it->key);
+ encoder->encode(Owner(it->value.get()));
}
return true;
}
diff --git a/Source/WebKit2/Shared/WebConnection.cpp b/Source/WebKit2/Shared/WebConnection.cpp
index 9530e2474..d941318db 100644
--- a/Source/WebKit2/Shared/WebConnection.cpp
+++ b/Source/WebKit2/Shared/WebConnection.cpp
@@ -26,8 +26,19 @@
#include "config.h"
#include "WebConnection.h"
+#include "ArgumentCoders.h"
+#include "Connection.h"
+#include "DataReference.h"
+#include "WebConnectionMessages.h"
+#include <wtf/text/WTFString.h>
+
namespace WebKit {
+WebConnection::WebConnection(PassRefPtr<CoreIPC::Connection> connection)
+ : m_connection(connection)
+{
+}
+
WebConnection::~WebConnection()
{
}
@@ -37,9 +48,37 @@ void WebConnection::initializeConnectionClient(const WKConnectionClient* client)
m_client.initialize(client);
}
-void WebConnection::forwardDidReceiveMessageToClient(const String& messageName, APIObject* messageBody)
+void WebConnection::postMessage(const String& messageName, APIObject* messageBody)
+{
+ if (!m_connection)
+ return;
+
+ OwnPtr<CoreIPC::ArgumentEncoder> messageData = CoreIPC::ArgumentEncoder::create(0);
+ messageData->encode(messageName);
+ encodeMessageBody(messageData.get(), messageBody);
+
+ m_connection->send(Messages::WebConnection::HandleMessage(CoreIPC::DataReference(messageData->buffer(), messageData->bufferSize())), 0);
+}
+
+void WebConnection::handleMessage(const CoreIPC::DataReference& messageData)
+{
+ CoreIPC::ArgumentDecoder messageDecoder(messageData.data(), messageData.size());
+
+ String messageName;
+ if (!messageDecoder.decode(messageName))
+ return;
+
+ RefPtr<APIObject> messageBody;
+ if (!decodeMessageBody(&messageDecoder, messageBody))
+ return;
+
+ m_client.didReceiveMessage(this, messageName, messageBody.get());
+}
+
+void WebConnection::invalidate()
{
- m_client.didReceiveMessage(this, messageName, messageBody);
+ m_connection->invalidate();
+ m_connection = nullptr;
}
} // namespace WebKit
diff --git a/Source/WebKit2/Shared/WebConnection.h b/Source/WebKit2/Shared/WebConnection.h
index 216e37c55..3abd14d46 100644
--- a/Source/WebKit2/Shared/WebConnection.h
+++ b/Source/WebKit2/Shared/WebConnection.h
@@ -28,26 +28,42 @@
#include "APIObject.h"
#include "WebConnectionClient.h"
-#include <wtf/Forward.h>
+#include <wtf/RefPtr.h>
+
+namespace CoreIPC {
+ class ArgumentDecoder;
+ class ArgumentEncoder;
+ class Connection;
+ class DataReference;
+ class MessageID;
+}
namespace WebKit {
class WebConnection : public APIObject {
public:
static const Type APIType = TypeConnection;
-
virtual ~WebConnection();
- // Initialize the connection client.
+ CoreIPC::Connection* connection() { return m_connection.get(); }
+
void initializeConnectionClient(const WKConnectionClient*);
+ void postMessage(const String&, APIObject*);
- virtual void postMessage(const String&, APIObject*) = 0;
+ void invalidate();
protected:
+ explicit WebConnection(PassRefPtr<CoreIPC::Connection>);
+
virtual Type type() const { return APIType; }
+ virtual void encodeMessageBody(CoreIPC::ArgumentEncoder*, APIObject*) = 0;
+ virtual bool decodeMessageBody(CoreIPC::ArgumentDecoder*, RefPtr<APIObject>&) = 0;
- void forwardDidReceiveMessageToClient(const String&, APIObject*);
+ // Implemented in generated WebConnectionMessageReceiver.cpp
+ void didReceiveWebConnectionMessage(CoreIPC::Connection*, CoreIPC::MessageID, CoreIPC::ArgumentDecoder*);
+ void handleMessage(const CoreIPC::DataReference& messageData);
+ RefPtr<CoreIPC::Connection> m_connection;
WebConnectionClient m_client;
};
diff --git a/Source/WebKit2/Shared/WebConnection.messages.in b/Source/WebKit2/Shared/WebConnection.messages.in
new file mode 100644
index 000000000..6e17707e1
--- /dev/null
+++ b/Source/WebKit2/Shared/WebConnection.messages.in
@@ -0,0 +1,25 @@
+# Copyright (C) 2010 Apple Inc. All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions
+# are met:
+# 1. Redistributions of source code must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+# 2. Redistributions in binary form must reproduce the above copyright
+# notice, this list of conditions and the following disclaimer in the
+# documentation and/or other materials provided with the distribution.
+#
+# THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS'' AND
+# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+# WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+# DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS BE LIABLE FOR
+# ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+# SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
+# CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+# OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+messages -> WebConnection {
+ HandleMessage(CoreIPC::DataReference messageData)
+}
diff --git a/Source/WebKit2/Shared/WebCoreArgumentCoders.cpp b/Source/WebKit2/Shared/WebCoreArgumentCoders.cpp
index cbf624926..c25ea9511 100644
--- a/Source/WebKit2/Shared/WebCoreArgumentCoders.cpp
+++ b/Source/WebKit2/Shared/WebCoreArgumentCoders.cpp
@@ -41,7 +41,12 @@
#include <WebCore/KURL.h>
#include <WebCore/PluginData.h>
#include <WebCore/ProtectionSpace.h>
+#include <WebCore/ResourceError.h>
+#include <WebCore/ResourceRequest.h>
+#include <WebCore/ResourceResponse.h>
#include <WebCore/TextCheckerClient.h>
+#include <WebCore/UserScript.h>
+#include <WebCore/UserStyleSheet.h>
#include <WebCore/ViewportArguments.h>
#include <WebCore/WindowFeatures.h>
#include <wtf/text/StringHash.h>
@@ -55,6 +60,9 @@
#if ENABLE(CSS_FILTERS)
#include <WebCore/FilterOperations.h>
#endif
+#if USE(GRAPHICS_SURFACE)
+#include <WebCore/GraphicsSurface.h>
+#endif
#endif
using namespace WebCore;
@@ -384,6 +392,212 @@ bool ArgumentCoder<Cursor>::decode(ArgumentDecoder* decoder, Cursor& cursor)
return true;
}
+void ArgumentCoder<ResourceRequest>::encode(ArgumentEncoder* encoder, const ResourceRequest& resourceRequest)
+{
+ if (kShouldSerializeWebCoreData) {
+ encoder->encode(resourceRequest.url().string());
+ encoder->encode(resourceRequest.httpMethod());
+
+ const HTTPHeaderMap& headers = resourceRequest.httpHeaderFields();
+ encoder->encode(headers);
+
+ FormData* httpBody = resourceRequest.httpBody();
+ encoder->encode(static_cast<bool>(httpBody));
+ if (httpBody)
+ encoder->encode(httpBody->flattenToString());
+
+ encoder->encode(resourceRequest.firstPartyForCookies().string());
+ }
+
+ encodePlatformData(encoder, resourceRequest);
+}
+
+bool ArgumentCoder<ResourceRequest>::decode(ArgumentDecoder* decoder, ResourceRequest& resourceRequest)
+{
+ if (kShouldSerializeWebCoreData) {
+ ResourceRequest request;
+
+ String url;
+ if (!decoder->decode(url))
+ return false;
+ request.setURL(KURL(KURL(), url));
+
+ String httpMethod;
+ if (!decoder->decode(httpMethod))
+ return false;
+ request.setHTTPMethod(httpMethod);
+
+ HTTPHeaderMap headers;
+ if (!decoder->decode(headers))
+ return false;
+ request.addHTTPHeaderFields(headers);
+
+ bool hasHTTPBody;
+ if (!decoder->decode(hasHTTPBody))
+ return false;
+ if (hasHTTPBody) {
+ String httpBody;
+ if (!decoder->decode(httpBody))
+ return false;
+ request.setHTTPBody(FormData::create(httpBody.utf8()));
+ }
+
+ String firstPartyForCookies;
+ if (!decoder->decode(firstPartyForCookies))
+ return false;
+ request.setFirstPartyForCookies(KURL(KURL(), firstPartyForCookies));
+
+ resourceRequest = request;
+ }
+
+ return decodePlatformData(decoder, resourceRequest);
+}
+
+void ArgumentCoder<ResourceResponse>::encode(ArgumentEncoder* encoder, const ResourceResponse& resourceResponse)
+{
+ if (kShouldSerializeWebCoreData) {
+ bool responseIsNull = resourceResponse.isNull();
+ encoder->encode(responseIsNull);
+ if (responseIsNull)
+ return;
+
+ encoder->encode(resourceResponse.url().string());
+ encoder->encode(static_cast<int32_t>(resourceResponse.httpStatusCode()));
+
+ const HTTPHeaderMap& headers = resourceResponse.httpHeaderFields();
+ encoder->encode(headers);
+
+ encoder->encode(resourceResponse.mimeType());
+ encoder->encode(resourceResponse.textEncodingName());
+ encoder->encode(static_cast<int64_t>(resourceResponse.expectedContentLength()));
+ encoder->encode(resourceResponse.httpStatusText());
+ encoder->encode(resourceResponse.suggestedFilename());
+ }
+
+ encodePlatformData(encoder, resourceResponse);
+}
+
+bool ArgumentCoder<ResourceResponse>::decode(ArgumentDecoder* decoder, ResourceResponse& resourceResponse)
+{
+ if (kShouldSerializeWebCoreData) {
+ bool responseIsNull;
+ if (!decoder->decode(responseIsNull))
+ return false;
+ if (responseIsNull) {
+ resourceResponse = ResourceResponse();
+ return true;
+ }
+
+ ResourceResponse response;
+
+ String url;
+ if (!decoder->decode(url))
+ return false;
+ response.setURL(KURL(KURL(), url));
+
+ int32_t httpStatusCode;
+ if (!decoder->decode(httpStatusCode))
+ return false;
+ response.setHTTPStatusCode(httpStatusCode);
+
+ HTTPHeaderMap headers;
+ if (!decoder->decode(headers))
+ return false;
+ for (HTTPHeaderMap::const_iterator it = headers.begin(), end = headers.end(); it != end; ++it)
+ response.setHTTPHeaderField(it->key, it->value);
+
+ String mimeType;
+ if (!decoder->decode(mimeType))
+ return false;
+ response.setMimeType(mimeType);
+
+ String textEncodingName;
+ if (!decoder->decode(textEncodingName))
+ return false;
+ response.setTextEncodingName(textEncodingName);
+
+ int64_t contentLength;
+ if (!decoder->decode(contentLength))
+ return false;
+ response.setExpectedContentLength(contentLength);
+
+ String httpStatusText;
+ if (!decoder->decode(httpStatusText))
+ return false;
+ response.setHTTPStatusText(httpStatusText);
+
+ String suggestedFilename;
+ if (!decoder->decode(suggestedFilename))
+ return false;
+ response.setSuggestedFilename(suggestedFilename);
+
+ resourceResponse = response;
+ }
+
+ return decodePlatformData(decoder, resourceResponse);
+}
+
+void ArgumentCoder<ResourceError>::encode(ArgumentEncoder* encoder, const ResourceError& resourceError)
+{
+ if (kShouldSerializeWebCoreData) {
+ bool errorIsNull = resourceError.isNull();
+ encoder->encode(errorIsNull);
+ if (errorIsNull)
+ return;
+
+ encoder->encode(resourceError.domain());
+ encoder->encode(resourceError.errorCode());
+ encoder->encode(resourceError.failingURL());
+ encoder->encode(resourceError.localizedDescription());
+ encoder->encode(resourceError.isCancellation());
+ encoder->encode(resourceError.isTimeout());
+ }
+
+ encodePlatformData(encoder, resourceError);
+}
+
+bool ArgumentCoder<ResourceError>::decode(ArgumentDecoder* decoder, ResourceError& resourceError)
+{
+ if (kShouldSerializeWebCoreData) {
+ bool errorIsNull;
+ if (!decoder->decode(errorIsNull))
+ return false;
+ if (errorIsNull) {
+ resourceError = ResourceError();
+ return true;
+ }
+
+ String domain;
+ if (!decoder->decode(domain))
+ return false;
+
+ int errorCode;
+ if (!decoder->decode(errorCode))
+ return false;
+
+ String failingURL;
+ if (!decoder->decode(failingURL))
+ return false;
+
+ String localizedDescription;
+ if (!decoder->decode(localizedDescription))
+ return false;
+
+ bool isCancellation;
+ if (!decoder->decode(isCancellation))
+ return false;
+
+ bool isTimeout;
+ if (!decoder->decode(isTimeout))
+ return false;
+
+ resourceError = ResourceError(domain, errorCode, failingURL, localizedDescription);
+ resourceError.setIsCancellation(isCancellation);
+ resourceError.setIsTimeout(isTimeout);
+ }
+
+ return decodePlatformData(decoder, resourceError);
+}
void ArgumentCoder<WindowFeatures>::encode(ArgumentEncoder* encoder, const WindowFeatures& windowFeatures)
{
@@ -795,6 +1009,115 @@ bool ArgumentCoder<WebCore::FilterOperations>::decode(ArgumentDecoder* decoder,
}
#endif
+#if USE(GRAPHICS_SURFACE)
+void ArgumentCoder<WebCore::GraphicsSurfaceToken>::encode(ArgumentEncoder* encoder, const WebCore::GraphicsSurfaceToken& token)
+{
+#if OS(DARWIN)
+ encoder->encodeUInt32(token.frontBufferHandle);
+ encoder->encodeUInt32(token.backBufferHandle);
+#endif
+#if OS(LINUX)
+ encoder->encodeUInt32(token.frontBufferHandle);
+#endif
+}
+
+bool ArgumentCoder<WebCore::GraphicsSurfaceToken>::decode(ArgumentDecoder* decoder, WebCore::GraphicsSurfaceToken& token)
+{
+#if OS(DARWIN)
+ if (!decoder->decodeUInt32(token.frontBufferHandle))
+ return false;
+ if (!decoder->decodeUInt32(token.backBufferHandle))
+ return false;
+#endif
+#if OS(LINUX)
+ if (!decoder->decodeUInt32(token.frontBufferHandle))
+ return false;
+#endif
+ return true;
+}
+
+#endif
+
#endif
+void ArgumentCoder<WebCore::UserStyleSheet>::encode(ArgumentEncoder* encoder, const WebCore::UserStyleSheet& userStyleSheet)
+{
+ encoder->encode(userStyleSheet.source());
+ encoder->encode(userStyleSheet.url());
+ encoder->encode(userStyleSheet.whitelist());
+ encoder->encode(userStyleSheet.blacklist());
+ encoder->encodeEnum(userStyleSheet.injectedFrames());
+ encoder->encodeEnum(userStyleSheet.level());
+}
+
+bool ArgumentCoder<WebCore::UserStyleSheet>::decode(ArgumentDecoder* decoder, WebCore::UserStyleSheet& userStyleSheet)
+{
+ String source;
+ if (!decoder->decode(source))
+ return false;
+
+ KURL url;
+ if (!decoder->decode(url))
+ return false;
+
+ Vector<String> whitelist;
+ if (!decoder->decode(whitelist))
+ return false;
+
+ Vector<String> blacklist;
+ if (!decoder->decode(blacklist))
+ return false;
+
+ WebCore::UserContentInjectedFrames injectedFrames;
+ if (!decoder->decodeEnum(injectedFrames))
+ return false;
+
+ WebCore::UserStyleLevel level;
+ if (!decoder->decodeEnum(level))
+ return false;
+
+ userStyleSheet = WebCore::UserStyleSheet(source, url, whitelist, blacklist, injectedFrames, level);
+ return true;
+}
+
+void ArgumentCoder<WebCore::UserScript>::encode(ArgumentEncoder* encoder, const WebCore::UserScript& userScript)
+{
+ encoder->encode(userScript.source());
+ encoder->encode(userScript.url());
+ encoder->encode(userScript.whitelist());
+ encoder->encode(userScript.blacklist());
+ encoder->encodeEnum(userScript.injectionTime());
+ encoder->encodeEnum(userScript.injectedFrames());
+}
+
+bool ArgumentCoder<WebCore::UserScript>::decode(ArgumentDecoder* decoder, WebCore::UserScript& userScript)
+{
+ String source;
+ if (!decoder->decode(source))
+ return false;
+
+ KURL url;
+ if (!decoder->decode(url))
+ return false;
+
+ Vector<String> whitelist;
+ if (!decoder->decode(whitelist))
+ return false;
+
+ Vector<String> blacklist;
+ if (!decoder->decode(blacklist))
+ return false;
+
+ WebCore::UserScriptInjectionTime injectionTime;
+ if (!decoder->decodeEnum(injectionTime))
+ return false;
+
+ WebCore::UserContentInjectedFrames injectedFrames;
+ if (!decoder->decodeEnum(injectedFrames))
+ return false;
+
+ userScript = WebCore::UserScript(source, url, whitelist, blacklist, injectionTime, injectedFrames);
+ return true;
+}
+
} // namespace CoreIPC
diff --git a/Source/WebKit2/Shared/WebCoreArgumentCoders.h b/Source/WebKit2/Shared/WebCoreArgumentCoders.h
index b08f118f9..581058cab 100644
--- a/Source/WebKit2/Shared/WebCoreArgumentCoders.h
+++ b/Source/WebKit2/Shared/WebCoreArgumentCoders.h
@@ -49,6 +49,8 @@ namespace WebCore {
class ResourceError;
class ResourceRequest;
class ResourceResponse;
+ class UserStyleSheet;
+ class UserScript;
struct CompositionUnderline;
struct DictationAlternative;
struct DragSession;
@@ -72,6 +74,10 @@ namespace WebCore {
class FloatPoint3D;
class TransformationMatrix;
struct Length;
+
+#if USE(GRAPHICS_SURFACE)
+ struct GraphicsSurfaceToken;
+#endif
}
#if ENABLE(CSS_FILTERS)
@@ -159,17 +165,42 @@ template<> struct ArgumentCoder<WebCore::Cursor> {
};
template<> struct ArgumentCoder<WebCore::ResourceRequest> {
+#if PLATFORM(MAC) || PLATFORM(WIN)
+ static const bool kShouldSerializeWebCoreData = false;
+#else
+ static const bool kShouldSerializeWebCoreData = true;
+#endif
+
static void encode(ArgumentEncoder*, const WebCore::ResourceRequest&);
static bool decode(ArgumentDecoder*, WebCore::ResourceRequest&);
+ static void encodePlatformData(ArgumentEncoder*, const WebCore::ResourceRequest&);
+ static bool decodePlatformData(ArgumentDecoder*, WebCore::ResourceRequest&);
};
template<> struct ArgumentCoder<WebCore::ResourceResponse> {
+#if PLATFORM(MAC) || PLATFORM(WIN)
+ static const bool kShouldSerializeWebCoreData = false;
+#else
+ static const bool kShouldSerializeWebCoreData = true;
+#endif
+
static void encode(ArgumentEncoder*, const WebCore::ResourceResponse&);
static bool decode(ArgumentDecoder*, WebCore::ResourceResponse&);
+ static void encodePlatformData(ArgumentEncoder*, const WebCore::ResourceResponse&);
+ static bool decodePlatformData(ArgumentDecoder*, WebCore::ResourceResponse&);
};
+
template<> struct ArgumentCoder<WebCore::ResourceError> {
+#if PLATFORM(MAC)
+ static const bool kShouldSerializeWebCoreData = false;
+#else
+ static const bool kShouldSerializeWebCoreData = true;
+#endif
+
static void encode(ArgumentEncoder*, const WebCore::ResourceError&);
static bool decode(ArgumentDecoder*, WebCore::ResourceError&);
+ static void encodePlatformData(ArgumentEncoder*, const WebCore::ResourceError&);
+ static bool decodePlatformData(ArgumentDecoder*, WebCore::ResourceError&);
};
template<> struct ArgumentCoder<WebCore::WindowFeatures> {
@@ -251,8 +282,24 @@ template<> struct ArgumentCoder<WebCore::FilterOperations> {
static bool decode(ArgumentDecoder*, WebCore::FilterOperations&);
};
#endif
+
+#if USE(GRAPHICS_SURFACE)
+template<> struct ArgumentCoder<WebCore::GraphicsSurfaceToken> {
+ static void encode(ArgumentEncoder*, const WebCore::GraphicsSurfaceToken&);
+ static bool decode(ArgumentDecoder*, WebCore::GraphicsSurfaceToken&);
+};
+#endif
#endif
+template<> struct ArgumentCoder<WebCore::UserStyleSheet> {
+ static void encode(ArgumentEncoder*, const WebCore::UserStyleSheet&);
+ static bool decode(ArgumentDecoder*, WebCore::UserStyleSheet&);
+};
+
+template<> struct ArgumentCoder<WebCore::UserScript> {
+ static void encode(ArgumentEncoder*, const WebCore::UserScript&);
+ static bool decode(ArgumentDecoder*, WebCore::UserScript&);
+};
} // namespace CoreIPC
diff --git a/Source/WebKit2/Shared/WebGeolocationPosition.cpp b/Source/WebKit2/Shared/WebGeolocationPosition.cpp
index 01fdfb890..c9e36fa37 100644
--- a/Source/WebKit2/Shared/WebGeolocationPosition.cpp
+++ b/Source/WebKit2/Shared/WebGeolocationPosition.cpp
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2011 Apple Inc. All rights reserved.
+ * Copyright (C) 2011, 2012 Apple Inc. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
@@ -31,12 +31,20 @@
namespace WebKit {
-WebGeolocationPosition::WebGeolocationPosition(double timestamp, double latitude, double longitude, double accuracy)
+WebGeolocationPosition::WebGeolocationPosition(double timestamp, double latitude, double longitude, double accuracy, bool providesAltitude, double altitude, bool providesAltitudeAccuracy, double altitudeAccuracy, bool providesHeading, double heading, bool providesSpeed, double speed)
{
m_data.timestamp = timestamp;
m_data.latitude = latitude;
m_data.longitude = longitude;
m_data.accuracy = accuracy;
+ m_data.canProvideAltitude = providesAltitude;
+ m_data.altitude = altitude;
+ m_data.canProvideAltitudeAccuracy = providesAltitudeAccuracy;
+ m_data.altitudeAccuracy = altitudeAccuracy;
+ m_data.canProvideHeading = providesHeading;
+ m_data.heading = heading;
+ m_data.canProvideSpeed = providesSpeed;
+ m_data.speed = speed;
}
WebGeolocationPosition::~WebGeolocationPosition()
@@ -45,12 +53,15 @@ WebGeolocationPosition::~WebGeolocationPosition()
void WebGeolocationPosition::Data::encode(CoreIPC::ArgumentEncoder* encoder) const
{
- encoder->encode(CoreIPC::In(timestamp, latitude, longitude, accuracy));
+ encoder->encode(CoreIPC::In(timestamp, latitude, longitude, accuracy, canProvideAltitude, altitude, canProvideAltitudeAccuracy, altitudeAccuracy, canProvideHeading, heading));
+ encoder->encode(CoreIPC::In(canProvideSpeed, speed));
}
bool WebGeolocationPosition::Data::decode(CoreIPC::ArgumentDecoder* decoder, Data& data)
{
- return decoder->decode(CoreIPC::Out(data.timestamp, data.latitude, data.longitude, data.accuracy));
+ if (!decoder->decode(CoreIPC::Out(data.timestamp, data.latitude, data.longitude, data.accuracy, data.canProvideAltitude, data.altitude, data.canProvideAltitudeAccuracy, data.altitudeAccuracy, data.canProvideHeading, data.heading)))
+ return false;
+ return decoder->decode(CoreIPC::Out(data.canProvideSpeed, data.speed));
}
} // namespace WebKit
diff --git a/Source/WebKit2/Shared/WebGeolocationPosition.h b/Source/WebKit2/Shared/WebGeolocationPosition.h
index 6b268fbbe..a87bb062d 100644
--- a/Source/WebKit2/Shared/WebGeolocationPosition.h
+++ b/Source/WebKit2/Shared/WebGeolocationPosition.h
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2011 Apple Inc. All rights reserved.
+ * Copyright (C) 2011, 2012 Apple Inc. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
@@ -45,11 +45,21 @@ public:
double latitude;
double longitude;
double accuracy;
+
+ double altitude;
+ double altitudeAccuracy;
+ double heading;
+ double speed;
+
+ bool canProvideAltitude;
+ bool canProvideAltitudeAccuracy;
+ bool canProvideHeading;
+ bool canProvideSpeed;
};
- static PassRefPtr<WebGeolocationPosition> create(double timestamp, double latitude, double longitude, double accuracy)
+ static PassRefPtr<WebGeolocationPosition> create(double timestamp, double latitude, double longitude, double accuracy, bool providesAltitude, double altitude, bool providesAltitudeAccuracy, double altitudeAccuracy, bool providesHeading, double heading, bool providesSpeed, double speed)
{
- return adoptRef(new WebGeolocationPosition(timestamp, latitude, longitude, accuracy));
+ return adoptRef(new WebGeolocationPosition(timestamp, latitude, longitude, accuracy, providesAltitude, altitude, providesAltitudeAccuracy, altitudeAccuracy, providesHeading, heading, providesSpeed, speed));
}
virtual ~WebGeolocationPosition();
@@ -59,10 +69,22 @@ public:
double longitude() const { return m_data.longitude; }
double accuracy() const { return m_data.accuracy; }
+ bool canProvideAltitude() const { return m_data.canProvideAltitude; }
+ double altitude() const { return m_data.altitude; }
+
+ bool canProvideAltitudeAccuracy() const { return m_data.canProvideAltitudeAccuracy; }
+ double altitudeAccuracy() const { return m_data.altitudeAccuracy; }
+
+ bool canProvideHeading() const { return m_data.canProvideHeading; }
+ double heading() const { return m_data.heading; }
+
+ bool canProvideSpeed() const { return m_data.canProvideSpeed; }
+ double speed() const { return m_data.speed; }
+
const Data& data() const { return m_data; }
private:
- WebGeolocationPosition(double timestamp, double latitude, double longitude, double accuracy);
+ WebGeolocationPosition(double timestamp, double latitude, double longitude, double accuracy, bool providesAltitude, double altitude, bool providesAltitudeAccuracy, double altitudeAccuracy, bool providesHeading, double heading, bool providesSpeed, double speed);
virtual Type type() const { return APIType; }
diff --git a/Source/WebKit2/Shared/WebPageGroupData.cpp b/Source/WebKit2/Shared/WebPageGroupData.cpp
index 107df1d15..c227d8596 100644
--- a/Source/WebKit2/Shared/WebPageGroupData.cpp
+++ b/Source/WebKit2/Shared/WebPageGroupData.cpp
@@ -26,19 +26,35 @@
#include "config.h"
#include "WebPageGroupData.h"
-#include "ArgumentCoders.h"
-#include "Arguments.h"
+#include "WebCoreArgumentCoders.h"
namespace WebKit {
void WebPageGroupData::encode(CoreIPC::ArgumentEncoder* encoder) const
{
- return encoder->encode(CoreIPC::In(identifer, pageGroupID, visibleToInjectedBundle, visibleToHistoryClient));
+ encoder->encode(identifer);
+ encoder->encode(pageGroupID);
+ encoder->encode(visibleToInjectedBundle);
+ encoder->encode(visibleToHistoryClient);
+ encoder->encode(userStyleSheets);
+ encoder->encode(userScripts);
}
bool WebPageGroupData::decode(CoreIPC::ArgumentDecoder* decoder, WebPageGroupData& data)
{
- return decoder->decode(CoreIPC::Out(data.identifer, data.pageGroupID, data.visibleToInjectedBundle, data.visibleToHistoryClient));
+ if (!decoder->decode(data.identifer))
+ return false;
+ if (!decoder->decode(data.pageGroupID))
+ return false;
+ if (!decoder->decode(data.visibleToInjectedBundle))
+ return false;
+ if (!decoder->decode(data.visibleToHistoryClient))
+ return false;
+ if (!decoder->decode(data.userStyleSheets))
+ return false;
+ if (!decoder->decode(data.userScripts))
+ return false;
+ return true;
}
} // namespace WebKit
diff --git a/Source/WebKit2/Shared/WebPageGroupData.h b/Source/WebKit2/Shared/WebPageGroupData.h
index 36f6fe19b..b9aa0f8f5 100644
--- a/Source/WebKit2/Shared/WebPageGroupData.h
+++ b/Source/WebKit2/Shared/WebPageGroupData.h
@@ -26,11 +26,14 @@
#ifndef WebPageGroupData_h
#define WebPageGroupData_h
+#include <WebCore/UserScript.h>
+#include <WebCore/UserStyleSheet.h>
+#include <wtf/Vector.h>
#include <wtf/text/WTFString.h>
namespace CoreIPC {
- class ArgumentDecoder;
- class ArgumentEncoder;
+class ArgumentDecoder;
+class ArgumentEncoder;
}
namespace WebKit {
@@ -43,6 +46,9 @@ struct WebPageGroupData {
uint64_t pageGroupID;
bool visibleToInjectedBundle;
bool visibleToHistoryClient;
+
+ Vector<WebCore::UserStyleSheet> userStyleSheets;
+ Vector<WebCore::UserScript> userScripts;
};
} // namespace WebKit
diff --git a/Source/WebKit2/Shared/WebPreferencesStore.cpp b/Source/WebKit2/Shared/WebPreferencesStore.cpp
index 746df10a4..4f49bb786 100644
--- a/Source/WebKit2/Shared/WebPreferencesStore.cpp
+++ b/Source/WebKit2/Shared/WebPreferencesStore.cpp
@@ -151,7 +151,7 @@ static typename MapType::MappedType valueForKey(const MapType& map, const typena
{
typename MapType::const_iterator it = map.find(key);
if (it != map.end())
- return it->second;
+ return it->value;
return defaultValueForKey<typename MapType::MappedType>(key);
}
@@ -187,7 +187,7 @@ bool WebPreferencesStore::getBoolValueForKey(const String& key) const
// FIXME: Extend overriding to other key types used from TestRunner.
BoolOverridesMap::const_iterator it = boolTestRunnerOverridesMap().find(key);
if (it != boolTestRunnerOverridesMap().end())
- return it->second;
+ return it->value;
return valueForKey(m_boolValues, key);
}
diff --git a/Source/WebKit2/Shared/WebPreferencesStore.h b/Source/WebKit2/Shared/WebPreferencesStore.h
index dbaa4f203..185898334 100644
--- a/Source/WebKit2/Shared/WebPreferencesStore.h
+++ b/Source/WebKit2/Shared/WebPreferencesStore.h
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2010, 2011 Apple Inc. All rights reserved.
+ * Copyright (C) 2010, 2011, 2012 Apple Inc. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
@@ -135,6 +135,9 @@ namespace WebKit {
macro(StorageBlockingPolicy, storageBlockingPolicy, UInt32, uint32_t, 0) \
macro(ScrollAnimatorEnabled, scrollAnimatorEnabled, Bool, bool, DEFAULT_WEBKIT_SCROLL_ANIMATOR_ENABLED) \
macro(ScreenFontSubstitutionEnabled, screenFontSubstitutionEnabled, Bool, bool, DEFAULT_SCREEN_FONT_SUBSTITUTION_ENABLED) \
+ macro(CookieEnabled, cookieEnabled, Bool, bool, true) \
+ macro(PlugInSnapshottingEnabled, plugInSnapshottingEnabled, Bool, bool, false) \
+ macro(PDFPluginEnabled, pdfPluginEnabled, Bool, bool, false) \
\
#define FOR_EACH_WEBKIT_DOUBLE_PREFERENCE(macro) \
diff --git a/Source/WebKit2/Shared/WebProcessCreationParameters.cpp b/Source/WebKit2/Shared/WebProcessCreationParameters.cpp
index cc2cecc88..01234f76f 100644
--- a/Source/WebKit2/Shared/WebProcessCreationParameters.cpp
+++ b/Source/WebKit2/Shared/WebProcessCreationParameters.cpp
@@ -42,6 +42,7 @@ WebProcessCreationParameters::WebProcessCreationParameters()
, nsURLCacheMemoryCapacity(0)
, nsURLCacheDiskCapacity(0)
, shouldForceScreenFontSubstitution(false)
+ , shouldEnableKerningAndLigaturesByDefault(false)
#elif PLATFORM(WIN)
, shouldPaintNativeControls(false)
#endif
@@ -65,15 +66,11 @@ void WebProcessCreationParameters::encode(CoreIPC::ArgumentEncoder* encoder) con
encoder->encode(urlSchemesRegisteredAsNoAccess);
encoder->encode(urlSchemesRegisteredAsDisplayIsolated);
encoder->encode(urlSchemesRegisteredAsCORSEnabled);
- encoder->encode(mimeTypesWithCustomRepresentation);
encoder->encodeEnum(cacheModel);
encoder->encode(shouldTrackVisitedLinks);
encoder->encode(shouldAlwaysUseComplexTextCodePath);
encoder->encode(shouldUseFontSmoothing);
encoder->encode(iconDatabaseEnabled);
-#if ENABLE(PLUGIN_PROCESS)
- encoder->encode(disablePluginProcessMessageTimeout);
-#endif
encoder->encode(terminationTimeout);
encoder->encode(languages);
encoder->encode(textCheckerState);
@@ -93,6 +90,7 @@ void WebProcessCreationParameters::encode(CoreIPC::ArgumentEncoder* encoder) con
encoder->encode(uiProcessBundleResourcePath);
encoder->encode(uiProcessBundleResourcePathExtensionHandle);
encoder->encode(shouldForceScreenFontSubstitution);
+ encoder->encode(shouldEnableKerningAndLigaturesByDefault);
#elif PLATFORM(WIN)
encoder->encode(shouldPaintNativeControls);
encoder->encode(cfURLCachePath);
@@ -148,8 +146,6 @@ bool WebProcessCreationParameters::decode(CoreIPC::ArgumentDecoder* decoder, Web
return false;
if (!decoder->decode(parameters.urlSchemesRegisteredAsCORSEnabled))
return false;
- if (!decoder->decode(parameters.mimeTypesWithCustomRepresentation))
- return false;
if (!decoder->decodeEnum(parameters.cacheModel))
return false;
if (!decoder->decode(parameters.shouldTrackVisitedLinks))
@@ -160,10 +156,6 @@ bool WebProcessCreationParameters::decode(CoreIPC::ArgumentDecoder* decoder, Web
return false;
if (!decoder->decode(parameters.iconDatabaseEnabled))
return false;
-#if ENABLE(PLUGIN_PROCESS)
- if (!decoder->decode(parameters.disablePluginProcessMessageTimeout))
- return false;
-#endif
if (!decoder->decode(parameters.terminationTimeout))
return false;
if (!decoder->decode(parameters.languages))
@@ -200,6 +192,8 @@ bool WebProcessCreationParameters::decode(CoreIPC::ArgumentDecoder* decoder, Web
return false;
if (!decoder->decode(parameters.shouldForceScreenFontSubstitution))
return false;
+ if (!decoder->decode(parameters.shouldEnableKerningAndLigaturesByDefault))
+ return false;
#elif PLATFORM(WIN)
if (!decoder->decode(parameters.shouldPaintNativeControls))
return false;
diff --git a/Source/WebKit2/Shared/WebProcessCreationParameters.h b/Source/WebKit2/Shared/WebProcessCreationParameters.h
index 67ab33070..f9548dfff 100644
--- a/Source/WebKit2/Shared/WebProcessCreationParameters.h
+++ b/Source/WebKit2/Shared/WebProcessCreationParameters.h
@@ -69,9 +69,6 @@ struct WebProcessCreationParameters {
Vector<String> urlSchemesRegisteredAsDisplayIsolated;
Vector<String> urlSchemesRegisteredAsCORSEnabled;
- // MIME types for which the UI process will handle showing the data.
- Vector<String> mimeTypesWithCustomRepresentation;
-
CacheModel cacheModel;
bool shouldTrackVisitedLinks;
@@ -80,10 +77,6 @@ struct WebProcessCreationParameters {
bool iconDatabaseEnabled;
-#if ENABLE(PLUGIN_PROCESS)
- bool disablePluginProcessMessageTimeout;
-#endif
-
double terminationTimeout;
Vector<String> languages;
@@ -116,6 +109,8 @@ struct WebProcessCreationParameters {
SandboxExtension::Handle uiProcessBundleResourcePathExtensionHandle;
bool shouldForceScreenFontSubstitution;
+ bool shouldEnableKerningAndLigaturesByDefault;
+
#elif PLATFORM(WIN)
String cfURLCachePath;
uint64_t cfURLCacheDiskCapacity;
diff --git a/Source/WebKit2/Shared/WebRenderObject.cpp b/Source/WebKit2/Shared/WebRenderObject.cpp
index 146230e9d..28f6391bb 100644
--- a/Source/WebKit2/Shared/WebRenderObject.cpp
+++ b/Source/WebKit2/Shared/WebRenderObject.cpp
@@ -75,7 +75,7 @@ WebRenderObject::WebRenderObject(RenderObject* renderer, bool shouldIncludeDesce
}
// FIXME: broken with transforms
- m_absolutePosition = flooredIntPoint(renderer->localToAbsolute(FloatPoint()));
+ m_absolutePosition = flooredIntPoint(renderer->localToAbsolute());
if (renderer->isBox())
m_frameRect = toRenderBox(renderer)->pixelSnappedFrameRect();
diff --git a/Source/WebKit2/Shared/mac/PDFKitImports.h b/Source/WebKit2/Shared/mac/PDFKitImports.h
index 44c375c6b..c9a1e0a25 100644
--- a/Source/WebKit2/Shared/mac/PDFKitImports.h
+++ b/Source/WebKit2/Shared/mac/PDFKitImports.h
@@ -33,6 +33,10 @@ Class classFromPDFKit(NSString *className);
Class pdfAnnotationLinkClass();
Class pdfDocumentClass();
+#if ENABLE(PDFKIT_PLUGIN)
+Class pdfLayerControllerClass();
+#endif
+
}
#endif // PDFKitImports_h
diff --git a/Source/WebKit2/Shared/mac/PDFKitImports.mm b/Source/WebKit2/Shared/mac/PDFKitImports.mm
index 6234a8395..bccfbefda 100644
--- a/Source/WebKit2/Shared/mac/PDFKitImports.mm
+++ b/Source/WebKit2/Shared/mac/PDFKitImports.mm
@@ -54,5 +54,14 @@ Class pdfDocumentClass()
ASSERT(pdfDocumentClass);
return pdfDocumentClass;
}
+
+#if ENABLE(PDFKIT_PLUGIN)
+Class pdfLayerControllerClass()
+{
+ static Class pdfLayerControllerClass = classFromPDFKit(@"PDFLayerController");
+ ASSERT(pdfLayerControllerClass);
+ return pdfLayerControllerClass;
+}
+#endif
}
diff --git a/Source/WebKit2/Shared/mac/WebCoreArgumentCodersMac.mm b/Source/WebKit2/Shared/mac/WebCoreArgumentCodersMac.mm
index 196ab11c7..9f04ef95e 100644
--- a/Source/WebKit2/Shared/mac/WebCoreArgumentCodersMac.mm
+++ b/Source/WebKit2/Shared/mac/WebCoreArgumentCodersMac.mm
@@ -38,7 +38,7 @@ using namespace WebKit;
namespace CoreIPC {
-void ArgumentCoder<ResourceRequest>::encode(ArgumentEncoder* encoder, const ResourceRequest& resourceRequest)
+void ArgumentCoder<ResourceRequest>::encodePlatformData(ArgumentEncoder* encoder, const ResourceRequest& resourceRequest)
{
bool requestIsPresent = resourceRequest.nsURLRequest();
encoder->encode(requestIsPresent);
@@ -50,7 +50,7 @@ void ArgumentCoder<ResourceRequest>::encode(ArgumentEncoder* encoder, const Reso
CoreIPC::encode(encoder, dictionary.get());
}
-bool ArgumentCoder<ResourceRequest>::decode(ArgumentDecoder* decoder, ResourceRequest& resourceRequest)
+bool ArgumentCoder<ResourceRequest>::decodePlatformData(ArgumentDecoder* decoder, ResourceRequest& resourceRequest)
{
bool requestIsPresent;
if (!decoder->decode(requestIsPresent))
@@ -73,7 +73,7 @@ bool ArgumentCoder<ResourceRequest>::decode(ArgumentDecoder* decoder, ResourceRe
return true;
}
-void ArgumentCoder<ResourceResponse>::encode(ArgumentEncoder* encoder, const ResourceResponse& resourceResponse)
+void ArgumentCoder<ResourceResponse>::encodePlatformData(ArgumentEncoder* encoder, const ResourceResponse& resourceResponse)
{
bool responseIsPresent = resourceResponse.nsURLResponse();
encoder->encode(responseIsPresent);
@@ -85,7 +85,7 @@ void ArgumentCoder<ResourceResponse>::encode(ArgumentEncoder* encoder, const Res
CoreIPC::encode(encoder, dictionary.get());
}
-bool ArgumentCoder<ResourceResponse>::decode(ArgumentDecoder* decoder, ResourceResponse& resourceResponse)
+bool ArgumentCoder<ResourceResponse>::decodePlatformData(ArgumentDecoder* decoder, ResourceResponse& resourceResponse)
{
bool responseIsPresent;
if (!decoder->decode(responseIsPresent))
@@ -113,7 +113,7 @@ static NSString* nsString(const String& string)
return string.impl() ? [NSString stringWithCharacters:reinterpret_cast<const UniChar*>(string.characters()) length:string.length()] : @"";
}
-void ArgumentCoder<ResourceError>::encode(ArgumentEncoder* encoder, const ResourceError& resourceError)
+void ArgumentCoder<ResourceError>::encodePlatformData(ArgumentEncoder* encoder, const ResourceError& resourceError)
{
bool errorIsNull = resourceError.isNull();
encoder->encode(errorIsNull);
@@ -147,7 +147,7 @@ void ArgumentCoder<ResourceError>::encode(ArgumentEncoder* encoder, const Resour
encoder->encode(PlatformCertificateInfo((CFArrayRef)peerCertificateChain));
}
-bool ArgumentCoder<ResourceError>::decode(ArgumentDecoder* decoder, ResourceError& resourceError)
+bool ArgumentCoder<ResourceError>::decodePlatformData(ArgumentDecoder* decoder, ResourceError& resourceError)
{
bool errorIsNull;
if (!decoder->decode(errorIsNull))
@@ -183,7 +183,7 @@ bool ArgumentCoder<ResourceError>::decode(ArgumentDecoder* decoder, ResourceErro
HashMap<String, String>::const_iterator it = stringUserInfoMap.begin();
HashMap<String, String>::const_iterator end = stringUserInfoMap.end();
for (; it != end; ++it)
- [userInfo setObject:nsString(it->second) forKey:nsString(it->first)];
+ [userInfo setObject:nsString(it->value) forKey:nsString(it->key)];
if (certificate.certificateChain())
[userInfo setObject:(NSArray *)certificate.certificateChain() forKey:@"NSErrorPeerCertificateChainKey"];
diff --git a/Source/WebKit2/Shared/qt/ArgumentCodersQt.cpp b/Source/WebKit2/Shared/qt/ArgumentCodersQt.cpp
index c89bf44f1..a439caff1 100644
--- a/Source/WebKit2/Shared/qt/ArgumentCodersQt.cpp
+++ b/Source/WebKit2/Shared/qt/ArgumentCodersQt.cpp
@@ -86,8 +86,8 @@ bool ArgumentCoder<WebCore::DragData>::decode(ArgumentDecoder* decoder, DragData
MIMEDataHashMap::iterator it = map.begin();
MIMEDataHashMap::iterator end = map.end();
for (; it != end; ++it) {
- QByteArray bytes((char*)it->second.data(), it->second.size());
- mimeData->setData(it->first, bytes);
+ QByteArray bytes((char*)it->value.data(), it->value.size());
+ mimeData->setData(it->key, bytes);
}
}
diff --git a/Source/WebKit2/Shared/qt/ShareableBitmapQt.cpp b/Source/WebKit2/Shared/qt/ShareableBitmapQt.cpp
index 88e4d3aec..874e1c381 100644
--- a/Source/WebKit2/Shared/qt/ShareableBitmapQt.cpp
+++ b/Source/WebKit2/Shared/qt/ShareableBitmapQt.cpp
@@ -53,8 +53,8 @@ void ShareableBitmap::releaseSharedMemoryData(void* typelessBitmap)
PassRefPtr<Image> ShareableBitmap::createImage()
{
- QImage* image = new QImage(createQImage());
- return BitmapImage::create(image);
+ QPixmap* pixmap = new QPixmap(QPixmap::fromImage(createQImage()));
+ return BitmapImage::create(pixmap);
}
PassOwnPtr<GraphicsContext> ShareableBitmap::createGraphicsContext()
@@ -82,8 +82,13 @@ void ShareableBitmap::paint(GraphicsContext& context, float scaleFactor, const I
return;
}
- // See <https://bugs.webkit.org/show_bug.cgi?id=64663>.
- notImplemented();
+ QImage image = createQImage();
+ QPainter* painter = context.platformContext();
+
+ painter->save();
+ painter->scale(scaleFactor, scaleFactor);
+ painter->drawImage(dstPoint, image, QRect(srcRect));
+ painter->restore();
}
}
diff --git a/Source/WebKit2/Shared/qt/WebCoreArgumentCodersQt.cpp b/Source/WebKit2/Shared/qt/WebCoreArgumentCodersQt.cpp
index ad5574f8f..f8d643b98 100644
--- a/Source/WebKit2/Shared/qt/WebCoreArgumentCodersQt.cpp
+++ b/Source/WebKit2/Shared/qt/WebCoreArgumentCodersQt.cpp
@@ -34,100 +34,32 @@ using namespace WebCore;
namespace CoreIPC {
-void ArgumentCoder<ResourceRequest>::encode(ArgumentEncoder* encoder, const ResourceRequest& resourceRequest)
+void ArgumentCoder<ResourceRequest>::encodePlatformData(ArgumentEncoder* encoder, const ResourceRequest& resourceRequest)
{
- encoder->encode(resourceRequest.url().string());
}
-bool ArgumentCoder<ResourceRequest>::decode(ArgumentDecoder* decoder, ResourceRequest& resourceRequest)
+bool ArgumentCoder<ResourceRequest>::decodePlatformData(ArgumentDecoder* decoder, ResourceRequest& resourceRequest)
{
- // FIXME: Add *more* coding implementation when we want to implement something that
- // depends on this like the policy client.
-
- String url;
- if (!decoder->decode(url))
- return false;
- resourceRequest.setURL(KURL(KURL(), url));
return true;
}
-void ArgumentCoder<ResourceResponse>::encode(ArgumentEncoder* encoder, const ResourceResponse& resourceResponse)
+void ArgumentCoder<ResourceResponse>::encodePlatformData(ArgumentEncoder* encoder, const ResourceResponse& resourceResponse)
{
- encoder->encode(resourceResponse.url().string());
- encoder->encode(resourceResponse.mimeType());
- encoder->encode(static_cast<int64_t>(resourceResponse.expectedContentLength()));
- encoder->encode(resourceResponse.textEncodingName());
- encoder->encode(resourceResponse.suggestedFilename());
}
-bool ArgumentCoder<ResourceResponse>::decode(ArgumentDecoder* decoder, ResourceResponse& resourceResponse)
+bool ArgumentCoder<ResourceResponse>::decodePlatformData(ArgumentDecoder* decoder, ResourceResponse& resourceResponse)
{
- ResourceResponse response;
-
- String url;
- if (!decoder->decode(url))
- return false;
- response.setURL(KURL(WebCore::ParsedURLString, url));
-
- String mimeType;
- if (!decoder->decode(mimeType))
- return false;
- response.setMimeType(mimeType);
-
- int64_t contentLength;
- if (!decoder->decode(contentLength))
- return false;
- response.setExpectedContentLength(contentLength);
-
- String textEncodingName;
- if (!decoder->decode(textEncodingName))
- return false;
- response.setTextEncodingName(textEncodingName);
-
- String suggestedFilename;
- if (!decoder->decode(suggestedFilename))
- return false;
- response.setSuggestedFilename(suggestedFilename);
-
- resourceResponse = response;
return true;
}
-void ArgumentCoder<ResourceError>::encode(ArgumentEncoder* encoder, const ResourceError& resourceError)
+void ArgumentCoder<ResourceError>::encodePlatformData(ArgumentEncoder* encoder, const ResourceError& resourceError)
{
- encoder->encode(resourceError.domain());
- encoder->encode(resourceError.errorCode());
- encoder->encode(resourceError.failingURL());
- encoder->encode(resourceError.localizedDescription());
- encoder->encode(resourceError.isCancellation());
}
-bool ArgumentCoder<ResourceError>::decode(ArgumentDecoder* decoder, ResourceError& resourceError)
+bool ArgumentCoder<ResourceError>::decodePlatformData(ArgumentDecoder* decoder, ResourceError& resourceError)
{
- String domain;
- if (!decoder->decode(domain))
- return false;
-
- int errorCode;
- if (!decoder->decode(errorCode))
- return false;
-
- String failingURL;
- if (!decoder->decode(failingURL))
- return false;
-
- String localizedDescription;
- if (!decoder->decode(localizedDescription))
- return false;
-
- bool isCancellation;
- if (!decoder->decode(isCancellation))
- return false;
-
- resourceError = ResourceError(domain, errorCode, failingURL, localizedDescription);
- resourceError.setIsCancellation(isCancellation);
return true;
}
diff --git a/Source/WebKit2/Shared/qt/WebEventFactoryQt.h b/Source/WebKit2/Shared/qt/WebEventFactoryQt.h
index f1c24fb00..e5e3a101b 100644
--- a/Source/WebKit2/Shared/qt/WebEventFactoryQt.h
+++ b/Source/WebKit2/Shared/qt/WebEventFactoryQt.h
@@ -38,6 +38,7 @@ class QTouchEvent;
class QMouseEvent;
class QWheelEvent;
class QKeyEvent;
+class QTransform;
QT_END_NAMESPACE
diff --git a/Source/WebKit2/Shared/soup/WebCoreArgumentCodersSoup.cpp b/Source/WebKit2/Shared/soup/WebCoreArgumentCodersSoup.cpp
index dbe2c51cd..c47d7eba1 100644
--- a/Source/WebKit2/Shared/soup/WebCoreArgumentCodersSoup.cpp
+++ b/Source/WebKit2/Shared/soup/WebCoreArgumentCodersSoup.cpp
@@ -36,191 +36,42 @@ using namespace WebCore;
namespace CoreIPC {
-void ArgumentCoder<ResourceRequest>::encode(ArgumentEncoder* encoder, const ResourceRequest& resourceRequest)
+void ArgumentCoder<ResourceRequest>::encodePlatformData(ArgumentEncoder* encoder, const ResourceRequest& resourceRequest)
{
- encoder->encode(resourceRequest.url().string());
- encoder->encode(resourceRequest.httpMethod());
-
- const HTTPHeaderMap& headers = resourceRequest.httpHeaderFields();
- encoder->encode(headers);
-
- FormData* httpBody = resourceRequest.httpBody();
- encoder->encode(static_cast<bool>(httpBody));
- if (httpBody)
- encoder->encode(httpBody->flattenToString());
-
- encoder->encode(resourceRequest.firstPartyForCookies().string());
encoder->encode(static_cast<uint32_t>(resourceRequest.soupMessageFlags()));
}
-bool ArgumentCoder<ResourceRequest>::decode(ArgumentDecoder* decoder, ResourceRequest& resourceRequest)
+bool ArgumentCoder<ResourceRequest>::decodePlatformData(ArgumentDecoder* decoder, ResourceRequest& resourceRequest)
{
- ResourceRequest request;
-
- String url;
- if (!decoder->decode(url))
- return false;
- request.setURL(KURL(KURL(), url));
-
- String httpMethod;
- if (!decoder->decode(httpMethod))
- return false;
- request.setHTTPMethod(httpMethod);
-
- HTTPHeaderMap headers;
- if (!decoder->decode(headers))
- return false;
- request.addHTTPHeaderFields(headers);
-
- bool hasHTTPBody;
- if (!decoder->decode(hasHTTPBody))
- return false;
- if (hasHTTPBody) {
- String httpBody;
- if (!decoder->decode(httpBody))
- return false;
- request.setHTTPBody(FormData::create(httpBody.utf8()));
- }
-
- String firstPartyForCookies;
- if (!decoder->decode(firstPartyForCookies))
- return false;
- request.setFirstPartyForCookies(KURL(KURL(), firstPartyForCookies));
-
uint32_t soupMessageFlags;
if (!decoder->decode(soupMessageFlags))
return false;
- request.setSoupMessageFlags(static_cast<SoupMessageFlags>(soupMessageFlags));
-
- resourceRequest = request;
+ resourceRequest.setSoupMessageFlags(static_cast<SoupMessageFlags>(soupMessageFlags));
return true;
}
-void ArgumentCoder<ResourceResponse>::encode(ArgumentEncoder* encoder, const ResourceResponse& resourceResponse)
+void ArgumentCoder<ResourceResponse>::encodePlatformData(ArgumentEncoder* encoder, const ResourceResponse& resourceResponse)
{
- bool responseIsNull = resourceResponse.isNull();
- encoder->encode(responseIsNull);
- if (responseIsNull)
- return;
-
- encoder->encode(resourceResponse.url().string());
- encoder->encode(static_cast<int32_t>(resourceResponse.httpStatusCode()));
-
- const HTTPHeaderMap& headers = resourceResponse.httpHeaderFields();
- encoder->encode(headers);
-
encoder->encode(static_cast<uint32_t>(resourceResponse.soupMessageFlags()));
- encoder->encode(resourceResponse.mimeType());
- encoder->encode(resourceResponse.textEncodingName());
- encoder->encode(static_cast<int64_t>(resourceResponse.expectedContentLength()));
- encoder->encode(resourceResponse.httpStatusText());
- encoder->encode(resourceResponse.suggestedFilename());
}
-bool ArgumentCoder<ResourceResponse>::decode(ArgumentDecoder* decoder, ResourceResponse& resourceResponse)
+bool ArgumentCoder<ResourceResponse>::decodePlatformData(ArgumentDecoder* decoder, ResourceResponse& resourceResponse)
{
- bool responseIsNull;
- if (!decoder->decode(responseIsNull))
- return false;
- if (responseIsNull) {
- resourceResponse = ResourceResponse();
- return true;
- }
-
- ResourceResponse response;
-
- String url;
- if (!decoder->decode(url))
- return false;
- response.setURL(KURL(KURL(), url));
-
- int32_t httpStatusCode;
- if (!decoder->decode(httpStatusCode))
- return false;
- response.setHTTPStatusCode(httpStatusCode);
-
- HTTPHeaderMap headers;
- if (!decoder->decode(headers))
- return false;
- for (HTTPHeaderMap::const_iterator it = headers.begin(), end = headers.end(); it != end; ++it)
- response.setHTTPHeaderField(it->first, it->second);
-
uint32_t soupMessageFlags;
if (!decoder->decode(soupMessageFlags))
return false;
- response.setSoupMessageFlags(static_cast<SoupMessageFlags>(soupMessageFlags));
-
- String mimeType;
- if (!decoder->decode(mimeType))
- return false;
- response.setMimeType(mimeType);
-
- String textEncodingName;
- if (!decoder->decode(textEncodingName))
- return false;
- response.setTextEncodingName(textEncodingName);
-
- int64_t contentLength;
- if (!decoder->decode(contentLength))
- return false;
- response.setExpectedContentLength(contentLength);
-
- String httpStatusText;
- if (!decoder->decode(httpStatusText))
- return false;
- response.setHTTPStatusText(httpStatusText);
-
- String suggestedFilename;
- if (!decoder->decode(suggestedFilename))
- return false;
- response.setSuggestedFilename(suggestedFilename);
-
- resourceResponse = response;
+ resourceResponse.setSoupMessageFlags(static_cast<SoupMessageFlags>(soupMessageFlags));
return true;
}
-void ArgumentCoder<ResourceError>::encode(ArgumentEncoder* encoder, const ResourceError& resourceError)
+void ArgumentCoder<ResourceError>::encodePlatformData(ArgumentEncoder* encoder, const ResourceError& resourceError)
{
- bool errorIsNull = resourceError.isNull();
- encoder->encode(errorIsNull);
- if (errorIsNull)
- return;
-
- encoder->encode(resourceError.domain());
- encoder->encode(resourceError.errorCode());
- encoder->encode(resourceError.failingURL());
- encoder->encode(resourceError.localizedDescription());
}
-bool ArgumentCoder<ResourceError>::decode(ArgumentDecoder* decoder, ResourceError& resourceError)
+bool ArgumentCoder<ResourceError>::decodePlatformData(ArgumentDecoder* decoder, ResourceError& resourceError)
{
- bool errorIsNull;
- if (!decoder->decode(errorIsNull))
- return false;
- if (errorIsNull) {
- resourceError = ResourceError();
- return true;
- }
-
- String domain;
- if (!decoder->decode(domain))
- return false;
-
- int errorCode;
- if (!decoder->decode(errorCode))
- return false;
-
- String failingURL;
- if (!decoder->decode(failingURL))
- return false;
-
- String localizedDescription;
- if (!decoder->decode(localizedDescription))
- return false;
-
- resourceError = ResourceError(domain, errorCode, failingURL, localizedDescription);
return true;
}
diff --git a/Source/WebKit2/Shared/win/WebCoreArgumentCodersWin.cpp b/Source/WebKit2/Shared/win/WebCoreArgumentCodersWin.cpp
index 0762275b0..a61409194 100644
--- a/Source/WebKit2/Shared/win/WebCoreArgumentCodersWin.cpp
+++ b/Source/WebKit2/Shared/win/WebCoreArgumentCodersWin.cpp
@@ -49,7 +49,7 @@ namespace CoreIPC {
// FIXME: These coders should really go in a WebCoreArgumentCodersCFNetwork file.
-void ArgumentCoder<ResourceRequest>::encode(ArgumentEncoder* encoder, const ResourceRequest& resourceRequest)
+void ArgumentCoder<ResourceRequest>::encodePlatformData(ArgumentEncoder* encoder, const ResourceRequest& resourceRequest)
{
#if USE(CFNETWORK)
bool requestIsPresent = resourceRequest.cfURLRequest();
@@ -63,7 +63,7 @@ void ArgumentCoder<ResourceRequest>::encode(ArgumentEncoder* encoder, const Reso
#endif
}
-bool ArgumentCoder<ResourceRequest>::decode(ArgumentDecoder* decoder, ResourceRequest& resourceRequest)
+bool ArgumentCoder<ResourceRequest>::decodePlatformData(ArgumentDecoder* decoder, ResourceRequest& resourceRequest)
{
#if USE(CFNETWORK)
bool requestIsPresent;
@@ -95,7 +95,7 @@ bool ArgumentCoder<ResourceRequest>::decode(ArgumentDecoder* decoder, ResourceRe
}
-void ArgumentCoder<ResourceResponse>::encode(ArgumentEncoder* encoder, const ResourceResponse& resourceResponse)
+void ArgumentCoder<ResourceResponse>::encodePlatformData(ArgumentEncoder* encoder, const ResourceResponse& resourceResponse)
{
#if USE(CFNETWORK)
bool responseIsPresent = resourceResponse.cfURLResponse();
@@ -109,7 +109,7 @@ void ArgumentCoder<ResourceResponse>::encode(ArgumentEncoder* encoder, const Res
#endif
}
-bool ArgumentCoder<ResourceResponse>::decode(ArgumentDecoder* decoder, ResourceResponse& resourceResponse)
+bool ArgumentCoder<ResourceResponse>::decodePlatformData(ArgumentDecoder* decoder, ResourceResponse& resourceResponse)
{
#if USE(CFNETWORK)
bool responseIsPresent;
@@ -137,50 +137,25 @@ bool ArgumentCoder<ResourceResponse>::decode(ArgumentDecoder* decoder, ResourceR
}
-void ArgumentCoder<ResourceError>::encode(ArgumentEncoder* encoder, const ResourceError& resourceError)
+void ArgumentCoder<ResourceError>::encodePlatformData(ArgumentEncoder* encoder, const ResourceError& resourceError)
{
- encoder->encode(resourceError.domain());
- encoder->encode(resourceError.errorCode());
- encoder->encode(resourceError.failingURL());
- encoder->encode(resourceError.localizedDescription());
-
#if USE(CFNETWORK)
encoder->encode(PlatformCertificateInfo(resourceError.certificate()));
#endif
}
-bool ArgumentCoder<ResourceError>::decode(ArgumentDecoder* decoder, ResourceError& resourceError)
+bool ArgumentCoder<ResourceError>::decodePlatformData(ArgumentDecoder* decoder, ResourceError& resourceError)
{
- String domain;
- if (!decoder->decode(domain))
- return false;
-
- int errorCode;
- if (!decoder->decode(errorCode))
- return false;
-
- String failingURL;
- if (!decoder->decode(failingURL))
- return false;
-
- String localizedDescription;
- if (!decoder->decode(localizedDescription))
- return false;
-
#if USE(CFNETWORK)
PlatformCertificateInfo certificate;
if (!decoder->decode(certificate))
return false;
const Vector<PCCERT_CONTEXT> certificateChain = certificate.certificateChain();
- if (!certificateChain.isEmpty()) {
- ASSERT(certificateChain.size() == 1);
- resourceError = ResourceError(domain, errorCode, failingURL, localizedDescription, copyCertificateToData(certificateChain.first()).get());
- return true;
- }
+ if (!certificateChain.isEmpty())
+ resourceError.setCertificate(copyCertificateToData(certificateChain.first()).get());
#endif
- resourceError = ResourceError(domain, errorCode, failingURL, localizedDescription);
return true;
}
diff --git a/Source/WebKit2/Target.pri b/Source/WebKit2/Target.pri
index 15fa0b18a..4f3930753 100644
--- a/Source/WebKit2/Target.pri
+++ b/Source/WebKit2/Target.pri
@@ -26,6 +26,8 @@ HEADERS += \
Platform/CoreIPC/DataReference.h \
Platform/CoreIPC/HandleMessage.h \
Platform/CoreIPC/MessageID.h \
+ Platform/CoreIPC/MessageReceiver.h \
+ Platform/CoreIPC/MessageReceiverMap.h \
Platform/CoreIPC/MessageSender.h \
Platform/Logging.h \
Platform/Module.h \
@@ -382,6 +384,7 @@ SOURCES += \
Platform/CoreIPC/Attachment.cpp \
Platform/CoreIPC/Connection.cpp \
Platform/CoreIPC/DataReference.cpp \
+ Platform/CoreIPC/MessageReceiverMap.cpp \
Platform/Logging.cpp \
Platform/Module.cpp \
Platform/WorkQueue.cpp \
diff --git a/Source/WebKit2/UIProcess/API/C/WKContext.cpp b/Source/WebKit2/UIProcess/API/C/WKContext.cpp
index 28a70821b..a41a762d1 100644
--- a/Source/WebKit2/UIProcess/API/C/WKContext.cpp
+++ b/Source/WebKit2/UIProcess/API/C/WKContext.cpp
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2010, 2011 Apple Inc. All rights reserved.
+ * Copyright (C) 2010, 2011, 2012 Apple Inc. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
@@ -300,6 +300,12 @@ void WKContextSetJavaScriptGarbageCollectorTimerEnabled(WKContextRef contextRef,
{
toImpl(contextRef)->setJavaScriptGarbageCollectorTimerEnabled(enable);
}
+
+void WKContextSetUsesNetworkProcess(WKContextRef contextRef, bool usesNetworkProcess)
+{
+ toImpl(contextRef)->setUsesNetworkProcess(usesNetworkProcess);
+}
+
// Deprecated functions.
void _WKContextSetAdditionalPluginsDirectory(WKContextRef context, WKStringRef pluginsDirectory)
{
diff --git a/Source/WebKit2/UIProcess/API/C/WKContextPrivate.h b/Source/WebKit2/UIProcess/API/C/WKContextPrivate.h
index 49aec7f53..8aa9c0b0c 100644
--- a/Source/WebKit2/UIProcess/API/C/WKContextPrivate.h
+++ b/Source/WebKit2/UIProcess/API/C/WKContextPrivate.h
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2010 Apple Inc. All rights reserved.
+ * Copyright (C) 2010, 2012 Apple Inc. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
@@ -70,6 +70,10 @@ WK_EXPORT void WKContextSetHTTPPipeliningEnabled(WKContextRef context, bool enab
WK_EXPORT void WKContextWarmInitialProcess(WKContextRef context);
+// FIXME: This function is temporary and useful during the development of the NetworkProcess feature.
+// At some point it should be removed.
+WK_EXPORT void WKContextSetUsesNetworkProcess(WKContextRef context, bool usesNetworkProcess);
+
#ifdef __cplusplus
}
#endif
diff --git a/Source/WebKit2/UIProcess/API/C/WKGeolocationPosition.cpp b/Source/WebKit2/UIProcess/API/C/WKGeolocationPosition.cpp
index 99195c79c..5d94f3e86 100644
--- a/Source/WebKit2/UIProcess/API/C/WKGeolocationPosition.cpp
+++ b/Source/WebKit2/UIProcess/API/C/WKGeolocationPosition.cpp
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2011 Apple Inc. All rights reserved.
+ * Copyright (C) 2011, 2012 Apple Inc. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
@@ -38,6 +38,11 @@ WKTypeID WKGeolocationPositionGetTypeID()
WKGeolocationPositionRef WKGeolocationPositionCreate(double timestamp, double latitude, double longitude, double accuracy)
{
- RefPtr<WebGeolocationPosition> position = WebGeolocationPosition::create(timestamp, latitude, longitude, accuracy);
+ return WKGeolocationPositionCreate_b(timestamp, latitude, longitude, accuracy, false, 0., false, 0., false, 0., false, 0.);
+}
+
+WKGeolocationPositionRef WKGeolocationPositionCreate_b(double timestamp, double latitude, double longitude, double accuracy, bool providesAltitude, double altitude, bool providesAltitudeAccuracy, double altitudeAccuracy, bool providesHeading, double heading, bool providesSpeed, double speed)
+{
+ RefPtr<WebGeolocationPosition> position = WebGeolocationPosition::create(timestamp, latitude, longitude, accuracy, providesAltitude, altitude, providesAltitudeAccuracy, altitudeAccuracy, providesHeading, heading, providesSpeed, speed);
return toAPI(position.release().leakRef());
}
diff --git a/Source/WebKit2/UIProcess/API/C/WKGeolocationPosition.h b/Source/WebKit2/UIProcess/API/C/WKGeolocationPosition.h
index 85183fd60..4727e9763 100644
--- a/Source/WebKit2/UIProcess/API/C/WKGeolocationPosition.h
+++ b/Source/WebKit2/UIProcess/API/C/WKGeolocationPosition.h
@@ -35,6 +35,7 @@ extern "C" {
WK_EXPORT WKTypeID WKGeolocationPositionGetTypeID();
WK_EXPORT WKGeolocationPositionRef WKGeolocationPositionCreate(double timestamp, double latitude, double longitude, double accuracy);
+WK_EXPORT WKGeolocationPositionRef WKGeolocationPositionCreate_b(double timestamp, double latitude, double longitude, double accuracy, bool providesAltitude, double altitude, bool providesAltitudeAccuracy, double altitudeAccuracy, bool providesHeading, double heading, bool providesSpeed, double speed);
#ifdef __cplusplus
}
diff --git a/Source/WebKit2/UIProcess/API/C/WKIconDatabase.h b/Source/WebKit2/UIProcess/API/C/WKIconDatabase.h
index 45ceec765..eec4ab3af 100644
--- a/Source/WebKit2/UIProcess/API/C/WKIconDatabase.h
+++ b/Source/WebKit2/UIProcess/API/C/WKIconDatabase.h
@@ -35,16 +35,22 @@ extern "C" {
// IconDatabase Client.
typedef void (*WKIconDatabaseDidChangeIconForPageURLCallback)(WKIconDatabaseRef iconDatabase, WKURLRef pageURL, const void* clientInfo);
typedef void (*WKIconDatabaseDidRemoveAllIconsCallback)(WKIconDatabaseRef iconDatabase, const void* clientInfo);
+typedef void (*WKIconDatabaseIconDataReadyForPageURLCallback)(WKIconDatabaseRef iconDatabase, WKURLRef pageURL, const void* clientInfo);
struct WKIconDatabaseClient {
int version;
const void * clientInfo;
+
+ // Version 0
WKIconDatabaseDidChangeIconForPageURLCallback didChangeIconForPageURL;
WKIconDatabaseDidRemoveAllIconsCallback didRemoveAllIcons;
+
+ // Version 1
+ WKIconDatabaseIconDataReadyForPageURLCallback iconDataReadyForPageURL;
};
typedef struct WKIconDatabaseClient WKIconDatabaseClient;
-enum { kWKIconDatabaseClientCurrentVersion = 0 };
+enum { kWKIconDatabaseClientCurrentVersion = 1 };
WK_EXPORT WKTypeID WKIconDatabaseGetTypeID();
diff --git a/Source/WebKit2/UIProcess/API/C/WKPage.cpp b/Source/WebKit2/UIProcess/API/C/WKPage.cpp
index 94fda474a..52e1cebf8 100644
--- a/Source/WebKit2/UIProcess/API/C/WKPage.cpp
+++ b/Source/WebKit2/UIProcess/API/C/WKPage.cpp
@@ -365,6 +365,16 @@ bool WKPageIsPinnedToRightSide(WKPageRef pageRef)
return toImpl(pageRef)->isPinnedToRightSide();
}
+bool WKPageIsPinnedToTopSide(WKPageRef pageRef)
+{
+ return toImpl(pageRef)->isPinnedToTopSide();
+}
+
+bool WKPageIsPinnedToBottomSide(WKPageRef pageRef)
+{
+ return toImpl(pageRef)->isPinnedToBottomSide();
+}
+
void WKPageSetPaginationMode(WKPageRef pageRef, WKPaginationMode paginationMode)
{
Pagination::Mode mode;
@@ -738,3 +748,7 @@ void WKPagePostMessageToInjectedBundle(WKPageRef pageRef, WKStringRef messageNam
toImpl(pageRef)->postMessageToInjectedBundle(toImpl(messageNameRef)->string(), toImpl(messageBodyRef));
}
+WKArrayRef WKPageCopyRelatedPages(WKPageRef pageRef)
+{
+ return toAPI(toImpl(pageRef)->relatedPages().leakRef());
+}
diff --git a/Source/WebKit2/UIProcess/API/C/WKPage.h b/Source/WebKit2/UIProcess/API/C/WKPage.h
index 62db9174c..9dfd52e3c 100644
--- a/Source/WebKit2/UIProcess/API/C/WKPage.h
+++ b/Source/WebKit2/UIProcess/API/C/WKPage.h
@@ -439,6 +439,8 @@ WK_EXPORT bool WKPageAreScrollbarAnimationsSuppressed(WKPageRef page);
WK_EXPORT bool WKPageIsPinnedToLeftSide(WKPageRef page);
WK_EXPORT bool WKPageIsPinnedToRightSide(WKPageRef page);
+WK_EXPORT bool WKPageIsPinnedToTopSide(WKPageRef page);
+WK_EXPORT bool WKPageIsPinnedToBottomSide(WKPageRef page);
WK_EXPORT bool WKPageCanDelete(WKPageRef page);
WK_EXPORT bool WKPageHasSelectedRange(WKPageRef page);
diff --git a/Source/WebKit2/UIProcess/API/C/WKPageGroup.cpp b/Source/WebKit2/UIProcess/API/C/WKPageGroup.cpp
index 8a4d86a05..5559d0180 100644
--- a/Source/WebKit2/UIProcess/API/C/WKPageGroup.cpp
+++ b/Source/WebKit2/UIProcess/API/C/WKPageGroup.cpp
@@ -57,3 +57,13 @@ WKPreferencesRef WKPageGroupGetPreferences(WKPageGroupRef pageGroupRef)
{
return toAPI(toImpl(pageGroupRef)->preferences());
}
+
+void WKPageGroupAddUserStyleSheet(WKPageGroupRef pageGroupRef, WKStringRef sourceRef, WKURLRef baseURL, WKArrayRef whitelist, WKArrayRef blacklist, WKUserContentInjectedFrames injectedFrames)
+{
+ toImpl(pageGroupRef)->addUserStyleSheet(toWTFString(sourceRef), toWTFString(baseURL), toImpl(whitelist), toImpl(blacklist), toUserContentInjectedFrames(injectedFrames), WebCore::UserStyleUserLevel);
+}
+
+void WKPageGroupRemoveAllUserStyleSheets(WKPageGroupRef pageGroupRef)
+{
+ toImpl(pageGroupRef)->removeAllUserStyleSheets();
+}
diff --git a/Source/WebKit2/UIProcess/API/C/WKPageGroup.h b/Source/WebKit2/UIProcess/API/C/WKPageGroup.h
index 705df083e..1280241c8 100644
--- a/Source/WebKit2/UIProcess/API/C/WKPageGroup.h
+++ b/Source/WebKit2/UIProcess/API/C/WKPageGroup.h
@@ -40,6 +40,9 @@ WK_EXPORT WKStringRef WKPageGroupCopyIdentifier(WKPageGroupRef pageGroup);
WK_EXPORT void WKPageGroupSetPreferences(WKPageGroupRef pageGroup, WKPreferencesRef preferences);
WK_EXPORT WKPreferencesRef WKPageGroupGetPreferences(WKPageGroupRef pageGroup);
+
+WK_EXPORT void WKPageGroupAddUserStyleSheet(WKPageGroupRef pageGroup, WKStringRef source, WKURLRef baseURL, WKArrayRef whitelist, WKArrayRef blacklist, WKUserContentInjectedFrames);
+WK_EXPORT void WKPageGroupRemoveAllUserStyleSheets(WKPageGroupRef pageGroup);
#ifdef __cplusplus
}
diff --git a/Source/WebKit2/UIProcess/API/C/WKPagePrivate.h b/Source/WebKit2/UIProcess/API/C/WKPagePrivate.h
index 4a13ae7a2..3a9de69af 100644
--- a/Source/WebKit2/UIProcess/API/C/WKPagePrivate.h
+++ b/Source/WebKit2/UIProcess/API/C/WKPagePrivate.h
@@ -94,6 +94,8 @@ WK_EXPORT void WKPageSetShouldSendEventsSynchronously(WKPageRef page, bool sync)
WK_EXPORT void WKPageSetMediaVolume(WKPageRef page, float volume);
+WK_EXPORT WKArrayRef WKPageCopyRelatedPages(WKPageRef page);
+
#ifdef __cplusplus
}
#endif
diff --git a/Source/WebKit2/UIProcess/API/C/WKPreferences.cpp b/Source/WebKit2/UIProcess/API/C/WKPreferences.cpp
index 657b1b730..532d82caf 100644
--- a/Source/WebKit2/UIProcess/API/C/WKPreferences.cpp
+++ b/Source/WebKit2/UIProcess/API/C/WKPreferences.cpp
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2010 Apple Inc. All rights reserved.
+ * Copyright (C) 2010, 2012 Apple Inc. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
@@ -298,6 +298,16 @@ bool WKPreferencesGetScreenFontSubstitutionEnabled(WKPreferencesRef preferencesR
return toImpl(preferencesRef)->screenFontSubstitutionEnabled();
}
+void WKPreferencesSetCookieEnabled(WKPreferencesRef preferencesRef, bool enabled)
+{
+ toImpl(preferencesRef)->setCookieEnabled(enabled);
+}
+
+bool WKPreferencesGetCookieEnabled(WKPreferencesRef preferencesRef)
+{
+ return toImpl(preferencesRef)->cookieEnabled();
+}
+
void WKPreferencesSetEditableLinkBehavior(WKPreferencesRef preferencesRef, WKEditableLinkBehavior wkBehavior)
{
toImpl(preferencesRef)->setEditableLinkBehavior(toEditableLinkBehavior(wkBehavior));
@@ -913,3 +923,23 @@ bool WKPreferencesGetScrollingPerformanceLoggingEnabled(WKPreferencesRef prefere
{
return toImpl(preferencesRef)->scrollingPerformanceLoggingEnabled();
}
+
+void WKPreferencesSetPlugInSnapshottingEnabled(WKPreferencesRef preferencesRef, bool enabled)
+{
+ toImpl(preferencesRef)->setPlugInSnapshottingEnabled(enabled);
+}
+
+bool WKPreferencesGetPlugInSnapshottingEnabled(WKPreferencesRef preferencesRef)
+{
+ return toImpl(preferencesRef)->plugInSnapshottingEnabled();
+}
+
+void WKPreferencesSetPDFPluginEnabled(WKPreferencesRef preferencesRef, bool enabled)
+{
+ toImpl(preferencesRef)->setPDFPluginEnabled(enabled);
+}
+
+bool WKPreferencesGetPDFPluginEnabled(WKPreferencesRef preferencesRef)
+{
+ return toImpl(preferencesRef)->pdfPluginEnabled();
+}
diff --git a/Source/WebKit2/UIProcess/API/C/WKPreferences.h b/Source/WebKit2/UIProcess/API/C/WKPreferences.h
index c0fde67fd..d91b82d83 100644
--- a/Source/WebKit2/UIProcess/API/C/WKPreferences.h
+++ b/Source/WebKit2/UIProcess/API/C/WKPreferences.h
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2010 Apple Inc. All rights reserved.
+ * Copyright (C) 2010, 2012 Apple Inc. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
@@ -216,6 +216,10 @@ WK_EXPORT bool WKPreferencesGetShouldRespectImageOrientation(WKPreferencesRef pr
WK_EXPORT void WKPreferencesSetStorageBlockingPolicy(WKPreferencesRef preferencesRef, WKStorageBlockingPolicy policy);
WK_EXPORT WKStorageBlockingPolicy WKPreferencesGetStorageBlockingPolicy(WKPreferencesRef preferencesRef);
+// Defaults to false
+WK_EXPORT void WKPreferencesSetPlugInSnapshottingEnabled(WKPreferencesRef preferencesRef, bool enabled);
+WK_EXPORT bool WKPreferencesGetPlugInSnapshottingEnabled(WKPreferencesRef preferencesRef);
+
#ifdef __cplusplus
}
#endif
diff --git a/Source/WebKit2/UIProcess/API/C/WKPreferencesPrivate.h b/Source/WebKit2/UIProcess/API/C/WKPreferencesPrivate.h
index 11311704d..af5f73b34 100644
--- a/Source/WebKit2/UIProcess/API/C/WKPreferencesPrivate.h
+++ b/Source/WebKit2/UIProcess/API/C/WKPreferencesPrivate.h
@@ -219,6 +219,14 @@ WK_EXPORT bool WKPreferencesGetScrollingPerformanceLoggingEnabled(WKPreferencesR
WK_EXPORT void WKPreferencesSetScreenFontSubstitutionEnabled(WKPreferencesRef preferences, bool enabled);
WK_EXPORT bool WKPreferencesGetScreenFontSubstitutionEnabled(WKPreferencesRef preferences);
+// Defaults to true
+WK_EXPORT void WKPreferencesSetCookieEnabled(WKPreferencesRef preferences, bool enabled);
+WK_EXPORT bool WKPreferencesGetCookieEnabled(WKPreferencesRef preferences);
+
+// Defaults to false
+WK_EXPORT void WKPreferencesSetPDFPluginEnabled(WKPreferencesRef preferences, bool enabled);
+WK_EXPORT bool WKPreferencesGetPDFPluginEnabled(WKPreferencesRef preferences);
+
WK_EXPORT void WKPreferencesResetTestRunnerOverrides(WKPreferencesRef preferencesRef);
#ifdef __cplusplus
diff --git a/Source/WebKit2/UIProcess/API/C/soup/WKSoupRequestManager.h b/Source/WebKit2/UIProcess/API/C/soup/WKSoupRequestManager.h
index 1c9c001f2..4dba13908 100644
--- a/Source/WebKit2/UIProcess/API/C/soup/WKSoupRequestManager.h
+++ b/Source/WebKit2/UIProcess/API/C/soup/WKSoupRequestManager.h
@@ -33,7 +33,7 @@
extern "C" {
#endif
-typedef void (*WKSoupRequestManagerDidReceiveURIRequestCallback)(WKSoupRequestManagerRef soupRequestManagerRef, WKURLRef urlRef, uint64_t requestID, const void* clientInfo);
+typedef void (*WKSoupRequestManagerDidReceiveURIRequestCallback)(WKSoupRequestManagerRef soupRequestManagerRef, WKURLRef urlRef, WKPageRef pageRef, uint64_t requestID, const void* clientInfo);
typedef void (*WKSoupRequestManagerDidFailToLoadURIRequestCallback)(WKSoupRequestManagerRef soupRequestManagerRef, uint64_t requestID, const void* clientInfo);
struct WKSoupRequestManagerClient {
diff --git a/Source/WebKit2/UIProcess/API/efl/BatteryProvider.cpp b/Source/WebKit2/UIProcess/API/efl/BatteryProvider.cpp
index 83cc37119..810711597 100644
--- a/Source/WebKit2/UIProcess/API/efl/BatteryProvider.cpp
+++ b/Source/WebKit2/UIProcess/API/efl/BatteryProvider.cpp
@@ -31,6 +31,7 @@
#include "WKAPICast.h"
#include "WKBatteryManager.h"
#include "WKBatteryStatus.h"
+#include "WKContext.h"
using namespace WebCore;
using namespace WebKit;
@@ -53,17 +54,25 @@ static void stopUpdatingCallback(WKBatteryManagerRef, const void* clientInfo)
BatteryProvider::~BatteryProvider()
{
m_provider.stopUpdating();
+
+ WKBatteryManagerRef wkBatteryManager = WKContextGetBatteryManager(m_wkContext.get());
+ ASSERT(wkBatteryManager);
+
+ WKBatteryManagerSetProvider(wkBatteryManager, 0);
}
-PassRefPtr<BatteryProvider> BatteryProvider::create(WKBatteryManagerRef wkBatteryManager)
+PassRefPtr<BatteryProvider> BatteryProvider::create(WKContextRef wkContext)
{
- return adoptRef(new BatteryProvider(wkBatteryManager));
+ return adoptRef(new BatteryProvider(wkContext));
}
-BatteryProvider::BatteryProvider(WKBatteryManagerRef wkBatteryManager)
- : m_wkBatteryManager(wkBatteryManager)
+BatteryProvider::BatteryProvider(WKContextRef wkContext)
+ : m_wkContext(wkContext)
, m_provider(this)
{
+ ASSERT(m_wkContext);
+
+ WKBatteryManagerRef wkBatteryManager = WKContextGetBatteryManager(m_wkContext.get());
ASSERT(wkBatteryManager);
WKBatteryProvider wkBatteryProvider = {
@@ -72,7 +81,7 @@ BatteryProvider::BatteryProvider(WKBatteryManagerRef wkBatteryManager)
startUpdatingCallback,
stopUpdatingCallback
};
- WKBatteryManagerSetProvider(m_wkBatteryManager.get(), &wkBatteryProvider);
+ WKBatteryManagerSetProvider(wkBatteryManager, &wkBatteryProvider);
}
void BatteryProvider::startUpdating()
@@ -87,8 +96,11 @@ void BatteryProvider::stopUpdating()
void BatteryProvider::didChangeBatteryStatus(const AtomicString& eventType, PassRefPtr<BatteryStatus> status)
{
+ WKBatteryManagerRef wkBatteryManager = WKContextGetBatteryManager(m_wkContext.get());
+ ASSERT(wkBatteryManager);
+
WKRetainPtr<WKBatteryStatusRef> wkBatteryStatus(AdoptWK, WKBatteryStatusCreate(status->charging(), status->chargingTime(), status->dischargingTime(), status->level()));
- WKBatteryManagerProviderDidChangeBatteryStatus(m_wkBatteryManager.get(), toAPI(eventType.impl()), wkBatteryStatus.get());
+ WKBatteryManagerProviderDidChangeBatteryStatus(wkBatteryManager, toAPI(eventType.impl()), wkBatteryStatus.get());
}
#endif // ENABLE(BATTERY_STATUS)
diff --git a/Source/WebKit2/UIProcess/API/efl/BatteryProvider.h b/Source/WebKit2/UIProcess/API/efl/BatteryProvider.h
index e9e4cf5f0..c54414e68 100644
--- a/Source/WebKit2/UIProcess/API/efl/BatteryProvider.h
+++ b/Source/WebKit2/UIProcess/API/efl/BatteryProvider.h
@@ -38,18 +38,18 @@
class BatteryProvider : public RefCounted<BatteryProvider>, public WebCore::BatteryProviderEflClient {
public:
virtual ~BatteryProvider();
- static PassRefPtr<BatteryProvider> create(WKBatteryManagerRef);
+ static PassRefPtr<BatteryProvider> create(WKContextRef);
void startUpdating();
void stopUpdating();
private:
- BatteryProvider(WKBatteryManagerRef);
+ BatteryProvider(WKContextRef);
// BatteryProviderEflClient interface.
virtual void didChangeBatteryStatus(const AtomicString& eventType, PassRefPtr<WebCore::BatteryStatus>);
- WKRetainPtr<WKBatteryManagerRef> m_wkBatteryManager;
+ WKRetainPtr<WKContextRef> m_wkContext;
WebCore::BatteryProviderEfl m_provider;
};
diff --git a/Source/WebKit2/UIProcess/API/efl/EWebKit2.h b/Source/WebKit2/UIProcess/API/efl/EWebKit2.h
index 13efab13a..00dd811a4 100644
--- a/Source/WebKit2/UIProcess/API/efl/EWebKit2.h
+++ b/Source/WebKit2/UIProcess/API/efl/EWebKit2.h
@@ -33,19 +33,20 @@
#include "ewk_context.h"
#include "ewk_cookie_manager.h"
#include "ewk_download_job.h"
+#include "ewk_error.h"
#include "ewk_form_submission_request.h"
#include "ewk_intent.h"
#include "ewk_intent_service.h"
#include "ewk_main.h"
+#include "ewk_navigation_data.h"
#include "ewk_navigation_policy_decision.h"
#include "ewk_popup_menu_item.h"
+#include "ewk_resource.h"
#include "ewk_settings.h"
#include "ewk_touch.h"
#include "ewk_url_request.h"
#include "ewk_url_response.h"
#include "ewk_url_scheme_request.h"
#include "ewk_view.h"
-#include "ewk_web_error.h"
-#include "ewk_web_resource.h"
#endif // EWebKit2_h
diff --git a/Source/WebKit2/UIProcess/API/efl/EflViewportHandler.cpp b/Source/WebKit2/UIProcess/API/efl/EflViewportHandler.cpp
index eb3d007fe..05be4cadf 100644
--- a/Source/WebKit2/UIProcess/API/efl/EflViewportHandler.cpp
+++ b/Source/WebKit2/UIProcess/API/efl/EflViewportHandler.cpp
@@ -53,6 +53,11 @@ DrawingAreaProxy* EflViewportHandler::drawingArea() const
return ewk_view_page_get(m_viewWidget)->drawingArea();
}
+void EflViewportHandler::setRendererActive(bool active)
+{
+ drawingArea()->layerTreeCoordinatorProxy()->layerTreeRenderer()->setActive(active);
+}
+
void EflViewportHandler::display(const IntRect& rect)
{
WebCore::TransformationMatrix matrix;
diff --git a/Source/WebKit2/UIProcess/API/efl/EflViewportHandler.h b/Source/WebKit2/UIProcess/API/efl/EflViewportHandler.h
index a23f4e147..f4d0e66de 100644
--- a/Source/WebKit2/UIProcess/API/efl/EflViewportHandler.h
+++ b/Source/WebKit2/UIProcess/API/efl/EflViewportHandler.h
@@ -48,7 +48,7 @@ public:
void updateViewportSize(const WebCore::IntSize& viewportSize);
void setVisibleContentsRect(const WebCore::IntPoint&, float, const WebCore::FloatPoint&);
void didChangeContentsSize(const WebCore::IntSize& size);
-
+ void setRendererActive(bool);
private:
explicit EflViewportHandler(Evas_Object*);
diff --git a/Source/WebKit2/UIProcess/API/efl/NetworkInfoProvider.cpp b/Source/WebKit2/UIProcess/API/efl/NetworkInfoProvider.cpp
index 54a6921da..1431c83a7 100644
--- a/Source/WebKit2/UIProcess/API/efl/NetworkInfoProvider.cpp
+++ b/Source/WebKit2/UIProcess/API/efl/NetworkInfoProvider.cpp
@@ -28,6 +28,7 @@
#if ENABLE(NETWORK_INFO)
+#include "WKContext.h"
#include "WKNetworkInfoManager.h"
#include <NotImplemented.h>
@@ -56,15 +57,18 @@ static bool isMeteredCallback(WKNetworkInfoManagerRef, const void* clientInfo)
return toNetworkInfoProvider(clientInfo)->metered();
}
-PassRefPtr<NetworkInfoProvider> NetworkInfoProvider::create(WKNetworkInfoManagerRef wkManager)
+PassRefPtr<NetworkInfoProvider> NetworkInfoProvider::create(WKContextRef wkContext)
{
- return adoptRef(new NetworkInfoProvider(wkManager));
+ return adoptRef(new NetworkInfoProvider(wkContext));
}
-NetworkInfoProvider::NetworkInfoProvider(WKNetworkInfoManagerRef wkManager)
- : m_wkNetworkInfoManager(wkManager)
+NetworkInfoProvider::NetworkInfoProvider(WKContextRef wkContext)
+ : m_wkContext(wkContext)
{
- ASSERT(wkManager);
+ ASSERT(wkContext);
+
+ WKNetworkInfoManagerRef wkNetworkInfoManager = WKContextGetNetworkInfoManager(m_wkContext.get());
+ ASSERT(wkNetworkInfoManager);
WKNetworkInfoProvider wkNetworkInfoProvider = {
kWKNetworkInfoProviderCurrentVersion,
@@ -74,11 +78,15 @@ NetworkInfoProvider::NetworkInfoProvider(WKNetworkInfoManagerRef wkManager)
getBandwidthCallback,
isMeteredCallback
};
- WKNetworkInfoManagerSetProvider(m_wkNetworkInfoManager.get(), &wkNetworkInfoProvider);
+ WKNetworkInfoManagerSetProvider(wkNetworkInfoManager, &wkNetworkInfoProvider);
}
NetworkInfoProvider::~NetworkInfoProvider()
{
+ WKNetworkInfoManagerRef wkNetworkInfoManager = WKContextGetNetworkInfoManager(m_wkContext.get());
+ ASSERT(wkNetworkInfoManager);
+
+ WKNetworkInfoManagerSetProvider(wkNetworkInfoManager, 0);
}
double NetworkInfoProvider::bandwidth() const
diff --git a/Source/WebKit2/UIProcess/API/efl/NetworkInfoProvider.h b/Source/WebKit2/UIProcess/API/efl/NetworkInfoProvider.h
index b9f86e6e5..0a5d60e4f 100644
--- a/Source/WebKit2/UIProcess/API/efl/NetworkInfoProvider.h
+++ b/Source/WebKit2/UIProcess/API/efl/NetworkInfoProvider.h
@@ -37,7 +37,7 @@
class NetworkInfoProvider : public RefCounted<NetworkInfoProvider>, public WebCore::NetworkInfoClient {
public:
virtual ~NetworkInfoProvider();
- static PassRefPtr<NetworkInfoProvider> create(WKNetworkInfoManagerRef);
+ static PassRefPtr<NetworkInfoProvider> create(WKContextRef);
// NetworkInfoClient interface.
virtual double bandwidth() const;
@@ -47,9 +47,9 @@ public:
virtual void stopUpdating();
private:
- NetworkInfoProvider(WKNetworkInfoManagerRef);
+ NetworkInfoProvider(WKContextRef);
- WKRetainPtr<WKNetworkInfoManagerRef> m_wkNetworkInfoManager;
+ WKRetainPtr<WKContextRef> m_wkContext;
WebCore::NetworkInfoProviderEfl m_provider;
};
diff --git a/Source/WebKit2/UIProcess/API/efl/PageClientImpl.cpp b/Source/WebKit2/UIProcess/API/efl/PageClientImpl.cpp
index ef2ce603f..3bf194f57 100644
--- a/Source/WebKit2/UIProcess/API/efl/PageClientImpl.cpp
+++ b/Source/WebKit2/UIProcess/API/efl/PageClientImpl.cpp
@@ -94,8 +94,7 @@ bool PageClientImpl::isViewFocused()
bool PageClientImpl::isViewVisible()
{
- notImplemented();
- return true;
+ return evas_object_visible_get(m_viewWidget);
}
bool PageClientImpl::isViewInWindow()
diff --git a/Source/WebKit2/UIProcess/API/efl/VibrationProvider.cpp b/Source/WebKit2/UIProcess/API/efl/VibrationProvider.cpp
index 29fb6a4fc..13d4de6d6 100644
--- a/Source/WebKit2/UIProcess/API/efl/VibrationProvider.cpp
+++ b/Source/WebKit2/UIProcess/API/efl/VibrationProvider.cpp
@@ -29,6 +29,7 @@
#if ENABLE(VIBRATION)
#include "WKAPICast.h"
+#include "WKContext.h"
#include "WKVibration.h"
#include <Evas.h>
@@ -65,15 +66,18 @@ static void cancelVibrationCallback(WKVibrationRef, const void* clientInfo)
toVibrationProvider(clientInfo)->cancelVibration();
}
-PassRefPtr<VibrationProvider> VibrationProvider::create(WKVibrationRef wkVibrationRef)
+PassRefPtr<VibrationProvider> VibrationProvider::create(WKContextRef wkContext)
{
- return adoptRef(new VibrationProvider(wkVibrationRef));
+ return adoptRef(new VibrationProvider(wkContext));
}
-VibrationProvider::VibrationProvider(WKVibrationRef wkVibrationRef)
- : m_wkVibrationRef(wkVibrationRef)
+VibrationProvider::VibrationProvider(WKContextRef wkContext)
+ : m_wkContext(wkContext)
{
- ASSERT(wkVibrationRef);
+ ASSERT(m_wkContext.get());
+
+ WKVibrationRef wkVibration = WKContextGetVibration(m_wkContext.get());
+ ASSERT(wkVibration);
WKVibrationProvider wkVibrationProvider = {
kWKVibrationProviderCurrentVersion,
@@ -81,11 +85,15 @@ VibrationProvider::VibrationProvider(WKVibrationRef wkVibrationRef)
vibrateCallback,
cancelVibrationCallback
};
- WKVibrationSetProvider(m_wkVibrationRef.get(), &wkVibrationProvider);
+ WKVibrationSetProvider(wkVibration, &wkVibrationProvider);
}
VibrationProvider::~VibrationProvider()
{
+ WKVibrationRef wkVibration = WKContextGetVibration(m_wkContext.get());
+ ASSERT(wkVibration);
+
+ WKVibrationSetProvider(wkVibration, 0);
}
void VibrationProvider::vibrate(uint64_t vibrationTime)
diff --git a/Source/WebKit2/UIProcess/API/efl/VibrationProvider.h b/Source/WebKit2/UIProcess/API/efl/VibrationProvider.h
index c2643b638..6b2db4eec 100644
--- a/Source/WebKit2/UIProcess/API/efl/VibrationProvider.h
+++ b/Source/WebKit2/UIProcess/API/efl/VibrationProvider.h
@@ -37,7 +37,7 @@ typedef struct _Ewk_Vibration_Client Ewk_Vibration_Client;
class VibrationProvider : public RefCounted<VibrationProvider> {
public:
- static PassRefPtr<VibrationProvider> create(WKVibrationRef);
+ static PassRefPtr<VibrationProvider> create(WKContextRef);
virtual ~VibrationProvider();
void vibrate(uint64_t vibrationTime);
@@ -45,9 +45,9 @@ public:
void setVibrationClientCallbacks(Ewk_Vibration_Client_Vibrate_Cb, Ewk_Vibration_Client_Vibration_Cancel_Cb, void*);
private:
- explicit VibrationProvider(WKVibrationRef);
+ explicit VibrationProvider(WKContextRef);
- WKRetainPtr<WKVibrationRef> m_wkVibrationRef;
+ WKRetainPtr<WKContextRef> m_wkContext;
OwnPtr<Ewk_Vibration_Client> m_vibrationClient;
};
diff --git a/Source/WebKit2/UIProcess/API/efl/ewk_back_forward_list.cpp b/Source/WebKit2/UIProcess/API/efl/ewk_back_forward_list.cpp
index be866fa0a..94d0300c1 100644
--- a/Source/WebKit2/UIProcess/API/efl/ewk_back_forward_list.cpp
+++ b/Source/WebKit2/UIProcess/API/efl/ewk_back_forward_list.cpp
@@ -54,7 +54,7 @@ struct _Ewk_Back_Forward_List {
ItemsMap::iterator it = wrapperCache.begin();
ItemsMap::iterator end = wrapperCache.end();
for (; it != end; ++it)
- ewk_back_forward_list_item_unref(it->second);
+ ewk_back_forward_list_item_unref(it->value);
}
};
diff --git a/Source/WebKit2/UIProcess/API/efl/ewk_back_forward_list_item.cpp b/Source/WebKit2/UIProcess/API/efl/ewk_back_forward_list_item.cpp
index 5679773a0..704545a0b 100644
--- a/Source/WebKit2/UIProcess/API/efl/ewk_back_forward_list_item.cpp
+++ b/Source/WebKit2/UIProcess/API/efl/ewk_back_forward_list_item.cpp
@@ -39,9 +39,9 @@ using namespace WebKit;
struct _Ewk_Back_Forward_List_Item {
unsigned int __ref; /**< the reference count of the object */
WKRetainPtr<WKBackForwardListItemRef> wkItem;
- mutable WKEinaSharedString uri;
+ mutable WKEinaSharedString url;
mutable WKEinaSharedString title;
- mutable WKEinaSharedString originalUri;
+ mutable WKEinaSharedString originalURL;
_Ewk_Back_Forward_List_Item(WKBackForwardListItemRef itemRef)
: __ref(1)
@@ -83,13 +83,13 @@ void ewk_back_forward_list_item_unref(Ewk_Back_Forward_List_Item* item)
delete item;
}
-const char* ewk_back_forward_list_item_uri_get(const Ewk_Back_Forward_List_Item* item)
+const char* ewk_back_forward_list_item_url_get(const Ewk_Back_Forward_List_Item* item)
{
EWK_BACK_FORWARD_LIST_ITEM_WK_GET_OR_RETURN(item, wkItem, 0);
- item->uri = WKEinaSharedString(AdoptWK, WKBackForwardListItemCopyURL(wkItem));
+ item->url = WKEinaSharedString(AdoptWK, WKBackForwardListItemCopyURL(wkItem));
- return item->uri;
+ return item->url;
}
const char* ewk_back_forward_list_item_title_get(const Ewk_Back_Forward_List_Item* item)
@@ -101,13 +101,13 @@ const char* ewk_back_forward_list_item_title_get(const Ewk_Back_Forward_List_Ite
return item->title;
}
-const char* ewk_back_forward_list_item_original_uri_get(const Ewk_Back_Forward_List_Item* item)
+const char* ewk_back_forward_list_item_original_url_get(const Ewk_Back_Forward_List_Item* item)
{
EWK_BACK_FORWARD_LIST_ITEM_WK_GET_OR_RETURN(item, wkItem, 0);
- item->originalUri = WKEinaSharedString(AdoptWK, WKBackForwardListItemCopyOriginalURL(wkItem));
+ item->originalURL = WKEinaSharedString(AdoptWK, WKBackForwardListItemCopyOriginalURL(wkItem));
- return item->originalUri;
+ return item->originalURL;
}
Ewk_Back_Forward_List_Item* ewk_back_forward_list_item_new(WKBackForwardListItemRef backForwardListItemData)
diff --git a/Source/WebKit2/UIProcess/API/efl/ewk_back_forward_list_item.h b/Source/WebKit2/UIProcess/API/efl/ewk_back_forward_list_item.h
index a1227dfc0..3c544f3ef 100644
--- a/Source/WebKit2/UIProcess/API/efl/ewk_back_forward_list_item.h
+++ b/Source/WebKit2/UIProcess/API/efl/ewk_back_forward_list_item.h
@@ -59,21 +59,21 @@ EAPI Ewk_Back_Forward_List_Item *ewk_back_forward_list_item_ref(Ewk_Back_Forward
EAPI void ewk_back_forward_list_item_unref(Ewk_Back_Forward_List_Item *item);
/**
- * Returns URI of the item.
+ * Returns URL of the item.
*
- * The returned URI may differ from the original URI (For example if the page was redirected).
+ * The returned URL may differ from the original URL (For example if the page was redirected).
*
- * @see ewk_back_forward_list_item_original_uri_get()
+ * @see ewk_back_forward_list_item_original_url_get()
*
* @param item the back-forward list item instance
*
- * @return the URI of the @a item or @c NULL in case of error. This pointer is
+ * @return the URL of the @a item or @c NULL in case of error. This pointer is
* guaranteed to be eina_stringshare, so whenever possible
* save yourself some cpu cycles and use
* eina_stringshare_ref() instead of eina_stringshare_add() or
* strdup()
*/
-EAPI const char *ewk_back_forward_list_item_uri_get(const Ewk_Back_Forward_List_Item *item);
+EAPI const char *ewk_back_forward_list_item_url_get(const Ewk_Back_Forward_List_Item *item);
/**
* Returns title of the item.
@@ -89,19 +89,19 @@ EAPI const char *ewk_back_forward_list_item_uri_get(const Ewk_Back_Forward_List_
EAPI const char *ewk_back_forward_list_item_title_get(const Ewk_Back_Forward_List_Item *item);
/**
- * Returns original URI of the item.
+ * Returns original URL of the item.
*
- * @see ewk_back_forward_list_item_uri_get()
+ * @see ewk_back_forward_list_item_url_get()
*
* @param item the back-forward list item instance
*
- * @return the original URI of the @a item or @c NULL in case of error. This pointer is
+ * @return the original URL of the @a item or @c NULL in case of error. This pointer is
* guaranteed to be eina_stringshare, so whenever possible
* save yourself some cpu cycles and use
* eina_stringshare_ref() instead of eina_stringshare_add() or
* strdup()
*/
-EAPI const char *ewk_back_forward_list_item_original_uri_get(const Ewk_Back_Forward_List_Item *item);
+EAPI const char *ewk_back_forward_list_item_original_url_get(const Ewk_Back_Forward_List_Item *item);
#ifdef __cplusplus
}
diff --git a/Source/WebKit2/UIProcess/API/efl/ewk_context.cpp b/Source/WebKit2/UIProcess/API/efl/ewk_context.cpp
index b34ff77df..02eddb42d 100644
--- a/Source/WebKit2/UIProcess/API/efl/ewk_context.cpp
+++ b/Source/WebKit2/UIProcess/API/efl/ewk_context.cpp
@@ -22,6 +22,7 @@
#include "ewk_context.h"
#include "BatteryProvider.h"
+#include "NetworkInfoProvider.h"
#include "VibrationProvider.h"
#include "WKAPICast.h"
#include "WKContextSoup.h"
@@ -30,6 +31,7 @@
#include "WKString.h"
#include "WebContext.h"
#include "ewk_context_download_client_private.h"
+#include "ewk_context_history_client_private.h"
#include "ewk_context_private.h"
#include "ewk_context_request_manager_client_private.h"
#include "ewk_cookie_manager_private.h"
@@ -67,6 +69,9 @@ struct _Ewk_Context {
#if ENABLE(BATTERY_STATUS)
RefPtr<BatteryProvider> batteryProvider;
#endif
+#if ENABLE(NETWORK_INFO)
+ RefPtr<NetworkInfoProvider> networkInfoProvider;
+#endif
#if ENABLE(VIBRATION)
RefPtr<VibrationProvider> vibrationProvider;
#endif
@@ -75,20 +80,25 @@ struct _Ewk_Context {
WKRetainPtr<WKSoupRequestManagerRef> requestManager;
URLSchemeHandlerMap urlSchemeHandlers;
+ Ewk_Context_History_Client historyClient;
+
_Ewk_Context(WKRetainPtr<WKContextRef> contextRef)
: __ref(1)
, context(contextRef)
, cookieManager(0)
, requestManager(WKContextGetSoupRequestManager(contextRef.get()))
+ , historyClient()
{
#if ENABLE(BATTERY_STATUS)
- WKBatteryManagerRef wkBatteryManager = WKContextGetBatteryManager(contextRef.get());
- batteryProvider = BatteryProvider::create(wkBatteryManager);
+ batteryProvider = BatteryProvider::create(context.get());
+#endif
+
+#if ENABLE(NETWORK_INFO)
+ networkInfoProvider = NetworkInfoProvider::create(context.get());
#endif
#if ENABLE(VIBRATION)
- WKVibrationRef wkVibrationRef = WKContextGetVibration(contextRef.get());
- vibrationProvider = VibrationProvider::create(wkVibrationRef);
+ vibrationProvider = VibrationProvider::create(context.get());
#endif
#if ENABLE(MEMORY_SAMPLER)
@@ -103,6 +113,7 @@ struct _Ewk_Context {
#endif
ewk_context_request_manager_client_attach(this);
ewk_context_download_client_attach(this);
+ ewk_context_history_client_attach(this);
}
~_Ewk_Context()
@@ -113,7 +124,7 @@ struct _Ewk_Context {
HashMap<uint64_t, Ewk_Download_Job*>::iterator it = downloadJobs.begin();
HashMap<uint64_t, Ewk_Download_Job*>::iterator end = downloadJobs.end();
for ( ; it != end; ++it)
- ewk_download_job_unref(it->second);
+ ewk_download_job_unref(it->value);
}
};
@@ -255,7 +266,7 @@ Ewk_Context* ewk_context_new_with_injected_bundle_path(const char* path)
return new Ewk_Context(adoptWK(WKContextCreateWithInjectedBundlePath(pathRef.get())));
}
-Eina_Bool ewk_context_uri_scheme_register(Ewk_Context* ewkContext, const char* scheme, Ewk_Url_Scheme_Request_Cb callback, void* userData)
+Eina_Bool ewk_context_url_scheme_register(Ewk_Context* ewkContext, const char* scheme, Ewk_Url_Scheme_Request_Cb callback, void* userData)
{
EINA_SAFETY_ON_NULL_RETURN_VAL(ewkContext, false);
EINA_SAFETY_ON_NULL_RETURN_VAL(scheme, false);
@@ -276,3 +287,31 @@ void ewk_context_vibration_client_callbacks_set(Ewk_Context* ewkContext, Ewk_Vib
ewkContext->vibrationProvider->setVibrationClientCallbacks(vibrate, cancel, data);
#endif
}
+
+void ewk_context_history_callbacks_set(Ewk_Context* ewkContext, Ewk_History_Navigation_Cb navigate, Ewk_History_Client_Redirection_Cb clientRedirect, Ewk_History_Server_Redirection_Cb serverRedirect, Ewk_History_Title_Update_Cb titleUpdate, Ewk_History_Populate_Visited_Links_Cb populateVisitedLinks, void* data)
+{
+ EINA_SAFETY_ON_NULL_RETURN(ewkContext);
+
+ ewkContext->historyClient.navigate_func = navigate;
+ ewkContext->historyClient.client_redirect_func = clientRedirect;
+ ewkContext->historyClient.server_redirect_func = serverRedirect;
+ ewkContext->historyClient.title_update_func = titleUpdate;
+ ewkContext->historyClient.populate_visited_links_func = populateVisitedLinks;
+ ewkContext->historyClient.user_data = data;
+}
+
+const Ewk_Context_History_Client* ewk_context_history_client_get(const Ewk_Context* ewkContext)
+{
+ EINA_SAFETY_ON_NULL_RETURN_VAL(ewkContext, 0);
+
+ return &ewkContext->historyClient;
+}
+
+void ewk_context_visited_link_add(Ewk_Context* ewkContext, const char* visitedURL)
+{
+ EINA_SAFETY_ON_NULL_RETURN(ewkContext);
+ EINA_SAFETY_ON_NULL_RETURN(visitedURL);
+
+ WKRetainPtr<WKStringRef> wkVisitedURL(AdoptWK, WKStringCreateWithUTF8CString(visitedURL));
+ WKContextAddVisitedLink(ewkContext->context.get(), wkVisitedURL.get());
+}
diff --git a/Source/WebKit2/UIProcess/API/efl/ewk_context.h b/Source/WebKit2/UIProcess/API/efl/ewk_context.h
index e6e9e0c7b..3f46d460e 100644
--- a/Source/WebKit2/UIProcess/API/efl/ewk_context.h
+++ b/Source/WebKit2/UIProcess/API/efl/ewk_context.h
@@ -38,6 +38,7 @@
#define ewk_context_h
#include "ewk_cookie_manager.h"
+#include "ewk_navigation_data.h"
#include "ewk_url_scheme_request.h"
#include <Evas.h>
@@ -50,7 +51,7 @@ typedef struct _Ewk_Context Ewk_Context;
/**
* @typedef Ewk_Url_Scheme_Request_Cb Ewk_Url_Scheme_Request_Cb
- * @brief Callback type for use with ewk_context_uri_scheme_register().
+ * @brief Callback type for use with ewk_context_url_scheme_register().
*/
typedef void (*Ewk_Url_Scheme_Request_Cb) (Ewk_Url_Scheme_Request *request, void *user_data);
@@ -69,6 +70,38 @@ typedef void (*Ewk_Vibration_Client_Vibrate_Cb)(uint64_t vibration_time, void *u
typedef void (*Ewk_Vibration_Client_Vibration_Cancel_Cb)(void *user_data);
/**
+ * @typedef Ewk_History_Navigation_Cb Ewk_History_Navigation_Cb
+ * @brief Type definition for a function that will be called back when @a view did navigation (loaded new URL).
+ */
+typedef void (*Ewk_History_Navigation_Cb)(const Evas_Object *view, Ewk_Navigation_Data *navigation_data, void *user_data);
+
+/**
+ * @typedef Ewk_History_Client_Redirection_Cb Ewk_History_Client_Redirection_Cb
+ * @brief Type definition for a function that will be called back when @a view performed a client redirect.
+ */
+typedef void (*Ewk_History_Client_Redirection_Cb)(const Evas_Object *view, const char *source_url, const char *destination_url, void *user_data);
+
+/**
+ * @typedef Ewk_History_Server_Redirection_Cb Ewk_History_Server_Redirection_Cb
+ * @brief Type definition for a function that will be called back when @a view performed a server redirect.
+ */
+typedef void (*Ewk_History_Server_Redirection_Cb)(const Evas_Object *view, const char *source_url, const char *destination_url, void *user_data);
+
+/**
+ * @typedef Ewk_History_Title_Update_Cb Ewk_History_Title_Update_Cb
+ * @brief Type definition for a function that will be called back when history title is updated.
+ */
+typedef void (*Ewk_History_Title_Update_Cb)(const Evas_Object *view, const char *title, const char *url, void *user_data);
+
+/**
+ * @typedef Ewk_Context_History_Client_Visited_Links_Populate_Cb Ewk_Context_History_Client_Visited_Links_Populate_Cb
+ * @brief Type definition for a function that will be called back when client is asked to provide visited links from a client-managed storage.
+ *
+ * @see ewk_context_visited_link_add
+ */
+typedef void (*Ewk_History_Populate_Visited_Links_Cb)(void *user_data);
+
+/**
* Increases the reference count of the given object.
*
* @param context context object to increase the reference count
@@ -147,7 +180,7 @@ EAPI Ewk_Cookie_Manager *ewk_context_cookie_manager_get(const Ewk_Context *conte
* @param user_data data to pass to callback function
*
* @code
- * static void about_uri_scheme_request_cb(Ewk_Url_Scheme_Request *request, void *user_data)
+ * static void about_url_scheme_request_cb(Ewk_Url_Scheme_Request *request, void *user_data)
* {
* const char *path;
* char *contents_data = NULL;
@@ -172,7 +205,7 @@ EAPI Ewk_Cookie_Manager *ewk_context_cookie_manager_get(const Ewk_Context *conte
* }
* @endcode
*/
-EAPI Eina_Bool ewk_context_uri_scheme_register(Ewk_Context *context, const char *scheme, Ewk_Url_Scheme_Request_Cb callback, void *user_data);
+EAPI Eina_Bool ewk_context_url_scheme_register(Ewk_Context *context, const char *scheme, Ewk_Url_Scheme_Request_Cb callback, void *user_data);
/**
* Sets vibration client callbacks to handle the tactile feedback in the form of
@@ -190,6 +223,41 @@ EAPI Eina_Bool ewk_context_uri_scheme_register(Ewk_Context *context, const char
*/
EAPI void ewk_context_vibration_client_callbacks_set(Ewk_Context *context, Ewk_Vibration_Client_Vibrate_Cb vibrate, Ewk_Vibration_Client_Vibration_Cancel_Cb cancel, void *data);
+/**
+ * Sets history callbacks for the given @a context.
+ *
+ * To stop listening for history events, you may call this function with @c
+ * NULL for the callbacks.
+ *
+ * @param context context object to set history callbacks
+ * @param navigate_func The function to call when @c ewk_view did navigation (may be @c NULL).
+ * @param client_redirect_func The function to call when @c ewk_view performed a client redirect (may be @c NULL).
+ * @param server_redirect_func The function to call when @c ewk_view performed a server redirect (may be @c NULL).
+ * @param title_update_func The function to call when history title is updated (may be @c NULL).
+ * @param populate_visited_links_func The function is called when client is asked to provide visited links from a
+ * client-managed storage (may be @c NULL).
+ * @param data User data (may be @c NULL).
+ */
+EAPI void ewk_context_history_callbacks_set(Ewk_Context *context,
+ Ewk_History_Navigation_Cb navigate_func,
+ Ewk_History_Client_Redirection_Cb client_redirect_func,
+ Ewk_History_Server_Redirection_Cb server_redirect_func,
+ Ewk_History_Title_Update_Cb title_update_func,
+ Ewk_History_Populate_Visited_Links_Cb populate_visited_links_func,
+ void *data);
+
+/**
+ * Registers the given @a visited_url as visited link in @a context visited link cache.
+ *
+ * This function shall be invoked as a response to @c populateVisitedLinks callback of the history cient.
+ *
+ * @param context context object to add visited link data
+ * @param visited_url visited url
+ *
+ * @see Ewk_Context_History_Client
+ */
+EAPI void ewk_context_visited_link_add(Ewk_Context *context, const char *visited_url);
+
#ifdef __cplusplus
}
#endif
diff --git a/Source/WebKit2/UIProcess/API/efl/ewk_context_download_client.cpp b/Source/WebKit2/UIProcess/API/efl/ewk_context_download_client.cpp
index 9d924bff2..2bbb7ef0f 100644
--- a/Source/WebKit2/UIProcess/API/efl/ewk_context_download_client.cpp
+++ b/Source/WebKit2/UIProcess/API/efl/ewk_context_download_client.cpp
@@ -33,11 +33,10 @@
#include "ewk_context_private.h"
#include "ewk_download_job.h"
#include "ewk_download_job_private.h"
+#include "ewk_error_private.h"
#include "ewk_url_response.h"
#include "ewk_url_response_private.h"
#include "ewk_view_private.h"
-#include "ewk_web_error.h"
-#include "ewk_web_error_private.h"
#include <string.h>
#include <wtf/text/CString.h>
@@ -59,7 +58,7 @@ static WKStringRef decideDestinationWithSuggestedFilename(WKContextRef, WKDownlo
// and the suggested file name.
ewk_view_download_job_requested(ewk_download_job_view_get(download), download);
- // DownloadSoup expects the destination to be a URI.
+ // DownloadSoup expects the destination to be a URL.
String destination = String("file://") + String::fromUTF8(ewk_download_job_destination_get(download));
return WKStringCreateWithUTF8CString(destination.utf8().data());
@@ -95,10 +94,10 @@ static void didFail(WKContextRef, WKDownloadRef wkDownload, WKErrorRef error, co
Ewk_Download_Job* download = ewk_context_download_job_get(toEwkContext(clientInfo), downloadId);
ASSERT(download);
- Ewk_Web_Error* ewkError = ewk_web_error_new(error);
+ Ewk_Error* ewkError = ewk_error_new(error);
ewk_download_job_state_set(download, EWK_DOWNLOAD_JOB_STATE_FAILED);
ewk_view_download_job_failed(ewk_download_job_view_get(download), download, ewkError);
- ewk_web_error_free(ewkError);
+ ewk_error_free(ewkError);
ewk_context_download_job_remove(toEwkContext(clientInfo), downloadId);
}
diff --git a/Source/WebKit2/UIProcess/API/efl/ewk_context_history_client.cpp b/Source/WebKit2/UIProcess/API/efl/ewk_context_history_client.cpp
new file mode 100644
index 000000000..fd1b83aae
--- /dev/null
+++ b/Source/WebKit2/UIProcess/API/efl/ewk_context_history_client.cpp
@@ -0,0 +1,130 @@
+/*
+ * Copyright (C) 2012 Intel Corporation. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include "config.h"
+#include "ewk_context.h"
+
+#include "DownloadProxy.h"
+#include "WKAPICast.h"
+#include "WKContext.h"
+#include "WKEinaSharedString.h"
+#include "WKString.h"
+#include "ewk_context_history_client_private.h"
+#include "ewk_context_private.h"
+#include "ewk_navigation_data.h"
+#include "ewk_navigation_data_private.h"
+#include "ewk_url_response.h"
+#include "ewk_url_response_private.h"
+#include "ewk_view_private.h"
+
+using namespace WebKit;
+
+static inline const Ewk_Context_History_Client* getEwkHistoryDelegate(const void* clientInfo)
+{
+ ASSERT(clientInfo);
+ return ewk_context_history_client_get(static_cast<const Ewk_Context*>(clientInfo));
+}
+
+static void didNavigateWithNavigationData(WKContextRef, WKPageRef page, WKNavigationDataRef navigationData, WKFrameRef, const void* clientInfo)
+{
+ const Ewk_Context_History_Client* historyDelegate = getEwkHistoryDelegate(clientInfo);
+ ASSERT(historyDelegate);
+
+ if (!historyDelegate->navigate_func)
+ return;
+
+ RefPtr<Ewk_Navigation_Data> navigationDataEwk = adoptRef(ewk_navigation_data_new(navigationData));
+ historyDelegate->navigate_func(ewk_view_from_page_get(toImpl(page)), navigationDataEwk.get(), historyDelegate->user_data);
+}
+
+static void didPerformClientRedirect(WKContextRef, WKPageRef page, WKURLRef sourceURL, WKURLRef destinationURL, WKFrameRef, const void* clientInfo)
+{
+ const Ewk_Context_History_Client* historyDelegate = getEwkHistoryDelegate(clientInfo);
+ ASSERT(historyDelegate);
+
+ if (!historyDelegate->client_redirect_func)
+ return;
+
+ WKEinaSharedString sourceURLString(sourceURL);
+ WKEinaSharedString destinationURLString(destinationURL);
+
+ historyDelegate->client_redirect_func(ewk_view_from_page_get(toImpl(page)), sourceURLString, destinationURLString, historyDelegate->user_data);
+}
+
+static void didPerformServerRedirect(WKContextRef, WKPageRef page, WKURLRef sourceURL, WKURLRef destinationURL, WKFrameRef, const void* clientInfo)
+{
+ const Ewk_Context_History_Client* historyDelegate = getEwkHistoryDelegate(clientInfo);
+ ASSERT(historyDelegate);
+
+ if (!historyDelegate->server_redirect_func)
+ return;
+
+ WKEinaSharedString sourceURLString(sourceURL);
+ WKEinaSharedString destinationURLString(destinationURL);
+
+ historyDelegate->server_redirect_func(ewk_view_from_page_get(toImpl(page)), sourceURLString, destinationURLString, historyDelegate->user_data);
+}
+
+static void didUpdateHistoryTitle(WKContextRef, WKPageRef page, WKStringRef title, WKURLRef URL, WKFrameRef, const void* clientInfo)
+{
+ const Ewk_Context_History_Client* historyDelegate = getEwkHistoryDelegate(clientInfo);
+ ASSERT(historyDelegate);
+
+ if (!historyDelegate->title_update_func)
+ return;
+
+ WKEinaSharedString titleString(title);
+ WKEinaSharedString stringURL(URL);
+
+ historyDelegate->title_update_func(ewk_view_from_page_get(toImpl(page)), titleString, stringURL, historyDelegate->user_data);
+}
+
+static void populateVisitedLinks(WKContextRef, const void* clientInfo)
+{
+ const Ewk_Context_History_Client* historyDelegate = getEwkHistoryDelegate(clientInfo);
+ ASSERT(historyDelegate);
+
+ if (!historyDelegate->populate_visited_links_func)
+ return;
+
+ historyDelegate->populate_visited_links_func(historyDelegate->user_data);
+}
+
+void ewk_context_history_client_attach(Ewk_Context* ewkContext)
+{
+ WKContextHistoryClient wkHistoryClient;
+ memset(&wkHistoryClient, 0, sizeof(WKContextHistoryClient));
+
+ wkHistoryClient.version = kWKContextHistoryClientCurrentVersion;
+ wkHistoryClient.clientInfo = ewkContext;
+
+ wkHistoryClient.didNavigateWithNavigationData = didNavigateWithNavigationData;
+ wkHistoryClient.didPerformClientRedirect = didPerformClientRedirect;
+ wkHistoryClient.didPerformServerRedirect = didPerformServerRedirect;
+ wkHistoryClient.didUpdateHistoryTitle = didUpdateHistoryTitle;
+ wkHistoryClient.populateVisitedLinks = populateVisitedLinks;
+
+ WKContextSetHistoryClient(ewk_context_WKContext_get(ewkContext), &wkHistoryClient);
+}
diff --git a/Source/WebKit2/UIProcess/API/efl/ewk_context_history_client_private.h b/Source/WebKit2/UIProcess/API/efl/ewk_context_history_client_private.h
new file mode 100644
index 000000000..d9518ced9
--- /dev/null
+++ b/Source/WebKit2/UIProcess/API/efl/ewk_context_history_client_private.h
@@ -0,0 +1,44 @@
+/*
+ * Copyright (C) 2012 Intel Corporation. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef ewk_context_history_client_private_h
+#define ewk_context_history_client_private_h
+
+#include "ewk_context.h"
+
+struct _Ewk_Context_History_Client {
+ void* user_data;
+ Ewk_History_Navigation_Cb navigate_func;
+ Ewk_History_Client_Redirection_Cb client_redirect_func;
+ Ewk_History_Server_Redirection_Cb server_redirect_func;
+ Ewk_History_Title_Update_Cb title_update_func;
+ Ewk_History_Populate_Visited_Links_Cb populate_visited_links_func;
+};
+
+typedef struct _Ewk_Context_History_Client Ewk_Context_History_Client;
+
+void ewk_context_history_client_attach(Ewk_Context*);
+
+#endif // ewk_context_history_client_private_h
diff --git a/Source/WebKit2/UIProcess/API/efl/ewk_context_private.h b/Source/WebKit2/UIProcess/API/efl/ewk_context_private.h
index d1b695e0c..f2c322a61 100644
--- a/Source/WebKit2/UIProcess/API/efl/ewk_context_private.h
+++ b/Source/WebKit2/UIProcess/API/efl/ewk_context_private.h
@@ -25,6 +25,7 @@
typedef struct _Ewk_Context Ewk_Context;
typedef struct _Ewk_Download_Job Ewk_Download_Job;
typedef struct _Ewk_Url_Scheme_Request Ewk_Url_Scheme_Request;
+typedef struct _Ewk_Context_History_Client Ewk_Context_History_Client;
WKContextRef ewk_context_WKContext_get(const Ewk_Context*);
Ewk_Context* ewk_context_new_from_WKContext(WKContextRef);
@@ -35,4 +36,6 @@ void ewk_context_download_job_add(Ewk_Context*, Ewk_Download_Job*);
Ewk_Download_Job* ewk_context_download_job_get(const Ewk_Context*, uint64_t downloadId);
void ewk_context_download_job_remove(Ewk_Context*, uint64_t downloadId);
+const Ewk_Context_History_Client* ewk_context_history_client_get(const Ewk_Context*);
+
#endif // ewk_context_private_h
diff --git a/Source/WebKit2/UIProcess/API/efl/ewk_context_request_manager_client.cpp b/Source/WebKit2/UIProcess/API/efl/ewk_context_request_manager_client.cpp
index b22bd36ff..5a7707229 100644
--- a/Source/WebKit2/UIProcess/API/efl/ewk_context_request_manager_client.cpp
+++ b/Source/WebKit2/UIProcess/API/efl/ewk_context_request_manager_client.cpp
@@ -37,7 +37,7 @@ static inline Ewk_Context* toEwkContext(const void* clientInfo)
return static_cast<Ewk_Context*>(const_cast<void*>(clientInfo));
}
-static void didReceiveURIRequest(WKSoupRequestManagerRef soupRequestManagerRef, WKURLRef urlRef, uint64_t requestID, const void* clientInfo)
+static void didReceiveURIRequest(WKSoupRequestManagerRef soupRequestManagerRef, WKURLRef urlRef, WKPageRef, uint64_t requestID, const void* clientInfo)
{
Ewk_Url_Scheme_Request* schemeRequest = ewk_url_scheme_request_new(soupRequestManagerRef, urlRef, requestID);
ewk_context_url_scheme_request_received(toEwkContext(clientInfo), schemeRequest);
diff --git a/Source/WebKit2/UIProcess/API/efl/ewk_cookie_manager.cpp b/Source/WebKit2/UIProcess/API/efl/ewk_cookie_manager.cpp
index 45dd75e63..a52047336 100644
--- a/Source/WebKit2/UIProcess/API/efl/ewk_cookie_manager.cpp
+++ b/Source/WebKit2/UIProcess/API/efl/ewk_cookie_manager.cpp
@@ -33,8 +33,8 @@
#include "WKRetainPtr.h"
#include "WKString.h"
#include "WebCookieManagerProxy.h"
+#include "ewk_error_private.h"
#include "ewk_private.h"
-#include "ewk_web_error_private.h"
#include <wtf/text/CString.h>
#include <wtf/text/WTFString.h>
@@ -142,12 +142,12 @@ struct Get_Policy_Async_Data {
static void getAcceptPolicyCallback(WKHTTPCookieAcceptPolicy policy, WKErrorRef wkError, void* data)
{
Get_Policy_Async_Data* callbackData = static_cast<Get_Policy_Async_Data*>(data);
- Ewk_Web_Error* ewkError = wkError ? ewk_web_error_new(wkError) : 0;
+ Ewk_Error* ewkError = wkError ? ewk_error_new(wkError) : 0;
callbackData->callback(static_cast<Ewk_Cookie_Accept_Policy>(policy), ewkError, callbackData->userData);
if (ewkError)
- ewk_web_error_free(ewkError);
+ ewk_error_free(ewkError);
delete callbackData;
}
@@ -172,7 +172,7 @@ static void getHostnamesWithCookiesCallback(WKArrayRef wkHostnames, WKErrorRef w
{
Eina_List* hostnames = 0;
Get_Hostnames_Async_Data* callbackData = static_cast<Get_Hostnames_Async_Data*>(context);
- Ewk_Web_Error* ewkError = wkError ? ewk_web_error_new(wkError) : 0;
+ Ewk_Error* ewkError = wkError ? ewk_error_new(wkError) : 0;
const size_t hostnameCount = WKArrayGetSize(wkHostnames);
for (size_t i = 0; i < hostnameCount; ++i) {
@@ -189,7 +189,7 @@ static void getHostnamesWithCookiesCallback(WKArrayRef wkHostnames, WKErrorRef w
EINA_LIST_FREE(hostnames, item)
eina_stringshare_del(static_cast<Eina_Stringshare*>(item));
if (ewkError)
- ewk_web_error_free(ewkError);
+ ewk_error_free(ewkError);
delete callbackData;
}
diff --git a/Source/WebKit2/UIProcess/API/efl/ewk_cookie_manager.h b/Source/WebKit2/UIProcess/API/efl/ewk_cookie_manager.h
index e37780864..c31b90018 100644
--- a/Source/WebKit2/UIProcess/API/efl/ewk_cookie_manager.h
+++ b/Source/WebKit2/UIProcess/API/efl/ewk_cookie_manager.h
@@ -31,7 +31,7 @@
#ifndef ewk_cookie_manager_h
#define ewk_cookie_manager_h
-#include "ewk_web_error.h"
+#include "ewk_error.h"
#include <Eina.h>
#ifdef __cplusplus
@@ -77,7 +77,7 @@ typedef enum _Ewk_Cookie_Persistent_Storage Ewk_Cookie_Persistent_Storage;
* @typedef Ewk_Cookie_Manager_Async_Policy_Get_Cb Ewk_Cookie_Manager_Async_Policy_Get_Cb
* @brief Callback type for use with ewk_cookie_manager_async_accept_policy_get
*/
-typedef void (*Ewk_Cookie_Manager_Async_Policy_Get_Cb)(Ewk_Cookie_Accept_Policy policy, Ewk_Web_Error *error, void *event_info);
+typedef void (*Ewk_Cookie_Manager_Async_Policy_Get_Cb)(Ewk_Cookie_Accept_Policy policy, Ewk_Error *error, void *event_info);
/**
* @typedef Ewk_Cookie_Manager_Async_Hostnames_Get_Cb Ewk_Cookie_Manager_Async_Hostnames_Get_Cb
@@ -87,7 +87,7 @@ typedef void (*Ewk_Cookie_Manager_Async_Policy_Get_Cb)(Ewk_Cookie_Accept_Policy
* save yourself some cpu cycles and use eina_stringshare_ref() instead of eina_stringshare_add()
* or strdup().
*/
-typedef void (*Ewk_Cookie_Manager_Async_Hostnames_Get_Cb)(Eina_List* hostnames, Ewk_Web_Error *error, void *event_info);
+typedef void (*Ewk_Cookie_Manager_Async_Hostnames_Get_Cb)(Eina_List *hostnames, Ewk_Error *error, void *event_info);
/**
* @typedef Ewk_Cookie_Manager_Changes_Watch_Cb Ewk_Cookie_Manager_Changes_Watch_Cb
diff --git a/Source/WebKit2/UIProcess/API/efl/ewk_download_job.cpp b/Source/WebKit2/UIProcess/API/efl/ewk_download_job.cpp
index 61297920b..15a95b05f 100644
--- a/Source/WebKit2/UIProcess/API/efl/ewk_download_job.cpp
+++ b/Source/WebKit2/UIProcess/API/efl/ewk_download_job.cpp
@@ -46,7 +46,7 @@ struct _Ewk_Download_Job {
DownloadProxy* downloadProxy;
Evas_Object* view;
Ewk_Download_Job_State state;
- Ewk_Url_Request* request;
+ RefPtr<Ewk_Url_Request> request;
Ewk_Url_Response* response;
double startTime;
double endTime;
@@ -59,7 +59,6 @@ struct _Ewk_Download_Job {
, downloadProxy(download)
, view(ewkView)
, state(EWK_DOWNLOAD_JOB_STATE_NOT_STARTED)
- , request(0)
, response(0)
, startTime(-1)
, endTime(-1)
@@ -69,8 +68,6 @@ struct _Ewk_Download_Job {
~_Ewk_Download_Job()
{
ASSERT(!__ref);
- if (request)
- ewk_url_request_unref(request);
if (response)
ewk_url_response_unref(response);
}
@@ -133,10 +130,10 @@ Ewk_Url_Request* ewk_download_job_request_get(const Ewk_Download_Job* download)
if (!download->request) {
EINA_SAFETY_ON_NULL_RETURN_VAL(download->downloadProxy, 0);
WKRetainPtr<WKURLRequestRef> wkURLRequest(AdoptWK, toAPI(WebURLRequest::create(download->downloadProxy->request()).leakRef()));
- const_cast<Ewk_Download_Job*>(download)->request = ewk_url_request_new(wkURLRequest.get());
+ const_cast<Ewk_Download_Job*>(download)->request = adoptRef(ewk_url_request_new(wkURLRequest.get()));
}
- return download->request;
+ return download->request.get();
}
Ewk_Url_Response* ewk_download_job_response_get(const Ewk_Download_Job* download)
diff --git a/Source/WebKit2/UIProcess/API/efl/ewk_download_job.h b/Source/WebKit2/UIProcess/API/efl/ewk_download_job.h
index fdcc10e98..388276c9c 100644
--- a/Source/WebKit2/UIProcess/API/efl/ewk_download_job.h
+++ b/Source/WebKit2/UIProcess/API/efl/ewk_download_job.h
@@ -112,7 +112,7 @@ EAPI Ewk_Url_Request *ewk_download_job_request_get(const Ewk_Download_Job *downl
EAPI Ewk_Url_Response *ewk_download_job_response_get(const Ewk_Download_Job *download);
/**
- * Query the URI to which the downloaded file will be written.
+ * Query the URL to which the downloaded file will be written.
*
* @param download a #Ewk_Download_Job to query.
*
diff --git a/Source/WebKit2/UIProcess/API/efl/ewk_download_job_private.h b/Source/WebKit2/UIProcess/API/efl/ewk_download_job_private.h
index d043494c3..81b544bfe 100644
--- a/Source/WebKit2/UIProcess/API/efl/ewk_download_job_private.h
+++ b/Source/WebKit2/UIProcess/API/efl/ewk_download_job_private.h
@@ -31,7 +31,7 @@
typedef struct _Ewk_Download_Job Ewk_Download_Job;
typedef struct _Ewk_Url_Response Ewk_Url_Response;
-typedef struct _Ewk_Web_Error Ewk_Web_Error;
+typedef struct _Ewk_Error Ewk_Error;
namespace WebKit {
class DownloadProxy;
diff --git a/Source/WebKit2/UIProcess/API/efl/ewk_web_error.cpp b/Source/WebKit2/UIProcess/API/efl/ewk_error.cpp
index 70380bdd2..a7d576d0a 100644
--- a/Source/WebKit2/UIProcess/API/efl/ewk_web_error.cpp
+++ b/Source/WebKit2/UIProcess/API/efl/ewk_error.cpp
@@ -24,13 +24,13 @@
*/
#include "config.h"
-#include "ewk_web_error.h"
+#include "ewk_error.h"
#include "ErrorsEfl.h"
#include "WKEinaSharedString.h"
#include "WKString.h"
#include "WKURL.h"
-#include "ewk_web_error_private.h"
+#include "ewk_error_private.h"
#include <WKAPICast.h>
#include <WKError.h>
#include <WKRetainPtr.h>
@@ -39,24 +39,24 @@
using namespace WebCore;
using namespace WebKit;
-struct _Ewk_Web_Error {
+struct _Ewk_Error {
WKRetainPtr<WKErrorRef> wkError;
WKEinaSharedString url;
WKEinaSharedString description;
- _Ewk_Web_Error(WKErrorRef errorRef)
+ _Ewk_Error(WKErrorRef errorRef)
: wkError(errorRef)
, url(AdoptWK, WKErrorCopyFailingURL(errorRef))
, description(AdoptWK, WKErrorCopyLocalizedDescription(errorRef))
{ }
- ~_Ewk_Web_Error()
+ ~_Ewk_Error()
{
}
};
-#define EWK_WEB_ERROR_WK_GET_OR_RETURN(error, wkError_, ...) \
+#define EWK_ERROR_WK_GET_OR_RETURN(error, wkError_, ...) \
if (!(error)) { \
EINA_LOG_CRIT("error is NULL."); \
return __VA_ARGS__; \
@@ -67,64 +67,68 @@ struct _Ewk_Web_Error {
} \
WKErrorRef wkError_ = (error)->wkError.get()
-void ewk_web_error_free(Ewk_Web_Error* error)
+/**
+ * @internal
+ * Frees the given object.
+ */
+void ewk_error_free(Ewk_Error* error)
{
EINA_SAFETY_ON_NULL_RETURN(error);
delete error;
}
-Ewk_Web_Error_Type ewk_web_error_type_get(const Ewk_Web_Error* error)
+Ewk_Error_Type ewk_error_type_get(const Ewk_Error* error)
{
- EWK_WEB_ERROR_WK_GET_OR_RETURN(error, wkError, EWK_WEB_ERROR_TYPE_NONE);
+ EWK_ERROR_WK_GET_OR_RETURN(error, wkError, EWK_ERROR_TYPE_NONE);
WKRetainPtr<WKStringRef> wkDomain(AdoptWK, WKErrorCopyDomain(wkError));
WTF::String errorDomain = toWTFString(wkDomain.get());
if (errorDomain == errorDomainNetwork)
- return EWK_WEB_ERROR_TYPE_NETWORK;
+ return EWK_ERROR_TYPE_NETWORK;
if (errorDomain == errorDomainPolicy)
- return EWK_WEB_ERROR_TYPE_POLICY;
+ return EWK_ERROR_TYPE_POLICY;
if (errorDomain == errorDomainPlugin)
- return EWK_WEB_ERROR_TYPE_PLUGIN;
+ return EWK_ERROR_TYPE_PLUGIN;
if (errorDomain == errorDomainDownload)
- return EWK_WEB_ERROR_TYPE_DOWNLOAD;
+ return EWK_ERROR_TYPE_DOWNLOAD;
if (errorDomain == errorDomainPrint)
- return EWK_WEB_ERROR_TYPE_PRINT;
- return EWK_WEB_ERROR_TYPE_INTERNAL;
+ return EWK_ERROR_TYPE_PRINT;
+ return EWK_ERROR_TYPE_INTERNAL;
}
-const char* ewk_web_error_url_get(const Ewk_Web_Error* error)
+const char* ewk_error_url_get(const Ewk_Error* error)
{
EINA_SAFETY_ON_NULL_RETURN_VAL(error, 0);
return error->url;
}
-int ewk_web_error_code_get(const Ewk_Web_Error* error)
+int ewk_error_code_get(const Ewk_Error* error)
{
- EWK_WEB_ERROR_WK_GET_OR_RETURN(error, wkError, 0);
+ EWK_ERROR_WK_GET_OR_RETURN(error, wkError, 0);
return WKErrorGetErrorCode(wkError);
}
-const char* ewk_web_error_description_get(const Ewk_Web_Error* error)
+const char* ewk_error_description_get(const Ewk_Error* error)
{
EINA_SAFETY_ON_NULL_RETURN_VAL(error, 0);
return error->description;
}
-Eina_Bool ewk_web_error_cancellation_get(const Ewk_Web_Error* error)
+Eina_Bool ewk_error_cancellation_get(const Ewk_Error* error)
{
- EWK_WEB_ERROR_WK_GET_OR_RETURN(error, wkError, false);
+ EWK_ERROR_WK_GET_OR_RETURN(error, wkError, false);
return toImpl(wkError)->platformError().isCancellation();
}
-Ewk_Web_Error* ewk_web_error_new(WKErrorRef error)
+Ewk_Error* ewk_error_new(WKErrorRef error)
{
EINA_SAFETY_ON_NULL_RETURN_VAL(error, 0);
- return new Ewk_Web_Error(error);
+ return new Ewk_Error(error);
}
diff --git a/Source/WebKit2/UIProcess/API/efl/ewk_web_error.h b/Source/WebKit2/UIProcess/API/efl/ewk_error.h
index 4ba0c7acd..01214d121 100644
--- a/Source/WebKit2/UIProcess/API/efl/ewk_web_error.h
+++ b/Source/WebKit2/UIProcess/API/efl/ewk_error.h
@@ -24,12 +24,12 @@
*/
/**
- * @file ewk_web_error.h
+ * @file ewk_error.h
* @brief Describes the Web Error API.
*/
-#ifndef ewk_web_error_h
-#define ewk_web_error_h
+#ifndef ewk_error_h
+#define ewk_error_h
#include <Eina.h>
@@ -37,26 +37,19 @@
extern "C" {
#endif
-/** Creates a type name for @a Ewk_Web_Error. */
-typedef struct _Ewk_Web_Error Ewk_Web_Error;
+/** Creates a type name for @a Ewk_Error. */
+typedef struct _Ewk_Error Ewk_Error;
-/// Creates a type name for Ewk_Web_Error_Type.
+/// Creates a type name for Ewk_Error_Type.
typedef enum {
- EWK_WEB_ERROR_TYPE_NONE,
- EWK_WEB_ERROR_TYPE_INTERNAL,
- EWK_WEB_ERROR_TYPE_NETWORK,
- EWK_WEB_ERROR_TYPE_POLICY,
- EWK_WEB_ERROR_TYPE_PLUGIN,
- EWK_WEB_ERROR_TYPE_DOWNLOAD,
- EWK_WEB_ERROR_TYPE_PRINT
-} Ewk_Web_Error_Type;
-
-/**
- * Frees the given object.
- *
- * @param error the error object to free
- */
-EAPI void ewk_web_error_free(Ewk_Web_Error *error);
+ EWK_ERROR_TYPE_NONE,
+ EWK_ERROR_TYPE_INTERNAL,
+ EWK_ERROR_TYPE_NETWORK,
+ EWK_ERROR_TYPE_POLICY,
+ EWK_ERROR_TYPE_PLUGIN,
+ EWK_ERROR_TYPE_DOWNLOAD,
+ EWK_ERROR_TYPE_PRINT
+} Ewk_Error_Type;
/**
* Query type for this error.
@@ -69,7 +62,7 @@ EAPI void ewk_web_error_free(Ewk_Web_Error *error);
* eina_stringshare_ref() instead of eina_stringshare_add() or
* strdup().
*/
-EAPI Ewk_Web_Error_Type ewk_web_error_type_get(const Ewk_Web_Error *error);
+EAPI Ewk_Error_Type ewk_error_type_get(const Ewk_Error *error);
/**
* Query failing URL for this error.
@@ -84,7 +77,7 @@ EAPI Ewk_Web_Error_Type ewk_web_error_type_get(const Ewk_Web_Error *error);
* eina_stringshare_ref() instead of eina_stringshare_add() or
* strdup().
*/
-EAPI const char *ewk_web_error_url_get(const Ewk_Web_Error *error);
+EAPI const char *ewk_error_url_get(const Ewk_Error *error);
/**
* Query HTTP error code.
@@ -93,7 +86,7 @@ EAPI const char *ewk_web_error_url_get(const Ewk_Web_Error *error);
*
* @return the HTTP error code.
*/
-EAPI int ewk_web_error_code_get(const Ewk_Web_Error *error);
+EAPI int ewk_error_code_get(const Ewk_Error *error);
/**
* Query description for this error.
@@ -106,7 +99,7 @@ EAPI int ewk_web_error_code_get(const Ewk_Web_Error *error);
* eina_stringshare_ref() instead of eina_stringshare_add() or
* strdup().
*/
-EAPI const char *ewk_web_error_description_get(const Ewk_Web_Error *error);
+EAPI const char *ewk_error_description_get(const Ewk_Error *error);
/**
* Query if error should be treated as a cancellation.
@@ -115,10 +108,10 @@ EAPI const char *ewk_web_error_description_get(const Ewk_Web_Error *error);
*
* @return @c EINA_TRUE if this error should be treated as a cancellation, @c EINA_FALSE otherwise
*/
-EAPI Eina_Bool ewk_web_error_cancellation_get(const Ewk_Web_Error *error);
+EAPI Eina_Bool ewk_error_cancellation_get(const Ewk_Error *error);
#ifdef __cplusplus
}
#endif
-#endif // ewk_web_error_h
+#endif // ewk_error_h
diff --git a/Source/WebKit2/UIProcess/API/efl/ewk_web_error_private.h b/Source/WebKit2/UIProcess/API/efl/ewk_error_private.h
index c9a31e50a..2f01988c2 100644
--- a/Source/WebKit2/UIProcess/API/efl/ewk_web_error_private.h
+++ b/Source/WebKit2/UIProcess/API/efl/ewk_error_private.h
@@ -23,13 +23,14 @@
* THE POSSIBILITY OF SUCH DAMAGE.
*/
-#ifndef ewk_web_error_private_h
-#define ewk_web_error_private_h
+#ifndef ewk_error_private_h
+#define ewk_error_private_h
#include <WKError.h>
-typedef struct _Ewk_Web_Error Ewk_Web_Error;
+typedef struct _Ewk_Error Ewk_Error;
-Ewk_Web_Error* ewk_web_error_new(WKErrorRef error);
+Ewk_Error* ewk_error_new(WKErrorRef error);
+void ewk_error_free(Ewk_Error* error);
-#endif // ewk_web_error_private_h
+#endif // ewk_error_private_h
diff --git a/Source/WebKit2/UIProcess/API/efl/ewk_main.cpp b/Source/WebKit2/UIProcess/API/efl/ewk_main.cpp
index fcc9faf1a..17e2b1eea 100644
--- a/Source/WebKit2/UIProcess/API/efl/ewk_main.cpp
+++ b/Source/WebKit2/UIProcess/API/efl/ewk_main.cpp
@@ -31,6 +31,10 @@
#include <glib-object.h>
#include <glib.h>
+#ifdef HAVE_ECORE_X
+#include <Ecore_X.h>
+#endif
+
static int _ewkInitCount = 0;
/**
@@ -68,6 +72,13 @@ int ewk_init(void)
goto error_ecore_evas;
}
+#ifdef HAVE_ECORE_X
+ if (!ecore_x_init(0)) {
+ CRITICAL("could not init ecore_x.");
+ goto error_ecore_x;
+ }
+#endif
+
g_type_init();
if (!ecore_main_loop_glib_integrate()) {
@@ -77,6 +88,10 @@ int ewk_init(void)
return ++_ewkInitCount;
+#ifdef HAVE_ECORE_X
+error_ecore_x:
+ ecore_evas_shutdown();
+#endif
error_ecore_evas:
ecore_shutdown();
error_ecore:
@@ -95,6 +110,9 @@ int ewk_shutdown(void)
if (--_ewkInitCount)
return _ewkInitCount;
+#ifdef HAVE_ECORE_X
+ ecore_x_shutdown();
+#endif
ecore_evas_shutdown();
ecore_shutdown();
evas_shutdown();
diff --git a/Source/WebKit2/UIProcess/API/efl/ewk_navigation_data.cpp b/Source/WebKit2/UIProcess/API/efl/ewk_navigation_data.cpp
new file mode 100644
index 000000000..27a51f083
--- /dev/null
+++ b/Source/WebKit2/UIProcess/API/efl/ewk_navigation_data.cpp
@@ -0,0 +1,76 @@
+/*
+ * Copyright (C) 2012 Intel Corporation. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include "config.h"
+#include "ewk_navigation_data.h"
+
+#include "ewk_navigation_data_private.h"
+
+using namespace WebKit;
+
+Ewk_Navigation_Data* ewk_navigation_data_ref(Ewk_Navigation_Data* data)
+{
+ EINA_SAFETY_ON_NULL_RETURN_VAL(data, 0);
+
+ data->ref();
+
+ return data;
+}
+
+void ewk_navigation_data_unref(Ewk_Navigation_Data* data)
+{
+ EINA_SAFETY_ON_NULL_RETURN(data);
+
+ data->deref();
+}
+
+const char* ewk_navigation_data_title_get(const Ewk_Navigation_Data* data)
+{
+ EINA_SAFETY_ON_NULL_RETURN_VAL(data, 0);
+
+ return data->title;
+}
+
+Ewk_Url_Request* ewk_navigation_data_original_request_get(const Ewk_Navigation_Data* data)
+{
+ EINA_SAFETY_ON_NULL_RETURN_VAL(data, 0);
+
+ return data->request.get();
+}
+
+const char* ewk_navigation_data_url_get(const Ewk_Navigation_Data* data)
+{
+ EINA_SAFETY_ON_NULL_RETURN_VAL(data, 0);
+
+ return data->url;
+}
+
+Ewk_Navigation_Data* ewk_navigation_data_new(WKNavigationDataRef dataRef)
+{
+ ASSERT(dataRef);
+ EINA_SAFETY_ON_NULL_RETURN_VAL(dataRef, 0);
+
+ return new Ewk_Navigation_Data(dataRef);
+}
diff --git a/Source/WebKit2/UIProcess/API/efl/ewk_navigation_data.h b/Source/WebKit2/UIProcess/API/efl/ewk_navigation_data.h
new file mode 100644
index 000000000..1a1e60732
--- /dev/null
+++ b/Source/WebKit2/UIProcess/API/efl/ewk_navigation_data.h
@@ -0,0 +1,105 @@
+/*
+ * Copyright (C) 2012 Intel Corporation. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+/**
+ * @file ewk_navigation_data.h
+ * @brief Describes the Ewk navigation data API.
+ */
+
+#ifndef ewk_navigation_data_h
+#define ewk_navigation_data_h
+
+#include "ewk_url_request.h"
+#include <Eina.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/** Creates a type name for _Ewk_Navigation_Data */
+typedef struct _Ewk_Navigation_Data Ewk_Navigation_Data;
+
+/**
+ * Increases the reference count of the given object.
+ *
+ * @param data the navigation data object to increase the reference count
+ *
+ * @return a pointer to the object on success, @c NULL otherwise.
+ */
+EAPI Ewk_Navigation_Data *ewk_navigation_data_ref(Ewk_Navigation_Data *data);
+
+/**
+ * Decreases the reference count of the given object, possibly freeing it.
+ *
+ * When the reference count reaches 0, the object is freed.
+ *
+ * @param data the navigation data object to decrease the reference count
+ */
+EAPI void ewk_navigation_data_unref(Ewk_Navigation_Data *data);
+
+/**
+ * Returns title for this navigation data.
+ *
+ * The title of the navigated page.
+ *
+ * @param data navigation data object to query
+ *
+ * @return the title or @c NULL in case of error. This pointer is
+ * guaranteed to be eina_stringshare, so whenever possible
+ * save yourself some cpu cycles and use
+ * eina_stringshare_ref() instead of eina_stringshare_add() or
+ * strdup().
+ */
+EAPI const char *ewk_navigation_data_title_get(const Ewk_Navigation_Data *data);
+
+/**
+ * Returns the original request for this navigation data.
+ *
+ * @param data navigation data object to query
+ *
+ * @return The URL request pointer or @c NULL in case of error.
+ */
+EAPI Ewk_Url_Request *ewk_navigation_data_original_request_get(const Ewk_Navigation_Data *data);
+
+/**
+ * Returns URL for this navigation data.
+ *
+ * The URL of the navigated page.
+ *
+ * @param data navigation data object to query
+ *
+ * @return the URL of the @a data or @c NULL in case of error. This pointer is
+ * guaranteed to be eina_stringshare, so whenever possible
+ * save yourself some cpu cycles and use
+ * eina_stringshare_ref() instead of eina_stringshare_add() or
+ * strdup()
+ */
+EAPI const char *ewk_navigation_data_url_get(const Ewk_Navigation_Data *data);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif // ewk_navigation_data_h
diff --git a/Source/WebKit2/UIProcess/API/efl/ewk_navigation_data_private.h b/Source/WebKit2/UIProcess/API/efl/ewk_navigation_data_private.h
new file mode 100644
index 000000000..6e42dc629
--- /dev/null
+++ b/Source/WebKit2/UIProcess/API/efl/ewk_navigation_data_private.h
@@ -0,0 +1,58 @@
+/*
+ * Copyright (C) 2012 Intel Corporation. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef ewk_navigation_data_private_h
+#define ewk_navigation_data_private_h
+
+#include "WKAPICast.h"
+#include "WKEinaSharedString.h"
+#include "WKNavigationData.h"
+#include "WKRetainPtr.h"
+#include "ewk_private.h"
+#include "ewk_url_request_private.h"
+
+/**
+ * \struct _Ewk_Navigation_Data
+ * @brief Contains the navigation data details.
+ */
+struct _Ewk_Navigation_Data : public RefCounted<_Ewk_Navigation_Data> {
+ WKEinaSharedString title;
+ WKEinaSharedString url;
+ RefPtr<Ewk_Url_Request> request;
+
+ _Ewk_Navigation_Data(WKNavigationDataRef dataRef)
+ : title(AdoptWK, WKNavigationDataCopyTitle(dataRef))
+ , url(AdoptWK, WKNavigationDataCopyURL(dataRef))
+ {
+ WKRetainPtr<WKURLRequestRef> requestWK(AdoptWK, WKNavigationDataCopyOriginalRequest(dataRef));
+ request = adoptRef(ewk_url_request_new(requestWK.get()));
+ }
+};
+
+typedef struct _Ewk_Navigation_Data Ewk_Navigation_Data;
+
+Ewk_Navigation_Data* ewk_navigation_data_new(WKNavigationDataRef dataRef);
+
+#endif // ewk_navigation_data_private_h
diff --git a/Source/WebKit2/UIProcess/API/efl/ewk_navigation_policy_decision.cpp b/Source/WebKit2/UIProcess/API/efl/ewk_navigation_policy_decision.cpp
index d46805faa..6ebbebb5c 100644
--- a/Source/WebKit2/UIProcess/API/efl/ewk_navigation_policy_decision.cpp
+++ b/Source/WebKit2/UIProcess/API/efl/ewk_navigation_policy_decision.cpp
@@ -47,10 +47,10 @@ struct _Ewk_Navigation_Policy_Decision {
Ewk_Navigation_Type navigationType;
Event_Mouse_Button mouseButton;
Event_Modifier_Keys modifiers;
- Ewk_Url_Request* request;
+ RefPtr<Ewk_Url_Request> request;
WKEinaSharedString frameName;
- _Ewk_Navigation_Policy_Decision(WKFramePolicyListenerRef _listener, Ewk_Navigation_Type _navigationType, Event_Mouse_Button _mouseButton, Event_Modifier_Keys _modifiers, Ewk_Url_Request* _request, const char* _frameName)
+ _Ewk_Navigation_Policy_Decision(WKFramePolicyListenerRef _listener, Ewk_Navigation_Type _navigationType, Event_Mouse_Button _mouseButton, Event_Modifier_Keys _modifiers, PassRefPtr<Ewk_Url_Request> _request, const char* _frameName)
: __ref(1)
, listener(_listener)
, actedUponByClient(false)
@@ -68,8 +68,6 @@ struct _Ewk_Navigation_Policy_Decision {
// This is the default choice for all policy decisions in WebPageProxy.cpp.
if (!actedUponByClient)
WKFramePolicyListenerUse(listener.get());
-
- ewk_url_request_unref(request);
}
};
@@ -124,7 +122,7 @@ Ewk_Url_Request* ewk_navigation_policy_request_get(const Ewk_Navigation_Policy_D
{
EINA_SAFETY_ON_NULL_RETURN_VAL(decision, 0);
- return decision->request;
+ return decision->request.get();
}
void ewk_navigation_policy_decision_accept(Ewk_Navigation_Policy_Decision* decision)
@@ -177,6 +175,6 @@ Ewk_Navigation_Policy_Decision* ewk_navigation_policy_decision_new(WKFrameNaviga
static_cast<Ewk_Navigation_Type>(navigationType),
static_cast<Event_Mouse_Button>(mouseButton),
static_cast<Event_Modifier_Keys>(modifiers),
- ewk_url_request_new(request),
+ adoptRef(ewk_url_request_new(request)),
frameName);
}
diff --git a/Source/WebKit2/UIProcess/API/efl/ewk_web_resource.cpp b/Source/WebKit2/UIProcess/API/efl/ewk_resource.cpp
index 89879eead..aaa7e98e7 100644
--- a/Source/WebKit2/UIProcess/API/efl/ewk_web_resource.cpp
+++ b/Source/WebKit2/UIProcess/API/efl/ewk_resource.cpp
@@ -24,30 +24,30 @@
*/
#include "config.h"
-#include "ewk_web_resource.h"
+#include "ewk_resource.h"
#include "WKEinaSharedString.h"
-#include "ewk_web_resource_private.h"
+#include "ewk_resource_private.h"
#include <wtf/text/CString.h>
-struct _Ewk_Web_Resource {
- unsigned int __ref; /**< the reference count of the object */
+struct _Ewk_Resource {
+ unsigned __ref; /**< the reference count of the object */
WKEinaSharedString url;
bool isMainResource;
- _Ewk_Web_Resource(const char* url, bool isMainResource)
+ _Ewk_Resource(const char* url, bool isMainResource)
: __ref(1)
, url(url)
, isMainResource(isMainResource)
{ }
- ~_Ewk_Web_Resource()
+ ~_Ewk_Resource()
{
ASSERT(!__ref);
}
};
-Ewk_Web_Resource* ewk_web_resource_ref(Ewk_Web_Resource* resource)
+Ewk_Resource* ewk_resource_ref(Ewk_Resource* resource)
{
EINA_SAFETY_ON_NULL_RETURN_VAL(resource, 0);
@@ -56,7 +56,7 @@ Ewk_Web_Resource* ewk_web_resource_ref(Ewk_Web_Resource* resource)
return resource;
}
-void ewk_web_resource_unref(Ewk_Web_Resource* resource)
+void ewk_resource_unref(Ewk_Resource* resource)
{
EINA_SAFETY_ON_NULL_RETURN(resource);
@@ -66,7 +66,7 @@ void ewk_web_resource_unref(Ewk_Web_Resource* resource)
delete resource;
}
-const char* ewk_web_resource_url_get(const Ewk_Web_Resource* resource)
+const char* ewk_resource_url_get(const Ewk_Resource* resource)
{
EINA_SAFETY_ON_NULL_RETURN_VAL(resource, 0);
@@ -75,16 +75,16 @@ const char* ewk_web_resource_url_get(const Ewk_Web_Resource* resource)
/**
* @internal
- * Constructs a Ewk_Web_Resource.
+ * Constructs a Ewk_Resource.
*/
-Ewk_Web_Resource* ewk_web_resource_new(const char* url, bool isMainResource)
+Ewk_Resource* ewk_resource_new(const char* url, bool isMainResource)
{
EINA_SAFETY_ON_NULL_RETURN_VAL(url, 0);
- return new Ewk_Web_Resource(url, isMainResource);
+ return new Ewk_Resource(url, isMainResource);
}
-Eina_Bool ewk_web_resource_main_resource_get(const Ewk_Web_Resource* resource)
+Eina_Bool ewk_resource_main_resource_get(const Ewk_Resource* resource)
{
EINA_SAFETY_ON_NULL_RETURN_VAL(resource, false);
diff --git a/Source/WebKit2/UIProcess/API/efl/ewk_web_resource.h b/Source/WebKit2/UIProcess/API/efl/ewk_resource.h
index dc2cf087d..a2f4786b8 100644
--- a/Source/WebKit2/UIProcess/API/efl/ewk_web_resource.h
+++ b/Source/WebKit2/UIProcess/API/efl/ewk_resource.h
@@ -24,12 +24,12 @@
*/
/**
- * @file ewk_web_resource.h
+ * @file ewk_resource.h
* @brief Describes the Web Resource API.
*/
-#ifndef ewk_web_resource_h
-#define ewk_web_resource_h
+#ifndef ewk_resource_h
+#define ewk_resource_h
#include <Eina.h>
@@ -37,8 +37,8 @@
extern "C" {
#endif
-/** Creates a type name for @a Ewk_Web_Resource. */
-typedef struct _Ewk_Web_Resource Ewk_Web_Resource;
+/** Creates a type name for @a Ewk_Resource. */
+typedef struct _Ewk_Resource Ewk_Resource;
/**
* Increases the reference count of the given object.
@@ -47,7 +47,7 @@ typedef struct _Ewk_Web_Resource Ewk_Web_Resource;
*
* @return a pointer to the object on success, @c NULL otherwise.
*/
-EAPI Ewk_Web_Resource *ewk_web_resource_ref(Ewk_Web_Resource *resource);
+EAPI Ewk_Resource *ewk_resource_ref(Ewk_Resource *resource);
/**
* Decreases the reference count of the given object, possibly freeing it.
@@ -56,7 +56,7 @@ EAPI Ewk_Web_Resource *ewk_web_resource_ref(Ewk_Web_Resource *resource);
*
* @param resource the resource object to decrease the reference count
*/
-EAPI void ewk_web_resource_unref(Ewk_Web_Resource *resource);
+EAPI void ewk_resource_unref(Ewk_Resource *resource);
/**
* Query URL for this resource.
@@ -69,7 +69,7 @@ EAPI void ewk_web_resource_unref(Ewk_Web_Resource *resource);
* eina_stringshare_ref() instead of eina_stringshare_add() or
* strdup().
*/
-EAPI const char *ewk_web_resource_url_get(const Ewk_Web_Resource *resource);
+EAPI const char *ewk_resource_url_get(const Ewk_Resource *resource);
/**
* Query if this is the main resource.
@@ -78,10 +78,10 @@ EAPI const char *ewk_web_resource_url_get(const Ewk_Web_Resource *resource);
*
* @return @c EINA_TRUE if this is the main resource, @c EINA_FALSE otherwise
*/
-EAPI Eina_Bool ewk_web_resource_main_resource_get(const Ewk_Web_Resource *resource);
+EAPI Eina_Bool ewk_resource_main_resource_get(const Ewk_Resource *resource);
#ifdef __cplusplus
}
#endif
-#endif // ewk_web_resource_h
+#endif // ewk_resource_h
diff --git a/Source/WebKit2/UIProcess/API/efl/ewk_web_resource_private.h b/Source/WebKit2/UIProcess/API/efl/ewk_resource_private.h
index 5b44fe19f..4fd4cfd62 100644
--- a/Source/WebKit2/UIProcess/API/efl/ewk_web_resource_private.h
+++ b/Source/WebKit2/UIProcess/API/efl/ewk_resource_private.h
@@ -23,11 +23,11 @@
* THE POSSIBILITY OF SUCH DAMAGE.
*/
-#ifndef ewk_web_resource_private_h
-#define ewk_web_resource_private_h
+#ifndef ewk_resource_private_h
+#define ewk_resource_private_h
-typedef struct _Ewk_Web_Resource Ewk_Web_Resource;
+typedef struct _Ewk_Resource Ewk_Resource;
-Ewk_Web_Resource* ewk_web_resource_new(const char* uri, bool isMainResource);
+Ewk_Resource* ewk_resource_new(const char* url, bool isMainResource);
-#endif // ewk_web_resource_private_h
+#endif // ewk_resource_private_h
diff --git a/Source/WebKit2/UIProcess/API/efl/ewk_settings.cpp b/Source/WebKit2/UIProcess/API/efl/ewk_settings.cpp
index a1f51b8bc..a9f6b0932 100644
--- a/Source/WebKit2/UIProcess/API/efl/ewk_settings.cpp
+++ b/Source/WebKit2/UIProcess/API/efl/ewk_settings.cpp
@@ -28,6 +28,7 @@
#include "ewk_settings_private.h"
#include <WebKit2/WKPreferences.h>
+#include <WebKit2/WKPreferencesPrivate.h>
using namespace WebKit;
@@ -99,3 +100,51 @@ Eina_Bool ewk_settings_developer_extras_enabled_get(const Ewk_Settings* settings
return WKPreferencesGetDeveloperExtrasEnabled(settings->preferences.get());
}
+
+Eina_Bool ewk_settings_file_access_from_file_urls_allowed_set(Ewk_Settings* settings, Eina_Bool enable)
+{
+ EINA_SAFETY_ON_NULL_RETURN_VAL(settings, false);
+
+ WKPreferencesSetFileAccessFromFileURLsAllowed(settings->preferences.get(), enable);
+
+ return true;
+}
+
+Eina_Bool ewk_settings_file_access_from_file_urls_allowed_get(const Ewk_Settings* settings)
+{
+ EINA_SAFETY_ON_NULL_RETURN_VAL(settings, false);
+
+ return WKPreferencesGetFileAccessFromFileURLsAllowed(settings->preferences.get());
+}
+
+Eina_Bool ewk_settings_frame_flattening_enabled_set(Ewk_Settings* settings, Eina_Bool enable)
+{
+ EINA_SAFETY_ON_NULL_RETURN_VAL(settings, false);
+
+ WKPreferencesSetFrameFlatteningEnabled(settings->preferences.get(), enable);
+
+ return true;
+}
+
+Eina_Bool ewk_settings_frame_flattening_enabled_get(const Ewk_Settings* settings)
+{
+ EINA_SAFETY_ON_NULL_RETURN_VAL(settings, false);
+
+ return WKPreferencesGetFrameFlatteningEnabled(settings->preferences.get());
+}
+
+Eina_Bool ewk_settings_dns_prefetching_enabled_set(Ewk_Settings* settings, Eina_Bool enable)
+{
+ EINA_SAFETY_ON_NULL_RETURN_VAL(settings, false);
+
+ WKPreferencesSetDNSPrefetchingEnabled(settings->preferences.get(), enable);
+
+ return true;
+}
+
+Eina_Bool ewk_settings_dns_prefetching_enabled_get(const Ewk_Settings* settings)
+{
+ EINA_SAFETY_ON_NULL_RETURN_VAL(settings, false);
+
+ return WKPreferencesGetDNSPrefetchingEnabled(settings->preferences.get());
+}
diff --git a/Source/WebKit2/UIProcess/API/efl/ewk_settings.h b/Source/WebKit2/UIProcess/API/efl/ewk_settings.h
index 1d8b213d0..8b17d1cbc 100644
--- a/Source/WebKit2/UIProcess/API/efl/ewk_settings.h
+++ b/Source/WebKit2/UIProcess/API/efl/ewk_settings.h
@@ -71,16 +71,18 @@ EAPI Eina_Bool ewk_settings_fullscreen_enabled_get(const Ewk_Settings *settings)
/**
* Enables/disables the javascript executing.
*
+ * By default, JavaScript execution is enabled.
+ *
* @param settings settings object to set javascript executing
* @param enable @c EINA_TRUE to enable javascript executing
- * @c EINA_FALSE to disable
+ * @c EINA_FALSE to disable
*
* @return @c EINA_TRUE on success or @c EINA_FALSE on failure
*/
EAPI Eina_Bool ewk_settings_javascript_enabled_set(Ewk_Settings *settings, Eina_Bool enable);
/**
- * Returns the javascript can be executable or not.
+ * Returns whether JavaScript execution is enabled.
*
* @param settings settings object to query if the javascript can be executed
*
@@ -92,20 +94,22 @@ EAPI Eina_Bool ewk_settings_javascript_enabled_get(const Ewk_Settings *settings)
/**
* Enables/disables auto loading of the images.
*
+ * By default, auto loading of the images is enabled.
+ *
* @param settings settings object to set auto loading of the images
- * @param automatic @c EINA_TRUE to enable auto loading of the images,
- * @c EINA_FALSE to disable
+ * @param automatic @c EINA_TRUE to enable auto loading of the images
+ * @c EINA_FALSE to disable
*
* @return @c EINA_TRUE on success or @c EINA_FALSE on failure
*/
EAPI Eina_Bool ewk_settings_loads_images_automatically_set(Ewk_Settings *settings, Eina_Bool automatic);
/**
- * Returns the images can be loaded automatically or not.
+ * Returns whether the images can be loaded automatically or not.
*
* @param settings settings object to get auto loading of the images
*
- * @return @c EINA_TRUE if the images are loaded automatically,
+ * @return @c EINA_TRUE if the images are loaded automatically
* @c EINA_FALSE if not or on failure
*/
EAPI Eina_Bool ewk_settings_loads_images_automatically_get(const Ewk_Settings *settings);
@@ -116,7 +120,8 @@ EAPI Eina_Bool ewk_settings_loads_images_automatically_get(const Ewk_Settings *s
* By default, the developer extensions are disabled.
*
* @param settings settings object to set developer extensions
- * @param enable @c EINA_TRUE to enable developer extensions, @c EINA_FALSE to disable
+ * @param enable @c EINA_TRUE to enable developer extensions
+ * @c EINA_FALSE to disable
*
* @return @c EINA_TRUE on success or @EINA_FALSE on failure
*/
@@ -134,6 +139,86 @@ EAPI Eina_Bool ewk_settings_developer_extras_enabled_set(Ewk_Settings *settings,
*/
EAPI Eina_Bool ewk_settings_developer_extras_enabled_get(const Ewk_Settings *settings);
+/**
+ * Allow / Disallow file access from file:// URLs.
+ *
+ * By default, file access from file:// URLs is not allowed.
+ *
+ * @param settings settings object to set file access permission
+ * @param enable @c EINA_TRUE to enable file access permission
+ * @c EINA_FALSE to disable
+ *
+ * @return @c EINA_TRUE on success or @EINA_FALSE on failure
+ */
+EAPI Eina_Bool ewk_settings_file_access_from_file_urls_allowed_set(Ewk_Settings *settings, Eina_Bool enable);
+
+/**
+ * Queries if file access from file:// URLs is allowed.
+ *
+ * By default, file access from file:// URLs is not allowed.
+ *
+ * @param settings settings object to query file access permission
+ *
+ * @return @c EINA_TRUE if file access from file:// URLs is allowed
+ * @c EINA_FALSE if not or on failure
+ */
+EAPI Eina_Bool ewk_settings_file_access_from_file_urls_allowed_get(const Ewk_Settings *settings);
+
+/**
+ * Enables/disables frame flattening.
+ *
+ * By default, the frame flattening is disabled.
+ *
+ * @param settings settings object to set the frame flattening
+ * @param enable @c EINA_TRUE to enable the frame flattening
+ * @c EINA_FALSE to disable
+ *
+ * @return @c EINA_TRUE on success or @c EINA_FALSE on failure
+ *
+ * @see ewk_settings_enable_frame_flattening_get()
+ */
+EAPI Eina_Bool ewk_settings_frame_flattening_enabled_set(Ewk_Settings *settings, Eina_Bool enable);
+
+/**
+ * Returns whether the frame flattening is enabled.
+ *
+ * The frame flattening is a feature which expands sub frames until all the frames become
+ * one scrollable page.
+ *
+ * @param settings settings object to get the frame flattening.
+ *
+ * @return @c EINA_TRUE if the frame flattening is enabled
+ * @c EINA_FALSE if not or on failure
+ */
+EAPI Eina_Bool ewk_settings_frame_flattening_enabled_get(const Ewk_Settings *settings);
+
+/**
+ * Enables/disables DNS prefetching.
+ *
+ * By default, DNS prefetching is disabled.
+ *
+ * @param settings settings object to set DNS prefetching
+ * @param enable @c EINA_TRUE to enable DNS prefetching or
+ * @c EINA_FALSE to disable
+ *
+ * @return @c EINA_TRUE on success or @c EINA_FALSE on failure
+ *
+ * @see ewk_settings_DNS_prefetching_enabled_get()
+ */
+EAPI Eina_Bool ewk_settings_dns_prefetching_enabled_set(Ewk_Settings *settings, Eina_Bool enable);
+
+/**
+ * Returns whether DNS prefetching is enabled or not.
+ *
+ * DNS prefetching is an attempt to resolve domain names before a user tries to follow a link.
+ *
+ * @param settings settings object to get DNS prefetching
+ *
+ * @return @c EINA_TRUE if DNS prefetching is enabled
+ * @c EINA_FALSE if not or on failure
+ */
+EAPI Eina_Bool ewk_settings_dns_prefetching_enabled_get(const Ewk_Settings *settings);
+
#ifdef __cplusplus
}
#endif
diff --git a/Source/WebKit2/UIProcess/API/efl/ewk_url_request.cpp b/Source/WebKit2/UIProcess/API/efl/ewk_url_request.cpp
index 9e7c80c40..b1c94ad61 100644
--- a/Source/WebKit2/UIProcess/API/efl/ewk_url_request.cpp
+++ b/Source/WebKit2/UIProcess/API/efl/ewk_url_request.cpp
@@ -26,44 +26,14 @@
#include "config.h"
#include "ewk_url_request.h"
-#include "WKAPICast.h"
-#include "WKEinaSharedString.h"
-#include "WKURL.h"
-#include "WKURLRequest.h"
-#include "WebURLRequest.h"
#include "ewk_url_request_private.h"
-#include <wtf/text/CString.h>
using namespace WebKit;
-/**
- * \struct _Ewk_Url_Request
- * @brief Contains the URL request data.
- */
-struct _Ewk_Url_Request {
- unsigned int __ref; /**< the reference count of the object */
-
- WKEinaSharedString url;
- WKEinaSharedString first_party;
- WKEinaSharedString http_method;
-
- _Ewk_Url_Request(WKURLRequestRef requestRef)
- : __ref(1)
- , url(AdoptWK, WKURLRequestCopyURL(requestRef))
- , first_party(AdoptWK, WKURLRequestCopyFirstPartyForCookies(requestRef))
- , http_method(AdoptWK, WKURLRequestCopyHTTPMethod(requestRef))
- { }
-
- ~_Ewk_Url_Request()
- {
- ASSERT(!__ref);
- }
-};
-
Ewk_Url_Request* ewk_url_request_ref(Ewk_Url_Request* request)
{
EINA_SAFETY_ON_NULL_RETURN_VAL(request, 0);
- ++request->__ref;
+ request->ref();
return request;
}
@@ -72,10 +42,7 @@ void ewk_url_request_unref(Ewk_Url_Request* request)
{
EINA_SAFETY_ON_NULL_RETURN(request);
- if (--request->__ref)
- return;
-
- delete request;
+ request->deref();
}
const char* ewk_url_request_url_get(const Ewk_Url_Request* request)
@@ -89,14 +56,14 @@ const char* ewk_request_cookies_first_party_get(const Ewk_Url_Request* request)
{
EINA_SAFETY_ON_NULL_RETURN_VAL(request, 0);
- return request->first_party;
+ return request->firstParty;
}
const char* ewk_url_request_http_method_get(const Ewk_Url_Request* request)
{
EINA_SAFETY_ON_NULL_RETURN_VAL(request, 0);
- return request->http_method;
+ return request->httpMethod;
}
/**
diff --git a/Source/WebKit2/UIProcess/API/efl/ewk_url_request_private.h b/Source/WebKit2/UIProcess/API/efl/ewk_url_request_private.h
index 548b6e91e..acbc984e2 100644
--- a/Source/WebKit2/UIProcess/API/efl/ewk_url_request_private.h
+++ b/Source/WebKit2/UIProcess/API/efl/ewk_url_request_private.h
@@ -26,6 +26,29 @@
#ifndef ewk_url_request_private_h
#define ewk_url_request_private_h
+#include "WKEinaSharedString.h"
+#include "WKURL.h"
+#include "WKURLRequest.h"
+#include "WebURLRequest.h"
+
+/**
+ * \struct _Ewk_Url_Request
+ * @brief Contains the URL request data.
+ */
+struct _Ewk_Url_Request : public RefCounted<_Ewk_Url_Request> {
+ WKEinaSharedString url;
+ WKEinaSharedString firstParty;
+ WKEinaSharedString httpMethod;
+
+ _Ewk_Url_Request(WKURLRequestRef requestRef)
+ : url(AdoptWK, WKURLRequestCopyURL(requestRef))
+ , firstParty(AdoptWK, WKURLRequestCopyFirstPartyForCookies(requestRef))
+ , httpMethod(AdoptWK, WKURLRequestCopyHTTPMethod(requestRef))
+ { }
+};
+
+typedef struct _Ewk_Url_Request Ewk_Url_Request;
+
Ewk_Url_Request* ewk_url_request_new(WKURLRequestRef);
#endif // ewk_url_request_private_h
diff --git a/Source/WebKit2/UIProcess/API/efl/ewk_view.cpp b/Source/WebKit2/UIProcess/API/efl/ewk_view.cpp
index 10a68c404..07a942264 100644
--- a/Source/WebKit2/UIProcess/API/efl/ewk_view.cpp
+++ b/Source/WebKit2/UIProcess/API/efl/ewk_view.cpp
@@ -44,6 +44,7 @@
#include "ewk_popup_menu_item.h"
#include "ewk_popup_menu_item_private.h"
#include "ewk_private.h"
+#include "ewk_resource.h"
#include "ewk_settings_private.h"
#include "ewk_view_find_client_private.h"
#include "ewk_view_form_client_private.h"
@@ -52,7 +53,6 @@
#include "ewk_view_private.h"
#include "ewk_view_resource_load_client_private.h"
#include "ewk_view_ui_client_private.h"
-#include "ewk_web_resource.h"
#include <Ecore_Evas.h>
#include <Edje.h>
#include <WebCore/Cursor.h>
@@ -64,6 +64,10 @@
#include "WebFullScreenManagerProxy.h"
#endif
+#if ENABLE(INSPECTOR)
+#include "WebInspectorProxy.h"
+#endif
+
#if USE(ACCELERATED_COMPOSITING)
#include <Evas_GL.h>
#endif
@@ -79,9 +83,33 @@ static const char EWK_VIEW_TYPE_STR[] = "EWK2_View";
static const int defaultCursorSize = 16;
-typedef HashMap<uint64_t, Ewk_Web_Resource*> LoadingResourcesMap;
+typedef HashMap<uint64_t, Ewk_Resource*> LoadingResourcesMap;
static void _ewk_view_priv_loading_resources_clear(LoadingResourcesMap& loadingResourcesMap);
+typedef HashMap<const WebPageProxy*, const Evas_Object*> PageViewMap;
+
+static inline PageViewMap& pageViewMap()
+{
+ DEFINE_STATIC_LOCAL(PageViewMap, map, ());
+ return map;
+}
+
+static inline void addToPageViewMap(const Evas_Object* ewkView)
+{
+ ASSERT(ewkView);
+ ASSERT(ewk_view_page_get(ewkView));
+ PageViewMap::AddResult result = pageViewMap().add(ewk_view_page_get(ewkView), ewkView);
+ ASSERT_UNUSED(result, result.isNewEntry);
+}
+
+static inline void removeFromPageViewMap(const Evas_Object* ewkView)
+{
+ ASSERT(ewkView);
+ ASSERT(ewk_view_page_get(ewkView));
+ ASSERT(pageViewMap().contains(ewk_view_page_get(ewkView)));
+ pageViewMap().remove(ewk_view_page_get(ewkView));
+}
+
struct _Ewk_View_Private_Data {
OwnPtr<PageClientImpl> pageClient;
#if USE(COORDINATED_GRAPHICS)
@@ -89,7 +117,7 @@ struct _Ewk_View_Private_Data {
#endif
RefPtr<WebPageProxy> pageProxy;
- WKEinaSharedString uri;
+ WKEinaSharedString url;
WKEinaSharedString title;
WKEinaSharedString theme;
WKEinaSharedString customEncoding;
@@ -101,6 +129,9 @@ struct _Ewk_View_Private_Data {
bool areMouseEventsEnabled;
WKColorPickerResultListenerRef colorPickerResultListener;
Ewk_Context* context;
+#if ENABLE(TOUCH_EVENTS)
+ bool areTouchEventsEnabled;
+#endif
WebPopupMenuProxyEfl* popupMenuProxy;
Eina_List* popupMenuItems;
@@ -121,6 +152,9 @@ struct _Ewk_View_Private_Data {
, areMouseEventsEnabled(false)
, colorPickerResultListener(0)
, context(0)
+#if ENABLE(TOUCH_EVENTS)
+ , areTouchEventsEnabled(false)
+#endif
, popupMenuProxy(0)
, popupMenuItems(0)
#ifdef HAVE_ECORE_X
@@ -356,6 +390,65 @@ static void _ewk_view_on_key_up(void* data, Evas*, Evas_Object*, void* eventInfo
smartData->api->key_up(smartData, upEvent);
}
+static void _ewk_view_on_show(void* data, Evas*, Evas_Object*, void* /*eventInfo*/)
+{
+ Ewk_View_Smart_Data* smartData = static_cast<Ewk_View_Smart_Data*>(data);
+ EWK_VIEW_PRIV_GET_OR_RETURN(smartData, priv);
+ priv->pageProxy->viewStateDidChange(WebPageProxy::ViewIsVisible);
+}
+
+static void _ewk_view_on_hide(void* data, Evas*, Evas_Object*, void* /*eventInfo*/)
+{
+ Ewk_View_Smart_Data* smartData = static_cast<Ewk_View_Smart_Data*>(data);
+ EWK_VIEW_PRIV_GET_OR_RETURN(smartData, priv);
+
+ // This call may look wrong, but we really need to pass ViewIsVisible here.
+ // viewStateDidChange() itself is responsible for actually setting the visibility to Visible or Hidden
+ // depending on what WebPageProxy::isViewVisible() returns, this simply triggers the process.
+ priv->pageProxy->viewStateDidChange(WebPageProxy::ViewIsVisible);
+}
+
+#if ENABLE(TOUCH_EVENTS)
+static inline void _ewk_view_feed_touch_event_using_touch_point_list_of_evas(Evas_Object* ewkView, Ewk_Touch_Event_Type type)
+{
+ EWK_VIEW_SD_GET_OR_RETURN(ewkView, smartData);
+
+ unsigned count = evas_touch_point_list_count(smartData->base.evas);
+ if (!count)
+ return;
+
+ Eina_List* points = 0;
+ for (unsigned i = 0; i < count; ++i) {
+ Ewk_Touch_Point* point = new Ewk_Touch_Point;
+ point->id = evas_touch_point_list_nth_id_get(smartData->base.evas, i);
+ evas_touch_point_list_nth_xy_get(smartData->base.evas, i, &point->x, &point->y);
+ point->state = evas_touch_point_list_nth_state_get(smartData->base.evas, i);
+ points = eina_list_append(points, point);
+ }
+
+ ewk_view_feed_touch_event(ewkView, type, points, evas_key_modifier_get(smartData->base.evas));
+
+ void* data;
+ EINA_LIST_FREE(points, data)
+ delete static_cast<Ewk_Touch_Point*>(data);
+}
+
+static void _ewk_view_on_touch_down(void* /* data */, Evas* /* canvas */, Evas_Object* ewkView, void* /* eventInfo */)
+{
+ _ewk_view_feed_touch_event_using_touch_point_list_of_evas(ewkView, EWK_TOUCH_START);
+}
+
+static void _ewk_view_on_touch_up(void* /* data */, Evas* /* canvas */, Evas_Object* ewkView, void* /* eventInfo */)
+{
+ _ewk_view_feed_touch_event_using_touch_point_list_of_evas(ewkView, EWK_TOUCH_END);
+}
+
+static void _ewk_view_on_touch_move(void* /* data */, Evas* /* canvas */, Evas_Object* ewkView, void* /* eventInfo */)
+{
+ _ewk_view_feed_touch_event_using_touch_point_list_of_evas(ewkView, EWK_TOUCH_MOVE);
+}
+#endif
+
static Evas_Smart_Class g_parentSmartClass = EVAS_SMART_CLASS_INIT_NULL;
static Ewk_View_Private_Data* _ewk_view_priv_new(Ewk_View_Smart_Data* smartData)
@@ -379,7 +472,7 @@ static void _ewk_view_priv_loading_resources_clear(LoadingResourcesMap& loadingR
LoadingResourcesMap::iterator it = loadingResourcesMap.begin();
LoadingResourcesMap::iterator end = loadingResourcesMap.end();
for ( ; it != end; ++it)
- ewk_web_resource_unref(it->second);
+ ewk_resource_unref(it->value);
loadingResourcesMap.clear();
}
@@ -434,11 +527,14 @@ static void _ewk_view_smart_add(Evas_Object* ewkView)
CONNECT(EVAS_CALLBACK_MOUSE_WHEEL, _ewk_view_on_mouse_wheel);
CONNECT(EVAS_CALLBACK_KEY_DOWN, _ewk_view_on_key_down);
CONNECT(EVAS_CALLBACK_KEY_UP, _ewk_view_on_key_up);
+ CONNECT(EVAS_CALLBACK_SHOW, _ewk_view_on_show);
+ CONNECT(EVAS_CALLBACK_HIDE, _ewk_view_on_hide);
#undef CONNECT
}
static void _ewk_view_smart_del(Evas_Object* ewkView)
{
+ removeFromPageViewMap(ewkView);
EWK_VIEW_SD_GET(ewkView, smartData);
if (smartData && smartData->priv)
_ewk_view_priv_del(smartData->priv);
@@ -530,6 +626,7 @@ bool ewk_view_accelerated_compositing_mode_enter(const Evas_Object* ewkView)
return false;
}
+ priv->viewportHandler->setRendererActive(true);
return true;
}
@@ -708,6 +805,9 @@ static void _ewk_view_initialize(Evas_Object* ewkView, Ewk_Context* context, WKP
priv->pageProxy = toImpl(ewk_context_WKContext_get(context))->createWebPage(priv->pageClient.get(), toImpl(pageGroupRef));
else
priv->pageProxy = toImpl(ewk_context_WKContext_get(context))->createWebPage(priv->pageClient.get(), WebPageGroup::create().get());
+
+ addToPageViewMap(ewkView);
+
#if USE(COORDINATED_GRAPHICS)
priv->pageProxy->pageGroup()->preferences()->setAcceleratedCompositingEnabled(true);
priv->pageProxy->pageGroup()->preferences()->setForceCompositingMode(true);
@@ -812,11 +912,11 @@ Ewk_Context* ewk_view_context_get(const Evas_Object* ewkView)
/**
* @internal
- * The uri of view was changed by the frame loader.
+ * The url of view was changed by the frame loader.
*
- * Emits signal: "uri,changed" with pointer to new uri string.
+ * Emits signal: "url,changed" with pointer to new url string.
*/
-void ewk_view_uri_update(Evas_Object* ewkView)
+void ewk_view_url_update(Evas_Object* ewkView)
{
EWK_VIEW_SD_GET_OR_RETURN(ewkView, smartData);
EWK_VIEW_PRIV_GET_OR_RETURN(smartData, priv);
@@ -825,32 +925,32 @@ void ewk_view_uri_update(Evas_Object* ewkView)
if (activeURL.isEmpty())
return;
- if (priv->uri == activeURL.utf8().data())
+ if (priv->url == activeURL.utf8().data())
return;
- priv->uri = activeURL.utf8().data();
- const char* callbackArgument = static_cast<const char*>(priv->uri);
- evas_object_smart_callback_call(ewkView, "uri,changed", const_cast<char*>(callbackArgument));
+ priv->url = activeURL.utf8().data();
+ const char* callbackArgument = static_cast<const char*>(priv->url);
+ evas_object_smart_callback_call(ewkView, "url,changed", const_cast<char*>(callbackArgument));
}
-Eina_Bool ewk_view_uri_set(Evas_Object* ewkView, const char* uri)
+Eina_Bool ewk_view_url_set(Evas_Object* ewkView, const char* url)
{
EWK_VIEW_SD_GET_OR_RETURN(ewkView, smartData, false);
EWK_VIEW_PRIV_GET_OR_RETURN(smartData, priv, false);
- EINA_SAFETY_ON_NULL_RETURN_VAL(uri, false);
+ EINA_SAFETY_ON_NULL_RETURN_VAL(url, false);
- priv->pageProxy->loadURL(uri);
- ewk_view_uri_update(ewkView);
+ priv->pageProxy->loadURL(url);
+ ewk_view_url_update(ewkView);
return true;
}
-const char* ewk_view_uri_get(const Evas_Object* ewkView)
+const char* ewk_view_url_get(const Evas_Object* ewkView)
{
EWK_VIEW_SD_GET_OR_RETURN(ewkView, smartData, 0);
EWK_VIEW_PRIV_GET_OR_RETURN(smartData, priv, 0);
- return priv->uri;
+ return priv->url;
}
Eina_Bool ewk_view_reload(Evas_Object* ewkView)
@@ -859,7 +959,7 @@ Eina_Bool ewk_view_reload(Evas_Object* ewkView)
EWK_VIEW_PRIV_GET_OR_RETURN(smartData, priv, false);
priv->pageProxy->reload(/*reloadFromOrigin*/ false);
- ewk_view_uri_update(ewkView);
+ ewk_view_url_update(ewkView);
return true;
}
@@ -870,7 +970,7 @@ Eina_Bool ewk_view_reload_bypass_cache(Evas_Object* ewkView)
EWK_VIEW_PRIV_GET_OR_RETURN(smartData, priv, false);
priv->pageProxy->reload(/*reloadFromOrigin*/ true);
- ewk_view_uri_update(ewkView);
+ ewk_view_url_update(ewkView);
return true;
}
@@ -899,15 +999,15 @@ Ewk_Settings* ewk_view_settings_get(const Evas_Object* ewkView)
*
* Emits signal: "resource,request,new" with pointer to resource request.
*/
-void ewk_view_resource_load_initiated(Evas_Object* ewkView, uint64_t resourceIdentifier, Ewk_Web_Resource* resource, Ewk_Url_Request* request)
+void ewk_view_resource_load_initiated(Evas_Object* ewkView, uint64_t resourceIdentifier, Ewk_Resource* resource, Ewk_Url_Request* request)
{
EWK_VIEW_SD_GET_OR_RETURN(ewkView, smartData);
EWK_VIEW_PRIV_GET_OR_RETURN(smartData, priv);
- Ewk_Web_Resource_Request resourceRequest = {resource, request, 0};
+ Ewk_Resource_Request resourceRequest = {resource, request, 0};
// Keep the resource internally to reuse it later.
- priv->loadingResourcesMap.add(resourceIdentifier, ewk_web_resource_ref(resource));
+ priv->loadingResourcesMap.add(resourceIdentifier, ewk_resource_ref(resource));
evas_object_smart_callback_call(ewkView, "resource,request,new", &resourceRequest);
}
@@ -926,8 +1026,8 @@ void ewk_view_resource_load_response(Evas_Object* ewkView, uint64_t resourceIden
if (!priv->loadingResourcesMap.contains(resourceIdentifier))
return;
- Ewk_Web_Resource* resource = priv->loadingResourcesMap.get(resourceIdentifier);
- Ewk_Web_Resource_Load_Response resourceLoadResponse = {resource, response};
+ Ewk_Resource* resource = priv->loadingResourcesMap.get(resourceIdentifier);
+ Ewk_Resource_Load_Response resourceLoadResponse = {resource, response};
evas_object_smart_callback_call(ewkView, "resource,request,response", &resourceLoadResponse);
}
@@ -937,7 +1037,7 @@ void ewk_view_resource_load_response(Evas_Object* ewkView, uint64_t resourceIden
*
* Emits signal: "resource,request,finished" with pointer to the resource load error.
*/
-void ewk_view_resource_load_failed(Evas_Object* ewkView, uint64_t resourceIdentifier, Ewk_Web_Error* error)
+void ewk_view_resource_load_failed(Evas_Object* ewkView, uint64_t resourceIdentifier, Ewk_Error* error)
{
EWK_VIEW_SD_GET_OR_RETURN(ewkView, smartData);
EWK_VIEW_PRIV_GET_OR_RETURN(smartData, priv);
@@ -945,8 +1045,8 @@ void ewk_view_resource_load_failed(Evas_Object* ewkView, uint64_t resourceIdenti
if (!priv->loadingResourcesMap.contains(resourceIdentifier))
return;
- Ewk_Web_Resource* resource = priv->loadingResourcesMap.get(resourceIdentifier);
- Ewk_Web_Resource_Load_Error resourceLoadError = {resource, error};
+ Ewk_Resource* resource = priv->loadingResourcesMap.get(resourceIdentifier);
+ Ewk_Resource_Load_Error resourceLoadError = {resource, error};
evas_object_smart_callback_call(ewkView, "resource,request,failed", &resourceLoadError);
}
@@ -964,10 +1064,10 @@ void ewk_view_resource_load_finished(Evas_Object* ewkView, uint64_t resourceIden
if (!priv->loadingResourcesMap.contains(resourceIdentifier))
return;
- Ewk_Web_Resource* resource = priv->loadingResourcesMap.take(resourceIdentifier);
+ Ewk_Resource* resource = priv->loadingResourcesMap.take(resourceIdentifier);
evas_object_smart_callback_call(ewkView, "resource,request,finished", resource);
- ewk_web_resource_unref(resource);
+ ewk_resource_unref(resource);
}
/**
@@ -984,8 +1084,8 @@ void ewk_view_resource_request_sent(Evas_Object* ewkView, uint64_t resourceIdent
if (!priv->loadingResourcesMap.contains(resourceIdentifier))
return;
- Ewk_Web_Resource* resource = priv->loadingResourcesMap.get(resourceIdentifier);
- Ewk_Web_Resource_Request resourceRequest = {resource, request, redirectResponse};
+ Ewk_Resource* resource = priv->loadingResourcesMap.get(resourceIdentifier);
+ Ewk_Resource_Request resourceRequest = {resource, request, redirectResponse};
evas_object_smart_callback_call(ewkView, "resource,request,sent", &resourceRequest);
}
@@ -1207,6 +1307,22 @@ void ewk_view_full_screen_exit(Evas_Object* ewkView)
}
#endif
+#if ENABLE(SQL_DATABASE)
+/**
+ * @internal
+ * Calls exceeded_database_quota callback or falls back to default behavior returns default database quota.
+ */
+unsigned long long ewk_view_database_quota_exceeded(Evas_Object* ewkView, const char* databaseName, const char* displayName, unsigned long long currentQuota, unsigned long long currentOriginUsage, unsigned long long currentDatabaseUsage, unsigned long long expectedUsage)
+{
+ EWK_VIEW_SD_GET_OR_RETURN(ewkView, smartData, 0);
+
+ static const unsigned long long defaultQuota = 5 * 1024 * 1204; // 5 MB
+ if (smartData->api->exceeded_database_quota)
+ return smartData->api->exceeded_database_quota(smartData, databaseName, displayName, currentQuota, currentOriginUsage, currentDatabaseUsage, expectedUsage);
+
+ return defaultQuota;
+}
+#endif
/**
* @internal
@@ -1236,7 +1352,7 @@ void ewk_view_download_job_requested(Evas_Object* ewkView, Ewk_Download_Job* dow
*
* Emits signal: "download,failed" with pointer to a Ewk_Download_Job_Error.
*/
-void ewk_view_download_job_failed(Evas_Object* ewkView, Ewk_Download_Job* download, Ewk_Web_Error* error)
+void ewk_view_download_job_failed(Evas_Object* ewkView, Ewk_Download_Job* download, Ewk_Error* error)
{
Ewk_Download_Job_Error downloadError = { download, error };
evas_object_smart_callback_call(ewkView, "download,failed", &downloadError);
@@ -1347,11 +1463,11 @@ void ewk_view_form_submission_request_new(Evas_Object* ewkView, Ewk_Form_Submiss
* @internal
* Reports load failed with error information.
*
- * Emits signal: "load,error" with pointer to Ewk_Web_Error.
+ * Emits signal: "load,error" with pointer to Ewk_Error.
*/
-void ewk_view_load_error(Evas_Object* ewkView, const Ewk_Web_Error* error)
+void ewk_view_load_error(Evas_Object* ewkView, const Ewk_Error* error)
{
- evas_object_smart_callback_call(ewkView, "load,error", const_cast<Ewk_Web_Error*>(error));
+ evas_object_smart_callback_call(ewkView, "load,error", const_cast<Ewk_Error*>(error));
}
/**
@@ -1362,7 +1478,7 @@ void ewk_view_load_error(Evas_Object* ewkView, const Ewk_Web_Error* error)
*/
void ewk_view_load_finished(Evas_Object* ewkView)
{
- ewk_view_uri_update(ewkView);
+ ewk_view_url_update(ewkView);
evas_object_smart_callback_call(ewkView, "load,finished", 0);
}
@@ -1370,11 +1486,11 @@ void ewk_view_load_finished(Evas_Object* ewkView)
* @internal
* Reports view provisional load failed with error information.
*
- * Emits signal: "load,provisional,failed" with pointer to Ewk_Web_Error.
+ * Emits signal: "load,provisional,failed" with pointer to Ewk_Error.
*/
-void ewk_view_load_provisional_failed(Evas_Object* ewkView, const Ewk_Web_Error* error)
+void ewk_view_load_provisional_failed(Evas_Object* ewkView, const Ewk_Error* error)
{
- evas_object_smart_callback_call(ewkView, "load,provisional,failed", const_cast<Ewk_Web_Error*>(error));
+ evas_object_smart_callback_call(ewkView, "load,provisional,failed", const_cast<Ewk_Error*>(error));
}
/**
@@ -1385,7 +1501,7 @@ void ewk_view_load_provisional_failed(Evas_Object* ewkView, const Ewk_Web_Error*
*/
void ewk_view_load_provisional_redirect(Evas_Object* ewkView)
{
- ewk_view_uri_update(ewkView);
+ ewk_view_url_update(ewkView);
evas_object_smart_callback_call(ewkView, "load,provisional,redirect", 0);
}
@@ -1404,12 +1520,23 @@ void ewk_view_load_provisional_started(Evas_Object* ewkView)
// the loadingResources HashMap to start clean.
_ewk_view_priv_loading_resources_clear(priv->loadingResourcesMap);
- ewk_view_uri_update(ewkView);
+ ewk_view_url_update(ewkView);
evas_object_smart_callback_call(ewkView, "load,provisional,started", 0);
}
/**
* @internal
+ * Reports that the view's back / forward list has changed.
+ *
+ * Emits signal: "back,forward,list,changed".
+ */
+void ewk_view_back_forward_list_changed(Evas_Object* ewkView)
+{
+ evas_object_smart_callback_call(ewkView, "back,forward,list,changed", 0);
+}
+
+/**
+ * @internal
* Reports that a navigation policy decision should be taken.
*
* Emits signal: "policy,decision,navigation".
@@ -1440,7 +1567,7 @@ Eina_Bool ewk_view_html_string_load(Evas_Object* ewkView, const char* html, cons
priv->pageProxy->loadAlternateHTMLString(String::fromUTF8(html), baseUrl ? String::fromUTF8(baseUrl) : "", String::fromUTF8(unreachableUrl));
else
priv->pageProxy->loadHTMLString(String::fromUTF8(html), baseUrl ? String::fromUTF8(baseUrl) : "");
- ewk_view_uri_update(ewkView);
+ ewk_view_url_update(ewkView);
return true;
}
@@ -1458,6 +1585,13 @@ void ewk_view_intent_service_register(Evas_Object* ewkView, const Ewk_Intent_Ser
}
#endif // ENABLE(WEB_INTENTS_TAG)
+const Evas_Object* ewk_view_from_page_get(const WebKit::WebPageProxy* page)
+{
+ EINA_SAFETY_ON_NULL_RETURN_VAL(page, 0);
+
+ return pageViewMap().get(page);
+}
+
WebPageProxy* ewk_view_page_get(const Evas_Object* ewkView)
{
EWK_VIEW_SD_GET_OR_RETURN(ewkView, smartData, 0);
@@ -1517,14 +1651,13 @@ COMPILE_ASSERT_MATCHING_ENUM(EWK_FIND_OPTIONS_SHOW_OVERLAY, kWKFindOptionsShowOv
COMPILE_ASSERT_MATCHING_ENUM(EWK_FIND_OPTIONS_SHOW_FIND_INDICATOR, kWKFindOptionsShowFindIndicator);
COMPILE_ASSERT_MATCHING_ENUM(EWK_FIND_OPTIONS_SHOW_HIGHLIGHT, kWKFindOptionsShowHighlight);
-Eina_Bool ewk_view_text_find(Evas_Object* ewkView, const char* text, Ewk_Find_Options options, unsigned int maxMatchCount)
+Eina_Bool ewk_view_text_find(Evas_Object* ewkView, const char* text, Ewk_Find_Options options, unsigned maxMatchCount)
{
EWK_VIEW_SD_GET_OR_RETURN(ewkView, smartData, false);
EWK_VIEW_PRIV_GET_OR_RETURN(smartData, priv, false);
EINA_SAFETY_ON_NULL_RETURN_VAL(text, false);
- WKRetainPtr<WKStringRef> findText(AdoptWK, WKStringCreateWithUTF8CString(text));
- WKPageFindString(toAPI(priv->pageProxy.get()), findText.get(), static_cast<WKFindOptions>(options), maxMatchCount);
+ priv->pageProxy->findString(String::fromUTF8(text), static_cast<WebKit::FindOptions>(options), maxMatchCount);
return true;
}
@@ -1534,7 +1667,18 @@ Eina_Bool ewk_view_text_find_highlight_clear(Evas_Object* ewkView)
EWK_VIEW_SD_GET_OR_RETURN(ewkView, smartData, false);
EWK_VIEW_PRIV_GET_OR_RETURN(smartData, priv, false);
- WKPageHideFindUI(toAPI(priv->pageProxy.get()));
+ priv->pageProxy->hideFindUI();
+
+ return true;
+}
+
+Eina_Bool ewk_view_text_matches_count(Evas_Object* ewkView, const char* text, Ewk_Find_Options options, unsigned maxMatchCount)
+{
+ EWK_VIEW_SD_GET_OR_RETURN(ewkView, smartData, false);
+ EWK_VIEW_PRIV_GET_OR_RETURN(smartData, priv, false);
+ EINA_SAFETY_ON_NULL_RETURN_VAL(text, false);
+
+ priv->pageProxy->countStringMatches(String::fromUTF8(text), static_cast<WebKit::FindOptions>(options), maxMatchCount);
return true;
}
@@ -1778,3 +1922,85 @@ Eina_Bool ewk_view_feed_touch_event(Evas_Object* ewkView, Ewk_Touch_Event_Type t
return false;
#endif
}
+
+Eina_Bool ewk_view_touch_events_enabled_set(Evas_Object* ewkView, Eina_Bool enabled)
+{
+#if ENABLE(TOUCH_EVENTS)
+ EWK_VIEW_SD_GET_OR_RETURN(ewkView, smartData, false);
+ EWK_VIEW_PRIV_GET_OR_RETURN(smartData, priv, false);
+
+ enabled = !!enabled;
+ if (priv->areTouchEventsEnabled == enabled)
+ return true;
+
+ priv->areTouchEventsEnabled = enabled;
+ if (enabled) {
+ // FIXME: We have to connect touch callbacks with mouse and multi events
+ // because the Evas creates mouse events for first touch and multi events
+ // for second and third touches. Below codes should be fixed when the Evas
+ // supports the touch events.
+ // See https://bugs.webkit.org/show_bug.cgi?id=97785 for details.
+ evas_object_event_callback_add(ewkView, EVAS_CALLBACK_MOUSE_DOWN, _ewk_view_on_touch_down, smartData);
+ evas_object_event_callback_add(ewkView, EVAS_CALLBACK_MOUSE_UP, _ewk_view_on_touch_up, smartData);
+ evas_object_event_callback_add(ewkView, EVAS_CALLBACK_MOUSE_MOVE, _ewk_view_on_touch_move, smartData);
+ evas_object_event_callback_add(ewkView, EVAS_CALLBACK_MULTI_DOWN, _ewk_view_on_touch_down, smartData);
+ evas_object_event_callback_add(ewkView, EVAS_CALLBACK_MULTI_UP, _ewk_view_on_touch_up, smartData);
+ evas_object_event_callback_add(ewkView, EVAS_CALLBACK_MULTI_MOVE, _ewk_view_on_touch_move, smartData);
+ } else {
+ evas_object_event_callback_del(ewkView, EVAS_CALLBACK_MOUSE_DOWN, _ewk_view_on_touch_down);
+ evas_object_event_callback_del(ewkView, EVAS_CALLBACK_MOUSE_UP, _ewk_view_on_touch_up);
+ evas_object_event_callback_del(ewkView, EVAS_CALLBACK_MOUSE_MOVE, _ewk_view_on_touch_move);
+ evas_object_event_callback_del(ewkView, EVAS_CALLBACK_MULTI_DOWN, _ewk_view_on_touch_down);
+ evas_object_event_callback_del(ewkView, EVAS_CALLBACK_MULTI_UP, _ewk_view_on_touch_up);
+ evas_object_event_callback_del(ewkView, EVAS_CALLBACK_MULTI_MOVE, _ewk_view_on_touch_move);
+ }
+
+ return true;
+#else
+ return false;
+#endif
+}
+
+Eina_Bool ewk_view_touch_events_enabled_get(const Evas_Object* ewkView)
+{
+#if ENABLE(TOUCH_EVENTS)
+ EWK_VIEW_SD_GET_OR_RETURN(ewkView, smartData, false);
+ EWK_VIEW_PRIV_GET_OR_RETURN(smartData, priv, false);
+
+ return priv->areTouchEventsEnabled;
+#else
+ return false;
+#endif
+}
+
+Eina_Bool ewk_view_inspector_show(Evas_Object* ewkView)
+{
+#if ENABLE(INSPECTOR)
+ EWK_VIEW_SD_GET_OR_RETURN(ewkView, smartData, false);
+ EWK_VIEW_PRIV_GET_OR_RETURN(smartData, priv, false);
+
+ WebInspectorProxy* inspector = priv->pageProxy->inspector();
+ if (inspector)
+ inspector->show();
+
+ return true;
+#else
+ return false;
+#endif
+}
+
+Eina_Bool ewk_view_inspector_close(Evas_Object* ewkView)
+{
+#if ENABLE(INSPECTOR)
+ EWK_VIEW_SD_GET_OR_RETURN(ewkView, smartData, false);
+ EWK_VIEW_PRIV_GET_OR_RETURN(smartData, priv, false);
+
+ WebInspectorProxy* inspector = priv->pageProxy->inspector();
+ if (inspector)
+ inspector->close();
+
+ return true;
+#else
+ return false;
+#endif
+}
diff --git a/Source/WebKit2/UIProcess/API/efl/ewk_view.h b/Source/WebKit2/UIProcess/API/efl/ewk_view.h
index 13f138c87..e9cbe4e1f 100644
--- a/Source/WebKit2/UIProcess/API/efl/ewk_view.h
+++ b/Source/WebKit2/UIProcess/API/efl/ewk_view.h
@@ -26,6 +26,7 @@
*
* The following signals (see evas_object_smart_callback_add()) are emitted:
*
+ * - "back,forward,list,changed", void: reports that the view's back / forward list had changed.
* - "close,window", void: window is closed.
* - "create,window", Evas_Object**: a new window is created.
* - "download,cancelled", Ewk_Download_Job*: reports that a download was effectively cancelled.
@@ -44,10 +45,10 @@
* ewk_form_submission_request_submit() will be called automatically.
* - "intent,request,new", Ewk_Intent*: reports new Web intent request.
* - "intent,service,register", Ewk_Intent_Service*: reports new Web intent service registration.
- * - "load,error", const Ewk_Web_Error*: reports main frame load failed.
+ * - "load,error", const Ewk_Error*: reports main frame load failed.
* - "load,finished", void: reports load finished.
* - "load,progress", double*: load progress has changed (value from 0.0 to 1.0).
- * - "load,provisional,failed", const Ewk_Web_Error*: view provisional load failed.
+ * - "load,provisional,failed", const Ewk_Error*: view provisional load failed.
* - "load,provisional,redirect", void: view received redirect for provisional load.
* - "load,provisional,started", void: view started provisional load.
* - "policy,decision,navigation", Ewk_Navigation_Policy_Decision*: a navigation policy decision should be taken.
@@ -56,14 +57,14 @@
* - "policy,decision,new,window", Ewk_Navigation_Policy_Decision*: a new window policy decision should be taken.
* To make a policy decision asynchronously, simply increment the reference count of the
* #Ewk_Navigation_Policy_Decision object using ewk_navigation_policy_decision_ref().
- * - "resource,request,failed", const Ewk_Web_Resource_Load_Error*: a resource failed loading.
- * - "resource,request,finished", const Ewk_Web_Resource*: a resource finished loading.
- * - "resource,request,new", const Ewk_Web_Resource_Request*: a resource request was initiated.
- * - "resource,request,response", Ewk_Web_Resource_Load_Response*: a response to a resource request was received.
- * - "resource,request,sent", const Ewk_Web_Resource_Request*: a resource request was sent.
+ * - "resource,request,failed", const Ewk_Resource_Load_Error*: a resource failed loading.
+ * - "resource,request,finished", const Ewk_Resource*: a resource finished loading.
+ * - "resource,request,new", const Ewk_Resource_Request*: a resource request was initiated.
+ * - "resource,request,response", Ewk_Resource_Load_Response*: a response to a resource request was received.
+ * - "resource,request,sent", const Ewk_Resource_Request*: a resource request was sent.
* - "text,found", unsigned int*: the requested text was found and it gives the number of matches.
* - "title,changed", const char*: title of the main frame was changed.
- * - "uri,changed", const char*: uri of the main frame was changed.
+ * - "url,changed", const char*: url of the main frame was changed.
* - "webprocess,crashed", Eina_Bool*: expects a @c EINA_TRUE if web process crash is handled; @c EINA_FALSE, otherwise.
*/
@@ -73,13 +74,13 @@
#include "ewk_back_forward_list.h"
#include "ewk_context.h"
#include "ewk_download_job.h"
+#include "ewk_error.h"
#include "ewk_intent.h"
+#include "ewk_resource.h"
#include "ewk_settings.h"
#include "ewk_touch.h"
#include "ewk_url_request.h"
#include "ewk_url_response.h"
-#include "ewk_web_error.h"
-#include "ewk_web_resource.h"
#include <Evas.h>
#ifdef __cplusplus
@@ -127,13 +128,17 @@ struct _Ewk_View_Smart_Class {
// - Shows and hides color picker.
Eina_Bool (*input_picker_color_request)(Ewk_View_Smart_Data *sd, int r, int g, int b, int a);
Eina_Bool (*input_picker_color_dismiss)(Ewk_View_Smart_Data *sd);
+
+ // storage:
+ // - Web database.
+ unsigned long long (*exceeded_database_quota)(Ewk_View_Smart_Data *sd, const char *databaseName, const char *displayName, unsigned long long currentQuota, unsigned long long currentOriginUsage, unsigned long long currentDatabaseUsage, unsigned long long expectedUsage);
};
/**
* The version you have to put into the version field
* in the @a Ewk_View_Smart_Class structure.
*/
-#define EWK_VIEW_SMART_CLASS_VERSION 5UL
+#define EWK_VIEW_SMART_CLASS_VERSION 6UL
/**
* Initializer for whole Ewk_View_Smart_Class structure.
@@ -145,7 +150,7 @@ struct _Ewk_View_Smart_Class {
* @see EWK_VIEW_SMART_CLASS_INIT_VERSION
* @see EWK_VIEW_SMART_CLASS_INIT_NAME_VERSION
*/
-#define EWK_VIEW_SMART_CLASS_INIT(smart_class_init) {smart_class_init, EWK_VIEW_SMART_CLASS_VERSION, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}
+#define EWK_VIEW_SMART_CLASS_INIT(smart_class_init) {smart_class_init, EWK_VIEW_SMART_CLASS_VERSION, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}
/**
* Initializer to zero a whole Ewk_View_Smart_Class structure.
@@ -197,40 +202,40 @@ struct _Ewk_View_Smart_Data {
} changed;
};
-/// Creates a type name for _Ewk_Web_Resource_Request.
-typedef struct _Ewk_Web_Resource_Request Ewk_Web_Resource_Request;
+/// Creates a type name for _Ewk_Resource_Request.
+typedef struct _Ewk_Resource_Request Ewk_Resource_Request;
/**
* @brief Structure containing details about a resource request.
*/
-struct _Ewk_Web_Resource_Request {
- Ewk_Web_Resource *resource; /**< resource being requested */
+struct _Ewk_Resource_Request {
+ Ewk_Resource *resource; /**< resource being requested */
Ewk_Url_Request *request; /**< URL request for the resource */
Ewk_Url_Response *redirect_response; /**< Possible redirect response for the resource or @c NULL */
};
-/// Creates a type name for _Ewk_Web_Resource_Load_Response.
-typedef struct _Ewk_Web_Resource_Load_Response Ewk_Web_Resource_Load_Response;
+/// Creates a type name for _Ewk_Resource_Load_Response.
+typedef struct _Ewk_Resource_Load_Response Ewk_Resource_Load_Response;
/**
* @brief Structure containing details about a response to a resource request.
*/
-struct _Ewk_Web_Resource_Load_Response {
- Ewk_Web_Resource *resource; /**< resource requested */
- Ewk_Url_Response *response; /**< resource load response */
+struct _Ewk_Resource_Load_Response {
+ Ewk_Resource *resource; /**< resource requested */
+ Ewk_Url_Response *response; /**< resource load response */
};
-/// Creates a type name for _Ewk_Web_Resource_Load_Error.
-typedef struct _Ewk_Web_Resource_Load_Error Ewk_Web_Resource_Load_Error;
+/// Creates a type name for _Ewk_Resource_Load_Error.
+typedef struct _Ewk_Resource_Load_Error Ewk_Resource_Load_Error;
/**
* @brief Structure containing details about a resource load error.
*
* Details given about a resource load failure.
*/
-struct _Ewk_Web_Resource_Load_Error {
- Ewk_Web_Resource *resource; /**< resource that failed loading */
- Ewk_Web_Error *error; /**< load error */
+struct _Ewk_Resource_Load_Error {
+ Ewk_Resource *resource; /**< resource that failed loading */
+ Ewk_Error *error; /**< load error */
};
/// Creates a type name for _Ewk_Download_Job_Error.
@@ -241,7 +246,7 @@ typedef struct _Ewk_Download_Job_Error Ewk_Download_Job_Error;
*/
struct _Ewk_Download_Job_Error {
Ewk_Download_Job *download_job; /**< download that failed */
- Ewk_Web_Error *error; /**< download error */
+ Ewk_Error *error; /**< download error */
};
/**
@@ -329,27 +334,27 @@ EAPI Evas_Object *ewk_view_add_with_context(Evas *e, Ewk_Context *context);
EAPI Ewk_Context *ewk_view_context_get(const Evas_Object *o);
/**
- * Asks the object to load the given URI.
+ * Asks the object to load the given URL.
*
- * @param o view object to load @a URI
- * @param uri uniform resource identifier to load
+ * @param o view object to load @a URL
+ * @param url uniform resource identifier to load
*
* @return @c EINA_TRUE is returned if @a o is valid, irrespective of load,
* or @c EINA_FALSE on failure
*/
-EAPI Eina_Bool ewk_view_uri_set(Evas_Object *o, const char *uri);
+EAPI Eina_Bool ewk_view_url_set(Evas_Object *o, const char *url);
/**
- * Returns the current URI string of view object.
+ * Returns the current URL string of view object.
*
* It returns an internal string and should not
* be modified. The string is guaranteed to be stringshared.
*
- * @param o view object to get current URI
+ * @param o view object to get current URL
*
- * @return current URI on success or @c NULL on failure
+ * @return current URL on success or @c NULL on failure
*/
-EAPI const char *ewk_view_uri_get(const Evas_Object *o);
+EAPI const char *ewk_view_url_get(const Evas_Object *o);
/**
* Asks the main frame to reload the current document.
@@ -613,27 +618,50 @@ EAPI const char *ewk_view_setting_encoding_custom_get(const Evas_Object *o);
EAPI Eina_Bool ewk_view_setting_encoding_custom_set(Evas_Object *o, const char *encoding);
/**
-* Searches the given string in the document.
-*
-* @param o view object to find text
-* @param text text to find
-* @param options options to find
-* @param max count to find, unlimited if 0
-*
-* @return @c EINA_TRUE on success, @c EINA_FALSE on errors
-*/
-EAPI Eina_Bool ewk_view_text_find(Evas_Object *o, const char *text, Ewk_Find_Options options, unsigned int max_match_count);
+ * Searches and hightlights the given string in the document.
+ *
+ * @param o view object to find text
+ * @param text text to find
+ * @param options options to find
+ * @param max_match_count maximum match count to find, unlimited if 0
+ *
+ * @return @c EINA_TRUE on success, @c EINA_FALSE on errors
+ */
+EAPI Eina_Bool ewk_view_text_find(Evas_Object *o, const char *text, Ewk_Find_Options options, unsigned max_match_count);
/**
-* Clears the highlight of searched text.
-*
-* @param o view object to find text
-*
-* @return @c EINA_TRUE on success, @c EINA_FALSE on errors
-*/
+ * Clears the highlight of searched text.
+ *
+ * @param o view object to find text
+ *
+ * @return @c EINA_TRUE on success, @c EINA_FALSE on errors
+ */
EAPI Eina_Bool ewk_view_text_find_highlight_clear(Evas_Object *o);
/**
+ * Counts the given string in the document.
+ *
+ * This does not highlight the matched string and just count the matched string.
+ *
+ * As the search is carried out through the whole document,
+ * only the following EWK_FIND_OPTIONS are valid.
+ * - EWK_FIND_OPTIONS_NONE
+ * - EWK_FIND_OPTIONS_CASE_INSENSITIVE
+ * - EWK_FIND_OPTIONS_AT_WORD_START
+ * - EWK_FIND_OPTIONS_TREAT_MEDIAL_CAPITAL_AS_WORD_START
+ *
+ * The "text,found" callback will be called with the number of matched string.
+ *
+ * @param o view object to find text
+ * @param text text to find
+ * @param options options to find
+ * @param max_match_count maximum match count to find, unlimited if 0
+ *
+ * @return @c EINA_TRUE on success, @c EINA_FALSE on errors
+ */
+EAPI Eina_Bool ewk_view_text_matches_count(Evas_Object *o, const char *text, Ewk_Find_Options options, unsigned max_match_count);
+
+/**
* Selects index of current popup menu.
*
* @param o view object contains popup menu.
@@ -708,6 +736,48 @@ EAPI Eina_Bool ewk_view_color_picker_color_set(Evas_Object *o, int r, int g, int
*/
EAPI Eina_Bool ewk_view_feed_touch_event(Evas_Object *o, Ewk_Touch_Event_Type type, const Eina_List *points, const Evas_Modifier *modifiers);
+/**
+ * Sets whether the ewk_view supports the touch events or not.
+ *
+ * The ewk_view will support the touch events if @c EINA_TRUE or not support the
+ * touch events otherwise. The default value is @c EINA_FALSE.
+ *
+ * @param o view object to enable/disable the touch events
+ * @param enabled a state to set
+ *
+ * @return @c EINA_TRUE on success or @c EINA_FALSE on failure
+ */
+EAPI Eina_Bool ewk_view_touch_events_enabled_set(Evas_Object *o, Eina_Bool enabled);
+
+/**
+ * Queries if the ewk_view supports the touch events.
+ *
+ * @param o view object to query if the touch events are enabled
+ *
+ * @return @c EINA_TRUE if the touch events are enabled or @c EINA_FALSE otherwise
+ */
+EAPI Eina_Bool ewk_view_touch_events_enabled_get(const Evas_Object *o);
+
+/**
+ * Show the inspector to debug a web page.
+ *
+ * @param o The view to show the inspector.
+ *
+ * @return @c EINA_TRUE on success or @c EINA_FALSE on failure
+ *
+ * @see ewk_settings_developer_extras_enabled_set()
+ */
+EAPI Eina_Bool ewk_view_inspector_show(Evas_Object *o);
+
+/**
+ * Close the inspector
+ *
+ * @param o The view to close the inspector.
+ *
+ * @return @c EINA_TRUE on success or @c EINA_FALSE on failure
+ */
+EAPI Eina_Bool ewk_view_inspector_close(Evas_Object *o);
+
#ifdef __cplusplus
}
#endif
diff --git a/Source/WebKit2/UIProcess/API/efl/ewk_view_find_client.cpp b/Source/WebKit2/UIProcess/API/efl/ewk_view_find_client.cpp
index 637e7aec2..1edc3cbfd 100644
--- a/Source/WebKit2/UIProcess/API/efl/ewk_view_find_client.cpp
+++ b/Source/WebKit2/UIProcess/API/efl/ewk_view_find_client.cpp
@@ -34,9 +34,19 @@ static inline Evas_Object* toEwkView(const void* clientInfo)
return static_cast<Evas_Object*>(const_cast<void*>(clientInfo));
}
-static void didFindString(WKPageRef, WKStringRef /*string*/, unsigned matchCount, const void* clientInfo)
+static void didFindString(WKPageRef, WKStringRef, unsigned matchCount, const void* clientInfo)
{
- ewk_view_text_found(toEwkView(clientInfo), static_cast<unsigned int>(matchCount));
+ ewk_view_text_found(toEwkView(clientInfo), matchCount);
+}
+
+static void didFailToFindString(WKPageRef, WKStringRef, const void* clientInfo)
+{
+ ewk_view_text_found(toEwkView(clientInfo), 0);
+}
+
+static void didCountStringMatches(WKPageRef, WKStringRef, unsigned matchCount, const void* clientInfo)
+{
+ ewk_view_text_found(toEwkView(clientInfo), matchCount);
}
void ewk_view_find_client_attach(WKPageRef pageRef, Evas_Object* ewkView)
@@ -46,5 +56,7 @@ void ewk_view_find_client_attach(WKPageRef pageRef, Evas_Object* ewkView)
findClient.version = kWKPageFindClientCurrentVersion;
findClient.clientInfo = ewkView;
findClient.didFindString = didFindString;
+ findClient.didFailToFindString = didFailToFindString;
+ findClient.didCountStringMatches = didCountStringMatches;
WKPageSetPageFindClient(pageRef, &findClient);
}
diff --git a/Source/WebKit2/UIProcess/API/efl/ewk_view_loader_client.cpp b/Source/WebKit2/UIProcess/API/efl/ewk_view_loader_client.cpp
index 997ca35a8..a3afdb4ba 100644
--- a/Source/WebKit2/UIProcess/API/efl/ewk_view_loader_client.cpp
+++ b/Source/WebKit2/UIProcess/API/efl/ewk_view_loader_client.cpp
@@ -28,14 +28,13 @@
#include "WKFrame.h"
#include "ewk_back_forward_list_private.h"
+#include "ewk_error_private.h"
#include "ewk_intent.h"
#include "ewk_intent_private.h"
#include "ewk_intent_service.h"
#include "ewk_intent_service_private.h"
#include "ewk_view_loader_client_private.h"
#include "ewk_view_private.h"
-#include "ewk_web_error.h"
-#include "ewk_web_error_private.h"
#include <wtf/text/CString.h>
using namespace WebKit;
@@ -90,10 +89,10 @@ static void didFailLoadWithErrorForFrame(WKPageRef, WKFrameRef frame, WKErrorRef
return;
Evas_Object* ewkView = static_cast<Evas_Object*>(const_cast<void*>(clientInfo));
- Ewk_Web_Error* ewkError = ewk_web_error_new(error);
+ Ewk_Error* ewkError = ewk_error_new(error);
ewk_view_load_error(ewkView, ewkError);
ewk_view_load_finished(ewkView);
- ewk_web_error_free(ewkError);
+ ewk_error_free(ewkError);
}
static void didStartProvisionalLoadForFrame(WKPageRef, WKFrameRef frame, WKTypeRef /*userData*/, const void* clientInfo)
@@ -120,9 +119,9 @@ static void didFailProvisionalLoadWithErrorForFrame(WKPageRef, WKFrameRef frame,
return;
Evas_Object* ewkView = static_cast<Evas_Object*>(const_cast<void*>(clientInfo));
- Ewk_Web_Error* ewkError = ewk_web_error_new(error);
+ Ewk_Error* ewkError = ewk_error_new(error);
ewk_view_load_provisional_failed(ewkView, ewkError);
- ewk_web_error_free(ewkError);
+ ewk_error_free(ewkError);
}
static void didChangeBackForwardList(WKPageRef, WKBackForwardListItemRef addedItem, WKArrayRef removedItems, const void* clientInfo)
@@ -131,6 +130,7 @@ static void didChangeBackForwardList(WKPageRef, WKBackForwardListItemRef addedIt
ASSERT(ewkView);
ewk_back_forward_list_changed(ewk_view_back_forward_list_get(ewkView), addedItem, removedItems);
+ ewk_view_back_forward_list_changed(ewkView);
}
static void didSameDocumentNavigationForFrame(WKPageRef, WKFrameRef frame, WKSameDocumentNavigationType, WKTypeRef, const void* clientInfo)
@@ -139,7 +139,7 @@ static void didSameDocumentNavigationForFrame(WKPageRef, WKFrameRef frame, WKSam
return;
Evas_Object* ewkView = static_cast<Evas_Object*>(const_cast<void*>(clientInfo));
- ewk_view_uri_update(ewkView);
+ ewk_view_url_update(ewkView);
}
void ewk_view_loader_client_attach(WKPageRef pageRef, Evas_Object* ewkView)
diff --git a/Source/WebKit2/UIProcess/API/efl/ewk_view_private.h b/Source/WebKit2/UIProcess/API/efl/ewk_view_private.h
index 4cba22d36..8ec91c13c 100644
--- a/Source/WebKit2/UIProcess/API/efl/ewk_view_private.h
+++ b/Source/WebKit2/UIProcess/API/efl/ewk_view_private.h
@@ -43,8 +43,8 @@ typedef struct _Ewk_Download_Job Ewk_Download_Job;
typedef struct _Ewk_Form_Submission_Request Ewk_Form_Submission_Request;
typedef struct _Ewk_Url_Request Ewk_Url_Request;
typedef struct _Ewk_Url_Response Ewk_Url_Response;
-typedef struct _Ewk_Web_Error Ewk_Web_Error;
-typedef struct _Ewk_Web_Resource Ewk_Web_Resource;
+typedef struct _Ewk_Error Ewk_Error;
+typedef struct _Ewk_Resource Ewk_Resource;
typedef struct _Ewk_Navigation_Policy_Decision Ewk_Navigation_Policy_Decision;
#if ENABLE(WEB_INTENTS)
typedef struct _Ewk_Intent Ewk_Intent;
@@ -56,7 +56,7 @@ typedef struct _Ewk_Intent_Service Ewk_Intent_Service;
void ewk_view_cursor_set(Evas_Object* ewkView, const WebCore::Cursor& cursor);
void ewk_view_display(Evas_Object* ewkView, const WebCore::IntRect& rect);
void ewk_view_download_job_cancelled(Evas_Object* ewkView, Ewk_Download_Job*);
-void ewk_view_download_job_failed(Evas_Object* ewkView, Ewk_Download_Job*, Ewk_Web_Error*);
+void ewk_view_download_job_failed(Evas_Object* ewkView, Ewk_Download_Job*, Ewk_Error*);
void ewk_view_download_job_finished(Evas_Object* ewkView, Ewk_Download_Job*);
void ewk_view_download_job_requested(Evas_Object* ewkView, Ewk_Download_Job*);
void ewk_view_form_submission_request_new(Evas_Object* ewkView, Ewk_Form_Submission_Request*);
@@ -65,10 +65,10 @@ void ewk_view_full_screen_enter(Evas_Object* ewkView);
void ewk_view_full_screen_exit(Evas_Object* ewkView);
#endif
void ewk_view_image_data_set(Evas_Object* ewkView, void* imageData, const WebCore::IntSize& size);
-void ewk_view_load_error(Evas_Object* ewkView, const Ewk_Web_Error* error);
+void ewk_view_load_error(Evas_Object* ewkView, const Ewk_Error* error);
void ewk_view_load_finished(Evas_Object* ewkView);
void ewk_view_load_progress_changed(Evas_Object* ewkView, double progress);
-void ewk_view_load_provisional_failed(Evas_Object* ewkView, const Ewk_Web_Error* error);
+void ewk_view_load_provisional_failed(Evas_Object* ewkView, const Ewk_Error* error);
void ewk_view_load_provisional_redirect(Evas_Object* ewkView);
void ewk_view_load_provisional_started(Evas_Object* ewkView);
void ewk_view_navigation_policy_decision(Evas_Object* ewkView, Ewk_Navigation_Policy_Decision* decision);
@@ -76,14 +76,15 @@ void ewk_view_new_window_policy_decision(Evas_Object* ewkView, Ewk_Navigation_Po
void ewk_view_page_close(Evas_Object* ewkView);
WKPageRef ewk_view_page_create(Evas_Object* ewkView);
void ewk_view_title_changed(Evas_Object* ewkView, const char* title);
-void ewk_view_resource_load_failed(Evas_Object* ewkView, uint64_t resourceIdentifier, Ewk_Web_Error* error);
+void ewk_view_resource_load_failed(Evas_Object* ewkView, uint64_t resourceIdentifier, Ewk_Error* error);
void ewk_view_resource_load_finished(Evas_Object* ewkView, uint64_t resourceIdentifier);
-void ewk_view_resource_load_initiated(Evas_Object* ewkView, uint64_t resourceIdentifier, Ewk_Web_Resource* resource, Ewk_Url_Request* request);
+void ewk_view_resource_load_initiated(Evas_Object* ewkView, uint64_t resourceIdentifier, Ewk_Resource* resource, Ewk_Url_Request* request);
void ewk_view_resource_load_response(Evas_Object* ewkView, uint64_t resourceIdentifier, Ewk_Url_Response* response);
void ewk_view_resource_request_sent(Evas_Object* ewkView, uint64_t resourceIdentifier, Ewk_Url_Request* request, Ewk_Url_Response* redirectResponse);
void ewk_view_text_found(Evas_Object* ewkView, unsigned int matchCount);
-void ewk_view_uri_update(Evas_Object* ewkView);
+void ewk_view_url_update(Evas_Object* ewkView);
void ewk_view_contents_size_changed(const Evas_Object* ewkView, const WebCore::IntSize&);
+void ewk_view_back_forward_list_changed(Evas_Object* ewkView);
Evas_Object* ewk_view_base_add(Evas* canvas, WKContextRef, WKPageGroupRef);
@@ -94,6 +95,7 @@ void ewk_view_intent_request_new(Evas_Object* ewkView, const Ewk_Intent* ewkInte
void ewk_view_intent_service_register(Evas_Object* ewkView, const Ewk_Intent_Service* ewkIntentService);
#endif
+const Evas_Object* ewk_view_from_page_get(const WebKit::WebPageProxy*);
WebKit::WebPageProxy* ewk_view_page_get(const Evas_Object* ewkView);
WebCore::IntSize ewk_view_size_get(const Evas_Object* ewkView);
@@ -114,4 +116,8 @@ void ewk_view_color_picker_request(Evas_Object* ewkView, int r, int g, int b, in
void ewk_view_color_picker_dismiss(Evas_Object* ewkView);
#endif
+#if ENABLE(SQL_DATABASE)
+unsigned long long ewk_view_database_quota_exceeded(Evas_Object* ewkView, const char* databaseName, const char* displayName, unsigned long long currentQuota, unsigned long long currentOriginUsage, unsigned long long currentDatabaseUsage, unsigned long long expectedUsage);
+#endif
+
#endif // ewk_view_private_h
diff --git a/Source/WebKit2/UIProcess/API/efl/ewk_view_resource_load_client.cpp b/Source/WebKit2/UIProcess/API/efl/ewk_view_resource_load_client.cpp
index 113e178b9..469e18278 100644
--- a/Source/WebKit2/UIProcess/API/efl/ewk_view_resource_load_client.cpp
+++ b/Source/WebKit2/UIProcess/API/efl/ewk_view_resource_load_client.cpp
@@ -32,16 +32,15 @@
#include "WKURL.h"
#include "WKURLRequest.h"
#include "WKURLResponse.h"
+#include "ewk_error_private.h"
+#include "ewk_resource.h"
+#include "ewk_resource_private.h"
#include "ewk_url_request.h"
#include "ewk_url_request_private.h"
#include "ewk_url_response.h"
#include "ewk_url_response_private.h"
#include "ewk_view_private.h"
#include "ewk_view_resource_load_client_private.h"
-#include "ewk_web_error.h"
-#include "ewk_web_error_private.h"
-#include "ewk_web_resource.h"
-#include "ewk_web_resource_private.h"
#include <wtf/text/CString.h>
using namespace WebCore;
@@ -57,19 +56,17 @@ static void didInitiateLoadForResource(WKPageRef, WKFrameRef wkFrame, uint64_t r
bool isMainResource = (WKFrameIsMainFrame(wkFrame) && pageIsProvisionallyLoading);
WKRetainPtr<WKURLRef> wkUrl(AdoptWK, WKURLRequestCopyURL(wkRequest));
- Ewk_Web_Resource* resource = ewk_web_resource_new(toImpl(wkUrl.get())->string().utf8().data(), isMainResource);
- Ewk_Url_Request* request = ewk_url_request_new(wkRequest);
- ewk_view_resource_load_initiated(toEwkView(clientInfo), resourceIdentifier, resource, request);
- ewk_web_resource_unref(resource);
- ewk_url_request_unref(request);
+ Ewk_Resource* resource = ewk_resource_new(toImpl(wkUrl.get())->string().utf8().data(), isMainResource);
+ RefPtr<Ewk_Url_Request> request = adoptRef(ewk_url_request_new(wkRequest));
+ ewk_view_resource_load_initiated(toEwkView(clientInfo), resourceIdentifier, resource, request.get());
+ ewk_resource_unref(resource);
}
static void didSendRequestForResource(WKPageRef, WKFrameRef, uint64_t resourceIdentifier, WKURLRequestRef wkRequest, WKURLResponseRef wkRedirectResponse, const void* clientInfo)
{
- Ewk_Url_Request* request = ewk_url_request_new(wkRequest);
+ RefPtr<Ewk_Url_Request> request = adoptRef(ewk_url_request_new(wkRequest));
Ewk_Url_Response* redirectResponse = wkRedirectResponse ? ewk_url_response_new(toImpl(wkRedirectResponse)->resourceResponse()) : 0;
- ewk_view_resource_request_sent(toEwkView(clientInfo), resourceIdentifier, request, redirectResponse);
- ewk_url_request_unref(request);
+ ewk_view_resource_request_sent(toEwkView(clientInfo), resourceIdentifier, request.get(), redirectResponse);
if (redirectResponse)
ewk_url_response_unref(redirectResponse);
}
@@ -88,10 +85,10 @@ static void didFinishLoadForResource(WKPageRef, WKFrameRef, uint64_t resourceIde
static void didFailLoadForResource(WKPageRef, WKFrameRef, uint64_t resourceIdentifier, WKErrorRef wkError, const void* clientInfo)
{
- Ewk_Web_Error* ewkError = ewk_web_error_new(wkError);
+ Ewk_Error* ewkError = ewk_error_new(wkError);
ewk_view_resource_load_failed(toEwkView(clientInfo), resourceIdentifier, ewkError);
ewk_view_resource_load_finished(toEwkView(clientInfo), resourceIdentifier);
- ewk_web_error_free(ewkError);
+ ewk_error_free(ewkError);
}
void ewk_view_resource_load_client_attach(WKPageRef pageRef, Evas_Object* ewkView)
diff --git a/Source/WebKit2/UIProcess/API/efl/ewk_view_ui_client.cpp b/Source/WebKit2/UIProcess/API/efl/ewk_view_ui_client.cpp
index 6bbf8956c..0f7bd9277 100644
--- a/Source/WebKit2/UIProcess/API/efl/ewk_view_ui_client.cpp
+++ b/Source/WebKit2/UIProcess/API/efl/ewk_view_ui_client.cpp
@@ -28,6 +28,7 @@
#include "WKString.h"
#include "ewk_view_private.h"
#include "ewk_view_ui_client_private.h"
+#include <Ecore_Evas.h>
static inline Evas_Object* toEwkView(const void* clientInfo)
{
@@ -73,6 +74,45 @@ static void hideColorPicker(WKPageRef, const void* clientInfo)
}
#endif
+#if ENABLE(SQL_DATABASE)
+static unsigned long long exceededDatabaseQuota(WKPageRef, WKFrameRef, WKSecurityOriginRef, WKStringRef databaseName, WKStringRef displayName, unsigned long long currentQuota, unsigned long long currentOriginUsage, unsigned long long currentDatabaseUsage, unsigned long long expectedUsage, const void* clientInfo)
+{
+ return ewk_view_database_quota_exceeded(toEwkView(clientInfo), WKEinaSharedString(databaseName), WKEinaSharedString(displayName), currentQuota, currentOriginUsage, currentDatabaseUsage, expectedUsage);
+}
+#endif
+
+static void focus(WKPageRef, const void* clientInfo)
+{
+ evas_object_focus_set(toEwkView(clientInfo), true);
+}
+
+static void unfocus(WKPageRef, const void* clientInfo)
+{
+ evas_object_focus_set(toEwkView(clientInfo), false);
+}
+
+static void takeFocus(WKPageRef, WKFocusDirection, const void* clientInfo)
+{
+ // FIXME: this is only a partial implementation.
+ evas_object_focus_set(toEwkView(clientInfo), false);
+}
+
+static WKRect getWindowFrame(WKPageRef, const void* clientInfo)
+{
+ int x, y, width, height;
+
+ Ecore_Evas* ee = ecore_evas_ecore_evas_get(evas_object_evas_get(toEwkView(clientInfo)));
+ ecore_evas_request_geometry_get(ee, &x, &y, &width, &height);
+
+ return WKRectMake(x, y, width, height);
+}
+
+static void setWindowFrame(WKPageRef, WKRect frame, const void* clientInfo)
+{
+ Ecore_Evas* ee = ecore_evas_ecore_evas_get(evas_object_evas_get(toEwkView(clientInfo)));
+ ecore_evas_move_resize(ee, frame.origin.x, frame.origin.y, frame.size.width, frame.size.height);
+}
+
void ewk_view_ui_client_attach(WKPageRef pageRef, Evas_Object* ewkView)
{
WKPageUIClient uiClient;
@@ -84,6 +124,14 @@ void ewk_view_ui_client_attach(WKPageRef pageRef, Evas_Object* ewkView)
uiClient.runJavaScriptAlert = runJavaScriptAlert;
uiClient.runJavaScriptConfirm = runJavaScriptConfirm;
uiClient.runJavaScriptPrompt = runJavaScriptPrompt;
+ uiClient.takeFocus = takeFocus;
+ uiClient.focus = focus;
+ uiClient.unfocus = unfocus;
+ uiClient.getWindowFrame = getWindowFrame;
+ uiClient.setWindowFrame = setWindowFrame;
+#if ENABLE(SQL_DATABASE)
+ uiClient.exceededDatabaseQuota = exceededDatabaseQuota;
+#endif
#if ENABLE(INPUT_TYPE_COLOR)
uiClient.showColorPicker = showColorPicker;
diff --git a/Source/WebKit2/UIProcess/API/efl/tests/UnitTestUtils/EWK2UnitTestBase.cpp b/Source/WebKit2/UIProcess/API/efl/tests/UnitTestUtils/EWK2UnitTestBase.cpp
index 1691f0d7c..e02f011ca 100644
--- a/Source/WebKit2/UIProcess/API/efl/tests/UnitTestUtils/EWK2UnitTestBase.cpp
+++ b/Source/WebKit2/UIProcess/API/efl/tests/UnitTestUtils/EWK2UnitTestBase.cpp
@@ -50,10 +50,7 @@ void EWK2UnitTestBase::SetUp()
unsigned int width = environment->defaultWidth();
unsigned int height = environment->defaultHeight();
- if (environment->useX11Window())
- m_ecoreEvas = ecore_evas_new(0, 0, 0, width, height, 0);
- else
- m_ecoreEvas = ecore_evas_buffer_new(width, height);
+ m_ecoreEvas = ecore_evas_new(0, 0, 0, width, height, 0);
ecore_evas_show(m_ecoreEvas);
Evas* evas = ecore_evas_get(m_ecoreEvas);
@@ -74,17 +71,17 @@ void EWK2UnitTestBase::TearDown()
ewk_shutdown();
}
-void EWK2UnitTestBase::loadUrlSync(const char* url)
+bool EWK2UnitTestBase::loadUrlSync(const char* url, double timeoutSeconds)
{
- ewk_view_uri_set(m_webView, url);
- waitUntilLoadFinished();
+ ewk_view_url_set(m_webView, url);
+ return waitUntilLoadFinished(timeoutSeconds);
}
class CallbackDataTimer {
public:
- CallbackDataTimer(double timeoutSeconds, Ecore_Task_Cb callback)
+ explicit CallbackDataTimer(double timeoutSeconds)
: m_done(false)
- , m_timer(timeoutSeconds >= 0 ? ecore_timer_add(timeoutSeconds, callback, this) : 0)
+ , m_timer(timeoutSeconds >= 0 ? ecore_timer_add(timeoutSeconds, reinterpret_cast<Ecore_Task_Cb>(timeOutCallback), this) : 0)
, m_didTimeOut(false)
{
}
@@ -108,6 +105,19 @@ public:
bool didTimeOut() const { return m_didTimeOut; }
+protected:
+ bool m_done;
+ Ecore_Timer* m_timer;
+ bool m_didTimeOut;
+
+private:
+ static bool timeOutCallback(void* userData)
+ {
+ CallbackDataTimer* data = static_cast<CallbackDataTimer*>(userData);
+ data->setTimedOut();
+ return ECORE_CALLBACK_CANCEL;
+ }
+
void setTimedOut()
{
m_done = true;
@@ -115,17 +125,13 @@ public:
m_didTimeOut = true;
}
-protected:
- bool m_done;
- Ecore_Timer* m_timer;
- bool m_didTimeOut;
};
template <class T>
class CallbackDataExpectedValue : public CallbackDataTimer {
public:
- CallbackDataExpectedValue(const T& expectedValue, double timeoutSeconds, Ecore_Task_Cb callback)
- : CallbackDataTimer(timeoutSeconds, callback)
+ CallbackDataExpectedValue(const T& expectedValue, double timeoutSeconds)
+ : CallbackDataTimer(timeoutSeconds)
, m_expectedValue(expectedValue)
{
}
@@ -145,17 +151,9 @@ static void onLoadFinished(void* userData, Evas_Object* webView, void* eventInfo
data->setDone();
}
-static bool timeOutWhileWaitingUntilLoadFinished(void* userData)
-{
- CallbackDataTimer* data = static_cast<CallbackDataTimer*>(userData);
- data->setTimedOut();
-
- return ECORE_CALLBACK_CANCEL;
-}
-
bool EWK2UnitTestBase::waitUntilLoadFinished(double timeoutSeconds)
{
- CallbackDataTimer data(timeoutSeconds, reinterpret_cast<Ecore_Task_Cb>(timeOutWhileWaitingUntilLoadFinished));
+ CallbackDataTimer data(timeoutSeconds);
evas_object_smart_callback_add(m_webView, "load,finished", onLoadFinished, &data);
@@ -177,17 +175,9 @@ static void onTitleChanged(void* userData, Evas_Object* webView, void*)
data->setDone();
}
-static bool timeOutWhileWaitingUntilTitleChangedTo(void* userData)
-{
- CallbackDataExpectedValue<CString>* data = static_cast<CallbackDataExpectedValue<CString>*>(userData);
- data->setTimedOut();
-
- return ECORE_CALLBACK_CANCEL;
-}
-
bool EWK2UnitTestBase::waitUntilTitleChangedTo(const char* expectedTitle, double timeoutSeconds)
{
- CallbackDataExpectedValue<CString> data(expectedTitle, timeoutSeconds, reinterpret_cast<Ecore_Task_Cb>(timeOutWhileWaitingUntilTitleChangedTo));
+ CallbackDataExpectedValue<CString> data(expectedTitle, timeoutSeconds);
evas_object_smart_callback_add(m_webView, "title,changed", onTitleChanged, &data);
@@ -199,34 +189,26 @@ bool EWK2UnitTestBase::waitUntilTitleChangedTo(const char* expectedTitle, double
return !data.didTimeOut();
}
-static void onURIChanged(void* userData, Evas_Object* webView, void*)
+static void onURLChanged(void* userData, Evas_Object* webView, void*)
{
CallbackDataExpectedValue<CString>* data = static_cast<CallbackDataExpectedValue<CString>*>(userData);
- if (strcmp(ewk_view_uri_get(webView), data->expectedValue().data()))
+ if (strcmp(ewk_view_url_get(webView), data->expectedValue().data()))
return;
data->setDone();
}
-static bool timeOutWhileWaitingUntilURIChangedTo(void* userData)
-{
- CallbackDataExpectedValue<CString>* data = static_cast<CallbackDataExpectedValue<CString>*>(userData);
- data->setTimedOut();
-
- return ECORE_CALLBACK_CANCEL;
-}
-
-bool EWK2UnitTestBase::waitUntilURIChangedTo(const char* expectedURI, double timeoutSeconds)
+bool EWK2UnitTestBase::waitUntilURLChangedTo(const char* expectedURL, double timeoutSeconds)
{
- CallbackDataExpectedValue<CString> data(expectedURI, timeoutSeconds, reinterpret_cast<Ecore_Task_Cb>(timeOutWhileWaitingUntilURIChangedTo));
+ CallbackDataExpectedValue<CString> data(expectedURL, timeoutSeconds);
- evas_object_smart_callback_add(m_webView, "uri,changed", onURIChanged, &data);
+ evas_object_smart_callback_add(m_webView, "url,changed", onURLChanged, &data);
while (!data.isDone())
ecore_main_loop_iterate();
- evas_object_smart_callback_del(m_webView, "uri,changed", onURIChanged);
+ evas_object_smart_callback_del(m_webView, "url,changed", onURLChanged);
return !data.didTimeOut();
}
@@ -239,4 +221,38 @@ void EWK2UnitTestBase::mouseClick(int x, int y)
evas_event_feed_mouse_up(evas, /* Left */ 1, EVAS_BUTTON_NONE, 0, 0);
}
+void EWK2UnitTestBase::mouseDown(int x, int y)
+{
+ Evas* evas = evas_object_evas_get(m_webView);
+ evas_event_feed_mouse_move(evas, x, y, 0, 0);
+ evas_event_feed_mouse_down(evas, /* Left */ 1, EVAS_BUTTON_NONE, 0, 0);
+}
+
+void EWK2UnitTestBase::mouseUp(int x, int y)
+{
+ Evas* evas = evas_object_evas_get(m_webView);
+ evas_event_feed_mouse_move(evas, x, y, 0, 0);
+ evas_event_feed_mouse_up(evas, /* Left */ 1, EVAS_BUTTON_NONE, 0, 0);
+}
+
+void EWK2UnitTestBase::mouseMove(int x, int y)
+{
+ evas_event_feed_mouse_move(evas_object_evas_get(m_webView), x, y, 0, 0);
+}
+
+void EWK2UnitTestBase::multiDown(int id, int x, int y)
+{
+ evas_event_feed_multi_down(evas_object_evas_get(m_webView), id, x, y, 0, 0, 0, 0, 0, 0, 0, EVAS_BUTTON_NONE, 0, 0);
+}
+
+void EWK2UnitTestBase::multiUp(int id, int x, int y)
+{
+ evas_event_feed_multi_up(evas_object_evas_get(m_webView), id, x, y, 0, 0, 0, 0, 0, 0, 0, EVAS_BUTTON_NONE, 0, 0);
+}
+
+void EWK2UnitTestBase::multiMove(int id, int x, int y)
+{
+ evas_event_feed_multi_move(evas_object_evas_get(m_webView), id, x, y, 0, 0, 0, 0, 0, 0, 0, 0, 0);
+}
+
} // namespace EWK2UnitTest
diff --git a/Source/WebKit2/UIProcess/API/efl/tests/UnitTestUtils/EWK2UnitTestBase.h b/Source/WebKit2/UIProcess/API/efl/tests/UnitTestUtils/EWK2UnitTestBase.h
index e1146b198..2ebb95093 100644
--- a/Source/WebKit2/UIProcess/API/efl/tests/UnitTestUtils/EWK2UnitTestBase.h
+++ b/Source/WebKit2/UIProcess/API/efl/tests/UnitTestUtils/EWK2UnitTestBase.h
@@ -40,14 +40,20 @@ protected:
virtual void SetUp();
virtual void TearDown();
- void loadUrlSync(const char* url);
-
static const double defaultTimeoutSeconds = 10.0;
+
+ bool loadUrlSync(const char* url, double timeoutSeconds = defaultTimeoutSeconds);
bool waitUntilLoadFinished(double timeoutSeconds = defaultTimeoutSeconds);
bool waitUntilTitleChangedTo(const char* expectedTitle, double timeoutSeconds = defaultTimeoutSeconds);
- bool waitUntilURIChangedTo(const char* expectedURI, double timeoutSeconds = defaultTimeoutSeconds);
+ bool waitUntilURLChangedTo(const char* expectedURL, double timeoutSeconds = defaultTimeoutSeconds);
void mouseClick(int x, int y);
+ void mouseDown(int x, int y);
+ void mouseUp(int x, int y);
+ void mouseMove(int x, int y);
+ void multiDown(int id, int x, int y);
+ void multiUp(int id, int x, int y);
+ void multiMove(int id, int x, int y);
private:
Evas_Object* m_webView;
diff --git a/Source/WebKit2/UIProcess/API/efl/tests/UnitTestUtils/EWK2UnitTestEnvironment.cpp b/Source/WebKit2/UIProcess/API/efl/tests/UnitTestUtils/EWK2UnitTestEnvironment.cpp
index 0b7977f54..f9e0f7b73 100644
--- a/Source/WebKit2/UIProcess/API/efl/tests/UnitTestUtils/EWK2UnitTestEnvironment.cpp
+++ b/Source/WebKit2/UIProcess/API/efl/tests/UnitTestUtils/EWK2UnitTestEnvironment.cpp
@@ -26,10 +26,9 @@
namespace EWK2UnitTest {
-EWK2UnitTestEnvironment::EWK2UnitTestEnvironment(bool useX11Window)
+EWK2UnitTestEnvironment::EWK2UnitTestEnvironment()
: m_defaultWidth(800)
, m_defaultHeight(600)
- , m_useX11Window(useX11Window)
{
}
diff --git a/Source/WebKit2/UIProcess/API/efl/tests/UnitTestUtils/EWK2UnitTestEnvironment.h b/Source/WebKit2/UIProcess/API/efl/tests/UnitTestUtils/EWK2UnitTestEnvironment.h
index 4255b01b4..8b401b56a 100644
--- a/Source/WebKit2/UIProcess/API/efl/tests/UnitTestUtils/EWK2UnitTestEnvironment.h
+++ b/Source/WebKit2/UIProcess/API/efl/tests/UnitTestUtils/EWK2UnitTestEnvironment.h
@@ -27,9 +27,8 @@ namespace EWK2UnitTest {
class EWK2UnitTestEnvironment : public ::testing::Environment {
public:
- EWK2UnitTestEnvironment(bool useX11Window);
+ EWK2UnitTestEnvironment();
- bool useX11Window() const { return m_useX11Window; }
const char* defaultTestPageUrl() const;
const char* defaultTheme() const;
const char* injectedBundleSample() const;
@@ -42,8 +41,6 @@ public:
private:
unsigned int m_defaultWidth;
unsigned int m_defaultHeight;
-
- bool m_useX11Window;
};
} // namespace EWK2UnitTest
diff --git a/Source/WebKit2/UIProcess/API/efl/tests/UnitTestUtils/EWK2UnitTestMain.cpp b/Source/WebKit2/UIProcess/API/efl/tests/UnitTestUtils/EWK2UnitTestMain.cpp
index 06e9c069a..778d261e8 100644
--- a/Source/WebKit2/UIProcess/API/efl/tests/UnitTestUtils/EWK2UnitTestMain.cpp
+++ b/Source/WebKit2/UIProcess/API/efl/tests/UnitTestUtils/EWK2UnitTestMain.cpp
@@ -26,27 +26,11 @@ using namespace EWK2UnitTest;
EWK2UnitTestEnvironment* environment = 0;
-static bool parseArguments(int argc, char** argv)
-{
- int useX11Window = 0;
-
- static const option options[] = {
- {"useX11Window", no_argument, &useX11Window, 1},
- {0, 0, 0, 0}
- };
-
- while (getopt_long(argc, argv, "", options, 0) != -1) { }
-
- return useX11Window;
-}
-
int main(int argc, char** argv)
{
- bool useX11Window = parseArguments(argc, argv);
-
::testing::InitGoogleTest(&argc, argv);
- environment = new EWK2UnitTestEnvironment(useX11Window);
+ environment = new EWK2UnitTestEnvironment();
testing::AddGlobalTestEnvironment(environment);
return RUN_ALL_TESTS();
diff --git a/Source/WebKit2/UIProcess/API/efl/tests/UnitTestUtils/EWK2UnitTestServer.cpp b/Source/WebKit2/UIProcess/API/efl/tests/UnitTestUtils/EWK2UnitTestServer.cpp
index 52e6af46e..4ef4cf76f 100644
--- a/Source/WebKit2/UIProcess/API/efl/tests/UnitTestUtils/EWK2UnitTestServer.cpp
+++ b/Source/WebKit2/UIProcess/API/efl/tests/UnitTestUtils/EWK2UnitTestServer.cpp
@@ -27,14 +27,14 @@ EWK2UnitTestServer::EWK2UnitTestServer()
soup_address_resolve_sync(address, 0);
m_soupServer = soup_server_new(SOUP_SERVER_INTERFACE, address, static_cast<char*>(0));
- m_baseURI = soup_uri_new("http://127.0.0.1/");
- soup_uri_set_port(m_baseURI, soup_server_get_port(m_soupServer));
+ m_baseURL = soup_uri_new("http://127.0.0.1/");
+ soup_uri_set_port(m_baseURL, soup_server_get_port(m_soupServer));
g_object_unref(address);
}
EWK2UnitTestServer::~EWK2UnitTestServer()
{
- soup_uri_free(m_baseURI);
+ soup_uri_free(m_baseURL);
g_object_unref(m_soupServer);
}
@@ -44,13 +44,13 @@ void EWK2UnitTestServer::run(SoupServerCallback serverCallback)
soup_server_add_handler(m_soupServer, 0, serverCallback, 0, 0);
}
-CString EWK2UnitTestServer::getURIForPath(const char* path) const
+CString EWK2UnitTestServer::getURLForPath(const char* path) const
{
- SoupURI* soupURI = soup_uri_new_with_base(m_baseURI, path);
- char* uri = soup_uri_to_string(soupURI, false);
- CString uriString = uri;
- free(uri);
- soup_uri_free(soupURI);
+ SoupURI* soupURL = soup_uri_new_with_base(m_baseURL, path);
+ char* url = soup_uri_to_string(soupURL, false);
+ CString urlString = url;
+ free(url);
+ soup_uri_free(soupURL);
- return uriString;
+ return urlString;
}
diff --git a/Source/WebKit2/UIProcess/API/efl/tests/UnitTestUtils/EWK2UnitTestServer.h b/Source/WebKit2/UIProcess/API/efl/tests/UnitTestUtils/EWK2UnitTestServer.h
index 3eb146f06..b967ce409 100644
--- a/Source/WebKit2/UIProcess/API/efl/tests/UnitTestUtils/EWK2UnitTestServer.h
+++ b/Source/WebKit2/UIProcess/API/efl/tests/UnitTestUtils/EWK2UnitTestServer.h
@@ -29,14 +29,12 @@ public:
EWK2UnitTestServer();
virtual ~EWK2UnitTestServer();
- SoupURI* baseURI() const { return m_baseURI; }
-
- CString getURIForPath(const char* path) const;
+ CString getURLForPath(const char* path) const;
void run(SoupServerCallback);
private:
SoupServer* m_soupServer;
- SoupURI* m_baseURI;
+ SoupURI* m_baseURL;
};
#endif // EWK2UnitTestServer_h
diff --git a/Source/WebKit2/UIProcess/API/efl/tests/resources/frame_flattening_test.html b/Source/WebKit2/UIProcess/API/efl/tests/resources/frame_flattening_test.html
new file mode 100644
index 000000000..6367992bb
--- /dev/null
+++ b/Source/WebKit2/UIProcess/API/efl/tests/resources/frame_flattening_test.html
@@ -0,0 +1,4 @@
+<!doctype html>
+<body onload="document.title=document.getElementById('test').offsetWidth;">
+<iframe id="test" src="./frame_flattening_test_subframe.html" width="200" frameborder="0"></iframe>
+</body>
diff --git a/Source/WebKit2/UIProcess/API/efl/tests/resources/frame_flattening_test_subframe.html b/Source/WebKit2/UIProcess/API/efl/tests/resources/frame_flattening_test_subframe.html
new file mode 100644
index 000000000..56ef7c9bd
--- /dev/null
+++ b/Source/WebKit2/UIProcess/API/efl/tests/resources/frame_flattening_test_subframe.html
@@ -0,0 +1,11 @@
+<!doctype html>
+<head>
+<style>
+body {
+width:600px;
+margin:0px;
+padding:0px;
+}
+</style>
+</head>
+<body></body>
diff --git a/Source/WebKit2/UIProcess/API/efl/tests/resources/local_file_access.html b/Source/WebKit2/UIProcess/API/efl/tests/resources/local_file_access.html
new file mode 100644
index 000000000..a71fbf976
--- /dev/null
+++ b/Source/WebKit2/UIProcess/API/efl/tests/resources/local_file_access.html
@@ -0,0 +1,31 @@
+<html>
+<head>
+<script>
+function checkFrameLoaded()
+{
+ var myframe = document.getElementById('myframe');
+ var testWindow = myframe.contentWindow;
+ var state = null;
+ try {
+ var state = testWindow.document.readyState;
+ if (state == "complete") {
+ document.title = "Frame loaded";
+ return;
+ }
+ } catch(e) {}
+ document.title = "Frame NOT loaded";
+}
+
+function loadFrame()
+{
+ var myframe = document.getElementById('myframe');
+ myframe.src = "default_test_page.html";
+
+ setTimeout("checkFrameLoaded()", 300);
+}
+</script>
+</head>
+<body onload="loadFrame()">
+<iframe id="myframe"></iframe>
+</body>
+</html>
diff --git a/Source/WebKit2/UIProcess/API/efl/tests/resources/redirect_uri_to_default.html b/Source/WebKit2/UIProcess/API/efl/tests/resources/redirect_url_to_default.html
index 846fd1113..846fd1113 100644
--- a/Source/WebKit2/UIProcess/API/efl/tests/resources/redirect_uri_to_default.html
+++ b/Source/WebKit2/UIProcess/API/efl/tests/resources/redirect_url_to_default.html
diff --git a/Source/WebKit2/UIProcess/API/efl/tests/resources/window_move_resize.html b/Source/WebKit2/UIProcess/API/efl/tests/resources/window_move_resize.html
new file mode 100644
index 000000000..693ac2ef2
--- /dev/null
+++ b/Source/WebKit2/UIProcess/API/efl/tests/resources/window_move_resize.html
@@ -0,0 +1,15 @@
+<html>
+<head>
+<title>Window move and resize test</title>
+<script>
+function test()
+{
+ window.resizeTo(200, 100);
+ window.moveTo(150, 200);
+ document.title = "Moved and resized";
+}
+</script>
+</head>
+<body onload="test()">
+</body>
+</html>
diff --git a/Source/WebKit2/UIProcess/API/efl/tests/test_ewk2_back_forward_list.cpp b/Source/WebKit2/UIProcess/API/efl/tests/test_ewk2_back_forward_list.cpp
index 9542b76f0..80d7755ec 100644
--- a/Source/WebKit2/UIProcess/API/efl/tests/test_ewk2_back_forward_list.cpp
+++ b/Source/WebKit2/UIProcess/API/efl/tests/test_ewk2_back_forward_list.cpp
@@ -61,19 +61,19 @@ static void serverCallbackNavigation(SoupServer* server, SoupMessage* message, c
soup_message_body_complete(message->response_body);
}
-static inline void checkItem(Ewk_Back_Forward_List_Item* item, const char* title, const char* uri, const char* originalURI)
+static inline void checkItem(Ewk_Back_Forward_List_Item* item, const char* title, const char* url, const char* originalURL)
{
ASSERT_TRUE(item);
- EXPECT_STREQ(uri, ewk_back_forward_list_item_uri_get(item));
+ EXPECT_STREQ(url, ewk_back_forward_list_item_url_get(item));
EXPECT_STREQ(title, ewk_back_forward_list_item_title_get(item));
- EXPECT_STREQ(originalURI, ewk_back_forward_list_item_original_uri_get(item));
+ EXPECT_STREQ(originalURL, ewk_back_forward_list_item_original_url_get(item));
}
static inline WKEinaSharedString urlFromTitle(EWK2UnitTestServer* httpServer, const char* title)
{
Eina_Strbuf* path = eina_strbuf_new();
eina_strbuf_append_printf(path, "/%s", title);
- WKEinaSharedString res = httpServer->getURIForPath(eina_strbuf_string_get(path)).data();
+ WKEinaSharedString res = httpServer->getURLForPath(eina_strbuf_string_get(path)).data();
eina_strbuf_free(path);
return res;
@@ -89,7 +89,7 @@ static inline void freeEinaList(Eina_List* list)
TEST_F(EWK2UnitTestBase, ewk_back_forward_list_current_item_get)
{
const char* url = environment->defaultTestPageUrl();
- loadUrlSync(url);
+ ASSERT_TRUE(loadUrlSync(url));
Ewk_Back_Forward_List* backForwardList = ewk_view_back_forward_list_get(webView());
ASSERT_TRUE(backForwardList);
@@ -106,11 +106,11 @@ TEST_F(EWK2UnitTestBase, ewk_back_forward_list_previous_item_get)
httpServer->run(serverCallbackNavigation);
WKEinaSharedString url1 = urlFromTitle(httpServer.get(), title1);
- loadUrlSync(url1);
- ASSERT_STREQ(ewk_view_title_get(webView()), title1);
+ ASSERT_TRUE(loadUrlSync(url1));
+ ASSERT_STREQ(title1, ewk_view_title_get(webView()));
- loadUrlSync(urlFromTitle(httpServer.get(), title2));
- ASSERT_STREQ(ewk_view_title_get(webView()), title2);
+ ASSERT_TRUE(loadUrlSync(urlFromTitle(httpServer.get(), title2)));
+ ASSERT_STREQ(title2, ewk_view_title_get(webView()));
Ewk_Back_Forward_List* backForwardList = ewk_view_back_forward_list_get(webView());
ASSERT_TRUE(backForwardList);
@@ -127,12 +127,12 @@ TEST_F(EWK2UnitTestBase, ewk_back_forward_list_next_item_get)
OwnPtr<EWK2UnitTestServer> httpServer = adoptPtr(new EWK2UnitTestServer);
httpServer->run(serverCallbackNavigation);
- loadUrlSync(urlFromTitle(httpServer.get(), title1));
- ASSERT_STREQ(ewk_view_title_get(webView()), title1);
+ ASSERT_TRUE(loadUrlSync(urlFromTitle(httpServer.get(), title1)));
+ ASSERT_STREQ(title1, ewk_view_title_get(webView()));
WKEinaSharedString url2 = urlFromTitle(httpServer.get(), title2);
- loadUrlSync(url2);
- ASSERT_STREQ(ewk_view_title_get(webView()), title2);
+ ASSERT_TRUE(loadUrlSync(url2));
+ ASSERT_STREQ(title2, ewk_view_title_get(webView()));
// Go back to Page1.
ewk_view_back(webView());
@@ -154,11 +154,11 @@ TEST_F(EWK2UnitTestBase, ewk_back_forward_list_item_at_index_get)
httpServer->run(serverCallbackNavigation);
WKEinaSharedString url1 = urlFromTitle(httpServer.get(), title1);
- loadUrlSync(url1);
- ASSERT_STREQ(ewk_view_title_get(webView()), title1);
+ ASSERT_TRUE(loadUrlSync(url1));
+ ASSERT_STREQ(title1, ewk_view_title_get(webView()));
- loadUrlSync(urlFromTitle(httpServer.get(), title2));
- ASSERT_STREQ(ewk_view_title_get(webView()), title2);
+ ASSERT_TRUE(loadUrlSync(urlFromTitle(httpServer.get(), title2)));
+ ASSERT_STREQ(title2, ewk_view_title_get(webView()));
Ewk_Back_Forward_List* backForwardList = ewk_view_back_forward_list_get(webView());
ASSERT_TRUE(backForwardList);
@@ -178,16 +178,16 @@ TEST_F(EWK2UnitTestBase, ewk_back_forward_list_count)
OwnPtr<EWK2UnitTestServer> httpServer = adoptPtr(new EWK2UnitTestServer);
httpServer->run(serverCallbackNavigation);
- loadUrlSync(urlFromTitle(httpServer.get(), title1));
- ASSERT_STREQ(ewk_view_title_get(webView()), title1);
+ ASSERT_TRUE(loadUrlSync(urlFromTitle(httpServer.get(), title1)));
+ ASSERT_STREQ(title1, ewk_view_title_get(webView()));
- loadUrlSync(urlFromTitle(httpServer.get(), title2));
- ASSERT_STREQ(ewk_view_title_get(webView()), title2);
+ ASSERT_TRUE(loadUrlSync(urlFromTitle(httpServer.get(), title2)));
+ ASSERT_STREQ(title2, ewk_view_title_get(webView()));
Ewk_Back_Forward_List* backForwardList = ewk_view_back_forward_list_get(webView());
ASSERT_TRUE(backForwardList);
- EXPECT_EQ(ewk_back_forward_list_count(backForwardList), 2);
+ EXPECT_EQ(2, ewk_back_forward_list_count(backForwardList));
}
TEST_F(EWK2UnitTestBase, ewk_back_forward_list_n_back_items_copy)
@@ -196,22 +196,22 @@ TEST_F(EWK2UnitTestBase, ewk_back_forward_list_n_back_items_copy)
httpServer->run(serverCallbackNavigation);
WKEinaSharedString url1 = urlFromTitle(httpServer.get(), title1);
- loadUrlSync(url1);
- ASSERT_STREQ(ewk_view_title_get(webView()), title1);
+ ASSERT_TRUE(loadUrlSync(url1));
+ ASSERT_STREQ(title1, ewk_view_title_get(webView()));
WKEinaSharedString url2 = urlFromTitle(httpServer.get(), title2);
- loadUrlSync(url2);
- ASSERT_STREQ(ewk_view_title_get(webView()), title2);
+ ASSERT_TRUE(loadUrlSync(url2));
+ ASSERT_STREQ(title2, ewk_view_title_get(webView()));
- loadUrlSync(urlFromTitle(httpServer.get(), title3));
- ASSERT_STREQ(ewk_view_title_get(webView()), title3);
+ ASSERT_TRUE(loadUrlSync(urlFromTitle(httpServer.get(), title3)));
+ ASSERT_STREQ(title3, ewk_view_title_get(webView()));
Ewk_Back_Forward_List* backForwardList = ewk_view_back_forward_list_get(webView());
ASSERT_TRUE(backForwardList);
Eina_List* backList = ewk_back_forward_list_n_back_items_copy(backForwardList, 1);
ASSERT_TRUE(backList);
- ASSERT_EQ(eina_list_count(backList), 1);
+ ASSERT_EQ(1, eina_list_count(backList));
checkItem(static_cast<Ewk_Back_Forward_List_Item*>(eina_list_nth(backList, 0)), title2, url2, url2);
freeEinaList(backList);
@@ -221,7 +221,7 @@ TEST_F(EWK2UnitTestBase, ewk_back_forward_list_n_back_items_copy)
backList = ewk_back_forward_list_n_back_items_copy(backForwardList, -1);
ASSERT_TRUE(backList);
- ASSERT_EQ(eina_list_count(backList), 2);
+ ASSERT_EQ(2, eina_list_count(backList));
checkItem(static_cast<Ewk_Back_Forward_List_Item*>(eina_list_nth(backList, 0)), title1, url1, url1);
checkItem(static_cast<Ewk_Back_Forward_List_Item*>(eina_list_nth(backList, 1)), title2, url2, url2);
freeEinaList(backList);
@@ -232,16 +232,16 @@ TEST_F(EWK2UnitTestBase, ewk_back_forward_list_n_forward_items_copy)
OwnPtr<EWK2UnitTestServer> httpServer = adoptPtr(new EWK2UnitTestServer);
httpServer->run(serverCallbackNavigation);
- loadUrlSync(urlFromTitle(httpServer.get(), title1));
- ASSERT_STREQ(ewk_view_title_get(webView()), title1);
+ ASSERT_TRUE(loadUrlSync(urlFromTitle(httpServer.get(), title1)));
+ ASSERT_STREQ(title1, ewk_view_title_get(webView()));
WKEinaSharedString url2 = urlFromTitle(httpServer.get(), title2);
- loadUrlSync(url2);
- ASSERT_STREQ(ewk_view_title_get(webView()), title2);
+ ASSERT_TRUE(loadUrlSync(url2));
+ ASSERT_STREQ(title2, ewk_view_title_get(webView()));
WKEinaSharedString url3 = urlFromTitle(httpServer.get(), title3);
- loadUrlSync(url3);
- ASSERT_STREQ(ewk_view_title_get(webView()), title3);
+ ASSERT_TRUE(loadUrlSync(url3));
+ ASSERT_STREQ(title3, ewk_view_title_get(webView()));
// Go back to Page1.
ewk_view_back(webView());
@@ -254,7 +254,7 @@ TEST_F(EWK2UnitTestBase, ewk_back_forward_list_n_forward_items_copy)
Eina_List* forwardList = ewk_back_forward_list_n_forward_items_copy(backForwardList, 1);
ASSERT_TRUE(forwardList);
- ASSERT_EQ(eina_list_count(forwardList), 1);
+ ASSERT_EQ(1, eina_list_count(forwardList));
checkItem(static_cast<Ewk_Back_Forward_List_Item*>(eina_list_nth(forwardList, 0)), title2, url2, url2);
freeEinaList(forwardList);
@@ -264,7 +264,7 @@ TEST_F(EWK2UnitTestBase, ewk_back_forward_list_n_forward_items_copy)
forwardList = ewk_back_forward_list_n_forward_items_copy(backForwardList, -1);
ASSERT_TRUE(forwardList);
- ASSERT_EQ(eina_list_count(forwardList), 2);
+ ASSERT_EQ(2, eina_list_count(forwardList));
checkItem(static_cast<Ewk_Back_Forward_List_Item*>(eina_list_nth(forwardList, 0)), title2, url2, url2);
checkItem(static_cast<Ewk_Back_Forward_List_Item*>(eina_list_nth(forwardList, 1)), title3, url3, url3);
freeEinaList(forwardList);
diff --git a/Source/WebKit2/UIProcess/API/efl/tests/test_ewk2_context.cpp b/Source/WebKit2/UIProcess/API/efl/tests/test_ewk2_context.cpp
index 82ded55da..dff485348 100644
--- a/Source/WebKit2/UIProcess/API/efl/tests/test_ewk2_context.cpp
+++ b/Source/WebKit2/UIProcess/API/efl/tests/test_ewk2_context.cpp
@@ -56,19 +56,19 @@ TEST_F(EWK2UnitTestBase, ewk_context_cookie_manager_get)
static void schemeRequestCallback(Ewk_Url_Scheme_Request* request, void* userData)
{
const char* scheme = ewk_url_scheme_request_scheme_get(request);
- ASSERT_STREQ(scheme, "fooscheme");
+ ASSERT_STREQ("fooscheme", scheme);
const char* url = ewk_url_scheme_request_url_get(request);
- ASSERT_STREQ(url, "fooscheme:MyPath");
+ ASSERT_STREQ("fooscheme:MyPath", url);
const char* path = ewk_url_scheme_request_path_get(request);
- ASSERT_STREQ(path, "MyPath");
+ ASSERT_STREQ("MyPath", path);
ASSERT_TRUE(ewk_url_scheme_request_finish(request, htmlReply, strlen(htmlReply), "text/html"));
}
-TEST_F(EWK2UnitTestBase, ewk_context_uri_scheme_register)
+TEST_F(EWK2UnitTestBase, ewk_context_url_scheme_register)
{
- ewk_context_uri_scheme_register(ewk_view_context_get(webView()), "fooscheme", schemeRequestCallback, 0);
- loadUrlSync("fooscheme:MyPath");
- ASSERT_STREQ(ewk_view_title_get(webView()), "Foo");
+ ewk_context_url_scheme_register(ewk_view_context_get(webView()), "fooscheme", schemeRequestCallback, 0);
+ ASSERT_TRUE(loadUrlSync("fooscheme:MyPath"));
+ ASSERT_STREQ("Foo", ewk_view_title_get(webView()));
}
struct VibrationCbData {
@@ -128,7 +128,7 @@ TEST_F(EWK2UnitTestBase, ewk_context_vibration_client_callbacks_set)
// This case the pattern will cause the device to vibrate for 200 ms, be still for 100 ms, and then vibrate for 5000 ms.
loadVibrationHTMLString(webView(), "[200, 100, 5000]", true, &data);
- ASSERT_EQ(data.vibrateCalledCount, 2);
+ ASSERT_EQ(2, data.vibrateCalledCount);
ASSERT_TRUE(data.didReceiveVibrateCallback);
// Cancel outstanding vibration pattern.
@@ -141,13 +141,13 @@ TEST_F(EWK2UnitTestBase, ewk_context_vibration_client_callbacks_set)
// Make sure we don't receive vibration event.
loadVibrationHTMLString(webView(), "[5000]", false, &data);
ASSERT_TRUE(waitUntilTitleChangedTo("Loaded"));
- ASSERT_STREQ(ewk_view_title_get(webView()), "Loaded");
+ ASSERT_STREQ("Loaded", ewk_view_title_get(webView()));
ASSERT_FALSE(data.didReceiveVibrateCallback);
// Make sure we don't receive cancel vibration event.
loadVibrationHTMLString(webView(), "0", false, &data);
ASSERT_TRUE(waitUntilTitleChangedTo("Loaded"));
- ASSERT_STREQ(ewk_view_title_get(webView()), "Loaded");
+ ASSERT_STREQ("Loaded", ewk_view_title_get(webView()));
ASSERT_FALSE(data.didReceiveCancelVibrationCallback);
}
diff --git a/Source/WebKit2/UIProcess/API/efl/tests/test_ewk2_context_history_callbacks.cpp b/Source/WebKit2/UIProcess/API/efl/tests/test_ewk2_context_history_callbacks.cpp
new file mode 100644
index 000000000..f60a16c2f
--- /dev/null
+++ b/Source/WebKit2/UIProcess/API/efl/tests/test_ewk2_context_history_callbacks.cpp
@@ -0,0 +1,183 @@
+/*
+ * Copyright (C) 2012 Intel Corporation. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include "config.h"
+
+#include "UnitTestUtils/EWK2UnitTestBase.h"
+#include "UnitTestUtils/EWK2UnitTestEnvironment.h"
+#include "UnitTestUtils/EWK2UnitTestServer.h"
+#include <EWebKit2.h>
+#include <Ecore.h>
+#include <gtest/gtest.h>
+
+using namespace EWK2UnitTest;
+
+extern EWK2UnitTestEnvironment* environment;
+
+static const char defaultTitle[] = "Default Testing Web Page";
+
+static const char toBeRedirectedPath[] = "/some_page_to_be_redirected";
+static const char redirectionTargetPath[] = "/redirection_target";
+
+static EWK2UnitTestServer* httpServer()
+{
+ static EWK2UnitTestServer* server = 0;
+
+ if (!server)
+ server = new EWK2UnitTestServer;
+
+ return server;
+}
+
+#define DECLARE_INVOKE_FLAG(functionName) \
+ static bool functionName##Invoked = false;
+
+#define WAS_INVOKED(functionName) \
+ if (functionName##Invoked) \
+ return; \
+ functionName##Invoked = true
+
+#define CHECK_WAS_INVOKED(functionName) \
+ ASSERT_TRUE(functionName##Invoked)
+
+DECLARE_INVOKE_FLAG(navigateWithNavigationData)
+DECLARE_INVOKE_FLAG(performClientRedirect)
+DECLARE_INVOKE_FLAG(performServerRedirect)
+DECLARE_INVOKE_FLAG(updateHistoryTitle)
+DECLARE_INVOKE_FLAG(populateVisitedLinks)
+
+static void navigateWithNavigationData(const Evas_Object* view, Ewk_Navigation_Data* navigationData, void* userData)
+{
+ WAS_INVOKED(navigateWithNavigationData);
+
+ EWK2UnitTestBase* unitTest = static_cast<EWK2UnitTestBase*>(userData);
+ ASSERT_TRUE(unitTest);
+ ASSERT_EQ(unitTest->webView(), view);
+ // FIXME: WebFrameLoaderClient sends empty title.
+ // ASSERT_STREQ(defaultTitle, ewk_navigation_data_title_get(navigationData));
+ ASSERT_STREQ(environment->defaultTestPageUrl(), ewk_navigation_data_url_get(navigationData));
+
+ Ewk_Url_Request* request = ewk_navigation_data_original_request_get(navigationData);
+ ASSERT_STREQ("GET", ewk_url_request_http_method_get(request));
+ ASSERT_STREQ(environment->defaultTestPageUrl(), ewk_url_request_url_get(request));
+ ASSERT_EQ(0, ewk_request_cookies_first_party_get(request));
+}
+
+static void performClientRedirect(const Evas_Object* view, const char* sourceUrl, const char* destinationUrl, void* userData)
+{
+ WAS_INVOKED(performClientRedirect);
+
+ EWK2UnitTestBase* unitTest = static_cast<EWK2UnitTestBase*>(userData);
+ ASSERT_TRUE(unitTest);
+ ASSERT_EQ(unitTest->webView(), view);
+ ASSERT_STREQ(environment->urlForResource("redirect_url_to_default.html").data(), sourceUrl);
+ ASSERT_STREQ(environment->defaultTestPageUrl(), destinationUrl);
+}
+
+static void performServerRedirect(const Evas_Object* view, const char* sourceUrl, const char* destinationUrl, void* userData)
+{
+ WAS_INVOKED(performServerRedirect);
+
+ EWK2UnitTestBase* unitTest = static_cast<EWK2UnitTestBase*>(userData);
+ ASSERT_TRUE(unitTest);
+ ASSERT_EQ(unitTest->webView(), view);
+ ASSERT_STREQ(httpServer()->getURLForPath(toBeRedirectedPath).data(), sourceUrl);
+ ASSERT_STREQ(httpServer()->getURLForPath(redirectionTargetPath).data(), destinationUrl);
+}
+
+static void updateHistoryTitle(const Evas_Object* view, const char* title, const char* url, void* userData)
+{
+ WAS_INVOKED(updateHistoryTitle);
+
+ EWK2UnitTestBase* unitTest = static_cast<EWK2UnitTestBase*>(userData);
+ ASSERT_TRUE(unitTest);
+ ASSERT_EQ(unitTest->webView(), view);
+ ASSERT_STREQ(defaultTitle, title);
+ ASSERT_STREQ(environment->defaultTestPageUrl(), url);
+}
+
+static void populateVisitedLinks(void* userData)
+{
+ WAS_INVOKED(populateVisitedLinks);
+
+ EWK2UnitTestBase* unitTest = static_cast<EWK2UnitTestBase*>(userData);
+ ASSERT_TRUE(unitTest);
+}
+
+static void onLoadFinishedForRedirection(void* userData, Evas_Object*, void*)
+{
+ int* countLoadFinished = static_cast<int*>(userData);
+ --(*countLoadFinished);
+}
+
+static void serverCallbackRedirection(SoupServer*, SoupMessage* message, const char* path, GHashTable*, SoupClientContext*, gpointer)
+{
+ if (message->method != SOUP_METHOD_GET) {
+ soup_message_set_status(message, SOUP_STATUS_NOT_IMPLEMENTED);
+ return;
+ }
+
+ if (strcmp(path, redirectionTargetPath)) { // Redirect if 'path' is not equal to 'redirectionTargetPath'.
+ soup_message_set_status(message, SOUP_STATUS_TEMPORARY_REDIRECT);
+ soup_message_headers_append(message->response_headers, "Location", httpServer()->getURLForPath(redirectionTargetPath).data());
+ return;
+ }
+
+ soup_message_set_status(message, SOUP_STATUS_OK);
+ Eina_Strbuf* body = eina_strbuf_new();
+ eina_strbuf_append_printf(body, "<html><title>Redirection Target</title></html>");
+ const size_t bodyLength = eina_strbuf_length_get(body);
+ soup_message_body_append(message->response_body, SOUP_MEMORY_TAKE, eina_strbuf_string_steal(body), bodyLength);
+ eina_strbuf_free(body);
+
+ soup_message_body_complete(message->response_body);
+}
+
+TEST_F(EWK2UnitTestBase, ewk_context_history_callbacks_set)
+{
+ ewk_context_history_callbacks_set(ewk_view_context_get(webView()), navigateWithNavigationData, performClientRedirect, performServerRedirect, updateHistoryTitle, populateVisitedLinks, this);
+
+ // Test navigation.
+ ASSERT_TRUE(loadUrlSync(environment->defaultTestPageUrl()));
+ CHECK_WAS_INVOKED(navigateWithNavigationData);
+ CHECK_WAS_INVOKED(updateHistoryTitle);
+ CHECK_WAS_INVOKED(populateVisitedLinks);
+
+ // Test client redirect.
+ int countLoadFinished = 2;
+ evas_object_smart_callback_add(webView(), "load,finished", onLoadFinishedForRedirection, &countLoadFinished);
+ ewk_view_url_set(webView(), environment->urlForResource("redirect_url_to_default.html").data());
+ while (countLoadFinished)
+ ecore_main_loop_iterate();
+ evas_object_smart_callback_del(webView(), "load,finished", onLoadFinishedForRedirection);
+ CHECK_WAS_INVOKED(performClientRedirect);
+
+ // Test server redirect.
+ httpServer()->run(serverCallbackRedirection);
+
+ ASSERT_TRUE(loadUrlSync(httpServer()->getURLForPath(toBeRedirectedPath).data()));
+ CHECK_WAS_INVOKED(performServerRedirect);
+}
+
diff --git a/Source/WebKit2/UIProcess/API/efl/tests/test_ewk2_cookie_manager.cpp b/Source/WebKit2/UIProcess/API/efl/tests/test_ewk2_cookie_manager.cpp
index 4353ced79..598b15519 100644
--- a/Source/WebKit2/UIProcess/API/efl/tests/test_ewk2_cookie_manager.cpp
+++ b/Source/WebKit2/UIProcess/API/efl/tests/test_ewk2_cookie_manager.cpp
@@ -65,7 +65,7 @@ static void serverCallback(SoupServer* server, SoupMessage* message, const char*
soup_message_body_complete(message->response_body);
}
-static void getAcceptPolicyCallback(Ewk_Cookie_Accept_Policy policy, Ewk_Web_Error* error, void* event_info)
+static void getAcceptPolicyCallback(Ewk_Cookie_Accept_Policy policy, Ewk_Error* error, void* event_info)
{
ASSERT_FALSE(error);
Ewk_Cookie_Accept_Policy* ret = static_cast<Ewk_Cookie_Accept_Policy*>(event_info);
@@ -81,7 +81,7 @@ static Ewk_Cookie_Accept_Policy getAcceptPolicy(Ewk_Cookie_Manager* manager)
return policy;
}
-static void getHostnamesWithCookiesCallback(Eina_List* hostnames, Ewk_Web_Error* error, void* event_info)
+static void getHostnamesWithCookiesCallback(Eina_List* hostnames, Ewk_Error* error, void* event_info)
{
ASSERT_FALSE(error);
@@ -116,6 +116,11 @@ static int countHostnamesWithCookies(Ewk_Cookie_Manager* manager)
return count;
}
+static int compareHostNames(const void* hostName1, const void* hostName2)
+{
+ return strcmp(static_cast<const char*>(hostName1), static_cast<const char*>(hostName2));
+}
+
TEST_F(EWK2UnitTestBase, ewk_cookie_manager_accept_policy)
{
OwnPtr<EWK2UnitTestServer> httpServer = adoptPtr(new EWK2UnitTestServer);
@@ -125,32 +130,33 @@ TEST_F(EWK2UnitTestBase, ewk_cookie_manager_accept_policy)
ASSERT_TRUE(cookieManager);
// Default policy is EWK_COOKIE_ACCEPT_POLICY_NO_THIRD_PARTY.
- ASSERT_EQ(getAcceptPolicy(cookieManager), EWK_COOKIE_ACCEPT_POLICY_NO_THIRD_PARTY);
- loadUrlSync(httpServer->getURIForPath("/index.html").data());
+ ASSERT_EQ(EWK_COOKIE_ACCEPT_POLICY_NO_THIRD_PARTY, getAcceptPolicy(cookieManager));
+ ASSERT_TRUE(loadUrlSync(httpServer->getURLForPath("/index.html").data()));
Eina_List* hostnames = getHostnamesWithCookies(cookieManager);
- ASSERT_EQ(eina_list_count(hostnames), 1);
- ASSERT_STREQ(static_cast<char*>(eina_list_nth(hostnames, 0)), FIRST_PARTY_DOMAIN);
+ ASSERT_EQ(1, eina_list_count(hostnames));
+ ASSERT_STREQ(FIRST_PARTY_DOMAIN, static_cast<char*>(eina_list_nth(hostnames, 0)));
freeHostNames(hostnames);
ewk_cookie_manager_cookies_clear(cookieManager);
// Change policy to EWK_COOKIE_ACCEPT_POLICY_ALWAYS
ewk_cookie_manager_accept_policy_set(cookieManager, EWK_COOKIE_ACCEPT_POLICY_ALWAYS);
- ASSERT_EQ(getAcceptPolicy(cookieManager), EWK_COOKIE_ACCEPT_POLICY_ALWAYS);
- loadUrlSync(httpServer->getURIForPath("/index.html").data());
+ ASSERT_EQ(EWK_COOKIE_ACCEPT_POLICY_ALWAYS, getAcceptPolicy(cookieManager));
+ ASSERT_TRUE(loadUrlSync(httpServer->getURLForPath("/index.html").data()));
hostnames = getHostnamesWithCookies(cookieManager);
- ASSERT_EQ(eina_list_count(hostnames), 2);
- ASSERT_STREQ(static_cast<char*>(eina_list_nth(hostnames, 0)), FIRST_PARTY_DOMAIN);
- ASSERT_STREQ(static_cast<char*>(eina_list_nth(hostnames, 1)), THIRD_PARTY_DOMAIN);
+ ASSERT_EQ(2, eina_list_count(hostnames));
+ hostnames = eina_list_sort(hostnames, eina_list_count(hostnames), compareHostNames);
+ ASSERT_STREQ(FIRST_PARTY_DOMAIN, static_cast<char*>(eina_list_nth(hostnames, 0)));
+ ASSERT_STREQ(THIRD_PARTY_DOMAIN, static_cast<char*>(eina_list_nth(hostnames, 1)));
freeHostNames(hostnames);
ewk_cookie_manager_cookies_clear(cookieManager);
// Change policy to EWK_COOKIE_ACCEPT_POLICY_NEVER
ewk_cookie_manager_accept_policy_set(cookieManager, EWK_COOKIE_ACCEPT_POLICY_NEVER);
- ASSERT_EQ(getAcceptPolicy(cookieManager), EWK_COOKIE_ACCEPT_POLICY_NEVER);
- loadUrlSync(httpServer->getURIForPath("/index.html").data());
- ASSERT_EQ(countHostnamesWithCookies(cookieManager), 0);
+ ASSERT_EQ(EWK_COOKIE_ACCEPT_POLICY_NEVER, getAcceptPolicy(cookieManager));
+ ASSERT_TRUE(loadUrlSync(httpServer->getURLForPath("/index.html").data()));
+ ASSERT_EQ(0, countHostnamesWithCookies(cookieManager));
}
void onCookiesChanged(void *eventInfo)
@@ -168,14 +174,14 @@ TEST_F(EWK2UnitTestBase, ewk_cookie_manager_changes_watch)
ASSERT_TRUE(cookieManager);
ewk_cookie_manager_accept_policy_set(cookieManager, EWK_COOKIE_ACCEPT_POLICY_ALWAYS);
- ASSERT_EQ(getAcceptPolicy(cookieManager), EWK_COOKIE_ACCEPT_POLICY_ALWAYS);
+ ASSERT_EQ(EWK_COOKIE_ACCEPT_POLICY_ALWAYS, getAcceptPolicy(cookieManager));
// Watch for changes
bool cookiesChanged = false;
ewk_cookie_manager_changes_watch(cookieManager, onCookiesChanged, &cookiesChanged);
// Check for cookie changes notifications
- loadUrlSync(httpServer->getURIForPath("/index.html").data());
+ ASSERT_TRUE(loadUrlSync(httpServer->getURLForPath("/index.html").data()));
while (!cookiesChanged)
ecore_main_loop_iterate();
@@ -190,8 +196,8 @@ TEST_F(EWK2UnitTestBase, ewk_cookie_manager_changes_watch)
// Stop watching for notifications
ewk_cookie_manager_changes_watch(cookieManager, 0, 0);
cookiesChanged = false;
- loadUrlSync(httpServer->getURIForPath("/index.html").data());
- ASSERT_EQ(countHostnamesWithCookies(cookieManager), 2);
+ ASSERT_TRUE(loadUrlSync(httpServer->getURLForPath("/index.html").data()));
+ ASSERT_EQ(2, countHostnamesWithCookies(cookieManager));
ASSERT_FALSE(cookiesChanged);
// Watch again for notifications
@@ -204,15 +210,15 @@ TEST_F(EWK2UnitTestBase, ewk_cookie_manager_changes_watch)
ASSERT_TRUE(mktemp(textStorage2));
ewk_cookie_manager_persistent_storage_set(cookieManager, textStorage1, EWK_COOKIE_PERSISTENT_STORAGE_TEXT);
- loadUrlSync(httpServer->getURIForPath("/index.html").data());
- ASSERT_EQ(countHostnamesWithCookies(cookieManager), 2);
+ ASSERT_TRUE(loadUrlSync(httpServer->getURLForPath("/index.html").data()));
+ ASSERT_EQ(2, countHostnamesWithCookies(cookieManager));
cookiesChanged = false;
ewk_cookie_manager_persistent_storage_set(cookieManager, textStorage2, EWK_COOKIE_PERSISTENT_STORAGE_TEXT);
- ASSERT_EQ(countHostnamesWithCookies(cookieManager), 0);
+ ASSERT_EQ(0, countHostnamesWithCookies(cookieManager));
ewk_cookie_manager_persistent_storage_set(cookieManager, textStorage1, EWK_COOKIE_PERSISTENT_STORAGE_TEXT);
- ASSERT_EQ(countHostnamesWithCookies(cookieManager), 2);
+ ASSERT_EQ(2, countHostnamesWithCookies(cookieManager));
ASSERT_FALSE(cookiesChanged);
@@ -231,31 +237,31 @@ TEST_F(EWK2UnitTestBase, ewk_cookie_manager_cookies_delete)
ASSERT_TRUE(cookieManager);
ewk_cookie_manager_accept_policy_set(cookieManager, EWK_COOKIE_ACCEPT_POLICY_ALWAYS);
- ASSERT_EQ(getAcceptPolicy(cookieManager), EWK_COOKIE_ACCEPT_POLICY_ALWAYS);
+ ASSERT_EQ(EWK_COOKIE_ACCEPT_POLICY_ALWAYS, getAcceptPolicy(cookieManager));
- loadUrlSync(httpServer->getURIForPath("/index.html").data());
+ ASSERT_TRUE(loadUrlSync(httpServer->getURLForPath("/index.html").data()));
Eina_List* hostnames = getHostnamesWithCookies(cookieManager);
- ASSERT_EQ(eina_list_count(hostnames), 2);
+ ASSERT_EQ(2, eina_list_count(hostnames));
freeHostNames(hostnames);
// Delete first party cookie
ewk_cookie_manager_hostname_cookies_clear(cookieManager, FIRST_PARTY_DOMAIN);
hostnames = getHostnamesWithCookies(cookieManager);
- ASSERT_EQ(eina_list_count(hostnames), 1);
- ASSERT_STREQ(static_cast<char*>(eina_list_nth(hostnames, 0)), THIRD_PARTY_DOMAIN);
+ ASSERT_EQ(1, eina_list_count(hostnames));
+ ASSERT_STREQ(THIRD_PARTY_DOMAIN, static_cast<char*>(eina_list_nth(hostnames, 0)));
freeHostNames(hostnames);
// Delete third party cookie
ewk_cookie_manager_hostname_cookies_clear(cookieManager, THIRD_PARTY_DOMAIN);
- ASSERT_EQ(countHostnamesWithCookies(cookieManager), 0);
+ ASSERT_EQ(0, countHostnamesWithCookies(cookieManager));
// Get all cookies again
- loadUrlSync(httpServer->getURIForPath("/index.html").data());
- ASSERT_EQ(countHostnamesWithCookies(cookieManager), 2);
+ ASSERT_TRUE(loadUrlSync(httpServer->getURLForPath("/index.html").data()));
+ ASSERT_EQ(2, countHostnamesWithCookies(cookieManager));
// Clear all cookies
ewk_cookie_manager_cookies_clear(cookieManager);
- ASSERT_EQ(countHostnamesWithCookies(cookieManager), 0);
+ ASSERT_EQ(0, countHostnamesWithCookies(cookieManager));
}
TEST_F(EWK2UnitTestBase, DISABLED_ewk_cookie_manager_permanent_storage)
@@ -273,33 +279,33 @@ TEST_F(EWK2UnitTestBase, DISABLED_ewk_cookie_manager_permanent_storage)
ASSERT_TRUE(cookieManager);
ewk_cookie_manager_accept_policy_set(cookieManager, EWK_COOKIE_ACCEPT_POLICY_ALWAYS);
- ASSERT_EQ(getAcceptPolicy(cookieManager), EWK_COOKIE_ACCEPT_POLICY_ALWAYS);
+ ASSERT_EQ(EWK_COOKIE_ACCEPT_POLICY_ALWAYS, getAcceptPolicy(cookieManager));
// Text storage using a new file.
ewk_cookie_manager_persistent_storage_set(cookieManager, textStorage, EWK_COOKIE_PERSISTENT_STORAGE_TEXT);
- ASSERT_EQ(countHostnamesWithCookies(cookieManager), 0);
+ ASSERT_EQ(0, countHostnamesWithCookies(cookieManager));
- loadUrlSync(httpServer->getURIForPath("/index.html").data());
- ASSERT_EQ(countHostnamesWithCookies(cookieManager), 2);
+ ASSERT_TRUE(loadUrlSync(httpServer->getURLForPath("/index.html").data()));
+ ASSERT_EQ(2, countHostnamesWithCookies(cookieManager));
// SQLite storage using a new file.
ewk_cookie_manager_persistent_storage_set(cookieManager, sqliteStorage, EWK_COOKIE_PERSISTENT_STORAGE_SQLITE);
- ASSERT_EQ(countHostnamesWithCookies(cookieManager), 0);
+ ASSERT_EQ(0, countHostnamesWithCookies(cookieManager));
- loadUrlSync(httpServer->getURIForPath("/index.html").data());
- ASSERT_EQ(countHostnamesWithCookies(cookieManager), 2);
+ ASSERT_TRUE(loadUrlSync(httpServer->getURLForPath("/index.html").data()));
+ ASSERT_EQ(2, countHostnamesWithCookies(cookieManager));
// Text storage using an existing file.
ewk_cookie_manager_persistent_storage_set(cookieManager, textStorage, EWK_COOKIE_PERSISTENT_STORAGE_TEXT);
- ASSERT_EQ(countHostnamesWithCookies(cookieManager), 2);
+ ASSERT_EQ(2, countHostnamesWithCookies(cookieManager));
ewk_cookie_manager_cookies_clear(cookieManager);
- ASSERT_EQ(countHostnamesWithCookies(cookieManager), 0);
+ ASSERT_EQ(0, countHostnamesWithCookies(cookieManager));
// SQLite storage with an existing file.
ewk_cookie_manager_persistent_storage_set(cookieManager, sqliteStorage, EWK_COOKIE_PERSISTENT_STORAGE_SQLITE);
- ASSERT_EQ(countHostnamesWithCookies(cookieManager), 2);
+ ASSERT_EQ(2, countHostnamesWithCookies(cookieManager));
ewk_cookie_manager_cookies_clear(cookieManager);
- ASSERT_EQ(countHostnamesWithCookies(cookieManager), 0);
+ ASSERT_EQ(0, countHostnamesWithCookies(cookieManager));
// Final clean up.
unlink(textStorage);
diff --git a/Source/WebKit2/UIProcess/API/efl/tests/test_ewk2_download_job.cpp b/Source/WebKit2/UIProcess/API/efl/tests/test_ewk2_download_job.cpp
index 22c97aad8..1494926e2 100644
--- a/Source/WebKit2/UIProcess/API/efl/tests/test_ewk2_download_job.cpp
+++ b/Source/WebKit2/UIProcess/API/efl/tests/test_ewk2_download_job.cpp
@@ -102,23 +102,23 @@ static void on_download_requested(void* userData, Evas_Object* webview, void* ev
{
DownloadTestData* testData = static_cast<DownloadTestData*>(userData);
Ewk_Download_Job* download = static_cast<Ewk_Download_Job*>(eventInfo);
- ASSERT_EQ(ewk_download_job_state_get(download), EWK_DOWNLOAD_JOB_STATE_NOT_STARTED);
- ASSERT_EQ(ewk_download_job_estimated_progress_get(download), 0);
- ASSERT_EQ(ewk_download_job_elapsed_time_get(download), 0);
+ ASSERT_EQ(EWK_DOWNLOAD_JOB_STATE_NOT_STARTED, ewk_download_job_state_get(download));
+ ASSERT_EQ(0, ewk_download_job_estimated_progress_get(download));
+ ASSERT_EQ(0, ewk_download_job_elapsed_time_get(download));
Ewk_Url_Request* request = ewk_download_job_request_get(download);
ASSERT_TRUE(request);
- EXPECT_STREQ(ewk_url_request_url_get(request), testData->fileUrl);
+ EXPECT_STREQ(testData->fileUrl, ewk_url_request_url_get(request));
Ewk_Url_Response* response = ewk_download_job_response_get(download);
ASSERT_TRUE(response);
- EXPECT_STREQ(ewk_url_response_mime_type_get(response), "application/pdf");
+ EXPECT_STREQ("application/pdf", ewk_url_response_mime_type_get(response));
- EXPECT_STREQ(ewk_download_job_suggested_filename_get(download), serverSuggestedFilename);
+ EXPECT_STREQ(serverSuggestedFilename, ewk_download_job_suggested_filename_get(download));
ASSERT_FALSE(fileExists(testData->destinationPath));
ewk_download_job_destination_set(download, testData->destinationPath);
- EXPECT_STREQ(ewk_download_job_destination_get(download), testData->destinationPath);
+ EXPECT_STREQ(testData->destinationPath, ewk_download_job_destination_get(download));
}
static void on_download_cancelled(void* userData, Evas_Object* webview, void* eventInfo)
@@ -131,7 +131,7 @@ static void on_download_cancelled(void* userData, Evas_Object* webview, void* ev
static void on_download_failed(void* userData, Evas_Object* webview, void* eventInfo)
{
Ewk_Download_Job_Error* downloadError = static_cast<Ewk_Download_Job_Error*>(eventInfo);
- fprintf(stderr, "Download error: %s\n", ewk_web_error_description_get(downloadError->error));
+ fprintf(stderr, "Download error: %s\n", ewk_error_description_get(downloadError->error));
ecore_main_loop_quit();
FAIL();
}
@@ -141,8 +141,8 @@ static void on_download_finished(void* userData, Evas_Object* webview, void* eve
DownloadTestData* testData = static_cast<DownloadTestData*>(userData);
Ewk_Download_Job* download = static_cast<Ewk_Download_Job*>(eventInfo);
- ASSERT_EQ(ewk_download_job_estimated_progress_get(download), 1);
- ASSERT_EQ(ewk_download_job_state_get(download), EWK_DOWNLOAD_JOB_STATE_FINISHED);
+ ASSERT_EQ(1, ewk_download_job_estimated_progress_get(download));
+ ASSERT_EQ(EWK_DOWNLOAD_JOB_STATE_FINISHED, ewk_download_job_state_get(download));
ASSERT_GT(ewk_download_job_elapsed_time_get(download), 0);
ASSERT_TRUE(fileExists(testData->destinationPath));
@@ -159,7 +159,7 @@ TEST_F(EWK2UnitTestBase, ewk_download)
char destinationPath[] = "/tmp/pdf-file.XXXXXX";
ASSERT_TRUE(mktemp(destinationPath));
- CString fileUrl = httpServer->getURIForPath(testFilePath);
+ CString fileUrl = httpServer->getURLForPath(testFilePath);
DownloadTestData userData = { fileUrl.data(), destinationPath };
ASSERT_FALSE(fileExists(destinationPath));
@@ -170,7 +170,7 @@ TEST_F(EWK2UnitTestBase, ewk_download)
evas_object_smart_callback_add(webView(), "download,finished", on_download_finished, &userData);
// Download test pdf
- ewk_view_uri_set(webView(), fileUrl.data());
+ ewk_view_url_set(webView(), fileUrl.data());
ecore_main_loop_begin();
// Clean up
diff --git a/Source/WebKit2/UIProcess/API/efl/tests/test_ewk2_intents.cpp b/Source/WebKit2/UIProcess/API/efl/tests/test_ewk2_intents.cpp
index be8b0ffa8..4b46cd883 100644
--- a/Source/WebKit2/UIProcess/API/efl/tests/test_ewk2_intents.cpp
+++ b/Source/WebKit2/UIProcess/API/efl/tests/test_ewk2_intents.cpp
@@ -43,18 +43,18 @@ static void onIntentServiceRegistration(void* userData, Evas_Object*, void* even
Ewk_Intent_Service* service = static_cast<Ewk_Intent_Service*>(eventInfo);
ASSERT_TRUE(service);
- EXPECT_STREQ(ewk_intent_service_action_get(service), "action");
- EXPECT_STREQ(ewk_intent_service_type_get(service), "type");
- EXPECT_STREQ(ewk_intent_service_title_get(service), "Title");
- EXPECT_STREQ(ewk_intent_service_href_get(service), "http://example.com/service");
- EXPECT_STREQ(ewk_intent_service_disposition_get(service), "inline");
+ EXPECT_STREQ("action", ewk_intent_service_action_get(service));
+ EXPECT_STREQ("type", ewk_intent_service_type_get(service));
+ EXPECT_STREQ("Title", ewk_intent_service_title_get(service));
+ EXPECT_STREQ("http://example.com/service", ewk_intent_service_href_get(service));
+ EXPECT_STREQ("inline", ewk_intent_service_disposition_get(service));
}
TEST_F(EWK2UnitTestBase, ewk_intent_service_registration)
{
bool intentRegistered = false;
evas_object_smart_callback_add(webView(), "intent,service,register", onIntentServiceRegistration, &intentRegistered);
- loadUrlSync(environment->urlForResource("intent-service.html").data());
+ ASSERT_TRUE(loadUrlSync(environment->urlForResource("intent-service.html").data()));
evas_object_smart_callback_del(webView(), "intent,service,register", onIntentServiceRegistration);
ASSERT_TRUE(intentRegistered);
}
@@ -76,22 +76,22 @@ static void onIntentReceived(void* userData, Evas_Object*, void* eventInfo)
if (*intentReceivedCount == 1) {
// First intent.
- EXPECT_STREQ(ewk_intent_action_get(intent), "action1");
- EXPECT_STREQ(ewk_intent_type_get(intent), "mime/type1");
- EXPECT_STREQ(ewk_intent_service_get(intent), "http://service1.com/");
- EXPECT_STREQ(ewk_intent_extra_get(intent, "key1"), "value1");
- EXPECT_STREQ(ewk_intent_extra_get(intent, "key2"), "value2");
+ EXPECT_STREQ("action1", ewk_intent_action_get(intent));
+ EXPECT_STREQ("mime/type1", ewk_intent_type_get(intent));
+ EXPECT_STREQ("http://service1.com/", ewk_intent_service_get(intent));
+ EXPECT_STREQ("value1", ewk_intent_extra_get(intent, "key1"));
+ EXPECT_STREQ("value2", ewk_intent_extra_get(intent, "key2"));
} else {
// Second intent.
- EXPECT_STREQ(ewk_intent_action_get(intent), "action2");
- EXPECT_STREQ(ewk_intent_type_get(intent), "mime/type2");
+ EXPECT_STREQ("action2", ewk_intent_action_get(intent));
+ EXPECT_STREQ("mime/type2", ewk_intent_type_get(intent));
Eina_List* suggestions = ewk_intent_suggestions_get(intent);
ASSERT_TRUE(suggestions);
- ASSERT_EQ(eina_list_count(suggestions), 2);
+ ASSERT_EQ(2, eina_list_count(suggestions));
// We need to sort the suggestions since Intent is using a HashSet internally.
suggestions = eina_list_sort(suggestions, 2, stringSortCb);
- EXPECT_STREQ(static_cast<const char*>(eina_list_nth(suggestions, 0)), "http://service1.com/");
- EXPECT_STREQ(static_cast<const char*>(eina_list_nth(suggestions, 1)), "http://service2.com/");
+ EXPECT_STREQ("http://service1.com/", static_cast<const char*>(eina_list_nth(suggestions, 0)));
+ EXPECT_STREQ("http://service2.com/", static_cast<const char*>(eina_list_nth(suggestions, 1)));
void* listData = 0;
EINA_LIST_FREE(suggestions, listData)
@@ -103,18 +103,18 @@ TEST_F(EWK2UnitTestBase, ewk_intent_request)
{
unsigned intentReceivedCount = 0;
evas_object_smart_callback_add(webView(), "intent,request,new", onIntentReceived, &intentReceivedCount);
- loadUrlSync(environment->urlForResource("intent-request.html").data());
+ ASSERT_TRUE(loadUrlSync(environment->urlForResource("intent-request.html").data()));
// A user gesture is required for the intent to start.
mouseClick(5, 5);
while (intentReceivedCount != 1)
ecore_main_loop_iterate();
- ASSERT_EQ(intentReceivedCount, 1);
+ ASSERT_EQ(1, intentReceivedCount);
// Generate a second intent request.
mouseClick(5, 5);
while (intentReceivedCount != 2)
ecore_main_loop_iterate();
- ASSERT_EQ(intentReceivedCount, 2);
+ ASSERT_EQ(2, intentReceivedCount);
evas_object_smart_callback_del(webView(), "intent,request,new", onIntentReceived);
}
diff --git a/Source/WebKit2/UIProcess/API/efl/tests/test_ewk2_refptr_evas_object.cpp b/Source/WebKit2/UIProcess/API/efl/tests/test_ewk2_refptr_evas_object.cpp
index fb6e57269..939d20c6d 100644
--- a/Source/WebKit2/UIProcess/API/efl/tests/test_ewk2_refptr_evas_object.cpp
+++ b/Source/WebKit2/UIProcess/API/efl/tests/test_ewk2_refptr_evas_object.cpp
@@ -65,14 +65,14 @@ TEST_F(EWK2UnitTestBase, reffing)
RefPtr<Evas_Object> object = adoptRef(evas_object_box_add(canvas()));
ASSERT_TRUE(object);
// Evas_Objec external ref count is not as you would expect.
- ASSERT_EQ(evas_object_ref_get(object.get()), 0);
+ ASSERT_EQ(0, evas_object_ref_get(object.get()));
{
RefPtr<Evas_Object> aRef = object;
ASSERT_TRUE(object);
ASSERT_TRUE(aRef);
- ASSERT_EQ(evas_object_ref_get(object.get()), 1);
- ASSERT_EQ(evas_object_ref_get(aRef.get()), 1);
+ ASSERT_EQ(1, evas_object_ref_get(object.get()));
+ ASSERT_EQ(1, evas_object_ref_get(aRef.get()));
{
RefPtr<Evas_Object> bRef = object;
@@ -81,51 +81,51 @@ TEST_F(EWK2UnitTestBase, reffing)
ASSERT_TRUE(aRef);
ASSERT_TRUE(bRef);
- ASSERT_EQ(evas_object_ref_get(object.get()), 2);
- ASSERT_EQ(evas_object_ref_get(aRef.get()), 2);
+ ASSERT_EQ(2, evas_object_ref_get(object.get()));
+ ASSERT_EQ(2, evas_object_ref_get(aRef.get()));
RefPtr<Evas_Object> cRef = bRef;
ASSERT_TRUE(cRef);
- ASSERT_EQ(evas_object_ref_get(object.get()), 3);
- ASSERT_EQ(evas_object_ref_get(aRef.get()), 3);
- ASSERT_EQ(evas_object_ref_get(bRef.get()), 3);
- ASSERT_EQ(evas_object_ref_get(cRef.get()), 3);
+ ASSERT_EQ(3, evas_object_ref_get(object.get()));
+ ASSERT_EQ(3, evas_object_ref_get(aRef.get()));
+ ASSERT_EQ(3, evas_object_ref_get(bRef.get()));
+ ASSERT_EQ(3, evas_object_ref_get(cRef.get()));
bRef.clear();
- ASSERT_EQ(evas_object_ref_get(object.get()), 2);
- ASSERT_EQ(evas_object_ref_get(aRef.get()), 2);
- ASSERT_EQ(evas_object_ref_get(cRef.get()), 2);
+ ASSERT_EQ(2, evas_object_ref_get(object.get()));
+ ASSERT_EQ(2, evas_object_ref_get(aRef.get()));
+ ASSERT_EQ(2, evas_object_ref_get(cRef.get()));
}
- ASSERT_EQ(evas_object_ref_get(object.get()), 1);
- ASSERT_EQ(evas_object_ref_get(aRef.get()), 1);
+ ASSERT_EQ(1, evas_object_ref_get(object.get()));
+ ASSERT_EQ(1, evas_object_ref_get(aRef.get()));
}
- ASSERT_EQ(evas_object_ref_get(object.get()), 0);
+ ASSERT_EQ(0, evas_object_ref_get(object.get()));
}
TEST_F(EWK2UnitTestBase, destruction)
{
RefPtr<Evas_Object> object = adoptRef(evas_object_box_add(canvas()));
ASSERT_TRUE(object);
- ASSERT_EQ(evas_object_ref_get(object.get()), 0);
+ ASSERT_EQ(0, evas_object_ref_get(object.get()));
RefPtr<Evas_Object> aRef = object;
ASSERT_TRUE(object);
ASSERT_TRUE(aRef);
- ASSERT_EQ(evas_object_ref_get(object.get()), 1);
- ASSERT_EQ(evas_object_ref_get(aRef.get()), 1);
+ ASSERT_EQ(1, evas_object_ref_get(object.get()));
+ ASSERT_EQ(1, evas_object_ref_get(aRef.get()));
object = nullptr;
- ASSERT_EQ(evas_object_ref_get(object.get()), 0);
- ASSERT_EQ(evas_object_ref_get(aRef.get()), 0);
+ ASSERT_EQ(0, evas_object_ref_get(object.get()));
+ ASSERT_EQ(0, evas_object_ref_get(aRef.get()));
object = aRef;
- ASSERT_EQ(evas_object_ref_get(object.get()), 1);
- ASSERT_EQ(evas_object_ref_get(aRef.get()), 1);
+ ASSERT_EQ(1, evas_object_ref_get(object.get()));
+ ASSERT_EQ(1, evas_object_ref_get(aRef.get()));
object = 0;
- ASSERT_EQ(evas_object_ref_get(object.get()), 0);
- ASSERT_EQ(evas_object_ref_get(aRef.get()), 0);
+ ASSERT_EQ(0, evas_object_ref_get(object.get()));
+ ASSERT_EQ(0, evas_object_ref_get(aRef.get()));
aRef.clear();
ASSERT_FALSE(aRef);
diff --git a/Source/WebKit2/UIProcess/API/efl/tests/test_ewk2_settings.cpp b/Source/WebKit2/UIProcess/API/efl/tests/test_ewk2_settings.cpp
index 9889bbae7..32f981788 100644
--- a/Source/WebKit2/UIProcess/API/efl/tests/test_ewk2_settings.cpp
+++ b/Source/WebKit2/UIProcess/API/efl/tests/test_ewk2_settings.cpp
@@ -26,11 +26,14 @@
#include "config.h"
#include "UnitTestUtils/EWK2UnitTestBase.h"
+#include "UnitTestUtils/EWK2UnitTestEnvironment.h"
#include <EWebKit2.h>
#include <Eina.h>
using namespace EWK2UnitTest;
+extern EWK2UnitTestEnvironment* environment;
+
TEST_F(EWK2UnitTestBase, ewk_settings_fullscreen_enabled)
{
Ewk_Settings* settings = ewk_view_settings_get(webView());
@@ -95,3 +98,62 @@ TEST_F(EWK2UnitTestBase, ewk_settings_developer_extras_enabled)
ASSERT_TRUE(ewk_settings_developer_extras_enabled_set(settings, EINA_FALSE));
ASSERT_FALSE(ewk_settings_developer_extras_enabled_get(settings));
}
+
+TEST_F(EWK2UnitTestBase, ewk_settings_file_access_from_file_urls_allowed)
+{
+ CString testURL = environment->urlForResource("local_file_access.html");
+ Ewk_Settings* settings = ewk_view_settings_get(webView());
+
+ ASSERT_FALSE(ewk_settings_file_access_from_file_urls_allowed_get(settings));
+
+ ASSERT_TRUE(ewk_settings_file_access_from_file_urls_allowed_set(settings, true));
+ ASSERT_TRUE(ewk_settings_file_access_from_file_urls_allowed_get(settings));
+
+ // Check that file access from file:// URLs is allowed.
+ ewk_view_url_set(webView(), testURL.data());
+ ASSERT_TRUE(waitUntilTitleChangedTo("Frame loaded"));
+
+ ASSERT_TRUE(ewk_settings_file_access_from_file_urls_allowed_set(settings, false));
+ ASSERT_FALSE(ewk_settings_file_access_from_file_urls_allowed_get(settings));
+
+ // Check that file access from file:// URLs is NOT allowed.
+ ewk_view_url_set(webView(), testURL.data());
+ ASSERT_TRUE(waitUntilTitleChangedTo("Frame NOT loaded"));
+}
+
+TEST_F(EWK2UnitTestBase, ewk_settings_frame_flattening_enabled_set)
+{
+ Ewk_Settings* settings = ewk_view_settings_get(webView());
+ ASSERT_TRUE(settings);
+
+ // The frame flattening is disabled by default.
+ ASSERT_FALSE(ewk_settings_frame_flattening_enabled_get(settings));
+ ewk_view_url_set(webView(), environment->urlForResource("frame_flattening_test.html").data());
+ waitUntilTitleChangedTo("200"); // width of iframe tag.
+ ASSERT_STREQ("200", ewk_view_title_get(webView()));
+
+ ASSERT_TRUE(ewk_settings_frame_flattening_enabled_set(settings, true));
+ ASSERT_TRUE(ewk_settings_frame_flattening_enabled_get(settings));
+ ewk_view_url_set(webView(), environment->urlForResource("frame_flattening_test.html").data());
+ waitUntilTitleChangedTo("600"); // width of frame_flattening_test_subframe.html
+ ASSERT_STREQ("600", ewk_view_title_get(webView()));
+
+ ASSERT_TRUE(ewk_settings_frame_flattening_enabled_set(settings, false));
+ ASSERT_FALSE(ewk_settings_frame_flattening_enabled_get(settings));
+ ewk_view_url_set(webView(), environment->urlForResource("frame_flattening_test.html").data());
+ waitUntilTitleChangedTo("200"); // width of iframe tag.
+ ASSERT_STREQ("200", ewk_view_title_get(webView()));
+}
+
+TEST_F(EWK2UnitTestBase, ewk_settings_dns_prefetching_enabled)
+{
+ Ewk_Settings* settings = ewk_view_settings_get(webView());
+
+ // DNS prefeching is disabled by default.
+ ASSERT_FALSE(ewk_settings_dns_prefetching_enabled_get(settings));
+ ASSERT_TRUE(ewk_settings_dns_prefetching_enabled_set(settings, true));
+ ASSERT_TRUE(ewk_settings_dns_prefetching_enabled_get(settings));
+
+ ASSERT_TRUE(ewk_settings_dns_prefetching_enabled_set(settings, false));
+ ASSERT_FALSE(ewk_settings_dns_prefetching_enabled_get(settings));
+}
diff --git a/Source/WebKit2/UIProcess/API/efl/tests/test_ewk2_view.cpp b/Source/WebKit2/UIProcess/API/efl/tests/test_ewk2_view.cpp
index 73f3ac749..0ab0c912e 100644
--- a/Source/WebKit2/UIProcess/API/efl/tests/test_ewk2_view.cpp
+++ b/Source/WebKit2/UIProcess/API/efl/tests/test_ewk2_view.cpp
@@ -44,42 +44,42 @@ static void onLoadFinishedForRedirection(void* userData, Evas_Object*, void*)
(*countLoadFinished)--;
}
-TEST_F(EWK2UnitTestBase, ewk_view_uri_get)
+TEST_F(EWK2UnitTestBase, ewk_view_url_get)
{
- loadUrlSync(environment->defaultTestPageUrl());
- EXPECT_STREQ(ewk_view_uri_get(webView()), environment->defaultTestPageUrl());
+ ASSERT_TRUE(loadUrlSync(environment->defaultTestPageUrl()));
+ EXPECT_STREQ(environment->defaultTestPageUrl(), ewk_view_url_get(webView()));
int countLoadFinished = 2;
evas_object_smart_callback_add(webView(), "load,finished", onLoadFinishedForRedirection, &countLoadFinished);
- ewk_view_uri_set(webView(), environment->urlForResource("redirect_uri_to_default.html").data());
+ ewk_view_url_set(webView(), environment->urlForResource("redirect_url_to_default.html").data());
while (countLoadFinished)
ecore_main_loop_iterate();
evas_object_smart_callback_del(webView(), "load,finished", onLoadFinishedForRedirection);
- EXPECT_STREQ(ewk_view_uri_get(webView()), environment->defaultTestPageUrl());
+ EXPECT_STREQ(environment->defaultTestPageUrl(), ewk_view_url_get(webView()));
}
TEST_F(EWK2UnitTestBase, ewk_view_device_pixel_ratio)
{
- loadUrlSync(environment->defaultTestPageUrl());
+ ASSERT_TRUE(loadUrlSync(environment->defaultTestPageUrl()));
// Default pixel ratio is 1.0
- ASSERT_FLOAT_EQ(ewk_view_device_pixel_ratio_get(webView()), 1);
+ ASSERT_FLOAT_EQ(1, ewk_view_device_pixel_ratio_get(webView()));
ASSERT_TRUE(ewk_view_device_pixel_ratio_set(webView(), 1.2));
- ASSERT_FLOAT_EQ(ewk_view_device_pixel_ratio_get(webView()), 1.2);
+ ASSERT_FLOAT_EQ(1.2, ewk_view_device_pixel_ratio_get(webView()));
ASSERT_TRUE(ewk_view_device_pixel_ratio_set(webView(), 1));
- ASSERT_FLOAT_EQ(ewk_view_device_pixel_ratio_get(webView()), 1);
+ ASSERT_FLOAT_EQ(1, ewk_view_device_pixel_ratio_get(webView()));
}
TEST_F(EWK2UnitTestBase, ewk_view_html_string_load)
{
ewk_view_html_string_load(webView(), "<html><head><title>Foo</title></head><body>Bar</body></html>", 0, 0);
ASSERT_TRUE(waitUntilTitleChangedTo("Foo"));
- ASSERT_STREQ(ewk_view_title_get(webView()), "Foo");
+ ASSERT_STREQ("Foo", ewk_view_title_get(webView()));
ewk_view_html_string_load(webView(), "<html><head><title>Bar</title></head><body>Foo</body></html>", 0, 0);
ASSERT_TRUE(waitUntilTitleChangedTo("Bar"));
- ASSERT_STREQ(ewk_view_title_get(webView()), "Bar");
+ ASSERT_STREQ("Bar", ewk_view_title_get(webView()));
}
static void serverCallbackNavigation(SoupServer* server, SoupMessage* message, const char* path, GHashTable*, SoupClientContext*, gpointer)
@@ -106,28 +106,28 @@ TEST_F(EWK2UnitTestBase, ewk_view_navigation)
httpServer->run(serverCallbackNavigation);
// Visit Page1
- loadUrlSync(httpServer->getURIForPath("/Page1").data());
- ASSERT_STREQ(ewk_view_title_get(webView()), "Page1");
+ ASSERT_TRUE(loadUrlSync(httpServer->getURLForPath("/Page1").data()));
+ ASSERT_STREQ("Page1", ewk_view_title_get(webView()));
ASSERT_FALSE(ewk_view_back_possible(webView()));
ASSERT_FALSE(ewk_view_forward_possible(webView()));
// Visit Page2
- loadUrlSync(httpServer->getURIForPath("/Page2").data());
- ASSERT_STREQ(ewk_view_title_get(webView()), "Page2");
+ ASSERT_TRUE(loadUrlSync(httpServer->getURLForPath("/Page2").data()));
+ ASSERT_STREQ("Page2", ewk_view_title_get(webView()));
ASSERT_TRUE(ewk_view_back_possible(webView()));
ASSERT_FALSE(ewk_view_forward_possible(webView()));
// Go back to Page1
ewk_view_back(webView());
ASSERT_TRUE(waitUntilTitleChangedTo("Page1"));
- ASSERT_STREQ(ewk_view_title_get(webView()), "Page1");
+ ASSERT_STREQ("Page1", ewk_view_title_get(webView()));
ASSERT_FALSE(ewk_view_back_possible(webView()));
ASSERT_TRUE(ewk_view_forward_possible(webView()));
// Go forward to Page2
ewk_view_forward(webView());
ASSERT_TRUE(waitUntilTitleChangedTo("Page2"));
- ASSERT_STREQ(ewk_view_title_get(webView()), "Page2");
+ ASSERT_STREQ("Page2", ewk_view_title_get(webView()));
ASSERT_TRUE(ewk_view_back_possible(webView()));
ASSERT_FALSE(ewk_view_forward_possible(webView()));
}
@@ -136,7 +136,7 @@ TEST_F(EWK2UnitTestBase, ewk_view_setting_encoding_custom)
{
ASSERT_FALSE(ewk_view_setting_encoding_custom_get(webView()));
ASSERT_TRUE(ewk_view_setting_encoding_custom_set(webView(), "UTF-8"));
- ASSERT_STREQ(ewk_view_setting_encoding_custom_get(webView()), "UTF-8");
+ ASSERT_STREQ("UTF-8", ewk_view_setting_encoding_custom_get(webView()));
// Set the default charset.
ASSERT_TRUE(ewk_view_setting_encoding_custom_set(webView(), 0));
ASSERT_FALSE(ewk_view_setting_encoding_custom_get(webView()));
@@ -151,19 +151,19 @@ static void onFormAboutToBeSubmitted(void* userData, Evas_Object*, void* eventIn
Eina_List* fieldNames = ewk_form_submission_request_field_names_get(request);
ASSERT_TRUE(fieldNames);
- ASSERT_EQ(eina_list_count(fieldNames), 3);
+ ASSERT_EQ(3, eina_list_count(fieldNames));
void* data;
EINA_LIST_FREE(fieldNames, data)
eina_stringshare_del(static_cast<char*>(data));
const char* value1 = ewk_form_submission_request_field_value_get(request, "text1");
- ASSERT_STREQ(value1, "value1");
+ ASSERT_STREQ("value1", value1);
eina_stringshare_del(value1);
const char* value2 = ewk_form_submission_request_field_value_get(request, "text2");
- ASSERT_STREQ(value2, "value2");
+ ASSERT_STREQ("value2", value2);
eina_stringshare_del(value2);
const char* password = ewk_form_submission_request_field_value_get(request, "password");
- ASSERT_STREQ(password, "secret");
+ ASSERT_STREQ("secret", password);
eina_stringshare_del(password);
*handled = true;
@@ -195,9 +195,9 @@ TEST_F(EWK2UnitTestBase, ewk_view_form_submission_request)
static inline void checkBasicPopupMenuItem(Ewk_Popup_Menu_Item* item, const char* title, bool enabled)
{
- EXPECT_EQ(ewk_popup_menu_item_type_get(item), EWK_POPUP_MENU_ITEM);
- EXPECT_STREQ(ewk_popup_menu_item_text_get(item), title);
- EXPECT_EQ(ewk_popup_menu_item_enabled_get(item), enabled);
+ EXPECT_EQ(EWK_POPUP_MENU_ITEM, ewk_popup_menu_item_type_get(item));
+ EXPECT_STREQ(title, ewk_popup_menu_item_text_get(item));
+ EXPECT_EQ(enabled, ewk_popup_menu_item_enabled_get(item));
}
static Eina_Bool selectItemAfterDelayed(void* data)
@@ -208,25 +208,25 @@ static Eina_Bool selectItemAfterDelayed(void* data)
static Eina_Bool showPopupMenu(Ewk_View_Smart_Data* smartData, Eina_Rectangle, Ewk_Text_Direction, double, Eina_List* list, int selectedIndex)
{
- EXPECT_EQ(selectedIndex, 2);
+ EXPECT_EQ(2, selectedIndex);
Ewk_Popup_Menu_Item* item = static_cast<Ewk_Popup_Menu_Item*>(eina_list_nth(list, 0));
checkBasicPopupMenuItem(item, "first", true);
- EXPECT_EQ(ewk_popup_menu_item_text_direction_get(item), EWK_TEXT_DIRECTION_LEFT_TO_RIGHT);
- EXPECT_STREQ(ewk_popup_menu_item_tooltip_get(item), "");
- EXPECT_STREQ(ewk_popup_menu_item_accessibility_text_get(item), "");
+ EXPECT_EQ(EWK_TEXT_DIRECTION_LEFT_TO_RIGHT, ewk_popup_menu_item_text_direction_get(item));
+ EXPECT_STREQ("", ewk_popup_menu_item_tooltip_get(item));
+ EXPECT_STREQ("", ewk_popup_menu_item_accessibility_text_get(item));
EXPECT_FALSE(ewk_popup_menu_item_is_label_get(item));
EXPECT_FALSE(ewk_popup_menu_item_selected_get(item));
item = static_cast<Ewk_Popup_Menu_Item*>(eina_list_nth(list, 1));
checkBasicPopupMenuItem(item, "second", false);
- EXPECT_EQ(ewk_popup_menu_item_enabled_get(item), false);
+ EXPECT_FALSE(ewk_popup_menu_item_enabled_get(item));
item = static_cast<Ewk_Popup_Menu_Item*>(eina_list_nth(list, 2));
checkBasicPopupMenuItem(item, "third", true);
- EXPECT_EQ(ewk_popup_menu_item_text_direction_get(item), EWK_TEXT_DIRECTION_RIGHT_TO_LEFT);
- EXPECT_STREQ(ewk_popup_menu_item_tooltip_get(item), "tooltip");
- EXPECT_STREQ(ewk_popup_menu_item_accessibility_text_get(item), "aria");
+ EXPECT_EQ(EWK_TEXT_DIRECTION_RIGHT_TO_LEFT, ewk_popup_menu_item_text_direction_get(item));
+ EXPECT_STREQ("tooltip", ewk_popup_menu_item_tooltip_get(item));
+ EXPECT_STREQ("aria", ewk_popup_menu_item_accessibility_text_get(item));
EXPECT_TRUE(ewk_popup_menu_item_selected_get(item));
item = static_cast<Ewk_Popup_Menu_Item*>(eina_list_nth(list, 3));
@@ -237,8 +237,8 @@ static Eina_Bool showPopupMenu(Ewk_View_Smart_Data* smartData, Eina_Rectangle, E
checkBasicPopupMenuItem(item, " forth", true);
item = static_cast<Ewk_Popup_Menu_Item*>(eina_list_nth(list, 5));
- EXPECT_EQ(ewk_popup_menu_item_type_get(item), EWK_POPUP_MENU_UNKNOWN);
- EXPECT_STREQ(ewk_popup_menu_item_text_get(item), 0);
+ EXPECT_EQ(EWK_POPUP_MENU_UNKNOWN, ewk_popup_menu_item_type_get(item));
+ EXPECT_STREQ(0, ewk_popup_menu_item_text_get(item));
ecore_timer_add(0, selectItemAfterDelayed, smartData->self);
return true;
@@ -310,18 +310,6 @@ static Eina_Bool fullScreenCallback(Ewk_View_Smart_Data* smartData)
return false;
}
-static void checkFullScreenProperty(Evas_Object* webView, bool expectedState)
-{
- if (environment->useX11Window()) {
- Ewk_View_Smart_Data* smartData = static_cast<Ewk_View_Smart_Data*>(evas_object_smart_data_get(webView));
- Ecore_Evas* ecoreEvas = ecore_evas_ecore_evas_get(smartData->base.evas);
- bool windowState = false;
- while (((windowState = ecore_evas_fullscreen_get(ecoreEvas)) != expectedState))
- ecore_main_loop_iterate();
- ASSERT_TRUE(expectedState == windowState);
- }
-}
-
TEST_F(EWK2UnitTestBase, ewk_view_full_screen_enter)
{
const char fullscreenHTML[] =
@@ -339,7 +327,6 @@ TEST_F(EWK2UnitTestBase, ewk_view_full_screen_enter)
mouseClick(50, 50);
ASSERT_TRUE(waitUntilTitleChangedTo("fullscreen entered"));
ASSERT_TRUE(fullScreenCallbackCalled);
- checkFullScreenProperty(webView(), true);
}
TEST_F(EWK2UnitTestBase, ewk_view_full_screen_exit)
@@ -360,18 +347,17 @@ TEST_F(EWK2UnitTestBase, ewk_view_full_screen_exit)
mouseClick(50, 50);
ASSERT_TRUE(waitUntilTitleChangedTo("fullscreen exited"));
ASSERT_TRUE(fullScreenCallbackCalled);
- checkFullScreenProperty(webView(), false);
}
TEST_F(EWK2UnitTestBase, ewk_view_same_page_navigation)
{
- // Tests that same page navigation updates the page URI.
+ // Tests that same page navigation updates the page URL.
String testUrl = environment->urlForResource("same_page_navigation.html").data();
- loadUrlSync(testUrl.utf8().data());
- ASSERT_STREQ(testUrl.utf8().data(), ewk_view_uri_get(webView()));
+ ASSERT_TRUE(loadUrlSync(testUrl.utf8().data()));
+ ASSERT_STREQ(testUrl.utf8().data(), ewk_view_url_get(webView()));
mouseClick(50, 50);
testUrl = testUrl + '#';
- ASSERT_TRUE(waitUntilURIChangedTo(testUrl.utf8().data()));
+ ASSERT_TRUE(waitUntilURLChangedTo(testUrl.utf8().data()));
}
TEST_F(EWK2UnitTestBase, ewk_view_title_changed)
@@ -381,21 +367,21 @@ TEST_F(EWK2UnitTestBase, ewk_view_title_changed)
"<body onload=\"document.title='Title after changed';\"></body>";
ewk_view_html_string_load(webView(), titleChangedHTML, 0, 0);
EXPECT_TRUE(waitUntilTitleChangedTo("Title after changed"));
- EXPECT_STREQ(ewk_view_title_get(webView()), "Title after changed");
+ EXPECT_STREQ("Title after changed", ewk_view_title_get(webView()));
titleChangedHTML =
"<!doctype html><head><title>Title before changed</title></head>"
"<body onload=\"document.title='';\"></body>";
ewk_view_html_string_load(webView(), titleChangedHTML, 0, 0);
EXPECT_TRUE(waitUntilTitleChangedTo(""));
- EXPECT_STREQ(ewk_view_title_get(webView()), "");
+ EXPECT_STREQ("", ewk_view_title_get(webView()));
titleChangedHTML =
"<!doctype html><head><title>Title before changed</title></head>"
"<body onload=\"document.title=null;\"></body>";
ewk_view_html_string_load(webView(), titleChangedHTML, 0, 0);
EXPECT_TRUE(waitUntilTitleChangedTo(""));
- EXPECT_STREQ(ewk_view_title_get(webView()), "");
+ EXPECT_STREQ("", ewk_view_title_get(webView()));
}
static struct {
@@ -431,35 +417,35 @@ TEST_F(EWK2UnitTestBase, ewk_view_run_javascript_alert)
alertCallbackData.called = false;
ewk_view_html_string_load(webView(), alertHTML, 0, 0);
EXPECT_TRUE(waitUntilLoadFinished());
- EXPECT_EQ(alertCallbackData.called, true);
+ EXPECT_TRUE(alertCallbackData.called);
alertHTML = "<!doctype html><body onload=\"alert('');\"></body>";
alertCallbackData.expectedMessage = "";
alertCallbackData.called = false;
ewk_view_html_string_load(webView(), alertHTML, 0, 0);
EXPECT_TRUE(waitUntilLoadFinished());
- EXPECT_EQ(alertCallbackData.called, true);
+ EXPECT_TRUE(alertCallbackData.called);
alertHTML = "<!doctype html><body onload=\"alert(null);\"></body>";
alertCallbackData.expectedMessage = "null";
alertCallbackData.called = false;
ewk_view_html_string_load(webView(), alertHTML, 0, 0);
EXPECT_TRUE(waitUntilLoadFinished());
- EXPECT_EQ(alertCallbackData.called, true);
+ EXPECT_TRUE(alertCallbackData.called);
alertHTML = "<!doctype html><body onload=\"alert();\"></body>";
alertCallbackData.expectedMessage = "undefined";
alertCallbackData.called = false;
ewk_view_html_string_load(webView(), alertHTML, 0, 0);
EXPECT_TRUE(waitUntilLoadFinished());
- EXPECT_EQ(alertCallbackData.called, true);
+ EXPECT_TRUE(alertCallbackData.called);
ewkViewClass()->run_javascript_alert = 0;
alertCallbackData.called = false;
ewk_view_html_string_load(webView(), alertHTML, 0, 0);
EXPECT_TRUE(waitUntilLoadFinished());
- EXPECT_EQ(alertCallbackData.called, false);
+ EXPECT_FALSE(alertCallbackData.called);
}
static Eina_Bool checkConfirm(Ewk_View_Smart_Data*, const char* message)
@@ -479,16 +465,16 @@ TEST_F(EWK2UnitTestBase, ewk_view_run_javascript_confirm)
confirmCallbackData.called = false;
ewk_view_html_string_load(webView(), confirmHTML, 0, 0);
EXPECT_TRUE(waitUntilTitleChangedTo("true"));
- EXPECT_STREQ(ewk_view_title_get(webView()), "true");
- EXPECT_EQ(confirmCallbackData.called, true);
+ EXPECT_STREQ("true", ewk_view_title_get(webView()));
+ EXPECT_TRUE(confirmCallbackData.called);
confirmCallbackData.expectedMessage = "Confirm message";
confirmCallbackData.result = false;
confirmCallbackData.called = false;
ewk_view_html_string_load(webView(), confirmHTML, 0, 0);
EXPECT_TRUE(waitUntilTitleChangedTo("false"));
- EXPECT_STREQ(ewk_view_title_get(webView()), "false");
- EXPECT_EQ(confirmCallbackData.called, true);
+ EXPECT_STREQ("false", ewk_view_title_get(webView()));
+ EXPECT_TRUE(confirmCallbackData.called);
confirmHTML = "<!doctype html><body onload=\"document.title = confirm('');\"></body>";
confirmCallbackData.expectedMessage = "";
@@ -496,8 +482,8 @@ TEST_F(EWK2UnitTestBase, ewk_view_run_javascript_confirm)
confirmCallbackData.called = false;
ewk_view_html_string_load(webView(), confirmHTML, 0, 0);
EXPECT_TRUE(waitUntilTitleChangedTo("true"));
- EXPECT_STREQ(ewk_view_title_get(webView()), "true");
- EXPECT_EQ(confirmCallbackData.called, true);
+ EXPECT_STREQ("true", ewk_view_title_get(webView()));
+ EXPECT_TRUE(confirmCallbackData.called);
confirmHTML = "<!doctype html><body onload=\"document.title = confirm(null);\"></body>";
confirmCallbackData.expectedMessage = "null";
@@ -505,8 +491,8 @@ TEST_F(EWK2UnitTestBase, ewk_view_run_javascript_confirm)
confirmCallbackData.called = false;
ewk_view_html_string_load(webView(), confirmHTML, 0, 0);
EXPECT_TRUE(waitUntilTitleChangedTo("true"));
- EXPECT_STREQ(ewk_view_title_get(webView()), "true");
- EXPECT_EQ(confirmCallbackData.called, true);
+ EXPECT_STREQ("true", ewk_view_title_get(webView()));
+ EXPECT_TRUE(confirmCallbackData.called);
confirmHTML = "<!doctype html><body onload=\"document.title = confirm();\"></body>";
confirmCallbackData.expectedMessage = "undefined";
@@ -514,16 +500,16 @@ TEST_F(EWK2UnitTestBase, ewk_view_run_javascript_confirm)
confirmCallbackData.called = false;
ewk_view_html_string_load(webView(), confirmHTML, 0, 0);
EXPECT_TRUE(waitUntilTitleChangedTo("true"));
- EXPECT_STREQ(ewk_view_title_get(webView()), "true");
- EXPECT_EQ(confirmCallbackData.called, true);
+ EXPECT_STREQ("true", ewk_view_title_get(webView()));
+ EXPECT_TRUE(confirmCallbackData.called);
ewkViewClass()->run_javascript_confirm = 0;
confirmCallbackData.called = false;
ewk_view_html_string_load(webView(), confirmHTML, 0, 0);
EXPECT_TRUE(waitUntilTitleChangedTo("false"));
- EXPECT_STREQ(ewk_view_title_get(webView()), "false");
- EXPECT_EQ(confirmCallbackData.called, false);
+ EXPECT_STREQ("false", ewk_view_title_get(webView()));
+ EXPECT_FALSE(confirmCallbackData.called);
}
static const char* checkPrompt(Ewk_View_Smart_Data*, const char* message, const char* defaultValue)
@@ -552,8 +538,8 @@ TEST_F(EWK2UnitTestBase, ewk_view_run_javascript_prompt)
promptCallbackData.called = false;
ewk_view_html_string_load(webView(), promptHTML, 0, 0);
EXPECT_TRUE(waitUntilTitleChangedTo(promptResult));
- EXPECT_STREQ(ewk_view_title_get(webView()), promptResult);
- EXPECT_EQ(promptCallbackData.called, true);
+ EXPECT_STREQ(promptResult, ewk_view_title_get(webView()));
+ EXPECT_TRUE(promptCallbackData.called);
promptHTML = "<!doctype html><body onload=\"document.title = prompt('Prompt message', '');\"></body>";
promptCallbackData.expectedMessage = promptMessage;
@@ -562,8 +548,8 @@ TEST_F(EWK2UnitTestBase, ewk_view_run_javascript_prompt)
promptCallbackData.called = false;
ewk_view_html_string_load(webView(), promptHTML, 0, 0);
EXPECT_TRUE(waitUntilTitleChangedTo(promptResult));
- EXPECT_STREQ(ewk_view_title_get(webView()), promptResult);
- EXPECT_EQ(promptCallbackData.called, true);
+ EXPECT_STREQ(promptResult, ewk_view_title_get(webView()));
+ EXPECT_TRUE(promptCallbackData.called);
promptHTML = "<!doctype html><body onload=\"document.title = prompt('Prompt message');\"></body>";
promptCallbackData.expectedMessage = promptMessage;
@@ -572,8 +558,8 @@ TEST_F(EWK2UnitTestBase, ewk_view_run_javascript_prompt)
promptCallbackData.called = false;
ewk_view_html_string_load(webView(), promptHTML, 0, 0);
EXPECT_TRUE(waitUntilTitleChangedTo(promptResult));
- EXPECT_STREQ(ewk_view_title_get(webView()), promptResult);
- EXPECT_EQ(promptCallbackData.called, true);
+ EXPECT_STREQ(promptResult, ewk_view_title_get(webView()));
+ EXPECT_TRUE(promptCallbackData.called);
promptHTML = "<!doctype html><body onload=\"document.title = prompt('');\"></body>";
promptCallbackData.expectedMessage = "";
@@ -582,8 +568,8 @@ TEST_F(EWK2UnitTestBase, ewk_view_run_javascript_prompt)
promptCallbackData.called = false;
ewk_view_html_string_load(webView(), promptHTML, 0, 0);
EXPECT_TRUE(waitUntilTitleChangedTo(promptResult));
- EXPECT_STREQ(ewk_view_title_get(webView()), promptResult);
- EXPECT_EQ(promptCallbackData.called, true);
+ EXPECT_STREQ(promptResult, ewk_view_title_get(webView()));
+ EXPECT_TRUE(promptCallbackData.called);
promptHTML = "<!doctype html><body onload=\"document.title = prompt();\"></body>";
promptCallbackData.expectedMessage = "undefined";
@@ -592,8 +578,8 @@ TEST_F(EWK2UnitTestBase, ewk_view_run_javascript_prompt)
promptCallbackData.called = false;
ewk_view_html_string_load(webView(), promptHTML, 0, 0);
EXPECT_TRUE(waitUntilTitleChangedTo(promptResult));
- EXPECT_STREQ(ewk_view_title_get(webView()), promptResult);
- EXPECT_EQ(promptCallbackData.called, true);
+ EXPECT_STREQ(promptResult, ewk_view_title_get(webView()));
+ EXPECT_TRUE(promptCallbackData.called);
promptHTML = "<html><head><title>Default title</title></head>"
"<body onload=\"var promptResult = prompt('Prompt message');"
@@ -605,8 +591,8 @@ TEST_F(EWK2UnitTestBase, ewk_view_run_javascript_prompt)
promptCallbackData.called = false;
ewk_view_html_string_load(webView(), promptHTML, 0, 0);
EXPECT_TRUE(waitUntilTitleChangedTo(""));
- EXPECT_STREQ(ewk_view_title_get(webView()), "");
- EXPECT_EQ(promptCallbackData.called, true);
+ EXPECT_STREQ("", ewk_view_title_get(webView()));
+ EXPECT_TRUE(promptCallbackData.called);
promptCallbackData.expectedMessage = promptMessage;
promptCallbackData.expectedDefaultValue = "";
@@ -614,16 +600,16 @@ TEST_F(EWK2UnitTestBase, ewk_view_run_javascript_prompt)
promptCallbackData.called = false;
ewk_view_html_string_load(webView(), promptHTML, 0, 0);
EXPECT_TRUE(waitUntilTitleChangedTo("null"));
- EXPECT_STREQ(ewk_view_title_get(webView()), "null");
- EXPECT_EQ(promptCallbackData.called, true);
+ EXPECT_STREQ("null", ewk_view_title_get(webView()));
+ EXPECT_TRUE(promptCallbackData.called);
ewkViewClass()->run_javascript_prompt = 0;
promptCallbackData.called = false;
ewk_view_html_string_load(webView(), promptHTML, 0, 0);
EXPECT_TRUE(waitUntilTitleChangedTo("null"));
- EXPECT_STREQ(ewk_view_title_get(webView()), "null");
- EXPECT_EQ(promptCallbackData.called, false);
+ EXPECT_STREQ("null", ewk_view_title_get(webView()));
+ EXPECT_FALSE(promptCallbackData.called);
}
#if ENABLE(INPUT_TYPE_COLOR)
@@ -665,18 +651,18 @@ static Eina_Bool showColorPicker(Ewk_View_Smart_Data* smartData, int r, int g, i
if (isFirstRun) {
// 2. Check initial value from html file.
- EXPECT_EQ(r, initialRed);
- EXPECT_EQ(g, initialGreen);
- EXPECT_EQ(b, initialBlue);
- EXPECT_EQ(a, initialAlpha);
+ EXPECT_EQ(initialRed, r);
+ EXPECT_EQ(initialGreen, g);
+ EXPECT_EQ(initialBlue, b);
+ EXPECT_EQ(initialAlpha, a);
isFirstRun = false;
} else {
// 7. Input values should be same as changed color.
- EXPECT_EQ(r, changedRed);
- EXPECT_EQ(g, changedGreen);
- EXPECT_EQ(b, changedBlue);
- EXPECT_EQ(a, changedAlpha);
+ EXPECT_EQ(changedRed, r);
+ EXPECT_EQ(changedGreen, g);
+ EXPECT_EQ(changedBlue, b);
+ EXPECT_EQ(changedAlpha, a);
evas_object_smart_callback_call(smartData->self, "input,type,color,request", 0);
return true;
@@ -744,7 +730,7 @@ TEST_F(EWK2UnitTestBase, ewk_view_color_picker_color_set)
while (!handled)
ecore_main_loop_iterate();
- // 8. Click button to remove input element during color picker is shown.
+ // 8. Click button to remove input element durlng color picker is shown.
api->input_picker_color_dismiss = hideColorPickerByRemovingElement;
mouseClick(80, 20);
@@ -787,3 +773,168 @@ TEST_F(EWK2UnitTestBase, ewk_view_feed_touch_event)
eina_list_free(points);
}
+
+static void onTextFound(void* userData, Evas_Object*, void* eventInfo)
+{
+ int* result = static_cast<int*>(userData);
+ unsigned* matchCount = static_cast<unsigned*>(eventInfo);
+
+ *result = *matchCount;
+}
+
+TEST_F(EWK2UnitTestBase, ewk_view_text_find)
+{
+ const char textFindHTML[] =
+ "<!DOCTYPE html>"
+ "<body>"
+ "apple apple apple banana banana coconut"
+ "</body>";
+ ewk_view_html_string_load(webView(), textFindHTML, 0, 0);
+ waitUntilLoadFinished();
+
+ int matchCount = -1;
+ evas_object_smart_callback_add(webView(), "text,found", onTextFound, &matchCount);
+
+ ewk_view_text_find(webView(), "apple", EWK_FIND_OPTIONS_SHOW_OVERLAY, 100);
+ while (matchCount < 0)
+ ecore_main_loop_iterate();
+ EXPECT_EQ(3, matchCount);
+
+ matchCount = -1;
+ ewk_view_text_find(webView(), "mango", EWK_FIND_OPTIONS_SHOW_OVERLAY, 100);
+ while (matchCount < 0)
+ ecore_main_loop_iterate();
+ EXPECT_EQ(0, matchCount);
+
+ evas_object_smart_callback_del(webView(), "text,found", onTextFound);
+}
+
+TEST_F(EWK2UnitTestBase, ewk_view_text_matches_count)
+{
+ const char textFindHTML[] =
+ "<!DOCTYPE html>"
+ "<body>"
+ "apple Apple apple apple banana bananaApple banana coconut"
+ "</body>";
+ ewk_view_html_string_load(webView(), textFindHTML, 0, 0);
+ waitUntilLoadFinished();
+
+ int matchCount = -1;
+ evas_object_smart_callback_add(webView(), "text,found", onTextFound, &matchCount);
+
+ ewk_view_text_matches_count(webView(), "apple", EWK_FIND_OPTIONS_NONE, 100);
+ while (matchCount < 0)
+ ecore_main_loop_iterate();
+ EXPECT_EQ(3, matchCount);
+
+ matchCount = -1;
+ ewk_view_text_matches_count(webView(), "apple", EWK_FIND_OPTIONS_CASE_INSENSITIVE, 100);
+ while (matchCount < 0)
+ ecore_main_loop_iterate();
+ EXPECT_EQ(5, matchCount);
+
+ matchCount = -1;
+ ewk_view_text_matches_count(webView(), "Apple", EWK_FIND_OPTIONS_AT_WORD_STARTS, 100);
+ while (matchCount < 0)
+ ecore_main_loop_iterate();
+ EXPECT_EQ(1, matchCount);
+
+ matchCount = -1;
+ ewk_view_text_matches_count(webView(), "Apple", EWK_FIND_OPTIONS_TREAT_MEDIAL_CAPITAL_AS_WORD_START, 100);
+ while (matchCount < 0)
+ ecore_main_loop_iterate();
+ EXPECT_EQ(2, matchCount);
+
+ matchCount = -1;
+ ewk_view_text_matches_count(webView(), "mango", EWK_FIND_OPTIONS_NONE, 100);
+ while (matchCount < 0)
+ ecore_main_loop_iterate();
+ EXPECT_EQ(0, matchCount);
+
+ // If we have more matches than allowed, -1 is returned as a matched count.
+ matchCount = -2;
+ ewk_view_text_matches_count(webView(), "apple", EWK_FIND_OPTIONS_NONE, 2);
+ while (matchCount < -1)
+ ecore_main_loop_iterate();
+ EXPECT_EQ(-1, matchCount);
+
+ evas_object_smart_callback_del(webView(), "text,found", onTextFound);
+}
+
+TEST_F(EWK2UnitTestBase, ewk_view_touch_events_enabled)
+{
+ ASSERT_FALSE(ewk_view_touch_events_enabled_get(webView()));
+
+ ASSERT_TRUE(ewk_view_touch_events_enabled_set(webView(), true));
+ ASSERT_TRUE(ewk_view_touch_events_enabled_get(webView()));
+
+ ASSERT_TRUE(ewk_view_touch_events_enabled_set(webView(), 2));
+ ASSERT_TRUE(ewk_view_touch_events_enabled_get(webView()));
+
+ const char* touchHTML =
+ "<!doctype html><body><div style=\"width:100px; height:100px;\" "
+ "ontouchstart=\"document.title='touchstarted' + event.touches.length;\" "
+ "ontouchmove=\"document.title='touchmoved' + event.touches.length;\" "
+ "ontouchend=\"document.title='touchended' + event.touches.length;\">"
+ "</div></body>";
+
+ ewk_view_html_string_load(webView(), touchHTML, "file:///", 0);
+ ASSERT_TRUE(waitUntilLoadFinished());
+
+ mouseDown(10, 10);
+ ASSERT_TRUE(waitUntilTitleChangedTo("touchstarted1"));
+
+ multiDown(1, 30, 30);
+ ASSERT_TRUE(waitUntilTitleChangedTo("touchstarted2"));
+
+ multiMove(1, 40, 40);
+ ASSERT_TRUE(waitUntilTitleChangedTo("touchmoved2"));
+
+ multiUp(1, 40, 40);
+ ASSERT_TRUE(waitUntilTitleChangedTo("touchended1"));
+
+ mouseMove(20, 20);
+ ASSERT_TRUE(waitUntilTitleChangedTo("touchmoved1"));
+
+ mouseUp(20, 20);
+ ASSERT_TRUE(waitUntilTitleChangedTo("touchended0"));
+
+ ASSERT_TRUE(ewk_view_touch_events_enabled_set(webView(), false));
+ ASSERT_FALSE(ewk_view_touch_events_enabled_get(webView()));
+}
+
+Eina_Bool windowMoveResizeTimedOut(void* data)
+{
+ *static_cast<bool*>(data) = true;
+}
+
+TEST_F(EWK2UnitTestBase, window_move_resize)
+{
+ int x, y, width, height;
+ Ecore_Evas* ee = ecore_evas_ecore_evas_get(evas_object_evas_get(webView()));
+ ecore_evas_geometry_get(ee, 0, 0, &width, &height);
+
+ EXPECT_EQ(800, width);
+ EXPECT_EQ(600, height);
+
+ ewk_view_url_set(webView(), environment->urlForResource("window_move_resize.html").data());
+ ASSERT_TRUE(waitUntilTitleChangedTo("Moved and resized"));
+
+ // Check that the window has been moved and resized.
+ ecore_evas_request_geometry_get(ee, &x, &y, &width, &height);
+ EXPECT_EQ(150, x);
+ EXPECT_EQ(200, y);
+ EXPECT_EQ(200, width);
+ EXPECT_EQ(100, height);
+}
+
+TEST_F(EWK2UnitTestBase, ewk_view_inspector)
+{
+#if ENABLE(INSPECTOR)
+ ASSERT_TRUE(ewk_view_inspector_show(webView()));
+ ASSERT_TRUE(ewk_view_inspector_close(webView()));
+#else
+ ASSERT_FALSE(ewk_view_inspector_show(webView()));
+ ASSERT_FALSE(ewk_view_inspector_close(webView()));
+#endif
+}
diff --git a/Source/WebKit2/UIProcess/API/gtk/WebKitDownloadClient.cpp b/Source/WebKit2/UIProcess/API/gtk/WebKitDownloadClient.cpp
index 6e72496ef..79c1c3e2a 100644
--- a/Source/WebKit2/UIProcess/API/gtk/WebKitDownloadClient.cpp
+++ b/Source/WebKit2/UIProcess/API/gtk/WebKitDownloadClient.cpp
@@ -34,13 +34,13 @@ using namespace WebKit;
static void didStart(WKContextRef, WKDownloadRef wkDownload, const void* clientInfo)
{
- GRefPtr<WebKitDownload> download = webkitWebContextGetOrCreateDownload(wkDownload);
+ GRefPtr<WebKitDownload> download = webkitWebContextGetOrCreateDownload(toImpl(wkDownload));
webkitWebContextDownloadStarted(WEBKIT_WEB_CONTEXT(clientInfo), download.get());
}
static void didReceiveResponse(WKContextRef, WKDownloadRef wkDownload, WKURLResponseRef wkResponse, const void* clientInfo)
{
- GRefPtr<WebKitDownload> download = webkitWebContextGetOrCreateDownload(wkDownload);
+ GRefPtr<WebKitDownload> download = webkitWebContextGetOrCreateDownload(toImpl(wkDownload));
if (webkitDownloadIsCancelled(download.get()))
return;
@@ -50,13 +50,13 @@ static void didReceiveResponse(WKContextRef, WKDownloadRef wkDownload, WKURLResp
static void didReceiveData(WKContextRef, WKDownloadRef wkDownload, uint64_t length, const void* clientInfo)
{
- GRefPtr<WebKitDownload> download = webkitWebContextGetOrCreateDownload(wkDownload);
+ GRefPtr<WebKitDownload> download = webkitWebContextGetOrCreateDownload(toImpl(wkDownload));
webkitDownloadNotifyProgress(download.get(), length);
}
static WKStringRef decideDestinationWithSuggestedFilename(WKContextRef, WKDownloadRef wkDownload, WKStringRef filename, bool* allowOverwrite, const void* clientInfo)
{
- GRefPtr<WebKitDownload> download = webkitWebContextGetOrCreateDownload(wkDownload);
+ GRefPtr<WebKitDownload> download = webkitWebContextGetOrCreateDownload(toImpl(wkDownload));
CString destinationURI = webkitDownloadDecideDestinationWithSuggestedFilename(download.get(),
toImpl(filename)->string().utf8());
return WKStringCreateWithUTF8CString(destinationURI.data());
@@ -64,33 +64,33 @@ static WKStringRef decideDestinationWithSuggestedFilename(WKContextRef, WKDownlo
static void didCreateDestination(WKContextRef, WKDownloadRef wkDownload, WKStringRef path, const void* clientInfo)
{
- GRefPtr<WebKitDownload> download = webkitWebContextGetOrCreateDownload(wkDownload);
+ GRefPtr<WebKitDownload> download = webkitWebContextGetOrCreateDownload(toImpl(wkDownload));
webkitDownloadDestinationCreated(download.get(), toImpl(path)->string().utf8());
}
static void didFail(WKContextRef, WKDownloadRef wkDownload, WKErrorRef error, const void *clientInfo)
{
- GRefPtr<WebKitDownload> download = webkitWebContextGetOrCreateDownload(wkDownload);
+ GRefPtr<WebKitDownload> download = webkitWebContextGetOrCreateDownload(toImpl(wkDownload));
if (webkitDownloadIsCancelled(download.get())) {
// Cancellation takes precedence over other errors.
webkitDownloadCancelled(download.get());
} else
webkitDownloadFailed(download.get(), toImpl(error)->platformError());
- webkitWebContextRemoveDownload(wkDownload);
+ webkitWebContextRemoveDownload(toImpl(wkDownload));
}
static void didCancel(WKContextRef, WKDownloadRef wkDownload, const void *clientInfo)
{
- GRefPtr<WebKitDownload> download = webkitWebContextGetOrCreateDownload(wkDownload);
+ GRefPtr<WebKitDownload> download = webkitWebContextGetOrCreateDownload(toImpl(wkDownload));
webkitDownloadCancelled(download.get());
- webkitWebContextRemoveDownload(wkDownload);
+ webkitWebContextRemoveDownload(toImpl(wkDownload));
}
static void didFinish(WKContextRef wkContext, WKDownloadRef wkDownload, const void *clientInfo)
{
- GRefPtr<WebKitDownload> download = webkitWebContextGetOrCreateDownload(wkDownload);
+ GRefPtr<WebKitDownload> download = webkitWebContextGetOrCreateDownload(toImpl(wkDownload));
webkitDownloadFinished(download.get());
- webkitWebContextRemoveDownload(wkDownload);
+ webkitWebContextRemoveDownload(toImpl(wkDownload));
}
void attachDownloadClientToContext(WebKitWebContext* webContext)
@@ -110,6 +110,6 @@ void attachDownloadClientToContext(WebKitWebContext* webContext)
didCancel,
0, // processDidCrash
};
- WKContextSetDownloadClient(webkitWebContextGetWKContext(webContext), &wkDownloadClient);
+ WKContextSetDownloadClient(toAPI(webkitWebContextGetContext(webContext)), &wkDownloadClient);
}
diff --git a/Source/WebKit2/UIProcess/API/gtk/WebKitFaviconDatabase.cpp b/Source/WebKit2/UIProcess/API/gtk/WebKitFaviconDatabase.cpp
new file mode 100644
index 000000000..cb016ab09
--- /dev/null
+++ b/Source/WebKit2/UIProcess/API/gtk/WebKitFaviconDatabase.cpp
@@ -0,0 +1,391 @@
+/*
+ * Copyright (C) 2012 Igalia S.L.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2,1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
+
+#include "config.h"
+#include "WebKitFaviconDatabase.h"
+
+#include "WebKitFaviconDatabasePrivate.h"
+#include "WebKitPrivate.h"
+#include <WebCore/FileSystem.h>
+#include <WebCore/Image.h>
+#include <WebCore/IntSize.h>
+#include <WebCore/RefPtrCairo.h>
+#include <glib/gi18n-lib.h>
+#include <wtf/MainThread.h>
+#include <wtf/gobject/GOwnPtr.h>
+#include <wtf/gobject/GRefPtr.h>
+#include <wtf/text/CString.h>
+
+using namespace WebKit;
+
+enum {
+ ICON_READY,
+
+ LAST_SIGNAL
+};
+
+static guint signals[LAST_SIGNAL] = { 0, };
+
+typedef Vector<GRefPtr<GSimpleAsyncResult> > PendingIconRequestVector;
+typedef HashMap<String, PendingIconRequestVector*> PendingIconRequestMap;
+
+struct _WebKitFaviconDatabasePrivate {
+ RefPtr<WebIconDatabase> iconDatabase;
+ PendingIconRequestMap pendingIconRequests;
+};
+
+G_DEFINE_TYPE(WebKitFaviconDatabase, webkit_favicon_database, G_TYPE_OBJECT)
+
+static void webkit_favicon_database_init(WebKitFaviconDatabase* manager)
+{
+ WebKitFaviconDatabasePrivate* priv = G_TYPE_INSTANCE_GET_PRIVATE(manager, WEBKIT_TYPE_FAVICON_DATABASE, WebKitFaviconDatabasePrivate);
+ manager->priv = priv;
+ new (priv) WebKitFaviconDatabasePrivate();
+}
+
+static void webkitFaviconDatabaseDispose(GObject* object)
+{
+ WebKitFaviconDatabase* database = WEBKIT_FAVICON_DATABASE(object);
+
+ WebKitFaviconDatabasePrivate* priv = database->priv;
+ if (priv->iconDatabase->isOpen())
+ priv->iconDatabase->close();
+
+ G_OBJECT_CLASS(webkit_favicon_database_parent_class)->dispose(object);
+}
+
+static void webkitFaviconDatabaseFinalize(GObject* object)
+{
+ WebKitFaviconDatabase* database = WEBKIT_FAVICON_DATABASE(object);
+ database->priv->~WebKitFaviconDatabasePrivate();
+ G_OBJECT_CLASS(webkit_favicon_database_parent_class)->finalize(object);
+}
+
+static void webkit_favicon_database_class_init(WebKitFaviconDatabaseClass* faviconDatabaseClass)
+{
+ GObjectClass* gObjectClass = G_OBJECT_CLASS(faviconDatabaseClass);
+ gObjectClass->dispose = webkitFaviconDatabaseDispose;
+ gObjectClass->finalize = webkitFaviconDatabaseFinalize;
+
+ /**
+ * WebKitFaviconDatabase::favicon-ready:
+ * @database: the object on which the signal is emitted
+ * @page_uri: the URI of the Web page containing the icon.
+ *
+ * This signal gets emitted when the favicon of @page_uri is
+ * ready. This means that the favicon's data is ready to be used
+ * by the application, either because it has been loaded from the
+ * network, if it's the first time it gets retrieved, or because
+ * it has been already imported from the icon database.
+ */
+ signals[ICON_READY] =
+ g_signal_new("favicon-ready",
+ G_TYPE_FROM_CLASS(faviconDatabaseClass),
+ G_SIGNAL_RUN_LAST,
+ 0, 0, 0,
+ g_cclosure_marshal_VOID__STRING,
+ G_TYPE_NONE, 1,
+ G_TYPE_STRING);
+
+ g_type_class_add_private(faviconDatabaseClass, sizeof(WebKitFaviconDatabasePrivate));
+}
+
+struct GetFaviconSurfaceAsyncData {
+ GRefPtr<WebKitFaviconDatabase> faviconDatabase;
+ String pageURL;
+ RefPtr<cairo_surface_t> icon;
+ GOwnPtr<GError> error;
+ GRefPtr<GCancellable> cancellable;
+};
+WEBKIT_DEFINE_ASYNC_DATA_STRUCT(GetFaviconSurfaceAsyncData)
+
+static cairo_surface_t* getIconSurfaceSynchronously(WebKitFaviconDatabase* database, const String& pageURL, GError** error)
+{
+ ASSERT(isMainThread());
+
+ database->priv->iconDatabase->retainIconForPageURL(pageURL);
+
+ // The exact size we pass is irrelevant to the iconDatabase code.
+ // We must pass something greater than 0x0 to get an icon.
+ WebCore::Image* iconImage = database->priv->iconDatabase->imageForPageURL(pageURL, WebCore::IntSize(1, 1));
+ if (!iconImage) {
+ g_set_error(error, WEBKIT_FAVICON_DATABASE_ERROR, WEBKIT_FAVICON_DATABASE_ERROR_FAVICON_UNKNOWN, _("Unknown favicon for page %s"), pageURL.utf8().data());
+ database->priv->iconDatabase->releaseIconForPageURL(pageURL);
+ return 0;
+ }
+
+ WebCore::NativeImagePtr icon = iconImage->nativeImageForCurrentFrame();
+ if (!icon) {
+ g_set_error(error, WEBKIT_FAVICON_DATABASE_ERROR, WEBKIT_FAVICON_DATABASE_ERROR_FAVICON_NOT_FOUND, _("Page %s does not have a favicon"), pageURL.utf8().data());
+ database->priv->iconDatabase->releaseIconForPageURL(pageURL);
+ return 0;
+ }
+
+ return icon->surface();
+}
+
+static void deletePendingIconRequests(WebKitFaviconDatabase* database, PendingIconRequestVector* requests, const String& pageURL)
+{
+ database->priv->pendingIconRequests.remove(pageURL);
+ delete requests;
+}
+
+static void processPendingIconsForPageURL(WebKitFaviconDatabase* database, const String& pageURL)
+{
+ PendingIconRequestVector* pendingIconRequests = database->priv->pendingIconRequests.get(pageURL);
+ if (!pendingIconRequests)
+ return;
+
+ GOwnPtr<GError> error;
+ RefPtr<cairo_surface_t> icon = getIconSurfaceSynchronously(database, pageURL, &error.outPtr());
+
+ for (size_t i = 0; i < pendingIconRequests->size(); ++i) {
+ GSimpleAsyncResult* result = pendingIconRequests->at(i).get();
+ GetFaviconSurfaceAsyncData* data = static_cast<GetFaviconSurfaceAsyncData*>(g_simple_async_result_get_op_res_gpointer(result));
+ if (!g_cancellable_is_cancelled(data->cancellable.get())) {
+ if (error)
+ g_propagate_error(&data->error.outPtr(), error.release());
+ else
+ data->icon = icon;
+ }
+
+ g_simple_async_result_complete(result);
+ }
+ deletePendingIconRequests(database, pendingIconRequests, pageURL);
+}
+
+static void iconDataReadyForPageURLCallback(WKIconDatabaseRef wkIconDatabase, WKURLRef wkPageURL, const void* clientInfo)
+{
+ ASSERT(isMainThread());
+
+ WebKitFaviconDatabase* database = WEBKIT_FAVICON_DATABASE(clientInfo);
+ String pageURL = toImpl(wkPageURL)->string();
+
+ processPendingIconsForPageURL(database, pageURL);
+ g_signal_emit(database, signals[ICON_READY], 0, pageURL.utf8().data());
+}
+
+WebKitFaviconDatabase* webkitFaviconDatabaseCreate(WebIconDatabase* iconDatabase)
+{
+ WebKitFaviconDatabase* faviconDatabase = WEBKIT_FAVICON_DATABASE(g_object_new(WEBKIT_TYPE_FAVICON_DATABASE, NULL));
+ faviconDatabase->priv->iconDatabase = iconDatabase;
+
+ WKIconDatabaseClient wkIconDatabaseClient = {
+ kWKIconDatabaseClientCurrentVersion,
+ faviconDatabase, // clientInfo
+ 0, // didChangeIconForPageURLCallback
+ 0, // didRemoveAllIconsCallback
+ iconDataReadyForPageURLCallback,
+ };
+ WKIconDatabaseSetIconDatabaseClient(toAPI(iconDatabase), &wkIconDatabaseClient);
+ return faviconDatabase;
+}
+
+cairo_surface_t* webkitFaviconDatabaseGetFavicon(WebKitFaviconDatabase* database, const CString& pageURL)
+{
+ ASSERT(WEBKIT_IS_FAVICON_DATABASE(database));
+ ASSERT(!pageURL.isNull());
+
+ cairo_surface_t* iconSurface = getIconSurfaceSynchronously(database, String::fromUTF8(pageURL.data()), 0);
+ if (!iconSurface)
+ return 0;
+
+ return cairo_surface_reference(iconSurface);
+}
+
+static PendingIconRequestVector* getOrCreatePendingIconRequests(WebKitFaviconDatabase* database, const String& pageURL)
+{
+ PendingIconRequestVector* icons = database->priv->pendingIconRequests.get(pageURL);
+ if (!icons) {
+ icons = new PendingIconRequestVector;
+ database->priv->pendingIconRequests.set(pageURL, icons);
+ }
+
+ return icons;
+}
+
+static void setErrorForAsyncResult(GSimpleAsyncResult* result, WebKitFaviconDatabaseError error, const String& pageURL = String())
+{
+ ASSERT(result);
+
+ switch (error) {
+ case WEBKIT_FAVICON_DATABASE_ERROR_NOT_INITIALIZED:
+ g_simple_async_result_set_error(result, WEBKIT_FAVICON_DATABASE_ERROR, error, _("Favicons database not initialized yet"));
+ break;
+
+ case WEBKIT_FAVICON_DATABASE_ERROR_FAVICON_NOT_FOUND:
+ g_simple_async_result_set_error(result, WEBKIT_FAVICON_DATABASE_ERROR, error, _("Page %s does not have a favicon"), pageURL.utf8().data());
+ break;
+
+ case WEBKIT_FAVICON_DATABASE_ERROR_FAVICON_UNKNOWN:
+ g_simple_async_result_set_error(result, WEBKIT_FAVICON_DATABASE_ERROR, error, _("Unknown favicon for page %s"), pageURL.utf8().data());
+ break;
+
+ default:
+ ASSERT_NOT_REACHED();
+ }
+}
+
+GQuark webkit_favicon_database_error_quark(void)
+{
+ return g_quark_from_static_string("WebKitFaviconDatabaseError");
+}
+
+/**
+ * webkit_favicon_database_get_favicon:
+ * @database: a #WebKitFaviconDatabase
+ * @page_uri: URI of the page for which we want to retrieve the favicon
+ * @cancellable: (allow-none): A #GCancellable or %NULL.
+ * @callback: (scope async): A #GAsyncReadyCallback to call when the request is
+ * satisfied or %NULL if you don't care about the result.
+ * @user_data: (closure): The data to pass to @callback.
+ *
+ * Asynchronously obtains a #cairo_surface_t of the favicon for the
+ * given page URI. It returns the cached icon if it's in the database
+ * asynchronously waiting for the icon to be read from the database.
+ *
+ * This is an asynchronous method. When the operation is finished, callback will
+ * be invoked. You can then call webkit_favicon_database_get_favicon_finish()
+ * to get the result of the operation.
+ */
+void webkit_favicon_database_get_favicon(WebKitFaviconDatabase* database, const gchar* pageURI, GCancellable* cancellable, GAsyncReadyCallback callback, gpointer userData)
+{
+ g_return_if_fail(WEBKIT_IS_FAVICON_DATABASE(database));
+ g_return_if_fail(pageURI);
+
+ GRefPtr<GSimpleAsyncResult> result = adoptGRef(g_simple_async_result_new(G_OBJECT(database), callback, userData, reinterpret_cast<gpointer>(webkit_favicon_database_get_favicon)));
+ g_simple_async_result_set_check_cancellable(result.get(), cancellable);
+
+ GetFaviconSurfaceAsyncData* data = createGetFaviconSurfaceAsyncData();
+ g_simple_async_result_set_op_res_gpointer(result.get(), data, reinterpret_cast<GDestroyNotify>(destroyGetFaviconSurfaceAsyncData));
+ data->faviconDatabase = database;
+ data->pageURL = String::fromUTF8(pageURI);
+ data->cancellable = cancellable;
+
+ WebKitFaviconDatabasePrivate* priv = database->priv;
+ WebIconDatabase* iconDatabaseImpl = priv->iconDatabase.get();
+ if (!iconDatabaseImpl->isOpen()) {
+ setErrorForAsyncResult(result.get(), WEBKIT_FAVICON_DATABASE_ERROR_NOT_INITIALIZED);
+ g_simple_async_result_complete_in_idle(result.get());
+ return;
+ }
+
+ if (data->pageURL.isEmpty() || data->pageURL.startsWith("about:")) {
+ setErrorForAsyncResult(result.get(), WEBKIT_FAVICON_DATABASE_ERROR_FAVICON_NOT_FOUND, data->pageURL);
+ g_simple_async_result_complete_in_idle(result.get());
+ return;
+ }
+
+ // We ask for the icon directly. If we don't get the icon data now,
+ // we'll be notified later (even if the database is still importing icons).
+ GOwnPtr<GError> error;
+ data->icon = getIconSurfaceSynchronously(database, data->pageURL, &error.outPtr());
+ if (data->icon) {
+ g_simple_async_result_complete_in_idle(result.get());
+ return;
+ }
+
+ if (g_error_matches(error.get(), WEBKIT_FAVICON_DATABASE_ERROR, WEBKIT_FAVICON_DATABASE_ERROR_FAVICON_NOT_FOUND)) {
+ g_simple_async_result_take_error(result.get(), error.release());
+ g_simple_async_result_complete_in_idle(result.get());
+ return;
+ }
+
+ // If there's not a valid icon, but there's an iconURL registered,
+ // or it's still not registered but the import process hasn't
+ // finished yet, we need to wait for iconDataReadyForPage to be
+ // called before making and informed decision.
+ String iconURLForPageURL;
+ iconDatabaseImpl->synchronousIconURLForPageURL(data->pageURL, iconURLForPageURL);
+ if (!iconURLForPageURL.isEmpty() || !iconDatabaseImpl->isUrlImportCompleted()) {
+ PendingIconRequestVector* icons = getOrCreatePendingIconRequests(database, data->pageURL);
+ ASSERT(icons);
+ icons->append(result);
+ return;
+ }
+
+ setErrorForAsyncResult(result.get(), WEBKIT_FAVICON_DATABASE_ERROR_FAVICON_UNKNOWN, data->pageURL);
+ g_simple_async_result_complete_in_idle(result.get());
+}
+
+/**
+ * webkit_favicon_database_get_favicon_finish:
+ * @database: a #WebKitFaviconDatabase
+ * @result: A #GAsyncResult obtained from the #GAsyncReadyCallback passed to webkit_favicon_database_get_favicon()
+ * @error: (allow-none): Return location for error or %NULL.
+ *
+ * Finishes an operation started with webkit_favicon_database_get_favicon().
+ *
+ * Returns: (transfer full): a new reference to a #cairo_surface_t, or
+ * %NULL in case of error.
+ */
+cairo_surface_t* webkit_favicon_database_get_favicon_finish(WebKitFaviconDatabase* database, GAsyncResult* result, GError** error)
+{
+ GSimpleAsyncResult* simpleResult = G_SIMPLE_ASYNC_RESULT(result);
+ g_warn_if_fail(g_simple_async_result_get_source_tag(simpleResult) == webkit_favicon_database_get_favicon);
+
+ if (g_simple_async_result_propagate_error(simpleResult, error))
+ return 0;
+
+ GetFaviconSurfaceAsyncData* data = static_cast<GetFaviconSurfaceAsyncData*>(g_simple_async_result_get_op_res_gpointer(simpleResult));
+ ASSERT(data);
+ if (data->error) {
+ g_propagate_error(error, data->error.release());
+ return 0;
+ }
+
+ return cairo_surface_reference(data->icon.get());
+}
+
+/**
+ * webkit_favicon_database_get_favicon_uri:
+ * @database: a #WebKitFaviconDatabase
+ * @page_uri: URI of the page containing the icon
+ *
+ * Obtains the URI of the favicon for the given @page_uri.
+ *
+ * Returns: a newly allocated URI for the favicon, or %NULL if the
+ * database doesn't have a favicon for @page_uri.
+ */
+gchar* webkit_favicon_database_get_favicon_uri(WebKitFaviconDatabase* database, const gchar* pageURL)
+{
+ g_return_val_if_fail(WEBKIT_IS_FAVICON_DATABASE(database), 0);
+ g_return_val_if_fail(pageURL, 0);
+ ASSERT(isMainThread());
+
+ String iconURLForPageURL;
+ database->priv->iconDatabase->synchronousIconURLForPageURL(String::fromUTF8(pageURL), iconURLForPageURL);
+ if (iconURLForPageURL.isEmpty())
+ return 0;
+
+ return g_strdup(iconURLForPageURL.utf8().data());
+}
+
+/**
+ * webkit_favicon_database_clear:
+ * @database: a #WebKitFaviconDatabase
+ *
+ * Clears all icons from the database.
+ */
+void webkit_favicon_database_clear(WebKitFaviconDatabase* database)
+{
+ g_return_if_fail(WEBKIT_IS_FAVICON_DATABASE(database));
+
+ database->priv->iconDatabase->removeAllIcons();
+}
diff --git a/Source/WebKit2/UIProcess/API/gtk/WebKitFaviconDatabase.h b/Source/WebKit2/UIProcess/API/gtk/WebKitFaviconDatabase.h
new file mode 100644
index 000000000..811a8e6bb
--- /dev/null
+++ b/Source/WebKit2/UIProcess/API/gtk/WebKitFaviconDatabase.h
@@ -0,0 +1,94 @@
+/*
+ * Copyright (C) 2012 Igalia S.L.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2,1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
+
+#if !defined(__WEBKIT2_H_INSIDE__) && !defined(WEBKIT2_COMPILATION)
+#error "Only <webkit2/webkit2.h> can be included directly."
+#endif
+
+#ifndef WebKitFaviconDatabase_h
+#define WebKitFaviconDatabase_h
+
+#include <cairo.h>
+#include <gio/gio.h>
+#include <glib-object.h>
+#include <webkit2/WebKitDefines.h>
+
+G_BEGIN_DECLS
+
+#define WEBKIT_TYPE_FAVICON_DATABASE (webkit_favicon_database_get_type())
+#define WEBKIT_FAVICON_DATABASE(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj), WEBKIT_TYPE_FAVICON_DATABASE, WebKitFaviconDatabase))
+#define WEBKIT_IS_FAVICON_DATABASE(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj), WEBKIT_TYPE_FAVICON_DATABASE))
+#define WEBKIT_FAVICON_DATABASE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass), WEBKIT_TYPE_FAVICON_DATABASE, WebKitFaviconDatabaseClass))
+#define WEBKIT_IS_FAVICON_DATABASE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE((klass), WEBKIT_TYPE_FAVICON_DATABASE))
+#define WEBKIT_FAVICON_DATABASE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS((obj), WEBKIT_TYPE_FAVICON_DATABASE, WebKitFaviconDatabaseClass))
+#define WEBKIT_FAVICON_DATABASE_ERROR (webkit_favicon_database_error_quark())
+
+typedef struct _WebKitFaviconDatabase WebKitFaviconDatabase;
+typedef struct _WebKitFaviconDatabaseClass WebKitFaviconDatabaseClass;
+typedef struct _WebKitFaviconDatabasePrivate WebKitFaviconDatabasePrivate;
+
+struct _WebKitFaviconDatabase {
+ GObject parent;
+
+ WebKitFaviconDatabasePrivate *priv;
+};
+
+struct _WebKitFaviconDatabaseClass {
+ GObjectClass parent_class;
+};
+
+/**
+ * WebKitFaviconDatabaseError:
+ * @WEBKIT_FAVICON_DATABASE_ERROR_NOT_INITIALIZED: The #WebKitFaviconDatabase has not been initialized yet
+ * @WEBKIT_FAVICON_DATABASE_ERROR_FAVICON_NOT_FOUND: There is not an icon available for the requested URL
+ * @WEBKIT_FAVICON_DATABASE_ERROR_FAVICON_UNKNOWN: There might be an icon for the requested URL, but its data is unknown at the moment
+ *
+ * Enum values used to denote the various errors related to the #WebKitFaviconDatabase.
+ **/
+typedef enum {
+ WEBKIT_FAVICON_DATABASE_ERROR_NOT_INITIALIZED,
+ WEBKIT_FAVICON_DATABASE_ERROR_FAVICON_NOT_FOUND,
+ WEBKIT_FAVICON_DATABASE_ERROR_FAVICON_UNKNOWN
+} WebKitFaviconDatabaseError;
+
+WEBKIT_API GQuark
+webkit_favicon_database_error_quark (void);
+
+WEBKIT_API GType
+webkit_favicon_database_get_type (void);
+
+WEBKIT_API void
+webkit_favicon_database_get_favicon (WebKitFaviconDatabase *database,
+ const gchar *page_uri,
+ GCancellable *cancellable,
+ GAsyncReadyCallback callback,
+ gpointer user_data);
+WEBKIT_API cairo_surface_t *
+webkit_favicon_database_get_favicon_finish (WebKitFaviconDatabase *database,
+ GAsyncResult *result,
+ GError **error);
+WEBKIT_API gchar *
+webkit_favicon_database_get_favicon_uri (WebKitFaviconDatabase *database,
+ const gchar *page_uri);
+WEBKIT_API void
+webkit_favicon_database_clear (WebKitFaviconDatabase *database);
+
+G_END_DECLS
+
+#endif
diff --git a/Source/WebKit2/UIProcess/API/gtk/WebKitFaviconDatabasePrivate.h b/Source/WebKit2/UIProcess/API/gtk/WebKitFaviconDatabasePrivate.h
new file mode 100644
index 000000000..6c50949fb
--- /dev/null
+++ b/Source/WebKit2/UIProcess/API/gtk/WebKitFaviconDatabasePrivate.h
@@ -0,0 +1,32 @@
+/*
+ * Copyright (C) 2012 Igalia S.L.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
+
+#ifndef WebKitFaviconDatabasePrivate_h
+#define WebKitFaviconDatabasePrivate_h
+
+#include "WebIconDatabase.h"
+#include "WebKitFaviconDatabase.h"
+#include <wtf/text/CString.h>
+
+using namespace WebKit;
+
+WebKitFaviconDatabase* webkitFaviconDatabaseCreate(WebIconDatabase*);
+cairo_surface_t* webkitFaviconDatabaseGetFavicon(WebKitFaviconDatabase*, const CString&);
+
+#endif // WebKitFaviconDatabasePrivate_h
diff --git a/Source/WebKit2/UIProcess/API/gtk/WebKitJavascriptResult.cpp b/Source/WebKit2/UIProcess/API/gtk/WebKitJavascriptResult.cpp
index 84ad04d03..2a1b8d5a3 100644
--- a/Source/WebKit2/UIProcess/API/gtk/WebKitJavascriptResult.cpp
+++ b/Source/WebKit2/UIProcess/API/gtk/WebKitJavascriptResult.cpp
@@ -21,15 +21,16 @@
#include "WebKitJavascriptResult.h"
#include "WebKitJavascriptResultPrivate.h"
+#include "WebSerializedScriptValue.h"
#include <wtf/gobject/GRefPtr.h>
struct _WebKitJavascriptResult {
- _WebKitJavascriptResult(WebKitWebView* view, WKSerializedScriptValueRef wkSerializedScriptValue)
+ _WebKitJavascriptResult(WebKitWebView* view, WebSerializedScriptValue* serializedScriptValue)
: webView(view)
, referenceCount(1)
- {
- value = WKSerializedScriptValueDeserialize(wkSerializedScriptValue, webkit_web_view_get_javascript_global_context(view), 0);
- }
+ {
+ value = serializedScriptValue->deserialize(webkit_web_view_get_javascript_global_context(view), 0);
+ }
GRefPtr<WebKitWebView> webView;
JSValueRef value;
@@ -39,10 +40,10 @@ struct _WebKitJavascriptResult {
G_DEFINE_BOXED_TYPE(WebKitJavascriptResult, webkit_javascript_result, webkit_javascript_result_ref, webkit_javascript_result_unref)
-WebKitJavascriptResult* webkitJavascriptResultCreate(WebKitWebView* webView, WKSerializedScriptValueRef wkSerializedScriptValue)
+WebKitJavascriptResult* webkitJavascriptResultCreate(WebKitWebView* webView, WebSerializedScriptValue* serializedScriptValue)
{
WebKitJavascriptResult* result = g_slice_new(WebKitJavascriptResult);
- new (result) WebKitJavascriptResult(webView, wkSerializedScriptValue);
+ new (result) WebKitJavascriptResult(webView, serializedScriptValue);
return result;
}
diff --git a/Source/WebKit2/UIProcess/API/gtk/WebKitJavascriptResultPrivate.h b/Source/WebKit2/UIProcess/API/gtk/WebKitJavascriptResultPrivate.h
index 840ead058..ac7578857 100644
--- a/Source/WebKit2/UIProcess/API/gtk/WebKitJavascriptResultPrivate.h
+++ b/Source/WebKit2/UIProcess/API/gtk/WebKitJavascriptResultPrivate.h
@@ -24,6 +24,8 @@
#include "WebKitPrivate.h"
#include "WebKitWebView.h"
-WebKitJavascriptResult* webkitJavascriptResultCreate(WebKitWebView*, WKSerializedScriptValueRef);
+using namespace WebKit;
+
+WebKitJavascriptResult* webkitJavascriptResultCreate(WebKitWebView*, WebSerializedScriptValue*);
#endif // WebKitJavascriptResultPrivate_h
diff --git a/Source/WebKit2/UIProcess/API/gtk/WebKitLoaderClient.cpp b/Source/WebKit2/UIProcess/API/gtk/WebKitLoaderClient.cpp
index 6c3bf920a..457c40141 100644
--- a/Source/WebKit2/UIProcess/API/gtk/WebKitLoaderClient.cpp
+++ b/Source/WebKit2/UIProcess/API/gtk/WebKitLoaderClient.cpp
@@ -152,6 +152,7 @@ void attachLoaderClientToView(WebKitWebView* webView)
0, // pluginDidFail
0, // didReceiveIntentForFrame
0, // registerIntentServiceForFrame
+ 0, // didLayout
};
WKPageRef wkPage = toAPI(webkitWebViewBaseGetPage(WEBKIT_WEB_VIEW_BASE(webView)));
WKPageSetPageLoaderClient(wkPage, &wkLoaderClient);
diff --git a/Source/WebKit2/UIProcess/API/gtk/WebKitPrivate.h b/Source/WebKit2/UIProcess/API/gtk/WebKitPrivate.h
index 8fede827f..9ceafecb6 100644
--- a/Source/WebKit2/UIProcess/API/gtk/WebKitPrivate.h
+++ b/Source/WebKit2/UIProcess/API/gtk/WebKitPrivate.h
@@ -34,6 +34,7 @@
#include <WebKit2/WKGeolocationManager.h>
#include <WebKit2/WKGeolocationPermissionRequest.h>
#include <WebKit2/WKGeolocationPosition.h>
+#include <WebKit2/WKIconDatabase.h>
#include <WebKit2/WKInspector.h>
#include <WebKit2/WKInspectorClientGtk.h>
#include <WebKit2/WKRetainPtr.h>
diff --git a/Source/WebKit2/UIProcess/API/gtk/WebKitRequestManagerClient.cpp b/Source/WebKit2/UIProcess/API/gtk/WebKitRequestManagerClient.cpp
index 8ea09f200..babafe651 100644
--- a/Source/WebKit2/UIProcess/API/gtk/WebKitRequestManagerClient.cpp
+++ b/Source/WebKit2/UIProcess/API/gtk/WebKitRequestManagerClient.cpp
@@ -26,10 +26,10 @@
using namespace WebKit;
-static void didReceiveURIRequest(WKSoupRequestManagerRef soupRequestManagerRef, WKURLRef urlRef, uint64_t requestID, const void* clientInfo)
+static void didReceiveURIRequest(WKSoupRequestManagerRef soupRequestManagerRef, WKURLRef urlRef, WKPageRef initiatingPageRef, uint64_t requestID, const void* clientInfo)
{
WebKitWebContext* webContext = WEBKIT_WEB_CONTEXT(clientInfo);
- GRefPtr<WebKitURISchemeRequest> request = adoptGRef(webkitURISchemeRequestCreate(webContext, soupRequestManagerRef, urlRef, requestID));
+ GRefPtr<WebKitURISchemeRequest> request = adoptGRef(webkitURISchemeRequestCreate(webContext, soupRequestManagerRef, urlRef, initiatingPageRef, requestID));
webkitWebContextReceivedURIRequest(webContext, request.get());
}
@@ -46,6 +46,6 @@ void attachRequestManagerClientToContext(WebKitWebContext* webContext)
didReceiveURIRequest,
didFailToLoadURIRequest
};
- WKSoupRequestManagerSetClient(webkitWebContextGetRequestManager(webContext), &wkRequestManagerClient);
+ WKSoupRequestManagerSetClient(toAPI(webkitWebContextGetRequestManager(webContext)), &wkRequestManagerClient);
}
diff --git a/Source/WebKit2/UIProcess/API/gtk/WebKitSecurityManager.cpp b/Source/WebKit2/UIProcess/API/gtk/WebKitSecurityManager.cpp
index 53b46f875..d170fcf3f 100644
--- a/Source/WebKit2/UIProcess/API/gtk/WebKitSecurityManager.cpp
+++ b/Source/WebKit2/UIProcess/API/gtk/WebKitSecurityManager.cpp
@@ -74,7 +74,7 @@ WebKitSecurityManager* webkitSecurityManagerCreate(WebKitWebContext* webContext)
static void registerSecurityPolicyForURIScheme(WebKitSecurityManager* manager, const char* scheme, SecurityPolicy policy)
{
String urlScheme = String::fromUTF8(scheme);
- WebContext* webContext = toImpl(webkitWebContextGetWKContext(manager->priv->webContext));
+ WebContext* webContext = webkitWebContextGetContext(manager->priv->webContext);
// We keep the WebCore::SchemeRegistry of the UI process in sync with the
// web process one, so that we can return the SecurityPolicy for
diff --git a/Source/WebKit2/UIProcess/API/gtk/WebKitSettings.cpp b/Source/WebKit2/UIProcess/API/gtk/WebKitSettings.cpp
index c0a64162a..17d4c881b 100644
--- a/Source/WebKit2/UIProcess/API/gtk/WebKitSettings.cpp
+++ b/Source/WebKit2/UIProcess/API/gtk/WebKitSettings.cpp
@@ -34,6 +34,7 @@
#include "WebKitPrivate.h"
#include "WebKitSettingsPrivate.h"
#include "WebPageProxy.h"
+#include "WebPreferences.h"
#include <WebCore/UserAgentGtk.h>
#include <glib/gi18n-lib.h>
#include <wtf/text/CString.h>
@@ -117,7 +118,8 @@ enum {
PROP_DRAW_COMPOSITING_INDICATORS,
PROP_ENABLE_SITE_SPECIFIC_QUIRKS,
PROP_ENABLE_PAGE_CACHE,
- PROP_USER_AGENT
+ PROP_USER_AGENT,
+ PROP_ENABLE_SMOOTH_SCROLLING
};
static void webKitSettingsSetProperty(GObject* object, guint propId, const GValue* value, GParamSpec* paramSpec)
@@ -251,6 +253,9 @@ static void webKitSettingsSetProperty(GObject* object, guint propId, const GValu
case PROP_USER_AGENT:
webkit_settings_set_user_agent(settings, g_value_get_string(value));
break;
+ case PROP_ENABLE_SMOOTH_SCROLLING:
+ webkit_settings_set_enable_smooth_scrolling(settings, g_value_get_boolean(value));
+ break;
default:
G_OBJECT_WARN_INVALID_PROPERTY_ID(object, propId, paramSpec);
break;
@@ -388,6 +393,9 @@ static void webKitSettingsGetProperty(GObject* object, guint propId, GValue* val
case PROP_USER_AGENT:
g_value_set_string(value, webkit_settings_get_user_agent(settings));
break;
+ case PROP_ENABLE_SMOOTH_SCROLLING:
+ g_value_set_boolean(value, webkit_settings_get_enable_smooth_scrolling(settings));
+ break;
default:
G_OBJECT_WARN_INVALID_PROPERTY_ID(object, propId, paramSpec);
break;
@@ -1039,6 +1047,19 @@ static void webkit_settings_class_init(WebKitSettingsClass* klass)
0, // A null string forces the standard user agent.
readWriteConstructParamFlags));
+ /**
+ * WebKitSettings:enable-smooth-scrolling:
+ *
+ * Enable or disable smooth scrolling.
+ */
+ g_object_class_install_property(gObjectClass,
+ PROP_ENABLE_SMOOTH_SCROLLING,
+ g_param_spec_boolean("enable-smooth-scrolling",
+ _("Enable smooth scrolling"),
+ _("Whether to enable smooth scrolling"),
+ FALSE,
+ readWriteConstructParamFlags));
+
g_type_class_add_private(klass, sizeof(WebKitSettingsPrivate));
}
@@ -2644,3 +2665,38 @@ void webkit_settings_set_user_agent_with_application_details(WebKitSettings* set
CString newUserAgent = WebCore::standardUserAgent(String::fromUTF8(applicationName), String::fromUTF8(applicationVersion)).utf8();
webkit_settings_set_user_agent(settings, newUserAgent.data());
}
+
+/**
+ * webkit_settings_get_enable_smooth_scrolling:
+ * @settings: a #WebKitSettings
+ *
+ * Get the #WebKitSettings:enable-smooth-scrolling property.
+ *
+ * Returns: %TRUE if smooth scrolling is enabled or %FALSE otherwise.
+ */
+gboolean webkit_settings_get_enable_smooth_scrolling(WebKitSettings* settings)
+{
+ g_return_val_if_fail(WEBKIT_IS_SETTINGS(settings), FALSE);
+
+ return WebKit::toImpl(settings->priv->preferences.get())->scrollAnimatorEnabled();
+}
+
+/**
+ * webkit_settings_set_enable_smooth_scrolling:
+ * @settings: a #WebKitSettings
+ * @enabled: Value to be set
+ *
+ * Set the #WebKitSettings:enable-smooth-scrolling property.
+ */
+void webkit_settings_set_enable_smooth_scrolling(WebKitSettings* settings, gboolean enabled)
+{
+ g_return_if_fail(WEBKIT_IS_SETTINGS(settings));
+
+ WebKitSettingsPrivate* priv = settings->priv;
+ bool currentValue = WebKit::toImpl(priv->preferences.get())->scrollAnimatorEnabled();
+ if (currentValue == enabled)
+ return;
+
+ WebKit::toImpl(priv->preferences.get())->setScrollAnimatorEnabled(enabled);
+ g_object_notify(G_OBJECT(settings), "enable-smooth-scrolling");
+}
diff --git a/Source/WebKit2/UIProcess/API/gtk/WebKitSettings.h b/Source/WebKit2/UIProcess/API/gtk/WebKitSettings.h
index b35a23f06..a9fe86a30 100644
--- a/Source/WebKit2/UIProcess/API/gtk/WebKitSettings.h
+++ b/Source/WebKit2/UIProcess/API/gtk/WebKitSettings.h
@@ -373,6 +373,13 @@ webkit_settings_set_user_agent_with_application_details (WebKitSettings *
const gchar *application_name,
const gchar *application_version);
+WEBKIT_API gboolean
+webkit_settings_get_enable_smooth_scrolling (WebKitSettings *settings);
+
+WEBKIT_API void
+webkit_settings_set_enable_smooth_scrolling (WebKitSettings *settings,
+ gboolean enabled);
+
G_END_DECLS
#endif /* WebKitSettings_h */
diff --git a/Source/WebKit2/UIProcess/API/gtk/WebKitURISchemeRequest.cpp b/Source/WebKit2/UIProcess/API/gtk/WebKitURISchemeRequest.cpp
index e62c1faf5..e69831f29 100644
--- a/Source/WebKit2/UIProcess/API/gtk/WebKitURISchemeRequest.cpp
+++ b/Source/WebKit2/UIProcess/API/gtk/WebKitURISchemeRequest.cpp
@@ -22,6 +22,8 @@
#include "WebKitURISchemeRequestPrivate.h"
#include "WebKitWebContextPrivate.h"
+#include "WebKitWebView.h"
+#include "WebPageProxy.h"
#include <WebCore/GOwnPtrSoup.h>
#include <libsoup/soup.h>
#include <wtf/gobject/GRefPtr.h>
@@ -36,6 +38,7 @@ G_DEFINE_TYPE(WebKitURISchemeRequest, webkit_uri_scheme_request, G_TYPE_OBJECT)
struct _WebKitURISchemeRequestPrivate {
WebKitWebContext* webContext;
WKRetainPtr<WKSoupRequestManagerRef> wkRequestManager;
+ WKRetainPtr<WKPageRef> wkInitiatingPage;
uint64_t requestID;
CString uri;
GOwnPtr<SoupURI> soupURI;
@@ -68,12 +71,13 @@ static void webkit_uri_scheme_request_class_init(WebKitURISchemeRequestClass* re
g_type_class_add_private(requestClass, sizeof(WebKitURISchemeRequestPrivate));
}
-WebKitURISchemeRequest* webkitURISchemeRequestCreate(WebKitWebContext* webContext, WKSoupRequestManagerRef wkRequestManager, WKURLRef wkURL, uint64_t requestID)
+WebKitURISchemeRequest* webkitURISchemeRequestCreate(WebKitWebContext* webContext, WKSoupRequestManagerRef wkRequestManager, WKURLRef wkURL, WKPageRef wkInitiatingPage, uint64_t requestID)
{
WebKitURISchemeRequest* request = WEBKIT_URI_SCHEME_REQUEST(g_object_new(WEBKIT_TYPE_URI_SCHEME_REQUEST, NULL));
request->priv->webContext = webContext;
request->priv->wkRequestManager = wkRequestManager;
request->priv->uri = toImpl(wkURL)->string().utf8();
+ request->priv->wkInitiatingPage = wkInitiatingPage;
request->priv->requestID = requestID;
return request;
}
@@ -138,6 +142,21 @@ const char* webkit_uri_scheme_request_get_path(WebKitURISchemeRequest* request)
return request->priv->soupURI->path;
}
+/**
+ * webkit_uri_scheme_request_get_web_view:
+ * @request: a #WebKitURISchemeRequest
+ *
+ * Get the #WebKitWebView that initiated the request.
+ *
+ * Returns: (transfer none): the #WebKitWebView that initiated @request.
+ */
+WebKitWebView* webkit_uri_scheme_request_get_web_view(WebKitURISchemeRequest* request)
+{
+ g_return_val_if_fail(WEBKIT_IS_URI_SCHEME_REQUEST(request), 0);
+
+ return WEBKIT_WEB_VIEW(toImpl(request->priv->wkInitiatingPage.get())->viewWidget());
+}
+
static void webkitURISchemeRequestReadCallback(GInputStream* inputStream, GAsyncResult* result, WebKitURISchemeRequest* schemeRequest)
{
GRefPtr<WebKitURISchemeRequest> request = adoptGRef(schemeRequest);
diff --git a/Source/WebKit2/UIProcess/API/gtk/WebKitURISchemeRequest.h b/Source/WebKit2/UIProcess/API/gtk/WebKitURISchemeRequest.h
index 34f214489..9ead50709 100644
--- a/Source/WebKit2/UIProcess/API/gtk/WebKitURISchemeRequest.h
+++ b/Source/WebKit2/UIProcess/API/gtk/WebKitURISchemeRequest.h
@@ -51,22 +51,25 @@ struct _WebKitURISchemeRequestClass {
};
WEBKIT_API GType
-webkit_uri_scheme_request_get_type (void);
+webkit_uri_scheme_request_get_type (void);
WEBKIT_API const gchar *
-webkit_uri_scheme_request_get_scheme (WebKitURISchemeRequest *request);
+webkit_uri_scheme_request_get_scheme (WebKitURISchemeRequest *request);
WEBKIT_API const gchar *
-webkit_uri_scheme_request_get_uri (WebKitURISchemeRequest *request);
+webkit_uri_scheme_request_get_uri (WebKitURISchemeRequest *request);
WEBKIT_API const gchar *
-webkit_uri_scheme_request_get_path (WebKitURISchemeRequest *request);
+webkit_uri_scheme_request_get_path (WebKitURISchemeRequest *request);
+
+WEBKIT_API WebKitWebView *
+webkit_uri_scheme_request_get_web_view (WebKitURISchemeRequest *request);
WEBKIT_API void
-webkit_uri_scheme_request_finish (WebKitURISchemeRequest *request,
- GInputStream *stream,
- gint64 stream_length,
- const gchar *mime_type);
+webkit_uri_scheme_request_finish (WebKitURISchemeRequest *request,
+ GInputStream *stream,
+ gint64 stream_length,
+ const gchar *mime_type);
G_END_DECLS
diff --git a/Source/WebKit2/UIProcess/API/gtk/WebKitURISchemeRequestPrivate.h b/Source/WebKit2/UIProcess/API/gtk/WebKitURISchemeRequestPrivate.h
index 149813def..b7c011f66 100644
--- a/Source/WebKit2/UIProcess/API/gtk/WebKitURISchemeRequestPrivate.h
+++ b/Source/WebKit2/UIProcess/API/gtk/WebKitURISchemeRequestPrivate.h
@@ -25,7 +25,7 @@
#include "WebKitWebContext.h"
#include <WebKit2/WKSoupRequestManager.h>
-WebKitURISchemeRequest* webkitURISchemeRequestCreate(WebKitWebContext*, WKSoupRequestManagerRef, WKURLRef, uint64_t requestID);
+WebKitURISchemeRequest* webkitURISchemeRequestCreate(WebKitWebContext*, WKSoupRequestManagerRef, WKURLRef, WKPageRef, uint64_t requestID);
uint64_t webkitURISchemeRequestGetID(WebKitURISchemeRequest*);
void webkitURISchemeRequestCancel(WebKitURISchemeRequest*);
diff --git a/Source/WebKit2/UIProcess/API/gtk/WebKitWebContext.cpp b/Source/WebKit2/UIProcess/API/gtk/WebKitWebContext.cpp
index 5b2c26697..dab18a87d 100644
--- a/Source/WebKit2/UIProcess/API/gtk/WebKitWebContext.cpp
+++ b/Source/WebKit2/UIProcess/API/gtk/WebKitWebContext.cpp
@@ -20,10 +20,10 @@
#include "config.h"
#include "WebKitWebContext.h"
-#include "WebContext.h"
#include "WebKitCookieManagerPrivate.h"
#include "WebKitDownloadClient.h"
#include "WebKitDownloadPrivate.h"
+#include "WebKitFaviconDatabasePrivate.h"
#include "WebKitGeolocationProvider.h"
#include "WebKitPluginPrivate.h"
#include "WebKitPrivate.h"
@@ -32,7 +32,9 @@
#include "WebKitTextChecker.h"
#include "WebKitURISchemeRequestPrivate.h"
#include "WebKitWebContextPrivate.h"
+#include "WebResourceCacheManagerProxy.h"
#include <WebCore/FileSystem.h>
+#include <WebCore/IconDatabase.h>
#include <WebCore/Language.h>
#include <wtf/HashMap.h>
#include <wtf/OwnPtr.h>
@@ -42,8 +44,6 @@
#include <wtf/gobject/GRefPtr.h>
#include <wtf/text/CString.h>
-using namespace WebKit;
-
enum {
DOWNLOAD_STARTED,
@@ -93,11 +93,12 @@ typedef HashMap<String, RefPtr<WebKitURISchemeHandler> > URISchemeHandlerMap;
typedef HashMap<uint64_t, GRefPtr<WebKitURISchemeRequest> > URISchemeRequestMap;
struct _WebKitWebContextPrivate {
- WKRetainPtr<WKContextRef> context;
+ RefPtr<WebContext> context;
GRefPtr<WebKitCookieManager> cookieManager;
+ GRefPtr<WebKitFaviconDatabase> faviconDatabase;
GRefPtr<WebKitSecurityManager> securityManager;
- WKRetainPtr<WKSoupRequestManagerRef> requestManager;
+ RefPtr<WebSoupRequestManagerProxy> requestManager;
URISchemeHandlerMap uriSchemeHandlers;
URISchemeRequestMap uriSchemeRequests;
#if ENABLE(GEOLOCATION)
@@ -106,6 +107,7 @@ struct _WebKitWebContextPrivate {
#if ENABLE(SPELLCHECK)
OwnPtr<WebKitTextChecker> textChecker;
#endif
+ CString faviconDatabaseDirectory;
};
static guint signals[LAST_SIGNAL] = { 0, };
@@ -152,17 +154,20 @@ static void webkit_web_context_class_init(WebKitWebContextClass* webContextClass
static gpointer createDefaultWebContext(gpointer)
{
static GRefPtr<WebKitWebContext> webContext = adoptGRef(WEBKIT_WEB_CONTEXT(g_object_new(WEBKIT_TYPE_WEB_CONTEXT, NULL)));
- webContext->priv->context = WKContextCreate();
- webContext->priv->requestManager = WKContextGetSoupRequestManager(webContext->priv->context.get());
- WKContextSetCacheModel(webContext->priv->context.get(), kWKCacheModelPrimaryWebBrowser);
+ WebKitWebContextPrivate* priv = webContext->priv;
+
+ priv->context = WebContext::create(String());
+ priv->requestManager = webContext->priv->context->soupRequestManagerProxy();
+ priv->context->setCacheModel(CacheModelPrimaryWebBrowser);
+
attachDownloadClientToContext(webContext.get());
attachRequestManagerClientToContext(webContext.get());
+
#if ENABLE(GEOLOCATION)
- WKGeolocationManagerRef wkGeolocationManager = WKContextGetGeolocationManager(webContext->priv->context.get());
- webContext->priv->geolocationProvider = WebKitGeolocationProvider::create(wkGeolocationManager);
+ priv->geolocationProvider = WebKitGeolocationProvider::create(toAPI(priv->context->geolocationManagerProxy()));
#endif
#if ENABLE(SPELLCHECK)
- webContext->priv->textChecker = WebKitTextChecker::create();
+ priv->textChecker = WebKitTextChecker::create();
#endif
return webContext.get();
}
@@ -206,26 +211,26 @@ WebKitWebContext* webkit_web_context_get_default(void)
*/
void webkit_web_context_set_cache_model(WebKitWebContext* context, WebKitCacheModel model)
{
- WKCacheModel cacheModel;
+ CacheModel cacheModel;
g_return_if_fail(WEBKIT_IS_WEB_CONTEXT(context));
switch (model) {
case WEBKIT_CACHE_MODEL_DOCUMENT_VIEWER:
- cacheModel = kWKCacheModelDocumentViewer;
+ cacheModel = CacheModelDocumentViewer;
break;
case WEBKIT_CACHE_MODEL_WEB_BROWSER:
- cacheModel = kWKCacheModelPrimaryWebBrowser;
+ cacheModel = CacheModelPrimaryWebBrowser;
break;
case WEBKIT_CACHE_MODEL_DOCUMENT_BROWSER:
- cacheModel = kWKCacheModelDocumentBrowser;
+ cacheModel = CacheModelDocumentBrowser;
break;
default:
g_assert_not_reached();
}
- WebKitWebContextPrivate* priv = context->priv;
- if (cacheModel != WKContextGetCacheModel(priv->context.get()))
- WKContextSetCacheModel(priv->context.get(), cacheModel);
+
+ if (cacheModel != context->priv->context->cacheModel())
+ context->priv->context->setCacheModel(cacheModel);
}
/**
@@ -242,13 +247,12 @@ WebKitCacheModel webkit_web_context_get_cache_model(WebKitWebContext* context)
{
g_return_val_if_fail(WEBKIT_IS_WEB_CONTEXT(context), WEBKIT_CACHE_MODEL_WEB_BROWSER);
- WebKitWebContextPrivate* priv = context->priv;
- switch (WKContextGetCacheModel(priv->context.get())) {
- case kWKCacheModelDocumentViewer:
+ switch (context->priv->context->cacheModel()) {
+ case CacheModelDocumentViewer:
return WEBKIT_CACHE_MODEL_DOCUMENT_VIEWER;
- case kWKCacheModelPrimaryWebBrowser:
+ case CacheModelPrimaryWebBrowser:
return WEBKIT_CACHE_MODEL_WEB_BROWSER;
- case kWKCacheModelDocumentBrowser:
+ case CacheModelDocumentBrowser:
return WEBKIT_CACHE_MODEL_DOCUMENT_BROWSER;
default:
g_assert_not_reached();
@@ -268,11 +272,10 @@ void webkit_web_context_clear_cache(WebKitWebContext* context)
{
g_return_if_fail(WEBKIT_IS_WEB_CONTEXT(context));
- WebKitWebContextPrivate* priv = context->priv;
- WKResourceCacheManagerClearCacheForAllOrigins(WKContextGetResourceCacheManager(priv->context.get()), WKResourceCachesToClearAll);
+ context->priv->context->resourceCacheManagerProxy()->clearCacheForAllOrigins(AllResourceCaches);
}
-typedef HashMap<WKDownloadRef, GRefPtr<WebKitDownload> > DownloadsMap;
+typedef HashMap<DownloadProxy*, GRefPtr<WebKitDownload> > DownloadsMap;
static DownloadsMap& downloadsMap()
{
@@ -295,12 +298,9 @@ WebKitDownload* webkit_web_context_download_uri(WebKitWebContext* context, const
g_return_val_if_fail(WEBKIT_IS_WEB_CONTEXT(context), 0);
g_return_val_if_fail(uri, 0);
- WebKitWebContextPrivate* priv = context->priv;
- WKRetainPtr<WKURLRef> wkURL(AdoptWK, WKURLCreateWithUTF8CString(uri));
- WKRetainPtr<WKURLRequestRef> wkRequest(AdoptWK, WKURLRequestCreateWithWKURL(wkURL.get()));
- WKRetainPtr<WKDownloadRef> wkDownload = WKContextDownloadURLRequest(priv->context.get(), wkRequest.get());
- WebKitDownload* download = webkitDownloadCreate(wkDownload.get());
- downloadsMap().set(wkDownload.get(), download);
+ DownloadProxy* downloadProxy = context->priv->context->download(0, WebCore::ResourceRequest(String::fromUTF8(uri)));
+ WebKitDownload* download = webkitDownloadCreate(toAPI(downloadProxy));
+ downloadsMap().set(downloadProxy, download);
return download;
}
@@ -318,11 +318,107 @@ WebKitCookieManager* webkit_web_context_get_cookie_manager(WebKitWebContext* con
WebKitWebContextPrivate* priv = context->priv;
if (!priv->cookieManager)
- priv->cookieManager = adoptGRef(webkitCookieManagerCreate(WKContextGetCookieManager(priv->context.get())));
+ priv->cookieManager = adoptGRef(webkitCookieManagerCreate(toAPI(priv->context->cookieManagerProxy())));
return priv->cookieManager.get();
}
+static void ensureFaviconDatabase(WebKitWebContext* context)
+{
+ WebKitWebContextPrivate* priv = context->priv;
+ if (priv->faviconDatabase)
+ return;
+
+ priv->faviconDatabase = adoptGRef(webkitFaviconDatabaseCreate(priv->context->iconDatabase()));
+}
+
+/**
+ * webkit_web_context_set_favicon_database_directory:
+ * @context: a #WebKitWebContext
+ * @path: (allow-none): an absolute path to the icon database
+ * directory or %NULL to use the defaults
+ *
+ * Set the directory path to be used to store the favicons database
+ * for @context on disk. Passing %NULL as @path means using the
+ * default directory for the platform (see g_get_user_data_dir()).
+ *
+ * Calling this method also means enabling the favicons database for
+ * its use from the applications, so that's why it's expected to be
+ * called only once. Further calls for the same instance of
+ * #WebKitWebContext won't cause any effect.
+ */
+void webkit_web_context_set_favicon_database_directory(WebKitWebContext* context, const gchar* path)
+{
+ g_return_if_fail(WEBKIT_IS_WEB_CONTEXT(context));
+
+ WebKitWebContextPrivate* priv = context->priv;
+ WebIconDatabase* iconDatabase = priv->context->iconDatabase();
+ if (iconDatabase->isOpen())
+ return;
+
+ ensureFaviconDatabase(context);
+
+ // Use default if 0 is passed as parameter.
+ String directoryPath = WebCore::filenameToString(path);
+ priv->faviconDatabaseDirectory = directoryPath.isEmpty()
+ ? priv->context->iconDatabasePath().utf8()
+ : directoryPath.utf8();
+
+ // Build the full path to the icon database file on disk.
+ GOwnPtr<gchar> faviconDatabasePath(g_build_filename(priv->faviconDatabaseDirectory.data(),
+ WebCore::IconDatabase::defaultDatabaseFilename().utf8().data(),
+ NULL));
+
+ // Setting the path will cause the icon database to be opened.
+ priv->context->setIconDatabasePath(WebCore::filenameToString(faviconDatabasePath.get()));
+}
+
+/**
+ * webkit_web_context_get_favicon_database_directory:
+ * @context: a #WebKitWebContext
+ *
+ * Get the directory path being used to store the favicons database
+ * for @context, or %NULL if
+ * webkit_web_context_set_favicon_database_directory() hasn't been
+ * called yet.
+ *
+ * This function will always return the same path after having called
+ * webkit_web_context_set_favicon_database_directory() for the first
+ * time.
+ *
+ * Returns: (transfer none): the path of the directory of the favicons
+ * database associated with @context, or %NULL.
+ */
+const gchar* webkit_web_context_get_favicon_database_directory(WebKitWebContext *context)
+{
+ g_return_val_if_fail(WEBKIT_IS_WEB_CONTEXT(context), 0);
+
+ WebKitWebContextPrivate* priv = context->priv;
+ if (priv->faviconDatabaseDirectory.isNull())
+ return 0;
+
+ return priv->faviconDatabaseDirectory.data();
+}
+
+/**
+ * webkit_web_context_get_favicon_database:
+ * @context: a #WebKitWebContext
+ *
+ * Get the #WebKitFaviconDatabase associated with @context.
+ *
+ * To initialize the database you need to call
+ * webkit_web_context_set_favicon_database_directory().
+ *
+ * Returns: (transfer none): the #WebKitFaviconDatabase of @context.
+ */
+WebKitFaviconDatabase* webkit_web_context_get_favicon_database(WebKitWebContext* context)
+{
+ g_return_val_if_fail(WEBKIT_IS_WEB_CONTEXT(context), 0);
+
+ ensureFaviconDatabase(context);
+ return context->priv->faviconDatabase.get();
+}
+
/**
* webkit_web_context_get_security_manager:
* @context: a #WebKitWebContext
@@ -354,7 +450,7 @@ void webkit_web_context_set_additional_plugins_directory(WebKitWebContext* conte
g_return_if_fail(WEBKIT_IS_WEB_CONTEXT(context));
g_return_if_fail(directory);
- toImpl(context->priv->context.get())->setAdditionalPluginsDirectory(WebCore::filenameToString(directory));
+ context->priv->context->setAdditionalPluginsDirectory(WebCore::filenameToString(directory));
}
struct GetPluginsAsyncData {
@@ -365,7 +461,7 @@ WEBKIT_DEFINE_ASYNC_DATA_STRUCT(GetPluginsAsyncData)
static void webkitWebContextGetPluginThread(GSimpleAsyncResult* result, GObject* object, GCancellable*)
{
GetPluginsAsyncData* data = static_cast<GetPluginsAsyncData*>(g_simple_async_result_get_op_res_gpointer(result));
- data->plugins = toImpl(WEBKIT_WEB_CONTEXT(object)->priv->context.get())->pluginInfoStore().plugins();
+ data->plugins = WEBKIT_WEB_CONTEXT(object)->priv->context->pluginInfoStore().plugins();
}
/**
@@ -472,8 +568,7 @@ void webkit_web_context_register_uri_scheme(WebKitWebContext* context, const cha
RefPtr<WebKitURISchemeHandler> handler = adoptRef(new WebKitURISchemeHandler(callback, userData, destroyNotify));
context->priv->uriSchemeHandlers.set(String::fromUTF8(scheme), handler.get());
- WKRetainPtr<WKStringRef> wkScheme(AdoptWK, WKStringCreateWithUTF8CString(scheme));
- WKSoupRequestManagerRegisterURIScheme(context->priv->requestManager.get(), wkScheme.get());
+ context->priv->requestManager->registerURIScheme(String::fromUTF8(scheme));
}
/**
@@ -587,20 +682,20 @@ void webkit_web_context_set_preferred_languages(WebKitWebContext* context, const
WebCore::languageDidChange();
}
-WebKitDownload* webkitWebContextGetOrCreateDownload(WKDownloadRef wkDownload)
+WebKitDownload* webkitWebContextGetOrCreateDownload(DownloadProxy* downloadProxy)
{
- GRefPtr<WebKitDownload> download = downloadsMap().get(wkDownload);
+ GRefPtr<WebKitDownload> download = downloadsMap().get(downloadProxy);
if (download)
return download.get();
- download = adoptGRef(webkitDownloadCreate(wkDownload));
- downloadsMap().set(wkDownload, download.get());
+ download = adoptGRef(webkitDownloadCreate(toAPI(downloadProxy)));
+ downloadsMap().set(downloadProxy, download.get());
return download.get();
}
-void webkitWebContextRemoveDownload(WKDownloadRef wkDownload)
+void webkitWebContextRemoveDownload(DownloadProxy* downloadProxy)
{
- downloadsMap().remove(wkDownload);
+ downloadsMap().remove(downloadProxy);
}
void webkitWebContextDownloadStarted(WebKitWebContext* context, WebKitDownload* download)
@@ -608,14 +703,14 @@ void webkitWebContextDownloadStarted(WebKitWebContext* context, WebKitDownload*
g_signal_emit(context, signals[DOWNLOAD_STARTED], 0, download);
}
-WKContextRef webkitWebContextGetWKContext(WebKitWebContext* context)
+WebContext* webkitWebContextGetContext(WebKitWebContext* context)
{
g_assert(WEBKIT_IS_WEB_CONTEXT(context));
return context->priv->context.get();
}
-WKSoupRequestManagerRef webkitWebContextGetRequestManager(WebKitWebContext* context)
+WebSoupRequestManagerProxy* webkitWebContextGetRequestManager(WebKitWebContext* context)
{
return context->priv->requestManager.get();
}
diff --git a/Source/WebKit2/UIProcess/API/gtk/WebKitWebContext.h b/Source/WebKit2/UIProcess/API/gtk/WebKitWebContext.h
index f77086f4d..ae79bec87 100644
--- a/Source/WebKit2/UIProcess/API/gtk/WebKitWebContext.h
+++ b/Source/WebKit2/UIProcess/API/gtk/WebKitWebContext.h
@@ -28,6 +28,7 @@
#include <webkit2/WebKitCookieManager.h>
#include <webkit2/WebKitDefines.h>
#include <webkit2/WebKitDownload.h>
+#include <webkit2/WebKitFaviconDatabase.h>
#include <webkit2/WebKitSecurityManager.h>
#include <webkit2/WebKitURISchemeRequest.h>
@@ -114,6 +115,15 @@ webkit_web_context_download_uri (WebKitWebContext
WEBKIT_API WebKitCookieManager *
webkit_web_context_get_cookie_manager (WebKitWebContext *context);
+WEBKIT_API WebKitFaviconDatabase *
+webkit_web_context_get_favicon_database (WebKitWebContext *context);
+
+WEBKIT_API void
+webkit_web_context_set_favicon_database_directory (WebKitWebContext *context,
+ const gchar *path);
+WEBKIT_API const gchar *
+webkit_web_context_get_favicon_database_directory (WebKitWebContext *context);
+
WEBKIT_API WebKitSecurityManager *
webkit_web_context_get_security_manager (WebKitWebContext *context);
diff --git a/Source/WebKit2/UIProcess/API/gtk/WebKitWebContextPrivate.h b/Source/WebKit2/UIProcess/API/gtk/WebKitWebContextPrivate.h
index 9e5536b3a..67be48d5c 100644
--- a/Source/WebKit2/UIProcess/API/gtk/WebKitWebContextPrivate.h
+++ b/Source/WebKit2/UIProcess/API/gtk/WebKitWebContextPrivate.h
@@ -26,15 +26,20 @@
#ifndef WebKitWebContextPrivate_h
#define WebKitWebContextPrivate_h
+#include "DownloadProxy.h"
+#include "WebContext.h"
#include "WebKitPrivate.h"
#include "WebKitURISchemeRequest.h"
#include "WebKitWebContext.h"
+#include "WebSoupRequestManagerProxy.h"
-WKContextRef webkitWebContextGetWKContext(WebKitWebContext*);
-WebKitDownload* webkitWebContextGetOrCreateDownload(WKDownloadRef);
-void webkitWebContextRemoveDownload(WKDownloadRef);
+using namespace WebKit;
+
+WebContext* webkitWebContextGetContext(WebKitWebContext*);
+WebKitDownload* webkitWebContextGetOrCreateDownload(DownloadProxy*);
+void webkitWebContextRemoveDownload(DownloadProxy*);
void webkitWebContextDownloadStarted(WebKitWebContext*, WebKitDownload*);
-WKSoupRequestManagerRef webkitWebContextGetRequestManager(WebKitWebContext*);
+WebSoupRequestManagerProxy* webkitWebContextGetRequestManager(WebKitWebContext*);
void webkitWebContextReceivedURIRequest(WebKitWebContext*, WebKitURISchemeRequest*);
void webkitWebContextDidFailToLoadURIRequest(WebKitWebContext*, uint64_t requestID);
void webkitWebContextDidFinishURIRequest(WebKitWebContext*, uint64_t requestID);
diff --git a/Source/WebKit2/UIProcess/API/gtk/WebKitWebView.cpp b/Source/WebKit2/UIProcess/API/gtk/WebKitWebView.cpp
index 301be899c..236a4f304 100644
--- a/Source/WebKit2/UIProcess/API/gtk/WebKitWebView.cpp
+++ b/Source/WebKit2/UIProcess/API/gtk/WebKitWebView.cpp
@@ -30,6 +30,7 @@
#include "WebKitContextMenuPrivate.h"
#include "WebKitEnumTypes.h"
#include "WebKitError.h"
+#include "WebKitFaviconDatabasePrivate.h"
#include "WebKitFormClient.h"
#include "WebKitFullscreenClient.h"
#include "WebKitHitTestResultPrivate.h"
@@ -56,6 +57,7 @@
#include <WebCore/DragIcon.h>
#include <WebCore/GOwnPtrGtk.h>
#include <WebCore/GtkUtilities.h>
+#include <WebCore/RefPtrCairo.h>
#include <glib/gi18n-lib.h>
#include <wtf/gobject/GOwnPtr.h>
#include <wtf/gobject/GRefPtr.h>
@@ -102,6 +104,7 @@ enum {
PROP_WEB_CONTEXT,
PROP_TITLE,
PROP_ESTIMATED_LOAD_PROGRESS,
+ PROP_FAVICON,
PROP_URI,
PROP_ZOOM_LEVEL,
PROP_IS_LOADING
@@ -120,6 +123,7 @@ struct _WebKitWebViewPrivate {
bool waitingForMainResource;
gulong mainResourceResponseHandlerID;
+ gulong watchForChangesInFaviconHandlerID;
WebKitLoadEvent lastDelayedEvent;
GRefPtr<WebKitBackForwardList> backForwardList;
@@ -139,6 +143,9 @@ struct _WebKitWebViewPrivate {
ResourcesMap subresourcesMap;
GRefPtr<WebKitWebInspector> inspector;
+
+ RefPtr<cairo_surface_t> favicon;
+ GRefPtr<GCancellable> faviconCancellable;
};
static guint signals[LAST_SIGNAL] = { 0, };
@@ -260,6 +267,37 @@ static void userAgentChanged(WebKitSettings* settings, GParamSpec*, WebKitWebVie
getPage(webView)->setCustomUserAgent(String::fromUTF8(webkit_settings_get_user_agent(settings)));
}
+static void webkitWebViewCancelFaviconRequest(WebKitWebView* webView)
+{
+ if (!webView->priv->faviconCancellable)
+ return;
+
+ g_cancellable_cancel(webView->priv->faviconCancellable.get());
+ webView->priv->faviconCancellable = 0;
+}
+
+static void webkitWebViewUpdateFavicon(WebKitWebView* webView, cairo_surface_t* favicon)
+{
+ if (webView->priv->favicon.get() == favicon)
+ return;
+
+ webView->priv->favicon = favicon;
+ g_object_notify(G_OBJECT(webView), "favicon");
+}
+
+static void iconReadyCallback(WebKitFaviconDatabase* database, const char* uri, WebKitWebView* webView)
+{
+ // Consider only the icon matching the active URI for this webview.
+ if (webView->priv->activeURI != uri)
+ return;
+
+ // Update the favicon only if we don't have one already.
+ if (!webView->priv->favicon) {
+ RefPtr<cairo_surface_t> favicon = adoptRef(webkitFaviconDatabaseGetFavicon(database, webView->priv->activeURI));
+ webkitWebViewUpdateFavicon(webView, favicon.get());
+ }
+}
+
static void webkitWebViewSetSettings(WebKitWebView* webView, WebKitSettings* settings)
{
webView->priv->settings = settings;
@@ -285,6 +323,29 @@ static void webkitWebViewDisconnectMainResourceResponseChangedSignalHandler(WebK
priv->mainResourceResponseHandlerID = 0;
}
+static void webkitWebViewWatchForChangesInFavicon(WebKitWebView* webView)
+{
+ WebKitWebViewPrivate* priv = webView->priv;
+ WebKitFaviconDatabase* database = webkit_web_context_get_favicon_database(priv->context);
+
+ // Make sure we only connect to this signal once per view.
+ if (priv->watchForChangesInFaviconHandlerID)
+ return;
+
+ priv->watchForChangesInFaviconHandlerID =
+ g_signal_connect(database, "favicon-ready", G_CALLBACK(iconReadyCallback), webView);
+}
+
+static void webkitWebViewDisconnectFaviconDatabaseSignalHandlers(WebKitWebView* webView)
+{
+ WebKitWebViewPrivate* priv = webView->priv;
+ WebKitFaviconDatabase* database = webkit_web_context_get_favicon_database(priv->context);
+
+ if (priv->watchForChangesInFaviconHandlerID)
+ g_signal_handler_disconnect(database, priv->watchForChangesInFaviconHandlerID);
+ priv->watchForChangesInFaviconHandlerID = 0;
+}
+
static void fileChooserDialogResponseCallback(GtkDialog* dialog, gint responseID, WebKitFileChooserRequest* request)
{
GRefPtr<WebKitFileChooserRequest> adoptedRequest = adoptGRef(request);
@@ -337,7 +398,7 @@ static void webkitWebViewConstructed(GObject* object)
WebKitWebViewPrivate* priv = webView->priv;
WebKitWebViewBase* webViewBase = WEBKIT_WEB_VIEW_BASE(webView);
- webkitWebViewBaseCreateWebPage(webViewBase, toImpl(webkitWebContextGetWKContext(priv->context)), 0);
+ webkitWebViewBaseCreateWebPage(webViewBase, webkitWebContextGetContext(priv->context), 0);
attachLoaderClientToView(webView);
attachUIClientToView(webView);
@@ -385,6 +446,9 @@ static void webkitWebViewGetProperty(GObject* object, guint propId, GValue* valu
case PROP_ESTIMATED_LOAD_PROGRESS:
g_value_set_double(value, webkit_web_view_get_estimated_load_progress(webView));
break;
+ case PROP_FAVICON:
+ g_value_set_pointer(value, webkit_web_view_get_favicon(webView));
+ break;
case PROP_URI:
g_value_set_string(value, webkit_web_view_get_uri(webView));
break;
@@ -411,8 +475,10 @@ static void webkitWebViewFinalize(GObject* object)
if (priv->modalLoop && g_main_loop_is_running(priv->modalLoop.get()))
g_main_loop_quit(priv->modalLoop.get());
+ webkitWebViewCancelFaviconRequest(webView);
webkitWebViewDisconnectMainResourceResponseChangedSignalHandler(webView);
webkitWebViewDisconnectSettingsSignalHandlers(webView);
+ webkitWebViewDisconnectFaviconDatabaseSignalHandlers(webView);
priv->~WebKitWebViewPrivate();
G_OBJECT_CLASS(webkit_web_view_parent_class)->finalize(object);
@@ -500,6 +566,18 @@ static void webkit_web_view_class_init(WebKitWebViewClass* webViewClass)
0.0, 1.0, 0.0,
WEBKIT_PARAM_READABLE));
/**
+ * WebKitWebView:favicon:
+ *
+ * The favicon currently associated to the #WebKitWebView.
+ * See webkit_web_view_get_favicon() for more details.
+ */
+ g_object_class_install_property(gObjectClass,
+ PROP_FAVICON,
+ g_param_spec_pointer("favicon",
+ _("Favicon"),
+ _("The favicon associated to the view, if any"),
+ WEBKIT_PARAM_READABLE));
+ /**
* WebKitWebView:uri:
*
* The current active URI of the #WebKitWebView.
@@ -1158,9 +1236,10 @@ static void setCertificateToMainResource(WebKitWebView* webView)
static void webkitWebViewEmitLoadChanged(WebKitWebView* webView, WebKitLoadEvent loadEvent)
{
- if (loadEvent == WEBKIT_LOAD_STARTED)
+ if (loadEvent == WEBKIT_LOAD_STARTED) {
webkitWebViewSetIsLoading(webView, true);
- else if (loadEvent == WEBKIT_LOAD_FINISHED) {
+ webkitWebViewWatchForChangesInFavicon(webView);
+ } else if (loadEvent == WEBKIT_LOAD_FINISHED) {
webkitWebViewSetIsLoading(webView, false);
webView->priv->waitingForMainResource = false;
webkitWebViewDisconnectMainResourceResponseChangedSignalHandler(webView);
@@ -1182,29 +1261,52 @@ static void webkitWebViewEmitDelayedLoadEvents(WebKitWebView* webView)
priv->waitingForMainResource = false;
}
+static void getFaviconReadyCallback(GObject* object, GAsyncResult* result, gpointer userData)
+{
+ GOwnPtr<GError> error;
+ RefPtr<cairo_surface_t> favicon = adoptRef(webkit_favicon_database_get_favicon_finish(WEBKIT_FAVICON_DATABASE(object), result, &error.outPtr()));
+ if (!g_error_matches(error.get(), G_IO_ERROR, G_IO_ERROR_CANCELLED)) {
+ WebKitWebView* webView = WEBKIT_WEB_VIEW(userData);
+ webkitWebViewUpdateFavicon(webView, favicon.get());
+ webView->priv->faviconCancellable = 0;
+ }
+}
+
+static void webkitWebViewRequestFavicon(WebKitWebView* webView)
+{
+ WebKitWebViewPrivate* priv = webView->priv;
+ WebKitFaviconDatabase* database = webkit_web_context_get_favicon_database(priv->context);
+ priv->faviconCancellable = adoptGRef(g_cancellable_new());
+ webkit_favicon_database_get_favicon(database, priv->activeURI.data(), priv->faviconCancellable.get(), getFaviconReadyCallback, webView);
+}
+
void webkitWebViewLoadChanged(WebKitWebView* webView, WebKitLoadEvent loadEvent)
{
+ WebKitWebViewPrivate* priv = webView->priv;
if (loadEvent == WEBKIT_LOAD_STARTED) {
// Finish a possible previous load waiting for main resource.
webkitWebViewEmitDelayedLoadEvents(webView);
- webView->priv->loadingResourcesMap.clear();
- webView->priv->mainResource = 0;
- webView->priv->waitingForMainResource = false;
+ webkitWebViewCancelFaviconRequest(webView);
+ priv->loadingResourcesMap.clear();
+ priv->mainResource = 0;
+ priv->waitingForMainResource = false;
} else if (loadEvent == WEBKIT_LOAD_COMMITTED) {
- webView->priv->subresourcesMap.clear();
- if (!webView->priv->mainResource) {
+ webkitWebViewRequestFavicon(webView);
+
+ priv->subresourcesMap.clear();
+ if (!priv->mainResource) {
// When a page is loaded from the history cache, the main resource load callbacks
// are called when the main frame load is finished. We want to make sure there's a
// main resource available when load has been committed, so we delay the emission of
// load-changed signal until main resource object has been created.
- webView->priv->waitingForMainResource = true;
+ priv->waitingForMainResource = true;
} else
setCertificateToMainResource(webView);
}
- if (webView->priv->waitingForMainResource)
- webView->priv->lastDelayedEvent = loadEvent;
+ if (priv->waitingForMainResource)
+ priv->lastDelayedEvent = loadEvent;
else
webkitWebViewEmitLoadChanged(webView, loadEvent);
}
@@ -1850,6 +1952,26 @@ const gchar* webkit_web_view_get_uri(WebKitWebView* webView)
}
/**
+ * webkit_web_view_get_favicon:
+ * @web_view: a #WebKitWebView
+ *
+ * Returns favicon currently associated to @web_view, if any. You can
+ * connect to notify::favicon signal of @web_view to be notified when
+ * the favicon is available.
+ *
+ * Returns: (transfer none): a pointer to a #cairo_surface_t with the
+ * favicon or %NULL if there's no icon associated with @web_view.
+ */
+cairo_surface_t* webkit_web_view_get_favicon(WebKitWebView* webView)
+{
+ g_return_val_if_fail(WEBKIT_IS_WEB_VIEW(webView), 0);
+ if (webView->priv->activeURI.isNull())
+ return 0;
+
+ return webView->priv->favicon.get();
+}
+
+/**
* webkit_web_view_get_custom_charset:
* @web_view: a #WebKitWebView
*
@@ -2192,7 +2314,7 @@ static void webkitWebViewRunJavaScriptCallback(WKSerializedScriptValueRef wkSeri
g_simple_async_result_take_error(result.get(), error);
else if (wkSerializedScriptValue) {
GRefPtr<WebKitWebView> webView = adoptGRef(WEBKIT_WEB_VIEW(g_async_result_get_source_object(G_ASYNC_RESULT(result.get()))));
- data->scriptResult = webkitJavascriptResultCreate(webView.get(), wkSerializedScriptValue);
+ data->scriptResult = webkitJavascriptResultCreate(webView.get(), toImpl(wkSerializedScriptValue));
} else {
g_set_error_literal(&error, WEBKIT_JAVASCRIPT_ERROR, WEBKIT_JAVASCRIPT_ERROR_SCRIPT_FAILED, _("An exception was raised in JavaScript"));
g_simple_async_result_take_error(result.get(), error);
@@ -2307,6 +2429,94 @@ WebKitJavascriptResult* webkit_web_view_run_javascript_finish(WebKitWebView* web
return data->scriptResult ? webkit_javascript_result_ref(data->scriptResult) : 0;
}
+static void resourcesStreamReadCallback(GObject* object, GAsyncResult* result, gpointer userData)
+{
+ GOutputStream* outputStream = G_OUTPUT_STREAM(object);
+ GRefPtr<GSimpleAsyncResult> runJavascriptResult = adoptGRef(G_SIMPLE_ASYNC_RESULT(userData));
+
+ GError* error = 0;
+ g_output_stream_splice_finish(outputStream, result, &error);
+ if (error) {
+ g_simple_async_result_take_error(runJavascriptResult.get(), error);
+ g_simple_async_result_complete(runJavascriptResult.get());
+ return;
+ }
+
+ GRefPtr<WebKitWebView> webView = adoptGRef(WEBKIT_WEB_VIEW(g_async_result_get_source_object(G_ASYNC_RESULT(runJavascriptResult.get()))));
+ gpointer outputStreamData = g_memory_output_stream_get_data(G_MEMORY_OUTPUT_STREAM(outputStream));
+ getPage(webView.get())->runJavaScriptInMainFrame(String::fromUTF8(reinterpret_cast<const gchar*>(outputStreamData)),
+ ScriptValueCallback::create(runJavascriptResult.leakRef(), webkitWebViewRunJavaScriptCallback));
+}
+
+/**
+ * webkit_web_view_run_javascript_from_gresource:
+ * @web_view: a #WebKitWebView
+ * @resource: the location of the resource to load
+ * @cancellable: (allow-none): a #GCancellable or %NULL to ignore
+ * @callback: (scope async): a #GAsyncReadyCallback to call when the script finished
+ * @user_data: (closure): the data to pass to callback function
+ *
+ * Asynchronously run the script from @resource in the context of the
+ * current page in @web_view.
+ *
+ * When the operation is finished, @callback will be called. You can
+ * then call webkit_web_view_run_javascript_from_gresource_finish() to get the result
+ * of the operation.
+ */
+void webkit_web_view_run_javascript_from_gresource(WebKitWebView* webView, const gchar* resource, GCancellable* cancellable, GAsyncReadyCallback callback, gpointer userData)
+{
+ g_return_if_fail(WEBKIT_IS_WEB_VIEW(webView));
+ g_return_if_fail(resource);
+
+ GRefPtr<GSimpleAsyncResult> result = adoptGRef(g_simple_async_result_new(G_OBJECT(webView), callback, userData,
+ reinterpret_cast<gpointer>(webkit_web_view_run_javascript_from_gresource)));
+ RunJavaScriptAsyncData* data = createRunJavaScriptAsyncData();
+ data->cancellable = cancellable;
+ g_simple_async_result_set_op_res_gpointer(result.get(), data, reinterpret_cast<GDestroyNotify>(destroyRunJavaScriptAsyncData));
+
+ GError* error = 0;
+ GRefPtr<GInputStream> inputStream = adoptGRef(g_resources_open_stream(resource, G_RESOURCE_LOOKUP_FLAGS_NONE, &error));
+ if (error) {
+ g_simple_async_result_take_error(result.get(), error);
+ g_simple_async_result_complete_in_idle(result.get());
+ return;
+ }
+
+ GRefPtr<GOutputStream> outputStream = adoptGRef(g_memory_output_stream_new(0, 0, fastRealloc, fastFree));
+ g_output_stream_splice_async(outputStream.get(), inputStream.get(),
+ static_cast<GOutputStreamSpliceFlags>(G_OUTPUT_STREAM_SPLICE_CLOSE_SOURCE | G_OUTPUT_STREAM_SPLICE_CLOSE_TARGET),
+ G_PRIORITY_DEFAULT,
+ cancellable, resourcesStreamReadCallback, result.leakRef());
+}
+
+/**
+ * webkit_web_view_run_javascript_from_gresource_finish:
+ * @web_view: a #WebKitWebView
+ * @result: a #GAsyncResult
+ * @error: return location for error or %NULL to ignore
+ *
+ * Finish an asynchronous operation started with webkit_web_view_run_javascript_from_gresource().
+ *
+ * Check webkit_web_view_run_javascript_finish() for a usage example.
+ *
+ * Returns: (transfer full): a #WebKitJavascriptResult with the result of the last executed statement in @script
+ * or %NULL in case of error
+ */
+WebKitJavascriptResult* webkit_web_view_run_javascript_from_gresource_finish(WebKitWebView* webView, GAsyncResult* result, GError** error)
+{
+ g_return_val_if_fail(WEBKIT_IS_WEB_VIEW(webView), 0);
+ g_return_val_if_fail(G_IS_ASYNC_RESULT(result), 0);
+
+ GSimpleAsyncResult* simpleResult = G_SIMPLE_ASYNC_RESULT(result);
+ g_warn_if_fail(g_simple_async_result_get_source_tag(simpleResult) == webkit_web_view_run_javascript_from_gresource);
+
+ if (g_simple_async_result_propagate_error(simpleResult, error))
+ return 0;
+
+ RunJavaScriptAsyncData* data = static_cast<RunJavaScriptAsyncData*>(g_simple_async_result_get_op_res_gpointer(simpleResult));
+ return data->scriptResult ? webkit_javascript_result_ref(data->scriptResult) : 0;
+}
+
/**
* webkit_web_view_get_main_resource:
* @web_view: a #WebKitWebView
@@ -2341,7 +2551,7 @@ GList* webkit_web_view_get_subresources(WebKitWebView* webView)
WebKitWebViewPrivate* priv = webView->priv;
ResourcesMap::const_iterator end = priv->subresourcesMap.end();
for (ResourcesMap::const_iterator it = priv->subresourcesMap.begin(); it != end; ++it)
- subresources = g_list_prepend(subresources, it->second.get());
+ subresources = g_list_prepend(subresources, it->value.get());
return g_list_reverse(subresources);
}
diff --git a/Source/WebKit2/UIProcess/API/gtk/WebKitWebView.h b/Source/WebKit2/UIProcess/API/gtk/WebKitWebView.h
index 8a397b752..ac2e2813f 100644
--- a/Source/WebKit2/UIProcess/API/gtk/WebKitWebView.h
+++ b/Source/WebKit2/UIProcess/API/gtk/WebKitWebView.h
@@ -191,170 +191,185 @@ struct _WebKitWebViewClass {
};
WEBKIT_API GType
-webkit_web_view_get_type (void);
+webkit_web_view_get_type (void);
WEBKIT_API GtkWidget *
-webkit_web_view_new (void);
+webkit_web_view_new (void);
WEBKIT_API GtkWidget *
-webkit_web_view_new_with_context (WebKitWebContext *context);
+webkit_web_view_new_with_context (WebKitWebContext *context);
WEBKIT_API WebKitWebContext *
-webkit_web_view_get_context (WebKitWebView *web_view);
+webkit_web_view_get_context (WebKitWebView *web_view);
WEBKIT_API void
-webkit_web_view_load_uri (WebKitWebView *web_view,
- const gchar *uri);
+webkit_web_view_load_uri (WebKitWebView *web_view,
+ const gchar *uri);
WEBKIT_API void
-webkit_web_view_load_html (WebKitWebView *web_view,
- const gchar *content,
- const gchar *base_uri);
+webkit_web_view_load_html (WebKitWebView *web_view,
+ const gchar *content,
+ const gchar *base_uri);
WEBKIT_API void
-webkit_web_view_load_alternate_html (WebKitWebView *web_view,
- const gchar *content,
- const gchar *content_uri,
- const gchar *base_uri);
+webkit_web_view_load_alternate_html (WebKitWebView *web_view,
+ const gchar *content,
+ const gchar *content_uri,
+ const gchar *base_uri);
WEBKIT_API void
-webkit_web_view_load_plain_text (WebKitWebView *web_view,
- const gchar *plain_text);
+webkit_web_view_load_plain_text (WebKitWebView *web_view,
+ const gchar *plain_text);
WEBKIT_API void
-webkit_web_view_load_request (WebKitWebView *web_view,
- WebKitURIRequest *request);
+webkit_web_view_load_request (WebKitWebView *web_view,
+ WebKitURIRequest *request);
WEBKIT_API void
-webkit_web_view_stop_loading (WebKitWebView *web_view);
+webkit_web_view_stop_loading (WebKitWebView *web_view);
WEBKIT_API gboolean
-webkit_web_view_is_loading (WebKitWebView *web_view);
+webkit_web_view_is_loading (WebKitWebView *web_view);
WEBKIT_API const gchar *
-webkit_web_view_get_title (WebKitWebView *web_view);
+webkit_web_view_get_title (WebKitWebView *web_view);
WEBKIT_API void
-webkit_web_view_reload (WebKitWebView *web_view);
+webkit_web_view_reload (WebKitWebView *web_view);
WEBKIT_API void
-webkit_web_view_reload_bypass_cache (WebKitWebView *web_view);
+webkit_web_view_reload_bypass_cache (WebKitWebView *web_view);
WEBKIT_API gdouble
-webkit_web_view_get_estimated_load_progress (WebKitWebView *web_view);
+webkit_web_view_get_estimated_load_progress (WebKitWebView *web_view);
WEBKIT_API void
-webkit_web_view_go_back (WebKitWebView *web_view);
+webkit_web_view_go_back (WebKitWebView *web_view);
WEBKIT_API gboolean
-webkit_web_view_can_go_back (WebKitWebView *web_view);
+webkit_web_view_can_go_back (WebKitWebView *web_view);
WEBKIT_API void
-webkit_web_view_go_forward (WebKitWebView *web_view);
+webkit_web_view_go_forward (WebKitWebView *web_view);
WEBKIT_API gboolean
-webkit_web_view_can_go_forward (WebKitWebView *web_view);
+webkit_web_view_can_go_forward (WebKitWebView *web_view);
WEBKIT_API WebKitBackForwardList *
-webkit_web_view_get_back_forward_list (WebKitWebView *web_view);
+webkit_web_view_get_back_forward_list (WebKitWebView *web_view);
WEBKIT_API void
-webkit_web_view_go_to_back_forward_list_item (WebKitWebView *web_view,
- WebKitBackForwardListItem *list_item);
+webkit_web_view_go_to_back_forward_list_item (WebKitWebView *web_view,
+ WebKitBackForwardListItem *list_item);
WEBKIT_API const gchar *
-webkit_web_view_get_uri (WebKitWebView *web_view);
+webkit_web_view_get_uri (WebKitWebView *web_view);
+
+WEBKIT_API cairo_surface_t *
+webkit_web_view_get_favicon (WebKitWebView *web_view);
WEBKIT_API const gchar *
-webkit_web_view_get_custom_charset (WebKitWebView *web_view);
+webkit_web_view_get_custom_charset (WebKitWebView *web_view);
WEBKIT_API void
-webkit_web_view_set_custom_charset (WebKitWebView *web_view,
- const gchar *charset);
+webkit_web_view_set_custom_charset (WebKitWebView *web_view,
+ const gchar *charset);
WEBKIT_API void
-webkit_web_view_set_settings (WebKitWebView *web_view,
- WebKitSettings *settings);
+webkit_web_view_set_settings (WebKitWebView *web_view,
+ WebKitSettings *settings);
WEBKIT_API WebKitSettings *
-webkit_web_view_get_settings (WebKitWebView *web_view);
+webkit_web_view_get_settings (WebKitWebView *web_view);
WEBKIT_API WebKitWindowProperties *
-webkit_web_view_get_window_properties (WebKitWebView *web_view);
+webkit_web_view_get_window_properties (WebKitWebView *web_view);
WEBKIT_API void
-webkit_web_view_set_zoom_level (WebKitWebView *web_view,
- gdouble zoom_level);
+webkit_web_view_set_zoom_level (WebKitWebView *web_view,
+ gdouble zoom_level);
WEBKIT_API gdouble
-webkit_web_view_get_zoom_level (WebKitWebView *web_view);
+webkit_web_view_get_zoom_level (WebKitWebView *web_view);
WEBKIT_API void
-webkit_web_view_can_execute_editing_command (WebKitWebView *web_view,
- const gchar *command,
- GCancellable *cancellable,
- GAsyncReadyCallback callback,
- gpointer user_data);
+webkit_web_view_can_execute_editing_command (WebKitWebView *web_view,
+ const gchar *command,
+ GCancellable *cancellable,
+ GAsyncReadyCallback callback,
+ gpointer user_data);
WEBKIT_API gboolean
-webkit_web_view_can_execute_editing_command_finish (WebKitWebView *web_view,
- GAsyncResult *result,
- GError **error);
+webkit_web_view_can_execute_editing_command_finish (WebKitWebView *web_view,
+ GAsyncResult *result,
+ GError **error);
WEBKIT_API void
-webkit_web_view_execute_editing_command (WebKitWebView *web_view,
- const gchar *command);
+webkit_web_view_execute_editing_command (WebKitWebView *web_view,
+ const gchar *command);
WEBKIT_API WebKitFindController *
-webkit_web_view_get_find_controller (WebKitWebView *web_view);
+webkit_web_view_get_find_controller (WebKitWebView *web_view);
WEBKIT_API JSGlobalContextRef
-webkit_web_view_get_javascript_global_context (WebKitWebView *web_view);
+webkit_web_view_get_javascript_global_context (WebKitWebView *web_view);
WEBKIT_API void
-webkit_web_view_run_javascript (WebKitWebView *web_view,
- const gchar *script,
- GCancellable *cancellable,
- GAsyncReadyCallback callback,
- gpointer user_data);
+webkit_web_view_run_javascript (WebKitWebView *web_view,
+ const gchar *script,
+ GCancellable *cancellable,
+ GAsyncReadyCallback callback,
+ gpointer user_data);
+WEBKIT_API WebKitJavascriptResult *
+webkit_web_view_run_javascript_finish (WebKitWebView *web_view,
+ GAsyncResult *result,
+ GError **error);
+
+WEBKIT_API void
+webkit_web_view_run_javascript_from_gresource (WebKitWebView *web_view,
+ const gchar *resource,
+ GCancellable *cancellable,
+ GAsyncReadyCallback callback,
+ gpointer user_data);
+
WEBKIT_API WebKitJavascriptResult *
-webkit_web_view_run_javascript_finish (WebKitWebView *web_view,
- GAsyncResult *result,
- GError **error);
+webkit_web_view_run_javascript_from_gresource_finish (WebKitWebView *web_view,
+ GAsyncResult *result,
+ GError **error);
WEBKIT_API WebKitWebResource *
-webkit_web_view_get_main_resource (WebKitWebView *web_view);
+webkit_web_view_get_main_resource (WebKitWebView *web_view);
WEBKIT_API GList *
-webkit_web_view_get_subresources (WebKitWebView *web_view);
+webkit_web_view_get_subresources (WebKitWebView *web_view);
WEBKIT_API WebKitWebInspector *
-webkit_web_view_get_inspector (WebKitWebView *web_view);
+webkit_web_view_get_inspector (WebKitWebView *web_view);
WEBKIT_API gboolean
-webkit_web_view_can_show_mime_type (WebKitWebView *web_view,
- const gchar *mime_type);
+webkit_web_view_can_show_mime_type (WebKitWebView *web_view,
+ const gchar *mime_type);
WEBKIT_API void
-webkit_web_view_save (WebKitWebView *web_view,
- WebKitSaveMode save_mode,
- GCancellable *cancellable,
- GAsyncReadyCallback callback,
- gpointer user_data);
+webkit_web_view_save (WebKitWebView *web_view,
+ WebKitSaveMode save_mode,
+ GCancellable *cancellable,
+ GAsyncReadyCallback callback,
+ gpointer user_data);
WEBKIT_API GInputStream *
-webkit_web_view_save_finish (WebKitWebView *web_view,
- GAsyncResult *result,
- GError **error);
+webkit_web_view_save_finish (WebKitWebView *web_view,
+ GAsyncResult *result,
+ GError **error);
WEBKIT_API void
-webkit_web_view_save_to_file (WebKitWebView *web_view,
- GFile *file,
- WebKitSaveMode save_mode,
- GCancellable *cancellable,
- GAsyncReadyCallback callback,
- gpointer user_data);
+webkit_web_view_save_to_file (WebKitWebView *web_view,
+ GFile *file,
+ WebKitSaveMode save_mode,
+ GCancellable *cancellable,
+ GAsyncReadyCallback callback,
+ gpointer user_data);
WEBKIT_API gboolean
-webkit_web_view_save_to_file_finish (WebKitWebView *web_view,
- GAsyncResult *result,
- GError **error);
+webkit_web_view_save_to_file_finish (WebKitWebView *web_view,
+ GAsyncResult *result,
+ GError **error);
G_END_DECLS
diff --git a/Source/WebKit2/UIProcess/API/gtk/WebKitWebViewBase.cpp b/Source/WebKit2/UIProcess/API/gtk/WebKitWebViewBase.cpp
index b42b2ee8f..e5bac671e 100644
--- a/Source/WebKit2/UIProcess/API/gtk/WebKitWebViewBase.cpp
+++ b/Source/WebKit2/UIProcess/API/gtk/WebKitWebViewBase.cpp
@@ -75,6 +75,10 @@ using namespace WebCore;
typedef HashMap<GtkWidget*, IntRect> WebKitWebViewChildrenMap;
+#if USE(TEXTURE_MAPPER_GL)
+void redirectedWindowDamagedCallback(void* data);
+#endif
+
struct _WebKitWebViewBasePrivate {
WebKitWebViewChildrenMap children;
OwnPtr<PageClientImpl> pageClient;
@@ -111,7 +115,6 @@ struct _WebKitWebViewBasePrivate {
#if USE(TEXTURE_MAPPER_GL)
OwnPtr<RedirectedXCompositeWindow> redirectedWindow;
- bool readyToRenderAcceleratedCompositingResults;
#endif
};
@@ -300,7 +303,7 @@ static void webkitWebViewBaseContainerForall(GtkContainer* container, gboolean i
WebKitWebViewChildrenMap children = priv->children;
WebKitWebViewChildrenMap::const_iterator end = children.end();
for (WebKitWebViewChildrenMap::const_iterator current = children.begin(); current != end; ++current)
- (*callback)(current->first, callbackData);
+ (*callback)(current->key, callbackData);
if (includeInternals && priv->inspectorView)
(*callback)(priv->inspectorView, callbackData);
@@ -351,7 +354,8 @@ static void webkit_web_view_base_init(WebKitWebViewBase* webkitWebViewBase)
#if USE(TEXTURE_MAPPER_GL)
priv->redirectedWindow = RedirectedXCompositeWindow::create(IntSize(1, 1));
- priv->readyToRenderAcceleratedCompositingResults = false;
+ if (priv->redirectedWindow)
+ priv->redirectedWindow->setDamageNotifyCallback(redirectedWindowDamagedCallback, webkitWebViewBase);
#endif
}
@@ -364,10 +368,9 @@ static bool webkitWebViewRenderAcceleratedCompositingResults(WebKitWebViewBase*
// To avoid flashes when initializing accelerated compositing for the first
// time, we wait until we know there's a frame ready before rendering.
WebKitWebViewBasePrivate* priv = webViewBase->priv;
- if (!priv->readyToRenderAcceleratedCompositingResults)
+ if (!priv->redirectedWindow)
return false;
- ASSERT(priv->redirectedWindow);
cairo_rectangle(cr, clipRect->x, clipRect->y, clipRect->width, clipRect->height);
cairo_surface_t* surface = priv->redirectedWindow->cairoSurfaceForWidget(GTK_WIDGET(webViewBase));
cairo_set_source_surface(cr, surface, 0, 0);
@@ -430,7 +433,7 @@ static void resizeWebKitWebViewBaseFromAllocation(WebKitWebViewBase* webViewBase
}
#if USE(TEXTURE_MAPPER_GL)
- if (sizeChanged)
+ if (sizeChanged && webViewBase->priv->redirectedWindow)
webViewBase->priv->redirectedWindow->resize(viewRect.size());
#endif
@@ -801,7 +804,8 @@ void webkitWebViewBaseCreateWebPage(WebKitWebViewBase* webkitWebViewBase, WebCon
#endif
#if USE(TEXTURE_MAPPER_GL)
- priv->pageProxy->setAcceleratedCompositingWindowId(priv->redirectedWindow->windowId());
+ if (priv->redirectedWindow)
+ priv->pageProxy->setAcceleratedCompositingWindowId(priv->redirectedWindow->windowId());
#endif
}
@@ -928,37 +932,9 @@ GdkEvent* webkitWebViewBaseTakeContextMenuEvent(WebKitWebViewBase* webkitWebView
}
#if USE(TEXTURE_MAPPER_GL)
-static gboolean queueAnotherDrawOfAcceleratedCompositingResults(gpointer* webViewBasePointer)
+void redirectedWindowDamagedCallback(void* data)
{
- // The WebViewBase may have been destroyed in the time since we queued this
- // draw and the time we are actually executing.
- if (!*webViewBasePointer) {
- fastFree(webViewBasePointer);
- return FALSE;
- }
-
- WebKitWebViewBase* webViewBase = WEBKIT_WEB_VIEW_BASE(*webViewBasePointer);
- gtk_widget_queue_draw(GTK_WIDGET(webViewBase));
- webViewBase->priv->readyToRenderAcceleratedCompositingResults = true;
-
- g_object_remove_weak_pointer(G_OBJECT(webViewBase), webViewBasePointer);
- fastFree(webViewBasePointer);
-
- return FALSE;
-}
-
-void webkitWebViewBaseQueueDrawOfAcceleratedCompositingResults(WebKitWebViewBase* webViewBase)
-{
- gtk_widget_queue_draw(GTK_WIDGET(webViewBase));
-
- // Redraw again, one frame later, as it might take some time for the new GL frame to be available.
- // This prevents the display from always being one frame behind in the case GL hasn't yet finished
- // rendering to the window.
- // TODO: Add XDamage support to RedirectedXCompositeWindow to accomplish this.
- gpointer* webViewBasePointer = static_cast<gpointer*>(fastMalloc(sizeof(gpointer)));
- g_object_add_weak_pointer(G_OBJECT(webViewBase), webViewBasePointer);
- *webViewBasePointer = webViewBase;
- g_timeout_add(1000 / 60, reinterpret_cast<GSourceFunc>(queueAnotherDrawOfAcceleratedCompositingResults), webViewBasePointer);
+ gtk_widget_queue_draw(GTK_WIDGET(data));
}
#endif
diff --git a/Source/WebKit2/UIProcess/API/gtk/docs/webkit2gtk-docs.sgml b/Source/WebKit2/UIProcess/API/gtk/docs/webkit2gtk-docs.sgml
index a7f34e6d1..8623af33e 100644
--- a/Source/WebKit2/UIProcess/API/gtk/docs/webkit2gtk-docs.sgml
+++ b/Source/WebKit2/UIProcess/API/gtk/docs/webkit2gtk-docs.sgml
@@ -30,6 +30,7 @@
<xi:include href="xml/WebKitPrintOperation.xml"/>
<xi:include href="xml/WebKitWebResource.xml"/>
<xi:include href="xml/WebKitError.xml"/>
+ <xi:include href="xml/WebKitFaviconDatabase.xml"/>
<xi:include href="xml/WebKitFileChooserRequest.xml"/>
<xi:include href="xml/WebKitFindController.xml"/>
<xi:include href="xml/WebKitCookieManager.xml"/>
diff --git a/Source/WebKit2/UIProcess/API/gtk/docs/webkit2gtk-sections.txt b/Source/WebKit2/UIProcess/API/gtk/docs/webkit2gtk-sections.txt
index 1827b6b16..f56267b9a 100644
--- a/Source/WebKit2/UIProcess/API/gtk/docs/webkit2gtk-sections.txt
+++ b/Source/WebKit2/UIProcess/API/gtk/docs/webkit2gtk-sections.txt
@@ -30,6 +30,9 @@ webkit_web_context_set_cache_model
webkit_web_context_clear_cache
webkit_web_context_download_uri
webkit_web_context_get_cookie_manager
+webkit_web_context_get_favicon_database
+webkit_web_context_set_favicon_database_directory
+webkit_web_context_get_favicon_database_directory
webkit_web_context_get_security_manager
webkit_web_context_set_additional_plugins_directory
webkit_web_context_get_plugins
@@ -98,6 +101,7 @@ webkit_web_view_set_custom_charset
webkit_web_view_get_back_forward_list
webkit_web_view_go_to_back_forward_list_item
webkit_web_view_get_uri
+webkit_web_view_get_favicon
webkit_web_view_set_settings
webkit_web_view_get_settings
webkit_web_view_get_window_properties
@@ -111,6 +115,8 @@ webkit_web_view_get_inspector
webkit_web_view_get_javascript_global_context
webkit_web_view_run_javascript
webkit_web_view_run_javascript_finish
+webkit_web_view_run_javascript_from_gresource
+webkit_web_view_run_javascript_from_gresource_finish
webkit_web_view_can_show_mime_type
webkit_web_view_save
webkit_web_view_save_finish
@@ -291,6 +297,8 @@ webkit_settings_set_enable_page_cache
webkit_settings_get_user_agent
webkit_settings_set_user_agent
webkit_settings_set_user_agent_with_application_details
+webkit_settings_get_enable_smooth_scrolling
+webkit_settings_set_enable_smooth_scrolling
<SUBSECTION Standard>
WebKitSettingsClass
@@ -602,6 +610,31 @@ webkit_javascript_error_quark
</SECTION>
<SECTION>
+<FILE>WebKitFaviconDatabase</FILE>
+WebKitFaviconDatabase
+WEBKIT_FAVICON_DATABASE_ERROR
+WebKitFaviconDatabaseError
+webkit_favicon_database_get_favicon
+webkit_favicon_database_get_favicon_finish
+webkit_favicon_database_get_favicon_uri
+webkit_favicon_database_clear
+
+<SUBSECTION Standard>
+WebKitFaviconDatabaseClass
+WEBKIT_TYPE_FAVICON_DATABASE
+WEBKIT_FAVICON_DATABASE
+WEBKIT_IS_FAVICON_DATABASE
+WEBKIT_FAVICON_DATABASE_CLASS
+WEBKIT_IS_FAVICON_DATABASE_CLASS
+WEBKIT_FAVICON_DATABASE_GET_CLASS
+
+<SUBSECTION Private>
+WebKitFaviconDatabasePrivate
+webkit_favicon_database_get_type
+webkit_favicon_database_error_quark
+</SECTION>
+
+<SECTION>
<FILE>WebKitFileChooserRequest</FILE>
WebKitFileChooserRequest
webkit_file_chooser_request_get_mime_types
@@ -745,6 +778,7 @@ WebKitURISchemeRequest
webkit_uri_scheme_request_get_scheme
webkit_uri_scheme_request_get_uri
webkit_uri_scheme_request_get_path
+webkit_uri_scheme_request_get_web_view
webkit_uri_scheme_request_finish
<SUBSECTION Standard>
diff --git a/Source/WebKit2/UIProcess/API/gtk/tests/GNUmakefile.am b/Source/WebKit2/UIProcess/API/gtk/tests/GNUmakefile.am
index 3fadf40b4..06ea1af7c 100644
--- a/Source/WebKit2/UIProcess/API/gtk/tests/GNUmakefile.am
+++ b/Source/WebKit2/UIProcess/API/gtk/tests/GNUmakefile.am
@@ -11,6 +11,7 @@ TEST_PROGS += \
Programs/WebKit2APITests/TestResources \
Programs/WebKit2APITests/TestSSL \
Programs/WebKit2APITests/TestWebKitVersion \
+ Programs/WebKit2APITests/TestWebKitFaviconDatabase \
Programs/WebKit2APITests/TestWebKitFindController \
Programs/WebKit2APITests/TestWebKitPolicyClient \
Programs/WebKit2APITests/TestWebKitSettings \
@@ -29,6 +30,7 @@ endif
webkit2_tests_cppflags = \
-DWEBKIT_EXEC_PATH=\"${shell pwd}/$(top_builddir)/Programs\" \
-DWEBKIT_SRC_DIR=\"${shell pwd}/${srcdir}\" \
+ -DWEBKIT_DERIVED_SRC_DIR=\"${shell pwd}/${top_builddir}/DerivedSources\" \
$(javascriptcore_cppflags) \
-I$(srcdir)/Source/JavaScriptCore \
-I$(srcdir)/Source \
@@ -55,6 +57,12 @@ webkit2_tests_ldflags = \
-no-install \
-no-fast-install
+DerivedSources/WebKit2/webkit2gtk-tests-resources.gresource: Source/WebKit2/UIProcess/API/gtk/tests/resources/webkit2gtk-tests.gresource.xml $(shell $(GLIB_COMPILE_RESOURCES) --generate-dependencies $(srcdir)/Source/WebKit2/UIProcess/API/gtk/tests/resources/webkit2gtk-tests.gresource.xml)
+ $(AM_V_GEN) $(GLIB_COMPILE_RESOURCES) --target=$@ --sourcedir=$(srcdir) $<
+
+DISTCLEANFILES += DerivedSources/WebKit2/webkit2gtk-tests-resources.gresource
+noinst_DATA += DerivedSources/WebKit2/webkit2gtk-tests-resources.gresource
+
noinst_LTLIBRARIES += Libraries/libWebKit2APITestCore.la
Libraries_libWebKit2APITestCore_la_SOURCES = \
Source/WebKit2/UIProcess/API/gtk/tests/LoadTrackingTest.cpp \
@@ -69,7 +77,9 @@ Libraries_libWebKit2APITestCore_la_CPPFLAGS = $(webkit2_tests_cppflags)
EXTRA_DIST += \
Source/WebKit2/UIProcess/API/gtk/tests/resources/test-cert.pem \
- Source/WebKit2/UIProcess/API/gtk/tests/resources/test-key.pem
+ Source/WebKit2/UIProcess/API/gtk/tests/resources/test-key.pem \
+ Source/WebKit2/UIProcess/API/gtk/tests/resources/webkit2gtk-tests.gresource.xml \
+ Source/WebKit2/UIProcess/API/gtk/tests/resources/link-title.js
Programs_WebKit2APITests_TestWebKitWebContext_SOURCES = \
Source/WebKit2/UIProcess/API/gtk/tests/TestWebKitWebContext.cpp
@@ -141,6 +151,12 @@ Programs_WebKit2APITests_TestPrinting_CPPFLAGS = $(webkit2_tests_cppflags) $(GTK
Programs_WebKit2APITests_TestPrinting_LDADD = $(webkit2_tests_ldadd) $(GTK_UNIX_PRINTING_LIBS)
Programs_WebKit2APITests_TestPrinting_LDFLAGS = $(webkit2_tests_ldflags)
+Programs_WebKit2APITests_TestWebKitFaviconDatabase_SOURCES = \
+ Source/WebKit2/UIProcess/API/gtk/tests/TestWebKitFaviconDatabase.cpp
+Programs_WebKit2APITests_TestWebKitFaviconDatabase_CPPFLAGS = $(webkit2_tests_cppflags)
+Programs_WebKit2APITests_TestWebKitFaviconDatabase_LDADD = $(webkit2_tests_ldadd)
+Programs_WebKit2APITests_TestWebKitFaviconDatabase_LDFLAGS = $(webkit2_tests_ldflags)
+
Programs_WebKit2APITests_TestWebKitFindController_SOURCES = \
Source/WebKit2/UIProcess/API/gtk/tests/TestWebKitFindController.cpp
Programs_WebKit2APITests_TestWebKitFindController_CPPFLAGS = $(webkit2_tests_cppflags)
diff --git a/Source/WebKit2/UIProcess/API/gtk/tests/TestBackForwardList.cpp b/Source/WebKit2/UIProcess/API/gtk/tests/TestBackForwardList.cpp
index e70e391ff..b479366a4 100644
--- a/Source/WebKit2/UIProcess/API/gtk/tests/TestBackForwardList.cpp
+++ b/Source/WebKit2/UIProcess/API/gtk/tests/TestBackForwardList.cpp
@@ -38,6 +38,11 @@ static void serverCallback(SoupServer* server, SoupMessage* msg, const char* pat
return;
}
+ if (g_str_has_suffix(path, "favicon.ico")) {
+ soup_message_set_status(msg, SOUP_STATUS_NOT_FOUND);
+ return;
+ }
+
soup_message_set_status(msg, SOUP_STATUS_OK);
char* body = g_strdup_printf("<html><title>%s</title><body>%s</body></html>", path + 1, path + 1);
diff --git a/Source/WebKit2/UIProcess/API/gtk/tests/TestCookieManager.cpp b/Source/WebKit2/UIProcess/API/gtk/tests/TestCookieManager.cpp
index 2fe8998b5..94aeef6e1 100644
--- a/Source/WebKit2/UIProcess/API/gtk/tests/TestCookieManager.cpp
+++ b/Source/WebKit2/UIProcess/API/gtk/tests/TestCookieManager.cpp
@@ -295,7 +295,7 @@ static void serverCallback(SoupServer* server, SoupMessage* message, const char*
} else if (g_str_equal(path, "/image.png"))
soup_message_headers_replace(message->response_headers, "Set-Cookie", "baz=qux; Max-Age=60");
else
- g_assert_not_reached();
+ soup_message_set_status(message, SOUP_STATUS_NOT_FOUND);
soup_message_body_complete(message->response_body);
}
diff --git a/Source/WebKit2/UIProcess/API/gtk/tests/TestLoaderClient.cpp b/Source/WebKit2/UIProcess/API/gtk/tests/TestLoaderClient.cpp
index c3a14193d..8fcf33009 100644
--- a/Source/WebKit2/UIProcess/API/gtk/tests/TestLoaderClient.cpp
+++ b/Source/WebKit2/UIProcess/API/gtk/tests/TestLoaderClient.cpp
@@ -312,7 +312,8 @@ static void serverCallback(SoupServer* server, SoupMessage* message, const char*
soup_message_body_append(message->response_body, SOUP_MEMORY_STATIC, responseString, strlen(responseString));
soup_server_unpause_message(server, message);
return;
- }
+ } else
+ soup_message_set_status(message, SOUP_STATUS_NOT_FOUND);
soup_message_body_complete(message->response_body);
}
diff --git a/Source/WebKit2/UIProcess/API/gtk/tests/TestMain.cpp b/Source/WebKit2/UIProcess/API/gtk/tests/TestMain.cpp
index 8622af19c..9db47f82b 100644
--- a/Source/WebKit2/UIProcess/API/gtk/tests/TestMain.cpp
+++ b/Source/WebKit2/UIProcess/API/gtk/tests/TestMain.cpp
@@ -25,12 +25,24 @@
void beforeAll();
void afterAll();
+static void registerGResource(void)
+{
+ GOwnPtr<char> resourcesPath(g_build_filename(WEBKIT_DERIVED_SRC_DIR, "WebKit2", "webkit2gtk-tests-resources.gresource", NULL));
+ GResource* resource = g_resource_load(resourcesPath.get(), 0);
+ g_assert(resource);
+
+ g_resources_register(resource);
+ g_resource_unref(resource);
+}
+
int main(int argc, char** argv)
{
gtk_test_init(&argc, &argv, 0);
g_setenv("WEBKIT_EXEC_PATH", WEBKIT_EXEC_PATH, FALSE);
g_test_bug_base("https://bugs.webkit.org/");
+ registerGResource();
+
beforeAll();
int returnValue = g_test_run();
afterAll();
diff --git a/Source/WebKit2/UIProcess/API/gtk/tests/TestResources.cpp b/Source/WebKit2/UIProcess/API/gtk/tests/TestResources.cpp
index 7e2e5de61..20b90b0b4 100644
--- a/Source/WebKit2/UIProcess/API/gtk/tests/TestResources.cpp
+++ b/Source/WebKit2/UIProcess/API/gtk/tests/TestResources.cpp
@@ -80,6 +80,11 @@ public:
{
test->assertObjectIsDeletedWhenTestFinishes(G_OBJECT(resource));
test->assertObjectIsDeletedWhenTestFinishes(G_OBJECT(request));
+
+ // Ignore favicons.
+ if (g_str_has_suffix(webkit_uri_request_get_uri(request), "favicon.ico"))
+ return;
+
test->resourceLoadStarted(resource, request);
g_signal_connect(resource, "sent-request", G_CALLBACK(resourceSentRequestCallback), test);
g_signal_connect(resource, "notify::response", G_CALLBACK(resourceReceivedResponseCallback), test);
@@ -507,21 +512,31 @@ static void testWebResourceGetData(ResourcesTest* test, gconstpointer)
static void testWebViewResourcesHistoryCache(SingleResourceLoadTest* test, gconstpointer)
{
- test->loadURI(kServer->getURIForPath("/").data());
+ CString javascriptURI = kServer->getURIForPath("/javascript.html");
+ test->loadURI(javascriptURI.data());
test->waitUntilResourceLoadFinished();
- g_assert(webkit_web_view_get_main_resource(test->m_webView));
+ WebKitWebResource* resource = webkit_web_view_get_main_resource(test->m_webView);
+ g_assert(resource);
+ g_assert_cmpstr(webkit_web_resource_get_uri(resource), ==, javascriptURI.data());
- test->loadURI(kServer->getURIForPath("/javascript.html").data());
+ CString simpleStyleCSSURI = kServer->getURIForPath("/simple-style-css.html");
+ test->loadURI(simpleStyleCSSURI.data());
test->waitUntilResourceLoadFinished();
- g_assert(webkit_web_view_get_main_resource(test->m_webView));
+ resource = webkit_web_view_get_main_resource(test->m_webView);
+ g_assert(resource);
+ g_assert_cmpstr(webkit_web_resource_get_uri(resource), ==, simpleStyleCSSURI.data());
test->goBack();
test->waitUntilResourceLoadFinished();
- g_assert(webkit_web_view_get_main_resource(test->m_webView));
+ resource = webkit_web_view_get_main_resource(test->m_webView);
+ g_assert(resource);
+ g_assert_cmpstr(webkit_web_resource_get_uri(resource), ==, javascriptURI.data());
test->goForward();
test->waitUntilResourceLoadFinished();
- g_assert(webkit_web_view_get_main_resource(test->m_webView));
+ resource = webkit_web_view_get_main_resource(test->m_webView);
+ g_assert(resource);
+ g_assert_cmpstr(webkit_web_resource_get_uri(resource), ==, simpleStyleCSSURI.data());
}
static void addCacheHTTPHeadersToResponse(SoupMessage* message)
@@ -567,6 +582,9 @@ static void serverCallback(SoupServer* server, SoupMessage* message, const char*
} else if (g_str_equal(path, "/invalid-css.html")) {
static const char* invalidCSSHtml = "<html><head><link rel='stylesheet' href='/invalid.css' type='text/css'></head><body></html>";
soup_message_body_append(message->response_body, SOUP_MEMORY_STATIC, invalidCSSHtml, strlen(invalidCSSHtml));
+ } else if (g_str_equal(path, "/simple-style-css.html")) {
+ static const char* simpleStyleCSSHtml = "<html><head><link rel='stylesheet' href='/simple-style.css' type='text/css'></head><body></html>";
+ soup_message_body_append(message->response_body, SOUP_MEMORY_STATIC, simpleStyleCSSHtml, strlen(simpleStyleCSSHtml));
} else if (g_str_equal(path, "/style.css")) {
soup_message_body_append(message->response_body, SOUP_MEMORY_STATIC, kStyleCSS, strlen(kStyleCSS));
addCacheHTTPHeadersToResponse(message);
@@ -594,6 +612,8 @@ static void serverCallback(SoupServer* server, SoupMessage* message, const char*
soup_message_headers_append(message->response_headers, "Location", "/simple-style.css");
} else if (g_str_equal(path, "/invalid.css"))
soup_message_set_status(message, SOUP_STATUS_CANT_CONNECT);
+ else
+ soup_message_set_status(message, SOUP_STATUS_NOT_FOUND);
soup_message_body_complete(message->response_body);
}
diff --git a/Source/WebKit2/UIProcess/API/gtk/tests/TestSSL.cpp b/Source/WebKit2/UIProcess/API/gtk/tests/TestSSL.cpp
index 40e9fbeee..8fa013dc4 100644
--- a/Source/WebKit2/UIProcess/API/gtk/tests/TestSSL.cpp
+++ b/Source/WebKit2/UIProcess/API/gtk/tests/TestSSL.cpp
@@ -82,9 +82,12 @@ static void serverCallback(SoupServer* server, SoupMessage* message, const char*
return;
}
- soup_message_set_status(message, SOUP_STATUS_OK);
- soup_message_body_append(message->response_body, SOUP_MEMORY_STATIC, indexHTML, strlen(indexHTML));
- soup_message_body_complete(message->response_body);
+ if (g_str_equal(path, "/")) {
+ soup_message_set_status(message, SOUP_STATUS_OK);
+ soup_message_body_append(message->response_body, SOUP_MEMORY_STATIC, indexHTML, strlen(indexHTML));
+ soup_message_body_complete(message->response_body);
+ } else
+ soup_message_set_status(message, SOUP_STATUS_NOT_FOUND);
}
void beforeAll()
diff --git a/Source/WebKit2/UIProcess/API/gtk/tests/TestWebKitFaviconDatabase.cpp b/Source/WebKit2/UIProcess/API/gtk/tests/TestWebKitFaviconDatabase.cpp
new file mode 100644
index 000000000..40fb5a17a
--- /dev/null
+++ b/Source/WebKit2/UIProcess/API/gtk/tests/TestWebKitFaviconDatabase.cpp
@@ -0,0 +1,246 @@
+/*
+ * Copyright (C) 2012 Igalia S.L.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2,1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
+
+#include "config.h"
+
+#include "WebKitTestServer.h"
+#include "WebViewTest.h"
+#include <glib/gstdio.h>
+#include <libsoup/soup.h>
+#include <wtf/gobject/GOwnPtr.h>
+
+static WebKitTestServer* kServer;
+static char* kTempDirectory;
+
+class FaviconDatabaseTest: public WebViewTest {
+public:
+ MAKE_GLIB_TEST_FIXTURE(FaviconDatabaseTest);
+
+ FaviconDatabaseTest()
+ : m_webContext(webkit_web_context_get_default())
+ , m_favicon(0)
+ , m_error(0)
+ , m_iconReadySignalReceived(false)
+ , m_faviconNotificationReceived(false)
+ {
+ WebKitFaviconDatabase* database = webkit_web_context_get_favicon_database(m_webContext);
+ g_signal_connect(database, "favicon-ready", G_CALLBACK(iconReadyCallback), this);
+ }
+
+ ~FaviconDatabaseTest()
+ {
+ if (m_favicon)
+ cairo_surface_destroy(m_favicon);
+
+ WebKitFaviconDatabase* database = webkit_web_context_get_favicon_database(m_webContext);
+ g_signal_handlers_disconnect_matched(database, G_SIGNAL_MATCH_DATA, 0, 0, 0, 0, this);
+ }
+
+ static void iconReadyCallback(WebKitFaviconDatabase* database, const char* pageURI, FaviconDatabaseTest* test)
+ {
+ g_assert_cmpstr(webkit_web_view_get_uri(test->m_webView), ==, pageURI);
+ test->m_iconReadySignalReceived = true;
+ }
+
+ static void faviconChangedCallback(WebKitWebView* webView, GParamSpec* pspec, gpointer data)
+ {
+ FaviconDatabaseTest* test = static_cast<FaviconDatabaseTest*>(data);
+ g_assert(test->m_webView == webView);
+ test->m_faviconNotificationReceived = true;
+ test->quitMainLoop();
+ }
+
+ static void getFaviconCallback(GObject* sourceObject, GAsyncResult* result, void* data)
+ {
+ FaviconDatabaseTest* test = static_cast<FaviconDatabaseTest*>(data);
+ WebKitFaviconDatabase* database = webkit_web_context_get_favicon_database(test->m_webContext);
+ test->m_favicon = webkit_favicon_database_get_favicon_finish(database, result, &test->m_error.outPtr());
+ test->quitMainLoop();
+ }
+
+ void waitUntilFaviconChanged()
+ {
+ m_faviconNotificationReceived = false;
+ unsigned long handlerID = g_signal_connect(m_webView, "notify::favicon", G_CALLBACK(faviconChangedCallback), this);
+ g_main_loop_run(m_mainLoop);
+ g_signal_handler_disconnect(m_webView, handlerID);
+ }
+
+ void getFaviconForPageURIAndWaitUntilReady(const char* pageURI)
+ {
+ m_error.clear();
+ if (m_favicon) {
+ cairo_surface_destroy(m_favicon);
+ m_favicon = 0;
+ }
+ WebKitFaviconDatabase* database = webkit_web_context_get_favicon_database(m_webContext);
+ webkit_favicon_database_get_favicon(database, pageURI, 0, getFaviconCallback, this);
+ g_main_loop_run(m_mainLoop);
+ }
+
+ WebKitWebContext* m_webContext;
+ cairo_surface_t* m_favicon;
+ GOwnPtr<GError> m_error;
+ bool m_iconReadySignalReceived;
+ bool m_faviconNotificationReceived;
+};
+
+static void
+serverCallback(SoupServer* server, SoupMessage* message, const char* path, GHashTable* query, SoupClientContext* context, void* data)
+{
+ if (message->method != SOUP_METHOD_GET) {
+ soup_message_set_status(message, SOUP_STATUS_NOT_IMPLEMENTED);
+ return;
+ }
+
+ char* contents;
+ gsize length;
+ if (g_str_equal(path, "/favicon.ico")) {
+ GOwnPtr<char> pathToFavicon(g_build_filename(Test::getWebKit1TestResoucesDir().data(), "blank.ico", NULL));
+ g_file_get_contents(pathToFavicon.get(), &contents, &length, 0);
+ } else if (g_str_equal(path, "/nofavicon/favicon.ico")) {
+ soup_message_set_status(message, SOUP_STATUS_NOT_FOUND);
+ soup_message_body_complete(message->response_body);
+ return;
+ } else {
+ contents = g_strdup("<html><body>test</body></html>");
+ length = strlen(contents);
+ }
+
+ soup_message_set_status(message, SOUP_STATUS_OK);
+ soup_message_body_append(message->response_body, SOUP_MEMORY_TAKE, contents, length);
+ soup_message_body_complete(message->response_body);
+}
+
+static void testNotInitialized(FaviconDatabaseTest* test, gconstpointer)
+{
+ // Try to retrieve a valid favicon from a not initialized database.
+ test->getFaviconForPageURIAndWaitUntilReady(kServer->getURIForPath("/").data());
+ g_assert(!test->m_favicon);
+ g_assert(test->m_error);
+ g_assert_cmpint(test->m_error->code, ==, WEBKIT_FAVICON_DATABASE_ERROR_NOT_INITIALIZED);
+}
+
+static void testSetDirectory(FaviconDatabaseTest* test, gconstpointer)
+{
+ webkit_web_context_set_favicon_database_directory(test->m_webContext, kTempDirectory);
+ g_assert_cmpstr(kTempDirectory, ==, webkit_web_context_get_favicon_database_directory(test->m_webContext));
+}
+
+static void testClearDatabase(FaviconDatabaseTest* test, gconstpointer)
+{
+ WebKitFaviconDatabase* database = webkit_web_context_get_favicon_database(test->m_webContext);
+ webkit_favicon_database_clear(database);
+
+ GOwnPtr<char> iconURI(webkit_favicon_database_get_favicon_uri(database, kServer->getURIForPath("/").data()));
+ g_assert(!iconURI);
+}
+
+static void testGetFavicon(FaviconDatabaseTest* test, gconstpointer)
+{
+ // We need to load the page first to ensure the icon data will be
+ // in the database in case there's an associated favicon.
+ test->loadURI(kServer->getURIForPath("/").data());
+ test->waitUntilFaviconChanged();
+ g_assert(test->m_iconReadySignalReceived);
+
+ // Check the API retrieving a valid favicon.
+ test->m_iconReadySignalReceived = false;
+ test->getFaviconForPageURIAndWaitUntilReady(kServer->getURIForPath("/").data());
+ g_assert(test->m_favicon);
+ g_assert(!test->m_error);
+ g_assert(!test->m_iconReadySignalReceived);
+
+ // Check that width and height match those from blank.ico (16x16 favicon).
+ g_assert_cmpint(cairo_image_surface_get_width(test->m_favicon), ==, 16);
+ g_assert_cmpint(cairo_image_surface_get_height(test->m_favicon), ==, 16);
+
+ // Check the API retrieving an invalid favicon.
+ test->loadURI(kServer->getURIForPath("/nofavicon").data());
+ test->waitUntilFaviconChanged();
+ g_assert(!test->m_iconReadySignalReceived);
+
+ test->getFaviconForPageURIAndWaitUntilReady(kServer->getURIForPath("/nofavicon/").data());
+ g_assert(!test->m_favicon);
+ g_assert(test->m_error);
+ g_assert(!test->m_iconReadySignalReceived);
+}
+
+static void testGetFaviconURI(FaviconDatabaseTest* test, gconstpointer)
+{
+ WebKitFaviconDatabase* database = webkit_web_context_get_favicon_database(test->m_webContext);
+
+ const char* baseURI = kServer->getURIForPath("/").data();
+ GOwnPtr<char> iconURI(webkit_favicon_database_get_favicon_uri(database, baseURI));
+ g_assert_cmpstr(iconURI.get(), ==, kServer->getURIForPath("/favicon.ico").data());
+}
+
+static void testWebViewFavicon(FaviconDatabaseTest* test, gconstpointer)
+{
+ cairo_surface_t* iconFromWebView = webkit_web_view_get_favicon(test->m_webView);
+ g_assert(!iconFromWebView);
+
+ test->loadURI(kServer->getURIForPath("/").data());
+ test->waitUntilFaviconChanged();
+ g_assert(test->m_faviconNotificationReceived);
+
+ iconFromWebView = webkit_web_view_get_favicon(test->m_webView);
+ g_assert(iconFromWebView);
+ g_assert_cmpuint(cairo_image_surface_get_width(iconFromWebView), ==, 16);
+ g_assert_cmpuint(cairo_image_surface_get_height(iconFromWebView), ==, 16);
+}
+
+void beforeAll()
+{
+ // Start a soup server for testing.
+ kServer = new WebKitTestServer();
+ kServer->run(serverCallback);
+
+ kTempDirectory = g_dir_make_tmp("WebKit2Tests-XXXXXX", 0);
+ g_assert(kTempDirectory);
+
+ // Add tests to the suite.
+ FaviconDatabaseTest::add("WebKitFaviconDatabase", "not-initialized", testNotInitialized);
+ FaviconDatabaseTest::add("WebKitFaviconDatabase", "set-directory", testSetDirectory);
+ FaviconDatabaseTest::add("WebKitFaviconDatabase", "get-favicon", testGetFavicon);
+ FaviconDatabaseTest::add("WebKitFaviconDatabase", "get-favicon-uri", testGetFaviconURI);
+ FaviconDatabaseTest::add("WebKitFaviconDatabase", "clear-database", testClearDatabase);
+ FaviconDatabaseTest::add("WebKitWebView", "favicon", testWebViewFavicon);
+}
+
+static void webkitFaviconDatabaseFinalizedCallback(gpointer, GObject*)
+{
+ if (!g_file_test(kTempDirectory, G_FILE_TEST_IS_DIR))
+ return;
+
+ GOwnPtr<char> filename(g_build_filename(kTempDirectory, "WebpageIcons.db", NULL));
+ g_unlink(filename.get());
+
+ g_rmdir(kTempDirectory);
+}
+
+void afterAll()
+{
+ delete kServer;
+
+ // Delete the temporary files after the IconDatabase has been
+ // closed, that is, once WebKitFaviconDatabase is being destroyed.
+ WebKitFaviconDatabase* database = webkit_web_context_get_favicon_database(webkit_web_context_get_default());
+ g_object_weak_ref(G_OBJECT(database), webkitFaviconDatabaseFinalizedCallback, 0);
+}
diff --git a/Source/WebKit2/UIProcess/API/gtk/tests/TestWebKitPolicyClient.cpp b/Source/WebKit2/UIProcess/API/gtk/tests/TestWebKitPolicyClient.cpp
index 9f6ce7819..abbfd652a 100644
--- a/Source/WebKit2/UIProcess/API/gtk/tests/TestWebKitPolicyClient.cpp
+++ b/Source/WebKit2/UIProcess/API/gtk/tests/TestWebKitPolicyClient.cpp
@@ -232,11 +232,13 @@ static void serverCallback(SoupServer* server, SoupMessage* message, const char*
return;
}
- soup_message_set_status(message, SOUP_STATUS_OK);
-
- static const char* responseString = "<html><body>Testing!</body></html>";
- soup_message_body_append(message->response_body, SOUP_MEMORY_STATIC, responseString, strlen(responseString));
- soup_message_body_complete(message->response_body);
+ if (g_str_equal(path, "/")) {
+ static const char* responseString = "<html><body>Testing!</body></html>";
+ soup_message_set_status(message, SOUP_STATUS_OK);
+ soup_message_body_append(message->response_body, SOUP_MEMORY_STATIC, responseString, strlen(responseString));
+ soup_message_body_complete(message->response_body);
+ } else
+ soup_message_set_status(message, SOUP_STATUS_NOT_FOUND);
}
void beforeAll()
diff --git a/Source/WebKit2/UIProcess/API/gtk/tests/TestWebKitSettings.cpp b/Source/WebKit2/UIProcess/API/gtk/tests/TestWebKitSettings.cpp
index d8e355472..c7a0dc259 100644
--- a/Source/WebKit2/UIProcess/API/gtk/tests/TestWebKitSettings.cpp
+++ b/Source/WebKit2/UIProcess/API/gtk/tests/TestWebKitSettings.cpp
@@ -243,6 +243,11 @@ static void testWebKitSettings(Test*, gconstpointer)
webkit_settings_set_enable_page_cache(settings, FALSE);
g_assert(!webkit_settings_get_enable_page_cache(settings));
+ // By default, smooth scrolling is disabled.
+ g_assert(!webkit_settings_get_enable_smooth_scrolling(settings));
+ webkit_settings_set_enable_smooth_scrolling(settings, TRUE);
+ g_assert(webkit_settings_get_enable_smooth_scrolling(settings));
+
g_object_unref(G_OBJECT(settings));
}
@@ -315,10 +320,13 @@ static void serverCallback(SoupServer* server, SoupMessage* message, const char*
return;
}
- soup_message_set_status(message, SOUP_STATUS_OK);
- const char* userAgent = soup_message_headers_get_one(message->request_headers, "User-Agent");
- soup_message_body_append(message->response_body, SOUP_MEMORY_COPY, userAgent, strlen(userAgent));
- soup_message_body_complete(message->response_body);
+ if (g_str_equal(path, "/")) {
+ const char* userAgent = soup_message_headers_get_one(message->request_headers, "User-Agent");
+ soup_message_set_status(message, SOUP_STATUS_OK);
+ soup_message_body_append(message->response_body, SOUP_MEMORY_COPY, userAgent, strlen(userAgent));
+ soup_message_body_complete(message->response_body);
+ } else
+ soup_message_set_status(message, SOUP_STATUS_NOT_FOUND);
}
void beforeAll()
diff --git a/Source/WebKit2/UIProcess/API/gtk/tests/TestWebKitWebContext.cpp b/Source/WebKit2/UIProcess/API/gtk/tests/TestWebKitWebContext.cpp
index 7a13d285d..185c06cfe 100644
--- a/Source/WebKit2/UIProcess/API/gtk/tests/TestWebKitWebContext.cpp
+++ b/Source/WebKit2/UIProcess/API/gtk/tests/TestWebKitWebContext.cpp
@@ -146,6 +146,8 @@ public:
test->m_uriSchemeRequest = request;
test->assertObjectIsDeletedWhenTestFinishes(G_OBJECT(request));
+ g_assert(webkit_uri_scheme_request_get_web_view(request) == test->m_webView);
+
GRefPtr<GInputStream> inputStream = adoptGRef(g_memory_input_stream_new());
test->assertObjectIsDeletedWhenTestFinishes(G_OBJECT(inputStream.get()));
@@ -291,10 +293,13 @@ static void serverCallback(SoupServer* server, SoupMessage* message, const char*
return;
}
- soup_message_set_status(message, SOUP_STATUS_OK);
- const char* acceptLanguage = soup_message_headers_get_one(message->request_headers, "Accept-Language");
- soup_message_body_append(message->response_body, SOUP_MEMORY_COPY, acceptLanguage, strlen(acceptLanguage));
- soup_message_body_complete(message->response_body);
+ if (g_str_equal(path, "/")) {
+ const char* acceptLanguage = soup_message_headers_get_one(message->request_headers, "Accept-Language");
+ soup_message_set_status(message, SOUP_STATUS_OK);
+ soup_message_body_append(message->response_body, SOUP_MEMORY_COPY, acceptLanguage, strlen(acceptLanguage));
+ soup_message_body_complete(message->response_body);
+ } else
+ soup_message_set_status(message, SOUP_STATUS_NOT_FOUND);
}
class SecurityPolicyTest: public Test {
diff --git a/Source/WebKit2/UIProcess/API/gtk/tests/TestWebKitWebView.cpp b/Source/WebKit2/UIProcess/API/gtk/tests/TestWebKitWebView.cpp
index 02e8138de..f5197b936 100644
--- a/Source/WebKit2/UIProcess/API/gtk/tests/TestWebKitWebView.cpp
+++ b/Source/WebKit2/UIProcess/API/gtk/tests/TestWebKitWebView.cpp
@@ -643,6 +643,17 @@ static void testWebViewRunJavaScript(WebViewTest* test, gconstpointer)
g_assert(!error.get());
g_assert(WebViewTest::javascriptResultIsUndefined(javascriptResult));
+ javascriptResult = test->runJavaScriptFromGResourceAndWaitUntilFinished("/org/webkit/webkit2gtk/tests/link-title.js", &error.outPtr());
+ g_assert(javascriptResult);
+ g_assert(!error.get());
+ valueString.set(WebViewTest::javascriptResultToCString(javascriptResult));
+ g_assert_cmpstr(valueString.get(), ==, "WebKitGTK+ Title");
+
+ javascriptResult = test->runJavaScriptFromGResourceAndWaitUntilFinished("/wrong/path/to/resource.js", &error.outPtr());
+ g_assert(!javascriptResult);
+ g_assert_error(error.get(), G_RESOURCE_ERROR, G_RESOURCE_ERROR_NOT_FOUND);
+ error.clear();
+
javascriptResult = test->runJavaScriptAndWaitUntilFinished("foo();", &error.outPtr());
g_assert(!javascriptResult);
g_assert_error(error.get(), WEBKIT_JAVASCRIPT_ERROR, WEBKIT_JAVASCRIPT_ERROR_SCRIPT_FAILED);
diff --git a/Source/WebKit2/UIProcess/API/gtk/tests/WebViewTest.cpp b/Source/WebKit2/UIProcess/API/gtk/tests/WebViewTest.cpp
index 04747480e..7e7eb0167 100644
--- a/Source/WebKit2/UIProcess/API/gtk/tests/WebViewTest.cpp
+++ b/Source/WebKit2/UIProcess/API/gtk/tests/WebViewTest.cpp
@@ -313,6 +313,12 @@ static void runJavaScriptReadyCallback(GObject*, GAsyncResult* result, WebViewTe
g_main_loop_quit(test->m_mainLoop);
}
+static void runJavaScriptFromGResourceReadyCallback(GObject*, GAsyncResult* result, WebViewTest* test)
+{
+ test->m_javascriptResult = webkit_web_view_run_javascript_from_gresource_finish(test->m_webView, result, test->m_javascriptError);
+ g_main_loop_quit(test->m_mainLoop);
+}
+
WebKitJavascriptResult* WebViewTest::runJavaScriptAndWaitUntilFinished(const char* javascript, GError** error)
{
if (m_javascriptResult)
@@ -325,6 +331,18 @@ WebKitJavascriptResult* WebViewTest::runJavaScriptAndWaitUntilFinished(const cha
return m_javascriptResult;
}
+WebKitJavascriptResult* WebViewTest::runJavaScriptFromGResourceAndWaitUntilFinished(const char* resource, GError** error)
+{
+ if (m_javascriptResult)
+ webkit_javascript_result_unref(m_javascriptResult);
+ m_javascriptResult = 0;
+ m_javascriptError = error;
+ webkit_web_view_run_javascript_from_gresource(m_webView, resource, 0, reinterpret_cast<GAsyncReadyCallback>(runJavaScriptFromGResourceReadyCallback), this);
+ g_main_loop_run(m_mainLoop);
+
+ return m_javascriptResult;
+}
+
static char* jsValueToCString(JSGlobalContextRef context, JSValueRef value)
{
g_assert(value);
diff --git a/Source/WebKit2/UIProcess/API/gtk/tests/WebViewTest.h b/Source/WebKit2/UIProcess/API/gtk/tests/WebViewTest.h
index 25209caa3..06f398f96 100644
--- a/Source/WebKit2/UIProcess/API/gtk/tests/WebViewTest.h
+++ b/Source/WebKit2/UIProcess/API/gtk/tests/WebViewTest.h
@@ -55,6 +55,7 @@ public:
void keyStroke(unsigned int keyVal, unsigned int keyModifiers = 0);
WebKitJavascriptResult* runJavaScriptAndWaitUntilFinished(const char* javascript, GError**);
+ WebKitJavascriptResult* runJavaScriptFromGResourceAndWaitUntilFinished(const char* resource, GError**);
// Javascript result helpers.
static char* javascriptResultToCString(WebKitJavascriptResult*);
diff --git a/Source/WebKit2/UIProcess/API/gtk/tests/resources/link-title.js b/Source/WebKit2/UIProcess/API/gtk/tests/resources/link-title.js
new file mode 100644
index 000000000..2c824da38
--- /dev/null
+++ b/Source/WebKit2/UIProcess/API/gtk/tests/resources/link-title.js
@@ -0,0 +1 @@
+window.document.getElementById('WebKitLink').title;
diff --git a/Source/WebKit2/UIProcess/API/gtk/tests/resources/webkit2gtk-tests.gresource.xml b/Source/WebKit2/UIProcess/API/gtk/tests/resources/webkit2gtk-tests.gresource.xml
new file mode 100644
index 000000000..4f1e5a654
--- /dev/null
+++ b/Source/WebKit2/UIProcess/API/gtk/tests/resources/webkit2gtk-tests.gresource.xml
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<gresources>
+ <gresource prefix="/org/webkit/webkit2gtk/tests/">
+ <file alias="link-title.js">Source/WebKit2/UIProcess/API/gtk/tests/resources/link-title.js</file>
+ </gresource>
+</gresources>
diff --git a/Source/WebKit2/UIProcess/API/gtk/webkit2.h b/Source/WebKit2/UIProcess/API/gtk/webkit2.h
index e1f3ba04a..1b4fa86a1 100644
--- a/Source/WebKit2/UIProcess/API/gtk/webkit2.h
+++ b/Source/WebKit2/UIProcess/API/gtk/webkit2.h
@@ -34,6 +34,7 @@
#include <webkit2/WebKitEditingCommands.h>
#include <webkit2/WebKitEnumTypes.h>
#include <webkit2/WebKitError.h>
+#include <webkit2/WebKitFaviconDatabase.h>
#include <webkit2/WebKitFileChooserRequest.h>
#include <webkit2/WebKitFindController.h>
#include <webkit2/WebKitFormSubmissionRequest.h>
diff --git a/Source/WebKit2/UIProcess/API/mac/WKBrowsingContextGroup.h b/Source/WebKit2/UIProcess/API/mac/WKBrowsingContextGroup.h
index f3428fc93..f26c952c0 100644
--- a/Source/WebKit2/UIProcess/API/mac/WKBrowsingContextGroup.h
+++ b/Source/WebKit2/UIProcess/API/mac/WKBrowsingContextGroup.h
@@ -36,6 +36,11 @@ WK_EXPORT
- (id)initWithIdentifier:(NSString *)identifier;
+/* User Content */
+
+- (void)addUserStyleSheet:(NSString *)source baseURL:(NSURL *)baseURL whitelist:(NSArray *)whitelist blacklist:(NSArray *)blacklist mainFrameOnly:(BOOL)mainFrameOnly;
+- (void)removeAllUserStyleSheets;
+
/* Settings */
diff --git a/Source/WebKit2/UIProcess/API/mac/WKBrowsingContextGroup.mm b/Source/WebKit2/UIProcess/API/mac/WKBrowsingContextGroup.mm
index 338d390ca..87cffd0e7 100644
--- a/Source/WebKit2/UIProcess/API/mac/WKBrowsingContextGroup.mm
+++ b/Source/WebKit2/UIProcess/API/mac/WKBrowsingContextGroup.mm
@@ -27,10 +27,14 @@
#import "WKBrowsingContextGroup.h"
#import "WKBrowsingContextGroupInternal.h"
+#import "WKArray.h"
#import "WKPageGroup.h"
#import "WKPreferences.h"
#import "WKRetainPtr.h"
#import "WKStringCF.h"
+#import "WKURL.h"
+#import "WKURLCF.h"
+#import <wtf/Vector.h>
@interface WKBrowsingContextGroupData : NSObject {
@public
@@ -81,6 +85,43 @@
WKPreferencesSetPluginsEnabled(WKPageGroupGetPreferences(self._pageGroupRef), allowsPlugIns);
}
+static WKArrayRef createWKArray(NSArray *array)
+{
+ NSUInteger count = [array count];
+ if (count == 0)
+ return WKArrayRef();
+
+ Vector<WKTypeRef> stringVector;
+ stringVector.reserveInitialCapacity(count);
+ for (NSUInteger i = 0; i < count; ++i) {
+ id entry = [array objectAtIndex:i];
+ if ([entry isKindOfClass:[NSString class]])
+ stringVector.uncheckedAppend(WKStringCreateWithCFString((CFStringRef)entry));
+
+ }
+
+ return WKArrayCreateAdoptingValues(stringVector.data(), stringVector.size());
+}
+
+-(void)addUserStyleSheet:(NSString *)source baseURL:(NSURL *)baseURL whitelist:(NSArray *)whitelist blacklist:(NSArray *)blacklist mainFrameOnly:(BOOL)mainFrameOnly
+{
+ if (!source)
+ return;
+
+ WKRetainPtr<WKStringRef> wkSource = adoptWK(WKStringCreateWithCFString((CFStringRef)source));
+ WKRetainPtr<WKURLRef> wkBaseURL = adoptWK(WKURLCreateWithCFURL((CFURLRef)baseURL));
+ WKRetainPtr<WKArrayRef> wkWhitelist = adoptWK(createWKArray(whitelist));
+ WKRetainPtr<WKArrayRef> wkBlacklist = adoptWK(createWKArray(blacklist));
+ WKUserContentInjectedFrames injectedFrames = mainFrameOnly ? kWKInjectInTopFrameOnly : kWKInjectInAllFrames;
+
+ WKPageGroupAddUserStyleSheet(self._pageGroupRef, wkSource.get(), wkBaseURL.get(), wkWhitelist.get(), wkBlacklist.get(), injectedFrames);
+}
+
+- (void)removeAllUserStyleSheets
+{
+ WKPageGroupRemoveAllUserStyleSheets(self._pageGroupRef);
+}
+
@end
@implementation WKBrowsingContextGroup (Internal)
diff --git a/Source/WebKit2/UIProcess/API/mac/WKPrintingView.mm b/Source/WebKit2/UIProcess/API/mac/WKPrintingView.mm
index 63c58895f..ca1cad582 100644
--- a/Source/WebKit2/UIProcess/API/mac/WKPrintingView.mm
+++ b/Source/WebKit2/UIProcess/API/mac/WKPrintingView.mm
@@ -194,8 +194,8 @@ static BOOL isForcingPreviewUpdate;
- (uint64_t)_expectedPreviewCallbackForRect:(const IntRect&)rect
{
for (HashMap<uint64_t, WebCore::IntRect>::iterator iter = _expectedPreviewCallbacks.begin(); iter != _expectedPreviewCallbacks.end(); ++iter) {
- if (iter->second == rect)
- return iter->first;
+ if (iter->value == rect)
+ return iter->key;
}
return 0;
}
@@ -229,8 +229,8 @@ static void pageDidDrawToPDF(WKDataRef dataRef, WKErrorRef, void* untypedContext
ASSERT([view _isPrintingPreview]);
if (data) {
- HashMap<WebCore::IntRect, Vector<uint8_t> >::AddResult entry = view->_pagePreviews.add(iter->second, Vector<uint8_t>());
- entry.iterator->second.append(data->bytes(), data->size());
+ HashMap<WebCore::IntRect, Vector<uint8_t> >::AddResult entry = view->_pagePreviews.add(iter->value, Vector<uint8_t>());
+ entry.iterator->value.append(data->bytes(), data->size());
}
view->_expectedPreviewCallbacks.remove(context->callbackID);
bool receivedResponseToLatestRequest = view->_latestExpectedPreviewCallback == context->callbackID;
@@ -494,7 +494,7 @@ static void prepareDataForPrintingOnSecondaryThread(void* untypedContext)
return;
}
- const Vector<uint8_t>& pdfDataBytes = pagePreviewIterator->second;
+ const Vector<uint8_t>& pdfDataBytes = pagePreviewIterator->value;
RetainPtr<NSData> pdfData(AdoptNS, [[NSData alloc] initWithBytes:pdfDataBytes.data() length:pdfDataBytes.size()]);
RetainPtr<PDFDocument> pdfDocument(AdoptNS, [[pdfDocumentClass() alloc] initWithData:pdfData.get()]);
diff --git a/Source/WebKit2/UIProcess/API/mac/WKView.mm b/Source/WebKit2/UIProcess/API/mac/WKView.mm
index 9d69399d4..d4b301298 100644
--- a/Source/WebKit2/UIProcess/API/mac/WKView.mm
+++ b/Source/WebKit2/UIProcess/API/mac/WKView.mm
@@ -428,7 +428,7 @@ static String commandNameForSelector(SEL selector)
static const SelectorNameMap* exceptionMap = createSelectorExceptionMap();
SelectorNameMap::const_iterator it = exceptionMap->find(selector);
if (it != exceptionMap->end())
- return it->second;
+ return it->value;
// Remove the trailing colon.
// No need to capitalize the command name since Editor command names are
@@ -742,7 +742,7 @@ static void validateCommandCallback(WKStringRef commandName, bool isEnabled, int
// Add this item to the vector of items for a given command that are awaiting validation.
ValidationMap::AddResult addResult = _data->_validationMap.add(commandName, ValidationVector());
- addResult.iterator->second.append(item);
+ addResult.iterator->value.append(item);
if (addResult.isNewEntry) {
// If we are not already awaiting validation for this command, start the asynchronous validation process.
// FIXME: Theoretically, there is a race here; when we get the answer it might be old, from a previous time
diff --git a/Source/WebKit2/UIProcess/API/qt/qquickwebpage.cpp b/Source/WebKit2/UIProcess/API/qt/qquickwebpage.cpp
index db51b85dd..71688cbe6 100644
--- a/Source/WebKit2/UIProcess/API/qt/qquickwebpage.cpp
+++ b/Source/WebKit2/UIProcess/API/qt/qquickwebpage.cpp
@@ -158,7 +158,7 @@ void QQuickWebPagePrivate::updateSize()
DrawingAreaProxy* drawingArea = webPageProxy->drawingArea();
if (drawingArea && drawingArea->layerTreeCoordinatorProxy())
- drawingArea->layerTreeCoordinatorProxy()->setContentsSize(contentsSize);
+ drawingArea->layerTreeCoordinatorProxy()->setContentsSize(WebCore::FloatSize(contentsSize));
q->setSize(scaledSize);
diff --git a/Source/WebKit2/UIProcess/API/qt/qquickwebview.cpp b/Source/WebKit2/UIProcess/API/qt/qquickwebview.cpp
index b78cae0f3..07ed832ce 100644
--- a/Source/WebKit2/UIProcess/API/qt/qquickwebview.cpp
+++ b/Source/WebKit2/UIProcess/API/qt/qquickwebview.cpp
@@ -268,6 +268,7 @@ QQuickWebViewPrivate::QQuickWebViewPrivate(QQuickWebView* viewport)
, filePicker(0)
, databaseQuotaDialog(0)
, colorChooser(0)
+ , m_betweenLoadCommitAndFirstFrame(false)
, m_useDefaultContentItemSize(true)
, m_navigatorQtObjectEnabled(false)
, m_renderToOffscreenBuffer(false)
@@ -330,14 +331,6 @@ void QQuickWebViewPrivate::loadDidStop()
emit q->loadingChanged(&loadRequest);
}
-void QQuickWebViewPrivate::onComponentComplete()
-{
- Q_Q(QQuickWebView);
- m_pageViewportControllerClient.reset(new PageViewportControllerClientQt(q, pageView.data()));
- m_pageViewportController.reset(new PageViewportController(webPageProxy.get(), m_pageViewportControllerClient.data()));
- pageView->eventHandler()->setViewportController(m_pageViewportControllerClient.data());
-}
-
void QQuickWebViewPrivate::setTransparentBackground(bool enable)
{
webPageProxy->setDrawsTransparentBackground(enable);
@@ -370,6 +363,7 @@ void QQuickWebViewPrivate::loadDidCommit()
Q_Q(QQuickWebView);
ASSERT(q->loading());
+ m_betweenLoadCommitAndFirstFrame = true;
emit q->navigationHistoryChanged();
emit q->titleChanged();
}
@@ -452,10 +446,18 @@ void QQuickWebViewPrivate::setNeedsDisplay()
q->page()->d->paint(&painter);
return;
}
-
q->page()->update();
}
+void QQuickWebViewPrivate::didRenderFrame()
+{
+ Q_Q(QQuickWebView);
+ if (m_betweenLoadCommitAndFirstFrame) {
+ emit q->experimental()->loadVisuallyCommitted();
+ m_betweenLoadCommitAndFirstFrame = false;
+ }
+}
+
void QQuickWebViewPrivate::processDidCrash()
{
Q_Q(QQuickWebView);
@@ -478,8 +480,6 @@ void QQuickWebViewPrivate::didRelaunchProcess()
{
qWarning("WARNING: The web process has been successfully restarted.");
- // Reset to default so that the later update can reach the web process.
- webPageProxy->setCustomDeviceScaleFactor(0);
webPageProxy->drawingArea()->setSize(viewSize(), IntSize());
updateViewportSize();
@@ -820,12 +820,17 @@ void QQuickWebViewLegacyPrivate::updateViewportSize()
QSizeF viewportSize = q->boundingRect().size();
if (viewportSize.isEmpty())
return;
+
+ float devicePixelRatio = webPageProxy->deviceScaleFactor();
pageView->setContentsSize(viewportSize);
+ // Make sure that our scale matches the one passed to setVisibleContentsRect.
+ pageView->setContentsScale(devicePixelRatio);
+
// The fixed layout is handled by the FrameView and the drawing area doesn't behave differently
// whether its fixed or not. We still need to tell the drawing area which part of it
// has to be rendered on tiles, and in desktop mode it's all of it.
- webPageProxy->drawingArea()->setSize(viewportSize.toSize(), IntSize());
- webPageProxy->drawingArea()->setVisibleContentsRect(FloatRect(FloatPoint(), viewportSize), 1, FloatPoint());
+ webPageProxy->drawingArea()->setSize((viewportSize / devicePixelRatio).toSize(), IntSize());
+ webPageProxy->drawingArea()->setVisibleContentsRect(FloatRect(FloatPoint(), FloatSize(viewportSize / devicePixelRatio)), devicePixelRatio, FloatPoint());
}
qreal QQuickWebViewLegacyPrivate::zoomFactor() const
@@ -853,6 +858,11 @@ void QQuickWebViewFlickablePrivate::onComponentComplete()
{
QQuickWebViewPrivate::onComponentComplete();
+ Q_Q(QQuickWebView);
+ m_pageViewportControllerClient.reset(new PageViewportControllerClientQt(q, pageView.data()));
+ m_pageViewportController.reset(new PageViewportController(webPageProxy.get(), m_pageViewportControllerClient.data()));
+ pageView->eventHandler()->setViewportController(m_pageViewportControllerClient.data());
+
// Trigger setting of correct visibility flags after everything was allocated and initialized.
_q_onVisibleChanged();
}
@@ -868,7 +878,7 @@ void QQuickWebViewFlickablePrivate::updateViewportSize()
Q_Q(QQuickWebView);
if (m_pageViewportController)
- m_pageViewportController->didChangeViewportSize(QSizeF(q->width(), q->height()));
+ m_pageViewportController->didChangeViewportSize(FloatSize(q->width(), q->height()));
}
void QQuickWebViewFlickablePrivate::pageDidRequestScroll(const QPoint& pos)
@@ -877,13 +887,6 @@ void QQuickWebViewFlickablePrivate::pageDidRequestScroll(const QPoint& pos)
m_pageViewportController->pageDidRequestScroll(pos);
}
-void QQuickWebViewFlickablePrivate::didChangeContentsSize(const QSize& newSize)
-{
- QQuickWebViewPrivate::didChangeContentsSize(newSize);
- pageView->setContentsSize(newSize); // emits contentsSizeChanged()
- m_pageViewportController->didChangeContentsSize(newSize);
-}
-
void QQuickWebViewFlickablePrivate::handleMouseEvent(QMouseEvent* event)
{
if (!pageView->eventHandler())
@@ -1233,7 +1236,7 @@ void QQuickWebViewExperimental::setDevicePixelRatio(qreal devicePixelRatio)
if (0 >= devicePixelRatio || devicePixelRatio == this->devicePixelRatio())
return;
- d->webPageProxy->setCustomDeviceScaleFactor(devicePixelRatio);
+ d->webPageProxy->setIntrinsicDeviceScaleFactor(devicePixelRatio);
emit devicePixelRatioChanged();
}
diff --git a/Source/WebKit2/UIProcess/API/qt/qquickwebview_p.h b/Source/WebKit2/UIProcess/API/qt/qquickwebview_p.h
index e8b1bf7a1..89e7fbc99 100644
--- a/Source/WebKit2/UIProcess/API/qt/qquickwebview_p.h
+++ b/Source/WebKit2/UIProcess/API/qt/qquickwebview_p.h
@@ -355,6 +355,7 @@ public Q_SLOTS:
void evaluateJavaScript(const QString& script, const QJSValue& value = QJSValue());
Q_SIGNALS:
+ void loadVisuallyCommitted();
void alertDialogChanged();
void confirmDialogChanged();
void promptDialogChanged();
diff --git a/Source/WebKit2/UIProcess/API/qt/qquickwebview_p_p.h b/Source/WebKit2/UIProcess/API/qt/qquickwebview_p_p.h
index f172ad68f..15bf818d7 100644
--- a/Source/WebKit2/UIProcess/API/qt/qquickwebview_p_p.h
+++ b/Source/WebKit2/UIProcess/API/qt/qquickwebview_p_p.h
@@ -70,7 +70,7 @@ public:
virtual void initialize(WKContextRef contextRef = 0, WKPageGroupRef pageGroupRef = 0);
- virtual void onComponentComplete();
+ virtual void onComponentComplete() { }
virtual void provisionalLoadDidStart(const WTF::String& url);
virtual void didReceiveServerRedirectForProvisionalLoad(const WTF::String& url);
@@ -88,8 +88,9 @@ public:
int loadProgress() const { return m_loadProgress; }
void setNeedsDisplay();
+ void didRenderFrame();
- WebKit::PageViewportController* viewportController() const { return m_pageViewportController.data(); }
+ virtual WebKit::PageViewportController* viewportController() const { return 0; }
virtual void updateViewportSize() { }
void updateTouchViewportSize();
@@ -130,7 +131,6 @@ public:
WebCore::IntSize viewSize() const;
void didReceiveMessageFromNavigatorQtObject(const String& message);
virtual void pageDidRequestScroll(const QPoint& pos) { }
- virtual void didChangeContentsSize(const QSize& newSize) { }
void processDidCrash();
void didRelaunchProcess();
PassOwnPtr<WebKit::DrawingAreaProxy> createDrawingAreaProxy();
@@ -172,9 +172,6 @@ protected:
QScopedPointer<QQuickWebPage> pageView;
QQuickWebView* q_ptr;
- QScopedPointer<WebKit::PageViewportController> m_pageViewportController;
- QScopedPointer<WebKit::PageViewportControllerClientQt> m_pageViewportControllerClient;
-
FlickableAxisLocker axisLocker;
QQmlComponent* alertDialog;
@@ -190,6 +187,7 @@ protected:
QList<QUrl> userScripts;
+ bool m_betweenLoadCommitAndFirstFrame;
bool m_useDefaultContentItemSize;
bool m_navigatorQtObjectEnabled;
bool m_renderToOffscreenBuffer;
@@ -220,11 +218,15 @@ public:
virtual void onComponentComplete();
virtual void didChangeViewportProperties(const WebCore::ViewportAttributes&);
+ virtual WebKit::PageViewportController* viewportController() const { return m_pageViewportController.data(); }
virtual void updateViewportSize();
virtual void pageDidRequestScroll(const QPoint& pos);
- virtual void didChangeContentsSize(const QSize& newSize);
virtual void handleMouseEvent(QMouseEvent*);
+
+private:
+ QScopedPointer<WebKit::PageViewportController> m_pageViewportController;
+ QScopedPointer<WebKit::PageViewportControllerClientQt> m_pageViewportControllerClient;
};
#endif // qquickwebview_p_p_h
diff --git a/Source/WebKit2/UIProcess/API/qt/raw/qrawwebview.cpp b/Source/WebKit2/UIProcess/API/qt/raw/qrawwebview.cpp
index 0a7a684cf..5f6c16d56 100644
--- a/Source/WebKit2/UIProcess/API/qt/raw/qrawwebview.cpp
+++ b/Source/WebKit2/UIProcess/API/qt/raw/qrawwebview.cpp
@@ -167,6 +167,11 @@ void QRawWebViewPrivate::toolTipChanged(const String&, const String& newTooltip)
notImplemented();
}
+void QRawWebViewPrivate::pageTransitionViewportReady()
+{
+ m_webPageProxy->commitPageTransitionViewport();
+}
+
void QRawWebViewPrivate::startDrag(const WebCore::DragData& dragData, PassRefPtr<WebKit::ShareableBitmap> dragImage)
{
notImplemented();
@@ -319,6 +324,7 @@ void QRawWebView::setActive(bool active)
{
d->m_active = active;
d->m_webPageProxy->viewStateDidChange(WebKit::WebPageProxy::ViewWindowIsActive);
+ layerTreeRenderer()->setActive(active);
}
QSize QRawWebView::size() const
@@ -352,17 +358,20 @@ WKPageRef QRawWebView::pageRef()
return toAPI(d->m_webPageProxy.get());
}
-void QRawWebView::paint(const QMatrix4x4& transform, float opacity, unsigned paintFlags)
+WebKit::LayerTreeRenderer* QRawWebView::layerTreeRenderer() const
{
WebKit::DrawingAreaProxy* drawingArea = d->m_webPageProxy->drawingArea();
if (!drawingArea)
- return;
-
- WebKit::LayerTreeCoordinatorProxy* coordinatorProxy = drawingArea->layerTreeCoordinatorProxy();
- if (!coordinatorProxy)
- return;
+ return 0;
+ WebKit::LayerTreeCoordinatorProxy* layerTreeCoordinatorProxy = drawingArea->layerTreeCoordinatorProxy();
+ if (!layerTreeCoordinatorProxy)
+ return 0;
+ return layerTreeCoordinatorProxy->layerTreeRenderer();
+}
- WebKit::LayerTreeRenderer* renderer = coordinatorProxy->layerTreeRenderer();
+void QRawWebView::paint(const QMatrix4x4& transform, float opacity, unsigned paintFlags)
+{
+ WebKit::LayerTreeRenderer* renderer = layerTreeRenderer();
if (!renderer)
return;
diff --git a/Source/WebKit2/UIProcess/API/qt/raw/qrawwebview_p.h b/Source/WebKit2/UIProcess/API/qt/raw/qrawwebview_p.h
index f8f15b06d..015815ad8 100644
--- a/Source/WebKit2/UIProcess/API/qt/raw/qrawwebview_p.h
+++ b/Source/WebKit2/UIProcess/API/qt/raw/qrawwebview_p.h
@@ -47,6 +47,10 @@ QT_END_NAMESPACE
class QRawWebViewPrivate;
+namespace WebKit {
+class LayerTreeRenderer;
+}
+
class QRawWebViewClient {
public:
virtual ~QRawWebViewClient() { }
@@ -97,6 +101,8 @@ public:
void sendTouchEvent(QTouchEvent*);
private:
+ WebKit::LayerTreeRenderer* layerTreeRenderer() const;
+
QRawWebViewPrivate* d;
};
diff --git a/Source/WebKit2/UIProcess/API/qt/raw/qrawwebview_p_p.h b/Source/WebKit2/UIProcess/API/qt/raw/qrawwebview_p_p.h
index 55bc85ba0..545096d02 100644
--- a/Source/WebKit2/UIProcess/API/qt/raw/qrawwebview_p_p.h
+++ b/Source/WebKit2/UIProcess/API/qt/raw/qrawwebview_p_p.h
@@ -82,6 +82,7 @@ public:
virtual void setCursorHiddenUntilMouseMoves(bool hiddenUntilMouseMoves);
virtual void toolTipChanged(const String&, const String& newTooltip);
+ virtual void pageTransitionViewportReady();
virtual void startDrag(const WebCore::DragData& dragData, PassRefPtr<WebKit::ShareableBitmap> dragImage);
@@ -104,6 +105,7 @@ public:
virtual void didRelaunchProcess();
virtual void setViewNeedsDisplay(const WebCore::IntRect& rect);
virtual void didChangeContentsSize(const WebCore::IntSize& newSize);
+ virtual void didRenderFrame(const WebCore::IntSize& contentsSize, const WebCore::IntRect& coveredRect) { }
virtual void setCursor(const WebCore::Cursor&);
virtual bool isViewFocused() { return m_focused; }
diff --git a/Source/WebKit2/UIProcess/API/qt/tests/inspectorserver/inspectorserver.pro b/Source/WebKit2/UIProcess/API/qt/tests/inspectorserver/inspectorserver.pro
index 4a8d86f80..bc5307f2d 100644
--- a/Source/WebKit2/UIProcess/API/qt/tests/inspectorserver/inspectorserver.pro
+++ b/Source/WebKit2/UIProcess/API/qt/tests/inspectorserver/inspectorserver.pro
@@ -1,4 +1,4 @@
include(../tests.pri)
SOURCES += $${TARGET}.cpp
-QT += webkit-private
+QT += webkitwidgets-private
DEFINES += IMPORT_DIR=\"\\\"$${ROOT_BUILD_DIR}$${QMAKE_DIR_SEP}imports\\\"\"
diff --git a/Source/WebKit2/UIProcess/API/qt/tests/publicapi/publicapi.pro b/Source/WebKit2/UIProcess/API/qt/tests/publicapi/publicapi.pro
index 02dc197c7..ba8f4cea3 100644
--- a/Source/WebKit2/UIProcess/API/qt/tests/publicapi/publicapi.pro
+++ b/Source/WebKit2/UIProcess/API/qt/tests/publicapi/publicapi.pro
@@ -1,3 +1,3 @@
include(../tests.pri)
SOURCES += $${TARGET}.cpp
-QT += webkit-private
+QT += webkitwidgets-private
diff --git a/Source/WebKit2/UIProcess/API/qt/tests/qmltests/DesktopBehavior.pro b/Source/WebKit2/UIProcess/API/qt/tests/qmltests/DesktopBehavior.pro
index 3fd3d4583..7c72fd2f1 100644
--- a/Source/WebKit2/UIProcess/API/qt/tests/qmltests/DesktopBehavior.pro
+++ b/Source/WebKit2/UIProcess/API/qt/tests/qmltests/DesktopBehavior.pro
@@ -3,7 +3,7 @@ SOURCES += tst_qmltests.cpp
TARGET = tst_qmltests_DesktopBehavior
OBJECTS_DIR = obj_DesktopBehavior/$$activeBuildConfig()
-QT += webkit-private
+QT += webkitwidgets-private
CONFIG += warn_on testcase
QT += qmltest
diff --git a/Source/WebKit2/UIProcess/API/qt/tests/qmltests/WebView.pro b/Source/WebKit2/UIProcess/API/qt/tests/qmltests/WebView.pro
index b340235e4..3e217b369 100644
--- a/Source/WebKit2/UIProcess/API/qt/tests/qmltests/WebView.pro
+++ b/Source/WebKit2/UIProcess/API/qt/tests/qmltests/WebView.pro
@@ -3,7 +3,7 @@ SOURCES += tst_qmltests.cpp
TARGET = tst_qmltests_WebView
OBJECTS_DIR = obj_WebView/$$activeBuildConfig()
-QT += webkit-private
+QT += webkitwidgets-private
CONFIG += warn_on testcase
QT += qmltest
diff --git a/Source/WebKit2/UIProcess/API/qt/tests/qmltests/WebView/tst_doubleTapToZoom.qml b/Source/WebKit2/UIProcess/API/qt/tests/qmltests/WebView/tst_doubleTapToZoom.qml
index 691455708..d21ef211a 100644
--- a/Source/WebKit2/UIProcess/API/qt/tests/qmltests/WebView/tst_doubleTapToZoom.qml
+++ b/Source/WebKit2/UIProcess/API/qt/tests/qmltests/WebView/tst_doubleTapToZoom.qml
@@ -40,6 +40,7 @@ Item {
TestCase {
name: "DoubleTapToZoom"
+ when: windowShown
property variant test: webView.experimental.test
@@ -78,7 +79,7 @@ Item {
function test_basic() {
webView.url = webView.content
- verify(webView.waitForLoadSucceeded())
+ verify(webView.waitForViewportReady())
compare(documentSize(), "480x720")
diff --git a/Source/WebKit2/UIProcess/API/qt/tests/qmltests/WebView/tst_fitToView.qml b/Source/WebKit2/UIProcess/API/qt/tests/qmltests/WebView/tst_fitToView.qml
index f12da5de8..fcd3d9301 100644
--- a/Source/WebKit2/UIProcess/API/qt/tests/qmltests/WebView/tst_fitToView.qml
+++ b/Source/WebKit2/UIProcess/API/qt/tests/qmltests/WebView/tst_fitToView.qml
@@ -38,6 +38,7 @@ Item {
TestCase {
name: "FitToView"
+ when: windowShown
property variant test: webView.experimental.test
@@ -69,7 +70,7 @@ Item {
function test_basic() {
webView.url = webView.content
- verify(webView.waitForLoadSucceeded())
+ verify(webView.waitForViewportReady())
compare(documentSize(), "480x720")
compare(test.contentsScale, 1.0)
diff --git a/Source/WebKit2/UIProcess/API/qt/tests/qmltests/WebView/tst_wheelEventHandling.qml b/Source/WebKit2/UIProcess/API/qt/tests/qmltests/WebView/tst_wheelEventHandling.qml
index 1fc1559ab..aa6d711a1 100644
--- a/Source/WebKit2/UIProcess/API/qt/tests/qmltests/WebView/tst_wheelEventHandling.qml
+++ b/Source/WebKit2/UIProcess/API/qt/tests/qmltests/WebView/tst_wheelEventHandling.qml
@@ -21,12 +21,13 @@ Item {
TestCase {
name: "WheelEventHandling"
+ when: windowShown
property variant test: webView.experimental.test
function init() {
webView.url = Qt.resolvedUrl("../common/test4.html")
- verify(webView.waitForLoadSucceeded())
+ verify(webView.waitForViewportReady())
webView.contentY = 0
}
@@ -38,7 +39,7 @@ Item {
scrollSpy.wait()
var position = webView.contentY
webView.reload()
- verify(webView.waitForLoadSucceeded())
+ verify(webView.waitForViewportReady())
// The check below will fail if the previous position was not restored after reload.
verify(position == webView.contentY)
}
@@ -46,7 +47,7 @@ Item {
function test_wheelScrollEventAfterReload() {
scrollSpy.clear()
webView.reload()
- verify(webView.waitForLoadSucceeded())
+ verify(webView.waitForViewportReady())
var centerPoint = Qt.point(webView.width / 2, webView.height / 2)
test.wheelEvent(webView, centerPoint.x, centerPoint.y, -500);
// The signal spy below will time out if the wheel event did not scroll the content.
diff --git a/Source/WebKit2/UIProcess/API/qt/tests/qmltests/common/TestWebView.qml b/Source/WebKit2/UIProcess/API/qt/tests/qmltests/common/TestWebView.qml
index 0dd7bccee..5a05f9b3e 100644
--- a/Source/WebKit2/UIProcess/API/qt/tests/qmltests/common/TestWebView.qml
+++ b/Source/WebKit2/UIProcess/API/qt/tests/qmltests/common/TestWebView.qml
@@ -5,43 +5,47 @@ import QtWebKit.experimental 1.0
WebView {
property var loadStatus: null
+ property var viewportReady: false
function waitForLoadSucceeded() {
- var timeout = 5000
- var i = 0
- while (i < timeout && loadStatus != WebView.LoadSucceededStatus) {
- testResult.wait(50)
- i += 50
- }
- var success = loadStatus == WebView.LoadSucceededStatus
+ var success = _waitFor(function() { return loadStatus == WebView.LoadSucceededStatus })
loadStatus = null
return success
}
+ function waitForViewportReady() {
+ // Note: You need to have "when: windowShown" in your TestCase for this to work.
+ // The viewport is locked until the first frame is rendered, and the rendering isn't
+ // activated until the WebView is visible in a mapped QQuickView.
+ return _waitFor(function() { return viewportReady })
+ }
function waitForLoadFailed() {
- var timeout = 5000
- var i = 0
- while (i < timeout && loadStatus != WebView.LoadFailedStatus) {
- testResult.wait(50)
- i += 50
- }
- var failure = loadStatus == WebView.LoadFailedStatus
+ var failure = _waitFor(function() { return loadStatus == WebView.LoadFailedStatus })
loadStatus = null
return failure
}
function waitForLoadStopped() {
+ var stop = _waitFor(function() { return loadStatus == WebView.LoadStoppedStatus })
+ loadStatus = null
+ return stop
+ }
+ function _waitFor(predicate) {
var timeout = 5000
var i = 0
- while (i < timeout && loadStatus != WebView.LoadStoppedStatus) {
+ while (i < timeout && !predicate()) {
testResult.wait(50)
i += 50
}
- var stop = loadStatus == WebView.LoadStoppedStatus
- loadStatus = null
- return stop
+ return predicate()
}
TestResult { id: testResult }
- onLoadingChanged: loadStatus = loadRequest.status
+ experimental.onLoadVisuallyCommitted: viewportReady = true
+ onLoadingChanged: {
+ loadStatus = loadRequest.status
+ if (loadRequest.status == WebView.LoadStartedStatus)
+ viewportReady = false
+ }
+
}
diff --git a/Source/WebKit2/UIProcess/API/qt/tests/qquickwebview/qquickwebview.pro b/Source/WebKit2/UIProcess/API/qt/tests/qquickwebview/qquickwebview.pro
index 4a8d86f80..bc5307f2d 100644
--- a/Source/WebKit2/UIProcess/API/qt/tests/qquickwebview/qquickwebview.pro
+++ b/Source/WebKit2/UIProcess/API/qt/tests/qquickwebview/qquickwebview.pro
@@ -1,4 +1,4 @@
include(../tests.pri)
SOURCES += $${TARGET}.cpp
-QT += webkit-private
+QT += webkitwidgets-private
DEFINES += IMPORT_DIR=\"\\\"$${ROOT_BUILD_DIR}$${QMAKE_DIR_SEP}imports\\\"\"
diff --git a/Source/WebKit2/UIProcess/API/qt/tests/qquickwebview/tst_qquickwebview.cpp b/Source/WebKit2/UIProcess/API/qt/tests/qquickwebview/tst_qquickwebview.cpp
index 5b98ae7b7..558053729 100644
--- a/Source/WebKit2/UIProcess/API/qt/tests/qquickwebview/tst_qquickwebview.cpp
+++ b/Source/WebKit2/UIProcess/API/qt/tests/qquickwebview/tst_qquickwebview.cpp
@@ -440,10 +440,11 @@ void tst_QQuickWebView::inputMethodHints()
void tst_QQuickWebView::scrollRequest()
{
- webView()->setSize(QSizeF(300, 400));
+ m_window->setGeometry(0, 0, 300, 400);
+ m_window->show();
webView()->setUrl(QUrl::fromLocalFile(QLatin1String(TESTS_SOURCE_DIR "/html/scroll.html")));
- QVERIFY(waitForLoadSucceeded(webView()));
+ QVERIFY(waitForViewportReady(webView()));
// COMPARE with the position requested in the html
// Use qRound as that is also used when calculating the position
diff --git a/Source/WebKit2/UIProcess/API/qt/tests/qrawwebview/qrawwebview.pro b/Source/WebKit2/UIProcess/API/qt/tests/qrawwebview/qrawwebview.pro
index 02dc197c7..ba8f4cea3 100644
--- a/Source/WebKit2/UIProcess/API/qt/tests/qrawwebview/qrawwebview.pro
+++ b/Source/WebKit2/UIProcess/API/qt/tests/qrawwebview/qrawwebview.pro
@@ -1,3 +1,3 @@
include(../tests.pri)
SOURCES += $${TARGET}.cpp
-QT += webkit-private
+QT += webkitwidgets-private
diff --git a/Source/WebKit2/UIProcess/API/qt/tests/qrawwebview/tst_qrawwebview.cpp b/Source/WebKit2/UIProcess/API/qt/tests/qrawwebview/tst_qrawwebview.cpp
index 31102b876..208288d1e 100644
--- a/Source/WebKit2/UIProcess/API/qt/tests/qrawwebview/tst_qrawwebview.cpp
+++ b/Source/WebKit2/UIProcess/API/qt/tests/qrawwebview/tst_qrawwebview.cpp
@@ -27,6 +27,7 @@
#include <WebKit2/WKContext.h>
#include <WebKit2/WKPageGroup.h>
+#include <WebKit2/WKPageLoadTypes.h>
#include <WebKit2/WKPreferences.h>
#include <WebKit2/WKPreferencesPrivate.h>
#include <WebKit2/WKStringQt.h>
@@ -60,15 +61,18 @@ class WebView : public QObject, public QRawWebViewClient {
public:
WebView(const QSize& size, bool transparent = false)
{
+ m_webView = new QRawWebView(webContext(), webPageGroup(QString()), this);
+ m_webView->setTransparentBackground(transparent);
+ m_webView->create();
+
WKPageLoaderClient loaderClient;
memset(&loaderClient, 0, sizeof(WKPageLoaderClient));
+ loaderClient.version = kWKPageLoaderClientCurrentVersion;
loaderClient.clientInfo = this;
- loaderClient.didFirstVisuallyNonEmptyLayoutForFrame = WebView::finishFirstLayoutForFrame;
+ loaderClient.didLayout = WebView::didLayout;
- m_webView = new QRawWebView(webContext(), webPageGroup(QString()), this);
WKPageSetPageLoaderClient(m_webView->pageRef(), &loaderClient);
- m_webView->setTransparentBackground(transparent);
- m_webView->create();
+ WKPageListenForLayoutMilestones(m_webView->pageRef(), kWKDidFirstVisuallyNonEmptyLayout);
WKPageSetUseFixedLayout(m_webView->pageRef(), true);
m_webView->setSize(size);
@@ -118,7 +122,7 @@ public:
static_cast<WebView*>(context)->onRepaintDone();
}
- static void finishFirstLayoutForFrame(WKPageRef page, WKFrameRef frame, WKTypeRef userData, const void *clientInfo)
+ static void didLayout(WKPageRef page, WKLayoutMilestones milestones, WKTypeRef userData, const void *clientInfo)
{
static_cast<WebView*>(const_cast<void*>(clientInfo))->frameLoaded();
}
@@ -152,7 +156,9 @@ public:
tst_qrawwebview()
: m_resourceDir(QString::fromLatin1(TESTS_SOURCE_DIR "/html/resources"))
, m_baseUrl(QUrl::fromLocalFile(TESTS_SOURCE_DIR "/html").toString())
- { }
+ {
+ addQtWebProcessToPath();
+ }
private Q_SLOTS:
void paint() { run(&tst_qrawwebview::doPaint, m_resourceDir + "/qwkview_paint.png"); }
diff --git a/Source/WebKit2/UIProcess/API/qt/tests/tests.pri b/Source/WebKit2/UIProcess/API/qt/tests/tests.pri
index a1133530d..123b25ce2 100644
--- a/Source/WebKit2/UIProcess/API/qt/tests/tests.pri
+++ b/Source/WebKit2/UIProcess/API/qt/tests/tests.pri
@@ -6,7 +6,7 @@ TARGET = tst_$$TARGET
INCLUDEPATH += $$PWD
SOURCES += ../util.cpp
-QT += testlib webkit
+QT += testlib webkitwidgets
have?(QTQUICK) {
QT += qml quick quick-private
HEADERS += ../bytearraytestdata.h \
diff --git a/Source/WebKit2/UIProcess/API/qt/tests/util.cpp b/Source/WebKit2/UIProcess/API/qt/tests/util.cpp
index 4525e882b..fce3cc7f6 100644
--- a/Source/WebKit2/UIProcess/API/qt/tests/util.cpp
+++ b/Source/WebKit2/UIProcess/API/qt/tests/util.cpp
@@ -57,10 +57,10 @@ bool waitForSignal(QObject* obj, const char* signal, int timeout)
return timeoutSpy.isEmpty();
}
-static void messageHandler(QtMsgType type, const char* message)
+static void messageHandler(QtMsgType type, const QMessageLogContext&, const QString& message)
{
if (type == QtCriticalMsg) {
- fprintf(stderr, "%s\n", message);
+ fprintf(stderr, "%s\n", qPrintable(message));
return;
}
// Do nothing
@@ -68,7 +68,7 @@ static void messageHandler(QtMsgType type, const char* message)
void suppressDebugOutput()
{
- qInstallMsgHandler(messageHandler); \
+ qInstallMessageHandler(messageHandler); \
if (qgetenv("QT_WEBKIT_SUPPRESS_WEB_PROCESS_OUTPUT").isEmpty()) \
qputenv("QT_WEBKIT_SUPPRESS_WEB_PROCESS_OUTPUT", "1");
}
@@ -126,6 +126,13 @@ bool waitForLoadFailed(QQuickWebView* webView, int timeout)
return timeoutSpy.isEmpty();
}
+bool waitForViewportReady(QQuickWebView* webView, int timeout)
+{
+ // The viewport is locked until the first frame of a page load is rendered.
+ // The QQuickView needs to be shown for this to succeed.
+ return waitForSignal(webView->experimental(), SIGNAL(loadVisuallyCommitted()), timeout);
+}
+
LoadStartedCatcher::LoadStartedCatcher(QQuickWebView* webView)
: m_webView(webView)
{
diff --git a/Source/WebKit2/UIProcess/API/qt/tests/util.h b/Source/WebKit2/UIProcess/API/qt/tests/util.h
index 0c14a1ff4..4834029b4 100644
--- a/Source/WebKit2/UIProcess/API/qt/tests/util.h
+++ b/Source/WebKit2/UIProcess/API/qt/tests/util.h
@@ -36,6 +36,7 @@ void suppressDebugOutput();
#if defined(HAVE_QTQUICK) && HAVE_QTQUICK
bool waitForLoadSucceeded(QQuickWebView* webView, int timeout = 10000);
bool waitForLoadFailed(QQuickWebView* webView, int timeout = 10000);
+bool waitForViewportReady(QQuickWebView* webView, int timeout = 10000);
class LoadStartedCatcher : public QObject {
Q_OBJECT
diff --git a/Source/WebKit2/UIProcess/CoordinatedGraphics/CoordinatedBackingStore.cpp b/Source/WebKit2/UIProcess/CoordinatedGraphics/CoordinatedBackingStore.cpp
index 84f6ebd2f..77fdc0a26 100644
--- a/Source/WebKit2/UIProcess/CoordinatedGraphics/CoordinatedBackingStore.cpp
+++ b/Source/WebKit2/UIProcess/CoordinatedGraphics/CoordinatedBackingStore.cpp
@@ -80,15 +80,15 @@ void CoordinatedBackingStore::updateTile(int id, const IntRect& sourceRect, cons
{
HashMap<int, CoordinatedBackingStoreTile>::iterator it = m_tiles.find(id);
ASSERT(it != m_tiles.end());
- it->second.incrementRepaintCount();
- it->second.setBackBuffer(targetRect, sourceRect, backBuffer, offset);
+ it->value.incrementRepaintCount();
+ it->value.setBackBuffer(targetRect, sourceRect, backBuffer, offset);
}
PassRefPtr<BitmapTexture> CoordinatedBackingStore::texture() const
{
HashMap<int, CoordinatedBackingStoreTile>::const_iterator end = m_tiles.end();
for (HashMap<int, CoordinatedBackingStoreTile>::const_iterator it = m_tiles.begin(); it != end; ++it) {
- RefPtr<BitmapTexture> texture = it->second.texture();
+ RefPtr<BitmapTexture> texture = it->value.texture();
if (texture)
return texture;
}
@@ -112,7 +112,7 @@ void CoordinatedBackingStore::paintToTextureMapper(TextureMapper* textureMapper,
HashMap<int, CoordinatedBackingStoreTile>::iterator end = m_tiles.end();
FloatRect coveredRect;
for (HashMap<int, CoordinatedBackingStoreTile>::iterator it = m_tiles.begin(); it != end; ++it) {
- CoordinatedBackingStoreTile& tile = it->second;
+ CoordinatedBackingStoreTile& tile = it->value;
if (!tile.texture())
continue;
@@ -156,7 +156,7 @@ void CoordinatedBackingStore::commitTileOperations(TextureMapper* textureMapper)
HashMap<int, CoordinatedBackingStoreTile>::iterator tilesEnd = m_tiles.end();
for (HashMap<int, CoordinatedBackingStoreTile>::iterator it = m_tiles.begin(); it != tilesEnd; ++it)
- it->second.swapBuffers(textureMapper);
+ it->value.swapBuffers(textureMapper);
}
} // namespace WebKit
diff --git a/Source/WebKit2/UIProcess/CoordinatedGraphics/LayerTreeCoordinatorProxy.cpp b/Source/WebKit2/UIProcess/CoordinatedGraphics/LayerTreeCoordinatorProxy.cpp
index e6f582f22..1953afb61 100644
--- a/Source/WebKit2/UIProcess/CoordinatedGraphics/LayerTreeCoordinatorProxy.cpp
+++ b/Source/WebKit2/UIProcess/CoordinatedGraphics/LayerTreeCoordinatorProxy.cpp
@@ -66,14 +66,14 @@ void LayerTreeCoordinatorProxy::updateTileForLayer(int layerID, int tileID, cons
{
RefPtr<ShareableSurface> surface;
#if USE(GRAPHICS_SURFACE)
- uint64_t token = updateInfo.surfaceHandle.graphicsSurfaceToken();
- if (token) {
- HashMap<uint64_t, RefPtr<ShareableSurface> >::iterator it = m_surfaces.find(token);
+ GraphicsSurfaceToken token = updateInfo.surfaceHandle.graphicsSurfaceToken();
+ if (token.isValid()) {
+ HashMap<GraphicsSurfaceToken::BufferHandle, RefPtr<ShareableSurface> >::iterator it = m_surfaces.find(token.frontBufferHandle);
if (it == m_surfaces.end()) {
surface = ShareableSurface::create(updateInfo.surfaceHandle);
- m_surfaces.add(token, surface);
+ m_surfaces.add(token.frontBufferHandle, surface);
} else
- surface = it->second;
+ surface = it->value;
} else
surface = ShareableSurface::create(updateInfo.surfaceHandle);
#else
@@ -116,10 +116,16 @@ void LayerTreeCoordinatorProxy::setCompositingLayerFilters(WebLayerID id, const
}
#endif
-void LayerTreeCoordinatorProxy::didRenderFrame()
+void LayerTreeCoordinatorProxy::didRenderFrame(const WebCore::IntSize& contentsSize, const WebCore::IntRect& coveredRect)
{
dispatchUpdate(bind(&LayerTreeRenderer::flushLayerChanges, m_renderer.get()));
updateViewport();
+#if PLATFORM(QT)
+ m_drawingAreaProxy->page()->didRenderFrame(contentsSize, coveredRect);
+#else
+ UNUSED_PARAM(contentsSize);
+ UNUSED_PARAM(coveredRect);
+#endif
}
void LayerTreeCoordinatorProxy::createDirectlyCompositedImage(int64_t key, const WebKit::ShareableBitmap::Handle& handle)
@@ -174,10 +180,12 @@ void LayerTreeCoordinatorProxy::didChangeScrollPosition(const IntPoint& position
dispatchUpdate(bind(&LayerTreeRenderer::didChangeScrollPosition, m_renderer.get(), position));
}
-void LayerTreeCoordinatorProxy::syncCanvas(uint32_t id, const IntSize& canvasSize, uint64_t graphicsSurfaceToken, uint32_t frontBuffer)
+#if USE(GRAPHICS_SURFACE)
+void LayerTreeCoordinatorProxy::syncCanvas(uint32_t id, const IntSize& canvasSize, const GraphicsSurfaceToken& token, uint32_t frontBuffer)
{
- dispatchUpdate(bind(&LayerTreeRenderer::syncCanvas, m_renderer.get(), id, canvasSize, graphicsSurfaceToken, frontBuffer));
+ dispatchUpdate(bind(&LayerTreeRenderer::syncCanvas, m_renderer.get(), id, canvasSize, token, frontBuffer));
}
+#endif
void LayerTreeCoordinatorProxy::purgeBackingStores()
{
diff --git a/Source/WebKit2/UIProcess/CoordinatedGraphics/LayerTreeCoordinatorProxy.h b/Source/WebKit2/UIProcess/CoordinatedGraphics/LayerTreeCoordinatorProxy.h
index 65a9f5e99..b1ef401a4 100644
--- a/Source/WebKit2/UIProcess/CoordinatedGraphics/LayerTreeCoordinatorProxy.h
+++ b/Source/WebKit2/UIProcess/CoordinatedGraphics/LayerTreeCoordinatorProxy.h
@@ -29,6 +29,7 @@
#include "WebLayerTreeInfo.h"
#include <WebCore/GraphicsContext.h>
#include <WebCore/GraphicsLayer.h>
+#include <WebCore/GraphicsSurfaceToken.h>
#include <WebCore/IntRect.h>
#include <WebCore/IntSize.h>
#include <WebCore/RunLoop.h>
@@ -63,7 +64,7 @@ public:
void purgeGLResources();
void setContentsSize(const WebCore::FloatSize&);
void setVisibleContentsRect(const WebCore::FloatRect&, float scale, const WebCore::FloatPoint& trajectoryVector);
- void didRenderFrame();
+ void didRenderFrame(const WebCore::IntSize& contentsSize, const WebCore::IntRect& coveredRect);
void createTileForLayer(int layerID, int tileID, const WebCore::IntRect&, const SurfaceUpdateInfo&);
void updateTileForLayer(int layerID, int tileID, const WebCore::IntRect&, const SurfaceUpdateInfo&);
void removeTileForLayer(int layerID, int tileID);
@@ -73,7 +74,9 @@ public:
void updateViewport();
void renderNextFrame();
void didChangeScrollPosition(const WebCore::IntPoint& position);
- void syncCanvas(uint32_t id, const WebCore::IntSize& canvasSize, uint64_t graphicsSurfaceToken, uint32_t frontBuffer);
+#if USE(GRAPHICS_SURFACE)
+ void syncCanvas(uint32_t id, const WebCore::IntSize& canvasSize, const WebCore::GraphicsSurfaceToken&, uint32_t frontBuffer);
+#endif
void purgeBackingStores();
LayerTreeRenderer* layerTreeRenderer() const { return m_renderer.get(); }
void setLayerAnimatedOpacity(uint32_t, float);
@@ -88,7 +91,7 @@ protected:
float m_lastSentScale;
WebCore::FloatPoint m_lastSentTrajectoryVector;
#if USE(GRAPHICS_SURFACE)
- HashMap<uint64_t, RefPtr<ShareableSurface> > m_surfaces;
+ HashMap<WebCore::GraphicsSurfaceToken::BufferHandle, RefPtr<ShareableSurface> > m_surfaces;
#endif
};
diff --git a/Source/WebKit2/UIProcess/CoordinatedGraphics/LayerTreeCoordinatorProxy.messages.in b/Source/WebKit2/UIProcess/CoordinatedGraphics/LayerTreeCoordinatorProxy.messages.in
index 23869233c..b73960021 100644
--- a/Source/WebKit2/UIProcess/CoordinatedGraphics/LayerTreeCoordinatorProxy.messages.in
+++ b/Source/WebKit2/UIProcess/CoordinatedGraphics/LayerTreeCoordinatorProxy.messages.in
@@ -31,9 +31,11 @@ messages -> LayerTreeCoordinatorProxy {
RemoveTileForLayer(uint32_t layerID, int tileID)
CreateDirectlyCompositedImage(int64_t key, WebKit::ShareableBitmap::Handle handle)
DestroyDirectlyCompositedImage(int64_t key)
- DidRenderFrame()
+ DidRenderFrame(WebCore::IntSize contentsSize, WebCore::IntRect coveredRect)
DidChangeScrollPosition(WebCore::IntPoint position)
- SyncCanvas(uint32_t id, WebCore::IntSize canvasSize, uint64_t graphicsSurfaceToken, uint32_t frontBuffer)
+#if USE(GRAPHICS_SURFACE)
+ SyncCanvas(uint32_t id, WebCore::IntSize canvasSize, WebCore::GraphicsSurfaceToken token, uint32_t frontBuffer)
+#endif
SetLayerAnimatedOpacity(uint32_t id, float opacity)
SetLayerAnimatedTransform(uint32_t id, WebCore::TransformationMatrix transform)
}
diff --git a/Source/WebKit2/UIProcess/CoordinatedGraphics/LayerTreeRenderer.cpp b/Source/WebKit2/UIProcess/CoordinatedGraphics/LayerTreeRenderer.cpp
index b94c66b9d..f053a57a6 100644
--- a/Source/WebKit2/UIProcess/CoordinatedGraphics/LayerTreeRenderer.cpp
+++ b/Source/WebKit2/UIProcess/CoordinatedGraphics/LayerTreeRenderer.cpp
@@ -126,7 +126,7 @@ void LayerTreeRenderer::paintToCurrentGLContext(const TransformationMatrix& matr
if (currentRootLayer->opacity() != opacity || currentRootLayer->transform() != matrix) {
currentRootLayer->setOpacity(opacity);
currentRootLayer->setTransform(matrix);
- currentRootLayer->syncCompositingStateForThisLayerOnly();
+ currentRootLayer->flushCompositingStateForThisLayerOnly();
}
layer->paint();
@@ -183,7 +183,7 @@ void LayerTreeRenderer::adjustPositionForFixedLayers()
LayerMap::iterator end = m_fixedLayers.end();
for (LayerMap::iterator it = m_fixedLayers.begin(); it != end; ++it)
- toTextureMapperLayer(it->second)->setScrollPositionDeltaIfNeeded(delta);
+ toTextureMapperLayer(it->value)->setScrollPositionDeltaIfNeeded(delta);
}
void LayerTreeRenderer::didChangeScrollPosition(const IntPoint& position)
@@ -191,12 +191,12 @@ void LayerTreeRenderer::didChangeScrollPosition(const IntPoint& position)
m_pendingRenderedContentsScrollPosition = position;
}
-void LayerTreeRenderer::syncCanvas(WebLayerID id, const WebCore::IntSize& canvasSize, uint64_t graphicsSurfaceToken, uint32_t frontBuffer)
+#if USE(GRAPHICS_SURFACE)
+void LayerTreeRenderer::syncCanvas(WebLayerID id, const WebCore::IntSize& canvasSize, const GraphicsSurfaceToken& token, uint32_t frontBuffer)
{
if (canvasSize.isEmpty() || !m_textureMapper)
return;
-#if USE(GRAPHICS_SURFACE)
ensureLayer(id);
GraphicsLayer* layer = layerByID(id);
@@ -206,18 +206,18 @@ void LayerTreeRenderer::syncCanvas(WebLayerID id, const WebCore::IntSize& canvas
canvasBackingStore = TextureMapperSurfaceBackingStore::create();
m_surfaceBackingStores.set(id, canvasBackingStore);
} else
- canvasBackingStore = it->second;
+ canvasBackingStore = it->value;
- canvasBackingStore->setGraphicsSurface(graphicsSurfaceToken, canvasSize, frontBuffer);
+ canvasBackingStore->setGraphicsSurface(token, canvasSize, frontBuffer);
layer->setContentsToMedia(canvasBackingStore.get());
-#endif
}
+#endif
void LayerTreeRenderer::setLayerChildren(WebLayerID id, const Vector<WebLayerID>& childIDs)
{
ensureLayer(id);
LayerMap::iterator it = m_layers.find(id);
- GraphicsLayer* layer = it->second;
+ GraphicsLayer* layer = it->value;
Vector<GraphicsLayer*> children;
for (size_t i = 0; i < childIDs.size(); ++i) {
@@ -239,7 +239,7 @@ void LayerTreeRenderer::setLayerFilters(WebLayerID id, const FilterOperations& f
LayerMap::iterator it = m_layers.find(id);
ASSERT(it != m_layers.end());
- GraphicsLayer* layer = it->second;
+ GraphicsLayer* layer = it->value;
layer->setFilters(filters);
}
#endif
@@ -250,7 +250,7 @@ void LayerTreeRenderer::setLayerState(WebLayerID id, const WebLayerInfo& layerIn
LayerMap::iterator it = m_layers.find(id);
ASSERT(it != m_layers.end());
- GraphicsLayer* layer = it->second;
+ GraphicsLayer* layer = it->value;
layer->setReplicatedByLayer(layerByID(layerInfo.replica));
layer->setMaskLayer(layerByID(layerInfo.mask));
@@ -377,7 +377,7 @@ void LayerTreeRenderer::assignImageToLayer(GraphicsLayer* layer, int64_t imageID
HashMap<int64_t, RefPtr<TextureMapperBackingStore> >::iterator it = m_directlyCompositedImages.find(imageID);
ASSERT(it != m_directlyCompositedImages.end());
- layer->setContentsToMedia(it->second.get());
+ layer->setContentsToMedia(it->value.get());
}
void LayerTreeRenderer::commitTileOperations()
@@ -393,7 +393,7 @@ void LayerTreeRenderer::flushLayerChanges()
{
m_renderedContentsScrollPosition = m_pendingRenderedContentsScrollPosition;
- m_rootLayer->syncCompositingState(FloatRect());
+ m_rootLayer->flushCompositingState(FloatRect());
commitTileOperations();
// The pending tiles state is on its way for the screen, tell the web process to render the next one.
diff --git a/Source/WebKit2/UIProcess/CoordinatedGraphics/LayerTreeRenderer.h b/Source/WebKit2/UIProcess/CoordinatedGraphics/LayerTreeRenderer.h
index 4e45678e6..0a6ae3b88 100644
--- a/Source/WebKit2/UIProcess/CoordinatedGraphics/LayerTreeRenderer.h
+++ b/Source/WebKit2/UIProcess/CoordinatedGraphics/LayerTreeRenderer.h
@@ -22,13 +22,13 @@
#if USE(COORDINATED_GRAPHICS)
#include "BackingStore.h"
-#include "GraphicsSurface.h"
#include "ShareableSurface.h"
#include "TextureMapper.h"
#include "TextureMapperBackingStore.h"
#include "WebLayerTreeInfo.h"
#include <WebCore/GraphicsContext.h>
#include <WebCore/GraphicsLayer.h>
+#include <WebCore/GraphicsSurface.h>
#include <WebCore/IntRect.h>
#include <WebCore/IntSize.h>
#include <WebCore/RunLoop.h>
@@ -68,7 +68,9 @@ public:
void setContentsSize(const WebCore::FloatSize&);
void setVisibleContentsRect(const WebCore::FloatRect&);
void didChangeScrollPosition(const WebCore::IntPoint& position);
- void syncCanvas(uint32_t id, const WebCore::IntSize& canvasSize, uint64_t graphicsSurfaceToken, uint32_t frontBuffer);
+#if USE(GRAPHICS_SURFACE)
+ void syncCanvas(uint32_t id, const WebCore::IntSize& canvasSize, const WebCore::GraphicsSurfaceToken&, uint32_t frontBuffer);
+#endif
void detach();
void appendUpdate(const Function<void()>&);
@@ -100,7 +102,7 @@ private:
// Reimplementations from WebCore::GraphicsLayerClient.
virtual void notifyAnimationStarted(const WebCore::GraphicsLayer*, double) { }
- virtual void notifySyncRequired(const WebCore::GraphicsLayer*) { }
+ virtual void notifyFlushRequired(const WebCore::GraphicsLayer*) { }
virtual bool showDebugBorders(const WebCore::GraphicsLayer*) const { return false; }
virtual bool showRepaintCounter(const WebCore::GraphicsLayer*) const { return false; }
void paintContents(const WebCore::GraphicsLayer*, WebCore::GraphicsContext&, WebCore::GraphicsLayerPaintingPhase, const WebCore::IntRect&) { }
diff --git a/Source/WebKit2/UIProcess/GeolocationPermissionRequestManagerProxy.cpp b/Source/WebKit2/UIProcess/GeolocationPermissionRequestManagerProxy.cpp
index eb06c29d8..b26395736 100644
--- a/Source/WebKit2/UIProcess/GeolocationPermissionRequestManagerProxy.cpp
+++ b/Source/WebKit2/UIProcess/GeolocationPermissionRequestManagerProxy.cpp
@@ -42,7 +42,7 @@ void GeolocationPermissionRequestManagerProxy::invalidateRequests()
PendingRequestMap::const_iterator it = m_pendingRequests.begin();
PendingRequestMap::const_iterator end = m_pendingRequests.end();
for (; it != end; ++it)
- it->second->invalidate();
+ it->value->invalidate();
m_pendingRequests.clear();
}
diff --git a/Source/WebKit2/UIProcess/InspectorServer/WebInspectorServer.cpp b/Source/WebKit2/UIProcess/InspectorServer/WebInspectorServer.cpp
index 66d644734..bc585e94d 100644
--- a/Source/WebKit2/UIProcess/InspectorServer/WebInspectorServer.cpp
+++ b/Source/WebKit2/UIProcess/InspectorServer/WebInspectorServer.cpp
@@ -67,7 +67,7 @@ WebInspectorServer::~WebInspectorServer()
// Close any remaining open connections.
HashMap<unsigned, WebSocketServerConnection*>::iterator end = m_connectionMap.end();
for (HashMap<unsigned, WebSocketServerConnection*>::iterator it = m_connectionMap.begin(); it != end; ++it) {
- WebSocketServerConnection* connection = it->second;
+ WebSocketServerConnection* connection = it->value;
WebInspectorProxy* client = m_clientMap.get(connection->identifier());
closeConnection(client, connection);
}
@@ -78,7 +78,7 @@ int WebInspectorServer::registerPage(WebInspectorProxy* client)
#ifndef ASSERT_DISABLED
ClientMap::iterator end = m_clientMap.end();
for (ClientMap::iterator it = m_clientMap.begin(); it != end; ++it)
- ASSERT(it->second != client);
+ ASSERT(it->value != client);
#endif
int pageId = m_nextAvailablePageId++;
diff --git a/Source/WebKit2/UIProcess/InspectorServer/WebSocketServerConnection.cpp b/Source/WebKit2/UIProcess/InspectorServer/WebSocketServerConnection.cpp
index abc805fd7..6317c62c2 100644
--- a/Source/WebKit2/UIProcess/InspectorServer/WebSocketServerConnection.cpp
+++ b/Source/WebKit2/UIProcess/InspectorServer/WebSocketServerConnection.cpp
@@ -106,9 +106,9 @@ void WebSocketServerConnection::sendHTTPResponseHeader(int statusCode, const Str
builder.appendLiteral("\r\n");
HTTPHeaderMap::const_iterator end = headerFields.end();
for (HTTPHeaderMap::const_iterator it = headerFields.begin(); it != end; ++it) {
- builder.append(it->first);
+ builder.append(it->key);
builder.appendLiteral(": ");
- builder.append(it->second);
+ builder.append(it->value);
builder.appendLiteral("\r\n");
}
builder.appendLiteral("\r\n");
diff --git a/Source/WebKit2/UIProcess/InspectorServer/qt/WebInspectorServerQt.cpp b/Source/WebKit2/UIProcess/InspectorServer/qt/WebInspectorServerQt.cpp
index 1882586af..11e57cfd5 100644
--- a/Source/WebKit2/UIProcess/InspectorServer/qt/WebInspectorServerQt.cpp
+++ b/Source/WebKit2/UIProcess/InspectorServer/qt/WebInspectorServerQt.cpp
@@ -83,18 +83,18 @@ void WebInspectorServer::buildPageList(Vector<char>& data, String& contentType)
builder.appendLiteral("[ ");
ClientMap::iterator end = m_clientMap.end();
for (ClientMap::iterator it = m_clientMap.begin(); it != end; ++it) {
- WebPageProxy* webPage = it->second->page();
+ WebPageProxy* webPage = it->value->page();
if (it != m_clientMap.begin())
builder.appendLiteral(", ");
builder.appendLiteral("{ \"id\": ");
- builder.appendNumber(it->first);
+ builder.appendNumber(it->key);
builder.appendLiteral(", \"title\": \"");
builder.append(webPage->pageTitle());
builder.appendLiteral("\", \"url\": \"");
builder.append(webPage->activeURL());
builder.appendLiteral("\", \"inspectorUrl\": \"");
builder.append(remoteInspectorPagePath());
- builder.appendNumber(it->first);
+ builder.appendNumber(it->key);
builder.appendLiteral("\" }");
}
builder.appendLiteral(" ]");
diff --git a/Source/WebKit2/UIProcess/Launcher/ProcessLauncher.cpp b/Source/WebKit2/UIProcess/Launcher/ProcessLauncher.cpp
index ba22dda2d..f790de1e8 100644
--- a/Source/WebKit2/UIProcess/Launcher/ProcessLauncher.cpp
+++ b/Source/WebKit2/UIProcess/Launcher/ProcessLauncher.cpp
@@ -75,6 +75,8 @@ const char* ProcessLauncher::processTypeAsString(ProcessType processType)
return "webprocess";
case PluginProcess:
return "pluginprocess";
+ case NetworkProcess:
+ return "networkprocess";
}
ASSERT_NOT_REACHED();
@@ -93,6 +95,11 @@ bool ProcessLauncher::getProcessTypeFromString(const char* string, ProcessType&
return true;
}
+ if (!strcmp(string, "networkprocess")) {
+ processType = NetworkProcess;
+ return true;
+ }
+
return false;
}
diff --git a/Source/WebKit2/UIProcess/Launcher/ProcessLauncher.h b/Source/WebKit2/UIProcess/Launcher/ProcessLauncher.h
index 5945e1e28..ff600c59c 100644
--- a/Source/WebKit2/UIProcess/Launcher/ProcessLauncher.h
+++ b/Source/WebKit2/UIProcess/Launcher/ProcessLauncher.h
@@ -48,7 +48,8 @@ public:
enum ProcessType {
WebProcess,
- PluginProcess
+ PluginProcess,
+ NetworkProcess
};
struct LaunchOptions {
diff --git a/Source/WebKit2/UIProcess/Launcher/mac/ProcessLauncherMac.mm b/Source/WebKit2/UIProcess/Launcher/mac/ProcessLauncherMac.mm
index 560ceb773..b69bac697 100644
--- a/Source/WebKit2/UIProcess/Launcher/mac/ProcessLauncherMac.mm
+++ b/Source/WebKit2/UIProcess/Launcher/mac/ProcessLauncherMac.mm
@@ -82,7 +82,7 @@ struct UUIDHolder : public RefCounted<UUIDHolder> {
static void setUpTerminationNotificationHandler(pid_t pid)
{
#if HAVE(DISPATCH_H)
- dispatch_source_t processDiedSource = dispatch_source_create(DISPATCH_SOURCE_TYPE_PROC, pid, DISPATCH_PROC_EXIT, dispatch_get_current_queue());
+ dispatch_source_t processDiedSource = dispatch_source_create(DISPATCH_SOURCE_TYPE_PROC, pid, DISPATCH_PROC_EXIT, dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0));
dispatch_source_set_event_handler(processDiedSource, ^{
int status;
waitpid(dispatch_source_get_handle(processDiedSource), &status, 0);
@@ -366,7 +366,22 @@ static void createProcess(const ProcessLauncher::LaunchOptions& launchOptions, b
CString localization = String(cfLocalization.get()).utf8();
NSBundle *webKit2Bundle = [NSBundle bundleWithIdentifier:@"com.apple.WebKit2"];
- NSString *processPath = [webKit2Bundle pathForAuxiliaryExecutable:(launchOptions.processType == ProcessLauncher::PluginProcess ? @"PluginProcess.app" : @"WebProcess.app")];
+
+ NSString *processPath;
+ switch(launchOptions.processType) {
+ case ProcessLauncher::WebProcess:
+ processPath = [webKit2Bundle pathForAuxiliaryExecutable:@"WebProcess.app"];
+ break;
+ case ProcessLauncher::PluginProcess:
+ processPath = [webKit2Bundle pathForAuxiliaryExecutable:@"PluginProcess.app"];
+ break;
+#if ENABLE(NETWORK_PROCESS)
+ case ProcessLauncher::NetworkProcess:
+ processPath = [webKit2Bundle pathForAuxiliaryExecutable:@"NetworkProcess.app"];
+ break;
+#endif
+ }
+
NSString *frameworkExecutablePath = [webKit2Bundle executablePath];
NSString *processAppExecutablePath = [[NSBundle bundleWithPath:processPath] executablePath];
diff --git a/Source/WebKit2/UIProcess/Launcher/qt/ProcessLauncherQt.cpp b/Source/WebKit2/UIProcess/Launcher/qt/ProcessLauncherQt.cpp
index 3cacf04db..60cde5fa0 100644
--- a/Source/WebKit2/UIProcess/Launcher/qt/ProcessLauncherQt.cpp
+++ b/Source/WebKit2/UIProcess/Launcher/qt/ProcessLauncherQt.cpp
@@ -128,7 +128,7 @@ void ProcessLauncher::launchProcess()
mach_port_insert_right(mach_task_self(), connector, connector, MACH_MSG_TYPE_MAKE_SEND);
// Register port with a service name to the system.
- QString serviceName = QString("com.nokia.Qt.WebKit.QtWebProcess-%1-%2");
+ QString serviceName = QStringLiteral("com.nokia.Qt.WebKit.QtWebProcess-%1-%2");
serviceName = serviceName.arg(QString().setNum(getpid()), QString().setNum((size_t)this));
kern_return_t kr = bootstrap_register2(bootstrap_port, const_cast<char*>(serviceName.toUtf8().data()), connector, 0);
ASSERT_UNUSED(kr, kr == KERN_SUCCESS);
diff --git a/Source/WebKit2/UIProcess/Network/NetworkProcessProxy.cpp b/Source/WebKit2/UIProcess/Network/NetworkProcessProxy.cpp
new file mode 100644
index 000000000..fe528351a
--- /dev/null
+++ b/Source/WebKit2/UIProcess/Network/NetworkProcessProxy.cpp
@@ -0,0 +1,110 @@
+/*
+ * Copyright (C) 2012 Apple Inc. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include "config.h"
+#include "NetworkProcessProxy.h"
+
+#include "NetworkProcessCreationParameters.h"
+#include "NetworkProcessMessages.h"
+#include <WebCore/RunLoop.h>
+
+#if ENABLE(NETWORK_PROCESS)
+
+using namespace WebCore;
+
+namespace WebKit {
+
+PassRefPtr<NetworkProcessProxy> NetworkProcessProxy::create()
+{
+ return adoptRef(new NetworkProcessProxy);
+}
+
+NetworkProcessProxy::NetworkProcessProxy()
+{
+ ProcessLauncher::LaunchOptions launchOptions;
+ launchOptions.processType = ProcessLauncher::NetworkProcess;
+
+#if PLATFORM(MAC)
+ launchOptions.architecture = ProcessLauncher::LaunchOptions::MatchCurrentArchitecture;
+ launchOptions.executableHeap = false;
+#if HAVE(XPC)
+ launchOptions.useXPC = false;
+#endif
+#endif
+
+ m_processLauncher = ProcessLauncher::create(this, launchOptions);
+}
+
+NetworkProcessProxy::~NetworkProcessProxy()
+{
+
+}
+
+void NetworkProcessProxy::didReceiveMessage(CoreIPC::Connection*, CoreIPC::MessageID, CoreIPC::ArgumentDecoder*)
+{
+
+}
+
+void NetworkProcessProxy::didClose(CoreIPC::Connection*)
+{
+
+}
+
+void NetworkProcessProxy::didReceiveInvalidMessage(CoreIPC::Connection*, CoreIPC::MessageID)
+{
+
+}
+
+void NetworkProcessProxy::syncMessageSendTimedOut(CoreIPC::Connection*)
+{
+
+}
+
+void NetworkProcessProxy::didFinishLaunching(ProcessLauncher*, CoreIPC::Connection::Identifier connectionIdentifier)
+{
+ ASSERT(!m_connection);
+
+ if (CoreIPC::Connection::identifierIsNull(connectionIdentifier)) {
+ // FIXME: Do better cleanup here.
+ return;
+ }
+
+ m_connection = CoreIPC::Connection::createServerConnection(connectionIdentifier, this, RunLoop::main());
+#if PLATFORM(MAC)
+ m_connection->setShouldCloseConnectionOnMachExceptions();
+#endif
+
+ m_connection->open();
+
+ NetworkProcessCreationParameters parameters;
+ platformInitializeNetworkProcess(parameters);
+
+ // Initialize the network host process.
+ m_connection->send(Messages::NetworkProcess::InitializeNetworkProcess(parameters), 0);
+}
+
+} // namespace WebKit
+
+#endif // ENABLE(NETWORK_PROCESS)
diff --git a/Source/WebKit2/UIProcess/Network/NetworkProcessProxy.h b/Source/WebKit2/UIProcess/Network/NetworkProcessProxy.h
new file mode 100644
index 000000000..57e37e653
--- /dev/null
+++ b/Source/WebKit2/UIProcess/Network/NetworkProcessProxy.h
@@ -0,0 +1,71 @@
+/*
+ * Copyright (C) 2012 Apple Inc. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef NetworkProcessProxy_h
+#define NetworkProcessProxy_h
+
+#if ENABLE(NETWORK_PROCESS)
+
+#include "Connection.h"
+#include "ProcessLauncher.h"
+#include "WebProcessProxyMessages.h"
+#include <wtf/Deque.h>
+
+namespace WebKit {
+
+struct NetworkProcessCreationParameters;
+
+class NetworkProcessProxy : public RefCounted<NetworkProcessProxy>, CoreIPC::Connection::Client, ProcessLauncher::Client {
+public:
+ static PassRefPtr<NetworkProcessProxy> create();
+ ~NetworkProcessProxy();
+
+private:
+ NetworkProcessProxy();
+
+ void platformInitializeNetworkProcess(NetworkProcessCreationParameters&);
+
+ // CoreIPC::Connection::Client
+ virtual void didReceiveMessage(CoreIPC::Connection*, CoreIPC::MessageID, CoreIPC::ArgumentDecoder*);
+ virtual void didClose(CoreIPC::Connection*);
+ virtual void didReceiveInvalidMessage(CoreIPC::Connection*, CoreIPC::MessageID);
+ virtual void syncMessageSendTimedOut(CoreIPC::Connection*);
+
+ // ProcessLauncher::Client
+ virtual void didFinishLaunching(ProcessLauncher*, CoreIPC::Connection::Identifier);
+
+ // The connection to the network process.
+ RefPtr<CoreIPC::Connection> m_connection;
+
+ // The process launcher for the network process.
+ RefPtr<ProcessLauncher> m_processLauncher;
+
+};
+
+} // namespace WebKit
+
+#endif // ENABLE(NETWORK_PROCESS)
+
+#endif // NetworkProcessProxy_h
diff --git a/Source/WebKit2/UIProcess/Network/mac/NetworkProcessProxyMac.mm b/Source/WebKit2/UIProcess/Network/mac/NetworkProcessProxyMac.mm
new file mode 100644
index 000000000..440cc429f
--- /dev/null
+++ b/Source/WebKit2/UIProcess/Network/mac/NetworkProcessProxyMac.mm
@@ -0,0 +1,44 @@
+/*
+ * Copyright (C) 2012 Apple Inc. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#import "config.h"
+#import "NetworkProcessProxy.h"
+
+#import "NetworkProcessCreationParameters.h"
+
+#if ENABLE(NETWORK_PROCESS)
+
+using namespace WebCore;
+
+namespace WebKit {
+
+void NetworkProcessProxy::platformInitializeNetworkProcess(NetworkProcessCreationParameters& parameters)
+{
+ parameters.parentProcessName = [[NSProcessInfo processInfo] processName];
+}
+
+} // namespace WebKit
+
+#endif // ENABLE(NETWORK_PROCESS)
diff --git a/Source/WebKit2/UIProcess/Notifications/NotificationPermissionRequestManagerProxy.cpp b/Source/WebKit2/UIProcess/Notifications/NotificationPermissionRequestManagerProxy.cpp
index 07922985e..4a0c47529 100644
--- a/Source/WebKit2/UIProcess/Notifications/NotificationPermissionRequestManagerProxy.cpp
+++ b/Source/WebKit2/UIProcess/Notifications/NotificationPermissionRequestManagerProxy.cpp
@@ -43,7 +43,7 @@ void NotificationPermissionRequestManagerProxy::invalidateRequests()
PendingRequestMap::const_iterator it = m_pendingRequests.begin();
PendingRequestMap::const_iterator end = m_pendingRequests.end();
for (; it != end; ++it)
- it->second->invalidate();
+ it->value->invalidate();
m_pendingRequests.clear();
}
diff --git a/Source/WebKit2/UIProcess/Notifications/WebNotificationManagerProxy.cpp b/Source/WebKit2/UIProcess/Notifications/WebNotificationManagerProxy.cpp
index 88e2cf1aa..07e1f8497 100644
--- a/Source/WebKit2/UIProcess/Notifications/WebNotificationManagerProxy.cpp
+++ b/Source/WebKit2/UIProcess/Notifications/WebNotificationManagerProxy.cpp
@@ -47,6 +47,7 @@ PassRefPtr<WebNotificationManagerProxy> WebNotificationManagerProxy::create(WebC
WebNotificationManagerProxy::WebNotificationManagerProxy(WebContext* context)
: m_context(context)
{
+ m_context->addMessageReceiver(CoreIPC::MessageClassWebNotificationManagerProxy, this);
}
void WebNotificationManagerProxy::invalidate()
diff --git a/Source/WebKit2/UIProcess/Notifications/WebNotificationManagerProxy.h b/Source/WebKit2/UIProcess/Notifications/WebNotificationManagerProxy.h
index d61b6f661..620915d14 100644
--- a/Source/WebKit2/UIProcess/Notifications/WebNotificationManagerProxy.h
+++ b/Source/WebKit2/UIProcess/Notifications/WebNotificationManagerProxy.h
@@ -27,7 +27,7 @@
#define WebNotificationManagerProxy_h
#include "APIObject.h"
-#include "MessageID.h"
+#include "MessageReceiver.h"
#include "WebNotificationProvider.h"
#include <WebCore/NotificationClient.h>
#include <wtf/HashMap.h>
@@ -35,12 +35,6 @@
#include <wtf/PassRefPtr.h>
#include <wtf/text/StringHash.h>
-namespace CoreIPC {
-class ArgumentDecoder;
-class ArgumentEncoder;
-class Connection;
-}
-
namespace WebKit {
class ImmutableArray;
@@ -48,7 +42,7 @@ class WebContext;
class WebPageProxy;
class WebSecurityOrigin;
-class WebNotificationManagerProxy : public APIObject {
+class WebNotificationManagerProxy : public APIObject, private CoreIPC::MessageReceiver {
public:
static const Type APIType = TypeNotificationManager;
@@ -68,13 +62,13 @@ public:
void providerDidUpdateNotificationPolicy(const WebSecurityOrigin*, bool allowed);
void providerDidRemoveNotificationPolicies(ImmutableArray* origins);
- void didReceiveMessage(CoreIPC::Connection*, CoreIPC::MessageID, CoreIPC::ArgumentDecoder*);
-
private:
explicit WebNotificationManagerProxy(WebContext*);
virtual Type type() const { return APIType; }
-
+
+ // CoreIPC::MessageReceiver
+ virtual void didReceiveMessage(CoreIPC::Connection*, CoreIPC::MessageID, CoreIPC::ArgumentDecoder*) OVERRIDE;
void didReceiveWebNotificationManagerProxyMessage(CoreIPC::Connection*, CoreIPC::MessageID, CoreIPC::ArgumentDecoder*);
// Message handlers
diff --git a/Source/WebKit2/UIProcess/PageClient.h b/Source/WebKit2/UIProcess/PageClient.h
index ebf5cd16f..c6fb91882 100644
--- a/Source/WebKit2/UIProcess/PageClient.h
+++ b/Source/WebKit2/UIProcess/PageClient.h
@@ -118,6 +118,8 @@ public:
virtual void pageDidRequestScroll(const WebCore::IntPoint&) = 0;
#endif
#if PLATFORM(QT)
+ virtual void didRenderFrame(const WebCore::IntSize& contentsSize, const WebCore::IntRect& coveredRect) = 0;
+ virtual void pageTransitionViewportReady() = 0;
virtual void didFindZoomableArea(const WebCore::IntPoint&, const WebCore::IntRect&) = 0;
virtual void didReceiveMessageFromNavigatorQtObject(const String&) = 0;
virtual void updateTextInputState() = 0;
diff --git a/Source/WebKit2/UIProcess/PageViewportController.cpp b/Source/WebKit2/UIProcess/PageViewportController.cpp
index e42006a14..02fd3b699 100644
--- a/Source/WebKit2/UIProcess/PageViewportController.cpp
+++ b/Source/WebKit2/UIProcess/PageViewportController.cpp
@@ -54,9 +54,6 @@ ViewportUpdateDeferrer::~ViewportUpdateDeferrer()
return;
m_controller->resumeContent();
-
- // Make sure that tiles all around the viewport will be requested.
- m_controller->syncVisibleContents();
}
PageViewportController::PageViewportController(WebKit::WebPageProxy* proxy, PageViewportControllerClient* client)
@@ -109,15 +106,65 @@ FloatPoint PageViewportController::clampViewportToContents(const WebCore::FloatP
return FloatPoint(clampTo(viewportPos.x(), 0.f, horizontalRange), clampTo(viewportPos.y(), 0.f, verticalRange));
}
-void PageViewportController::didChangeContentsSize(const IntSize& newSize)
+void PageViewportController::didCommitLoad()
{
- if (m_viewportSize.isEmpty() || newSize.isEmpty())
- return;
+ // Do not count the previous committed page contents as covered.
+ m_lastFrameCoveredRect = FloatRect();
+
+ // Reset the position to the top, page/history scroll requests may override this before we re-enable rendering.
+ applyPositionAfterRenderingContents(FloatPoint());
+}
+void PageViewportController::didChangeContentsSize(const IntSize& newSize)
+{
m_contentsSize = newSize;
updateMinimumScaleToFit();
+}
+
+void PageViewportController::didRenderFrame(const IntSize& contentsSize, const IntRect& coveredRect)
+{
+ if (m_clientContentsSize != contentsSize) {
+ m_clientContentsSize = contentsSize;
+ // Only update the viewport's contents dimensions along with its render if the
+ // size actually changed since animations on the page trigger DidRenderFrame
+ // messages without causing dimension changes.
+ m_client->didChangeContentsSize(contentsSize);
+ }
+
+ m_lastFrameCoveredRect = coveredRect;
+
+ // Apply any scale or scroll position we locked to be set on the viewport
+ // only when there is something to display there. The scale goes first to
+ // avoid offsetting our deferred position by scaling at the viewport center.
+ // All position and scale changes resulting from a web process event should
+ // go through here to be applied on the viewport to avoid showing incomplete
+ // tiles to the user during a few milliseconds.
+ if (m_effectiveScaleIsLocked) {
+ m_client->setContentsScale(m_effectiveScale, false);
+ m_effectiveScaleIsLocked = false;
+ }
+ if (m_viewportPosIsLocked) {
+ FloatPoint clampedPos = clampViewportToContents(m_viewportPos, m_effectiveScale);
+ // There might be rendered frames not covering our requested position yet, wait for it.
+ if (FloatRect(clampedPos, viewportSizeInContentsCoordinates()).intersects(coveredRect)) {
+ m_client->setViewportPosition(clampedPos);
+ m_viewportPosIsLocked = false;
+ }
+ }
+}
+
+void PageViewportController::pageTransitionViewportReady()
+{
+ if (!m_rawAttributes.layoutSize.isEmpty()) {
+ m_hadUserInteraction = false;
+ applyScaleAfterRenderingContents(innerBoundedViewportScale(toViewportScale(m_rawAttributes.initialScale)));
+ }
- m_client->didChangeContentsSize();
+ // At this point we should already have received the first viewport arguments and the requested scroll
+ // position for the newly loaded page and sent our reactions to the web process. It's now safe to tell
+ // the web process to start rendering the new page contents and possibly re-use the current tiles.
+ // This assumes that all messages have been handled in order and that nothing has been pushed back on the event loop.
+ m_webPageProxy->commitPageTransitionViewport();
}
void PageViewportController::pageDidRequestScroll(const IntPoint& cssPosition)
@@ -126,7 +173,12 @@ void PageViewportController::pageDidRequestScroll(const IntPoint& cssPosition)
if (m_activeDeferrerCount)
return;
- m_client->setViewportPosition(clampViewportToContents(cssPosition, m_effectiveScale));
+ FloatRect endVisibleContentRect(clampViewportToContents(cssPosition, m_effectiveScale), viewportSizeInContentsCoordinates());
+ if (m_lastFrameCoveredRect.intersects(endVisibleContentRect))
+ m_client->setViewportPosition(endVisibleContentRect.location());
+ else
+ // Keep the unclamped position in case the contents size is changed later on.
+ applyPositionAfterRenderingContents(cssPosition);
}
void PageViewportController::didChangeViewportSize(const FloatSize& newSize)
@@ -145,8 +197,11 @@ void PageViewportController::didChangeViewportSize(const FloatSize& newSize)
void PageViewportController::didChangeContentsVisibility(const FloatPoint& viewportPos, float viewportScale, const FloatPoint& trajectoryVector)
{
- m_viewportPos = viewportPos;
- m_effectiveScale = viewportScale;
+ if (!m_viewportPosIsLocked)
+ m_viewportPos = viewportPos;
+ if (!m_effectiveScaleIsLocked)
+ m_effectiveScale = viewportScale;
+
syncVisibleContents(trajectoryVector);
}
@@ -156,7 +211,7 @@ void PageViewportController::syncVisibleContents(const FloatPoint& trajectoryVec
if (!drawingArea || m_viewportSize.isEmpty() || m_contentsSize.isEmpty())
return;
- FloatRect visibleContentsRect(clampViewportToContents(m_viewportPos, m_effectiveScale), m_viewportSize / m_effectiveScale);
+ FloatRect visibleContentsRect(clampViewportToContents(m_viewportPos, m_effectiveScale), viewportSizeInContentsCoordinates());
visibleContentsRect.intersect(FloatRect(FloatPoint::zero(), m_contentsSize));
drawingArea->setVisibleContentsRect(visibleContentsRect, m_effectiveScale, trajectoryVector);
@@ -177,6 +232,11 @@ void PageViewportController::didChangeViewportAttributes(const WebCore::Viewport
m_client->didChangeViewportAttributes();
}
+WebCore::FloatSize PageViewportController::viewportSizeInContentsCoordinates() const
+{
+ return WebCore::FloatSize(m_viewportSize.width() / m_effectiveScale, m_viewportSize.height() / m_effectiveScale);
+}
+
void PageViewportController::suspendContent()
{
if (m_hasSuspendedContent)
@@ -188,12 +248,6 @@ void PageViewportController::suspendContent()
void PageViewportController::resumeContent()
{
- if (!m_rawAttributes.layoutSize.isEmpty() && m_rawAttributes.initialScale > 0) {
- m_hadUserInteraction = false;
- m_client->setContentsScale(innerBoundedViewportScale(toViewportScale(m_rawAttributes.initialScale)), /* isInitialScale */ true);
- m_rawAttributes.initialScale = -1; // Mark used.
- }
-
m_client->didResumeContent();
if (!m_hasSuspendedContent)
@@ -203,15 +257,32 @@ void PageViewportController::resumeContent()
m_webPageProxy->resumeActiveDOMObjectsAndAnimations();
}
+void PageViewportController::applyScaleAfterRenderingContents(float scale)
+{
+ m_effectiveScale = scale;
+ m_effectiveScaleIsLocked = true;
+ syncVisibleContents();
+}
+
+void PageViewportController::applyPositionAfterRenderingContents(const FloatPoint& pos)
+{
+ m_viewportPos = pos;
+ m_viewportPosIsLocked = true;
+ syncVisibleContents();
+}
+
void PageViewportController::updateMinimumScaleToFit()
{
+ if (m_viewportSize.isEmpty())
+ return;
+
float minimumScale = WebCore::computeMinimumScaleFactorForContentContained(m_rawAttributes, WebCore::roundedIntSize(m_viewportSize), WebCore::roundedIntSize(m_contentsSize));
if (!fuzzyCompare(minimumScale, m_minimumScaleToFit, 0.001)) {
m_minimumScaleToFit = minimumScale;
if (!m_hadUserInteraction && !hasSuspendedContent())
- m_client->setContentsScale(toViewportScale(minimumScale), true /* isInitialScale */);
+ applyScaleAfterRenderingContents(toViewportScale(minimumScale));
m_client->didChangeViewportAttributes();
}
diff --git a/Source/WebKit2/UIProcess/PageViewportController.h b/Source/WebKit2/UIProcess/PageViewportController.h
index acbb22a58..d38ddb914 100644
--- a/Source/WebKit2/UIProcess/PageViewportController.h
+++ b/Source/WebKit2/UIProcess/PageViewportController.h
@@ -95,15 +95,21 @@ public:
void didChangeContentsVisibility(const WebCore::FloatPoint& viewportPos, float viewportScale, const WebCore::FloatPoint& trajectoryVector = WebCore::FloatPoint::zero());
// Notifications from the WebProcess.
+ void didCommitLoad();
void didChangeContentsSize(const WebCore::IntSize& newSize);
void didChangeViewportAttributes(const WebCore::ViewportAttributes&);
+ void didRenderFrame(const WebCore::IntSize& contentsSize, const WebCore::IntRect& coveredRect);
+ void pageTransitionViewportReady();
void pageDidRequestScroll(const WebCore::IntPoint& cssPosition);
private:
float fromViewportScale(float scale) const { return scale / devicePixelRatio(); }
float toViewportScale(float scale) const { return scale * devicePixelRatio(); }
void syncVisibleContents(const WebCore::FloatPoint &trajectoryVector = WebCore::FloatPoint::zero());
+ void applyScaleAfterRenderingContents(float scale);
+ void applyPositionAfterRenderingContents(const WebCore::FloatPoint& pos);
void updateMinimumScaleToFit();
+ WebCore::FloatSize viewportSizeInContentsCoordinates() const;
WebPageProxy* const m_webPageProxy;
PageViewportControllerClient* m_client;
@@ -120,8 +126,13 @@ private:
WebCore::FloatPoint m_viewportPos;
WebCore::FloatSize m_viewportSize;
WebCore::FloatSize m_contentsSize;
+ WebCore::IntSize m_clientContentsSize;
float m_effectiveScale; // Should always be cssScale * devicePixelRatio.
+ bool m_viewportPosIsLocked;
+ bool m_effectiveScaleIsLocked;
+ WebCore::FloatRect m_lastFrameCoveredRect;
+
friend class ViewportUpdateDeferrer;
};
diff --git a/Source/WebKit2/UIProcess/PageViewportControllerClient.h b/Source/WebKit2/UIProcess/PageViewportControllerClient.h
index 3d91b9aac..7b05ea854 100644
--- a/Source/WebKit2/UIProcess/PageViewportControllerClient.h
+++ b/Source/WebKit2/UIProcess/PageViewportControllerClient.h
@@ -23,6 +23,11 @@
#include <wtf/Noncopyable.h>
+namespace WebCore {
+class FloatPoint;
+class IntSize;
+}
+
namespace WebKit {
class PageViewportController;
@@ -37,7 +42,7 @@ public:
virtual void setContentsScale(float, bool treatAsInitialValue) = 0;
virtual void didResumeContent() = 0;
- virtual void didChangeContentsSize() = 0;
+ virtual void didChangeContentsSize(const WebCore::IntSize&) = 0;
virtual void didChangeVisibleContents() = 0;
virtual void didChangeViewportAttributes() = 0;
diff --git a/Source/WebKit2/UIProcess/Plugins/PluginProcessManager.cpp b/Source/WebKit2/UIProcess/Plugins/PluginProcessManager.cpp
index cebf4f7b2..f497895db 100644
--- a/Source/WebKit2/UIProcess/Plugins/PluginProcessManager.cpp
+++ b/Source/WebKit2/UIProcess/Plugins/PluginProcessManager.cpp
@@ -74,15 +74,6 @@ void PluginProcessManager::clearSiteData(const PluginModuleInfo& plugin, WebPlug
pluginProcess->clearSiteData(webPluginSiteDataManager, sites, flags, maxAgeInSeconds, callbackID);
}
-void PluginProcessManager::pluginSyncMessageSendTimedOut(const String& pluginPath)
-{
- PluginProcessProxy* pluginProcess = pluginProcessWithPath(pluginPath);
- if (!pluginProcess)
- return;
-
- pluginProcess->terminate();
-}
-
PluginProcessProxy* PluginProcessManager::pluginProcessWithPath(const String& pluginPath)
{
for (size_t i = 0; i < m_pluginProcesses.size(); ++i) {
diff --git a/Source/WebKit2/UIProcess/Plugins/PluginProcessManager.h b/Source/WebKit2/UIProcess/Plugins/PluginProcessManager.h
index 19aafe860..37824c4aa 100644
--- a/Source/WebKit2/UIProcess/Plugins/PluginProcessManager.h
+++ b/Source/WebKit2/UIProcess/Plugins/PluginProcessManager.h
@@ -56,8 +56,6 @@ public:
void getSitesWithData(const PluginModuleInfo&, WebPluginSiteDataManager*, uint64_t callbackID);
void clearSiteData(const PluginModuleInfo&, WebPluginSiteDataManager*, const Vector<String>& sites, uint64_t flags, uint64_t maxAgeInSeconds, uint64_t callbackID);
- void pluginSyncMessageSendTimedOut(const String& pluginPath);
-
private:
PluginProcessManager();
diff --git a/Source/WebKit2/UIProcess/Plugins/PluginProcessProxy.cpp b/Source/WebKit2/UIProcess/Plugins/PluginProcessProxy.cpp
index cfdff9efb..7796cfe97 100644
--- a/Source/WebKit2/UIProcess/Plugins/PluginProcessProxy.cpp
+++ b/Source/WebKit2/UIProcess/Plugins/PluginProcessProxy.cpp
@@ -152,10 +152,10 @@ void PluginProcessProxy::pluginProcessCrashedOrFailedToLaunch()
}
while (!m_pendingGetSitesReplies.isEmpty())
- didGetSitesWithData(Vector<String>(), m_pendingGetSitesReplies.begin()->first);
+ didGetSitesWithData(Vector<String>(), m_pendingGetSitesReplies.begin()->key);
while (!m_pendingClearSiteDataReplies.isEmpty())
- didClearSiteData(m_pendingClearSiteDataReplies.begin()->first);
+ didClearSiteData(m_pendingClearSiteDataReplies.begin()->key);
// Tell the plug-in process manager to forget about this plug-in process proxy. This may cause us to be deleted.
m_pluginProcessManager->removePluginProcessProxy(this);
@@ -188,10 +188,6 @@ void PluginProcessProxy::didReceiveInvalidMessage(CoreIPC::Connection*, CoreIPC:
{
}
-void PluginProcessProxy::syncMessageSendTimedOut(CoreIPC::Connection*)
-{
-}
-
void PluginProcessProxy::didFinishLaunching(ProcessLauncher*, CoreIPC::Connection::Identifier connectionIdentifier)
{
ASSERT(!m_connection);
diff --git a/Source/WebKit2/UIProcess/Plugins/PluginProcessProxy.h b/Source/WebKit2/UIProcess/Plugins/PluginProcessProxy.h
index e0fe15ff0..4b50e6b80 100644
--- a/Source/WebKit2/UIProcess/Plugins/PluginProcessProxy.h
+++ b/Source/WebKit2/UIProcess/Plugins/PluginProcessProxy.h
@@ -101,7 +101,6 @@ private:
virtual void didReceiveMessage(CoreIPC::Connection*, CoreIPC::MessageID, CoreIPC::ArgumentDecoder*);
virtual void didClose(CoreIPC::Connection*);
virtual void didReceiveInvalidMessage(CoreIPC::Connection*, CoreIPC::MessageID);
- virtual void syncMessageSendTimedOut(CoreIPC::Connection*);
// ProcessLauncher::Client
virtual void didFinishLaunching(ProcessLauncher*, CoreIPC::Connection::Identifier);
diff --git a/Source/WebKit2/UIProcess/Plugins/WebPluginSiteDataManager.cpp b/Source/WebKit2/UIProcess/Plugins/WebPluginSiteDataManager.cpp
index a26bbbdb8..246eeb447 100644
--- a/Source/WebKit2/UIProcess/Plugins/WebPluginSiteDataManager.cpp
+++ b/Source/WebKit2/UIProcess/Plugins/WebPluginSiteDataManager.cpp
@@ -163,8 +163,6 @@ void WebPluginSiteDataManager::getSitesWithData(PassRefPtr<ArrayCallback> prpCal
m_pendingGetSitesWithData.set(callbackID, state);
state->getSitesWithDataForNextPlugin();
#else
- m_webContext->relaunchProcessIfNecessary();
-
Vector<PluginModuleInfo> plugins = m_webContext->pluginInfoStore().plugins();
Vector<String> pluginPaths;
for (size_t i = 0; i < plugins.size(); ++i)
@@ -225,8 +223,6 @@ void WebPluginSiteDataManager::clearSiteData(ImmutableArray* sites, uint64_t fla
m_pendingClearSiteData.set(callbackID, state);
state->clearSiteDataForNextPlugin();
#else
- m_webContext->relaunchProcessIfNecessary();
-
Vector<PluginModuleInfo> plugins = m_webContext->pluginInfoStore().plugins();
Vector<String> pluginPaths;
for (size_t i = 0; i < plugins.size(); ++i)
diff --git a/Source/WebKit2/UIProcess/Plugins/mac/PluginProcessProxyMac.mm b/Source/WebKit2/UIProcess/Plugins/mac/PluginProcessProxyMac.mm
index 5137968e6..2150c06f2 100644
--- a/Source/WebKit2/UIProcess/Plugins/mac/PluginProcessProxyMac.mm
+++ b/Source/WebKit2/UIProcess/Plugins/mac/PluginProcessProxyMac.mm
@@ -145,7 +145,14 @@ void PluginProcessProxy::platformInitializePluginProcess(PluginProcessCreationPa
bool PluginProcessProxy::getPluginProcessSerialNumber(ProcessSerialNumber& pluginProcessSerialNumber)
{
pid_t pluginProcessPID = m_processLauncher->processIdentifier();
+#if COMPILER(CLANG)
+#pragma clang diagnostic push
+#pragma clang diagnostic ignored "-Wdeprecated-declarations"
+#endif
return GetProcessForPID(pluginProcessPID, &pluginProcessSerialNumber) == noErr;
+#if COMPILER(CLANG)
+#pragma clang diagnostic pop
+#endif
}
void PluginProcessProxy::makePluginProcessTheFrontProcess()
@@ -154,14 +161,28 @@ void PluginProcessProxy::makePluginProcessTheFrontProcess()
if (!getPluginProcessSerialNumber(pluginProcessSerialNumber))
return;
+#if COMPILER(CLANG)
+#pragma clang diagnostic push
+#pragma clang diagnostic ignored "-Wdeprecated-declarations"
+#endif
SetFrontProcess(&pluginProcessSerialNumber);
+#if COMPILER(CLANG)
+#pragma clang diagnostic pop
+#endif
}
void PluginProcessProxy::makeUIProcessTheFrontProcess()
{
ProcessSerialNumber processSerialNumber;
+#if COMPILER(CLANG)
+#pragma clang diagnostic push
+#pragma clang diagnostic ignored "-Wdeprecated-declarations"
+#endif
GetCurrentProcess(&processSerialNumber);
SetFrontProcess(&processSerialNumber);
+#if COMPILER(CLANG)
+#pragma clang diagnostic pop
+#endif
}
void PluginProcessProxy::setFullscreenWindowIsShowing(bool fullscreenWindowIsShowing)
@@ -193,7 +214,14 @@ void PluginProcessProxy::exitFullscreen()
{
// If the plug-in host is the current application then we should bring ourselves to the front when it exits full-screen mode.
ProcessSerialNumber frontProcessSerialNumber;
+#if COMPILER(CLANG)
+#pragma clang diagnostic push
+#pragma clang diagnostic ignored "-Wdeprecated-declarations"
+#endif
GetFrontProcess(&frontProcessSerialNumber);
+#if COMPILER(CLANG)
+#pragma clang diagnostic pop
+#endif
// The UI process must be the front process in order to change the presentation mode.
makeUIProcessTheFrontProcess();
@@ -206,9 +234,24 @@ void PluginProcessProxy::exitFullscreen()
// If the plug-in process was not the front process, switch back to the previous front process.
// (Otherwise we'll keep the UI process as the front process).
Boolean isPluginProcessFrontProcess;
+#if COMPILER(CLANG)
+#pragma clang diagnostic push
+#pragma clang diagnostic ignored "-Wdeprecated-declarations"
+#endif
SameProcess(&frontProcessSerialNumber, &pluginProcessSerialNumber, &isPluginProcessFrontProcess);
- if (!isPluginProcessFrontProcess)
+#if COMPILER(CLANG)
+#pragma clang diagnostic pop
+#endif
+ if (!isPluginProcessFrontProcess) {
+#if COMPILER(CLANG)
+#pragma clang diagnostic push
+#pragma clang diagnostic ignored "-Wdeprecated-declarations"
+#endif
SetFrontProcess(&frontProcessSerialNumber);
+#if COMPILER(CLANG)
+#pragma clang diagnostic pop
+#endif
+ }
}
void PluginProcessProxy::setModalWindowIsShowing(bool modalWindowIsShowing)
diff --git a/Source/WebKit2/UIProcess/Plugins/gtk/PluginProcessProxyGtk.cpp b/Source/WebKit2/UIProcess/Plugins/unix/PluginProcessProxyUnix.cpp
index fa9339d09..3febb069a 100644
--- a/Source/WebKit2/UIProcess/Plugins/gtk/PluginProcessProxyGtk.cpp
+++ b/Source/WebKit2/UIProcess/Plugins/unix/PluginProcessProxyUnix.cpp
@@ -1,5 +1,7 @@
/*
* Copyright (C) 2011 Igalia S.L.
+ * Copyright (C) 2011 Apple Inc.
+ * Copyright (C) 2012 Samsung Electronics
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
@@ -10,10 +12,10 @@
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
*
- * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ``AS IS''
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
* THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS
* BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
@@ -31,10 +33,11 @@
#include "PluginProcessCreationParameters.h"
#include "ProcessExecutablePath.h"
#include <WebCore/FileSystem.h>
-#include <WebCore/GOwnPtrGtk.h>
-#include <glib.h>
#include <wtf/text/CString.h>
#include <wtf/text/WTFString.h>
+#if PLATFORM(GTK) || (PLATFORM(EFL) && ENABLE(GLIB_SUPPORT))
+#include <glib.h>
+#endif
using namespace WebCore;
@@ -46,6 +49,7 @@ void PluginProcessProxy::platformInitializePluginProcess(PluginProcessCreationPa
bool PluginProcessProxy::scanPlugin(const String& pluginPath, RawPluginMetaData& result)
{
+#if PLATFORM(GTK) || (PLATFORM(EFL) && ENABLE(GLIB_SUPPORT))
CString binaryPath = fileSystemRepresentation(executablePathOfPluginProcess());
CString pluginPathCString = fileSystemRepresentation(pluginPath);
char* argv[4];
@@ -54,27 +58,39 @@ bool PluginProcessProxy::scanPlugin(const String& pluginPath, RawPluginMetaData&
argv[2] = const_cast<char*>(pluginPathCString.data());
argv[3] = 0;
- gint status;
- GOwnPtr<gchar> stdOut;
- if (!g_spawn_sync(0, argv, 0, G_SPAWN_STDERR_TO_DEV_NULL, 0, 0, &stdOut.outPtr(), 0, &status, 0))
+ int status;
+ char* stdOut = 0;
+
+ if (!g_spawn_sync(0, argv, 0, G_SPAWN_STDERR_TO_DEV_NULL, 0, 0, &stdOut, 0, &status, 0))
return false;
- if (!WIFEXITED(status) || WEXITSTATUS(status) != EXIT_SUCCESS)
+
+ if (!WIFEXITED(status) || WEXITSTATUS(status) != EXIT_SUCCESS) {
+ free(stdOut);
return false;
+ }
const unsigned kNumLinesExpected = 3;
String lines[kNumLinesExpected];
unsigned lineIndex = 0;
- const UChar* current = reinterpret_cast<const UChar*>(stdOut.get());
+
+ const UChar* current = reinterpret_cast<const UChar*>(stdOut);
+
while (lineIndex < kNumLinesExpected) {
const UChar* start = current;
while (*current++ != UChar('\n')) { }
lines[lineIndex++] = String(start, current - start - 1);
}
+ if (stdOut)
+ free(stdOut);
+
result.name.swap(lines[0]);
result.description.swap(lines[1]);
result.mimeDescription.swap(lines[2]);
return !result.mimeDescription.isEmpty();
+#else // PLATFORM(GTK) || (PLATFORM(EFL) && ENABLE(GLIB_SUPPORT))
+ return false;
+#endif // PLATFORM(GTK) || (PLATFORM(EFL) && ENABLE(GLIB_SUPPORT))
}
} // namespace WebKit
diff --git a/Source/WebKit2/UIProcess/WebApplicationCacheManagerProxy.cpp b/Source/WebKit2/UIProcess/WebApplicationCacheManagerProxy.cpp
index f43c819fd..4fc41ba21 100644
--- a/Source/WebKit2/UIProcess/WebApplicationCacheManagerProxy.cpp
+++ b/Source/WebKit2/UIProcess/WebApplicationCacheManagerProxy.cpp
@@ -41,6 +41,7 @@ PassRefPtr<WebApplicationCacheManagerProxy> WebApplicationCacheManagerProxy::cre
WebApplicationCacheManagerProxy::WebApplicationCacheManagerProxy(WebContext* context)
: m_webContext(context)
{
+ m_webContext->addMessageReceiver(CoreIPC::MessageClassWebApplicationCacheManagerProxy, this);
}
WebApplicationCacheManagerProxy::~WebApplicationCacheManagerProxy()
diff --git a/Source/WebKit2/UIProcess/WebApplicationCacheManagerProxy.h b/Source/WebKit2/UIProcess/WebApplicationCacheManagerProxy.h
index 597f8d7e1..464621856 100644
--- a/Source/WebKit2/UIProcess/WebApplicationCacheManagerProxy.h
+++ b/Source/WebKit2/UIProcess/WebApplicationCacheManagerProxy.h
@@ -29,7 +29,7 @@
#include "APIObject.h"
#include "GenericCallback.h"
#include "ImmutableArray.h"
-
+#include "MessageReceiver.h"
#include <wtf/PassRefPtr.h>
#include <wtf/RefPtr.h>
#include <wtf/Vector.h>
@@ -49,7 +49,7 @@ class WebSecurityOrigin;
typedef GenericCallback<WKArrayRef> ArrayCallback;
-class WebApplicationCacheManagerProxy : public APIObject {
+class WebApplicationCacheManagerProxy : public APIObject, private CoreIPC::MessageReceiver {
public:
static const Type APIType = TypeApplicationCacheManager;
@@ -63,8 +63,6 @@ public:
void deleteEntriesForOrigin(WebSecurityOrigin*);
void deleteAllEntries();
- void didReceiveMessage(CoreIPC::Connection*, CoreIPC::MessageID, CoreIPC::ArgumentDecoder*);
-
bool shouldTerminate(WebProcessProxy*) const;
private:
@@ -73,7 +71,9 @@ private:
virtual Type type() const { return APIType; }
void didGetApplicationCacheOrigins(const Vector<SecurityOriginData>&, uint64_t callbackID);
-
+
+ // CoreIPC::MessageReceiver
+ virtual void didReceiveMessage(CoreIPC::Connection*, CoreIPC::MessageID, CoreIPC::ArgumentDecoder*) OVERRIDE;
void didReceiveWebApplicationCacheManagerProxyMessage(CoreIPC::Connection*, CoreIPC::MessageID, CoreIPC::ArgumentDecoder*);
WebContext* m_webContext;
diff --git a/Source/WebKit2/UIProcess/WebBatteryManagerProxy.cpp b/Source/WebKit2/UIProcess/WebBatteryManagerProxy.cpp
index c3897e81c..b42b7b021 100644
--- a/Source/WebKit2/UIProcess/WebBatteryManagerProxy.cpp
+++ b/Source/WebKit2/UIProcess/WebBatteryManagerProxy.cpp
@@ -42,6 +42,7 @@ WebBatteryManagerProxy::WebBatteryManagerProxy(WebContext* context)
: m_isUpdating(false)
, m_context(context)
{
+ m_context->addMessageReceiver(CoreIPC::MessageClassWebBatteryManagerProxy, this);
}
WebBatteryManagerProxy::~WebBatteryManagerProxy()
diff --git a/Source/WebKit2/UIProcess/WebBatteryManagerProxy.h b/Source/WebKit2/UIProcess/WebBatteryManagerProxy.h
index 9fa5bdc43..65c6614da 100644
--- a/Source/WebKit2/UIProcess/WebBatteryManagerProxy.h
+++ b/Source/WebKit2/UIProcess/WebBatteryManagerProxy.h
@@ -29,21 +29,16 @@
#if ENABLE(BATTERY_STATUS)
#include "APIObject.h"
-#include "MessageID.h"
+#include "MessageReceiver.h"
#include "WebBatteryProvider.h"
#include <wtf/Forward.h>
-namespace CoreIPC {
-class ArgumentDecoder;
-class Connection;
-}
-
namespace WebKit {
class WebContext;
class WebBatteryStatus;
+class WebBatteryManagerProxy : public APIObject, private CoreIPC::MessageReceiver {
-class WebBatteryManagerProxy : public APIObject {
public:
static const Type APIType = TypeBatteryManager;
@@ -58,13 +53,14 @@ public:
void providerDidChangeBatteryStatus(const WTF::AtomicString&, WebBatteryStatus*);
void providerUpdateBatteryStatus(WebBatteryStatus*);
- void didReceiveMessage(CoreIPC::Connection*, CoreIPC::MessageID, CoreIPC::ArgumentDecoder*);
-
private:
explicit WebBatteryManagerProxy(WebContext*);
virtual Type type() const { return APIType; }
+ // CoreIPC::MessageReceiver
+ virtual void didReceiveMessage(CoreIPC::Connection*, CoreIPC::MessageID, CoreIPC::ArgumentDecoder*) OVERRIDE;
+
// Implemented in generated WebBatteryManagerProxyMessageReceiver.cpp
void didReceiveWebBatteryManagerProxyMessage(CoreIPC::Connection*, CoreIPC::MessageID, CoreIPC::ArgumentDecoder*);
diff --git a/Source/WebKit2/UIProcess/WebConnectionToWebProcess.cpp b/Source/WebKit2/UIProcess/WebConnectionToWebProcess.cpp
index dbf12ccf0..86ba91c08 100644
--- a/Source/WebKit2/UIProcess/WebConnectionToWebProcess.cpp
+++ b/Source/WebKit2/UIProcess/WebConnectionToWebProcess.cpp
@@ -40,8 +40,8 @@ PassRefPtr<WebConnectionToWebProcess> WebConnectionToWebProcess::create(WebProce
}
WebConnectionToWebProcess::WebConnectionToWebProcess(WebProcessProxy* process, CoreIPC::Connection::Identifier connectionIdentifier, RunLoop* runLoop)
- : m_process(process)
- , m_connection(CoreIPC::Connection::createServerConnection(connectionIdentifier, this, runLoop))
+ : WebConnection(CoreIPC::Connection::createServerConnection(connectionIdentifier, this, runLoop))
+ , m_process(process)
{
#if OS(DARWIN)
m_connection->setShouldCloseConnectionOnMachExceptions();
@@ -50,42 +50,27 @@ WebConnectionToWebProcess::WebConnectionToWebProcess(WebProcessProxy* process, C
#endif
}
-void WebConnectionToWebProcess::invalidate()
+// WebConnection
+
+void WebConnectionToWebProcess::encodeMessageBody(CoreIPC::ArgumentEncoder* argumentEncoder, APIObject* messageBody)
{
- m_connection->invalidate();
- m_connection = nullptr;
- m_process = 0;
+ argumentEncoder->encode(WebContextUserMessageEncoder(messageBody));
}
-// WebConnection
-
-void WebConnectionToWebProcess::postMessage(const String& messageName, APIObject* messageBody)
+bool WebConnectionToWebProcess::decodeMessageBody(CoreIPC::ArgumentDecoder* argumentDecoder, RefPtr<APIObject>& messageBody)
{
- // We need to check if we have an underlying process here since a user of the API can hold
- // onto us and call postMessage even after the process has been invalidated.
- if (!m_process)
- return;
+ if (!argumentDecoder->decode(WebContextUserMessageDecoder(messageBody, m_process)))
+ return false;
- m_process->deprecatedSend(WebConnectionLegacyMessage::PostMessage, 0, CoreIPC::In(messageName, WebContextUserMessageEncoder(messageBody)));
+ return true;
}
// CoreIPC::Connection::Client
void WebConnectionToWebProcess::didReceiveMessage(CoreIPC::Connection* connection, CoreIPC::MessageID messageID, CoreIPC::ArgumentDecoder* arguments)
{
- if (messageID.is<CoreIPC::MessageClassWebConnectionLegacy>()) {
- switch (messageID.get<WebConnectionLegacyMessage::Kind>()) {
- case WebConnectionLegacyMessage::PostMessage: {
- String messageName;
- RefPtr<APIObject> messageBody;
- WebContextUserMessageDecoder messageDecoder(messageBody, m_process);
- if (!arguments->decode(CoreIPC::Out(messageName, messageDecoder)))
- return;
-
- forwardDidReceiveMessageToClient(messageName, messageBody.get());
- return;
- }
- }
+ if (messageID.is<CoreIPC::MessageClassWebConnection>()) {
+ didReceiveWebConnectionMessage(connection, messageID, arguments);
return;
}
@@ -124,11 +109,6 @@ void WebConnectionToWebProcess::didReceiveInvalidMessage(CoreIPC::Connection* co
m_client.didClose(this);
}
-void WebConnectionToWebProcess::syncMessageSendTimedOut(CoreIPC::Connection* connection)
-{
- m_process->syncMessageSendTimedOut(connection);
-}
-
#if PLATFORM(WIN)
Vector<HWND> WebConnectionToWebProcess::windowsToReceiveSentMessagesWhileWaitingForSyncReply()
{
diff --git a/Source/WebKit2/UIProcess/WebConnectionToWebProcess.h b/Source/WebKit2/UIProcess/WebConnectionToWebProcess.h
index f4962e26c..160813247 100644
--- a/Source/WebKit2/UIProcess/WebConnectionToWebProcess.h
+++ b/Source/WebKit2/UIProcess/WebConnectionToWebProcess.h
@@ -33,32 +33,28 @@ namespace WebKit {
class WebProcessProxy;
-class WebConnectionToWebProcess : public WebConnection, CoreIPC::Connection::Client {
+class WebConnectionToWebProcess : public WebConnection, public CoreIPC::Connection::Client {
public:
static PassRefPtr<WebConnectionToWebProcess> create(WebProcessProxy*, CoreIPC::Connection::Identifier, WebCore::RunLoop*);
- CoreIPC::Connection* connection() { return m_connection.get(); }
-
- void invalidate();
-
+ WebProcessProxy* webProcessProxy() const { return m_process; }
private:
WebConnectionToWebProcess(WebProcessProxy*, CoreIPC::Connection::Identifier, WebCore::RunLoop*);
// WebConnection
- virtual void postMessage(const String&, APIObject*);
+ virtual void encodeMessageBody(CoreIPC::ArgumentEncoder*, APIObject*) OVERRIDE;
+ virtual bool decodeMessageBody(CoreIPC::ArgumentDecoder*, RefPtr<APIObject>&) OVERRIDE;
// CoreIPC::Connection::Client
virtual void didReceiveMessage(CoreIPC::Connection*, CoreIPC::MessageID, CoreIPC::ArgumentDecoder*);
virtual void didReceiveSyncMessage(CoreIPC::Connection*, CoreIPC::MessageID, CoreIPC::ArgumentDecoder*, OwnPtr<CoreIPC::ArgumentEncoder>&);
virtual void didClose(CoreIPC::Connection*);
virtual void didReceiveInvalidMessage(CoreIPC::Connection*, CoreIPC::MessageID);
- virtual void syncMessageSendTimedOut(CoreIPC::Connection*);
#if PLATFORM(WIN)
virtual Vector<HWND> windowsToReceiveSentMessagesWhileWaitingForSyncReply();
#endif
WebProcessProxy* m_process;
- RefPtr<CoreIPC::Connection> m_connection;
};
} // namespace WebKit
diff --git a/Source/WebKit2/UIProcess/WebContext.cpp b/Source/WebKit2/UIProcess/WebContext.cpp
index f0c3580c1..d3dab6c74 100644
--- a/Source/WebKit2/UIProcess/WebContext.cpp
+++ b/Source/WebKit2/UIProcess/WebContext.cpp
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2010, 2011 Apple Inc. All rights reserved.
+ * Copyright (C) 2010, 2011, 2012 Apple Inc. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
@@ -28,7 +28,6 @@
#include "DownloadProxy.h"
#include "ImmutableArray.h"
-#include "InjectedBundleMessageKinds.h"
#include "Logging.h"
#include "MutableDictionary.h"
#include "SandboxExtension.h"
@@ -121,36 +120,45 @@ WebContext::WebContext(ProcessModel processModel, const String& injectedBundlePa
, m_cacheModel(CacheModelDocumentViewer)
, m_memorySamplerEnabled(false)
, m_memorySamplerInterval(1400.0)
- , m_applicationCacheManagerProxy(WebApplicationCacheManagerProxy::create(this))
+#if PLATFORM(WIN)
+ , m_shouldPaintNativeControls(true)
+ , m_initialHTTPCookieAcceptPolicy(HTTPCookieAcceptPolicyAlways)
+#endif
+ , m_processTerminationEnabled(true)
+#if ENABLE(NETWORK_PROCESS)
+ , m_usesNetworkProcess(false)
+#endif
+{
+ addMessageReceiver(CoreIPC::MessageClassWebContext, this);
+ addMessageReceiver(CoreIPC::MessageClassDownloadProxy, this);
+ addMessageReceiver(CoreIPC::MessageClassWebContextLegacy, this);
+
+ // NOTE: These sub-objects must be initialized after m_messageReceiverMap..
+ m_applicationCacheManagerProxy = WebApplicationCacheManagerProxy::create(this);
#if ENABLE(BATTERY_STATUS)
- , m_batteryManagerProxy(WebBatteryManagerProxy::create(this))
+ m_batteryManagerProxy = WebBatteryManagerProxy::create(this);
#endif
- , m_cookieManagerProxy(WebCookieManagerProxy::create(this))
+ m_cookieManagerProxy = WebCookieManagerProxy::create(this);
#if ENABLE(SQL_DATABASE)
- , m_databaseManagerProxy(WebDatabaseManagerProxy::create(this))
+ m_databaseManagerProxy = WebDatabaseManagerProxy::create(this);
#endif
- , m_geolocationManagerProxy(WebGeolocationManagerProxy::create(this))
- , m_iconDatabase(WebIconDatabase::create(this))
- , m_keyValueStorageManagerProxy(WebKeyValueStorageManagerProxy::create(this))
- , m_mediaCacheManagerProxy(WebMediaCacheManagerProxy::create(this))
+ m_geolocationManagerProxy = WebGeolocationManagerProxy::create(this);
+ m_iconDatabase = WebIconDatabase::create(this);
+ m_keyValueStorageManagerProxy = WebKeyValueStorageManagerProxy::create(this);
+ m_mediaCacheManagerProxy = WebMediaCacheManagerProxy::create(this);
#if ENABLE(NETWORK_INFO)
- , m_networkInfoManagerProxy(WebNetworkInfoManagerProxy::create(this))
+ m_networkInfoManagerProxy = WebNetworkInfoManagerProxy::create(this);
#endif
- , m_notificationManagerProxy(WebNotificationManagerProxy::create(this))
- , m_pluginSiteDataManager(WebPluginSiteDataManager::create(this))
- , m_resourceCacheManagerProxy(WebResourceCacheManagerProxy::create(this))
+ m_notificationManagerProxy = WebNotificationManagerProxy::create(this);
+ m_pluginSiteDataManager = WebPluginSiteDataManager::create(this);
+ m_resourceCacheManagerProxy = WebResourceCacheManagerProxy::create(this);
#if USE(SOUP)
- , m_soupRequestManagerProxy(WebSoupRequestManagerProxy::create(this))
+ m_soupRequestManagerProxy = WebSoupRequestManagerProxy::create(this);
#endif
#if ENABLE(VIBRATION)
- , m_vibrationProxy(WebVibrationProxy::create(this))
+ m_vibrationProxy = WebVibrationProxy::create(this);
#endif
-#if PLATFORM(WIN)
- , m_shouldPaintNativeControls(true)
- , m_initialHTTPCookieAcceptPolicy(HTTPCookieAcceptPolicyAlways)
-#endif
- , m_processTerminationEnabled(true)
-{
+
#if !LOG_DISABLED
WebKit::initializeLogChannelsIfNecessary();
#endif
@@ -175,6 +183,8 @@ WebContext::~WebContext()
removeLanguageChangeObserver(this);
+ m_messageReceiverMap.invalidate();
+
m_applicationCacheManagerProxy->invalidate();
m_applicationCacheManagerProxy->clearContext();
@@ -263,6 +273,8 @@ void WebContext::setProcessModel(ProcessModel processModel)
// Guard against API misuse.
if (!m_processes.isEmpty())
CRASH();
+ if (processModel != ProcessModelSharedSecondaryProcess && !m_messagesToInjectedBundlePostedToEmptyContext.isEmpty())
+ CRASH();
#if !ENABLE(PLUGIN_PROCESS)
// Plugin process is required for multiple web process mode.
@@ -301,14 +313,28 @@ void WebContext::textCheckerStateChanged()
sendToAllProcesses(Messages::WebProcess::SetTextCheckerState(TextChecker::state()));
}
+void WebContext::setUsesNetworkProcess(bool usesNetworkProcess)
+{
+#if ENABLE(NETWORK_PROCESS)
+ m_usesNetworkProcess = usesNetworkProcess;
+#else
+ UNUSED_PARAM(usesNetworkProcess);
+#endif
+}
+
void WebContext::ensureSharedWebProcess()
{
if (m_processes.isEmpty())
- m_processes.append(createNewWebProcess());
+ createNewWebProcess();
}
PassRefPtr<WebProcessProxy> WebContext::createNewWebProcess()
{
+#if ENABLE(NETWORK_PROCESS)
+ if (m_usesNetworkProcess)
+ ensureNetworkProcess();
+#endif
+
RefPtr<WebProcessProxy> process = WebProcessProxy::create(this);
WebProcessCreationParameters parameters;
@@ -366,6 +392,23 @@ PassRefPtr<WebProcessProxy> WebContext::createNewWebProcess()
injectedBundleInitializationUserData = m_injectedBundleInitializationUserData;
process->send(Messages::WebProcess::InitializeWebProcess(parameters, WebContextUserMessageEncoder(injectedBundleInitializationUserData.get())), 0);
+ m_processes.append(process);
+
+ if (m_processModel == ProcessModelSharedSecondaryProcess) {
+ for (size_t i = 0; i != m_messagesToInjectedBundlePostedToEmptyContext.size(); ++i) {
+ pair<String, RefPtr<APIObject> >& message = m_messagesToInjectedBundlePostedToEmptyContext[i];
+
+ OwnPtr<CoreIPC::ArgumentEncoder> messageData = CoreIPC::ArgumentEncoder::create(0);
+
+ messageData->encode(message.first);
+ messageData->encode(WebContextUserMessageEncoder(message.second.get()));
+ process->send(Messages::WebProcess::PostInjectedBundleMessage(CoreIPC::DataReference(messageData->buffer(), messageData->bufferSize())), 0);
+ }
+ m_messagesToInjectedBundlePostedToEmptyContext.clear();
+ } else
+ ASSERT(m_messagesToInjectedBundlePostedToEmptyContext.isEmpty());
+
+
return process.release();
}
@@ -376,10 +419,20 @@ void WebContext::warmInitialProcess()
return;
}
- m_processes.append(createNewWebProcess());
+ createNewWebProcess();
m_haveInitialEmptyProcess = true;
}
+#if ENABLE(NETWORK_PROCESS)
+void WebContext::ensureNetworkProcess()
+{
+ if (m_networkProcess)
+ return;
+
+ m_networkProcess = NetworkProcessProxy::create();
+}
+#endif
+
void WebContext::enableProcessTermination()
{
m_processTerminationEnabled = true;
@@ -446,6 +499,9 @@ void WebContext::disconnectProcess(WebProcessProxy* process)
m_visitedLinkProvider.processDidClose(process);
+ if (m_haveInitialEmptyProcess && process == m_processes.last())
+ m_haveInitialEmptyProcess = false;
+
// FIXME (Multi-WebProcess): <rdar://problem/12239765> All the invalidation calls below are still necessary in multi-process mode, but they should only affect data structures pertaining to the process being disconnected.
// Clearing everything causes assertion failures, so it's less trouble to skip that for now.
if (m_processModel != ProcessModelSharedSecondaryProcess) {
@@ -514,7 +570,6 @@ PassRefPtr<WebPageProxy> WebContext::createWebPage(PageClient* pageClient, WebPa
} else {
// FIXME (Multi-WebProcess): <rdar://problem/12239661> Consider limiting the number of web processes in per-tab process model.
process = createNewWebProcess();
- m_processes.append(process);
}
}
@@ -529,10 +584,10 @@ WebProcessProxy* WebContext::relaunchProcessIfNecessary()
if (m_processModel == ProcessModelSharedSecondaryProcess) {
ensureSharedWebProcess();
return m_processes[0].get();
- } else {
- // FIXME (Multi-WebProcess): What should this do in this model?
- return 0;
}
+
+ ASSERT_NOT_REACHED();
+ return 0;
}
DownloadProxy* WebContext::download(WebPageProxy* initiatingPage, const ResourceRequest& request)
@@ -559,15 +614,20 @@ DownloadProxy* WebContext::download(WebPageProxy* initiatingPage, const Resource
void WebContext::postMessageToInjectedBundle(const String& messageName, APIObject* messageBody)
{
- if (m_processes.isEmpty())
+ if (m_processes.isEmpty()) {
+ if (m_processModel == ProcessModelSharedSecondaryProcess)
+ m_messagesToInjectedBundlePostedToEmptyContext.append(std::make_pair(messageName, messageBody));
return;
+ }
// FIXME: Return early if the message body contains any references to WKPageRefs/WKFrameRefs etc. since they're local to a process.
+ OwnPtr<CoreIPC::ArgumentEncoder> messageData = CoreIPC::ArgumentEncoder::create(0);
+ messageData->encode(messageName);
+ messageData->encode(WebContextUserMessageEncoder(messageBody));
+
for (size_t i = 0; i < m_processes.size(); ++i) {
- // FIXME: We should consider returning false from this function if the messageBody cannot be encoded.
- // FIXME: Can we encode the message body outside the loop for all the processes?
- m_processes[i]->deprecatedSend(InjectedBundleMessage::PostMessage, 0, CoreIPC::In(messageName, WebContextUserMessageEncoder(messageBody)));
+ m_processes[i]->send(Messages::WebProcess::PostInjectedBundleMessage(CoreIPC::DataReference(messageData->buffer(), messageData->bufferSize())), 0);
}
}
@@ -709,100 +769,40 @@ HashSet<String, CaseFoldingHash> WebContext::pdfAndPostScriptMIMETypes()
return mimeTypes;
}
-void WebContext::didReceiveMessage(WebProcessProxy* process, CoreIPC::MessageID messageID, CoreIPC::ArgumentDecoder* arguments)
+void WebContext::addMessageReceiver(CoreIPC::MessageClass messageClass, CoreIPC::MessageReceiver* messageReceiver)
+{
+ m_messageReceiverMap.addMessageReceiver(messageClass, messageReceiver);
+}
+
+bool WebContext::dispatchMessage(CoreIPC::Connection* connection, CoreIPC::MessageID messageID, CoreIPC::ArgumentDecoder* argumentDecoder)
+{
+ return m_messageReceiverMap.dispatchMessage(connection, messageID, argumentDecoder);
+}
+
+bool WebContext::dispatchSyncMessage(CoreIPC::Connection* connection, CoreIPC::MessageID messageID, CoreIPC::ArgumentDecoder* argumentDecoder, OwnPtr<CoreIPC::ArgumentEncoder>& reply)
+{
+ return m_messageReceiverMap.dispatchSyncMessage(connection, messageID, argumentDecoder, reply);
+}
+
+void WebContext::didReceiveMessage(CoreIPC::Connection* connection, CoreIPC::MessageID messageID, CoreIPC::ArgumentDecoder* arguments)
{
if (messageID.is<CoreIPC::MessageClassWebContext>()) {
- didReceiveWebContextMessage(process->connection(), messageID, arguments);
+ didReceiveWebContextMessage(connection, messageID, arguments);
return;
}
if (messageID.is<CoreIPC::MessageClassDownloadProxy>()) {
if (DownloadProxy* downloadProxy = m_downloads.get(arguments->destinationID()).get())
- downloadProxy->didReceiveDownloadProxyMessage(process->connection(), messageID, arguments);
+ downloadProxy->didReceiveDownloadProxyMessage(connection, messageID, arguments);
return;
}
- if (messageID.is<CoreIPC::MessageClassWebApplicationCacheManagerProxy>()) {
- m_applicationCacheManagerProxy->didReceiveMessage(process->connection(), messageID, arguments);
- return;
- }
-
-#if ENABLE(BATTERY_STATUS)
- if (messageID.is<CoreIPC::MessageClassWebBatteryManagerProxy>()) {
- m_batteryManagerProxy->didReceiveMessage(process->connection(), messageID, arguments);
- return;
- }
-#endif
-
- if (messageID.is<CoreIPC::MessageClassWebCookieManagerProxy>()) {
- m_cookieManagerProxy->didReceiveMessage(process->connection(), messageID, arguments);
- return;
- }
-
-#if ENABLE(SQL_DATABASE)
- if (messageID.is<CoreIPC::MessageClassWebDatabaseManagerProxy>()) {
- m_databaseManagerProxy->didReceiveWebDatabaseManagerProxyMessage(process->connection(), messageID, arguments);
- return;
- }
-#endif
-
- if (messageID.is<CoreIPC::MessageClassWebGeolocationManagerProxy>()) {
- m_geolocationManagerProxy->didReceiveMessage(process->connection(), messageID, arguments);
- return;
- }
-
- if (messageID.is<CoreIPC::MessageClassWebIconDatabase>()) {
- m_iconDatabase->didReceiveMessage(process->connection(), messageID, arguments);
- return;
- }
-
- if (messageID.is<CoreIPC::MessageClassWebKeyValueStorageManagerProxy>()) {
- m_keyValueStorageManagerProxy->didReceiveMessage(process->connection(), messageID, arguments);
- return;
- }
-
- if (messageID.is<CoreIPC::MessageClassWebMediaCacheManagerProxy>()) {
- m_mediaCacheManagerProxy->didReceiveMessage(process->connection(), messageID, arguments);
- return;
- }
-
-#if ENABLE(NETWORK_INFO)
- if (messageID.is<CoreIPC::MessageClassWebNetworkInfoManagerProxy>()) {
- m_networkInfoManagerProxy->didReceiveMessage(process->connection(), messageID, arguments);
- return;
- }
-#endif
-
- if (messageID.is<CoreIPC::MessageClassWebNotificationManagerProxy>()) {
- m_notificationManagerProxy->didReceiveMessage(process->connection(), messageID, arguments);
- return;
- }
-
- if (messageID.is<CoreIPC::MessageClassWebResourceCacheManagerProxy>()) {
- m_resourceCacheManagerProxy->didReceiveWebResourceCacheManagerProxyMessage(process->connection(), messageID, arguments);
- return;
- }
-
-#if USE(SOUP)
- if (messageID.is<CoreIPC::MessageClassWebSoupRequestManagerProxy>()) {
- m_soupRequestManagerProxy->didReceiveMessage(process->connection(), messageID, arguments);
- return;
- }
-#endif
-
-#if ENABLE(VIBRATION)
- if (messageID.is<CoreIPC::MessageClassWebVibrationProxy>()) {
- m_vibrationProxy->didReceiveMessage(process->connection(), messageID, arguments);
- return;
- }
-#endif
-
switch (messageID.get<WebContextLegacyMessage::Kind>()) {
case WebContextLegacyMessage::PostMessage: {
String messageName;
RefPtr<APIObject> messageBody;
- WebContextUserMessageDecoder messageDecoder(messageBody, process);
+ WebContextUserMessageDecoder messageDecoder(messageBody, WebProcessProxy::fromConnection(connection));
if (!arguments->decode(CoreIPC::Out(messageName, messageDecoder)))
return;
@@ -816,38 +816,26 @@ void WebContext::didReceiveMessage(WebProcessProxy* process, CoreIPC::MessageID
ASSERT_NOT_REACHED();
}
-void WebContext::didReceiveSyncMessage(WebProcessProxy* process, CoreIPC::MessageID messageID, CoreIPC::ArgumentDecoder* arguments, OwnPtr<CoreIPC::ArgumentEncoder>& reply)
+void WebContext::didReceiveSyncMessage(CoreIPC::Connection* connection, CoreIPC::MessageID messageID, CoreIPC::ArgumentDecoder* arguments, OwnPtr<CoreIPC::ArgumentEncoder>& reply)
{
if (messageID.is<CoreIPC::MessageClassWebContext>()) {
- didReceiveSyncWebContextMessage(process->connection(), messageID, arguments, reply);
+ didReceiveSyncWebContextMessage(connection, messageID, arguments, reply);
return;
}
if (messageID.is<CoreIPC::MessageClassDownloadProxy>()) {
if (DownloadProxy* downloadProxy = m_downloads.get(arguments->destinationID()).get())
- downloadProxy->didReceiveSyncDownloadProxyMessage(process->connection(), messageID, arguments, reply);
+ downloadProxy->didReceiveSyncDownloadProxyMessage(connection, messageID, arguments, reply);
return;
}
- if (messageID.is<CoreIPC::MessageClassWebIconDatabase>()) {
- m_iconDatabase->didReceiveSyncMessage(process->connection(), messageID, arguments, reply);
- return;
- }
-
-#if ENABLE(NETWORK_INFO)
- if (messageID.is<CoreIPC::MessageClassWebNetworkInfoManagerProxy>()) {
- m_networkInfoManagerProxy->didReceiveSyncMessage(process->connection(), messageID, arguments, reply);
- return;
- }
-#endif
-
switch (messageID.get<WebContextLegacyMessage::Kind>()) {
case WebContextLegacyMessage::PostSynchronousMessage: {
// FIXME: We should probably encode something in the case that the arguments do not decode correctly.
String messageName;
RefPtr<APIObject> messageBody;
- WebContextUserMessageDecoder messageDecoder(messageBody, process);
+ WebContextUserMessageDecoder messageDecoder(messageBody, WebProcessProxy::fromConnection(connection));
if (!arguments->decode(CoreIPC::Out(messageName, messageDecoder)))
return;
@@ -970,7 +958,7 @@ static PassRefPtr<MutableDictionary> createDictionaryFromHashMap(const HashMap<S
RefPtr<MutableDictionary> result = MutableDictionary::create();
HashMap<String, uint64_t>::const_iterator end = map.end();
for (HashMap<String, uint64_t>::const_iterator it = map.begin(); it != end; ++it)
- result->set(it->first, RefPtr<WebUInt64>(WebUInt64::create(it->second)).get());
+ result->set(it->key, RefPtr<WebUInt64>(WebUInt64::create(it->value)).get());
return result;
}
diff --git a/Source/WebKit2/UIProcess/WebContext.h b/Source/WebKit2/UIProcess/WebContext.h
index 2de4a71c6..11a338d3c 100644
--- a/Source/WebKit2/UIProcess/WebContext.h
+++ b/Source/WebKit2/UIProcess/WebContext.h
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2010, 2011 Apple Inc. All rights reserved.
+ * Copyright (C) 2010, 2011, 2012 Apple Inc. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
@@ -28,11 +28,13 @@
#include "APIObject.h"
#include "GenericCallback.h"
+#include "MessageReceiver.h"
+#include "MessageReceiverMap.h"
#include "PluginInfoStore.h"
#include "ProcessModel.h"
#include "VisitedLinkProvider.h"
-#include "WebContextInjectedBundleClient.h"
#include "WebContextConnectionClient.h"
+#include "WebContextInjectedBundleClient.h"
#include "WebDownloadClient.h"
#include "WebHistoryClient.h"
#include "WebProcessProxy.h"
@@ -44,6 +46,10 @@
#include <wtf/text/StringHash.h>
#include <wtf/text/WTFString.h>
+#if ENABLE(NETWORK_PROCESS)
+#include "NetworkProcessProxy.h"
+#endif
+
namespace WebKit {
class DownloadProxy;
@@ -75,7 +81,7 @@ struct WebProcessCreationParameters;
typedef GenericCallback<WKDictionaryRef> DictionaryCallback;
-class WebContext : public APIObject {
+class WebContext : public APIObject, private CoreIPC::MessageReceiver {
public:
static const Type APIType = TypeContext;
@@ -84,6 +90,10 @@ public:
static const Vector<WebContext*>& allContexts();
+ void addMessageReceiver(CoreIPC::MessageClass, CoreIPC::MessageReceiver*);
+ bool dispatchMessage(CoreIPC::Connection*, CoreIPC::MessageID, CoreIPC::ArgumentDecoder*);
+ bool dispatchSyncMessage(CoreIPC::Connection*, CoreIPC::MessageID, CoreIPC::ArgumentDecoder*, OwnPtr<CoreIPC::ArgumentEncoder>&);
+
void initializeInjectedBundleClient(const WKContextInjectedBundleClient*);
void initializeConnectionClient(const WKContextConnectionClient*);
void initializeHistoryClient(const WKContextHistoryClient*);
@@ -140,8 +150,9 @@ public:
void addVisitedLink(const String&);
void addVisitedLinkHash(WebCore::LinkHash);
- void didReceiveMessage(WebProcessProxy*, CoreIPC::MessageID, CoreIPC::ArgumentDecoder*);
- void didReceiveSyncMessage(WebProcessProxy*, CoreIPC::MessageID, CoreIPC::ArgumentDecoder*, OwnPtr<CoreIPC::ArgumentEncoder>&);
+ // MessageReceiver.
+ virtual void didReceiveMessage(CoreIPC::Connection*, CoreIPC::MessageID, CoreIPC::ArgumentDecoder*) OVERRIDE;
+ virtual void didReceiveSyncMessage(CoreIPC::Connection*, CoreIPC::MessageID, CoreIPC::ArgumentDecoder*, OwnPtr<CoreIPC::ArgumentEncoder>&) OVERRIDE;
void setCacheModel(CacheModel);
CacheModel cacheModel() const { return m_cacheModel; }
@@ -230,6 +241,8 @@ public:
void textCheckerStateChanged();
+ void setUsesNetworkProcess(bool);
+
private:
WebContext(ProcessModel, const String& injectedBundlePath);
@@ -237,7 +250,11 @@ private:
void platformInitializeWebProcess(WebProcessCreationParameters&);
void platformInvalidateContext();
-
+
+#if ENABLE(NETWORK_PROCESS)
+ void ensureNetworkProcess();
+#endif
+
#if PLATFORM(MAC)
void getPasteboardTypes(const String& pasteboardName, Vector<String>& pasteboardTypes);
void getPasteboardPathnamesForType(const String& pasteboardName, const String& pasteboardType, Vector<String>& pathnames);
@@ -307,6 +324,10 @@ private:
bool m_alwaysUsesComplexTextCodePath;
bool m_shouldUseFontSmoothing;
+ // Messages that were posted before any pages were created.
+ // The client should use initialization messages instead, so that a restarted process would get the same state.
+ Vector<pair<String, RefPtr<APIObject> > > m_messagesToInjectedBundlePostedToEmptyContext;
+
CacheModel m_cacheModel;
WebDownloadClient m_downloadClient;
@@ -354,8 +375,15 @@ private:
String m_overrideLocalStorageDirectory;
bool m_processTerminationEnabled;
+
+#if ENABLE(NETWORK_PROCESS)
+ RefPtr<NetworkProcessProxy> m_networkProcess;
+ bool m_usesNetworkProcess;
+#endif
HashMap<uint64_t, RefPtr<DictionaryCallback> > m_dictionaryCallbacks;
+
+ CoreIPC::MessageReceiverMap m_messageReceiverMap;
};
template<typename U> inline void WebContext::sendToAllProcesses(const U& message)
@@ -370,7 +398,9 @@ template<typename U> inline void WebContext::sendToAllProcesses(const U& message
template<typename U> void WebContext::sendToAllProcessesRelaunchingThemIfNecessary(const U& message)
{
- relaunchProcessIfNecessary();
+// FIXME (Multi-WebProcess): WebContext doesn't track processes that have exited, so it cannot relaunch these. Perhaps this functionality won't be needed in this mode.
+ if (m_processModel == ProcessModelSharedSecondaryProcess)
+ relaunchProcessIfNecessary();
sendToAllProcesses(message);
}
diff --git a/Source/WebKit2/UIProcess/WebCookieManagerProxy.cpp b/Source/WebKit2/UIProcess/WebCookieManagerProxy.cpp
index cc9b23eb6..aa33ce62f 100644
--- a/Source/WebKit2/UIProcess/WebCookieManagerProxy.cpp
+++ b/Source/WebKit2/UIProcess/WebCookieManagerProxy.cpp
@@ -41,6 +41,7 @@ PassRefPtr<WebCookieManagerProxy> WebCookieManagerProxy::create(WebContext* cont
WebCookieManagerProxy::WebCookieManagerProxy(WebContext* context)
: m_webContext(context)
{
+ m_webContext->addMessageReceiver(CoreIPC::MessageClassWebCookieManagerProxy, this);
}
WebCookieManagerProxy::~WebCookieManagerProxy()
diff --git a/Source/WebKit2/UIProcess/WebCookieManagerProxy.h b/Source/WebKit2/UIProcess/WebCookieManagerProxy.h
index cf1c15b05..6981c0d06 100644
--- a/Source/WebKit2/UIProcess/WebCookieManagerProxy.h
+++ b/Source/WebKit2/UIProcess/WebCookieManagerProxy.h
@@ -29,6 +29,7 @@
#include "APIObject.h"
#include "GenericCallback.h"
#include "ImmutableArray.h"
+#include "MessageReceiver.h"
#include "WebCookieManagerProxyClient.h"
#include <wtf/PassRefPtr.h>
#include <wtf/RefPtr.h>
@@ -48,7 +49,7 @@ class WebProcessProxy;
typedef GenericCallback<WKArrayRef> ArrayCallback;
typedef GenericCallback<WKHTTPCookieAcceptPolicy, HTTPCookieAcceptPolicy> HTTPCookieAcceptPolicyCallback;
-class WebCookieManagerProxy : public APIObject {
+class WebCookieManagerProxy : public APIObject, private CoreIPC::MessageReceiver {
public:
static const Type APIType = TypeCookieManager;
@@ -74,8 +75,6 @@ public:
void setCookiePersistentStorage(const String& storagePath, uint32_t storageType);
#endif
- void didReceiveMessage(CoreIPC::Connection*, CoreIPC::MessageID, CoreIPC::ArgumentDecoder*);
-
bool shouldTerminate(WebProcessProxy*) const;
private:
@@ -88,6 +87,8 @@ private:
void cookiesDidChange();
+ // CoreIPC::MessageReceiver
+ virtual void didReceiveMessage(CoreIPC::Connection*, CoreIPC::MessageID, CoreIPC::ArgumentDecoder*) OVERRIDE;
void didReceiveWebCookieManagerProxyMessage(CoreIPC::Connection*, CoreIPC::MessageID, CoreIPC::ArgumentDecoder*);
#if PLATFORM(MAC)
diff --git a/Source/WebKit2/UIProcess/WebDatabaseManagerProxy.cpp b/Source/WebKit2/UIProcess/WebDatabaseManagerProxy.cpp
index b4331d45c..a3fda6556 100644
--- a/Source/WebKit2/UIProcess/WebDatabaseManagerProxy.cpp
+++ b/Source/WebKit2/UIProcess/WebDatabaseManagerProxy.cpp
@@ -94,6 +94,7 @@ PassRefPtr<WebDatabaseManagerProxy> WebDatabaseManagerProxy::create(WebContext*
WebDatabaseManagerProxy::WebDatabaseManagerProxy(WebContext* webContext)
: m_webContext(webContext)
{
+ m_webContext->addMessageReceiver(CoreIPC::MessageClassWebDatabaseManagerProxy, this);
}
WebDatabaseManagerProxy::~WebDatabaseManagerProxy()
@@ -231,6 +232,11 @@ void WebDatabaseManagerProxy::didModifyDatabase(const String& originIdentifier,
m_client.didModifyDatabase(this, origin.get(), databaseIdentifier);
}
+void WebDatabaseManagerProxy::didReceiveMessage(CoreIPC::Connection* connection, CoreIPC::MessageID messageID, CoreIPC::ArgumentDecoder* arguments)
+{
+ didReceiveWebDatabaseManagerProxyMessage(connection, messageID, arguments);
+}
+
} // namespace WebKit
#endif // ENABLE(SQL_DATABASE)
diff --git a/Source/WebKit2/UIProcess/WebDatabaseManagerProxy.h b/Source/WebKit2/UIProcess/WebDatabaseManagerProxy.h
index fe920bb03..b724a847d 100644
--- a/Source/WebKit2/UIProcess/WebDatabaseManagerProxy.h
+++ b/Source/WebKit2/UIProcess/WebDatabaseManagerProxy.h
@@ -31,17 +31,12 @@
#include "APIObject.h"
#include "Arguments.h"
#include "GenericCallback.h"
+#include "MessageReceiver.h"
#include "OriginAndDatabases.h"
#include "WebDatabaseManagerProxyClient.h"
#include <wtf/HashMap.h>
#include <wtf/PassRefPtr.h>
-namespace CoreIPC {
-class ArgumentDecoder;
-class Connection;
-class MessageID;
-}
-
namespace WebKit {
class WebContext;
@@ -50,7 +45,7 @@ class WebSecurityOrigin;
typedef GenericCallback<WKArrayRef> ArrayCallback;
-class WebDatabaseManagerProxy : public APIObject {
+class WebDatabaseManagerProxy : public APIObject, private CoreIPC::MessageReceiver {
public:
static const Type APIType = TypeDatabaseManager;
@@ -78,8 +73,6 @@ public:
static String databaseDetailsExpectedUsageKey();
static String databaseDetailsCurrentUsageKey();
- void didReceiveWebDatabaseManagerProxyMessage(CoreIPC::Connection*, CoreIPC::MessageID, CoreIPC::ArgumentDecoder*);
-
bool shouldTerminate(WebProcessProxy*) const;
private:
@@ -87,6 +80,10 @@ private:
virtual Type type() const { return APIType; }
+ // CoreIPC::MessageReceiver
+ virtual void didReceiveMessage(CoreIPC::Connection*, CoreIPC::MessageID, CoreIPC::ArgumentDecoder*) OVERRIDE;
+ void didReceiveWebDatabaseManagerProxyMessage(CoreIPC::Connection*, CoreIPC::MessageID, CoreIPC::ArgumentDecoder*);
+
// Message handlers.
void didGetDatabasesByOrigin(const Vector<OriginAndDatabases>& originAndDatabases, uint64_t callbackID);
void didGetDatabaseOrigins(const Vector<String>& originIdentifiers, uint64_t callbackID);
diff --git a/Source/WebKit2/UIProcess/WebFullScreenManagerProxy.cpp b/Source/WebKit2/UIProcess/WebFullScreenManagerProxy.cpp
index 9dc13bcc9..fe71ecaa4 100644
--- a/Source/WebKit2/UIProcess/WebFullScreenManagerProxy.cpp
+++ b/Source/WebKit2/UIProcess/WebFullScreenManagerProxy.cpp
@@ -94,9 +94,9 @@ void WebFullScreenManagerProxy::requestExitFullScreen()
m_page->process()->send(Messages::WebFullScreenManager::RequestExitFullScreen(), m_page->pageID());
}
-void WebFullScreenManagerProxy::supportsFullScreen(bool /*withKeyboard*/, bool& supports)
+void WebFullScreenManagerProxy::supportsFullScreen(bool withKeyboard, bool& supports)
{
- supports = true;
+ supports = !withKeyboard;
}
} // namespace WebKit
diff --git a/Source/WebKit2/UIProcess/WebGeolocationManagerProxy.cpp b/Source/WebKit2/UIProcess/WebGeolocationManagerProxy.cpp
index af49f9bc1..e20d1eebd 100644
--- a/Source/WebKit2/UIProcess/WebGeolocationManagerProxy.cpp
+++ b/Source/WebKit2/UIProcess/WebGeolocationManagerProxy.cpp
@@ -40,6 +40,7 @@ WebGeolocationManagerProxy::WebGeolocationManagerProxy(WebContext* context)
: m_isUpdating(false)
, m_context(context)
{
+ m_context->addMessageReceiver(CoreIPC::MessageClassWebGeolocationManagerProxy, this);
}
WebGeolocationManagerProxy::~WebGeolocationManagerProxy()
diff --git a/Source/WebKit2/UIProcess/WebGeolocationManagerProxy.h b/Source/WebKit2/UIProcess/WebGeolocationManagerProxy.h
index 65d7b7a7e..8f4102b61 100644
--- a/Source/WebKit2/UIProcess/WebGeolocationManagerProxy.h
+++ b/Source/WebKit2/UIProcess/WebGeolocationManagerProxy.h
@@ -27,21 +27,16 @@
#define WebGeolocationManagerProxy_h
#include "APIObject.h"
-#include "MessageID.h"
+#include "MessageReceiver.h"
#include "WebGeolocationProvider.h"
#include <wtf/text/WTFString.h>
-namespace CoreIPC {
-class ArgumentDecoder;
-class Connection;
-}
-
namespace WebKit {
class WebContext;
class WebGeolocationPosition;
-class WebGeolocationManagerProxy : public APIObject {
+class WebGeolocationManagerProxy : public APIObject, private CoreIPC::MessageReceiver {
public:
static const Type APIType = TypeGeolocationManager;
@@ -56,13 +51,14 @@ public:
void providerDidChangePosition(WebGeolocationPosition*);
void providerDidFailToDeterminePosition(const String& errorMessage = String());
- void didReceiveMessage(CoreIPC::Connection*, CoreIPC::MessageID, CoreIPC::ArgumentDecoder*);
-
private:
explicit WebGeolocationManagerProxy(WebContext*);
virtual Type type() const { return APIType; }
+ // CoreIPC::MessageReceiver
+ virtual void didReceiveMessage(CoreIPC::Connection*, CoreIPC::MessageID, CoreIPC::ArgumentDecoder*) OVERRIDE;
+
// Implemented in generated WebGeolocationManagerProxyMessageReceiver.cpp
void didReceiveWebGeolocationManagerProxyMessage(CoreIPC::Connection*, CoreIPC::MessageID, CoreIPC::ArgumentDecoder*);
diff --git a/Source/WebKit2/UIProcess/WebIconDatabase.cpp b/Source/WebKit2/UIProcess/WebIconDatabase.cpp
index 41c2617bf..8b71e89e0 100644
--- a/Source/WebKit2/UIProcess/WebIconDatabase.cpp
+++ b/Source/WebKit2/UIProcess/WebIconDatabase.cpp
@@ -54,6 +54,7 @@ WebIconDatabase::WebIconDatabase(WebContext* context)
, m_urlImportCompleted(false)
, m_databaseCleanupDisabled(false)
{
+ m_webContext->addMessageReceiver(CoreIPC::MessageClassWebIconDatabase, this);
}
void WebIconDatabase::invalidate()
@@ -180,6 +181,11 @@ void WebIconDatabase::getLoadDecisionForIconURL(const String& iconURL, uint64_t
m_webContext->sendToAllProcesses(Messages::WebIconDatabaseProxy::ReceivedIconLoadDecision((int)decision, callbackID));
}
+void WebIconDatabase::didReceiveIconForPageURL(const String& pageURL)
+{
+ notifyIconDataReadyForPageURL(pageURL);
+}
+
Image* WebIconDatabase::imageForPageURL(const String& pageURL, const WebCore::IntSize& iconSize)
{
if (!m_webContext || !m_iconDatabaseImpl || !m_iconDatabaseImpl->isOpen() || pageURL.isEmpty())
@@ -203,6 +209,11 @@ bool WebIconDatabase::isOpen()
return m_iconDatabaseImpl && m_iconDatabaseImpl->isOpen();
}
+bool WebIconDatabase::isUrlImportCompleted()
+{
+ return m_urlImportCompleted;
+}
+
void WebIconDatabase::removeAllIcons()
{
m_iconDatabaseImpl->removeAllIcons();
@@ -224,11 +235,6 @@ void WebIconDatabase::initializeIconDatabaseClient(const WKIconDatabaseClient* c
}
// WebCore::IconDatabaseClient
-bool WebIconDatabase::performImport()
-{
- // WebKit2 icon database doesn't currently support importing any old icon database formats.
- return true;
-}
void WebIconDatabase::didImportIconURLForPageURL(const String& pageURL)
{
@@ -237,7 +243,7 @@ void WebIconDatabase::didImportIconURLForPageURL(const String& pageURL)
void WebIconDatabase::didImportIconDataForPageURL(const String& pageURL)
{
- didChangeIconForPageURL(pageURL);
+ notifyIconDataReadyForPageURL(pageURL);
}
void WebIconDatabase::didChangeIconForPageURL(const String& pageURL)
@@ -263,14 +269,14 @@ void WebIconDatabase::didFinishURLImport()
HashMap<uint64_t, String>::iterator end = m_pendingLoadDecisionURLMap.end();
for (; i != end; ++i) {
- LOG(IconDatabase, "WK2 UIProcess performing delayed callback on callback ID %i for page url %s", (int)i->first, i->second.ascii().data());
- IconLoadDecision decision = m_iconDatabaseImpl->synchronousLoadDecisionForIconURL(i->second, 0);
+ LOG(IconDatabase, "WK2 UIProcess performing delayed callback on callback ID %i for page url %s", (int)i->key, i->value.ascii().data());
+ IconLoadDecision decision = m_iconDatabaseImpl->synchronousLoadDecisionForIconURL(i->value, 0);
// Decisions should never be unknown after the inital import is complete
ASSERT(decision != IconLoadUnknown);
// FIXME (Multi-WebProcess): <rdar://problem/12240223> We need to know which connection to send this message to.
- m_webContext->sendToAllProcesses(Messages::WebIconDatabaseProxy::ReceivedIconLoadDecision(static_cast<int>(decision), i->first));
+ m_webContext->sendToAllProcesses(Messages::WebIconDatabaseProxy::ReceivedIconLoadDecision(static_cast<int>(decision), i->key));
}
m_pendingLoadDecisionURLMap.clear();
@@ -288,4 +294,10 @@ void WebIconDatabase::didReceiveSyncMessage(CoreIPC::Connection* connection, Cor
didReceiveSyncWebIconDatabaseMessage(connection, messageID, decoder, reply);
}
+void WebIconDatabase::notifyIconDataReadyForPageURL(const String& pageURL)
+{
+ m_iconDatabaseClient.iconDataReadyForPageURL(this, WebURL::create(pageURL).get());
+ didChangeIconForPageURL(pageURL);
+}
+
} // namespace WebKit
diff --git a/Source/WebKit2/UIProcess/WebIconDatabase.h b/Source/WebKit2/UIProcess/WebIconDatabase.h
index d808ef0d9..8643a481d 100644
--- a/Source/WebKit2/UIProcess/WebIconDatabase.h
+++ b/Source/WebKit2/UIProcess/WebIconDatabase.h
@@ -54,7 +54,7 @@ namespace WebKit {
class WebContext;
-class WebIconDatabase : public APIObject, public WebCore::IconDatabaseClient {
+class WebIconDatabase : public APIObject, public WebCore::IconDatabaseClient, private CoreIPC::MessageReceiver {
public:
static const Type APIType = TypeIconDatabase;
@@ -77,10 +77,12 @@ public:
void synchronousLoadDecisionForIconURL(const String&, int&) const;
void getLoadDecisionForIconURL(const String&, uint64_t callbackID);
+ void didReceiveIconForPageURL(const String&);
WebCore::Image* imageForPageURL(const String&, const WebCore::IntSize& iconSize = WebCore::IntSize(32, 32));
WebCore::NativeImagePtr nativeImageForPageURL(const String&, const WebCore::IntSize& iconSize = WebCore::IntSize(32, 32));
bool isOpen();
+ bool isUrlImportCompleted();
void removeAllIcons();
void checkIntegrityBeforeOpening();
@@ -88,25 +90,27 @@ public:
void initializeIconDatabaseClient(const WKIconDatabaseClient*);
+private:
+ WebIconDatabase(WebContext*);
+
+ virtual Type type() const { return APIType; }
+
// WebCore::IconDatabaseClient
- virtual bool performImport();
virtual void didImportIconURLForPageURL(const String&);
virtual void didImportIconDataForPageURL(const String&);
virtual void didChangeIconForPageURL(const String&);
virtual void didRemoveAllIcons();
virtual void didFinishURLImport();
-
- void didReceiveMessage(CoreIPC::Connection*, CoreIPC::MessageID, CoreIPC::ArgumentDecoder*);
- void didReceiveSyncMessage(CoreIPC::Connection*, CoreIPC::MessageID, CoreIPC::ArgumentDecoder*, OwnPtr<CoreIPC::ArgumentEncoder>&);
-private:
- WebIconDatabase(WebContext*);
-
- virtual Type type() const { return APIType; }
+ // CoreIPC::MessageReceiver
+ virtual void didReceiveMessage(CoreIPC::Connection*, CoreIPC::MessageID, CoreIPC::ArgumentDecoder*) OVERRIDE;
+ virtual void didReceiveSyncMessage(CoreIPC::Connection*, CoreIPC::MessageID, CoreIPC::ArgumentDecoder*, OwnPtr<CoreIPC::ArgumentEncoder>&) OVERRIDE;
void didReceiveWebIconDatabaseMessage(CoreIPC::Connection*, CoreIPC::MessageID, CoreIPC::ArgumentDecoder*);
void didReceiveSyncWebIconDatabaseMessage(CoreIPC::Connection*, CoreIPC::MessageID, CoreIPC::ArgumentDecoder*, OwnPtr<CoreIPC::ArgumentEncoder>&);
+ void notifyIconDataReadyForPageURL(const String&);
+
WebContext* m_webContext;
OwnPtr<WebCore::IconDatabase> m_iconDatabaseImpl;
diff --git a/Source/WebKit2/UIProcess/WebIconDatabase.messages.in b/Source/WebKit2/UIProcess/WebIconDatabase.messages.in
index b68a0a742..400adb081 100644
--- a/Source/WebKit2/UIProcess/WebIconDatabase.messages.in
+++ b/Source/WebKit2/UIProcess/WebIconDatabase.messages.in
@@ -32,4 +32,5 @@ messages -> WebIconDatabase {
SynchronousLoadDecisionForIconURL(WTF::String iconURL) -> (int loadDecision)
GetLoadDecisionForIconURL(WTF::String iconURL, uint64_t callbackID)
+ DidReceiveIconForPageURL(WTF::String pageURL)
}
diff --git a/Source/WebKit2/UIProcess/WebIconDatabaseClient.cpp b/Source/WebKit2/UIProcess/WebIconDatabaseClient.cpp
index e0de3664e..4fbfd3ccd 100644
--- a/Source/WebKit2/UIProcess/WebIconDatabaseClient.cpp
+++ b/Source/WebKit2/UIProcess/WebIconDatabaseClient.cpp
@@ -47,4 +47,12 @@ void WebIconDatabaseClient::didRemoveAllIcons(WebIconDatabase* iconDatabase)
m_client.didRemoveAllIcons(toAPI(iconDatabase), m_client.clientInfo);
}
+void WebIconDatabaseClient::iconDataReadyForPageURL(WebIconDatabase* iconDatabase, WebURL* url)
+{
+ if (!m_client.iconDataReadyForPageURL)
+ return;
+
+ m_client.iconDataReadyForPageURL(toAPI(iconDatabase), toAPI(url), m_client.clientInfo);
+}
+
} // namespace WebKit
diff --git a/Source/WebKit2/UIProcess/WebIconDatabaseClient.h b/Source/WebKit2/UIProcess/WebIconDatabaseClient.h
index 801ec12a8..5fe2fea43 100644
--- a/Source/WebKit2/UIProcess/WebIconDatabaseClient.h
+++ b/Source/WebKit2/UIProcess/WebIconDatabaseClient.h
@@ -39,6 +39,7 @@ class WebIconDatabaseClient : public APIClient<WKIconDatabaseClient, kWKIconData
public:
void didChangeIconForPageURL(WebIconDatabase*, WebURL*);
void didRemoveAllIcons(WebIconDatabase*);
+ void iconDataReadyForPageURL(WebIconDatabase*, WebURL*);
};
} // namespace WebKit
diff --git a/Source/WebKit2/UIProcess/WebInspectorProxy.h b/Source/WebKit2/UIProcess/WebInspectorProxy.h
index b80700429..6922b7d73 100644
--- a/Source/WebKit2/UIProcess/WebInspectorProxy.h
+++ b/Source/WebKit2/UIProcess/WebInspectorProxy.h
@@ -189,7 +189,7 @@ private:
virtual void windowReceivedMessage(HWND, UINT message, WPARAM, LPARAM);
#endif
-#if PLATFORM(GTK)
+#if PLATFORM(GTK) || PLATFORM(EFL)
void createInspectorWindow();
#endif
diff --git a/Source/WebKit2/UIProcess/WebIntentData.cpp b/Source/WebKit2/UIProcess/WebIntentData.cpp
index 632aa3b75..c6d8c64ba 100644
--- a/Source/WebKit2/UIProcess/WebIntentData.cpp
+++ b/Source/WebKit2/UIProcess/WebIntentData.cpp
@@ -78,7 +78,7 @@ PassRefPtr<ImmutableDictionary> WebIntentData::extras() const
ImmutableDictionary::MapType wkExtras;
HashMap<String, String>::const_iterator end = m_store.extras.end();
for (HashMap<String, String>::const_iterator it = m_store.extras.begin(); it != end; ++it)
- wkExtras.set(it->first, WebString::create(it->second));
+ wkExtras.set(it->key, WebString::create(it->value));
return ImmutableDictionary::adopt(wkExtras);
}
diff --git a/Source/WebKit2/UIProcess/WebKeyValueStorageManagerProxy.cpp b/Source/WebKit2/UIProcess/WebKeyValueStorageManagerProxy.cpp
index 8b3332aa5..454d082f5 100644
--- a/Source/WebKit2/UIProcess/WebKeyValueStorageManagerProxy.cpp
+++ b/Source/WebKit2/UIProcess/WebKeyValueStorageManagerProxy.cpp
@@ -41,6 +41,7 @@ PassRefPtr<WebKeyValueStorageManagerProxy> WebKeyValueStorageManagerProxy::creat
WebKeyValueStorageManagerProxy::WebKeyValueStorageManagerProxy(WebContext* context)
: m_webContext(context)
{
+ m_webContext->addMessageReceiver(CoreIPC::MessageClassWebKeyValueStorageManagerProxy, this);
}
WebKeyValueStorageManagerProxy::~WebKeyValueStorageManagerProxy()
diff --git a/Source/WebKit2/UIProcess/WebKeyValueStorageManagerProxy.h b/Source/WebKit2/UIProcess/WebKeyValueStorageManagerProxy.h
index 2be77c351..9c63142f6 100644
--- a/Source/WebKit2/UIProcess/WebKeyValueStorageManagerProxy.h
+++ b/Source/WebKit2/UIProcess/WebKeyValueStorageManagerProxy.h
@@ -29,17 +29,11 @@
#include "APIObject.h"
#include "GenericCallback.h"
#include "ImmutableArray.h"
-
+#include "MessageReceiver.h"
#include <wtf/PassRefPtr.h>
#include <wtf/RefPtr.h>
#include <wtf/Vector.h>
-namespace CoreIPC {
- class ArgumentDecoder;
- class Connection;
- class MessageID;
-}
-
namespace WebKit {
struct SecurityOriginData;
@@ -49,7 +43,7 @@ class WebSecurityOrigin;
typedef GenericCallback<WKArrayRef> ArrayCallback;
-class WebKeyValueStorageManagerProxy : public APIObject {
+class WebKeyValueStorageManagerProxy : public APIObject, private CoreIPC::MessageReceiver {
public:
static const Type APIType = TypeKeyValueStorageManager;
@@ -63,8 +57,6 @@ public:
void deleteEntriesForOrigin(WebSecurityOrigin*);
void deleteAllEntries();
- void didReceiveMessage(CoreIPC::Connection*, CoreIPC::MessageID, CoreIPC::ArgumentDecoder*);
-
bool shouldTerminate(WebProcessProxy*) const;
private:
@@ -73,7 +65,9 @@ private:
virtual Type type() const { return APIType; }
void didGetKeyValueStorageOrigins(const Vector<SecurityOriginData>&, uint64_t callbackID);
-
+
+ // CoreIPC::MessageReceiver
+ virtual void didReceiveMessage(CoreIPC::Connection*, CoreIPC::MessageID, CoreIPC::ArgumentDecoder*) OVERRIDE;
void didReceiveWebKeyValueStorageManagerProxyMessage(CoreIPC::Connection*, CoreIPC::MessageID, CoreIPC::ArgumentDecoder*);
WebContext* m_webContext;
diff --git a/Source/WebKit2/UIProcess/WebMediaCacheManagerProxy.cpp b/Source/WebKit2/UIProcess/WebMediaCacheManagerProxy.cpp
index ce4a78c64..81cf98f56 100644
--- a/Source/WebKit2/UIProcess/WebMediaCacheManagerProxy.cpp
+++ b/Source/WebKit2/UIProcess/WebMediaCacheManagerProxy.cpp
@@ -40,6 +40,7 @@ PassRefPtr<WebMediaCacheManagerProxy> WebMediaCacheManagerProxy::create(WebConte
WebMediaCacheManagerProxy::WebMediaCacheManagerProxy(WebContext* context)
: m_webContext(context)
{
+ m_webContext->addMessageReceiver(CoreIPC::MessageClassWebMediaCacheManagerProxy, this);
}
WebMediaCacheManagerProxy::~WebMediaCacheManagerProxy()
diff --git a/Source/WebKit2/UIProcess/WebMediaCacheManagerProxy.h b/Source/WebKit2/UIProcess/WebMediaCacheManagerProxy.h
index adc68c4ab..48e88e0fc 100644
--- a/Source/WebKit2/UIProcess/WebMediaCacheManagerProxy.h
+++ b/Source/WebKit2/UIProcess/WebMediaCacheManagerProxy.h
@@ -29,17 +29,11 @@
#include "APIObject.h"
#include "GenericCallback.h"
#include "ImmutableArray.h"
-
+#include "MessageReceiver.h"
#include <wtf/PassRefPtr.h>
#include <wtf/RefPtr.h>
#include <wtf/Vector.h>
-namespace CoreIPC {
- class ArgumentDecoder;
- class Connection;
- class MessageID;
-}
-
namespace WebKit {
class WebContext;
@@ -47,7 +41,7 @@ class WebProcessProxy;
typedef GenericCallback<WKArrayRef> ArrayCallback;
-class WebMediaCacheManagerProxy : public APIObject {
+class WebMediaCacheManagerProxy : public APIObject, private CoreIPC::MessageReceiver {
public:
static const Type APIType = TypeMediaCacheManager;
@@ -61,8 +55,6 @@ public:
void clearCacheForHostname(const String&);
void clearCacheForAllHostnames();
- void didReceiveMessage(CoreIPC::Connection*, CoreIPC::MessageID, CoreIPC::ArgumentDecoder*);
-
bool shouldTerminate(WebProcessProxy*) const;
private:
@@ -71,7 +63,9 @@ private:
virtual Type type() const { return APIType; }
void didGetHostnamesWithMediaCache(const Vector<String>&, uint64_t callbackID);
-
+
+ // CoreIPC::MessageReceiver
+ virtual void didReceiveMessage(CoreIPC::Connection*, CoreIPC::MessageID, CoreIPC::ArgumentDecoder*) OVERRIDE;
void didReceiveWebMediaCacheManagerProxyMessage(CoreIPC::Connection*, CoreIPC::MessageID, CoreIPC::ArgumentDecoder*);
WebContext* m_webContext;
diff --git a/Source/WebKit2/UIProcess/WebNetworkInfoManagerProxy.cpp b/Source/WebKit2/UIProcess/WebNetworkInfoManagerProxy.cpp
index 9bacced06..21a399bc0 100644
--- a/Source/WebKit2/UIProcess/WebNetworkInfoManagerProxy.cpp
+++ b/Source/WebKit2/UIProcess/WebNetworkInfoManagerProxy.cpp
@@ -43,6 +43,7 @@ WebNetworkInfoManagerProxy::WebNetworkInfoManagerProxy(WebContext* context)
: m_isUpdating(false)
, m_context(context)
{
+ m_context->addMessageReceiver(CoreIPC::MessageClassWebNetworkInfoManagerProxy, this);
}
WebNetworkInfoManagerProxy::~WebNetworkInfoManagerProxy()
@@ -72,7 +73,7 @@ void WebNetworkInfoManagerProxy::didReceiveMessage(CoreIPC::Connection* connecti
didReceiveWebNetworkInfoManagerProxyMessage(connection, messageID, arguments);
}
-void WebNetworkInfoManagerProxy::didReceiveSyncMessage(CoreIPC::Connection* connection, CoreIPC::MessageID messageID, CoreIPC::ArgumentDecoder* arguments, WTF::OwnPtr<CoreIPC::ArgumentEncoder>& reply)
+void WebNetworkInfoManagerProxy::didReceiveSyncMessage(CoreIPC::Connection* connection, CoreIPC::MessageID messageID, CoreIPC::ArgumentDecoder* arguments, OwnPtr<CoreIPC::ArgumentEncoder>& reply)
{
didReceiveSyncWebNetworkInfoManagerProxyMessage(connection, messageID, arguments, reply);
}
diff --git a/Source/WebKit2/UIProcess/WebNetworkInfoManagerProxy.h b/Source/WebKit2/UIProcess/WebNetworkInfoManagerProxy.h
index b7298553c..2c4ef7c67 100644
--- a/Source/WebKit2/UIProcess/WebNetworkInfoManagerProxy.h
+++ b/Source/WebKit2/UIProcess/WebNetworkInfoManagerProxy.h
@@ -29,22 +29,16 @@
#if ENABLE(NETWORK_INFO)
#include "APIObject.h"
-#include "MessageID.h"
+#include "MessageReceiver.h"
#include "WebNetworkInfoProvider.h"
#include <wtf/Forward.h>
-namespace CoreIPC {
-class ArgumentDecoder;
-class ArgumentEncoder;
-class Connection;
-}
-
namespace WebKit {
class WebContext;
class WebNetworkInfo;
-class WebNetworkInfoManagerProxy : public APIObject {
+class WebNetworkInfoManagerProxy : public APIObject, private CoreIPC::MessageReceiver {
public:
static const Type APIType = TypeNetworkInfoManager;
@@ -58,17 +52,18 @@ public:
void providerDidChangeNetworkInformation(const WTF::AtomicString& eventType, WebNetworkInfo*);
- void didReceiveMessage(CoreIPC::Connection*, CoreIPC::MessageID, CoreIPC::ArgumentDecoder*);
- void didReceiveSyncMessage(CoreIPC::Connection*, CoreIPC::MessageID, CoreIPC::ArgumentDecoder*, WTF::OwnPtr<CoreIPC::ArgumentEncoder>&);
-
private:
explicit WebNetworkInfoManagerProxy(WebContext*);
virtual Type type() const { return APIType; }
+ // CoreIPC::MessageReceiver
+ virtual void didReceiveMessage(CoreIPC::Connection*, CoreIPC::MessageID, CoreIPC::ArgumentDecoder*) OVERRIDE;
+ virtual void didReceiveSyncMessage(CoreIPC::Connection*, CoreIPC::MessageID, CoreIPC::ArgumentDecoder*, OwnPtr<CoreIPC::ArgumentEncoder>&) OVERRIDE;
+
// Implemented in generated WebNetworkInfoManagerProxyMessageReceiver.cpp
void didReceiveWebNetworkInfoManagerProxyMessage(CoreIPC::Connection*, CoreIPC::MessageID, CoreIPC::ArgumentDecoder*);
- void didReceiveSyncWebNetworkInfoManagerProxyMessage(CoreIPC::Connection*, CoreIPC::MessageID, CoreIPC::ArgumentDecoder*, WTF::OwnPtr<CoreIPC::ArgumentEncoder>&);
+ void didReceiveSyncWebNetworkInfoManagerProxyMessage(CoreIPC::Connection*, CoreIPC::MessageID, CoreIPC::ArgumentDecoder*, OwnPtr<CoreIPC::ArgumentEncoder>&);
void startUpdating();
void stopUpdating();
diff --git a/Source/WebKit2/UIProcess/WebPageGroup.cpp b/Source/WebKit2/UIProcess/WebPageGroup.cpp
index 72588d4d7..0cdbf817d 100644
--- a/Source/WebKit2/UIProcess/WebPageGroup.cpp
+++ b/Source/WebKit2/UIProcess/WebPageGroup.cpp
@@ -26,6 +26,7 @@
#include "config.h"
#include "WebPageGroup.h"
+#include "WebPageGroupProxyMessages.h"
#include "WebPageProxy.h"
#include "WebPreferences.h"
#include <wtf/HashMap.h>
@@ -128,4 +129,65 @@ void WebPageGroup::preferencesDidChange()
}
}
+static Vector<String> toStringVector(ImmutableArray* array)
+{
+ Vector<String> patternVector;
+ if (!array)
+ return patternVector;
+
+ size_t size = array->size();
+ if (!size)
+ return patternVector;
+
+ patternVector.reserveInitialCapacity(size);
+ for (size_t i = 0; i < size; ++i) {
+ WebString* webString = array->at<WebString>(i);
+ ASSERT(webString);
+ patternVector.uncheckedAppend(webString->string());
+ }
+
+ return patternVector;
+}
+
+void WebPageGroup::addUserStyleSheet(const String& source, const String& baseURL, ImmutableArray* whitelist, ImmutableArray* blacklist, WebCore::UserContentInjectedFrames injectedFrames, WebCore::UserStyleLevel level)
+{
+ if (source.isEmpty())
+ return;
+
+ WebCore::UserStyleSheet userStyleSheet = WebCore::UserStyleSheet(source, (baseURL.isEmpty() ? WebCore::blankURL() : WebCore::KURL(WebCore::KURL(), baseURL)), toStringVector(whitelist), toStringVector(blacklist), injectedFrames, level);
+
+ m_data.userStyleSheets.append(userStyleSheet);
+ sendToAllProcessesInGroup(Messages::WebPageGroupProxy::AddUserStyleSheet(userStyleSheet), m_data.pageGroupID);
+}
+
+void WebPageGroup::addUserScript(const String& source, const String& baseURL, ImmutableArray* whitelist, ImmutableArray* blacklist, WebCore::UserContentInjectedFrames injectedFrames, WebCore::UserScriptInjectionTime injectionTime)
+{
+ if (source.isEmpty())
+ return;
+
+ WebCore::UserScript userScript = WebCore::UserScript(source, (baseURL.isEmpty() ? WebCore::blankURL() : WebCore::KURL(WebCore::KURL(), baseURL)), toStringVector(whitelist), toStringVector(blacklist), injectionTime, injectedFrames);
+
+ m_data.userScripts.append(userScript);
+ sendToAllProcessesInGroup(Messages::WebPageGroupProxy::AddUserScript(userScript), m_data.pageGroupID);
+}
+
+void WebPageGroup::removeAllUserStyleSheets()
+{
+ m_data.userStyleSheets.clear();
+ sendToAllProcessesInGroup(Messages::WebPageGroupProxy::RemoveAllUserStyleSheets(), m_data.pageGroupID);
+}
+
+void WebPageGroup::removeAllUserScripts()
+{
+ m_data.userScripts.clear();
+ sendToAllProcessesInGroup(Messages::WebPageGroupProxy::RemoveAllUserScripts(), m_data.pageGroupID);
+}
+
+void WebPageGroup::removeAllUserContent()
+{
+ m_data.userStyleSheets.clear();
+ m_data.userScripts.clear();
+ sendToAllProcessesInGroup(Messages::WebPageGroupProxy::RemoveAllUserContent(), m_data.pageGroupID);
+}
+
} // namespace WebKit
diff --git a/Source/WebKit2/UIProcess/WebPageGroup.h b/Source/WebKit2/UIProcess/WebPageGroup.h
index ccc14bd91..176b9ee46 100644
--- a/Source/WebKit2/UIProcess/WebPageGroup.h
+++ b/Source/WebKit2/UIProcess/WebPageGroup.h
@@ -28,6 +28,8 @@
#include "APIObject.h"
#include "WebPageGroupData.h"
+#include "WebPageProxy.h"
+#include "WebProcessProxy.h"
#include <wtf/Forward.h>
#include <wtf/HashSet.h>
@@ -56,16 +58,37 @@ public:
void setPreferences(WebPreferences*);
WebPreferences* preferences() const;
void preferencesDidChange();
+
+ void addUserStyleSheet(const String& source, const String& baseURL, ImmutableArray* whitelist, ImmutableArray* blacklist, WebCore::UserContentInjectedFrames, WebCore::UserStyleLevel);
+ void addUserScript(const String& source, const String& baseURL, ImmutableArray* whitelist, ImmutableArray* blacklist, WebCore::UserContentInjectedFrames, WebCore::UserScriptInjectionTime);
+ void removeAllUserStyleSheets();
+ void removeAllUserScripts();
+ void removeAllUserContent();
private:
WebPageGroup(const String& identifier, bool visibleToInjectedBundle, bool visibleToHistoryClient);
virtual Type type() const { return APIType; }
+
+ template<typename MessageType> void sendToAllProcessesInGroup(const MessageType&, uint64_t destinationID);
WebPageGroupData m_data;
mutable RefPtr<WebPreferences> m_preferences;
HashSet<WebPageProxy*> m_pages;
};
+
+template<typename MessageType> inline void WebPageGroup::sendToAllProcessesInGroup(const MessageType& message, uint64_t destinationID)
+{
+ HashSet<WebProcessProxy*> processesSeen;
+ for (HashSet<WebPageProxy*>::const_iterator it = m_pages.begin(), end = m_pages.end(); it != end; ++it) {
+ WebProcessProxy* webProcessProxy = (*it)->process();
+ ASSERT(webProcessProxy);
+ if (!processesSeen.add(webProcessProxy).isNewEntry)
+ continue;
+ if (webProcessProxy->canSendMessage())
+ webProcessProxy->send(message, destinationID);
+ }
+}
} // namespace WebKit
diff --git a/Source/WebKit2/UIProcess/WebPageProxy.cpp b/Source/WebKit2/UIProcess/WebPageProxy.cpp
index a0e9ee7f7..7ef4a249f 100644
--- a/Source/WebKit2/UIProcess/WebPageProxy.cpp
+++ b/Source/WebKit2/UIProcess/WebPageProxy.cpp
@@ -34,7 +34,6 @@
#include "DrawingAreaProxy.h"
#include "EventDispatcherMessages.h"
#include "FindIndicator.h"
-#include "InjectedBundleMessageKinds.h"
#include "Logging.h"
#include "MessageID.h"
#include "NativeWebKeyboardEvent.h"
@@ -108,6 +107,10 @@
#include "ArgumentCodersGtk.h"
#endif
+#if USE(SOUP)
+#include "WebSoupRequestManagerProxy.h"
+#endif
+
#ifndef NDEBUG
#include <wtf/RefCountedLeakCounter.h>
#endif
@@ -220,6 +223,8 @@ WebPageProxy::WebPageProxy(PageClient* pageClient, PassRefPtr<WebProcessProxy> p
, m_canShortCircuitHorizontalWheelEvents(true)
, m_mainFrameIsPinnedToLeftSide(false)
, m_mainFrameIsPinnedToRightSide(false)
+ , m_mainFrameIsPinnedToTopSide(false)
+ , m_mainFrameIsPinnedToBottomSide(false)
, m_pageCount(0)
, m_renderTreeSize(0)
, m_shouldSendEventsSynchronously(false)
@@ -229,6 +234,10 @@ WebPageProxy::WebPageProxy(PageClient* pageClient, PassRefPtr<WebProcessProxy> p
, m_visibilityState(PageVisibilityStateVisible)
#endif
{
+#if ENABLE(PAGE_VISIBILITY_API)
+ if (!m_isVisible)
+ m_visibilityState = PageVisibilityStateHidden;
+#endif
#ifndef NDEBUG
webPageProxyCounter.increment();
#endif
@@ -277,6 +286,21 @@ bool WebPageProxy::isValid()
return m_isValid;
}
+PassRefPtr<ImmutableArray> WebPageProxy::relatedPages() const
+{
+ Vector<WebPageProxy*> pages = m_process->pages();
+ ASSERT(pages.contains(this));
+
+ Vector<RefPtr<APIObject> > result;
+ result.reserveCapacity(pages.size() - 1);
+ for (size_t i = 0; i < pages.size(); ++i) {
+ if (pages[i] != this)
+ result.append(pages[i]);
+ }
+
+ return ImmutableArray::adopt(result);
+}
+
void WebPageProxy::initializeLoaderClient(const WKPageLoaderClient* loadClient)
{
m_loaderClient.initialize(loadClient);
@@ -342,10 +366,13 @@ void WebPageProxy::initializeContextMenuClient(const WKPageContextMenuClient* cl
void WebPageProxy::reattachToWebProcess()
{
ASSERT(!isValid());
+ ASSERT(m_process);
+ ASSERT(!m_process->isValid());
+ ASSERT(!m_process->isLaunching());
m_isValid = true;
- m_process = m_process->context()->relaunchProcessIfNecessary();
+ m_process = m_process->context()->createNewWebProcess();
m_process->addExistingWebPage(this, m_pageID);
initializeWebPage();
@@ -388,6 +415,8 @@ void WebPageProxy::initializeWebPage()
#if ENABLE(PAGE_VISIBILITY_API)
m_process->send(Messages::WebPage::SetVisibilityState(m_visibilityState, /* isInitialState */ true), m_pageID);
+#elif ENABLE(HIDDEN_PAGE_DOM_TIMER_THROTTLING)
+ m_process->send(Messages::WebPage::SetVisibilityState(m_isVisible ? PageVisibilityStateVisible : PageVisibilityStateHidden, /* isInitialState */ true), m_pageID);
#endif
}
@@ -448,6 +477,8 @@ void WebPageProxy::close()
m_mainFrameIsPinnedToLeftSide = false;
m_mainFrameIsPinnedToRightSide = false;
+ m_mainFrameIsPinnedToTopSide = false;
+ m_mainFrameIsPinnedToBottomSide = false;
m_visibleScrollerThumbRect = IntRect();
@@ -745,18 +776,9 @@ String WebPageProxy::committedURL() const
bool WebPageProxy::canShowMIMEType(const String& mimeType) const
{
- if (MIMETypeRegistry::isSupportedNonImageMIMEType(mimeType))
+ if (MIMETypeRegistry::canShowMIMEType(mimeType))
return true;
- if (MIMETypeRegistry::isSupportedImageMIMEType(mimeType))
- return true;
-
- if (MIMETypeRegistry::isSupportedMediaMIMEType(mimeType))
- return true;
-
- if (mimeType.startsWith("text/", false))
- return !MIMETypeRegistry::isUnsupportedTextMIMEType(mimeType);
-
String newMimeType = mimeType;
PluginModuleInfo plugin = m_process->context()->pluginInfoStore().findPlugin(newMimeType, KURL());
if (!plugin.path.isNull())
@@ -839,6 +861,11 @@ void WebPageProxy::viewStateDidChange(ViewStateFlags flags)
// stop the unresponsiveness timer here.
m_process->responsivenessTimer()->stop();
}
+
+#if ENABLE(HIDDEN_PAGE_DOM_TIMER_THROTTLING) && !ENABLE(PAGE_VISIBILITY_API)
+ PageVisibilityState visibilityState = m_isVisible ? PageVisibilityStateVisible : PageVisibilityStateHidden;
+ m_process->send(Messages::WebPage::SetVisibilityState(visibilityState, false), m_pageID);
+#endif
}
}
@@ -861,7 +888,7 @@ void WebPageProxy::viewStateDidChange(ViewStateFlags flags)
#if ENABLE(PAGE_VISIBILITY_API)
PageVisibilityState visibilityState = PageVisibilityStateHidden;
- if (m_pageClient->isViewVisible())
+ if (m_isVisible)
visibilityState = PageVisibilityStateVisible;
if (visibilityState != m_visibilityState) {
@@ -936,6 +963,14 @@ void WebPageProxy::setViewportSize(const IntSize& size)
m_process->send(Messages::WebPage::SetViewportSize(size), m_pageID);
}
+
+void WebPageProxy::commitPageTransitionViewport()
+{
+ if (!isValid())
+ return;
+
+ process()->send(Messages::WebPage::CommitPageTransitionViewport(), m_pageID);
+}
#endif
#if ENABLE(DRAG_SUPPORT)
@@ -2066,6 +2101,8 @@ void WebPageProxy::didCommitLoadForFrame(uint64_t frameID, const String& mimeTyp
// any wheel events and dispatch them to the WKView when necessary.
m_mainFrameIsPinnedToLeftSide = true;
m_mainFrameIsPinnedToRightSide = true;
+ m_mainFrameIsPinnedToTopSide = true;
+ m_mainFrameIsPinnedToBottomSide = true;
}
m_pageClient->didCommitLoadForMainFrame(frameHasCustomRepresentation);
}
@@ -2704,41 +2741,6 @@ void WebPageProxy::setMediaVolume(float volume)
m_process->send(Messages::WebPage::SetMediaVolume(volume), m_pageID);
}
-#if PLATFORM(QT)
-void WebPageProxy::didFindZoomableArea(const IntPoint& target, const IntRect& area)
-{
- m_pageClient->didFindZoomableArea(target, area);
-}
-
-void WebPageProxy::findZoomableAreaForPoint(const IntPoint& point, const IntSize& area)
-{
- if (!isValid())
- return;
-
- m_process->send(Messages::WebPage::FindZoomableAreaForPoint(point, area), m_pageID);
-}
-
-void WebPageProxy::didReceiveMessageFromNavigatorQtObject(const String& contents)
-{
- m_pageClient->didReceiveMessageFromNavigatorQtObject(contents);
-}
-
-void WebPageProxy::authenticationRequiredRequest(const String& hostname, const String& realm, const String& prefilledUsername, String& username, String& password)
-{
- m_pageClient->handleAuthenticationRequiredRequest(hostname, realm, prefilledUsername, username, password);
-}
-
-void WebPageProxy::proxyAuthenticationRequiredRequest(const String& hostname, uint16_t port, const String& prefilledUsername, String& username, String& password)
-{
- m_pageClient->handleProxyAuthenticationRequiredRequest(hostname, port, prefilledUsername, username, password);
-}
-
-void WebPageProxy::certificateVerificationRequest(const String& hostname, bool& ignoreErrors)
-{
- m_pageClient->handleCertificateVerificationRequest(hostname, ignoreErrors);
-}
-#endif // PLATFORM(QT).
-
#if PLATFORM(QT) || PLATFORM(EFL)
void WebPageProxy::handleDownloadRequest(DownloadProxy* download)
{
@@ -2962,8 +2964,7 @@ NativeWebMouseEvent* WebPageProxy::currentlyProcessedMouseDownEvent()
void WebPageProxy::postMessageToInjectedBundle(const String& messageName, APIObject* messageBody)
{
- // FIXME: We should consider returning false from this function if the messageBody cannot be encoded.
- process()->deprecatedSend(InjectedBundleMessage::PostMessageToPage, m_pageID, CoreIPC::In(messageName, WebContextUserMessageEncoder(messageBody)));
+ process()->send(Messages::WebPage::PostInjectedBundleMessage(messageName, WebContextUserMessageEncoder(messageBody)), m_pageID);
}
#if PLATFORM(GTK)
@@ -3615,6 +3616,8 @@ void WebPageProxy::processDidCrash()
m_mainFrameIsPinnedToLeftSide = false;
m_mainFrameIsPinnedToRightSide = false;
+ m_mainFrameIsPinnedToTopSide = false;
+ m_mainFrameIsPinnedToBottomSide = false;
m_visibleScrollerThumbRect = IntRect();
@@ -3863,10 +3866,12 @@ void WebPageProxy::didChangeScrollbarsForMainFrame(bool hasHorizontalScrollbar,
m_pageClient->didChangeScrollbarsForMainFrame();
}
-void WebPageProxy::didChangeScrollOffsetPinningForMainFrame(bool pinnedToLeftSide, bool pinnedToRightSide)
+void WebPageProxy::didChangeScrollOffsetPinningForMainFrame(bool pinnedToLeftSide, bool pinnedToRightSide, bool pinnedToTopSide, bool pinnedToBottomSide)
{
m_mainFrameIsPinnedToLeftSide = pinnedToLeftSide;
m_mainFrameIsPinnedToRightSide = pinnedToRightSide;
+ m_mainFrameIsPinnedToTopSide = pinnedToTopSide;
+ m_mainFrameIsPinnedToBottomSide = pinnedToBottomSide;
}
void WebPageProxy::didChangePageCount(unsigned pageCount)
@@ -4103,4 +4108,11 @@ void WebPageProxy::dictationAlternatives(uint64_t dictationContext, Vector<Strin
#endif // PLATFORM(MAC)
+#if USE(SOUP)
+void WebPageProxy::didReceiveURIRequest(String uriString, uint64_t requestID)
+{
+ m_process->context()->soupRequestManagerProxy()->didReceiveURIRequest(uriString, this, requestID);
+}
+#endif
+
} // namespace WebKit
diff --git a/Source/WebKit2/UIProcess/WebPageProxy.h b/Source/WebKit2/UIProcess/WebPageProxy.h
index 4cbafa3a9..eede6b96f 100644
--- a/Source/WebKit2/UIProcess/WebPageProxy.h
+++ b/Source/WebKit2/UIProcess/WebPageProxy.h
@@ -356,6 +356,7 @@ public:
bool maintainsInactiveSelection() const { return m_maintainsInactiveSelection; }
void setMaintainsInactiveSelection(bool);
#if PLATFORM(QT)
+ void didRenderFrame(const WebCore::IntSize& contentsSize, const WebCore::IntRect& coveredRect);
void registerApplicationScheme(const String& scheme);
void resolveApplicationSchemeRequest(QtNetworkRequestData);
void sendApplicationSchemeReply(const QQuickNetworkReply*);
@@ -418,6 +419,7 @@ public:
#endif
#if USE(TILED_BACKING_STORE)
void setViewportSize(const WebCore::IntSize&);
+ void commitPageTransitionViewport();
#endif
void handleMouseEvent(const NativeWebMouseEvent&);
@@ -494,6 +496,8 @@ public:
bool isPinnedToLeftSide() const { return m_mainFrameIsPinnedToLeftSide; }
bool isPinnedToRightSide() const { return m_mainFrameIsPinnedToRightSide; }
+ bool isPinnedToTopSide() const { return m_mainFrameIsPinnedToTopSide; }
+ bool isPinnedToBottomSide() const { return m_mainFrameIsPinnedToBottomSide; }
void setPaginationMode(WebCore::Pagination::Mode);
WebCore::Pagination::Mode paginationMode() const { return m_paginationMode; }
@@ -621,6 +625,8 @@ public:
bool isValid();
+ PassRefPtr<ImmutableArray> relatedPages() const;
+
const String& urlAtProcessExit() const { return m_urlAtProcessExit; }
WebFrameProxy::LoadState loadStateAtProcessExit() const { return m_loadStateAtProcessExit; }
@@ -717,7 +723,6 @@ public:
#if PLATFORM(GTK) && USE(TEXTURE_MAPPER_GL)
void setAcceleratedCompositingWindowId(uint64_t nativeWindowId);
- void invalidateWidget();
#endif
void setSuppressVisibilityUpdates(bool flag) { m_suppressVisibilityUpdates = flag; }
@@ -833,7 +838,7 @@ private:
void notifyScrollerThumbIsVisibleInRect(const WebCore::IntRect&);
void recommendedScrollbarStyleDidChange(int32_t newStyle);
void didChangeScrollbarsForMainFrame(bool hasHorizontalScrollbar, bool hasVerticalScrollbar);
- void didChangeScrollOffsetPinningForMainFrame(bool pinnedToLeftSide, bool pinnedToRightSide);
+ void didChangeScrollOffsetPinningForMainFrame(bool pinnedToLeftSide, bool pinnedToRightSide, bool pinnedToTopSide, bool pinnedToBottomSide);
void didChangePageCount(unsigned);
void didFailToInitializePlugin(const String& mimeType);
void didBlockInsecurePluginVersion(const String& mimeType, const String& urlString);
@@ -850,6 +855,7 @@ private:
#endif
#if PLATFORM(QT)
+ void pageTransitionViewportReady();
void didFindZoomableArea(const WebCore::IntPoint&, const WebCore::IntRect&);
#endif
@@ -995,6 +1001,10 @@ private:
#endif
#endif // PLATFORM(MAC)
+#if USE(SOUP)
+ void didReceiveURIRequest(String uriString, uint64_t requestID);
+#endif
+
void clearLoadDependentCallbacks();
void performDragControllerAction(DragControllerAction, WebCore::DragData*, const String& dragStorageName, const SandboxExtension::Handle&, const SandboxExtension::HandleArray&);
@@ -1188,6 +1198,8 @@ private:
bool m_mainFrameIsPinnedToLeftSide;
bool m_mainFrameIsPinnedToRightSide;
+ bool m_mainFrameIsPinnedToTopSide;
+ bool m_mainFrameIsPinnedToBottomSide;
unsigned m_pageCount;
diff --git a/Source/WebKit2/UIProcess/WebPageProxy.messages.in b/Source/WebKit2/UIProcess/WebPageProxy.messages.in
index 3a755e1dd..77ac830f2 100644
--- a/Source/WebKit2/UIProcess/WebPageProxy.messages.in
+++ b/Source/WebKit2/UIProcess/WebPageProxy.messages.in
@@ -29,7 +29,7 @@ messages -> WebPageProxy {
RunJavaScriptConfirm(uint64_t frameID, WTF::String message) -> (bool result)
RunJavaScriptPrompt(uint64_t frameID, WTF::String message, WTF::String defaultValue) -> (WTF::String result)
ShouldInterruptJavaScript() -> (bool shouldInterupt)
- MouseDidMoveOverElement(WebKit::WebHitTestResult::Data hitTestResultData, uint32_t modifiers, WebKit::InjectedBundleUserMessageEncoder userData);
+ MouseDidMoveOverElement(WebKit::WebHitTestResult::Data hitTestResultData, uint32_t modifiers, WebKit::InjectedBundleUserMessageEncoder userData) Variadic
UnavailablePluginButtonClicked(uint32_t pluginUnavailabilityReason, WTF::String mimeType, WTF::String url, WTF::String pluginsPageURL)
DidChangeViewportProperties(WebCore::ViewportAttributes attributes)
DidReceiveEvent(uint32_t type, bool handled)
@@ -63,7 +63,7 @@ messages -> WebPageProxy {
NotifyScrollerThumbIsVisibleInRect(WebCore::IntRect scrollerThumb)
RecommendedScrollbarStyleDidChange(int32_t newStyle)
DidChangeScrollbarsForMainFrame(bool hasHorizontalScrollbar, bool hasVerticalScrollbar)
- DidChangeScrollOffsetPinningForMainFrame(bool hasHorizontalScrollbar, bool hasVerticalScrollbar)
+ DidChangeScrollOffsetPinningForMainFrame(bool pinnedToLeftSide, bool pinnedToRightSide, bool pinnedToTopSide, bool pinnedToBottomSide)
DidChangePageCount(unsigned pageCount);
DidFailToInitializePlugin(WTF::String mimeType)
DidBlockInsecurePluginVersion(WTF::String mimeType, WTF::String urlString)
@@ -73,6 +73,7 @@ messages -> WebPageProxy {
PageDidRequestScroll(WebCore::IntPoint point)
#endif
#if PLATFORM(QT)
+ PageTransitionViewportReady()
DidFindZoomableArea(WebCore::IntPoint target, WebCore::IntRect area)
AuthenticationRequiredRequest(WTF::String hostname, WTF::String realm, WTF::String prefilledUsername) -> (WTF::String username, WTF::String password)
CertificateVerificationRequest(WTF::String hostname) -> (bool ignoreErrors)
@@ -94,17 +95,17 @@ messages -> WebPageProxy {
#endif
# Policy messages
- DecidePolicyForResponse(uint64_t frameID, WebCore::ResourceResponse response, WebCore::ResourceRequest request, uint64_t listenerID, WebKit::InjectedBundleUserMessageEncoder userData) -> (bool receivedPolicyAction, uint64_t policyAction, uint64_t downloadID)
- DecidePolicyForNavigationAction(uint64_t frameID, uint32_t navigationType, uint32_t modifiers, int32_t mouseButton, WebCore::ResourceRequest request, uint64_t listenerID, WebKit::InjectedBundleUserMessageEncoder userData) -> (bool receivedPolicyAction, uint64_t policyAction, uint64_t downloadID)
- DecidePolicyForNewWindowAction(uint64_t frameID, uint32_t navigationType, uint32_t modifiers, int32_t mouseButton, WebCore::ResourceRequest request, WTF::String frameName, uint64_t listenerID, WebKit::InjectedBundleUserMessageEncoder userData)
- UnableToImplementPolicy(uint64_t frameID, WebCore::ResourceError error, WebKit::InjectedBundleUserMessageEncoder userData)
+ DecidePolicyForResponse(uint64_t frameID, WebCore::ResourceResponse response, WebCore::ResourceRequest request, uint64_t listenerID, WebKit::InjectedBundleUserMessageEncoder userData) -> (bool receivedPolicyAction, uint64_t policyAction, uint64_t downloadID) Variadic
+ DecidePolicyForNavigationAction(uint64_t frameID, uint32_t navigationType, uint32_t modifiers, int32_t mouseButton, WebCore::ResourceRequest request, uint64_t listenerID, WebKit::InjectedBundleUserMessageEncoder userData) -> (bool receivedPolicyAction, uint64_t policyAction, uint64_t downloadID) Variadic
+ DecidePolicyForNewWindowAction(uint64_t frameID, uint32_t navigationType, uint32_t modifiers, int32_t mouseButton, WebCore::ResourceRequest request, WTF::String frameName, uint64_t listenerID, WebKit::InjectedBundleUserMessageEncoder userData) Variadic
+ UnableToImplementPolicy(uint64_t frameID, WebCore::ResourceError error, WebKit::InjectedBundleUserMessageEncoder userData) Variadic
# Intent messages
#if ENABLE(WEB_INTENTS)
- DidReceiveIntentForFrame(uint64_t frameID, WebKit::IntentData intent, WebKit::InjectedBundleUserMessageEncoder userData)
+ DidReceiveIntentForFrame(uint64_t frameID, WebKit::IntentData intent, WebKit::InjectedBundleUserMessageEncoder userData) Variadic
#endif
#if ENABLE(WEB_INTENTS_TAG)
- RegisterIntentServiceForFrame(uint64_t frameID, WebKit::IntentServiceInfo serviceInfo, WebKit::InjectedBundleUserMessageEncoder userData);
+ RegisterIntentServiceForFrame(uint64_t frameID, WebKit::IntentServiceInfo serviceInfo, WebKit::InjectedBundleUserMessageEncoder userData) Variadic
#endif
# Progress messages
@@ -119,23 +120,23 @@ messages -> WebPageProxy {
DidRestoreFrameFromPageCache(uint64_t frameID, uint64_t parentFrameID);
# Frame load messages
- DidCommitLoadForFrame(uint64_t frameID, WTF::String mimeType, bool hasCustomRepresentation, WebKit::PlatformCertificateInfo certificateInfo, WebKit::InjectedBundleUserMessageEncoder userData)
- DidFailLoadForFrame(uint64_t frameID, WebCore::ResourceError error, WebKit::InjectedBundleUserMessageEncoder userData)
- DidFailProvisionalLoadForFrame(uint64_t frameID, WebCore::ResourceError error, WebKit::InjectedBundleUserMessageEncoder userData)
- DidFinishDocumentLoadForFrame(uint64_t frameID, WebKit::InjectedBundleUserMessageEncoder userData)
- DidFinishLoadForFrame(uint64_t frameID, WebKit::InjectedBundleUserMessageEncoder userData)
- DidFirstLayoutForFrame(uint64_t frameID, WebKit::InjectedBundleUserMessageEncoder userData)
- DidFirstVisuallyNonEmptyLayoutForFrame(uint64_t frameID, WebKit::InjectedBundleUserMessageEncoder userData)
- DidNewFirstVisuallyNonEmptyLayout(WebKit::InjectedBundleUserMessageEncoder userData)
- DidLayout(uint32_t type, WebKit::InjectedBundleUserMessageEncoder userData)
- DidReceiveServerRedirectForProvisionalLoadForFrame(uint64_t frameID, WTF::String url, WebKit::InjectedBundleUserMessageEncoder userData)
- DidRemoveFrameFromHierarchy(uint64_t frameID, WebKit::InjectedBundleUserMessageEncoder userData)
- DidStartProvisionalLoadForFrame(uint64_t frameID, WTF::String url, WTF::String unreachableURL, WebKit::InjectedBundleUserMessageEncoder userData)
- DidReceiveTitleForFrame(uint64_t frameID, WTF::String title, WebKit::InjectedBundleUserMessageEncoder userData)
- DidDisplayInsecureContentForFrame(uint64_t frameID, WebKit::InjectedBundleUserMessageEncoder userData)
- DidRunInsecureContentForFrame(uint64_t frameID, WebKit::InjectedBundleUserMessageEncoder userData)
- DidDetectXSSForFrame(uint64_t frameID, WebKit::InjectedBundleUserMessageEncoder userData)
- DidSameDocumentNavigationForFrame(uint64_t frameID, uint32_t type, WTF::String url, WebKit::InjectedBundleUserMessageEncoder userData)
+ DidCommitLoadForFrame(uint64_t frameID, WTF::String mimeType, bool hasCustomRepresentation, WebKit::PlatformCertificateInfo certificateInfo, WebKit::InjectedBundleUserMessageEncoder userData) Variadic
+ DidFailLoadForFrame(uint64_t frameID, WebCore::ResourceError error, WebKit::InjectedBundleUserMessageEncoder userData) Variadic
+ DidFailProvisionalLoadForFrame(uint64_t frameID, WebCore::ResourceError error, WebKit::InjectedBundleUserMessageEncoder userData) Variadic
+ DidFinishDocumentLoadForFrame(uint64_t frameID, WebKit::InjectedBundleUserMessageEncoder userData) Variadic
+ DidFinishLoadForFrame(uint64_t frameID, WebKit::InjectedBundleUserMessageEncoder userData) Variadic
+ DidFirstLayoutForFrame(uint64_t frameID, WebKit::InjectedBundleUserMessageEncoder userData) Variadic
+ DidFirstVisuallyNonEmptyLayoutForFrame(uint64_t frameID, WebKit::InjectedBundleUserMessageEncoder userData) Variadic
+ DidNewFirstVisuallyNonEmptyLayout(WebKit::InjectedBundleUserMessageEncoder userData) Variadic
+ DidLayout(uint32_t type, WebKit::InjectedBundleUserMessageEncoder userData) Variadic
+ DidReceiveServerRedirectForProvisionalLoadForFrame(uint64_t frameID, WTF::String url, WebKit::InjectedBundleUserMessageEncoder userData) Variadic
+ DidRemoveFrameFromHierarchy(uint64_t frameID, WebKit::InjectedBundleUserMessageEncoder userData) Variadic
+ DidStartProvisionalLoadForFrame(uint64_t frameID, WTF::String url, WTF::String unreachableURL, WebKit::InjectedBundleUserMessageEncoder userData) Variadic
+ DidReceiveTitleForFrame(uint64_t frameID, WTF::String title, WebKit::InjectedBundleUserMessageEncoder userData) Variadic
+ DidDisplayInsecureContentForFrame(uint64_t frameID, WebKit::InjectedBundleUserMessageEncoder userData) Variadic
+ DidRunInsecureContentForFrame(uint64_t frameID, WebKit::InjectedBundleUserMessageEncoder userData) Variadic
+ DidDetectXSSForFrame(uint64_t frameID, WebKit::InjectedBundleUserMessageEncoder userData) Variadic
+ DidSameDocumentNavigationForFrame(uint64_t frameID, uint32_t type, WTF::String url, WebKit::InjectedBundleUserMessageEncoder userData) Variadic
FrameDidBecomeFrameSet(uint64_t frameID, bool value)
@@ -155,7 +156,7 @@ messages -> WebPageProxy {
DidFinishLoadingDataForCustomRepresentation(WTF::String suggestedFilename, CoreIPC::DataReference data)
# Forms messages
- WillSubmitForm(uint64_t frameID, uint64_t sourceFrameID, WebKit::StringPairVector textFieldValues, uint64_t listenerID, WebKit::InjectedBundleUserMessageEncoder userData)
+ WillSubmitForm(uint64_t frameID, uint64_t sourceFrameID, WebKit::StringPairVector textFieldValues, uint64_t listenerID, WebKit::InjectedBundleUserMessageEncoder userData) Variadic
# Callback messages
VoidCallback(uint64_t callbackID)
@@ -178,10 +179,6 @@ messages -> WebPageProxy {
BindAccessibilityTree(WTF::String plugID)
#endif
-#if PLATFORM(GTK) && USE(TEXTURE_MAPPER_GL)
- InvalidateWidget()
-#endif
-
# BackForward messages
BackForwardAddItem(uint64_t itemID)
BackForwardGoToItem(uint64_t itemID) -> (WebKit::SandboxExtension::Handle sandboxExtensionHandle)
@@ -190,7 +187,7 @@ messages -> WebPageProxy {
BackForwardForwardListCount() -> (int32_t count)
BackForwardClear()
ShouldGoToBackForwardListItem(uint64_t itemID) -> (bool shouldGoToBackForwardListItem)
- WillGoToBackForwardListItem(uint64_t itemID, WebKit::InjectedBundleUserMessageEncoder userData)
+ WillGoToBackForwardListItem(uint64_t itemID, WebKit::InjectedBundleUserMessageEncoder userData) Variadic
# Undo/Redo messages
RegisterEditCommandForUndo(uint64_t commandID, uint32_t editAction)
@@ -222,7 +219,7 @@ messages -> WebPageProxy {
#if ENABLE(CONTEXT_MENUS)
# ContextMenu messages
- ShowContextMenu(WebCore::IntPoint menuLocation, WebKit::WebHitTestResult::Data hitTestResultData, Vector<WebKit::WebContextMenuItemData> items, WebKit::InjectedBundleUserMessageEncoder userData)
+ ShowContextMenu(WebCore::IntPoint menuLocation, WebKit::WebHitTestResult::Data hitTestResultData, Vector<WebKit::WebContextMenuItemData> items, WebKit::InjectedBundleUserMessageEncoder userData) Variadic
#endif
# Authentication messages
@@ -328,4 +325,9 @@ messages -> WebPageProxy {
# Search popup menus
SaveRecentSearches(WTF::String name, Vector<String> searchItems)
LoadRecentSearches(WTF::String name) -> (Vector<String> result)
+
+#if USE(SOUP)
+ # Soup custom URI request messages
+ DidReceiveURIRequest(WTF::String uriString, uint64_t requestID);
+#endif
}
diff --git a/Source/WebKit2/UIProcess/WebProcessProxy.cpp b/Source/WebKit2/UIProcess/WebProcessProxy.cpp
index 579783eed..4114a2851 100644
--- a/Source/WebKit2/UIProcess/WebProcessProxy.cpp
+++ b/Source/WebKit2/UIProcess/WebProcessProxy.cpp
@@ -46,7 +46,10 @@
#include <wtf/text/WTFString.h>
#if PLATFORM(MAC)
-#include "BuiltInPDFView.h"
+#include "SimplePDFPlugin.h"
+#if ENABLE(PDFKIT_PLUGIN)
+#include "PDFPlugin.h"
+#endif
#endif
using namespace WebCore;
@@ -102,6 +105,16 @@ WebProcessProxy::~WebProcessProxy()
}
}
+WebProcessProxy* WebProcessProxy::fromConnection(CoreIPC::Connection* connection)
+{
+ ASSERT(connection);
+ WebConnectionToWebProcess* webConnection = static_cast<WebConnectionToWebProcess*>(connection->client());
+
+ WebProcessProxy* webProcessProxy = webConnection->webProcessProxy();
+ ASSERT(webProcessProxy->connection() == connection);
+ return webProcessProxy;
+}
+
void WebProcessProxy::connect()
{
ASSERT(!m_processLauncher);
@@ -186,6 +199,13 @@ void WebProcessProxy::removeWebPage(uint64_t pageID)
m_pageMap.remove(pageID);
}
+Vector<WebPageProxy*> WebProcessProxy::pages() const
+{
+ Vector<WebPageProxy*> result;
+ copyValuesToVector(m_pageMap, result);
+ return result;
+}
+
#if ENABLE(WEB_INTENTS)
void WebProcessProxy::removeMessagePortChannel(uint64_t channelID)
{
@@ -253,9 +273,9 @@ bool WebProcessProxy::checkURLReceivedFromWebProcess(const KURL& url)
// Items in back/forward list have been already checked.
// One case where we don't have sandbox extensions for file URLs in b/f list is if the list has been reinstated after a crash or a browser restart.
for (WebBackForwardListItemMap::iterator iter = m_backForwardListItemMap.begin(), end = m_backForwardListItemMap.end(); iter != end; ++iter) {
- if (KURL(KURL(), iter->second->url()).fileSystemPath() == path)
+ if (KURL(KURL(), iter->value->url()).fileSystemPath() == path)
return true;
- if (KURL(KURL(), iter->second->originalURL()).fileSystemPath() == path)
+ if (KURL(KURL(), iter->value->originalURL()).fileSystemPath() == path)
return true;
}
@@ -278,15 +298,15 @@ void WebProcessProxy::addBackForwardItem(uint64_t itemID, const String& original
WebBackForwardListItemMap::AddResult result = m_backForwardListItemMap.add(itemID, 0);
if (result.isNewEntry) {
- result.iterator->second = WebBackForwardListItem::create(originalURL, url, title, backForwardData.data(), backForwardData.size(), itemID);
+ result.iterator->value = WebBackForwardListItem::create(originalURL, url, title, backForwardData.data(), backForwardData.size(), itemID);
return;
}
// Update existing item.
- result.iterator->second->setOriginalURL(originalURL);
- result.iterator->second->setURL(url);
- result.iterator->second->setTitle(title);
- result.iterator->second->setBackForwardData(backForwardData.data(), backForwardData.size());
+ result.iterator->value->setOriginalURL(originalURL);
+ result.iterator->value->setURL(url);
+ result.iterator->value->setTitle(title);
+ result.iterator->value->setBackForwardData(backForwardData.data(), backForwardData.size());
}
void WebProcessProxy::sendDidGetPlugins(uint64_t requestID, PassOwnPtr<Vector<PluginInfo> > pluginInfos)
@@ -298,8 +318,12 @@ void WebProcessProxy::sendDidGetPlugins(uint64_t requestID, PassOwnPtr<Vector<Pl
#if PLATFORM(MAC)
// Add built-in PDF last, so that it's not used when a real plug-in is installed.
// NOTE: This has to be done on the main thread as it calls localizedString().
- if (!m_context->omitPDFSupport())
- plugins->append(BuiltInPDFView::pluginInfo());
+ if (!m_context->omitPDFSupport()) {
+#if ENABLE(PDFKIT_PLUGIN)
+ plugins->append(PDFPlugin::pluginInfo());
+#endif
+ plugins->append(SimplePDFPlugin::pluginInfo());
+ }
#endif
send(Messages::WebProcess::DidGetPlugins(requestID, *plugins), 0);
@@ -352,11 +376,6 @@ void WebProcessProxy::getPluginProcessConnection(const String& pluginPath, PassR
PluginProcessManager::shared().getPluginProcessConnection(m_context->pluginInfoStore(), pluginPath, reply);
}
-void WebProcessProxy::pluginSyncMessageSendTimedOut(const String& pluginPath)
-{
- PluginProcessManager::shared().pluginSyncMessageSendTimedOut(pluginPath);
-}
-
#else
void WebProcessProxy::didGetSitesWithPluginData(const Vector<String>& sites, uint64_t callbackID)
@@ -373,36 +392,11 @@ void WebProcessProxy::didClearPluginSiteData(uint64_t callbackID)
void WebProcessProxy::didReceiveMessage(CoreIPC::Connection* connection, CoreIPC::MessageID messageID, CoreIPC::ArgumentDecoder* arguments)
{
- if (messageID.is<CoreIPC::MessageClassWebProcessProxy>()) {
- didReceiveWebProcessProxyMessage(connection, messageID, arguments);
+ if (m_context->dispatchMessage(connection, messageID, arguments))
return;
- }
- if (messageID.is<CoreIPC::MessageClassWebContext>()
- || messageID.is<CoreIPC::MessageClassWebContextLegacy>()
- || messageID.is<CoreIPC::MessageClassDownloadProxy>()
- || messageID.is<CoreIPC::MessageClassWebApplicationCacheManagerProxy>()
-#if ENABLE(BATTERY_STATUS)
- || messageID.is<CoreIPC::MessageClassWebBatteryManagerProxy>()
-#endif
- || messageID.is<CoreIPC::MessageClassWebCookieManagerProxy>()
- || messageID.is<CoreIPC::MessageClassWebDatabaseManagerProxy>()
- || messageID.is<CoreIPC::MessageClassWebGeolocationManagerProxy>()
- || messageID.is<CoreIPC::MessageClassWebIconDatabase>()
- || messageID.is<CoreIPC::MessageClassWebKeyValueStorageManagerProxy>()
- || messageID.is<CoreIPC::MessageClassWebMediaCacheManagerProxy>()
-#if ENABLE(NETWORK_INFO)
- || messageID.is<CoreIPC::MessageClassWebNetworkInfoManagerProxy>()
-#endif
- || messageID.is<CoreIPC::MessageClassWebNotificationManagerProxy>()
-#if USE(SOUP)
- || messageID.is<CoreIPC::MessageClassWebSoupRequestManagerProxy>()
-#endif
-#if ENABLE(VIBRATION)
- || messageID.is<CoreIPC::MessageClassWebVibrationProxy>()
-#endif
- || messageID.is<CoreIPC::MessageClassWebResourceCacheManagerProxy>()) {
- m_context->didReceiveMessage(this, messageID, arguments);
+ if (messageID.is<CoreIPC::MessageClassWebProcessProxy>()) {
+ didReceiveWebProcessProxyMessage(connection, messageID, arguments);
return;
}
@@ -419,17 +413,11 @@ void WebProcessProxy::didReceiveMessage(CoreIPC::Connection* connection, CoreIPC
void WebProcessProxy::didReceiveSyncMessage(CoreIPC::Connection* connection, CoreIPC::MessageID messageID, CoreIPC::ArgumentDecoder* arguments, OwnPtr<CoreIPC::ArgumentEncoder>& reply)
{
- if (messageID.is<CoreIPC::MessageClassWebProcessProxy>()) {
- didReceiveSyncWebProcessProxyMessage(connection, messageID, arguments, reply);
+ if (m_context->dispatchSyncMessage(connection, messageID, arguments, reply))
return;
- }
- if (messageID.is<CoreIPC::MessageClassWebContext>() || messageID.is<CoreIPC::MessageClassWebContextLegacy>()
-#if ENABLE(NETWORK_INFO)
- || messageID.is<CoreIPC::MessageClassWebNetworkInfoManagerProxy>()
-#endif
- || messageID.is<CoreIPC::MessageClassDownloadProxy>() || messageID.is<CoreIPC::MessageClassWebIconDatabase>()) {
- m_context->didReceiveSyncMessage(this, messageID, arguments, reply);
+ if (messageID.is<CoreIPC::MessageClassWebProcessProxy>()) {
+ didReceiveSyncWebProcessProxyMessage(connection, messageID, arguments, reply);
return;
}
@@ -473,10 +461,6 @@ void WebProcessProxy::didReceiveInvalidMessage(CoreIPC::Connection*, CoreIPC::Me
terminate();
}
-void WebProcessProxy::syncMessageSendTimedOut(CoreIPC::Connection*)
-{
-}
-
void WebProcessProxy::didBecomeUnresponsive(ResponsivenessTimer*)
{
Vector<RefPtr<WebPageProxy> > pages;
@@ -565,7 +549,7 @@ size_t WebProcessProxy::frameCountInPage(WebPageProxy* page) const
{
size_t result = 0;
for (HashMap<uint64_t, RefPtr<WebFrameProxy> >::const_iterator iter = m_frameMap.begin(); iter != m_frameMap.end(); ++iter) {
- if (iter->second->page() == page)
+ if (iter->value->page() == page)
++result;
}
return result;
diff --git a/Source/WebKit2/UIProcess/WebProcessProxy.h b/Source/WebKit2/UIProcess/WebProcessProxy.h
index c4fd3c929..45a9524a9 100644
--- a/Source/WebKit2/UIProcess/WebProcessProxy.h
+++ b/Source/WebKit2/UIProcess/WebProcessProxy.h
@@ -63,6 +63,8 @@ public:
static PassRefPtr<WebProcessProxy> create(PassRefPtr<WebContext>);
~WebProcessProxy();
+ static WebProcessProxy* fromConnection(CoreIPC::Connection*);
+
void terminate();
template<typename T> bool send(const T& message, uint64_t destinationID, unsigned messageSendFlags = 0);
@@ -84,6 +86,7 @@ public:
PassRefPtr<WebPageProxy> createWebPage(PageClient*, WebContext*, WebPageGroup*);
void addExistingWebPage(WebPageProxy*, uint64_t pageID);
void removeWebPage(uint64_t pageID);
+ Vector<WebPageProxy*> pages() const;
#if ENABLE(WEB_INTENTS)
void removeMessagePortChannel(uint64_t channelID);
@@ -142,7 +145,6 @@ private:
void getPluginPath(const String& mimeType, const String& urlString, String& pluginPath, bool& blocked);
#if ENABLE(PLUGIN_PROCESS)
void getPluginProcessConnection(const String& pluginPath, PassRefPtr<Messages::WebProcessProxy::GetPluginProcessConnection::DelayedReply>);
- void pluginSyncMessageSendTimedOut(const String& pluginPath);
#else
void didGetSitesWithPluginData(const Vector<String>& sites, uint64_t callbackID);
void didClearPluginSiteData(uint64_t callbackID);
@@ -162,7 +164,6 @@ private:
virtual void didReceiveSyncMessage(CoreIPC::Connection*, CoreIPC::MessageID, CoreIPC::ArgumentDecoder*, OwnPtr<CoreIPC::ArgumentEncoder>&);
virtual void didClose(CoreIPC::Connection*);
virtual void didReceiveInvalidMessage(CoreIPC::Connection*, CoreIPC::MessageID);
- virtual void syncMessageSendTimedOut(CoreIPC::Connection*);
#if PLATFORM(WIN)
virtual Vector<HWND> windowsToReceiveSentMessagesWhileWaitingForSyncReply();
#endif
diff --git a/Source/WebKit2/UIProcess/WebProcessProxy.messages.in b/Source/WebKit2/UIProcess/WebProcessProxy.messages.in
index 2c3d58b93..6df22ca86 100644
--- a/Source/WebKit2/UIProcess/WebProcessProxy.messages.in
+++ b/Source/WebKit2/UIProcess/WebProcessProxy.messages.in
@@ -38,7 +38,6 @@ messages -> WebProcessProxy {
GetPluginPath(WTF::String mimeType, WTF::String urlString) -> (WTF::String pluginPath, bool blocked)
#if ENABLE(PLUGIN_PROCESS)
GetPluginProcessConnection(WTF::String pluginPath) -> (CoreIPC::Attachment connectionHandle, bool supportsAsynchronousInitialization) Delayed
- PluginSyncMessageSendTimedOut(WTF::String pluginPath)
#endif
#if !ENABLE(PLUGIN_PROCESS)
void DidGetSitesWithPluginData(Vector<WTF::String> sites, uint64_t callbackID)
diff --git a/Source/WebKit2/UIProcess/WebResourceCacheManagerProxy.cpp b/Source/WebKit2/UIProcess/WebResourceCacheManagerProxy.cpp
index 60bf1a1ba..3c2980797 100644
--- a/Source/WebKit2/UIProcess/WebResourceCacheManagerProxy.cpp
+++ b/Source/WebKit2/UIProcess/WebResourceCacheManagerProxy.cpp
@@ -45,6 +45,7 @@ PassRefPtr<WebResourceCacheManagerProxy> WebResourceCacheManagerProxy::create(We
WebResourceCacheManagerProxy::WebResourceCacheManagerProxy(WebContext* webContext)
: m_webContext(webContext)
{
+ m_webContext->addMessageReceiver(CoreIPC::MessageClassWebResourceCacheManagerProxy, this);
}
WebResourceCacheManagerProxy::~WebResourceCacheManagerProxy()
@@ -64,7 +65,6 @@ bool WebResourceCacheManagerProxy::shouldTerminate(WebProcessProxy*) const
void WebResourceCacheManagerProxy::getCacheOrigins(PassRefPtr<ArrayCallback> prpCallback)
{
RefPtr<ArrayCallback> callback = prpCallback;
- m_webContext->relaunchProcessIfNecessary();
uint64_t callbackID = callback->callbackID();
m_arrayCallbacks.set(callbackID, callback.release());
@@ -95,4 +95,9 @@ void WebResourceCacheManagerProxy::clearCacheForAllOrigins(ResourceCachesToClear
m_webContext->sendToAllProcessesRelaunchingThemIfNecessary(Messages::WebResourceCacheManager::ClearCacheForAllOrigins(cachesToClear));
}
+void WebResourceCacheManagerProxy::didReceiveMessage(CoreIPC::Connection* connection, CoreIPC::MessageID messageID, CoreIPC::ArgumentDecoder* arguments)
+{
+ didReceiveWebResourceCacheManagerProxyMessage(connection, messageID, arguments);
+}
+
} // namespace WebKit
diff --git a/Source/WebKit2/UIProcess/WebResourceCacheManagerProxy.h b/Source/WebKit2/UIProcess/WebResourceCacheManagerProxy.h
index f0c7bb549..9e59b641f 100644
--- a/Source/WebKit2/UIProcess/WebResourceCacheManagerProxy.h
+++ b/Source/WebKit2/UIProcess/WebResourceCacheManagerProxy.h
@@ -29,16 +29,11 @@
#include "APIObject.h"
#include "Arguments.h"
#include "GenericCallback.h"
+#include "MessageReceiver.h"
#include "ResourceCachesToClear.h"
#include <wtf/HashMap.h>
#include <wtf/PassRefPtr.h>
-namespace CoreIPC {
-class ArgumentDecoder;
-class Connection;
-class MessageID;
-}
-
namespace WebKit {
struct SecurityOriginData;
@@ -48,7 +43,7 @@ class WebSecurityOrigin;
typedef GenericCallback<WKArrayRef> ArrayCallback;
-class WebResourceCacheManagerProxy : public APIObject {
+class WebResourceCacheManagerProxy : public APIObject, private CoreIPC::MessageReceiver {
public:
static const Type APIType = TypeCacheManager;
@@ -62,8 +57,6 @@ public:
void clearCacheForOrigin(WebSecurityOrigin*, ResourceCachesToClear);
void clearCacheForAllOrigins(ResourceCachesToClear);
- void didReceiveWebResourceCacheManagerProxyMessage(CoreIPC::Connection*, CoreIPC::MessageID, CoreIPC::ArgumentDecoder*);
-
bool shouldTerminate(WebProcessProxy*) const;
private:
@@ -71,6 +64,10 @@ private:
virtual Type type() const { return APIType; }
+ // CoreIPC::MessageReceiver
+ virtual void didReceiveMessage(CoreIPC::Connection*, CoreIPC::MessageID, CoreIPC::ArgumentDecoder*) OVERRIDE;
+ void didReceiveWebResourceCacheManagerProxyMessage(CoreIPC::Connection*, CoreIPC::MessageID, CoreIPC::ArgumentDecoder*);
+
// Message handlers.
void didGetCacheOrigins(const Vector<SecurityOriginData>& originIdentifiers, uint64_t callbackID);
diff --git a/Source/WebKit2/UIProcess/WebVibrationProxy.cpp b/Source/WebKit2/UIProcess/WebVibrationProxy.cpp
index 9a5f7f264..0590f30cc 100644
--- a/Source/WebKit2/UIProcess/WebVibrationProxy.cpp
+++ b/Source/WebKit2/UIProcess/WebVibrationProxy.cpp
@@ -40,6 +40,7 @@ PassRefPtr<WebVibrationProxy> WebVibrationProxy::create(WebContext* context)
WebVibrationProxy::WebVibrationProxy(WebContext* context)
: m_context(context)
{
+ m_context->addMessageReceiver(CoreIPC::MessageClassWebVibrationProxy, this);
}
WebVibrationProxy::~WebVibrationProxy()
diff --git a/Source/WebKit2/UIProcess/WebVibrationProxy.h b/Source/WebKit2/UIProcess/WebVibrationProxy.h
index 4e69e96fa..676d3a497 100644
--- a/Source/WebKit2/UIProcess/WebVibrationProxy.h
+++ b/Source/WebKit2/UIProcess/WebVibrationProxy.h
@@ -29,20 +29,15 @@
#if ENABLE(VIBRATION)
#include "APIObject.h"
-#include "MessageID.h"
+#include "MessageReceiver.h"
#include "WebVibrationProvider.h"
#include <wtf/Forward.h>
-namespace CoreIPC {
-class ArgumentDecoder;
-class Connection;
-}
-
namespace WebKit {
class WebContext;
-class WebVibrationProxy : public APIObject {
+class WebVibrationProxy : public APIObject, private CoreIPC::MessageReceiver {
public:
static const Type APIType = TypeVibration;
@@ -54,13 +49,14 @@ public:
void initializeProvider(const WKVibrationProvider*);
- void didReceiveMessage(CoreIPC::Connection*, CoreIPC::MessageID, CoreIPC::ArgumentDecoder*);
-
private:
explicit WebVibrationProxy(WebContext*);
virtual Type type() const { return APIType; }
+ // CoreIPC::MessageReceiver
+ virtual void didReceiveMessage(CoreIPC::Connection*, CoreIPC::MessageID, CoreIPC::ArgumentDecoder*) OVERRIDE;
+
// Implemented in generated WebVibrationProxyMessageReceiver.cpp
void didReceiveWebVibrationProxyMessage(CoreIPC::Connection*, CoreIPC::MessageID, CoreIPC::ArgumentDecoder*);
diff --git a/Source/WebKit2/UIProcess/efl/WebInspectorProxyEfl.cpp b/Source/WebKit2/UIProcess/efl/WebInspectorProxyEfl.cpp
index 538356610..7f69c2efb 100644
--- a/Source/WebKit2/UIProcess/efl/WebInspectorProxyEfl.cpp
+++ b/Source/WebKit2/UIProcess/efl/WebInspectorProxyEfl.cpp
@@ -29,6 +29,7 @@
#if ENABLE(INSPECTOR)
#include "WebProcessProxy.h"
+#include "ewk_settings.h"
#include "ewk_view.h"
#include "ewk_view_private.h"
#include <WebCore/NotImplemented.h>
@@ -38,22 +39,73 @@
namespace WebKit {
+static void resizeInspectorWindow(Ecore_Evas* inspectorWindow)
+{
+ Evas_Object* inspectorView = evas_object_name_find(ecore_evas_get(inspectorWindow), "inspector");
+ if (!inspectorView)
+ return;
+
+ int width, height;
+ ecore_evas_geometry_get(inspectorWindow, 0, 0, &width, &height);
+
+ evas_object_move(inspectorView, 0, 0);
+ evas_object_resize(inspectorView, width, height);
+}
+
+static void destroyInspectorWindow(Ecore_Evas* inspectorWindow)
+{
+ Evas_Object* inspectorView = evas_object_name_find(ecore_evas_get(inspectorWindow), "inspector");
+ if (inspectorView)
+ evas_object_smart_callback_call(inspectorView, "inspector,view,close", 0);
+}
+
+static void closeInspectorWindow(void* userData, Evas_Object*, void*)
+{
+ WebInspectorProxy* inspectorProxy = static_cast<WebInspectorProxy*>(userData);
+
+ inspectorProxy->close();
+}
+
+void WebInspectorProxy::createInspectorWindow()
+{
+ ecore_evas_title_set(m_inspectorWindow, "Web Inspector");
+ ecore_evas_callback_resize_set(m_inspectorWindow, resizeInspectorWindow);
+ ecore_evas_callback_delete_request_set(m_inspectorWindow, destroyInspectorWindow);
+ ecore_evas_show(m_inspectorWindow);
+
+ evas_object_name_set(m_inspectorView, "inspector");
+ evas_object_move(m_inspectorView, 0, 0);
+ evas_object_resize(m_inspectorView, initialWindowWidth, initialWindowHeight);
+ evas_object_show(m_inspectorView);
+
+ evas_object_focus_set(m_inspectorView, true);
+}
+
WebPageProxy* WebInspectorProxy::platformCreateInspectorPage()
{
ASSERT(m_page);
- m_inspectorWindow = ecore_evas_buffer_new(initialWindowWidth, initialWindowHeight);
+ m_inspectorWindow = ecore_evas_new(0, 0, 0, initialWindowWidth, initialWindowHeight, 0);
if (!m_inspectorWindow)
return 0;
m_inspectorView = ewk_view_base_add(ecore_evas_get(m_inspectorWindow), toAPI(page()->process()->context()), toAPI(inspectorPageGroup()));
ewk_view_theme_set(m_inspectorView, TEST_THEME_DIR"/default.edj");
+
+ Ewk_Settings* settings = ewk_view_settings_get(m_inspectorView);
+ ewk_settings_file_access_from_file_urls_allowed_set(settings, true);
+
return ewk_view_page_get(m_inspectorView);
}
void WebInspectorProxy::platformOpen()
{
- notImplemented();
+ if (m_isAttached)
+ platformAttach();
+ else
+ createInspectorWindow();
+
+ evas_object_smart_callback_add(m_inspectorView, "inspector,view,close", closeInspectorWindow, this);
}
void WebInspectorProxy::platformDidClose()
diff --git a/Source/WebKit2/UIProcess/efl/WebPageProxyEfl.cpp b/Source/WebKit2/UIProcess/efl/WebPageProxyEfl.cpp
index 2a3b3078d..8981ceeb1 100644
--- a/Source/WebKit2/UIProcess/efl/WebPageProxyEfl.cpp
+++ b/Source/WebKit2/UIProcess/efl/WebPageProxyEfl.cpp
@@ -83,4 +83,14 @@ void WebPageProxy::setThemePath(const String& themePath)
process()->send(Messages::WebPage::SetThemePath(themePath), m_pageID, 0);
}
+void WebPageProxy::createPluginContainer(uint64_t&)
+{
+ notImplemented();
+}
+
+void WebPageProxy::windowedPluginGeometryDidChange(const WebCore::IntRect&, const WebCore::IntRect&, uint64_t)
+{
+ notImplemented();
+}
+
} // namespace WebKit
diff --git a/Source/WebKit2/UIProcess/gtk/WebContextGtk.cpp b/Source/WebKit2/UIProcess/gtk/WebContextGtk.cpp
index 71c7bbe3c..d35aeff60 100644
--- a/Source/WebKit2/UIProcess/gtk/WebContextGtk.cpp
+++ b/Source/WebKit2/UIProcess/gtk/WebContextGtk.cpp
@@ -53,8 +53,8 @@ String WebContext::platformDefaultDatabaseDirectory() const
String WebContext::platformDefaultIconDatabasePath() const
{
- // FIXME: Implement.
- return WTF::String();
+ GOwnPtr<gchar> databaseDirectory(g_build_filename(g_get_user_data_dir(), "webkitgtk", "icondatabase", NULL));
+ return WebCore::filenameToString(databaseDirectory.get());
}
String WebContext::platformDefaultLocalStorageDirectory() const
diff --git a/Source/WebKit2/UIProcess/gtk/WebPageProxyGtk.cpp b/Source/WebKit2/UIProcess/gtk/WebPageProxyGtk.cpp
index 80881bfe7..6b01bb027 100644
--- a/Source/WebKit2/UIProcess/gtk/WebPageProxyGtk.cpp
+++ b/Source/WebKit2/UIProcess/gtk/WebPageProxyGtk.cpp
@@ -114,11 +114,6 @@ void WebPageProxy::setAcceleratedCompositingWindowId(uint64_t nativeWindowId)
{
process()->send(Messages::WebPage::SetAcceleratedCompositingWindowId(nativeWindowId), m_pageID);
}
-
-void WebPageProxy::invalidateWidget()
-{
- webkitWebViewBaseQueueDrawOfAcceleratedCompositingResults(WEBKIT_WEB_VIEW_BASE(static_cast<PageClientImpl*>(m_pageClient)->viewWidget()));
-}
#endif
} // namespace WebKit
diff --git a/Source/WebKit2/UIProcess/mac/WebContextMac.mm b/Source/WebKit2/UIProcess/mac/WebContextMac.mm
index 68c8e1125..bbb981c9c 100644
--- a/Source/WebKit2/UIProcess/mac/WebContextMac.mm
+++ b/Source/WebKit2/UIProcess/mac/WebContextMac.mm
@@ -77,12 +77,6 @@ void WebContext::platformInitializeWebProcess(WebProcessCreationParameters& para
{
parameters.presenterApplicationPid = getpid();
- if (!omitPDFSupport()) {
- // We want to use a PDF view in the UI process for PDF MIME types.
- HashSet<String, CaseFoldingHash> mimeType = pdfAndPostScriptMIMETypes();
- parameters.mimeTypesWithCustomRepresentation.appendRange(mimeType.begin(), mimeType.end());
- }
-
parameters.parentProcessName = [[NSProcessInfo processInfo] processName];
RetainPtr<CFStringRef> cachePath(AdoptCF, WKCopyFoundationCacheDirectory());
@@ -100,10 +94,7 @@ void WebContext::platformInitializeWebProcess(WebProcessCreationParameters& para
#if __MAC_OS_X_VERSION_MIN_REQUIRED >= 1090
parameters.shouldForceScreenFontSubstitution = [[NSUserDefaults standardUserDefaults] boolForKey:@"NSFontDefaultScreenFontSubstitutionEnabled"];
#endif
-
-#if ENABLE(PLUGIN_PROCESS)
- parameters.disablePluginProcessMessageTimeout = [[NSUserDefaults standardUserDefaults] boolForKey:@"WebKitDisablePluginProcessMessageTimeout"];
-#endif
+ parameters.shouldEnableKerningAndLigaturesByDefault = [[NSUserDefaults standardUserDefaults] boolForKey:@"WebKitKerningAndLigaturesEnabledByDefault"];
#if USE(ACCELERATED_COMPOSITING) && HAVE(HOSTED_CORE_ANIMATION)
#if __MAC_OS_X_VERSION_MIN_REQUIRED >= 1070
diff --git a/Source/WebKit2/UIProcess/mac/WebInspectorProxyMac.mm b/Source/WebKit2/UIProcess/mac/WebInspectorProxyMac.mm
index eb442fde5..530a2f587 100644
--- a/Source/WebKit2/UIProcess/mac/WebInspectorProxyMac.mm
+++ b/Source/WebKit2/UIProcess/mac/WebInspectorProxyMac.mm
@@ -96,7 +96,7 @@ static const CGFloat windowContentBorderThickness = 55;
// depend on this for enforcing the height constraints, so a small delay isn't terrible. Most
// of the time the views will already have the correct frames because of autoresizing masks.
- dispatch_after(DISPATCH_TIME_NOW, dispatch_get_current_queue(), ^{
+ dispatch_after(DISPATCH_TIME_NOW, dispatch_get_main_queue(), ^{
if (!_inspectorProxy)
return;
static_cast<WebInspectorProxy*>(_inspectorProxy)->inspectedViewFrameDidChange();
diff --git a/Source/WebKit2/UIProcess/mac/WebProcessProxyMac.mm b/Source/WebKit2/UIProcess/mac/WebProcessProxyMac.mm
index 73f3ddc02..a182faa42 100644
--- a/Source/WebKit2/UIProcess/mac/WebProcessProxyMac.mm
+++ b/Source/WebKit2/UIProcess/mac/WebProcessProxyMac.mm
@@ -149,6 +149,20 @@ bool WebProcessProxy::fullKeyboardAccessEnabled()
return [WKFullKeyboardAccessWatcher fullKeyboardAccessEnabled];
}
+#if HAVE(XPC)
+static bool shouldUseXPC()
+{
+ if (id value = [[NSUserDefaults standardUserDefaults] objectForKey:@"WebKit2UseXPCServiceForWebProcess"])
+ return [value boolValue];
+
+#if __MAC_OS_X_VERSION_MIN_REQUIRED >= 1090
+ return true;
+#else
+ return false;
+#endif
+}
+#endif
+
void WebProcessProxy::platformConnect(ProcessLauncher::LaunchOptions& launchOptions)
{
// We want the web process to match the architecture of the UI process.
@@ -156,7 +170,7 @@ void WebProcessProxy::platformConnect(ProcessLauncher::LaunchOptions& launchOpti
launchOptions.executableHeap = false;
#if HAVE(XPC)
- launchOptions.useXPC = [[NSUserDefaults standardUserDefaults] boolForKey:@"WebKit2UseXPCServiceForWebProcess"];
+ launchOptions.useXPC = shouldUseXPC();
#endif
}
diff --git a/Source/WebKit2/UIProcess/qt/PageViewportControllerClientQt.cpp b/Source/WebKit2/UIProcess/qt/PageViewportControllerClientQt.cpp
index 9e2531f57..cbc26e68b 100644
--- a/Source/WebKit2/UIProcess/qt/PageViewportControllerClientQt.cpp
+++ b/Source/WebKit2/UIProcess/qt/PageViewportControllerClientQt.cpp
@@ -322,8 +322,6 @@ void PageViewportControllerClientQt::setContentsScale(float localScale, bool tre
setContentRectVisiblePositionAtScale(QPointF(), localScale);
} else
scaleContent(localScale);
-
- updateViewportController();
}
void PageViewportControllerClientQt::setContentsRectToNearestValidBounds()
@@ -335,6 +333,7 @@ void PageViewportControllerClientQt::setContentsRectToNearestValidBounds()
void PageViewportControllerClientQt::didResumeContent()
{
+ // Make sure that tiles all around the viewport will be requested.
updateViewportController();
}
@@ -468,8 +467,10 @@ void PageViewportControllerClientQt::pinchGestureCancelled()
m_scaleUpdateDeferrer.reset();
}
-void PageViewportControllerClientQt::didChangeContentsSize()
+void PageViewportControllerClientQt::didChangeContentsSize(const IntSize& newSize)
{
+ m_pageItem->setContentsSize(QSizeF(newSize));
+
// Emit for testing purposes, so that it can be verified that
// we didn't do scale adjustment.
emit m_viewportItem->experimental()->test()->contentsScaleCommitted();
@@ -492,18 +493,14 @@ void PageViewportControllerClientQt::didChangeVisibleContents()
void PageViewportControllerClientQt::didChangeViewportAttributes()
{
- // Make sure we apply the new initial scale when deferring ends.
- ViewportUpdateDeferrer guard(m_controller);
-
emit m_viewportItem->experimental()->test()->devicePixelRatioChanged();
emit m_viewportItem->experimental()->test()->viewportChanged();
}
-void PageViewportControllerClientQt::updateViewportController(const QPointF& trajectory, qreal scale)
+void PageViewportControllerClientQt::updateViewportController(const QPointF& trajectory)
{
FloatPoint viewportPos = m_viewportItem->mapToWebContent(QPointF());
- float viewportScale = (scale < 0) ? m_pageItem->contentsScale() : scale;
- m_controller->didChangeContentsVisibility(viewportPos, viewportScale, trajectory);
+ m_controller->didChangeContentsVisibility(viewportPos, m_pageItem->contentsScale(), trajectory);
}
void PageViewportControllerClientQt::scaleContent(qreal itemScale, const QPointF& centerInCSSCoordinates)
diff --git a/Source/WebKit2/UIProcess/qt/PageViewportControllerClientQt.h b/Source/WebKit2/UIProcess/qt/PageViewportControllerClientQt.h
index bd0e1731b..7c5ceea58 100644
--- a/Source/WebKit2/UIProcess/qt/PageViewportControllerClientQt.h
+++ b/Source/WebKit2/UIProcess/qt/PageViewportControllerClientQt.h
@@ -51,7 +51,7 @@ public:
virtual void setContentsScale(float scale, bool treatAsInitialValue);
virtual void didResumeContent();
- virtual void didChangeContentsSize();
+ virtual void didChangeContentsSize(const WebCore::IntSize&);
virtual void didChangeVisibleContents();
virtual void didChangeViewportAttributes();
@@ -124,7 +124,7 @@ private:
QRectF nearestValidVisibleContentsRect() const;
void setContentsRectToNearestValidBounds();
- void updateViewportController(const QPointF& trajectory = QPointF(), qreal scale = -1);
+ void updateViewportController(const QPointF& trajectory = QPointF());
void setContentRectVisiblePositionAtScale(const QPointF& location, qreal itemScale);
void animateContentRectVisible(const QRectF& contentRect);
void scaleContent(qreal itemScale, const QPointF& centerInCSSCoordinates = QPointF());
diff --git a/Source/WebKit2/UIProcess/qt/QtPageClient.cpp b/Source/WebKit2/UIProcess/qt/QtPageClient.cpp
index d5a5f7ece..7737f6529 100644
--- a/Source/WebKit2/UIProcess/qt/QtPageClient.cpp
+++ b/Source/WebKit2/UIProcess/qt/QtPageClient.cpp
@@ -73,6 +73,16 @@ void QtPageClient::setViewNeedsDisplay(const WebCore::IntRect& rect)
QQuickWebViewPrivate::get(m_webView)->setNeedsDisplay();
}
+void QtPageClient::didRenderFrame(const WebCore::IntSize& contentsSize, const WebCore::IntRect& coveredRect)
+{
+ // The viewport has to be notified first so that the viewport position
+ // is adjusted before the loadVisuallyCommitted() signal.
+ PageViewportController* pvc = QQuickWebViewPrivate::get(m_webView)->viewportController();
+ if (pvc)
+ pvc->didRenderFrame(contentsSize, coveredRect);
+ QQuickWebViewPrivate::get(m_webView)->didRenderFrame();
+}
+
void QtPageClient::pageDidRequestScroll(const IntPoint& pos)
{
QQuickWebViewPrivate::get(m_webView)->pageDidRequestScroll(pos);
@@ -90,7 +100,9 @@ void QtPageClient::didRelaunchProcess()
void QtPageClient::didChangeContentsSize(const IntSize& newSize)
{
- QQuickWebViewPrivate::get(m_webView)->didChangeContentsSize(newSize);
+ PageViewportController* pvc = QQuickWebViewPrivate::get(m_webView)->viewportController();
+ if (pvc)
+ pvc->didChangeContentsSize(newSize);
}
void QtPageClient::didChangeViewportProperties(const WebCore::ViewportAttributes& attr)
@@ -220,6 +232,13 @@ void QtPageClient::flashBackingStoreUpdates(const Vector<IntRect>&)
notImplemented();
}
+void QtPageClient::pageTransitionViewportReady()
+{
+ PageViewportController* pvc = QQuickWebViewPrivate::get(m_webView)->viewportController();
+ if (pvc)
+ pvc->pageTransitionViewportReady();
+}
+
void QtPageClient::didFindZoomableArea(const IntPoint& target, const IntRect& area)
{
ASSERT(m_eventHandler);
diff --git a/Source/WebKit2/UIProcess/qt/QtPageClient.h b/Source/WebKit2/UIProcess/qt/QtPageClient.h
index 2e367570a..e493ce8ad 100644
--- a/Source/WebKit2/UIProcess/qt/QtPageClient.h
+++ b/Source/WebKit2/UIProcess/qt/QtPageClient.h
@@ -43,6 +43,7 @@ public:
// QQuickWebView.
virtual void setViewNeedsDisplay(const WebCore::IntRect&);
+ virtual void didRenderFrame(const WebCore::IntSize& contentsSize, const WebCore::IntRect& coveredRect);
virtual WebCore::IntSize viewSize();
virtual bool isViewFocused();
virtual bool isViewVisible();
@@ -99,6 +100,7 @@ public:
virtual void flashBackingStoreUpdates(const Vector<WebCore::IntRect>& updateRects);
virtual void findStringInCustomRepresentation(const String&, WebKit::FindOptions, unsigned maxMatchCount) { }
virtual void countStringMatchesInCustomRepresentation(const String&, WebKit::FindOptions, unsigned maxMatchCount) { }
+ virtual void pageTransitionViewportReady();
virtual void didFindZoomableArea(const WebCore::IntPoint&, const WebCore::IntRect&);
virtual void updateTextInputState();
virtual void doneWithGestureEvent(const WebGestureEvent&, bool wasEventHandled);
diff --git a/Source/WebKit2/UIProcess/qt/QtPanGestureRecognizer.cpp b/Source/WebKit2/UIProcess/qt/QtPanGestureRecognizer.cpp
index 0aaa06690..a9c4e7a00 100644
--- a/Source/WebKit2/UIProcess/qt/QtPanGestureRecognizer.cpp
+++ b/Source/WebKit2/UIProcess/qt/QtPanGestureRecognizer.cpp
@@ -38,9 +38,6 @@ QtPanGestureRecognizer::QtPanGestureRecognizer(QtWebPageEventHandler* eventHandl
bool QtPanGestureRecognizer::update(const QTouchEvent::TouchPoint& touchPoint, qint64 eventTimestampMillis)
{
- if (!viewportController())
- return false;
-
m_lastPosition = touchPoint.pos();
m_lastEventTimestampMillis = eventTimestampMillis;
@@ -48,7 +45,8 @@ bool QtPanGestureRecognizer::update(const QTouchEvent::TouchPoint& touchPoint, q
case NoGesture:
m_state = GestureRecognitionStarted;
m_firstScreenPosition = touchPoint.screenPos();
- viewportController()->cancelScrollAnimation();
+ if (viewportController())
+ viewportController()->cancelScrollAnimation();
return false;
case GestureRecognitionStarted: {
// To start the gesture, the delta from start in screen coordinates
@@ -58,11 +56,13 @@ bool QtPanGestureRecognizer::update(const QTouchEvent::TouchPoint& touchPoint, q
return false;
m_state = GestureRecognized;
- viewportController()->panGestureStarted(touchPoint.pos(), eventTimestampMillis);
+ if (viewportController())
+ viewportController()->panGestureStarted(touchPoint.pos(), eventTimestampMillis);
return true;
}
case GestureRecognized:
- viewportController()->panGestureRequestUpdate(touchPoint.pos(), eventTimestampMillis);
+ if (viewportController())
+ viewportController()->panGestureRequestUpdate(touchPoint.pos(), eventTimestampMillis);
return true;
default:
ASSERT_NOT_REACHED();
@@ -75,8 +75,8 @@ void QtPanGestureRecognizer::finish(const QTouchEvent::TouchPoint& touchPoint, q
if (m_state == NoGesture)
return;
- ASSERT(viewportController());
- viewportController()->panGestureEnded(touchPoint.pos(), eventTimestampMillis);
+ if (viewportController())
+ viewportController()->panGestureEnded(touchPoint.pos(), eventTimestampMillis);
reset();
}
@@ -85,8 +85,10 @@ void QtPanGestureRecognizer::cancel()
if (m_state == NoGesture)
return;
- viewportController()->panGestureEnded(m_lastPosition, m_lastEventTimestampMillis);
- viewportController()->panGestureCancelled();
+ if (viewportController()) {
+ viewportController()->panGestureEnded(m_lastPosition, m_lastEventTimestampMillis);
+ viewportController()->panGestureCancelled();
+ }
reset();
}
diff --git a/Source/WebKit2/UIProcess/qt/QtPinchGestureRecognizer.cpp b/Source/WebKit2/UIProcess/qt/QtPinchGestureRecognizer.cpp
index a10367a40..7fa58014f 100644
--- a/Source/WebKit2/UIProcess/qt/QtPinchGestureRecognizer.cpp
+++ b/Source/WebKit2/UIProcess/qt/QtPinchGestureRecognizer.cpp
@@ -48,7 +48,6 @@ QtPinchGestureRecognizer::QtPinchGestureRecognizer(QtWebPageEventHandler* eventH
bool QtPinchGestureRecognizer::update(const QTouchEvent::TouchPoint& point1, const QTouchEvent::TouchPoint& point2)
{
- ASSERT(viewportController());
const qreal currentFingerDistance = QLineF(point1.screenPos(), point2.screenPos()).length();
switch (m_state) {
case NoGesture:
@@ -60,7 +59,8 @@ bool QtPinchGestureRecognizer::update(const QTouchEvent::TouchPoint& point1, con
if (pinchDistance < pinchInitialTriggerDistanceThreshold)
return false;
m_state = GestureRecognized;
- viewportController()->pinchGestureStarted(computePinchCenter(point1, point2));
+ if (viewportController())
+ viewportController()->pinchGestureStarted(computePinchCenter(point1, point2));
// We reset the initial span distance to the current distance of the
// touch points in order to avoid the jump caused by the events which
@@ -72,7 +72,8 @@ bool QtPinchGestureRecognizer::update(const QTouchEvent::TouchPoint& point1, con
case GestureRecognized:
const qreal totalScaleFactor = currentFingerDistance / m_initialFingerDistance;
const QPointF touchCenterInViewCoordinates = computePinchCenter(point1, point2);
- viewportController()->pinchGestureRequestUpdate(touchCenterInViewCoordinates, totalScaleFactor);
+ if (viewportController())
+ viewportController()->pinchGestureRequestUpdate(touchCenterInViewCoordinates, totalScaleFactor);
return true;
break;
}
@@ -86,8 +87,8 @@ void QtPinchGestureRecognizer::finish()
if (m_state == NoGesture)
return;
- ASSERT(viewportController());
- viewportController()->pinchGestureEnded();
+ if (viewportController())
+ viewportController()->pinchGestureEnded();
reset();
}
@@ -96,8 +97,8 @@ void QtPinchGestureRecognizer::cancel()
if (m_state == NoGesture)
return;
- ASSERT(viewportController());
- viewportController()->pinchGestureCancelled();
+ if (viewportController())
+ viewportController()->pinchGestureCancelled();
reset();
}
diff --git a/Source/WebKit2/UIProcess/qt/QtWebIconDatabaseClient.cpp b/Source/WebKit2/UIProcess/qt/QtWebIconDatabaseClient.cpp
index afdfa6fcd..592bb371c 100644
--- a/Source/WebKit2/UIProcess/qt/QtWebIconDatabaseClient.cpp
+++ b/Source/WebKit2/UIProcess/qt/QtWebIconDatabaseClient.cpp
@@ -90,11 +90,11 @@ QImage QtWebIconDatabaseClient::iconImageForPageURL(const WTF::String& pageURL,
WebCore::IntSize size(iconSize.width(), iconSize.height());
- QImage* nativeImage = m_iconDatabase->nativeImageForPageURL(pageURL, size);
+ QPixmap* nativeImage = m_iconDatabase->nativeImageForPageURL(pageURL, size);
if (!nativeImage)
return QImage();
- return *nativeImage;
+ return nativeImage->toImage();
}
void QtWebIconDatabaseClient::retainIconForPageURL(const String& pageURL)
diff --git a/Source/WebKit2/UIProcess/qt/QtWebPageEventHandler.cpp b/Source/WebKit2/UIProcess/qt/QtWebPageEventHandler.cpp
index 819d4a0a2..fdc92355f 100644
--- a/Source/WebKit2/UIProcess/qt/QtWebPageEventHandler.cpp
+++ b/Source/WebKit2/UIProcess/qt/QtWebPageEventHandler.cpp
@@ -167,18 +167,18 @@ void QtWebPageEventHandler::handleHoverLeaveEvent(QHoverEvent* ev)
{
// To get the correct behavior of mouseout, we need to turn the Leave event of our webview into a mouse move
// to a very far region.
- QTransform fromItemTransform = m_webPage->transformFromItem();
- QHoverEvent fakeEvent(QEvent::HoverMove, QPoint(INT_MIN, INT_MIN), fromItemTransform.map(ev->oldPosF()));
+ QHoverEvent fakeEvent(QEvent::HoverMove, QPoint(INT_MIN, INT_MIN), ev->oldPosF());
fakeEvent.setTimestamp(ev->timestamp());
+ // This will apply the transform on the event.
handleHoverMoveEvent(&fakeEvent);
}
void QtWebPageEventHandler::handleHoverMoveEvent(QHoverEvent* ev)
{
- QTransform fromItemTransform = m_webPage->transformFromItem();
- QMouseEvent me(QEvent::MouseMove, fromItemTransform.map(ev->posF()), Qt::NoButton, Qt::NoButton, Qt::NoModifier);
+ QMouseEvent me(QEvent::MouseMove, ev->posF(), Qt::NoButton, Qt::NoButton, Qt::NoModifier);
me.setAccepted(ev->isAccepted());
me.setTimestamp(ev->timestamp());
+ // This will apply the transform on the event.
handleMouseMoveEvent(&me);
}
@@ -450,7 +450,38 @@ void QtWebPageEventHandler::doneWithGestureEvent(const WebGestureEvent& event, b
void QtWebPageEventHandler::handleInputEvent(const QInputEvent* event)
{
- ASSERT(m_viewportController);
+ if (m_viewportController) {
+ switch (event->type()) {
+ case QEvent::MouseButtonPress:
+ case QEvent::TouchBegin:
+ ASSERT(!m_viewportController->panGestureActive());
+ ASSERT(!m_viewportController->pinchGestureActive());
+ m_viewportController->touchBegin();
+
+ // The page viewport controller might still be animating kinetic scrolling or a scale animation
+ // such as double-tap to zoom or the bounce back effect. A touch stops the kinetic scrolling
+ // where as it does not stop the scale animation.
+ // The gesture recognizer stops the kinetic scrolling animation if needed.
+ break;
+ case QEvent::MouseMove:
+ case QEvent::TouchUpdate:
+ // The scale animation can only be interrupted by a pinch gesture, which will then take over.
+ if (m_viewportController->scaleAnimationActive() && m_pinchGestureRecognizer.isRecognized())
+ m_viewportController->interruptScaleAnimation();
+ break;
+ case QEvent::MouseButtonRelease:
+ case QEvent::TouchEnd:
+ m_viewportController->touchEnd();
+ break;
+ default:
+ break;
+ }
+
+ // If the scale animation is active we don't pass the event to the recognizers. In the future
+ // we would want to queue the event here and repost then when the animation ends.
+ if (m_viewportController->scaleAnimationActive())
+ return;
+ }
bool isMouseEvent = false;
@@ -458,45 +489,22 @@ void QtWebPageEventHandler::handleInputEvent(const QInputEvent* event)
case QEvent::MouseButtonPress:
isMouseEvent = true;
m_isMouseButtonPressed = true;
- // Fall through.
- case QEvent::TouchBegin:
- ASSERT(!m_viewportController->panGestureActive());
- ASSERT(!m_viewportController->pinchGestureActive());
- m_viewportController->touchBegin();
-
- // The interaction engine might still be animating kinetic scrolling or a scale animation
- // such as double-tap to zoom or the bounce back effect. A touch stops the kinetic scrolling
- // where as it does not stop the scale animation.
- // The gesture recognizer stops the kinetic scrolling animation if needed.
break;
case QEvent::MouseMove:
if (!m_isMouseButtonPressed)
return;
-
isMouseEvent = true;
- // Fall through.
- case QEvent::TouchUpdate:
- // The scale animation can only be interrupted by a pinch gesture, which will then take over.
- if (m_viewportController->scaleAnimationActive() && m_pinchGestureRecognizer.isRecognized())
- m_viewportController->interruptScaleAnimation();
break;
case QEvent::MouseButtonRelease:
isMouseEvent = true;
m_isMouseButtonPressed = false;
- // Fall through.
- case QEvent::TouchEnd:
- m_viewportController->touchEnd();
break;
- default:
- ASSERT(event->type() == QEvent::MouseButtonDblClick);
+ case QEvent::MouseButtonDblClick:
return;
+ default:
+ break;
}
- // If the scale animation is active we don't pass the event to the recognizers. In the future
- // we would want to queue the event here and repost then when the animation ends.
- if (m_viewportController->scaleAnimationActive())
- return;
-
QList<QTouchEvent::TouchPoint> activeTouchPoints;
QTouchEvent::TouchPoint currentTouchPoint;
qint64 eventTimestampMillis = event->timestamp();
@@ -568,9 +576,6 @@ void QtWebPageEventHandler::handleInputEvent(const QInputEvent* event)
#if ENABLE(TOUCH_EVENTS)
void QtWebPageEventHandler::doneWithTouchEvent(const NativeWebTouchEvent& event, bool wasEventHandled)
{
- if (!m_viewportController)
- return;
-
if (wasEventHandled || event.type() == WebEvent::TouchCancel) {
m_panGestureRecognizer.cancel();
m_pinchGestureRecognizer.cancel();
diff --git a/Source/WebKit2/UIProcess/qt/QtWebPageLoadClient.cpp b/Source/WebKit2/UIProcess/qt/QtWebPageLoadClient.cpp
index 0e9c5cfb4..b877ca8df 100644
--- a/Source/WebKit2/UIProcess/qt/QtWebPageLoadClient.cpp
+++ b/Source/WebKit2/UIProcess/qt/QtWebPageLoadClient.cpp
@@ -62,6 +62,9 @@ void QtWebPageLoadClient::didReceiveServerRedirectForProvisionalLoad(const WTF::
void QtWebPageLoadClient::didCommitLoad()
{
+ PageViewportController* pvc = m_webView->d_func()->viewportController();
+ if (pvc)
+ pvc->didCommitLoad();
m_webView->d_func()->loadDidCommit();
}
diff --git a/Source/WebKit2/UIProcess/qt/WebPageProxyQt.cpp b/Source/WebKit2/UIProcess/qt/WebPageProxyQt.cpp
index ef6d5477d..e5a7829c0 100644
--- a/Source/WebKit2/UIProcess/qt/WebPageProxyQt.cpp
+++ b/Source/WebKit2/UIProcess/qt/WebPageProxyQt.cpp
@@ -85,6 +85,11 @@ void WebPageProxy::cancelComposition()
process()->send(Messages::WebPage::CancelComposition(), m_pageID);
}
+void WebPageProxy::didRenderFrame(const WebCore::IntSize& contentsSize, const WebCore::IntRect& coveredRect)
+{
+ m_pageClient->didRenderFrame(contentsSize, coveredRect);
+}
+
void WebPageProxy::registerApplicationScheme(const String& scheme)
{
process()->send(Messages::WebPage::RegisterApplicationScheme(scheme), m_pageID);
@@ -116,6 +121,44 @@ void WebPageProxy::setUserScripts(const Vector<String>& scripts)
process()->send(Messages::WebPage::SetUserScripts(scripts), m_pageID);
}
+void WebPageProxy::pageTransitionViewportReady()
+{
+ m_pageClient->pageTransitionViewportReady();
+}
+
+void WebPageProxy::didFindZoomableArea(const IntPoint& target, const IntRect& area)
+{
+ m_pageClient->didFindZoomableArea(target, area);
+}
+
+void WebPageProxy::findZoomableAreaForPoint(const IntPoint& point, const IntSize& area)
+{
+ if (!isValid())
+ return;
+
+ m_process->send(Messages::WebPage::FindZoomableAreaForPoint(point, area), m_pageID);
+}
+
+void WebPageProxy::didReceiveMessageFromNavigatorQtObject(const String& contents)
+{
+ m_pageClient->didReceiveMessageFromNavigatorQtObject(contents);
+}
+
+void WebPageProxy::authenticationRequiredRequest(const String& hostname, const String& realm, const String& prefilledUsername, String& username, String& password)
+{
+ m_pageClient->handleAuthenticationRequiredRequest(hostname, realm, prefilledUsername, username, password);
+}
+
+void WebPageProxy::proxyAuthenticationRequiredRequest(const String& hostname, uint16_t port, const String& prefilledUsername, String& username, String& password)
+{
+ m_pageClient->handleProxyAuthenticationRequiredRequest(hostname, port, prefilledUsername, username, password);
+}
+
+void WebPageProxy::certificateVerificationRequest(const String& hostname, bool& ignoreErrors)
+{
+ m_pageClient->handleCertificateVerificationRequest(hostname, ignoreErrors);
+}
+
#if PLUGIN_ARCHITECTURE(X11)
void WebPageProxy::createPluginContainer(uint64_t& windowID)
{
diff --git a/Source/WebKit2/UIProcess/soup/WebSoupRequestManagerClient.cpp b/Source/WebKit2/UIProcess/soup/WebSoupRequestManagerClient.cpp
index be2c6cc66..c5d7e3bf7 100644
--- a/Source/WebKit2/UIProcess/soup/WebSoupRequestManagerClient.cpp
+++ b/Source/WebKit2/UIProcess/soup/WebSoupRequestManagerClient.cpp
@@ -24,12 +24,12 @@
namespace WebKit {
-bool WebSoupRequestManagerClient::didReceiveURIRequest(WebSoupRequestManagerProxy* soupRequestManager, WebURL* url, uint64_t requestID)
+bool WebSoupRequestManagerClient::didReceiveURIRequest(WebSoupRequestManagerProxy* soupRequestManager, WebURL* url, WebPageProxy* initiaingPage, uint64_t requestID)
{
if (!m_client.didReceiveURIRequest)
return false;
- m_client.didReceiveURIRequest(toAPI(soupRequestManager), toAPI(url), requestID, m_client.clientInfo);
+ m_client.didReceiveURIRequest(toAPI(soupRequestManager), toAPI(url), toAPI(initiaingPage), requestID, m_client.clientInfo);
return true;
}
diff --git a/Source/WebKit2/UIProcess/soup/WebSoupRequestManagerClient.h b/Source/WebKit2/UIProcess/soup/WebSoupRequestManagerClient.h
index dc1755e5a..e247fecd7 100644
--- a/Source/WebKit2/UIProcess/soup/WebSoupRequestManagerClient.h
+++ b/Source/WebKit2/UIProcess/soup/WebSoupRequestManagerClient.h
@@ -30,7 +30,7 @@ class WebURL;
class WebSoupRequestManagerClient : public APIClient<WKSoupRequestManagerClient, kWKSoupRequestManagerClientCurrentVersion> {
public:
- bool didReceiveURIRequest(WebSoupRequestManagerProxy*, WebURL*, uint64_t requestID);
+ bool didReceiveURIRequest(WebSoupRequestManagerProxy*, WebURL*, WebPageProxy*, uint64_t requestID);
void didFailToLoadURIRequest(WebSoupRequestManagerProxy*, uint64_t requestID);
};
diff --git a/Source/WebKit2/UIProcess/soup/WebSoupRequestManagerProxy.cpp b/Source/WebKit2/UIProcess/soup/WebSoupRequestManagerProxy.cpp
index c766b0adb..e2bf3423d 100644
--- a/Source/WebKit2/UIProcess/soup/WebSoupRequestManagerProxy.cpp
+++ b/Source/WebKit2/UIProcess/soup/WebSoupRequestManagerProxy.cpp
@@ -35,6 +35,7 @@ WebSoupRequestManagerProxy::WebSoupRequestManagerProxy(WebContext* context)
: m_webContext(context)
, m_loadFailed(false)
{
+ m_webContext->addMessageReceiver(CoreIPC::MessageClassWebSoupRequestManagerProxy, this);
}
WebSoupRequestManagerProxy::~WebSoupRequestManagerProxy()
@@ -76,9 +77,9 @@ void WebSoupRequestManagerProxy::didReceiveURIRequestData(const WebData* request
m_webContext->sendToAllProcesses(Messages::WebSoupRequestManager::DidReceiveURIRequestData(requestData->dataReference(), requestID));
}
-void WebSoupRequestManagerProxy::didReceiveURIRequest(const String& uriString, uint64_t requestID)
+void WebSoupRequestManagerProxy::didReceiveURIRequest(const String& uriString, WebPageProxy* initiaingPage, uint64_t requestID)
{
- if (!m_client.didReceiveURIRequest(this, WebURL::create(uriString).get(), requestID))
+ if (!m_client.didReceiveURIRequest(this, WebURL::create(uriString).get(), initiaingPage, requestID))
didHandleURIRequest(WebData::create(0, 0).get(), 0, String(), requestID);
}
diff --git a/Source/WebKit2/UIProcess/soup/WebSoupRequestManagerProxy.h b/Source/WebKit2/UIProcess/soup/WebSoupRequestManagerProxy.h
index 92bd63e1e..6a3d6e826 100644
--- a/Source/WebKit2/UIProcess/soup/WebSoupRequestManagerProxy.h
+++ b/Source/WebKit2/UIProcess/soup/WebSoupRequestManagerProxy.h
@@ -21,23 +21,18 @@
#define WebSoupRequestManagerProxy_h
#include "APIObject.h"
+#include "MessageReceiver.h"
#include "WebSoupRequestManagerClient.h"
#include <wtf/PassRefPtr.h>
#include <wtf/RefPtr.h>
#include <wtf/text/WTFString.h>
-namespace CoreIPC {
-class ArgumentDecoder;
-class Connection;
-class MessageID;
-}
-
namespace WebKit {
class WebContext;
class WebData;
-class WebSoupRequestManagerProxy : public APIObject {
+class WebSoupRequestManagerProxy : public APIObject, private CoreIPC::MessageReceiver {
public:
static const Type APIType = TypeSoupRequestManager;
@@ -54,15 +49,15 @@ public:
void didReceiveURIRequestData(const WebData*, uint64_t requestID);
void didFailToLoadURIRequest(uint64_t requestID);
- void didReceiveMessage(CoreIPC::Connection*, CoreIPC::MessageID, CoreIPC::ArgumentDecoder*);
+ void didReceiveURIRequest(const String& uriString, WebPageProxy*, uint64_t requestID);
private:
WebSoupRequestManagerProxy(WebContext*);
virtual Type type() const { return APIType; }
- void didReceiveURIRequest(const String& uriString, uint64_t requestID);
-
+ // CoreIPC::MessageReceiver
+ virtual void didReceiveMessage(CoreIPC::Connection*, CoreIPC::MessageID, CoreIPC::ArgumentDecoder*) OVERRIDE;
void didReceiveWebSoupRequestManagerProxyMessage(CoreIPC::Connection*, CoreIPC::MessageID, CoreIPC::ArgumentDecoder*);
WebContext* m_webContext;
diff --git a/Source/WebKit2/UIProcess/soup/WebSoupRequestManagerProxy.messages.in b/Source/WebKit2/UIProcess/soup/WebSoupRequestManagerProxy.messages.in
index 81591a493..18058f5c7 100644
--- a/Source/WebKit2/UIProcess/soup/WebSoupRequestManagerProxy.messages.in
+++ b/Source/WebKit2/UIProcess/soup/WebSoupRequestManagerProxy.messages.in
@@ -21,6 +21,5 @@
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
messages -> WebSoupRequestManagerProxy {
- DidReceiveURIRequest(WTF::String uriString, uint64_t requestID);
DidFailToLoadURIRequest(uint64_t requestID);
}
diff --git a/Source/WebKit2/WebKit2.xcodeproj/project.pbxproj b/Source/WebKit2/WebKit2.xcodeproj/project.pbxproj
index b64a8edb8..99dfade33 100644
--- a/Source/WebKit2/WebKit2.xcodeproj/project.pbxproj
+++ b/Source/WebKit2/WebKit2.xcodeproj/project.pbxproj
@@ -18,6 +18,7 @@
dependencies = (
1A50DB3C110A3C19000D3FE5 /* PBXTargetDependency */,
BCDE0AC113272712001259FB /* PBXTargetDependency */,
+ 510CC8481613C85300D03ED3 /* PBXTargetDependency */,
BCAE9DFD160C0AB000A33217 /* PBXTargetDependency */,
BCA8D46815BCE0D6009DC1F1 /* PBXTargetDependency */,
);
@@ -73,6 +74,8 @@
1A186EEA12EF7618008E5F37 /* LayerTreeHost.h in Headers */ = {isa = PBXBuildFile; fileRef = 1A186EE812EF7618008E5F37 /* LayerTreeHost.h */; };
1A186EEB12EF7618008E5F37 /* LayerTreeHost.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 1A186EE912EF7618008E5F37 /* LayerTreeHost.cpp */; };
1A1C649B11F4174200553C19 /* WebContextMac.mm in Sources */ = {isa = PBXBuildFile; fileRef = 1A1C648611F415B700553C19 /* WebContextMac.mm */; };
+ 1A1FEC1C1627B45700700F6D /* WebConnectionMessageReceiver.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 1A1FEC1A1627B45600700F6D /* WebConnectionMessageReceiver.cpp */; };
+ 1A1FEC1D1627B45700700F6D /* WebConnectionMessages.h in Headers */ = {isa = PBXBuildFile; fileRef = 1A1FEC1B1627B45700700F6D /* WebConnectionMessages.h */; };
1A2161B011F37664008AD0F5 /* NPRuntimeObjectMap.h in Headers */ = {isa = PBXBuildFile; fileRef = 1A2161AE11F37664008AD0F5 /* NPRuntimeObjectMap.h */; };
1A2161B111F37664008AD0F5 /* NPRuntimeObjectMap.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 1A2161AF11F37664008AD0F5 /* NPRuntimeObjectMap.cpp */; };
1A2162B011F38971008AD0F5 /* NPRuntimeUtilities.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 1A2162AE11F38971008AD0F5 /* NPRuntimeUtilities.cpp */; };
@@ -115,6 +118,9 @@
1A3DD206125E5A2F004515E6 /* APIClient.h in Headers */ = {isa = PBXBuildFile; fileRef = 1A3DD205125E5A2F004515E6 /* APIClient.h */; };
1A3E736111CC2659007BD539 /* WebPlatformStrategies.h in Headers */ = {isa = PBXBuildFile; fileRef = 1A3E735F11CC2659007BD539 /* WebPlatformStrategies.h */; };
1A3E736211CC2659007BD539 /* WebPlatformStrategies.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 1A3E736011CC2659007BD539 /* WebPlatformStrategies.cpp */; };
+ 1A3EED0E161A535400AEB4F5 /* MessageReceiverMap.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 1A3EED0C161A535300AEB4F5 /* MessageReceiverMap.cpp */; };
+ 1A3EED0F161A535400AEB4F5 /* MessageReceiverMap.h in Headers */ = {isa = PBXBuildFile; fileRef = 1A3EED0D161A535300AEB4F5 /* MessageReceiverMap.h */; };
+ 1A3EED12161A53D600AEB4F5 /* MessageReceiver.h in Headers */ = {isa = PBXBuildFile; fileRef = 1A3EED11161A53D600AEB4F5 /* MessageReceiver.h */; };
1A433F0D113C53DD00FACDE9 /* WebErrors.h in Headers */ = {isa = PBXBuildFile; fileRef = 1A433F0C113C53DD00FACDE9 /* WebErrors.h */; };
1A4A9AA812B7E796008FE984 /* WKTextInputWindowController.h in Headers */ = {isa = PBXBuildFile; fileRef = 1A4A9AA612B7E796008FE984 /* WKTextInputWindowController.h */; };
1A4A9AA912B7E796008FE984 /* WKTextInputWindowController.mm in Sources */ = {isa = PBXBuildFile; fileRef = 1A4A9AA712B7E796008FE984 /* WKTextInputWindowController.mm */; };
@@ -247,10 +253,16 @@
1CA8B945127C882A00576C2B /* WebInspectorProxyMessageReceiver.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 1CA8B943127C882A00576C2B /* WebInspectorProxyMessageReceiver.cpp */; };
1CA8B946127C882A00576C2B /* WebInspectorProxyMessages.h in Headers */ = {isa = PBXBuildFile; fileRef = 1CA8B944127C882A00576C2B /* WebInspectorProxyMessages.h */; };
1CA8B954127C891500576C2B /* WebInspectorMac.mm in Sources */ = {isa = PBXBuildFile; fileRef = 1C8E2DAD1278C5B200BC7BD0 /* WebInspectorMac.mm */; };
+ 293EBEAB1627D9C9005F89F1 /* WKDOMText.h in Headers */ = {isa = PBXBuildFile; fileRef = 293EBEA91627D9C9005F89F1 /* WKDOMText.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 293EBEAC1627D9C9005F89F1 /* WKDOMText.mm in Sources */ = {isa = PBXBuildFile; fileRef = 293EBEAA1627D9C9005F89F1 /* WKDOMText.mm */; };
+ 29501724162A4504004A9D71 /* WKWebProcessPlugInBrowserContextControllerPrivate.h in Headers */ = {isa = PBXBuildFile; fileRef = 29501723162A4504004A9D71 /* WKWebProcessPlugInBrowserContextControllerPrivate.h */; settings = {ATTRIBUTES = (Private, ); }; };
296BD85D15019BC30071F424 /* StringUtilities.h in Headers */ = {isa = PBXBuildFile; fileRef = 296BD85B15019BC30071F424 /* StringUtilities.h */; };
296BD85E15019BC30071F424 /* StringUtilities.mm in Sources */ = {isa = PBXBuildFile; fileRef = 296BD85C15019BC30071F424 /* StringUtilities.mm */; };
29CD55AA128E294F00133C85 /* WKAccessibilityWebPageObject.h in Headers */ = {isa = PBXBuildFile; fileRef = 29CD55A8128E294F00133C85 /* WKAccessibilityWebPageObject.h */; };
29CD55AB128E294F00133C85 /* WKAccessibilityWebPageObject.mm in Sources */ = {isa = PBXBuildFile; fileRef = 29CD55A9128E294F00133C85 /* WKAccessibilityWebPageObject.mm */; };
+ 29D55DF1161BF9F10031A2E3 /* WebPageGroupProxyMessageReceiver.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 29D55DEF161BF9F10031A2E3 /* WebPageGroupProxyMessageReceiver.cpp */; };
+ 29D55DF2161BF9F10031A2E3 /* WebPageGroupProxyMessages.h in Headers */ = {isa = PBXBuildFile; fileRef = 29D55DF0161BF9F10031A2E3 /* WebPageGroupProxyMessages.h */; };
+ 2D870D1016234FFE000A3F20 /* PDFPlugin.mm in Sources */ = {isa = PBXBuildFile; fileRef = 2D870D0E1622B7F9000A3F20 /* PDFPlugin.mm */; };
31099973146C75A20029DEB9 /* WebNotificationClient.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 31099971146C759B0029DEB9 /* WebNotificationClient.cpp */; };
310999C7146C9E3D0029DEB9 /* WebNotificationClient.h in Headers */ = {isa = PBXBuildFile; fileRef = 31099968146C71F50029DEB9 /* WebNotificationClient.h */; };
312C0C4A146DDC8A0016C911 /* WKNotificationProvider.h in Headers */ = {isa = PBXBuildFile; fileRef = 312C0C49146DDC8A0016C911 /* WKNotificationProvider.h */; settings = {ATTRIBUTES = (Private, ); }; };
@@ -331,6 +343,8 @@
3F87B9C0158940D80090FF62 /* WebColorChooserProxy.h in Headers */ = {isa = PBXBuildFile; fileRef = 3F87B9BF158940D80090FF62 /* WebColorChooserProxy.h */; };
4F601432155C5AA2001FBDE0 /* BlockingResponseMap.h in Headers */ = {isa = PBXBuildFile; fileRef = 4F601430155C5A32001FBDE0 /* BlockingResponseMap.h */; };
51021E9C12B16788005C033C /* WebContextMenuClientMac.mm in Sources */ = {isa = PBXBuildFile; fileRef = 51021E9B12B16788005C033C /* WebContextMenuClientMac.mm */; };
+ 510CC8491613C85C00D03ED3 /* NetworkProcess.app in CopyFiles */ = {isa = PBXBuildFile; fileRef = 510CC80E1613C79900D03ED3 /* NetworkProcess.app */; };
+ 510CC84F1613C92C00D03ED3 /* MainMacProcess.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 1A6FA31011E3921E00DB1371 /* MainMacProcess.cpp */; };
510FBB9A1288C95E00AFFDF4 /* WebContextMenuItemData.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 510FBB981288C95E00AFFDF4 /* WebContextMenuItemData.cpp */; };
510FBB9B1288C95E00AFFDF4 /* WebContextMenuItemData.h in Headers */ = {isa = PBXBuildFile; fileRef = 510FBB991288C95E00AFFDF4 /* WebContextMenuItemData.h */; };
5110AE0C133C16CB0072717A /* WKIconDatabase.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 5110AE0A133C16CB0072717A /* WKIconDatabase.cpp */; };
@@ -391,7 +405,19 @@
5153569D1291B1D2000749DC /* WebPageContextMenuClient.h in Headers */ = {isa = PBXBuildFile; fileRef = 5153569B1291B1D2000749DC /* WebPageContextMenuClient.h */; };
51578B831209ECEF00A37C4A /* WebData.h in Headers */ = {isa = PBXBuildFile; fileRef = 51578B821209ECEF00A37C4A /* WebData.h */; };
5160BFE113381DF900918999 /* Logging.mac.mm in Sources */ = {isa = PBXBuildFile; fileRef = 5160BFE013381DF900918999 /* Logging.mac.mm */; };
+ 516319921628980A00E22F00 /* NetworkProcessProxyMac.mm in Sources */ = {isa = PBXBuildFile; fileRef = 516319911628980A00E22F00 /* NetworkProcessProxyMac.mm */; };
+ 5163199416289A6000E22F00 /* NetworkProcessMessageReceiver.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 51ACC9341628064800342550 /* NetworkProcessMessageReceiver.cpp */; };
+ 5163199516289A6300E22F00 /* NetworkProcessMessages.h in Headers */ = {isa = PBXBuildFile; fileRef = 51ACC9351628064800342550 /* NetworkProcessMessages.h */; };
516A4A5D120A2CCD00C05B7F /* WebError.h in Headers */ = {isa = PBXBuildFile; fileRef = 516A4A5B120A2CCD00C05B7F /* WebError.h */; };
+ 51795565162876C500FA43B6 /* NetworkProcessMainMac.mm in Sources */ = {isa = PBXBuildFile; fileRef = 510CC7DD16138E2900D03ED3 /* NetworkProcessMainMac.mm */; };
+ 51795567162876CB00FA43B6 /* NetworkProcessMac.mm in Sources */ = {isa = PBXBuildFile; fileRef = 51A8A6151627F3F9000D90E9 /* NetworkProcessMac.mm */; };
+ 51795568162876CF00FA43B6 /* NetworkProcess.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 510CC7DF16138E2900D03ED3 /* NetworkProcess.cpp */; };
+ 51795569162876EE00FA43B6 /* NetworkProcessMain.h in Headers */ = {isa = PBXBuildFile; fileRef = 510CC7E116138E2900D03ED3 /* NetworkProcessMain.h */; };
+ 5179556A162876F300FA43B6 /* NetworkProcess.h in Headers */ = {isa = PBXBuildFile; fileRef = 510CC7E016138E2900D03ED3 /* NetworkProcess.h */; };
+ 5179556D162877B100FA43B6 /* NetworkProcessProxy.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 510CC7EA16138E7200D03ED3 /* NetworkProcessProxy.cpp */; };
+ 5179556E162877B300FA43B6 /* NetworkProcessProxy.h in Headers */ = {isa = PBXBuildFile; fileRef = 510CC7EB16138E7200D03ED3 /* NetworkProcessProxy.h */; };
+ 51795570162877CF00FA43B6 /* NetworkProcessCreationParameters.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 51A8A6121627F325000D90E9 /* NetworkProcessCreationParameters.cpp */; };
+ 51795571162877D200FA43B6 /* NetworkProcessCreationParameters.h in Headers */ = {isa = PBXBuildFile; fileRef = 51A8A60F1627F2BD000D90E9 /* NetworkProcessCreationParameters.h */; };
51834592134532E90092B696 /* WebIconDatabaseClient.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 51834590134532E80092B696 /* WebIconDatabaseClient.cpp */; };
51834593134532E90092B696 /* WebIconDatabaseClient.h in Headers */ = {isa = PBXBuildFile; fileRef = 51834591134532E80092B696 /* WebIconDatabaseClient.h */; };
5183B3921379F7B800E8754E /* WebProcessShim.dylib in Copy Web Process Shim */ = {isa = PBXBuildFile; fileRef = 510031F61379CACB00C8DFE4 /* WebProcessShim.dylib */; };
@@ -480,6 +506,16 @@
B878B615133428DC006888E9 /* CorrectionPanel.h in Headers */ = {isa = PBXBuildFile; fileRef = B878B613133428DC006888E9 /* CorrectionPanel.h */; };
B878B616133428DC006888E9 /* CorrectionPanel.mm in Sources */ = {isa = PBXBuildFile; fileRef = B878B614133428DC006888E9 /* CorrectionPanel.mm */; };
BC0092F8115837A300E0AE2A /* WorkQueueMac.cpp in Sources */ = {isa = PBXBuildFile; fileRef = BC0092F6115837A300E0AE2A /* WorkQueueMac.cpp */; };
+ BC017D0716260FF4007054F5 /* WKDOMDocument.h in Headers */ = {isa = PBXBuildFile; fileRef = BC017CFF16260FF4007054F5 /* WKDOMDocument.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ BC017D0816260FF4007054F5 /* WKDOMDocument.mm in Sources */ = {isa = PBXBuildFile; fileRef = BC017D0016260FF4007054F5 /* WKDOMDocument.mm */; };
+ BC017D0916260FF4007054F5 /* WKDOMElement.h in Headers */ = {isa = PBXBuildFile; fileRef = BC017D0116260FF4007054F5 /* WKDOMElement.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ BC017D0A16260FF4007054F5 /* WKDOMElement.mm in Sources */ = {isa = PBXBuildFile; fileRef = BC017D0216260FF4007054F5 /* WKDOMElement.mm */; };
+ BC017D0B16260FF4007054F5 /* WKDOMInternals.h in Headers */ = {isa = PBXBuildFile; fileRef = BC017D0316260FF4007054F5 /* WKDOMInternals.h */; };
+ BC017D0C16260FF4007054F5 /* WKDOMInternals.mm in Sources */ = {isa = PBXBuildFile; fileRef = BC017D0416260FF4007054F5 /* WKDOMInternals.mm */; };
+ BC017D0D16260FF4007054F5 /* WKDOMNode.h in Headers */ = {isa = PBXBuildFile; fileRef = BC017D0516260FF4007054F5 /* WKDOMNode.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ BC017D0E16260FF4007054F5 /* WKDOMNode.mm in Sources */ = {isa = PBXBuildFile; fileRef = BC017D0616260FF4007054F5 /* WKDOMNode.mm */; };
+ BC017D2016263308007054F5 /* WKDOMTextIterator.mm in Sources */ = {isa = PBXBuildFile; fileRef = BC017D1E16263308007054F5 /* WKDOMTextIterator.mm */; };
+ BC017D2116263308007054F5 /* WKDOMTextIterator.h in Headers */ = {isa = PBXBuildFile; fileRef = BC017D1F16263308007054F5 /* WKDOMTextIterator.h */; settings = {ATTRIBUTES = (Public, ); }; };
BC032D7510F4378D0058C15A /* WebChromeClient.h in Headers */ = {isa = PBXBuildFile; fileRef = BC032D6010F4378D0058C15A /* WebChromeClient.h */; };
BC032D7710F4378D0058C15A /* WebContextMenuClient.h in Headers */ = {isa = PBXBuildFile; fileRef = BC032D6210F4378D0058C15A /* WebContextMenuClient.h */; };
BC032D7B10F4378D0058C15A /* WebDragClient.h in Headers */ = {isa = PBXBuildFile; fileRef = BC032D6610F4378D0058C15A /* WebDragClient.h */; };
@@ -560,7 +596,7 @@
BC1DFEA412B31F87005DF730 /* WebOpenPanelResultListenerProxy.h in Headers */ = {isa = PBXBuildFile; fileRef = BC1DFEA212B31F87005DF730 /* WebOpenPanelResultListenerProxy.h */; };
BC204EE211C83E98008F3375 /* InjectedBundle.cpp in Sources */ = {isa = PBXBuildFile; fileRef = BC204EE011C83E98008F3375 /* InjectedBundle.cpp */; };
BC204EE311C83E98008F3375 /* InjectedBundle.h in Headers */ = {isa = PBXBuildFile; fileRef = BC204EE111C83E98008F3375 /* InjectedBundle.h */; };
- BC204EE611C83EA9008F3375 /* InjectedBundleMac.cpp in Sources */ = {isa = PBXBuildFile; fileRef = BC204EE511C83EA9008F3375 /* InjectedBundleMac.cpp */; };
+ BC204EE611C83EA9008F3375 /* InjectedBundleMac.mm in Sources */ = {isa = PBXBuildFile; fileRef = BC204EE511C83EA9008F3375 /* InjectedBundleMac.mm */; };
BC204EEE11C83EC8008F3375 /* WKBundle.cpp in Sources */ = {isa = PBXBuildFile; fileRef = BC204EE911C83EC8008F3375 /* WKBundle.cpp */; };
BC204EEF11C83EC8008F3375 /* WKBundle.h in Headers */ = {isa = PBXBuildFile; fileRef = BC204EEA11C83EC8008F3375 /* WKBundle.h */; settings = {ATTRIBUTES = (Private, ); }; };
BC204EF011C83EC8008F3375 /* WKBundleAPICast.h in Headers */ = {isa = PBXBuildFile; fileRef = BC204EEB11C83EC8008F3375 /* WKBundleAPICast.h */; };
@@ -583,6 +619,8 @@
BC33DD681238464600360F3F /* WebNumber.h in Headers */ = {isa = PBXBuildFile; fileRef = BC33DD671238464600360F3F /* WebNumber.h */; };
BC33E0D112408E8600360F3F /* InjectedBundleRangeHandle.h in Headers */ = {isa = PBXBuildFile; fileRef = BC33E0CF12408E8600360F3F /* InjectedBundleRangeHandle.h */; };
BC33E0D212408E8600360F3F /* InjectedBundleRangeHandle.cpp in Sources */ = {isa = PBXBuildFile; fileRef = BC33E0D012408E8600360F3F /* InjectedBundleRangeHandle.cpp */; };
+ BC39C4351626366F008BC689 /* WKDOMRange.mm in Sources */ = {isa = PBXBuildFile; fileRef = BC39C4331626366F008BC689 /* WKDOMRange.mm */; };
+ BC39C4361626366F008BC689 /* WKDOMRange.h in Headers */ = {isa = PBXBuildFile; fileRef = BC39C4341626366F008BC689 /* WKDOMRange.h */; settings = {ATTRIBUTES = (Public, ); }; };
BC4075F3124FF0270068F20A /* WKArray.cpp in Sources */ = {isa = PBXBuildFile; fileRef = BC4075D7124FF0270068F20A /* WKArray.cpp */; };
BC4075F4124FF0270068F20A /* WKArray.h in Headers */ = {isa = PBXBuildFile; fileRef = BC4075D8124FF0270068F20A /* WKArray.h */; settings = {ATTRIBUTES = (Private, ); }; };
BC4075F5124FF0270068F20A /* WKCertificateInfo.cpp in Sources */ = {isa = PBXBuildFile; fileRef = BC4075D9124FF0270068F20A /* WKCertificateInfo.cpp */; };
@@ -702,6 +740,9 @@
BC8699B7116AADAA002A925B /* WKViewInternal.h in Headers */ = {isa = PBXBuildFile; fileRef = BC8699B4116AADAA002A925B /* WKViewInternal.h */; };
BC8780FC1161C2B800CC2768 /* PlatformProcessIdentifier.h in Headers */ = {isa = PBXBuildFile; fileRef = BC8780FB1161C2B800CC2768 /* PlatformProcessIdentifier.h */; };
BC8A501511765F5600757573 /* WKRetainPtr.h in Headers */ = {isa = PBXBuildFile; fileRef = BC8A501411765F5600757573 /* WKRetainPtr.h */; settings = {ATTRIBUTES = (Private, ); }; };
+ BC8F2F2A16273A2C005FACB5 /* WKWebProcessPlugInBrowserContextController.mm in Sources */ = {isa = PBXBuildFile; fileRef = BC8F2F2816273A2B005FACB5 /* WKWebProcessPlugInBrowserContextController.mm */; };
+ BC8F2F2B16273A2C005FACB5 /* WKWebProcessPlugInBrowserContextController.h in Headers */ = {isa = PBXBuildFile; fileRef = BC8F2F2916273A2C005FACB5 /* WKWebProcessPlugInBrowserContextController.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ BC8F2F2E16273ACC005FACB5 /* WKWebProcessPlugInBrowserContextControllerInternal.h in Headers */ = {isa = PBXBuildFile; fileRef = BC8F2F2D16273ACB005FACB5 /* WKWebProcessPlugInBrowserContextControllerInternal.h */; };
BC9099801256A98200083756 /* WKStringPrivate.h in Headers */ = {isa = PBXBuildFile; fileRef = BC90997F1256A98200083756 /* WKStringPrivate.h */; settings = {ATTRIBUTES = (Private, ); }; };
BC90A1D2122DD55E00CC8C50 /* WebURLResponse.h in Headers */ = {isa = PBXBuildFile; fileRef = BC90A1D0122DD55E00CC8C50 /* WebURLResponse.h */; };
BC90A1D3122DD55E00CC8C50 /* WebURLResponse.cpp in Sources */ = {isa = PBXBuildFile; fileRef = BC90A1D1122DD55E00CC8C50 /* WebURLResponse.cpp */; };
@@ -709,6 +750,9 @@
BC9585C812F095B800755821 /* WebGestureEvent.cpp in Sources */ = {isa = PBXBuildFile; fileRef = BC9585C712F095B800755821 /* WebGestureEvent.cpp */; };
BC963D6B113DD19200574BE2 /* WebPage.cpp in Sources */ = {isa = PBXBuildFile; fileRef = BC963D6A113DD19200574BE2 /* WebPage.cpp */; };
BC963D6E113DD1A500574BE2 /* WebPageMac.mm in Sources */ = {isa = PBXBuildFile; fileRef = BC963D6D113DD1A500574BE2 /* WebPageMac.mm */; };
+ BC989D81161A7E5D000D46D3 /* WKWebProcessPlugIn.mm in Sources */ = {isa = PBXBuildFile; fileRef = BC989D7F161A7E5B000D46D3 /* WKWebProcessPlugIn.mm */; };
+ BC989D82161A7E5D000D46D3 /* WKWebProcessPlugIn.h in Headers */ = {isa = PBXBuildFile; fileRef = BC989D80161A7E5C000D46D3 /* WKWebProcessPlugIn.h */; settings = {ATTRIBUTES = (Private, ); }; };
+ BC989D85161A9890000D46D3 /* WKWebProcessPlugInInternal.h in Headers */ = {isa = PBXBuildFile; fileRef = BC989D84161A988F000D46D3 /* WKWebProcessPlugInInternal.h */; };
BC9B38A110F538BE00443A15 /* WebFrameProxy.h in Headers */ = {isa = PBXBuildFile; fileRef = BC9B389F10F538BE00443A15 /* WebFrameProxy.h */; };
BC9FA520160D3B430054DF9A /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = BC3DE46815A91763008D26FC /* Foundation.framework */; };
BC9FA522160D4A0C0054DF9A /* com.apple.WebKit.PluginProcess.sb in Resources */ = {isa = PBXBuildFile; fileRef = E1967E35150AB5D500C73169 /* com.apple.WebKit.PluginProcess.sb */; };
@@ -743,7 +787,6 @@
BCB0B0DC12305A2500B1341E /* WebContextUserMessageCoders.h in Headers */ = {isa = PBXBuildFile; fileRef = BCB0B0DB12305A2500B1341E /* WebContextUserMessageCoders.h */; };
BCB0B0DE12305A8C00B1341E /* InjectedBundleUserMessageCoders.h in Headers */ = {isa = PBXBuildFile; fileRef = BCB0B0DD12305A8C00B1341E /* InjectedBundleUserMessageCoders.h */; };
BCB0B0E012305AB100B1341E /* UserMessageCoders.h in Headers */ = {isa = PBXBuildFile; fileRef = BCB0B0DF12305AB100B1341E /* UserMessageCoders.h */; };
- BCB28CC0120233D9007D99BC /* InjectedBundleMessageKinds.h in Headers */ = {isa = PBXBuildFile; fileRef = BCB28CBF120233D9007D99BC /* InjectedBundleMessageKinds.h */; };
BCB63478116BF10600603215 /* WebKit2_C.h in Headers */ = {isa = PBXBuildFile; fileRef = BCB63477116BF10600603215 /* WebKit2_C.h */; settings = {ATTRIBUTES = (Private, ); }; };
BCB9E2431120DACA00A137E0 /* WebContext.h in Headers */ = {isa = PBXBuildFile; fileRef = BCB9E2411120DACA00A137E0 /* WebContext.h */; };
BCB9E2441120DACA00A137E0 /* WebContext.cpp in Sources */ = {isa = PBXBuildFile; fileRef = BCB9E2421120DACA00A137E0 /* WebContext.cpp */; };
@@ -913,7 +956,7 @@
E19582D6153CC05400B60875 /* PDFKitImports.mm in Sources */ = {isa = PBXBuildFile; fileRef = E19582D4153CC05300B60875 /* PDFKitImports.mm */; };
E1967E36150AB5D500C73169 /* com.apple.WebKit.PluginProcess.sb in Resources */ = {isa = PBXBuildFile; fileRef = E1967E35150AB5D500C73169 /* com.apple.WebKit.PluginProcess.sb */; };
E1967E38150AB5E200C73169 /* com.apple.WebProcess.sb in Resources */ = {isa = PBXBuildFile; fileRef = E1967E37150AB5E200C73169 /* com.apple.WebProcess.sb */; };
- E199875E142C045400BB2DE7 /* BuiltInPDFView.mm in Sources */ = {isa = PBXBuildFile; fileRef = E199875C142BFC9700BB2DE7 /* BuiltInPDFView.mm */; };
+ E199875E142C045400BB2DE7 /* SimplePDFPlugin.mm in Sources */ = {isa = PBXBuildFile; fileRef = E199875C142BFC9700BB2DE7 /* SimplePDFPlugin.mm */; };
E1A31732134CEA6C007C9A4F /* AttributedString.h in Headers */ = {isa = PBXBuildFile; fileRef = E1A31731134CEA6C007C9A4F /* AttributedString.h */; };
E1A31735134CEA80007C9A4F /* AttributedString.mm in Sources */ = {isa = PBXBuildFile; fileRef = E1A31734134CEA80007C9A4F /* AttributedString.mm */; };
E1AEA22F14687BDB00804569 /* WKFullKeyboardAccessWatcher.h in Headers */ = {isa = PBXBuildFile; fileRef = E1AEA22D14687BDB00804569 /* WKFullKeyboardAccessWatcher.h */; };
@@ -971,6 +1014,20 @@
remoteGlobalIDString = C0CE72851247E66800BC0EC4;
remoteInfo = "Derived Sources";
};
+ 510CC8471613C85300D03ED3 /* PBXContainerItemProxy */ = {
+ isa = PBXContainerItemProxy;
+ containerPortal = 0867D690FE84028FC02AAC07 /* Project object */;
+ proxyType = 1;
+ remoteGlobalIDString = 510CC80D1613C79900D03ED3;
+ remoteInfo = NetworkProcess;
+ };
+ 510CC8501613C98D00D03ED3 /* PBXContainerItemProxy */ = {
+ isa = PBXContainerItemProxy;
+ containerPortal = 0867D690FE84028FC02AAC07 /* Project object */;
+ proxyType = 1;
+ remoteGlobalIDString = 8DC2EF4F0486A6940098B216;
+ remoteInfo = WebKit2;
+ };
5183B38D1379F54600E8754E /* PBXContainerItemProxy */ = {
isa = PBXContainerItemProxy;
containerPortal = 0867D690FE84028FC02AAC07 /* Project object */;
@@ -1024,6 +1081,7 @@
files = (
BCDE0ABF13272708001259FB /* PluginProcess.app in CopyFiles */,
1A50DB66110A3D57000D3FE5 /* WebProcess.app in CopyFiles */,
+ 510CC8491613C85C00D03ED3 /* NetworkProcess.app in CopyFiles */,
);
runOnlyForDeploymentPostprocessing = 0;
};
@@ -1110,6 +1168,9 @@
1A1FA284127A13BC0050E709 /* NPObjectProxy.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = NPObjectProxy.cpp; sourceTree = "<group>"; };
1A1FA35B127A45BF0050E709 /* NPObjectMessageReceiver.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NPObjectMessageReceiver.h; sourceTree = "<group>"; };
1A1FA35C127A45BF0050E709 /* NPObjectMessageReceiver.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = NPObjectMessageReceiver.cpp; sourceTree = "<group>"; };
+ 1A1FEC191627B3EF00700F6D /* WebConnection.messages.in */ = {isa = PBXFileReference; lastKnownFileType = text; path = WebConnection.messages.in; sourceTree = "<group>"; };
+ 1A1FEC1A1627B45600700F6D /* WebConnectionMessageReceiver.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = WebConnectionMessageReceiver.cpp; sourceTree = "<group>"; };
+ 1A1FEC1B1627B45700700F6D /* WebConnectionMessages.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WebConnectionMessages.h; sourceTree = "<group>"; };
1A2161AE11F37664008AD0F5 /* NPRuntimeObjectMap.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NPRuntimeObjectMap.h; sourceTree = "<group>"; };
1A2161AF11F37664008AD0F5 /* NPRuntimeObjectMap.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = NPRuntimeObjectMap.cpp; sourceTree = "<group>"; };
1A2162AE11F38971008AD0F5 /* NPRuntimeUtilities.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = NPRuntimeUtilities.cpp; sourceTree = "<group>"; };
@@ -1149,6 +1210,9 @@
1A3DD205125E5A2F004515E6 /* APIClient.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = APIClient.h; sourceTree = "<group>"; };
1A3E735F11CC2659007BD539 /* WebPlatformStrategies.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WebPlatformStrategies.h; sourceTree = "<group>"; };
1A3E736011CC2659007BD539 /* WebPlatformStrategies.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = WebPlatformStrategies.cpp; sourceTree = "<group>"; };
+ 1A3EED0C161A535300AEB4F5 /* MessageReceiverMap.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = MessageReceiverMap.cpp; sourceTree = "<group>"; };
+ 1A3EED0D161A535300AEB4F5 /* MessageReceiverMap.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MessageReceiverMap.h; sourceTree = "<group>"; };
+ 1A3EED11161A53D600AEB4F5 /* MessageReceiver.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MessageReceiver.h; sourceTree = "<group>"; };
1A433F0C113C53DD00FACDE9 /* WebErrors.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WebErrors.h; sourceTree = "<group>"; };
1A4A9AA612B7E796008FE984 /* WKTextInputWindowController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WKTextInputWindowController.h; sourceTree = "<group>"; };
1A4A9AA712B7E796008FE984 /* WKTextInputWindowController.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = WKTextInputWindowController.mm; sourceTree = "<group>"; };
@@ -1300,10 +1364,18 @@
1CA8B935127C774E00576C2B /* WebInspectorProxyMac.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = WebInspectorProxyMac.mm; sourceTree = "<group>"; };
1CA8B943127C882A00576C2B /* WebInspectorProxyMessageReceiver.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = WebInspectorProxyMessageReceiver.cpp; sourceTree = "<group>"; };
1CA8B944127C882A00576C2B /* WebInspectorProxyMessages.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WebInspectorProxyMessages.h; sourceTree = "<group>"; };
+ 293EBEA91627D9C9005F89F1 /* WKDOMText.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WKDOMText.h; sourceTree = "<group>"; };
+ 293EBEAA1627D9C9005F89F1 /* WKDOMText.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = WKDOMText.mm; sourceTree = "<group>"; };
+ 29501723162A4504004A9D71 /* WKWebProcessPlugInBrowserContextControllerPrivate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WKWebProcessPlugInBrowserContextControllerPrivate.h; sourceTree = "<group>"; };
296BD85B15019BC30071F424 /* StringUtilities.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = StringUtilities.h; sourceTree = "<group>"; };
296BD85C15019BC30071F424 /* StringUtilities.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = StringUtilities.mm; sourceTree = "<group>"; };
29CD55A8128E294F00133C85 /* WKAccessibilityWebPageObject.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WKAccessibilityWebPageObject.h; sourceTree = "<group>"; };
29CD55A9128E294F00133C85 /* WKAccessibilityWebPageObject.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = WKAccessibilityWebPageObject.mm; sourceTree = "<group>"; };
+ 29D55DEE161BF8780031A2E3 /* WebPageGroupProxy.messages.in */ = {isa = PBXFileReference; lastKnownFileType = text; path = WebPageGroupProxy.messages.in; sourceTree = "<group>"; };
+ 29D55DEF161BF9F10031A2E3 /* WebPageGroupProxyMessageReceiver.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = WebPageGroupProxyMessageReceiver.cpp; sourceTree = "<group>"; };
+ 29D55DF0161BF9F10031A2E3 /* WebPageGroupProxyMessages.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WebPageGroupProxyMessages.h; sourceTree = "<group>"; };
+ 2D870D0D1622B7F9000A3F20 /* PDFPlugin.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = PDFPlugin.h; path = PDF/PDFPlugin.h; sourceTree = "<group>"; };
+ 2D870D0E1622B7F9000A3F20 /* PDFPlugin.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; name = PDFPlugin.mm; path = PDF/PDFPlugin.mm; sourceTree = "<group>"; };
31099968146C71F50029DEB9 /* WebNotificationClient.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = WebNotificationClient.h; sourceTree = "<group>"; };
31099971146C759B0029DEB9 /* WebNotificationClient.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = WebNotificationClient.cpp; sourceTree = "<group>"; };
312C0C49146DDC8A0016C911 /* WKNotificationProvider.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WKNotificationProvider.h; sourceTree = "<group>"; };
@@ -1393,6 +1465,15 @@
4F601430155C5A32001FBDE0 /* BlockingResponseMap.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BlockingResponseMap.h; sourceTree = "<group>"; };
510031F61379CACB00C8DFE4 /* WebProcessShim.dylib */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.dylib"; includeInIndex = 0; path = WebProcessShim.dylib; sourceTree = BUILT_PRODUCTS_DIR; };
51021E9B12B16788005C033C /* WebContextMenuClientMac.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = WebContextMenuClientMac.mm; sourceTree = "<group>"; };
+ 510CC7DD16138E2900D03ED3 /* NetworkProcessMainMac.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = NetworkProcessMainMac.mm; sourceTree = "<group>"; };
+ 510CC7DF16138E2900D03ED3 /* NetworkProcess.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = NetworkProcess.cpp; path = NetworkProcess/NetworkProcess.cpp; sourceTree = "<group>"; };
+ 510CC7E016138E2900D03ED3 /* NetworkProcess.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = NetworkProcess.h; path = NetworkProcess/NetworkProcess.h; sourceTree = "<group>"; };
+ 510CC7E116138E2900D03ED3 /* NetworkProcessMain.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = NetworkProcessMain.h; path = NetworkProcess/NetworkProcessMain.h; sourceTree = "<group>"; };
+ 510CC7EA16138E7200D03ED3 /* NetworkProcessProxy.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = NetworkProcessProxy.cpp; sourceTree = "<group>"; };
+ 510CC7EB16138E7200D03ED3 /* NetworkProcessProxy.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NetworkProcessProxy.h; sourceTree = "<group>"; };
+ 510CC80E1613C79900D03ED3 /* NetworkProcess.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = NetworkProcess.app; sourceTree = BUILT_PRODUCTS_DIR; };
+ 510CC8191613C79900D03ED3 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; name = Info.plist; path = NetworkProcess/Info.plist; sourceTree = "<group>"; };
+ 510CC8461613C7C600D03ED3 /* NetworkProcess.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = NetworkProcess.xcconfig; sourceTree = "<group>"; };
510FBB981288C95E00AFFDF4 /* WebContextMenuItemData.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = WebContextMenuItemData.cpp; sourceTree = "<group>"; };
510FBB991288C95E00AFFDF4 /* WebContextMenuItemData.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WebContextMenuItemData.h; sourceTree = "<group>"; };
5110AE0A133C16CB0072717A /* WKIconDatabase.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = WKIconDatabase.cpp; sourceTree = "<group>"; };
@@ -1454,6 +1535,7 @@
5153569B1291B1D2000749DC /* WebPageContextMenuClient.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WebPageContextMenuClient.h; sourceTree = "<group>"; };
51578B821209ECEF00A37C4A /* WebData.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WebData.h; sourceTree = "<group>"; };
5160BFE013381DF900918999 /* Logging.mac.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = Logging.mac.mm; sourceTree = "<group>"; };
+ 516319911628980A00E22F00 /* NetworkProcessProxyMac.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; name = NetworkProcessProxyMac.mm; path = mac/NetworkProcessProxyMac.mm; sourceTree = "<group>"; };
516A4A5B120A2CCD00C05B7F /* WebError.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WebError.h; sourceTree = "<group>"; };
517A33B3130B308C00F80CB5 /* WKApplicationCacheManager.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = WKApplicationCacheManager.cpp; sourceTree = "<group>"; };
517A33B4130B308C00F80CB5 /* WKApplicationCacheManager.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WKApplicationCacheManager.h; sourceTree = "<group>"; };
@@ -1475,6 +1557,10 @@
51A7F2F2125BF820008AEB1D /* Logging.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Logging.h; sourceTree = "<group>"; };
51A7F2F4125BF8D4008AEB1D /* Logging.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = Logging.cpp; sourceTree = "<group>"; };
51A84CE2127F386B00CA6EA4 /* WebContextMenuProxy.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = WebContextMenuProxy.cpp; sourceTree = "<group>"; };
+ 51A8A60F1627F2BD000D90E9 /* NetworkProcessCreationParameters.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = NetworkProcessCreationParameters.h; path = Network/NetworkProcessCreationParameters.h; sourceTree = "<group>"; };
+ 51A8A6121627F325000D90E9 /* NetworkProcessCreationParameters.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = NetworkProcessCreationParameters.cpp; path = Network/NetworkProcessCreationParameters.cpp; sourceTree = "<group>"; };
+ 51A8A6151627F3F9000D90E9 /* NetworkProcessMac.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = NetworkProcessMac.mm; sourceTree = "<group>"; };
+ 51A8A6171627F5BB000D90E9 /* NetworkProcess.messages.in */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; name = NetworkProcess.messages.in; path = NetworkProcess/NetworkProcess.messages.in; sourceTree = "<group>"; };
51A9E0FC1315CCDE009E7031 /* WebKeyValueStorageManager.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = WebKeyValueStorageManager.cpp; path = KeyValueStorage/WebKeyValueStorageManager.cpp; sourceTree = "<group>"; };
51A9E0FD1315CCDE009E7031 /* WebKeyValueStorageManager.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = WebKeyValueStorageManager.h; path = KeyValueStorage/WebKeyValueStorageManager.h; sourceTree = "<group>"; };
51A9E0FE1315CCDE009E7031 /* WebKeyValueStorageManager.messages.in */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; name = WebKeyValueStorageManager.messages.in; path = KeyValueStorage/WebKeyValueStorageManager.messages.in; sourceTree = "<group>"; };
@@ -1490,6 +1576,8 @@
51ACBB81127A8BAD00D203B9 /* WebContextMenuProxy.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WebContextMenuProxy.h; sourceTree = "<group>"; };
51ACBB9E127A8F2C00D203B9 /* WebContextMenuProxyMac.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WebContextMenuProxyMac.h; sourceTree = "<group>"; };
51ACBB9F127A8F2C00D203B9 /* WebContextMenuProxyMac.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = WebContextMenuProxyMac.mm; sourceTree = "<group>"; };
+ 51ACC9341628064800342550 /* NetworkProcessMessageReceiver.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = NetworkProcessMessageReceiver.cpp; sourceTree = "<group>"; };
+ 51ACC9351628064800342550 /* NetworkProcessMessages.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NetworkProcessMessages.h; sourceTree = "<group>"; };
51B15A8213843A3900321AD8 /* EnvironmentUtilities.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = EnvironmentUtilities.cpp; path = unix/EnvironmentUtilities.cpp; sourceTree = "<group>"; };
51B15A8313843A3900321AD8 /* EnvironmentUtilities.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = EnvironmentUtilities.h; path = unix/EnvironmentUtilities.h; sourceTree = "<group>"; };
51B3004E12529D0E000B5CA0 /* WebBackForwardListCF.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = WebBackForwardListCF.cpp; path = cf/WebBackForwardListCF.cpp; sourceTree = "<group>"; };
@@ -1557,6 +1645,16 @@
B878B613133428DC006888E9 /* CorrectionPanel.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CorrectionPanel.h; sourceTree = "<group>"; };
B878B614133428DC006888E9 /* CorrectionPanel.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = CorrectionPanel.mm; sourceTree = "<group>"; };
BC0092F6115837A300E0AE2A /* WorkQueueMac.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = WorkQueueMac.cpp; sourceTree = "<group>"; };
+ BC017CFF16260FF4007054F5 /* WKDOMDocument.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WKDOMDocument.h; sourceTree = "<group>"; };
+ BC017D0016260FF4007054F5 /* WKDOMDocument.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = WKDOMDocument.mm; sourceTree = "<group>"; };
+ BC017D0116260FF4007054F5 /* WKDOMElement.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WKDOMElement.h; sourceTree = "<group>"; };
+ BC017D0216260FF4007054F5 /* WKDOMElement.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = WKDOMElement.mm; sourceTree = "<group>"; };
+ BC017D0316260FF4007054F5 /* WKDOMInternals.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WKDOMInternals.h; sourceTree = "<group>"; };
+ BC017D0416260FF4007054F5 /* WKDOMInternals.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = WKDOMInternals.mm; sourceTree = "<group>"; };
+ BC017D0516260FF4007054F5 /* WKDOMNode.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WKDOMNode.h; sourceTree = "<group>"; };
+ BC017D0616260FF4007054F5 /* WKDOMNode.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = WKDOMNode.mm; sourceTree = "<group>"; };
+ BC017D1E16263308007054F5 /* WKDOMTextIterator.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = WKDOMTextIterator.mm; sourceTree = "<group>"; };
+ BC017D1F16263308007054F5 /* WKDOMTextIterator.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WKDOMTextIterator.h; sourceTree = "<group>"; };
BC032D6010F4378D0058C15A /* WebChromeClient.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WebChromeClient.h; sourceTree = "<group>"; };
BC032D6210F4378D0058C15A /* WebContextMenuClient.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WebContextMenuClient.h; sourceTree = "<group>"; };
BC032D6610F4378D0058C15A /* WebDragClient.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WebDragClient.h; sourceTree = "<group>"; };
@@ -1643,7 +1741,7 @@
BC1DFEA312B31F87005DF730 /* WebOpenPanelResultListenerProxy.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = WebOpenPanelResultListenerProxy.cpp; sourceTree = "<group>"; };
BC204EE011C83E98008F3375 /* InjectedBundle.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = InjectedBundle.cpp; sourceTree = "<group>"; };
BC204EE111C83E98008F3375 /* InjectedBundle.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = InjectedBundle.h; sourceTree = "<group>"; };
- BC204EE511C83EA9008F3375 /* InjectedBundleMac.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = InjectedBundleMac.cpp; sourceTree = "<group>"; };
+ BC204EE511C83EA9008F3375 /* InjectedBundleMac.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = InjectedBundleMac.mm; sourceTree = "<group>"; };
BC204EE911C83EC8008F3375 /* WKBundle.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = WKBundle.cpp; sourceTree = "<group>"; };
BC204EEA11C83EC8008F3375 /* WKBundle.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WKBundle.h; sourceTree = "<group>"; };
BC204EEB11C83EC8008F3375 /* WKBundleAPICast.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WKBundleAPICast.h; sourceTree = "<group>"; };
@@ -1667,6 +1765,8 @@
BC33DD671238464600360F3F /* WebNumber.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WebNumber.h; sourceTree = "<group>"; };
BC33E0CF12408E8600360F3F /* InjectedBundleRangeHandle.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = InjectedBundleRangeHandle.h; sourceTree = "<group>"; };
BC33E0D012408E8600360F3F /* InjectedBundleRangeHandle.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = InjectedBundleRangeHandle.cpp; sourceTree = "<group>"; };
+ BC39C4331626366F008BC689 /* WKDOMRange.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = WKDOMRange.mm; sourceTree = "<group>"; };
+ BC39C4341626366F008BC689 /* WKDOMRange.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WKDOMRange.h; sourceTree = "<group>"; };
BC3DE46615A91763008D26FC /* com.apple.WebKit2.WebProcessService.xpc */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = com.apple.WebKit2.WebProcessService.xpc; sourceTree = BUILT_PRODUCTS_DIR; };
BC3DE46815A91763008D26FC /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = System/Library/Frameworks/Foundation.framework; sourceTree = SDKROOT; };
BC4075D7124FF0270068F20A /* WKArray.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = WKArray.cpp; sourceTree = "<group>"; };
@@ -1787,6 +1887,9 @@
BC87DFA91018101400564216 /* libicucore.dylib */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.dylib"; name = libicucore.dylib; path = /usr/lib/libicucore.dylib; sourceTree = "<absolute>"; };
BC8A501011765AF700757573 /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = Info.plist; path = WebProcess/Info.plist; sourceTree = "<group>"; };
BC8A501411765F5600757573 /* WKRetainPtr.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WKRetainPtr.h; sourceTree = "<group>"; };
+ BC8F2F2816273A2B005FACB5 /* WKWebProcessPlugInBrowserContextController.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = WKWebProcessPlugInBrowserContextController.mm; sourceTree = "<group>"; };
+ BC8F2F2916273A2C005FACB5 /* WKWebProcessPlugInBrowserContextController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WKWebProcessPlugInBrowserContextController.h; sourceTree = "<group>"; };
+ BC8F2F2D16273ACB005FACB5 /* WKWebProcessPlugInBrowserContextControllerInternal.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WKWebProcessPlugInBrowserContextControllerInternal.h; sourceTree = "<group>"; };
BC90997F1256A98200083756 /* WKStringPrivate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WKStringPrivate.h; sourceTree = "<group>"; };
BC90A1D0122DD55E00CC8C50 /* WebURLResponse.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WebURLResponse.h; sourceTree = "<group>"; };
BC90A1D1122DD55E00CC8C50 /* WebURLResponse.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = WebURLResponse.cpp; sourceTree = "<group>"; };
@@ -1794,6 +1897,9 @@
BC9585C712F095B800755821 /* WebGestureEvent.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = WebGestureEvent.cpp; sourceTree = "<group>"; };
BC963D6A113DD19200574BE2 /* WebPage.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = WebPage.cpp; sourceTree = "<group>"; };
BC963D6D113DD1A500574BE2 /* WebPageMac.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = WebPageMac.mm; sourceTree = "<group>"; };
+ BC989D7F161A7E5B000D46D3 /* WKWebProcessPlugIn.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = WKWebProcessPlugIn.mm; sourceTree = "<group>"; };
+ BC989D80161A7E5C000D46D3 /* WKWebProcessPlugIn.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WKWebProcessPlugIn.h; sourceTree = "<group>"; };
+ BC989D84161A988F000D46D3 /* WKWebProcessPlugInInternal.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WKWebProcessPlugInInternal.h; sourceTree = "<group>"; };
BC9B389F10F538BE00443A15 /* WebFrameProxy.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WebFrameProxy.h; sourceTree = "<group>"; };
BCA0EF7D12331E78007D3CFB /* WebUndoStep.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WebUndoStep.h; sourceTree = "<group>"; };
BCA0EF7E12331E78007D3CFB /* WebUndoStep.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = WebUndoStep.cpp; sourceTree = "<group>"; };
@@ -1826,7 +1932,6 @@
BCB0B0DB12305A2500B1341E /* WebContextUserMessageCoders.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WebContextUserMessageCoders.h; sourceTree = "<group>"; };
BCB0B0DD12305A8C00B1341E /* InjectedBundleUserMessageCoders.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = InjectedBundleUserMessageCoders.h; sourceTree = "<group>"; };
BCB0B0DF12305AB100B1341E /* UserMessageCoders.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = UserMessageCoders.h; sourceTree = "<group>"; };
- BCB28CBF120233D9007D99BC /* InjectedBundleMessageKinds.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = InjectedBundleMessageKinds.h; sourceTree = "<group>"; };
BCB63477116BF10600603215 /* WebKit2_C.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WebKit2_C.h; sourceTree = "<group>"; };
BCB86F4B116AAACD00CE20B7 /* WebKit2.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = WebKit2.xcconfig; sourceTree = "<group>"; };
BCB9E2411120DACA00A137E0 /* WebContext.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WebContext.h; sourceTree = "<group>"; };
@@ -2023,8 +2128,8 @@
E19582D4153CC05300B60875 /* PDFKitImports.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = PDFKitImports.mm; sourceTree = "<group>"; };
E1967E35150AB5D500C73169 /* com.apple.WebKit.PluginProcess.sb */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = com.apple.WebKit.PluginProcess.sb; sourceTree = "<group>"; };
E1967E37150AB5E200C73169 /* com.apple.WebProcess.sb */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = com.apple.WebProcess.sb; sourceTree = "<group>"; };
- E199875A142BF9B800BB2DE7 /* BuiltInPDFView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = BuiltInPDFView.h; path = PDF/BuiltInPDFView.h; sourceTree = "<group>"; };
- E199875C142BFC9700BB2DE7 /* BuiltInPDFView.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; name = BuiltInPDFView.mm; path = PDF/BuiltInPDFView.mm; sourceTree = "<group>"; };
+ E199875A142BF9B800BB2DE7 /* SimplePDFPlugin.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = SimplePDFPlugin.h; path = PDF/SimplePDFPlugin.h; sourceTree = "<group>"; };
+ E199875C142BFC9700BB2DE7 /* SimplePDFPlugin.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; name = SimplePDFPlugin.mm; path = PDF/SimplePDFPlugin.mm; sourceTree = "<group>"; };
E1A31731134CEA6C007C9A4F /* AttributedString.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AttributedString.h; sourceTree = "<group>"; };
E1A31734134CEA80007C9A4F /* AttributedString.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = AttributedString.mm; sourceTree = "<group>"; };
E1AEA22D14687BDB00804569 /* WKFullKeyboardAccessWatcher.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WKFullKeyboardAccessWatcher.h; sourceTree = "<group>"; };
@@ -2119,6 +2224,7 @@
510031F61379CACB00C8DFE4 /* WebProcessShim.dylib */,
BC3DE46615A91763008D26FC /* com.apple.WebKit2.WebProcessService.xpc */,
BCAE9DE9160C097400A33217 /* com.apple.WebKit2.WebProcessServiceForWebKitDevelopment.xpc */,
+ 510CC80E1613C79900D03ED3 /* NetworkProcess.app */,
);
name = Products;
sourceTree = "<group>";
@@ -2135,6 +2241,7 @@
1AADDF4B10D82AF000D3D63D /* Shared */,
BC032DC310F438260058C15A /* UIProcess */,
BC032D5C10F436D50058C15A /* WebProcess */,
+ 510CC7DA16138E0100D03ED3 /* NetworkProcess */,
1A0EC6B0124BBD36007EF4A5 /* PluginProcess */,
32C88DFF0371C24200C91783 /* Other Sources */,
C0CE729D1247E71D00BC0EC4 /* Derived Sources */,
@@ -2161,6 +2268,7 @@
089C1665FE841158C02AAC07 /* Resources */ = {
isa = PBXGroup;
children = (
+ 510CC84A1613C8AB00D03ED3 /* NetworkProcess */,
BC122FA51327085D00F7EAC1 /* PluginProcess */,
BC8A500E11765AD400757573 /* WebKit2 */,
BC8A500F11765AE300757573 /* WebProcess */,
@@ -2263,6 +2371,7 @@
BCAE9DFF160C0B4100A33217 /* CompilerVersion.xcconfig */,
1A4F976B100E7B6600637A18 /* DebugRelease.xcconfig */,
1A4F976C100E7B6600637A18 /* FeatureDefines.xcconfig */,
+ 510CC8461613C7C600D03ED3 /* NetworkProcess.xcconfig */,
BC122FA3132707F300F7EAC1 /* PluginProcess.xcconfig */,
5183B3931379F85C00E8754E /* Shim.xcconfig */,
1A4F976E100E7B6600637A18 /* Version.xcconfig */,
@@ -2414,6 +2523,7 @@
C01A25FF12662F2100C9ED55 /* cg */,
BC111B5F112F635E00337BAB /* CoreIPCSupport */,
BC111B5A112F628200337BAB /* mac */,
+ 51A8A60D1627F2AC000D90E9 /* Network */,
1AAE058C1279DCD400852418 /* Plugins */,
1A3DD205125E5A2F004515E6 /* APIClient.h */,
5D51845313BCF9CC00C7FF4A /* APIClientTraits.cpp */,
@@ -2477,6 +2587,7 @@
BCF50726124329AA005955AE /* WebCertificateInfo.h */,
BC4A628B147312BE006C681A /* WebConnection.cpp */,
BC4A628C147312BE006C681A /* WebConnection.h */,
+ 1A1FEC191627B3EF00700F6D /* WebConnection.messages.in */,
BC4A628D147312BE006C681A /* WebConnectionClient.cpp */,
BC4A628E147312BE006C681A /* WebConnectionClient.h */,
512935D51288D19400A4B695 /* WebContextMenuItem.cpp */,
@@ -2600,6 +2711,9 @@
1A8EFDF91253CAA200F7067F /* DataReference.h */,
C0CE72AC1247E78D00BC0EC4 /* HandleMessage.h */,
BC032DA410F437D10058C15A /* MessageID.h */,
+ 1A3EED11161A53D600AEB4F5 /* MessageReceiver.h */,
+ 1A3EED0C161A535300AEB4F5 /* MessageReceiverMap.cpp */,
+ 1A3EED0D161A535300AEB4F5 /* MessageReceiverMap.h */,
1A119A94127B796200A9ECB1 /* MessageSender.h */,
);
path = CoreIPC;
@@ -2722,6 +2836,46 @@
name = cf;
sourceTree = "<group>";
};
+ 510CC7DA16138E0100D03ED3 /* NetworkProcess */ = {
+ isa = PBXGroup;
+ children = (
+ 510CC7DC16138E2900D03ED3 /* mac */,
+ 510CC7DF16138E2900D03ED3 /* NetworkProcess.cpp */,
+ 510CC7E016138E2900D03ED3 /* NetworkProcess.h */,
+ 51A8A6171627F5BB000D90E9 /* NetworkProcess.messages.in */,
+ 510CC7E116138E2900D03ED3 /* NetworkProcessMain.h */,
+ );
+ name = NetworkProcess;
+ sourceTree = "<group>";
+ };
+ 510CC7DC16138E2900D03ED3 /* mac */ = {
+ isa = PBXGroup;
+ children = (
+ 51A8A6151627F3F9000D90E9 /* NetworkProcessMac.mm */,
+ 510CC7DD16138E2900D03ED3 /* NetworkProcessMainMac.mm */,
+ );
+ name = mac;
+ path = NetworkProcess/mac;
+ sourceTree = "<group>";
+ };
+ 510CC7E716138E7200D03ED3 /* Network */ = {
+ isa = PBXGroup;
+ children = (
+ 516319931628980E00E22F00 /* mac */,
+ 510CC7EA16138E7200D03ED3 /* NetworkProcessProxy.cpp */,
+ 510CC7EB16138E7200D03ED3 /* NetworkProcessProxy.h */,
+ );
+ path = Network;
+ sourceTree = "<group>";
+ };
+ 510CC84A1613C8AB00D03ED3 /* NetworkProcess */ = {
+ isa = PBXGroup;
+ children = (
+ 510CC8191613C79900D03ED3 /* Info.plist */,
+ );
+ name = NetworkProcess;
+ sourceTree = "<group>";
+ };
5123CF18133D25E60056F800 /* cg */ = {
isa = PBXGroup;
children = (
@@ -2767,6 +2921,23 @@
path = Authentication;
sourceTree = "<group>";
};
+ 516319931628980E00E22F00 /* mac */ = {
+ isa = PBXGroup;
+ children = (
+ 516319911628980A00E22F00 /* NetworkProcessProxyMac.mm */,
+ );
+ name = mac;
+ sourceTree = "<group>";
+ };
+ 51A8A60D1627F2AC000D90E9 /* Network */ = {
+ isa = PBXGroup;
+ children = (
+ 51A8A6121627F325000D90E9 /* NetworkProcessCreationParameters.cpp */,
+ 51A8A60F1627F2BD000D90E9 /* NetworkProcessCreationParameters.h */,
+ );
+ name = Network;
+ sourceTree = "<group>";
+ };
51A9E0FB1315CC0E009E7031 /* KeyValueStorage */ = {
isa = PBXGroup;
children = (
@@ -2824,6 +2995,27 @@
name = mac;
sourceTree = "<group>";
};
+ BC017D1016260FFD007054F5 /* DOM */ = {
+ isa = PBXGroup;
+ children = (
+ BC017CFF16260FF4007054F5 /* WKDOMDocument.h */,
+ BC017D0016260FF4007054F5 /* WKDOMDocument.mm */,
+ BC017D0116260FF4007054F5 /* WKDOMElement.h */,
+ BC017D0216260FF4007054F5 /* WKDOMElement.mm */,
+ BC017D0316260FF4007054F5 /* WKDOMInternals.h */,
+ BC017D0416260FF4007054F5 /* WKDOMInternals.mm */,
+ BC017D0516260FF4007054F5 /* WKDOMNode.h */,
+ BC017D0616260FF4007054F5 /* WKDOMNode.mm */,
+ BC39C4341626366F008BC689 /* WKDOMRange.h */,
+ BC39C4331626366F008BC689 /* WKDOMRange.mm */,
+ 293EBEA91627D9C9005F89F1 /* WKDOMText.h */,
+ 293EBEAA1627D9C9005F89F1 /* WKDOMText.mm */,
+ BC017D1F16263308007054F5 /* WKDOMTextIterator.h */,
+ BC017D1E16263308007054F5 /* WKDOMTextIterator.mm */,
+ );
+ name = DOM;
+ sourceTree = "<group>";
+ };
BC032D5C10F436D50058C15A /* WebProcess */ = {
isa = PBXGroup;
children = (
@@ -2934,6 +3126,7 @@
C0CE72581247E4DA00BC0EC4 /* WebPage.messages.in */,
BC7B621412A4219A00D174A4 /* WebPageGroupProxy.cpp */,
BC7B621312A4219A00D174A4 /* WebPageGroupProxy.h */,
+ 29D55DEE161BF8780031A2E3 /* WebPageGroupProxy.messages.in */,
BCA0EF7E12331E78007D3CFB /* WebUndoStep.cpp */,
BCA0EF7D12331E78007D3CFB /* WebUndoStep.h */,
);
@@ -2949,6 +3142,7 @@
1AB7D4C71288AA9A00CFD08C /* Downloads */,
BC111B18112F5FB400337BAB /* Launcher */,
BCCF085C113F3B7500C650C5 /* mac */,
+ 510CC7E716138E7200D03ED3 /* Network */,
31A2EC401489973700810D71 /* Notifications */,
1AEFCC0511D01F34008219D3 /* Plugins */,
1A64256712DE42EC00CAAE2C /* BackingStore.cpp */,
@@ -3296,7 +3490,6 @@
BC111B5F112F635E00337BAB /* CoreIPCSupport */ = {
isa = PBXGroup;
children = (
- BCB28CBF120233D9007D99BC /* InjectedBundleMessageKinds.h */,
BCE9C0B61484714700E33D61 /* WebConnectionMessageKinds.h */,
BCCB75C51203A1CE00222D1B /* WebContextMessageKinds.h */,
);
@@ -3359,7 +3552,7 @@
BC204EE411C83E9C008F3375 /* mac */ = {
isa = PBXGroup;
children = (
- BC204EE511C83EA9008F3375 /* InjectedBundleMac.cpp */,
+ BC204EE511C83EA9008F3375 /* InjectedBundleMac.mm */,
);
path = mac;
sourceTree = "<group>";
@@ -3368,6 +3561,7 @@
isa = PBXGroup;
children = (
BC204EE811C83EB7008F3375 /* c */,
+ BC989D4516181691000D46D3 /* mac */,
);
path = API;
sourceTree = "<group>";
@@ -3518,6 +3712,21 @@
path = mac;
sourceTree = "<group>";
};
+ BC989D4516181691000D46D3 /* mac */ = {
+ isa = PBXGroup;
+ children = (
+ BC017D1016260FFD007054F5 /* DOM */,
+ BC989D80161A7E5C000D46D3 /* WKWebProcessPlugIn.h */,
+ BC989D7F161A7E5B000D46D3 /* WKWebProcessPlugIn.mm */,
+ BC989D84161A988F000D46D3 /* WKWebProcessPlugInInternal.h */,
+ BC8F2F2916273A2C005FACB5 /* WKWebProcessPlugInBrowserContextController.h */,
+ BC8F2F2816273A2B005FACB5 /* WKWebProcessPlugInBrowserContextController.mm */,
+ BC8F2F2D16273ACB005FACB5 /* WKWebProcessPlugInBrowserContextControllerInternal.h */,
+ 29501723162A4504004A9D71 /* WKWebProcessPlugInBrowserContextControllerPrivate.h */,
+ );
+ path = mac;
+ sourceTree = "<group>";
+ };
BCAE9DED160C097400A33217 /* WebProcessServiceForWebKitDevelopment */ = {
isa = PBXGroup;
children = (
@@ -3697,6 +3906,8 @@
children = (
512F58A012A883AD00629530 /* AuthenticationManagerMessageReceiver.cpp */,
512F58A112A883AD00629530 /* AuthenticationManagerMessages.h */,
+ E1967E35150AB5D500C73169 /* com.apple.WebKit.PluginProcess.sb */,
+ E1967E37150AB5E200C73169 /* com.apple.WebProcess.sb */,
1AB7D6171288B9D900CFD08C /* DownloadProxyMessageReceiver.cpp */,
1AB7D6181288B9D900CFD08C /* DownloadProxyMessages.h */,
1A64229712DD029200CAAE2C /* DrawingAreaMessageReceiver.cpp */,
@@ -3705,6 +3916,8 @@
1A64230712DD09EB00CAAE2C /* DrawingAreaProxyMessages.h */,
1AA575FF1496B7C000A4EE06 /* EventDispatcherMessageReceiver.cpp */,
1AA576001496B7C000A4EE06 /* EventDispatcherMessages.h */,
+ 51ACC9341628064800342550 /* NetworkProcessMessageReceiver.cpp */,
+ 51ACC9351628064800342550 /* NetworkProcessMessages.h */,
1A2D8437127F65D5001EB962 /* NPObjectMessageReceiverMessageReceiver.cpp */,
1A2D8438127F65D5001EB962 /* NPObjectMessageReceiverMessages.h */,
1A8EF96C1252AF6B00F7067F /* PluginControllerProxyMessageReceiver.cpp */,
@@ -3721,6 +3934,8 @@
512E3569130B57F000ABD19A /* WebApplicationCacheManagerMessages.h */,
512E35F6130B642E00ABD19A /* WebApplicationCacheManagerProxyMessageReceiver.cpp */,
512E35F7130B642E00ABD19A /* WebApplicationCacheManagerProxyMessages.h */,
+ 1A1FEC1A1627B45600700F6D /* WebConnectionMessageReceiver.cpp */,
+ 1A1FEC1B1627B45700700F6D /* WebConnectionMessages.h */,
BCEE7D0B12846F69009827DA /* WebContextMessageReceiver.cpp */,
BCEE7D0C12846F69009827DA /* WebContextMessages.h */,
330934431315B9220097A7BC /* WebCookieManagerMessageReceiver.cpp */,
@@ -3759,6 +3974,8 @@
31BA9249148830810062EDB5 /* WebNotificationManagerMessages.h */,
318BE1651473433700A8FBB2 /* WebNotificationManagerProxyMessageReceiver.cpp */,
318BE1661473433700A8FBB2 /* WebNotificationManagerProxyMessages.h */,
+ 29D55DEF161BF9F10031A2E3 /* WebPageGroupProxyMessageReceiver.cpp */,
+ 29D55DF0161BF9F10031A2E3 /* WebPageGroupProxyMessages.h */,
C0CE729E1247E71D00BC0EC4 /* WebPageMessageReceiver.cpp */,
C0CE729F1247E71D00BC0EC4 /* WebPageMessages.h */,
BCBD3912125BB1A800D2C29F /* WebPageProxyMessageReceiver.cpp */,
@@ -3773,8 +3990,6 @@
33367652130C9ECA006C9DE2 /* WebResourceCacheManagerMessages.h */,
33367653130C9ECA006C9DE2 /* WebResourceCacheManagerProxyMessageReceiver.cpp */,
33367654130C9ECA006C9DE2 /* WebResourceCacheManagerProxyMessages.h */,
- E1967E35150AB5D500C73169 /* com.apple.WebKit.PluginProcess.sb */,
- E1967E37150AB5E200C73169 /* com.apple.WebProcess.sb */,
);
name = "Derived Sources";
path = DerivedSources/WebKit2;
@@ -3816,8 +4031,10 @@
E199875B142BF9CF00BB2DE7 /* PDF */ = {
isa = PBXGroup;
children = (
- E199875C142BFC9700BB2DE7 /* BuiltInPDFView.mm */,
- E199875A142BF9B800BB2DE7 /* BuiltInPDFView.h */,
+ 2D870D0D1622B7F9000A3F20 /* PDFPlugin.h */,
+ 2D870D0E1622B7F9000A3F20 /* PDFPlugin.mm */,
+ E199875C142BFC9700BB2DE7 /* SimplePDFPlugin.mm */,
+ E199875A142BF9B800BB2DE7 /* SimplePDFPlugin.h */,
);
name = PDF;
sourceTree = "<group>";
@@ -3916,7 +4133,6 @@
935EEBA4127761D6003322B8 /* InjectedBundleBackForwardListItem.h in Headers */,
BCEE7DC5128B645D009827DA /* InjectedBundleClient.h in Headers */,
BC498618124D10E200D834E1 /* InjectedBundleHitTestResult.h in Headers */,
- BCB28CC0120233D9007D99BC /* InjectedBundleMessageKinds.h in Headers */,
BC8147D512F66D31007B2C32 /* InjectedBundleNavigationAction.h in Headers */,
BC4BEEAB120A0A5F00FBA0C7 /* InjectedBundleNodeHandle.h in Headers */,
512935E41288D97800A4B695 /* InjectedBundlePageContextMenuClient.h in Headers */,
@@ -4299,6 +4515,27 @@
BC59548915C7868500FD1E3E /* WebKit2.h in Headers */,
BCDC308815FD6A8B006B6695 /* WebProcessInitialization.h in Headers */,
BCDC308C15FD6CD1006B6695 /* WebProcessServiceEntryPoints.h in Headers */,
+ BC989D82161A7E5D000D46D3 /* WKWebProcessPlugIn.h in Headers */,
+ BC989D85161A9890000D46D3 /* WKWebProcessPlugInInternal.h in Headers */,
+ 1A3EED0F161A535400AEB4F5 /* MessageReceiverMap.h in Headers */,
+ 1A3EED12161A53D600AEB4F5 /* MessageReceiver.h in Headers */,
+ 29D55DF2161BF9F10031A2E3 /* WebPageGroupProxyMessages.h in Headers */,
+ BC017D0716260FF4007054F5 /* WKDOMDocument.h in Headers */,
+ BC017D0916260FF4007054F5 /* WKDOMElement.h in Headers */,
+ BC017D0B16260FF4007054F5 /* WKDOMInternals.h in Headers */,
+ BC017D0D16260FF4007054F5 /* WKDOMNode.h in Headers */,
+ BC017D2116263308007054F5 /* WKDOMTextIterator.h in Headers */,
+ BC39C4361626366F008BC689 /* WKDOMRange.h in Headers */,
+ BC8F2F2B16273A2C005FACB5 /* WKWebProcessPlugInBrowserContextController.h in Headers */,
+ BC8F2F2E16273ACC005FACB5 /* WKWebProcessPlugInBrowserContextControllerInternal.h in Headers */,
+ 1A1FEC1D1627B45700700F6D /* WebConnectionMessages.h in Headers */,
+ 293EBEAB1627D9C9005F89F1 /* WKDOMText.h in Headers */,
+ 51795569162876EE00FA43B6 /* NetworkProcessMain.h in Headers */,
+ 5179556A162876F300FA43B6 /* NetworkProcess.h in Headers */,
+ 5179556E162877B300FA43B6 /* NetworkProcessProxy.h in Headers */,
+ 51795571162877D200FA43B6 /* NetworkProcessCreationParameters.h in Headers */,
+ 5163199516289A6300E22F00 /* NetworkProcessMessages.h in Headers */,
+ 29501724162A4504004A9D71 /* WKWebProcessPlugInBrowserContextControllerPrivate.h in Headers */,
);
runOnlyForDeploymentPostprocessing = 0;
};
@@ -4358,6 +4595,23 @@
productReference = 510031F61379CACB00C8DFE4 /* WebProcessShim.dylib */;
productType = "com.apple.product-type.library.dynamic";
};
+ 510CC80D1613C79900D03ED3 /* NetworkProcess */ = {
+ isa = PBXNativeTarget;
+ buildConfigurationList = 510CC8431613C79900D03ED3 /* Build configuration list for PBXNativeTarget "NetworkProcess" */;
+ buildPhases = (
+ 510CC80A1613C79900D03ED3 /* Sources */,
+ 510CC80C1613C79900D03ED3 /* Resources */,
+ );
+ buildRules = (
+ );
+ dependencies = (
+ 510CC8511613C98D00D03ED3 /* PBXTargetDependency */,
+ );
+ name = NetworkProcess;
+ productName = NetworkProcess;
+ productReference = 510CC80E1613C79900D03ED3 /* NetworkProcess.app */;
+ productType = "com.apple.product-type.application";
+ };
8DC2EF4F0486A6940098B216 /* WebKit2 */ = {
isa = PBXNativeTarget;
buildConfigurationList = 1DEB91AD08733DA50010E9CD /* Build configuration list for PBXNativeTarget "WebKit2" */;
@@ -4468,6 +4722,7 @@
8DC2EF4F0486A6940098B216 /* WebKit2 */,
1A50DB1D110A3BDC000D3FE5 /* WebProcess */,
BCDE093313272496001259FB /* PluginProcess */,
+ 510CC80D1613C79900D03ED3 /* NetworkProcess */,
C0CE72851247E66800BC0EC4 /* Derived Sources */,
1AC25FAF12A48EA700BD2671 /* PluginProcessShim */,
510031EA1379CACB00C8DFE4 /* WebProcessShim */,
@@ -4487,6 +4742,13 @@
);
runOnlyForDeploymentPostprocessing = 0;
};
+ 510CC80C1613C79900D03ED3 /* Resources */ = {
+ isa = PBXResourcesBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ };
8DC2EF520486A6940098B216 /* Resources */ = {
isa = PBXResourcesBuildPhase;
buildActionMask = 2147483647;
@@ -4639,7 +4901,7 @@
);
runOnlyForDeploymentPostprocessing = 0;
shellPath = /bin/sh;
- shellScript = "ln -sf ${BUILT_PRODUCTS_DIR}/${WRAPPER_NAME}/WebKit2.framework/Versions/Current/XPCServices \"${BUILT_PRODUCTS_DIR}/${WRAPPER_NAME}/WebKit2.framework/XPCServices\"\n";
+ shellScript = "ln -sf Versions/Current/XPCServices \"${BUILT_PRODUCTS_DIR}/${WRAPPER_NAME}/WebKit2.framework/XPCServices\"\n";
};
BCFFCA8B160D6E7B003DF315 /* Copy XPC services for engineering builds */ = {
isa = PBXShellScriptBuildPhase;
@@ -4715,11 +4977,20 @@
);
runOnlyForDeploymentPostprocessing = 0;
};
+ 510CC80A1613C79900D03ED3 /* Sources */ = {
+ isa = PBXSourcesBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ 510CC84F1613C92C00D03ED3 /* MainMacProcess.cpp in Sources */,
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ };
8DC2EF540486A6940098B216 /* Sources */ = {
isa = PBXSourcesBuildPhase;
buildActionMask = 2147483647;
files = (
5D51845513BCF9CC00C7FF4A /* APIClientTraits.cpp in Sources */,
+ 2D870D1016234FFE000A3F20 /* PDFPlugin.mm in Sources */,
B63403F914910D57001070B5 /* APIObject.cpp in Sources */,
1A3D610513A7F03A00F95D4E /* ArgumentCoders.cpp in Sources */,
1AAF0C4B12B16334008E49E2 /* ArgumentCodersCF.cpp in Sources */,
@@ -4736,7 +5007,7 @@
1A64256912DE42EC00CAAE2C /* BackingStore.cpp in Sources */,
1A64292D12DE5F9800CAAE2C /* BackingStoreMac.mm in Sources */,
1AC41AC81263C88300054E94 /* BinarySemaphore.cpp in Sources */,
- E199875E142C045400BB2DE7 /* BuiltInPDFView.mm in Sources */,
+ E199875E142C045400BB2DE7 /* SimplePDFPlugin.mm in Sources */,
1AA2E51E12E4C05E00BC4966 /* CGUtilities.cpp in Sources */,
1A2D957012848564001EB962 /* ChildProcess.cpp in Sources */,
1A6F9FB711E1408500DB1371 /* CommandLineMac.cpp in Sources */,
@@ -4778,7 +5049,7 @@
935EEBA3127761D3003322B8 /* InjectedBundleBackForwardListItem.cpp in Sources */,
BCEE7DC6128B645D009827DA /* InjectedBundleClient.cpp in Sources */,
BC498619124D10E200D834E1 /* InjectedBundleHitTestResult.cpp in Sources */,
- BC204EE611C83EA9008F3375 /* InjectedBundleMac.cpp in Sources */,
+ BC204EE611C83EA9008F3375 /* InjectedBundleMac.mm in Sources */,
BC8147D612F66D31007B2C32 /* InjectedBundleNavigationAction.cpp in Sources */,
BC4BEEAC120A0A5F00FBA0C7 /* InjectedBundleNodeHandle.cpp in Sources */,
512935E31288D97800A4B695 /* InjectedBundlePageContextMenuClient.cpp in Sources */,
@@ -5155,6 +5426,25 @@
CD67D30E15C08F9A00843ADF /* InjectedBundlePageDiagnosticLoggingClient.cpp in Sources */,
BCDC308715FD6A8B006B6695 /* WebProcessInitialization.mm in Sources */,
BCDC308B15FD6CD1006B6695 /* WebProcessServiceEntryPoints.mm in Sources */,
+ BC989D81161A7E5D000D46D3 /* WKWebProcessPlugIn.mm in Sources */,
+ 1A3EED0E161A535400AEB4F5 /* MessageReceiverMap.cpp in Sources */,
+ 29D55DF1161BF9F10031A2E3 /* WebPageGroupProxyMessageReceiver.cpp in Sources */,
+ BC017D0816260FF4007054F5 /* WKDOMDocument.mm in Sources */,
+ BC017D0A16260FF4007054F5 /* WKDOMElement.mm in Sources */,
+ BC017D0C16260FF4007054F5 /* WKDOMInternals.mm in Sources */,
+ BC017D0E16260FF4007054F5 /* WKDOMNode.mm in Sources */,
+ BC017D2016263308007054F5 /* WKDOMTextIterator.mm in Sources */,
+ BC39C4351626366F008BC689 /* WKDOMRange.mm in Sources */,
+ BC8F2F2A16273A2C005FACB5 /* WKWebProcessPlugInBrowserContextController.mm in Sources */,
+ 1A1FEC1C1627B45700700F6D /* WebConnectionMessageReceiver.cpp in Sources */,
+ 293EBEAC1627D9C9005F89F1 /* WKDOMText.mm in Sources */,
+ 51795565162876C500FA43B6 /* NetworkProcessMainMac.mm in Sources */,
+ 51795567162876CB00FA43B6 /* NetworkProcessMac.mm in Sources */,
+ 51795568162876CF00FA43B6 /* NetworkProcess.cpp in Sources */,
+ 5179556D162877B100FA43B6 /* NetworkProcessProxy.cpp in Sources */,
+ 51795570162877CF00FA43B6 /* NetworkProcessCreationParameters.cpp in Sources */,
+ 516319921628980A00E22F00 /* NetworkProcessProxyMac.mm in Sources */,
+ 5163199416289A6000E22F00 /* NetworkProcessMessageReceiver.cpp in Sources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
@@ -5200,6 +5490,16 @@
target = C0CE72851247E66800BC0EC4 /* Derived Sources */;
targetProxy = 37F7407812721F740093869B /* PBXContainerItemProxy */;
};
+ 510CC8481613C85300D03ED3 /* PBXTargetDependency */ = {
+ isa = PBXTargetDependency;
+ target = 510CC80D1613C79900D03ED3 /* NetworkProcess */;
+ targetProxy = 510CC8471613C85300D03ED3 /* PBXContainerItemProxy */;
+ };
+ 510CC8511613C98D00D03ED3 /* PBXTargetDependency */ = {
+ isa = PBXTargetDependency;
+ target = 8DC2EF4F0486A6940098B216 /* WebKit2 */;
+ targetProxy = 510CC8501613C98D00D03ED3 /* PBXContainerItemProxy */;
+ };
5183B38E1379F54600E8754E /* PBXTargetDependency */ = {
isa = PBXTargetDependency;
target = 510031EA1379CACB00C8DFE4 /* WebProcessShim */;
@@ -5372,6 +5672,27 @@
};
name = Production;
};
+ 510CC83D1613C79900D03ED3 /* Debug */ = {
+ isa = XCBuildConfiguration;
+ baseConfigurationReference = 510CC8461613C7C600D03ED3 /* NetworkProcess.xcconfig */;
+ buildSettings = {
+ };
+ name = Debug;
+ };
+ 510CC83E1613C79900D03ED3 /* Release */ = {
+ isa = XCBuildConfiguration;
+ baseConfigurationReference = 510CC8461613C7C600D03ED3 /* NetworkProcess.xcconfig */;
+ buildSettings = {
+ };
+ name = Release;
+ };
+ 510CC83F1613C79900D03ED3 /* Production */ = {
+ isa = XCBuildConfiguration;
+ baseConfigurationReference = 510CC8461613C7C600D03ED3 /* NetworkProcess.xcconfig */;
+ buildSettings = {
+ };
+ name = Production;
+ };
5D22D69B11A7534600BF30E5 /* Production */ = {
isa = XCBuildConfiguration;
baseConfigurationReference = 1A4F976A100E7B6600637A18 /* Base.xcconfig */;
@@ -5559,6 +5880,16 @@
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Production;
};
+ 510CC8431613C79900D03ED3 /* Build configuration list for PBXNativeTarget "NetworkProcess" */ = {
+ isa = XCConfigurationList;
+ buildConfigurations = (
+ 510CC83D1613C79900D03ED3 /* Debug */,
+ 510CC83E1613C79900D03ED3 /* Release */,
+ 510CC83F1613C79900D03ED3 /* Production */,
+ );
+ defaultConfigurationIsVisible = 0;
+ defaultConfigurationName = Production;
+ };
BC3DE47615A91764008D26FC /* Build configuration list for PBXNativeTarget "WebProcessService" */ = {
isa = XCConfigurationList;
buildConfigurations = (
diff --git a/Source/WebKit2/WebKit2Prefix.h b/Source/WebKit2/WebKit2Prefix.h
index 4deb6299a..1edf3269e 100644
--- a/Source/WebKit2/WebKit2Prefix.h
+++ b/Source/WebKit2/WebKit2Prefix.h
@@ -40,6 +40,8 @@
#define ENABLE_PLUGIN_PROCESS 1
#endif
+#define ENABLE_NETWORK_PROCESS 1
+
#define ENABLE_MEMORY_SAMPLER 1
#include <CoreFoundation/CoreFoundation.h>
diff --git a/Source/WebKit2/WebProcess.pro b/Source/WebKit2/WebProcess.pro
index a876534b7..5eba7ac42 100644
--- a/Source/WebKit2/WebProcess.pro
+++ b/Source/WebKit2/WebProcess.pro
@@ -11,7 +11,7 @@ DESTDIR = $${ROOT_BUILD_DIR}/bin
SOURCES += qt/MainQt.cpp
-QT += network webkit widgets
+QT += network webkitwidgets widgets
macx: QT += xml
contains(QT_CONFIG, opengl) {
diff --git a/Source/WebKit2/WebProcess/Authentication/AuthenticationManager.cpp b/Source/WebKit2/WebProcess/Authentication/AuthenticationManager.cpp
index 44e8306e0..a6858ac28 100644
--- a/Source/WebKit2/WebProcess/Authentication/AuthenticationManager.cpp
+++ b/Source/WebKit2/WebProcess/Authentication/AuthenticationManager.cpp
@@ -55,6 +55,7 @@ AuthenticationManager& AuthenticationManager::shared()
AuthenticationManager::AuthenticationManager()
{
+ WebProcess::shared().connection()->addMessageReceiver(CoreIPC::MessageClassAuthenticationManager, this);
}
void AuthenticationManager::didReceiveMessage(CoreIPC::Connection* connection, CoreIPC::MessageID messageID, CoreIPC::ArgumentDecoder* arguments)
diff --git a/Source/WebKit2/WebProcess/Authentication/AuthenticationManager.h b/Source/WebKit2/WebProcess/Authentication/AuthenticationManager.h
index 192c91aef..93afe446b 100644
--- a/Source/WebKit2/WebProcess/Authentication/AuthenticationManager.h
+++ b/Source/WebKit2/WebProcess/Authentication/AuthenticationManager.h
@@ -26,6 +26,7 @@
#ifndef AuthenticationManager_h
#define AuthenticationManager_h
+#include "MessageReceiver.h"
#include <wtf/HashMap.h>
namespace CoreIPC {
@@ -45,14 +46,12 @@ class Download;
class PlatformCertificateInfo;
class WebFrame;
-class AuthenticationManager {
+class AuthenticationManager : private CoreIPC::MessageReceiver {
WTF_MAKE_NONCOPYABLE(AuthenticationManager);
public:
static AuthenticationManager& shared();
- void didReceiveMessage(CoreIPC::Connection*, CoreIPC::MessageID, CoreIPC::ArgumentDecoder*);
-
void didReceiveAuthenticationChallenge(WebFrame*, const WebCore::AuthenticationChallenge&);
void didReceiveAuthenticationChallenge(Download*, const WebCore::AuthenticationChallenge&);
@@ -63,6 +62,8 @@ public:
private:
AuthenticationManager();
+ // CoreIPC::MessageReceiver
+ virtual void didReceiveMessage(CoreIPC::Connection*, CoreIPC::MessageID, CoreIPC::ArgumentDecoder*) OVERRIDE;
void didReceiveAuthenticationManagerMessage(CoreIPC::Connection*, CoreIPC::MessageID, CoreIPC::ArgumentDecoder*);
bool tryUsePlatformCertificateInfoForChallenge(const WebCore::AuthenticationChallenge&, const PlatformCertificateInfo&);
diff --git a/Source/WebKit2/WebProcess/Downloads/soup/DownloadSoup.cpp b/Source/WebKit2/WebProcess/Downloads/soup/DownloadSoup.cpp
index 38117ebb3..ab4b6eee4 100644
--- a/Source/WebKit2/WebProcess/Downloads/soup/DownloadSoup.cpp
+++ b/Source/WebKit2/WebProcess/Downloads/soup/DownloadSoup.cpp
@@ -49,9 +49,16 @@ class DownloadClient : public ResourceHandleClient {
public:
DownloadClient(Download* download)
: m_download(download)
+ , m_handleResponseLaterID(0)
{
}
+ ~DownloadClient()
+ {
+ if (m_handleResponseLaterID)
+ g_source_remove(m_handleResponseLaterID);
+ }
+
void downloadFailed(const ResourceError& error)
{
m_download->didFail(error, CoreIPC::DataReference());
@@ -96,11 +103,20 @@ public:
return;
}
+ GRefPtr<GFileInfo> info = adoptGRef(g_file_info_new());
+ g_file_info_set_attribute_string(info.get(), "metadata::download-uri", response.url().string().utf8().data());
+ g_file_set_attributes_async(file.get(), info.get(), G_FILE_QUERY_INFO_NONE, G_PRIORITY_DEFAULT, 0, 0, 0);
+
m_download->didCreateDestination(destinationURI);
}
void didReceiveData(ResourceHandle*, const char* data, int length, int /*encodedDataLength*/)
{
+ if (m_handleResponseLaterID) {
+ g_source_remove(m_handleResponseLaterID);
+ handleResponse();
+ }
+
gsize bytesWritten;
GOwnPtr<GError> error;
g_output_stream_write_all(G_OUTPUT_STREAM(m_outputStream.get()), data, length, &bytesWritten, 0, &error.outPtr());
@@ -132,9 +148,35 @@ public:
notImplemented();
}
+ void handleResponse()
+ {
+ m_handleResponseLaterID = 0;
+ didReceiveResponse(0, m_delayedResponse);
+ }
+
+ static gboolean handleResponseLaterCallback(DownloadClient* downloadClient)
+ {
+ downloadClient->handleResponse();
+ return FALSE;
+ }
+
+ void handleResponseLater(const ResourceResponse& response)
+ {
+ ASSERT(!m_response);
+ ASSERT(!m_handleResponseLaterID);
+
+ m_delayedResponse = response;
+
+ // Call didReceiveResponse in an idle to make sure the download is added
+ // to the DownloadManager downloads map.
+ m_handleResponseLaterID = g_idle_add_full(G_PRIORITY_DEFAULT, reinterpret_cast<GSourceFunc>(handleResponseLaterCallback), this, 0);
+ }
+
Download* m_download;
GRefPtr<GFileOutputStream> m_outputStream;
GRefPtr<SoupMessage> m_response;
+ ResourceResponse m_delayedResponse;
+ unsigned m_handleResponseLaterID;
};
void Download::start(WebPage*)
@@ -146,7 +188,7 @@ void Download::start(WebPage*)
didStart();
}
-void Download::startWithHandle(WebPage*, ResourceHandle* resourceHandle, const ResourceResponse&)
+void Download::startWithHandle(WebPage*, ResourceHandle* resourceHandle, const ResourceResponse& response)
{
ASSERT(!m_downloadClient);
ASSERT(!m_resourceHandle);
@@ -154,10 +196,7 @@ void Download::startWithHandle(WebPage*, ResourceHandle* resourceHandle, const R
resourceHandle->setClient(m_downloadClient.get());
m_resourceHandle = resourceHandle;
didStart();
- // If the handle already got a response, make sure the download client is notified.
- ResourceHandleInternal* handleInternal = m_resourceHandle->getInternal();
- if (!handleInternal->m_response.isNull())
- m_downloadClient->didReceiveResponse(m_resourceHandle.get(), handleInternal->m_response);
+ static_cast<DownloadClient*>(m_downloadClient.get())->handleResponseLater(response);
}
void Download::cancel()
diff --git a/Source/WebKit2/WebProcess/FullScreen/WebFullScreenManager.cpp b/Source/WebKit2/WebProcess/FullScreen/WebFullScreenManager.cpp
index c5fc81a9e..1c7a78db0 100644
--- a/Source/WebKit2/WebProcess/FullScreen/WebFullScreenManager.cpp
+++ b/Source/WebKit2/WebProcess/FullScreen/WebFullScreenManager.cpp
@@ -52,7 +52,7 @@ static IntRect screenRectOfContents(Element* element)
#if USE(ACCELERATED_COMPOSITING)
if (element->renderer() && element->renderer()->hasLayer() && element->renderer()->enclosingLayer()->isComposited()) {
FloatQuad contentsBox = static_cast<FloatRect>(element->renderer()->enclosingLayer()->backing()->contentsBox());
- contentsBox = element->renderer()->localToAbsoluteQuad(contentsBox);
+ contentsBox = element->renderer()->localToAbsoluteQuad(contentsBox, SnapOffsetForTransforms);
return element->renderer()->view()->frameView()->contentsToScreen(contentsBox.enclosingBoundingBox());
}
#endif
diff --git a/Source/WebKit2/WebProcess/Geolocation/GeolocationPermissionRequestManager.cpp b/Source/WebKit2/WebProcess/Geolocation/GeolocationPermissionRequestManager.cpp
index 7013fcdc6..0d110c53a 100644
--- a/Source/WebKit2/WebProcess/Geolocation/GeolocationPermissionRequestManager.cpp
+++ b/Source/WebKit2/WebProcess/Geolocation/GeolocationPermissionRequestManager.cpp
@@ -73,7 +73,7 @@ void GeolocationPermissionRequestManager::cancelRequestForGeolocation(Geolocatio
if (it == m_geolocationToIDMap.end())
return;
- uint64_t geolocationID = it->second;
+ uint64_t geolocationID = it->value;
m_geolocationToIDMap.remove(it);
m_idToGeolocationMap.remove(geolocationID);
}
@@ -84,7 +84,7 @@ void GeolocationPermissionRequestManager::didReceiveGeolocationPermissionDecisio
if (it == m_idToGeolocationMap.end())
return;
- Geolocation* geolocation = it->second;
+ Geolocation* geolocation = it->value;
geolocation->setIsAllowed(allowed);
m_idToGeolocationMap.remove(it);
diff --git a/Source/WebKit2/WebProcess/Geolocation/WebGeolocationManager.cpp b/Source/WebKit2/WebProcess/Geolocation/WebGeolocationManager.cpp
index f07c4060d..2aec5a727 100644
--- a/Source/WebKit2/WebProcess/Geolocation/WebGeolocationManager.cpp
+++ b/Source/WebKit2/WebProcess/Geolocation/WebGeolocationManager.cpp
@@ -41,6 +41,7 @@ namespace WebKit {
WebGeolocationManager::WebGeolocationManager(WebProcess* process)
: m_process(process)
+ , m_didAddMessageReceiver(false)
{
}
@@ -55,6 +56,11 @@ void WebGeolocationManager::didReceiveMessage(CoreIPC::Connection* connection, C
void WebGeolocationManager::registerWebPage(WebPage* page)
{
+ if (!m_didAddMessageReceiver) {
+ m_process->connection()->addMessageReceiver(CoreIPC::MessageClassWebGeolocationManager, this);
+ m_didAddMessageReceiver = true;
+ }
+
bool wasEmpty = m_pageSet.isEmpty();
m_pageSet.add(page);
@@ -74,7 +80,7 @@ void WebGeolocationManager::unregisterWebPage(WebPage* page)
void WebGeolocationManager::didChangePosition(const WebGeolocationPosition::Data& data)
{
#if ENABLE(GEOLOCATION)
- RefPtr<GeolocationPosition> position = GeolocationPosition::create(data.timestamp, data.latitude, data.longitude, data.accuracy);
+ RefPtr<GeolocationPosition> position = GeolocationPosition::create(data.timestamp, data.latitude, data.longitude, data.accuracy, data.canProvideAltitude, data.altitude, data.canProvideAltitudeAccuracy, data.altitudeAccuracy, data.canProvideHeading, data.heading, data.canProvideSpeed, data.speed);
Vector<RefPtr<WebPage> > webPageCopy;
copyToVector(m_pageSet, webPageCopy);
diff --git a/Source/WebKit2/WebProcess/Geolocation/WebGeolocationManager.h b/Source/WebKit2/WebProcess/Geolocation/WebGeolocationManager.h
index 5c3dfae93..8a1405d14 100644
--- a/Source/WebKit2/WebProcess/Geolocation/WebGeolocationManager.h
+++ b/Source/WebKit2/WebProcess/Geolocation/WebGeolocationManager.h
@@ -26,31 +26,23 @@
#ifndef WebGeolocationManager_h
#define WebGeolocationManager_h
-#include "MessageID.h"
+#include "MessageReceiver.h"
#include "WebGeolocationPosition.h"
-#include <wtf/HashSet.h>
+#include <wtf/Forward.h>
#include <wtf/HashMap.h>
+#include <wtf/HashSet.h>
#include <wtf/Noncopyable.h>
-namespace CoreIPC {
-class ArgumentDecoder;
-class Connection;
-}
-
namespace WebCore {
class Geolocation;
}
-namespace WTF {
-class String;
-}
-
namespace WebKit {
class WebProcess;
class WebPage;
-class WebGeolocationManager {
+class WebGeolocationManager : private CoreIPC::MessageReceiver {
WTF_MAKE_NONCOPYABLE(WebGeolocationManager);
public:
explicit WebGeolocationManager(WebProcess*);
@@ -61,16 +53,18 @@ public:
void requestPermission(WebCore::Geolocation*);
- void didReceiveMessage(CoreIPC::Connection*, CoreIPC::MessageID, CoreIPC::ArgumentDecoder*);
-
private:
+ // CoreIPC::MessageReceiver
+ virtual void didReceiveMessage(CoreIPC::Connection*, CoreIPC::MessageID, CoreIPC::ArgumentDecoder*) OVERRIDE;
+
// Implemented in generated WebGeolocationManagerMessageReceiver.cpp
void didReceiveWebGeolocationManagerMessage(CoreIPC::Connection*, CoreIPC::MessageID, CoreIPC::ArgumentDecoder*);
void didChangePosition(const WebGeolocationPosition::Data&);
- void didFailToDeterminePosition(const WTF::String& errorMessage);
+ void didFailToDeterminePosition(const String& errorMessage);
WebProcess* m_process;
+ bool m_didAddMessageReceiver;
HashSet<WebPage*> m_pageSet;
};
diff --git a/Source/WebKit2/WebProcess/InjectedBundle/API/c/WKBundle.cpp b/Source/WebKit2/WebProcess/InjectedBundle/API/c/WKBundle.cpp
index 2085253ba..7210a9d9e 100644
--- a/Source/WebKit2/WebProcess/InjectedBundle/API/c/WKBundle.cpp
+++ b/Source/WebKit2/WebProcess/InjectedBundle/API/c/WKBundle.cpp
@@ -46,13 +46,13 @@ void WKBundleSetClient(WKBundleRef bundleRef, WKBundleClient * wkClient)
void WKBundlePostMessage(WKBundleRef bundleRef, WKStringRef messageNameRef, WKTypeRef messageBodyRef)
{
- toImpl(bundleRef)->postMessage(toImpl(messageNameRef)->string(), toImpl(messageBodyRef));
+ toImpl(bundleRef)->postMessage(toWTFString(messageNameRef), toImpl(messageBodyRef));
}
void WKBundlePostSynchronousMessage(WKBundleRef bundleRef, WKStringRef messageNameRef, WKTypeRef messageBodyRef, WKTypeRef* returnDataRef)
{
RefPtr<APIObject> returnData;
- toImpl(bundleRef)->postSynchronousMessage(toImpl(messageNameRef)->string(), toImpl(messageBodyRef), returnData);
+ toImpl(bundleRef)->postSynchronousMessage(toWTFString(messageNameRef), toImpl(messageBodyRef), returnData);
if (returnDataRef)
*returnDataRef = toAPI(returnData.release().leakRef());
}
@@ -134,7 +134,7 @@ void WKBundleRemoveAllUserContent(WKBundleRef bundleRef, WKBundlePageGroupRef pa
void WKBundleOverrideBoolPreferenceForTestRunner(WKBundleRef bundleRef, WKBundlePageGroupRef pageGroupRef, WKStringRef preference, bool enabled)
{
- toImpl(bundleRef)->overrideBoolPreferenceForTestRunner(toImpl(pageGroupRef), toImpl(preference)->string(), enabled);
+ toImpl(bundleRef)->overrideBoolPreferenceForTestRunner(toImpl(pageGroupRef), toWTFString(preference), enabled);
}
void WKBundleSetAllowUniversalAccessFromFileURLs(WKBundleRef bundleRef, WKBundlePageGroupRef pageGroupRef, bool enabled)
@@ -194,12 +194,12 @@ void WKBundleSetSpatialNavigationEnabled(WKBundleRef bundleRef, WKBundlePageGrou
void WKBundleAddOriginAccessWhitelistEntry(WKBundleRef bundleRef, WKStringRef sourceOrigin, WKStringRef destinationProtocol, WKStringRef destinationHost, bool allowDestinationSubdomains)
{
- toImpl(bundleRef)->addOriginAccessWhitelistEntry(toImpl(sourceOrigin)->string(), toImpl(destinationProtocol)->string(), toImpl(destinationHost)->string(), allowDestinationSubdomains);
+ toImpl(bundleRef)->addOriginAccessWhitelistEntry(toWTFString(sourceOrigin), toWTFString(destinationProtocol), toWTFString(destinationHost), allowDestinationSubdomains);
}
void WKBundleRemoveOriginAccessWhitelistEntry(WKBundleRef bundleRef, WKStringRef sourceOrigin, WKStringRef destinationProtocol, WKStringRef destinationHost, bool allowDestinationSubdomains)
{
- toImpl(bundleRef)->removeOriginAccessWhitelistEntry(toImpl(sourceOrigin)->string(), toImpl(destinationProtocol)->string(), toImpl(destinationHost)->string(), allowDestinationSubdomains);
+ toImpl(bundleRef)->removeOriginAccessWhitelistEntry(toWTFString(sourceOrigin), toWTFString(destinationProtocol), toWTFString(destinationHost), allowDestinationSubdomains);
}
void WKBundleResetOriginAccessWhitelists(WKBundleRef bundleRef)
@@ -229,7 +229,7 @@ void WKBundleClearApplicationCache(WKBundleRef bundleRef)
void WKBundleClearApplicationCacheForOrigin(WKBundleRef bundleRef, WKStringRef origin)
{
- toImpl(bundleRef)->clearApplicationCacheForOrigin(toImpl(origin)->string());
+ toImpl(bundleRef)->clearApplicationCacheForOrigin(toWTFString(origin));
}
void WKBundleSetAppCacheMaximumSize(WKBundleRef bundleRef, uint64_t size)
@@ -239,17 +239,17 @@ void WKBundleSetAppCacheMaximumSize(WKBundleRef bundleRef, uint64_t size)
uint64_t WKBundleGetAppCacheUsageForOrigin(WKBundleRef bundleRef, WKStringRef origin)
{
- return toImpl(bundleRef)->appCacheUsageForOrigin(toImpl(origin)->string());
+ return toImpl(bundleRef)->appCacheUsageForOrigin(toWTFString(origin));
}
void WKBundleSetApplicationCacheOriginQuota(WKBundleRef bundleRef, WKStringRef origin, uint64_t bytes)
{
- toImpl(bundleRef)->setApplicationCacheOriginQuota(toImpl(origin)->string(), bytes);
+ toImpl(bundleRef)->setApplicationCacheOriginQuota(toWTFString(origin), bytes);
}
void WKBundleResetApplicationCacheOriginQuota(WKBundleRef bundleRef, WKStringRef origin)
{
- toImpl(bundleRef)->resetApplicationCacheOriginQuota(toImpl(origin)->string());
+ toImpl(bundleRef)->resetApplicationCacheOriginQuota(toWTFString(origin));
}
WKArrayRef WKBundleCopyOriginsWithApplicationCache(WKBundleRef bundleRef)
@@ -270,7 +270,7 @@ int WKBundleNumberOfPages(WKBundleRef bundleRef, WKBundleFrameRef frameRef, doub
int WKBundlePageNumberForElementById(WKBundleRef bundleRef, WKBundleFrameRef frameRef, WKStringRef idRef, double pageWidthInPixels, double pageHeightInPixels)
{
- return toImpl(bundleRef)->pageNumberForElementById(toImpl(frameRef), toImpl(idRef)->string(), pageWidthInPixels, pageHeightInPixels);
+ return toImpl(bundleRef)->pageNumberForElementById(toImpl(frameRef), toWTFString(idRef), pageWidthInPixels, pageHeightInPixels);
}
WKStringRef WKBundlePageSizeAndMarginsInPixels(WKBundleRef bundleRef, WKBundleFrameRef frameRef, int pageIndex, int width, int height, int marginTop, int marginRight, int marginBottom, int marginLeft)
@@ -301,12 +301,12 @@ size_t WKBundleGetWorkerThreadCount(WKBundleRef)
void WKBundleSetUserStyleSheetLocation(WKBundleRef bundleRef, WKBundlePageGroupRef pageGroupRef, WKStringRef location)
{
- toImpl(bundleRef)->setUserStyleSheetLocation(toImpl(pageGroupRef), toImpl(location)->string());
+ toImpl(bundleRef)->setUserStyleSheetLocation(toImpl(pageGroupRef), toWTFString(location));
}
void WKBundleSetWebNotificationPermission(WKBundleRef bundleRef, WKBundlePageRef pageRef, WKStringRef originStringRef, bool allowed)
{
- toImpl(bundleRef)->setWebNotificationPermission(toImpl(pageRef), toImpl(originStringRef)->string(), allowed);
+ toImpl(bundleRef)->setWebNotificationPermission(toImpl(pageRef), toWTFString(originStringRef), allowed);
}
void WKBundleRemoveAllWebNotificationPermissions(WKBundleRef bundleRef, WKBundlePageRef pageRef)
@@ -323,3 +323,13 @@ void WKBundleSetTabKeyCyclesThroughElements(WKBundleRef bundleRef, WKBundlePageR
{
toImpl(bundleRef)->setTabKeyCyclesThroughElements(toImpl(pageRef), enabled);
}
+
+void WKBundleSetSerialLoadingEnabled(WKBundleRef bundleRef, bool enabled)
+{
+ toImpl(bundleRef)->setSerialLoadingEnabled(enabled);
+}
+
+void WKBundleDispatchPendingLoadRequests(WKBundleRef bundleRef)
+{
+ toImpl(bundleRef)->dispatchPendingLoadRequests();
+}
diff --git a/Source/WebKit2/WebProcess/InjectedBundle/API/c/WKBundleAPICast.h b/Source/WebKit2/WebProcess/InjectedBundle/API/c/WKBundleAPICast.h
index 018ef7970..59c3570bd 100644
--- a/Source/WebKit2/WebProcess/InjectedBundle/API/c/WKBundleAPICast.h
+++ b/Source/WebKit2/WebProcess/InjectedBundle/API/c/WKBundleAPICast.h
@@ -32,8 +32,6 @@
#include "WKBundlePrivate.h"
#include <WebCore/EditorInsertAction.h>
#include <WebCore/TextAffinity.h>
-#include <WebCore/UserContentTypes.h>
-#include <WebCore/UserScriptTypes.h>
namespace WebCore {
class CSSStyleDeclaration;
@@ -107,32 +105,6 @@ inline WKAffinityType toAPI(WebCore::EAffinity affinity)
return kWKAffinityUpstream;
}
-inline WebCore::UserScriptInjectionTime toUserScriptInjectionTime(WKUserScriptInjectionTime wkInjectedTime)
-{
- switch (wkInjectedTime) {
- case kWKInjectAtDocumentStart:
- return WebCore::InjectAtDocumentStart;
- case kWKInjectAtDocumentEnd:
- return WebCore::InjectAtDocumentEnd;
- }
-
- ASSERT_NOT_REACHED();
- return WebCore::InjectAtDocumentStart;
-}
-
-inline WebCore::UserContentInjectedFrames toUserContentInjectedFrames(WKUserContentInjectedFrames wkInjectedFrames)
-{
- switch (wkInjectedFrames) {
- case kWKInjectInAllFrames:
- return WebCore::InjectInAllFrames;
- case kWKInjectInTopFrameOnly:
- return WebCore::InjectInTopFrameOnly;
- }
-
- ASSERT_NOT_REACHED();
- return WebCore::InjectInAllFrames;
-}
-
} // namespace WebKit
#endif // WKBundleAPICast_h
diff --git a/Source/WebKit2/WebProcess/InjectedBundle/API/c/WKBundleFrame.cpp b/Source/WebKit2/WebProcess/InjectedBundle/API/c/WKBundleFrame.cpp
index 9a2b9fc00..fe6d79ed8 100644
--- a/Source/WebKit2/WebProcess/InjectedBundle/API/c/WKBundleFrame.cpp
+++ b/Source/WebKit2/WebProcess/InjectedBundle/API/c/WKBundleFrame.cpp
@@ -97,12 +97,12 @@ unsigned WKBundleFrameGetNumberOfActiveAnimations(WKBundleFrameRef frameRef)
bool WKBundleFramePauseAnimationOnElementWithId(WKBundleFrameRef frameRef, WKStringRef animationName, WKStringRef elementID, double time)
{
- return toImpl(frameRef)->pauseAnimationOnElementWithId(toImpl(animationName)->string(), toImpl(elementID)->string(), time);
+ return toImpl(frameRef)->pauseAnimationOnElementWithId(toWTFString(animationName), toWTFString(elementID), time);
}
bool WKBundleFramePauseTransitionOnElementWithId(WKBundleFrameRef frameRef, WKStringRef propertyName, WKStringRef elementID, double time)
{
- return toImpl(frameRef)->pauseTransitionOnElementWithId(toImpl(propertyName)->string(), toImpl(elementID)->string(), time);
+ return toImpl(frameRef)->pauseTransitionOnElementWithId(toWTFString(propertyName), toWTFString(elementID), time);
}
void WKBundleFrameSuspendAnimations(WKBundleFrameRef frameRef)
@@ -194,7 +194,7 @@ WKStringRef WKBundleFrameCopyLayerTreeAsText(WKBundleFrameRef frameRef)
bool WKBundleFrameAllowsFollowingLink(WKBundleFrameRef frameRef, WKURLRef urlRef)
{
- return toImpl(frameRef)->allowsFollowingLink(WebCore::KURL(WebCore::KURL(), toImpl(urlRef)->string()));
+ return toImpl(frameRef)->allowsFollowingLink(WebCore::KURL(WebCore::KURL(), toWTFString(urlRef)));
}
WKRect WKBundleFrameGetContentBounds(WKBundleFrameRef frameRef)
@@ -234,12 +234,12 @@ bool WKBundleFrameGetDocumentBackgroundColor(WKBundleFrameRef frameRef, double*
WKStringRef WKBundleFrameCopySuggestedFilenameForResourceWithURL(WKBundleFrameRef frameRef, WKURLRef urlRef)
{
- return toCopiedAPI(toImpl(frameRef)->suggestedFilenameForResourceWithURL(WebCore::KURL(WebCore::KURL(), toImpl(urlRef)->string())));
+ return toCopiedAPI(toImpl(frameRef)->suggestedFilenameForResourceWithURL(WebCore::KURL(WebCore::KURL(), toWTFString(urlRef))));
}
WKStringRef WKBundleFrameCopyMIMETypeForResourceWithURL(WKBundleFrameRef frameRef, WKURLRef urlRef)
{
- return toCopiedAPI(toImpl(frameRef)->mimeTypeForResourceWithURL(WebCore::KURL(WebCore::KURL(), toImpl(urlRef)->string())));
+ return toCopiedAPI(toImpl(frameRef)->mimeTypeForResourceWithURL(WebCore::KURL(WebCore::KURL(), toWTFString(urlRef))));
}
bool WKBundleFrameContainsAnyFormElements(WKBundleFrameRef frameRef)
@@ -249,7 +249,7 @@ bool WKBundleFrameContainsAnyFormElements(WKBundleFrameRef frameRef)
void WKBundleFrameSetTextDirection(WKBundleFrameRef frameRef, WKStringRef directionRef)
{
- toImpl(frameRef)->setTextDirection(toImpl(directionRef)->string());
+ toImpl(frameRef)->setTextDirection(toWTFString(directionRef));
}
WKDataRef WKBundleFrameCopyWebArchive(WKBundleFrameRef frameRef)
diff --git a/Source/WebKit2/WebProcess/InjectedBundle/API/c/WKBundleInspector.cpp b/Source/WebKit2/WebProcess/InjectedBundle/API/c/WKBundleInspector.cpp
index ae69a5394..cc22499a0 100644
--- a/Source/WebKit2/WebProcess/InjectedBundle/API/c/WKBundleInspector.cpp
+++ b/Source/WebKit2/WebProcess/InjectedBundle/API/c/WKBundleInspector.cpp
@@ -52,7 +52,7 @@ void WKBundleInspectorClose(WKBundleInspectorRef inspectorRef)
void WKBundleInspectorEvaluateScriptForTest(WKBundleInspectorRef inspectorRef, long callID, WKStringRef script)
{
- return toImpl(inspectorRef)->evaluateScriptForTest(callID, toImpl(script)->string());
+ return toImpl(inspectorRef)->evaluateScriptForTest(callID, toWTFString(script));
}
void WKBundleInspectorSetPageProfilingEnabled(WKBundleInspectorRef inspectorRef, bool enabled)
diff --git a/Source/WebKit2/WebProcess/InjectedBundle/API/c/WKBundleIntent.cpp b/Source/WebKit2/WebProcess/InjectedBundle/API/c/WKBundleIntent.cpp
index dc13c57fc..66bee90b0 100644
--- a/Source/WebKit2/WebProcess/InjectedBundle/API/c/WKBundleIntent.cpp
+++ b/Source/WebKit2/WebProcess/InjectedBundle/API/c/WKBundleIntent.cpp
@@ -64,7 +64,7 @@ WKBundleIntentRef WKBundleIntentCreate(WKDictionaryRef dictionaryRef)
MessagePortArray dummyPorts;
ExceptionCode ec;
- RefPtr<Intent> coreIntent = Intent::create(toImpl(action)->string(), toImpl(type)->string(), data ? static_cast<SerializedScriptValue*>(toImpl(data)->internalRepresentation()) : 0, dummyPorts, ec);
+ RefPtr<Intent> coreIntent = Intent::create(toWTFString(action), toWTFString(type), data ? static_cast<SerializedScriptValue*>(toImpl(data)->internalRepresentation()) : 0, dummyPorts, ec);
return toAPI(InjectedBundleIntent::create(coreIntent.get()).leakRef());
#else
diff --git a/Source/WebKit2/WebProcess/InjectedBundle/API/c/WKBundlePage.cpp b/Source/WebKit2/WebProcess/InjectedBundle/API/c/WKBundlePage.cpp
index 15088e7d6..53ddf6107 100644
--- a/Source/WebKit2/WebProcess/InjectedBundle/API/c/WKBundlePage.cpp
+++ b/Source/WebKit2/WebProcess/InjectedBundle/API/c/WKBundlePage.cpp
@@ -212,12 +212,12 @@ WKStringRef WKBundlePageCopyRenderTreeExternalRepresentation(WKBundlePageRef pag
void WKBundlePageExecuteEditingCommand(WKBundlePageRef pageRef, WKStringRef name, WKStringRef argument)
{
- toImpl(pageRef)->executeEditingCommand(toImpl(name)->string(), toImpl(argument)->string());
+ toImpl(pageRef)->executeEditingCommand(toWTFString(name), toWTFString(argument));
}
bool WKBundlePageIsEditingCommandEnabled(WKBundlePageRef pageRef, WKStringRef name)
{
- return toImpl(pageRef)->isEditingCommandEnabled(toImpl(name)->string());
+ return toImpl(pageRef)->isEditingCommandEnabled(toWTFString(name));
}
void WKBundlePageClearMainFrameName(WKBundlePageRef pageRef)
@@ -277,7 +277,7 @@ void WKBundlePageUninstallPageOverlay(WKBundlePageRef pageRef, WKBundlePageOverl
bool WKBundlePageHasLocalDataForURL(WKBundlePageRef pageRef, WKURLRef urlRef)
{
- return toImpl(pageRef)->hasLocalDataForURL(WebCore::KURL(WebCore::KURL(), toImpl(urlRef)->string()));
+ return toImpl(pageRef)->hasLocalDataForURL(WebCore::KURL(WebCore::KURL(), toWTFString(urlRef)));
}
bool WKBundlePageCanHandleRequest(WKURLRequestRef requestRef)
@@ -287,7 +287,7 @@ bool WKBundlePageCanHandleRequest(WKURLRequestRef requestRef)
bool WKBundlePageFindString(WKBundlePageRef pageRef, WKStringRef target, WKFindOptions findOptions)
{
- return toImpl(pageRef)->findStringFromInjectedBundle(toImpl(target)->string(), toFindOptions(findOptions));
+ return toImpl(pageRef)->findStringFromInjectedBundle(toWTFString(target), toFindOptions(findOptions));
}
WKImageRef WKBundlePageCreateSnapshotWithOptions(WKBundlePageRef pageRef, WKRect rect, WKSnapshotOptions options)
@@ -403,7 +403,7 @@ WKArrayRef WKBundlePageCopyTrackedRepaintRects(WKBundlePageRef pageRef)
void WKBundlePageSetComposition(WKBundlePageRef pageRef, WKStringRef text, int from, int length)
{
- toImpl(pageRef)->setCompositionForTesting(toImpl(text)->string(), from, length);
+ toImpl(pageRef)->setCompositionForTesting(toWTFString(text), from, length);
}
bool WKBundlePageHasComposition(WKBundlePageRef pageRef)
@@ -418,26 +418,12 @@ void WKBundlePageConfirmComposition(WKBundlePageRef pageRef)
void WKBundlePageConfirmCompositionWithText(WKBundlePageRef pageRef, WKStringRef text)
{
- toImpl(pageRef)->confirmCompositionForTesting(toImpl(text)->string());
+ toImpl(pageRef)->confirmCompositionForTesting(toWTFString(text));
}
bool WKBundlePageCanShowMIMEType(WKBundlePageRef, WKStringRef mimeTypeRef)
{
- using WebCore::MIMETypeRegistry;
+ const String mimeType = toWTFString(mimeTypeRef);
- const WTF::String mimeType = toImpl(mimeTypeRef)->string();
-
- if (MIMETypeRegistry::isSupportedNonImageMIMEType(mimeType))
- return true;
-
- if (MIMETypeRegistry::isSupportedImageMIMEType(mimeType))
- return true;
-
- if (MIMETypeRegistry::isSupportedMediaMIMEType(mimeType))
- return true;
-
- if (mimeType.startsWith("text/", false))
- return !MIMETypeRegistry::isUnsupportedTextMIMEType(mimeType);
-
- return false;
+ return WebCore::MIMETypeRegistry::canShowMIMEType(mimeType);
}
diff --git a/Source/WebKit2/WebProcess/InjectedBundle/API/c/WKBundlePage.h b/Source/WebKit2/WebProcess/InjectedBundle/API/c/WKBundlePage.h
index dce7cf862..c2b37894a 100644
--- a/Source/WebKit2/WebProcess/InjectedBundle/API/c/WKBundlePage.h
+++ b/Source/WebKit2/WebProcess/InjectedBundle/API/c/WKBundlePage.h
@@ -154,11 +154,13 @@ struct WKBundlePageLoaderClient {
// Version 3
WKBundlePageDidReceiveIntentForFrameCallback didReceiveIntentForFrame;
WKBundlePageRegisterIntentServiceForFrameCallback registerIntentServiceForFrame;
+
+ // Version 4
WKBundlePageDidLayoutCallback didLayout;
};
typedef struct WKBundlePageLoaderClient WKBundlePageLoaderClient;
-enum { kWKBundlePageLoaderClientCurrentVersion = 3 };
+enum { kWKBundlePageLoaderClientCurrentVersion = 4 };
enum {
WKBundlePagePolicyActionPassThrough,
diff --git a/Source/WebKit2/WebProcess/InjectedBundle/API/c/WKBundlePrivate.h b/Source/WebKit2/WebProcess/InjectedBundle/API/c/WKBundlePrivate.h
index f032c6222..369c4302f 100644
--- a/Source/WebKit2/WebProcess/InjectedBundle/API/c/WKBundlePrivate.h
+++ b/Source/WebKit2/WebProcess/InjectedBundle/API/c/WKBundlePrivate.h
@@ -36,18 +36,6 @@
extern "C" {
#endif
-enum WKUserScriptInjectionTime {
- kWKInjectAtDocumentStart,
- kWKInjectAtDocumentEnd
-};
-typedef enum WKUserScriptInjectionTime WKUserScriptInjectionTime;
-
-enum WKUserContentInjectedFrames {
- kWKInjectInAllFrames,
- kWKInjectInTopFrameOnly
-};
-typedef enum WKUserContentInjectedFrames WKUserContentInjectedFrames;
-
// TestRunner only SPI
WK_EXPORT void WKBundleSetShouldTrackVisitedLinks(WKBundleRef bundle, bool shouldTrackVisitedLinks);
WK_EXPORT void WKBundleSetAlwaysAcceptCookies(WKBundleRef bundle, bool);
@@ -113,6 +101,8 @@ WK_EXPORT void WKBundleSetPageVisibilityState(WKBundleRef bundle, WKBundlePageRe
WK_EXPORT size_t WKBundleGetWorkerThreadCount(WKBundleRef bundle);
WK_EXPORT void WKBundleSetTabKeyCyclesThroughElements(WKBundleRef bundle, WKBundlePageRef page, bool enabled);
+WK_EXPORT void WKBundleSetSerialLoadingEnabled(WKBundleRef bundle, bool enabled);
+WK_EXPORT void WKBundleDispatchPendingLoadRequests(WKBundleRef bundle);
#ifdef __cplusplus
}
diff --git a/Source/WebKit2/WebProcess/InjectedBundle/API/mac/WKDOMDocument.h b/Source/WebKit2/WebProcess/InjectedBundle/API/mac/WKDOMDocument.h
new file mode 100644
index 000000000..4495055cb
--- /dev/null
+++ b/Source/WebKit2/WebProcess/InjectedBundle/API/mac/WKDOMDocument.h
@@ -0,0 +1,44 @@
+/*
+ * Copyright (C) 2012 Apple Inc. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#if defined(__LP64__) && defined(__clang__)
+
+#import <WebKit2/WKDOMNode.h>
+
+@class WKDOMElement;
+@class WKDOMText;
+
+WK_EXPORT
+@interface WKDOMDocument : WKDOMNode
+
+- (WKDOMElement *)createElement:(NSString *)tagName;
+- (WKDOMText *)createTextNode:(NSString *)data;
+
+@property(readonly) WKDOMElement *body;
+
+@end
+
+#endif // defined(__LP64__) && defined(__clang__)
+
diff --git a/Source/WebKit2/WebProcess/InjectedBundle/API/mac/WKDOMDocument.mm b/Source/WebKit2/WebProcess/InjectedBundle/API/mac/WKDOMDocument.mm
new file mode 100644
index 000000000..99f515021
--- /dev/null
+++ b/Source/WebKit2/WebProcess/InjectedBundle/API/mac/WKDOMDocument.mm
@@ -0,0 +1,64 @@
+/*
+ * Copyright (C) 2012 Apple Inc. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#import "config.h"
+
+#if defined(__LP64__) && defined(__clang__)
+
+#import "WKDOMDocument.h"
+
+#import "WKDOMInternals.h"
+#import <WebCore/Document.h>
+#import <WebCore/HTMLElement.h>
+#import <WebCore/Text.h>
+
+static inline WebCore::Document* toDocument(WebCore::Node* node)
+{
+ ASSERT(!node || node->isDocumentNode());
+ return static_cast<WebCore::Document*>(node);
+}
+
+@implementation WKDOMDocument
+
+- (WKDOMElement *)createElement:(NSString *)tagName
+{
+ // FIXME: Do something about the exception.
+ WebCore::ExceptionCode ec = 0;
+ return WebKit::toWKDOMElement(toDocument(_impl.get())->createElement(tagName, ec).get());
+}
+
+- (WKDOMText *)createTextNode:(NSString *)data
+{
+ return WebKit::toWKDOMText(toDocument(_impl.get())->createTextNode(data).get());
+}
+
+- (WKDOMElement *)body
+{
+ return WebKit::toWKDOMElement(toDocument(_impl.get())->body());
+}
+
+@end
+
+#endif // defined(__LP64__) && defined(__clang__)
diff --git a/Source/WebKit2/WebProcess/InjectedBundle/API/mac/WKDOMElement.h b/Source/WebKit2/WebProcess/InjectedBundle/API/mac/WKDOMElement.h
new file mode 100644
index 000000000..aa03cd4d9
--- /dev/null
+++ b/Source/WebKit2/WebProcess/InjectedBundle/API/mac/WKDOMElement.h
@@ -0,0 +1,41 @@
+/*
+ * Copyright (C) 2012 Apple Inc. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#if defined(__LP64__) && defined(__clang__)
+
+#import <WebKit2/WKDOMNode.h>
+
+WK_EXPORT
+@interface WKDOMElement : WKDOMNode
+
+- (BOOL)hasAttribute:(NSString *)attribute;
+- (NSString *)getAttribute:(NSString *)attribute;
+- (void)setAttribute:(NSString *)name value:(NSString *)value;
+
+@property(readonly) NSString *tagName;
+
+@end
+
+#endif // defined(__LP64__) && defined(__clang__)
diff --git a/Source/WebKit2/WebProcess/InjectedBundle/API/mac/WKDOMElement.mm b/Source/WebKit2/WebProcess/InjectedBundle/API/mac/WKDOMElement.mm
new file mode 100644
index 000000000..72cf5ab40
--- /dev/null
+++ b/Source/WebKit2/WebProcess/InjectedBundle/API/mac/WKDOMElement.mm
@@ -0,0 +1,61 @@
+/*
+ * Copyright (C) 2012 Apple Inc. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#import "config.h"
+
+#if defined(__LP64__) && defined(__clang__)
+
+#import "WKDOMElement.h"
+
+#import "WKDOMInternals.h"
+#import <WebCore/Element.h>
+
+@implementation WKDOMElement
+
+- (BOOL)hasAttribute:(NSString *)attribute
+{
+ return WebCore::toElement(_impl.get())->hasAttribute(attribute);
+}
+
+- (NSString *)getAttribute:(NSString *)attribute
+{
+ return WebCore::toElement(_impl.get())->getAttribute(attribute);
+}
+
+- (void)setAttribute:(NSString *)name value:(NSString *)value
+{
+ // FIXME: Do something about the exception.
+ WebCore::ExceptionCode ec;
+ WebCore::toElement(_impl.get())->setAttribute(name, value, ec);
+}
+
+- (NSString *)tagName
+{
+ return WebCore::toElement(_impl.get())->tagName();
+}
+
+@end
+
+#endif // defined(__LP64__) && defined(__clang__)
diff --git a/Source/WebKit2/WebProcess/InjectedBundle/API/mac/WKDOMInternals.h b/Source/WebKit2/WebProcess/InjectedBundle/API/mac/WKDOMInternals.h
new file mode 100644
index 000000000..f33e454cd
--- /dev/null
+++ b/Source/WebKit2/WebProcess/InjectedBundle/API/mac/WKDOMInternals.h
@@ -0,0 +1,116 @@
+/*
+ * Copyright (C) 2012 Apple Inc. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#if defined(__LP64__) && defined(__clang__)
+
+#import "WKDOMNode.h"
+#import "WKDOMRange.h"
+#import <WebCore/Node.h>
+#import <WebCore/Range.h>
+#import <wtf/HashMap.h>
+
+namespace WebCore {
+class Element;
+class Document;
+}
+
+@class WKDOMElement;
+@class WKDOMDocument;
+@class WKDOMText;
+
+@interface WKDOMNode () {
+@public
+ RefPtr<WebCore::Node> _impl;
+}
+
+- (id)_initWithImpl:(WebCore::Node*)impl;
+@end
+
+@interface WKDOMRange () {
+@public
+ RefPtr<WebCore::Range> _impl;
+}
+
+- (id)_initWithImpl:(WebCore::Range*)impl;
+@end
+
+namespace WebKit {
+
+template<typename WebCoreType, typename WKDOMType>
+class DOMCache {
+public:
+ DOMCache()
+ {
+ }
+
+ void add(WebCoreType core, WKDOMType kit)
+ {
+ m_map.add(core, kit);
+ }
+
+ WKDOMType get(WebCoreType core)
+ {
+ return m_map.get(core);
+ }
+
+ void remove(WebCoreType core)
+ {
+ m_map.remove(core);
+ }
+
+private:
+ // This class should only ever be used as a singleton.
+ ~DOMCache() = delete;
+
+ HashMap<WebCoreType, WKDOMType> m_map;
+};
+
+// -- Caches --
+
+DOMCache<WebCore::Node*, WKDOMNode *>& WKDOMNodeCache();
+DOMCache<WebCore::Range*, WKDOMRange *>& WKDOMRangeCache();
+
+// -- Node and classes derived from Node. --
+
+WebCore::Node* toWebCoreNode(WKDOMNode *);
+WKDOMNode *toWKDOMNode(WebCore::Node*);
+
+WebCore::Element* toWebCoreElement(WKDOMElement *);
+WKDOMElement *toWKDOMElement(WebCore::Element*);
+
+WebCore::Document* toWebCoreDocument(WKDOMDocument *);
+WKDOMDocument *toWKDOMDocument(WebCore::Document*);
+
+WebCore::Text* toWebCoreText(WKDOMText *);
+WKDOMText *toWKDOMText(WebCore::Text*);
+
+// -- Range. --
+
+WebCore::Range* toWebCoreRange(WKDOMRange *);
+WKDOMRange *toWKDOMRange(WebCore::Range*);
+
+} // namespace WebKit
+
+#endif // defined(__LP64__) && defined(__clang__)
diff --git a/Source/WebKit2/WebProcess/InjectedBundle/API/mac/WKDOMInternals.mm b/Source/WebKit2/WebProcess/InjectedBundle/API/mac/WKDOMInternals.mm
new file mode 100644
index 000000000..ab9046613
--- /dev/null
+++ b/Source/WebKit2/WebProcess/InjectedBundle/API/mac/WKDOMInternals.mm
@@ -0,0 +1,170 @@
+/*
+ * Copyright (C) 2012 Apple Inc. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#import "config.h"
+
+#if defined(__LP64__) && defined(__clang__)
+
+#import "WKDOMInternals.h"
+
+#import <WebCore/Document.h>
+#import <WebCore/Element.h>
+#import <WebCore/Node.h>
+#import <WebCore/Range.h>
+#import <WebCore/Text.h>
+
+// Classes to instantiate.
+#import "WKDOMElement.h"
+#import "WKDOMDocument.h"
+#import "WKDOMText.h"
+
+namespace WebKit {
+
+template<typename WebCoreType, typename WKDOMType>
+static WKDOMType toWKDOMType(WebCoreType impl, DOMCache<WebCoreType, WKDOMType>& cache);
+
+// -- Caches --
+
+DOMCache<WebCore::Node*, WKDOMNode *>& WKDOMNodeCache()
+{
+ typedef DOMCache<WebCore::Node*, WKDOMNode *> Cache;
+ DEFINE_STATIC_LOCAL(Cache, cache, ());
+ return cache;
+}
+
+DOMCache<WebCore::Range*, WKDOMRange *>& WKDOMRangeCache()
+{
+ typedef DOMCache<WebCore::Range*, WKDOMRange *> Cache;
+ DEFINE_STATIC_LOCAL(Cache, cache, ());
+ return cache;
+}
+
+// -- Node and classes derived from Node. --
+
+static Class WKDOMNodeClass(WebCore::Node* impl)
+{
+ switch (impl->nodeType()) {
+ case WebCore::Node::ELEMENT_NODE:
+ return [WKDOMElement class];
+ case WebCore::Node::DOCUMENT_NODE:
+ return [WKDOMDocument class];
+ case WebCore::Node::TEXT_NODE:
+ return [WKDOMText class];
+ case WebCore::Node::ATTRIBUTE_NODE:
+ case WebCore::Node::CDATA_SECTION_NODE:
+ case WebCore::Node::ENTITY_REFERENCE_NODE:
+ case WebCore::Node::ENTITY_NODE:
+ case WebCore::Node::PROCESSING_INSTRUCTION_NODE:
+ case WebCore::Node::COMMENT_NODE:
+ case WebCore::Node::DOCUMENT_TYPE_NODE:
+ case WebCore::Node::DOCUMENT_FRAGMENT_NODE:
+ case WebCore::Node::NOTATION_NODE:
+ case WebCore::Node::XPATH_NAMESPACE_NODE:
+ break;
+ }
+ ASSERT_NOT_REACHED();
+ return nil;
+}
+
+static WKDOMNode *initWithImpl(WebCore::Node* impl)
+{
+ return [[WKDOMNodeClass(impl) alloc] _initWithImpl:impl];
+}
+
+WebCore::Node* toWebCoreNode(WKDOMNode *wrapper)
+{
+ return wrapper ? wrapper->_impl.get() : 0;
+}
+
+WKDOMNode *toWKDOMNode(WebCore::Node* impl)
+{
+ return toWKDOMType<WebCore::Node*, WKDOMNode *>(impl, WKDOMNodeCache());
+}
+
+WebCore::Element* toWebCoreElement(WKDOMElement *wrapper)
+{
+ return wrapper ? reinterpret_cast<WebCore::Element*>(wrapper->_impl.get()) : 0;
+}
+
+WKDOMElement *toWKDOMElement(WebCore::Element* impl)
+{
+ return static_cast<WKDOMElement*>(toWKDOMNode(static_cast<WebCore::Node*>(impl)));
+}
+
+WebCore::Document* toWebCoreDocument(WKDOMDocument *wrapper)
+{
+ return wrapper ? reinterpret_cast<WebCore::Document*>(wrapper->_impl.get()) : 0;
+}
+
+WKDOMDocument *toWKDOMDocument(WebCore::Document* impl)
+{
+ return static_cast<WKDOMDocument*>(toWKDOMNode(static_cast<WebCore::Node*>(impl)));
+}
+
+WebCore::Text* toWebCoreText(WKDOMText *wrapper)
+{
+ return wrapper ? reinterpret_cast<WebCore::Text*>(wrapper->_impl.get()) : 0;
+}
+
+WKDOMText *toWKDOMText(WebCore::Text* impl)
+{
+ return static_cast<WKDOMText*>(toWKDOMNode(static_cast<WebCore::Node*>(impl)));
+}
+
+// -- Range. --
+
+static WKDOMRange *initWithImpl(WebCore::Range* impl)
+{
+ return [[WKDOMRange alloc] _initWithImpl:impl];
+}
+
+WebCore::Range* toWebCoreRange(WKDOMRange * wrapper)
+{
+ return wrapper ? wrapper->_impl.get() : 0;
+}
+
+WKDOMRange *toWKDOMRange(WebCore::Range* impl)
+{
+ return toWKDOMType<WebCore::Range*, WKDOMRange *>(impl, WKDOMRangeCache());
+}
+
+// -- Helpers --
+
+template<typename WebCoreType, typename WKDOMType>
+static WKDOMType toWKDOMType(WebCoreType impl, DOMCache<WebCoreType, WKDOMType>& cache)
+{
+ if (!impl)
+ return nil;
+ if (WKDOMType wrapper = cache.get(impl))
+ return [[wrapper retain] autorelease];
+ WKDOMType wrapper = initWithImpl(impl);
+ if (!wrapper)
+ return nil;
+ return [wrapper autorelease];
+}
+
+} // namespace WebKit
+
+#endif // defined(__LP64__) && defined(__clang__)
diff --git a/Source/WebKit2/WebProcess/InjectedBundle/API/mac/WKDOMNode.h b/Source/WebKit2/WebProcess/InjectedBundle/API/mac/WKDOMNode.h
new file mode 100644
index 000000000..c0e03937c
--- /dev/null
+++ b/Source/WebKit2/WebProcess/InjectedBundle/API/mac/WKDOMNode.h
@@ -0,0 +1,48 @@
+/*
+ * Copyright (C) 2012 Apple Inc. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#if defined(__LP64__) && defined(__clang__)
+
+#import <Foundation/Foundation.h>
+#import <WebKit2/WKBase.h>
+
+@class WKDOMDocument;
+
+WK_EXPORT
+@interface WKDOMNode : NSObject
+
+- (void)insertNode:(WKDOMNode *)node before:(WKDOMNode *)refNode;
+- (void)appendChild:(WKDOMNode *)node;
+
+@property(readonly) WKDOMDocument *document;
+@property(readonly) WKDOMNode *parentNode;
+@property(readonly) WKDOMNode *firstChild;
+@property(readonly) WKDOMNode *lastChild;
+@property(readonly) WKDOMNode *previousSibling;
+@property(readonly) WKDOMNode *nextSibling;
+
+@end
+
+#endif // defined(__LP64__) && defined(__clang__)
diff --git a/Source/WebKit2/WebProcess/InjectedBundle/API/mac/WKDOMNode.mm b/Source/WebKit2/WebProcess/InjectedBundle/API/mac/WKDOMNode.mm
new file mode 100644
index 000000000..4308ff3ab
--- /dev/null
+++ b/Source/WebKit2/WebProcess/InjectedBundle/API/mac/WKDOMNode.mm
@@ -0,0 +1,100 @@
+/*
+ * Copyright (C) 2012 Apple Inc. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#import "config.h"
+
+#if defined(__LP64__) && defined(__clang__)
+
+#import "WKDOMNode.h"
+
+#import "WKDOMInternals.h"
+
+@implementation WKDOMNode
+
+- (id)_initWithImpl:(WebCore::Node*)impl
+{
+ self = [super init];
+ if (!self)
+ return nil;
+
+ _impl = impl;
+ WebKit::WKDOMNodeCache().add(impl, self);
+
+ return self;
+}
+
+- (void)dealloc
+{
+ WebKit::WKDOMNodeCache().remove(_impl.get());
+ [super dealloc];
+}
+
+- (void)insertNode:(WKDOMNode *)node before:(WKDOMNode *)refNode
+{
+ // FIXME: Do something about the exception.
+ WebCore::ExceptionCode ec;
+ _impl->insertBefore(WebKit::toWebCoreNode(node), WebKit::toWebCoreNode(refNode), ec);
+}
+
+- (void)appendChild:(WKDOMNode *)node
+{
+ // FIXME: Do something about the exception.
+ WebCore::ExceptionCode ec;
+ _impl->appendChild(WebKit::toWebCoreNode(node), ec);
+}
+
+- (WKDOMDocument *)document
+{
+ return WebKit::toWKDOMDocument(_impl->document());
+}
+
+- (WKDOMNode *)parentNode
+{
+ return WebKit::toWKDOMNode(_impl->parentNode());
+}
+
+- (WKDOMNode *)firstChild
+{
+ return WebKit::toWKDOMNode(_impl->firstChild());
+}
+
+- (WKDOMNode *)lastChild
+{
+ return WebKit::toWKDOMNode(_impl->lastChild());
+}
+
+- (WKDOMNode *)previousSibling
+{
+ return WebKit::toWKDOMNode(_impl->previousSibling());
+}
+
+- (WKDOMNode *)nextSibling
+{
+ return WebKit::toWKDOMNode(_impl->nextSibling());
+}
+
+@end
+
+#endif // defined(__LP64__) && defined(__clang__)
diff --git a/Source/WebKit2/WebProcess/InjectedBundle/API/mac/WKDOMRange.h b/Source/WebKit2/WebProcess/InjectedBundle/API/mac/WKDOMRange.h
new file mode 100644
index 000000000..64ed00ce2
--- /dev/null
+++ b/Source/WebKit2/WebProcess/InjectedBundle/API/mac/WKDOMRange.h
@@ -0,0 +1,53 @@
+/*
+ * Copyright (C) 2012 Apple Inc. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#if defined(__LP64__) && defined(__clang__)
+
+#import <Foundation/Foundation.h>
+#import <WebKit2/WKBase.h>
+
+@class WKDOMNode, WKDOMDocument;
+
+WK_EXPORT
+@interface WKDOMRange : NSObject
+
+- (id)initWithDocument:(WKDOMDocument *)document;
+
+- (void)setStart:(WKDOMNode *)node offset:(int)offset;
+- (void)setEnd:(WKDOMNode *)node offset:(int)offset;
+- (void)collapse:(BOOL)toStart;
+- (void)selectNode:(WKDOMNode *)node;
+- (void)selectNodeContents:(WKDOMNode *)node;
+
+@property(readonly, retain) WKDOMNode *startContainer;
+@property(readonly) NSInteger startOffset;
+@property(readonly, retain) WKDOMNode *endContainer;
+@property(readonly) NSInteger endOffset;
+@property(readonly, copy) NSString *text;
+@property(readonly) BOOL isCollapsed;
+
+@end
+
+#endif // defined(__LP64__) && defined(__clang__)
diff --git a/Source/WebKit2/WebProcess/InjectedBundle/API/mac/WKDOMRange.mm b/Source/WebKit2/WebProcess/InjectedBundle/API/mac/WKDOMRange.mm
new file mode 100644
index 000000000..1cc408408
--- /dev/null
+++ b/Source/WebKit2/WebProcess/InjectedBundle/API/mac/WKDOMRange.mm
@@ -0,0 +1,142 @@
+/*
+ * Copyright (C) 2012 Apple Inc. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#import "config.h"
+
+#if defined(__LP64__) && defined(__clang__)
+
+#import "WKDOMRange.h"
+
+#import "WKDOMInternals.h"
+#import <WebCore/Document.h>
+
+@implementation WKDOMRange
+
+- (id)_initWithImpl:(WebCore::Range*)impl
+{
+ self = [super init];
+ if (!self)
+ return nil;
+
+ _impl = impl;
+ WebKit::WKDOMRangeCache().add(impl, self);
+
+ return self;
+}
+
+- (id)initWithDocument:(WKDOMDocument *)document
+{
+ RefPtr<WebCore::Range> range = WebCore::Range::create(WebKit::toWebCoreDocument(document));
+ self = [self _initWithImpl:range.get()];
+ if (!self)
+ return nil;
+
+ return self;
+}
+
+- (void)dealloc
+{
+ WebKit::WKDOMRangeCache().remove(_impl.get());
+ [super dealloc];
+}
+
+- (void)setStart:(WKDOMNode *)node offset:(int)offset
+{
+ // FIXME: Do something about the exception.
+ WebCore::ExceptionCode ec = 0;
+ _impl->setStart(WebKit::toWebCoreNode(node), offset, ec);
+}
+
+- (void)setEnd:(WKDOMNode *)node offset:(int)offset
+{
+ // FIXME: Do something about the exception.
+ WebCore::ExceptionCode ec = 0;
+ _impl->setEnd(WebKit::toWebCoreNode(node), offset, ec);
+}
+
+- (void)collapse:(BOOL)toStart
+{
+ // FIXME: Do something about the exception.
+ WebCore::ExceptionCode ec = 0;
+ _impl->collapse(toStart, ec);
+}
+
+- (void)selectNode:(WKDOMNode *)node
+{
+ // FIXME: Do something about the exception.
+ WebCore::ExceptionCode ec = 0;
+ _impl->selectNode(WebKit::toWebCoreNode(node), ec);
+}
+
+- (void)selectNodeContents:(WKDOMNode *)node
+{
+ // FIXME: Do something about the exception.
+ WebCore::ExceptionCode ec = 0;
+ _impl->selectNodeContents(WebKit::toWebCoreNode(node), ec);
+}
+
+- (WKDOMNode *)startContainer
+{
+ // FIXME: Do something about the exception.
+ WebCore::ExceptionCode ec = 0;
+ return WebKit::toWKDOMNode(_impl->startContainer(ec));
+}
+
+- (NSInteger)startOffset
+{
+ // FIXME: Do something about the exception.
+ WebCore::ExceptionCode ec = 0;
+ return _impl->startOffset(ec);
+}
+
+- (WKDOMNode *)endContainer
+{
+ // FIXME: Do something about the exception.
+ WebCore::ExceptionCode ec = 0;
+ return WebKit::toWKDOMNode(_impl->endContainer(ec));
+}
+
+- (NSInteger)endOffset
+{
+ // FIXME: Do something about the exception.
+ WebCore::ExceptionCode ec = 0;
+ return _impl->endOffset(ec);
+}
+
+- (NSString *)text
+{
+ return _impl->text();
+}
+
+- (BOOL)isCollapsed
+{
+ // FIXME: Do something about the exception.
+ WebCore::ExceptionCode ec = 0;
+ return _impl->collapsed(ec);
+}
+
+@end
+
+#endif // defined(__LP64__) && defined(__clang__)
diff --git a/Source/WebKit2/WebProcess/InjectedBundle/API/mac/WKDOMText.h b/Source/WebKit2/WebProcess/InjectedBundle/API/mac/WKDOMText.h
new file mode 100644
index 000000000..eb8552e3f
--- /dev/null
+++ b/Source/WebKit2/WebProcess/InjectedBundle/API/mac/WKDOMText.h
@@ -0,0 +1,37 @@
+/*
+ * Copyright (C) 2012 Apple Inc. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#if defined(__LP64__) && defined(__clang__)
+
+#import <WebKit2/WKDOMNode.h>
+
+WK_EXPORT
+@interface WKDOMText : WKDOMNode
+
+@property(readonly) NSString *data;
+
+@end
+
+#endif // defined(__LP64__) && defined(__clang__)
diff --git a/Source/WebKit2/WebProcess/InjectedBundle/API/mac/WKDOMText.mm b/Source/WebKit2/WebProcess/InjectedBundle/API/mac/WKDOMText.mm
new file mode 100644
index 000000000..4f4f627ab
--- /dev/null
+++ b/Source/WebKit2/WebProcess/InjectedBundle/API/mac/WKDOMText.mm
@@ -0,0 +1,43 @@
+/*
+ * Copyright (C) 2012 Apple Inc. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#import "config.h"
+#import "WKDOMText.h"
+
+#if defined(__LP64__) && defined(__clang__)
+
+#import "WKDOMInternals.h"
+#import <WebCore/Text.h>
+
+@implementation WKDOMText
+
+- (NSString *)data
+{
+ return WebCore::toText(_impl.get())->data();
+}
+
+@end
+
+#endif // defined(__LP64__) && defined(__clang__)
diff --git a/Source/WebKit2/Shared/CoreIPCSupport/InjectedBundleMessageKinds.h b/Source/WebKit2/WebProcess/InjectedBundle/API/mac/WKDOMTextIterator.h
index a1afd6987..e34c18e44 100644
--- a/Source/WebKit2/Shared/CoreIPCSupport/InjectedBundleMessageKinds.h
+++ b/Source/WebKit2/WebProcess/InjectedBundle/API/mac/WKDOMTextIterator.h
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2010 Apple Inc. All rights reserved.
+ * Copyright (C) 2012 Apple Inc. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
@@ -23,28 +23,25 @@
* THE POSSIBILITY OF SUCH DAMAGE.
*/
-#ifndef InjectedBundleMessageKinds_h
-#define InjectedBundleMessageKinds_h
+#if defined(__LP64__) && defined(__clang__)
-// Messages sent from WebKit to the injected bundle.
+#import <Foundation/Foundation.h>
+#import <WebKit2/WKBase.h>
-#include "MessageID.h"
+@class WKDOMRange;
-namespace InjectedBundleMessage {
+WK_EXPORT
+@interface WKDOMTextIterator : NSObject
-enum Kind {
- PostMessage,
- PostMessageToPage
-};
+- (id)initWithRange:(WKDOMRange *)range;
-}
+- (void)advance;
-namespace CoreIPC {
+@property (readonly) BOOL atEnd;
+@property (readonly) WKDOMRange *currentRange;
+@property (readonly) NSUInteger currentTextLength;
+@property (readonly) const unichar *currentTextPointer;
-template<> struct MessageKindTraits<InjectedBundleMessage::Kind> {
- static const MessageClass messageClass = MessageClassInjectedBundle;
-};
+@end
-}
-
-#endif // InjectedBundleMessageKinds_h
+#endif // defined(__LP64__) && defined(__clang__)
diff --git a/Source/WebKit2/WebProcess/InjectedBundle/API/mac/WKDOMTextIterator.mm b/Source/WebKit2/WebProcess/InjectedBundle/API/mac/WKDOMTextIterator.mm
new file mode 100644
index 000000000..0f9ae6191
--- /dev/null
+++ b/Source/WebKit2/WebProcess/InjectedBundle/API/mac/WKDOMTextIterator.mm
@@ -0,0 +1,83 @@
+/*
+ * Copyright (C) 2012 Apple Inc. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#import "config.h"
+
+#if defined(__LP64__) && defined(__clang__)
+
+#import "WKDOMTextIterator.h"
+
+#import "WKDOMInternals.h"
+#import "WKDOMRange.h"
+#import <WebCore/TextIterator.h>
+#import <wtf/OwnPtr.h>
+
+@interface WKDOMTextIterator () {
+@public
+ OwnPtr<WebCore::TextIterator> _textIterator;
+}
+@end
+
+@implementation WKDOMTextIterator
+
+- (id)initWithRange:(WKDOMRange *)range
+{
+ self = [super init];
+ if (!self)
+ return nil;
+
+ _textIterator = adoptPtr(new WebCore::TextIterator(WebKit::toWebCoreRange(range)));
+
+ return self;
+}
+
+- (void)advance
+{
+ _textIterator->advance();
+}
+
+- (BOOL)atEnd
+{
+ return _textIterator->atEnd();
+}
+
+- (WKDOMRange *)currentRange
+{
+ return WebKit::toWKDOMRange(_textIterator->range().get());
+}
+
+- (const unichar *)currentTextPointer
+{
+ return _textIterator->characters();
+}
+
+- (NSUInteger)currentTextLength
+{
+ return _textIterator->length();
+}
+
+@end
+
+#endif // defined(__LP64__) && defined(__clang__)
diff --git a/Source/WebKit2/WebProcess/InjectedBundle/API/mac/WKWebProcessPlugIn.h b/Source/WebKit2/WebProcess/InjectedBundle/API/mac/WKWebProcessPlugIn.h
new file mode 100644
index 000000000..4a7cc50a6
--- /dev/null
+++ b/Source/WebKit2/WebProcess/InjectedBundle/API/mac/WKWebProcessPlugIn.h
@@ -0,0 +1,45 @@
+/*
+ * Copyright (C) 2012 Apple Inc. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#if defined(__LP64__) && defined(__clang__)
+
+#import <Foundation/Foundation.h>
+#import <WebKit2/WKBase.h>
+
+@class WKWebProcessPlugInController;
+@class WKWebProcessPlugInBrowserContextController;
+
+@protocol WKWebProcessPlugIn <NSObject>
+@optional
+- (void)webProcessPlugInInitialize:(WKWebProcessPlugInController *)plugInController;
+- (void)webProcessPlugIn:(WKWebProcessPlugInController *)plugInController didCreateBrowserContextController:(WKWebProcessPlugInBrowserContextController *)browserContextController;
+- (void)webProcessPlugIn:(WKWebProcessPlugInController *)plugInController willDestroyBrowserContextController:(WKWebProcessPlugInBrowserContextController *)browserContextController;
+@end
+
+WK_EXPORT
+@interface WKWebProcessPlugInController : NSObject
+@end
+
+#endif // defined(__LP64__) && defined(__clang__)
diff --git a/Source/WebKit2/WebProcess/InjectedBundle/API/mac/WKWebProcessPlugIn.mm b/Source/WebKit2/WebProcess/InjectedBundle/API/mac/WKWebProcessPlugIn.mm
new file mode 100644
index 000000000..d967ec29b
--- /dev/null
+++ b/Source/WebKit2/WebProcess/InjectedBundle/API/mac/WKWebProcessPlugIn.mm
@@ -0,0 +1,129 @@
+/*
+ * Copyright (C) 2012 Apple Inc. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#import "config.h"
+
+#if defined(__LP64__) && defined(__clang__)
+
+#import "WKWebProcessPlugIn.h"
+#import "WKWebProcessPlugInInternal.h"
+
+#import "InjectedBundle.h"
+#import "WKBundle.h"
+#import "WKBundleAPICast.h"
+#import "WKRetainPtr.h"
+#import "WKWebProcessPlugInBrowserContextControllerInternal.h"
+#import <wtf/RetainPtr.h>
+
+typedef HashMap<WKBundlePageRef, RetainPtr<WKWebProcessPlugInBrowserContextController *> > BundlePageWrapperCache;
+
+@interface WKWebProcessPlugInController () {
+ RetainPtr<id<WKWebProcessPlugIn> > _principalClassInstance;
+ WKRetainPtr<WKBundleRef> _bundleRef;
+ BundlePageWrapperCache _bundlePageWrapperCache;
+}
+@end
+
+@implementation WKWebProcessPlugInController (Internal)
+
+static void didCreatePage(WKBundleRef bundle, WKBundlePageRef page, const void* clientInfo)
+{
+ WKWebProcessPlugInController *plugInController = (WKWebProcessPlugInController *)clientInfo;
+ id<WKWebProcessPlugIn> principalClassInstance = plugInController->_principalClassInstance.get();
+
+ if ([principalClassInstance respondsToSelector:@selector(webProcessPlugIn:didCreateBrowserContextController:)]) {
+ ASSERT(!plugInController->_bundlePageWrapperCache.contains(page));
+
+ WKWebProcessPlugInBrowserContextController* browserContextController = [[WKWebProcessPlugInBrowserContextController alloc] _initWithBundlePageRef:page];
+ plugInController->_bundlePageWrapperCache.set(page, browserContextController);
+
+ [principalClassInstance webProcessPlugIn:plugInController didCreateBrowserContextController:browserContextController];
+ }
+}
+
+static void willDestroyPage(WKBundleRef bundle, WKBundlePageRef page, const void* clientInfo)
+{
+ WKWebProcessPlugInController *plugInController = (WKWebProcessPlugInController *)clientInfo;
+ id<WKWebProcessPlugIn> principalClassInstance = plugInController->_principalClassInstance.get();
+
+ // If we never added the bundle page to the cache, which can happen if webProcessPlugIn:didCreateBrowserContextController: is not implemented,
+ // there is no reason to call webProcessPlugIn:willDestroyBrowserContextController:, so don't.
+ BundlePageWrapperCache::iterator it = plugInController->_bundlePageWrapperCache.find(page);
+ if (it == plugInController->_bundlePageWrapperCache.end()) {
+ ASSERT(![principalClassInstance respondsToSelector:@selector(webProcessPlugIn:didCreateBrowserContextController:)]);
+ return;
+ }
+
+ if ([principalClassInstance respondsToSelector:@selector(webProcessPlugIn:willDestroyBrowserContextController:)])
+ [principalClassInstance webProcessPlugIn:plugInController willDestroyBrowserContextController:it->value.get()];
+
+ plugInController->_bundlePageWrapperCache.remove(it);
+}
+
+static void setUpBundleClient(WKWebProcessPlugInController *plugInController, WKBundleRef bundleRef)
+{
+ WKBundleClient bundleClient;
+ memset(&bundleClient, 0, sizeof(bundleClient));
+
+ bundleClient.version = kWKBundleClientCurrentVersion;
+ bundleClient.clientInfo = plugInController;
+ bundleClient.didCreatePage = didCreatePage;
+ bundleClient.willDestroyPage = willDestroyPage;
+
+ WKBundleSetClient(bundleRef, &bundleClient);
+}
+
+static WKWebProcessPlugInController *sharedInstance;
+
++ (WKWebProcessPlugInController *)_shared
+{
+ ASSERT_WITH_MESSAGE(sharedInstance, "+[WKWebProcessPlugIn _shared] called without first initializing it.");
+ return sharedInstance;
+}
+
+- (id)_initWithPrincipalClassInstance:(id<WKWebProcessPlugIn>)principalClassInstance bundleRef:(WKBundleRef)bundleRef
+{
+ self = [super init];
+ if (!self)
+ return nil;
+
+ _principalClassInstance = principalClassInstance;
+ _bundleRef = bundleRef;
+
+ ASSERT_WITH_MESSAGE(!sharedInstance, "WKWebProcessPlugInController initialized multiple times.");
+ sharedInstance = self;
+
+ setUpBundleClient(self, bundleRef);
+
+ return self;
+}
+
+@end
+
+@implementation WKWebProcessPlugInController
+
+@end
+
+#endif // defined(__LP64__) && defined(__clang__)
diff --git a/Source/WebKit2/WebProcess/InjectedBundle/API/mac/WKWebProcessPlugInBrowserContextController.h b/Source/WebKit2/WebProcess/InjectedBundle/API/mac/WKWebProcessPlugInBrowserContextController.h
new file mode 100644
index 000000000..5a0db8d05
--- /dev/null
+++ b/Source/WebKit2/WebProcess/InjectedBundle/API/mac/WKWebProcessPlugInBrowserContextController.h
@@ -0,0 +1,40 @@
+/*
+ * Copyright (C) 2012 Apple Inc. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#if defined(__LP64__) && defined(__clang__)
+
+#import <Foundation/Foundation.h>
+#import <WebKit2/WKBase.h>
+
+@class WKDOMDocument;
+
+WK_EXPORT
+@interface WKWebProcessPlugInBrowserContextController : NSObject
+
+@property(readonly) WKDOMDocument *mainFrameDocument;
+
+@end
+
+#endif // defined(__LP64__) && defined(__clang__)
diff --git a/Source/WebKit2/WebProcess/InjectedBundle/API/mac/WKWebProcessPlugInBrowserContextController.mm b/Source/WebKit2/WebProcess/InjectedBundle/API/mac/WKWebProcessPlugInBrowserContextController.mm
new file mode 100644
index 000000000..3d39be033
--- /dev/null
+++ b/Source/WebKit2/WebProcess/InjectedBundle/API/mac/WKWebProcessPlugInBrowserContextController.mm
@@ -0,0 +1,86 @@
+/*
+ * Copyright (C) 2012 Apple Inc. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#import "config.h"
+
+#if defined(__LP64__) && defined(__clang__)
+
+#import "WKWebProcessPlugInBrowserContextController.h"
+#import "WKWebProcessPlugInBrowserContextControllerInternal.h"
+#import "WKWebProcessPlugInBrowserContextControllerPrivate.h"
+
+#import "WKBundleAPICast.h"
+#import "WKBundlePage.h"
+#import "WKBundlePagePrivate.h"
+#import "WKDOMInternals.h"
+#import "WKRetainPtr.h"
+#import "WebPage.h"
+#import <WebCore/Document.h>
+#import <WebCore/Frame.h>
+
+@interface WKWebProcessPlugInBrowserContextController () {
+ // Underlying WKBundlePageRef.
+ WKRetainPtr<WKBundlePageRef> _bundlePageRef;
+}
+@end
+
+@implementation WKWebProcessPlugInBrowserContextController (Internal)
+
+- (id)_initWithBundlePageRef:(WKBundlePageRef)bundlePageRef
+{
+ self = [super init];
+ if (!self)
+ return nil;
+
+ _bundlePageRef = bundlePageRef;
+
+ return self;
+}
+
+@end
+
+@implementation WKWebProcessPlugInBrowserContextController
+
+- (WKDOMDocument *)mainFrameDocument
+{
+ WebCore::Frame* webCoreMainFrame = WebKit::toImpl(self._bundlePageRef)->mainFrame();
+ if (!webCoreMainFrame)
+ return nil;
+
+ return WebKit::toWKDOMDocument(webCoreMainFrame->document());
+}
+
+@end
+
+@implementation WKWebProcessPlugInBrowserContextController (Private)
+
+- (WKBundlePageRef)_bundlePageRef
+{
+ return _bundlePageRef.get();
+}
+
+@end
+
+#endif // defined(__LP64__) && defined(__clang__)
diff --git a/Source/WebKit2/WebProcess/InjectedBundle/API/mac/WKWebProcessPlugInBrowserContextControllerInternal.h b/Source/WebKit2/WebProcess/InjectedBundle/API/mac/WKWebProcessPlugInBrowserContextControllerInternal.h
new file mode 100644
index 000000000..62f06238a
--- /dev/null
+++ b/Source/WebKit2/WebProcess/InjectedBundle/API/mac/WKWebProcessPlugInBrowserContextControllerInternal.h
@@ -0,0 +1,36 @@
+/*
+ * Copyright (C) 2012 Apple Inc. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#if defined(__LP64__) && defined(__clang__)
+
+#import "WKWebProcessPlugInBrowserContextController.h"
+
+@interface WKWebProcessPlugInBrowserContextController (Internal)
+
+- (id)_initWithBundlePageRef:(WKBundlePageRef)bundlePageRef;
+
+@end
+
+#endif // defined(__LP64__) && defined(__clang__)
diff --git a/Source/WebKit2/WebProcess/InjectedBundle/API/mac/WKWebProcessPlugInBrowserContextControllerPrivate.h b/Source/WebKit2/WebProcess/InjectedBundle/API/mac/WKWebProcessPlugInBrowserContextControllerPrivate.h
new file mode 100644
index 000000000..59aac108c
--- /dev/null
+++ b/Source/WebKit2/WebProcess/InjectedBundle/API/mac/WKWebProcessPlugInBrowserContextControllerPrivate.h
@@ -0,0 +1,36 @@
+/*
+ * Copyright (C) 2012 Apple Inc. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#if defined(__LP64__) && defined(__clang__)
+
+#import <WebKit2/WKWebProcessPlugInBrowserContextController.h>
+
+@interface WKWebProcessPlugInBrowserContextController (Private)
+
+@property(readonly) WKBundlePageRef _bundlePageRef;
+
+@end
+
+#endif // defined(__LP64__) && defined(__clang__)
diff --git a/Source/WebKit2/WebProcess/InjectedBundle/API/mac/WKWebProcessPlugInInternal.h b/Source/WebKit2/WebProcess/InjectedBundle/API/mac/WKWebProcessPlugInInternal.h
new file mode 100644
index 000000000..58b3cc3f7
--- /dev/null
+++ b/Source/WebKit2/WebProcess/InjectedBundle/API/mac/WKWebProcessPlugInInternal.h
@@ -0,0 +1,37 @@
+/*
+ * Copyright (C) 2012 Apple Inc. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#if defined(__LP64__) && defined(__clang__)
+
+#import "WKWebProcessPlugIn.h"
+
+@interface WKWebProcessPlugInController (Internal)
+
++ (WKWebProcessPlugInController *)_shared;
+- (id)_initWithPrincipalClassInstance:(id<WKWebProcessPlugIn>)principalClassInstance bundleRef:(WKBundleRef)bundleRef;
+
+@end
+
+#endif // defined(__LP64__) && defined(__clang__)
diff --git a/Source/WebKit2/WebProcess/InjectedBundle/DOM/InjectedBundleNodeHandle.cpp b/Source/WebKit2/WebProcess/InjectedBundle/DOM/InjectedBundleNodeHandle.cpp
index 0c4295e61..77e03093d 100644
--- a/Source/WebKit2/WebProcess/InjectedBundle/DOM/InjectedBundleNodeHandle.cpp
+++ b/Source/WebKit2/WebProcess/InjectedBundle/DOM/InjectedBundleNodeHandle.cpp
@@ -69,10 +69,10 @@ PassRefPtr<InjectedBundleNodeHandle> InjectedBundleNodeHandle::getOrCreate(Node*
DOMHandleCache::AddResult result = domHandleCache().add(node, 0);
if (!result.isNewEntry)
- return PassRefPtr<InjectedBundleNodeHandle>(result.iterator->second);
+ return PassRefPtr<InjectedBundleNodeHandle>(result.iterator->value);
RefPtr<InjectedBundleNodeHandle> nodeHandle = InjectedBundleNodeHandle::create(node);
- result.iterator->second = nodeHandle.get();
+ result.iterator->value = nodeHandle.get();
return nodeHandle.release();
}
diff --git a/Source/WebKit2/WebProcess/InjectedBundle/DOM/InjectedBundleRangeHandle.cpp b/Source/WebKit2/WebProcess/InjectedBundle/DOM/InjectedBundleRangeHandle.cpp
index 1b74f0124..d6000ab91 100644
--- a/Source/WebKit2/WebProcess/InjectedBundle/DOM/InjectedBundleRangeHandle.cpp
+++ b/Source/WebKit2/WebProcess/InjectedBundle/DOM/InjectedBundleRangeHandle.cpp
@@ -48,10 +48,10 @@ PassRefPtr<InjectedBundleRangeHandle> InjectedBundleRangeHandle::getOrCreate(Ran
DOMHandleCache::AddResult result = domHandleCache().add(range, 0);
if (!result.isNewEntry)
- return PassRefPtr<InjectedBundleRangeHandle>(result.iterator->second);
+ return PassRefPtr<InjectedBundleRangeHandle>(result.iterator->value);
RefPtr<InjectedBundleRangeHandle> rangeHandle = InjectedBundleRangeHandle::create(range);
- result.iterator->second = rangeHandle.get();
+ result.iterator->value = rangeHandle.get();
return rangeHandle.release();
}
diff --git a/Source/WebKit2/WebProcess/InjectedBundle/InjectedBundle.cpp b/Source/WebKit2/WebProcess/InjectedBundle/InjectedBundle.cpp
index 44d9a10ab..458b1c169 100644
--- a/Source/WebKit2/WebProcess/InjectedBundle/InjectedBundle.cpp
+++ b/Source/WebKit2/WebProcess/InjectedBundle/InjectedBundle.cpp
@@ -28,7 +28,6 @@
#include "Arguments.h"
#include "ImmutableArray.h"
-#include "InjectedBundleMessageKinds.h"
#include "InjectedBundleScriptWorld.h"
#include "InjectedBundleUserMessageCoders.h"
#include "LayerTreeHost.h"
@@ -61,6 +60,7 @@
#include <WebCore/PageVisibilityState.h>
#include <WebCore/PrintContext.h>
#include <WebCore/ResourceHandle.h>
+#include <WebCore/ResourceLoadScheduler.h>
#include <WebCore/ScriptController.h>
#include <WebCore/SecurityOrigin.h>
#include <WebCore/SecurityPolicy.h>
@@ -426,23 +426,24 @@ bool InjectedBundle::isProcessingUserGesture()
return ScriptController::processingUserGesture();
}
-static PassOwnPtr<Vector<String> > toStringVector(ImmutableArray* patterns)
+static Vector<String> toStringVector(ImmutableArray* patterns)
{
+ Vector<String> patternsVector;
+
if (!patterns)
- return nullptr;
+ return patternsVector;
- size_t size = patterns->size();
+ size_t size = patterns->size();
if (!size)
- return nullptr;
+ return patternsVector;
- OwnPtr<Vector<String> > patternsVector = adoptPtr(new Vector<String>);
- patternsVector->reserveInitialCapacity(size);
+ patternsVector.reserveInitialCapacity(size);
for (size_t i = 0; i < size; ++i) {
WebString* entry = patterns->at<WebString>(i);
if (entry)
- patternsVector->uncheckedAppend(entry->string());
+ patternsVector.uncheckedAppend(entry->string());
}
- return patternsVector.release();
+ return patternsVector;
}
void InjectedBundle::addUserScript(WebPageGroupProxy* pageGroup, InjectedBundleScriptWorld* scriptWorld, const String& source, const String& url, ImmutableArray* whitelist, ImmutableArray* blacklist, WebCore::UserScriptInjectionTime injectionTime, WebCore::UserContentInjectedFrames injectedFrames)
@@ -540,46 +541,9 @@ void InjectedBundle::didReceiveMessageToPage(WebPage* page, const String& messag
m_client.didReceiveMessageToPage(this, page, messageName, messageBody);
}
-void InjectedBundle::didReceiveMessage(CoreIPC::Connection*, CoreIPC::MessageID messageID, CoreIPC::ArgumentDecoder* arguments)
-{
- switch (messageID.get<InjectedBundleMessage::Kind>()) {
- case InjectedBundleMessage::PostMessage: {
- String messageName;
- RefPtr<APIObject> messageBody;
- InjectedBundleUserMessageDecoder messageDecoder(messageBody);
- if (!arguments->decode(CoreIPC::Out(messageName, messageDecoder)))
- return;
-
- didReceiveMessage(messageName, messageBody.get());
- return;
- }
-
- case InjectedBundleMessage::PostMessageToPage: {
- uint64_t pageID = arguments->destinationID();
- if (!pageID)
- return;
-
- WebPage* page = WebProcess::shared().webPage(pageID);
- if (!page)
- return;
-
- String messageName;
- RefPtr<APIObject> messageBody;
- InjectedBundleUserMessageDecoder messageDecoder(messageBody);
- if (!arguments->decode(CoreIPC::Out(messageName, messageDecoder)))
- return;
-
- didReceiveMessageToPage(page, messageName, messageBody.get());
- return;
- }
- }
-
- ASSERT_NOT_REACHED();
-}
-
void InjectedBundle::setPageVisibilityState(WebPage* page, int state, bool isInitialState)
{
-#if ENABLE(PAGE_VISIBILITY_API)
+#if ENABLE(PAGE_VISIBILITY_API) || ENABLE(HIDDEN_PAGE_DOM_TIMER_THROTTLING)
page->corePage()->setVisibilityState(static_cast<PageVisibilityState>(state), isInitialState);
#endif
}
@@ -646,4 +610,14 @@ void InjectedBundle::setTabKeyCyclesThroughElements(WebPage* page, bool enabled)
page->corePage()->setTabKeyCyclesThroughElements(enabled);
}
+void InjectedBundle::setSerialLoadingEnabled(bool enabled)
+{
+ resourceLoadScheduler()->setSerialLoadingEnabled(enabled);
+}
+
+void InjectedBundle::dispatchPendingLoadRequests()
+{
+ resourceLoadScheduler()->servePendingRequests();
+}
+
} // namespace WebKit
diff --git a/Source/WebKit2/WebProcess/InjectedBundle/InjectedBundle.h b/Source/WebKit2/WebProcess/InjectedBundle/InjectedBundle.h
index 1197256d5..754b13320 100644
--- a/Source/WebKit2/WebProcess/InjectedBundle/InjectedBundle.h
+++ b/Source/WebKit2/WebProcess/InjectedBundle/InjectedBundle.h
@@ -47,6 +47,10 @@ typedef struct _GModule GModule;
#include <Eina.h>
#endif
+#if PLATFORM(MAC)
+OBJC_CLASS NSBundle;
+#endif
+
namespace CoreIPC {
class ArgumentDecoder;
class Connection;
@@ -56,7 +60,7 @@ namespace CoreIPC {
namespace WebKit {
#if PLATFORM(MAC)
-typedef CFBundleRef PlatformBundle;
+typedef NSBundle *PlatformBundle;
#elif PLATFORM(WIN)
typedef HMODULE PlatformBundle;
#elif PLATFORM(QT)
@@ -164,8 +168,6 @@ public:
void didReceiveMessage(const String&, APIObject*);
void didReceiveMessageToPage(WebPage*, const String&, APIObject*);
- void didReceiveMessage(CoreIPC::Connection*, CoreIPC::MessageID, CoreIPC::ArgumentDecoder*);
-
static void reportException(JSContextRef, JSValueRef exception);
static bool isProcessingUserGesture();
@@ -175,6 +177,8 @@ public:
static size_t workerThreadCount();
void setTabKeyCyclesThroughElements(WebPage*, bool enabled);
+ void setSerialLoadingEnabled(bool);
+ void dispatchPendingLoadRequests();
private:
explicit InjectedBundle(const String&);
diff --git a/Source/WebKit2/WebProcess/InjectedBundle/InjectedBundleIntent.cpp b/Source/WebKit2/WebProcess/InjectedBundle/InjectedBundleIntent.cpp
index 92de61c6c..d8ac3a25d 100644
--- a/Source/WebKit2/WebProcess/InjectedBundle/InjectedBundleIntent.cpp
+++ b/Source/WebKit2/WebProcess/InjectedBundle/InjectedBundleIntent.cpp
@@ -79,7 +79,7 @@ PassRefPtr<ImmutableDictionary> InjectedBundleIntent::extras() const
ImmutableDictionary::MapType wkExtras;
HashMap<String, String>::const_iterator end = extras.end();
for (HashMap<String, String>::const_iterator it = extras.begin(); it != end; ++it)
- wkExtras.set(it->first, WebString::create(it->second));
+ wkExtras.set(it->key, WebString::create(it->value));
return ImmutableDictionary::adopt(wkExtras);
}
diff --git a/Source/WebKit2/WebProcess/InjectedBundle/mac/InjectedBundleMac.cpp b/Source/WebKit2/WebProcess/InjectedBundle/mac/InjectedBundleMac.mm
index cb59192a9..de5eaf7de 100644
--- a/Source/WebKit2/WebProcess/InjectedBundle/mac/InjectedBundleMac.cpp
+++ b/Source/WebKit2/WebProcess/InjectedBundle/mac/InjectedBundleMac.mm
@@ -23,18 +23,25 @@
* THE POSSIBILITY OF SUCH DAMAGE.
*/
-#include "config.h"
-#include "InjectedBundle.h"
+#import "config.h"
+#import "InjectedBundle.h"
-#include "WKBundleAPICast.h"
-#include "WKBundleInitialize.h"
-#include <stdio.h>
-#include <wtf/RetainPtr.h>
-#include <wtf/text/CString.h>
-#include <wtf/text/WTFString.h>
+#import "WKBundleAPICast.h"
+#import "WKBundleInitialize.h"
+#import "WKWebProcessPlugInInternal.h"
+
+#import <Foundation/NSBundle.h>
+#import <stdio.h>
+#import <wtf/RetainPtr.h>
+#import <wtf/text/CString.h>
+#import <wtf/text/WTFString.h>
using namespace WebCore;
+@interface NSBundle (WKAppDetails)
+- (CFBundleRef)_cfBundle;
+@end
+
namespace WebKit {
bool InjectedBundle::load(APIObject* initializationUserData)
@@ -60,25 +67,53 @@ bool InjectedBundle::load(APIObject* initializationUserData)
return false;
}
- m_platformBundle = CFBundleCreate(0, bundleURL.get());
+ m_platformBundle = [[NSBundle alloc] initWithURL:(NSURL *)bundleURL.get()];
if (!m_platformBundle) {
WTFLogAlways("InjectedBundle::load failed - Could not create the bundle.\n");
return false;
}
- if (!CFBundleLoadExecutable(m_platformBundle)) {
+ if (![m_platformBundle load]) {
WTFLogAlways("InjectedBundle::load failed - Could not load the executable from the bundle.\n");
return false;
}
- WKBundleInitializeFunctionPtr initializeFunction = reinterpret_cast<WKBundleInitializeFunctionPtr>(CFBundleGetFunctionPointerForName(m_platformBundle, CFSTR("WKBundleInitialize")));
- if (!initializeFunction) {
- WTFLogAlways("InjectedBundle::load failed - Could not find the initialize function in the bundle executable.\n");
+ // First check to see if the bundle has a WKBundleInitialize function.
+ WKBundleInitializeFunctionPtr initializeFunction = reinterpret_cast<WKBundleInitializeFunctionPtr>(CFBundleGetFunctionPointerForName([m_platformBundle _cfBundle], CFSTR("WKBundleInitialize")));
+ if (initializeFunction) {
+ initializeFunction(toAPI(this), toAPI(initializationUserData));
+ return true;
+ }
+
+#if defined(__LP64__) && defined(__clang__)
+ // Otherwise, look to see if the bundle has a principal class
+ Class principalClass = [m_platformBundle principalClass];
+ if (!principalClass) {
+ WTFLogAlways("InjectedBundle::load failed - No initialize function or principal class found in the bundle executable.\n");
+ return false;
+ }
+
+ if (![principalClass conformsToProtocol:@protocol(WKWebProcessPlugIn)]) {
+ WTFLogAlways("InjectedBundle::load failed - Principal class does not conform to the WKWebProcessPlugIn protocol.\n");
+ return false;
+ }
+
+ id<WKWebProcessPlugIn> instance = (id<WKWebProcessPlugIn>)[[principalClass alloc] init];
+ if (!instance) {
+ WTFLogAlways("InjectedBundle::load failed - Could not initialize an instance of the principal class.\n");
return false;
}
- initializeFunction(toAPI(this), toAPI(initializationUserData));
+ // Create the shared WKWebProcessPlugInController.
+ [[WKWebProcessPlugInController alloc] _initWithPrincipalClassInstance:instance bundleRef:toAPI(this)];
+
+ if ([instance respondsToSelector:@selector(webProcessPlugInInitialize:)])
+ [instance webProcessPlugInInitialize:[WKWebProcessPlugInController _shared]];
+
return true;
+#else
+ return false;
+#endif
}
void InjectedBundle::activateMacFontAscentHack()
diff --git a/Source/WebKit2/WebProcess/Notifications/NotificationPermissionRequestManager.cpp b/Source/WebKit2/WebProcess/Notifications/NotificationPermissionRequestManager.cpp
index 44b97eb4e..c7788ae0f 100644
--- a/Source/WebKit2/WebProcess/Notifications/NotificationPermissionRequestManager.cpp
+++ b/Source/WebKit2/WebProcess/Notifications/NotificationPermissionRequestManager.cpp
@@ -84,7 +84,8 @@ void NotificationPermissionRequestManager::startRequest(SecurityOrigin* origin,
{
NotificationClient::Permission permission = permissionLevel(origin);
if (permission != NotificationClient::PermissionNotAllowed) {
- callback->handleEvent();
+ if (callback)
+ callback->handleEvent();
return;
}
diff --git a/Source/WebKit2/WebProcess/Notifications/WebNotificationManager.cpp b/Source/WebKit2/WebProcess/Notifications/WebNotificationManager.cpp
index 5ac2cdc3e..7b68912fe 100644
--- a/Source/WebKit2/WebProcess/Notifications/WebNotificationManager.cpp
+++ b/Source/WebKit2/WebProcess/Notifications/WebNotificationManager.cpp
@@ -107,7 +107,7 @@ NotificationClient::Permission WebNotificationManager::policyForOrigin(WebCore::
ASSERT(!origin->isUnique());
HashMap<String, bool>::const_iterator it = m_permissionsMap.find(origin->toRawString());
if (it != m_permissionsMap.end())
- return it->second ? NotificationClient::PermissionAllowed : NotificationClient::PermissionDenied;
+ return it->value ? NotificationClient::PermissionAllowed : NotificationClient::PermissionDenied;
#else
UNUSED_PARAM(origin);
#endif
@@ -145,7 +145,7 @@ bool WebNotificationManager::show(Notification* notification, WebPage* page)
m_notificationIDMap.set(notificationID, notification);
NotificationContextMap::iterator it = m_notificationContextMap.add(notification->scriptExecutionContext(), Vector<uint64_t>()).iterator;
- it->second.append(notificationID);
+ it->value.append(notificationID);
#if ENABLE(NOTIFICATIONS)
m_process->connection()->send(Messages::WebPageProxy::ShowNotification(notification->title(), notification->body(), notification->iconURL().string(), notification->tag(), notification->lang(), notification->dir(), notification->scriptExecutionContext()->securityOrigin()->toString(), notificationID), page->pageID());
@@ -184,7 +184,7 @@ void WebNotificationManager::clearNotifications(WebCore::ScriptExecutionContext*
if (it == m_notificationContextMap.end())
return;
- Vector<uint64_t>& notificationIDs = it->second;
+ Vector<uint64_t>& notificationIDs = it->value;
m_process->connection()->send(Messages::WebNotificationManagerProxy::ClearNotifications(notificationIDs), page->pageID());
size_t count = notificationIDs.size();
for (size_t i = 0; i < count; ++i) {
@@ -281,10 +281,10 @@ void WebNotificationManager::removeNotificationFromContextMap(uint64_t notificat
// This is a helper function for managing the hash maps.
NotificationContextMap::iterator it = m_notificationContextMap.find(notification->scriptExecutionContext());
ASSERT(it != m_notificationContextMap.end());
- size_t index = it->second.find(notificationID);
+ size_t index = it->value.find(notificationID);
ASSERT(index != notFound);
- it->second.remove(index);
- if (it->second.isEmpty())
+ it->value.remove(index);
+ if (it->value.isEmpty())
m_notificationContextMap.remove(it);
}
#endif
diff --git a/Source/WebKit2/WebProcess/Plugins/Netscape/JSNPObject.cpp b/Source/WebKit2/WebProcess/Plugins/Netscape/JSNPObject.cpp
index 56e1a1097..51fb15d8e 100644
--- a/Source/WebKit2/WebProcess/Plugins/Netscape/JSNPObject.cpp
+++ b/Source/WebKit2/WebProcess/Plugins/Netscape/JSNPObject.cpp
@@ -54,10 +54,10 @@ static NPIdentifier npIdentifierFromIdentifier(PropertyName propertyName)
return static_cast<NPIdentifier>(IdentifierRep::get(name.utf8().data()));
}
-const ClassInfo JSNPObject::s_info = { "NPObject", &JSNonFinalObject::s_info, 0, 0, CREATE_METHOD_TABLE(JSNPObject) };
+const ClassInfo JSNPObject::s_info = { "NPObject", &Base::s_info, 0, 0, CREATE_METHOD_TABLE(JSNPObject) };
JSNPObject::JSNPObject(JSGlobalObject* globalObject, Structure* structure, NPRuntimeObjectMap* objectMap, NPObject* npObject)
- : JSNonFinalObject(globalObject->globalData(), structure)
+ : JSDestructibleObject(globalObject->globalData(), structure)
, m_objectMap(objectMap)
, m_npObject(npObject)
{
@@ -404,7 +404,7 @@ bool JSNPObject::deleteProperty(ExecState* exec, NPIdentifier propertyName)
return true;
}
-void JSNPObject::getOwnPropertyNames(JSObject* object, ExecState* exec, PropertyNameArray& propertyNameArray, EnumerationMode mode)
+void JSNPObject::getOwnPropertyNames(JSObject* object, ExecState* exec, PropertyNameArray& propertyNameArray, EnumerationMode)
{
JSNPObject* thisObject = jsCast<JSNPObject*>(object);
ASSERT_GC_OBJECT_INHERITS(thisObject, &s_info);
diff --git a/Source/WebKit2/WebProcess/Plugins/Netscape/JSNPObject.h b/Source/WebKit2/WebProcess/Plugins/Netscape/JSNPObject.h
index 5723baa92..662d6c637 100644
--- a/Source/WebKit2/WebProcess/Plugins/Netscape/JSNPObject.h
+++ b/Source/WebKit2/WebProcess/Plugins/Netscape/JSNPObject.h
@@ -41,9 +41,9 @@ class NPRuntimeObjectMap;
// JSNPObject is a JSObject that wraps an NPObject.
-class JSNPObject : public JSC::JSNonFinalObject {
+class JSNPObject : public JSC::JSDestructibleObject {
public:
- typedef JSC::JSNonFinalObject Base;
+ typedef JSC::JSDestructibleObject Base;
static JSNPObject* create(JSC::JSGlobalObject* globalObject, NPRuntimeObjectMap* objectMap, NPObject* npObject)
{
diff --git a/Source/WebKit2/WebProcess/Plugins/Netscape/NPRuntimeObjectMap.cpp b/Source/WebKit2/WebProcess/Plugins/Netscape/NPRuntimeObjectMap.cpp
index 9dcd91669..fca8909d6 100644
--- a/Source/WebKit2/WebProcess/Plugins/Netscape/NPRuntimeObjectMap.cpp
+++ b/Source/WebKit2/WebProcess/Plugins/Netscape/NPRuntimeObjectMap.cpp
@@ -212,7 +212,7 @@ void NPRuntimeObjectMap::invalidate()
Vector<NPObject*> objects;
for (HashMap<NPObject*, JSC::Weak<JSNPObject> >::iterator ptr = m_jsNPObjects.begin(), end = m_jsNPObjects.end(); ptr != end; ++ptr) {
- JSNPObject* jsNPObject = ptr->second.get();
+ JSNPObject* jsNPObject = ptr->value.get();
if (!jsNPObject) // Skip zombies.
continue;
objects.append(jsNPObject->leakNPObject());
diff --git a/Source/WebKit2/WebProcess/Plugins/Netscape/NetscapeBrowserFuncs.cpp b/Source/WebKit2/WebProcess/Plugins/Netscape/NetscapeBrowserFuncs.cpp
index 3a428e63a..27b10e726 100644
--- a/Source/WebKit2/WebProcess/Plugins/Netscape/NetscapeBrowserFuncs.cpp
+++ b/Source/WebKit2/WebProcess/Plugins/Netscape/NetscapeBrowserFuncs.cpp
@@ -306,19 +306,19 @@ static NPError NPN_PostURL(NPP npp, const char* url, const char* target, uint32_
return NPERR_NO_ERROR;
}
-static NPError NPN_RequestRead(NPStream* stream, NPByteRange* rangeList)
+static NPError NPN_RequestRead(NPStream*, NPByteRange*)
{
notImplemented();
return NPERR_GENERIC_ERROR;
}
-static NPError NPN_NewStream(NPP instance, NPMIMEType type, const char* target, NPStream** stream)
+static NPError NPN_NewStream(NPP, NPMIMEType, const char*, NPStream**)
{
notImplemented();
return NPERR_GENERIC_ERROR;
}
-static int32_t NPN_Write(NPP instance, NPStream* stream, int32_t len, void* buffer)
+static int32_t NPN_Write(NPP, NPStream*, int32_t, void*)
{
notImplemented();
return -1;
@@ -358,12 +358,12 @@ static void NPN_MemFree(void* ptr)
npnMemFree(ptr);
}
-static uint32_t NPN_MemFlush(uint32_t size)
+static uint32_t NPN_MemFlush(uint32_t)
{
return 0;
}
-static void NPN_ReloadPlugins(NPBool reloadPages)
+static void NPN_ReloadPlugins(NPBool)
{
notImplemented();
}
@@ -374,7 +374,7 @@ static JRIEnv* NPN_GetJavaEnv(void)
return 0;
}
-static jref NPN_GetJavaPeer(NPP instance)
+static jref NPN_GetJavaPeer(NPP)
{
notImplemented();
return 0;
@@ -612,14 +612,14 @@ static void NPN_InvalidateRect(NPP npp, NPRect* invalidRect)
plugin->invalidate(invalidRect);
}
-static void NPN_InvalidateRegion(NPP npp, NPRegion invalidRegion)
+static void NPN_InvalidateRegion(NPP npp, NPRegion)
{
// FIXME: We could at least figure out the bounding rectangle of the invalid region.
RefPtr<NetscapePlugin> plugin = NetscapePlugin::fromNPP(npp);
plugin->invalidate(0);
}
-static void NPN_ForceRedraw(NPP instance)
+static void NPN_ForceRedraw(NPP)
{
notImplemented();
}
diff --git a/Source/WebKit2/WebProcess/Plugins/Netscape/NetscapePlugin.cpp b/Source/WebKit2/WebProcess/Plugins/Netscape/NetscapePlugin.cpp
index d67ac9511..5af072515 100644
--- a/Source/WebKit2/WebProcess/Plugins/Netscape/NetscapePlugin.cpp
+++ b/Source/WebKit2/WebProcess/Plugins/Netscape/NetscapePlugin.cpp
@@ -198,8 +198,8 @@ NPError NetscapePlugin::destroyStream(NPStream* stream, NPReason reason)
NetscapePluginStream* pluginStream = 0;
for (StreamsMap::const_iterator it = m_streams.begin(), end = m_streams.end(); it != end; ++it) {
- if (it->second->npStream() == stream) {
- pluginStream = it->second.get();
+ if (it->value->npStream() == stream) {
+ pluginStream = it->value.get();
break;
}
}
@@ -768,8 +768,8 @@ void NetscapePlugin::frameDidFinishLoading(uint64_t requestID)
if (it == m_pendingURLNotifications.end())
return;
- String url = it->second.first;
- void* notificationData = it->second.second;
+ String url = it->value.first;
+ void* notificationData = it->value.second;
m_pendingURLNotifications.remove(it);
@@ -784,8 +784,8 @@ void NetscapePlugin::frameDidFail(uint64_t requestID, bool wasCancelled)
if (it == m_pendingURLNotifications.end())
return;
- String url = it->second.first;
- void* notificationData = it->second.second;
+ String url = it->value.first;
+ void* notificationData = it->value.second;
m_pendingURLNotifications.remove(it);
@@ -913,6 +913,21 @@ bool NetscapePlugin::handleKeyboardEvent(const WebKeyboardEvent& keyboardEvent)
return platformHandleKeyboardEvent(keyboardEvent);
}
+bool NetscapePlugin::handleEditingCommand(const String& commandName, const String& argument)
+{
+ return false;
+}
+
+bool NetscapePlugin::isEditingCommandEnabled(const String& commandName)
+{
+ return false;
+}
+
+bool NetscapePlugin::handlesPageScaleFactor()
+{
+ return false;
+}
+
void NetscapePlugin::setFocus(bool hasFocus)
{
ASSERT(m_isStarted);
@@ -943,6 +958,8 @@ void NetscapePlugin::contentsScaleFactorChanged(float scaleFactor)
#if PLUGIN_ARCHITECTURE(MAC)
double contentsScaleFactor = scaleFactor;
NPP_SetValue(NPNVcontentsScaleFactor, &contentsScaleFactor);
+#else
+ UNUSED_PARAM(scaleFactor);
#endif
}
diff --git a/Source/WebKit2/WebProcess/Plugins/Netscape/NetscapePlugin.h b/Source/WebKit2/WebProcess/Plugins/Netscape/NetscapePlugin.h
index 61e2bb798..1f6168aad 100644
--- a/Source/WebKit2/WebProcess/Plugins/Netscape/NetscapePlugin.h
+++ b/Source/WebKit2/WebProcess/Plugins/Netscape/NetscapePlugin.h
@@ -203,6 +203,12 @@ private:
virtual bool handleContextMenuEvent(const WebMouseEvent&);
virtual bool handleKeyboardEvent(const WebKeyboardEvent&);
virtual void setFocus(bool);
+
+ virtual bool handleEditingCommand(const String& commandName, const String& argument) OVERRIDE;
+ virtual bool isEditingCommandEnabled(const String&) OVERRIDE;
+
+ virtual bool handlesPageScaleFactor() OVERRIDE;
+
virtual NPObject* pluginScriptableNPObject();
#if PLATFORM(MAC)
diff --git a/Source/WebKit2/WebProcess/Plugins/Netscape/mac/NetscapeSandboxFunctions.mm b/Source/WebKit2/WebProcess/Plugins/Netscape/mac/NetscapeSandboxFunctions.mm
index 07cd2e708..e9474495a 100644
--- a/Source/WebKit2/WebProcess/Plugins/Netscape/mac/NetscapeSandboxFunctions.mm
+++ b/Source/WebKit2/WebProcess/Plugins/Netscape/mac/NetscapeSandboxFunctions.mm
@@ -109,6 +109,10 @@ NPError enterSandbox(const char* sandboxProfile, const char* readOnlyPaths[], co
exit(EX_NOPERM);
}
setenv("TMPDIR", temporaryDirectory, 1);
+ if (chdir(temporaryDirectory) == -1) {
+ WTFLogAlways("PluginProcess: couldn't change working directory to temporary path: %s, errno %d\n", temporaryDirectory, errno);
+ exit(EX_OSERR);
+ }
#endif
diff --git a/Source/WebKit2/WebProcess/Plugins/Netscape/gtk/PluginProxyGtk.cpp b/Source/WebKit2/WebProcess/Plugins/Netscape/unix/PluginProxyUnix.cpp
index 996af20ca..996af20ca 100644
--- a/Source/WebKit2/WebProcess/Plugins/Netscape/gtk/PluginProxyGtk.cpp
+++ b/Source/WebKit2/WebProcess/Plugins/Netscape/unix/PluginProxyUnix.cpp
diff --git a/Source/WebKit2/WebProcess/Plugins/Netscape/x11/NetscapePluginX11.cpp b/Source/WebKit2/WebProcess/Plugins/Netscape/x11/NetscapePluginX11.cpp
index 5c9e67872..30a0e86cd 100644
--- a/Source/WebKit2/WebProcess/Plugins/Netscape/x11/NetscapePluginX11.cpp
+++ b/Source/WebKit2/WebProcess/Plugins/Netscape/x11/NetscapePluginX11.cpp
@@ -37,15 +37,20 @@
#if PLATFORM(QT)
#include <WebCore/QtX11ImageConversion.h>
#elif PLATFORM(GTK)
-#include "PlatformContextCairo.h"
-#include "RefPtrCairo.h"
-#include <cairo-xlib.h>
#include <gtk/gtk.h>
#ifndef GTK_API_VERSION_2
#include <gtk/gtkx.h>
#endif
#include <gdk/gdkx.h>
#include <WebCore/GtkVersioning.h>
+#elif PLATFORM(EFL) && defined(HAVE_ECORE_X)
+#include <Ecore_X.h>
+#endif
+
+#if USE(CAIRO) && !PLATFORM(WIN_CAIRO)
+#include "PlatformContextCairo.h"
+#include "RefPtrCairo.h"
+#include <cairo/cairo-xlib.h>
#endif
using namespace WebCore;
@@ -84,6 +89,8 @@ static Display* getPluginDisplay()
// Since we're a gdk/gtk app, we'll (probably?) have the same X connection as any gdk-based
// plugins, so we can return that. We might want to add other implementations here later.
return GDK_DISPLAY_XDISPLAY(gdk_display_get_default());
+#elif PLATFORM(EFL) && defined(HAVE_ECORE_X)
+ return static_cast<Display*>(ecore_x_display_get());
#else
return 0;
#endif
@@ -95,6 +102,8 @@ static inline int x11Screen()
return XDefaultScreen(NetscapePlugin::x11HostDisplay());
#elif PLATFORM(GTK)
return gdk_screen_get_number(gdk_screen_get_default());
+#elif PLATFORM(EFL) && defined(HAVE_ECORE_X)
+ return ecore_x_screen_index_get(ecore_x_default_screen_get());
#else
return 0;
#endif
@@ -106,6 +115,8 @@ static inline int displayDepth()
return XDefaultDepth(NetscapePlugin::x11HostDisplay(), x11Screen());
#elif PLATFORM(GTK)
return gdk_visual_get_depth(gdk_screen_get_system_visual(gdk_screen_get_default()));
+#elif PLATFORM(EFL) && defined(HAVE_ECORE_X)
+ return ecore_x_default_depth_get(NetscapePlugin::x11HostDisplay(), ecore_x_default_screen_get());
#else
return 0;
#endif
@@ -117,6 +128,8 @@ static inline unsigned long rootWindowID()
return XDefaultRootWindow(NetscapePlugin::x11HostDisplay());
#elif PLATFORM(GTK)
return GDK_ROOT_WINDOW();
+#elif PLATFORM(EFL) && defined(HAVE_ECORE_X)
+ return ecore_x_window_root_first_get();
#else
return 0;
#endif
@@ -144,6 +157,8 @@ Display* NetscapePlugin::x11HostDisplay()
return dedicatedDisplay;
#elif PLATFORM(GTK)
return GDK_DISPLAY_XDISPLAY(gdk_display_get_default());
+#elif PLATFORM(EFL) && defined(HAVE_ECORE_X)
+ return static_cast<Display*>(ecore_x_display_get());
#else
return 0;
#endif
@@ -188,6 +203,8 @@ bool NetscapePlugin::platformPostInitializeWindowed(bool needsXEmbed, uint64_t w
callbackStruct->visual = GDK_VISUAL_XVISUAL(gdk_window_get_visual(window));
callbackStruct->depth = gdk_visual_get_depth(gdk_window_get_visual(window));
callbackStruct->colormap = XCreateColormap(display, GDK_ROOT_WINDOW(), callbackStruct->visual, AllocNone);
+#else
+ UNUSED_PARAM(windowID);
#endif
XFlush(display);
@@ -357,7 +374,7 @@ void NetscapePlugin::platformPaint(GraphicsContext* context, const IntRect& dirt
painter->drawImage(QPoint(exposedRect.x(), exposedRect.y()), qimageFromXImage(xImage), exposedRect);
XDestroyImage(xImage);
-#elif PLATFORM(GTK)
+#elif PLATFORM(GTK) || (PLATFORM(EFL) && USE(CAIRO))
RefPtr<cairo_surface_t> drawableSurface = adoptRef(cairo_xlib_surface_create(m_pluginDisplay,
m_drawable,
static_cast<NPSetWindowCallbackStruct*>(m_npWindow.ws_info)->visual,
diff --git a/Source/WebKit2/WebProcess/Plugins/PDF/PDFPlugin.h b/Source/WebKit2/WebProcess/Plugins/PDF/PDFPlugin.h
new file mode 100644
index 000000000..cd58d8721
--- /dev/null
+++ b/Source/WebKit2/WebProcess/Plugins/PDF/PDFPlugin.h
@@ -0,0 +1,104 @@
+/*
+ * Copyright (C) 2011, 2012 Apple Inc. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef PDFPlugin_h
+#define PDFPlugin_h
+
+#if ENABLE(PDFKIT_PLUGIN)
+
+#include "Plugin.h"
+#include "SimplePDFPlugin.h"
+#include <WebCore/AffineTransform.h>
+#include <WebCore/ScrollableArea.h>
+#include <wtf/RetainPtr.h>
+
+typedef const struct OpaqueJSContext* JSContextRef;
+typedef struct OpaqueJSValue* JSObjectRef;
+typedef const struct OpaqueJSValue* JSValueRef;
+
+OBJC_CLASS PDFLayerController;
+OBJC_CLASS WKPDFLayerControllerDelegate;
+
+namespace WebCore {
+struct PluginInfo;
+}
+
+namespace WebKit {
+
+class PluginView;
+class WebFrame;
+
+class PDFPlugin : public SimplePDFPlugin {
+public:
+ static PassRefPtr<PDFPlugin> create(WebFrame*);
+ ~PDFPlugin();
+
+ void paintControlForLayerInContext(CALayer *, CGContextRef);
+
+ using ScrollableArea::notifyScrollPositionChanged;
+
+private:
+ explicit PDFPlugin(WebFrame*);
+
+ virtual void updateScrollbars() OVERRIDE;
+ virtual PassRefPtr<WebCore::Scrollbar> createScrollbar(WebCore::ScrollbarOrientation) OVERRIDE;
+ virtual void destroyScrollbar(WebCore::ScrollbarOrientation) OVERRIDE;
+ virtual void pdfDocumentDidLoad() OVERRIDE;
+ virtual void calculateSizes() OVERRIDE;
+
+ virtual void destroy() OVERRIDE;
+ virtual void paint(WebCore::GraphicsContext*, const WebCore::IntRect& dirtyRectInWindowCoordinates) OVERRIDE;
+ virtual PassRefPtr<ShareableBitmap> snapshot() OVERRIDE;
+ virtual PlatformLayer* pluginLayer() OVERRIDE;
+ virtual void geometryDidChange(const WebCore::IntSize& pluginSize, const WebCore::IntRect& clipRect, const WebCore::AffineTransform& pluginToRootViewTransform) OVERRIDE;
+ virtual bool handleMouseEvent(const WebMouseEvent&) OVERRIDE;
+ virtual bool handleKeyboardEvent(const WebKeyboardEvent&) OVERRIDE;
+ virtual bool handleEditingCommand(const String& commandName, const String& argument) OVERRIDE;
+ virtual bool isEditingCommandEnabled(const String&) OVERRIDE;
+ virtual bool handlesPageScaleFactor() OVERRIDE { return true; }
+
+ // ScrollableArea functions.
+ virtual void setScrollOffset(const WebCore::IntPoint&) OVERRIDE;
+ virtual void invalidateScrollbarRect(WebCore::Scrollbar*, const WebCore::IntRect&) OVERRIDE;
+ virtual void invalidateScrollCornerRect(const WebCore::IntRect&) OVERRIDE;
+
+ RetainPtr<CALayer> m_containerLayer;
+ RetainPtr<CALayer> m_contentLayer;
+ RetainPtr<CALayer> m_horizontalScrollbarLayer;
+ RetainPtr<CALayer> m_verticalScrollbarLayer;
+ RetainPtr<CALayer> m_scrollCornerLayer;
+ RetainPtr<PDFLayerController> m_pdfLayerController;
+
+ WebCore::AffineTransform m_rootViewToPluginTransform;
+ WebCore::IntPoint m_lastMousePoint;
+
+ RetainPtr<WKPDFLayerControllerDelegate> m_pdfLayerControllerDelegate;
+};
+
+} // namespace WebKit
+
+#endif // ENABLE(PDFKIT_PLUGIN)
+
+#endif // PDFPlugin_h
diff --git a/Source/WebKit2/WebProcess/Plugins/PDF/PDFPlugin.mm b/Source/WebKit2/WebProcess/Plugins/PDF/PDFPlugin.mm
new file mode 100644
index 000000000..c5a3469cd
--- /dev/null
+++ b/Source/WebKit2/WebProcess/Plugins/PDF/PDFPlugin.mm
@@ -0,0 +1,582 @@
+/*
+ * Copyright (C) 2009, 2011, 2012 Apple Inc. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#if ENABLE(PDFKIT_PLUGIN)
+
+#import "config.h"
+#import "PDFPlugin.h"
+
+#import "PDFKitImports.h"
+#import "PluginView.h"
+#import "ShareableBitmap.h"
+#import "WebEvent.h"
+#import "WebEventConversion.h"
+#import <PDFKit/PDFKit.h>
+#import <QuartzCore/QuartzCore.h>
+#import <WebCore/ArchiveResource.h>
+#import <WebCore/Chrome.h>
+#import <WebCore/DocumentLoader.h>
+#import <WebCore/FocusController.h>
+#import <WebCore/Frame.h>
+#import <WebCore/FrameView.h>
+#import <WebCore/GraphicsContext.h>
+#import <WebCore/HTTPHeaderMap.h>
+#import <WebCore/LocalizedStrings.h>
+#import <WebCore/Page.h>
+#import <WebCore/Pasteboard.h>
+#import <WebCore/PluginData.h>
+#import <WebCore/RenderBoxModelObject.h>
+#import <WebCore/ScrollAnimator.h>
+#import <WebCore/ScrollbarTheme.h>
+
+@protocol PDFLayerControllerDelegate <NSObject>
+
+- (void)updateScrollPosition:(CGPoint)newPosition;
+- (void)writeItemsToPasteboard:(NSArray *)items withTypes:(NSArray *)types;
+- (void)showDefinitionForAttributedString:(NSAttributedString *)string atPoint:(CGPoint)point;
+- (void)performWebSearch:(NSString *)string;
+- (void)openWithPreview;
+- (void)saveToPDF;
+
+@end
+
+@interface PDFLayerController : NSObject
+@end
+
+@interface PDFLayerController (Details)
+
+@property (retain) CALayer *parentLayer;
+@property (retain) PDFDocument *document;
+@property (retain) id<PDFLayerControllerDelegate> delegate;
+
+- (void)setFrameSize:(CGSize)size;
+
+- (void)setDisplayMode:(int)mode;
+- (void)setDisplaysPageBreaks:(BOOL)pageBreaks;
+
+- (CGFloat)tileScaleFactor;
+- (void)setTileScaleFactor:(CGFloat)scaleFactor;
+
+- (CGSize)contentSize;
+- (CGSize)contentSizeRespectingZoom;
+
+- (void)snapshotInContext:(CGContextRef)context;
+
+- (void)magnifyWithMagnification:(CGFloat)magnification atPoint:(CGPoint)point immediately:(BOOL)immediately;
+
+- (CGPoint)scrollPosition;
+- (void)setScrollPosition:(CGPoint)newPosition;
+- (void)scrollWithDelta:(CGSize)delta;
+
+- (void)mouseDown:(NSEvent *)event;
+- (void)mouseMoved:(NSEvent *)event;
+- (void)mouseUp:(NSEvent *)event;
+- (void)mouseDragged:(NSEvent *)event;
+- (void)mouseEntered:(NSEvent *)event;
+- (void)mouseExited:(NSEvent *)event;
+
+- (NSArray *)findString:(NSString *)string caseSensitive:(BOOL)isCaseSensitive highlightMatches:(BOOL)shouldHighlightMatches;
+
+- (id)currentSelection;
+- (void)copySelection;
+- (void)selectAll;
+
+- (bool)keyDown:(NSEvent *)event;
+
+- (void)setHUDEnabled:(BOOL)enabled;
+- (BOOL)hudEnabled;
+
+@end
+
+using namespace WebCore;
+
+@interface WKPDFPluginScrollbarLayer : CALayer
+{
+ WebKit::PDFPlugin* _pdfPlugin;
+}
+
+@property (assign) WebKit::PDFPlugin* pdfPlugin;
+
+@end
+
+@implementation WKPDFPluginScrollbarLayer
+
+@synthesize pdfPlugin=_pdfPlugin;
+
+- (id)initWithPDFPlugin:(WebKit::PDFPlugin *)plugin
+{
+ if (!(self = [super init]))
+ return nil;
+
+ _pdfPlugin = plugin;
+
+ return self;
+}
+
+- (id<CAAction>)actionForKey:(NSString *)key
+{
+ return nil;
+}
+
+- (void)drawInContext:(CGContextRef)ctx
+{
+ _pdfPlugin->paintControlForLayerInContext(self, ctx);
+}
+
+@end
+
+@interface WKPDFLayerControllerDelegate : NSObject<PDFLayerControllerDelegate>
+{
+ WebKit::PDFPlugin* _pdfPlugin;
+}
+
+@property (assign) WebKit::PDFPlugin* pdfPlugin;
+
+@end
+
+@implementation WKPDFLayerControllerDelegate
+
+@synthesize pdfPlugin=_pdfPlugin;
+
+- (id)initWithPDFPlugin:(WebKit::PDFPlugin *)plugin
+{
+ if (!(self = [super init]))
+ return nil;
+
+ _pdfPlugin = plugin;
+
+ return self;
+}
+
+- (void)updateScrollPosition:(CGPoint)newPosition
+{
+ _pdfPlugin->notifyScrollPositionChanged(IntPoint(newPosition));
+}
+
+- (void)writeItemsToPasteboard:(NSArray *)items withTypes:(NSArray *)types
+{
+ // FIXME: Handle types other than plain text.
+
+ for (NSUInteger i = 0, count = items.count; i < count; ++i) {
+ NSString *type = [types objectAtIndex:i];
+ if ([type isEqualToString:NSStringPboardType] || [type isEqualToString:NSPasteboardTypeString]) {
+ RetainPtr<NSString> plainTextString(AdoptNS, [[NSString alloc] initWithData:[items objectAtIndex:i] encoding:NSUTF8StringEncoding]);
+ Pasteboard::generalPasteboard()->writePlainText(plainTextString.get(), Pasteboard::CannotSmartReplace);
+ }
+ }
+}
+
+- (void)showDefinitionForAttributedString:(NSAttributedString *)string atPoint:(CGPoint)point
+{
+ // FIXME: Implement.
+}
+
+- (void)performWebSearch:(NSString *)string
+{
+ // FIXME: Implement.
+}
+
+- (void)openWithPreview
+{
+ // FIXME: Implement.
+}
+
+- (void)saveToPDF
+{
+ // FIXME: Implement.
+}
+
+@end
+
+namespace WebKit {
+
+PassRefPtr<PDFPlugin> PDFPlugin::create(WebFrame* frame)
+{
+ return adoptRef(new PDFPlugin(frame));
+}
+
+PDFPlugin::PDFPlugin(WebFrame* frame)
+ : SimplePDFPlugin(frame)
+ , m_containerLayer(AdoptNS, [[CALayer alloc] init])
+ , m_contentLayer(AdoptNS, [[CALayer alloc] init])
+ , m_scrollCornerLayer(AdoptNS, [[WKPDFPluginScrollbarLayer alloc] initWithPDFPlugin:this])
+ , m_pdfLayerController(AdoptNS, [[pdfLayerControllerClass() alloc] init])
+ , m_pdfLayerControllerDelegate(AdoptNS, [[WKPDFLayerControllerDelegate alloc] initWithPDFPlugin:this])
+{
+ m_pdfLayerController.get().delegate = m_pdfLayerControllerDelegate.get();
+ m_pdfLayerController.get().parentLayer = m_contentLayer.get();
+
+ [m_containerLayer.get() addSublayer:m_contentLayer.get()];
+ [m_containerLayer.get() addSublayer:m_scrollCornerLayer.get()];
+}
+
+PDFPlugin::~PDFPlugin()
+{
+}
+
+void PDFPlugin::updateScrollbars()
+{
+ SimplePDFPlugin::updateScrollbars();
+
+ if (m_verticalScrollbarLayer) {
+ m_verticalScrollbarLayer.get().frame = verticalScrollbar()->frameRect();
+ [m_verticalScrollbarLayer.get() setNeedsDisplay];
+ }
+
+ if (m_horizontalScrollbarLayer) {
+ m_horizontalScrollbarLayer.get().frame = horizontalScrollbar()->frameRect();
+ [m_horizontalScrollbarLayer.get() setNeedsDisplay];
+ }
+
+ if (m_scrollCornerLayer) {
+ m_scrollCornerLayer.get().frame = scrollCornerRect();
+ [m_scrollCornerLayer.get() setNeedsDisplay];
+ }
+}
+
+PassRefPtr<Scrollbar> PDFPlugin::createScrollbar(ScrollbarOrientation orientation)
+{
+ RefPtr<Scrollbar> widget = Scrollbar::createNativeScrollbar(this, orientation, RegularScrollbar);
+ if (orientation == HorizontalScrollbar) {
+ m_horizontalScrollbarLayer.adoptNS([[WKPDFPluginScrollbarLayer alloc] initWithPDFPlugin:this]);
+ [m_containerLayer.get() addSublayer:m_horizontalScrollbarLayer.get()];
+
+ didAddHorizontalScrollbar(widget.get());
+ } else {
+ m_verticalScrollbarLayer.adoptNS([[WKPDFPluginScrollbarLayer alloc] initWithPDFPlugin:this]);
+ [m_containerLayer.get() addSublayer:m_verticalScrollbarLayer.get()];
+
+ didAddVerticalScrollbar(widget.get());
+ }
+ pluginView()->frame()->view()->addChild(widget.get());
+ return widget.release();
+}
+
+void PDFPlugin::destroyScrollbar(ScrollbarOrientation orientation)
+{
+ SimplePDFPlugin::destroyScrollbar(orientation);
+
+ if (orientation == HorizontalScrollbar) {
+ [m_horizontalScrollbarLayer.get() removeFromSuperlayer];
+ m_horizontalScrollbarLayer = 0;
+ } else {
+ [m_verticalScrollbarLayer.get() removeFromSuperlayer];
+ m_verticalScrollbarLayer = 0;
+ }
+}
+
+void PDFPlugin::pdfDocumentDidLoad()
+{
+ addArchiveResource();
+
+ RetainPtr<PDFDocument> document(AdoptNS, [[pdfDocumentClass() alloc] initWithData:(NSData *)data().get()]);
+
+ setPDFDocument(document);
+
+ [m_pdfLayerController.get() setFrameSize:size()];
+ m_pdfLayerController.get().document = document.get();
+
+ pluginView()->setPageScaleFactor([m_pdfLayerController.get() tileScaleFactor], IntPoint());
+
+ calculateSizes();
+ updateScrollbars();
+
+ controller()->invalidate(IntRect(IntPoint(), size()));
+
+ runScriptsInPDFDocument();
+}
+
+void PDFPlugin::calculateSizes()
+{
+ // FIXME: This should come straight from PDFKit.
+ computePageBoxes();
+
+ setPDFDocumentSize(IntSize([m_pdfLayerController.get() contentSizeRespectingZoom]));
+}
+
+void PDFPlugin::destroy()
+{
+ m_pdfLayerController.get().delegate = 0;
+
+ if (webFrame()) {
+ if (FrameView* frameView = webFrame()->coreFrame()->view())
+ frameView->removeScrollableArea(this);
+ }
+
+ destroyScrollbar(HorizontalScrollbar);
+ destroyScrollbar(VerticalScrollbar);
+
+ [m_scrollCornerLayer.get() removeFromSuperlayer];
+ [m_contentLayer.get() removeFromSuperlayer];
+}
+
+void PDFPlugin::paint(GraphicsContext* graphicsContext, const IntRect& dirtyRect)
+{
+}
+
+void PDFPlugin::paintControlForLayerInContext(CALayer *layer, CGContextRef context)
+{
+ GraphicsContext graphicsContext(context);
+ GraphicsContextStateSaver stateSaver(graphicsContext);
+
+ graphicsContext.setIsCALayerContext(true);
+
+ if (layer == m_scrollCornerLayer) {
+ IntRect scrollCornerRect = this->scrollCornerRect();
+ graphicsContext.translate(-scrollCornerRect.x(), -scrollCornerRect.y());
+ ScrollbarTheme::theme()->paintScrollCorner(0, &graphicsContext, scrollCornerRect);
+ return;
+ }
+
+ Scrollbar* scrollbar = 0;
+
+ if (layer == m_verticalScrollbarLayer)
+ scrollbar = verticalScrollbar();
+ else if (layer == m_horizontalScrollbarLayer)
+ scrollbar = horizontalScrollbar();
+
+ if (!scrollbar)
+ return;
+
+ graphicsContext.translate(-scrollbar->x(), -scrollbar->y());
+ scrollbar->paint(&graphicsContext, scrollbar->frameRect());
+}
+
+PassRefPtr<ShareableBitmap> PDFPlugin::snapshot()
+{
+ if (size().isEmpty())
+ return 0;
+
+ // FIXME: Support non-1 page/deviceScaleFactor.
+ IntSize backingStoreSize = size();
+
+ RefPtr<ShareableBitmap> bitmap = ShareableBitmap::createShareable(backingStoreSize, ShareableBitmap::SupportsAlpha);
+ OwnPtr<GraphicsContext> context = bitmap->createGraphicsContext();
+
+ context->scale(FloatSize(1, -1));
+ context->translate(0, -size().height());
+
+ [m_pdfLayerController.get() snapshotInContext:context->platformContext()];
+
+ return bitmap.release();
+}
+
+PlatformLayer* PDFPlugin::pluginLayer()
+{
+ return m_containerLayer.get();
+}
+
+void PDFPlugin::geometryDidChange(const IntSize& pluginSize, const IntRect&, const AffineTransform& pluginToRootViewTransform)
+{
+ if (size() == pluginSize && pluginView()->pageScaleFactor() == [m_pdfLayerController.get() tileScaleFactor])
+ return;
+
+ setSize(pluginSize);
+ m_rootViewToPluginTransform = pluginToRootViewTransform.inverse();
+ [m_pdfLayerController.get() setFrameSize:pluginSize];
+
+ [CATransaction begin];
+ [CATransaction setDisableActions:YES];
+ CATransform3D transform = CATransform3DMakeScale(1, -1, 1);
+
+ CGFloat magnification = pluginView()->pageScaleFactor() - [m_pdfLayerController.get() tileScaleFactor];
+
+ // FIXME: Instead of m_lastMousePoint, we should use the zoom origin from PluginView::setPageScaleFactor.
+ [m_pdfLayerController.get() magnifyWithMagnification:magnification atPoint:m_lastMousePoint immediately:YES];
+ [m_contentLayer.get() setSublayerTransform:CATransform3DTranslate(transform, 0, -pluginSize.height(), 0)];
+ [CATransaction commit];
+
+ calculateSizes();
+ updateScrollbars();
+}
+
+static NSUInteger modifierFlagsFromWebEvent(const WebEvent& event)
+{
+ return (event.shiftKey() ? NSShiftKeyMask : 0)
+ | (event.controlKey() ? NSControlKeyMask : 0)
+ | (event.altKey() ? NSAlternateKeyMask : 0)
+ | (event.metaKey() ? NSCommandKeyMask : 0);
+}
+
+static NSEventType eventTypeFromWebEvent(const WebEvent& event, bool mouseButtonIsDown)
+{
+ switch (event.type()) {
+ case WebEvent::KeyDown:
+ return NSKeyDown;
+ case WebEvent::KeyUp:
+ return NSKeyUp;
+
+ case WebEvent::MouseDown:
+ switch (static_cast<const WebMouseEvent&>(event).button()) {
+ case WebMouseEvent::LeftButton:
+ return NSLeftMouseDown;
+ case WebMouseEvent::RightButton:
+ return NSRightMouseDown;
+ default:
+ return 0;
+ }
+ break;
+ case WebEvent::MouseUp:
+ switch (static_cast<const WebMouseEvent&>(event).button()) {
+ case WebMouseEvent::LeftButton:
+ return NSLeftMouseUp;
+ case WebMouseEvent::RightButton:
+ return NSRightMouseUp;
+ default:
+ return 0;
+ }
+ break;
+ case WebEvent::MouseMove:
+ if (mouseButtonIsDown) {
+ switch (static_cast<const WebMouseEvent&>(event).button()) {
+ case WebMouseEvent::LeftButton:
+ return NSLeftMouseDragged;
+ case WebMouseEvent::RightButton:
+ return NSRightMouseDragged;
+ default:
+ return 0;
+ }
+ } else
+ return NSMouseMoved;
+ break;
+
+ default:
+ return 0;
+ }
+}
+
+bool PDFPlugin::handleMouseEvent(const WebMouseEvent& event)
+{
+ static bool mouseButtonIsDown;
+
+ IntPoint mousePosition = event.position();
+
+ // FIXME: Forward mouse events to the appropriate scrollbar.
+ if (IntRect(m_verticalScrollbarLayer.get().frame).contains(mousePosition)
+ || IntRect(m_horizontalScrollbarLayer.get().frame).contains(mousePosition)
+ || IntRect(m_scrollCornerLayer.get().frame).contains(mousePosition))
+ return false;
+
+ IntPoint positionInPDFView(mousePosition);
+ positionInPDFView = m_rootViewToPluginTransform.mapPoint(positionInPDFView);
+ positionInPDFView.setY(size().height() - positionInPDFView.y());
+
+ m_lastMousePoint = positionInPDFView;
+
+ NSEventType eventType = eventTypeFromWebEvent(event, mouseButtonIsDown);
+
+ if (!eventType)
+ return false;
+
+ NSUInteger modifierFlags = modifierFlagsFromWebEvent(event);
+
+ NSEvent *fakeEvent = [NSEvent mouseEventWithType:eventType location:positionInPDFView modifierFlags:modifierFlags timestamp:0 windowNumber:0 context:nil eventNumber:0 clickCount:event.clickCount() pressure:0];
+
+ switch (event.type()) {
+ case WebEvent::MouseMove:
+ if (mouseButtonIsDown)
+ [m_pdfLayerController.get() mouseDragged:fakeEvent];
+ else
+ [m_pdfLayerController.get() mouseMoved:fakeEvent];
+ mouseMovedInContentArea();
+ return true;
+ case WebEvent::MouseDown: {
+ mouseButtonIsDown = true;
+ [m_pdfLayerController.get() mouseDown:fakeEvent];
+ return true;
+ }
+ case WebEvent::MouseUp: {
+ [m_pdfLayerController.get() mouseUp:fakeEvent];
+ mouseButtonIsDown = false;
+ PlatformMouseEvent platformEvent = platform(event);
+ return true;
+ }
+ default:
+ break;
+ }
+
+ return false;
+}
+
+bool PDFPlugin::handleKeyboardEvent(const WebKeyboardEvent& event)
+{
+ NSEventType eventType = eventTypeFromWebEvent(event, false);
+ NSUInteger modifierFlags = modifierFlagsFromWebEvent(event);
+
+ NSEvent *fakeEvent = [NSEvent keyEventWithType:eventType location:NSZeroPoint modifierFlags:modifierFlags timestamp:0 windowNumber:0 context:0 characters:event.text() charactersIgnoringModifiers:event.unmodifiedText() isARepeat:event.isAutoRepeat() keyCode:event.nativeVirtualKeyCode()];
+
+ switch (event.type()) {
+ case WebEvent::KeyDown:
+ return [m_pdfLayerController.get() keyDown:fakeEvent];
+ default:
+ return false;
+ }
+
+ return false;
+}
+
+bool PDFPlugin::handleEditingCommand(const String& commandName, const String& argument)
+{
+ if (commandName == "copy")
+ [m_pdfLayerController.get() copySelection];
+ else if (commandName == "selectAll")
+ [m_pdfLayerController.get() selectAll];
+
+ return true;
+}
+
+bool PDFPlugin::isEditingCommandEnabled(const String& commandName)
+{
+ if (commandName == "copy")
+ return [m_pdfLayerController.get() currentSelection];
+
+ if (commandName == "selectAll")
+ return true;
+
+ return false;
+}
+
+void PDFPlugin::setScrollOffset(const IntPoint& offset)
+{
+ SimplePDFPlugin::setScrollOffset(offset);
+ [m_pdfLayerController.get() setScrollPosition:offset];
+}
+
+void PDFPlugin::invalidateScrollbarRect(Scrollbar* scrollbar, const IntRect& rect)
+{
+ if (scrollbar == horizontalScrollbar())
+ [m_horizontalScrollbarLayer.get() setNeedsDisplay];
+ else if (scrollbar == verticalScrollbar())
+ [m_verticalScrollbarLayer.get() setNeedsDisplay];
+}
+
+void PDFPlugin::invalidateScrollCornerRect(const IntRect& rect)
+{
+ [m_scrollCornerLayer.get() setNeedsDisplay];
+}
+
+} // namespace WebKit
+
+#endif // ENABLE(PDFKIT_PLUGIN)
diff --git a/Source/WebKit2/WebProcess/Plugins/PDF/BuiltInPDFView.h b/Source/WebKit2/WebProcess/Plugins/PDF/SimplePDFPlugin.h
index 1c8829d2b..6b8a93e04 100644
--- a/Source/WebKit2/WebProcess/Plugins/PDF/BuiltInPDFView.h
+++ b/Source/WebKit2/WebProcess/Plugins/PDF/SimplePDFPlugin.h
@@ -23,8 +23,8 @@
* THE POSSIBILITY OF SUCH DAMAGE.
*/
-#ifndef BuiltInPDFView_h
-#define BuiltInPDFView_h
+#ifndef SimplePDFPlugin_h
+#define SimplePDFPlugin_h
#include "Plugin.h"
#include <WebCore/ScrollableArea.h>
@@ -35,7 +35,7 @@ typedef struct OpaqueJSValue* JSObjectRef;
typedef const struct OpaqueJSValue* JSValueRef;
namespace WebCore {
- struct PluginInfo;
+struct PluginInfo;
}
namespace WebKit {
@@ -43,32 +43,48 @@ namespace WebKit {
class PluginView;
class WebFrame;
-class BuiltInPDFView : public Plugin, private WebCore::ScrollableArea {
+class SimplePDFPlugin : public Plugin, protected WebCore::ScrollableArea {
public:
- static PassRefPtr<BuiltInPDFView> create(WebFrame*);
- ~BuiltInPDFView();
+ static PassRefPtr<SimplePDFPlugin> create(WebFrame*);
+ ~SimplePDFPlugin();
static WebCore::PluginInfo pluginInfo();
// In-process PDFViews don't support asynchronous initialization.
virtual bool isBeingAsynchronouslyInitialized() const { return false; }
-private:
- explicit BuiltInPDFView(WebFrame*);
+protected:
+ explicit SimplePDFPlugin(WebFrame*);
+
+ WebFrame* webFrame() const { return m_frame; }
+
+ WebCore::IntSize size() const { return m_size; }
+ void setSize(WebCore::IntSize size) { m_size = size; }
+
+ RetainPtr<PDFDocument> pdfDocument() const { return m_pdfDocument; }
+ void setPDFDocument(RetainPtr<PDFDocument> document) { m_pdfDocument = document; }
+
+ WebCore::IntSize pdfDocumentSize() const { return m_pdfDocumentSize; }
+ void setPDFDocumentSize(WebCore::IntSize size) { m_pdfDocumentSize = size; }
+
+ RetainPtr<CFMutableDataRef> data() const { return m_data; }
// Regular plug-ins don't need access to view, but we add scrollbars to embedding FrameView for proper event handling.
PluginView* pluginView();
const PluginView* pluginView() const;
- void updateScrollbars();
- PassRefPtr<WebCore::Scrollbar> createScrollbar(WebCore::ScrollbarOrientation);
- void destroyScrollbar(WebCore::ScrollbarOrientation);
- void addArchiveResource();
- void pdfDocumentDidLoad();
- void calculateSizes();
+ virtual void updateScrollbars();
+ virtual PassRefPtr<WebCore::Scrollbar> createScrollbar(WebCore::ScrollbarOrientation);
+ virtual void destroyScrollbar(WebCore::ScrollbarOrientation);
+ virtual void addArchiveResource();
+ virtual void pdfDocumentDidLoad();
+ virtual void computePageBoxes();
+ virtual void calculateSizes();
void paintBackground(WebCore::GraphicsContext*, const WebCore::IntRect& dirtyRect);
void paintContent(WebCore::GraphicsContext*, const WebCore::IntRect& dirtyRect);
void paintControls(WebCore::GraphicsContext*, const WebCore::IntRect& dirtyRect);
+
+ void runScriptsInPDFDocument();
// Plug-in methods
virtual bool initialize(const Parameters&);
@@ -143,18 +159,27 @@ private:
virtual bool scrollbarsCanBeActive() const OVERRIDE;
virtual bool shouldSuspendScrollAnimations() const OVERRIDE { return false; } // If we return true, ScrollAnimatorMac will keep cycling a timer forever, waiting for a good time to animate.
virtual void scrollbarStyleChanged(int newStyle, bool forceUpdate) OVERRIDE;
- // FIXME: Implement the other conversion functions; this one is enough to get scrollbar hit testing working.
+
+ virtual WebCore::IntRect convertFromScrollbarToContainingView(const WebCore::Scrollbar*, const WebCore::IntRect& scrollbarRect) const OVERRIDE;
+ virtual WebCore::IntRect convertFromContainingViewToScrollbar(const WebCore::Scrollbar*, const WebCore::IntRect& parentRect) const OVERRIDE;
+ virtual WebCore::IntPoint convertFromScrollbarToContainingView(const WebCore::Scrollbar*, const WebCore::IntPoint& scrollbarPoint) const OVERRIDE;
virtual WebCore::IntPoint convertFromContainingViewToScrollbar(const WebCore::Scrollbar*, const WebCore::IntPoint& parentPoint) const OVERRIDE;
+
+ virtual bool isEditingCommandEnabled(const String&) OVERRIDE;
+ virtual bool handleEditingCommand(const String&, const String&) OVERRIDE;
+ virtual bool handlesPageScaleFactor() OVERRIDE;
+
+private:
JSObjectRef makeJSPDFDoc(JSContextRef);
static JSValueRef jsPDFDocPrint(JSContextRef, JSObjectRef function, JSObjectRef thisObject, size_t argumentCount, const JSValueRef arguments[], JSValueRef* exception);
- WebCore::IntSize m_pluginSize;
+ WebCore::IntSize m_size;
WebCore::KURL m_sourceURL;
String m_suggestedFilename;
- RetainPtr<CFMutableDataRef> m_dataBuffer;
+ RetainPtr<CFMutableDataRef> m_data;
RetainPtr<PDFDocument> m_pdfDocument;
Vector<WebCore::IntRect> m_pageBoxes;
@@ -170,4 +195,4 @@ private:
} // namespace WebKit
-#endif // BuiltInPDFView_h
+#endif // SimplePDFPlugin_h
diff --git a/Source/WebKit2/WebProcess/Plugins/PDF/BuiltInPDFView.mm b/Source/WebKit2/WebProcess/Plugins/PDF/SimplePDFPlugin.mm
index 8dcaea96c..98a73b2b1 100644
--- a/Source/WebKit2/WebProcess/Plugins/PDF/BuiltInPDFView.mm
+++ b/Source/WebKit2/WebProcess/Plugins/PDF/SimplePDFPlugin.mm
@@ -24,7 +24,7 @@
*/
#import "config.h"
-#import "BuiltInPDFView.h"
+#import "SimplePDFPlugin.h"
#import "PDFKitImports.h"
#import "PluginView.h"
@@ -156,21 +156,21 @@ const int shadowOffsetX = 0;
const int shadowOffsetY = -2;
const int shadowSize = 7;
-PassRefPtr<BuiltInPDFView> BuiltInPDFView::create(WebFrame* frame)
+PassRefPtr<SimplePDFPlugin> SimplePDFPlugin::create(WebFrame* frame)
{
- return adoptRef(new BuiltInPDFView(frame));
+ return adoptRef(new SimplePDFPlugin(frame));
}
-BuiltInPDFView::BuiltInPDFView(WebFrame* frame)
+SimplePDFPlugin::SimplePDFPlugin(WebFrame* frame)
: m_frame(frame)
{
}
-BuiltInPDFView::~BuiltInPDFView()
+SimplePDFPlugin::~SimplePDFPlugin()
{
}
-PluginInfo BuiltInPDFView::pluginInfo()
+PluginInfo SimplePDFPlugin::pluginInfo()
{
PluginInfo info;
info.name = builtInPDFPluginName();
@@ -184,30 +184,30 @@ PluginInfo BuiltInPDFView::pluginInfo()
return info;
}
-PluginView* BuiltInPDFView::pluginView()
+PluginView* SimplePDFPlugin::pluginView()
{
return static_cast<PluginView*>(controller());
}
-const PluginView* BuiltInPDFView::pluginView() const
+const PluginView* SimplePDFPlugin::pluginView() const
{
return static_cast<const PluginView*>(controller());
}
-void BuiltInPDFView::updateScrollbars()
+void SimplePDFPlugin::updateScrollbars()
{
bool hadScrollbars = m_horizontalScrollbar || m_verticalScrollbar;
if (m_horizontalScrollbar) {
- if (m_pluginSize.width() >= m_pdfDocumentSize.width())
+ if (m_size.width() >= m_pdfDocumentSize.width())
destroyScrollbar(HorizontalScrollbar);
- } else if (m_pluginSize.width() < m_pdfDocumentSize.width())
+ } else if (m_size.width() < m_pdfDocumentSize.width())
m_horizontalScrollbar = createScrollbar(HorizontalScrollbar);
if (m_verticalScrollbar) {
- if (m_pluginSize.height() >= m_pdfDocumentSize.height())
+ if (m_size.height() >= m_pdfDocumentSize.height())
destroyScrollbar(VerticalScrollbar);
- } else if (m_pluginSize.height() < m_pdfDocumentSize.height())
+ } else if (m_size.height() < m_pdfDocumentSize.height())
m_verticalScrollbar = createScrollbar(VerticalScrollbar);
int horizontalScrollbarHeight = (m_horizontalScrollbar && !m_horizontalScrollbar->isOverlayScrollbar()) ? m_horizontalScrollbar->height() : 0;
@@ -217,16 +217,16 @@ void BuiltInPDFView::updateScrollbars()
if (m_horizontalScrollbar) {
m_horizontalScrollbar->setSteps(Scrollbar::pixelsPerLineStep(), pageStep);
- m_horizontalScrollbar->setProportion(m_pluginSize.width() - verticalScrollbarWidth, m_pdfDocumentSize.width());
- IntRect scrollbarRect(pluginView()->x(), pluginView()->y() + m_pluginSize.height() - m_horizontalScrollbar->height(), m_pluginSize.width(), m_horizontalScrollbar->height());
+ m_horizontalScrollbar->setProportion(m_size.width() - verticalScrollbarWidth, m_pdfDocumentSize.width());
+ IntRect scrollbarRect(pluginView()->x(), pluginView()->y() + m_size.height() - m_horizontalScrollbar->height(), m_size.width(), m_horizontalScrollbar->height());
if (m_verticalScrollbar)
scrollbarRect.contract(m_verticalScrollbar->width(), 0);
m_horizontalScrollbar->setFrameRect(scrollbarRect);
}
if (m_verticalScrollbar) {
m_verticalScrollbar->setSteps(Scrollbar::pixelsPerLineStep(), pageStep);
- m_verticalScrollbar->setProportion(m_pluginSize.height() - horizontalScrollbarHeight, m_pdfDocumentSize.height());
- IntRect scrollbarRect(IntRect(pluginView()->x() + m_pluginSize.width() - m_verticalScrollbar->width(), pluginView()->y(), m_verticalScrollbar->width(), m_pluginSize.height()));
+ m_verticalScrollbar->setProportion(m_size.height() - horizontalScrollbarHeight, m_pdfDocumentSize.height());
+ IntRect scrollbarRect(IntRect(pluginView()->x() + m_size.width() - m_verticalScrollbar->width(), pluginView()->y(), m_verticalScrollbar->width(), m_size.height()));
if (m_horizontalScrollbar)
scrollbarRect.contract(0, m_horizontalScrollbar->height());
m_verticalScrollbar->setFrameRect(scrollbarRect);
@@ -247,7 +247,7 @@ void BuiltInPDFView::updateScrollbars()
}
}
-PassRefPtr<Scrollbar> BuiltInPDFView::createScrollbar(ScrollbarOrientation orientation)
+PassRefPtr<Scrollbar> SimplePDFPlugin::createScrollbar(ScrollbarOrientation orientation)
{
RefPtr<Scrollbar> widget = Scrollbar::createNativeScrollbar(this, orientation, RegularScrollbar);
if (orientation == HorizontalScrollbar)
@@ -258,7 +258,7 @@ PassRefPtr<Scrollbar> BuiltInPDFView::createScrollbar(ScrollbarOrientation orien
return widget.release();
}
-void BuiltInPDFView::destroyScrollbar(ScrollbarOrientation orientation)
+void SimplePDFPlugin::destroyScrollbar(ScrollbarOrientation orientation)
{
RefPtr<Scrollbar>& scrollbar = orientation == HorizontalScrollbar ? m_horizontalScrollbar : m_verticalScrollbar;
if (!scrollbar)
@@ -274,7 +274,7 @@ void BuiltInPDFView::destroyScrollbar(ScrollbarOrientation orientation)
scrollbar = 0;
}
-void BuiltInPDFView::addArchiveResource()
+void SimplePDFPlugin::addArchiveResource()
{
// FIXME: It's a hack to force add a resource to DocumentLoader. PDF documents should just be fetched as CachedResources.
@@ -284,21 +284,81 @@ void BuiltInPDFView::addArchiveResource()
synthesizedResponse.setURL(m_sourceURL); // Needs to match the HitTestResult::absolutePDFURL.
synthesizedResponse.setMimeType("application/pdf");
- RefPtr<ArchiveResource> resource = ArchiveResource::create(SharedBuffer::wrapCFData(m_dataBuffer.get()), m_sourceURL, "application/pdf", String(), String(), synthesizedResponse);
+ RefPtr<ArchiveResource> resource = ArchiveResource::create(SharedBuffer::wrapCFData(m_data.get()), m_sourceURL, "application/pdf", String(), String(), synthesizedResponse);
pluginView()->frame()->document()->loader()->addArchiveResource(resource.release());
}
-void BuiltInPDFView::pdfDocumentDidLoad()
+static void jsPDFDocInitialize(JSContextRef ctx, JSObjectRef object)
+{
+ SimplePDFPlugin* pdfView = static_cast<SimplePDFPlugin*>(JSObjectGetPrivate(object));
+ pdfView->ref();
+}
+
+static void jsPDFDocFinalize(JSObjectRef object)
+{
+ SimplePDFPlugin* pdfView = static_cast<SimplePDFPlugin*>(JSObjectGetPrivate(object));
+ pdfView->deref();
+}
+
+JSValueRef SimplePDFPlugin::jsPDFDocPrint(JSContextRef ctx, JSObjectRef function, JSObjectRef thisObject, size_t argumentCount, const JSValueRef arguments[], JSValueRef* exception)
+{
+ SimplePDFPlugin* pdfView = static_cast<SimplePDFPlugin*>(JSObjectGetPrivate(thisObject));
+
+ WebFrame* frame = pdfView->m_frame;
+ if (!frame)
+ return JSValueMakeUndefined(ctx);
+
+ Frame* coreFrame = frame->coreFrame();
+ if (!coreFrame)
+ return JSValueMakeUndefined(ctx);
+
+ Page* page = coreFrame->page();
+ if (!page)
+ return JSValueMakeUndefined(ctx);
+
+ page->chrome()->print(coreFrame);
+
+ return JSValueMakeUndefined(ctx);
+}
+
+JSObjectRef SimplePDFPlugin::makeJSPDFDoc(JSContextRef ctx)
+{
+ static JSStaticFunction jsPDFDocStaticFunctions[] = {
+ { "print", jsPDFDocPrint, kJSPropertyAttributeReadOnly | kJSPropertyAttributeDontDelete },
+ { 0, 0, 0 },
+ };
+
+ static JSClassDefinition jsPDFDocClassDefinition = {
+ 0,
+ kJSClassAttributeNone,
+ "Doc",
+ 0,
+ 0,
+ jsPDFDocStaticFunctions,
+ jsPDFDocInitialize, jsPDFDocFinalize, 0, 0, 0, 0, 0, 0, 0, 0, 0
+ };
+
+ static JSClassRef jsPDFDocClass = JSClassCreate(&jsPDFDocClassDefinition);
+
+ return JSObjectMake(ctx, jsPDFDocClass, this);
+}
+
+void SimplePDFPlugin::pdfDocumentDidLoad()
{
addArchiveResource();
- m_pdfDocument.adoptNS([[pdfDocumentClass() alloc] initWithData:(NSData *)m_dataBuffer.get()]);
+ m_pdfDocument.adoptNS([[pdfDocumentClass() alloc] initWithData:(NSData *)m_data.get()]);
calculateSizes();
updateScrollbars();
- controller()->invalidate(IntRect(0, 0, m_pluginSize.width(), m_pluginSize.height()));
+ controller()->invalidate(IntRect(0, 0, m_size.width(), m_size.height()));
+ runScriptsInPDFDocument();
+}
+
+void SimplePDFPlugin::runScriptsInPDFDocument()
+{
Vector<RetainPtr<CFStringRef> > scripts;
getAllScriptsInPDFDocument([m_pdfDocument.get() documentRef], scripts);
@@ -317,8 +377,22 @@ void BuiltInPDFView::pdfDocumentDidLoad()
JSGlobalContextRelease(ctx);
}
+
+void SimplePDFPlugin::computePageBoxes()
+{
+ size_t pageCount = CGPDFDocumentGetNumberOfPages([m_pdfDocument.get() documentRef]);
+ for (size_t i = 0; i < pageCount; ++i) {
+ CGPDFPageRef pdfPage = CGPDFDocumentGetPage([m_pdfDocument.get() documentRef], i + 1);
+ ASSERT(pdfPage);
+
+ CGRect box = CGPDFPageGetBoxRect(pdfPage, kCGPDFCropBox);
+ if (CGRectIsEmpty(box))
+ box = CGPDFPageGetBoxRect(pdfPage, kCGPDFMediaBox);
+ m_pageBoxes.append(IntRect(box));
+ }
+}
-void BuiltInPDFView::calculateSizes()
+void SimplePDFPlugin::calculateSizes()
{
size_t pageCount = CGPDFDocumentGetNumberOfPages([m_pdfDocument.get() documentRef]);
for (size_t i = 0; i < pageCount; ++i) {
@@ -335,7 +409,7 @@ void BuiltInPDFView::calculateSizes()
m_pdfDocumentSize.expand(0, gutterHeight * (m_pageBoxes.size() - 1));
}
-bool BuiltInPDFView::initialize(const Parameters& parameters)
+bool SimplePDFPlugin::initialize(const Parameters& parameters)
{
// Load the src URL if needed.
m_sourceURL = parameters.url;
@@ -346,7 +420,7 @@ bool BuiltInPDFView::initialize(const Parameters& parameters)
return true;
}
-void BuiltInPDFView::destroy()
+void SimplePDFPlugin::destroy()
{
if (m_frame) {
if (FrameView* frameView = m_frame->coreFrame()->view())
@@ -357,7 +431,7 @@ void BuiltInPDFView::destroy()
destroyScrollbar(VerticalScrollbar);
}
-void BuiltInPDFView::paint(GraphicsContext* graphicsContext, const IntRect& dirtyRect)
+void SimplePDFPlugin::paint(GraphicsContext* graphicsContext, const IntRect& dirtyRect)
{
contentAreaWillPaint();
@@ -370,14 +444,14 @@ void BuiltInPDFView::paint(GraphicsContext* graphicsContext, const IntRect& dirt
paintControls(graphicsContext, dirtyRect);
}
-void BuiltInPDFView::paintBackground(GraphicsContext* graphicsContext, const IntRect& dirtyRect)
+void SimplePDFPlugin::paintBackground(GraphicsContext* graphicsContext, const IntRect& dirtyRect)
{
GraphicsContextStateSaver stateSaver(*graphicsContext);
graphicsContext->setFillColor(Color::gray, ColorSpaceDeviceRGB);
graphicsContext->fillRect(dirtyRect);
}
-void BuiltInPDFView::paintContent(GraphicsContext* graphicsContext, const IntRect& dirtyRect)
+void SimplePDFPlugin::paintContent(GraphicsContext* graphicsContext, const IntRect& dirtyRect)
{
GraphicsContextStateSaver stateSaver(*graphicsContext);
CGContextRef context = graphicsContext->platformContext();
@@ -397,8 +471,8 @@ void BuiltInPDFView::paintContent(GraphicsContext* graphicsContext, const IntRec
int pageTop = 0;
for (size_t i = 0; i < m_pageBoxes.size(); ++i) {
IntRect pageBox = m_pageBoxes[i];
- float extraOffsetForCenteringX = max(roundf((m_pluginSize.width() - pageBox.width()) / 2.0f), 0.0f);
- float extraOffsetForCenteringY = (m_pageBoxes.size() == 1) ? max(roundf((m_pluginSize.height() - pageBox.height() + shadowOffsetY) / 2.0f), 0.0f) : 0;
+ float extraOffsetForCenteringX = max(roundf((m_size.width() - pageBox.width()) / 2.0f), 0.0f);
+ float extraOffsetForCenteringY = (m_pageBoxes.size() == 1) ? max(roundf((m_size.height() - pageBox.height() + shadowOffsetY) / 2.0f), 0.0f) : 0;
if (pageTop > contentRect.maxY())
break;
@@ -422,7 +496,7 @@ void BuiltInPDFView::paintContent(GraphicsContext* graphicsContext, const IntRec
}
}
-void BuiltInPDFView::paintControls(GraphicsContext* graphicsContext, const IntRect& dirtyRect)
+void SimplePDFPlugin::paintControls(GraphicsContext* graphicsContext, const IntRect& dirtyRect)
{
{
GraphicsContextStateSaver stateSaver(*graphicsContext);
@@ -441,7 +515,7 @@ void BuiltInPDFView::paintControls(GraphicsContext* graphicsContext, const IntRe
ScrollbarTheme::theme()->paintScrollCorner(0, graphicsContext, dirtyCornerRect);
}
-void BuiltInPDFView::updateControlTints(GraphicsContext* graphicsContext)
+void SimplePDFPlugin::updateControlTints(GraphicsContext* graphicsContext)
{
ASSERT(graphicsContext->updatingControlTints());
@@ -452,116 +526,116 @@ void BuiltInPDFView::updateControlTints(GraphicsContext* graphicsContext)
invalidateScrollCorner(scrollCornerRect());
}
-PassRefPtr<ShareableBitmap> BuiltInPDFView::snapshot()
+PassRefPtr<ShareableBitmap> SimplePDFPlugin::snapshot()
{
return 0;
}
#if PLATFORM(MAC)
-PlatformLayer* BuiltInPDFView::pluginLayer()
+PlatformLayer* SimplePDFPlugin::pluginLayer()
{
return 0;
}
#endif
-bool BuiltInPDFView::isTransparent()
+bool SimplePDFPlugin::isTransparent()
{
// This should never be called from the web process.
ASSERT_NOT_REACHED();
return false;
}
-bool BuiltInPDFView::wantsWheelEvents()
+bool SimplePDFPlugin::wantsWheelEvents()
{
return true;
}
-void BuiltInPDFView::geometryDidChange(const IntSize& pluginSize, const IntRect& clipRect, const AffineTransform& pluginToRootViewTransform)
+void SimplePDFPlugin::geometryDidChange(const IntSize& size, const IntRect& clipRect, const AffineTransform& pluginToRootViewTransform)
{
- if (m_pluginSize == pluginSize) {
+ if (m_size == size) {
// Nothing to do.
return;
}
- m_pluginSize = pluginSize;
+ m_size = size;
updateScrollbars();
}
-void BuiltInPDFView::visibilityDidChange()
+void SimplePDFPlugin::visibilityDidChange()
{
}
-void BuiltInPDFView::frameDidFinishLoading(uint64_t)
+void SimplePDFPlugin::frameDidFinishLoading(uint64_t)
{
ASSERT_NOT_REACHED();
}
-void BuiltInPDFView::frameDidFail(uint64_t, bool)
+void SimplePDFPlugin::frameDidFail(uint64_t, bool)
{
ASSERT_NOT_REACHED();
}
-void BuiltInPDFView::didEvaluateJavaScript(uint64_t, const WTF::String&)
+void SimplePDFPlugin::didEvaluateJavaScript(uint64_t, const WTF::String&)
{
ASSERT_NOT_REACHED();
}
-void BuiltInPDFView::streamDidReceiveResponse(uint64_t streamID, const KURL&, uint32_t, uint32_t, const String&, const String&, const String& suggestedFilename)
+void SimplePDFPlugin::streamDidReceiveResponse(uint64_t streamID, const KURL&, uint32_t, uint32_t, const String&, const String&, const String& suggestedFilename)
{
ASSERT_UNUSED(streamID, streamID == pdfDocumentRequestID);
m_suggestedFilename = suggestedFilename;
}
-void BuiltInPDFView::streamDidReceiveData(uint64_t streamID, const char* bytes, int length)
+void SimplePDFPlugin::streamDidReceiveData(uint64_t streamID, const char* bytes, int length)
{
ASSERT_UNUSED(streamID, streamID == pdfDocumentRequestID);
- if (!m_dataBuffer)
- m_dataBuffer.adoptCF(CFDataCreateMutable(0, 0));
+ if (!m_data)
+ m_data.adoptCF(CFDataCreateMutable(0, 0));
- CFDataAppendBytes(m_dataBuffer.get(), reinterpret_cast<const UInt8*>(bytes), length);
+ CFDataAppendBytes(m_data.get(), reinterpret_cast<const UInt8*>(bytes), length);
}
-void BuiltInPDFView::streamDidFinishLoading(uint64_t streamID)
+void SimplePDFPlugin::streamDidFinishLoading(uint64_t streamID)
{
ASSERT_UNUSED(streamID, streamID == pdfDocumentRequestID);
pdfDocumentDidLoad();
}
-void BuiltInPDFView::streamDidFail(uint64_t streamID, bool wasCancelled)
+void SimplePDFPlugin::streamDidFail(uint64_t streamID, bool wasCancelled)
{
ASSERT_UNUSED(streamID, streamID == pdfDocumentRequestID);
- m_dataBuffer.clear();
+ m_data.clear();
}
-void BuiltInPDFView::manualStreamDidReceiveResponse(const KURL& responseURL, uint32_t streamLength, uint32_t lastModifiedTime, const String& mimeType, const String& headers, const String& suggestedFilename)
+void SimplePDFPlugin::manualStreamDidReceiveResponse(const KURL& responseURL, uint32_t streamLength, uint32_t lastModifiedTime, const String& mimeType, const String& headers, const String& suggestedFilename)
{
m_suggestedFilename = suggestedFilename;
}
-void BuiltInPDFView::manualStreamDidReceiveData(const char* bytes, int length)
+void SimplePDFPlugin::manualStreamDidReceiveData(const char* bytes, int length)
{
- if (!m_dataBuffer)
- m_dataBuffer.adoptCF(CFDataCreateMutable(0, 0));
+ if (!m_data)
+ m_data.adoptCF(CFDataCreateMutable(0, 0));
- CFDataAppendBytes(m_dataBuffer.get(), reinterpret_cast<const UInt8*>(bytes), length);
+ CFDataAppendBytes(m_data.get(), reinterpret_cast<const UInt8*>(bytes), length);
}
-void BuiltInPDFView::manualStreamDidFinishLoading()
+void SimplePDFPlugin::manualStreamDidFinishLoading()
{
pdfDocumentDidLoad();
}
-void BuiltInPDFView::manualStreamDidFail(bool)
+void SimplePDFPlugin::manualStreamDidFail(bool)
{
- m_dataBuffer.clear();
+ m_data.clear();
}
-bool BuiltInPDFView::handleMouseEvent(const WebMouseEvent& event)
+bool SimplePDFPlugin::handleMouseEvent(const WebMouseEvent& event)
{
switch (event.type()) {
case WebEvent::MouseMove:
@@ -589,106 +663,106 @@ bool BuiltInPDFView::handleMouseEvent(const WebMouseEvent& event)
return false;
}
-bool BuiltInPDFView::handleWheelEvent(const WebWheelEvent& event)
+bool SimplePDFPlugin::handleWheelEvent(const WebWheelEvent& event)
{
PlatformWheelEvent platformEvent = platform(event);
return ScrollableArea::handleWheelEvent(platformEvent);
}
-bool BuiltInPDFView::handleMouseEnterEvent(const WebMouseEvent&)
+bool SimplePDFPlugin::handleMouseEnterEvent(const WebMouseEvent&)
{
mouseEnteredContentArea();
return false;
}
-bool BuiltInPDFView::handleMouseLeaveEvent(const WebMouseEvent&)
+bool SimplePDFPlugin::handleMouseLeaveEvent(const WebMouseEvent&)
{
mouseExitedContentArea();
return false;
}
-bool BuiltInPDFView::handleContextMenuEvent(const WebMouseEvent&)
+bool SimplePDFPlugin::handleContextMenuEvent(const WebMouseEvent&)
{
// Use default WebKit context menu.
return false;
}
-bool BuiltInPDFView::handleKeyboardEvent(const WebKeyboardEvent&)
+bool SimplePDFPlugin::handleKeyboardEvent(const WebKeyboardEvent&)
{
return false;
}
-void BuiltInPDFView::setFocus(bool hasFocus)
+void SimplePDFPlugin::setFocus(bool hasFocus)
{
}
-NPObject* BuiltInPDFView::pluginScriptableNPObject()
+NPObject* SimplePDFPlugin::pluginScriptableNPObject()
{
return 0;
}
#if PLATFORM(MAC)
-void BuiltInPDFView::windowFocusChanged(bool)
+void SimplePDFPlugin::windowFocusChanged(bool)
{
}
-void BuiltInPDFView::windowAndViewFramesChanged(const WebCore::IntRect& windowFrameInScreenCoordinates, const WebCore::IntRect& viewFrameInWindowCoordinates)
+void SimplePDFPlugin::windowAndViewFramesChanged(const WebCore::IntRect& windowFrameInScreenCoordinates, const WebCore::IntRect& viewFrameInWindowCoordinates)
{
}
-void BuiltInPDFView::windowVisibilityChanged(bool)
+void SimplePDFPlugin::windowVisibilityChanged(bool)
{
}
-void BuiltInPDFView::contentsScaleFactorChanged(float)
+void SimplePDFPlugin::contentsScaleFactorChanged(float)
{
}
-uint64_t BuiltInPDFView::pluginComplexTextInputIdentifier() const
+uint64_t SimplePDFPlugin::pluginComplexTextInputIdentifier() const
{
return 0;
}
-void BuiltInPDFView::sendComplexTextInput(const String&)
+void SimplePDFPlugin::sendComplexTextInput(const String&)
{
}
-void BuiltInPDFView::setLayerHostingMode(LayerHostingMode)
+void SimplePDFPlugin::setLayerHostingMode(LayerHostingMode)
{
}
#endif
-void BuiltInPDFView::storageBlockingStateChanged(bool)
+void SimplePDFPlugin::storageBlockingStateChanged(bool)
{
}
-void BuiltInPDFView::privateBrowsingStateChanged(bool)
+void SimplePDFPlugin::privateBrowsingStateChanged(bool)
{
}
-bool BuiltInPDFView::getFormValue(String&)
+bool SimplePDFPlugin::getFormValue(String&)
{
return false;
}
-bool BuiltInPDFView::handleScroll(ScrollDirection direction, ScrollGranularity granularity)
+bool SimplePDFPlugin::handleScroll(ScrollDirection direction, ScrollGranularity granularity)
{
return scroll(direction, granularity);
}
-Scrollbar* BuiltInPDFView::horizontalScrollbar()
+Scrollbar* SimplePDFPlugin::horizontalScrollbar()
{
return m_horizontalScrollbar.get();
}
-Scrollbar* BuiltInPDFView::verticalScrollbar()
+Scrollbar* SimplePDFPlugin::verticalScrollbar()
{
return m_verticalScrollbar.get();
}
-IntRect BuiltInPDFView::scrollCornerRect() const
+IntRect SimplePDFPlugin::scrollCornerRect() const
{
if (!m_horizontalScrollbar || !m_verticalScrollbar)
return IntRect();
@@ -699,31 +773,31 @@ IntRect BuiltInPDFView::scrollCornerRect() const
return IntRect(pluginView()->width() - m_verticalScrollbar->width(), pluginView()->height() - m_horizontalScrollbar->height(), m_verticalScrollbar->width(), m_horizontalScrollbar->height());
}
-ScrollableArea* BuiltInPDFView::enclosingScrollableArea() const
+ScrollableArea* SimplePDFPlugin::enclosingScrollableArea() const
{
// FIXME: Walk up the frame tree and look for a scrollable parent frame or RenderLayer.
return 0;
}
-IntRect BuiltInPDFView::scrollableAreaBoundingBox() const
+IntRect SimplePDFPlugin::scrollableAreaBoundingBox() const
{
return pluginView()->frameRect();
}
-void BuiltInPDFView::setScrollOffset(const IntPoint& offset)
+void SimplePDFPlugin::setScrollOffset(const IntPoint& offset)
{
m_scrollOffset = IntSize(offset.x(), offset.y());
// FIXME: It would be better for performance to blit parts that remain visible.
- controller()->invalidate(IntRect(0, 0, m_pluginSize.width(), m_pluginSize.height()));
+ controller()->invalidate(IntRect(0, 0, m_size.width(), m_size.height()));
}
-int BuiltInPDFView::scrollSize(ScrollbarOrientation orientation) const
+int SimplePDFPlugin::scrollSize(ScrollbarOrientation orientation) const
{
Scrollbar* scrollbar = ((orientation == HorizontalScrollbar) ? m_horizontalScrollbar : m_verticalScrollbar).get();
return scrollbar ? (scrollbar->totalSize() - scrollbar->visibleSize()) : 0;
}
-bool BuiltInPDFView::isActive() const
+bool SimplePDFPlugin::isActive() const
{
if (Frame* coreFrame = m_frame->coreFrame()) {
if (Page* page = coreFrame->page())
@@ -733,7 +807,7 @@ bool BuiltInPDFView::isActive() const
return false;
}
-void BuiltInPDFView::invalidateScrollbarRect(Scrollbar* scrollbar, const IntRect& rect)
+void SimplePDFPlugin::invalidateScrollbarRect(Scrollbar* scrollbar, const IntRect& rect)
{
IntRect dirtyRect = rect;
dirtyRect.moveBy(scrollbar->location());
@@ -741,17 +815,17 @@ void BuiltInPDFView::invalidateScrollbarRect(Scrollbar* scrollbar, const IntRect
controller()->invalidate(dirtyRect);
}
-void BuiltInPDFView::invalidateScrollCornerRect(const IntRect& rect)
+void SimplePDFPlugin::invalidateScrollCornerRect(const IntRect& rect)
{
controller()->invalidate(rect);
}
-bool BuiltInPDFView::isScrollCornerVisible() const
+bool SimplePDFPlugin::isScrollCornerVisible() const
{
return false;
}
-int BuiltInPDFView::scrollPosition(Scrollbar* scrollbar) const
+int SimplePDFPlugin::scrollPosition(Scrollbar* scrollbar) const
{
if (scrollbar->orientation() == HorizontalScrollbar)
return m_scrollOffset.width();
@@ -761,47 +835,47 @@ int BuiltInPDFView::scrollPosition(Scrollbar* scrollbar) const
return 0;
}
-IntPoint BuiltInPDFView::scrollPosition() const
+IntPoint SimplePDFPlugin::scrollPosition() const
{
return IntPoint(m_scrollOffset.width(), m_scrollOffset.height());
}
-IntPoint BuiltInPDFView::minimumScrollPosition() const
+IntPoint SimplePDFPlugin::minimumScrollPosition() const
{
return IntPoint(0, 0);
}
-IntPoint BuiltInPDFView::maximumScrollPosition() const
+IntPoint SimplePDFPlugin::maximumScrollPosition() const
{
int horizontalScrollbarHeight = (m_horizontalScrollbar && !m_horizontalScrollbar->isOverlayScrollbar()) ? m_horizontalScrollbar->height() : 0;
int verticalScrollbarWidth = (m_verticalScrollbar && !m_verticalScrollbar->isOverlayScrollbar()) ? m_verticalScrollbar->width() : 0;
- IntPoint maximumOffset(m_pdfDocumentSize.width() - m_pluginSize.width() + verticalScrollbarWidth, m_pdfDocumentSize.height() - m_pluginSize.height() + horizontalScrollbarHeight);
+ IntPoint maximumOffset(m_pdfDocumentSize.width() - m_size.width() + verticalScrollbarWidth, m_pdfDocumentSize.height() - m_size.height() + horizontalScrollbarHeight);
maximumOffset.clampNegativeToZero();
return maximumOffset;
}
-int BuiltInPDFView::visibleHeight() const
+int SimplePDFPlugin::visibleHeight() const
{
- return m_pluginSize.height();
+ return m_size.height();
}
-int BuiltInPDFView::visibleWidth() const
+int SimplePDFPlugin::visibleWidth() const
{
- return m_pluginSize.width();
+ return m_size.width();
}
-IntSize BuiltInPDFView::contentsSize() const
+IntSize SimplePDFPlugin::contentsSize() const
{
return m_pdfDocumentSize;
}
-bool BuiltInPDFView::scrollbarsCanBeActive() const
+bool SimplePDFPlugin::scrollbarsCanBeActive() const
{
return !pluginView()->frame()->document()->inPageCache();
}
-void BuiltInPDFView::scrollbarStyleChanged(int, bool forceUpdate)
+void SimplePDFPlugin::scrollbarStyleChanged(int, bool forceUpdate)
{
if (!forceUpdate)
return;
@@ -816,67 +890,51 @@ void BuiltInPDFView::scrollbarStyleChanged(int, bool forceUpdate)
ScrollableArea::contentsResized();
}
-IntPoint BuiltInPDFView::convertFromContainingViewToScrollbar(const Scrollbar* scrollbar, const IntPoint& parentPoint) const
+IntRect SimplePDFPlugin::convertFromScrollbarToContainingView(const Scrollbar* scrollbar, const IntRect& scrollbarRect) const
{
- IntPoint point = pluginView()->frame()->view()->convertToRenderer(pluginView()->renderer(), parentPoint);
- point.move(pluginView()->location() - scrollbar->location());
-
- return point;
+ IntRect rect = scrollbarRect;
+ rect.move(scrollbar->location() - pluginView()->location());
+
+ return pluginView()->frame()->view()->convertFromRenderer(pluginView()->renderer(), rect);
}
-static void jsPDFDocInitialize(JSContextRef ctx, JSObjectRef object)
+IntRect SimplePDFPlugin::convertFromContainingViewToScrollbar(const Scrollbar* scrollbar, const IntRect& parentRect) const
{
- BuiltInPDFView* pdfView = static_cast<BuiltInPDFView*>(JSObjectGetPrivate(object));
- pdfView->ref();
+ IntRect rect = pluginView()->frame()->view()->convertToRenderer(pluginView()->renderer(), parentRect);
+ rect.move(pluginView()->location() - scrollbar->location());
+
+ return rect;
}
-static void jsPDFDocFinalize(JSObjectRef object)
+IntPoint SimplePDFPlugin::convertFromScrollbarToContainingView(const Scrollbar* scrollbar, const IntPoint& scrollbarPoint) const
{
- BuiltInPDFView* pdfView = static_cast<BuiltInPDFView*>(JSObjectGetPrivate(object));
- pdfView->deref();
+ IntPoint point = scrollbarPoint;
+ point.move(scrollbar->location() - pluginView()->location());
+
+ return pluginView()->frame()->view()->convertFromRenderer(pluginView()->renderer(), point);
}
-JSValueRef BuiltInPDFView::jsPDFDocPrint(JSContextRef ctx, JSObjectRef function, JSObjectRef thisObject, size_t argumentCount, const JSValueRef arguments[], JSValueRef* exception)
+IntPoint SimplePDFPlugin::convertFromContainingViewToScrollbar(const Scrollbar* scrollbar, const IntPoint& parentPoint) const
{
- BuiltInPDFView* pdfView = static_cast<BuiltInPDFView*>(JSObjectGetPrivate(thisObject));
-
- WebFrame* frame = pdfView->m_frame;
- if (!frame)
- return JSValueMakeUndefined(ctx);
-
- Frame* coreFrame = frame->coreFrame();
- if (!coreFrame)
- return JSValueMakeUndefined(ctx);
-
- Page* page = coreFrame->page();
- if (!page)
- return JSValueMakeUndefined(ctx);
-
- page->chrome()->print(coreFrame);
-
- return JSValueMakeUndefined(ctx);
+ IntPoint point = pluginView()->frame()->view()->convertToRenderer(pluginView()->renderer(), parentPoint);
+ point.move(pluginView()->location() - scrollbar->location());
+
+ return point;
}
-JSObjectRef BuiltInPDFView::makeJSPDFDoc(JSContextRef ctx)
+bool SimplePDFPlugin::isEditingCommandEnabled(const String&)
{
- static JSStaticFunction jsPDFDocStaticFunctions[] = {
- { "print", jsPDFDocPrint, kJSPropertyAttributeReadOnly | kJSPropertyAttributeDontDelete },
- { 0, 0, 0 },
- };
-
- static JSClassDefinition jsPDFDocClassDefinition = {
- 0,
- kJSClassAttributeNone,
- "Doc",
- 0,
- 0,
- jsPDFDocStaticFunctions,
- jsPDFDocInitialize, jsPDFDocFinalize, 0, 0, 0, 0, 0, 0, 0, 0, 0
- };
-
- static JSClassRef jsPDFDocClass = JSClassCreate(&jsPDFDocClassDefinition);
+ return false;
+}
- return JSObjectMake(ctx, jsPDFDocClass, this);
+bool SimplePDFPlugin::handleEditingCommand(const String&, const String&)
+{
+ return false;
+}
+
+bool SimplePDFPlugin::handlesPageScaleFactor()
+{
+ return false;
}
} // namespace WebKit
diff --git a/Source/WebKit2/WebProcess/Plugins/Plugin.h b/Source/WebKit2/WebProcess/Plugins/Plugin.h
index d197a6765..98f8770c1 100644
--- a/Source/WebKit2/WebProcess/Plugins/Plugin.h
+++ b/Source/WebKit2/WebProcess/Plugins/Plugin.h
@@ -188,6 +188,15 @@ public:
// Tells the plug-in to handle the passed in keyboard event. The plug-in should return true if it processed the event.
virtual bool handleKeyboardEvent(const WebKeyboardEvent&) = 0;
+ // Tells the plug-in to handle the passed in editing command. The plug-in should return true if it executed the command.
+ virtual bool handleEditingCommand(const String& commandName, const String& argument) = 0;
+
+ // Ask the plug-in whether it will be able to handle the given editing command.
+ virtual bool isEditingCommandEnabled(const String&) = 0;
+
+ // Ask the plug-in whether it wants to override full-page zoom.
+ virtual bool handlesPageScaleFactor() = 0;
+
// Tells the plug-in about focus changes.
virtual void setFocus(bool) = 0;
diff --git a/Source/WebKit2/WebProcess/Plugins/PluginProcessConnection.cpp b/Source/WebKit2/WebProcess/Plugins/PluginProcessConnection.cpp
index 3fe4d0b6c..fdb7e5e1f 100644
--- a/Source/WebKit2/WebProcess/Plugins/PluginProcessConnection.cpp
+++ b/Source/WebKit2/WebProcess/Plugins/PluginProcessConnection.cpp
@@ -41,37 +41,6 @@ using namespace WebCore;
namespace WebKit {
-// The timeout, in seconds, when sending sync messages to the plug-in.
-static const double syncMessageTimeout = 45;
-
-static double defaultSyncMessageTimeout(const String& pluginPath)
-{
- // FIXME: We should key this off something other than the path.
-
- // We don't want a message timeout for the AppleConnect plug-in.
- if (pathGetFileName(pluginPath) == "AppleConnect.plugin")
- return CoreIPC::Connection::NoTimeout;
-
- // We don't want a message timeout for the Microsoft SharePoint plug-in
- // since it can spin a nested run loop in response to an NPN_Invoke, making it seem like
- // the plug-in process is hung. See <rdar://problem/9536303>.
- // FIXME: Instead of changing the default sync message timeout, CoreIPC could send an
- // asynchronous message which the other process would have to reply to on the main thread.
- // This way we could check if the plug-in process is actually hung or not.
- if (pathGetFileName(pluginPath) == "SharePointBrowserPlugin.plugin")
- return CoreIPC::Connection::NoTimeout;
-
- // We don't want a message timeout for the BankID plug-in since it can spin a nested
- // run loop when it's waiting for a reply to an AppleEvent.
- if (pathGetFileName(pluginPath) == "PersonalPlugin.bundle")
- return CoreIPC::Connection::NoTimeout;
-
- if (WebProcess::shared().disablePluginProcessMessageTimeout())
- return CoreIPC::Connection::NoTimeout;
-
- return syncMessageTimeout;
-}
-
PluginProcessConnection::PluginProcessConnection(PluginProcessConnectionManager* pluginProcessConnectionManager, const String& pluginPath, CoreIPC::Connection::Identifier connectionIdentifier, bool supportsAsynchronousPluginInitialization)
: m_pluginProcessConnectionManager(pluginProcessConnectionManager)
, m_pluginPath(pluginPath)
@@ -79,7 +48,6 @@ PluginProcessConnection::PluginProcessConnection(PluginProcessConnectionManager*
{
m_connection = CoreIPC::Connection::createClientConnection(connectionIdentifier, this, WebProcess::shared().runLoop());
- m_connection->setDefaultSyncMessageTimeout(defaultSyncMessageTimeout(m_pluginPath));
m_npRemoteObjectMap = NPRemoteObjectMap::create(m_connection.get());
m_connection->open();
@@ -165,11 +133,6 @@ void PluginProcessConnection::didReceiveInvalidMessage(CoreIPC::Connection*, Cor
{
}
-void PluginProcessConnection::syncMessageSendTimedOut(CoreIPC::Connection*)
-{
- WebProcess::shared().connection()->send(Messages::WebProcessProxy::PluginSyncMessageSendTimedOut(m_pluginPath), 0);
-}
-
void PluginProcessConnection::setException(const String& exceptionString)
{
NPRuntimeObjectMap::setGlobalException(exceptionString);
diff --git a/Source/WebKit2/WebProcess/Plugins/PluginProcessConnection.h b/Source/WebKit2/WebProcess/Plugins/PluginProcessConnection.h
index bc866d10c..b9bf81c71 100644
--- a/Source/WebKit2/WebProcess/Plugins/PluginProcessConnection.h
+++ b/Source/WebKit2/WebProcess/Plugins/PluginProcessConnection.h
@@ -68,7 +68,6 @@ private:
virtual void didReceiveSyncMessage(CoreIPC::Connection*, CoreIPC::MessageID, CoreIPC::ArgumentDecoder*, OwnPtr<CoreIPC::ArgumentEncoder>&);
virtual void didClose(CoreIPC::Connection*);
virtual void didReceiveInvalidMessage(CoreIPC::Connection*, CoreIPC::MessageID);
- virtual void syncMessageSendTimedOut(CoreIPC::Connection*);
// Message handlers.
void didReceiveSyncPluginProcessConnectionMessage(CoreIPC::Connection*, CoreIPC::MessageID, CoreIPC::ArgumentDecoder*, OwnPtr<CoreIPC::ArgumentEncoder>&);
diff --git a/Source/WebKit2/WebProcess/Plugins/PluginProxy.cpp b/Source/WebKit2/WebProcess/Plugins/PluginProxy.cpp
index 9c30a5ef4..98f333963 100644
--- a/Source/WebKit2/WebProcess/Plugins/PluginProxy.cpp
+++ b/Source/WebKit2/WebProcess/Plugins/PluginProxy.cpp
@@ -403,6 +403,33 @@ void PluginProxy::setFocus(bool hasFocus)
m_connection->connection()->send(Messages::PluginControllerProxy::SetFocus(hasFocus), m_pluginInstanceID);
}
+bool PluginProxy::handleEditingCommand(const String& commandName, const String& argument)
+{
+ bool handled = false;
+ if (!m_connection->connection()->sendSync(Messages::PluginControllerProxy::HandleEditingCommand(commandName, argument), Messages::PluginControllerProxy::HandleEditingCommand::Reply(handled), m_pluginInstanceID))
+ return false;
+
+ return handled;
+}
+
+bool PluginProxy::isEditingCommandEnabled(const String& commandName)
+{
+ bool enabled = false;
+ if (!m_connection->connection()->sendSync(Messages::PluginControllerProxy::IsEditingCommandEnabled(commandName), Messages::PluginControllerProxy::IsEditingCommandEnabled::Reply(enabled), m_pluginInstanceID))
+ return false;
+
+ return enabled;
+}
+
+bool PluginProxy::handlesPageScaleFactor()
+{
+ bool handled = false;
+ if (!m_connection->connection()->sendSync(Messages::PluginControllerProxy::HandlesPageScaleFactor(), Messages::PluginControllerProxy::HandlesPageScaleFactor::Reply(handled), m_pluginInstanceID))
+ return false;
+
+ return handled;
+}
+
NPObject* PluginProxy::pluginScriptableNPObject()
{
// Sending the synchronous Messages::PluginControllerProxy::GetPluginScriptableNPObject message can cause us to dispatch an
@@ -447,7 +474,7 @@ void PluginProxy::sendComplexTextInput(const String& textInput)
}
#endif
-void PluginProxy::contentsScaleFactorChanged(float scaleFactor)
+void PluginProxy::contentsScaleFactorChanged(float)
{
geometryDidChange();
}
diff --git a/Source/WebKit2/WebProcess/Plugins/PluginProxy.h b/Source/WebKit2/WebProcess/Plugins/PluginProxy.h
index 7a36c1afd..02fa1ab57 100644
--- a/Source/WebKit2/WebProcess/Plugins/PluginProxy.h
+++ b/Source/WebKit2/WebProcess/Plugins/PluginProxy.h
@@ -101,6 +101,11 @@ private:
virtual bool handleContextMenuEvent(const WebMouseEvent&);
virtual bool handleKeyboardEvent(const WebKeyboardEvent&);
virtual void setFocus(bool);
+ virtual bool handleEditingCommand(const String& commandName, const String& argument) OVERRIDE;
+ virtual bool isEditingCommandEnabled(const String& commandName) OVERRIDE;
+
+ virtual bool handlesPageScaleFactor();
+
virtual NPObject* pluginScriptableNPObject();
#if PLATFORM(MAC)
virtual void windowFocusChanged(bool);
diff --git a/Source/WebKit2/WebProcess/Plugins/PluginView.cpp b/Source/WebKit2/WebProcess/Plugins/PluginView.cpp
index e2a6e1f05..d0a5e1e2c 100644
--- a/Source/WebKit2/WebProcess/Plugins/PluginView.cpp
+++ b/Source/WebKit2/WebProcess/Plugins/PluginView.cpp
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2010 Apple Inc. All rights reserved.
+ * Copyright (C) 2010, 2012 Apple Inc. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
@@ -67,6 +67,8 @@ using namespace WebCore;
namespace WebKit {
+static const double pluginSnapshotTimerDelay = 3;
+
class PluginView::URLRequest : public RefCounted<URLRequest> {
public:
static PassRefPtr<PluginView::URLRequest> create(uint64_t requestID, const FrameLoadRequest& request, bool allowPopups)
@@ -170,9 +172,9 @@ static String buildHTTPHeaders(const ResourceResponse& response, long long& expe
HTTPHeaderMap::const_iterator end = response.httpHeaderFields().end();
for (HTTPHeaderMap::const_iterator it = response.httpHeaderFields().begin(); it != end; ++it) {
- stringBuilder.append(it->first.characters(), it->first.length());
+ stringBuilder.append(it->key.characters(), it->key.length());
stringBuilder.append(separator.characters(), separator.length());
- stringBuilder.append(it->second.characters(), it->second.length());
+ stringBuilder.append(it->value.characters(), it->value.length());
stringBuilder.append('\n');
}
@@ -268,6 +270,8 @@ PluginView::PluginView(PassRefPtr<HTMLPlugInElement> pluginElement, PassRefPtr<P
, m_npRuntimeObjectMap(this)
#endif
, m_manualStreamState(StreamStateInitial)
+ , m_pluginSnapshotTimer(this, &PluginView::pluginSnapshotTimerFired, pluginSnapshotTimerDelay)
+ , m_pageScaleFactor(1)
{
m_webPage->addPluginView(this);
}
@@ -282,9 +286,18 @@ PluginView::~PluginView()
if (m_isWaitingUntilMediaCanStart)
m_pluginElement->document()->removeMediaCanStartListener(this);
+ destroyPluginAndReset();
+
+ // Null out the plug-in element explicitly so we'll crash earlier if we try to use
+ // the plug-in view after it's been destroyed.
+ m_pluginElement = nullptr;
+}
+
+void PluginView::destroyPluginAndReset()
+{
// Cancel all pending frame loads.
for (FrameLoadMap::iterator it = m_pendingFrameLoads.begin(), end = m_pendingFrameLoads.end(); it != end; ++it)
- it->first->setLoadListener(0);
+ it->key->setLoadListener(0);
if (m_plugin) {
m_isBeingDestroyed = true;
@@ -302,10 +315,26 @@ PluginView::~PluginView()
#endif
cancelAllStreams();
+}
- // Null out the plug-in element explicitly so we'll crash earlier if we try to use
- // the plug-in view after it's been destroyed.
- m_pluginElement = nullptr;
+void PluginView::recreateAndInitialize(PassRefPtr<Plugin> plugin)
+{
+ if (m_plugin) {
+ if (m_pluginSnapshotTimer.isActive())
+ m_pluginSnapshotTimer.stop();
+ destroyPluginAndReset();
+ }
+
+ // Reset member variables to initial values.
+ m_plugin = plugin;
+ m_isInitialized = false;
+ m_isWaitingForSynchronousInitialization = false;
+ m_isWaitingUntilMediaCanStart = false;
+ m_isBeingDestroyed = false;
+ m_manualStreamState = StreamStateInitial;
+ m_transientPaintingSnapshot = nullptr;
+
+ initializePlugin();
}
Frame* PluginView::frame() const
@@ -399,6 +428,18 @@ void PluginView::pageScaleFactorDidChange()
viewGeometryDidChange();
}
+void PluginView::setPageScaleFactor(double scaleFactor, IntPoint)
+{
+ m_pageScaleFactor = scaleFactor;
+ m_webPage->send(Messages::WebPageProxy::PageScaleFactorDidChange(scaleFactor));
+ pageScaleFactorDidChange();
+}
+
+double PluginView::pageScaleFactor()
+{
+ return m_pageScaleFactor;
+}
+
void PluginView::webPageDestroyed()
{
m_webPage = 0;
@@ -513,7 +554,9 @@ void PluginView::didInitializePlugin()
redeliverManualStream();
#if PLATFORM(MAC)
- if (m_plugin->pluginLayer()) {
+ if (m_pluginElement->displayState() < HTMLPlugInElement::Playing)
+ m_pluginSnapshotTimer.restart();
+ else if (m_plugin->pluginLayer()) {
if (frame()) {
frame()->view()->enterCompositingMode();
m_pluginElement->setNeedsStyleRecalc(SyntheticStyleChange);
@@ -643,7 +686,7 @@ void PluginView::setFrameRect(const WebCore::IntRect& rect)
void PluginView::paint(GraphicsContext* context, const IntRect& /*dirtyRect*/)
{
- if (!m_plugin || !m_isInitialized)
+ if (!m_plugin || !m_isInitialized || m_pluginElement->displayState() < HTMLPlugInElement::Playing)
return;
if (context->paintingDisabled()) {
@@ -658,8 +701,8 @@ void PluginView::paint(GraphicsContext* context, const IntRect& /*dirtyRect*/)
if (paintRect.isEmpty())
return;
- if (m_snapshot) {
- m_snapshot->paint(*context, contentsScaleFactor(), frameRect().location(), m_snapshot->bounds());
+ if (m_transientPaintingSnapshot) {
+ m_transientPaintingSnapshot->paint(*context, contentsScaleFactor(), frameRect().location(), m_transientPaintingSnapshot->bounds());
return;
}
@@ -730,16 +773,26 @@ void PluginView::handleEvent(Event* event)
if (didHandleEvent)
event->setDefaultHandled();
}
+
+bool PluginView::handleEditingCommand(const String& commandName, const String& argument)
+{
+ return m_plugin->handleEditingCommand(commandName, argument);
+}
+
+bool PluginView::isEditingCommandEnabled(const String& commandName)
+{
+ return m_plugin->isEditingCommandEnabled(commandName);
+}
void PluginView::notifyWidget(WidgetNotification notification)
{
switch (notification) {
case WillPaintFlattened:
if (m_plugin && m_isInitialized)
- m_snapshot = m_plugin->snapshot();
+ m_transientPaintingSnapshot = m_plugin->snapshot();
break;
case DidPaintFlattened:
- m_snapshot = nullptr;
+ m_transientPaintingSnapshot = nullptr;
break;
}
}
@@ -1021,6 +1074,9 @@ void PluginView::invalidateRect(const IntRect& dirtyRect)
return;
#endif
+ if (m_pluginElement->displayState() < HTMLPlugInElement::Playing)
+ return;
+
RenderBoxModelObject* renderer = toRenderBoxModelObject(m_pluginElement->renderer());
if (!renderer)
return;
@@ -1176,6 +1232,8 @@ bool PluginView::isAcceleratedCompositingEnabled()
if (!settings)
return false;
+ if (m_pluginElement->displayState() < HTMLPlugInElement::Playing)
+ return false;
return settings->acceleratedCompositingEnabled();
}
@@ -1364,4 +1422,19 @@ void PluginView::windowedPluginGeometryDidChange(const WebCore::IntRect& frameRe
}
#endif
+void PluginView::pluginSnapshotTimerFired(DeferrableOneShotTimer<PluginView>* timer)
+{
+ ASSERT_UNUSED(timer, timer == &m_pluginSnapshotTimer);
+ ASSERT(m_plugin);
+
+ // Snapshot might be 0 if plugin size is 0x0.
+ RefPtr<ShareableBitmap> snapshot = m_plugin->snapshot();
+ RefPtr<Image> snapshotImage;
+ if (snapshot)
+ snapshotImage = snapshot->createImage();
+ m_pluginElement->updateSnapshot(snapshotImage.release());
+ destroyPluginAndReset();
+ m_plugin = 0;
+}
+
} // namespace WebKit
diff --git a/Source/WebKit2/WebProcess/Plugins/PluginView.h b/Source/WebKit2/WebProcess/Plugins/PluginView.h
index 9cc257a98..0d0dfa344 100644
--- a/Source/WebKit2/WebProcess/Plugins/PluginView.h
+++ b/Source/WebKit2/WebProcess/Plugins/PluginView.h
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2010 Apple Inc. All rights reserved.
+ * Copyright (C) 2010, 2012 Apple Inc. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
@@ -30,11 +30,13 @@
#include "Plugin.h"
#include "PluginController.h"
#include "WebFrame.h"
+#include <WebCore/Image.h>
#include <WebCore/MediaCanStartListener.h>
#include <WebCore/PluginViewBase.h>
#include <WebCore/ResourceError.h>
#include <WebCore/ResourceResponse.h>
#include <WebCore/RunLoop.h>
+#include <WebCore/Timer.h>
#include <wtf/Deque.h>
// FIXME: Eventually this should move to WebCore.
@@ -51,6 +53,8 @@ class PluginView : public WebCore::PluginViewBase, public PluginController, priv
public:
static PassRefPtr<PluginView> create(PassRefPtr<WebCore::HTMLPlugInElement>, PassRefPtr<Plugin>, const Plugin::Parameters&);
+ void recreateAndInitialize(PassRefPtr<Plugin>);
+
WebCore::Frame* frame() const;
bool isBeingDestroyed() const { return m_isBeingDestroyed; }
@@ -70,12 +74,22 @@ public:
RetainPtr<PDFDocument> pdfDocumentForPrinting() const { return m_plugin->pdfDocumentForPrinting(); }
#endif
+ WebCore::HTMLPlugInElement* pluginElement() const { return m_pluginElement.get(); }
+ const Plugin::Parameters& initialParameters() const { return m_parameters; }
+
// FIXME: Remove this; nobody should have to know about the plug-in view's renderer except the plug-in view itself.
WebCore::RenderBoxModelObject* renderer() const;
+
+ void setPageScaleFactor(double scaleFactor, WebCore::IntPoint origin);
+ double pageScaleFactor();
+ bool handlesPageScaleFactor() { return m_plugin->handlesPageScaleFactor(); }
void pageScaleFactorDidChange();
void webPageDestroyed();
+ virtual bool handleEditingCommand(const String& commandName, const String& argument);
+ virtual bool isEditingCommandEnabled(const String& commandName);
+
private:
PluginView(PassRefPtr<WebCore::HTMLPlugInElement>, PassRefPtr<Plugin>, const Plugin::Parameters& parameters);
virtual ~PluginView();
@@ -104,6 +118,8 @@ private:
void redeliverManualStream();
+ void pluginSnapshotTimerFired(WebCore::DeferrableOneShotTimer<PluginView>*);
+
// WebCore::PluginViewBase
#if PLATFORM(MAC)
virtual PlatformLayer* platformLayer() const;
@@ -177,6 +193,7 @@ private:
virtual void didInitializePlugin();
virtual void didFailToInitializePlugin();
+ void destroyPluginAndReset();
// WebFrame::LoadListener
virtual void didFinishLoad(WebFrame*);
@@ -222,7 +239,12 @@ private:
WebCore::ResourceError m_manualStreamError;
RefPtr<WebCore::SharedBuffer> m_manualStreamData;
- RefPtr<ShareableBitmap> m_snapshot;
+ // This snapshot is used to avoid side effects should the plugin run JS during painting.
+ RefPtr<ShareableBitmap> m_transientPaintingSnapshot;
+ // This timer is used when plugin snapshotting is enabled, to capture a plugin placeholder.
+ WebCore::DeferrableOneShotTimer<PluginView> m_pluginSnapshotTimer;
+
+ double m_pageScaleFactor;
};
} // namespace WebKit
diff --git a/Source/WebKit2/WebProcess/WebConnectionToUIProcess.cpp b/Source/WebKit2/WebProcess/WebConnectionToUIProcess.cpp
index 5e7955d67..5e152ee98 100644
--- a/Source/WebKit2/WebProcess/WebConnectionToUIProcess.cpp
+++ b/Source/WebKit2/WebProcess/WebConnectionToUIProcess.cpp
@@ -40,47 +40,34 @@ PassRefPtr<WebConnectionToUIProcess> WebConnectionToUIProcess::create(WebProcess
}
WebConnectionToUIProcess::WebConnectionToUIProcess(WebProcess* process, CoreIPC::Connection::Identifier connectionIdentifier, RunLoop* runLoop)
- : m_process(process)
- , m_connection(CoreIPC::Connection::createClientConnection(connectionIdentifier, this, runLoop))
+ : WebConnection(CoreIPC::Connection::createClientConnection(connectionIdentifier, this, runLoop))
+ , m_process(process)
{
m_connection->setDidCloseOnConnectionWorkQueueCallback(ChildProcess::didCloseOnConnectionWorkQueue);
m_connection->setShouldExitOnSyncMessageSendFailure(true);
}
-void WebConnectionToUIProcess::invalidate()
+// WebConnection
+
+void WebConnectionToUIProcess::encodeMessageBody(CoreIPC::ArgumentEncoder* argumentEncoder, APIObject* messageBody)
{
- m_connection->invalidate();
- m_connection = nullptr;
- m_process = 0;
+ argumentEncoder->encode(InjectedBundleUserMessageEncoder(messageBody));
}
-// WebConnection
-
-void WebConnectionToUIProcess::postMessage(const String& messageName, APIObject* messageBody)
+bool WebConnectionToUIProcess::decodeMessageBody(CoreIPC::ArgumentDecoder* argumentDecoder, RefPtr<APIObject>& messageBody)
{
- if (!m_process)
- return;
+ if (!argumentDecoder->decode(InjectedBundleUserMessageDecoder(messageBody)))
+ return false;
- m_connection->deprecatedSend(WebConnectionLegacyMessage::PostMessage, 0, CoreIPC::In(messageName, InjectedBundleUserMessageEncoder(messageBody)));
+ return true;
}
// CoreIPC::Connection::Client
void WebConnectionToUIProcess::didReceiveMessage(CoreIPC::Connection* connection, CoreIPC::MessageID messageID, CoreIPC::ArgumentDecoder* arguments)
{
- if (messageID.is<CoreIPC::MessageClassWebConnectionLegacy>()) {
- switch (messageID.get<WebConnectionLegacyMessage::Kind>()) {
- case WebConnectionLegacyMessage::PostMessage: {
- String messageName;
- RefPtr<APIObject> messageBody;
- InjectedBundleUserMessageDecoder messageDecoder(messageBody);
- if (!arguments->decode(CoreIPC::Out(messageName, messageDecoder)))
- return;
-
- forwardDidReceiveMessageToClient(messageName, messageBody.get());
- return;
- }
- }
+ if (messageID.is<CoreIPC::MessageClassWebConnection>()) {
+ didReceiveWebConnectionMessage(connection, messageID, arguments);
return;
}
@@ -102,11 +89,6 @@ void WebConnectionToUIProcess::didReceiveInvalidMessage(CoreIPC::Connection* con
m_process->didReceiveInvalidMessage(connection, messageID);
}
-void WebConnectionToUIProcess::syncMessageSendTimedOut(CoreIPC::Connection* connection)
-{
- m_process->syncMessageSendTimedOut(connection);
-}
-
#if PLATFORM(WIN)
Vector<HWND> WebConnectionToUIProcess::windowsToReceiveSentMessagesWhileWaitingForSyncReply()
{
diff --git a/Source/WebKit2/WebProcess/WebConnectionToUIProcess.h b/Source/WebKit2/WebProcess/WebConnectionToUIProcess.h
index 42b9cd716..cdff4ac27 100644
--- a/Source/WebKit2/WebProcess/WebConnectionToUIProcess.h
+++ b/Source/WebKit2/WebProcess/WebConnectionToUIProcess.h
@@ -37,28 +37,23 @@ class WebConnectionToUIProcess : public WebConnection, CoreIPC::Connection::Clie
public:
static PassRefPtr<WebConnectionToUIProcess> create(WebProcess*, CoreIPC::Connection::Identifier, WebCore::RunLoop*);
- CoreIPC::Connection* connection() { return m_connection.get(); }
-
- void invalidate();
-
private:
WebConnectionToUIProcess(WebProcess*, CoreIPC::Connection::Identifier, WebCore::RunLoop*);
// WebConnection
- virtual void postMessage(const String&, APIObject*);
+ virtual void encodeMessageBody(CoreIPC::ArgumentEncoder*, APIObject*) OVERRIDE;
+ virtual bool decodeMessageBody(CoreIPC::ArgumentDecoder*, RefPtr<APIObject>&) OVERRIDE;
// CoreIPC::Connection::Client
virtual void didReceiveMessage(CoreIPC::Connection*, CoreIPC::MessageID, CoreIPC::ArgumentDecoder*);
virtual void didReceiveSyncMessage(CoreIPC::Connection*, CoreIPC::MessageID, CoreIPC::ArgumentDecoder*, OwnPtr<CoreIPC::ArgumentEncoder>&);
virtual void didClose(CoreIPC::Connection*);
virtual void didReceiveInvalidMessage(CoreIPC::Connection*, CoreIPC::MessageID);
- virtual void syncMessageSendTimedOut(CoreIPC::Connection*);
#if PLATFORM(WIN)
virtual Vector<HWND> windowsToReceiveSentMessagesWhileWaitingForSyncReply();
#endif
WebProcess* m_process;
- RefPtr<CoreIPC::Connection> m_connection;
};
} // namespace WebKit
diff --git a/Source/WebKit2/WebProcess/WebCoreSupport/WebChromeClient.cpp b/Source/WebKit2/WebProcess/WebCoreSupport/WebChromeClient.cpp
index dbcab8dbf..ac3daa908 100644
--- a/Source/WebKit2/WebProcess/WebCoreSupport/WebChromeClient.cpp
+++ b/Source/WebKit2/WebProcess/WebCoreSupport/WebChromeClient.cpp
@@ -314,7 +314,7 @@ void WebChromeClient::runJavaScriptAlert(Frame* frame, const String& alertText)
m_page->injectedBundleUIClient().willRunJavaScriptAlert(m_page, alertText, webFrame);
unsigned syncSendFlags = (WebCore::AXObjectCache::accessibilityEnabled()) ? CoreIPC::SpinRunLoopWhileWaitingForReply : 0;
- WebProcess::shared().connection()->sendSync(Messages::WebPageProxy::RunJavaScriptAlert(webFrame->frameID(), alertText), Messages::WebPageProxy::RunJavaScriptAlert::Reply(), m_page->pageID(), CoreIPC::Connection::DefaultTimeout, syncSendFlags);
+ WebProcess::shared().connection()->sendSync(Messages::WebPageProxy::RunJavaScriptAlert(webFrame->frameID(), alertText), Messages::WebPageProxy::RunJavaScriptAlert::Reply(), m_page->pageID(), CoreIPC::Connection::NoTimeout, syncSendFlags);
}
bool WebChromeClient::runJavaScriptConfirm(Frame* frame, const String& message)
@@ -326,7 +326,7 @@ bool WebChromeClient::runJavaScriptConfirm(Frame* frame, const String& message)
unsigned syncSendFlags = (WebCore::AXObjectCache::accessibilityEnabled()) ? CoreIPC::SpinRunLoopWhileWaitingForReply : 0;
bool result = false;
- if (!WebProcess::shared().connection()->sendSync(Messages::WebPageProxy::RunJavaScriptConfirm(webFrame->frameID(), message), Messages::WebPageProxy::RunJavaScriptConfirm::Reply(result), m_page->pageID(), CoreIPC::Connection::DefaultTimeout, syncSendFlags))
+ if (!WebProcess::shared().connection()->sendSync(Messages::WebPageProxy::RunJavaScriptConfirm(webFrame->frameID(), message), Messages::WebPageProxy::RunJavaScriptConfirm::Reply(result), m_page->pageID(), CoreIPC::Connection::NoTimeout, syncSendFlags))
return false;
return result;
@@ -340,7 +340,7 @@ bool WebChromeClient::runJavaScriptPrompt(Frame* frame, const String& message, c
m_page->injectedBundleUIClient().willRunJavaScriptPrompt(m_page, message, defaultValue, webFrame);
unsigned syncSendFlags = (WebCore::AXObjectCache::accessibilityEnabled()) ? CoreIPC::SpinRunLoopWhileWaitingForReply : 0;
- if (!WebProcess::shared().connection()->sendSync(Messages::WebPageProxy::RunJavaScriptPrompt(webFrame->frameID(), message, defaultValue), Messages::WebPageProxy::RunJavaScriptPrompt::Reply(result), m_page->pageID(), CoreIPC::Connection::DefaultTimeout, syncSendFlags))
+ if (!WebProcess::shared().connection()->sendSync(Messages::WebPageProxy::RunJavaScriptPrompt(webFrame->frameID(), message, defaultValue), Messages::WebPageProxy::RunJavaScriptPrompt::Reply(result), m_page->pageID(), CoreIPC::Connection::NoTimeout, syncSendFlags))
return false;
return !result.isNull();
@@ -562,7 +562,7 @@ void WebChromeClient::reachedApplicationCacheOriginQuota(SecurityOrigin* origin,
}
#if ENABLE(DASHBOARD_SUPPORT)
-void WebChromeClient::dashboardRegionsChanged()
+void WebChromeClient::annotatedRegionsChanged()
{
notImplemented();
}
@@ -691,6 +691,11 @@ PassRefPtr<WebCore::SearchPopupMenu> WebChromeClient::createSearchPopupMenu(WebC
}
#if USE(ACCELERATED_COMPOSITING)
+GraphicsLayerFactory* WebChromeClient::graphicsLayerFactory() const
+{
+ return m_page->drawingArea()->graphicsLayerFactory();
+}
+
void WebChromeClient::attachRootGraphicsLayer(Frame*, GraphicsLayer* layer)
{
if (layer)
@@ -704,10 +709,10 @@ void WebChromeClient::setNeedsOneShotDrawingSynchronization()
notImplemented();
}
-void WebChromeClient::scheduleCompositingLayerSync()
+void WebChromeClient::scheduleCompositingLayerFlush()
{
if (m_page->drawingArea())
- m_page->drawingArea()->scheduleCompositingLayerSync();
+ m_page->drawingArea()->scheduleCompositingLayerFlush();
}
#endif
diff --git a/Source/WebKit2/WebProcess/WebCoreSupport/WebChromeClient.h b/Source/WebKit2/WebProcess/WebCoreSupport/WebChromeClient.h
index f40d4b174..1e62f7abd 100644
--- a/Source/WebKit2/WebProcess/WebCoreSupport/WebChromeClient.h
+++ b/Source/WebKit2/WebProcess/WebCoreSupport/WebChromeClient.h
@@ -139,7 +139,7 @@ private:
virtual void reachedApplicationCacheOriginQuota(WebCore::SecurityOrigin*, int64_t spaceNeeded) OVERRIDE;
#if ENABLE(DASHBOARD_SUPPORT)
- virtual void dashboardRegionsChanged() OVERRIDE;
+ virtual void annotatedRegionsChanged() OVERRIDE;
#endif
virtual void populateVisitedLinks() OVERRIDE;
@@ -177,9 +177,10 @@ private:
virtual PassRefPtr<WebCore::SearchPopupMenu> createSearchPopupMenu(WebCore::PopupMenuClient*) const OVERRIDE;
#if USE(ACCELERATED_COMPOSITING)
+ virtual WebCore::GraphicsLayerFactory* graphicsLayerFactory() const OVERRIDE;
virtual void attachRootGraphicsLayer(WebCore::Frame*, WebCore::GraphicsLayer*) OVERRIDE;
virtual void setNeedsOneShotDrawingSynchronization() OVERRIDE;
- virtual void scheduleCompositingLayerSync() OVERRIDE;
+ virtual void scheduleCompositingLayerFlush() OVERRIDE;
virtual CompositingTriggerFlags allowedCompositingTriggers() const
{
diff --git a/Source/WebKit2/WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp b/Source/WebKit2/WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp
index e13908e63..c29463f46 100644
--- a/Source/WebKit2/WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp
+++ b/Source/WebKit2/WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2010, 2011 Apple Inc. All rights reserved.
+ * Copyright (C) 2010, 2011, 2012 Apple Inc. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
@@ -44,6 +44,7 @@
#include "WebFrame.h"
#include "WebFrameNetworkingContext.h"
#include "WebFullScreenManager.h"
+#include "WebIconDatabaseMessages.h"
#include "WebNavigationDataStore.h"
#include "WebPage.h"
#include "WebPageProxyMessages.h"
@@ -67,6 +68,7 @@
#include <WebCore/Page.h>
#include <WebCore/PluginData.h>
#include <WebCore/ProgressTracker.h>
+#include <WebCore/ResourceBuffer.h>
#include <WebCore/ResourceError.h>
#include <WebCore/Settings.h>
#include <WebCore/UIEventWithKeyState.h>
@@ -91,6 +93,7 @@ namespace WebKit {
WebFrameLoaderClient::WebFrameLoaderClient(WebFrame* frame)
: m_frame(frame)
, m_hasSentResponseToPluginView(false)
+ , m_didCompletePageTransitionAlready(false)
, m_frameHasCustomRepresentation(false)
, m_frameCameFromPageCache(false)
{
@@ -393,7 +396,7 @@ void WebFrameLoaderClient::dispatchWillClose()
void WebFrameLoaderClient::dispatchDidReceiveIcon()
{
- notImplemented();
+ WebProcess::shared().connection()->send(Messages::WebIconDatabase::DidReceiveIconForPageURL(m_frame->url()), 0);
}
void WebFrameLoaderClient::dispatchDidStartProvisionalLoad()
@@ -562,8 +565,10 @@ void WebFrameLoaderClient::dispatchDidLayout(LayoutMilestones milestones)
webPage->send(Messages::WebPageProxy::DidFirstLayoutForFrame(m_frame->frameID(), InjectedBundleUserMessageEncoder(userData.get())));
if (m_frame == m_frame->page()->mainWebFrame()) {
- if (!webPage->corePage()->settings()->suppressesIncrementalRendering())
- webPage->drawingArea()->setLayerTreeStateIsFrozen(false);
+ if (!webPage->corePage()->settings()->suppressesIncrementalRendering() && !m_didCompletePageTransitionAlready) {
+ webPage->didCompletePageTransition();
+ m_didCompletePageTransitionAlready = true;
+ }
}
#if USE(TILED_BACKING_STORE)
@@ -894,7 +899,7 @@ void WebFrameLoaderClient::finishedLoading(DocumentLoader* loader)
if (!webPage)
return;
- RefPtr<SharedBuffer> mainResourceData = loader->mainResourceData();
+ RefPtr<ResourceBuffer> mainResourceData = loader->mainResourceData();
CoreIPC::DataReference dataReference(reinterpret_cast<const uint8_t*>(mainResourceData ? mainResourceData->data() : 0), mainResourceData ? mainResourceData->size() : 0);
webPage->send(Messages::WebPageProxy::DidFinishLoadingDataForCustomRepresentation(loader->response().suggestedFilename(), dataReference));
@@ -1120,12 +1125,15 @@ String WebFrameLoaderClient::generatedMIMETypeForURLScheme(const String& /*URLSc
void WebFrameLoaderClient::frameLoadCompleted()
{
+ // Note: Can be called multiple times.
WebPage* webPage = m_frame->page();
if (!webPage)
return;
- if (m_frame == m_frame->page()->mainWebFrame())
- webPage->drawingArea()->setLayerTreeStateIsFrozen(false);
+ if (m_frame == m_frame->page()->mainWebFrame() && !m_didCompletePageTransitionAlready) {
+ webPage->didCompletePageTransition();
+ m_didCompletePageTransitionAlready = true;
+ }
}
void WebFrameLoaderClient::saveViewStateToItem(HistoryItem*)
@@ -1138,10 +1146,9 @@ void WebFrameLoaderClient::restoreViewState()
// Inform the UI process of the scale factor.
double scaleFactor = m_frame->coreFrame()->loader()->history()->currentItem()->pageScaleFactor();
- // A scale factor of 0.0 means the history item actually has the "default scale factor" of 1.0.
- if (!scaleFactor)
- scaleFactor = 1.0;
- m_frame->page()->send(Messages::WebPageProxy::PageScaleFactorDidChange(scaleFactor));
+ // A scale factor of 0 means the history item has the default scale factor, thus we do not need to update it.
+ if (scaleFactor)
+ m_frame->page()->send(Messages::WebPageProxy::PageScaleFactorDidChange(scaleFactor));
// FIXME: This should not be necessary. WebCore should be correctly invalidating
// the view on restores from the back/forward cache.
@@ -1155,8 +1162,10 @@ void WebFrameLoaderClient::provisionalLoadStarted()
if (!webPage)
return;
- if (m_frame == m_frame->page()->mainWebFrame())
- webPage->drawingArea()->setLayerTreeStateIsFrozen(true);
+ if (m_frame == m_frame->page()->mainWebFrame()) {
+ webPage->didStartPageTransition();
+ m_didCompletePageTransitionAlready = false;
+ }
}
void WebFrameLoaderClient::didFinishLoad()
@@ -1206,7 +1215,7 @@ void WebFrameLoaderClient::transitionToCommittedFromCachedFrame(CachedFrame*)
bool isMainFrame = webPage->mainWebFrame() == m_frame;
const ResourceResponse& response = m_frame->coreFrame()->loader()->documentLoader()->response();
- m_frameHasCustomRepresentation = isMainFrame && WebProcess::shared().shouldUseCustomRepresentationForResponse(response);
+ m_frameHasCustomRepresentation = isMainFrame && webPage->shouldUseCustomRepresentationForResponse(response);
m_frameCameFromPageCache = true;
}
@@ -1220,7 +1229,7 @@ void WebFrameLoaderClient::transitionToCommittedForNewPage()
IntRect currentVisibleContentBounds = m_frame->visibleContentBounds();
const ResourceResponse& response = m_frame->coreFrame()->loader()->documentLoader()->response();
- m_frameHasCustomRepresentation = isMainFrame && WebProcess::shared().shouldUseCustomRepresentationForResponse(response);
+ m_frameHasCustomRepresentation = isMainFrame && webPage->shouldUseCustomRepresentationForResponse(response);
m_frameCameFromPageCache = false;
m_frame->coreFrame()->createView(webPage->size(), backgroundColor, /* transparent */ false, IntSize(), shouldUseFixedLayout);
@@ -1344,6 +1353,16 @@ PassRefPtr<Widget> WebFrameLoaderClient::createPlugin(const IntSize&, HTMLPlugIn
return PluginView::create(pluginElement, plugin.release(), parameters);
}
+void WebFrameLoaderClient::recreatePlugin(Widget* widget)
+{
+ ASSERT(widget && widget->isPluginViewBase());
+ ASSERT(m_frame->page());
+
+ PluginView* pluginView = static_cast<PluginView*>(widget);
+ RefPtr<Plugin> plugin = m_frame->page()->createPlugin(m_frame, pluginView->pluginElement(), pluginView->initialParameters());
+ pluginView->recreateAndInitialize(plugin.release());
+}
+
void WebFrameLoaderClient::redirectDataToPlugin(Widget* pluginWidget)
{
m_pluginView = static_cast<PluginView*>(pluginWidget);
@@ -1515,10 +1534,6 @@ RemoteAXObjectRef WebFrameLoaderClient::accessibilityRemoteObject()
return m_frame->page()->accessibilityRemoteObject();
}
-#if ENABLE(MAC_JAVA_BRIDGE)
-jobject WebFrameLoaderClient::javaApplet(NSView*) { return 0; }
-#endif
-
NSCachedURLResponse* WebFrameLoaderClient::willCacheResponse(DocumentLoader*, unsigned long identifier, NSCachedURLResponse* response) const
{
WebPage* webPage = m_frame->page();
diff --git a/Source/WebKit2/WebProcess/WebCoreSupport/WebFrameLoaderClient.h b/Source/WebKit2/WebProcess/WebCoreSupport/WebFrameLoaderClient.h
index 213a2fea0..56e121f52 100644
--- a/Source/WebKit2/WebProcess/WebCoreSupport/WebFrameLoaderClient.h
+++ b/Source/WebKit2/WebProcess/WebCoreSupport/WebFrameLoaderClient.h
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2010, 2011 Apple Inc. All rights reserved.
+ * Copyright (C) 2010, 2011, 2012 Apple Inc. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
@@ -188,6 +188,7 @@ private:
const String& referrer, bool allowsScrolling, int marginWidth, int marginHeight) OVERRIDE;
virtual PassRefPtr<WebCore::Widget> createPlugin(const WebCore::IntSize&, WebCore::HTMLPlugInElement*, const WebCore::KURL&, const Vector<String>&, const Vector<String>&, const String&, bool loadManually) OVERRIDE;
+ virtual void recreatePlugin(WebCore::Widget*) OVERRIDE;
virtual void redirectDataToPlugin(WebCore::Widget* pluginWidget) OVERRIDE;
virtual PassRefPtr<WebCore::Widget> createJavaAppletWidget(const WebCore::IntSize&, WebCore::HTMLAppletElement*, const WebCore::KURL& baseURL, const Vector<String>& paramNames, const Vector<String>& paramValues) OVERRIDE;
@@ -216,9 +217,6 @@ private:
#if PLATFORM(MAC)
virtual RemoteAXObjectRef accessibilityRemoteObject() OVERRIDE;
-#if ENABLE(MAC_JAVA_BRIDGE)
- virtual jobject javaApplet(NSView*) OVERRIDE;
-#endif
virtual NSCachedURLResponse* willCacheResponse(WebCore::DocumentLoader*, unsigned long identifier, NSCachedURLResponse*) const OVERRIDE;
#endif
#if PLATFORM(WIN) && USE(CFNETWORK)
@@ -244,6 +242,7 @@ private:
WebFrame* m_frame;
RefPtr<PluginView> m_pluginView;
bool m_hasSentResponseToPluginView;
+ bool m_didCompletePageTransitionAlready;
bool m_frameHasCustomRepresentation;
bool m_frameCameFromPageCache;
};
diff --git a/Source/WebKit2/WebProcess/WebCoreSupport/mac/WebSystemInterface.mm b/Source/WebKit2/WebProcess/WebCoreSupport/mac/WebSystemInterface.mm
index 1897675dc..a004a8cc7 100644
--- a/Source/WebKit2/WebProcess/WebCoreSupport/mac/WebSystemInterface.mm
+++ b/Source/WebKit2/WebProcess/WebCoreSupport/mac/WebSystemInterface.mm
@@ -44,6 +44,9 @@ void InitWebCoreSystemInterface(void)
INIT(CGContextGetShouldSmoothFonts);
INIT(CGPatternCreateWithImageAndTransform);
INIT(CGContextResetClip);
+#if __MAC_OS_X_VERSION_MIN_REQUIRED >= 1080
+ INIT(CGContextDrawsWithCorrectShadowOffsets);
+#endif
INIT(CopyCONNECTProxyResponse);
INIT(CopyNSURLResponseStatusLine);
INIT(CreateCTLineWithUniCharProvider);
diff --git a/Source/WebKit2/WebProcess/WebCoreSupport/qt/WebDragClientQt.cpp b/Source/WebKit2/WebProcess/WebCoreSupport/qt/WebDragClientQt.cpp
index d9e6d1d13..bbdb635b3 100644
--- a/Source/WebKit2/WebProcess/WebCoreSupport/qt/WebDragClientQt.cpp
+++ b/Source/WebKit2/WebProcess/WebCoreSupport/qt/WebDragClientQt.cpp
@@ -38,15 +38,15 @@ using namespace WebCore;
namespace WebKit {
-static PassRefPtr<ShareableBitmap> convertQImageToShareableBitmap(QImage* image)
+static PassRefPtr<ShareableBitmap> convertQPixmapToShareableBitmap(QPixmap* pixmap)
{
- if (!image)
+ if (!pixmap)
return 0;
- RefPtr<ShareableBitmap> bitmap = ShareableBitmap::createShareable(IntSize(image->size()), ShareableBitmap::SupportsAlpha);
+ RefPtr<ShareableBitmap> bitmap = ShareableBitmap::createShareable(IntSize(pixmap->size()), ShareableBitmap::SupportsAlpha);
OwnPtr<GraphicsContext> graphicsContext = bitmap->createGraphicsContext();
- graphicsContext->platformContext()->drawImage(0, 0, *image);
+ graphicsContext->platformContext()->drawPixmap(0, 0, *pixmap);
return bitmap.release();
}
@@ -57,7 +57,7 @@ void WebDragClient::startDrag(DragImageRef dragImage, const IntPoint& clientPosi
static_cast<ClipboardQt*>(clipboard)->invalidateWritableData();
DragData dragData(clipboardData, clientPosition, globalPosition, dragOperationMask);
- RefPtr<ShareableBitmap> bitmap = convertQImageToShareableBitmap(dragImage);
+ RefPtr<ShareableBitmap> bitmap = convertQPixmapToShareableBitmap(dragImage);
ShareableBitmap::Handle handle;
if (bitmap && !bitmap->createHandle(handle))
return;
diff --git a/Source/WebKit2/WebProcess/WebCoreSupport/soup/WebFrameNetworkingContext.cpp b/Source/WebKit2/WebProcess/WebCoreSupport/soup/WebFrameNetworkingContext.cpp
index 876de80a6..6e7b593bc 100644
--- a/Source/WebKit2/WebProcess/WebCoreSupport/soup/WebFrameNetworkingContext.cpp
+++ b/Source/WebKit2/WebProcess/WebCoreSupport/soup/WebFrameNetworkingContext.cpp
@@ -26,16 +26,31 @@
#include "config.h"
#include "WebFrameNetworkingContext.h"
+#include "WebFrame.h"
+#include "WebPage.h"
#include <WebCore/ResourceHandle.h>
using namespace WebCore;
namespace WebKit {
+WebFrameNetworkingContext::WebFrameNetworkingContext(WebFrame* frame)
+ : FrameNetworkingContext(frame->coreFrame())
+ , m_initiatingPageID(0)
+{
+ if (WebPage* page = frame->page())
+ m_initiatingPageID = page->pageID();
+}
+
SoupSession* WebFrameNetworkingContext::soupSession() const
{
return ResourceHandle::defaultSession();
}
+uint64_t WebFrameNetworkingContext::initiatingPageID() const
+{
+ return m_initiatingPageID;
+}
+
}
diff --git a/Source/WebKit2/WebProcess/WebCoreSupport/soup/WebFrameNetworkingContext.h b/Source/WebKit2/WebProcess/WebCoreSupport/soup/WebFrameNetworkingContext.h
index 2a42d38d3..a06a69252 100644
--- a/Source/WebKit2/WebProcess/WebCoreSupport/soup/WebFrameNetworkingContext.h
+++ b/Source/WebKit2/WebProcess/WebCoreSupport/soup/WebFrameNetworkingContext.h
@@ -28,12 +28,12 @@
#ifndef WebFrameNetworkingContext_h
#define WebFrameNetworkingContext_h
-#include "WebFrame.h"
-
#include <WebCore/FrameNetworkingContext.h>
namespace WebKit {
+class WebFrame;
+
class WebFrameNetworkingContext : public WebCore::FrameNetworkingContext {
public:
static PassRefPtr<WebFrameNetworkingContext> create(WebFrame* frame)
@@ -42,12 +42,12 @@ public:
}
private:
- WebFrameNetworkingContext(WebFrame* frame)
- : WebCore::FrameNetworkingContext(frame->coreFrame())
- {
- }
+ WebFrameNetworkingContext(WebFrame*);
virtual SoupSession* soupSession() const;
+ virtual uint64_t initiatingPageID() const;
+
+ uint64_t m_initiatingPageID;
};
}
diff --git a/Source/WebKit2/WebProcess/WebKitMain.cpp b/Source/WebKit2/WebProcess/WebKitMain.cpp
index 03a8cb5c5..1fd72561d 100644
--- a/Source/WebKit2/WebProcess/WebKitMain.cpp
+++ b/Source/WebKit2/WebProcess/WebKitMain.cpp
@@ -31,6 +31,10 @@
#include "WebProcessMain.h"
#include <wtf/text/CString.h>
+#if ENABLE(NETWORK_PROCESS)
+#include "NetworkProcessMain.h"
+#endif
+
#if PLATFORM(MAC)
#include <objc/objc-auto.h>
#elif PLATFORM(WIN)
@@ -54,6 +58,12 @@ static int WebKitMain(const CommandLine& commandLine)
#else
break;
#endif
+ case ProcessLauncher::NetworkProcess:
+#if ENABLE(NETWORK_PROCESS)
+ return NetworkProcessMain(commandLine);
+#else
+ break;
+#endif
}
return EXIT_FAILURE;
diff --git a/Source/WebKit2/WebProcess/WebPage/CoordinatedGraphics/CoordinatedGraphicsLayer.cpp b/Source/WebKit2/WebProcess/WebPage/CoordinatedGraphics/CoordinatedGraphicsLayer.cpp
index f2afdb5fb..9798f3f05 100644
--- a/Source/WebKit2/WebProcess/WebPage/CoordinatedGraphics/CoordinatedGraphicsLayer.cpp
+++ b/Source/WebKit2/WebProcess/WebPage/CoordinatedGraphics/CoordinatedGraphicsLayer.cpp
@@ -53,7 +53,7 @@ CoordinatedGraphicsLayer* CoordinatedGraphicsLayer::layerByID(WebKit::WebLayerID
HashMap<WebLayerID, CoordinatedGraphicsLayer*>::iterator it = table.find(id);
if (it == table.end())
return 0;
- return it->second;
+ return it->value;
}
static WebLayerID toWebLayerID(GraphicsLayer* layer)
@@ -65,21 +65,21 @@ void CoordinatedGraphicsLayer::didChangeLayerState()
{
m_shouldSyncLayerState = true;
if (client())
- client()->notifySyncRequired(this);
+ client()->notifyFlushRequired(this);
}
void CoordinatedGraphicsLayer::didChangeAnimatedProperties()
{
m_shouldSyncAnimatedProperties = true;
if (client())
- client()->notifySyncRequired(this);
+ client()->notifyFlushRequired(this);
}
void CoordinatedGraphicsLayer::didChangeChildren()
{
m_shouldSyncChildren = true;
if (client())
- client()->notifySyncRequired(this);
+ client()->notifyFlushRequired(this);
}
#if ENABLE(CSS_FILTERS)
@@ -87,7 +87,7 @@ void CoordinatedGraphicsLayer::didChangeFilters()
{
m_shouldSyncFilters = true;
if (client())
- client()->notifySyncRequired(this);
+ client()->notifyFlushRequired(this);
}
#endif
@@ -340,7 +340,7 @@ void CoordinatedGraphicsLayer::setContentsNeedsDisplay()
setContentsToImage(image.get());
m_canvasNeedsDisplay = true;
if (client())
- client()->notifySyncRequired(this);
+ client()->notifyFlushRequired(this);
}
void CoordinatedGraphicsLayer::setContentsToCanvas(PlatformLayer* platformLayer)
@@ -348,7 +348,7 @@ void CoordinatedGraphicsLayer::setContentsToCanvas(PlatformLayer* platformLayer)
m_canvasPlatformLayer = platformLayer;
m_canvasNeedsDisplay = true;
if (client())
- client()->notifySyncRequired(this);
+ client()->notifyFlushRequired(this);
}
#if ENABLE(CSS_FILTERS)
@@ -433,20 +433,20 @@ WebLayerID CoordinatedGraphicsLayer::id() const
return m_id;
}
-void CoordinatedGraphicsLayer::syncCompositingState(const FloatRect& rect)
+void CoordinatedGraphicsLayer::flushCompositingState(const FloatRect& rect)
{
if (CoordinatedGraphicsLayer* mask = toCoordinatedGraphicsLayer(maskLayer()))
- mask->syncCompositingStateForThisLayerOnly();
+ mask->flushCompositingStateForThisLayerOnly();
if (CoordinatedGraphicsLayer* replica = toCoordinatedGraphicsLayer(replicaLayer()))
- replica->syncCompositingStateForThisLayerOnly();
+ replica->flushCompositingStateForThisLayerOnly();
m_CoordinatedGraphicsLayerClient->syncFixedLayers();
- syncCompositingStateForThisLayerOnly();
+ flushCompositingStateForThisLayerOnly();
for (size_t i = 0; i < children().size(); ++i)
- children()[i]->syncCompositingState(rect);
+ children()[i]->flushCompositingState(rect);
}
CoordinatedGraphicsLayer* toCoordinatedGraphicsLayer(GraphicsLayer* layer)
@@ -530,7 +530,7 @@ void CoordinatedGraphicsLayer::syncCanvas()
#if USE(GRAPHICS_SURFACE)
uint32_t frontBuffer = m_canvasPlatformLayer->copyToGraphicsSurface();
- uint64_t token = m_canvasPlatformLayer->graphicsSurfaceToken();
+ GraphicsSurfaceToken token = m_canvasPlatformLayer->graphicsSurfaceToken();
m_CoordinatedGraphicsLayerClient->syncCanvas(m_id, IntSize(size().width(), size().height()), token, frontBuffer);
#endif
@@ -545,7 +545,7 @@ void CoordinatedGraphicsLayer::ensureImageBackingStore()
m_layerInfo.imageBackingStoreID = m_CoordinatedGraphicsLayerClient->adoptImageBackingStore(m_image.get());
}
-void CoordinatedGraphicsLayer::syncCompositingStateForThisLayerOnly()
+void CoordinatedGraphicsLayer::flushCompositingStateForThisLayerOnly()
{
// The remote image might have been released by purgeBackingStores.
ensureImageBackingStore();
diff --git a/Source/WebKit2/WebProcess/WebPage/CoordinatedGraphics/CoordinatedGraphicsLayer.h b/Source/WebKit2/WebProcess/WebPage/CoordinatedGraphics/CoordinatedGraphicsLayer.h
index f4ea2fb92..049991070 100644
--- a/Source/WebKit2/WebProcess/WebPage/CoordinatedGraphics/CoordinatedGraphicsLayer.h
+++ b/Source/WebKit2/WebProcess/WebPage/CoordinatedGraphics/CoordinatedGraphicsLayer.h
@@ -1,4 +1,4 @@
- /*
+/*
Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies)
This library is free software; you can redistribute it and/or
@@ -26,6 +26,7 @@
#include "GraphicsLayer.h"
#include "GraphicsLayerAnimation.h"
#include "GraphicsLayerTransform.h"
+#include "GraphicsSurface.h"
#include "Image.h"
#include "IntSize.h"
#include "ShareableBitmap.h"
@@ -61,8 +62,8 @@ public:
#if ENABLE(CSS_FILTERS)
virtual void syncLayerFilters(WebLayerID, const WebCore::FilterOperations&) = 0;
#endif
-#if PLATFORM(QT)
- virtual void syncCanvas(WebLayerID, const WebCore::IntSize& canvasSize, uint64_t graphicsSurfaceToken, uint32_t frontBuffer) = 0;
+#if USE(GRAPHICS_SURFACE)
+ virtual void syncCanvas(WebLayerID, const WebCore::IntSize& canvasSize, const WebCore::GraphicsSurfaceToken&, uint32_t frontBuffer) = 0;
#endif
virtual void setLayerAnimatedOpacity(WebLayerID, float) = 0;
@@ -115,8 +116,8 @@ public:
void setContentsNeedsDisplay();
void setContentsScale(float);
void setVisibleContentRectTrajectoryVector(const FloatPoint&);
- virtual void syncCompositingState(const FloatRect&);
- virtual void syncCompositingStateForThisLayerOnly();
+ virtual void flushCompositingState(const FloatRect&);
+ virtual void flushCompositingStateForThisLayerOnly();
#if ENABLE(CSS_FILTERS)
bool setFilters(const FilterOperations&);
#endif
@@ -133,6 +134,7 @@ public:
GraphicsLayer* maskTarget() const { return m_maskTarget; }
void setMaskTarget(GraphicsLayer* layer) { m_maskTarget = layer; }
+ IntRect coverRect() const { return m_mainBackingStore ? m_mainBackingStore->mapToContents(m_mainBackingStore->coverRect()) : IntRect(); }
static void initFactory();
diff --git a/Source/WebKit2/WebProcess/WebPage/CoordinatedGraphics/LayerTreeCoordinator.cpp b/Source/WebKit2/WebProcess/WebPage/CoordinatedGraphics/LayerTreeCoordinator.cpp
index d979ad71c..416cf00e0 100644
--- a/Source/WebKit2/WebProcess/WebPage/CoordinatedGraphics/LayerTreeCoordinator.cpp
+++ b/Source/WebKit2/WebProcess/WebPage/CoordinatedGraphics/LayerTreeCoordinator.cpp
@@ -83,7 +83,7 @@ LayerTreeCoordinator::LayerTreeCoordinator(WebPage* webPage)
, m_forceRepaintAsyncCallbackID(0)
{
// Create a root layer.
- m_rootLayer = GraphicsLayer::create(this);
+ m_rootLayer = GraphicsLayer::create(this, this);
CoordinatedGraphicsLayer* webRootLayer = toCoordinatedGraphicsLayer(m_rootLayer.get());
webRootLayer->setRootLayer(true);
#ifndef NDEBUG
@@ -93,7 +93,7 @@ LayerTreeCoordinator::LayerTreeCoordinator(WebPage* webPage)
m_rootLayer->setSize(m_webPage->size());
m_layerTreeContext.webLayerID = toCoordinatedGraphicsLayer(webRootLayer)->id();
- m_nonCompositedContentLayer = GraphicsLayer::create(this);
+ m_nonCompositedContentLayer = GraphicsLayer::create(this, this);
toCoordinatedGraphicsLayer(m_rootLayer.get())->setCoordinatedGraphicsLayerClient(this);
#ifndef NDEBUG
m_nonCompositedContentLayer->setName("LayerTreeCoordinator non-composited content");
@@ -258,12 +258,12 @@ bool LayerTreeCoordinator::flushPendingLayerChanges()
m_webPage->send(Messages::LayerTreeCoordinatorProxy::DeleteCompositingLayer(m_detachedLayers[i]));
m_detachedLayers.clear();
- bool didSync = m_webPage->corePage()->mainFrame()->view()->syncCompositingStateIncludingSubframes();
- m_nonCompositedContentLayer->syncCompositingStateForThisLayerOnly();
+ bool didSync = m_webPage->corePage()->mainFrame()->view()->flushCompositingStateIncludingSubframes();
+ m_nonCompositedContentLayer->flushCompositingStateForThisLayerOnly();
if (m_pageOverlayLayer)
- m_pageOverlayLayer->syncCompositingStateForThisLayerOnly();
+ m_pageOverlayLayer->flushCompositingStateForThisLayerOnly();
- m_rootLayer->syncCompositingStateForThisLayerOnly();
+ m_rootLayer->flushCompositingStateForThisLayerOnly();
if (m_shouldSyncRootLayer) {
m_webPage->send(Messages::LayerTreeCoordinatorProxy::SetRootCompositingLayer(toCoordinatedGraphicsLayer(m_rootLayer.get())->id()));
@@ -272,7 +272,10 @@ bool LayerTreeCoordinator::flushPendingLayerChanges()
if (m_shouldSyncFrame) {
didSync = true;
- m_webPage->send(Messages::LayerTreeCoordinatorProxy::DidRenderFrame());
+
+ IntSize contentsSize = roundedIntSize(m_nonCompositedContentLayer->size());
+ IntRect coveredRect = toCoordinatedGraphicsLayer(m_nonCompositedContentLayer.get())->coverRect();
+ m_webPage->send(Messages::LayerTreeCoordinatorProxy::DidRenderFrame(contentsSize, coveredRect));
m_waitingForUIProcess = true;
m_shouldSyncFrame = false;
}
@@ -302,11 +305,13 @@ void LayerTreeCoordinator::syncLayerChildren(WebLayerID id, const Vector<WebLaye
m_webPage->send(Messages::LayerTreeCoordinatorProxy::SetCompositingLayerChildren(id, children));
}
-void LayerTreeCoordinator::syncCanvas(WebLayerID id, const IntSize& canvasSize, uint64_t graphicsSurfaceToken, uint32_t frontBuffer)
+#if USE(GRAPHICS_SURFACE)
+void LayerTreeCoordinator::syncCanvas(WebLayerID id, const IntSize& canvasSize, const GraphicsSurfaceToken& token, uint32_t frontBuffer)
{
m_shouldSyncFrame = true;
- m_webPage->send(Messages::LayerTreeCoordinatorProxy::SyncCanvas(id, canvasSize, graphicsSurfaceToken, frontBuffer));
+ m_webPage->send(Messages::LayerTreeCoordinatorProxy::SyncCanvas(id, canvasSize, token, frontBuffer));
}
+#endif
#if ENABLE(CSS_FILTERS)
void LayerTreeCoordinator::syncLayerFilters(WebLayerID id, const FilterOperations& filters)
@@ -422,7 +427,7 @@ void LayerTreeCoordinator::createPageOverlayLayer()
{
ASSERT(!m_pageOverlayLayer);
- m_pageOverlayLayer = GraphicsLayer::create(this);
+ m_pageOverlayLayer = GraphicsLayer::create(this, this);
#ifndef NDEBUG
m_pageOverlayLayer->setName("LayerTreeCoordinator page overlay content");
#endif
@@ -448,18 +453,26 @@ int64_t LayerTreeCoordinator::adoptImageBackingStore(Image* image)
int64_t key = 0;
#if PLATFORM(QT)
- QImage* nativeImage = image->nativeImageForCurrentFrame();
+ QPixmap* nativeImage = image->nativeImageForCurrentFrame();
if (!nativeImage)
return InvalidWebLayerID;
key = nativeImage->cacheKey();
+#elif USE(CAIRO)
+ NativeImageCairo* nativeImage = image->nativeImageForCurrentFrame();
+ if (!nativeImage)
+ return InvalidWebLayerID;
+ // This can be safely done since we own the reference.
+ // A corresponding cairo_surface_destroy() is ensured in releaseImageBackingStore().
+ cairo_surface_t* cairoSurface = cairo_surface_reference(nativeImage->surface());
+ key = reinterpret_cast<int64_t>(cairoSurface);
#endif
HashMap<int64_t, int>::iterator it = m_directlyCompositedImageRefCounts.find(key);
if (it != m_directlyCompositedImageRefCounts.end()) {
- ++(it->second);
+ ++(it->value);
return key;
}
@@ -484,12 +497,17 @@ void LayerTreeCoordinator::releaseImageBackingStore(int64_t key)
if (it == m_directlyCompositedImageRefCounts.end())
return;
- it->second--;
+ it->value--;
- if (it->second)
+ if (it->value)
return;
m_directlyCompositedImageRefCounts.remove(it);
+#if USE(CAIRO)
+ // Complement the referencing in adoptImageBackingStore().
+ cairo_surface_t* cairoSurface = reinterpret_cast<cairo_surface_t*>(key);
+ cairo_surface_destroy(cairoSurface);
+#endif
m_webPage->send(Messages::LayerTreeCoordinatorProxy::DestroyDirectlyCompositedImage(key));
}
@@ -498,7 +516,7 @@ void LayerTreeCoordinator::notifyAnimationStarted(const WebCore::GraphicsLayer*,
{
}
-void LayerTreeCoordinator::notifySyncRequired(const WebCore::GraphicsLayer*)
+void LayerTreeCoordinator::notifyFlushRequired(const WebCore::GraphicsLayer*)
{
}
@@ -527,6 +545,11 @@ bool LayerTreeCoordinator::showRepaintCounter(const WebCore::GraphicsLayer*) con
return m_webPage->corePage()->settings()->showRepaintCounter();
}
+PassOwnPtr<GraphicsLayer> LayerTreeCoordinator::createGraphicsLayer(GraphicsLayerClient* client)
+{
+ return adoptPtr(new CoordinatedGraphicsLayer(client));
+}
+
bool LayerTreeHost::supportsAcceleratedCompositing()
{
return true;
@@ -596,6 +619,11 @@ void LayerTreeCoordinator::setVisibleContentsRect(const IntRect& rect, float sca
m_shouldSendScrollPositionUpdate = true;
}
+GraphicsLayerFactory* LayerTreeCoordinator::graphicsLayerFactory()
+{
+ return this;
+}
+
void LayerTreeCoordinator::scheduleAnimation()
{
scheduleLayerFlush();
diff --git a/Source/WebKit2/WebProcess/WebPage/CoordinatedGraphics/LayerTreeCoordinator.h b/Source/WebKit2/WebProcess/WebPage/CoordinatedGraphics/LayerTreeCoordinator.h
index 6c61bb6b6..dbebd386a 100644
--- a/Source/WebKit2/WebProcess/WebPage/CoordinatedGraphics/LayerTreeCoordinator.h
+++ b/Source/WebKit2/WebProcess/WebPage/CoordinatedGraphics/LayerTreeCoordinator.h
@@ -28,6 +28,8 @@
#include "Timer.h"
#include "UpdateAtlas.h"
#include <WebCore/GraphicsLayerClient.h>
+#include <WebCore/GraphicsLayerFactory.h>
+#include <WebCore/GraphicsSurface.h>
#include <wtf/OwnPtr.h>
namespace WebKit {
@@ -36,7 +38,8 @@ class UpdateInfo;
class WebPage;
class LayerTreeCoordinator : public LayerTreeHost, WebCore::GraphicsLayerClient
- , public CoordinatedGraphicsLayerClient {
+ , public CoordinatedGraphicsLayerClient
+ , public WebCore::GraphicsLayerFactory {
public:
static PassRefPtr<LayerTreeCoordinator> create(WebPage*);
virtual ~LayerTreeCoordinator();
@@ -77,6 +80,7 @@ public:
virtual bool layerTreeTileUpdatesAllowed() const;
virtual void setVisibleContentsRect(const WebCore::IntRect&, float scale, const WebCore::FloatPoint&);
virtual void didReceiveLayerTreeCoordinatorMessage(CoreIPC::Connection*, CoreIPC::MessageID, CoreIPC::ArgumentDecoder*);
+ virtual WebCore::GraphicsLayerFactory* graphicsLayerFactory() OVERRIDE;
virtual void syncLayerState(WebLayerID, const WebLayerInfo&);
virtual void syncLayerChildren(WebLayerID, const Vector<WebLayerID>&);
@@ -85,7 +89,9 @@ public:
#if ENABLE(CSS_FILTERS)
virtual void syncLayerFilters(WebLayerID, const WebCore::FilterOperations&);
#endif
- virtual void syncCanvas(WebLayerID, const WebCore::IntSize& canvasSize, uint64_t graphicsSurfaceToken, uint32_t frontBuffer) OVERRIDE;
+#if USE(GRAPHICS_SURFACE)
+ virtual void syncCanvas(WebLayerID, const WebCore::IntSize& canvasSize, const WebCore::GraphicsSurfaceToken&, uint32_t frontBuffer) OVERRIDE;
+#endif
virtual void attachLayer(WebCore::CoordinatedGraphicsLayer*);
virtual void detachLayer(WebCore::CoordinatedGraphicsLayer*);
virtual void syncFixedLayers();
@@ -99,11 +105,14 @@ protected:
private:
// GraphicsLayerClient
virtual void notifyAnimationStarted(const WebCore::GraphicsLayer*, double time);
- virtual void notifySyncRequired(const WebCore::GraphicsLayer*);
+ virtual void notifyFlushRequired(const WebCore::GraphicsLayer*);
virtual void paintContents(const WebCore::GraphicsLayer*, WebCore::GraphicsContext&, WebCore::GraphicsLayerPaintingPhase, const WebCore::IntRect& clipRect);
virtual bool showDebugBorders(const WebCore::GraphicsLayer*) const;
virtual bool showRepaintCounter(const WebCore::GraphicsLayer*) const;
+ // GraphicsLayerFactory
+ virtual PassOwnPtr<WebCore::GraphicsLayer> createGraphicsLayer(WebCore::GraphicsLayerClient*) OVERRIDE;
+
// LayerTreeCoordinator
void createPageOverlayLayer();
void destroyPageOverlayLayer();
diff --git a/Source/WebKit2/WebProcess/WebPage/DrawingArea.h b/Source/WebKit2/WebProcess/WebPage/DrawingArea.h
index 6178e85bb..ca476179e 100644
--- a/Source/WebKit2/WebProcess/WebPage/DrawingArea.h
+++ b/Source/WebKit2/WebProcess/WebPage/DrawingArea.h
@@ -41,6 +41,7 @@ namespace CoreIPC {
namespace WebCore {
class GraphicsLayer;
+ class GraphicsLayerFactory;
}
namespace WebKit {
@@ -87,8 +88,9 @@ public:
virtual void updatePreferences(const WebPreferencesStore&) { }
#if USE(ACCELERATED_COMPOSITING)
+ virtual WebCore::GraphicsLayerFactory* graphicsLayerFactory() { return 0; }
virtual void setRootCompositingLayer(WebCore::GraphicsLayer*) = 0;
- virtual void scheduleCompositingLayerSync() = 0;
+ virtual void scheduleCompositingLayerFlush() = 0;
#endif
#if USE(COORDINATED_GRAPHICS)
diff --git a/Source/WebKit2/WebProcess/WebPage/DrawingAreaImpl.cpp b/Source/WebKit2/WebProcess/WebPage/DrawingAreaImpl.cpp
index 2299bc3ea..d6cef142f 100644
--- a/Source/WebKit2/WebProcess/WebPage/DrawingAreaImpl.cpp
+++ b/Source/WebKit2/WebProcess/WebPage/DrawingAreaImpl.cpp
@@ -70,7 +70,11 @@ DrawingAreaImpl::DrawingAreaImpl(WebPage* webPage, const WebPageCreationParamete
{
if (webPage->corePage()->settings()->acceleratedDrawingEnabled() || webPage->corePage()->settings()->forceCompositingMode())
m_alwaysUseCompositing = true;
-
+
+#if USE(COORDINATED_GRAPHICS)
+ m_alwaysUseCompositing = true;
+#endif
+
if (m_alwaysUseCompositing)
enterAcceleratedCompositingMode(0);
}
@@ -303,6 +307,14 @@ void DrawingAreaImpl::layerHostDidFlushLayers()
#endif
}
+GraphicsLayerFactory* DrawingAreaImpl::graphicsLayerFactory()
+{
+ if (m_layerTreeHost)
+ return m_layerTreeHost->graphicsLayerFactory();
+
+ return 0;
+}
+
void DrawingAreaImpl::setRootCompositingLayer(GraphicsLayer* graphicsLayer)
{
// FIXME: Instead of using nested if statements, we should keep a compositing state
@@ -343,7 +355,7 @@ void DrawingAreaImpl::setRootCompositingLayer(GraphicsLayer* graphicsLayer)
}
}
-void DrawingAreaImpl::scheduleCompositingLayerSync()
+void DrawingAreaImpl::scheduleCompositingLayerFlush()
{
if (!m_layerTreeHost)
return;
diff --git a/Source/WebKit2/WebProcess/WebPage/DrawingAreaImpl.h b/Source/WebKit2/WebProcess/WebPage/DrawingAreaImpl.h
index ffe3112c0..8babe0108 100644
--- a/Source/WebKit2/WebProcess/WebPage/DrawingAreaImpl.h
+++ b/Source/WebKit2/WebProcess/WebPage/DrawingAreaImpl.h
@@ -68,8 +68,9 @@ private:
virtual void setPaintingEnabled(bool);
virtual void updatePreferences(const WebPreferencesStore&) OVERRIDE;
- virtual void setRootCompositingLayer(WebCore::GraphicsLayer*);
- virtual void scheduleCompositingLayerSync();
+ virtual WebCore::GraphicsLayerFactory* graphicsLayerFactory() OVERRIDE;
+ virtual void setRootCompositingLayer(WebCore::GraphicsLayer*) OVERRIDE;
+ virtual void scheduleCompositingLayerFlush() OVERRIDE;
#if PLATFORM(WIN)
virtual void scheduleChildWindowGeometryUpdate(const WindowGeometry&);
diff --git a/Source/WebKit2/WebProcess/WebPage/LayerTreeHost.h b/Source/WebKit2/WebProcess/WebPage/LayerTreeHost.h
index 8d3bb94ac..0e686b66f 100644
--- a/Source/WebKit2/WebProcess/WebPage/LayerTreeHost.h
+++ b/Source/WebKit2/WebProcess/WebPage/LayerTreeHost.h
@@ -41,6 +41,7 @@ class FloatPoint;
class IntRect;
class IntSize;
class GraphicsLayer;
+class GraphicsLayerFactory;
#if PLATFORM(WIN) && USE(AVFOUNDATION)
struct GraphicsDeviceAdapter;
@@ -86,6 +87,8 @@ public:
virtual void pauseRendering() { }
virtual void resumeRendering() { }
+ virtual WebCore::GraphicsLayerFactory* graphicsLayerFactory() { return 0; }
+
#if USE(COORDINATED_GRAPHICS)
virtual void setVisibleContentsRect(const WebCore::IntRect&, float scale, const WebCore::FloatPoint&) { }
virtual void setVisibleContentsRectForLayer(int layerID, const WebCore::IntRect&) { }
diff --git a/Source/WebKit2/WebProcess/WebPage/WebBackForwardListProxy.cpp b/Source/WebKit2/WebProcess/WebPage/WebBackForwardListProxy.cpp
index 4ca4e5fdb..be82a197a 100644
--- a/Source/WebKit2/WebProcess/WebPage/WebBackForwardListProxy.cpp
+++ b/Source/WebKit2/WebProcess/WebPage/WebBackForwardListProxy.cpp
@@ -130,9 +130,9 @@ void WebBackForwardListProxy::removeItem(uint64_t itemID)
if (it == idToHistoryItemMap().end())
return;
- WebCore::pageCache()->remove(it->second.get());
+ WebCore::pageCache()->remove(it->value.get());
- historyItemToIDMap().remove(it->second);
+ historyItemToIDMap().remove(it->value);
idToHistoryItemMap().remove(it);
}
diff --git a/Source/WebKit2/WebProcess/WebPage/WebFrame.cpp b/Source/WebKit2/WebProcess/WebPage/WebFrame.cpp
index d04f4db7f..8ae9ef028 100644
--- a/Source/WebKit2/WebProcess/WebPage/WebFrame.cpp
+++ b/Source/WebKit2/WebProcess/WebPage/WebFrame.cpp
@@ -54,6 +54,7 @@
#include <WebCore/JSRange.h>
#include <WebCore/Page.h>
#include <WebCore/RenderTreeAsText.h>
+#include <WebCore/ResourceBuffer.h>
#include <WebCore/SecurityOrigin.h>
#include <WebCore/TextIterator.h>
#include <WebCore/TextResourceDecoder.h>
@@ -296,7 +297,7 @@ String WebFrame::source() const
DocumentLoader* documentLoader = m_coreFrame->loader()->activeDocumentLoader();
if (!documentLoader)
return String();
- RefPtr<SharedBuffer> mainResourceData = documentLoader->mainResourceData();
+ RefPtr<ResourceBuffer> mainResourceData = documentLoader->mainResourceData();
if (!mainResourceData)
return String();
return decoder->encoding().decode(mainResourceData->data(), mainResourceData->size());
@@ -513,7 +514,7 @@ String WebFrame::layerTreeAsText() const
if (!m_coreFrame)
return "";
- return m_coreFrame->layerTreeAsText();
+ return m_coreFrame->layerTreeAsText(0);
}
unsigned WebFrame::pendingUnloadCount() const
diff --git a/Source/WebKit2/WebProcess/WebPage/WebPage.cpp b/Source/WebKit2/WebProcess/WebPage/WebPage.cpp
index 61e82b5d9..ea4712724 100644
--- a/Source/WebKit2/WebProcess/WebPage/WebPage.cpp
+++ b/Source/WebKit2/WebProcess/WebPage/WebPage.cpp
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2010, 2011 Apple Inc. All rights reserved.
+ * Copyright (C) 2010, 2011, 2012 Apple Inc. All rights reserved.
* Copyright (C) 2012 Intel Corporation. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -33,6 +33,7 @@
#include "DrawingArea.h"
#include "InjectedBundle.h"
#include "InjectedBundleBackForwardList.h"
+#include "InjectedBundleUserMessageCoders.h"
#include "LayerTreeHost.h"
#include "MessageID.h"
#include "NetscapePlugin.h"
@@ -104,7 +105,9 @@
#include <WebCore/RenderLayer.h>
#include <WebCore/RenderTreeAsText.h>
#include <WebCore/RenderView.h>
+#include <WebCore/ResourceBuffer.h>
#include <WebCore/ResourceRequest.h>
+#include <WebCore/ResourceResponse.h>
#include <WebCore/RunLoop.h>
#include <WebCore/SchemeRegistry.h>
#include <WebCore/ScriptValue.h>
@@ -148,7 +151,10 @@
#endif
#if PLATFORM(MAC)
-#include "BuiltInPDFView.h"
+#include "SimplePDFPlugin.h"
+#if ENABLE(PDFKIT_PLUGIN)
+#include "PDFPlugin.h"
+#endif
#endif
#if PLATFORM(QT)
@@ -217,6 +223,7 @@ WebPage::WebPage(uint64_t pageID, const WebPageCreationParameters& parameters)
, m_artificialPluginInitializationDelayEnabled(false)
, m_scrollingPerformanceLoggingEnabled(false)
#if PLATFORM(MAC)
+ , m_pdfPluginEnabled(false)
, m_windowIsVisible(false)
, m_isSmartInsertDeleteEnabled(parameters.isSmartInsertDeleteEnabled)
, m_layerHostingMode(parameters.layerHostingMode)
@@ -245,6 +252,8 @@ WebPage::WebPage(uint64_t pageID, const WebPageCreationParameters& parameters)
, m_isRunningModal(false)
, m_cachedMainFrameIsPinnedToLeftSide(false)
, m_cachedMainFrameIsPinnedToRightSide(false)
+ , m_cachedMainFrameIsPinnedToTopSide(false)
+ , m_cachedMainFrameIsPinnedToBottomSide(false)
, m_canShortCircuitHorizontalWheelEvents(false)
, m_numWheelEventHandlers(0)
, m_cachedPageCount(0)
@@ -464,8 +473,13 @@ PassRefPtr<Plugin> WebPage::createPlugin(WebFrame* frame, HTMLPlugInElement* plu
if (pluginPath.isNull()) {
#if PLATFORM(MAC)
if (parameters.mimeType == "application/pdf"
- || (parameters.mimeType.isEmpty() && parameters.url.path().lower().endsWith(".pdf")))
- return BuiltInPDFView::create(frame);
+ || (parameters.mimeType.isEmpty() && parameters.url.path().lower().endsWith(".pdf"))) {
+#if ENABLE(PDFKIT_PLUGIN)
+ if (pdfPluginEnabled())
+ return PDFPlugin::create(frame);
+#endif
+ return SimplePDFPlugin::create(frame);
+ }
#else
UNUSED_PARAM(frame);
#endif
@@ -616,11 +630,27 @@ PassRefPtr<ImmutableArray> WebPage::trackedRepaintRects()
return ImmutableArray::adopt(vector);
}
+static PluginView* pluginViewForFrame(Frame* frame)
+{
+ if (!frame->document()->isPluginDocument())
+ return 0;
+
+ PluginDocument* pluginDocument = static_cast<PluginDocument*>(frame->document());
+ PluginView* pluginView = static_cast<PluginView*>(pluginDocument->pluginWidget());
+ return pluginView;
+}
+
void WebPage::executeEditingCommand(const String& commandName, const String& argument)
{
Frame* frame = m_page->focusController()->focusedOrMainFrame();
if (!frame)
return;
+
+ if (PluginView* pluginView = pluginViewForFrame(frame)) {
+ pluginView->handleEditingCommand(commandName, argument);
+ return;
+ }
+
frame->editor()->command(commandName).execute(argument);
}
@@ -629,6 +659,9 @@ bool WebPage::isEditingCommandEnabled(const String& commandName)
Frame* frame = m_page->focusController()->focusedOrMainFrame();
if (!frame)
return false;
+
+ if (PluginView* pluginView = pluginViewForFrame(frame))
+ return pluginView->isEditingCommandEnabled(commandName);
Editor::Command command = frame->editor()->command(commandName);
return command.isSupported() && command.isEnabled();
@@ -1069,6 +1102,12 @@ void WebPage::windowScreenDidChange(uint64_t displayID)
void WebPage::scalePage(double scale, const IntPoint& origin)
{
+ PluginView* pluginView = pluginViewForFrame(m_page->mainFrame());
+ if (pluginView && pluginView->handlesPageScaleFactor()) {
+ pluginView->setPageScaleFactor(scale, origin);
+ return;
+ }
+
m_page->setPageScaleFactor(scale, origin);
for (HashSet<PluginView*>::const_iterator it = m_pluginViews.begin(), end = m_pluginViews.end(); it != end; ++it)
@@ -1079,6 +1118,10 @@ void WebPage::scalePage(double scale, const IntPoint& origin)
double WebPage::pageScaleFactor() const
{
+ PluginView* pluginView = pluginViewForFrame(m_page->mainFrame());
+ if (pluginView && pluginView->handlesPageScaleFactor())
+ return pluginView->pageScaleFactor();
+
return m_page->pageScaleFactor();
}
@@ -1172,6 +1215,19 @@ void WebPage::setGapBetweenPages(double gap)
m_page->setPagination(pagination);
}
+void WebPage::postInjectedBundleMessage(const String& messageName, CoreIPC::ArgumentDecoder* argumentDecoder)
+{
+ InjectedBundle* injectedBundle = WebProcess::shared().injectedBundle();
+ if (!injectedBundle)
+ return;
+
+ RefPtr<APIObject> messageBody;
+ if (!argumentDecoder->decode(InjectedBundleUserMessageDecoder(messageBody)))
+ return;
+
+ injectedBundle->didReceiveMessageToPage(this, messageName, messageBody.get());
+}
+
void WebPage::installPageOverlay(PassRefPtr<PageOverlay> pageOverlay)
{
bool shouldFadeIn = true;
@@ -1364,21 +1420,11 @@ static bool handleMouseEvent(const WebMouseEvent& mouseEvent, WebPage* page, boo
if (isContextClick(platformMouseEvent))
handled = handleContextMenuEvent(platformMouseEvent, page);
#endif
-#if PLATFORM(GTK)
- bool gtkMouseButtonPressHandled = page->handleMousePressedEvent(platformMouseEvent);
- handled = handled || gtkMouseButtonPressHandled;
-#endif
-
- return handled;
- }
- case PlatformEvent::MouseReleased: {
- bool handled = frame->eventHandler()->handleMouseReleaseEvent(platformMouseEvent);
-#if PLATFORM(QT)
- if (!handled)
- handled = page->handleMouseReleaseEvent(platformMouseEvent);
-#endif
return handled;
}
+ case PlatformEvent::MouseReleased:
+ return frame->eventHandler()->handleMouseReleaseEvent(platformMouseEvent);
+
case PlatformEvent::MouseMoved:
if (onlyUpdateScrollbars)
return frame->eventHandler()->passMouseMovedEventToScrollbars(platformMouseEvent);
@@ -1520,9 +1566,13 @@ void WebPage::validateCommand(const String& commandName, uint64_t callbackID)
int32_t state = 0;
Frame* frame = m_page->focusController()->focusedOrMainFrame();
if (frame) {
- Editor::Command command = frame->editor()->command(commandName);
- state = command.state();
- isEnabled = command.isSupported() && command.isEnabled();
+ if (PluginView* pluginView = pluginViewForFrame(frame))
+ isEnabled = pluginView->isEditingCommandEnabled(commandName);
+ else {
+ Editor::Command command = frame->editor()->command(commandName);
+ state = command.state();
+ isEnabled = command.isSupported() && command.isEnabled();
+ }
}
send(Messages::WebPageProxy::ValidateCommandCallback(commandName, isEnabled, state, callbackID));
@@ -1790,6 +1840,22 @@ void WebPage::didReceivePolicyDecision(uint64_t frameID, uint64_t listenerID, ui
frame->didReceivePolicyDecision(listenerID, static_cast<PolicyAction>(policyAction), downloadID);
}
+void WebPage::didStartPageTransition()
+{
+ m_drawingArea->setLayerTreeStateIsFrozen(true);
+}
+
+void WebPage::didCompletePageTransition()
+{
+#if PLATFORM(QT)
+ if (m_mainFrame->coreFrame()->view()->delegatesScrolling())
+ // Wait until the UI process sent us the visible rect it wants rendered.
+ send(Messages::WebPageProxy::PageTransitionViewportReady());
+ else
+#endif
+ m_drawingArea->setLayerTreeStateIsFrozen(false);
+}
+
void WebPage::show()
{
send(Messages::WebPageProxy::ShowPage());
@@ -1916,7 +1982,7 @@ void WebPage::getMainResourceDataOfFrame(uint64_t frameID, uint64_t callbackID)
{
CoreIPC::DataReference dataReference;
- RefPtr<SharedBuffer> buffer;
+ RefPtr<ResourceBuffer> buffer;
if (WebFrame* frame = WebProcess::shared().webFrame(frameID)) {
if (DocumentLoader* loader = frame->coreFrame()->loader()->documentLoader()) {
if ((buffer = loader->mainResourceData()))
@@ -2025,6 +2091,10 @@ void WebPage::updatePreferences(const WebPreferencesStore& store)
m_scrollingPerformanceLoggingEnabled = store.getBoolValueForKey(WebPreferencesKey::scrollingPerformanceLoggingEnabledKey());
+#if PLATFORM(MAC)
+ m_pdfPluginEnabled = store.getBoolValueForKey(WebPreferencesKey::pdfPluginEnabledKey());
+#endif
+
// FIXME: This should be generated from macro expansion for all preferences,
// but we currently don't match the naming of WebCore exactly so we are
// handrolling the boolean and integer preferences until that is fixed.
@@ -2139,11 +2209,14 @@ void WebPage::updatePreferences(const WebPreferencesStore& store)
settings->setShouldRespectImageOrientation(store.getBoolValueForKey(WebPreferencesKey::shouldRespectImageOrientationKey()));
settings->setStorageBlockingPolicy(static_cast<SecurityOrigin::StorageBlockingPolicy>(store.getUInt32ValueForKey(WebPreferencesKey::storageBlockingPolicyKey())));
+ settings->setCookieEnabled(store.getBoolValueForKey(WebPreferencesKey::cookieEnabledKey()));
settings->setDiagnosticLoggingEnabled(store.getBoolValueForKey(WebPreferencesKey::diagnosticLoggingEnabledKey()));
settings->setScrollingPerformanceLoggingEnabled(m_scrollingPerformanceLoggingEnabled);
+ settings->setPlugInSnapshottingEnabled(store.getBoolValueForKey(WebPreferencesKey::plugInSnapshottingEnabledKey()));
+
platformPreferencesDidChange(store);
if (m_drawingArea)
@@ -2610,12 +2683,16 @@ void WebPage::didChangeScrollOffsetForMainFrame()
bool isPinnedToLeftSide = (scrollPosition.x() <= minimumScrollPosition.x());
bool isPinnedToRightSide = (scrollPosition.x() >= maximumScrollPosition.x());
+ bool isPinnedToTopSide = (scrollPosition.y() <= minimumScrollPosition.y());
+ bool isPinnedToBottomSide = (scrollPosition.y() >= maximumScrollPosition.y());
- if (isPinnedToLeftSide != m_cachedMainFrameIsPinnedToLeftSide || isPinnedToRightSide != m_cachedMainFrameIsPinnedToRightSide) {
- send(Messages::WebPageProxy::DidChangeScrollOffsetPinningForMainFrame(isPinnedToLeftSide, isPinnedToRightSide));
+ if (isPinnedToLeftSide != m_cachedMainFrameIsPinnedToLeftSide || isPinnedToRightSide != m_cachedMainFrameIsPinnedToRightSide || isPinnedToTopSide != m_cachedMainFrameIsPinnedToTopSide || isPinnedToBottomSide != m_cachedMainFrameIsPinnedToBottomSide) {
+ send(Messages::WebPageProxy::DidChangeScrollOffsetPinningForMainFrame(isPinnedToLeftSide, isPinnedToRightSide, isPinnedToTopSide, isPinnedToBottomSide));
m_cachedMainFrameIsPinnedToLeftSide = isPinnedToLeftSide;
m_cachedMainFrameIsPinnedToRightSide = isPinnedToRightSide;
+ m_cachedMainFrameIsPinnedToTopSide = isPinnedToTopSide;
+ m_cachedMainFrameIsPinnedToBottomSide = isPinnedToBottomSide;
}
}
@@ -3178,6 +3255,13 @@ bool WebPage::canHandleRequest(const WebCore::ResourceRequest& request)
return platformCanHandleRequest(request);
}
+#if USE(TILED_BACKING_STORE)
+void WebPage::commitPageTransitionViewport()
+{
+ m_drawingArea->setLayerTreeStateIsFrozen(false);
+}
+#endif
+
#if PLATFORM(MAC) && __MAC_OS_X_VERSION_MIN_REQUIRED >= 1070
void WebPage::handleAlternativeTextUIResult(const String& result)
{
@@ -3307,7 +3391,7 @@ FrameView* WebPage::mainFrameView() const
return 0;
}
-#if ENABLE(PAGE_VISIBILITY_API)
+#if ENABLE(PAGE_VISIBILITY_API) || ENABLE(HIDDEN_PAGE_DOM_TIMER_THROTTLING)
void WebPage::setVisibilityState(int visibilityState, bool isInitialState)
{
if (!m_page)
@@ -3315,6 +3399,7 @@ void WebPage::setVisibilityState(int visibilityState, bool isInitialState)
WebCore::PageVisibilityState state = static_cast<WebCore::PageVisibilityState>(visibilityState);
+#if ENABLE(PAGE_VISIBILITY_API)
if (m_visibilityState == state)
return;
@@ -3334,6 +3419,11 @@ void WebPage::setVisibilityState(int visibilityState, bool isInitialState)
if (view)
view->hide();
}
+#endif
+
+#if ENABLE(HIDDEN_PAGE_DOM_TIMER_THROTTLING) && !ENABLE(PAGE_VISIBILITY_API)
+ m_page->setVisibilityState(state, isInitialState);
+#endif
}
#endif
@@ -3348,4 +3438,24 @@ void WebPage::setScrollingPerformanceLoggingEnabled(bool enabled)
frameView->setScrollingPerformanceLoggingEnabled(enabled);
}
+static bool canPluginHandleResponse(const ResourceResponse& response)
+{
+ String pluginPath;
+ bool blocked;
+
+ if (!WebProcess::shared().connection()->sendSync(Messages::WebProcessProxy::GetPluginPath(response.mimeType(), response.url().string()), Messages::WebProcessProxy::GetPluginPath::Reply(pluginPath, blocked), 0))
+ return false;
+
+ return !blocked && !pluginPath.isEmpty();
+}
+
+bool WebPage::shouldUseCustomRepresentationForResponse(const ResourceResponse& response) const
+{
+ if (!m_mimeTypesWithCustomRepresentations.contains(response.mimeType()))
+ return false;
+
+ // If a plug-in exists that claims to support this response, it should take precedence over the custom representation.
+ return !canPluginHandleResponse(response);
+}
+
} // namespace WebKit
diff --git a/Source/WebKit2/WebProcess/WebPage/WebPage.h b/Source/WebKit2/WebProcess/WebPage/WebPage.h
index fadd3bd7f..0a5f2bbb7 100644
--- a/Source/WebKit2/WebProcess/WebPage/WebPage.h
+++ b/Source/WebKit2/WebProcess/WebPage/WebPage.h
@@ -113,6 +113,7 @@ namespace WebCore {
class Page;
class PrintContext;
class Range;
+ class ResourceResponse;
class ResourceRequest;
class SharedBuffer;
class VisibleSelection;
@@ -213,6 +214,8 @@ public:
bool handleEditingKeyboardEvent(WebCore::KeyboardEvent*);
#endif
+ void didStartPageTransition();
+ void didCompletePageTransition();
void show();
String userAgent() const { return m_userAgent; }
WebCore::IntRect windowResizerRect() const;
@@ -317,6 +320,8 @@ public:
void setPageLength(double);
void setGapBetweenPages(double);
+ void postInjectedBundleMessage(const String& messageName, CoreIPC::ArgumentDecoder*);
+
bool drawsBackground() const { return m_drawsBackground; }
bool drawsTransparentBackground() const { return m_drawsTransparentBackground; }
@@ -415,6 +420,10 @@ public:
void setThemePath(const String&);
#endif
+#if USE(TILED_BACKING_STORE)
+ void commitPageTransitionViewport();
+#endif
+
#if PLATFORM(QT)
void setComposition(const String& text, Vector<WebCore::CompositionUnderline> underlines, uint64_t selectionStart, uint64_t selectionEnd, uint64_t replacementRangeStart, uint64_t replacementRangeEnd);
void confirmComposition(const String& text, int64_t selectionStart, int64_t selectionLength);
@@ -457,17 +466,11 @@ public:
#elif PLATFORM(GTK)
void updateAccessibilityTree();
- bool handleMousePressedEvent(const WebCore::PlatformMouseEvent&);
#if USE(TEXTURE_MAPPER_GL)
void setAcceleratedCompositingWindowId(int64_t nativeWindowHandle);
- void invalidateWidget();
#endif
#endif
-#if PLATFORM(QT)
- bool handleMouseReleaseEvent(const WebCore::PlatformMouseEvent&);
-#endif
-
void setCompositionForTesting(const String& compositionString, uint64_t from, uint64_t length);
bool hasCompositionForTesting();
void confirmCompositionForTesting(const String& compositionString);
@@ -571,7 +574,7 @@ public:
bool willGoToBackForwardItemCallbackEnabled() const { return m_willGoToBackForwardItemCallbackEnabled; }
-#if ENABLE(PAGE_VISIBILITY_API)
+#if ENABLE(PAGE_VISIBILITY_API) || ENABLE(HIDDEN_PAGE_DOM_TIMER_THROTTLING)
void setVisibilityState(int visibilityState, bool isInitialState);
#endif
@@ -579,6 +582,8 @@ public:
uint64_t nativeWindowHandle() { return m_nativeWindowHandle; }
#endif
+ bool shouldUseCustomRepresentationForResponse(const WebCore::ResourceResponse&) const;
+
bool asynchronousPluginInitializationEnabled() const { return m_asynchronousPluginInitializationEnabled; }
void setAsynchronousPluginInitializationEnabled(bool enabled) { m_asynchronousPluginInitializationEnabled = enabled; }
bool asynchronousPluginInitializationEnabledForAllPlugins() const { return m_asynchronousPluginInitializationEnabledForAllPlugins; }
@@ -591,6 +596,15 @@ public:
bool scrollingPerformanceLoggingEnabled() const { return m_scrollingPerformanceLoggingEnabled; }
void setScrollingPerformanceLoggingEnabled(bool);
+#if PLATFORM(MAC)
+ bool pdfPluginEnabled() const { return m_pdfPluginEnabled; }
+ void setPDFPluginEnabled(bool enabled) { m_pdfPluginEnabled = enabled; }
+#endif
+
+#if PLATFORM(MAC)
+ static HashSet<String, CaseFoldingHash> pdfAndPostScriptMIMETypes();
+#endif
+
private:
WebPage(uint64_t pageID, const WebPageCreationParameters&);
@@ -794,6 +808,8 @@ private:
bool m_scrollingPerformanceLoggingEnabled;
#if PLATFORM(MAC)
+ bool m_pdfPluginEnabled;
+
// Whether the containing window is visible or not.
bool m_windowIsVisible;
@@ -822,7 +838,7 @@ private:
RefPtr<WebCore::Node> m_gestureTargetNode;
#elif PLATFORM(GTK)
- WebPageAccessibilityObject* m_accessibilityObject;
+ GRefPtr<WebPageAccessibilityObject> m_accessibilityObject;
#if USE(TEXTURE_MAPPER_GL)
// Our view's window in the UI process.
@@ -900,6 +916,8 @@ private:
bool m_cachedMainFrameIsPinnedToLeftSide;
bool m_cachedMainFrameIsPinnedToRightSide;
+ bool m_cachedMainFrameIsPinnedToTopSide;
+ bool m_cachedMainFrameIsPinnedToBottomSide;
bool m_canShortCircuitHorizontalWheelEvents;
unsigned m_numWheelEventHandlers;
@@ -921,6 +939,8 @@ private:
WebCore::PageVisibilityState m_visibilityState;
#endif
WebInspectorClient* m_inspectorClient;
+
+ HashSet<String, CaseFoldingHash> m_mimeTypesWithCustomRepresentations;
};
} // namespace WebKit
diff --git a/Source/WebKit2/WebProcess/WebPage/WebPage.messages.in b/Source/WebKit2/WebProcess/WebPage/WebPage.messages.in
index f113fc24e..e891890ac 100644
--- a/Source/WebKit2/WebProcess/WebPage/WebPage.messages.in
+++ b/Source/WebKit2/WebProcess/WebPage/WebPage.messages.in
@@ -46,8 +46,8 @@ messages -> WebPage {
#endif
#if ENABLE(INPUT_TYPE_COLOR)
- DidEndColorChooser();
- DidChooseColor(WebCore::Color color);
+ DidEndColorChooser()
+ DidChooseColor(WebCore::Color color)
#endif
#if ENABLE(CONTEXT_MENUS)
@@ -62,7 +62,7 @@ messages -> WebPage {
GoToBackForwardItem(uint64_t backForwardItemID)
TryRestoreScrollPosition()
LoadHTMLString(WTF::String htmlString, WTF::String baseURL)
- LoadAlternateHTMLString(WTF::String htmlString, WTF::String baseURL, WTF::String unreachableURL);
+ LoadAlternateHTMLString(WTF::String htmlString, WTF::String baseURL, WTF::String unreachableURL)
LoadPlainTextString(WTF::String string)
LoadWebArchiveData(CoreIPC::DataReference webArchiveData)
LoadURL(WTF::String url, WebKit::SandboxExtension::Handle sandboxExtensionHandle)
@@ -142,10 +142,12 @@ messages -> WebPage {
ListenForLayoutMilestones(uint32_t milestones)
SetSuppressScrollbarAnimations(bool suppressAnimations)
- SetPaginationMode(uint32_t mode);
- SetPaginationBehavesLikeColumns(bool behavesLikeColumns);
- SetPageLength(double pageLength);
- SetGapBetweenPages(double gap);
+ SetPaginationMode(uint32_t mode)
+ SetPaginationBehavesLikeColumns(bool behavesLikeColumns)
+ SetPageLength(double pageLength)
+ SetGapBetweenPages(double gap)
+
+ PostInjectedBundleMessage(WTF::String messageName, WebKit::WebContextUserMessageEncoder messageBody) Variadic
# Find.
FindString(WTF::String string, uint32_t findOptions, unsigned maxMatchCount)
@@ -167,19 +169,19 @@ messages -> WebPage {
#endif
# Popup menu.
- DidChangeSelectedIndexForActivePopupMenu(int32_t newIndex);
- SetTextForActivePopupMenu(int32_t index);
-#if PLATFORM(GTK)
- FailedToShowPopupMenu();
+ DidChangeSelectedIndexForActivePopupMenu(int32_t newIndex)
+ SetTextForActivePopupMenu(int32_t index)
+#if PLATFORM(GTK)
+ FailedToShowPopupMenu()
#endif
#if PLATFORM(QT)
- HidePopupMenu();
- SelectedIndex(int32_t newIndex);
+ HidePopupMenu()
+ SelectedIndex(int32_t newIndex)
#endif
#if ENABLE(CONTEXT_MENUS)
# Context menu.
- DidSelectItemFromActiveContextMenu(WebKit::WebContextMenuItemData menuItem);
+ DidSelectItemFromActiveContextMenu(WebKit::WebContextMenuItemData menuItem)
#endif
# Open panel.
@@ -193,11 +195,11 @@ messages -> WebPage {
AdvanceToNextMisspelling(bool startBeforeSelection)
ChangeSpellingToWord(WTF::String word)
#if USE(APPKIT)
- UppercaseWord();
- LowercaseWord();
- CapitalizeWord();
+ UppercaseWord()
+ LowercaseWord()
+ CapitalizeWord()
- SetSmartInsertDeleteEnabled(bool isSmartInsertDeleteEnabled);
+ SetSmartInsertDeleteEnabled(bool isSmartInsertDeleteEnabled)
#endif
#if ENABLE(GEOLOCATION)
@@ -212,7 +214,7 @@ messages -> WebPage {
# Printing.
BeginPrinting(uint64_t frameID, WebKit::PrintInfo printInfo)
- EndPrinting();
+ EndPrinting()
ComputePagesForPrinting(uint64_t frameID, WebKit::PrintInfo printInfo, uint64_t callbackID)
#if PLATFORM(MAC) || PLATFORM(WIN)
DrawRectToPDF(uint64_t frameID, WebKit::PrintInfo printInfo, WebCore::IntRect rect, uint64_t callbackID)
@@ -236,13 +238,17 @@ messages -> WebPage {
# Web Intents
#if ENABLE(WEB_INTENTS)
- DeliverIntentToFrame(uint64_t frameID, WebKit::IntentData intentData);
+ DeliverIntentToFrame(uint64_t frameID, WebKit::IntentData intentData)
#endif
#if PLATFORM(EFL)
SetThemePath(WTF::String themePath)
#endif
+#if USE(TILED_BACKING_STORE)
+ CommitPageTransitionViewport()
+#endif
+
#if PLATFORM(QT)
SetComposition(WTF::String text, WTF::Vector<WebCore::CompositionUnderline> underlines, uint64_t selectionStart, uint64_t selectionEnd, uint64_t replacementRangeStart, uint64_t replacementRangeEnd)
ConfirmComposition(WTF::String text, int64_t selectionStart, int64_t selectionLength)
@@ -294,8 +300,8 @@ messages -> WebPage {
HandleAlternativeTextUIResult(String result)
#endif
-#if ENABLE(PAGE_VISIBILITY_API)
- SetVisibilityState(int visibilityState, bool isInitialState);
+#if ENABLE(PAGE_VISIBILITY_API) || ENABLE(HIDDEN_PAGE_DOM_TIMER_THROTTLING)
+ SetVisibilityState(int visibilityState, bool isInitialState)
#endif
#if PLATFORM(GTK) && USE(TEXTURE_MAPPER_GL)
diff --git a/Source/WebKit2/WebProcess/WebPage/WebPageGroupProxy.cpp b/Source/WebKit2/WebProcess/WebPage/WebPageGroupProxy.cpp
index 3bd20c8a6..25ef3296b 100644
--- a/Source/WebKit2/WebProcess/WebPage/WebPageGroupProxy.cpp
+++ b/Source/WebKit2/WebProcess/WebPage/WebPageGroupProxy.cpp
@@ -28,6 +28,8 @@
#include "WebProcess.h"
#include "InjectedBundle.h"
+#include <WebCore/DOMWrapperWorld.h>
+#include <WebCore/PageGroup.h>
namespace WebKit {
@@ -44,5 +46,45 @@ PassRefPtr<WebPageGroupProxy> WebPageGroupProxy::create(const WebPageGroupData&
WebPageGroupProxy::~WebPageGroupProxy()
{
}
+
+void WebPageGroupProxy::didReceiveMessage(CoreIPC::Connection* connection, CoreIPC::MessageID messageID, CoreIPC::ArgumentDecoder* arguments)
+{
+ didReceiveWebPageGroupProxyMessage(connection, messageID, arguments);
+}
+
+WebPageGroupProxy::WebPageGroupProxy(const WebPageGroupData& data)
+ : m_data(data)
+ , m_pageGroup(WebCore::PageGroup::pageGroup(m_data.identifer))
+{
+ for (size_t i = 0; i < data.userStyleSheets.size(); ++i)
+ addUserStyleSheet(data.userStyleSheets[i]);
+ for (size_t i = 0; i < data.userScripts.size(); ++i)
+ addUserScript(data.userScripts[i]);
+}
+
+void WebPageGroupProxy::addUserStyleSheet(const WebCore::UserStyleSheet& userStyleSheet)
+{
+ m_pageGroup->addUserStyleSheetToWorld(WebCore::mainThreadNormalWorld(), userStyleSheet.source(), userStyleSheet.url(), userStyleSheet.whitelist(), userStyleSheet.blacklist(), userStyleSheet.injectedFrames(), userStyleSheet.level());
+}
+
+void WebPageGroupProxy::addUserScript(const WebCore::UserScript& userScript)
+{
+ m_pageGroup->addUserScriptToWorld(WebCore::mainThreadNormalWorld(), userScript.source(), userScript.url(), userScript.whitelist(), userScript.blacklist(), userScript.injectionTime(), userScript.injectedFrames());
+}
+
+void WebPageGroupProxy::removeAllUserStyleSheets()
+{
+ m_pageGroup->removeUserStyleSheetsFromWorld(WebCore::mainThreadNormalWorld());
+}
+
+void WebPageGroupProxy::removeAllUserScripts()
+{
+ m_pageGroup->removeUserStyleSheetsFromWorld(WebCore::mainThreadNormalWorld());
+}
+
+void WebPageGroupProxy::removeAllUserContent()
+{
+ m_pageGroup->removeAllUserContent();
+}
} // namespace WebKit
diff --git a/Source/WebKit2/WebProcess/WebPage/WebPageGroupProxy.h b/Source/WebKit2/WebProcess/WebPage/WebPageGroupProxy.h
index 91e6c5cfd..cbb079421 100644
--- a/Source/WebKit2/WebProcess/WebPage/WebPageGroupProxy.h
+++ b/Source/WebKit2/WebProcess/WebPage/WebPageGroupProxy.h
@@ -30,6 +30,16 @@
#include "WebPageGroupData.h"
#include <wtf/PassRefPtr.h>
+namespace CoreIPC {
+class ArgumentDecoder;
+class Connection;
+class MessageID;
+}
+
+namespace WebCore {
+class PageGroup;
+}
+
namespace WebKit {
class WebPageGroupProxy : public APIObject {
@@ -43,16 +53,24 @@ public:
uint64_t pageGroupID() const { return m_data.pageGroupID; }
bool isVisibleToInjectedBundle() const { return m_data.visibleToInjectedBundle; }
bool isVisibleToHistoryClient() const { return m_data.visibleToHistoryClient; }
+
+ void didReceiveMessage(CoreIPC::Connection*, CoreIPC::MessageID, CoreIPC::ArgumentDecoder*);
private:
- WebPageGroupProxy(const WebPageGroupData& data)
- : m_data(data)
- {
- }
+ WebPageGroupProxy(const WebPageGroupData&);
virtual Type type() const { return APIType; }
+
+ void didReceiveWebPageGroupProxyMessage(CoreIPC::Connection*, CoreIPC::MessageID, CoreIPC::ArgumentDecoder*);
+
+ void addUserStyleSheet(const WebCore::UserStyleSheet&);
+ void addUserScript(const WebCore::UserScript&);
+ void removeAllUserStyleSheets();
+ void removeAllUserScripts();
+ void removeAllUserContent();
WebPageGroupData m_data;
+ WebCore::PageGroup* m_pageGroup;
};
} // namespace WebKit
diff --git a/Source/WebKit2/WebProcess/WebPage/WebPageGroupProxy.messages.in b/Source/WebKit2/WebProcess/WebPage/WebPageGroupProxy.messages.in
new file mode 100644
index 000000000..8ba527a3d
--- /dev/null
+++ b/Source/WebKit2/WebProcess/WebPage/WebPageGroupProxy.messages.in
@@ -0,0 +1,29 @@
+# Copyright (C) 2012 Apple Inc. All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions
+# are met:
+# 1. Redistributions of source code must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+# 2. Redistributions in binary form must reproduce the above copyright
+# notice, this list of conditions and the following disclaimer in the
+# documentation and/or other materials provided with the distribution.
+#
+# THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS'' AND
+# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+# WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+# DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS BE LIABLE FOR
+# ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+# SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
+# CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+# OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+messages -> WebPageGroupProxy {
+ AddUserStyleSheet(WebCore::UserStyleSheet userStyleSheet);
+ AddUserScript(WebCore::UserScript userScript);
+ RemoveAllUserStyleSheets();
+ RemoveAllUserScripts();
+ RemoveAllUserContent();
+}
diff --git a/Source/WebKit2/WebProcess/WebPage/ca/LayerTreeHostCA.cpp b/Source/WebKit2/WebProcess/WebPage/ca/LayerTreeHostCA.cpp
index de3a2e38e..0872f4355 100644
--- a/Source/WebKit2/WebProcess/WebPage/ca/LayerTreeHostCA.cpp
+++ b/Source/WebKit2/WebProcess/WebPage/ca/LayerTreeHostCA.cpp
@@ -51,7 +51,7 @@ LayerTreeHostCA::LayerTreeHostCA(WebPage* webPage)
void LayerTreeHostCA::initialize()
{
// Create a root layer.
- m_rootLayer = GraphicsLayer::create(this);
+ m_rootLayer = GraphicsLayer::create(graphicsLayerFactory(), this);
#ifndef NDEBUG
m_rootLayer->setName("LayerTreeHost root layer");
#endif
@@ -59,7 +59,7 @@ void LayerTreeHostCA::initialize()
m_rootLayer->setSize(m_webPage->size());
static_cast<GraphicsLayerCA*>(m_rootLayer.get())->platformCALayer()->setGeometryFlipped(true);
- m_nonCompositedContentLayer = GraphicsLayer::create(this);
+ m_nonCompositedContentLayer = GraphicsLayer::create(graphicsLayerFactory(), this);
static_cast<GraphicsLayerCA*>(m_nonCompositedContentLayer.get())->setAllowTiledLayer(false);
#ifndef NDEBUG
m_nonCompositedContentLayer->setName("LayerTreeHost non-composited content");
@@ -186,7 +186,7 @@ void LayerTreeHostCA::notifyAnimationStarted(const WebCore::GraphicsLayer*, doub
{
}
-void LayerTreeHostCA::notifySyncRequired(const WebCore::GraphicsLayer*)
+void LayerTreeHostCA::notifyFlushRequired(const WebCore::GraphicsLayer*)
{
}
@@ -245,19 +245,19 @@ void LayerTreeHostCA::didPerformScheduledLayerFlush()
bool LayerTreeHostCA::flushPendingLayerChanges()
{
- m_rootLayer->syncCompositingStateForThisLayerOnly();
- m_nonCompositedContentLayer->syncCompositingStateForThisLayerOnly();
+ m_rootLayer->flushCompositingStateForThisLayerOnly();
+ m_nonCompositedContentLayer->flushCompositingStateForThisLayerOnly();
if (m_pageOverlayLayer)
- m_pageOverlayLayer->syncCompositingStateForThisLayerOnly();
+ m_pageOverlayLayer->flushCompositingStateForThisLayerOnly();
- return m_webPage->corePage()->mainFrame()->view()->syncCompositingStateIncludingSubframes();
+ return m_webPage->corePage()->mainFrame()->view()->flushCompositingStateIncludingSubframes();
}
void LayerTreeHostCA::createPageOverlayLayer()
{
ASSERT(!m_pageOverlayLayer);
- m_pageOverlayLayer = GraphicsLayer::create(this);
+ m_pageOverlayLayer = GraphicsLayer::create(graphicsLayerFactory(), this);
#ifndef NDEBUG
m_pageOverlayLayer->setName("LayerTreeHost page overlay content");
#endif
diff --git a/Source/WebKit2/WebProcess/WebPage/ca/LayerTreeHostCA.h b/Source/WebKit2/WebProcess/WebPage/ca/LayerTreeHostCA.h
index 92ae72674..9cb8ca6a5 100644
--- a/Source/WebKit2/WebProcess/WebPage/ca/LayerTreeHostCA.h
+++ b/Source/WebKit2/WebProcess/WebPage/ca/LayerTreeHostCA.h
@@ -74,7 +74,7 @@ private:
// GraphicsLayerClient
virtual void notifyAnimationStarted(const WebCore::GraphicsLayer*, double time);
- virtual void notifySyncRequired(const WebCore::GraphicsLayer*);
+ virtual void notifyFlushRequired(const WebCore::GraphicsLayer*);
virtual void paintContents(const WebCore::GraphicsLayer*, WebCore::GraphicsContext&, WebCore::GraphicsLayerPaintingPhase, const WebCore::IntRect& clipRect);
virtual bool showDebugBorders(const WebCore::GraphicsLayer*) const;
virtual bool showRepaintCounter(const WebCore::GraphicsLayer*) const;
diff --git a/Source/WebKit2/WebProcess/WebPage/gtk/LayerTreeHostGtk.cpp b/Source/WebKit2/WebProcess/WebPage/gtk/LayerTreeHostGtk.cpp
index 098a4c716..af2ae89bf 100644
--- a/Source/WebKit2/WebProcess/WebPage/gtk/LayerTreeHostGtk.cpp
+++ b/Source/WebKit2/WebProcess/WebPage/gtk/LayerTreeHostGtk.cpp
@@ -36,7 +36,7 @@
#include <GL/gl.h>
#include <WebCore/Frame.h>
#include <WebCore/FrameView.h>
-#include <WebCore/GLContextGLX.h>
+#include <WebCore/GLContext.h>
#include <WebCore/Page.h>
#include <WebCore/Settings.h>
@@ -84,12 +84,12 @@ GLContext* LayerTreeHostGtk::glContext()
void LayerTreeHostGtk::initialize()
{
- m_rootLayer = GraphicsLayer::create(this);
+ m_rootLayer = GraphicsLayer::create(graphicsLayerFactory(), this);
m_rootLayer->setDrawsContent(false);
m_rootLayer->setSize(m_webPage->size());
// The non-composited contents are a child of the root layer.
- m_nonCompositedContentLayer = GraphicsLayer::create(this);
+ m_nonCompositedContentLayer = GraphicsLayer::create(graphicsLayerFactory(), this);
m_nonCompositedContentLayer->setDrawsContent(true);
m_nonCompositedContentLayer->setContentsOpaque(m_webPage->drawsBackground() && !m_webPage->drawsTransparentBackground());
m_nonCompositedContentLayer->setSize(m_webPage->size());
@@ -241,7 +241,7 @@ void LayerTreeHostGtk::notifyAnimationStarted(const WebCore::GraphicsLayer*, dou
{
}
-void LayerTreeHostGtk::notifySyncRequired(const WebCore::GraphicsLayer*)
+void LayerTreeHostGtk::notifyFlushRequired(const WebCore::GraphicsLayer*)
{
}
@@ -287,12 +287,12 @@ void LayerTreeHostGtk::layerFlushTimerFired()
bool LayerTreeHostGtk::flushPendingLayerChanges()
{
- m_rootLayer->syncCompositingStateForThisLayerOnly();
- m_nonCompositedContentLayer->syncCompositingStateForThisLayerOnly();
+ m_rootLayer->flushCompositingStateForThisLayerOnly();
+ m_nonCompositedContentLayer->flushCompositingStateForThisLayerOnly();
if (m_pageOverlayLayer)
- m_pageOverlayLayer->syncCompositingStateForThisLayerOnly();
+ m_pageOverlayLayer->flushCompositingStateForThisLayerOnly();
- return m_webPage->corePage()->mainFrame()->view()->syncCompositingStateIncludingSubframes();
+ return m_webPage->corePage()->mainFrame()->view()->flushCompositingStateIncludingSubframes();
}
void LayerTreeHostGtk::compositeLayersToContext(CompositePurpose purpose)
@@ -317,7 +317,6 @@ void LayerTreeHostGtk::compositeLayersToContext(CompositePurpose purpose)
m_textureMapper->endPainting();
context->swapBuffers();
- m_webPage->invalidateWidget();
}
void LayerTreeHostGtk::flushAndRenderLayers()
@@ -351,7 +350,7 @@ void LayerTreeHostGtk::createPageOverlayLayer()
{
ASSERT(!m_pageOverlayLayer);
- m_pageOverlayLayer = GraphicsLayer::create(this);
+ m_pageOverlayLayer = GraphicsLayer::create(graphicsLayerFactory(), this);
#ifndef NDEBUG
m_pageOverlayLayer->setName("LayerTreeHost page overlay content");
#endif
diff --git a/Source/WebKit2/WebProcess/WebPage/gtk/LayerTreeHostGtk.h b/Source/WebKit2/WebProcess/WebPage/gtk/LayerTreeHostGtk.h
index d9a816c2e..61b9fa671 100644
--- a/Source/WebKit2/WebProcess/WebPage/gtk/LayerTreeHostGtk.h
+++ b/Source/WebKit2/WebProcess/WebPage/gtk/LayerTreeHostGtk.h
@@ -75,7 +75,7 @@ private:
// GraphicsLayerClient
virtual void notifyAnimationStarted(const WebCore::GraphicsLayer*, double time);
- virtual void notifySyncRequired(const WebCore::GraphicsLayer*);
+ virtual void notifyFlushRequired(const WebCore::GraphicsLayer*);
virtual void paintContents(const WebCore::GraphicsLayer*, WebCore::GraphicsContext&, WebCore::GraphicsLayerPaintingPhase, const WebCore::IntRect& clipRect);
virtual bool showDebugBorders(const WebCore::GraphicsLayer*) const;
virtual bool showRepaintCounter(const WebCore::GraphicsLayer*) const;
diff --git a/Source/WebKit2/WebProcess/WebPage/gtk/WebPageGtk.cpp b/Source/WebKit2/WebProcess/WebPage/gtk/WebPageGtk.cpp
index d9dde81a2..8b0db6ecc 100644
--- a/Source/WebKit2/WebProcess/WebPage/gtk/WebPageGtk.cpp
+++ b/Source/WebKit2/WebProcess/WebPage/gtk/WebPageGtk.cpp
@@ -52,8 +52,8 @@ void WebPage::platformInitialize()
// entry point to the Web process, and send a message to the UI
// process to connect the two worlds through the accessibility
// object there specifically placed for that purpose (the socket).
- m_accessibilityObject = webPageAccessibilityObjectNew(this);
- GOwnPtr<gchar> plugID(atk_plug_get_id(ATK_PLUG(m_accessibilityObject)));
+ m_accessibilityObject = adoptGRef(webPageAccessibilityObjectNew(this));
+ GOwnPtr<gchar> plugID(atk_plug_get_id(ATK_PLUG(m_accessibilityObject.get())));
send(Messages::WebPageProxy::BindAccessibilityTree(String(plugID.get())));
#if USE(TEXTURE_MAPPER_GL)
@@ -66,7 +66,7 @@ void WebPage::updateAccessibilityTree()
if (!m_accessibilityObject)
return;
- webPageAccessibilityObjectRefresh(m_accessibilityObject);
+ webPageAccessibilityObjectRefresh(m_accessibilityObject.get());
}
void WebPage::platformPreferencesDidChange(const WebPreferencesStore&)
@@ -160,36 +160,6 @@ void WebPage::setAcceleratedCompositingWindowId(int64_t nativeWindowHandle)
{
m_nativeWindowHandle = nativeWindowHandle;
}
-
-void WebPage::invalidateWidget()
-{
- send(Messages::WebPageProxy::InvalidateWidget());
-}
-#endif
-
-bool WebPage::handleMousePressedEvent(const PlatformMouseEvent& platformMouseEvent)
-{
- bool returnValue = false;
- if (platformMouseEvent.button() != WebCore::MiddleButton)
- return returnValue;
-
-#if PLATFORM(X11)
- Frame* frame = m_page->focusController()->focusedOrMainFrame();
- if (!frame)
- return returnValue;
-
- PasteboardHelper* pasteboardHelper = PasteboardHelper::defaultPasteboardHelper();
- bool wasUsingPrimary = pasteboardHelper->usePrimarySelectionClipboard();
- pasteboardHelper->setUsePrimarySelectionClipboard(true);
-
- Editor* editor = frame->editor();
- returnValue = editor->canPaste() || editor->canDHTMLPaste();
- editor->paste();
-
- pasteboardHelper->setUsePrimarySelectionClipboard(wasUsingPrimary);
#endif
- return returnValue;
-}
-
} // namespace WebKit
diff --git a/Source/WebKit2/WebProcess/WebPage/gtk/WebPrintOperationGtk.cpp b/Source/WebKit2/WebProcess/WebPage/gtk/WebPrintOperationGtk.cpp
index 29f89324e..0f07d74bc 100644
--- a/Source/WebKit2/WebProcess/WebPage/gtk/WebPrintOperationGtk.cpp
+++ b/Source/WebKit2/WebProcess/WebPage/gtk/WebPrintOperationGtk.cpp
@@ -697,6 +697,7 @@ void WebPrintOperationGtk::print(cairo_surface_t* surface, double xDPI, double y
OwnPtr<PrintPagesData> data = adoptPtr(new PrintPagesData(this));
if (!data->isValid) {
+ cairo_surface_finish(surface);
printDone(invalidPageRangeToPrint(m_printContext));
return;
}
diff --git a/Source/WebKit2/WebProcess/WebPage/gtk/WebPrintOperationGtk.h b/Source/WebKit2/WebProcess/WebPage/gtk/WebPrintOperationGtk.h
index 3d1f1086d..39593052e 100644
--- a/Source/WebKit2/WebProcess/WebPage/gtk/WebPrintOperationGtk.h
+++ b/Source/WebKit2/WebProcess/WebPage/gtk/WebPrintOperationGtk.h
@@ -48,7 +48,7 @@ class WebPage;
class WebPrintOperationGtk : public RefCounted<WebPrintOperationGtk> {
public:
static PassRefPtr<WebPrintOperationGtk> create(WebPage*, const PrintInfo&);
- ~WebPrintOperationGtk();
+ virtual ~WebPrintOperationGtk();
WebCore::PrintContext* printContext() const { return m_printContext; }
GtkPrintSettings* printSettings() const { return m_printSettings.get(); }
diff --git a/Source/WebKit2/WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.h b/Source/WebKit2/WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.h
index 22599edad..f5048a985 100644
--- a/Source/WebKit2/WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.h
+++ b/Source/WebKit2/WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.h
@@ -59,7 +59,7 @@ private:
virtual void setLayerTreeStateIsFrozen(bool) OVERRIDE;
virtual bool layerTreeStateIsFrozen() const OVERRIDE;
virtual void setRootCompositingLayer(WebCore::GraphicsLayer*) OVERRIDE;
- virtual void scheduleCompositingLayerSync() OVERRIDE;
+ virtual void scheduleCompositingLayerFlush() OVERRIDE;
virtual void didInstallPageOverlay() OVERRIDE;
virtual void didUninstallPageOverlay() OVERRIDE;
@@ -70,7 +70,7 @@ private:
// WebCore::GraphicsLayerClient
virtual void notifyAnimationStarted(const WebCore::GraphicsLayer*, double time) OVERRIDE;
- virtual void notifySyncRequired(const WebCore::GraphicsLayer*) OVERRIDE;
+ virtual void notifyFlushRequired(const WebCore::GraphicsLayer*) OVERRIDE;
virtual void paintContents(const WebCore::GraphicsLayer*, WebCore::GraphicsContext&, WebCore::GraphicsLayerPaintingPhase, const WebCore::IntRect& clipRect) OVERRIDE;
virtual bool showDebugBorders(const WebCore::GraphicsLayer*) const OVERRIDE;
virtual bool showRepaintCounter(const WebCore::GraphicsLayer*) const OVERRIDE;
diff --git a/Source/WebKit2/WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.mm b/Source/WebKit2/WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.mm
index 43f6440a8..fcd72cac9 100644
--- a/Source/WebKit2/WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.mm
+++ b/Source/WebKit2/WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.mm
@@ -43,7 +43,6 @@
#import <WebCore/GraphicsContext.h>
#import <WebCore/GraphicsLayerCA.h>
#import <WebCore/Page.h>
-#import <WebCore/RenderLayerCompositor.h>
#import <WebCore/RenderView.h>
#import <WebCore/ScrollingCoordinator.h>
#import <WebCore/ScrollingThread.h>
@@ -174,7 +173,7 @@ bool TiledCoreAnimationDrawingArea::layerTreeStateIsFrozen() const
return m_layerTreeStateIsFrozen;
}
-void TiledCoreAnimationDrawingArea::scheduleCompositingLayerSync()
+void TiledCoreAnimationDrawingArea::scheduleCompositingLayerFlush()
{
m_layerFlushScheduler.schedule();
}
@@ -184,7 +183,7 @@ void TiledCoreAnimationDrawingArea::didInstallPageOverlay()
m_webPage->corePage()->scrollingCoordinator()->setForceMainThreadScrollLayerPositionUpdates(true);
createPageOverlayLayer();
- scheduleCompositingLayerSync();
+ scheduleCompositingLayerFlush();
}
void TiledCoreAnimationDrawingArea::didUninstallPageOverlay()
@@ -193,14 +192,14 @@ void TiledCoreAnimationDrawingArea::didUninstallPageOverlay()
page->scrollingCoordinator()->setForceMainThreadScrollLayerPositionUpdates(false);
destroyPageOverlayLayer();
- scheduleCompositingLayerSync();
+ scheduleCompositingLayerFlush();
}
void TiledCoreAnimationDrawingArea::setPageOverlayNeedsDisplay(const IntRect& rect)
{
ASSERT(m_pageOverlayLayer);
m_pageOverlayLayer->setNeedsDisplayInRect(rect);
- scheduleCompositingLayerSync();
+ scheduleCompositingLayerFlush();
}
void TiledCoreAnimationDrawingArea::updatePreferences(const WebPreferencesStore&)
@@ -263,7 +262,7 @@ void TiledCoreAnimationDrawingArea::notifyAnimationStarted(const GraphicsLayer*,
{
}
-void TiledCoreAnimationDrawingArea::notifySyncRequired(const GraphicsLayer*)
+void TiledCoreAnimationDrawingArea::notifyFlushRequired(const GraphicsLayer*)
{
}
@@ -305,10 +304,10 @@ bool TiledCoreAnimationDrawingArea::flushLayers()
if (m_pageOverlayLayer) {
m_pageOverlayLayer->setNeedsDisplay();
- m_pageOverlayLayer->syncCompositingStateForThisLayerOnly();
+ m_pageOverlayLayer->flushCompositingStateForThisLayerOnly();
}
- bool returnValue = m_webPage->corePage()->mainFrame()->view()->syncCompositingStateIncludingSubframes();
+ bool returnValue = m_webPage->corePage()->mainFrame()->view()->flushCompositingStateIncludingSubframes();
[pool drain];
return returnValue;
@@ -442,7 +441,7 @@ void TiledCoreAnimationDrawingArea::createPageOverlayLayer()
{
ASSERT(!m_pageOverlayLayer);
- m_pageOverlayLayer = GraphicsLayer::create(this);
+ m_pageOverlayLayer = GraphicsLayer::create(graphicsLayerFactory(), this);
#ifndef NDEBUG
m_pageOverlayLayer->setName("page overlay content");
#endif
diff --git a/Source/WebKit2/WebProcess/WebPage/mac/WebPageMac.mm b/Source/WebKit2/WebProcess/WebPage/mac/WebPageMac.mm
index c2f016537..2acf85b0e 100644
--- a/Source/WebKit2/WebProcess/WebPage/mac/WebPageMac.mm
+++ b/Source/WebKit2/WebProcess/WebPage/mac/WebPageMac.mm
@@ -94,6 +94,14 @@ void WebPage::platformPreferencesDidChange(const WebPreferencesStore& store)
{
if (WebInspector* inspector = this->inspector())
inspector->setInspectorUsesWebKitUserInterface(store.getBoolValueForKey(WebPreferencesKey::inspectorUsesWebKitUserInterfaceKey()));
+
+ BOOL omitPDFSupport = [[NSUserDefaults standardUserDefaults] boolForKey:@"WebKitOmitPDFSupport"];
+ if (!pdfPluginEnabled() && !omitPDFSupport) {
+ // We want to use a PDF view in the UI process for PDF MIME types.
+ HashSet<String, CaseFoldingHash> mimeTypes = pdfAndPostScriptMIMETypes();
+ for (HashSet<String, CaseFoldingHash>::iterator it = mimeTypes.begin(); it != mimeTypes.end(); ++it)
+ m_mimeTypesWithCustomRepresentations.add(*it);
+ }
}
typedef HashMap<String, String> SelectorNameMap;
@@ -121,7 +129,7 @@ static String commandNameForSelectorName(const String& selectorName)
static const SelectorNameMap* exceptionMap = createSelectorExceptionMap();
SelectorNameMap::const_iterator it = exceptionMap->find(selectorName);
if (it != exceptionMap->end())
- return it->second;
+ return it->value;
// Remove the trailing colon.
// No need to capitalize the command name since Editor command names are not case sensitive.
@@ -866,4 +874,16 @@ void WebPage::drawPagesToPDFFromPDFDocument(CGContextRef context, PDFDocument *p
}
}
+// FIXME: This is not the ideal place for this function (and now it's duplicated here and in WebContextMac).
+HashSet<String, CaseFoldingHash> WebPage::pdfAndPostScriptMIMETypes()
+{
+ HashSet<String, CaseFoldingHash> mimeTypes;
+
+ mimeTypes.add("application/pdf");
+ mimeTypes.add("application/postscript");
+ mimeTypes.add("text/pdf");
+
+ return mimeTypes;
+}
+
} // namespace WebKit
diff --git a/Source/WebKit2/WebProcess/WebPage/qt/WebPageQt.cpp b/Source/WebKit2/WebProcess/WebPage/qt/WebPageQt.cpp
index e3f6034df..721be4603 100644
--- a/Source/WebKit2/WebProcess/WebPage/qt/WebPageQt.cpp
+++ b/Source/WebKit2/WebProcess/WebPage/qt/WebPageQt.cpp
@@ -423,7 +423,7 @@ void WebPage::setUserScripts(const Vector<String>& scripts)
PageGroup* pageGroup = PageGroup::pageGroup(this->pageGroup()->identifier());
pageGroup->removeUserScriptsFromWorld(mainThreadNormalWorld());
for (unsigned i = 0; i < scripts.size(); ++i)
- pageGroup->addUserScriptToWorld(mainThreadNormalWorld(), scripts.at(i), KURL(), nullptr, nullptr, InjectAtDocumentEnd, InjectInTopFrameOnly);
+ pageGroup->addUserScriptToWorld(mainThreadNormalWorld(), scripts.at(i), KURL(), Vector<String>(), Vector<String>(), InjectAtDocumentEnd, InjectInTopFrameOnly);
}
void WebPage::selectedIndex(int32_t newIndex)
@@ -440,21 +440,4 @@ void WebPage::hidePopupMenu()
m_activePopupMenu = 0;
}
-bool WebPage::handleMouseReleaseEvent(const PlatformMouseEvent& platformMouseEvent)
-{
-#ifndef QT_NO_CLIPBOARD
- if (platformMouseEvent.button() != WebCore::MiddleButton)
- return false;
-
- if (qApp->clipboard()->supportsSelection()) {
- WebCore::Frame* focusFrame = m_page->focusController()->focusedOrMainFrame();
- if (focusFrame) {
- focusFrame->editor()->command(AtomicString("PasteGlobalSelection")).execute();
- return true;
- }
- }
-#endif
- return false;
-}
-
} // namespace WebKit
diff --git a/Source/WebKit2/WebProcess/WebProcess.cpp b/Source/WebKit2/WebProcess/WebProcess.cpp
index de1832459..6f67ed022 100644
--- a/Source/WebKit2/WebProcess/WebProcess.cpp
+++ b/Source/WebKit2/WebProcess/WebProcess.cpp
@@ -26,10 +26,8 @@
#include "config.h"
#include "WebProcess.h"
-#include "AuthenticationManager.h"
#include "DownloadManager.h"
#include "InjectedBundle.h"
-#include "InjectedBundleMessageKinds.h"
#include "InjectedBundleUserMessageCoders.h"
#include "SandboxExtension.h"
#include "StatisticsData.h"
@@ -160,9 +158,6 @@ WebProcess::WebProcess()
, m_notificationManager(this)
#endif
, m_iconDatabaseProxy(this)
-#if ENABLE(PLUGIN_PROCESS)
- , m_disablePluginProcessMessageTimeout(false)
-#endif
#if USE(SOUP)
, m_soupRequestManager(this)
#endif
@@ -251,9 +246,6 @@ void WebProcess::initializeWebProcess(const WebProcessCreationParameters& parame
setDefaultRequestTimeoutInterval(parameters.defaultRequestTimeoutInterval);
- for (size_t i = 0; i < parameters.mimeTypesWithCustomRepresentation.size(); ++i)
- m_mimeTypesWithCustomRepresentations.add(parameters.mimeTypesWithCustomRepresentation[i]);
-
if (parameters.shouldAlwaysUseComplexTextCodePath)
setAlwaysUsesComplexTextCodePath(true);
@@ -264,10 +256,6 @@ void WebProcess::initializeWebProcess(const WebProcessCreationParameters& parame
WebCore::ResourceHandle::setPrivateBrowsingStorageSessionIdentifierBase(parameters.uiProcessBundleIdentifier);
#endif
-#if ENABLE(PLUGIN_PROCESS)
- m_disablePluginProcessMessageTimeout = parameters.disablePluginProcessMessageTimeout;
-#endif
-
setTerminationTimeout(parameters.terminationTimeout);
}
@@ -354,7 +342,7 @@ void WebProcess::visitedLinkStateChanged(const Vector<WebCore::LinkHash>& linkHa
HashMap<uint64_t, RefPtr<WebPageGroupProxy> >::const_iterator it = m_pageGroupMap.begin();
HashMap<uint64_t, RefPtr<WebPageGroupProxy> >::const_iterator end = m_pageGroupMap.end();
for (; it != end; ++it)
- Page::visitedStateChanged(PageGroup::pageGroup(it->second->identifier()), linkHashes[i]);
+ Page::visitedStateChanged(PageGroup::pageGroup(it->value->identifier()), linkHashes[i]);
}
pageCache()->markPagesForVistedLinkStyleRecalc();
@@ -366,7 +354,7 @@ void WebProcess::allVisitedLinkStateChanged()
HashMap<uint64_t, RefPtr<WebPageGroupProxy> >::const_iterator it = m_pageGroupMap.begin();
HashMap<uint64_t, RefPtr<WebPageGroupProxy> >::const_iterator end = m_pageGroupMap.end();
for (; it != end; ++it)
- Page::allVisitedStateChanged(PageGroup::pageGroup(it->second->identifier()));
+ Page::allVisitedStateChanged(PageGroup::pageGroup(it->value->identifier()));
pageCache()->markPagesForVistedLinkStyleRecalc();
}
@@ -542,7 +530,7 @@ WebPage* WebProcess::focusedWebPage() const
{
HashMap<uint64_t, RefPtr<WebPage> >::const_iterator end = m_pageMap.end();
for (HashMap<uint64_t, RefPtr<WebPage> >::const_iterator it = m_pageMap.begin(); it != end; ++it) {
- WebPage* page = (*it).second.get();
+ WebPage* page = (*it).value.get();
if (page->windowAndWebPageAreFocused())
return page;
}
@@ -560,14 +548,14 @@ void WebProcess::createWebPage(uint64_t pageID, const WebPageCreationParameters&
// link) the WebPage gets created both in the synchronous handler and through the normal way.
HashMap<uint64_t, RefPtr<WebPage> >::AddResult result = m_pageMap.add(pageID, 0);
if (result.isNewEntry) {
- ASSERT(!result.iterator->second);
- result.iterator->second = WebPage::create(pageID, parameters);
+ ASSERT(!result.iterator->value);
+ result.iterator->value = WebPage::create(pageID, parameters);
// Balanced by an enableTermination in removeWebPage.
disableTermination();
}
- ASSERT(result.iterator->second);
+ ASSERT(result.iterator->value);
}
void WebProcess::removeWebPage(uint64_t pageID)
@@ -638,11 +626,6 @@ void WebProcess::didReceiveMessage(CoreIPC::Connection* connection, CoreIPC::Mes
return;
}
- if (messageID.is<CoreIPC::MessageClassAuthenticationManager>()) {
- AuthenticationManager::shared().didReceiveMessage(connection, messageID, arguments);
- return;
- }
-
if (messageID.is<CoreIPC::MessageClassWebApplicationCacheManager>()) {
WebApplicationCacheManager::shared().didReceiveMessage(connection, messageID, arguments);
return;
@@ -660,11 +643,6 @@ void WebProcess::didReceiveMessage(CoreIPC::Connection* connection, CoreIPC::Mes
}
#endif
- if (messageID.is<CoreIPC::MessageClassWebGeolocationManager>()) {
- m_geolocationManager.didReceiveMessage(connection, messageID, arguments);
- return;
- }
-
#if ENABLE(BATTERY_STATUS)
if (messageID.is<CoreIPC::MessageClassWebBatteryManager>()) {
m_batteryManager.didReceiveMessage(connection, messageID, arguments);
@@ -712,12 +690,17 @@ void WebProcess::didReceiveMessage(CoreIPC::Connection* connection, CoreIPC::Mes
return;
}
#endif
-
- if (messageID.is<CoreIPC::MessageClassInjectedBundle>()) {
- if (!m_injectedBundle)
+
+ if (messageID.is<CoreIPC::MessageClassWebPageGroupProxy>()) {
+ uint64_t pageGroupID = arguments->destinationID();
+ if (!pageGroupID)
return;
- m_injectedBundle->didReceiveMessage(connection, messageID, arguments);
- return;
+
+ WebPageGroupProxy* pageGroupProxy = webPageGroup(pageGroupID);
+ if (!pageGroupProxy)
+ return;
+
+ pageGroupProxy->didReceiveMessage(connection, messageID, arguments);
}
uint64_t pageID = arguments->destinationID();
@@ -760,10 +743,6 @@ void WebProcess::didReceiveInvalidMessage(CoreIPC::Connection*, CoreIPC::Message
// we'll let it slide.
}
-void WebProcess::syncMessageSendTimedOut(CoreIPC::Connection*)
-{
-}
-
void WebProcess::didReceiveMessageOnConnectionWorkQueue(CoreIPC::Connection* connection, CoreIPC::MessageID messageID, CoreIPC::ArgumentDecoder* arguments, bool& didHandleMessage)
{
if (messageID.is<CoreIPC::MessageClassWebProcess>()) {
@@ -804,11 +783,11 @@ WebPageGroupProxy* WebProcess::webPageGroup(const WebPageGroupData& pageGroupDat
{
HashMap<uint64_t, RefPtr<WebPageGroupProxy> >::AddResult result = m_pageGroupMap.add(pageGroupData.pageGroupID, 0);
if (result.isNewEntry) {
- ASSERT(!result.iterator->second);
- result.iterator->second = WebPageGroupProxy::create(pageGroupData);
+ ASSERT(!result.iterator->value);
+ result.iterator->value = WebPageGroupProxy::create(pageGroupData);
}
- return result.iterator->second.get();
+ return result.iterator->value.get();
}
#if ENABLE(WEB_INTENTS)
@@ -831,26 +810,6 @@ void WebProcess::removeMessagePortChannel(uint64_t channelID)
}
#endif
-static bool canPluginHandleResponse(const ResourceResponse& response)
-{
- String pluginPath;
- bool blocked;
-
- if (!WebProcess::shared().connection()->sendSync(Messages::WebProcessProxy::GetPluginPath(response.mimeType(), response.url().string()), Messages::WebProcessProxy::GetPluginPath::Reply(pluginPath, blocked), 0))
- return false;
-
- return !blocked && !pluginPath.isEmpty();
-}
-
-bool WebProcess::shouldUseCustomRepresentationForResponse(const ResourceResponse& response) const
-{
- if (!m_mimeTypesWithCustomRepresentations.contains(response.mimeType()))
- return false;
-
- // If a plug-in exists that claims to support this response, it should take precedence over the custom representation.
- return !canPluginHandleResponse(response);
-}
-
void WebProcess::clearResourceCaches(ResourceCachesToClear resourceCachesToClear)
{
platformClearResourceCaches(resourceCachesToClear);
@@ -934,7 +893,7 @@ static void fromCountedSetToHashMap(TypeCountSet* countedSet, HashMap<String, ui
{
TypeCountSet::const_iterator end = countedSet->end();
for (TypeCountSet::const_iterator it = countedSet->begin(); it != end; ++it)
- map.set(it->first, it->second);
+ map.set(it->key, it->value);
}
static void getWebCoreMemoryCacheStatistics(Vector<HashMap<String, uint64_t> >& result)
@@ -1046,6 +1005,25 @@ void WebProcess::setJavaScriptGarbageCollectorTimerEnabled(bool flag)
gcController().setJavaScriptGarbageCollectorTimerEnabled(flag);
}
+void WebProcess::postInjectedBundleMessage(const CoreIPC::DataReference& messageData)
+{
+ InjectedBundle* injectedBundle = WebProcess::shared().injectedBundle();
+ if (!injectedBundle)
+ return;
+
+ CoreIPC::ArgumentDecoder messageDecoder(messageData.data(), messageData.size());
+
+ String messageName;
+ if (!messageDecoder.decode(messageName))
+ return;
+
+ RefPtr<APIObject> messageBody;
+ if (!messageDecoder.decode(InjectedBundleUserMessageDecoder(messageBody)))
+ return;
+
+ injectedBundle->didReceiveMessage(messageName, messageBody.get());
+}
+
#if ENABLE(PLUGIN_PROCESS)
void WebProcess::pluginProcessCrashed(CoreIPC::Connection*, const String& pluginPath)
{
@@ -1107,7 +1085,7 @@ void WebProcess::setTextCheckerState(const TextCheckerState& textCheckerState)
HashMap<uint64_t, RefPtr<WebPage> >::iterator end = m_pageMap.end();
for (HashMap<uint64_t, RefPtr<WebPage> >::iterator it = m_pageMap.begin(); it != end; ++it) {
- WebPage* page = (*it).second.get();
+ WebPage* page = (*it).value.get();
if (continuousSpellCheckingTurnedOff)
page->unmarkAllMisspellings();
if (grammarCheckingTurnedOff)
diff --git a/Source/WebKit2/WebProcess/WebProcess.h b/Source/WebKit2/WebProcess/WebProcess.h
index e34d15f29..eccbb8d60 100644
--- a/Source/WebKit2/WebProcess/WebProcess.h
+++ b/Source/WebKit2/WebProcess/WebProcess.h
@@ -150,14 +150,12 @@ public:
#if PLATFORM(MAC)
pid_t presenterApplicationPid() const { return m_presenterApplicationPid; }
bool shouldForceScreenFontSubstitution() const { return m_shouldForceScreenFontSubstitution; }
-#endif
+#endif
#if PLATFORM(QT)
QNetworkAccessManager* networkAccessManager() { return m_networkAccessManager; }
#endif
- bool shouldUseCustomRepresentationForResponse(const WebCore::ResourceResponse&) const;
-
// Text Checking
const TextCheckerState& textCheckerState() const { return m_textCheckerState; }
@@ -182,7 +180,6 @@ public:
#if ENABLE(PLUGIN_PROCESS)
PluginProcessConnectionManager& pluginProcessConnectionManager() { return m_pluginProcessConnectionManager; }
- bool disablePluginProcessMessageTimeout() const { return m_disablePluginProcessMessageTimeout; }
#endif
EventDispatcher& eventDispatcher() { return m_eventDispatcher; }
@@ -251,6 +248,8 @@ private:
void garbageCollectJavaScriptObjects();
void setJavaScriptGarbageCollectorTimerEnabled(bool flag);
+ void postInjectedBundleMessage(const CoreIPC::DataReference& messageData);
+
#if USE(SECURITY_FRAMEWORK)
void secItemResponse(CoreIPC::Connection*, uint64_t requestID, const SecItemResponseData&);
void secKeychainItemResponse(CoreIPC::Connection*, uint64_t requestID, const SecKeychainItemResponseData&);
@@ -266,7 +265,6 @@ private:
virtual void didReceiveSyncMessage(CoreIPC::Connection*, CoreIPC::MessageID, CoreIPC::ArgumentDecoder*, OwnPtr<CoreIPC::ArgumentEncoder>&);
virtual void didClose(CoreIPC::Connection*);
virtual void didReceiveInvalidMessage(CoreIPC::Connection*, CoreIPC::MessageID);
- virtual void syncMessageSendTimedOut(CoreIPC::Connection*);
#if PLATFORM(WIN)
virtual Vector<HWND> windowsToReceiveSentMessagesWhileWaitingForSyncReply();
#endif
@@ -320,8 +318,6 @@ private:
HashMap<uint64_t, RefPtr<WebCore::PlatformMessagePortChannel> > m_messagePortChannels;
#endif
- HashSet<String, CaseFoldingHash> m_mimeTypesWithCustomRepresentations;
-
TextCheckerState m_textCheckerState;
WebGeolocationManager m_geolocationManager;
#if ENABLE(BATTERY_STATUS)
@@ -339,7 +335,6 @@ private:
#if ENABLE(PLUGIN_PROCESS)
PluginProcessConnectionManager m_pluginProcessConnectionManager;
- bool m_disablePluginProcessMessageTimeout;
#endif
#if USE(SOUP)
diff --git a/Source/WebKit2/WebProcess/WebProcess.messages.in b/Source/WebKit2/WebProcess/WebProcess.messages.in
index 336ff8bfa..d10a7b536 100644
--- a/Source/WebKit2/WebProcess/WebProcess.messages.in
+++ b/Source/WebKit2/WebProcess/WebProcess.messages.in
@@ -22,7 +22,7 @@
messages -> WebProcess {
# Initialize the WebProcess.
- InitializeWebProcess(WebKit::WebProcessCreationParameters processCreationParameters, WebKit::WebContextUserMessageEncoder initializationUserData)
+ InitializeWebProcess(WebKit::WebProcessCreationParameters processCreationParameters, WebKit::WebContextUserMessageEncoder initializationUserData) Variadic
# Create a new page.
CreateWebPage(uint64_t newPageID, WebKit::WebPageCreationParameters pageCreationParameters)
@@ -56,7 +56,6 @@ messages -> WebProcess {
#endif
# Plug-ins.
-
#if !ENABLE(PLUGIN_PROCESS)
GetSitesWithPluginData(Vector<WTF::String> pluginPaths, uint64_t callbackID)
ClearPluginSiteData(Vector<WTF::String> pluginPaths, Vector<WTF::String> sites, uint64_t flags, uint64_t maxAgeInSeconds, uint64_t callbackID)
@@ -87,6 +86,8 @@ messages -> WebProcess {
GarbageCollectJavaScriptObjects()
SetJavaScriptGarbageCollectorTimerEnabled(bool enable)
+ PostInjectedBundleMessage(CoreIPC::DataReference messageData);
+
#if USE(SECURITY_FRAMEWORK)
SecItemResponse(uint64_t requestID, WebKit::SecItemResponseData response) DispatchOnConnectionQueue
SecKeychainItemResponse(uint64_t requestID, WebKit::SecKeychainItemResponseData response) DispatchOnConnectionQueue
diff --git a/Source/WebKit2/WebProcess/mac/WebProcessMac.mm b/Source/WebKit2/WebProcess/mac/WebProcessMac.mm
index ff75ceba5..519d62b95 100644
--- a/Source/WebKit2/WebProcess/mac/WebProcessMac.mm
+++ b/Source/WebKit2/WebProcess/mac/WebProcessMac.mm
@@ -33,6 +33,7 @@
#import "WebProcessCreationParameters.h"
#import "WebProcessProxyMessages.h"
#import <WebCore/FileSystem.h>
+#import <WebCore/Font.h>
#import <WebCore/LocalizedStrings.h>
#import <WebCore/MemoryCache.h>
#import <WebCore/PageCache.h>
@@ -272,6 +273,7 @@ void WebProcess::platformInitializeWebProcess(const WebProcessCreationParameters
}
m_shouldForceScreenFontSubstitution = parameters.shouldForceScreenFontSubstitution;
+ Font::setDefaultTypesettingFeatures(parameters.shouldEnableKerningAndLigaturesByDefault ? Kerning | Ligatures : 0);
m_compositingRenderServerPort = parameters.acceleratedCompositingPort.port();
diff --git a/Source/WebKit2/WebProcess/mac/WebProcessMainMac.mm b/Source/WebKit2/WebProcess/mac/WebProcessMainMac.mm
index 3a8dee7f7..46b1b300d 100644
--- a/Source/WebKit2/WebProcess/mac/WebProcessMainMac.mm
+++ b/Source/WebKit2/WebProcess/mac/WebProcessMainMac.mm
@@ -161,9 +161,10 @@ int WebProcessMain(const CommandLine& commandLine)
#endif // __MAC_OS_X_VERSION_MIN_REQUIRED >= 1070
String localization = commandLine["localization"];
- RetainPtr<CFStringRef> cfLocalization(AdoptCF, CFStringCreateWithCharacters(0, reinterpret_cast<const UniChar*>(localization.characters()), localization.length()));
- if (cfLocalization)
+ if (!localization.isEmpty()) {
+ RetainPtr<CFStringRef> cfLocalization(AdoptCF, CFStringCreateWithCharacters(0, reinterpret_cast<const UniChar*>(localization.characters()), localization.length()));
WKSetDefaultLocalization(cfLocalization.get());
+ }
[pool drain];
diff --git a/Source/WebKit2/WebProcess/soup/WebSoupRequestManager.cpp b/Source/WebKit2/WebProcess/soup/WebSoupRequestManager.cpp
index 6c5cad195..7406d685e 100644
--- a/Source/WebKit2/WebProcess/soup/WebSoupRequestManager.cpp
+++ b/Source/WebKit2/WebProcess/soup/WebSoupRequestManager.cpp
@@ -25,6 +25,7 @@
#include "WebErrors.h"
#include "WebKitSoupRequestGeneric.h"
#include "WebKitSoupRequestInputStream.h"
+#include "WebPageProxyMessages.h"
#include "WebProcess.h"
#include "WebSoupRequestManagerProxyMessages.h"
#include <WebCore/ResourceHandle.h>
@@ -169,12 +170,14 @@ void WebSoupRequestManager::didReceiveURIRequestData(const CoreIPC::DataReferenc
void WebSoupRequestManager::send(GSimpleAsyncResult* result, GCancellable* cancellable)
{
GRefPtr<WebKitSoupRequestGeneric> request = adoptGRef(WEBKIT_SOUP_REQUEST_GENERIC(g_async_result_get_source_object(G_ASYNC_RESULT(result))));
- SoupURI* uri = soup_request_get_uri(SOUP_REQUEST(request.get()));
- GOwnPtr<char> uriString(soup_uri_to_string(uri, FALSE));
+ SoupRequest* soupRequest = SOUP_REQUEST(request.get());
+ GOwnPtr<char> uriString(soup_uri_to_string(soup_request_get_uri(soupRequest), FALSE));
uint64_t requestID = generateSoupRequestID();
m_requestMap.set(requestID, adoptPtr(new WebSoupRequestAsyncData(result, request.get(), cancellable)));
- m_process->connection()->send(Messages::WebSoupRequestManagerProxy::DidReceiveURIRequest(String::fromUTF8(uriString.get()), requestID), 0);
+
+ uint64_t initiaingPageID = WebCore::ResourceHandle::getSoupRequestInitiaingPageID(soupRequest);
+ m_process->connection()->send(Messages::WebPageProxy::DidReceiveURIRequest(String::fromUTF8(uriString.get()), requestID), initiaingPageID);
}
GInputStream* WebSoupRequestManager::finish(GSimpleAsyncResult* result)
diff --git a/Source/WebKit2/WebProcessService/Info.plist b/Source/WebKit2/WebProcessService/Info.plist
index cebb78ead..c7b083203 100644
--- a/Source/WebKit2/WebProcessService/Info.plist
+++ b/Source/WebKit2/WebProcessService/Info.plist
@@ -2,6 +2,8 @@
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
+ <key>CFBundleGetInfoString</key>
+ <string>${BUNDLE_VERSION}, Copyright 2003-2012 Apple Inc.</string>
<key>CFBundleDevelopmentRegion</key>
<string>English</string>
<key>CFBundleExecutable</key>
@@ -15,11 +17,11 @@
<key>CFBundlePackageType</key>
<string>XPC!</string>
<key>CFBundleShortVersionString</key>
- <string>1.0</string>
+ <string>${SHORT_VERSION_STRING}</string>
<key>CFBundleSignature</key>
<string>????</string>
<key>CFBundleVersion</key>
- <string>1</string>
+ <string>${BUNDLE_VERSION}</string>
<key>LSFileQuarantineEnabled</key>
<true/>
<key>NSPrincipalClass</key>
@@ -32,7 +34,7 @@
<string>Application</string>
<key>RunLoopType</key>
<string>_NSApplicationMain</string>
- <key>_MultipleInstance</key>
+ <key>_MultipleInstances</key>
<true/>
<key>EnvironmentVariables</key>
<dict>
diff --git a/Source/WebKit2/WebProcessServiceForWebKitDevelopment/Info.plist b/Source/WebKit2/WebProcessServiceForWebKitDevelopment/Info.plist
index 8908196b6..2ab0a9c1c 100644
--- a/Source/WebKit2/WebProcessServiceForWebKitDevelopment/Info.plist
+++ b/Source/WebKit2/WebProcessServiceForWebKitDevelopment/Info.plist
@@ -2,6 +2,8 @@
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
+ <key>CFBundleGetInfoString</key>
+ <string>${BUNDLE_VERSION}, Copyright 2003-2012 Apple Inc.</string>
<key>CFBundleDevelopmentRegion</key>
<string>English</string>
<key>CFBundleExecutable</key>
@@ -15,11 +17,11 @@
<key>CFBundlePackageType</key>
<string>XPC!</string>
<key>CFBundleShortVersionString</key>
- <string>1.0</string>
+ <string>${SHORT_VERSION_STRING}</string>
<key>CFBundleSignature</key>
<string>????</string>
<key>CFBundleVersion</key>
- <string>1</string>
+ <string>${BUNDLE_VERSION}</string>
<key>LSFileQuarantineEnabled</key>
<true/>
<key>NSPrincipalClass</key>
@@ -32,7 +34,7 @@
<string>Application</string>
<key>RunLoopType</key>
<string>_NSApplicationMain</string>
- <key>_MultipleInstance</key>
+ <key>_MultipleInstances</key>
<true/>
</dict>
</dict>
diff --git a/Source/WebKit2/WebProcessServiceForWebKitDevelopment/WebProcessServiceForWebKitDevelopmentMain.mm b/Source/WebKit2/WebProcessServiceForWebKitDevelopment/WebProcessServiceForWebKitDevelopmentMain.mm
index da426fa97..e0407eb65 100644
--- a/Source/WebKit2/WebProcessServiceForWebKitDevelopment/WebProcessServiceForWebKitDevelopmentMain.mm
+++ b/Source/WebKit2/WebProcessServiceForWebKitDevelopment/WebProcessServiceForWebKitDevelopmentMain.mm
@@ -81,8 +81,8 @@ static void WebProcessServiceForWebKitDevelopmentEventHandler(xpc_connection_t p
posix_spawnattr_setflags(&attr, flags);
- uint32_t pathLength;
char path[4 * PATH_MAX];
+ uint32_t pathLength = sizeof(path);
_NSGetExecutablePath(path, &pathLength);
// Setup the command line.
diff --git a/Source/WebKit2/config.h b/Source/WebKit2/config.h
index d6c4a5da6..2885075a8 100644
--- a/Source/WebKit2/config.h
+++ b/Source/WebKit2/config.h
@@ -108,7 +108,7 @@ static const type& name() \
#define PLUGIN_ARCHITECTURE_MAC 1
#elif PLATFORM(WIN)
#define PLUGIN_ARCHITECTURE_WIN 1
-#elif PLATFORM(GTK) && (OS(UNIX) && !OS(MAC_OS_X))
+#elif (PLATFORM(GTK) || PLATFORM(EFL)) && (OS(UNIX) && !OS(MAC_OS_X))
#define PLUGIN_ARCHITECTURE_X11 1
#elif PLATFORM(QT)
// Qt handles this features.prf
diff --git a/Source/WebKit2/qt/MainQt.cpp b/Source/WebKit2/qt/MainQt.cpp
index 16e4faa2e..3f0dce22f 100644
--- a/Source/WebKit2/qt/MainQt.cpp
+++ b/Source/WebKit2/qt/MainQt.cpp
@@ -45,10 +45,10 @@ static void sigcontHandler(int)
}
#endif
-static void messageHandler(QtMsgType type, const char* message)
+static void messageHandler(QtMsgType type, const QMessageLogContext&, const QString& message)
{
if (type == QtCriticalMsg) {
- fprintf(stderr, "%s\n", message);
+ fprintf(stderr, "%s\n", qPrintable(message));
return;
}
@@ -82,7 +82,7 @@ int main(int argc, char** argv)
// QApplication itself produces debug output.
QByteArray suppressOutput = qgetenv("QT_WEBKIT_SUPPRESS_WEB_PROCESS_OUTPUT");
if (!suppressOutput.isEmpty() && suppressOutput != "0")
- qInstallMsgHandler(messageHandler);
+ qInstallMessageHandler(messageHandler);
return WebKit::WebProcessMainQt(new QApplication(argc, argv));
}
diff --git a/Source/WebKit2/gtk/PluginMainGtk.cpp b/Source/WebKit2/unix/PluginMainUnix.cpp
index 63cf44cda..07f9a0dc0 100644
--- a/Source/WebKit2/gtk/PluginMainGtk.cpp
+++ b/Source/WebKit2/unix/PluginMainUnix.cpp
@@ -24,9 +24,9 @@
* THE POSSIBILITY OF SUCH DAMAGE.
*/
-#include "PluginProcessMainGtk.h"
+#include "PluginProcessMainUnix.h"
int main(int argc, char** argv)
{
- return WebKit::PluginProcessMainGtk(argc, argv);
+ return WebKit::PluginProcessMainUnix(argc, argv);
}
diff --git a/Source/WebKit2/win/WebKit2.def b/Source/WebKit2/win/WebKit2.def
index e0b7da9ab..196bbf059 100644
--- a/Source/WebKit2/win/WebKit2.def
+++ b/Source/WebKit2/win/WebKit2.def
@@ -142,7 +142,8 @@ EXPORTS
?waitForThreadCompletion@WTF@@YAHI@Z
?waitForThreadCompletion@WTF@@YAHIPAPAX@Z
?createThread@WTF@@YAIP6APAXPAX@Z0@Z
- ; Re-exports from WebCore for test harnesses
+
+; Re-exports from WebCore for test harnesses
??0NodeRenderingContext@WebCore@@QAE@PAVNode@1@@Z
??1NodeRenderingContext@WebCore@@QAE@XZ
??1Range@WebCore@@QAE@XZ
@@ -156,7 +157,7 @@ EXPORTS
??0String@WTF@@QAE@PB_W@Z
?absoluteBoundingBoxRect@RenderObject@WebCore@@QBE?AVIntRect@2@_N@Z
?absoluteBoundingBoxRectIgnoringTransforms@RenderObject@WebCore@@QBE?AVIntRect@2@XZ
- ?description@DocumentMarker@WebCore@@QBEABVString@WTF@@XZ
+ ?description@DocumentMarker@WebCore@@QBEABVString@WTF@@XZ
?add@AtomicString@WTF@@CA?AV?$PassRefPtr@VStringImpl@WTF@@@2@PBD@Z
?add@AtomicString@WTF@@CA?AV?$PassRefPtr@VStringImpl@WTF@@@2@PBE@Z
?addSlowCase@AtomicString@WTF@@CA?AV?$PassRefPtr@VStringImpl@WTF@@@2@PAVStringImpl@2@@Z
@@ -166,6 +167,7 @@ EXPORTS
?create@Range@WebCore@@SA?AV?$PassRefPtr@VRange@WebCore@@@WTF@@V?$PassRefPtr@VDocument@WebCore@@@4@V?$PassRefPtr@VNode@WebCore@@@4@H1H@Z
?create@ShadowRoot@WebCore@@SA?AV?$PassRefPtr@VShadowRoot@WebCore@@@WTF@@PAVElement@2@AAH@Z
?createWrapper@WebCore@@YA?AVJSValue@JSC@@PAVExecState@3@PAVJSDOMGlobalObject@1@PAVNode@1@@Z
+ ?distributedNodes@InsertionPoint@WebCore@@QBE?AV?$PassRefPtr@VNodeList@WebCore@@@WTF@@XZ
?documentState@HistoryItem@WebCore@@QBEABV?$Vector@VString@WTF@@$0A@@WTF@@XZ
?equal@WTF@@YA_NPBVStringImpl@1@PBE@Z
?equal@WTF@@YA_NPBVStringImpl@1@0@Z
@@ -309,4 +311,6 @@ EXPORTS
?setInspectorFrontendClient@InspectorController@WebCore@@QAEXV?$PassOwnPtr@VInspectorFrontendClient@WebCore@@@WTF@@@Z
?setProperty@Settings@InspectorFrontendClientLocal@WebCore@@UAEXABVString@WTF@@0@Z
?toJS@WebCore@@YA?AVJSValue@JSC@@PAVExecState@3@PAVJSDOMGlobalObject@1@PAVDOMWindow@1@@Z
- ?windowObjectCleared@InspectorFrontendClientLocal@WebCore@@UAEXXZ
+ ?windowObjectCleared@InspectorFrontendClientLocal@WebCore@@UAEXXZ
+ ?layerTreeAsText@Frame@WebCore@@QBE?AVString@WTF@@I@Z
+
diff --git a/Source/WebKit2/win/WebKit2.vcproj b/Source/WebKit2/win/WebKit2.vcproj
index ff3a3f9db..b06682f4c 100755
--- a/Source/WebKit2/win/WebKit2.vcproj
+++ b/Source/WebKit2/win/WebKit2.vcproj
@@ -619,6 +619,10 @@
>
</File>
<File
+ RelativePath="..\Shared\WebConnection.messages.in"
+ >
+ </File>
+ <File
RelativePath="..\Shared\WebConnectionClient.cpp"
>
</File>
@@ -2122,6 +2126,10 @@
>
</File>
<File
+ RelativePath="..\WebProcess\WebPage\WebPageGroupProxy.messages.in"
+ >
+ </File>
+ <File
RelativePath="..\WebProcess\WebPage\WebUndoStep.cpp"
>
</File>
@@ -4090,6 +4098,18 @@
>
</File>
<File
+ RelativePath="..\Platform\CoreIPC\MessageReceiver.h"
+ >
+ </File>
+ <File
+ RelativePath="..\Platform\CoreIPC\MessageReceiverMap.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\Platform\CoreIPC\MessageReceiverMap.h"
+ >
+ </File>
+ <File
RelativePath="..\Platform\CoreIPC\MessageSender.h"
>
</File>
@@ -4279,6 +4299,14 @@
>
</File>
<File
+ RelativePath="$(ConfigurationBuildDir)\obj\$(ProjectName)\DerivedSources\WebConnectionMessageReceiver.cpp"
+ >
+ </File>
+ <File
+ RelativePath="$(ConfigurationBuildDir)\obj\$(ProjectName)\DerivedSources\WebConnectionMessages.h"
+ >
+ </File>
+ <File
RelativePath="$(ConfigurationBuildDir)\obj\$(ProjectName)\DerivedSources\WebContextMessageReceiver.cpp"
>
</File>
@@ -4431,6 +4459,14 @@
>
</File>
<File
+ RelativePath="$(ConfigurationBuildDir)\obj\$(ProjectName)\DerivedSources\WebPageGroupProxyMessageReceiver.cpp"
+ >
+ </File>
+ <File
+ RelativePath="$(ConfigurationBuildDir)\obj\$(ProjectName)\DerivedSources\WebPageGroupProxyMessages.h"
+ >
+ </File>
+ <File
RelativePath="$(ConfigurationBuildDir)\obj\$(ProjectName)\DerivedSources\WebPageMessageReceiver.cpp"
>
</File>
diff --git a/Source/WebKit2/win/WebKit2CFLite.def b/Source/WebKit2/win/WebKit2CFLite.def
index 3675ac250..d6fd9fb6f 100644
--- a/Source/WebKit2/win/WebKit2CFLite.def
+++ b/Source/WebKit2/win/WebKit2CFLite.def
@@ -118,6 +118,7 @@ EXPORTS
?detachThread@WTF@@YAXI@Z
?didBeginFrameImpl@InspectorInstrumentation@WebCore@@CAXPAVInstrumentingAgents@2@@Z
?didCancelFrameImpl@InspectorInstrumentation@WebCore@@CAXPAVInstrumentingAgents@2@@Z
+ ?distributedNodes@InsertionPoint@WebCore@@QBE?AV?$PassRefPtr@VNodeList@WebCore@@@WTF@@XZ
?initializeMainThread@WTF@@YAXXZ
?initializeThreading@WTF@@YAXXZ
?instrumentationForPage@WebCore@@YAPAVInstrumentingAgents@1@PAVPage@1@@Z