summaryrefslogtreecommitdiff
path: root/Source/WebKit2
diff options
context:
space:
mode:
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