summaryrefslogtreecommitdiffstats
path: root/WebKit
diff options
context:
space:
mode:
Diffstat (limited to 'WebKit')
-rw-r--r--WebKit/CMakeLists.txt63
-rw-r--r--WebKit/CMakeListsEfl.txt108
-rw-r--r--WebKit/ChangeLog28
-rw-r--r--WebKit/chromium/ChangeLog637
-rw-r--r--WebKit/chromium/DEPS5
-rw-r--r--WebKit/chromium/WebKit.gyp128
-rw-r--r--WebKit/chromium/features.gypi2
-rwxr-xr-xWebKit/chromium/gyp_webkit3
-rw-r--r--WebKit/chromium/public/WebCommonWorkerClient.h4
-rw-r--r--WebKit/chromium/public/WebContextMenuData.h11
-rw-r--r--WebKit/chromium/public/WebFrame.h13
-rw-r--r--WebKit/chromium/public/WebIDBCallbacks.h15
-rw-r--r--WebKit/chromium/public/WebIndexedDatabase.h3
-rw-r--r--WebKit/chromium/public/WebInputElement.h1
-rw-r--r--WebKit/chromium/public/WebKitClient.h5
-rw-r--r--WebKit/chromium/public/WebMediaPlayerClient.h1
-rw-r--r--WebKit/chromium/public/WebNode.h18
-rw-r--r--WebKit/chromium/public/WebPasswordAutocompleteListener.h1
-rw-r--r--WebKit/chromium/public/WebPluginContainer.h4
-rw-r--r--WebKit/chromium/public/WebPopupMenuInfo.h1
-rw-r--r--WebKit/chromium/public/WebScrollbar.h98
-rw-r--r--WebKit/chromium/public/WebScrollbarClient.h49
-rw-r--r--WebKit/chromium/public/WebSecurityPolicy.h6
-rw-r--r--WebKit/chromium/public/WebSharedWorker.h13
-rw-r--r--WebKit/chromium/public/WebStorageNamespace.h12
-rw-r--r--WebKit/chromium/public/WebThemeEngine.h41
-rw-r--r--WebKit/chromium/public/WebURLLoaderClient.h3
-rw-r--r--WebKit/chromium/public/WebURLResponse.h8
-rw-r--r--WebKit/chromium/public/WebViewClient.h5
-rw-r--r--WebKit/chromium/src/AssertMatchingEnums.cpp9
-rw-r--r--WebKit/chromium/src/ChromeClientImpl.cpp5
-rw-r--r--WebKit/chromium/src/ChromiumBridge.cpp18
-rw-r--r--WebKit/chromium/src/ContextMenuClientImpl.cpp9
-rw-r--r--WebKit/chromium/src/DatabaseObserver.cpp8
-rw-r--r--WebKit/chromium/src/FrameLoaderClientImpl.h4
-rw-r--r--WebKit/chromium/src/GraphicsContext3D.cpp20
-rw-r--r--WebKit/chromium/src/IDBCallbacksProxy.cpp74
-rw-r--r--WebKit/chromium/src/IDBCallbacksProxy.h37
-rw-r--r--WebKit/chromium/src/IndexedDatabaseProxy.cpp10
-rw-r--r--WebKit/chromium/src/IndexedDatabaseProxy.h2
-rw-r--r--WebKit/chromium/src/PlatformMessagePortChannel.h5
-rw-r--r--WebKit/chromium/src/ResourceHandle.cpp17
-rw-r--r--WebKit/chromium/src/SharedWorkerRepository.cpp10
-rw-r--r--WebKit/chromium/src/StorageNamespaceProxy.cpp2
-rw-r--r--WebKit/chromium/src/WebAnimationControllerImpl.h4
-rw-r--r--WebKit/chromium/src/WebBindings.cpp5
-rw-r--r--WebKit/chromium/src/WebDataSourceImpl.h7
-rw-r--r--WebKit/chromium/src/WebDevToolsAgentPrivate.h4
-rw-r--r--WebKit/chromium/src/WebFileChooserCompletionImpl.h9
-rw-r--r--WebKit/chromium/src/WebFrameImpl.cpp20
-rw-r--r--WebKit/chromium/src/WebFrameImpl.h10
-rw-r--r--WebKit/chromium/src/WebGeolocationServiceBridgeImpl.cpp16
-rw-r--r--WebKit/chromium/src/WebGraphicsContext3D.cpp4
-rw-r--r--WebKit/chromium/src/WebIndexedDatabaseImpl.cpp4
-rw-r--r--WebKit/chromium/src/WebIndexedDatabaseImpl.h2
-rw-r--r--WebKit/chromium/src/WebInputElement.cpp5
-rw-r--r--WebKit/chromium/src/WebInputEventConversion.h4
-rw-r--r--WebKit/chromium/src/WebLabelElement.cpp2
-rw-r--r--WebKit/chromium/src/WebMediaPlayerClientImpl.cpp7
-rw-r--r--WebKit/chromium/src/WebMediaPlayerClientImpl.h1
-rw-r--r--WebKit/chromium/src/WebNode.cpp5
-rw-r--r--WebKit/chromium/src/WebPageSerializerImpl.cpp2
-rw-r--r--WebKit/chromium/src/WebPluginContainerImpl.cpp6
-rw-r--r--WebKit/chromium/src/WebPluginContainerImpl.h5
-rw-r--r--WebKit/chromium/src/WebPluginLoadObserver.h2
-rw-r--r--WebKit/chromium/src/WebPopupMenuImpl.h10
-rw-r--r--WebKit/chromium/src/WebScrollbarImpl.cpp297
-rw-r--r--WebKit/chromium/src/WebScrollbarImpl.h82
-rw-r--r--WebKit/chromium/src/WebSecurityPolicy.cpp16
-rw-r--r--WebKit/chromium/src/WebSettingsImpl.h3
-rw-r--r--WebKit/chromium/src/WebSharedWorkerImpl.cpp2
-rw-r--r--WebKit/chromium/src/WebSharedWorkerImpl.h2
-rw-r--r--WebKit/chromium/src/WebURLResponse.cpp20
-rw-r--r--WebKit/chromium/src/WebViewImpl.cpp42
-rw-r--r--WebKit/chromium/src/WebViewImpl.h17
-rw-r--r--WebKit/chromium/src/WebWorkerBase.cpp87
-rw-r--r--WebKit/chromium/src/WebWorkerBase.h3
-rw-r--r--WebKit/chromium/src/WebWorkerClientImpl.h8
-rw-r--r--WebKit/chromium/src/WrappedResourceRequest.h4
-rw-r--r--WebKit/chromium/src/WrappedResourceResponse.h4
-rw-r--r--WebKit/chromium/src/js/DevTools.js2
-rw-r--r--WebKit/efl/WebCoreSupport/ChromeClientEfl.cpp4
-rw-r--r--WebKit/efl/ewk/ewk_main.cpp1
-rw-r--r--WebKit/gtk/ChangeLog79
-rw-r--r--WebKit/gtk/WebCoreSupport/ContextMenuClientGtk.cpp2
-rw-r--r--WebKit/gtk/WebCoreSupport/EditorClientGtk.cpp268
-rw-r--r--WebKit/gtk/WebCoreSupport/EditorClientGtk.h10
-rw-r--r--WebKit/gtk/WebCoreSupport/FrameLoaderClientGtk.cpp9
-rw-r--r--WebKit/gtk/webkit/webkitprivate.h30
-rw-r--r--WebKit/gtk/webkit/webkitwebview.cpp183
-rw-r--r--WebKit/mac/ChangeLog159
-rw-r--r--WebKit/mac/Configurations/FeatureDefines.xcconfig2
-rw-r--r--WebKit/mac/Configurations/Version.xcconfig4
-rw-r--r--WebKit/mac/Misc/WebNSURLExtras.mm37
-rw-r--r--WebKit/mac/Plugins/Hosted/NetscapePluginHostManager.mm2
-rw-r--r--WebKit/mac/Plugins/Hosted/NetscapePluginHostProxy.mm4
-rw-r--r--WebKit/mac/Plugins/Hosted/NetscapePluginInstanceProxy.h12
-rw-r--r--WebKit/mac/Plugins/Hosted/NetscapePluginInstanceProxy.mm2
-rw-r--r--WebKit/mac/Plugins/Hosted/WebHostedNetscapePluginView.mm10
-rw-r--r--WebKit/mac/Plugins/Hosted/WebKitPluginClient.defs2
-rw-r--r--WebKit/mac/Plugins/Hosted/WebKitPluginHostTypes.h6
-rw-r--r--WebKit/mac/Plugins/WebNetscapePluginView.mm9
-rw-r--r--WebKit/mac/WebCoreSupport/WebInspectorClient.mm6
-rw-r--r--WebKit/mac/WebKit.order3213
-rw-r--r--WebKit/mac/WebView/WebFrame.mm10
-rw-r--r--WebKit/mac/WebView/WebVideoFullscreenController.mm6
-rw-r--r--WebKit/mac/WebView/WebView.mm18
-rw-r--r--WebKit/mac/WebView/WebViewPrivate.h9
-rw-r--r--WebKit/qt/Api/headers.pri1
-rw-r--r--WebKit/qt/Api/qgraphicswebview.cpp352
-rw-r--r--WebKit/qt/Api/qwebdatabase.cpp10
-rw-r--r--WebKit/qt/Api/qwebelement.cpp20
-rw-r--r--WebKit/qt/Api/qwebframe.cpp42
-rw-r--r--WebKit/qt/Api/qwebhistoryinterface.cpp23
-rw-r--r--WebKit/qt/Api/qwebinspector.cpp45
-rw-r--r--WebKit/qt/Api/qwebkitglobal.h4
-rw-r--r--WebKit/qt/Api/qwebkitplatformplugin.h77
-rw-r--r--WebKit/qt/Api/qwebkitversion.cpp66
-rw-r--r--WebKit/qt/Api/qwebpage.cpp187
-rw-r--r--WebKit/qt/Api/qwebpluginfactory.cpp36
-rw-r--r--WebKit/qt/Api/qwebsecurityorigin.cpp24
-rw-r--r--WebKit/qt/Api/qwebsettings.cpp129
-rw-r--r--WebKit/qt/Api/qwebsettings.h2
-rw-r--r--WebKit/qt/Api/qwebview.cpp35
-rw-r--r--WebKit/qt/ChangeLog455
-rw-r--r--WebKit/qt/WebCoreSupport/ChromeClientQt.cpp17
-rw-r--r--WebKit/qt/WebCoreSupport/ChromeClientQt.h7
-rw-r--r--WebKit/qt/WebCoreSupport/DumpRenderTreeSupportQt.cpp137
-rw-r--r--WebKit/qt/WebCoreSupport/DumpRenderTreeSupportQt.h20
-rw-r--r--WebKit/qt/WebCoreSupport/EditorClientQt.cpp16
-rw-r--r--WebKit/qt/WebCoreSupport/EditorClientQt.h3
-rw-r--r--WebKit/qt/WebCoreSupport/FrameLoaderClientQt.cpp63
-rw-r--r--WebKit/qt/WebCoreSupport/FrameLoaderClientQt.h7
-rw-r--r--WebKit/qt/WebCoreSupport/InspectorClientQt.cpp4
-rw-r--r--WebKit/qt/WebCoreSupport/NotificationPresenterClientQt.cpp8
-rw-r--r--WebKit/qt/WebCoreSupport/NotificationPresenterClientQt.h2
-rw-r--r--WebKit/qt/WebCoreSupport/PageClientQt.cpp197
-rw-r--r--WebKit/qt/WebCoreSupport/PageClientQt.h135
-rw-r--r--WebKit/qt/WebCoreSupport/QtFallbackWebPopup.cpp4
-rw-r--r--WebKit/qt/WebCoreSupport/QtFallbackWebPopup.h4
-rw-r--r--WebKit/qt/WebCoreSupport/QtPlatformPlugin.cpp143
-rw-r--r--WebKit/qt/WebCoreSupport/QtPlatformPlugin.h64
-rw-r--r--WebKit/qt/docs/qtwebkit.qdoc109
-rw-r--r--WebKit/qt/docs/webkitsnippets/qtwebkit_qwebinspector_snippet.cpp2
-rw-r--r--WebKit/qt/docs/webkitsnippets/webelement/main.cpp56
-rw-r--r--WebKit/qt/symbian/eabi/QtWebKitu.def3
-rw-r--r--WebKit/qt/tests/qgraphicswebview/tst_qgraphicswebview.cpp8
-rw-r--r--WebKit/qt/tests/qwebpage/tst_qwebpage.cpp23
-rw-r--r--WebKit/win/ChangeLog76
-rw-r--r--WebKit/win/FullscreenVideoController.cpp11
-rw-r--r--WebKit/win/FullscreenVideoController.h8
-rwxr-xr-xWebKit/win/Interfaces/IWebFramePrivate.idl2
-rw-r--r--WebKit/win/Interfaces/IWebViewPrivate.idl4
-rw-r--r--WebKit/win/WebFrame.cpp36
-rw-r--r--WebKit/win/WebFrame.h5
-rw-r--r--WebKit/win/WebKit.vcproj/WebKit.sln1
-rw-r--r--WebKit/win/WebView.cpp35
-rw-r--r--WebKit/win/WebView.h9
-rw-r--r--WebKit/wx/ChangeLog10
-rw-r--r--WebKit/wx/WebView.cpp4
160 files changed, 6352 insertions, 2725 deletions
diff --git a/WebKit/CMakeLists.txt b/WebKit/CMakeLists.txt
new file mode 100644
index 0000000..5b0cebd
--- /dev/null
+++ b/WebKit/CMakeLists.txt
@@ -0,0 +1,63 @@
+SET(WebKit_INCLUDE_DIRECTORIES
+ "${WEBKIT_DIR}"
+ "${WEBCORE_DIR}"
+ "${WEBCORE_DIR}/bindings/js"
+ "${WEBCORE_DIR}/bridge"
+ "${WEBCORE_DIR}/bridge/jsc"
+ "${WEBCORE_DIR}/css"
+ "${WEBCORE_DIR}/dom"
+ "${WEBCORE_DIR}/editing"
+ "${WEBCORE_DIR}/history"
+ "${WEBCORE_DIR}/html"
+ "${WEBCORE_DIR}/inspector"
+ "${WEBCORE_DIR}/loader"
+ "${WEBCORE_DIR}/loader/icon"
+ "${WEBCORE_DIR}/page"
+ "${WEBCORE_DIR}/page/animation"
+ "${WEBCORE_DIR}/platform"
+ "${WEBCORE_DIR}/platform/animation"
+ "${WEBCORE_DIR}/platform/graphics"
+ "${WEBCORE_DIR}/platform/graphics/cairo"
+ "${WEBCORE_DIR}/platform/graphics/transforms"
+ "${WEBCORE_DIR}/platform/network"
+ "${WEBCORE_DIR}/platform/network/soup"
+ "${WEBCORE_DIR}/platform/sql"
+ "${WEBCORE_DIR}/platform/text"
+ "${WEBCORE_DIR}/plugins"
+ "${WEBCORE_DIR}/rendering"
+ "${WEBCORE_DIR}/rendering/style"
+ "${WEBCORE_DIR}/storage"
+ "${WEBCORE_DIR}/svg"
+ "${JAVASCRIPTCORE_DIR}"
+ "${JAVASCRIPTCORE_DIR}/ForwardingHeaders"
+ "${JAVASCRIPTCORE_DIR}/API"
+ "${JAVASCRIPTCORE_DIR}/assembler"
+ "${JAVASCRIPTCORE_DIR}/bytecode"
+ "${JAVASCRIPTCORE_DIR}/bytecompiler"
+ "${JAVASCRIPTCORE_DIR}/debugger"
+ "${JAVASCRIPTCORE_DIR}/interpreter"
+ "${JAVASCRIPTCORE_DIR}/jit"
+ "${JAVASCRIPTCORE_DIR}/parser"
+ "${JAVASCRIPTCORE_DIR}/profiler"
+ "${JAVASCRIPTCORE_DIR}/runtime"
+ "${JAVASCRIPTCORE_DIR}/wtf"
+ "${JAVASCRIPTCORE_DIR}/wtf/unicode"
+ "${DERIVED_SOURCES_DIR}"
+ "${CMAKE_BINARY_DIR}"
+)
+
+SET(WebKit_LIBRARIES
+ ${JavaScriptCore_LIBRARY_NAME}
+ ${WebCore_LIBRARY_NAME}
+)
+
+INCLUDE_IF_EXISTS(${WEBKIT_DIR}/CMakeLists${PORT}.txt)
+
+ADD_DEFINITIONS(-DBUILDING_WebKit)
+INCLUDE_DIRECTORIES(${WebKit_INCLUDE_DIRECTORIES})
+ADD_LIBRARY(${WebKit_LIBRARY_NAME} ${WebKit_LIBRARY_TYPE} ${WebKit_SOURCES})
+TARGET_LINK_LIBRARIES(${WebKit_LIBRARY_NAME} ${WebKit_LIBRARIES})
+ADD_TARGET_PROPERTIES(${WebKit_LIBRARY_NAME} LINK_FLAGS ${WebKit_LINK_FLAGS})
+
+INSTALL(TARGETS ${WebKit_LIBRARY_NAME} DESTINATION lib)
+
diff --git a/WebKit/CMakeListsEfl.txt b/WebKit/CMakeListsEfl.txt
new file mode 100644
index 0000000..046b613
--- /dev/null
+++ b/WebKit/CMakeListsEfl.txt
@@ -0,0 +1,108 @@
+INCLUDE(WebKitEfl)
+
+LIST(APPEND WebKit_LINK_FLAGS
+ ${ECORE_X_LDFLAGS}
+ ${EDJE_LDFLAGS}
+ ${EFLDEPS_LDFLAGS}
+ ${EVAS_LDFLAGS}
+)
+
+LIST(APPEND WebKit_INCLUDE_DIRECTORIES
+ "${WEBKIT_DIR}/efl/ewk"
+ "${WEBKIT_DIR}/efl/WebCoreSupport"
+ ${Cairo_INCLUDE_DIRS}
+ ${ECORE_X_INCLUDE_DIRS}
+ ${EDJE_INCLUDE_DIRS}
+ ${EFLDEPS_INCLUDE_DIRS}
+ ${EVAS_INCLUDE_DIRS}
+ ${Gdk_INCLUDE_DIRS}
+ ${Glib_INCLUDE_DIRS}
+ ${LIBSOUP2_INCLUDE_DIRS}
+ ${LIBXML2_INCLUDE_DIRS}
+ ${LIBXSLT_INCLUDE_DIRS}
+ ${SQLITE_INCLUDE_DIRS}
+)
+
+LIST(APPEND WebKit_SOURCES
+ efl/WebCoreSupport/ChromeClientEfl.cpp
+ efl/WebCoreSupport/ContextMenuClientEfl
+ efl/WebCoreSupport/DragClientEfl.cpp
+ efl/WebCoreSupport/EditorClientEfl.cpp
+ efl/WebCoreSupport/FrameLoaderClientEfl.cpp
+ efl/WebCoreSupport/InspectorClientEfl.cpp
+
+ efl/ewk/ewk_frame.cpp
+ efl/ewk/ewk_history.cpp
+ efl/ewk/ewk_main.cpp
+ efl/ewk/ewk_settings.cpp
+ efl/ewk/ewk_util.cpp
+ efl/ewk/ewk_view.cpp
+ efl/ewk/ewk_view_single.c
+)
+
+LIST(APPEND WebKit_LIBRARIES
+ ${Cairo_LIBRARIES}
+ ${ECORE_X_LIBRARIES}
+ ${EFLDEPS_LIBRARIES}
+ ${Freetype_LIBRARIES}
+ ${Gdk_LIBRARIES}
+ ${Glib_LIBRARIES}
+ ${Gtk_LIBRARIES}
+ ${LIBSOUP_LIBRARIES}
+ ${LIBXML2_LIBRARIES}
+ ${Pango_LIBRARIES}
+ ${SQLITE_LIBRARIES}
+)
+
+FILE(MAKE_DIRECTORY ${CMAKE_BINARY_DIR}/WebKit/efl/DefaultTheme)
+GENERATE_EDJ(
+ ${WEBKIT_DIR}/efl/DefaultTheme/default.edc
+ ${CMAKE_BINARY_DIR}/WebKit/efl/DefaultTheme/default.edj
+ "-id;${WEBKIT_DIR}/efl/DefaultTheme"
+)
+
+SET(EWebLauncher_SOURCES
+ efl/DefaultTheme/default.edj
+ efl/EWebLauncher/main.c
+)
+
+SET(EWebLauncher_LIBRARIES
+ ${JavaScriptCore_LIBRARY_NAME}
+ ${WebCore_LIBRARY_NAME}
+ ${WebKit_LIBRARY_NAME}
+ ${Cairo_LIBRARIES}
+ ${ECORE_X_LIBRARIES}
+ ${EDJE_LIBRARIES}
+ ${EFLDEPS_LIBRARIES}
+ ${EVAS_LIBRARIES}
+ ${Gdk_LIBRARIES}
+ ${Glib_LIBRARIES}
+ ${LIBSOUP2_LIBRARIES}
+ ${LIBXML2_LIBRARIES}
+ ${LIBXSLT_LIBRARIES}
+ ${SQLITE_LIBRARIES}
+)
+
+SET(EWebLauncher_LINK_FLAGS
+ ${ECORE_X_LDFLAGS}
+ ${EDJE_LDFLAGS}
+ ${EFLDEPS_LDFLAGS}
+ ${EVAS_LDFLAGS}
+)
+
+ADD_EXECUTABLE(../Programs/EWebLauncher ${EWebLauncher_SOURCES})
+TARGET_LINK_LIBRARIES(../Programs/EWebLauncher ${EWebLauncher_LIBRARIES})
+ADD_TARGET_PROPERTIES(../Programs/EWebLauncher LINK_FLAGS ${EWebLauncher_LINK_FLAGS})
+
+CONFIGURE_FILE(
+ efl/ewebkit.pc.in
+ ${CMAKE_BINARY_DIR}/WebKit/efl/ewebkit.pc
+ @ONLY)
+INSTALL(FILES ${CMAKE_BINARY_DIR}/WebKit/efl/ewebkit.pc
+ DESTINATION lib/pkgconfig)
+
+FILE(GLOB EWebKit_HEADERS "${CMAKE_CURRENT_SOURCE_DIR}/efl/ewk/*.h")
+LIST(REMOVE_ITEM EWebKit_HEADERS "${CMAKE_CURRENT_SOURCE_DIR}/efl/ewk/ewk_private.h")
+
+INSTALL(FILES ${EWebKit_HEADERS}
+ DESTINATION include/EWebKit)
diff --git a/WebKit/ChangeLog b/WebKit/ChangeLog
index 978e85e..ea021c1 100644
--- a/WebKit/ChangeLog
+++ b/WebKit/ChangeLog
@@ -1,3 +1,31 @@
+2010-05-15 Leandro Pereira <leandro@profusion.mobi>
+
+ Reviewed by Adam Treat.
+
+ [EFL] Add build system for the EFL port.
+ http://webkit.org/b/37945
+
+ * CMakeLists.txt: Added.
+ * CMakeListsEfl.txt: Added.
+
+2010-05-14 Lucas De Marchi <lucas.demarchi@profusion.mobi>
+
+ Reviewed by David Levin.
+
+ [EF] Include missing header.
+ http://webkit.org/b/38905
+
+ * efl/ewk/ewk_main.cpp: Include PageGroup.h
+
+2010-05-08 Leandro Pereira <leandro@profusion.mobi>
+
+ Reviewed by Laszlo Gombos.
+
+ [EFL] Only compile database stuff if ENABLE_DATABASE is set.
+ http://webkit.org/b/38777
+
+ * efl/WebCoreSupport/ChromeClientEfl.cpp:
+
2010-05-05 Dan Bernstein <mitz@apple.com>
Reviewed by Simon Fraser.
diff --git a/WebKit/chromium/ChangeLog b/WebKit/chromium/ChangeLog
index 68129b0..6efc8e5 100644
--- a/WebKit/chromium/ChangeLog
+++ b/WebKit/chromium/ChangeLog
@@ -1,3 +1,640 @@
+2010-05-16 Mike Belshe <mbelshe@chromium.org>
+
+ Reviewed by Dimitri Glazkov.
+
+ Add a flag to the ResourceResponse for tracking if a request was
+ fetched via the TLS/Next-Protocol-Negotiation mechanism.
+
+ Also cleaned up the style in ResourceResponse to group the flags
+ together (and alphabetically) and hopefully improve readability of
+ the file.
+
+ https://bugs.webkit.org/show_bug.cgi?id=39078
+
+ * public/WebURLResponse.h:
+ * src/WebURLResponse.cpp:
+ (WebKit::WebURLResponse::wasNpnNegotiated):
+ (WebKit::WebURLResponse::setWasNpnNegotiated):
+
+2010-05-16 Eric Seidel <eric@webkit.org>
+
+ Unreviewed, rolling out r59571.
+ http://trac.webkit.org/changeset/59571
+ https://bugs.webkit.org/show_bug.cgi?id=39054
+
+ Broke Cr Win, but we didn't notice immediately due to
+ https://bugs.webkit.org/show_bug.cgi?id=38926. It's possible
+ that this didn't actually break Cr Win, but rather that bug
+ 38926 necessitates a clean compile after this and sucessive
+ checkins only produced a partial recompile and thus failed to
+ build.
+
+ * DEPS:
+ * WebKit.gyp:
+ * features.gypi:
+
+2010-05-16 Sheriff Bot <webkit.review.bot@gmail.com>
+
+ Unreviewed, rolling out r59574.
+ http://trac.webkit.org/changeset/59574
+ https://bugs.webkit.org/show_bug.cgi?id=39176
+
+ Supposedly broke cr-win, but the errors seems somewhat
+ unrelated (Requested by abarth on #webkit).
+
+ * public/WebURLResponse.h:
+ * src/WebURLResponse.cpp:
+
+2010-05-16 Mike Belshe <mbelshe@chromium.org>
+
+ Reviewed by Dimitri Glazkov.
+
+ Add a flag to the ResourceResponse for tracking if a request was
+ fetched via the TLS/Next-Protocol-Negotiation mechanism.
+
+ Also cleaned up the style in ResourceResponse to group the flags
+ together (and alphabetically) and hopefully improve readability of
+ the file.
+
+ https://bugs.webkit.org/show_bug.cgi?id=39078
+
+ * public/WebURLResponse.h:
+ * src/WebURLResponse.cpp:
+ (WebKit::WebURLResponse::wasNpnNegotiated):
+ (WebKit::WebURLResponse::setWasNpnNegotiated):
+
+2010-05-16 Kent Tamura <tkent@chromium.org>
+
+ Reviewed by Dimitri Glazkov.
+
+ [DRT/Chromium] Fix repaint, WebGL, textarea tests
+ https://bugs.webkit.org/show_bug.cgi?id=39054
+
+ * DEPS: Update to Chromium r47248 to use a fix for CommandLine assertion
+ and textAreaResizeCorner.png
+ * WebKit.gyp: Add textAreaResizeCorner.png as a Mac resource
+ * features.gypi: Enable ENABLE_3D_CANVAS.
+
+2010-05-15 Darin Fisher <darin@chromium.org>
+
+ Reviewed by Adam Barth.
+
+ [chromium] Expose element accessor on WebPluginContainer
+ https://bugs.webkit.org/show_bug.cgi?id=39152
+
+ * public/WebPluginContainer.h:
+ * src/WebPluginContainerImpl.cpp:
+ (WebKit::WebPluginContainerImpl::element):
+ * src/WebPluginContainerImpl.h:
+
+2010-05-15 Jochen Eisinger <jochen@chromium.org>
+
+ Reviewed by Dmitry Titov.
+
+ Implement canEstablishDatabase call for workers.
+ https://bugs.webkit.org/show_bug.cgi?id=38742
+
+ * public/WebCommonWorkerClient.h:
+ * src/DatabaseObserver.cpp:
+ (WebCore::DatabaseObserver::canEstablishDatabase):
+ * src/WebWorkerBase.cpp:
+ (WebKit::WebWorkerBase::allowDatabase):
+ (WebKit::WebWorkerBase::allowDatabaseTask):
+ (WebKit::WebWorkerBase::AllowDatabaseMainThreadBridge::AllowDatabaseMainThreadBridge):
+ (WebKit::WebWorkerBase::AllowDatabaseMainThreadBridge::cancel):
+ (WebKit::WebWorkerBase::AllowDatabaseMainThreadBridge::result):
+ (WebKit::WebWorkerBase::AllowDatabaseMainThreadBridge::signalCompleted):
+ (WebKit::WebWorkerBase::AllowDatabaseMainThreadBridge::didComplete):
+ * src/WebWorkerBase.h:
+ * src/WebWorkerClientImpl.h:
+ (WebKit::WebWorkerClientImpl::allowDatabase):
+
+2010-05-15 Jay Civelli <jcivelli@chromium.org>
+
+ Reviewed by Darin Fisher.
+
+ [chromium] Adding a notification on WebViewClient when a new
+ node gets focused.
+ https://bugs.webkit.org/show_bug.cgi?id=38508
+
+ * public/WebViewClient.h:
+ (WebKit::WebViewClient::focusedNodeChanged):
+ * src/ChromeClientImpl.cpp:
+ (WebKit::ChromeClientImpl::focusedNodeChanged):
+
+2010-05-15 Evan Stade <estade@chromium.org>
+
+ Reviewed by Adam Barth.
+
+ [chromium] "Check spelling in this field" context menu item always checked
+ https://bugs.webkit.org/show_bug.cgi?id=39018
+
+ Initialize all POD members of WebContextMenuData in a default
+ constructor.
+
+ No tests because this code would need some major refactoring to unit
+ test, and AFAICT it's not testable via layout tests. See note at top
+ of getCustomMenuFromDefaultItems.
+
+ * public/WebContextMenuData.h:
+ (WebKit::WebContextMenuData::WebContextMenuData):
+ * src/ContextMenuClientImpl.cpp:
+ (WebKit::ContextMenuClientImpl::getCustomMenuFromDefaultItems):
+
+2010-05-14 Darin Fisher <darin@chromium.org>
+
+ Reviewed by Dimitri Glazkov.
+
+ [chromium] Remove temporary relative include paths
+ https://bugs.webkit.org/show_bug.cgi?id=38776
+
+ * public/WebPasswordAutocompleteListener.h:
+ * src/FrameLoaderClientImpl.h:
+ * src/PlatformMessagePortChannel.h:
+ * src/WebAnimationControllerImpl.h:
+ * src/WebBindings.cpp:
+ * src/WebDataSourceImpl.h:
+ * src/WebDevToolsAgentPrivate.h:
+ * src/WebFileChooserCompletionImpl.h:
+ * src/WebFrameImpl.h:
+ * src/WebInputEventConversion.h:
+ * src/WebPluginContainerImpl.h:
+ * src/WebPluginLoadObserver.h:
+ * src/WebPopupMenuImpl.h:
+ * src/WebSettingsImpl.h:
+ * src/WebViewImpl.h:
+ * src/WebWorkerClientImpl.h:
+ * src/WrappedResourceRequest.h:
+ * src/WrappedResourceResponse.h:
+
+2010-05-14 Anton Muhin <antonm@chromium.org>
+
+ Reviewed by Darin Fisher.
+
+ [Chromium] Consider implementing addOriginAccessWhitelistEntry method
+ https://bugs.webkit.org/show_bug.cgi?id=37578
+
+ Remove deprecated methods.
+
+ * public/WebSecurityPolicy.h:
+ * src/WebSecurityPolicy.cpp:
+
+2010-05-14 Kenneth Russell <kbr@google.com>
+
+ Reviewed by Darin Adler.
+
+ Rename WebGLArray types to TypedArray types
+ https://bugs.webkit.org/show_bug.cgi?id=39091
+
+ Extended functionality of do-webcore-rename script and used it to
+ rename the WebGLArray types to the TypedArray naming convention.
+ The only source files which were touched by hand, and which are
+ being manually reviewed, are:
+ WebCore/page/DOMWindow.idl
+ WebCore/bindings/generic/RuntimeEnabledFeatures.h (script's changes undone)
+ WebKit/WebCore/bindings/js/JSDOMWindowCustom.cpp
+ WebKit/WebCore/bindings/v8/custom/V8DOMWindowCustom.cpp
+ These only needed to be touched to update the aliases between the
+ WebGLArray and TypedArray names introduced in bug 39036. (It was
+ not feasible to have do-webcore-rename handle this as it would
+ introduce circular renamings.) These aliases will be removed in
+ roughly a month once existing WebGL content has been updated.
+
+ No new tests; covered under existing WebGL tests. Updated
+ constructed-objects-prototypes and prototype-inheritance-2 tests.
+ Ran all layout tests in Safari and all WebGL tests in Chromium.
+
+ * src/GraphicsContext3D.cpp:
+ (WebCore::GraphicsContext3DInternal::bufferData):
+ (WebCore::GraphicsContext3DInternal::bufferSubData):
+
+2010-05-14 Jochen Eisinger <jochen@chromium.org>
+
+ Reviewed by Eric Seidel.
+
+ Make ImageDiff depend on webkit (again).
+ https://bugs.webkit.org/show_bug.cgi?id=39000
+
+ * WebKit.gyp:
+
+2010-05-14 James Simonsen <simonjam+webkit@google.com>
+
+ Reviewed by Darin Fisher.
+
+ [chromium] Expose volume through WebMediaPlayerClient
+ https://bugs.webkit.org/show_bug.cgi?id=38947
+
+ * public/WebMediaPlayerClient.h:
+ * src/WebMediaPlayerClientImpl.cpp:
+ (WebKit::WebMediaPlayerClientImpl::volume):
+ * src/WebMediaPlayerClientImpl.h:
+
+2010-05-14 Tony Gentilcore <tonyg@chromium.org>
+
+ Reviewed by Darin Fisher.
+
+ [chromium] Update chromium port to send/receive cached metadata
+ https://bugs.webkit.org/show_bug.cgi?id=38665
+
+ * public/WebKitClient.h:
+ (WebKit::WebKitClient::cacheMetadata):
+ * public/WebURLLoaderClient.h:
+ (WebKit::WebURLLoaderClient::didReceiveCachedMetadata):
+ * public/WebURLResponse.h:
+ * src/ChromiumBridge.cpp:
+ (WebCore::ChromiumBridge::cacheMetadata):
+ * src/ResourceHandle.cpp:
+ (WebCore::ResourceHandleInternal::didReceiveCachedMetadata):
+ (WebCore::ResourceHandle::cacheMetadata):
+ * src/WebURLResponse.cpp:
+ (WebKit::WebURLResponse::responseTime):
+ (WebKit::WebURLResponse::setResponseTime):
+
+2010-05-13 Tony Chang <tony@chromium.org>
+
+ Reviewed by Kent Tamura.
+
+ [chromium] enable DRT build in chromium (for the last time)
+ https://bugs.webkit.org/show_bug.cgi?id=39109
+
+ * WebKit.gyp:
+
+2010-05-13 Pavel Feldman <pfeldman@chromium.org>
+
+ Reviewed by Yury Semikhatsky.
+
+ Web Inspector: main inspector toolbar takes noticeable time to expand.
+
+ https://bugs.webkit.org/show_bug.cgi?id=39013
+
+ * src/js/DevTools.js:
+ (devtools.domContentLoaded):
+
+2010-05-12 Hans Wennborg <hans@chromium.org>
+
+ Reviewed by Jeremy Orlow.
+
+ [Chromium] Remove transitional functions from WebStorageNamespace and WebViewClient.
+ https://bugs.webkit.org/show_bug.cgi?id=38985
+
+ These functions are no longer called as of Chromium revision 47020.
+ This is part of resolving http://crbug.com/42740
+
+ * public/WebStorageNamespace.h:
+ * public/WebViewClient.h:
+ (WebKit::WebViewClient::createSessionStorageNamespace):
+
+2010-05-12 Tony Chang <tony@chromium.org>
+
+ Reviewed by Kent Tamura.
+
+ [chromium] disable DRT in chromium again
+ https://bugs.webkit.org/show_bug.cgi?id=39049
+
+ * WebKit.gyp:
+
+2010-05-12 John Abd-El-Malek <jam@chromium.org>
+
+ Reviewed by Darin Fisher.
+
+ [chromium] Disable WebScrollbarImpl's scrollbar if it's not needed
+ https://bugs.webkit.org/show_bug.cgi?id=39025
+
+ * src/WebScrollbarImpl.cpp:
+ (WebKit::WebScrollbarImpl::setLocation):
+ (WebKit::WebScrollbarImpl::setDocumentSize):
+
+2010-05-12 Dumitru Daniliuc <dumi@chromium.org>
+
+ Reviewed by Dimitri Glazkov.
+
+ Removing the unnecessary dirfd parameter.
+ https://bugs.webkit.org/show_bug.cgi?id=38869
+
+ * public/WebKitClient.h:
+ (WebKit::WebKitClient::databaseOpenFile):
+ * src/ChromiumBridge.cpp:
+ (WebCore::ChromiumBridge::databaseOpenFile):
+
+2010-05-12 Jeremy Orlow <jorlow@chromium.org>
+
+ Reviewed by Steve Block.
+
+ [Chromium] Pass the origin parameter for WebIndexedDatabase::open
+ https://bugs.webkit.org/show_bug.cgi?id=38983
+
+ * public/WebIndexedDatabase.h:
+ * src/IndexedDatabaseProxy.cpp:
+ (WebCore::IndexedDatabaseProxy::open):
+ * src/WebIndexedDatabaseImpl.cpp:
+ (WebKit::WebIndexedDatabaseImpl::open):
+ * src/WebIndexedDatabaseImpl.h:
+
+2010-05-10 yael aharon <yael.aharon@nokia.com>
+
+ Reviewed by Darin Adler.
+
+ Support control attribute of HTMLLabelElement
+ https://bugs.webkit.org/show_bug.cgi?id=38688
+
+ Renamed HTMLLabelElement::correspondingControl to HTMLLabelElement::control
+
+ * src/WebLabelElement.cpp:
+ (WebKit::WebLabelElement::correspondingControl):
+
+2010-05-12 MORITA Hajime <morrita@google.com>
+
+ Reviewed by Kent Tamura.
+
+ [Chromium] Support HTML5 <progress> element on Windows.
+ https://bugs.webkit.org/show_bug.cgi?id=37308
+
+ Extended ChromiumBridge to handle progress bar painting,
+ and added delegations to it.
+
+ No new tests. Test cases should be shared with existing ones for
+ progress element. Expectaions will be added after PROGRESS_TAG is
+ enabled on Chromium tree.
+
+ * public/WebThemeEngine.h:
+ (WebKit::WebThemeEngine::paintProgressBar):
+ * src/ChromiumBridge.cpp:
+ (WebCore::ChromiumBridge::paintProgressBar):
+
+2010-05-12 Marcus Bulach <bulach@chromium.org>
+
+ Reviewed by Steve Block.
+
+ Attaches the geolocation bridge later on startUpdating().
+ This prevents a page requesting permission when it has just accessed navigator.geolocation (without calling navigator.geolocation.getCurrentPosition/watchPosition).
+ Note: when Geolocation::haveSuitableCachedPosition(), WebGeolocationServiceBridgeImpl::startUpdating() is not called,
+ so we attach the bridge if needed at requestGeolocationPermissionForFrame().
+ https://bugs.webkit.org/show_bug.cgi?id=38323
+ http://crbug.com/42789
+
+ * src/ChromeClientImpl.cpp:
+ (WebKit::ChromeClientImpl::requestGeolocationPermissionForFrame):
+ * src/WebGeolocationServiceBridgeImpl.cpp:
+ (WebKit::WebGeolocationServiceBridgeImpl::attachBridgeIfNeeded):
+ (WebKit::WebGeolocationServiceBridgeImpl::setLastPosition):
+
+2010-05-12 Tony Chang <tony@chromium.org>
+
+ Reviewed by Kent Tamura.
+
+ [chromium] add DRT back to the chromium build
+ https://bugs.webkit.org/show_bug.cgi?id=38978
+
+ * WebKit.gyp:
+
+2010-05-11 Kent Tamura <tkent@chromium.org>
+
+ Reviewed by Dimitri Glazkov.
+
+ [DRT/Chromium] Apply recent changes of test_shell to DRT
+ https://bugs.webkit.org/show_bug.cgi?id=38895
+
+ * DEPS: Update Chromium revision to use the recent webkit_support change.
+ * WebKit.gyp: Add JavaScriptCore/wtf to 'include' section.
+ * src/WebGraphicsContext3D.cpp:
+ Remove ENABLE(3D_CANVAS) to provide an empty implementation of
+ WebGraphicsContext3D::createDefault().
+
+2010-05-11 Avi Drissman <avi@chromium.org>
+
+ Reviewed by Darin Fisher.
+
+ [Chromium] Pipe RTL info into WebPopupMenuInfo
+ https://bugs.webkit.org/show_bug.cgi?id=38749
+
+ * public/WebPopupMenuInfo.h:
+ * src/ChromeClientImpl.cpp:
+ (WebKit::ChromeClientImpl::getPopupMenuInfo):
+
+2010-05-11 David Holloway <dhollowa@chromium.org>
+
+ Reviewed by Darin Fisher.
+
+ [chromium] Add size method to WebInputElement class, providing same data
+ as HTMLInputElement::size(). During form AutoFill Chromium needs to
+ access the input element's size attribute in aid of form matching and
+ filling heuristics.
+
+ https://bugs.webkit.org/show_bug.cgi?id=38825
+
+ * public/WebInputElement.h:
+ * src/WebInputElement.cpp:
+ (WebKit::WebInputElement::size):
+
+2010-05-11 Nate Chapin <japhet@chromium.org>
+
+ Reviewed by Adam Barth.
+
+ Crash fix in WebPageSerializerImpl::serialize().
+
+ https://bugs.webkit.org/show_bug.cgi?id=38543
+
+ The relevant test is a test_shell_test in src.chromium.org, because neither
+ DRT nor the Chromium webkit unit tests can currently cover the serializer
+ functionality.
+
+ * src/WebPageSerializerImpl.cpp:
+ (WebKit::WebPageSerializerImpl::serialize): Check each frame's url before using it,
+ since they are not guaranteed to be valid (e.g., if the frame was treated as a download).
+
+2010-05-11 Jian Li <jianli@chromium.org>
+
+ Reviewed by Dmitry Titov.
+
+ Expose FileReader interface.
+ https://bugs.webkit.org/show_bug.cgi?id=38609
+
+ * features.gypi: turn on building FileReader for Chromium.
+
+2010-05-10 Tony Chang <tony@chromium.org>
+
+ Reviewed by Kent Tamura.
+
+ [chromium] don't build DRT in chromium checkouts due to a circular gyp dependency
+ https://bugs.webkit.org/show_bug.cgi?id=38889
+
+ * WebKit.gyp:
+
+2010-05-10 John Abd-El-Malek <jam@chromium.org>
+
+ Reviewed by Darin Fisher.
+
+ [chromium] Add WebKitScrollbar interface to allow Chromium code to reuse the scrollbar code
+ https://bugs.webkit.org/show_bug.cgi?id=38854
+
+ * public/WebScrollbar.h: Added.
+ (WebKit::WebScrollbar::):
+ (WebKit::WebScrollbar::~WebScrollbar):
+ * public/WebScrollbarClient.h: Added.
+ * public/WebThemeEngine.h:
+ * src/AssertMatchingEnums.cpp:
+ * src/WebScrollbarImpl.cpp: Added.
+ (WebKit::WebScrollbar::create):
+ (WebKit::WebScrollbar::defaultThickness):
+ (WebKit::WebScrollbarImpl::WebScrollbarImpl):
+ (WebKit::WebScrollbarImpl::~WebScrollbarImpl):
+ (WebKit::WebScrollbarImpl::setLocation):
+ (WebKit::WebScrollbarImpl::value):
+ (WebKit::WebScrollbarImpl::setValue):
+ (WebKit::WebScrollbarImpl::setDocumentSize):
+ (WebKit::WebScrollbarImpl::scroll):
+ (WebKit::WebScrollbarImpl::paint):
+ (WebKit::WebScrollbarImpl::handleInputEvent):
+ (WebKit::WebScrollbarImpl::onMouseDown):
+ (WebKit::WebScrollbarImpl::onMouseUp):
+ (WebKit::WebScrollbarImpl::onMouseMove):
+ (WebKit::WebScrollbarImpl::onMouseLeave):
+ (WebKit::WebScrollbarImpl::onMouseWheel):
+ (WebKit::WebScrollbarImpl::onKeyDown):
+ (WebKit::WebScrollbarImpl::valueChanged):
+ (WebKit::WebScrollbarImpl::invalidateScrollbarRect):
+ (WebKit::WebScrollbarImpl::isActive):
+ (WebKit::WebScrollbarImpl::scrollbarCornerPresent):
+ (WebKit::WebScrollbarImpl::getTickmarks):
+ * src/WebScrollbarImpl.h: Added.
+ * src/WebViewImpl.cpp:
+ (WebKit::WebViewImpl::scrollViewWithKeyboard):
+ (WebKit::WebViewImpl::mapKeyCodeForScroll):
+ * src/WebViewImpl.h:
+
+2010-05-10 Tony Gentilcore <tonyg@chromium.org>
+
+ Reviewed by Adam Barth.
+
+ Provide mechanism to cache metadata for a resource
+ https://bugs.webkit.org/show_bug.cgi?id=37874
+
+ * src/ResourceHandle.cpp:
+ (WebCore::ResourceHandle::cacheMetadata):
+
+2010-05-10 Hans Wennborg <hans@chromium.org>
+
+ Reviewed by Jeremy Orlow.
+
+ [Chromium] Add quota parameter to WebViewClient::createSessionStorageNamespace()
+ https://bugs.webkit.org/show_bug.cgi?id=38750
+
+ Put a per-origin quota on session storage since it is using memory in
+ the browser process, and should not be allowed to grow arbitrarily
+ large. See also http://trac.webkit.org/changeset/58828.
+
+ * public/WebStorageNamespace.h:
+ * public/WebViewClient.h:
+ (WebKit::WebViewClient::createSessionStorageNamespace):
+ * src/StorageNamespaceProxy.cpp:
+ (WebCore::StorageNamespace::sessionStorageNamespace):
+
+
+2010-05-10 Jeremy Orlow <jorlow@chromium.org>
+
+ Reviewed by Nate Chapin.
+
+ Change IndexedDB to use events instead of callbacks
+ https://bugs.webkit.org/show_bug.cgi?id=38594
+
+ Change the glue here to match the changes I made in WebCore.
+
+ * WebKit.gyp:
+ * public/WebIDBCallbacks.h:
+ * public/WebIndexedDatabase.h:
+ * src/IDBCallbacksProxy.cpp: Added.
+ (WebCore::IDBCallbacksProxy::IDBCallbacksProxy):
+ (WebCore::IDBCallbacksProxy::~IDBCallbacksProxy):
+ (WebCore::IDBCallbacksProxy::onError):
+ (WebCore::IDBCallbacksProxy::onSuccess):
+ * src/IDBCallbacksProxy.h:
+ * src/IndexedDatabaseProxy.cpp:
+ (WebCore::IndexedDatabaseProxy::open):
+ * src/IndexedDatabaseProxy.h:
+ * src/WebIndexedDatabaseImpl.cpp:
+ (WebKit::WebIndexedDatabaseImpl::open):
+ * src/WebIndexedDatabaseImpl.h:
+
+2010-05-08 Jens Alfke <snej@chromium.org>
+
+ Reviewed by Darin Fisher.
+
+ [chromium] WebFrame::registerPasswordListener shouldn't assert on duplicate listener.
+ https://bugs.webkit.org/show_bug.cgi?id=38765
+
+ * public/WebFrame.h:
+ (WebKit::WebFrameImpl::registerPasswordListener): Changed return type to bool. Updated comment.
+ * src/WebFrameImpl.cpp:
+ (WebKit::WebFrameImpl::registerPasswordListener): Return false instead of asserting.
+ * src/WebFrameImpl.h:
+ (WebKit::WebFrameImpl::registerPasswordListener): Changed return type to bool.
+
+2010-05-08 Michael Nordman <michaeln@google.com>
+
+ Reviewed by Dmitry Titov.
+
+ Add an additional parameter to the WebSharedWorker::startWorkerContext method
+ to indicate which appcache the shared worker script resource was loaded from,
+ and provide that value when calling out to chrome via this interface.
+ https://bugs.webkit.org/show_bug.cgi?id=38605
+
+ I'm keeping the old method around until patches can land in both repositories
+ that make the old method obsolete and unneeded. There's a FIXME for that.
+
+ Also somewhat related but independent change to propagate the runtime enabled
+ flag thru to the page settings instance used by the 'shadow page'.
+
+ * public/WebSharedWorker.h: Add the new param (but keep the old interface around for now too)
+ (WebKit::WebSharedWorker::startWorkerContext):
+ * src/SharedWorkerRepository.cpp: Provide the value when calling out to chrome.
+ (WebCore::SharedWorkerScriptLoader::notifyFinished):
+ * src/WebSharedWorkerImpl.cpp:
+ (WebKit::WebSharedWorkerImpl::startWorkerContext):
+ * src/WebSharedWorkerImpl.h:
+ * src/WebWorkerBase.cpp: Propagate runtime enabled flag thru to the page settings.
+ (WebKit::WebWorkerBase::initializeLoader):
+
+2010-05-07 Darin Fisher <darin@chromium.org>
+
+ Fix build bustage. Update to Chromium code that avoids a bad
+ dependency from net/ on chrome/.
+
+ * DEPS:
+
+2010-05-07 Darin Fisher <darin@chromium.org>
+
+ Fix build bustage. Update to Chromium code that no longer uses
+ deprecated methods.
+
+ * DEPS:
+
+2010-05-07 Darin Fisher <darin@chromium.org>
+
+ Reviewed by Dimitri Glazkov.
+
+ [chromium] clear out more deprecated methods that are no longer used
+ https://bugs.webkit.org/show_bug.cgi?id=38702
+
+ * public/WebFrame.h:
+ * public/WebNode.h:
+ * src/WebFrameImpl.cpp:
+ * src/WebFrameImpl.h:
+ * src/WebNode.cpp:
+
+2010-05-07 Finnur Thorarinsson <finnur.webkit@gmail.com>
+
+ Reviewed by Dimitri Glazkov.
+
+ [chromium]: Fixing Find in page crash on sites.google.com
+ https://bugs.webkit.org/show_bug.cgi?id=38591
+
+ setMarkerActive should not try to set a collapsed marker as
+ active. This can happen when you Edit a Sites page after doing
+ a Find operation and then you press FindNext.
+
+ * src/WebFrameImpl.cpp:
+ (WebKit::WebFrameImpl::setMarkerActive):
+
2010-05-06 Kent Tamura <tkent@chromium.org>
Reviewed by Dimitri Glazkov.
diff --git a/WebKit/chromium/DEPS b/WebKit/chromium/DEPS
index 07401d7..9e34fe4 100644
--- a/WebKit/chromium/DEPS
+++ b/WebKit/chromium/DEPS
@@ -32,7 +32,7 @@
vars = {
'chromium_svn': 'http://src.chromium.org/svn/trunk/src',
- 'chromium_rev': '45932',
+ 'chromium_rev': '46899',
'pthreads-win32_rev': '26716',
}
@@ -132,6 +132,9 @@ deps = {
'third_party/npapi':
Var('chromium_svn')+'/third_party/npapi@'+Var('chromium_rev'),
+ 'third_party/ppapi':
+ From('chromium_deps', 'src/third_party/ppapi'),
+
'third_party/ots':
From('chromium_deps', 'src/third_party/ots'),
diff --git a/WebKit/chromium/WebKit.gyp b/WebKit/chromium/WebKit.gyp
index b3a926e..8ac5a90 100644
--- a/WebKit/chromium/WebKit.gyp
+++ b/WebKit/chromium/WebKit.gyp
@@ -31,6 +31,7 @@
{
'includes': [
'features.gypi',
+ '../../WebKitTools/DumpRenderTree/DumpRenderTree.gypi',
],
'variables': {
'webkit_target_type': 'static_library',
@@ -45,11 +46,6 @@
# WebKit is checked out in src/chromium/third_party/WebKit
'chromium_src_dir': '../../../..',
}],
- # We can't turn on warnings on Windows and Linux until we upstream the
- # WebKit API.
- ['OS=="mac"', {
- 'chromium_code': 1,
- }],
],
},
'targets': [
@@ -180,6 +176,8 @@
'public/WebRect.h',
'public/WebRegularExpression.h',
'public/WebRuntimeFeatures.h',
+ 'public/WebScrollbar.h',
+ 'public/WebScrollbarClient.h',
'public/WebScreenInfo.h',
'public/WebScriptController.h',
'public/WebScriptSource.h',
@@ -261,6 +259,7 @@
'src/gtk/WebFontInfo.cpp',
'src/gtk/WebFontInfo.h',
'src/gtk/WebInputEventFactory.cpp',
+ 'src/IDBCallbacksProxy.cpp',
'src/IDBCallbacksProxy.h',
'src/IDBDatabaseProxy.cpp',
'src/IDBDatabaseProxy.h',
@@ -382,6 +381,8 @@
'src/WebRegularExpression.cpp',
'src/WebRuntimeFeatures.cpp',
'src/WebScriptController.cpp',
+ 'src/WebScrollbarImpl.cpp',
+ 'src/WebScrollbarImpl.h',
'src/WebSearchableFormData.cpp',
'src/WebSecurityOrigin.cpp',
'src/WebSecurityPolicy.cpp',
@@ -443,6 +444,11 @@
'sources/': [
['exclude', 'Skia\\.cpp$'],
],
+ 'variables': {
+ # FIXME: Turn on warnings on other platforms and for
+ # other targets.
+ 'chromium_code': 1,
+ }
}, { # else: OS!="mac"
'sources/': [
['exclude', '/mac/'],
@@ -526,7 +532,119 @@
}],
],
},
+ {
+ 'target_name': 'ImageDiff',
+ 'type': 'executable',
+ 'dependencies': [
+ 'webkit',
+ '../../JavaScriptCore/JavaScriptCore.gyp/JavaScriptCore.gyp:wtf',
+ '<(chromium_src_dir)/gfx/gfx.gyp:gfx',
+ ],
+ 'include_dirs': [
+ '../../JavaScriptCore',
+ '<(DEPTH)',
+ ],
+ 'sources': [
+ '../../WebKitTools/DumpRenderTree/chromium/ImageDiff.cpp',
+ ],
+ },
+ {
+ 'target_name': 'DumpRenderTree',
+ 'type': 'executable',
+ 'mac_bundle': 1,
+ 'dependencies': [
+ 'webkit',
+ '../../JavaScriptCore/JavaScriptCore.gyp/JavaScriptCore.gyp:wtf_config',
+ '<(chromium_src_dir)/third_party/icu/icu.gyp:icuuc',
+ '<(chromium_src_dir)/webkit/support/webkit_support.gyp:webkit_support',
+ ],
+ 'include_dirs': [
+ '.',
+ '../../JavaScriptCore',
+ '../../JavaScriptCore/wtf', # wtf/text/*.h refers headers in wtf/ without wtf/.
+ '<(DEPTH)',
+ ],
+ 'defines': [
+ # Technically not a unit test but require functions available only to
+ # unit tests.
+ 'UNIT_TEST',
+ ],
+ 'sources': [
+ '<@(drt_files)',
+ ],
+ 'conditions': [
+ ['OS=="mac"', {
+ 'dependencies': ['LayoutTestHelper'],
+
+ 'mac_bundle_resources': [
+ '../../WebKitTools/DumpRenderTree/qt/fonts/AHEM____.TTF',
+ '../../WebKitTools/DumpRenderTree/fonts/WebKitWeightWatcher100.ttf',
+ '../../WebKitTools/DumpRenderTree/fonts/WebKitWeightWatcher200.ttf',
+ '../../WebKitTools/DumpRenderTree/fonts/WebKitWeightWatcher300.ttf',
+ '../../WebKitTools/DumpRenderTree/fonts/WebKitWeightWatcher400.ttf',
+ '../../WebKitTools/DumpRenderTree/fonts/WebKitWeightWatcher500.ttf',
+ '../../WebKitTools/DumpRenderTree/fonts/WebKitWeightWatcher600.ttf',
+ '../../WebKitTools/DumpRenderTree/fonts/WebKitWeightWatcher700.ttf',
+ '../../WebKitTools/DumpRenderTree/fonts/WebKitWeightWatcher800.ttf',
+ '../../WebKitTools/DumpRenderTree/fonts/WebKitWeightWatcher900.ttf',
+ ],
+ 'actions': [
+ {
+ 'action_name': 'repack_locale',
+ 'variables': {
+ 'repack_path': '<(chromium_src_dir)/tools/data_pack/repack.py',
+ 'pak_inputs': [
+ '<(SHARED_INTERMEDIATE_DIR)/webkit/webkit_chromium_resources.pak',
+ '<(SHARED_INTERMEDIATE_DIR)/webkit/webkit_strings_en-US.pak',
+ '<(SHARED_INTERMEDIATE_DIR)/webkit/webkit_resources.pak',
+ ]},
+ 'inputs': [
+ '<(repack_path)',
+ '<@(pak_inputs)',
+ ],
+ 'outputs': [
+ '<(INTERMEDIATE_DIR)/repack/DumpRenderTree.pak',
+ ],
+ 'action': ['python', '<(repack_path)', '<@(_outputs)', '<@(pak_inputs)'],
+ 'process_outputs_as_mac_bundle_resources': 1,
+ },
+ ], # actions
+ }],
+ ['OS!="linux" and OS!="freebsd" and OS!="openbsd"', {
+ 'sources/': [
+ ['exclude', '(Gtk|Linux)\\.cpp$']
+ ]
+ }],
+ ['OS!="win"', {
+ 'sources/': [
+ ['exclude', 'Win\\.cpp$'],
+ ]
+ }],
+ ['OS!="mac"', {
+ 'sources/': [
+ # .mm is already excluded by common.gypi
+ ['exclude', 'Mac\\.cpp$'],
+ ]
+ }],
+ ],
+ },
], # targets
+ 'conditions': [
+ ['OS=="mac"', {
+ 'targets': [
+ {
+ 'target_name': 'LayoutTestHelper',
+ 'type': 'executable',
+ 'sources': ['../../WebKitTools/DumpRenderTree/chromium/LayoutTestHelper.mm'],
+ 'link_settings': {
+ 'libraries': [
+ '$(SDKROOT)/System/Library/Frameworks/AppKit.framework',
+ ],
+ },
+ },
+ ],
+ }],
+ ], # conditions
}
# Local Variables:
diff --git a/WebKit/chromium/features.gypi b/WebKit/chromium/features.gypi
index 7146685..87a6e09 100644
--- a/WebKit/chromium/features.gypi
+++ b/WebKit/chromium/features.gypi
@@ -47,7 +47,7 @@
'ENABLE_OFFLINE_WEB_APPLICATIONS=1',
'ENABLE_DASHBOARD_SUPPORT=0',
'ENABLE_DOM_STORAGE=1',
- 'ENABLE_FILE_READER=0',
+ 'ENABLE_FILE_READER=1',
'ENABLE_FILE_WRITER=0',
'ENABLE_GEOLOCATION=1',
'ENABLE_JAVASCRIPT_DEBUGGER=1',
diff --git a/WebKit/chromium/gyp_webkit b/WebKit/chromium/gyp_webkit
index 812ed27..1ca6133 100755
--- a/WebKit/chromium/gyp_webkit
+++ b/WebKit/chromium/gyp_webkit
@@ -91,8 +91,7 @@ if __name__ == '__main__':
'--depth=./',
# gyp files to execute.
- 'WebKit.gyp',
- '../../WebKitTools/DumpRenderTree/DumpRenderTree.gyp/DumpRenderTree.gyp'])
+ 'WebKit.gyp'])
print 'Updating webkit projects from gyp files...'
sys.stdout.flush()
diff --git a/WebKit/chromium/public/WebCommonWorkerClient.h b/WebKit/chromium/public/WebCommonWorkerClient.h
index 13603cb..cea6471 100644
--- a/WebKit/chromium/public/WebCommonWorkerClient.h
+++ b/WebKit/chromium/public/WebCommonWorkerClient.h
@@ -35,6 +35,7 @@ namespace WebKit {
class WebApplicationCacheHost;
class WebApplicationCacheHostClient;
+class WebFrame;
class WebNotificationPresenter;
class WebString;
class WebWorker;
@@ -79,6 +80,9 @@ public:
// Called on the main webkit thread in the worker process during initialization.
virtual WebApplicationCacheHost* createApplicationCacheHost(WebApplicationCacheHostClient*) = 0;
+ // Called on the main webkit thread before opening a web database.
+ virtual bool allowDatabase(WebFrame*, const WebString& name, const WebString& displayName, unsigned long estimatedSize) = 0;
+
protected:
~WebCommonWorkerClient() { }
};
diff --git a/WebKit/chromium/public/WebContextMenuData.h b/WebKit/chromium/public/WebContextMenuData.h
index 25036d4..8ed1f1b 100644
--- a/WebKit/chromium/public/WebContextMenuData.h
+++ b/WebKit/chromium/public/WebContextMenuData.h
@@ -134,6 +134,17 @@ struct WebContextMenuData {
// Custom context menu items provided by the WebCore internals.
WebVector<WebMenuItemInfo> customItems;
+
+ WebContextMenuData()
+ : mediaType(MediaTypeNone)
+ , isImageBlocked(false)
+ , mediaFlags(MediaNone)
+ , isSpellCheckingEnabled(false)
+ , isEditable(false)
+ , writingDirectionDefault(CheckableMenuItemDisabled)
+ , writingDirectionLeftToRight(CheckableMenuItemEnabled)
+ , writingDirectionRightToLeft(CheckableMenuItemEnabled)
+ , editFlags(0) { }
};
} // namespace WebKit
diff --git a/WebKit/chromium/public/WebFrame.h b/WebKit/chromium/public/WebFrame.h
index f112446..772db75 100644
--- a/WebKit/chromium/public/WebFrame.h
+++ b/WebKit/chromium/public/WebFrame.h
@@ -462,21 +462,16 @@ public:
// Registers a listener for the specified user name input element. The
// listener will receive notifications for blur and when autocomplete
// should be triggered.
- // The WebFrame becomes the owner of the passed listener.
- virtual void registerPasswordListener(
+ // An element can have only one listener. If a listener already exists,
+ // this method returns false and does not add the new one.
+ // Either way, the WebFrame becomes the owner of the passed listener.
+ virtual bool registerPasswordListener(
WebInputElement,
WebPasswordAutocompleteListener*) = 0;
// Utility -------------------------------------------------------------
- // Given a relative URL, returns an absolute URL by resolving the URL
- // relative to the base URL of the frame's document. This uses the
- // same algorithm that WebKit uses to resolve hyperlinks found in a
- // HTML document.
- // Deprecated. Use document().completeURL() instead.
- virtual WebURL completeURL(const WebString&) const = 0;
-
// Returns the contents of this frame as a string. If the text is
// longer than maxChars, it will be clipped to that length. WARNING:
// This function may be slow depending on the number of characters
diff --git a/WebKit/chromium/public/WebIDBCallbacks.h b/WebKit/chromium/public/WebIDBCallbacks.h
index 9e85aa8..610f7d4 100644
--- a/WebKit/chromium/public/WebIDBCallbacks.h
+++ b/WebKit/chromium/public/WebIDBCallbacks.h
@@ -33,22 +33,19 @@
namespace WebKit {
+class WebIDBDatabase;
class WebIDBDatabaseError;
+class WebSerializedScriptValue;
-// Every IndexedDB method takes in a pair of callbacks for error/success which
-// implement this class. Either 0 or 1 of these methods will be called and the
-// callback class may be deleted any time after the callback is called.
-template <typename ResultType>
class WebIDBCallbacks {
public:
virtual ~WebIDBCallbacks() { }
- // If the method was a success, this method is called with the result. The
- // result is a pointer that the callback takes ownership of.
- virtual void onSuccess(ResultType*) = 0;
-
- // Called in the event of an error.
+ // For classes that follow the PImpl pattern, pass a const reference.
+ // For the rest, pass ownership to the callee via a pointer.
virtual void onError(const WebIDBDatabaseError&) = 0;
+ virtual void onSuccess(WebIDBDatabase*) = 0;
+ virtual void onSuccess(const WebSerializedScriptValue&) = 0;
};
} // namespace WebKit
diff --git a/WebKit/chromium/public/WebIndexedDatabase.h b/WebKit/chromium/public/WebIndexedDatabase.h
index bb75170..8861456 100644
--- a/WebKit/chromium/public/WebIndexedDatabase.h
+++ b/WebKit/chromium/public/WebIndexedDatabase.h
@@ -47,7 +47,8 @@ public:
virtual ~WebIndexedDatabase() { }
- virtual void open(const WebString& name, const WebString& description, bool modifyDatabase, WebIDBCallbacks<WebIDBDatabase>*, WebFrame*, int& exceptionCode) = 0;
+ // The WebKit implementation of open ignores the WebFrame* parameter.
+ virtual void open(const WebString& name, const WebString& description, bool modifyDatabase, WebIDBCallbacks*, const WebString& origin, WebFrame*, int& exceptionCode) = 0;
};
} // namespace WebKit
diff --git a/WebKit/chromium/public/WebInputElement.h b/WebKit/chromium/public/WebInputElement.h
index a7a71b0..0de96a7 100644
--- a/WebKit/chromium/public/WebInputElement.h
+++ b/WebKit/chromium/public/WebInputElement.h
@@ -85,6 +85,7 @@ namespace WebKit {
WEBKIT_API int maxLength() const;
WEBKIT_API bool isActivatedSubmit() const;
WEBKIT_API void setActivatedSubmit(bool);
+ WEBKIT_API int size() const;
WEBKIT_API void setValue(const WebString& value);
WEBKIT_API WebString value() const;
WEBKIT_API void setAutofilled(bool);
diff --git a/WebKit/chromium/public/WebKitClient.h b/WebKit/chromium/public/WebKitClient.h
index 97d25a8..584679d 100644
--- a/WebKit/chromium/public/WebKitClient.h
+++ b/WebKit/chromium/public/WebKitClient.h
@@ -135,7 +135,7 @@ public:
// Opens a database file; dirHandle should be 0 if the caller does not need
// a handle to the directory containing this file
virtual FileHandle databaseOpenFile(
- const WebString& vfsFileName, int desiredFlags, FileHandle* dirHandle) { return FileHandle(); }
+ const WebString& vfsFileName, int desiredFlags) { return FileHandle(); }
// Deletes a database file and returns the error code
virtual int databaseDeleteFile(const WebString& vfsFileName, bool syncDir) { return 0; }
@@ -192,6 +192,9 @@ public:
// Returns the User-Agent string that should be used for the given URL.
virtual WebString userAgent(const WebURL&) { return WebString(); }
+ // A suggestion to cache this metadata in association with this URL.
+ virtual void cacheMetadata(const WebURL&, double responseTime, const char* data, size_t dataSize) { }
+
// Plugins -------------------------------------------------------------
diff --git a/WebKit/chromium/public/WebMediaPlayerClient.h b/WebKit/chromium/public/WebMediaPlayerClient.h
index 47ce64e..7e5dd68 100644
--- a/WebKit/chromium/public/WebMediaPlayerClient.h
+++ b/WebKit/chromium/public/WebMediaPlayerClient.h
@@ -48,6 +48,7 @@ public:
virtual void rateChanged() = 0;
virtual void sizeChanged() = 0;
virtual void sawUnsupportedTracks() = 0;
+ virtual float volume() const = 0;
protected:
~WebMediaPlayerClient() { }
diff --git a/WebKit/chromium/public/WebNode.h b/WebKit/chromium/public/WebNode.h
index 792ede5..c7aa8ef 100644
--- a/WebKit/chromium/public/WebNode.h
+++ b/WebKit/chromium/public/WebNode.h
@@ -84,8 +84,6 @@ public:
WEBKIT_API WebString nodeName() const;
WEBKIT_API WebString nodeValue() const;
WEBKIT_API bool setNodeValue(const WebString&);
- // Deprecated. Use document().frame() instead.
- WEBKIT_API WebFrame* frame() const;
WEBKIT_API WebDocument document() const;
WEBKIT_API WebNode firstChild() const;
WEBKIT_API WebNode lastChild() const;
@@ -106,22 +104,6 @@ public:
// Note: This method only works properly after layout has occurred.
WEBKIT_API bool hasNonEmptyBoundingBox() const;
- // Deprecated. Use to() instead.
- template<typename T> T toElement()
- {
- T res;
- res.WebNode::assign(*this);
- return res;
- }
-
- // Deprecated. Use toConst() instead.
- template<typename T> const T toConstElement() const
- {
- T res;
- res.WebNode::assign(*this);
- return res;
- }
-
template<typename T> T to()
{
T res;
diff --git a/WebKit/chromium/public/WebPasswordAutocompleteListener.h b/WebKit/chromium/public/WebPasswordAutocompleteListener.h
index db6589d..fdc8476 100644
--- a/WebKit/chromium/public/WebPasswordAutocompleteListener.h
+++ b/WebKit/chromium/public/WebPasswordAutocompleteListener.h
@@ -49,5 +49,4 @@ public:
} // namespace WebKit
-
#endif
diff --git a/WebKit/chromium/public/WebPluginContainer.h b/WebKit/chromium/public/WebPluginContainer.h
index 41e304e..7b23f08 100644
--- a/WebKit/chromium/public/WebPluginContainer.h
+++ b/WebKit/chromium/public/WebPluginContainer.h
@@ -35,6 +35,7 @@ struct NPObject;
namespace WebKit {
+class WebElement;
class WebString;
class WebURL;
class WebURLRequest;
@@ -42,6 +43,9 @@ struct WebRect;
class WebPluginContainer {
public:
+ // Returns the element containing this plugin.
+ virtual WebElement element() = 0;
+
virtual void invalidate() = 0;
virtual void invalidateRect(const WebRect&) = 0;
diff --git a/WebKit/chromium/public/WebPopupMenuInfo.h b/WebKit/chromium/public/WebPopupMenuInfo.h
index 7eb132e..7cf1b63 100644
--- a/WebKit/chromium/public/WebPopupMenuInfo.h
+++ b/WebKit/chromium/public/WebPopupMenuInfo.h
@@ -44,6 +44,7 @@ struct WebPopupMenuInfo {
int itemFontSize;
int selectedIndex;
WebVector<WebMenuItemInfo> items;
+ bool rightAligned;
};
} // namespace WebKit
diff --git a/WebKit/chromium/public/WebScrollbar.h b/WebKit/chromium/public/WebScrollbar.h
new file mode 100644
index 0000000..6941f4d
--- /dev/null
+++ b/WebKit/chromium/public/WebScrollbar.h
@@ -0,0 +1,98 @@
+/*
+ * Copyright (C) 2010 Google 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:
+ *
+ * * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * * 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.
+ * * Neither the name of Google Inc. nor the names of its
+ * contributors may be used to endorse or promote products derived from
+ * this software without specific prior written permission.
+ *
+ * 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 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 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 WebScrollbar_h
+#define WebScrollbar_h
+
+#include "WebCanvas.h"
+#include "WebCommon.h"
+
+namespace WebKit {
+
+class WebInputEvent;
+class WebScrollbarClient;
+struct WebRect;
+
+class WebScrollbar {
+public:
+ enum Orientation {
+ Horizontal,
+ Vertical
+ };
+
+ enum ScrollDirection {
+ ScrollBackward,
+ ScrollForward
+ };
+
+ enum ScrollGranularity {
+ ScrollByLine,
+ ScrollByPage,
+ ScrollByDocument,
+ ScrollByPixel
+ };
+
+ // Creates a WebScrollbar.
+ WEBKIT_API static WebScrollbar* create(WebScrollbarClient*, Orientation);
+
+ virtual ~WebScrollbar() {}
+
+ // Gets the thickness of the scrollbar in pixels.
+ WEBKIT_API static int defaultThickness();
+
+ // Sets the rectangle of the scrollbar.
+ virtual void setLocation(const WebRect&) = 0;
+
+ // Gets the current value (i.e. position inside the region).
+ virtual int value() const = 0;
+
+ // Sets the current value.
+ virtual void setValue(int position) = 0;
+
+ // Sets the size of the scrollable region in pixels. i.e. if a document is
+ // 800x10000 pixels and the viewport is 1000x1000 pixels, then setLocation
+ // for the vertical scrollbar would have passed in a rectangle like:
+ // (800 - defaultThickness(), 0) (defaultThickness() x 10000)
+ // and setDocumentSize(10000)
+ virtual void setDocumentSize(int size) = 0;
+
+ // Scroll back or forward with the given granularity.
+ virtual void scroll(ScrollDirection, ScrollGranularity, float multiplier) = 0;
+
+ // Paint the given rectangle.
+ virtual void paint(WebCanvas*, const WebRect&) = 0;
+
+ // Returns true iff the given event was used.
+ virtual bool handleInputEvent(const WebInputEvent&) = 0;
+};
+
+} // namespace WebKit
+
+#endif
diff --git a/WebKit/chromium/public/WebScrollbarClient.h b/WebKit/chromium/public/WebScrollbarClient.h
new file mode 100644
index 0000000..d1825c8
--- /dev/null
+++ b/WebKit/chromium/public/WebScrollbarClient.h
@@ -0,0 +1,49 @@
+/*
+ * Copyright (C) 2010 Google 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:
+ *
+ * * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * * 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.
+ * * Neither the name of Google Inc. nor the names of its
+ * contributors may be used to endorse or promote products derived from
+ * this software without specific prior written permission.
+ *
+ * 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 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 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 WebScrollbarClient_h
+#define WebScrollbarClient_h
+
+namespace WebKit {
+
+class WebScrollbar;
+struct WebRect;
+template <typename T> class WebVector;
+
+class WebScrollbarClient {
+public:
+ virtual void valueChanged(WebScrollbar*) = 0;
+ virtual void invalidateScrollbarRect(WebScrollbar*, const WebRect&) = 0;
+ virtual void getTickmarks(WebScrollbar*, WebVector<WebRect>*) const = 0;
+};
+
+} // namespace WebKit
+
+#endif
diff --git a/WebKit/chromium/public/WebSecurityPolicy.h b/WebKit/chromium/public/WebSecurityPolicy.h
index ac0031d..f15dd75 100644
--- a/WebKit/chromium/public/WebSecurityPolicy.h
+++ b/WebKit/chromium/public/WebSecurityPolicy.h
@@ -62,12 +62,6 @@ public:
const WebURL& sourceOrigin, const WebString& destinationProtocol,
const WebString& destinationHost, bool allowDestinationSubdomains);
WEBKIT_API static void resetOriginAccessWhitelists();
- // DEPRECATED: Phase on of renaming to addOriginAccessWhitelistEntry.
- WEBKIT_API static void whiteListAccessFromOrigin(
- const WebURL& sourceOrigin, const WebString& destinationProtocol,
- const WebString& destinationHost, bool allowDestinationSubdomains);
- // DEPRECATED: Phase on of renaming to resetOriginAccessWhitelists..
- WEBKIT_API static void resetOriginAccessWhiteLists();
// Returns whether the url should be allowed to see the referrer
// based on their respective protocols.
diff --git a/WebKit/chromium/public/WebSharedWorker.h b/WebKit/chromium/public/WebSharedWorker.h
index 4ac7639..01c8391 100644
--- a/WebKit/chromium/public/WebSharedWorker.h
+++ b/WebKit/chromium/public/WebSharedWorker.h
@@ -60,7 +60,18 @@ public:
virtual void startWorkerContext(const WebURL& scriptURL,
const WebString& name,
const WebString& userAgent,
- const WebString& sourceCode) = 0;
+ const WebString& sourceCode,
+ long long scriptResourceAppCacheID) = 0;
+
+ // FIXME(michaeln): Remove this after the roll and adjusting to it.
+ virtual void startWorkerContext(const WebURL& scriptURL,
+ const WebString& name,
+ const WebString& userAgent,
+ const WebString& sourceCode)
+ {
+ startWorkerContext(scriptURL, name, userAgent, sourceCode, 0);
+ }
+
class ConnectListener {
public:
// Invoked once the connect event has been sent so the caller can free this object.
diff --git a/WebKit/chromium/public/WebStorageNamespace.h b/WebKit/chromium/public/WebStorageNamespace.h
index 4b648d4..51d4e0b 100644
--- a/WebKit/chromium/public/WebStorageNamespace.h
+++ b/WebKit/chromium/public/WebStorageNamespace.h
@@ -49,10 +49,14 @@ public:
// object when you're finished.
WEBKIT_API static WebStorageNamespace* createLocalStorageNamespace(const WebString& backingDirectoryPath, unsigned quota);
WEBKIT_API static WebStorageNamespace* createSessionStorageNamespace(unsigned quota);
- WEBKIT_API static WebStorageNamespace* createSessionStorageNamespace()
- {
- return createSessionStorageNamespace(noQuota);
- }
+
+ // The quota for each storage area. Suggested by the spec.
+ static const unsigned m_localStorageQuota = 5 * 1024 * 1024;
+
+ // Since SessionStorage memory is allocated in the browser process, we place a
+ // per-origin quota on it. Like LocalStorage there are known attacks against
+ // this, so it's more of a sanity check than a real security measure.
+ static const unsigned m_sessionStorageQuota = 5 * 1024 * 1024;
static const unsigned noQuota = UINT_MAX;
diff --git a/WebKit/chromium/public/WebThemeEngine.h b/WebKit/chromium/public/WebThemeEngine.h
index 1fccb0e..606de09 100644
--- a/WebKit/chromium/public/WebThemeEngine.h
+++ b/WebKit/chromium/public/WebThemeEngine.h
@@ -75,45 +75,12 @@ public:
virtual void paintTrackbar(
WebCanvas*, int part, int state, int classicState,
const WebRect&) = 0;
-#endif
-
- // WebThemeEngine was originally used only on Windows, hence its platform-
- // specific parameters. This is new cross-platform theming API, and we'll
- // switch the code to using these APIs on all platforms instead.
- enum Part {
- PartScrollbarDownArrow,
- PartScrollbarLeftArrow,
- PartScrollbarRightArrow,
- PartScrollbarUpArrow,
- PartScrollbarHorizontalThumb,
- PartScrollbarVerticalThumb,
- PartScrollbarHoriztonalTrack,
- PartScrollbarVerticalTrack,
- };
-
- enum State {
- StateDisabled,
- StateHot,
- StateHover,
- StateNormal,
- StatePressed,
- };
- struct ScrollbarTrackExtraParams {
- int alignX;
- int alignY;
- };
+ virtual void paintProgressBar(
+ WebCanvas*, const WebRect& barRect,
+ int valuePart, const WebRect& valueRect) {}
- union ExtraParams {
- ScrollbarTrackExtraParams scrollbarTrack;
- };
-
- // Gets the size of the given theme component. For variable sized items
- // like vertical scrollbar tracks, the width will be the required width of
- // the track while the height will be the minimum height.
- virtual void getSize(Part, WebSize*) {}
- virtual void paint(
- WebCanvas*, Part, State, const WebRect&, const ExtraParams&) {}
+#endif
};
} // namespace WebKit
diff --git a/WebKit/chromium/public/WebURLLoaderClient.h b/WebKit/chromium/public/WebURLLoaderClient.h
index 03b2c54..a66b153 100644
--- a/WebKit/chromium/public/WebURLLoaderClient.h
+++ b/WebKit/chromium/public/WebURLLoaderClient.h
@@ -56,6 +56,9 @@ public:
// Called when a chunk of response data is received.
virtual void didReceiveData(WebURLLoader*, const char* data, int dataLength) = 0;
+ // Called when a chunk of renderer-generated metadata is received from the cache.
+ virtual void didReceiveCachedMetadata(WebURLLoader*, const char* data, int dataLength) { }
+
// Called when the load completes successfully.
virtual void didFinishLoading(WebURLLoader*) = 0;
diff --git a/WebKit/chromium/public/WebURLResponse.h b/WebKit/chromium/public/WebURLResponse.h
index 3acacf8..b3c084c 100644
--- a/WebKit/chromium/public/WebURLResponse.h
+++ b/WebKit/chromium/public/WebURLResponse.h
@@ -72,6 +72,9 @@ public:
WEBKIT_API WebURL url() const;
WEBKIT_API void setURL(const WebURL&);
+ WEBKIT_API double responseTime() const;
+ WEBKIT_API void setResponseTime(double);
+
WEBKIT_API WebString mimeType() const;
WEBKIT_API void setMIMEType(const WebString&);
@@ -123,6 +126,11 @@ public:
WEBKIT_API bool wasFetchedViaSPDY() const;
WEBKIT_API void setWasFetchedViaSPDY(bool);
+ // Flag whether this request was loaded after the TLS/Next-Protocol-Negotiation was used.
+ // This is related to SPDY.
+ WEBKIT_API bool wasNpnNegotiated() const;
+ WEBKIT_API void setWasNpnNegotiated(bool);
+
// Flag whether this request is part of a multipart response.
WEBKIT_API bool isMultipartPayload() const;
WEBKIT_API void setIsMultipartPayload(bool);
diff --git a/WebKit/chromium/public/WebViewClient.h b/WebKit/chromium/public/WebViewClient.h
index 98e0485..9478df9 100644
--- a/WebKit/chromium/public/WebViewClient.h
+++ b/WebKit/chromium/public/WebViewClient.h
@@ -81,7 +81,7 @@ public:
virtual WebWidget* createPopupMenu(const WebPopupMenuInfo&) { return 0; }
// Create a session storage namespace object associated with this WebView.
- virtual WebStorageNamespace* createSessionStorageNamespace() { return 0; }
+ virtual WebStorageNamespace* createSessionStorageNamespace(unsigned quota) { return 0; }
// Misc ----------------------------------------------------------------
@@ -234,6 +234,9 @@ public:
virtual void focusNext() { }
virtual void focusPrevious() { }
+ // Called when a new node gets focused.
+ virtual void focusedNodeChanged(const WebNode&) { }
+
// Session history -----------------------------------------------------
diff --git a/WebKit/chromium/src/AssertMatchingEnums.cpp b/WebKit/chromium/src/AssertMatchingEnums.cpp
index 1d2948f..e7aeb49 100644
--- a/WebKit/chromium/src/AssertMatchingEnums.cpp
+++ b/WebKit/chromium/src/AssertMatchingEnums.cpp
@@ -51,6 +51,7 @@
#include "WebInputElement.h"
#include "WebMediaPlayer.h"
#include "WebNotificationPresenter.h"
+#include "WebScrollbar.h"
#include "WebTextAffinity.h"
#include "WebTextCaseSensitivity.h"
#include <wtf/Assertions.h>
@@ -291,6 +292,14 @@ COMPILE_ASSERT_MATCHING_ENUM(WebNotificationPresenter::PermissionNotAllowed, Not
COMPILE_ASSERT_MATCHING_ENUM(WebNotificationPresenter::PermissionDenied, NotificationPresenter::PermissionDenied);
#endif
+COMPILE_ASSERT_MATCHING_ENUM(WebScrollbar::Horizontal, HorizontalScrollbar);
+COMPILE_ASSERT_MATCHING_ENUM(WebScrollbar::Vertical, VerticalScrollbar);
+
+COMPILE_ASSERT_MATCHING_ENUM(WebScrollbar::ScrollByLine, ScrollByLine);
+COMPILE_ASSERT_MATCHING_ENUM(WebScrollbar::ScrollByPage, ScrollByPage);
+COMPILE_ASSERT_MATCHING_ENUM(WebScrollbar::ScrollByDocument, ScrollByDocument);
+COMPILE_ASSERT_MATCHING_ENUM(WebScrollbar::ScrollByPixel, ScrollByPixel);
+
COMPILE_ASSERT_MATCHING_ENUM(WebTextAffinityUpstream, UPSTREAM);
COMPILE_ASSERT_MATCHING_ENUM(WebTextAffinityDownstream, DOWNSTREAM);
diff --git a/WebKit/chromium/src/ChromeClientImpl.cpp b/WebKit/chromium/src/ChromeClientImpl.cpp
index 74f0bd8..1a366bc 100644
--- a/WebKit/chromium/src/ChromeClientImpl.cpp
+++ b/WebKit/chromium/src/ChromeClientImpl.cpp
@@ -66,6 +66,7 @@
#include "WebFrameImpl.h"
#include "WebInputEvent.h"
#include "WebKit.h"
+#include "WebNode.h"
#include "WebPopupMenuImpl.h"
#include "WebPopupMenuInfo.h"
#include "WebPopupType.h"
@@ -214,6 +215,8 @@ void ChromeClientImpl::takeFocus(FocusDirection direction)
void ChromeClientImpl::focusedNodeChanged(Node* node)
{
+ m_webView->client()->focusedNodeChanged(WebNode(node));
+
WebURL focus_url;
if (node && node->isLink()) {
// This HitTestResult hack is the easiest way to get a link URL out of a
@@ -689,6 +692,7 @@ void ChromeClientImpl::getPopupMenuInfo(PopupContainer* popupContainer,
info->itemFontSize = popupContainer->menuItemFontSize();
info->selectedIndex = popupContainer->selectedIndex();
info->items.swap(outputItems);
+ info->rightAligned = popupContainer->menuStyle().textDirection() == RTL;
}
void ChromeClientImpl::didChangeAccessibilityObjectState(AccessibilityObject* obj)
@@ -708,6 +712,7 @@ NotificationPresenter* ChromeClientImpl::notificationPresenter() const
void ChromeClientImpl::requestGeolocationPermissionForFrame(Frame* frame, Geolocation* geolocation)
{
GeolocationServiceChromium* geolocationService = static_cast<GeolocationServiceChromium*>(geolocation->getGeolocationService());
+ geolocationService->geolocationServiceBridge()->attachBridgeIfNeeded();
m_webView->client()->geolocationService()->requestPermissionForFrame(geolocationService->geolocationServiceBridge()->getBridgeId(), frame->document()->url());
}
diff --git a/WebKit/chromium/src/ChromiumBridge.cpp b/WebKit/chromium/src/ChromiumBridge.cpp
index a0e8d3b..d188016 100644
--- a/WebKit/chromium/src/ChromiumBridge.cpp
+++ b/WebKit/chromium/src/ChromiumBridge.cpp
@@ -132,6 +132,13 @@ static WebCookieJar* getCookieJar(const Document* document)
return cookieJar;
}
+// Cache ----------------------------------------------------------------------
+
+void ChromiumBridge::cacheMetadata(const KURL& url, double responseTime, const Vector<char>& data)
+{
+ webKitClient()->cacheMetadata(url, responseTime, data.data(), data.size());
+}
+
// Clipboard ------------------------------------------------------------------
bool ChromiumBridge::clipboardIsFormatAvailable(
@@ -432,9 +439,9 @@ GeolocationServiceBridge* ChromiumBridge::createGeolocationServiceBridge(Geoloca
// HTML5 DB -------------------------------------------------------------------
#if ENABLE(DATABASE)
-PlatformFileHandle ChromiumBridge::databaseOpenFile(const String& vfsFileName, int desiredFlags, PlatformFileHandle* dirHandle)
+PlatformFileHandle ChromiumBridge::databaseOpenFile(const String& vfsFileName, int desiredFlags)
{
- return webKitClient()->databaseOpenFile(WebString(vfsFileName), desiredFlags, dirHandle);
+ return webKitClient()->databaseOpenFile(WebString(vfsFileName), desiredFlags);
}
int ChromiumBridge::databaseDeleteFile(const String& vfsFileName, bool syncDir)
@@ -672,6 +679,13 @@ void ChromiumBridge::paintTrackbar(
gc->platformContext()->canvas(), part, state, classicState, rect);
}
+void ChromiumBridge::paintProgressBar(
+ GraphicsContext* gc, const IntRect& barRect, int valuePart, const IntRect& valueRect)
+{
+ webKitClient()->themeEngine()->paintProgressBar(
+ gc->platformContext()->canvas(), barRect, valuePart, valueRect);
+}
+
#endif
// Trace Event ----------------------------------------------------------------
diff --git a/WebKit/chromium/src/ContextMenuClientImpl.cpp b/WebKit/chromium/src/ContextMenuClientImpl.cpp
index bee4310..b6005f9 100644
--- a/WebKit/chromium/src/ContextMenuClientImpl.cpp
+++ b/WebKit/chromium/src/ContextMenuClientImpl.cpp
@@ -151,9 +151,6 @@ PlatformMenuDescription ContextMenuClientImpl::getCustomMenuFromDefaultItems(
// all else.
data.linkURL = r.absoluteLinkURL();
- data.mediaType = WebContextMenuData::MediaTypeNone;
- data.mediaFlags = WebContextMenuData::MediaNone;
-
if (!r.absoluteImageURL().isEmpty()) {
data.srcURL = r.absoluteImageURL();
data.mediaType = WebContextMenuData::MediaTypeImage;
@@ -202,7 +199,6 @@ PlatformMenuDescription ContextMenuClientImpl::getCustomMenuFromDefaultItems(
if (r.isSelected())
data.selectedText = selectedFrame->selectedText().stripWhiteSpace();
- data.isEditable = false;
if (r.isContentEditable()) {
data.isEditable = true;
if (m_webView->focusedWebCoreFrame()->editor()->isContinuousSpellCheckingEnabled()) {
@@ -212,11 +208,6 @@ PlatformMenuDescription ContextMenuClientImpl::getCustomMenuFromDefaultItems(
}
#if OS(DARWIN)
- // Writing direction context menu.
- data.writingDirectionDefault = WebContextMenuData::CheckableMenuItemDisabled;
- data.writingDirectionLeftToRight = WebContextMenuData::CheckableMenuItemEnabled;
- data.writingDirectionRightToLeft = WebContextMenuData::CheckableMenuItemEnabled;
-
ExceptionCode ec = 0;
RefPtr<CSSStyleDeclaration> style = selectedFrame->document()->createCSSStyleDeclaration();
style->setProperty(CSSPropertyDirection, "ltr", false, ec);
diff --git a/WebKit/chromium/src/DatabaseObserver.cpp b/WebKit/chromium/src/DatabaseObserver.cpp
index 6a2e2a7..1c5117c 100644
--- a/WebKit/chromium/src/DatabaseObserver.cpp
+++ b/WebKit/chromium/src/DatabaseObserver.cpp
@@ -50,12 +50,16 @@ namespace WebCore {
bool DatabaseObserver::canEstablishDatabase(ScriptExecutionContext* scriptExecutionContext, const String& name, const String& displayName, unsigned long estimatedSize)
{
ASSERT(scriptExecutionContext->isContextThread());
- // FIXME: add support for the case scriptExecutionContext()->isWorker() once workers implement web databases.
- ASSERT(scriptExecutionContext->isDocument());
+ ASSERT(scriptExecutionContext->isDocument() || scriptExecutionContext->isWorkerContext());
if (scriptExecutionContext->isDocument()) {
Document* document = static_cast<Document*>(scriptExecutionContext);
WebFrameImpl* webFrame = WebFrameImpl::fromFrame(document->frame());
return webFrame->client()->allowDatabase(webFrame, name, displayName, estimatedSize);
+ } else {
+ WorkerContext* workerContext = static_cast<WorkerContext*>(scriptExecutionContext);
+ WorkerLoaderProxy* workerLoaderProxy = &workerContext->thread()->workerLoaderProxy();
+ WebWorkerBase* webWorker = static_cast<WebWorkerBase*>(workerLoaderProxy);
+ return webWorker->allowDatabase(0, name, displayName, estimatedSize);
}
return true;
diff --git a/WebKit/chromium/src/FrameLoaderClientImpl.h b/WebKit/chromium/src/FrameLoaderClientImpl.h
index c163f62..25be623 100644
--- a/WebKit/chromium/src/FrameLoaderClientImpl.h
+++ b/WebKit/chromium/src/FrameLoaderClientImpl.h
@@ -31,14 +31,12 @@
#ifndef FrameLoaderClientImpl_h
#define FrameLoaderClientImpl_h
-// FIXME: remove this relative path once consumers from glue are removed.
-#include "../public/WebNavigationPolicy.h"
#include "FrameLoaderClient.h"
#include "KURL.h"
+#include "WebNavigationPolicy.h"
#include <wtf/PassOwnPtr.h>
#include <wtf/RefPtr.h>
-
namespace WebKit {
class WebFrameImpl;
diff --git a/WebKit/chromium/src/GraphicsContext3D.cpp b/WebKit/chromium/src/GraphicsContext3D.cpp
index e51f433..7c5635b 100644
--- a/WebKit/chromium/src/GraphicsContext3D.cpp
+++ b/WebKit/chromium/src/GraphicsContext3D.cpp
@@ -40,16 +40,16 @@
#include "ImageBuffer.h"
#include "ImageData.h"
#include "WebGLBuffer.h"
-#include "WebGLByteArray.h"
-#include "WebGLFloatArray.h"
+#include "Int8Array.h"
+#include "FloatArray.h"
#include "WebGLFramebuffer.h"
-#include "WebGLIntArray.h"
+#include "Int32Array.h"
#include "WebGLProgram.h"
#include "WebGLRenderbuffer.h"
#include "WebGLRenderingContext.h"
#include "WebGLShader.h"
#include "WebGLTexture.h"
-#include "WebGLUnsignedByteArray.h"
+#include "Uint8Array.h"
#include "WebGraphicsContext3D.h"
#include "WebGraphicsContext3DDefaultImpl.h"
#include "WebKit.h"
@@ -130,8 +130,8 @@ public:
void blendFuncSeparate(unsigned long srcRGB, unsigned long dstRGB, unsigned long srcAlpha, unsigned long dstAlpha);
void bufferData(unsigned long target, int size, unsigned long usage);
- void bufferData(unsigned long target, WebGLArray* data, unsigned long usage);
- void bufferSubData(unsigned long target, long offset, WebGLArray* data);
+ void bufferData(unsigned long target, ArrayBufferView* data, unsigned long usage);
+ void bufferSubData(unsigned long target, long offset, ArrayBufferView* data);
unsigned long checkFramebufferStatus(unsigned long target);
void clear(unsigned long mask);
@@ -673,12 +673,12 @@ void GraphicsContext3DInternal::bufferData(unsigned long target, int size, unsig
m_impl->bufferData(target, size, 0, usage);
}
-void GraphicsContext3DInternal::bufferData(unsigned long target, WebGLArray* array, unsigned long usage)
+void GraphicsContext3DInternal::bufferData(unsigned long target, ArrayBufferView* array, unsigned long usage)
{
m_impl->bufferData(target, array->byteLength(), array->baseAddress(), usage);
}
-void GraphicsContext3DInternal::bufferSubData(unsigned long target, long offset, WebGLArray* array)
+void GraphicsContext3DInternal::bufferSubData(unsigned long target, long offset, ArrayBufferView* array)
{
m_impl->bufferSubData(target, offset, array->byteLength(), array->baseAddress());
}
@@ -1104,8 +1104,8 @@ DELEGATE_TO_INTERNAL_2(blendFunc, unsigned long, unsigned long)
DELEGATE_TO_INTERNAL_4(blendFuncSeparate, unsigned long, unsigned long, unsigned long, unsigned long)
DELEGATE_TO_INTERNAL_3(bufferData, unsigned long, int, unsigned long)
-DELEGATE_TO_INTERNAL_3(bufferData, unsigned long, WebGLArray*, unsigned long)
-DELEGATE_TO_INTERNAL_3(bufferSubData, unsigned long, long, WebGLArray*)
+DELEGATE_TO_INTERNAL_3(bufferData, unsigned long, ArrayBufferView*, unsigned long)
+DELEGATE_TO_INTERNAL_3(bufferSubData, unsigned long, long, ArrayBufferView*)
DELEGATE_TO_INTERNAL_1R(checkFramebufferStatus, unsigned long, unsigned long)
DELEGATE_TO_INTERNAL_1(clear, unsigned long)
diff --git a/WebKit/chromium/src/IDBCallbacksProxy.cpp b/WebKit/chromium/src/IDBCallbacksProxy.cpp
new file mode 100644
index 0000000..0346b58
--- /dev/null
+++ b/WebKit/chromium/src/IDBCallbacksProxy.cpp
@@ -0,0 +1,74 @@
+/*
+ * Copyright (C) 2010 Google 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.
+ * 3. Neither the name of Apple Computer, Inc. ("Apple") nor the names of
+ * its contributors may be used to endorse or promote products derived
+ * from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE 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 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 "IDBCallbacksProxy.h"
+
+#include "IDBCallbacks.h"
+#include "IDBDatabaseError.h"
+#include "IDBDatabaseProxy.h"
+#include "WebIDBCallbacks.h"
+#include "WebIDBDatabase.h"
+#include "WebIDBDatabaseError.h"
+#include "WebSerializedScriptValue.h"
+
+#if ENABLE(INDEXED_DATABASE)
+
+namespace WebCore {
+
+IDBCallbacksProxy::IDBCallbacksProxy(PassRefPtr<IDBCallbacks> callbacks)
+ : m_callbacks(callbacks)
+{
+}
+
+IDBCallbacksProxy::~IDBCallbacksProxy()
+{
+}
+
+void IDBCallbacksProxy::onError(const WebKit::WebIDBDatabaseError& error)
+{
+ m_callbacks->onError(error);
+ m_callbacks.clear();
+}
+
+void IDBCallbacksProxy::onSuccess(WebKit::WebIDBDatabase* webKitInstance)
+{
+ m_callbacks->onSuccess(IDBDatabaseProxy::create(webKitInstance));
+ m_callbacks.clear();
+}
+
+void IDBCallbacksProxy::onSuccess(const WebKit::WebSerializedScriptValue& serializedScriptValue)
+{
+ m_callbacks->onSuccess(serializedScriptValue);
+ m_callbacks.clear();
+}
+
+} // namespace WebCore
+
+#endif // ENABLE(INDEXED_DATABASE)
+
diff --git a/WebKit/chromium/src/IDBCallbacksProxy.h b/WebKit/chromium/src/IDBCallbacksProxy.h
index e803c96..692b0a3 100644
--- a/WebKit/chromium/src/IDBCallbacksProxy.h
+++ b/WebKit/chromium/src/IDBCallbacksProxy.h
@@ -29,40 +29,33 @@
#ifndef IDBCallbacksProxy_h
#define IDBCallbacksProxy_h
-#include "IDBCallbacks.h"
-#include "IDBDatabaseError.h"
#include "WebIDBCallbacks.h"
-#include "WebIDBDatabaseError.h"
#include <wtf/PassRefPtr.h>
#include <wtf/RefPtr.h>
#if ENABLE(INDEXED_DATABASE)
-namespace WebCore {
+namespace WebKit {
+class WebIDBDatabase;
+class WebIDBDatabaseError;
+class WebSerializedScriptValue;
+}
-template <typename WebKitClass, typename WebCoreClass, typename WebCoreProxy>
-class IDBCallbacksProxy : public WebKit::WebIDBCallbacks<WebKitClass> {
-public:
- IDBCallbacksProxy(PassRefPtr<IDBCallbacks<WebCoreClass> > callbacks)
- : m_callbacks(callbacks) { }
+namespace WebCore {
- virtual ~IDBCallbacksProxy() { }
+class IDBCallbacks;
- virtual void onSuccess(WebKitClass* webKitInstance)
- {
- RefPtr<WebCoreClass> proxy = WebCoreProxy::create(webKitInstance);
- m_callbacks->onSuccess(proxy);
- m_callbacks.clear();
- }
+class IDBCallbacksProxy : public WebKit::WebIDBCallbacks {
+public:
+ IDBCallbacksProxy(PassRefPtr<IDBCallbacks> callbacks);
+ virtual ~IDBCallbacksProxy();
- virtual void onError(const WebKit::WebIDBDatabaseError& error)
- {
- m_callbacks->onError(error);
- m_callbacks.clear();
- }
+ virtual void onError(const WebKit::WebIDBDatabaseError& error);
+ virtual void onSuccess(WebKit::WebIDBDatabase* webKitInstance);
+ virtual void onSuccess(const WebKit::WebSerializedScriptValue& serializedScriptValue);
private:
- PassRefPtr<IDBCallbacks<WebCoreClass> > m_callbacks;
+ RefPtr<IDBCallbacks> m_callbacks;
};
diff --git a/WebKit/chromium/src/IndexedDatabaseProxy.cpp b/WebKit/chromium/src/IndexedDatabaseProxy.cpp
index 9069b46..a4bd0b1 100644
--- a/WebKit/chromium/src/IndexedDatabaseProxy.cpp
+++ b/WebKit/chromium/src/IndexedDatabaseProxy.cpp
@@ -29,9 +29,12 @@
#include "config.h"
#include "IndexedDatabaseProxy.h"
+#include "Document.h"
+#include "Frame.h"
#include "IDBCallbacksProxy.h"
#include "IDBDatabaseError.h"
#include "IDBDatabaseProxy.h"
+#include "SecurityOrigin.h"
#include "WebFrameImpl.h"
#include "WebIDBDatabase.h"
#include "WebIDBDatabaseError.h"
@@ -57,11 +60,12 @@ IndexedDatabaseProxy::~IndexedDatabaseProxy()
{
}
-void IndexedDatabaseProxy::open(const String& name, const String& description, bool modifyDatabase, PassRefPtr<IDBDatabaseCallbacks> callbacks, Frame* frame, ExceptionCode& ec)
+void IndexedDatabaseProxy::open(const String& name, const String& description, bool modifyDatabase, PassRefPtr<IDBCallbacks> callbacks, Frame* frame, ExceptionCode& ec)
{
+ if (!frame || !frame->document())
+ return;
WebKit::WebFrame* webFrame = WebKit::WebFrameImpl::fromFrame(frame);
- typedef IDBCallbacksProxy<WebKit::WebIDBDatabase, IDBDatabase, IDBDatabaseProxy> CallbacksProxy;
- m_webIndexedDatabase->open(name, description, modifyDatabase, new CallbacksProxy(callbacks), webFrame, ec);
+ m_webIndexedDatabase->open(name, description, modifyDatabase, new IDBCallbacksProxy(callbacks), frame->document()->securityOrigin()->toString(), webFrame, ec);
}
} // namespace WebCore
diff --git a/WebKit/chromium/src/IndexedDatabaseProxy.h b/WebKit/chromium/src/IndexedDatabaseProxy.h
index d0f55b6..0c8674a 100644
--- a/WebKit/chromium/src/IndexedDatabaseProxy.h
+++ b/WebKit/chromium/src/IndexedDatabaseProxy.h
@@ -42,7 +42,7 @@ public:
static PassRefPtr<IndexedDatabase> create();
virtual ~IndexedDatabaseProxy();
- virtual void open(const String& name, const String& description, bool modifyDatabase, PassRefPtr<IDBDatabaseCallbacks>, Frame*, ExceptionCode&);
+ virtual void open(const String& name, const String& description, bool modifyDatabase, PassRefPtr<IDBCallbacks>, Frame*, ExceptionCode&);
private:
IndexedDatabaseProxy();
diff --git a/WebKit/chromium/src/PlatformMessagePortChannel.h b/WebKit/chromium/src/PlatformMessagePortChannel.h
index 05e8397..5416145 100644
--- a/WebKit/chromium/src/PlatformMessagePortChannel.h
+++ b/WebKit/chromium/src/PlatformMessagePortChannel.h
@@ -31,12 +31,9 @@
#ifndef PlatformMessagePortChannel_h
#define PlatformMessagePortChannel_h
-// FIXME: This relative path is a temporary hack to support using this
-// header from webkit/glue.
-#include "../public/WebMessagePortChannelClient.h"
+#include "WebMessagePortChannelClient.h"
#include "MessagePortChannel.h"
-
#include <wtf/PassRefPtr.h>
#include <wtf/Threading.h>
diff --git a/WebKit/chromium/src/ResourceHandle.cpp b/WebKit/chromium/src/ResourceHandle.cpp
index 39270e7..a13400d 100644
--- a/WebKit/chromium/src/ResourceHandle.cpp
+++ b/WebKit/chromium/src/ResourceHandle.cpp
@@ -31,6 +31,7 @@
#include "config.h"
#include "ResourceHandle.h"
+#include "ChromiumBridge.h"
#include "ResourceHandleClient.h"
#include "ResourceRequest.h"
#include "SharedBuffer.h"
@@ -72,6 +73,7 @@ public:
WebURLLoader*, unsigned long long bytesSent, unsigned long long totalBytesToBeSent);
virtual void didReceiveResponse(WebURLLoader*, const WebURLResponse&);
virtual void didReceiveData(WebURLLoader*, const char* data, int dataLength);
+ virtual void didReceiveCachedMetadata(WebURLLoader*, const char* data, int dataLength);
virtual void didFinishLoading(WebURLLoader*);
virtual void didFail(WebURLLoader*, const WebURLError&);
@@ -171,6 +173,15 @@ void ResourceHandleInternal::didReceiveData(
m_client->didReceiveData(m_owner, data, dataLength, dataLength);
}
+void ResourceHandleInternal::didReceiveCachedMetadata(WebURLLoader*, const char* data, int dataLength)
+{
+ ASSERT(m_client);
+ if (m_state != ConnectionStateReceivedResponse && m_state != ConnectionStateReceivingData)
+ CRASH();
+
+ m_client->didReceiveCachedMetadata(m_owner, data, dataLength);
+}
+
void ResourceHandleInternal::didFinishLoading(WebURLLoader*)
{
ASSERT(m_client);
@@ -311,4 +322,10 @@ bool ResourceHandle::willLoadFromCache(ResourceRequest& request, Frame*)
return true;
}
+// static
+void ResourceHandle::cacheMetadata(const ResourceResponse& response, const Vector<char>& data)
+{
+ ChromiumBridge::cacheMetadata(response.url(), response.responseTime(), data);
+}
+
} // namespace WebCore
diff --git a/WebKit/chromium/src/SharedWorkerRepository.cpp b/WebKit/chromium/src/SharedWorkerRepository.cpp
index a2b513f..2c4e918 100644
--- a/WebKit/chromium/src/SharedWorkerRepository.cpp
+++ b/WebKit/chromium/src/SharedWorkerRepository.cpp
@@ -72,6 +72,7 @@ public:
, m_port(port)
, m_scriptLoader(ResourceRequestBase::TargetIsSharedWorker)
, m_loading(false)
+ , m_responseAppCacheID(0)
{
}
@@ -81,6 +82,7 @@ public:
private:
// WorkerScriptLoaderClient callback
+ virtual void didReceiveResponse(const ResourceResponse&);
virtual void notifyFinished();
virtual void connected();
@@ -96,6 +98,7 @@ private:
OwnPtr<MessagePortChannel> m_port;
WorkerScriptLoader m_scriptLoader;
bool m_loading;
+ long long m_responseAppCacheID;
};
static Vector<SharedWorkerScriptLoader*>& pendingLoaders()
@@ -148,6 +151,11 @@ static WebMessagePortChannel* getWebPort(PassOwnPtr<MessagePortChannel> port)
return webPort;
}
+void SharedWorkerScriptLoader::didReceiveResponse(const ResourceResponse& response)
+{
+ m_responseAppCacheID = response.appCacheID();
+}
+
void SharedWorkerScriptLoader::notifyFinished()
{
if (m_scriptLoader.failed()) {
@@ -159,7 +167,7 @@ void SharedWorkerScriptLoader::notifyFinished()
inspector->scriptImported(m_scriptLoader.identifier(), m_scriptLoader.script());
#endif
// Pass the script off to the worker, then send a connect event.
- m_webWorker->startWorkerContext(m_url, m_name, m_worker->scriptExecutionContext()->userAgent(m_url), m_scriptLoader.script());
+ m_webWorker->startWorkerContext(m_url, m_name, m_worker->scriptExecutionContext()->userAgent(m_url), m_scriptLoader.script(), m_responseAppCacheID);
sendConnect();
}
}
diff --git a/WebKit/chromium/src/StorageNamespaceProxy.cpp b/WebKit/chromium/src/StorageNamespaceProxy.cpp
index 252bc14..ec0dbce 100644
--- a/WebKit/chromium/src/StorageNamespaceProxy.cpp
+++ b/WebKit/chromium/src/StorageNamespaceProxy.cpp
@@ -51,7 +51,7 @@ PassRefPtr<StorageNamespace> StorageNamespace::sessionStorageNamespace(Page* pag
{
WebKit::ChromeClientImpl* chromeClientImpl = static_cast<WebKit::ChromeClientImpl*>(page->chrome()->client());
WebKit::WebViewClient* webViewClient = chromeClientImpl->webView()->client();
- return adoptRef(new StorageNamespaceProxy(webViewClient->createSessionStorageNamespace(), SessionStorage));
+ return adoptRef(new StorageNamespaceProxy(webViewClient->createSessionStorageNamespace(quota), SessionStorage));
}
StorageNamespaceProxy::StorageNamespaceProxy(WebKit::WebStorageNamespace* storageNamespace, StorageType storageType)
diff --git a/WebKit/chromium/src/WebAnimationControllerImpl.h b/WebKit/chromium/src/WebAnimationControllerImpl.h
index 8b0676e..66dfe98 100644
--- a/WebKit/chromium/src/WebAnimationControllerImpl.h
+++ b/WebKit/chromium/src/WebAnimationControllerImpl.h
@@ -31,9 +31,7 @@
#ifndef WebAnimationControllerImpl_h
#define WebAnimationControllerImpl_h
-// FIXME: This relative path is a temporary hack to support using this
-// header from webkit/glue.
-#include "../public/WebAnimationController.h"
+#include "WebAnimationController.h"
namespace WebCore {
class AnimationController;
diff --git a/WebKit/chromium/src/WebBindings.cpp b/WebKit/chromium/src/WebBindings.cpp
index 41619d6..99e82a7 100644
--- a/WebKit/chromium/src/WebBindings.cpp
+++ b/WebKit/chromium/src/WebBindings.cpp
@@ -34,9 +34,6 @@
#include "npruntime_impl.h"
#include "npruntime_priv.h"
-#include "../public/WebDragData.h"
-#include "../public/WebRange.h"
-
#if USE(V8)
#include "ChromiumDataObject.h"
#include "ClipboardChromium.h"
@@ -53,6 +50,8 @@
#elif USE(JSC)
#include "bridge/c/c_utility.h"
#endif
+#include "WebDragData.h"
+#include "WebRange.h"
#if USE(JAVASCRIPTCORE_BINDINGS)
using JSC::Bindings::PrivateIdentifier;
diff --git a/WebKit/chromium/src/WebDataSourceImpl.h b/WebKit/chromium/src/WebDataSourceImpl.h
index f868e95..be32217 100644
--- a/WebKit/chromium/src/WebDataSourceImpl.h
+++ b/WebKit/chromium/src/WebDataSourceImpl.h
@@ -31,17 +31,12 @@
#ifndef WebDataSourceImpl_h
#define WebDataSourceImpl_h
-// FIXME: This relative path is a temporary hack to support using this
-// header from webkit/glue.
-#include "../public/WebDataSource.h"
-
#include "DocumentLoader.h"
#include "KURL.h"
-
+#include "WebDataSource.h"
#include "WebPluginLoadObserver.h"
#include "WrappedResourceRequest.h"
#include "WrappedResourceResponse.h"
-
#include <wtf/OwnPtr.h>
#include <wtf/PassOwnPtr.h>
#include <wtf/Vector.h>
diff --git a/WebKit/chromium/src/WebDevToolsAgentPrivate.h b/WebKit/chromium/src/WebDevToolsAgentPrivate.h
index 0c1c67e..446f647 100644
--- a/WebKit/chromium/src/WebDevToolsAgentPrivate.h
+++ b/WebKit/chromium/src/WebDevToolsAgentPrivate.h
@@ -31,9 +31,7 @@
#ifndef WebDevToolsAgentPrivate_h
#define WebDevToolsAgentPrivate_h
-// FIXME: This relative path is a temporary hack to support using this
-// header from webkit/glue.
-#include "../public/WebDevToolsAgent.h"
+#include "WebDevToolsAgent.h"
namespace WebKit {
class WebFrameImpl;
diff --git a/WebKit/chromium/src/WebFileChooserCompletionImpl.h b/WebKit/chromium/src/WebFileChooserCompletionImpl.h
index fe759e0..147d1f7 100644
--- a/WebKit/chromium/src/WebFileChooserCompletionImpl.h
+++ b/WebKit/chromium/src/WebFileChooserCompletionImpl.h
@@ -31,14 +31,11 @@
#ifndef WebFileChooserCompletionImpl_h
#define WebFileChooserCompletionImpl_h
-// FIXME: These relative paths are a temporary hack to support using this
-// header from webkit/glue.
-#include "../public/WebFileChooserCompletion.h"
-#include "../public/WebString.h"
-#include "../public/WebVector.h"
+#include "WebFileChooserCompletion.h"
+#include "WebString.h"
+#include "WebVector.h"
#include "FileChooser.h"
-
#include <wtf/PassRefPtr.h>
using WebKit::WebFileChooserCompletion;
diff --git a/WebKit/chromium/src/WebFrameImpl.cpp b/WebKit/chromium/src/WebFrameImpl.cpp
index 7b6c8ce..b678459 100644
--- a/WebKit/chromium/src/WebFrameImpl.cpp
+++ b/WebKit/chromium/src/WebFrameImpl.cpp
@@ -1608,14 +1608,6 @@ void WebFrameImpl::resetMatchCount()
m_framesScopingCount = 0;
}
-WebURL WebFrameImpl::completeURL(const WebString& url) const
-{
- if (!m_frame || !m_frame->document())
- return WebURL();
-
- return m_frame->document()->completeURL(url);
-}
-
WebString WebFrameImpl::contentAsText(size_t maxChars) const
{
if (!m_frame)
@@ -1942,13 +1934,16 @@ void WebFrameImpl::setCanHaveScrollbars(bool canHaveScrollbars)
m_frame->view()->setCanHaveScrollbars(canHaveScrollbars);
}
-void WebFrameImpl::registerPasswordListener(
+bool WebFrameImpl::registerPasswordListener(
WebInputElement inputElement,
WebPasswordAutocompleteListener* listener)
{
RefPtr<HTMLInputElement> element = inputElement.operator PassRefPtr<HTMLInputElement>();
- ASSERT(m_passwordListeners.find(element) == m_passwordListeners.end());
- m_passwordListeners.set(element, listener);
+ if (!m_passwordListeners.add(element, listener).second) {
+ delete listener;
+ return false;
+ }
+ return true;
}
WebPasswordAutocompleteListener* WebFrameImpl::getPasswordListener(
@@ -2030,7 +2025,8 @@ void WebFrameImpl::addMarker(Range* range, bool activeMatch)
void WebFrameImpl::setMarkerActive(Range* range, bool active)
{
- if (!range)
+ WebCore::ExceptionCode ec;
+ if (!range || range->collapsed(ec))
return;
frame()->document()->setMarkersActive(range, active);
diff --git a/WebKit/chromium/src/WebFrameImpl.h b/WebKit/chromium/src/WebFrameImpl.h
index 08d3cc2..a8b272f 100644
--- a/WebKit/chromium/src/WebFrameImpl.h
+++ b/WebKit/chromium/src/WebFrameImpl.h
@@ -31,16 +31,15 @@
#ifndef WebFrameImpl_h
#define WebFrameImpl_h
-// FIXME: remove this relative path once consumers from glue are removed.
-#include "../public/WebFrame.h"
+#include "WebAnimationControllerImpl.h"
+#include "WebFrame.h"
+
#include "Frame.h"
#include "FrameLoaderClientImpl.h"
#include "PlatformString.h"
#include <wtf/OwnPtr.h>
#include <wtf/RefCounted.h>
-#include "WebAnimationControllerImpl.h"
-
namespace WebCore {
class GraphicsContext;
class HistoryItem;
@@ -160,10 +159,9 @@ public:
virtual void cancelPendingScopingEffort();
virtual void increaseMatchCount(int count, int identifier);
virtual void resetMatchCount();
- virtual void registerPasswordListener(
+ virtual bool registerPasswordListener(
WebInputElement, WebPasswordAutocompleteListener*);
- virtual WebURL completeURL(const WebString& url) const;
virtual WebString contentAsText(size_t maxChars) const;
virtual WebString contentAsMarkup() const;
virtual WebString renderTreeAsText() const;
diff --git a/WebKit/chromium/src/WebGeolocationServiceBridgeImpl.cpp b/WebKit/chromium/src/WebGeolocationServiceBridgeImpl.cpp
index 07f09da..265ef4f 100644
--- a/WebKit/chromium/src/WebGeolocationServiceBridgeImpl.cpp
+++ b/WebKit/chromium/src/WebGeolocationServiceBridgeImpl.cpp
@@ -73,6 +73,7 @@ public:
virtual void suspend();
virtual void resume();
virtual int getBridgeId() const;
+ virtual void attachBridgeIfNeeded();
// WebGeolocationServiceBridge
virtual void setIsAllowed(bool allowed);
@@ -94,12 +95,8 @@ GeolocationServiceBridge* createGeolocationServiceBridgeImpl(GeolocationServiceC
WebGeolocationServiceBridgeImpl::WebGeolocationServiceBridgeImpl(GeolocationServiceChromium* geolocationServiceChromium)
: m_GeolocationServiceChromium(geolocationServiceChromium)
+ , m_bridgeId(0)
{
- // We need to attach ourselves here: Geolocation calls requestPermissionForFrame()
- // directly, and we need to be attached so that the embedder can call
- // our setIsAllowed().
- m_bridgeId = getWebViewClient()->geolocationService()->attachBridge(this);
- ASSERT(m_bridgeId);
}
WebGeolocationServiceBridgeImpl::~WebGeolocationServiceBridgeImpl()
@@ -116,8 +113,7 @@ WebGeolocationServiceBridgeImpl::~WebGeolocationServiceBridgeImpl()
bool WebGeolocationServiceBridgeImpl::startUpdating(PositionOptions* positionOptions)
{
- if (!m_bridgeId)
- m_bridgeId = getWebViewClient()->geolocationService()->attachBridge(this);
+ attachBridgeIfNeeded();
getWebViewClient()->geolocationService()->startUpdating(m_bridgeId, m_GeolocationServiceChromium->frame()->document()->url(), positionOptions->enableHighAccuracy());
return true;
}
@@ -148,6 +144,12 @@ int WebGeolocationServiceBridgeImpl::getBridgeId() const
return m_bridgeId;
}
+void WebGeolocationServiceBridgeImpl::attachBridgeIfNeeded()
+{
+ if (!m_bridgeId)
+ m_bridgeId = getWebViewClient()->geolocationService()->attachBridge(this);
+}
+
void WebGeolocationServiceBridgeImpl::setIsAllowed(bool allowed)
{
m_GeolocationServiceChromium->setIsAllowed(allowed);
diff --git a/WebKit/chromium/src/WebGraphicsContext3D.cpp b/WebKit/chromium/src/WebGraphicsContext3D.cpp
index bc23703..ce6f55d 100644
--- a/WebKit/chromium/src/WebGraphicsContext3D.cpp
+++ b/WebKit/chromium/src/WebGraphicsContext3D.cpp
@@ -31,8 +31,6 @@
#include "config.h"
#include "WebGraphicsContext3D.h"
-#if ENABLE(3D_CANVAS)
-
#include "WebGraphicsContext3DDefaultImpl.h"
namespace WebKit {
@@ -47,5 +45,3 @@ WebGraphicsContext3D* WebGraphicsContext3D::createDefault()
}
} // namespace WebKit
-
-#endif // ENABLE(3D_CANVAS)
diff --git a/WebKit/chromium/src/WebIndexedDatabaseImpl.cpp b/WebKit/chromium/src/WebIndexedDatabaseImpl.cpp
index 6a6327b..4820cfb 100644
--- a/WebKit/chromium/src/WebIndexedDatabaseImpl.cpp
+++ b/WebKit/chromium/src/WebIndexedDatabaseImpl.cpp
@@ -47,9 +47,9 @@ WebIndexedDatabaseImpl::~WebIndexedDatabaseImpl()
{
}
-void WebIndexedDatabaseImpl::open(const WebString& name, const WebString& description, bool modifyDatabase, WebIDBCallbacks<WebIDBDatabase>* callbacksPtr, WebFrame*, int& exceptionCode)
+void WebIndexedDatabaseImpl::open(const WebString& name, const WebString& description, bool modifyDatabase, WebIDBCallbacks* callbacksPtr, const WebString& origin, WebFrame*, int& exceptionCode)
{
- OwnPtr<WebIDBCallbacks<WebIDBDatabase>*> callbacks(callbacksPtr);
+ OwnPtr<WebIDBCallbacks> callbacks(callbacksPtr);
callbacks->onError(WebIDBDatabaseError(0, "Not implemented"));
// FIXME: Implement for realz.
}
diff --git a/WebKit/chromium/src/WebIndexedDatabaseImpl.h b/WebKit/chromium/src/WebIndexedDatabaseImpl.h
index b4b8c99..0402ede 100644
--- a/WebKit/chromium/src/WebIndexedDatabaseImpl.h
+++ b/WebKit/chromium/src/WebIndexedDatabaseImpl.h
@@ -37,7 +37,7 @@ class WebIndexedDatabaseImpl : public WebIndexedDatabase {
public:
virtual ~WebIndexedDatabaseImpl();
- virtual void open(const WebString& name, const WebString& description, bool modifyDatabase, WebIDBCallbacks<WebIDBDatabase>*, WebFrame*, int& exceptionCode);
+ virtual void open(const WebString& name, const WebString& description, bool modifyDatabase, WebIDBCallbacks*, const WebString& origin, WebFrame*, int& exceptionCode);
};
} // namespace WebKit
diff --git a/WebKit/chromium/src/WebInputElement.cpp b/WebKit/chromium/src/WebInputElement.cpp
index 2f65ad2..68bb91e 100644
--- a/WebKit/chromium/src/WebInputElement.cpp
+++ b/WebKit/chromium/src/WebInputElement.cpp
@@ -70,6 +70,11 @@ void WebInputElement::setActivatedSubmit(bool activated)
unwrap<HTMLInputElement>()->setActivatedSubmit(activated);
}
+int WebInputElement::size() const
+{
+ return constUnwrap<HTMLInputElement>()->size();
+}
+
void WebInputElement::setValue(const WebString& value)
{
unwrap<HTMLInputElement>()->setValue(value);
diff --git a/WebKit/chromium/src/WebInputEventConversion.h b/WebKit/chromium/src/WebInputEventConversion.h
index 3018973..dc5db35 100644
--- a/WebKit/chromium/src/WebInputEventConversion.h
+++ b/WebKit/chromium/src/WebInputEventConversion.h
@@ -31,9 +31,7 @@
#ifndef WebInputEventConversion_h
#define WebInputEventConversion_h
-// FIXME: This relative path is a temporary hack to support using this
-// header from webkit/glue.
-#include "../public/WebInputEvent.h"
+#include "WebInputEvent.h"
#include "PlatformKeyboardEvent.h"
#include "PlatformMouseEvent.h"
diff --git a/WebKit/chromium/src/WebLabelElement.cpp b/WebKit/chromium/src/WebLabelElement.cpp
index 9546986..ef2c698 100644
--- a/WebKit/chromium/src/WebLabelElement.cpp
+++ b/WebKit/chromium/src/WebLabelElement.cpp
@@ -42,7 +42,7 @@ namespace WebKit {
WebElement WebLabelElement::correspondingControl()
{
- return WebElement(unwrap<HTMLLabelElement>()->correspondingControl());
+ return WebElement(unwrap<HTMLLabelElement>()->control());
}
WebLabelElement::WebLabelElement(const PassRefPtr<HTMLLabelElement>& elem)
diff --git a/WebKit/chromium/src/WebMediaPlayerClientImpl.cpp b/WebKit/chromium/src/WebMediaPlayerClientImpl.cpp
index d7dbade..03051c3 100644
--- a/WebKit/chromium/src/WebMediaPlayerClientImpl.cpp
+++ b/WebKit/chromium/src/WebMediaPlayerClientImpl.cpp
@@ -133,6 +133,13 @@ void WebMediaPlayerClientImpl::sawUnsupportedTracks()
m_mediaPlayer->mediaPlayerClient()->mediaPlayerSawUnsupportedTracks(m_mediaPlayer);
}
+float WebMediaPlayerClientImpl::volume() const
+{
+ if (m_mediaPlayer)
+ return m_mediaPlayer->volume();
+ return 0.0f;
+}
+
// MediaPlayerPrivateInterface -------------------------------------------------
void WebMediaPlayerClientImpl::load(const String& url)
diff --git a/WebKit/chromium/src/WebMediaPlayerClientImpl.h b/WebKit/chromium/src/WebMediaPlayerClientImpl.h
index 4adbed2..57c93b7 100644
--- a/WebKit/chromium/src/WebMediaPlayerClientImpl.h
+++ b/WebKit/chromium/src/WebMediaPlayerClientImpl.h
@@ -61,6 +61,7 @@ public:
virtual void rateChanged();
virtual void sizeChanged();
virtual void sawUnsupportedTracks();
+ virtual float volume() const;
// MediaPlayerPrivateInterface methods:
virtual void load(const WebCore::String& url);
diff --git a/WebKit/chromium/src/WebNode.cpp b/WebKit/chromium/src/WebNode.cpp
index 90bbb34..31ad70f 100644
--- a/WebKit/chromium/src/WebNode.cpp
+++ b/WebKit/chromium/src/WebNode.cpp
@@ -94,11 +94,6 @@ bool WebNode::setNodeValue(const WebString& value)
return !exceptionCode;
}
-WebFrame* WebNode::frame() const
-{
- return WebFrameImpl::fromFrame(m_private->document()->frame());
-}
-
WebDocument WebNode::document() const
{
return WebDocument(m_private->document());
diff --git a/WebKit/chromium/src/WebPageSerializerImpl.cpp b/WebKit/chromium/src/WebPageSerializerImpl.cpp
index 008e0c7..e65af85 100644
--- a/WebKit/chromium/src/WebPageSerializerImpl.cpp
+++ b/WebKit/chromium/src/WebPageSerializerImpl.cpp
@@ -510,7 +510,7 @@ bool WebPageSerializerImpl::serialize()
const KURL& currentFrameURL = currentFrame->frame()->loader()->url();
// Check whether we have done this document.
- if (m_localLinks.contains(currentFrameURL.string())) {
+ if (currentFrameURL.isValid() && m_localLinks.contains(currentFrameURL.string())) {
// A new document, we will serialize it.
didSerialization = true;
// Get target encoding for current document.
diff --git a/WebKit/chromium/src/WebPluginContainerImpl.cpp b/WebKit/chromium/src/WebPluginContainerImpl.cpp
index b207a25..5807a79 100644
--- a/WebKit/chromium/src/WebPluginContainerImpl.cpp
+++ b/WebKit/chromium/src/WebPluginContainerImpl.cpp
@@ -35,6 +35,7 @@
#include "ChromeClientImpl.h"
#include "WebCursorInfo.h"
#include "WebDataSourceImpl.h"
+#include "WebElement.h"
#include "WebInputEvent.h"
#include "WebInputEventConversion.h"
#include "WebKit.h"
@@ -239,6 +240,11 @@ void WebPluginContainerImpl::printEnd()
return m_webPlugin->printEnd();
}
+WebElement WebPluginContainerImpl::element()
+{
+ return WebElement(m_element);
+}
+
void WebPluginContainerImpl::invalidate()
{
Widget::invalidate();
diff --git a/WebKit/chromium/src/WebPluginContainerImpl.h b/WebKit/chromium/src/WebPluginContainerImpl.h
index 4163ee5..ad2fa95 100644
--- a/WebKit/chromium/src/WebPluginContainerImpl.h
+++ b/WebKit/chromium/src/WebPluginContainerImpl.h
@@ -31,9 +31,7 @@
#ifndef WebPluginContainerImpl_h
#define WebPluginContainerImpl_h
-// FIXME: This relative path is a temporary hack to support using this
-// header from webkit/glue.
-#include "../public/WebPluginContainer.h"
+#include "WebPluginContainer.h"
#include "Widget.h"
#include <wtf/PassRefPtr.h>
@@ -77,6 +75,7 @@ public:
virtual void widgetPositionsUpdated();
// WebPluginContainer methods
+ virtual WebElement element();
virtual void invalidate();
virtual void invalidateRect(const WebRect&);
virtual void reportGeometry();
diff --git a/WebKit/chromium/src/WebPluginLoadObserver.h b/WebKit/chromium/src/WebPluginLoadObserver.h
index 097d08d..7bd06eb 100644
--- a/WebKit/chromium/src/WebPluginLoadObserver.h
+++ b/WebKit/chromium/src/WebPluginLoadObserver.h
@@ -31,7 +31,7 @@
#ifndef WebPluginLoadObserver_h
#define WebPluginLoadObserver_h
-#include "../public/WebURL.h"
+#include "WebURL.h"
namespace WebKit {
diff --git a/WebKit/chromium/src/WebPopupMenuImpl.h b/WebKit/chromium/src/WebPopupMenuImpl.h
index ca50b81..a2602b0 100644
--- a/WebKit/chromium/src/WebPopupMenuImpl.h
+++ b/WebKit/chromium/src/WebPopupMenuImpl.h
@@ -31,14 +31,10 @@
#ifndef WebPopupMenuImpl_h
#define WebPopupMenuImpl_h
-// FIXME: Add this to FramelessScrollViewClient.h
-namespace WebCore { class FramelessScrollView; }
-
#include "FramelessScrollViewClient.h"
-// FIXME: remove the relative paths once glue/ consumers are removed.
-#include "../public/WebPoint.h"
-#include "../public/WebPopupMenu.h"
-#include "../public/WebSize.h"
+#include "WebPoint.h"
+#include "WebPopupMenu.h"
+#include "WebSize.h"
#include <wtf/RefCounted.h>
namespace WebCore {
diff --git a/WebKit/chromium/src/WebScrollbarImpl.cpp b/WebKit/chromium/src/WebScrollbarImpl.cpp
new file mode 100644
index 0000000..8bf5340
--- /dev/null
+++ b/WebKit/chromium/src/WebScrollbarImpl.cpp
@@ -0,0 +1,297 @@
+/*
+ * Copyright (C) 2010 Google 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:
+ *
+ * * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * * 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.
+ * * Neither the name of Google Inc. nor the names of its
+ * contributors may be used to endorse or promote products derived from
+ * this software without specific prior written permission.
+ *
+ * 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 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 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 "WebScrollbarImpl.h"
+
+#include "GraphicsContext.h"
+#include "KeyboardCodes.h"
+#include "PlatformContextSkia.h"
+#include "Scrollbar.h"
+#include "ScrollbarTheme.h"
+#include "ScrollTypes.h"
+#include "WebCanvas.h"
+#include "WebInputEvent.h"
+#include "WebInputEventConversion.h"
+#include "WebRect.h"
+#include "WebScrollbarClient.h"
+#include "WebVector.h"
+#include "WebViewImpl.h"
+
+using namespace std;
+using namespace WebCore;
+
+namespace WebKit {
+
+WebScrollbar* WebScrollbar::create(WebScrollbarClient* client, Orientation orientation)
+{
+ return new WebScrollbarImpl(client, orientation);
+}
+
+int WebScrollbar::defaultThickness()
+{
+ return ScrollbarTheme::nativeTheme()->scrollbarThickness();
+}
+
+WebScrollbarImpl::WebScrollbarImpl(WebScrollbarClient* client, Orientation orientation)
+ : m_client(client)
+{
+ m_scrollbar = Scrollbar::createNativeScrollbar(
+ static_cast<ScrollbarClient*>(this),
+ static_cast<ScrollbarOrientation>(orientation),
+ RegularScrollbar);
+}
+
+WebScrollbarImpl::~WebScrollbarImpl()
+{
+}
+
+void WebScrollbarImpl::setLocation(const WebRect& rect)
+{
+ WebCore::IntRect oldRect = m_scrollbar->frameRect();
+ m_scrollbar->setFrameRect(rect);
+ if (WebRect(oldRect) != rect)
+ m_scrollbar->invalidate();
+
+ int length = m_scrollbar->orientation() == HorizontalScrollbar ? m_scrollbar->width() : m_scrollbar->height();
+ int pageStep = max(max<int>(length * Scrollbar::minFractionToStepWhenPaging(), length - Scrollbar::maxOverlapBetweenPages()), 1);
+ m_scrollbar->setSteps(Scrollbar::pixelsPerLineStep(), pageStep);
+ m_scrollbar->setEnabled(m_scrollbar->totalSize() > length);
+ m_scrollbar->setProportion(length, m_scrollbar->totalSize());
+}
+
+int WebScrollbarImpl::value() const
+{
+ return m_scrollbar->value();
+}
+
+void WebScrollbarImpl::setValue(int position)
+{
+ m_scrollbar->setValue(position);
+}
+
+void WebScrollbarImpl::setDocumentSize(int size)
+{
+ int length = m_scrollbar->orientation() == HorizontalScrollbar ? m_scrollbar->width() : m_scrollbar->height();
+ m_scrollbar->setEnabled(size > length);
+ m_scrollbar->setProportion(length, size);
+}
+
+void WebScrollbarImpl::scroll(ScrollDirection direction, ScrollGranularity granularity, float multiplier)
+{
+ WebCore::ScrollDirection dir;
+ bool horizontal = m_scrollbar->orientation() == HorizontalScrollbar;
+ if (direction == ScrollForward)
+ dir = horizontal ? ScrollRight : ScrollDown;
+ else
+ dir = horizontal ? ScrollLeft : ScrollUp;
+ m_scrollbar->scroll(dir, static_cast<WebCore::ScrollGranularity>(granularity), multiplier);
+}
+
+void WebScrollbarImpl::paint(WebCanvas* canvas, const WebRect& rect)
+{
+#if WEBKIT_USING_CG
+ GraphicsContext gc(canvas);
+#elif WEBKIT_USING_SKIA
+ PlatformContextSkia context(canvas);
+
+ // PlatformGraphicsContext is actually a pointer to PlatformContextSkia
+ GraphicsContext gc(reinterpret_cast<PlatformGraphicsContext*>(&context));
+#else
+ notImplemented();
+#endif
+
+ m_scrollbar->paint(&gc, rect);
+}
+
+bool WebScrollbarImpl::handleInputEvent(const WebInputEvent& event)
+{
+ switch (event.type) {
+ case WebInputEvent::MouseDown:
+ return onMouseDown(event);
+ case WebInputEvent::MouseUp:
+ return onMouseUp(event);
+ case WebInputEvent::MouseMove:
+ return onMouseMove(event);
+ case WebInputEvent::MouseLeave:
+ return onMouseLeave(event);
+ case WebInputEvent::MouseWheel:
+ return onMouseWheel(event);
+ case WebInputEvent::KeyDown:
+ return onKeyDown(event);
+ case WebInputEvent::Undefined:
+ case WebInputEvent::MouseEnter:
+ case WebInputEvent::RawKeyDown:
+ case WebInputEvent::KeyUp:
+ case WebInputEvent::Char:
+ case WebInputEvent::TouchStart:
+ case WebInputEvent::TouchMove:
+ case WebInputEvent::TouchEnd:
+ case WebInputEvent::TouchCancel:
+ default:
+ break;
+ }
+ return false;
+}
+
+bool WebScrollbarImpl::onMouseDown(const WebInputEvent& event)
+{
+ WebMouseEvent mousedown = *static_cast<const WebMouseEvent*>(&event);
+ if (!m_scrollbar->frameRect().contains(mousedown.x, mousedown.y))
+ return false;
+
+ mousedown.x -= m_scrollbar->x();
+ mousedown.y -= m_scrollbar->y();
+ m_scrollbar->mouseDown(PlatformMouseEventBuilder(m_scrollbar.get(), mousedown));
+ return true;
+ }
+
+bool WebScrollbarImpl::onMouseUp(const WebInputEvent& event)
+{
+ if (m_scrollbar->pressedPart() == NoPart)
+ return false;
+
+ return m_scrollbar->mouseUp();
+}
+
+bool WebScrollbarImpl::onMouseMove(const WebInputEvent& event)
+{
+ WebMouseEvent mousemove = *static_cast<const WebMouseEvent*>(&event);
+ if (m_scrollbar->frameRect().contains(mousemove.x, mousemove.y)
+ || m_scrollbar->pressedPart() != NoPart) {
+ mousemove.x -= m_scrollbar->x();
+ mousemove.y -= m_scrollbar->y();
+ return m_scrollbar->mouseMoved(PlatformMouseEventBuilder(m_scrollbar.get(), mousemove));
+ }
+
+ if (m_scrollbar->hoveredPart() != NoPart)
+ m_scrollbar->mouseExited();
+ return false;
+}
+
+bool WebScrollbarImpl::onMouseLeave(const WebInputEvent& event)
+{
+ if (m_scrollbar->hoveredPart() == NoPart)
+ return false;
+
+ return m_scrollbar->mouseExited();
+}
+
+bool WebScrollbarImpl::onMouseWheel(const WebInputEvent& event)
+{
+ // Same logic as in Scrollview.cpp. If we can move at all, we'll accept the event.
+ WebMouseWheelEvent mousewheel = *static_cast<const WebMouseWheelEvent*>(&event);
+ int maxScrollDelta = m_scrollbar->maximum() - m_scrollbar->value();
+ float delta = m_scrollbar->orientation() == HorizontalScrollbar ? mousewheel.deltaX : mousewheel.deltaY;
+ if ((delta < 0 && maxScrollDelta > 0) || (delta > 0 && m_scrollbar->value() > 0)) {
+ if (mousewheel.scrollByPage) {
+ ASSERT(m_scrollbar->orientation() == VerticalScrollbar);
+ bool negative = delta < 0;
+ delta = max(max<int>(m_scrollbar->visibleSize() * Scrollbar::minFractionToStepWhenPaging(), m_scrollbar->visibleSize() - Scrollbar::maxOverlapBetweenPages()), 1);
+ if (negative)
+ delta *= -1;
+ }
+ m_scrollbar->setValue(m_scrollbar->value() - delta);
+ return true;
+ }
+
+ return false;
+ }
+
+bool WebScrollbarImpl::onKeyDown(const WebInputEvent& event)
+{
+ WebKeyboardEvent keyboard = *static_cast<const WebKeyboardEvent*>(&event);
+ int keyCode;
+ // We have to duplicate this logic from WebViewImpl because there it uses
+ // Char and RawKeyDown events, which don't exist at this point.
+ if (keyboard.windowsKeyCode == VKEY_SPACE)
+ keyCode = ((keyboard.modifiers & WebInputEvent::ShiftKey) ? VKEY_PRIOR : VKEY_NEXT);
+ else {
+ if (keyboard.modifiers == WebInputEvent::ControlKey) {
+ // Match FF behavior in the sense that Ctrl+home/end are the only Ctrl
+ // key combinations which affect scrolling. Safari is buggy in the
+ // sense that it scrolls the page for all Ctrl+scrolling key
+ // combinations. For e.g. Ctrl+pgup/pgdn/up/down, etc.
+ switch (keyboard.windowsKeyCode) {
+ case VKEY_HOME:
+ case VKEY_END:
+ break;
+ default:
+ return false;
+ }
+ }
+
+ if (keyboard.isSystemKey || (keyboard.modifiers & WebInputEvent::ShiftKey))
+ return false;
+
+ keyCode = keyboard.windowsKeyCode;
+ }
+ WebCore::ScrollDirection scrollDirection;
+ WebCore::ScrollGranularity scrollGranularity;
+ if (WebViewImpl::mapKeyCodeForScroll(keyCode, &scrollDirection, &scrollGranularity)) {
+ // Will return false if scroll direction wasn't compatible with this scrollbar.
+ return m_scrollbar->scroll(scrollDirection, scrollGranularity);
+ }
+ return false;
+}
+
+void WebScrollbarImpl::valueChanged(WebCore::Scrollbar*)
+{
+ m_client->valueChanged(this);
+}
+
+void WebScrollbarImpl::invalidateScrollbarRect(WebCore::Scrollbar*, const WebCore::IntRect& rect)
+{
+ WebRect webrect(rect);
+ webrect.x += m_scrollbar->x();
+ webrect.y += m_scrollbar->y();
+ m_client->invalidateScrollbarRect(this, webrect);
+}
+
+bool WebScrollbarImpl::isActive() const
+{
+ return true;
+}
+
+bool WebScrollbarImpl::scrollbarCornerPresent() const
+{
+ return false;
+}
+
+void WebScrollbarImpl::getTickmarks(Vector<WebCore::IntRect>& tickmarks) const
+{
+ WebVector<WebRect> ticks;
+ m_client->getTickmarks(const_cast<WebScrollbarImpl*>(this), &ticks);
+ tickmarks.resize(ticks.size());
+ for (size_t i = 0; i < ticks.size(); ++i)
+ tickmarks[i] = ticks[i];
+}
+
+} // namespace WebKit
diff --git a/WebKit/chromium/src/WebScrollbarImpl.h b/WebKit/chromium/src/WebScrollbarImpl.h
new file mode 100644
index 0000000..a041ccc
--- /dev/null
+++ b/WebKit/chromium/src/WebScrollbarImpl.h
@@ -0,0 +1,82 @@
+/*
+ * Copyright (C) 2010 Google 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:
+ *
+ * * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * * 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.
+ * * Neither the name of Google Inc. nor the names of its
+ * contributors may be used to endorse or promote products derived from
+ * this software without specific prior written permission.
+ *
+ * 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 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 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 WebScrollbarImpl_h
+#define WebScrollbarImpl_h
+
+#include "ScrollbarClient.h"
+#include "WebScrollbar.h"
+
+#include <wtf/RefPtr.h>
+
+namespace WebCore {
+class Scrollbar;
+}
+
+namespace WebKit {
+
+class WebScrollbarImpl : public WebScrollbar,
+ public WebCore::ScrollbarClient {
+public:
+ WebScrollbarImpl(WebScrollbarClient*, Orientation orientation);
+ ~WebScrollbarImpl();
+
+ // WebKit::WebScrollbar methods
+ virtual void setLocation(const WebRect&);
+ virtual int value() const;
+ virtual void setValue(int position);
+ virtual void setDocumentSize(int size);
+ virtual void scroll(ScrollDirection, ScrollGranularity, float multiplier);
+ virtual void paint(WebCanvas*, const WebRect&);
+ virtual bool handleInputEvent(const WebInputEvent&);
+
+ // WebCore::ScrollbarClient methods
+ virtual void valueChanged(WebCore::Scrollbar*);
+ virtual void invalidateScrollbarRect(WebCore::Scrollbar*, const WebCore::IntRect&);
+ virtual bool isActive() const;
+ virtual bool scrollbarCornerPresent() const;
+ virtual void getTickmarks(Vector<WebCore::IntRect>&) const;
+
+private:
+ bool onMouseDown(const WebInputEvent& event);
+ bool onMouseUp(const WebInputEvent& event);
+ bool onMouseMove(const WebInputEvent& event);
+ bool onMouseLeave(const WebInputEvent& event);
+ bool onMouseWheel(const WebInputEvent& event);
+ bool onKeyDown(const WebInputEvent& event);
+
+ WebScrollbarClient* m_client;
+
+ RefPtr<WebCore::Scrollbar> m_scrollbar;
+};
+
+} // namespace WebKit
+
+#endif
diff --git a/WebKit/chromium/src/WebSecurityPolicy.cpp b/WebKit/chromium/src/WebSecurityPolicy.cpp
index cb7ded0..4b2b557 100644
--- a/WebKit/chromium/src/WebSecurityPolicy.cpp
+++ b/WebKit/chromium/src/WebSecurityPolicy.cpp
@@ -83,22 +83,6 @@ void WebSecurityPolicy::resetOriginAccessWhitelists()
SecurityOrigin::resetOriginAccessWhitelists();
}
-// To be removed when Chromium's test_shell has proper references.
-void WebSecurityPolicy::whiteListAccessFromOrigin(const WebURL& sourceOrigin,
- const WebString& destinationProtocol,
- const WebString& destinationHost,
- bool allowDestinationSubdomains)
-{
- addOriginAccessWhitelistEntry(sourceOrigin,
- destinationProtocol, destinationHost,
- allowDestinationSubdomains);
-}
-
-void WebSecurityPolicy::resetOriginAccessWhiteLists()
-{
- resetOriginAccessWhitelists();
-}
-
bool WebSecurityPolicy::shouldHideReferrer(const WebURL& url, const WebString& referrer)
{
return SecurityOrigin::shouldHideReferrer(url, referrer);
diff --git a/WebKit/chromium/src/WebSettingsImpl.h b/WebKit/chromium/src/WebSettingsImpl.h
index 54c660b..fdc03f0 100644
--- a/WebKit/chromium/src/WebSettingsImpl.h
+++ b/WebKit/chromium/src/WebSettingsImpl.h
@@ -31,8 +31,7 @@
#ifndef WebSettingsImpl_h
#define WebSettingsImpl_h
-// TODO(jorlow): Remove this hack once WebView is free of glue.
-#include "../public/WebSettings.h"
+#include "WebSettings.h"
namespace WebCore {
class Settings;
diff --git a/WebKit/chromium/src/WebSharedWorkerImpl.cpp b/WebKit/chromium/src/WebSharedWorkerImpl.cpp
index 4547336..91636d9 100644
--- a/WebKit/chromium/src/WebSharedWorkerImpl.cpp
+++ b/WebKit/chromium/src/WebSharedWorkerImpl.cpp
@@ -92,7 +92,7 @@ void WebSharedWorkerImpl::connectTask(ScriptExecutionContext* context, WebShared
workerContext->toSharedWorkerContext()->dispatchEvent(createConnectEvent(port));
}
-void WebSharedWorkerImpl::startWorkerContext(const WebURL& url, const WebString& name, const WebString& userAgent, const WebString& sourceCode)
+void WebSharedWorkerImpl::startWorkerContext(const WebURL& url, const WebString& name, const WebString& userAgent, const WebString& sourceCode, long long)
{
initializeLoader(url);
setWorkerThread(SharedWorkerThread::create(name, url, userAgent, sourceCode, *this, *this));
diff --git a/WebKit/chromium/src/WebSharedWorkerImpl.h b/WebKit/chromium/src/WebSharedWorkerImpl.h
index 7c10d76..b591c7b 100644
--- a/WebKit/chromium/src/WebSharedWorkerImpl.h
+++ b/WebKit/chromium/src/WebSharedWorkerImpl.h
@@ -51,7 +51,7 @@ public:
// WebSharedWorker methods:
virtual bool isStarted();
- virtual void startWorkerContext(const WebURL&, const WebString& name, const WebString& userAgent, const WebString& sourceCode);
+ virtual void startWorkerContext(const WebURL&, const WebString& name, const WebString& userAgent, const WebString& sourceCode, long long);
virtual void connect(WebMessagePortChannel*, ConnectListener*);
virtual void terminateWorkerContext();
virtual void clientDestroyed();
diff --git a/WebKit/chromium/src/WebURLResponse.cpp b/WebKit/chromium/src/WebURLResponse.cpp
index 3b0600c..1aba54e 100644
--- a/WebKit/chromium/src/WebURLResponse.cpp
+++ b/WebKit/chromium/src/WebURLResponse.cpp
@@ -93,6 +93,16 @@ void WebURLResponse::setURL(const WebURL& url)
m_private->m_resourceResponse->setURL(url);
}
+double WebURLResponse::responseTime() const
+{
+ return m_private->m_resourceResponse->responseTime();
+}
+
+void WebURLResponse::setResponseTime(double responseTime)
+{
+ m_private->m_resourceResponse->setResponseTime(responseTime);
+}
+
WebString WebURLResponse::mimeType() const
{
return m_private->m_resourceResponse->mimeType();
@@ -267,6 +277,16 @@ void WebURLResponse::setWasFetchedViaSPDY(bool value)
m_private->m_resourceResponse->setWasFetchedViaSPDY(value);
}
+bool WebURLResponse::wasNpnNegotiated() const
+{
+ return m_private->m_resourceResponse->wasNpnNegotiated();
+}
+
+void WebURLResponse::setWasNpnNegotiated(bool value)
+{
+ m_private->m_resourceResponse->setWasNpnNegotiated(value);
+}
+
bool WebURLResponse::isMultipartPayload() const
{
return m_private->m_resourceResponse->isMultipartPayload();
diff --git a/WebKit/chromium/src/WebViewImpl.cpp b/WebKit/chromium/src/WebViewImpl.cpp
index 81a4ff3..94cf36c 100644
--- a/WebKit/chromium/src/WebViewImpl.cpp
+++ b/WebKit/chromium/src/WebViewImpl.cpp
@@ -780,45 +780,53 @@ bool WebViewImpl::scrollViewWithKeyboard(int keyCode, int modifiers)
{
ScrollDirection scrollDirection;
ScrollGranularity scrollGranularity;
+ if (!mapKeyCodeForScroll(keyCode, &scrollDirection, &scrollGranularity))
+ return false;
+ return propagateScroll(scrollDirection, scrollGranularity);
+}
+bool WebViewImpl::mapKeyCodeForScroll(int keyCode,
+ WebCore::ScrollDirection* scrollDirection,
+ WebCore::ScrollGranularity* scrollGranularity)
+{
switch (keyCode) {
case VKEY_LEFT:
- scrollDirection = ScrollLeft;
- scrollGranularity = ScrollByLine;
+ *scrollDirection = ScrollLeft;
+ *scrollGranularity = ScrollByLine;
break;
case VKEY_RIGHT:
- scrollDirection = ScrollRight;
- scrollGranularity = ScrollByLine;
+ *scrollDirection = ScrollRight;
+ *scrollGranularity = ScrollByLine;
break;
case VKEY_UP:
- scrollDirection = ScrollUp;
- scrollGranularity = ScrollByLine;
+ *scrollDirection = ScrollUp;
+ *scrollGranularity = ScrollByLine;
break;
case VKEY_DOWN:
- scrollDirection = ScrollDown;
- scrollGranularity = ScrollByLine;
+ *scrollDirection = ScrollDown;
+ *scrollGranularity = ScrollByLine;
break;
case VKEY_HOME:
- scrollDirection = ScrollUp;
- scrollGranularity = ScrollByDocument;
+ *scrollDirection = ScrollUp;
+ *scrollGranularity = ScrollByDocument;
break;
case VKEY_END:
- scrollDirection = ScrollDown;
- scrollGranularity = ScrollByDocument;
+ *scrollDirection = ScrollDown;
+ *scrollGranularity = ScrollByDocument;
break;
case VKEY_PRIOR: // page up
- scrollDirection = ScrollUp;
- scrollGranularity = ScrollByPage;
+ *scrollDirection = ScrollUp;
+ *scrollGranularity = ScrollByPage;
break;
case VKEY_NEXT: // page down
- scrollDirection = ScrollDown;
- scrollGranularity = ScrollByPage;
+ *scrollDirection = ScrollDown;
+ *scrollGranularity = ScrollByPage;
break;
default:
return false;
}
- return propagateScroll(scrollDirection, scrollGranularity);
+ return true;
}
void WebViewImpl::hideSelectPopup()
diff --git a/WebKit/chromium/src/WebViewImpl.h b/WebKit/chromium/src/WebViewImpl.h
index 0bed223..b561e49 100644
--- a/WebKit/chromium/src/WebViewImpl.h
+++ b/WebKit/chromium/src/WebViewImpl.h
@@ -31,12 +31,11 @@
#ifndef WebViewImpl_h
#define WebViewImpl_h
-// FIXME: Remove these relative paths once consumers from glue are removed.
-#include "../public/WebNavigationPolicy.h"
-#include "../public/WebPoint.h"
-#include "../public/WebSize.h"
-#include "../public/WebString.h"
-#include "../public/WebView.h"
+#include "WebNavigationPolicy.h"
+#include "WebPoint.h"
+#include "WebSize.h"
+#include "WebString.h"
+#include "WebView.h"
#include "BackForwardListClientImpl.h"
#include "ChromeClientImpl.h"
@@ -47,7 +46,6 @@
#include "InspectorClientImpl.h"
#include "LayerRendererChromium.h"
#include "NotificationPresenterImpl.h"
-
#include <wtf/OwnPtr.h>
#include <wtf/RefCounted.h>
@@ -312,6 +310,11 @@ public:
WebCore::PopupContainer* selectPopup() const { return m_selectPopup.get(); }
+ // Returns true if the event leads to scrolling.
+ static bool mapKeyCodeForScroll(int keyCode,
+ WebCore::ScrollDirection* scrollDirection,
+ WebCore::ScrollGranularity* scrollGranularity);
+
private:
friend class WebView; // So WebView::Create can call our constructor
friend class WTF::RefCounted<WebViewImpl>;
diff --git a/WebKit/chromium/src/WebWorkerBase.cpp b/WebKit/chromium/src/WebWorkerBase.cpp
index 8e26560..1fedeb2 100644
--- a/WebKit/chromium/src/WebWorkerBase.cpp
+++ b/WebKit/chromium/src/WebWorkerBase.cpp
@@ -31,6 +31,7 @@
#include "config.h"
#include "WebWorkerBase.h"
+#include "DatabaseTask.h"
#include "GenericWorkerTask.h"
#include "MessagePortChannel.h"
#include "PlatformMessagePortChannel.h"
@@ -39,9 +40,12 @@
#include "WebFrameClient.h"
#include "WebFrameImpl.h"
#include "WebMessagePortChannel.h"
+#include "WebRuntimeFeatures.h"
+#include "WebSettings.h"
#include "WebView.h"
#include "WebWorkerClient.h"
+#include "WorkerScriptController.h"
#include "WorkerThread.h"
#include <wtf/MainThread.h>
@@ -51,6 +55,67 @@ namespace WebKit {
#if ENABLE(WORKERS)
+static const char allowDatabaseMode[] = "allowDatabaseMode";
+
+namespace {
+
+// This class is used to route the result of the WebWorkerBase::allowDatabase
+// call back to the worker context.
+class AllowDatabaseMainThreadBridge : public ThreadSafeShared<AllowDatabaseMainThreadBridge> {
+public:
+ static PassRefPtr<AllowDatabaseMainThreadBridge> create(WebWorkerBase* worker, const WebCore::String& mode, WebCommonWorkerClient* commonClient, WebFrame* frame, const WebCore::String& name, const WebCore::String& displayName, unsigned long estimatedSize)
+ {
+ return adoptRef(new AllowDatabaseMainThreadBridge(worker, mode, commonClient, frame, name, displayName, estimatedSize));
+ }
+
+ // These methods are invoked on the worker context.
+ void cancel()
+ {
+ MutexLocker locker(m_mutex);
+ m_worker = 0;
+ }
+
+ bool result()
+ {
+ return m_result;
+ }
+
+ // This method is invoked on the main thread.
+ void signalCompleted(bool result)
+ {
+ MutexLocker locker(m_mutex);
+ if (m_worker)
+ m_worker->postTaskForModeToWorkerContext(createCallbackTask(&didComplete, this, result), m_mode);
+ }
+
+private:
+ AllowDatabaseMainThreadBridge(WebWorkerBase* worker, const WebCore::String& mode, WebCommonWorkerClient* commonClient, WebFrame* frame, const WebCore::String& name, const WebCore::String& displayName, unsigned long estimatedSize)
+ : m_worker(worker)
+ , m_mode(mode)
+ {
+ worker->dispatchTaskToMainThread(createCallbackTask(&allowDatabaseTask, commonClient, frame, String(name), String(displayName), estimatedSize, this));
+ }
+
+ static void allowDatabaseTask(WebCore::ScriptExecutionContext* context, WebCommonWorkerClient* commonClient, WebFrame* frame, const WebCore::String name, const WebCore::String displayName, unsigned long estimatedSize, PassRefPtr<AllowDatabaseMainThreadBridge> bridge)
+ {
+ if (!commonClient)
+ bridge->signalCompleted(false);
+ else
+ bridge->signalCompleted(commonClient->allowDatabase(frame, name, displayName, estimatedSize));
+ }
+
+ static void didComplete(WebCore::ScriptExecutionContext* context, PassRefPtr<AllowDatabaseMainThreadBridge> bridge, bool result)
+ {
+ bridge->m_result = result;
+ }
+
+ bool m_result;
+ Mutex m_mutex;
+ WebWorkerBase* m_worker;
+ WebCore::String m_mode;
+};
+}
+
// This function is called on the main thread to force to initialize some static
// values used in WebKit before any worker thread is started. This is because in
// our worker processs, we do not run any WebKit code in main thread and thus
@@ -101,6 +166,7 @@ void WebWorkerBase::initializeLoader(const WebURL& url)
// infrastructure.
ASSERT(!m_webView);
m_webView = WebView::create(0);
+ m_webView->settings()->setOfflineWebApplicationCacheEnabled(WebRuntimeFeatures::isApplicationCacheEnabled());
m_webView->initializeMainFrame(this);
WebFrameImpl* webFrame = static_cast<WebFrameImpl*>(m_webView->mainFrame());
@@ -144,6 +210,27 @@ WebApplicationCacheHost* WebWorkerBase::createApplicationCacheHost(WebFrame*, We
return 0;
}
+bool WebWorkerBase::allowDatabase(WebFrame*, const WebString& name, const WebString& displayName, unsigned long estimatedSize)
+{
+ WorkerRunLoop& runLoop = m_workerThread->runLoop();
+ WorkerScriptController* controller = WorkerScriptController::controllerForContext();
+ WorkerContext* workerContext = controller->workerContext();
+
+ // Create a unique mode just for this synchronous call.
+ String mode = allowDatabaseMode;
+ mode.append(String::number(runLoop.createUniqueId()));
+
+ RefPtr<AllowDatabaseMainThreadBridge> bridge = AllowDatabaseMainThreadBridge::create(this, mode, commonClient(), m_webView->mainFrame(), String(name), String(displayName), estimatedSize);
+
+ // Either the bridge returns, or the queue gets terminated.
+ if (runLoop.runInMode(workerContext, mode) == MessageQueueTerminated) {
+ bridge->cancel();
+ return false;
+ }
+
+ return bridge->result();
+}
+
// WorkerObjectProxy -----------------------------------------------------------
void WebWorkerBase::postMessageToWorkerObject(PassRefPtr<SerializedScriptValue> message,
diff --git a/WebKit/chromium/src/WebWorkerBase.h b/WebKit/chromium/src/WebWorkerBase.h
index a470ee4..15e8013 100644
--- a/WebKit/chromium/src/WebWorkerBase.h
+++ b/WebKit/chromium/src/WebWorkerBase.h
@@ -88,6 +88,9 @@ public:
virtual void didCreateDataSource(WebFrame*, WebDataSource*);
virtual WebApplicationCacheHost* createApplicationCacheHost(WebFrame*, WebApplicationCacheHostClient*);
+ // Controls whether access to Web Databases is allowed for this worker.
+ virtual bool allowDatabase(WebFrame*, const WebString& name, const WebString& displayName, unsigned long estimatedSize);
+
// Executes the given task on the main thread.
static void dispatchTaskToMainThread(PassOwnPtr<WebCore::ScriptExecutionContext::Task>);
diff --git a/WebKit/chromium/src/WebWorkerClientImpl.h b/WebKit/chromium/src/WebWorkerClientImpl.h
index 907499a..758c376 100644
--- a/WebKit/chromium/src/WebWorkerClientImpl.h
+++ b/WebKit/chromium/src/WebWorkerClientImpl.h
@@ -33,8 +33,7 @@
#if ENABLE(WORKERS)
-// FIXME: fix to just "WebWorkerClient.h" once nobody in glue depends on us.
-#include "../public/WebWorkerClient.h"
+#include "WebWorkerClient.h"
#include "WorkerContextProxy.h"
#include <wtf/PassOwnPtr.h>
@@ -95,6 +94,11 @@ public:
return 0;
}
virtual WebApplicationCacheHost* createApplicationCacheHost(WebApplicationCacheHostClient*) { return 0; }
+ virtual bool allowDatabase(WebFrame*, const WebString& name, const WebString& displayName, unsigned long estimatedSize)
+ {
+ ASSERT_NOT_REACHED();
+ return true;
+ }
private:
virtual ~WebWorkerClientImpl();
diff --git a/WebKit/chromium/src/WrappedResourceRequest.h b/WebKit/chromium/src/WrappedResourceRequest.h
index 97311db..3057387 100644
--- a/WebKit/chromium/src/WrappedResourceRequest.h
+++ b/WebKit/chromium/src/WrappedResourceRequest.h
@@ -31,9 +31,7 @@
#ifndef WrappedResourceRequest_h
#define WrappedResourceRequest_h
-// FIXME: This relative path is a temporary hack to support using this
-// header from webkit/glue.
-#include "../public/WebURLRequest.h"
+#include "WebURLRequest.h"
#include "WebURLRequestPrivate.h"
namespace WebKit {
diff --git a/WebKit/chromium/src/WrappedResourceResponse.h b/WebKit/chromium/src/WrappedResourceResponse.h
index af4f88f..927582d 100644
--- a/WebKit/chromium/src/WrappedResourceResponse.h
+++ b/WebKit/chromium/src/WrappedResourceResponse.h
@@ -31,9 +31,7 @@
#ifndef WrappedResourceResponse_h
#define WrappedResourceResponse_h
-// FIXME: This relative path is a temporary hack to support using this
-// header from webkit/glue.
-#include "../public/WebURLResponse.h"
+#include "WebURLResponse.h"
#include "WebURLResponsePrivate.h"
namespace WebKit {
diff --git a/WebKit/chromium/src/js/DevTools.js b/WebKit/chromium/src/js/DevTools.js
index 59b88db..6e9c090 100644
--- a/WebKit/chromium/src/js/DevTools.js
+++ b/WebKit/chromium/src/js/DevTools.js
@@ -200,7 +200,7 @@ devtools.domContentLoaded = function()
var pair = params[i].split("=");
paramsObject[pair[0]] = pair[1];
}
- WebInspector.setAttachedWindow(paramsObject.docked);
+ WebInspector.setAttachedWindow(paramsObject.docked === "true");
if (paramsObject.toolbar_color && paramsObject.text_color)
WebInspector.setToolbarColors(paramsObject.toolbar_color, paramsObject.text_color);
}
diff --git a/WebKit/efl/WebCoreSupport/ChromeClientEfl.cpp b/WebKit/efl/WebCoreSupport/ChromeClientEfl.cpp
index 31b53c8..92b95b6 100644
--- a/WebKit/efl/WebCoreSupport/ChromeClientEfl.cpp
+++ b/WebKit/efl/WebCoreSupport/ChromeClientEfl.cpp
@@ -33,7 +33,9 @@
#include "config.h"
#include "ChromeClientEfl.h"
+#if ENABLE(DATABASE)
#include "DatabaseTracker.h"
+#endif
#include "EWebKit.h"
#include "FloatRect.h"
#include "FrameLoader.h"
@@ -340,6 +342,7 @@ void ChromeClientEfl::reachedMaxAppCacheSize(int64_t spaceNeeded)
}
#endif
+#if ENABLE(DATABASE)
void ChromeClientEfl::exceededDatabaseQuota(Frame* frame, const String& databaseName)
{
uint64_t quota = ewk_settings_web_database_default_quota_get();
@@ -349,6 +352,7 @@ void ChromeClientEfl::exceededDatabaseQuota(Frame* frame, const String& database
ewk_view_exceeded_database_quota(m_view, kit(frame), databaseName.utf8().data());
}
+#endif
void ChromeClientEfl::runOpenPanel(Frame* frame, PassRefPtr<FileChooser> prpFileChooser)
{
diff --git a/WebKit/efl/ewk/ewk_main.cpp b/WebKit/efl/ewk/ewk_main.cpp
index ee9a656..145357c 100644
--- a/WebKit/efl/ewk/ewk_main.cpp
+++ b/WebKit/efl/ewk/ewk_main.cpp
@@ -24,6 +24,7 @@
#include "EWebKit.h"
#include "Logging.h"
#include "PageCache.h"
+#include "PageGroup.h"
#include "ewk_private.h"
#include "runtime/InitializeThreading.h"
#include "wtf/Threading.h"
diff --git a/WebKit/gtk/ChangeLog b/WebKit/gtk/ChangeLog
index 24c7023..e166b52 100644
--- a/WebKit/gtk/ChangeLog
+++ b/WebKit/gtk/ChangeLog
@@ -1,3 +1,82 @@
+2010-05-12 Martin Robinson <mrobinson@igalia.com>
+
+ Reviewed by Xan Lopez.
+
+ [Gtk] Use GOwnPtr for code that needs it
+ https://bugs.webkit.org/show_bug.cgi?id=21594
+
+ Convert many uses of raw pointers to GRefPtr and GOwnPtr in WebKitWebView.
+
+ * WebCoreSupport/ContextMenuClientGtk.cpp:
+ (WebKit::inputMethodsMenuItem):
+ * WebCoreSupport/EditorClientGtk.cpp:
+ (WebKit::EditorClient::setInputMethodState):
+ (WebKit::EditorClient::respondToChangedSelection):
+ (WebKit::EditorClient::handleInputMethodKeydown):
+ (WebKit::EditorClient::EditorClient):
+ (WebKit::EditorClient::~EditorClient):
+ * WebCoreSupport/FrameLoaderClientGtk.cpp:
+ (WebKit::postCommitFrameViewSetup):
+ * webkit/webkitprivate.h:
+ * webkit/webkitwebview.cpp:
+ (destroy_menu_cb):
+ (webkit_web_view_forward_context_menu_event):
+ (webkit_web_view_key_release_event):
+ (webkit_web_view_button_release_event):
+ (webkit_web_view_focus_in_event):
+ (webkit_web_view_focus_out_event):
+ (webkit_web_view_realize):
+ (webkit_web_view_set_scroll_adjustments):
+ (webkit_web_view_dispose):
+ (webkit_web_view_finalize):
+ (webViewGetDPI):
+ (webkit_web_view_screen_changed):
+ (webkit_web_view_query_tooltip):
+ (webkit_web_view_get_im_context):
+ (webkit_web_view_update_settings):
+ (webkit_web_view_init):
+ (webkit_web_view_set_settings):
+ (webkit_web_view_get_settings):
+ (webkit_web_view_get_inspector):
+ (webkit_web_view_set_window_features):
+ (webkit_web_view_get_window_features):
+ (webkit_web_view_get_back_forward_list):
+ (webkit_web_view_zoom_in):
+ (webkit_web_view_zoom_out):
+ (webkit_web_view_get_encoding):
+ (webkit_web_view_get_custom_encoding):
+ (webkit_web_view_add_resource):
+ (webkit_web_view_get_resource):
+ (webkit_web_view_get_main_resource):
+ (webkit_web_view_clear_resources):
+ (webkit_web_view_get_subresources):
+ (webkit_web_view_set_tooltip_text):
+ (webkit_web_view_get_icon_uri):
+
+2010-05-11 Martin Robinson <mrobinson@igalia.com>
+
+ Reviewed by Xan Lopez.
+
+ [Gtk] Doesn't support gtk-key-themes
+ https://bugs.webkit.org/show_bug.cgi?id=28257
+
+ Add support for GTK+ key themes.
+
+ * WebCoreSupport/EditorClientGtk.cpp:
+ (WebKit::backspaceCallback): Added.
+ (WebKit::cutClipboardCallback): Added.
+ (WebKit::copyClipboardCallback): Added.
+ (WebKit::pasteClipboardCallback): Added.
+ (WebKit::selectAllCallback): Added.
+ (WebKit::deleteFromCursorCallback): Added.
+ (WebKit::moveCursorCallback): Added.
+ (WebKit::EditorClient::generateEditorCommands): Added.
+ (WebKit::EditorClient::executePendingEditorCommands): Added.
+ (WebKit::EditorClient::handleKeyboardEvent): Derive editor commands both from internal text widget and a list of fallbacks.
+ (WebKit::EditorClient::EditorClient): Add m_nativeWidget initializer.
+ * WebCoreSupport/EditorClientGtk.h:
+ (WebKit::EditorClient::addPendingEditorCommand): Add m_nativeWidget member.
+
2010-05-06 Martin Robinson <mrobinson@webkit.org>
Reviewed by Xan Lopez.
diff --git a/WebKit/gtk/WebCoreSupport/ContextMenuClientGtk.cpp b/WebKit/gtk/WebCoreSupport/ContextMenuClientGtk.cpp
index 5c1bc0b..069fb19 100644
--- a/WebKit/gtk/WebCoreSupport/ContextMenuClientGtk.cpp
+++ b/WebKit/gtk/WebCoreSupport/ContextMenuClientGtk.cpp
@@ -62,7 +62,7 @@ static GtkWidget* inputMethodsMenuItem (WebKitWebView* webView)
WebKitWebViewPrivate* priv = WEBKIT_WEB_VIEW_GET_PRIVATE(webView);
GtkWidget* imContextMenu = gtk_menu_new();
- gtk_im_multicontext_append_menuitems(GTK_IM_MULTICONTEXT(priv->imContext), GTK_MENU_SHELL(imContextMenu));
+ gtk_im_multicontext_append_menuitems(GTK_IM_MULTICONTEXT(priv->imContext.get()), GTK_MENU_SHELL(imContextMenu));
gtk_menu_item_set_submenu(GTK_MENU_ITEM(menuitem), imContextMenu);
diff --git a/WebKit/gtk/WebCoreSupport/EditorClientGtk.cpp b/WebKit/gtk/WebCoreSupport/EditorClientGtk.cpp
index 51172b4..d3f8fa1 100644
--- a/WebKit/gtk/WebCoreSupport/EditorClientGtk.cpp
+++ b/WebKit/gtk/WebCoreSupport/EditorClientGtk.cpp
@@ -87,6 +87,124 @@ static void imContextPreeditChanged(GtkIMContext* context, EditorClient* client)
frame->editor()->setComposition(preeditString, underlines, 0, 0);
}
+static void backspaceCallback(GtkWidget* widget, EditorClient* client)
+{
+ g_signal_stop_emission_by_name(widget, "backspace");
+ client->addPendingEditorCommand("DeleteBackward");
+}
+
+static void selectAllCallback(GtkWidget* widget, gboolean select, EditorClient* client)
+{
+ g_signal_stop_emission_by_name(widget, "select-all");
+ client->addPendingEditorCommand(select ? "SelectAll" : "Unselect");
+}
+
+static void cutClipboardCallback(GtkWidget* widget, EditorClient* client)
+{
+ g_signal_stop_emission_by_name(widget, "cut-clipboard");
+ client->addPendingEditorCommand("Cut");
+}
+
+static void copyClipboardCallback(GtkWidget* widget, EditorClient* client)
+{
+ g_signal_stop_emission_by_name(widget, "copy-clipboard");
+ client->addPendingEditorCommand("Copy");
+}
+
+static void pasteClipboardCallback(GtkWidget* widget, EditorClient* client)
+{
+ g_signal_stop_emission_by_name(widget, "paste-clipboard");
+ client->addPendingEditorCommand("Paste");
+}
+
+static const char* const gtkDeleteCommands[][2] = {
+ { "DeleteBackward", "DeleteForward" }, // Characters
+ { "DeleteWordBackward", "DeleteWordForward" }, // Word ends
+ { "DeleteWordBackward", "DeleteWordForward" }, // Words
+ { "DeleteToBeginningOfLine", "DeleteToEndOfLine" }, // Lines
+ { "DeleteToBeginningOfLine", "DeleteToEndOfLine" }, // Line ends
+ { "DeleteToBeginningOfParagraph", "DeleteToEndOfParagraph" }, // Paragraph ends
+ { "DeleteToBeginningOfParagraph", "DeleteToEndOfParagraph" }, // Paragraphs
+ { 0, 0 } // Whitespace (M-\ in Emacs)
+};
+
+static void deleteFromCursorCallback(GtkWidget* widget, GtkDeleteType deleteType, gint count, EditorClient* client)
+{
+ g_signal_stop_emission_by_name(widget, "delete-from-cursor");
+ int direction = count > 0 ? 1 : 0;
+
+ // Ensuring that deleteType <= G_N_ELEMENTS here results in a compiler warning
+ // that the condition is always true.
+
+ if (deleteType == GTK_DELETE_WORDS) {
+ if (!direction) {
+ client->addPendingEditorCommand("MoveWordForward");
+ client->addPendingEditorCommand("MoveWordBackward");
+ } else {
+ client->addPendingEditorCommand("MoveWordBackward");
+ client->addPendingEditorCommand("MoveWordForward");
+ }
+ } else if (deleteType == GTK_DELETE_DISPLAY_LINES) {
+ if (!direction)
+ client->addPendingEditorCommand("MoveToBeginningOfLine");
+ else
+ client->addPendingEditorCommand("MoveToEndOfLine");
+ } else if (deleteType == GTK_DELETE_PARAGRAPHS) {
+ if (!direction)
+ client->addPendingEditorCommand("MoveToBeginningOfParagraph");
+ else
+ client->addPendingEditorCommand("MoveToEndOfParagraph");
+ }
+
+ const char* rawCommand = gtkDeleteCommands[deleteType][direction];
+ if (!rawCommand)
+ return;
+
+ for (int i = 0; i < abs(count); i++)
+ client->addPendingEditorCommand(rawCommand);
+}
+
+static const char* const gtkMoveCommands[][4] = {
+ { "MoveBackward", "MoveForward",
+ "MoveBackwardAndModifySelection", "MoveForwardAndModifySelection" }, // Forward/backward grapheme
+ { "MoveBackward", "MoveForward",
+ "MoveBackwardAndModifySelection", "MoveForwardAndModifySelection" }, // Left/right grapheme
+ { "MoveWordBackward", "MoveWordForward",
+ "MoveWordBackwardAndModifySelection", "MoveWordForwardAndModifySelection" }, // Forward/backward word
+ { "MoveUp", "MoveDown",
+ "MoveUpAndModifySelection", "MoveDownAndModifySelection" }, // Up/down line
+ { "MoveToBeginningOfLine", "MoveToEndOfLine",
+ "MoveToBeginningOfLineAndModifySelection", "MoveToEndOfLineAndModifySelection" }, // Up/down line ends
+ { "MoveParagraphForward", "MoveParagraphBackward",
+ "MoveParagraphForwardAndModifySelection", "MoveParagraphBackwardAndModifySelection" }, // Up/down paragraphs
+ { "MoveToBeginningOfParagraph", "MoveToEndOfParagraph",
+ "MoveToBeginningOfParagraphAndModifySelection", "MoveToEndOfParagraphAndModifySelection" }, // Up/down paragraph ends.
+ { "MovePageUp", "MovePageDown",
+ "MovePageUpAndModifySelection", "MovePageDownAndModifySelection" }, // Up/down page
+ { "MoveToBeginningOfDocument", "MoveToEndOfDocument",
+ "MoveToBeginningOfDocumentAndModifySelection", "MoveToEndOfDocumentAndModifySelection" }, // Begin/end of buffer
+ { 0, 0,
+ 0, 0 } // Horizontal page movement
+};
+
+static void moveCursorCallback(GtkWidget* widget, GtkMovementStep step, gint count, gboolean extendSelection, EditorClient* client)
+{
+ g_signal_stop_emission_by_name(widget, "move-cursor");
+ int direction = count > 0 ? 1 : 0;
+ if (extendSelection)
+ direction += 2;
+
+ if (static_cast<unsigned>(step) >= G_N_ELEMENTS(gtkMoveCommands))
+ return;
+
+ const char* rawCommand = gtkMoveCommands[step][direction];
+ if (!rawCommand)
+ return;
+
+ for (int i = 0; i < abs(count); i++)
+ client->addPendingEditorCommand(rawCommand);
+}
+
void EditorClient::updatePendingComposition(const gchar* newComposition)
{
// The IMContext may signal more than one completed composition in a row,
@@ -102,15 +220,15 @@ void EditorClient::setInputMethodState(bool active)
WebKitWebViewPrivate* priv = m_webView->priv;
if (active)
- gtk_im_context_focus_in(priv->imContext);
+ gtk_im_context_focus_in(priv->imContext.get());
else
- gtk_im_context_focus_out(priv->imContext);
+ gtk_im_context_focus_out(priv->imContext.get());
#ifdef MAEMO_CHANGES
if (active)
- hildon_gtk_im_context_show(priv->imContext);
+ hildon_gtk_im_context_show(priv->imContext.get());
else
- hildon_gtk_im_context_hide(priv->imContext);
+ hildon_gtk_im_context_hide(priv->imContext.get());
#endif
}
@@ -249,7 +367,7 @@ void EditorClient::respondToChangedSelection()
unsigned end;
if (!targetFrame->editor()->getCompositionSelection(start, end)) {
// gtk_im_context_reset() clears the composition for us.
- gtk_im_context_reset(priv->imContext);
+ gtk_im_context_reset(priv->imContext.get());
targetFrame->editor()->confirmCompositionWithoutDisturbingSelection();
}
}
@@ -382,41 +500,8 @@ struct KeyPressEntry {
};
static const KeyDownEntry keyDownEntries[] = {
- { VK_LEFT, 0, "MoveLeft" },
- { VK_LEFT, ShiftKey, "MoveLeftAndModifySelection" },
- { VK_LEFT, CtrlKey, "MoveWordLeft" },
- { VK_LEFT, CtrlKey | ShiftKey, "MoveWordLeftAndModifySelection" },
- { VK_RIGHT, 0, "MoveRight" },
- { VK_RIGHT, ShiftKey, "MoveRightAndModifySelection" },
- { VK_RIGHT, CtrlKey, "MoveWordRight" },
- { VK_RIGHT, CtrlKey | ShiftKey, "MoveWordRightAndModifySelection" },
- { VK_UP, 0, "MoveUp" },
- { VK_UP, ShiftKey, "MoveUpAndModifySelection" },
- { VK_PRIOR, ShiftKey, "MovePageUpAndModifySelection" },
- { VK_DOWN, 0, "MoveDown" },
- { VK_DOWN, ShiftKey, "MoveDownAndModifySelection" },
- { VK_NEXT, ShiftKey, "MovePageDownAndModifySelection" },
- { VK_PRIOR, 0, "MovePageUp" },
- { VK_NEXT, 0, "MovePageDown" },
- { VK_HOME, 0, "MoveToBeginningOfLine" },
- { VK_HOME, ShiftKey, "MoveToBeginningOfLineAndModifySelection" },
- { VK_HOME, CtrlKey, "MoveToBeginningOfDocument" },
- { VK_HOME, CtrlKey | ShiftKey, "MoveToBeginningOfDocumentAndModifySelection" },
-
- { VK_END, 0, "MoveToEndOfLine" },
- { VK_END, ShiftKey, "MoveToEndOfLineAndModifySelection" },
- { VK_END, CtrlKey, "MoveToEndOfDocument" },
- { VK_END, CtrlKey | ShiftKey, "MoveToEndOfDocumentAndModifySelection" },
-
- { VK_BACK, 0, "DeleteBackward" },
- { VK_BACK, ShiftKey, "DeleteBackward" },
- { VK_DELETE, 0, "DeleteForward" },
- { VK_BACK, CtrlKey, "DeleteWordBackward" },
- { VK_DELETE, CtrlKey, "DeleteWordForward" },
-
{ 'B', CtrlKey, "ToggleBold" },
{ 'I', CtrlKey, "ToggleItalic" },
-
{ VK_ESCAPE, 0, "Cancel" },
{ VK_OEM_PERIOD, CtrlKey, "Cancel" },
{ VK_TAB, 0, "InsertTab" },
@@ -436,39 +521,76 @@ static const KeyPressEntry keyPressEntries[] = {
{ '\r', AltKey | ShiftKey, "InsertNewline" },
};
-static const char* interpretEditorCommandKeyEvent(const KeyboardEvent* evt)
+void EditorClient::generateEditorCommands(const KeyboardEvent* event)
{
- ASSERT(evt->type() == eventNames().keydownEvent || evt->type() == eventNames().keypressEvent);
+ ASSERT(event->type() == eventNames().keydownEvent || event->type() == eventNames().keypressEvent);
- static HashMap<int, const char*>* keyDownCommandsMap = 0;
- static HashMap<int, const char*>* keyPressCommandsMap = 0;
+ m_pendingEditorCommands.clear();
+
+ // First try to interpret the command as a native GTK+ key binding.
+ gtk_bindings_activate_event(GTK_OBJECT(m_nativeWidget.get()), event->keyEvent()->gdkEventKey());
+ if (m_pendingEditorCommands.size() > 0)
+ return;
- if (!keyDownCommandsMap) {
- keyDownCommandsMap = new HashMap<int, const char*>;
- keyPressCommandsMap = new HashMap<int, const char*>;
+ static HashMap<int, const char*> keyDownCommandsMap;
+ static HashMap<int, const char*> keyPressCommandsMap;
+ if (keyDownCommandsMap.isEmpty()) {
for (unsigned i = 0; i < G_N_ELEMENTS(keyDownEntries); i++)
- keyDownCommandsMap->set(keyDownEntries[i].modifiers << 16 | keyDownEntries[i].virtualKey, keyDownEntries[i].name);
+ keyDownCommandsMap.set(keyDownEntries[i].modifiers << 16 | keyDownEntries[i].virtualKey, keyDownEntries[i].name);
for (unsigned i = 0; i < G_N_ELEMENTS(keyPressEntries); i++)
- keyPressCommandsMap->set(keyPressEntries[i].modifiers << 16 | keyPressEntries[i].charCode, keyPressEntries[i].name);
+ keyPressCommandsMap.set(keyPressEntries[i].modifiers << 16 | keyPressEntries[i].charCode, keyPressEntries[i].name);
}
unsigned modifiers = 0;
- if (evt->shiftKey())
+ if (event->shiftKey())
modifiers |= ShiftKey;
- if (evt->altKey())
+ if (event->altKey())
modifiers |= AltKey;
- if (evt->ctrlKey())
+ if (event->ctrlKey())
modifiers |= CtrlKey;
- if (evt->type() == eventNames().keydownEvent) {
- int mapKey = modifiers << 16 | evt->keyCode();
- return mapKey ? keyDownCommandsMap->get(mapKey) : 0;
+
+ if (event->type() == eventNames().keydownEvent) {
+ int mapKey = modifiers << 16 | event->keyCode();
+ if (mapKey)
+ m_pendingEditorCommands.append(keyDownCommandsMap.get(mapKey));
+ return;
}
- int mapKey = modifiers << 16 | evt->charCode();
- return mapKey ? keyPressCommandsMap->get(mapKey) : 0;
+ int mapKey = modifiers << 16 | event->charCode();
+ if (mapKey)
+ m_pendingEditorCommands.append(keyPressCommandsMap.get(mapKey));
+}
+
+bool EditorClient::executePendingEditorCommands(Frame* frame, bool allowTextInsertion)
+{
+ Vector<Editor::Command> commands;
+ for (size_t i = 0; i < m_pendingEditorCommands.size(); i++) {
+ Editor::Command command = frame->editor()->command(m_pendingEditorCommands.at(i));
+ if (command.isTextInsertion() && !allowTextInsertion)
+ return false;
+
+ commands.append(command);
+ }
+
+ bool success = true;
+ for (size_t i = 0; i < commands.size(); i++) {
+ if (!commands.at(i).execute()) {
+ success = false;
+ break;
+ }
+ }
+
+ m_pendingEditorCommands.clear();
+
+ // If we successfully completed all editor commands, then
+ // this signals a canceling of the composition.
+ if (success)
+ clearPendingComposition();
+
+ return success;
}
void EditorClient::handleKeyboardEvent(KeyboardEvent* event)
@@ -487,23 +609,20 @@ void EditorClient::handleKeyboardEvent(KeyboardEvent* event)
if (!frame->editor()->canEdit() && !(frame->settings() && frame->settings()->caretBrowsingEnabled()))
return;
- const gchar* editorCommandString = interpretEditorCommandKeyEvent(event);
- if (editorCommandString) {
- Editor::Command command = frame->editor()->command(editorCommandString);
+ generateEditorCommands(event);
+ if (m_pendingEditorCommands.size() > 0) {
- // On editor commands from key down events, we only want to let the event bubble up to
- // the DOM if it inserts text. If it doesn't insert text (e.g. Tab that changes focus)
- // we just want WebKit to handle it immediately without a DOM event.
+ // During RawKeyDown events if an editor command will insert text, defer
+ // the insertion until the keypress event. We want keydown to bubble up
+ // through the DOM first.
if (platformEvent->type() == PlatformKeyboardEvent::RawKeyDown) {
- if (!command.isTextInsertion() && command.execute(event))
+ if (executePendingEditorCommands(frame, false))
event->setDefaultHandled();
- clearPendingComposition();
return;
}
- if (command.execute(event)) {
- clearPendingComposition();
+ if (executePendingEditorCommands(frame, true)) {
event->setDefaultHandled();
return;
}
@@ -581,7 +700,7 @@ void EditorClient::handleInputMethodKeydown(KeyboardEvent* event)
m_treatContextCommitAsKeyEvent = (!targetFrame->editor()->hasComposition())
&& event->keyEvent()->gdkEventKey()->keyval;
clearPendingComposition();
- if ((gtk_im_context_filter_keypress(priv->imContext, event->keyEvent()->gdkEventKey()) && !m_pendingComposition)
+ if ((gtk_im_context_filter_keypress(priv->imContext.get(), event->keyEvent()->gdkEventKey()) && !m_pendingComposition)
|| (!m_treatContextCommitAsKeyEvent && !targetFrame->editor()->hasComposition()))
event->preventDefault();
@@ -592,17 +711,26 @@ EditorClient::EditorClient(WebKitWebView* webView)
: m_isInRedo(false)
, m_webView(webView)
, m_treatContextCommitAsKeyEvent(false)
+ , m_nativeWidget(gtk_text_view_new())
{
WebKitWebViewPrivate* priv = m_webView->priv;
- g_signal_connect(priv->imContext, "commit", G_CALLBACK(imContextCommitted), this);
- g_signal_connect(priv->imContext, "preedit-changed", G_CALLBACK(imContextPreeditChanged), this);
+ g_signal_connect(priv->imContext.get(), "commit", G_CALLBACK(imContextCommitted), this);
+ g_signal_connect(priv->imContext.get(), "preedit-changed", G_CALLBACK(imContextPreeditChanged), this);
+
+ g_signal_connect(m_nativeWidget.get(), "backspace", G_CALLBACK(backspaceCallback), this);
+ g_signal_connect(m_nativeWidget.get(), "cut-clipboard", G_CALLBACK(cutClipboardCallback), this);
+ g_signal_connect(m_nativeWidget.get(), "copy-clipboard", G_CALLBACK(copyClipboardCallback), this);
+ g_signal_connect(m_nativeWidget.get(), "paste-clipboard", G_CALLBACK(pasteClipboardCallback), this);
+ g_signal_connect(m_nativeWidget.get(), "select-all", G_CALLBACK(selectAllCallback), this);
+ g_signal_connect(m_nativeWidget.get(), "move-cursor", G_CALLBACK(moveCursorCallback), this);
+ g_signal_connect(m_nativeWidget.get(), "delete-from-cursor", G_CALLBACK(deleteFromCursorCallback), this);
}
EditorClient::~EditorClient()
{
WebKitWebViewPrivate* priv = m_webView->priv;
- g_signal_handlers_disconnect_by_func(priv->imContext, (gpointer)imContextCommitted, this);
- g_signal_handlers_disconnect_by_func(priv->imContext, (gpointer)imContextPreeditChanged, this);
+ g_signal_handlers_disconnect_by_func(priv->imContext.get(), (gpointer)imContextCommitted, this);
+ g_signal_handlers_disconnect_by_func(priv->imContext.get(), (gpointer)imContextPreeditChanged, this);
}
void EditorClient::textFieldDidBeginEditing(Element*)
diff --git a/WebKit/gtk/WebCoreSupport/EditorClientGtk.h b/WebKit/gtk/WebCoreSupport/EditorClientGtk.h
index 825c146..2e5c359 100644
--- a/WebKit/gtk/WebCoreSupport/EditorClientGtk.h
+++ b/WebKit/gtk/WebCoreSupport/EditorClientGtk.h
@@ -36,12 +36,15 @@
#include <wtf/Deque.h>
#include <wtf/Forward.h>
#include <wtf/gobject/GOwnPtr.h>
+#include <wtf/gobject/GRefPtr.h>
typedef struct _WebKitWebView WebKitWebView;
+typedef struct _GtkWidget GtkWidget;
typedef char gchar;
namespace WebCore {
- class Page;
+class Frame;
+class KeyboardEvent;
}
namespace WebKit {
@@ -60,7 +63,10 @@ namespace WebKit {
bool treatContextCommitAsKeyEvent() { return m_treatContextCommitAsKeyEvent; }
void clearPendingComposition() { m_pendingComposition.set(0); }
bool hasPendingComposition() { return m_pendingComposition; }
+ void addPendingEditorCommand(const char* command) { m_pendingEditorCommands.append(command); }
void updatePendingComposition(const char*);
+ void generateEditorCommands(const WebCore::KeyboardEvent*);
+ bool executePendingEditorCommands(WebCore::Frame*, bool);
// from EditorClient
virtual void pageDestroyed();
@@ -130,6 +136,8 @@ namespace WebKit {
WebKitWebView* m_webView;
bool m_treatContextCommitAsKeyEvent;
GOwnPtr<gchar> m_pendingComposition;
+ Vector<const char*> m_pendingEditorCommands;
+ GRefPtr<GtkWidget> m_nativeWidget;
};
}
diff --git a/WebKit/gtk/WebCoreSupport/FrameLoaderClientGtk.cpp b/WebKit/gtk/WebCoreSupport/FrameLoaderClientGtk.cpp
index fd2d7ed..1fe6b0f 100644
--- a/WebKit/gtk/WebCoreSupport/FrameLoaderClientGtk.cpp
+++ b/WebKit/gtk/WebCoreSupport/FrameLoaderClientGtk.cpp
@@ -1135,14 +1135,11 @@ static void postCommitFrameViewSetup(WebKitWebFrame *frame, FrameView *view, boo
{
WebKitWebView* containingWindow = getViewFromFrame(frame);
WebKitWebViewPrivate* priv = WEBKIT_WEB_VIEW_GET_PRIVATE(containingWindow);
- view->setGtkAdjustments(priv->horizontalAdjustment, priv->verticalAdjustment, resetValues);
+ view->setGtkAdjustments(priv->horizontalAdjustment.get(), priv->verticalAdjustment.get(), resetValues);
if (priv->currentMenu) {
- GtkMenu* menu = priv->currentMenu;
- priv->currentMenu = 0;
-
- gtk_menu_popdown(menu);
- g_object_unref(menu);
+ gtk_menu_popdown(priv->currentMenu.get());
+ priv->currentMenu.clear();
}
}
diff --git a/WebKit/gtk/webkit/webkitprivate.h b/WebKit/gtk/webkit/webkitprivate.h
index 057b0e5..abca3c8 100644
--- a/WebKit/gtk/webkit/webkitprivate.h
+++ b/WebKit/gtk/webkit/webkitprivate.h
@@ -115,42 +115,42 @@ extern "C" {
typedef struct _WebKitWebViewPrivate WebKitWebViewPrivate;
struct _WebKitWebViewPrivate {
WebCore::Page* corePage;
- WebKitWebSettings* webSettings;
- WebKitWebInspector* webInspector;
- WebKitWebWindowFeatures* webWindowFeatures;
+ GRefPtr<WebKitWebSettings> webSettings;
+ GRefPtr<WebKitWebInspector> webInspector;
+ GRefPtr<WebKitWebWindowFeatures> webWindowFeatures;
WebKitWebFrame* mainFrame;
- WebKitWebBackForwardList* backForwardList;
+ GRefPtr<WebKitWebBackForwardList> backForwardList;
- GtkMenu* currentMenu;
+ GRefPtr<GtkMenu> currentMenu;
gint lastPopupXPosition;
gint lastPopupYPosition;
HashSet<GtkWidget*> children;
bool editable;
- GtkIMContext* imContext;
+ GRefPtr<GtkIMContext> imContext;
gboolean transparent;
- GtkAdjustment* horizontalAdjustment;
- GtkAdjustment* verticalAdjustment;
+ GRefPtr<GtkAdjustment> horizontalAdjustment;
+ GRefPtr<GtkAdjustment> verticalAdjustment;
gboolean zoomFullContent;
WebKitLoadStatus loadStatus;
- char* encoding;
- char* customEncoding;
+ GOwnPtr<char> encoding;
+ GOwnPtr<char> customEncoding;
- char* iconURI;
+ GOwnPtr<char> iconURI;
gboolean disposing;
gboolean usePrimaryForPaste;
// These are hosted here because the DataSource object is
// created too late in the frame loading process.
- WebKitWebResource* mainResource;
- char* mainResourceIdentifier;
- GHashTable* subResources;
- char* tooltipText;
+ GRefPtr<WebKitWebResource> mainResource;
+ GOwnPtr<char> mainResourceIdentifier;
+ GRefPtr<GHashTable> subResources;
+ GOwnPtr<char> tooltipText;
HashMap<GdkDragContext*, RefPtr<WebCore::DataObjectGtk> > draggingDataObjects;
};
diff --git a/WebKit/gtk/webkit/webkitwebview.cpp b/WebKit/gtk/webkit/webkitwebview.cpp
index 10a082c..ca72665 100644
--- a/WebKit/gtk/webkit/webkitwebview.cpp
+++ b/WebKit/gtk/webkit/webkitwebview.cpp
@@ -204,9 +204,7 @@ static void destroy_menu_cb(GtkObject* object, gpointer data)
{
WebKitWebView* webView = WEBKIT_WEB_VIEW(data);
WebKitWebViewPrivate* priv = WEBKIT_WEB_VIEW_GET_PRIVATE(webView);
-
- g_object_unref(priv->currentMenu);
- priv->currentMenu = NULL;
+ priv->currentMenu = 0;
}
static void PopupMenuPositionFunc(GtkMenu* menu, gint *x, gint *y, gboolean *pushIn, gpointer userData)
@@ -296,7 +294,7 @@ static gboolean webkit_web_view_forward_context_menu_event(WebKitWebView* webVie
return FALSE;
WebKitWebViewPrivate* priv = WEBKIT_WEB_VIEW_GET_PRIVATE(webView);
- priv->currentMenu = GTK_MENU(g_object_ref(menu));
+ priv->currentMenu = menu;
priv->lastPopupXPosition = event.globalX();
priv->lastPopupYPosition = event.globalY();
@@ -570,7 +568,7 @@ static gboolean webkit_web_view_key_release_event(GtkWidget* widget, GdkEventKey
// the event if we don't have a pending composition, because that means we
// are using a context like 'simple' which marks every keystroke as filtered.
WebKit::EditorClient* client = static_cast<WebKit::EditorClient*>(core(webView)->editorClient());
- if (gtk_im_context_filter_keypress(webView->priv->imContext, event) && !client->hasPendingComposition())
+ if (gtk_im_context_filter_keypress(webView->priv->imContext.get(), event) && !client->hasPendingComposition())
return TRUE;
Frame* frame = core(webView)->focusController()->focusedOrMainFrame();
@@ -627,7 +625,7 @@ static gboolean webkit_web_view_button_release_event(GtkWidget* widget, GdkEvent
if (focusedFrame && focusedFrame->editor()->canEdit()) {
#ifdef MAEMO_CHANGES
WebKitWebViewPrivate* priv = webView->priv;
- hildon_gtk_im_context_filter_event(priv->imContext, (GdkEvent*)event);
+ hildon_gtk_im_context_filter_event(priv->imContext.get(), (GdkEvent*)event);
#endif
}
@@ -730,7 +728,7 @@ static gboolean webkit_web_view_focus_in_event(GtkWidget* widget, GdkEventFocus*
else
focusController->setFocusedFrame(core(webView)->mainFrame());
- gtk_im_context_focus_in(webView->priv->imContext);
+ gtk_im_context_focus_in(webView->priv->imContext.get());
}
return GTK_WIDGET_CLASS(webkit_web_view_parent_class)->focus_in_event(widget, event);
}
@@ -748,7 +746,7 @@ static gboolean webkit_web_view_focus_out_event(GtkWidget* widget, GdkEventFocus
}
if (webView->priv->imContext)
- gtk_im_context_focus_out(webView->priv->imContext);
+ gtk_im_context_focus_out(webView->priv->imContext.get());
return GTK_WIDGET_CLASS(webkit_web_view_parent_class)->focus_out_event(widget, event);
}
@@ -787,7 +785,7 @@ static void webkit_web_view_realize(GtkWidget* widget)
WebKitWebView* webView = WEBKIT_WEB_VIEW(widget);
WebKitWebViewPrivate* priv = webView->priv;
- gtk_im_context_set_client_window(priv->imContext, widget->window);
+ gtk_im_context_set_client_window(priv->imContext.get(), widget->window);
}
static void webkit_web_view_set_scroll_adjustments(WebKitWebView* webView, GtkAdjustment* hadj, GtkAdjustment* vadj)
@@ -796,19 +794,7 @@ static void webkit_web_view_set_scroll_adjustments(WebKitWebView* webView, GtkAd
return;
FrameView* view = core(webkit_web_view_get_main_frame(webView))->view();
-
- if (hadj)
- g_object_ref(hadj);
- if (vadj)
- g_object_ref(vadj);
-
WebKitWebViewPrivate* priv = webView->priv;
-
- if (priv->horizontalAdjustment)
- g_object_unref(priv->horizontalAdjustment);
- if (priv->verticalAdjustment)
- g_object_unref(priv->verticalAdjustment);
-
priv->horizontalAdjustment = hadj;
priv->verticalAdjustment = vadj;
@@ -1076,21 +1062,6 @@ static void webkit_web_view_dispose(GObject* object)
priv->disposing = TRUE;
- if (priv->horizontalAdjustment) {
- g_object_unref(priv->horizontalAdjustment);
- priv->horizontalAdjustment = NULL;
- }
-
- if (priv->verticalAdjustment) {
- g_object_unref(priv->verticalAdjustment);
- priv->verticalAdjustment = NULL;
- }
-
- if (priv->backForwardList) {
- g_object_unref(priv->backForwardList);
- priv->backForwardList = NULL;
- }
-
if (priv->corePage) {
webkit_web_view_stop_loading(WEBKIT_WEB_VIEW(object));
@@ -1100,30 +1071,18 @@ static void webkit_web_view_dispose(GObject* object)
}
if (priv->webSettings) {
- g_signal_handlers_disconnect_by_func(priv->webSettings, (gpointer)webkit_web_view_settings_notify, webView);
- g_object_unref(priv->webSettings);
- priv->webSettings = NULL;
-
- g_object_unref(priv->webInspector);
- priv->webInspector = NULL;
-
- g_object_unref(priv->webWindowFeatures);
- priv->webWindowFeatures = NULL;
-
- g_object_unref(priv->imContext);
- priv->imContext = NULL;
- }
-
- if (priv->mainResource) {
- g_object_unref(priv->mainResource);
- priv->mainResource = NULL;
- }
-
- if (priv->subResources) {
- g_hash_table_unref(priv->subResources);
- priv->subResources = NULL;
+ g_signal_handlers_disconnect_by_func(priv->webSettings.get(), (gpointer)webkit_web_view_settings_notify, webView);
+ priv->webSettings.clear();
}
+ priv->horizontalAdjustment.clear();
+ priv->verticalAdjustment.clear();
+ priv->backForwardList.clear();
+ priv->webInspector.clear();
+ priv->webWindowFeatures.clear();
+ priv->imContext.clear();
+ priv->mainResource.clear();
+ priv->subResources.clear();
priv->draggingDataObjects.clear();
G_OBJECT_CLASS(webkit_web_view_parent_class)->dispose(object);
@@ -1134,11 +1093,11 @@ static void webkit_web_view_finalize(GObject* object)
WebKitWebView* webView = WEBKIT_WEB_VIEW(object);
WebKitWebViewPrivate* priv = webView->priv;
- g_free(priv->tooltipText);
- g_free(priv->mainResourceIdentifier);
- g_free(priv->encoding);
- g_free(priv->customEncoding);
- g_free(priv->iconURI);
+ priv->tooltipText.clear();
+ priv->mainResourceIdentifier.clear();
+ priv->encoding.clear();
+ priv->customEncoding.clear();
+ priv->iconURI.clear();
G_OBJECT_CLASS(webkit_web_view_parent_class)->finalize(object);
}
@@ -1189,7 +1148,7 @@ static AtkObject* webkit_web_view_get_accessible(GtkWidget* widget)
static gdouble webViewGetDPI(WebKitWebView* webView)
{
WebKitWebViewPrivate* priv = webView->priv;
- WebKitWebSettings* webSettings = priv->webSettings;
+ WebKitWebSettings* webSettings = priv->webSettings.get();
gboolean enforce96DPI;
g_object_get(webSettings, "enforce-96-dpi", &enforce96DPI, NULL);
if (enforce96DPI)
@@ -1215,7 +1174,7 @@ static void webkit_web_view_screen_changed(GtkWidget* widget, GdkScreen* previou
if (priv->disposing)
return;
- WebKitWebSettings* webSettings = priv->webSettings;
+ WebKitWebSettings* webSettings = priv->webSettings.get();
Settings* settings = core(webView)->settings();
gdouble DPI = webViewGetDPI(webView);
@@ -1264,7 +1223,7 @@ static gboolean webkit_web_view_query_tooltip(GtkWidget *widget, gint x, gint y,
WebKitWebViewPrivate* priv = WEBKIT_WEB_VIEW_GET_PRIVATE(widget);
if (priv->tooltipText) {
- gtk_tooltip_set_text(tooltip, priv->tooltipText);
+ gtk_tooltip_set_text(tooltip, priv->tooltipText.get());
return TRUE;
}
@@ -1275,7 +1234,7 @@ static gboolean webkit_web_view_query_tooltip(GtkWidget *widget, gint x, gint y,
static GtkIMContext* webkit_web_view_get_im_context(WebKitWebView* webView)
{
g_return_val_if_fail(WEBKIT_IS_WEB_VIEW(webView), 0);
- return GTK_IM_CONTEXT(webView->priv->imContext);
+ return GTK_IM_CONTEXT(webView->priv->imContext.get());
}
static void webkit_web_view_class_init(WebKitWebViewClass* webViewClass)
@@ -2591,7 +2550,7 @@ static void webkit_web_view_class_init(WebKitWebViewClass* webViewClass)
static void webkit_web_view_update_settings(WebKitWebView* webView)
{
WebKitWebViewPrivate* priv = webView->priv;
- WebKitWebSettings* webSettings = priv->webSettings;
+ WebKitWebSettings* webSettings = priv->webSettings.get();
Settings* settings = core(webView)->settings();
gchar* defaultEncoding, *cursiveFontFamily, *defaultFontFamily, *fantasyFontFamily, *monospaceFontFamily, *sansSerifFontFamily, *serifFontFamily, *userStylesheetUri;
@@ -2795,40 +2754,36 @@ static void webkit_web_view_init(WebKitWebView* webView)
WebKitWebViewPrivate* priv = WEBKIT_WEB_VIEW_GET_PRIVATE(webView);
webView->priv = priv;
- priv->imContext = gtk_im_multicontext_new();
+ priv->imContext = adoptGRef(gtk_im_multicontext_new());
WebKit::InspectorClient* inspectorClient = new WebKit::InspectorClient(webView);
priv->corePage = new Page(new WebKit::ChromeClient(webView), new WebKit::ContextMenuClient(webView), new WebKit::EditorClient(webView), new WebKit::DragClient(webView), inspectorClient, 0, 0);
// We also add a simple wrapper class to provide the public
// interface for the Web Inspector.
- priv->webInspector = WEBKIT_WEB_INSPECTOR(g_object_new(WEBKIT_TYPE_WEB_INSPECTOR, NULL));
- webkit_web_inspector_set_inspector_client(priv->webInspector, priv->corePage);
+ priv->webInspector = adoptGRef(WEBKIT_WEB_INSPECTOR(g_object_new(WEBKIT_TYPE_WEB_INSPECTOR, NULL)));
+ webkit_web_inspector_set_inspector_client(priv->webInspector.get(), priv->corePage);
+ // These are create with floating references, so they should not be wrapped in adoptGref.
priv->horizontalAdjustment = GTK_ADJUSTMENT(gtk_adjustment_new(0.0, 0.0, 0.0, 0.0, 0.0, 0.0));
priv->verticalAdjustment = GTK_ADJUSTMENT(gtk_adjustment_new(0.0, 0.0, 0.0, 0.0, 0.0, 0.0));
- g_object_ref_sink(priv->horizontalAdjustment);
- g_object_ref_sink(priv->verticalAdjustment);
-
GTK_WIDGET_SET_FLAGS(webView, GTK_CAN_FOCUS);
priv->mainFrame = WEBKIT_WEB_FRAME(webkit_web_frame_new(webView));
priv->lastPopupXPosition = priv->lastPopupYPosition = -1;
priv->editable = false;
- priv->backForwardList = webkit_web_back_forward_list_new_with_web_view(webView);
+ priv->backForwardList = adoptGRef(webkit_web_back_forward_list_new_with_web_view(webView));
priv->zoomFullContent = FALSE;
- priv->webSettings = webkit_web_settings_new();
+ priv->webSettings = adoptGRef(webkit_web_settings_new());
webkit_web_view_update_settings(webView);
- g_signal_connect(priv->webSettings, "notify", G_CALLBACK(webkit_web_view_settings_notify), webView);
-
- priv->webWindowFeatures = webkit_web_window_features_new();
+ g_signal_connect(priv->webSettings.get(), "notify", G_CALLBACK(webkit_web_view_settings_notify), webView);
- priv->subResources = g_hash_table_new_full(g_str_hash, g_str_equal, g_free, g_object_unref);
+ priv->webWindowFeatures = adoptGRef(webkit_web_window_features_new());
- priv->tooltipText = 0;
+ priv->subResources = adoptGRef(g_hash_table_new_full(g_str_hash, g_str_equal, g_free, g_object_unref));
}
GtkWidget* webkit_web_view_new(void)
@@ -2884,9 +2839,7 @@ void webkit_web_view_set_settings(WebKitWebView* webView, WebKitWebSettings* web
g_return_if_fail(WEBKIT_IS_WEB_SETTINGS(webSettings));
WebKitWebViewPrivate* priv = webView->priv;
- g_signal_handlers_disconnect_by_func(priv->webSettings, (gpointer)webkit_web_view_settings_notify, webView);
- g_object_unref(priv->webSettings);
- g_object_ref(webSettings);
+ g_signal_handlers_disconnect_by_func(priv->webSettings.get(), (gpointer)webkit_web_view_settings_notify, webView);
priv->webSettings = webSettings;
webkit_web_view_update_settings(webView);
g_signal_connect(webSettings, "notify", G_CALLBACK(webkit_web_view_settings_notify), webView);
@@ -2898,7 +2851,7 @@ WebKitWebSettings* webkit_web_view_get_settings(WebKitWebView* webView)
g_return_val_if_fail(WEBKIT_IS_WEB_VIEW(webView), NULL);
WebKitWebViewPrivate* priv = webView->priv;
- return priv->webSettings;
+ return priv->webSettings.get();
}
/**
@@ -2922,7 +2875,7 @@ WebKitWebInspector* webkit_web_view_get_inspector(WebKitWebView* webView)
g_return_val_if_fail(WEBKIT_IS_WEB_VIEW(webView), NULL);
WebKitWebViewPrivate* priv = webView->priv;
- return priv->webInspector;
+ return priv->webInspector.get();
}
// internal
@@ -2933,11 +2886,9 @@ static void webkit_web_view_set_window_features(WebKitWebView* webView, WebKitWe
if (!webWindowFeatures)
return;
- if (webkit_web_window_features_equal(priv->webWindowFeatures, webWindowFeatures))
+ if (webkit_web_window_features_equal(priv->webWindowFeatures.get(), webWindowFeatures))
return;
- g_object_unref(priv->webWindowFeatures);
- g_object_ref(webWindowFeatures);
priv->webWindowFeatures = webWindowFeatures;
}
@@ -2957,7 +2908,7 @@ WebKitWebWindowFeatures* webkit_web_view_get_window_features(WebKitWebView* webV
g_return_val_if_fail(WEBKIT_IS_WEB_VIEW(webView), NULL);
WebKitWebViewPrivate* priv = webView->priv;
- return priv->webWindowFeatures;
+ return priv->webWindowFeatures.get();
}
/**
@@ -3027,7 +2978,7 @@ WebKitWebBackForwardList* webkit_web_view_get_back_forward_list(WebKitWebView* w
if (!core(webView) || !core(webView)->backForwardList()->enabled())
return NULL;
- return priv->backForwardList;
+ return priv->backForwardList.get();
}
/**
@@ -3787,7 +3738,7 @@ void webkit_web_view_zoom_in(WebKitWebView* webView)
WebKitWebViewPrivate* priv = webView->priv;
gfloat zoomMultiplierRatio;
- g_object_get(priv->webSettings, "zoom-step", &zoomMultiplierRatio, NULL);
+ g_object_get(priv->webSettings.get(), "zoom-step", &zoomMultiplierRatio, NULL);
webkit_web_view_set_zoom_level(webView, webkit_web_view_get_zoom_level(webView) + zoomMultiplierRatio);
}
@@ -3808,7 +3759,7 @@ void webkit_web_view_zoom_out(WebKitWebView* webView)
WebKitWebViewPrivate* priv = webView->priv;
gfloat zoomMultiplierRatio;
- g_object_get(priv->webSettings, "zoom-step", &zoomMultiplierRatio, NULL);
+ g_object_get(priv->webSettings.get(), "zoom-step", &zoomMultiplierRatio, NULL);
webkit_web_view_set_zoom_level(webView, webkit_web_view_get_zoom_level(webView) - zoomMultiplierRatio);
}
@@ -3923,9 +3874,8 @@ const gchar* webkit_web_view_get_encoding(WebKitWebView* webView)
if (!encoding.isEmpty()) {
WebKitWebViewPrivate* priv = webView->priv;
- g_free(priv->encoding);
- priv->encoding = g_strdup(encoding.utf8().data());
- return priv->encoding;
+ priv->encoding.set(g_strdup(encoding.utf8().data()));
+ return priv->encoding.get();
} else
return NULL;
}
@@ -3966,9 +3916,8 @@ const char* webkit_web_view_get_custom_encoding(WebKitWebView* webView)
if (!overrideEncoding.isEmpty()) {
WebKitWebViewPrivate* priv = webView->priv;
- g_free (priv->customEncoding);
- priv->customEncoding = g_strdup(overrideEncoding.utf8().data());
- return priv->customEncoding;
+ priv->customEncoding.set(g_strdup(overrideEncoding.utf8().data()));
+ return priv->customEncoding.get();
} else
return NULL;
}
@@ -4123,11 +4072,11 @@ void webkit_web_view_add_resource(WebKitWebView* webView, char* identifier, WebK
if (!priv->mainResource) {
priv->mainResource = webResource;
- priv->mainResourceIdentifier = g_strdup(identifier);
+ priv->mainResourceIdentifier.set(g_strdup(identifier));
return;
}
- g_hash_table_insert(priv->subResources, identifier, webResource);
+ g_hash_table_insert(priv->subResources.get(), identifier, webResource);
}
WebKitWebResource* webkit_web_view_get_resource(WebKitWebView* webView, char* identifier)
@@ -4135,13 +4084,13 @@ WebKitWebResource* webkit_web_view_get_resource(WebKitWebView* webView, char* id
WebKitWebViewPrivate* priv = webView->priv;
gpointer webResource = NULL;
- gboolean resourceFound = g_hash_table_lookup_extended(priv->subResources, identifier, NULL, &webResource);
+ gboolean resourceFound = g_hash_table_lookup_extended(priv->subResources.get(), identifier, NULL, &webResource);
// The only resource we do not store in this hash table is the
// main! If we did not find a request, it probably means the load
// has been interrupted while while a resource was still being
// loaded.
- if (!resourceFound && !g_str_equal(identifier, priv->mainResourceIdentifier))
+ if (!resourceFound && !g_str_equal(identifier, priv->mainResourceIdentifier.get()))
return NULL;
if (!webResource)
@@ -4152,30 +4101,24 @@ WebKitWebResource* webkit_web_view_get_resource(WebKitWebView* webView, char* id
WebKitWebResource* webkit_web_view_get_main_resource(WebKitWebView* webView)
{
- return webView->priv->mainResource;
+ return webView->priv->mainResource.get();
}
void webkit_web_view_clear_resources(WebKitWebView* webView)
{
WebKitWebViewPrivate* priv = webView->priv;
-
- g_free(priv->mainResourceIdentifier);
- priv->mainResourceIdentifier = NULL;
-
- if (priv->mainResource) {
- g_object_unref(priv->mainResource);
- priv->mainResource = NULL;
- }
+ priv->mainResourceIdentifier.clear();
+ priv->mainResource.clear();
if (priv->subResources)
- g_hash_table_remove_all(priv->subResources);
+ g_hash_table_remove_all(priv->subResources.get());
}
GList* webkit_web_view_get_subresources(WebKitWebView* webView)
{
WebKitWebViewPrivate* priv = webView->priv;
- GList* subResources = g_hash_table_get_values(priv->subResources);
- return g_list_remove(subResources, priv->mainResource);
+ GList* subResources = g_hash_table_get_values(priv->subResources.get());
+ return g_list_remove(subResources, priv->mainResource.get());
}
/* From EventHandler.cpp */
@@ -4191,12 +4134,11 @@ void webkit_web_view_set_tooltip_text(WebKitWebView* webView, const char* toolti
{
#if GTK_CHECK_VERSION(2, 12, 0)
WebKitWebViewPrivate* priv = webView->priv;
- g_free(priv->tooltipText);
if (tooltip && *tooltip != '\0') {
- priv->tooltipText = g_strdup(tooltip);
+ priv->tooltipText.set(g_strdup(tooltip));
gtk_widget_set_has_tooltip(GTK_WIDGET(webView), TRUE);
} else {
- priv->tooltipText = 0;
+ priv->tooltipText.clear();
gtk_widget_set_has_tooltip(GTK_WIDGET(webView), FALSE);
}
@@ -4254,9 +4196,8 @@ G_CONST_RETURN gchar* webkit_web_view_get_icon_uri(WebKitWebView* webView)
String iconURL = iconDatabase()->iconURLForPageURL(corePage->mainFrame()->loader()->url().prettyURL());
WebKitWebViewPrivate* priv = webView->priv;
- g_free(priv->iconURI);
- priv->iconURI = g_strdup(iconURL.utf8().data());
- return priv->iconURI;
+ priv->iconURI.set(g_strdup(iconURL.utf8().data()));
+ return priv->iconURI.get();
}
/**
diff --git a/WebKit/mac/ChangeLog b/WebKit/mac/ChangeLog
index d7aa5bf..f43aa5a 100644
--- a/WebKit/mac/ChangeLog
+++ b/WebKit/mac/ChangeLog
@@ -1,3 +1,162 @@
+2010-05-14 Stephanie Lewis <slewis@apple.com>
+
+ Rubber-stamped by Mark Rowe.
+
+ Update order files.
+
+ * WebKit.order:
+
+2010-05-13 Timothy Hatcher <timothy@apple.com>
+
+ Allow reporting exceptions that occur when using JavaScriptCore APIs
+ to the Web Inspector.
+
+ <rdar://problem/7975410>
+
+ Reviewed by Sam Weinig.
+
+ * WebView/WebView.mm:
+ (+[WebView _reportException:inContext:]): Call WebCore::reportException after checking
+ that the global object is a DOMWindow.
+ * WebView/WebViewPrivate.h: Added _reportException:inContext:.
+
+2010-05-13 Alexey Proskuryakov <ap@apple.com>
+
+ Reviewed by Darin Adler.
+
+ https://bugs.webkit.org/show_bug.cgi?id=39089
+ <rdar://problem/7974044> Domain names in Russian '.рф' domain are displayed as punycode
+
+ Add a custom check for this domain. Currently, this is the only non-ASCII TLD, we'll
+ investigate a more extensible solution when there are more, and we know what the
+ typical restictions are.
+
+ * Misc/WebNSURLExtras.mm:
+ (allCharactersAllowedByTLDRules):
+ (-[NSString _web_mapHostNameWithRange:encode:makeString:]):
+
+2010-05-12 Simon Fraser <simon.fraser@apple.com>
+
+ Reviewed by David Hyatt.
+
+ Composited plug-ins can cause missed painting
+ https://bugs.webkit.org/show_bug.cgi?id=39033
+ <rdar://problem/7972478>
+
+ Eagerly enable compositing mode via the enclosing FrameView when the plug-in tells us it wants
+ to do compositing.
+
+ * Plugins/Hosted/WebHostedNetscapePluginView.mm:
+ (-[WebHostedNetscapePluginView createPlugin]):
+ * Plugins/WebNetscapePluginView.mm:
+ (-[WebNetscapePluginView createPlugin]):
+
+2010-05-12 Jer Noble <jer.noble@apple.com>
+
+ Reviewed by Darin Adler.
+
+ Bug 38689: #34005 will break fullscreen video playback
+ https://bugs.webkit.org/show_bug.cgi?id=38689
+
+ Use the new definition of PlatformMedia to check the actual type
+ returned by MediaPlayer.
+
+ * WebView/WebVideoFullscreenController.mm:
+ (-[WebVideoFullscreenController windowDidLoad]):
+
+2010-05-11 Mark Rowe <mrowe@apple.com>
+
+ Fix the world.
+
+ In r59162 a change was made to WebCore's FeatureDefines.xcconfig that enabled FILE_READER and FILE_WRITER.
+ The author and reviewer of that patch ignored the carefully-worded warning at the top of that file asking
+ that changes to the file be kept in sync across JavaScriptCore, WebCore and WebKit, as well as being kept
+ in sync with build-webkit. This led to WebCore and WebKit having different views of Document's vtable
+ and results in crashes in Safari shortly after launch when virtual function calls resulted in the wrong
+ function in WebCore being called.
+
+ We fix this by bringing the FeatureDefines.xcconfig files in to sync. Based on the ChangeLog message and
+ other changes in r59162 it appears that enabling FILE_WRITER was unintentional so that particular change
+ has been reverted.
+
+ * Configurations/FeatureDefines.xcconfig:
+
+2010-05-10 Simon Fraser <simon.fraser@apple.com>
+
+ Reviewed by Anders Carlsson.
+
+ Allow compositing layers to be connected across iframe boundaries on Mac
+ https://bugs.webkit.org/show_bug.cgi?id=38856
+
+ When painting an iframe into a compositing layer, the "PaintBehaviorFlattenCompositingLayers"
+ flag was mistakenly set, because we'd detect that we were drawing into a bitmap. This caused
+ content to show up in both compositing layers, and the painted background inside the iframe.
+
+ Fix by taking the flattening state from the parent frame, if there is one. For the root
+ frame, we continue to look to see if we're painting into a bitmap.
+
+ * WebView/WebFrame.mm:
+ (-[WebFrame _drawRect:contentsOnly:]):
+
+2010-05-10 Timothy Hatcher <timothy@apple.com>
+
+ Fix a crash when closing a WebView while the Web Inspector is open.
+
+ <rdar://problem/7966830>
+
+ Reviewed by Mark Rowe.
+
+ * WebCoreSupport/WebInspectorClient.mm:
+ (-[WebInspectorWindowController destroyInspectorView]): Null check Page since it can be null.
+ * WebView/WebView.mm:
+ (-[WebView _close]): Null out _private->page before deleting the page, so code called
+ during destruction don't access a half deleted Page object.
+
+2010-05-10 Anders Carlsson <andersca@apple.com>
+
+ Unbreak the world. (Fix Mac builds).
+
+ * Plugins/Hosted/WebKitPluginHostTypes.h:
+
+2010-05-10 Anders Carlsson <andersca@apple.com>
+
+ Reviewed by Simon Fraser.
+
+ Change the order of the RendererType enum values, so that old versions of WebKitPluginHost will
+ use accelerated compositing and not layer backed views.
+
+ * Plugins/Hosted/WebKitPluginHostTypes.h:
+
+2010-05-07 Anders Carlsson <andersca@apple.com>
+
+ Reviewed by Sam Weinig and Simon Fraser.
+
+ <rdar://problem/7947356>
+ QT Plug-in in hardware-accelerated WebKit is missing the controller
+
+ Replace the useSoftwareRenderer boolean with an enum that lets the plug-in host opt into using a layer
+ backed NSView instead of inserting the layer into the WebCore layer hierarchy.
+
+ * Plugins/Hosted/NetscapePluginHostManager.mm:
+ (WebKit::NetscapePluginHostManager::instantiatePlugin):
+ * Plugins/Hosted/NetscapePluginHostProxy.mm:
+ (WKPCInstantiatePluginReply):
+ * Plugins/Hosted/NetscapePluginInstanceProxy.h:
+ (WebKit::NetscapePluginInstanceProxy::rendererType):
+ (WebKit::NetscapePluginInstanceProxy::setRendererType):
+ (WebKit::NetscapePluginInstanceProxy::InstantiatePluginReply::InstantiatePluginReply):
+ * Plugins/Hosted/NetscapePluginInstanceProxy.mm:
+ (WebKit::NetscapePluginInstanceProxy::NetscapePluginInstanceProxy):
+ Replace the useSoftwareRenderer boolean everywhere with the RendererType enum.
+
+ * Plugins/Hosted/WebHostedNetscapePluginView.mm:
+ (-[WebHostedNetscapePluginView createPlugin]):
+ Only go into full compositing mode when the renderer type returned is UseAcceleratedCompositing.
+ Otherwise, use a layer backed NSView.
+
+ * Plugins/Hosted/WebKitPluginHostTypes.h:
+ Add a RendererType enum.
+
2010-05-06 Anders Carlsson <andersca@apple.com>
Reviewed by Darin Adler and Dan Bernstein..
diff --git a/WebKit/mac/Configurations/FeatureDefines.xcconfig b/WebKit/mac/Configurations/FeatureDefines.xcconfig
index 881c788..947f371 100644
--- a/WebKit/mac/Configurations/FeatureDefines.xcconfig
+++ b/WebKit/mac/Configurations/FeatureDefines.xcconfig
@@ -50,7 +50,7 @@ ENABLE_DATALIST = ENABLE_DATALIST;
ENABLE_DOM_STORAGE = ENABLE_DOM_STORAGE;
ENABLE_EVENTSOURCE = ENABLE_EVENTSOURCE;
ENABLE_FILTERS = ENABLE_FILTERS;
-ENABLE_FILE_READER = ;
+ENABLE_FILE_READER = ENABLE_FILE_READER;
ENABLE_FILE_WRITER = ;
ENABLE_GEOLOCATION = ENABLE_GEOLOCATION;
ENABLE_ICONDATABASE = ENABLE_ICONDATABASE;
diff --git a/WebKit/mac/Configurations/Version.xcconfig b/WebKit/mac/Configurations/Version.xcconfig
index cc5943e..daa79a9 100644
--- a/WebKit/mac/Configurations/Version.xcconfig
+++ b/WebKit/mac/Configurations/Version.xcconfig
@@ -21,8 +21,8 @@
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-MAJOR_VERSION = 533;
-MINOR_VERSION = 9;
+MAJOR_VERSION = 534;
+MINOR_VERSION = 0;
TINY_VERSION = 0;
FULL_VERSION = $(MAJOR_VERSION).$(MINOR_VERSION);
diff --git a/WebKit/mac/Misc/WebNSURLExtras.mm b/WebKit/mac/Misc/WebNSURLExtras.mm
index 2affbed..00819e4 100644
--- a/WebKit/mac/Misc/WebNSURLExtras.mm
+++ b/WebKit/mac/Misc/WebNSURLExtras.mm
@@ -1050,6 +1050,41 @@ static BOOL allCharactersInIDNScriptWhiteList(const UChar *buffer, int32_t lengt
return YES;
}
+static BOOL allCharactersAllowedByTLDRules(const UChar* buffer, int32_t length)
+{
+ // Skip trailing dot for root domain.
+ if (buffer[length - 1] == '.')
+ --length;
+
+ if (length > 3
+ && buffer[length - 3] == '.'
+ && buffer[length - 2] == 0x0440 // CYRILLIC SMALL LETTER ER
+ && buffer[length - 1] == 0x0444) // CYRILLIC SMALL LETTER EF
+ {
+ // Rules defined by <http://www.cctld.ru/ru/docs/rulesrf.php>. This code only checks requirements that matter for presentation purposes.
+ for (int32_t i = length - 4; i; --i) {
+ UChar ch = buffer[i];
+
+ // Only modern Russian letters, digits and dashes are allowed.
+ if ((ch >= 0x0430 && ch <= 0x044f)
+ || ch == 0x0451
+ || (ch >= '0' && ch <= '9')
+ || ch == '-')
+ continue;
+
+ // Only check top level domain. Lower level registrars may have different rules.
+ if (ch == '.')
+ break;
+
+ return NO;
+ }
+ return YES;
+ }
+
+ // Not a known top level domain with special rules.
+ return NO;
+}
+
// Return value of nil means no mapping is necessary.
// If makeString is NO, then return value is either nil or self to indicate mapping is necessary.
// If makeString is YES, then return value is either nil or the mapped string.
@@ -1087,7 +1122,7 @@ static BOOL allCharactersInIDNScriptWhiteList(const UChar *buffer, int32_t lengt
if (numCharactersConverted == length && memcmp(sourceBuffer, destinationBuffer, length * sizeof(UChar)) == 0) {
return nil;
}
- if (!encode && !allCharactersInIDNScriptWhiteList(destinationBuffer, numCharactersConverted)) {
+ if (!encode && !allCharactersInIDNScriptWhiteList(destinationBuffer, numCharactersConverted) && !allCharactersAllowedByTLDRules(destinationBuffer, numCharactersConverted)) {
return nil;
}
return makeString ? (NSString *)[NSString stringWithCharacters:destinationBuffer length:numCharactersConverted] : (NSString *)self;
diff --git a/WebKit/mac/Plugins/Hosted/NetscapePluginHostManager.mm b/WebKit/mac/Plugins/Hosted/NetscapePluginHostManager.mm
index 281d41f..e4177f5 100644
--- a/WebKit/mac/Plugins/Hosted/NetscapePluginHostManager.mm
+++ b/WebKit/mac/Plugins/Hosted/NetscapePluginHostManager.mm
@@ -272,7 +272,7 @@ PassRefPtr<NetscapePluginInstanceProxy> NetscapePluginHostManager::instantiatePl
}
instance->setRenderContextID(reply->m_renderContextID);
- instance->setUseSoftwareRenderer(reply->m_useSoftwareRenderer);
+ instance->setRendererType(reply->m_rendererType);
return instance.release();
}
diff --git a/WebKit/mac/Plugins/Hosted/NetscapePluginHostProxy.mm b/WebKit/mac/Plugins/Hosted/NetscapePluginHostProxy.mm
index b437012..1d4cdad 100644
--- a/WebKit/mac/Plugins/Hosted/NetscapePluginHostProxy.mm
+++ b/WebKit/mac/Plugins/Hosted/NetscapePluginHostProxy.mm
@@ -499,7 +499,7 @@ kern_return_t WKPCBooleanAndDataReply(mach_port_t clientPort, uint32_t pluginID,
return KERN_SUCCESS;
}
-kern_return_t WKPCInstantiatePluginReply(mach_port_t clientPort, uint32_t pluginID, uint32_t requestID, kern_return_t result, uint32_t renderContextID, boolean_t useSoftwareRenderer)
+kern_return_t WKPCInstantiatePluginReply(mach_port_t clientPort, uint32_t pluginID, uint32_t requestID, kern_return_t result, uint32_t renderContextID, uint32_t rendererType)
{
NetscapePluginHostProxy* hostProxy = pluginProxyMap().get(clientPort);
if (!hostProxy)
@@ -509,7 +509,7 @@ kern_return_t WKPCInstantiatePluginReply(mach_port_t clientPort, uint32_t plugin
if (!instanceProxy)
return KERN_FAILURE;
- instanceProxy->setCurrentReply(requestID, new NetscapePluginInstanceProxy::InstantiatePluginReply(result, renderContextID, useSoftwareRenderer));
+ instanceProxy->setCurrentReply(requestID, new NetscapePluginInstanceProxy::InstantiatePluginReply(result, renderContextID, static_cast<RendererType>(rendererType)));
return KERN_SUCCESS;
}
diff --git a/WebKit/mac/Plugins/Hosted/NetscapePluginInstanceProxy.h b/WebKit/mac/Plugins/Hosted/NetscapePluginInstanceProxy.h
index 593d336..62c0f38 100644
--- a/WebKit/mac/Plugins/Hosted/NetscapePluginInstanceProxy.h
+++ b/WebKit/mac/Plugins/Hosted/NetscapePluginInstanceProxy.h
@@ -75,8 +75,8 @@ public:
uint32_t renderContextID() const { ASSERT(fastMallocSize(this)); return m_renderContextID; }
void setRenderContextID(uint32_t renderContextID) { m_renderContextID = renderContextID; }
- bool useSoftwareRenderer() const { return m_useSoftwareRenderer; }
- void setUseSoftwareRenderer(bool useSoftwareRenderer) { m_useSoftwareRenderer = useSoftwareRenderer; }
+ RendererType rendererType() const { return m_rendererType; }
+ void setRendererType(RendererType rendererType) { m_rendererType = rendererType; }
WebHostedNetscapePluginView *pluginView() const { ASSERT(fastMallocSize(this)); return m_pluginView; }
NetscapePluginHostProxy* hostProxy() const { ASSERT(fastMallocSize(this)); return m_pluginHostProxy; }
@@ -197,17 +197,17 @@ public:
struct InstantiatePluginReply : public Reply {
static const int ReplyType = InstantiatePlugin;
- InstantiatePluginReply(kern_return_t resultCode, uint32_t renderContextID, boolean_t useSoftwareRenderer)
+ InstantiatePluginReply(kern_return_t resultCode, uint32_t renderContextID, RendererType rendererType)
: Reply(InstantiatePlugin)
, m_resultCode(resultCode)
, m_renderContextID(renderContextID)
- , m_useSoftwareRenderer(useSoftwareRenderer)
+ , m_rendererType(rendererType)
{
}
kern_return_t m_resultCode;
uint32_t m_renderContextID;
- boolean_t m_useSoftwareRenderer;
+ RendererType m_rendererType;
};
struct GetScriptableNPObjectReply : public Reply {
@@ -300,7 +300,7 @@ private:
uint32_t m_pluginID;
uint32_t m_renderContextID;
- boolean_t m_useSoftwareRenderer;
+ RendererType m_rendererType;
bool m_waitingForReply;
HashMap<uint32_t, Reply*> m_replies;
diff --git a/WebKit/mac/Plugins/Hosted/NetscapePluginInstanceProxy.mm b/WebKit/mac/Plugins/Hosted/NetscapePluginInstanceProxy.mm
index f027534..8b0a2bf 100644
--- a/WebKit/mac/Plugins/Hosted/NetscapePluginInstanceProxy.mm
+++ b/WebKit/mac/Plugins/Hosted/NetscapePluginInstanceProxy.mm
@@ -216,7 +216,7 @@ NetscapePluginInstanceProxy::NetscapePluginInstanceProxy(NetscapePluginHostProxy
, m_requestTimer(this, &NetscapePluginInstanceProxy::requestTimerFired)
, m_currentURLRequestID(0)
, m_renderContextID(0)
- , m_useSoftwareRenderer(false)
+ , m_rendererType(UseSoftwareRenderer)
, m_waitingForReply(false)
, m_urlCheckCounter(0)
, m_pluginFunctionCallDepth(0)
diff --git a/WebKit/mac/Plugins/Hosted/WebHostedNetscapePluginView.mm b/WebKit/mac/Plugins/Hosted/WebHostedNetscapePluginView.mm
index 9da1b53..519e274 100644
--- a/WebKit/mac/Plugins/Hosted/WebHostedNetscapePluginView.mm
+++ b/WebKit/mac/Plugins/Hosted/WebHostedNetscapePluginView.mm
@@ -40,6 +40,7 @@
#import <WebCore/Bridge.h>
#import <WebCore/Frame.h>
#import <WebCore/FrameLoaderTypes.h>
+#import <WebCore/FrameView.h>
#import <WebCore/HTMLPlugInElement.h>
#import <WebCore/RenderEmbeddedObject.h>
#import <WebCore/WebCoreObjCExtras.h>
@@ -115,14 +116,17 @@ extern "C" {
if (!_proxy)
return NO;
- if (_proxy->useSoftwareRenderer())
+ if (_proxy->rendererType() == UseSoftwareRenderer)
_softwareRenderer = WKSoftwareCARendererCreate(_proxy->renderContextID());
else {
_pluginLayer = WKMakeRenderLayer(_proxy->renderContextID());
- if (accleratedCompositingEnabled)
+ if (accleratedCompositingEnabled && _proxy->rendererType() == UseAcceleratedCompositing) {
+ // Eagerly enter compositing mode, since we know we'll need it. This avoids firing setNeedsStyleRecalc()
+ // for iframes that contain composited plugins at bad times. https://bugs.webkit.org/show_bug.cgi?id=39033
+ core([self webFrame])->view()->enterCompositingMode();
[self element]->setNeedsStyleRecalc(SyntheticStyleChange);
- else
+ } else
self.wantsLayer = YES;
}
diff --git a/WebKit/mac/Plugins/Hosted/WebKitPluginClient.defs b/WebKit/mac/Plugins/Hosted/WebKitPluginClient.defs
index 6b1a319..4129ca1 100644
--- a/WebKit/mac/Plugins/Hosted/WebKitPluginClient.defs
+++ b/WebKit/mac/Plugins/Hosted/WebKitPluginClient.defs
@@ -213,7 +213,7 @@ simpleroutine PCInstantiatePluginReply(clientPort :mach_port_t;
requestID :uint32_t;
result :kern_return_t;
renderContextID :uint32_t;
- useSoftwareRenderer :boolean_t);
+ rendererType :uint32_t);
simpleroutine PCGetScriptableNPObjectReply(clientPort :mach_port_t;
pluginID :uint32_t;
diff --git a/WebKit/mac/Plugins/Hosted/WebKitPluginHostTypes.h b/WebKit/mac/Plugins/Hosted/WebKitPluginHostTypes.h
index e8bd82d..0bac2bc 100644
--- a/WebKit/mac/Plugins/Hosted/WebKitPluginHostTypes.h
+++ b/WebKit/mac/Plugins/Hosted/WebKitPluginHostTypes.h
@@ -58,4 +58,10 @@ enum ValueType {
NPObjectValueType
};
+enum RendererType {
+ UseAcceleratedCompositing,
+ UseSoftwareRenderer,
+ UseLayerBackedView
+};
+
#endif // WebKitPluginHostTypes_h
diff --git a/WebKit/mac/Plugins/WebNetscapePluginView.mm b/WebKit/mac/Plugins/WebNetscapePluginView.mm
index ebc3f85..9f5a6c2 100644
--- a/WebKit/mac/Plugins/WebNetscapePluginView.mm
+++ b/WebKit/mac/Plugins/WebNetscapePluginView.mm
@@ -61,6 +61,7 @@
#import <WebCore/Frame.h>
#import <WebCore/FrameLoader.h>
#import <WebCore/FrameTree.h>
+#import <WebCore/FrameView.h>
#import <WebCore/HTMLPlugInElement.h>
#import <WebCore/Page.h>
#import <WebCore/PluginMainThreadScheduler.h>
@@ -1089,10 +1090,14 @@ static inline void getNPRect(const NSRect& nr, NPRect& npr)
#if USE(ACCELERATED_COMPOSITING)
accleratedCompositingEnabled = [[[self webView] preferences] acceleratedCompositingEnabled];
#endif
- if (accleratedCompositingEnabled)
+ if (accleratedCompositingEnabled) {
+ // Eagerly enter compositing mode, since we know we'll need it. This avoids firing setNeedsStyleRecalc()
+ // for iframes that contain composited plugins at bad times. https://bugs.webkit.org/show_bug.cgi?id=39033
+ core([self webFrame])->view()->enterCompositingMode();
[self element]->setNeedsStyleRecalc(SyntheticStyleChange);
- else
+ } else
[self setWantsLayer:YES];
+
LOG(Plugins, "%@ is using Core Animation drawing model with layer %@", _pluginPackage.get(), _pluginLayer.get());
}
diff --git a/WebKit/mac/WebCoreSupport/WebInspectorClient.mm b/WebKit/mac/WebCoreSupport/WebInspectorClient.mm
index 00c51a9..661b0d2 100644
--- a/WebKit/mac/WebCoreSupport/WebInspectorClient.mm
+++ b/WebKit/mac/WebCoreSupport/WebInspectorClient.mm
@@ -433,8 +433,12 @@ void WebInspectorFrontendClient::updateWindowTitle() const
if (_attachedToInspectedWebView)
[self close];
+
_visible = NO;
- [_inspectedWebView page]->inspectorController()->disconnectFrontend();
+
+ if (Page* inspectedPage = [_inspectedWebView page])
+ inspectedPage->inspectorController()->disconnectFrontend();
+
[_webView close];
}
diff --git a/WebKit/mac/WebKit.order b/WebKit/mac/WebKit.order
index 187f66a..1776616 100644
--- a/WebKit/mac/WebKit.order
+++ b/WebKit/mac/WebKit.order
@@ -12,6 +12,7 @@ _WebKitLinkTimeVersion
-[WebPreferences setAutosaves:]
+[NSString(WebKitExtras) _webkit_localCacheDirectoryWithBundleIdentifier:]
-[NSString(WebKitExtras) _web_stringByAbbreviatingWithTildeInPath]
++[WebIconDatabase initialize]
+[WebIconDatabase delayDatabaseCleanup]
+[WebIconDatabase sharedIconDatabase]
-[WebIconDatabase init]
@@ -33,26 +34,36 @@ _InitWebCoreSystemInterface
+[WebHTMLView(WebPrivate) _selectionPasteboardTypes]
+[WebHTMLView(WebPrivate) supportedNonImageMIMETypes]
+[WebHTMLRepresentation supportedNonImageMIMETypes]
-__ZN21WebIconDatabaseClient13performImportEv
-__Z21importToWebCoreFormatv
-+[ThreadEnabler enableThreading]
--[ThreadEnabler threadEnablingSelector:]
-__ZL20objectFromPathForKeyP8NSStringP11objc_object
__ZL11stringArrayRKN3WTF7HashSetIN7WebCore6StringENS1_10StringHashENS_10HashTraitsIS2_EEEE
+[WebPDFView supportedMIMETypes]
+[WebPDFRepresentation supportedMIMETypes]
+[WebPDFRepresentation postScriptMIMETypes]
+[WebDataSource(WebInternal) _repTypesAllowImageTypeOmission:]
-_WebLocalizedString
--[NSURL(WebNSURLExtras) _web_originalDataAsString]
--[NSURL(WebNSURLExtras) _web_originalData]
-[WebIconDatabase retainIconForURL:]
-[WebIconDatabase(WebPendingPublic) isEnabled]
-+[WebView registerURLSchemeAsLocal:]
++[WebIconDatabase allowDatabaseCleanup]
+_WebLocalizedString
+[NSURL(WebNSURLExtras) _web_URLWithDataAsString:]
+[NSURL(WebNSURLExtras) _web_URLWithDataAsString:relativeToURL:]
-[NSString(WebKitExtras) _webkit_stringByTrimmingWhitespace]
+[NSURL(WebNSURLExtras) _web_URLWithData:relativeToURL:]
++[WebView(WebPrivate) _registerURLSchemeAsSecure:]
++[WebView(WebPrivate) _setDomainRelaxationForbidden:forURLScheme:]
++[WebView registerURLSchemeAsLocal:]
+-[WebPreferences(WebPrivate) setRespectStandardStyleKeyEquivalents:]
+-[WebPreferences _setBoolValue:forKey:]
+-[WebPreferences setPrivateBrowsingEnabled:]
+-[WebPreferences(WebPrivate) setDOMPasteAllowed:]
+-[WebPreferences setCacheModel:]
+-[WebPreferences _setIntegerValue:forKey:]
+-[WebPreferences(WebPrivate) setAutomaticallyDetectsCacheModel:]
++[WebPreferences(WebPrivate) _setInitialDefaultTextEncodingToSystemEncoding]
++[WebPreferences(WebPrivate) _systemCFStringEncoding]
+_WKGetWebDefaultCFStringEncoding
+-[NSString(WebKitExtras) _webkit_isCaseInsensitiveEqualToString:]
++[WebHistory(WebPrivate) _setVisitedLinkTrackingEnabled:]
++[WebHistory(WebPrivate) _removeAllVisitedLinks]
++[WebCoreStatistics setShouldPrintExceptions:]
-[NSURL(WebNSURLExtras) _webkit_canonicalize]
_WKNSURLProtocolClassForRequest
-[WebView(WebPrivate) _initWithFrame:frameName:groupName:usesDocumentViews:]
@@ -64,7 +75,10 @@ _WKNSURLProtocolClassForRequest
-[WebFrameView initWithFrame:]
+[WebViewFactory createSharedFactory]
+[WebKeyGenerator createSharedGenerator]
+-[WebDynamicScrollBarsView initWithFrame:]
-[WebClipView initWithFrame:]
+-[WebClipView visibleRect]
+-[WebDynamicScrollBarsView(WebInternal) tile]
-[WebFrameView visibleRect]
-[WebFrameView webFrame]
_WebKitInitializeLoggingChannelsIfNecessary
@@ -76,6 +90,8 @@ __ZN24WebDatabaseTrackerClient30sharedWebDatabaseTrackerClientEv
__ZN24WebDatabaseTrackerClientC1Ev
__ZN24WebDatabaseTrackerClientC2Ev
__ZL47WebKitInitializeApplicationCachePathIfNecessaryv
+__ZN30WebGeolocationControllerClientC1EP7WebView
+__ZN30WebGeolocationControllerClientC2EP7WebView
__ZN15WebChromeClientC1EP7WebView
__ZN15WebChromeClientC2EP7WebView
__ZN20WebContextMenuClientC1EP7WebView
@@ -86,6 +102,9 @@ __ZN13WebDragClientC1EP7WebView
__ZN13WebDragClientC2EP7WebView
__ZN18WebInspectorClientC1EP7WebView
__ZN18WebInspectorClientC2EP7WebView
+-[WebNodeHighlighter initWithInspectedWebView:]
+__ZN21WebPluginHalterClientC1EP7WebView
+__ZN21WebPluginHalterClientC2EP7WebView
-[WebView preferences]
-[WebPreferences(WebPrivate) _localStorageDatabasePath]
-[WebPreferences _stringValueForKey:]
@@ -95,6 +114,7 @@ __Z3kitPN7WebCore4PageE
-[WebFrame(WebInternal) _initWithWebFrameView:webView:]
-[WebFramePrivate setWebFrameView:]
-[WebFrameView(WebInternal) _setWebFrame:]
+-[WebFrame(WebInternal) _isIncludedInWebKitStatistics]
__ZN20WebFrameLoaderClientC1EP8WebFrame
__ZN20WebFrameLoaderClientC2EP8WebFrame
__ZN20WebFrameLoaderClient20createDocumentLoaderERKN7WebCore15ResourceRequestERKNS0_14SubstituteDataE
@@ -102,6 +122,7 @@ __ZN20WebDocumentLoaderMacC1ERKN7WebCore15ResourceRequestERKNS0_14SubstituteData
__ZN20WebDocumentLoaderMacC2ERKN7WebCore15ResourceRequestERKNS0_14SubstituteDataE
-[WebDataSource(WebInternal) _initWithDocumentLoader:]
+[WebDataSourcePrivate initialize]
+-[WebDataSource webFrame]
__Z10getWebViewP8WebFrame
__Z4coreP8WebFrame
__ZN20WebDocumentLoaderMac13setDataSourceEP13WebDataSourceP7WebView
@@ -118,35 +139,40 @@ __ZN20WebFrameLoaderClient31prepareForDataSourceReplacementEv
-[WebFrame(WebInternal) _dataSource]
__ZN20WebFrameLoaderClient31transitionToCommittedForNewPageEv
__ZNK20WebDocumentLoaderMac10dataSourceEv
+-[WebView(WebPrivate) _usesDocumentViews]
-[WebDataSource(WebPrivate) _responseMIMEType]
-[WebDataSource response]
-+[WebFrameView(WebInternal) _viewClassForMIMEType:]
-+[WebView(WebPrivate) _viewClass:andRepresentationClass:forMIMEType:]
+-[WebFrameView(WebInternal) _viewClassForMIMEType:]
+-[WebFrameView(WebInternal) _webView]
+-[WebFrame webView]
+-[WebPreferences arePlugInsEnabled]
++[WebFrameView(WebInternal) _viewClassForMIMEType:allowingPlugins:]
++[WebView(WebPrivate) _viewClass:andRepresentationClass:forMIMEType:allowingPlugins:]
-[NSDictionary(WebNSDictionaryExtras) _webkit_objectForMIMEType:]
+[WebHTMLView(WebPrivate) unsupportedTextMIMETypes]
-[WebView removePluginInstanceViewsFor:]
--[WebView(WebPrivate) _usesDocumentViews]
-[WebFrameView(WebInternal) _makeDocumentViewForDataSource:]
-[WebDataSource representation]
-[WebHTMLView initWithFrame:]
+[WebHTMLViewPrivate initialize]
-[WebPluginController initWithDocumentView:]
-[WebFrameView(WebInternal) _setDocumentView:]
--[WebFrameView(WebInternal) _webView]
--[WebFrame webView]
__Z4coreP7WebView
-[WebView(WebPrivate) page]
-[WebDynamicScrollBarsView(WebInternal) setSuppressLayout:]
-[WebHTMLView viewWillMoveToSuperview:]
-[WebHTMLView(WebHTMLViewFileInternal) _removeSuperviewObservers]
--[WebHTMLView setNeedsDisplay:]
+-[WebHTMLView setNeedsDisplayInRect:]
+__ZL21setNeedsDisplayInRectP6NSViewP13objc_selector6CGRect
-[WebHTMLView visibleRect]
-[WebClipView hasAdditionalClip]
-[WebFrame(WebInternal) _getVisibleRect:]
-[WebHTMLView viewDidMoveToSuperview]
-[WebHTMLView addSuperviewObservers]
+-[WebHTMLView(WebPrivate) _isUsingAcceleratedCompositing]
-[WebHTMLView isFlipped]
-[WebDynamicScrollBarsView(WebInternal) reflectScrolledClipView:]
+-[WebDynamicScrollBarsView(WebInternal) updateScrollers]
-[WebFrame(WebInternal) _updateBackgroundAndUpdatesWhileOffscreen]
-[WebView drawsBackground]
-[WebView(WebPrivate) backgroundColor]
@@ -162,19 +188,21 @@ __Z3kitPN7WebCore5FrameE
-[WebHTMLView(WebHTMLViewFileInternal) _isTopHTMLView]
-[WebHTMLView(WebHTMLViewFileInternal) _topHTMLView]
-[WebDataSource(WebInternal) _webView]
--[WebDataSource webFrame]
-[WebView mainFrame]
-[WebHTMLView(WebHTMLViewFileInternal) _webView]
-[WebView(WebPrivate) _dashboardBehavior:]
-__ZN15WebEditorClient23clearUndoRedoOperationsEv
+-[WebDataSource(WebInternal) _documentLoader]
+-[WebDataSource pageTitle]
__ZN20WebFrameLoaderClient15finishedLoadingEPN7WebCore14DocumentLoaderE
-[WebDataSource(WebInternal) _finishedLoading]
__ZNK7WebCore17FrameLoaderClient23shouldUsePluginDocumentERKNS_6StringE
+__ZNK20WebFrameLoaderClient11hasHTMLViewEv
_WKInitializeMaximumHTTPConnectionCountPerHost
+__ZNK7WebCore12ChromeClient28allowsAcceleratedCompositingEv
+__ZN15WebChromeClient22createHTMLParserQuirksEv
+__ZN7WebCore17FrameLoaderClient15allowJavaScriptEb
__ZNK20WebFrameLoaderClient17overrideMediaTypeEv
-[WebView mediaStyle]
-__ZN15WebChromeClient22createHTMLParserQuirksEv
-__ZNK15WebChromeClient19contentsSizeChangedEPN7WebCore5FrameERKNS0_7IntSizeE
__ZN20WebFrameLoaderClient24documentElementAvailableEv
__ZN20WebFrameLoaderClient18frameLoadCompletedEv
__ZN20WebFrameLoaderClient21forceLayoutForNonHTMLEv
@@ -184,6 +212,7 @@ __ZN20WebFrameLoaderClient21forceLayoutForNonHTMLEv
-[WebView _realZoomMultiplierIsTextOnly]
-[WebView _realZoomMultiplier]
-[WebView _setZoomMultiplier:isTextOnly:]
+-[WebView(WebViewInternal) _mainCoreFrame]
-[WebView(WebPendingPublic) scheduleInRunLoop:forMode:]
-[WebView(AllWebViews) _addToAllWebViewsSet]
-[WebView setGroupName:]
@@ -201,7 +230,6 @@ _WebVolumeFreeSize
-[WebView(WebPrivate) _preferencesChangedNotification:]
-[WebPreferences(WebPrivate) _useSiteSpecificSpoofing]
-[WebPreferences cursiveFontFamily]
-__ZNK20WebFrameLoaderClient11hasHTMLViewEv
-[WebPreferences defaultFixedFontSize]
-[WebPreferences defaultFontSize]
-[WebPreferences defaultTextEncodingName]
@@ -214,12 +242,13 @@ __ZNK20WebFrameLoaderClient11hasHTMLViewEv
-[WebPreferences isJavaScriptEnabled]
-[WebPreferences(WebPrivate) isWebSecurityEnabled]
-[WebPreferences(WebPrivate) allowUniversalAccessFromFileURLs]
+-[WebPreferences(WebPrivate) allowFileAccessFromFileURLs]
-[WebPreferences javaScriptCanOpenWindowsAutomatically]
-[WebPreferences minimumFontSize]
-[WebPreferences minimumLogicalFontSize]
--[WebPreferences arePlugInsEnabled]
-[WebPreferences(WebPrivate) databasesEnabled]
-[WebPreferences(WebPrivate) localStorageEnabled]
+-[WebPreferences(WebPrivate) experimentalNotificationsEnabled]
-[WebPreferences sansSerifFontFamily]
-[WebPreferences serifFontFamily]
-[WebPreferences standardFontFamily]
@@ -241,10 +270,20 @@ __Z4core40WebTextDirectionSubmenuInclusionBehavior
-[WebPreferences userStyleSheetEnabled]
-[WebView(WebPrivate) _needsAdobeFrameReloadingQuirk]
_WKAppVersionCheckLessThan
+-[WebView(WebPrivate) _needsLinkElementTextCSSQuirk]
-[WebView(WebPrivate) _needsKeyboardEventDisambiguationQuirks]
-[WebPreferences(WebPrivate) webArchiveDebugModeEnabled]
+-[WebPreferences(WebPrivate) localFileContentSniffingEnabled]
-[WebPreferences(WebPrivate) offlineWebApplicationCacheEnabled]
-[WebPreferences(WebPrivate) zoomsTextOnly]
+-[WebPreferences(WebPrivate) javaScriptCanAccessClipboard]
+-[WebPreferences(WebPrivate) isXSSAuditorEnabled]
+-[WebPreferences(WebPrivate) acceleratedCompositingEnabled]
+-[WebPreferences(WebPrivate) showDebugBorders]
+-[WebPreferences(WebPrivate) showRepaintCounter]
+-[WebPreferences(WebPrivate) pluginAllowedRunTime]
+-[WebPreferences(WebPrivate) webGLEnabled]
+-[WebPreferences(WebPrivate) isFrameFlatteningEnabled]
-[WebView setMaintainsBackForwardList:]
-[WebView setUIDelegate:]
-[WebView(WebPrivate) setMemoryCacheDelegateCallsEnabled:]
@@ -259,6 +298,7 @@ __ZN3WTF7HashMapIPN7WebCore15BackForwardListEP18WebBackForwardListNS_7PtrHashIS3
__ZN3WTF9HashTableIPN7WebCore15BackForwardListESt4pairIS3_P18WebBackForwardListENS_18PairFirstExtractorIS7_EENS_7PtrHashIS3_EEN
-[WebBackForwardList setCapacity:]
-[WebView setFrameLoadDelegate:]
+-[WebView(WebPrivate) _needsFrameLoadDelegateRetainQuirk]
-[WebView(WebPrivate) _cacheFrameLoadDelegateImplementations]
-[WebView setPolicyDelegate:]
-[WebView(WebViewEditing) setEditingDelegate:]
@@ -266,6 +306,9 @@ __ZN3WTF9HashTableIPN7WebCore15BackForwardListESt4pairIS3_P18WebBackForwardListE
-[WebView setResourceLoadDelegate:]
-[WebView(WebPrivate) _cacheResourceLoadDelegateImplementations]
-[WebView setDownloadDelegate:]
+-[WebView(WebPendingPublic) setHistoryDelegate:]
+-[WebView(WebPrivate) _cacheHistoryDelegateImplementations]
+-[WebView(WebViewGeolocation) _setGeolocationProvider:]
-[WebView setApplicationNameForUserAgent:]
-[WebView setHostWindow:]
-[WebView(WebPrivate) _setFormDelegate:]
@@ -276,61 +319,57 @@ __ZN3WTF9HashTableIPN7WebCore15BackForwardListESt4pairIS3_P18WebBackForwardListE
__ZL14fontFromNSFontP6NSFont
_WKGetGlyphsForCharacters
_WKGetGlyphTransformedAdvances
--[WebView viewWillMoveToSuperview:]
--[WebView removeSizeObservers]
--[WebView viewDidMoveToSuperview]
--[WebView addSizeObserversForWindow:]
+-[WebView(WebPrivate) setFrameSize:]
-[WebFrameView setFrameSize:]
+-[WebFrameView(WebFrameViewFileInternal) _web_frame]
-[WebView(WebPrivate) isFlipped]
--[WebFrame dataSource]
+-[WebHTMLView(WebInternal) _needsLayout]
+-[WebHTMLView(WebInternal) _frame]
+-[WebFrame(WebInternal) _needsLayout]
+-[WebHTMLView layout]
+-[WebHTMLView layoutToMinimumPageWidth:maximumPageWidth:adjustingViewSize:]
+-[WebHTMLView reapplyStyles]
+-[WebDynamicScrollBarsView(WebInternal) setScrollBarsSuppressed:repaintOnUnsuppress:]
+-[WebDynamicScrollBarsView(WebInternal) setScrollingModes:vertical:andLock:]
+__ZN15WebEditorClient10isEditableEv
+-[WebView(WebViewEditing) isEditable]
+-[WebHTMLView setNeedsLayout:]
+__ZNK15WebChromeClient19contentsSizeChangedEPN7WebCore5FrameERKNS0_7IntSizeE
+__ZN20WebFrameLoaderClient22dispatchDidFirstLayoutEv
+__Z42WebViewGetFrameLoadDelegateImplementationsP7WebView
+__Z21CallFrameLoadDelegatePFP11objc_objectS0_P13objc_selectorzEP7WebViewS2_S0_
-[WebView viewWillMoveToWindow:]
_WKSetNSWindowShouldPostEventNotifications
-[WebView removeWindowObservers]
--[WebView(WebPrivate) _boundsChanged]
-[WebView addWindowObserversForWindow:]
+_WKWindowWillOrderOnScreenNotification
-[WebHTMLView viewWillMoveToWindow:]
-[WebHTMLView(WebHTMLViewFileInternal) _removeMouseMovedObserverUnconditionally]
-[WebHTMLView(WebHTMLViewFileInternal) _removeWindowObservers]
-[WebHTMLView(WebHTMLViewFileInternal) _cancelUpdateMouseoverTimer]
--[WebHTMLView(WebHTMLViewFileInternal) _cancelUpdateFocusedAndActiveStateTimer]
-[WebHTMLView(WebPrivate) _pluginController]
-[WebPluginController stopAllPlugins]
-[WebHTMLView viewDidMoveToWindow]
-[WebHTMLView(WebPrivate) _stopAutoscrollTimer]
-[WebHTMLView addWindowObservers]
-_WKWindowWillOrderOnScreenNotification
-[WebHTMLView(WebPrivate) _frameOrBoundsChanged]
-[WebPluginController startAllPlugins]
-[WebFrameView viewDidMoveToWindow]
-[WebView viewDidMoveToWindow]
+-[WebView(WebPrivate) _updateActiveState]
-[NSString(WebKitExtras) _web_widthWithFont:]
-_canUseFastRenderer
--[WebFrame provisionalDataSource]
--[WebIconDatabase iconForURL:withSize:]
--[WebIconDatabase iconForURL:withSize:cache:]
--[NSString(WebNSURLExtras) _webkit_isFileURL]
-__Z13webGetNSImagePN7WebCore5ImageE6CGSize
+__ZL18canUseFastRendererPKtj
-[WebHTMLView(WebPrivate) hitTest:]
-[WebView setNextKeyView:]
-[WebFrameView setNextKeyView:]
-[NSView(WebExtras) _web_superviewOfClass:]
-[WebFrame loadRequest:]
-__ZN20WebFrameLoaderClient9userAgentERKN7WebCore4KURLE
--[WebView(WebViewInternal) _userAgentForURL:]
-+[WebView(WebPrivate) _standardUserAgentWithApplicationName:]
-+[NSUserDefaults(WebNSUserDefaultsExtras) _webkit_preferredLanguageCode]
-+[NSUserDefaults(WebNSUserDefaultsExtras) _webkit_ensureAndLockPreferredLanguageLock]
-_makeLock
--[NSString(WebNSUserDefaultsPrivate) _webkit_HTTPStyleLanguageCode]
-_WKCopyCFLocalizationPreferredName
-+[NSUserDefaults(WebNSUserDefaultsExtras) _webkit_addDefaultsChangeObserver]
-_addDefaultsChangeObserver
__ZN20WebFrameLoaderClient17cancelPolicyCheckEv
-__ZN20WebFrameLoaderClient39dispatchDecidePolicyForNavigationActionEMN7WebCore11FrameLoaderEFvNS0_12PolicyActionEERKNS0_16Navig
+__ZN20WebFrameLoaderClient39dispatchDecidePolicyForNavigationActionEMN7WebCore13PolicyCheckerEFvNS0_12PolicyActionEERKNS0_16Nav
-[WebView(WebPrivate) _policyDelegateForwarder]
+[WebDefaultPolicyDelegate sharedPolicyDelegate]
-[_WebSafeForwarder initWithTarget:defaultTarget:catchExceptions:]
-__ZN20WebFrameLoaderClient19setUpPolicyListenerEMN7WebCore11FrameLoaderEFvNS0_12PolicyActionEE
+__ZN20WebFrameLoaderClient19setUpPolicyListenerEMN7WebCore13PolicyCheckerEFvNS0_12PolicyActionEE
+[WebFramePolicyListener initialize]
-[WebFramePolicyListener initWithWebCoreFrame:]
__ZNK20WebFrameLoaderClient16actionDictionaryERKN7WebCore16NavigationActionEN3WTF10PassRefPtrINS0_9FormStateEEE
@@ -353,8 +392,6 @@ __ZN20WebFrameLoaderClient26didChangeEstimatedProgressEv
__ZN20WebFrameLoaderClient31dispatchDidStartProvisionalLoadEv
-[WebView(WebPrivate) _didStartProvisionalLoadForFrame:]
-[WebView(WebPrivate) _willChangeBackForwardKeys]
-__Z42WebViewGetFrameLoadDelegateImplementationsP7WebView
-__Z21CallFrameLoadDelegatePFP11objc_objectS0_P13objc_selectorzEP7WebViewS2_S0_
-[WebDataSource isLoading]
-[WebDataSource request]
-[NSURL(WebNSURLExtras) _web_hostString]
@@ -364,163 +401,121 @@ __Z21CallFrameLoadDelegatePFP11objc_objectS0_P13objc_selectorzEP7WebViewS2_S0_
-[NSData(WebNSDataExtras) _web_isCaseInsensitiveEqualToCString:]
-[NSString(WebNSURLExtras) _web_decodeHostName]
-[NSString(WebNSURLExtras) _web_mapHostNameWithRange:encode:makeString:]
--[NSString(WebKitExtras) _webkit_isCaseInsensitiveEqualToString:]
-[WebDataSource unreachableURL]
-[NSURL(WebNSURLExtras) _web_userVisibleString]
+-[NSURL(WebNSURLExtras) _web_originalData]
__ZL12mapHostNamesP8NSStringa
-__ZN3WTF6VectorItLm2048EE6shrinkEm
+-[NSURL(WebNSURLExtras) _web_originalDataAsString]
-[WebView mainFrameURL]
-[WebBackForwardList currentItem]
__Z3kitPN7WebCore11HistoryItemE
--[WebView(WebPrivate) setDefersCallbacks:]
++[WebView(WebPrivate) _standardUserAgentWithApplicationName:]
++[NSUserDefaults(WebNSUserDefaultsExtras) _webkit_preferredLanguageCode]
++[NSUserDefaults(WebNSUserDefaultsExtras) _webkit_ensureAndLockPreferredLanguageLock]
+_makeLock
+-[NSString(WebNSUserDefaultsPrivate) _webkit_HTTPStyleLanguageCode]
+_WKCopyCFLocalizationPreferredName
++[NSUserDefaults(WebNSUserDefaultsExtras) _webkit_addDefaultsChangeObserver]
+_addDefaultsChangeObserver
__ZN20WebFrameLoaderClient32assignIdentifierToInitialRequestEmPN7WebCore14DocumentLoaderERKNS0_15ResourceRequestE
__Z45WebViewGetResourceLoadDelegateImplementationsP7WebView
__Z24CallResourceLoadDelegatePFP11objc_objectS0_P13objc_selectorzEP7WebViewS2_S0_S0_
-[WebView(WebViewInternal) _addObject:forIdentifier:]
__ZN3WTF7HashMapImNS_9RetainPtrIP11objc_objectEENS_7IntHashImEENS_10HashTraitsImEENS7_IS4_EEE3setERKmRKS4_
--[WebFramePolicyListener dealloc]
+__ZN3WTF9HashTableImSt4pairImNS_9RetainPtrIP11objc_objectEEENS_18PairFirstExtractorIS6_EENS_7IntHashImEENS_14PairHashTraitsINS_
+__ZN20WebFrameLoaderClient9userAgentERKN7WebCore4KURLE
+-[WebView userAgentForURL:]
+__ZN20WebFrameLoaderClient23dispatchWillSendRequestEPN7WebCore14DocumentLoaderEmRNS0_15ResourceRequestERKNS0_16ResourceResponse
+__ZN20WebDocumentLoaderMac17increaseLoadCountEm
+__ZNK3WTF9HashTableImmNS_17IdentityExtractorImEENS_7IntHashImEENS_10HashTraitsImEES6_E8containsImNS_22IdentityHashTranslatorImm
+__ZN3WTF7HashSetImNS_7IntHashImEENS_10HashTraitsImEEE3addERKm
+__ZN3WTF9HashTableImmNS_17IdentityExtractorImEENS_7IntHashImEENS_10HashTraitsImEES6_E6expandEv
+__ZN3WTF9HashTableImmNS_17IdentityExtractorImEENS_7IntHashImEENS_10HashTraitsImEES6_E6rehashEi
+__ZN3WTF9HashTableImmNS_17IdentityExtractorImEENS_7IntHashImEENS_10HashTraitsImEES6_E13allocateTableEi
+__ZN3WTF9HashTableImmNS_17IdentityExtractorImEENS_7IntHashImEENS_10HashTraitsImEES6_E15deallocateTableEPmi
+-[WebView(WebViewInternal) _objectForIdentifier:]
+__ZNK3WTF7HashMapImNS_9RetainPtrIP11objc_objectEENS_7IntHashImEENS_10HashTraitsImEENS7_IS4_EEE3getERKm
+__Z24CallResourceLoadDelegatePFP11objc_objectS0_P13objc_selectorzEP7WebViewS2_S0_S0_S0_S0_
+__ZN3WTF9HashTableIN7WebCore12AtomicStringESt4pairIS2_NS1_6StringEENS_18PairFirstExtractorIS5_EENS1_15CaseFoldingHashENS_14Pair
+__ZN3WTF6VectorIN7WebCore6StringELm0EEaSERKS3_
__ZN7WebCore19ResourceRequestBaseD2Ev
+__ZNK20WebFrameLoaderClient32representationExistsForURLSchemeERKN7WebCore6StringE
++[WebView(WebPrivate) _representationExistsForURLScheme:]
+_WKCreateNSURLConnectionDelegateProxy
+__ZN20WebFrameLoaderClient26shouldUseCredentialStorageEPN7WebCore14DocumentLoaderEm
+_WKSetNSURLRequestShouldContentSniff
+-[WebFramePolicyListener dealloc]
-[WebView(WebIBActions) canGoBack]
-[WebView(WebIBActions) canGoForward]
-[WebFrameView isOpaque]
+-[WebView _windowDidBecomeKey:]
-[WebHTMLView windowDidBecomeKey:]
_WKMouseMovedNotification
--[WebHTMLView(WebPrivate) _updateFocusedAndActiveState]
--[WebHTMLView(WebInternal) _frame]
--[WebView _updateFocusedAndActiveStateForFrame:]
--[WebHTMLView(WebInternal) _isResigningFirstResponder]
-[WebHTMLView _windowChangedKeyState]
-[WebHTMLView _updateControlTints]
--[WebHTMLView windowWillOrderOnScreen:]
+-[WebView _windowWillOrderOnScreen:]
-[WebView(WebPrivate) viewWillDraw]
--[WebFrameView drawRect:]
+-[WebHTMLView(WebPrivate) viewWillDraw]
+-[WebHTMLView(WebInternal) _web_layoutIfNeededRecursive]
+-[WebHTMLView(WebInternal) _layoutIfNeeded]
+-[NSView(WebHTMLViewFileInternal) _web_addDescendantWebHTMLViewsToArray:]
+-[WebHTMLView isOpaque]
-[WebHTMLView(WebPrivate) _recursiveDisplayAllDirtyWithLockFocus:visRect:]
-[WebHTMLView(WebPrivate) _setAsideSubviews]
+-[WebHTMLView drawRect:]
-[WebHTMLView(WebPrivate) _restoreSubviews]
+-[WebView(WebPrivate) _mustDrawUnionedRect:singleRects:count:]
+-[WebHTMLView drawSingleRect:]
+-[WebClipView setAdditionalClip:]
+-[WebHTMLView(WebPrivate) _transparentBackground]
+-[WebFrame(WebInternal) _drawRect:contentsOnly:]
+_WKCGContextIsBitmapContext
+-[WebView(WebPrivate) _UIDelegateForwarder]
++[WebDefaultUIDelegate sharedUIDelegate]
+-[WebView currentNodeHighlight]
+-[WebClipView resetAdditionalClip]
+-[WebView(WebViewInternal) _needsOneShotDrawingSynchronization]
-[WebHTMLView viewWillMoveToHostWindow:]
-[NSArray(WebHTMLView) _web_makePluginViewsPerformSelector:withObject:]
-[WebHTMLView viewDidMoveToHostWindow]
--[WebPreferences(WebPrivate) setRespectStandardStyleKeyEquivalents:]
--[WebPreferences _setBoolValue:forKey:]
--[NSMutableDictionary(WebNSDictionaryExtras) _webkit_setBool:forKey:]
-+[NSUserDefaults(WebNSUserDefaultsExtras) _webkit_defaultsDidChange]
-+[WebView(WebFileInternal) _cacheModel]
--[WebPreferences setPrivateBrowsingEnabled:]
--[WebPreferences(WebPrivate) setDOMPasteAllowed:]
--[WebPreferences setCacheModel:]
--[WebPreferences _setIntegerValue:forKey:]
--[WebPreferences(WebPrivate) setAutomaticallyDetectsCacheModel:]
-+[WebPreferences(WebPrivate) _setInitialDefaultTextEncodingToSystemEncoding]
-+[WebPreferences(WebPrivate) _systemCFStringEncoding]
-_WKGetWebDefaultCFStringEncoding
--[WebHistory init]
-+[WebHistoryPrivate initialize]
--[WebHistoryPrivate init]
--[WebHistory setHistoryAgeInDaysLimit:]
--[WebHistoryPrivate setHistoryAgeInDaysLimit:]
--[WebHistory setHistoryItemLimit:]
--[WebHistoryPrivate setHistoryItemLimit:]
--[WebHistory loadFromURL:error:]
--[WebHistoryPrivate loadFromURL:collectDiscardedItemsInto:error:]
--[WebHistoryPrivate loadHistoryGutsFromURL:savedItemsCount:collectDiscardedItemsInto:error:]
-+[WebHistory setOptionalSharedHistory:]
-+[WebIconDatabase allowDatabaseCleanup]
-[WebBackForwardList dealloc]
__ZL9setCursorP8NSWindowP13objc_selector7CGPoint
-[NSWindow(BorderViewAccess) _web_borderView]
-__ZN20WebFrameLoaderClient23dispatchWillSendRequestEPN7WebCore14DocumentLoaderEmRNS0_15ResourceRequestERKNS0_16ResourceResponse
-__ZN20WebDocumentLoaderMac17increaseLoadCountEm
-__ZNK3WTF9HashTableImmNS_17IdentityExtractorImEENS_7IntHashImEENS_10HashTraitsImEES6_E8containsImNS_22IdentityHashTranslatorImm
-__ZN3WTF7HashSetImNS_7IntHashImEENS_10HashTraitsImEEE3addERKm
-__ZN3WTF9HashTableImmNS_17IdentityExtractorImEENS_7IntHashImEENS_10HashTraitsImEES6_E6expandEv
-__ZN3WTF9HashTableImmNS_17IdentityExtractorImEENS_7IntHashImEENS_10HashTraitsImEES6_E6rehashEi
-__ZN3WTF9HashTableImmNS_17IdentityExtractorImEENS_7IntHashImEENS_10HashTraitsImEES6_E13allocateTableEi
-__ZN3WTF9HashTableImmNS_17IdentityExtractorImEENS_7IntHashImEENS_10HashTraitsImEES6_E15deallocateTableEPmi
--[WebView(WebViewInternal) _objectForIdentifier:]
-__ZNK3WTF7HashMapImNS_9RetainPtrIP11objc_objectEENS_7IntHashImEENS_10HashTraitsImEENS7_IS4_EEE3getERKm
-__Z24CallResourceLoadDelegatePFP11objc_objectS0_P13objc_selectorzEP7WebViewS2_S0_S0_S0_S0_
-__ZN3WTF9HashTableIN7WebCore12AtomicStringESt4pairIS2_NS1_6StringEENS_18PairFirstExtractorIS5_EENS1_15CaseFoldingHashENS_14Pair
-__ZN3WTF6VectorIN7WebCore6StringELm0EEaSERKS3_
-__ZN3WTF6VectorIN7WebCore6StringELm0EE6shrinkEm
-__ZNK20WebFrameLoaderClient32representationExistsForURLSchemeERKN7WebCore6StringE
-+[WebView(WebPrivate) _representationExistsForURLScheme:]
-_WKCreateNSURLConnectionDelegateProxy
-__ZN20WebFrameLoaderClient26shouldUseCredentialStorageEPN7WebCore14DocumentLoaderEm
-__ZL29_updateMouseoverTimerCallbackP16__CFRunLoopTimerPv
--[WebHTMLView(WebPrivate) _updateMouseoverWithFakeEvent]
--[WebHTMLView(WebPrivate) _updateMouseoverWithEvent:]
--[WebView estimatedProgress]
--[WebIconDatabase defaultIconForURL:withSize:]
-+[WebView(WebPrivate) _shouldUseFontSmoothing]
-+[WebView(WebPrivate) _setShouldUseFontSmoothing:]
--[NSString(WebKitExtras) _web_drawDoubledAtPoint:withTopColor:bottomColor:font:]
--[NSString(WebKitExtras) _web_drawAtPoint:font:textColor:]
-_WKCGContextGetShouldSmoothFonts
-_WKSetCGFontRenderingMode
--[NSString(WebKitExtras) _webkit_hasCaseInsensitivePrefix:]
-+[NSURL(WebNSURLExtras) _web_URLWithUserTypedString:]
-+[NSURL(WebNSURLExtras) _web_URLWithUserTypedString:relativeToURL:]
--[WebHistoryPrivate historyItemLimit]
--[WebHistoryPrivate ageLimitDate]
--[WebHistoryPrivate historyAgeInDaysLimit]
--[WebHistoryItem(WebInternal) initFromDictionaryRepresentation:]
--[NSDictionary(WebNSDictionaryExtras) _webkit_stringForKey:]
--[WebHistoryItem(WebInternal) initWithURLString:title:displayTitle:lastVisitedTimeInterval:]
--[WebHistoryItem(WebInternal) initWithWebCoreHistoryItem:]
-__ZL19historyItemWrappersv
-__ZN3WTF7HashMapIPN7WebCore11HistoryItemEP14WebHistoryItemNS_7PtrHashIS3_EENS_10HashTraitsIS3_EENS8_IS5_EEE3setERKS3_RKS5_
-__ZN3WTF9HashTableIPN7WebCore11HistoryItemESt4pairIS3_P14WebHistoryItemENS_18PairFirstExtractorIS7_EENS_7PtrHashIS3_EENS_14Pair
--[NSDictionary(WebNSDictionaryExtras) _webkit_intForKey:]
--[NSDictionary(WebNSDictionaryExtras) _webkit_numberForKey:]
--[NSDictionary(WebNSDictionaryExtras) _webkit_boolForKey:]
--[NSDictionary(WebNSDictionaryExtras) _webkit_arrayForKey:]
--[NSArray(WebNSArrayExtras) _webkit_numberAtIndex:]
--[WebHistoryItem URLString]
--[WebHistoryItem lastVisitedTimeInterval]
--[WebHistoryPrivate addItem:discardDuplicate:]
--[WebHistoryPrivate addItemToDateCaches:]
--[WebHistoryPrivate findKey:forDay:]
-__ZNK3WTF9HashTableIxSt4pairIxNS_9RetainPtrI14NSMutableArrayEEENS_18PairFirstExtractorIS5_EENS_7IntHashIyEENS_14PairHashTraitsI
-__ZN3WTF7HashMapIxNS_9RetainPtrI14NSMutableArrayEENS_7IntHashIyEENS_10HashTraitsIxEENS6_IS3_EEE3setERKxRKS3_
--[WebHistoryPrivate insertItem:forDateKey:]
-__ZNK3WTF7HashMapIxNS_9RetainPtrI14NSMutableArrayEENS_7IntHashIyEENS_10HashTraitsIxEENS6_IS3_EEE3getERKx
--[NSArray(WebNSArrayExtras) _webkit_stringAtIndex:]
-+[WebCoreStatistics setShouldPrintExceptions:]
--[WebHistory itemForURL:]
--[WebHistoryPrivate itemForURL:]
--[WebHistoryPrivate itemForURLString:]
-__ZN21WebIconDatabaseClient28dispatchDidAddIconForPageURLERKN7WebCore6StringE
--[WebIconDatabase(WebInternal) _sendNotificationForURL:]
--[NSNotificationCenter(WebNSNotificationCenterExtras) postNotificationOnMainThreadWithName:object:userInfo:]
--[NSNotificationCenter(WebNSNotificationCenterExtras) postNotificationOnMainThreadWithName:object:userInfo:waitUntilDone:]
-+[NSNotificationCenter(WebNSNotificationCenterExtras) _postNotificationName:]
-__ZN20WebFrameLoaderClient31dispatchDecidePolicyForMIMETypeEMN7WebCore11FrameLoaderEFvNS0_12PolicyActionEERKNS0_6StringERKNS0_1
++[WebBaseNetscapePluginView initialize]
+_WKSendUserChangeNotifications
+__ZN20WebFrameLoaderClient31dispatchDecidePolicyForMIMETypeEMN7WebCore13PolicyCheckerEFvNS0_12PolicyActionEERKNS0_6StringERKNS0
+[WebView canShowMIMEType:]
++[WebView _canShowMIMEType:allowingPlugins:]
__ZNK20WebFrameLoaderClient15canShowMIMETypeERKN7WebCore6StringE
+-[WebView _canShowMIMEType:]
__ZN20WebFrameLoaderClient26dispatchDidReceiveResponseEPN7WebCore14DocumentLoaderEmRKNS0_16ResourceResponseE
__Z24CallResourceLoadDelegatePFP11objc_objectS0_P13objc_selectorzEP7WebViewS2_S0_S0_S0_
__ZN20WebFrameLoaderClient17dispatchWillCloseEv
__ZN20WebFrameLoaderClient18makeRepresentationEPN7WebCore14DocumentLoaderE
-[WebDataSource(WebInternal) _makeRepresentation]
-+[WebDataSource(WebFileInternal) _representationClassForMIMEType:]
++[WebDataSource(WebFileInternal) _representationClassForMIMEType:allowingPlugins:]
-[WebHTMLRepresentation init]
-[WebDataSource(WebFileInternal) _setRepresentation:]
-[WebHTMLRepresentation setDataSource:]
+__ZN15WebEditorClient23clearUndoRedoOperationsEv
__ZN20WebDocumentLoaderMac15detachFromFrameEv
__ZN20WebDocumentLoaderMac17releaseDataSourceEv
-__Z26WKNotifyHistoryItemChangedv
+__Z26WKNotifyHistoryItemChangedPN7WebCore11HistoryItemE
+__ZNK20WebFrameLoaderClient29dispatchDidAddBackForwardItemEPN7WebCore11HistoryItemE
__ZN20WebFrameLoaderClient19updateGlobalHistoryEv
-+[WebHistory optionalSharedHistory]
--[WebHistory(WebInternal) _visitedURL:withTitle:method:wasFailure:]
--[WebHistoryPrivate visitedURL:withTitle:]
--[WebHistoryPrivate removeItemFromDateCaches:]
-__ZN3WTF9HashTableIxSt4pairIxNS_9RetainPtrI14NSMutableArrayEEENS_18PairFirstExtractorIS5_EENS_7IntHashIyEENS_14PairHashTraitsIN
--[WebHistoryItem(WebInternal) _visitedWithTitle:]
-__Z4coreP14WebHistoryItem
--[WebHistory _sendNotification:entries:]
--[WebHistoryItem originalURLString]
+-[WebView(WebPendingPublic) historyDelegate]
+__Z40WebViewGetHistoryDelegateImplementationsP7WebView
+-[WebNavigationData initWithURLString:title:originalRequest:response:hasSubstituteData:clientRedirectSource:]
+__Z19CallHistoryDelegatePFP11objc_objectS0_P13objc_selectorzEP7WebViewS2_S0_S0_
+-[WebNavigationData response]
+-[WebNavigationData clientRedirectSource]
+-[WebNavigationData hasSubstituteData]
+-[WebNavigationData originalRequest]
+-[WebNavigationData title]
+-[WebNavigationData url]
+-[WebNavigationData dealloc]
+-[WebNavigationDataPrivate dealloc]
__ZN20WebFrameLoaderClient32updateGlobalHistoryRedirectLinksEv
--[WebDynamicScrollBarsView(WebInternal) setScrollBarsSuppressed:repaintOnUnsuppress:]
-[WebDataSource dealloc]
-[WebDataSourcePrivate dealloc]
__ZN20WebDocumentLoaderMac16detachDataSourceEv
@@ -533,135 +528,62 @@ __ZN20WebFrameLoaderClient13committedLoadEPN7WebCore14DocumentLoaderEPKci
-[WebFrame(WebInternal) _receivedData:textEncodingName:]
__ZN20WebFrameLoaderClient21dispatchDidCommitLoadEv
-[WebView(WebPrivate) _didCommitLoadForFrame:]
--[WebDataSource pageTitle]
-[WebHTMLRepresentation title]
--[WebDataSource(WebInternal) _documentLoader]
-[WebView(WebPrivate) _setJavaScriptURLsAreAllowed:]
+__ZL19historyItemWrappersv
__ZNK3WTF7HashMapIPN7WebCore11HistoryItemEP14WebHistoryItemNS_7PtrHashIS3_EENS_10HashTraitsIS3_EENS8_IS5_EEE3getERKS3_
+-[WebHistoryItem(WebInternal) initWithWebCoreHistoryItem:]
+__ZN3WTF7HashMapIPN7WebCore11HistoryItemEP14WebHistoryItemNS_7PtrHashIS3_EENS_10HashTraitsIS3_EENS8_IS5_EEE3setERKS3_RKS5_
+__ZN3WTF9HashTableIPN7WebCore11HistoryItemESt4pairIS3_P14WebHistoryItemENS_18PairFirstExtractorIS7_EENS_7PtrHashIS3_EENS_14Pair
+-[WebView becomeFirstResponder]
+-[WebFrameView acceptsFirstResponder]
-[WebFrameView becomeFirstResponder]
-[WebHTMLView acceptsFirstResponder]
-[WebHTMLView becomeFirstResponder]
-[WebView(WebPrivate) _isPerformingProgrammaticFocus]
-__ZN15WebEditorClient10isEditableEv
--[WebView(WebViewEditing) isEditable]
-[WebHTMLView(WebInternal) _updateFontPanel]
-[WebHTMLView(WebPrivate) _canEdit]
+__ZL11isTextInputPN7WebCore5FrameE
-[WebFrame(WebInternal) _addData:]
__ZN20WebFrameLoaderClient15willChangeTitleEPN7WebCore14DocumentLoaderE
__ZN20WebFrameLoaderClient14didChangeTitleEPN7WebCore14DocumentLoaderE
__ZN20WebFrameLoaderClient8setTitleERKN7WebCore6StringERKNS0_4KURLE
--[WebHistoryItem(WebInternal) setTitle:]
__ZN20WebFrameLoaderClient23dispatchDidReceiveTitleERKN7WebCore6StringE
__Z21CallFrameLoadDelegatePFP11objc_objectS0_P13objc_selectorzEP7WebViewS2_S0_S0_
-__ZN20WebFrameLoaderClient19windowObjectClearedEv
--[WebView(WebPendingPublic) scriptDebugDelegate]
-__ZN15WebChromeClient18formStateDidChangeEPKN7WebCore4NodeE
+__ZN15WebChromeClient20populateVisitedLinksEv
+__Z19CallHistoryDelegatePFP11objc_objectS0_P13objc_selectorzEP7WebViewS2_
+-[WebView(WebPendingPublic) addVisitedLinks:]
+__ZN3WTF6VectorItLm512EE6shrinkEm
-[WebHTMLView dataSourceUpdated:]
__ZN20WebFrameLoaderClient39postProgressEstimateChangedNotificationEv
__ZN20WebFrameLoaderClient31dispatchDidReceiveContentLengthEPN7WebCore14DocumentLoaderEmi
__Z24CallResourceLoadDelegatePFP11objc_objectS0_P13objc_selectorzEP7WebViewS2_S0_lS0_
-__ZNK20WebFrameLoaderClient17willCacheResponseEPN7WebCore14DocumentLoaderEmP19NSCachedURLResponse
-[WebHTMLRepresentation finishedLoadingWithDataSource:]
-[WebHTMLRepresentation _isDisplayingWebArchive]
__ZN20WebFrameLoaderClient29dispatchDidFinishDocumentLoadEv
+__ZN20WebFrameLoaderClient29dispatchDidHandleOnloadEventsEv
+_WKSetUpFontCache
+__ZN20WebFrameLoaderClient38dispatchDidFirstVisuallyNonEmptyLayoutEv
__ZN20WebFrameLoaderClient27dispatchDidLoadMainResourceEPN7WebCore14DocumentLoaderE
+__ZN20WebFrameLoaderClient21dispatchDidFinishLoadEv
+-[WebView(WebPrivate) _didFinishLoadForFrame:]
+-[WebView(WebPrivate) _didChangeBackForwardKeys]
+-[WebHistoryItem(WebPrivate) _transientPropertyForKey:]
+__ZN20WebFrameLoaderClient32postProgressFinishedNotificationEv
__ZN20WebFrameLoaderClient24dispatchDidFinishLoadingEPN7WebCore14DocumentLoaderEm
-[WebView(WebViewInternal) _removeObjectForIdentifier:]
-__ZN3WTF9HashTableImSt4pairImNS_9RetainPtrIP11objc_objectEEENS_18PairFirstExtractorIS6_EENS_7IntHashImEENS_14PairHashTraitsINS_
__ZN20WebDocumentLoaderMac17decreaseLoadCountEm
__ZN3WTF9HashTableImmNS_17IdentityExtractorImEENS_7IntHashImEENS_10HashTraitsImEES6_E4findImNS_22IdentityHashTranslatorImmS4_EE
__ZN3WTF9HashTableImmNS_17IdentityExtractorImEENS_7IntHashImEENS_10HashTraitsImEES6_E47removeAndInvalidateWithoutEntryConsisten
__ZN3WTF9HashTableImmNS_17IdentityExtractorImEENS_7IntHashImEENS_10HashTraitsImEES6_E6removeEPm
++[NSUserDefaults(WebNSUserDefaultsExtras) _webkit_defaultsDidChange]
-[WebHTMLView(WebNSTextInputSupport) inputContext]
-__ZL11isTextInputPN7WebCore5FrameE
-__ZN15WebChromeClient20populateVisitedLinksEv
--[WebHistory(WebInternal) _addVisitedLinksToPageGroup:]
--[WebHistoryPrivate addVisitedLinksToPageGroup:]
-__ZN3WTF6VectorItLm512EE6shrinkEm
-_WKSetUpFontCache
-_WKGetFontInLanguageForRange
--[WebDynamicScrollBarsView(WebInternal) setScrollingModes:vertical:andLock:]
--[WebDynamicScrollBarsView(WebInternal) updateScrollers]
-_WKGetFontInLanguageForCharacter
--[WebHTMLView(WebInternal) _needsLayout]
--[WebFrame(WebInternal) _needsLayout]
-__ZN20WebFrameLoaderClient22dispatchDidFirstLayoutEv
-__ZN20WebFrameLoaderClient38dispatchDidFirstVisuallyNonEmptyLayoutEv
--[WebHTMLView(WebPrivate) viewWillDraw]
--[WebHTMLView(WebInternal) _web_layoutIfNeededRecursive]
--[WebHTMLView(WebInternal) _layoutIfNeeded]
--[NSView(WebHTMLViewFileInternal) _web_addDescendantWebHTMLViewsToArray:]
--[WebHTMLView isOpaque]
--[WebHTMLView drawRect:]
--[WebView(WebPrivate) _mustDrawUnionedRect:singleRects:count:]
--[WebHTMLView drawSingleRect:]
--[WebClipView setAdditionalClip:]
--[WebHTMLView(WebPrivate) _transparentBackground]
--[WebFrame(WebInternal) _drawRect:contentsOnly:]
-_WKDrawBezeledTextFieldCell
--[WebView(WebPrivate) _UIDelegateForwarder]
-+[WebDefaultUIDelegate sharedUIDelegate]
--[WebView currentNodeHighlight]
--[WebClipView resetAdditionalClip]
-__ZN20WebFrameLoaderClient22dispatchDidReceiveIconEv
--[WebView(WebViewInternal) _dispatchDidReceiveIconFromWebFrame:]
--[WebView(WebViewInternal) _registerForIconNotification:]
-__ZN15WebChromeClient14firstResponderEv
-__ZN15WebEditorClient19setInputMethodStateEb
-__ZN15WebEditorClient32isContinuousSpellCheckingEnabledEv
--[WebView(WebViewEditing) isContinuousSpellCheckingEnabled]
--[WebView(WebFileInternal) _continuousCheckingAllowed]
-__ZN15WebEditorClient24isGrammarCheckingEnabledEv
--[WebView(WebViewGrammarChecking) isGrammarCheckingEnabled]
-__ZN15WebEditorClient25respondToChangedSelectionEv
--[WebView selectedFrame]
--[WebView(WebFileInternal) _focusedFrame]
-__ZL19containingFrameViewP6NSView
--[WebHTMLView(WebInternal) _selectionChanged]
--[WebHTMLView(WebNSTextInputSupport) _updateSelectionForInputManager]
--[WebHTMLView(WebHTMLViewFileInternal) _frameView]
--[WebHTMLView(WebPrivate) _recursiveDisplayRectIfNeededIgnoringOpacity:isVisibleRect:rectIsVisibleRectForView:topView:]
-_WKDrawFocusRing
-__ZNK15WebChromeClient18scrollRectIntoViewERKN7WebCore7IntRectEPKNS0_10ScrollViewE
--[WebViewFactory defaultLanguageCode]
-__ZN20WebFrameLoaderClient29dispatchDidHandleOnloadEventsEv
-__ZN20WebFrameLoaderClient21dispatchDidFinishLoadEv
--[WebView(WebPrivate) _didFinishLoadForFrame:]
--[WebView(WebPrivate) _didChangeBackForwardKeys]
--[WebFrame DOMDocument]
--[WebHistoryItem(WebPrivate) _transientPropertyForKey:]
-__ZN20WebFrameLoaderClient32postProgressFinishedNotificationEv
-__ZL17isInPasswordFieldPN7WebCore5FrameE
--[WebHTMLView(WebNSTextInputSupport) validAttributesForMarkedText]
--[WebHTMLRepresentation currentForm]
--[WebHTMLRepresentation controlsInForm:]
-__ZL25formElementFromDOMElementP10DOMElement
--[WebHTMLRepresentation elementIsPassword:]
-__ZL26inputElementFromDOMElementP10DOMElement
--[WebHTMLRepresentation elementDoesAutoComplete:]
--[WebView(WebPrivate) _globalHistoryItem]
--[WebHTMLView(WebDocumentPrivateProtocols) selectionView]
--[WebHTMLView(WebPrivate) _recursive:displayRectIgnoringOpacity:inContext:topView:]
--[WebHistoryItem initWithURLString:title:lastVisitedTimeInterval:]
--[WebHistoryItem(WebInternal) _recordInitialVisit]
--[WebHistory(WebPrivate) allItems]
--[WebHistoryPrivate allItems]
--[WebHistoryItem(WebPrivate) visitCount]
--[WebHistory(WebPrivate) _itemForURLString:]
--[WebFrame(WebPrivate) _isFrameSet]
--[WebHTMLView(WebDocumentPrivateProtocols) string]
--[WebHTMLView(WebHTMLViewFileInternal) _documentRange]
--[DOMDocument(WebDOMDocumentOperationsInternal) _documentRange]
--[DOMDocument(WebDOMDocumentOperationsInternal) _createRangeWithNode:]
--[WebFrame(WebInternal) _stringForRange:]
+_WKCGContextGetShouldSmoothFonts
+_WKSetCGFontRenderingMode
-[WebHTMLView mouseMovedNotification:]
-_WKGetMIMETypeForExtension
-_WKQTIncludeOnlyModernMediaFileTypes
-_WKQTMovieMaxTimeLoadedChangeNotification
--[WebFrame childFrames]
-_WKQTMovieMaxTimeLoaded
-_maxValueForTimeRanges
+-[WebHTMLView(WebPrivate) _updateMouseoverWithEvent:]
-[WebView(WebPendingPublic) isHoverFeedbackSuspended]
+__ZNK15WebChromeClient18platformPageClientEv
__ZN15WebChromeClient23mouseDidMoveOverElementERKN7WebCore13HitTestResultEj
+[WebElementDictionary initialize]
-[WebElementDictionary initWithHitTestResult:]
@@ -672,82 +594,95 @@ __Z14CallUIDelegateP7WebViewP13objc_selectorP11objc_objectm
-[WebElementDictionary objectForKey:]
-[WebElementDictionary _absoluteLinkURL]
-[WebElementDictionary dealloc]
-__ZN15WebChromeClient10setToolTipERKN7WebCore6StringE
+__ZN15WebChromeClient10setToolTipERKN7WebCore6StringENS0_13TextDirectionE
+-[WebView(WebViewEventHandling) _setToolTip:]
+-[WebView(WebViewInternal) _selectedOrMainFrame]
+-[WebView selectedFrame]
+-[WebView(WebFileInternal) _focusedFrame]
+__ZL19containingFrameViewP6NSView
-[WebHTMLView(WebPrivate) _setToolTip:]
+-[WebHTMLView(WebPrivate) _recursiveDisplayRectIfNeededIgnoringOpacity:isVisibleRect:rectIsVisibleRectForView:topView:]
+__ZL29_updateMouseoverTimerCallbackP16__CFRunLoopTimerPv
+-[WebHTMLView(WebPrivate) _updateMouseoverWithFakeEvent]
+-[WebIconDatabase(WebInternal) _iconForFileURL:withSize:]
+-[WebIconDatabase(WebInternal) _iconsBySplittingRepresentationsOfIcon:]
+-[WebIconDatabase(WebInternal) _iconFromDictionary:forSize:cache:]
++[NSURL(WebNSURLExtras) _web_URLWithUserTypedString:]
++[NSURL(WebNSURLExtras) _web_URLWithUserTypedString:relativeToURL:]
+__ZL10isHexDigitc
+__ZL13hexDigitValuec
+-[WebFrame childFrames]
++[WebScriptWorld world]
+-[WebScriptWorld init]
+-[WebScriptWorld initWithWorld:]
+-[WebScriptWorldPrivate .cxx_construct]
+__ZL9allWorldsv
+__ZN3WTF7HashMapIPN7WebCore15DOMWrapperWorldEP14WebScriptWorldNS_7PtrHashIS3_EENS_10HashTraitsIS3_EENS8_IS5_EEE3addERKS3_RKS5_
+__ZN3WTF9HashTableIPN7WebCore15DOMWrapperWorldESt4pairIS3_P14WebScriptWorldENS_18PairFirstExtractorIS7_EENS_7PtrHashIS3_EENS_14
+-[WebScriptWorld unregisterWorld]
+-[WebScriptWorld dealloc]
+-[WebScriptWorldPrivate .cxx_destruct]
+-[WebView(WebPrivate) _globalHistoryItem]
+-[WebHistoryItem originalURLString]
+-[WebHTMLView(WebDocumentPrivateProtocols) selectionView]
+-[WebView(WebPrivate) _isSoftwareRenderable]
+-[WebHTMLView(WebPrivate) _recursive:displayRectIgnoringOpacity:inContext:topView:]
+-[WebView(WebPrivate) _includesFlattenedCompositingLayersWhenDrawingToBitmap]
+-[WebFrame(WebPrivate) _isFrameSet]
+-[WebHTMLView(WebDocumentPrivateProtocols) string]
+-[WebHTMLView(WebHTMLViewFileInternal) _documentRange]
+-[DOMDocument(WebDOMDocumentOperationsInternal) _documentRange]
+-[DOMDocument(WebDOMDocumentOperationsInternal) _createRangeWithNode:]
+-[WebFrame(WebInternal) _stringForRange:]
+-[NSString(WebKitExtras) _webkit_hasCaseInsensitivePrefix:]
+-[WebHTMLView updateCell:]
+-[WebView _windowDidResignKey:]
+-[WebHTMLView windowDidResignKey:]
+-[WebHTMLView removeMouseMovedObserver]
-[WebHTMLView shouldDelayWindowOrderingForEvent:]
-[WebHTMLView(WebHTMLViewFileInternal) _hitViewForEvent:]
-[WebHTMLView _isSelectionEvent:]
-[WebHTMLView(WebDocumentInternalProtocols) elementAtPoint:allowShadowContent:]
-[WebElementDictionary _isSelected]
--[WebHTMLView mouseDown:]
+-[WebHTMLView needsPanelToBecomeKey]
+-[WebHTMLView acceptsFirstMouse:]
-[WebHTMLView(WebHTMLViewFileInternal) _setMouseDownEvent:]
-__ZN15WebEditorClient22textFieldDidEndEditingEPN7WebCore7ElementE
-__Z16CallFormDelegateP7WebViewP13objc_selectorP11objc_objectS4_
-__ZN15WebEditorClient25shouldChangeSelectedRangeEPN7WebCore5RangeES2_NS0_9EAffinityEb
--[WebView(WebViewEditing) _shouldChangeSelectedDOMRange:toDOMRange:affinity:stillSelecting:]
--[WebView(WebPrivate) _editingDelegateForwarder]
-+[WebDefaultEditingDelegate sharedEditingDelegate]
--[WebDefaultEditingDelegate webView:shouldChangeSelectedDOMRange:toDOMRange:affinity:stillSelecting:]
--[WebHTMLView mouseDragged:]
-__ZN13WebDragClient28dragSourceActionMaskForPointERKN7WebCore8IntPointE
--[WebDefaultUIDelegate webView:dragSourceActionMaskForPoint:]
--[WebHTMLView mouseUp:]
--[WebHTMLView layout]
--[WebHTMLView layoutToMinimumPageWidth:maximumPageWidth:adjustingViewSize:]
--[WebHTMLView reapplyStyles]
+-[WebHTMLView _isScrollBarEvent:]
+-[WebElementDictionary _isInScrollBar]
+-[WebHTMLView scrollWheel:]
+_WKIsLatchingWheelEvent
+_WKGetWheelEventDeltas
+-[WebClipView scrollWheel:]
+-[WebDynamicScrollBarsView(WebInternal) scrollWheel:]
+-[WebDynamicScrollBarsView(WebInternal) allowsVerticalScrolling]
+-[WebDynamicScrollBarsView(WebInternal) autoforwardsScrollWheelEvents]
+-[WebClipView _immediateScrollToPoint:]
+-[WebHTMLView(WebHTMLViewFileInternal) _frameView]
+-[WebBackForwardList backListCount]
+-[WebBackForwardList forwardListCount]
+-[WebBackForwardList itemAtIndex:]
-[WebHistoryItem title]
--[WebDataSource(WebPrivate) _mainDocumentError]
--[WebHistory orderedLastVisitedDays]
--[WebHistoryPrivate orderedLastVisitedDays]
-__ZN3WTF6VectorIiLm0EE15reserveCapacityEm
-__ZSt16__introsort_loopIPilEvT_S1_T0_
-__ZSt22__final_insertion_sortIPiEvT_S1_
-__ZSt16__insertion_sortIPiEvT_S1_
-__ZN3WTF6VectorIiLm0EE6shrinkEm
--[WebHistory orderedItemsLastVisitedOnDay:]
--[WebHistoryPrivate orderedItemsLastVisitedOnDay:]
--[WebView(WebPrivate) _isClosed]
--[WebFrameView(WebPrivate) _contentView]
--[WebHTMLView resignFirstResponder]
--[WebHTMLView updateCell:]
--[WebHTMLView maintainsInactiveSelection]
--[WebView(WebViewEditing) maintainsInactiveSelection]
--[WebView(WebPendingPublic) setHoverFeedbackSuspended:]
--[WebHTMLView(WebInternal) _hoverFeedbackSuspendedChanged]
--[WebView elementAtPoint:]
--[WebView _elementAtWindowPoint:]
--[WebView(WebFileInternal) _frameViewAtWindowPoint:]
--[WebHTMLView(WebDocumentInternalProtocols) elementAtPoint:]
--[WebElementDictionary _domNode]
--[DOMDocument(WebDOMDocumentOperations) webFrame]
--[WebHistory(WebPrivate) _data]
--[WebHistoryPrivate data]
-__ZN16WebHistoryWriterC1EPN3WTF7HashMapIxNS0_9RetainPtrI14NSMutableArrayEENS0_7IntHashIyEENS0_10HashTraitsIxEENS7_IS4_EEEE
-__ZN16WebHistoryWriterC2EPN3WTF7HashMapIxNS0_9RetainPtrI14NSMutableArrayEENS0_7IntHashIyEENS0_10HashTraitsIxEENS7_IS4_EEEE
-__ZN16WebHistoryWriter17writeHistoryItemsERN7WebCore30BinaryPropertyListObjectStreamE
-__ZN7WebCore25HistoryPropertyListWriterD2Ev
--[WebView becomeFirstResponder]
--[WebFrameView acceptsFirstResponder]
--[WebHTMLView(WebDocumentPrivateProtocols) deselectAll]
--[WebHTMLView clearFocus]
--[WebView textSizeMultiplier]
--[WebView customTextEncodingName]
--[WebView _mainFrameOverrideEncoding]
--[WebPreferences userStyleSheetLocation]
--[NSString(WebNSURLExtras) _webkit_looksLikeAbsoluteURL]
--[NSString(WebNSURLExtras) _webkit_rangeOfURLScheme]
-__ZN20WebFrameLoaderClient33dispatchWillPerformClientRedirectERKN7WebCore4KURLEdd
-__Z21CallFrameLoadDelegatePFP11objc_objectS0_P13objc_selectorzEP7WebViewS2_S0_dS0_S0_
+__ZN3WTF6VectorItLm2048EE6shrinkEm
+-[WebFrame provisionalDataSource]
+-[WebFrame dataSource]
+-[WebView estimatedProgress]
+-[WebIconDatabase iconForURL:withSize:]
+-[WebIconDatabase iconForURL:withSize:cache:]
+-[NSString(WebNSURLExtras) _webkit_isFileURL]
+__Z13webGetNSImagePN7WebCore5ImageE6CGSize
+-[WebFrame DOMDocument]
+__ZL44needsMicrosoftMessengerDOMDocumentWorkaroundv
__ZNK20WebFrameLoaderClient29generatedMIMETypeForURLSchemeERKN7WebCore6StringE
-__ZNK20WebFrameLoaderClient25didPerformFirstNavigationEv
--[WebPreferences(WebPrivate) automaticallyDetectsCacheModel]
-__ZN20WebFrameLoaderClient19saveViewStateToItemEPN7WebCore11HistoryItemE
--[WebHistory removeItems:]
--[WebHistoryPrivate removeItems:]
--[WebHistoryPrivate removeItem:]
--[WebHistoryPrivate removeItemForURLString:]
-__ZN20WebFrameLoaderClient31dispatchDidCancelClientRedirectEv
+-[WebIconDatabase defaultIconForURL:withSize:]
+__ZN21WebIconDatabaseClient28dispatchDidAddIconForPageURLERKN7WebCore6StringE
+-[WebIconDatabase(WebInternal) _sendNotificationForURL:]
+-[NSNotificationCenter(WebNSNotificationCenterExtras) postNotificationOnMainThreadWithName:object:userInfo:]
+-[NSNotificationCenter(WebNSNotificationCenterExtras) postNotificationOnMainThreadWithName:object:userInfo:waitUntilDone:]
++[WebView(WebPrivate) _shouldUseFontSmoothing]
++[WebView(WebPrivate) _setShouldUseFontSmoothing:]
+-[NSString(WebKitExtras) _web_drawAtPoint:font:textColor:]
-[WebHistoryItem dealloc]
+-[WebIconDatabase releaseIconForURL:]
-[WebHTMLView dealloc]
-[WebHTMLView(WebPrivate) close]
-[WebHTMLView(WebPrivate) _clearLastHitViewIfSelf]
@@ -755,36 +690,125 @@ __ZN20WebFrameLoaderClient31dispatchDidCancelClientRedirectEv
-[WebPluginController _cancelOutstandingChecks]
-[WebHTMLViewPrivate clear]
-[WebPluginController dealloc]
--[WebHTMLRepresentation dealloc]
-[WebHTMLViewPrivate dealloc]
--[WebElementDictionary _webFrame]
--[WebElementDictionary _targetWebFrame]
--[NSURL(WebNSURLExtras) _webkit_URLByRemovingFragment]
--[NSURL(WebNSURLExtras) _webkit_URLByRemovingComponent:]
-__ZL10isHexDigitc
-__ZL13hexDigitValuec
-__ZL32applyHostNameFunctionToURLStringP8NSStringPFvS0_8_NSRangePvES2_
-__ZL29collectRangesThatNeedEncodingP8NSString8_NSRangePv
-__ZL28collectRangesThatNeedMappingP8NSString8_NSRangePva
--[NSString(WebNSURLExtras) _web_hostNameNeedsEncodingWithRange:]
--[WebHTMLView(WebPrivate) addTrackingRect:owner:userData:assumeInside:]
--[WebHTMLView(WebPrivate) _sendToolTipMouseEntered]
--[WebHTMLView(WebPrivate) _sendToolTipMouseExited]
--[WebHTMLView windowDidResignKey:]
--[WebHTMLView removeMouseMovedObserver]
++[NSNotificationCenter(WebNSNotificationCenterExtras) _postNotificationName:]
++[WebView(WebPrivate) _pointingHandCursor]
++[WebView(WebFileInternal) _cacheModel]
++[WebHTMLView(WebPrivate) _postFlagsChangedEvent:]
+-[WebHTMLView flagsChanged:]
+__ZN15WebEditorClient24handleInputMethodKeydownEPN7WebCore13KeyboardEventE
+-[WebHTMLView(WebInternal) _interceptEditingKeyEvent:shouldSaveCommand:]
+__ZN15WebEditorClient19handleKeyboardEventEPN7WebCore13KeyboardEventE
+-[WebHTMLView performKeyEquivalent:]
+-[WebHTMLView _handleStyleKeyEquivalent:]
+-[WebPreferences(WebPrivate) respectStandardStyleKeyEquivalents]
+-[WebHTMLView(WebNSTextInputSupport) doCommandBySelector:]
+-[WebHTMLView resignFirstResponder]
+-[WebHTMLView maintainsInactiveSelection]
+-[WebView hostWindow]
+-[WebView acceptsFirstResponder]
+-[WebView(WebViewEditing) maintainsInactiveSelection]
+-[WebHTMLView(WebDocumentPrivateProtocols) deselectAll]
+-[WebHTMLView clearFocus]
+-[NSView(WebExtras) _web_dragShouldBeginFromMouseDown:withExpiration:xHysteresis:yHysteresis:]
+-[WebClipView _focusRingVisibleRect]
+-[WebHistoryItem URLString]
+-[WebView(WebPendingPublic) shouldClose]
-[WebWindowWatcher windowWillClose:]
+-[WebView _windowWillClose:]
+-[WebView shouldCloseWithWindow]
+-[WebView(WebPrivate) _isClosed]
+-[WebView(WebPrivate) _clearUndoRedoOperations]
+-[WebView close]
+-[WebView(WebPrivate) _close]
+-[WebView(AllWebViews) _removeFromAllWebViewsSet]
+-[WebView(WebViewEventHandling) _closingEventHandling]
+-[WebView(WebViewInternal) _exitFullscreen]
+__ZN20WebFrameLoaderClient19saveViewStateToItemEPN7WebCore11HistoryItemE
+__ZN20WebFrameLoaderClient19detachedFromParent2Ev
+__ZN20WebFrameLoaderClient19detachedFromParent3Ev
+-[WebView(WebPendingPublic) setScriptDebugDelegate:]
+-[WebView(WebPrivate) _cacheScriptDebugDelegateImplementations]
+-[WebView(WebPrivate) _detachScriptDebuggerFromAllFrames]
+-[WebFrame(WebInternal) _detachScriptDebugger]
+-[WebView removeDragCaret]
+__ZN15WebEditorClient13pageDestroyedEv
+__ZN15WebEditorClientD0Ev
+__ZN18WebInspectorClient18inspectorDestroyedEv
+__ZN18WebInspectorClientD0Ev
+-[WebNodeHighlighter dealloc]
+__ZN21WebPluginHalterClientD0Ev
+__ZN20WebFrameLoaderClient20frameLoaderDestroyedEv
+-[WebFrame(WebInternal) _clearCoreFrame]
+__ZN20WebFrameLoaderClientD0Ev
+-[WebFrame dealloc]
+-[WebFramePrivate dealloc]
+__ZN30WebGeolocationControllerClient20geolocationDestroyedEv
+__ZN30WebGeolocationControllerClientD0Ev
+__ZN20WebContextMenuClient20contextMenuDestroyedEv
+__ZN20WebContextMenuClientD0Ev
+__ZN13WebDragClient23dragControllerDestroyedEv
+__ZN13WebDragClientD0Ev
+__ZN15WebChromeClient15chromeDestroyedEv
+__ZN15WebChromeClientD0Ev
+-[WebView(WebFileInternal) _clearLayerSyncLoopObserver]
+-[WebView preferencesIdentifier]
+-[WebPreferences identifier]
++[WebPreferences(WebPrivate) _removeReferenceForIdentifier:]
+-[WebPreferences(WebPrivate) didRemoveFromWebView]
+-[WebView(WebPrivate) _closePluginDatabases]
+-[WebView dealloc]
+-[WebViewPrivate dealloc]
+-[WebViewPrivate .cxx_destruct]
+-[WebFrameView dealloc]
+-[WebFrameViewPrivate dealloc]
+-[WebDynamicScrollBarsView dealloc]
+-[WebHTMLRepresentation dealloc]
+-[NSString(WebNSURLExtras) _webkit_scriptIfJavaScriptURL]
+-[NSString(WebNSURLExtras) _webkit_isJavaScriptURL]
+-[WebView(WebPrivate) setDefersCallbacks:]
+__ZN3WTF6VectorIN7WebCore6StringELm0EE6shrinkEm
+_WKCopyNSURLResponseStatusLine
__ZNK20WebFrameLoaderClient12canCachePageEv
+__ZNK20WebFrameLoaderClient25didPerformFirstNavigationEv
+-[WebPreferences(WebPrivate) automaticallyDetectsCacheModel]
+__ZN20WebFrameLoaderClient35dispatchDidClearWindowObjectInWorldEPN7WebCore15DOMWrapperWorldE
++[WebScriptWorld(WebInternal) findOrCreateWorld:]
++[WebScriptWorld standardWorld]
+-[WebFrame windowObject]
+-[WebFrameView drawRect:]
+__ZNK7WebCore12ChromeClient27didReceiveViewportArgumentsEPNS_5FrameERKNS_17ViewportArgumentsE
+__ZN15WebChromeClient18formStateDidChangeEPKN7WebCore4NodeE
__ZN20WebFrameLoaderClient11createFrameERKN7WebCore4KURLERKNS0_6StringEPNS0_21HTMLFrameOwnerElementES6_bii
+[WebFrame(WebInternal) _createSubframeWithOwnerElement:frameName:frameView:]
-[WebHTMLView addSubview:]
+[WebPluginController isPlugInView:]
-[WebFrame parentFrame]
-_WKSetNSURLConnectionDefersCallbacks
-__ZL41_updateFocusedAndActiveStateTimerCallbackP16__CFRunLoopTimerPv
-_haltTimerFired
-__ZN20WebFrameLoaderClient17objectContentTypeERKN7WebCore4KURLERKNS0_6StringE
-_WKSetNSURLRequestShouldContentSniff
-__ZN20WebFrameLoaderClient39dispatchDidLoadResourceByXMLHttpRequestEmRKN7WebCore12ScriptStringE
+__ZN7WebCore17FrameLoaderClient11allowImagesEb
+__ZN15WebChromeClient16statusbarVisibleEv
+__Z30CallUIDelegateReturningBooleanaP7WebViewP13objc_selector
+__ZNK20WebFrameLoaderClient17willCacheResponseEPN7WebCore14DocumentLoaderEmP19NSCachedURLResponse
+-[WebFrame(WebPrivate) _globalContextForScriptWorld:]
+__Z4coreP14WebScriptWorld
+__ZN3WTF9HashTableINS_6RefPtrIN7WebCore15DOMWrapperWorldEEESt4pairIS4_N3JSC12ProtectedPtrINS2_16JSDOMWindowShellEEEENS_18PairFi
+__ZNK3WTF7HashMapIPN7WebCore15DOMWrapperWorldEP14WebScriptWorldNS_7PtrHashIS3_EENS_10HashTraitsIS3_EENS8_IS5_EEE3getERKS3_
+__ZN15WebChromeClient12formDidFocusEPKN7WebCore4NodeE
+__ZN15WebChromeClient14firstResponderEv
+__ZN15WebChromeClient18focusedNodeChangedEPN7WebCore4NodeE
+__ZN15WebEditorClient19setInputMethodStateEb
+__ZN15WebEditorClient32isContinuousSpellCheckingEnabledEv
+-[WebView(WebViewEditing) isContinuousSpellCheckingEnabled]
+-[WebView(WebFileInternal) _continuousCheckingAllowed]
+__ZN15WebEditorClient24isGrammarCheckingEnabledEv
+-[WebView(WebViewGrammarChecking) isGrammarCheckingEnabled]
+__ZN15WebEditorClient25respondToChangedSelectionEv
+-[WebView(WebViewInternal) _selectionChanged]
+-[WebHTMLView(WebInternal) _selectionChanged]
+-[WebHTMLView(WebNSTextInputSupport) _updateSelectionForInputManager]
+__ZL17isInPasswordFieldPN7WebCore5FrameE
+-[WebHTMLView(WebNSTextInputSupport) validAttributesForMarkedText]
+__ZNK15WebChromeClient18scrollRectIntoViewERKN7WebCore7IntRectEPKNS0_10ScrollViewE
+__ZN7WebCore17FrameLoaderClient12allowPluginsEb
-[WebViewFactory pluginsInfo]
+[WebPluginDatabase sharedDatabase]
-[WebPluginDatabase init]
@@ -809,11 +833,6 @@ __ZN20WebFrameLoaderClient39dispatchDidLoadResourceByXMLHttpRequestEmRKN7WebCore
-[WebBasePluginPackage filename]
-[WebBasePluginPackage setName:]
-[WebBasePluginPackage setPluginDescription:]
--[WebNetscapePluginPackage getPluginInfoFromResources]
--[WebNetscapePluginPackage openResourceFile]
--[WebNetscapePluginPackage stringForStringListID:andIndex:]
-+[NSString(WebKitExtras) _web_encodingForResource:]
--[WebNetscapePluginPackage closeResourceFile:]
-[WebBasePluginPackage isNativeLibraryData:]
__ZN3WTF6VectorIhLm512EE6shrinkEm
-[WebBasePluginPackage pListForPath:createFile:]
@@ -828,396 +847,65 @@ __ZN3WTF6VectorIhLm512EE6shrinkEm
-[WebBasePluginPackage MIMETypeEnumerator]
-[WebPluginDatabase pluginForMIMEType:]
-[WebPluginDatabase pluginForKey:withEnumeratorSelector:]
--[WebNetscapePluginPackage executableType]
__ZL14checkCandidatePP20WebBasePluginPackageS1_
-[WebBasePluginPackage isQuickTimePlugIn]
-[WebBasePluginPackage bundle]
-[WebBasePluginPackage isJavaPlugIn]
+-[WebNetscapePluginPackage executableType]
+[WebHTMLView(WebPrivate) supportedImageMIMETypes]
+[WebHTMLRepresentation supportedImageMIMETypes]
++[WebView(WebPrivate) _registerPluginMIMEType:]
__ZN3WTF7HashSetIN7WebCore6StringENS1_10StringHashENS_10HashTraitsIS2_EEE3addERKS2_
+__ZL20knownPluginMIMETypesv
__ZN3WTF9HashTableIN7WebCore6StringES2_NS_17IdentityExtractorIS2_EENS1_10StringHashENS_10HashTraitsIS2_EES7_E6expandEv
__ZN3WTF9HashTableIN7WebCore6StringES2_NS_17IdentityExtractorIS2_EENS1_10StringHashENS_10HashTraitsIS2_EES7_E6rehashEi
__ZN3WTF9HashTableIN7WebCore6StringES2_NS_17IdentityExtractorIS2_EENS1_10StringHashENS_10HashTraitsIS2_EES7_E13allocateTableEi
__ZN3WTF9HashTableIN7WebCore6StringES2_NS_17IdentityExtractorIS2_EENS1_10StringHashENS_10HashTraitsIS2_EES7_E15deallocateTableE
__ZN3WTF9HashTableIN7WebCore6StringES2_NS_17IdentityExtractorIS2_EENS1_10StringHashENS_10HashTraitsIS2_EES7_E4findIS2_NS_22Iden
--[WebBasePluginPackage versionNumber]
-[WebPluginDatabase plugins]
-[WebBasePluginPackage name]
-[WebBasePluginPackage pluginDescription]
-[WebBasePluginPackage extensionsForMIMEType:]
-[WebBasePluginPackage descriptionForMIMEType:]
-__ZN15WebChromeClient19addMessageToConsoleEN7WebCore13MessageSourceENS0_12MessageLevelERKNS0_6StringEjS5_
-__ZN20WebFrameLoaderClient22dispatchDidFailLoadingEPN7WebCore14DocumentLoaderEmRKNS0_13ResourceErrorE
--[WebHTMLView setNeedsLayout:]
--[WebIconDatabase(WebInternal) _iconForFileURL:withSize:]
--[WebIconDatabase(WebInternal) _iconsBySplittingRepresentationsOfIcon:]
--[WebIconDatabase(WebInternal) _iconFromDictionary:forSize:cache:]
--[WebHistoryItem alternateTitle]
--[WebHistoryItem setAlternateTitle:]
--[WebHistoryItem(WebPrivate) URL]
--[WebBackForwardList forwardListCount]
--[WebBackForwardList backListCount]
--[WebBackForwardList itemAtIndex:]
-+[WebView(WebPrivate) canCloseAllWebViews]
--[WebIconDatabase(WebInternal) _applicationWillTerminate:]
-+[WebView _applicationWillTerminate]
-__ZL27fastDocumentTeardownEnabledv
-+[WebView(WebPrivate) closeAllWebViews]
--[WebView(WebPrivate) _clearUndoRedoOperations]
--[WebView close]
--[WebView(WebPrivate) _close]
--[WebView(WebPrivate) _closeWithFastTeardown]
--[WebView(WebPrivate) _closePluginDatabases]
-+[WebPluginDatabase closeSharedDatabase]
--[WebView _windowWillClose:]
--[WebView shouldCloseWithWindow]
--[WebHTMLView windowWillClose:]
--[NSEvent(WebExtras) _web_isOptionTabKeyEvent]
--[WebFrame(WebPrivate) _isDisplayingStandaloneImage]
--[WebView(WebPendingPublic) markAllMatchesForText:caseSensitive:highlight:limit:]
--[WebHTMLView(WebDocumentInternalProtocols) setMarkedTextMatchesAreHighlighted:]
--[WebHTMLView(WebDocumentInternalProtocols) markAllMatchesForText:caseSensitive:limit:]
-__ZL14incrementFrameP8WebFrameaa
--[WebView(WebPendingPublic) unmarkAllTextMatches]
--[WebHTMLView(WebDocumentInternalProtocols) unmarkAllTextMatches]
--[WebDynamicScrollBarsView setAllowsHorizontalScrolling:]
--[WebDynamicScrollBarsView(WebInternal) accessibilityIsIgnored]
-+[NSPasteboard(WebExtras) _web_setFindPasteboardString:withOwner:]
+__ZN20WebFrameLoaderClient33dispatchDidReplaceStateWithinPageEv
+__ZN15WebEditorClient27doTextFieldCommandFromEventEPN7WebCore7ElementEPNS0_13KeyboardEventE
__ZN20WebFrameLoaderClient50dispatchDidReceiveServerRedirectForProvisionalLoadEv
-__ZN20WebFrameLoaderClient29savePlatformDataToCachedFrameEPN7WebCore11CachedFrameE
-+[WebStringTruncator centerTruncateString:toWidth:]
-__ZL15defaultMenuFontv
+__ZN20WebFrameLoaderClient37canAuthenticateAgainstProtectionSpaceEPN7WebCore14DocumentLoaderEmRKNS0_15ProtectionSpaceE
+__Z40CallResourceLoadDelegateReturningBooleanaPFP11objc_objectS0_P13objc_selectorzEP7WebViewS2_S0_S0_S0_
+__ZN20WebFrameLoaderClient22dispatchDidReceiveIconEv
+-[WebView(WebViewInternal) _dispatchDidReceiveIconFromWebFrame:]
+-[WebView(WebViewInternal) _registerForIconNotification:]
+__Z19CallHistoryDelegatePFP11objc_objectS0_P13objc_selectorzEP7WebViewS2_S0_S0_S0_
+__ZN20WebFrameLoaderClient25didDisplayInsecureContentEv
+__Z21CallFrameLoadDelegatePFP11objc_objectS0_P13objc_selectorzEP7WebViewS2_
+__ZN15WebEditorClient22textFieldDidEndEditingEPN7WebCore7ElementE
+__Z16CallFormDelegateP7WebViewP13objc_selectorP11objc_objectS4_
+__ZN15WebChromeClient11formDidBlurEPKN7WebCore4NodeE
-[WebClipView additionalClip]
+_WKSetNSURLConnectionDefersCallbacks
+__ZN20WebFrameLoaderClient21didRunInsecureContentEPN7WebCore14SecurityOriginE
+-[WebSecurityOrigin(WebInternal) _initWithWebCoreSecurityOrigin:]
+-[WebSecurityOrigin dealloc]
+__ZN20WebFrameLoaderClient33dispatchWillPerformClientRedirectERKN7WebCore4KURLEdd
+__Z21CallFrameLoadDelegatePFP11objc_objectS0_P13objc_selectorzEP7WebViewS2_S0_dS0_S0_
-[WebHTMLView willRemoveSubview:]
-__ZN20WebFrameLoaderClient19detachedFromParent2Ev
-__ZN20WebFrameLoaderClient19detachedFromParent3Ev
--[WebFrameView dealloc]
--[WebFrameViewPrivate dealloc]
-__ZN20WebFrameLoaderClient20frameLoaderDestroyedEv
--[WebFrame(WebInternal) _clearCoreFrame]
-__ZN20WebFrameLoaderClientD0Ev
--[WebFrame dealloc]
--[WebFramePrivate dealloc]
--[NSView(WebExtras) _web_dragShouldBeginFromMouseDown:withExpiration:xHysteresis:yHysteresis:]
--[NSString(WebNSURLExtras) _webkit_scriptIfJavaScriptURL]
--[NSString(WebNSURLExtras) _webkit_isJavaScriptURL]
--[WebHTMLView(WebPrivate) _removeTrackingRects:count:]
--[WebHTMLView(WebPrivate) _addTrackingRect:owner:userData:assumeInside:useTrackingNum:]
--[WebView _hitTest:dragTypes:]
--[WebView draggingEntered:]
--[WebView documentViewAtWindowPoint:]
-__ZN13WebDragClient17actionMaskForDragEPN7WebCore8DragDataE
--[WebDefaultUIDelegate webView:dragDestinationActionMaskForDraggingInfo:]
-__ZNK19WebPasteboardHelper25insertablePasteboardTypesEv
-__ZNK19WebPasteboardHelper17urlFromPasteboardEPK12NSPasteboardPN7WebCore6StringE
--[NSPasteboard(WebExtras) _web_bestURL]
--[WebView draggingUpdated:]
--[WebView _shouldAutoscrollForDraggingInfo:]
--[WebView prepareForDragOperation:]
--[WebView performDragOperation:]
-__ZN13WebDragClient32willPerformDragDestinationActionEN7WebCore21DragDestinationActionEPNS0_8DragDataE
--[WebDefaultUIDelegate webView:willPerformDragDestinationAction:forDraggingInfo:]
--[WebHTMLView scrollWheel:]
-_WKGetWheelEventDeltas
--[WebClipView scrollWheel:]
--[WebDynamicScrollBarsView(WebInternal) scrollWheel:]
--[WebDynamicScrollBarsView(WebInternal) allowsVerticalScrolling]
--[WebDynamicScrollBarsView(WebInternal) autoforwardsScrollWheelEvents]
--[DOMNode(WebDOMNodeOperations) webArchive]
--[WebArchive(WebInternal) _initWithCoreLegacyWebArchive:]
-+[WebArchivePrivate initialize]
--[WebArchivePrivate .cxx_construct]
--[WebArchivePrivate initWithCoreArchive:]
--[WebArchive data]
--[WebArchivePrivate coreArchive]
--[WebArchive dealloc]
--[WebArchivePrivate dealloc]
--[WebArchivePrivate .cxx_destruct]
--[WebHTMLView needsPanelToBecomeKey]
--[WebHTMLView acceptsFirstMouse:]
--[NSView(WebExtras) _web_dragShouldBeginFromMouseDown:withExpiration:]
-+[WebPreferences(WebInternal) _concatenateKeyWithIBCreatorID:]
--[WebPreferences setJavaEnabled:]
--[WebPreferences setJavaScriptEnabled:]
--[WebPreferences setUserStyleSheetEnabled:]
--[WebPreferences setPlugInsEnabled:]
--[WebPreferences setAllowsAnimatedImages:]
--[WebPreferences setLoadsImagesAutomatically:]
--[WebPreferences setShouldPrintBackgrounds:]
--[WebPreferences(WebPrivate) setEditableLinkBehavior:]
--[NSMutableDictionary(WebNSDictionaryExtras) _webkit_setInt:forKey:]
--[WebPreferences setMinimumFontSize:]
--[WebPreferences setDefaultTextEncodingName:]
--[WebPreferences _setStringValue:forKey:]
--[WebPreferences setUserStyleSheetLocation:]
--[WebPreferences setStandardFontFamily:]
--[WebPreferences setDefaultFontSize:]
--[WebPreferences setFixedFontFamily:]
--[WebPreferences setDefaultFixedFontSize:]
--[WebPreferences setMinimumLogicalFontSize:]
-+[WebCache initialize]
-+[WebCache setDisabled:]
--[WebPreferences setJavaScriptCanOpenWindowsAutomatically:]
--[WebPreferences setAllowsAnimatedImageLooping:]
--[WebView initWithFrame:]
--[WebView initWithFrame:frameName:groupName:]
-__ZL32needsWebViewInitThreadWorkaroundv
--[WebView setPreferences:]
--[WebPreferences identifier]
-+[WebPreferences(WebPrivate) _removeReferenceForIdentifier:]
--[WebPreferences(WebPrivate) didRemoveFromWebView]
-+[WebView(WebFileInternal) _preferencesRemovedNotification:]
-+[WebView(WebFileInternal) _maxCacheModelInAnyInstance]
--[WebFrame loadData:MIMEType:textEncodingName:baseURL:]
--[WebFrame _loadData:MIMEType:textEncodingName:baseURL:unreachableURL:]
-__ZL22createUniqueWebDataURLv
--[WebFrame stopLoading]
--[WebView setPreferencesIdentifier:]
--[WebPreferences dealloc]
--[WebPreferencesPrivate dealloc]
--[WebFrame loadHTMLString:baseURL:]
--[WebFrame _loadHTMLString:baseURL:unreachableURL:]
--[WebFrameView setAllowsScrolling:]
--[WebDefaultUIDelegate webView:didDrawRect:]
--[WebView setTextSizeMultiplier:]
--[WebPreferences(WebPrivate) setShowsURLsInToolTips:]
--[WebView(WebPrivate) textIteratorForRect:]
--[WebTextIterator initWithRange:]
-+[WebTextIteratorPrivate initialize]
--[WebTextIteratorPrivate .cxx_construct]
--[WebTextIterator atEnd]
--[WebTextIterator currentTextLength]
--[WebTextIterator currentTextPointer]
--[WebTextIterator currentRange]
--[WebTextIterator advance]
--[WebTextIterator dealloc]
--[WebTextIteratorPrivate .cxx_destruct]
--[WebView hostWindow]
--[WebView dealloc]
--[WebView(AllWebViews) _removeFromAllWebViewsSet]
--[WebView(WebPendingPublic) setScriptDebugDelegate:]
--[WebView(WebPrivate) _cacheScriptDebugDelegateImplementations]
--[WebView(WebPrivate) _detachScriptDebuggerFromAllFrames]
--[WebFrame(WebInternal) _detachScriptDebugger]
--[WebView removeDragCaret]
-__ZN15WebEditorClient13pageDestroyedEv
-__ZN15WebEditorClientD0Ev
-__ZN18WebInspectorClient18inspectorDestroyedEv
-__ZN18WebInspectorClientD0Ev
-__ZN20WebContextMenuClient20contextMenuDestroyedEv
-__ZN20WebContextMenuClientD0Ev
-__ZN13WebDragClient23dragControllerDestroyedEv
-__ZN13WebDragClientD0Ev
-__ZN15WebChromeClient15chromeDestroyedEv
-__ZN15WebChromeClientD0Ev
--[WebView preferencesIdentifier]
--[WebViewPrivate dealloc]
--[WebViewPrivate .cxx_destruct]
-+[WebPreferences(WebPrivate) _checkLastReferenceForIdentifier:]
--[WebView(WebViewEditing) selectedDOMRange]
--[WebView(WebFileInternal) _selectedOrMainFrame]
--[WebFrame(WebInternal) _findFrameWithSelection]
--[WebFrame(WebInternal) _hasSelection]
--[WebHTMLView(WebDocumentPrivateProtocols) selectedAttributedString]
--[WebHTMLView(WebHTMLViewFileInternal) _selectedRange]
--[WebHTMLView(WebDocumentPrivateProtocols) _attributeStringFromDOMRange:]
-+[NSAttributedString(WebKitExtras) _web_attributedStringFromRange:]
--[DOMRange(WebDOMRangeOperations) webArchive]
--[WebArchive mainResource]
--[WebResource(WebResourceInternal) _initWithCoreResource:]
-+[WebResourcePrivate initialize]
--[WebResourcePrivate initWithCoreResource:]
--[WebResource textEncodingName]
--[WebResource data]
--[WebResource MIMEType]
--[WebResource URL]
--[WebArchive subresources]
--[WebView initWithCoder:]
--[WebPreferences initWithCoder:]
--[WebView(WebViewEditing) editingDelegate]
--[WebView(WebPrivate) setAlwaysShowVerticalScroller:]
--[WebDynamicScrollBarsView(WebInternal) setVerticalScrollingMode:andLock:]
--[WebDynamicScrollBarsView(WebInternal) horizontalScrollingMode]
--[WebDynamicScrollBarsView(WebInternal) setScrollingModesLocked:]
--[WebView(WebViewEditing) spellCheckerDocumentTag]
--[WebResource dealloc]
--[WebResourcePrivate dealloc]
-__ZN3WTF6VectorINS_6RefPtrIN7WebCore15ArchiveResourceEEELm0EE6shrinkEm
--[WebView(WebViewEditing) setContinuousSpellCheckingEnabled:]
-+[WebView(WebFileInternal) _preflightSpellChecker]
-+[WebView(WebFileInternal) _preflightSpellCheckerNow:]
--[WebView(WebViewEditing) undoManager]
--[WebDefaultEditingDelegate undoManagerForWebView:]
--[WebView(WebViewEditing) selectionAffinity]
--[WebView(WebViewEditing) setSelectedDOMRange:affinity:]
--[WebView(WebViewEditing) setEditable:]
-__ZN15WebEditorClient18shouldBeginEditingEPN7WebCore5RangeE
--[WebDefaultEditingDelegate webView:shouldBeginEditingInDOMRange:]
-__ZN15WebEditorClient15didBeginEditingEv
--[WebDefaultUIDelegate webViewFirstResponder:]
--[WebView(WebPendingPublic) setTabKeyCyclesThroughElements:]
--[WebHTMLView keyDown:]
-__ZN15WebEditorClient24handleInputMethodKeydownEPN7WebCore13KeyboardEventE
--[WebHTMLView(WebInternal) _interceptEditingKeyEvent:shouldSaveCommand:]
--[WebHTMLView(WebNSTextInputSupport) hasMarkedText]
--[WebHTMLView(WebNSTextInputSupport) insertText:]
-__ZN3WTF6VectorIN7WebCore15KeypressCommandELm0EE14expandCapacityEmPKS2_
-__ZN3WTF6VectorIN7WebCore15KeypressCommandELm0EE14expandCapacityEm
-__ZN3WTF6VectorIN7WebCore15KeypressCommandELm0EE15reserveCapacityEm
-__ZN15WebEditorClient19handleKeyboardEventEPN7WebCore13KeyboardEventE
--[WebHTMLView coreCommandBySelector:]
-__ZN15WebEditorClient16shouldInsertTextERKN7WebCore6StringEPNS0_5RangeENS0_18EditorInsertActionE
--[WebView(WebViewEditing) typingStyle]
--[WebFrame(WebInternal) _typingStyle]
-__ZN15WebEditorClient22registerCommandForUndoEN3WTF10PassRefPtrIN7WebCore11EditCommandEEE
-__ZN15WebEditorClient28registerCommandForUndoOrRedoEN3WTF10PassRefPtrIN7WebCore11EditCommandEEEb
-+[WebEditCommand initialize]
-+[WebEditCommand commandWithEditCommand:]
--[WebEditCommand .cxx_construct]
--[WebEditCommand initWithEditCommand:]
-__ZN15WebEditorClient24respondToChangedContentsEv
--[WebHTMLView keyUp:]
-__ZN15WebEditorClient35isAutomaticQuoteSubstitutionEnabledEv
--[WebView(WebViewTextChecking) isAutomaticQuoteSubstitutionEnabled]
-__ZN15WebEditorClient31isAutomaticLinkDetectionEnabledEv
--[WebView(WebViewTextChecking) isAutomaticLinkDetectionEnabled]
-__ZN15WebEditorClient34isAutomaticDashSubstitutionEnabledEv
--[WebView(WebViewTextChecking) isAutomaticDashSubstitutionEnabled]
-__ZN15WebEditorClient33isAutomaticTextReplacementEnabledEv
--[WebView(WebViewTextChecking) isAutomaticTextReplacementEnabled]
-__ZN15WebEditorClient36isAutomaticSpellingCorrectionEnabledEv
--[WebView(WebViewTextChecking) isAutomaticSpellingCorrectionEnabled]
-__ZN15WebEditorClient20checkTextOfParagraphEPKtiyRN3WTF6VectorIN7WebCore18TextCheckingResultELm0EEE
-__ZN15WebEditorClient23spellCheckerDocumentTagEv
-__ZN15WebEditorClient13didEndEditingEv
--[WebEditCommand dealloc]
--[WebEditCommand .cxx_destruct]
--[WebHTMLView(WebPrivate) removeTrackingRect:]
--[WebView windowScriptObject]
--[WebFrame name]
-__ZN20WebFrameLoaderClient14cancelledErrorERKN7WebCore15ResourceRequestE
-+[NSError(WebKitExtras) _webKitErrorWithDomain:code:URL:]
-+[NSError(WebKitExtras) _registerWebKitErrors]
-_registerErrors
-+[NSError(WebKitExtras) _webkit_addErrorsWithCodesAndDescriptions:inDomain:]
-+[NSError(WebKitExtras) _webkit_errorWithDomain:code:URL:]
--[NSError(WebKitExtras) _webkit_initWithDomain:code:URL:]
-__ZN20WebFrameLoaderClient20setMainDocumentErrorEPN7WebCore14DocumentLoaderERKNS0_13ResourceErrorE
--[WebDataSource(WebInternal) _setMainDocumentError:]
-__ZL49applyAppleDictionaryApplicationQuirkNonInlinePartP20WebFrameLoaderClientRKN7WebCore15ResourceRequestE
-+[WebHistoryItem(WebPrivate) _releaseAllPendingPageCaches]
-+[WebKitStatistics webViewCount]
-+[WebKitStatistics frameCount]
-+[WebKitStatistics dataSourceCount]
-+[WebKitStatistics viewCount]
-+[WebKitStatistics HTMLRepresentationCount]
-+[WebKitStatistics bridgeCount]
-+[WebCoreStatistics javaScriptProtectedGlobalObjectsCount]
--[WebView stringByEvaluatingJavaScriptFromString:]
--[WebFrame(WebInternal) _stringByEvaluatingJavaScriptFromString:]
--[WebFrame(WebInternal) _stringByEvaluatingJavaScriptFromString:forceUserGesture:]
-_WKDrawBezeledTextArea
-__ZNK15WebChromeClient17windowResizerRectEv
--[WebViewFactory inputElementAltText]
-__ZN26WebCachedFramePlatformData5clearEv
--[WebHTMLView(WebInternal) closeIfNotCurrentView]
-__ZN26WebCachedFramePlatformDataD0Ev
--[WebPluginDatabase close]
--[WebPluginDatabase(Internal) _removePlugin:]
-+[WebView(WebPrivate) _unregisterViewClassAndRepresentationClassForMIMEType:]
-__ZN3WTF9HashTableIN7WebCore6StringES2_NS_17IdentityExtractorIS2_EENS1_10StringHashENS_10HashTraitsIS2_EES7_E47removeAndInvalid
-__ZN3WTF9HashTableIN7WebCore6StringES2_NS_17IdentityExtractorIS2_EENS1_10StringHashENS_10HashTraitsIS2_EES7_E6removeEPS2_
--[WebNetscapePluginPackage wasRemovedFromPluginDatabase:]
--[WebBasePluginPackage wasRemovedFromPluginDatabase:]
--[WebNetscapePluginPackage(Internal) _unloadWithShutdown:]
--[WebView(WebPendingPublic) unscheduleFromRunLoop:forMode:]
+__ZN20WebFrameLoaderClient31dispatchDidCancelClientRedirectEv
+__ZN20WebFrameLoaderClient17objectContentTypeERKN7WebCore4KURLERKNS0_6StringE
-[WebView _pluginForMIMEType:]
__ZN20WebFrameLoaderClient12createPluginERKN7WebCore7IntSizeEPNS0_17HTMLPlugInElementERKNS0_4KURLERKN3WTF6VectorINS0_6StringELm
-__ZL3kitRKN3WTF6VectorIN7WebCore6StringELm0EEE
-__ZL10pluginViewP8WebFrameP16WebPluginPackageP7NSArrayS4_P5NSURLP10DOMElementa
--[WebPluginPackage viewFactory]
-+[WebPluginController plugInViewWithArguments:fromPluginPackage:]
-__ZNK7WebCore6Widget11isFrameViewEv
-__ZN7WebCore6Widget16setParentVisibleEb
--[WebPluginController addPlugin:]
--[WebView addPluginInstanceView:]
--[WebPluginDatabase addPluginInstanceView:]
--[WebPluginController webView]
--[WebPluginController webFrame]
--[WebView(WebPrivate) defersCallbacks]
-_resumeTimerFired
--[WebPluginController destroyPlugin:]
--[WebView removePluginInstanceView:]
--[WebPluginDatabase removePluginInstanceView:]
-__ZN12PluginWidgetD0Ev
--[WebPluginDatabase destroyAllPluginInstanceViews]
--[WebPluginDatabase dealloc]
--[WebView mainFrameTitle]
--[WebView setShouldCloseWithWindow:]
--[WebDataSource initialRequest]
-__ZN20WebFrameLoaderClient14shouldFallBackERKN7WebCore13ResourceErrorE
-__ZN20WebFrameLoaderClient30dispatchDidFailProvisionalLoadERKN7WebCore13ResourceErrorE
--[WebView(WebPrivate) _didFailProvisionalLoadWithError:forFrame:]
--[WebFramePolicyListener finalize]
--[WebElementDictionary finalize]
--[WebFramePolicyListener ignore]
--[WebDataSource finalize]
--[WebDataSourcePrivate finalize]
--[WebDefaultUIDelegate webView:didScrollDocumentInFrameView:]
-__ZN15WebChromeClient18makeFirstResponderEP11NSResponder
--[WebView(WebPrivate) _pushPerformingProgrammaticFocus]
--[WebDefaultUIDelegate webView:makeFirstResponder:]
--[WebView(WebPrivate) _popPerformingProgrammaticFocus]
--[WebElementDictionary count]
--[WebElementDictionary _fillCache]
-__ZL16cacheValueForKeyPKvS0_Pv
--[WebElementDictionary _title]
-__ZL13NSStringOrNilN7WebCore6StringE
--[WebElementDictionary _absoluteImageURL]
--[WebElementDictionary _isContentEditable]
--[WebElementDictionary _image]
--[WebElementDictionary _spellingToolTip]
--[WebElementDictionary _titleDisplayString]
--[WebElementDictionary _textContent]
--[WebElementDictionary _imageRect]
--[WebElementDictionary _altDisplayString]
--[WebElementDictionary _isLiveLink]
-__ZN20WebFrameLoaderClient38dispatchDidLoadResourceFromMemoryCacheEPN7WebCore14DocumentLoaderERKNS0_15ResourceRequestERKNS0_16R
--[WebHTMLRepresentation finalize]
--[WebHTMLView finalize]
--[WebHTMLViewPrivate finalize]
-__ZN20WebFrameLoaderClient38dispatchDecidePolicyForNewWindowActionEMN7WebCore11FrameLoaderEFvNS0_12PolicyActionEERKNS0_16Naviga
-__ZN20WebFrameLoaderClient19dispatchDidFailLoadERKN7WebCore13ResourceErrorE
--[WebView(WebPrivate) _didFailLoadWithError:forFrame:]
-+[WebBaseNetscapePluginView initialize]
-_WKSendUserChangeNotifications
+[WebHostedNetscapePluginView initialize]
-[WebBaseNetscapePluginView .cxx_construct]
-[WebHostedNetscapePluginView .cxx_construct]
+__ZL3kitRKN3WTF6VectorIN7WebCore6StringELm0EEE
-[WebHostedNetscapePluginView initWithFrame:pluginPackage:URL:baseURL:MIMEType:attributeKeys:attributeValues:loadManually:eleme
-[WebBaseNetscapePluginView initWithFrame:pluginPackage:URL:baseURL:MIMEType:attributeKeys:attributeValues:loadManually:element
-[WebHostedNetscapePluginView setAttributeKeys:andValues:]
--[WebBaseNetscapePluginView renewGState]
--[WebBaseNetscapePluginView viewWillMoveToSuperview:]
-[WebBaseNetscapePluginView visibleRect]
--[WebBaseNetscapePluginView isFlipped]
-[WebBaseNetscapePluginView _windowClipRect]
-__ZN20WebFrameLoaderClient35dispatchDidChangeLocationWithinPageEv
-__ZN20WebFrameLoaderClient13didFinishLoadEv
--[WebHTMLView validateUserInterfaceItem:]
--[WebHTMLView validateUserInterfaceItemWithoutDelegate:]
-__ZL3kitN7WebCore8TriStateE
-__Z30CallUIDelegateReturningBooleanaP7WebViewP13objc_selectorP11objc_objecta
--[WebView(WebIBActions) validateUserInterfaceItem:]
--[WebView(WebIBActions) validateUserInterfaceItemWithoutDelegate:]
--[WebView(WebIBActions) canMakeTextLarger]
--[WebView _canZoomIn:]
--[WebView _zoomMultiplier:]
--[WebView(WebIBActions) canMakeTextSmaller]
--[WebView _canZoomOut:]
--[WebHTMLView(WebPrivate) _hasSelection]
--[WebHTMLView(WebPrivate) _isEditable]
+-[WebBaseNetscapePluginView isFlipped]
+-[WebBaseNetscapePluginView renewGState]
+__ZN7WebCore6Widget16setParentVisibleEb
+-[WebBaseNetscapePluginView viewWillMoveToSuperview:]
-[WebBaseNetscapePluginView viewWillMoveToWindow:]
-[WebBaseNetscapePluginView removeTrackingRect]
-[WebHostedNetscapePluginView removeWindowObservers]
@@ -1225,40 +913,41 @@ __Z30CallUIDelegateReturningBooleanaP7WebViewP13objc_selectorP11objc_objecta
-[WebBaseNetscapePluginView setHasFocus:]
-[WebBaseNetscapePluginView viewDidMoveToWindow]
-[WebBaseNetscapePluginView resetTrackingRect]
--[WebBaseNetscapePluginView start]
-[WebBaseNetscapePluginView webView]
-[WebBaseNetscapePluginView webFrame]
--[WebBaseNetscapePluginView dataSource]
+-[WebBaseNetscapePluginView start]
-[WebHostedNetscapePluginView createPlugin]
--[WebView userAgentForURL:]
__ZN6WebKit25NetscapePluginHostManager6sharedEv
__ZN6WebKit25NetscapePluginHostManagerC1Ev
__ZN6WebKit25NetscapePluginHostManagerC2Ev
__ZN6WebKit25NetscapePluginHostManager17instantiatePluginEP24WebNetscapePluginPackageP27WebHostedNetscapePluginViewP8NSStringP7
-__ZN6WebKit25NetscapePluginHostManager14hostForPackageEP24WebNetscapePluginPackage
+-[WebPreferences(WebPrivate) usesProxiedOpenPanel]
+__ZN6WebKit25NetscapePluginHostManager14hostForPackageEP24WebNetscapePluginPackageb
__ZN3WTF7HashMapIP24WebNetscapePluginPackagePN6WebKit23NetscapePluginHostProxyENS_7PtrHashIS2_EENS_10HashTraitsIS2_EENS8_IS5_EE
__ZN3WTF9HashTableIP24WebNetscapePluginPackageSt4pairIS2_PN6WebKit23NetscapePluginHostProxyEENS_18PairFirstExtractorIS7_EENS_7P
-__ZN6WebKit25NetscapePluginHostManager15spawnPluginHostEP24WebNetscapePluginPackagejRjR19ProcessSerialNumber
+__ZN6WebKit25NetscapePluginHostManager15spawnPluginHostEP24WebNetscapePluginPackagejRjR19ProcessSerialNumberb
__ZN6WebKit25NetscapePluginHostManager20initializeVendorPortEv
__WKPACheckInApplication
_WKInitializeRenderServer
-[WebNetscapePluginPackage pluginHostArchitecture]
__WKPASpawnPluginHost
__WKPHCheckInWithPluginHost
-__ZN6WebKit23NetscapePluginHostProxyC1EjjRK19ProcessSerialNumber
-__ZN6WebKit23NetscapePluginHostProxyC2EjjRK19ProcessSerialNumber
+__ZN6WebKit23NetscapePluginHostProxyC1EjjRK19ProcessSerialNumberb
+__ZN6WebKit23NetscapePluginHostProxyC2EjjRK19ProcessSerialNumberb
__ZN6WebKitL14pluginProxyMapEv
__ZN3WTF7HashMapIjPN6WebKit23NetscapePluginHostProxyENS_7IntHashIjEENS_10HashTraitsIjEENS6_IS3_EEE3addERKjRKS3_
-__ZN3WTF9HashTableIjSt4pairIjPN6WebKit23NetscapePluginHostProxyEENS_18PairFirstExtractorIS5_EENS_7IntHashIjEENS_14PairHashTrait
_WKCreateMIGServerSource
__ZN6WebKit27NetscapePluginInstanceProxyC1EPNS_23NetscapePluginHostProxyEP27WebHostedNetscapePluginViewb
__ZN6WebKit27NetscapePluginInstanceProxyC2EPNS_23NetscapePluginHostProxyEP27WebHostedNetscapePluginViewb
+__ZN6WebKit27NetscapePluginInstanceProxy14LocalObjectMapC1Ev
+__ZN6WebKit27NetscapePluginInstanceProxy14LocalObjectMapC2Ev
__ZN6WebKit23NetscapePluginHostProxy14pluginInstanceEj
__ZNK3WTF7HashMapIjNS_6RefPtrIN6WebKit27NetscapePluginInstanceProxyEEENS_7IntHashIjEENS_10HashTraitsIjEENS7_IS4_EEE3getERKj
__ZN6WebKit23NetscapePluginHostProxy17addPluginInstanceEPNS_27NetscapePluginInstanceProxyE
__ZN3WTF7HashMapIjNS_6RefPtrIN6WebKit27NetscapePluginInstanceProxyEEENS_7IntHashIjEENS_10HashTraitsIjEENS7_IS4_EEE3setERKjRKS4_
__ZN6WebKit27NetscapePluginInstanceProxy13nextRequestIDEv
__WKPHInstantiatePlugin
+__ZN6WebKit27NetscapePluginInstanceProxy22willCallPluginFunctionEv
__ZN6WebKit27NetscapePluginInstanceProxy30processRequestsAndWaitForReplyEj
__ZN3WTF7HashMapIjPN6WebKit27NetscapePluginInstanceProxy5ReplyENS_7IntHashIjEENS_10HashTraitsIjEENS7_IS4_EEE4takeERKj
__ZN3WTF9HashTableIjSt4pairIjPN6WebKit27NetscapePluginInstanceProxy5ReplyEENS_18PairFirstExtractorIS6_EENS_7IntHashIjEENS_14Pai
@@ -1272,21 +961,27 @@ __ZN6WebKit27NetscapePluginInstanceProxy7loadURLEPKcS2_S2_j12LoadURLFlagsRj
-[WebBaseNetscapePluginView URLWithCString:]
-[NSString(WebKitExtras) _web_stringByStrippingReturnCharacters]
-[NSURL(WebNSURLExtras) _webkit_URLByRemovingResourceSpecifier]
+-[NSURL(WebNSURLExtras) _web_URLByTruncatingOneCharacterBeforeComponent:]
-[NSMutableURLRequest(WebNSURLRequestExtras) _web_setHTTPReferrer:]
__ZN6WebKit27NetscapePluginInstanceProxy11loadRequestEP12NSURLRequestPKcbRj
+-[WebBaseNetscapePluginView dataSource]
-[NSURL(WebNSURLExtras) _webkit_scriptIfJavaScriptURL]
-__ZN3WTF5DequeIPN6WebKit27NetscapePluginInstanceProxy13PluginRequestEE14expandCapacityEv
+__ZN3WTF5DequeINS_6RefPtrIN6WebKit27NetscapePluginInstanceProxy13PluginRequestEEEE14expandCapacityEv
__XPCInstantiatePluginReply
_WKPCInstantiatePluginReply
__ZN3WTF7HashMapIjPN6WebKit27NetscapePluginInstanceProxy5ReplyENS_7IntHashIjEENS_10HashTraitsIjEENS7_IS4_EEE3setERKjRKS4_
+__ZN6WebKit27NetscapePluginInstanceProxy21didCallPluginFunctionEv
__ZN6WebKit27NetscapePluginInstanceProxy22InstantiatePluginReplyD0Ev
_WKSoftwareCARendererCreate
_WKMakeRenderLayer
__ZN6WebKit27NetscapePluginInstanceProxy18windowFrameChangedE6CGRect
__WKPHPluginInstanceWindowFrameChanged
--[WebHostedNetscapePluginView updateAndSetWindow]
+__ZNK21WebPluginHalterClient7enabledEv
+-[WebView addPluginInstanceView:]
+-[WebPluginDatabase addPluginInstanceView:]
-[WebBaseNetscapePluginView currentWindow]
-__ZN6WebKit27NetscapePluginInstanceProxy6resizeE6CGRectS1_b
+-[WebHostedNetscapePluginView updateAndSetWindow]
+__ZN6WebKit27NetscapePluginInstanceProxy6resizeE6CGRectS1_
__WKPHResizePluginInstance
__XPCBooleanReply
_WKPCBooleanReply
@@ -1305,20 +1000,50 @@ __WKPHPluginInstanceStopTimers
__ZN6WebKit27NetscapePluginInstanceProxy11startTimersEb
__WKPHPluginInstanceStartTimers
-[WebHostedNetscapePluginView loadStream]
--[WebView acceptsFirstResponder]
--[WebHostedNetscapePluginView drawRect:]
-_WKSoftwareCARendererRender
+__ZNK7WebCore6Widget11isFrameViewEv
+-[WebHostedNetscapePluginView createPluginBindingsInstance:]
+-[WebBaseNetscapePluginView stop]
+-[WebHostedNetscapePluginView shouldStop]
+__ZN20NetscapePluginWidgetD0Ev
__ZN7WebCore5TimerIN6WebKit27NetscapePluginInstanceProxyEE5firedEv
__ZN6WebKit27NetscapePluginInstanceProxy17requestTimerFiredEPN7WebCore5TimerIS0_EE
__ZN6WebKit27NetscapePluginInstanceProxy14performRequestEPNS0_13PluginRequestE
--[WebPluginDatabase removePluginInstanceViewsFor:]
-__ZN20WebFrameLoaderClient22dispatchWillSubmitFormEMN7WebCore11FrameLoaderEFvNS0_12PolicyActionEEN3WTF10PassRefPtrINS0_9FormSta
+__ZN20WebFrameLoaderClient14cancelledErrorERKN7WebCore15ResourceRequestE
++[NSError(WebKitExtras) _webKitErrorWithDomain:code:URL:]
++[NSError(WebKitExtras) _registerWebKitErrors]
+_registerErrors
++[NSError(WebKitExtras) _webkit_addErrorsWithCodesAndDescriptions:inDomain:]
++[NSError(WebKitExtras) _webkit_errorWithDomain:code:URL:]
+-[NSError(WebKitExtras) _webkit_initWithDomain:code:URL:]
+__ZN20WebFrameLoaderClient14shouldFallBackERKN7WebCore13ResourceErrorE
+__ZN20WebFrameLoaderClient20setMainDocumentErrorEPN7WebCore14DocumentLoaderERKNS0_13ResourceErrorE
+-[WebDataSource(WebInternal) _setMainDocumentError:]
+__ZN20WebFrameLoaderClient30dispatchDidFailProvisionalLoadERKN7WebCore13ResourceErrorE
+-[WebView(WebPrivate) _didFailProvisionalLoadWithError:forFrame:]
+__ZN20WebFrameLoaderClient22dispatchDidFailLoadingEPN7WebCore14DocumentLoaderEmRKNS0_13ResourceErrorE
+-[WebFrame(WebInternal) _internalLoadDelegate]
+__ZN3WTF7HashMapIP8WebFrameNS_6RefPtrIN6WebKit27NetscapePluginInstanceProxy13PluginRequestEEENS_7PtrHashIS2_EENS_10HashTraitsIS
+__ZN3WTF9HashTableIP8WebFrameSt4pairIS2_NS_6RefPtrIN6WebKit27NetscapePluginInstanceProxy13PluginRequestEEEENS_18PairFirstExtrac
+-[WebFrame(WebInternal) _setInternalLoadDelegate:]
+-[WebBaseNetscapePluginView dealloc]
+-[WebHostedNetscapePluginView .cxx_destruct]
+-[WebBaseNetscapePluginView .cxx_destruct]
+__ZN17WebHaltablePluginD0Ev
+-[WebHostedNetscapePluginView drawRect:]
+_WKSoftwareCARendererRender
+__ZN6WebKit27NetscapePluginInstanceProxy7didDrawEv
+-[WebHostedNetscapePluginView webFrame:didFinishLoadWithError:]
+-[WebHostedNetscapePluginView webFrame:didFinishLoadWithReason:]
+__ZN6WebKit27NetscapePluginInstanceProxy31webFrameDidFinishLoadWithReasonEP8WebFrames
+__WKPHLoadURLNotify
+__ZN20WebFrameLoaderClient22dispatchWillSubmitFormEMN7WebCore13PolicyCheckerEFvNS0_12PolicyActionEEN3WTF10PassRefPtrINS0_9FormS
-[WebView(WebPrivate) _formDelegate]
__Z16CallFormDelegateP7WebViewP13objc_selectorP11objc_objectS4_S4_S4_S4_
-[WebFramePolicyListener continue]
--[WebBaseNetscapePluginView stop]
--[WebHostedNetscapePluginView shouldStop]
+-[WebPluginDatabase removePluginInstanceViewsFor:]
__ZN6WebKit27NetscapePluginInstanceProxy10shouldStopEv
+-[WebView removePluginInstanceView:]
+-[WebPluginDatabase removePluginInstanceView:]
-[WebHostedNetscapePluginView destroyPlugin]
_WKSoftwareCARendererDestroy
__ZN6WebKit27NetscapePluginInstanceProxy7destroyEv
@@ -1329,6 +1054,9 @@ __ZN6WebKit27NetscapePluginInstanceProxy16cancelStreamLoadEjs
__ZNK3WTF7HashMapIjNS_6RefPtrIN6WebKit26HostedNetscapePluginStreamEEENS_7IntHashIjEENS_10HashTraitsIjEENS7_IS4_EEE3getERKj
__ZN6WebKit27NetscapePluginInstanceProxy7cleanupEv
__ZN6WebKit27NetscapePluginInstanceProxy14stopAllStreamsEv
+__ZN6WebKit27NetscapePluginInstanceProxy14LocalObjectMap5clearEv
+__ZN3WTF9HashTableIjSt4pairIjN3JSC12ProtectedPtrINS2_8JSObjectEEEENS_18PairFirstExtractorIS6_EENS_7IntHashIjEENS_14PairHashTrai
+__ZN3WTF9HashTableIPN3JSC8JSObjectESt4pairIS3_S4_IjjEENS_18PairFirstExtractorIS6_EENS_7PtrHashIS3_EENS_14PairHashTraitsINS_10Ha
__ZN3WTF9HashTableIPN6WebKit13ProxyInstanceES3_NS_17IdentityExtractorIS3_EENS_7PtrHashIS3_EENS_10HashTraitsIS3_EES9_E4swapERSA_
__ZN3WTF9HashTableIPN6WebKit13ProxyInstanceES3_NS_17IdentityExtractorIS3_EENS_7PtrHashIS3_EENS_10HashTraitsIS3_EES9_E15dealloca
__ZN6WebKit27NetscapePluginInstanceProxy10invalidateEv
@@ -1337,6 +1065,8 @@ __ZN6WebKit27NetscapePluginInstanceProxyD1Ev
__ZN6WebKit27NetscapePluginInstanceProxyD2Ev
__ZN3WTF20deleteAllPairSecondsIPN6WebKit27NetscapePluginInstanceProxy5ReplyEKNS_7HashMapIjS4_NS_7IntHashIjEENS_10HashTraitsIjEE
__ZN3WTF9HashTableIjSt4pairIjNS_9RetainPtrIP11objc_objectEEENS_18PairFirstExtractorIS6_EENS_7IntHashIjEENS_14PairHashTraitsINS_
+__ZN6WebKit27NetscapePluginInstanceProxy14LocalObjectMapD1Ev
+__ZN6WebKit27NetscapePluginInstanceProxy14LocalObjectMapD2Ev
-[WebHostedNetscapePluginView inputContext]
+[WebTextInputWindowController sharedTextInputWindowController]
-[WebTextInputWindowController init]
@@ -1344,80 +1074,202 @@ __ZN3WTF9HashTableIjSt4pairIjNS_9RetainPtrIP11objc_objectEEENS_18PairFirstExtrac
_WKGetInputPanelWindowStyle
-[WebTextInputWindowController inputContext]
-[WebTextInputPanel _inputContext]
-__ZN20NetscapePluginWidgetD0Ev
--[WebBaseNetscapePluginView dealloc]
--[WebHostedNetscapePluginView .cxx_destruct]
--[WebBaseNetscapePluginView .cxx_destruct]
+-[WebHTMLView mouseUp:]
__ZN6WebKit23NetscapePluginHostProxy28deadNameNotificationCallbackEP12__CFMachPortPvlS3_
__ZN6WebKit23NetscapePluginHostProxy14pluginHostDiedEv
__ZN3WTF9HashTableIjSt4pairIjNS_6RefPtrIN6WebKit27NetscapePluginInstanceProxyEEEENS_18PairFirstExtractorIS6_EENS_7IntHashIjEENS
__ZN6WebKit25NetscapePluginHostManager14pluginHostDiedEPNS_23NetscapePluginHostProxyE
__ZN6WebKit23NetscapePluginHostProxyD1Ev
__ZN6WebKit23NetscapePluginHostProxyD2Ev
-__ZN15WebChromeClient11scaleFactorEv
-__ZN15WebEditorClient27doTextFieldCommandFromEventEPN7WebCore7ElementEPNS0_13KeyboardEventE
--[WebDefaultEditingDelegate webView:shouldInsertText:replacingDOMRange:givenAction:]
-__ZN15WebEditorClient24textFieldDidBeginEditingEPN7WebCore7ElementE
--[WebHTMLRepresentation formForElement:]
-__ZN15WebEditorClient24textDidChangeInTextFieldEPN7WebCore7ElementE
--[WebHTMLView performKeyEquivalent:]
--[WebHTMLView _handleStyleKeyEquivalent:]
--[WebPreferences(WebPrivate) respectStandardStyleKeyEquivalents]
--[WebHTMLView(WebNSTextInputSupport) doCommandBySelector:]
--[WebDefaultEditingDelegate webView:doCommandBySelector:]
--[WebHTMLRepresentation elementWithName:inForm:]
-__ZN15WebEditorClient24smartInsertDeleteEnabledEv
+__ZN3WTF9HashTableIjSt4pairIjPN6WebKit23NetscapePluginHostProxyEENS_18PairFirstExtractorIS5_EENS_7IntHashIjEENS_14PairHashTrait
+__ZN21WebIconDatabaseClient13performImportEv
+__Z21importToWebCoreFormatv
++[ThreadEnabler enableThreading]
+-[ThreadEnabler threadEnablingSelector:]
+__ZL20objectFromPathForKeyP8NSStringP11objc_object
+-[NSMutableDictionary(WebNSDictionaryExtras) _webkit_setBool:forKey:]
+_WKGetMIMETypeForExtension
+_WKQTIncludeOnlyModernMediaFileTypes
+_WKQTMovieMaxTimeLoadedChangeNotification
+-[WebViewFactory defaultLanguageCode]
+_WKQTMovieSelectPreferredAlternates
+_WKQTMovieSelectPreferredAlternateTrackForMediaType
+_WKQTMovieGetType
+_WKQTMovieMaxTimeSeekable
+_maxValueForTimeRanges
+__ZN15WebChromeClient23attachRootGraphicsLayerEPN7WebCore5FrameEPNS0_13GraphicsLayerE
+-[WebHTMLView(WebInternal) attachRootLayer:]
+-[WebView(WebPrivate) _postsAcceleratedCompositingNotifications]
+__ZN15WebChromeClient37setNeedsOneShotDrawingSynchronizationEv
+-[WebView(WebViewInternal) _setNeedsOneShotDrawingSynchronization:]
+__ZN15WebChromeClient28scheduleCompositingLayerSyncEv
+-[WebView(WebViewInternal) _scheduleCompositingLayerSync]
+_WKQTMovieMaxTimeLoaded
+__ZL32layerSyncRunLoopObserverCallBackP19__CFRunLoopObservermPv
+-[WebView(WebViewInternal) _syncCompositingChanges]
++[WebView(WebPrivate) canCloseAllWebViews]
+-[WebIconDatabase(WebInternal) _applicationWillTerminate:]
++[WebView _applicationWillTerminate]
+__ZL27fastDocumentTeardownEnabledv
++[WebView(WebPrivate) closeAllWebViews]
+-[WebView(WebIBActions) stopLoading:]
+-[WebFrame stopLoading]
+-[WebView(WebPrivate) _closeWithFastTeardown]
++[WebPluginDatabase closeSharedDatabase]
++[WebHistoryItem(WebPrivate) _releaseAllPendingPageCaches]
+-[WebView initWithFrame:]
+-[WebView initWithFrame:frameName:groupName:]
+__ZL32needsWebViewInitThreadWorkaroundv
++[WebView(WebViewInternal) shouldIncludeInWebKitStatistics]
+-[WebView stringByEvaluatingJavaScriptFromString:]
+-[WebFrame(WebInternal) _stringByEvaluatingJavaScriptFromString:]
+-[WebFrame(WebInternal) _stringByEvaluatingJavaScriptFromString:forceUserGesture:]
+-[WebView(WebPendingPublic) scriptDebugDelegate]
+__ZNK3JSC7JSValue8toStringEPNS_9ExecStateE
+__ZN3WTF12bitwise_castIdlEET_T0_
++[WebView(WebFileInternal) _preferencesRemovedNotification:]
++[WebView(WebFileInternal) _maxCacheModelInAnyInstance]
+_WKDrawBezeledTextArea
+__ZNK15WebChromeClient17windowResizerRectEv
+_WKDrawBezeledTextFieldCell
+__ZN20WebFrameLoaderClient29savePlatformDataToCachedFrameEPN7WebCore11CachedFrameE
+-[WebViewFactory inputElementAltText]
+_WKGetFontInLanguageForRange
+-[WebNetscapePluginPackage getPluginInfoFromResources]
+-[WebNetscapePluginPackage openResourceFile]
+-[WebNetscapePluginPackage stringForStringListID:andIndex:]
++[NSString(WebKitExtras) _web_encodingForResource:]
+-[WebNetscapePluginPackage closeResourceFile:]
+__ZN15WebChromeClient19addMessageToConsoleEN7WebCore13MessageSourceENS0_11MessageTypeENS0_12MessageLevelERKNS0_6StringEjS6_
+__ZN26WebCachedFramePlatformData5clearEv
+-[WebHTMLView(WebInternal) closeIfNotCurrentView]
+__ZN26WebCachedFramePlatformDataD0Ev
++[WebStringTruncator centerTruncateString:toWidth:]
+__ZL15defaultMenuFontv
+__ZN20WebFrameLoaderClient22dispatchDidChangeIconsEv
++[NSObject(WebScripting) isKeyExcludedFromWebScript:]
+-[WebIconDatabase iconURLForURL:]
+-[WebHistoryItem(WebPrivate) RSSFeedReferrer]
+-[WebElementDictionary _webFrame]
+-[WebElementDictionary _domNode]
+-[DOMDocument(WebDOMDocumentOperations) webFrame]
+-[WebElementDictionary _targetWebFrame]
+-[NSURL(WebNSURLExtras) _webkit_URLByRemovingFragment]
+__ZNK20WebFrameLoaderClient32dispatchDidRemoveBackForwardItemEPN7WebCore11HistoryItemE
+-[WebPluginDatabase close]
+-[WebPluginDatabase(Internal) _removePlugin:]
++[WebView(WebPrivate) _unregisterPluginMIMEType:]
++[WebView(WebPrivate) _unregisterViewClassAndRepresentationClassForMIMEType:]
+__ZN3WTF9HashTableIN7WebCore6StringES2_NS_17IdentityExtractorIS2_EENS1_10StringHashENS_10HashTraitsIS2_EES7_E47removeAndInvalid
+__ZN3WTF9HashTableIN7WebCore6StringES2_NS_17IdentityExtractorIS2_EENS1_10StringHashENS_10HashTraitsIS2_EES7_E6removeEPS2_
+-[WebNetscapePluginPackage wasRemovedFromPluginDatabase:]
+-[WebBasePluginPackage wasRemovedFromPluginDatabase:]
+-[WebNetscapePluginPackage(Internal) _unloadWithShutdown:]
+-[WebHTMLView windowWillClose:]
+-[WebPreferences setJavaScriptCanOpenWindowsAutomatically:]
+-[WebPreferences setJavaScriptEnabled:]
+__ZN7WebCore17FrameLoaderClient17didNotAllowScriptEv
+-[WebPreferences setJavaEnabled:]
+-[WebPreferences setPlugInsEnabled:]
+__ZN15WebChromeClient10windowRectEv
+-[WebHTMLRepresentation currentForm]
+-[WebHTMLRepresentation controlsInForm:]
+__ZL25formElementFromDOMElementP10DOMElement
+-[WebHTMLRepresentation elementIsPassword:]
+__ZL26inputElementFromDOMElementP10DOMElement
+-[WebHTMLRepresentation elementDoesAutoComplete:]
++[WebDatabaseManager sharedWebDatabaseManager]
+-[WebDatabaseManager origins]
+-[WebDataSource(WebPrivate) _mainDocumentError]
+-[WebHTMLView validRequestorForSendType:returnType:]
+-[WebHTMLView(WebDocumentPrivateProtocols) pasteboardTypesForSelection]
+-[WebHTMLView(WebInternal) _canSmartCopyOrDelete]
-[WebView(WebViewEditing) smartInsertDeleteEnabled]
-__ZN15WebEditorClient17shouldDeleteRangeEPN7WebCore5RangeE
--[WebDefaultEditingDelegate webView:shouldDeleteDOMRange:]
-__ZN15WebEditorClient28textWillBeDeletedInTextFieldEPN7WebCore7ElementE
-__Z32CallFormDelegateReturningBooleanaP7WebViewP13objc_selectorP11objc_objectS2_S4_
-__ZN3WTF6VectorIN7WebCore18TextCheckingResultELm0EE14expandCapacityEmPKS2_
-__ZN3WTF6VectorIN7WebCore18TextCheckingResultELm0EE14expandCapacityEm
-__ZN3WTF6VectorIN7WebCore18TextCheckingResultELm0EE15reserveCapacityEm
-__ZN7WebCore18TextCheckingResultC2ERKS0_
-__ZN3WTF6VectorIN7WebCore13GrammarDetailELm0EEC1ERKS3_
-__ZN3WTF6VectorIN7WebCore13GrammarDetailELm0EEC2ERKS3_
-__ZN7WebCore18TextCheckingResultD2Ev
-_WKSetPatternPhaseInUserSpace
--[NSString(WebNSURLExtras) _web_isUserVisibleURL]
-+[WebHTMLView(WebPrivate) _postFlagsChangedEvent:]
--[WebHTMLView flagsChanged:]
-__ZN15WebEditorClient33isSelectTrailingWhitespaceEnabledEv
--[WebView(WebPrivate) isSelectTrailingWhitespaceEnabled]
-__ZN15WebChromeClient11canRunModalEv
+-[WebHTMLView(WebPrivate) _isEditable]
+-[WebHTMLView(WebPrivate) _hasSelection]
+-[WebHTMLView(WebPrivate) addTrackingRect:owner:userData:assumeInside:]
+-[WebHTMLView(WebPrivate) _sendToolTipMouseEntered]
+-[WebHTMLView(WebPrivate) _sendToolTipMouseExited]
+-[WebHTMLView(WebPrivate) removeTrackingRect:]
++[WebCache initialize]
++[WebCache empty]
+-[WebBackForwardList pageCacheSize]
+-[WebBackForwardList setPageCacheSize:]
+-[WebView(WebPrivate) setUsesPageCache:]
-[WebHTMLView(WebPrivate) view:stringForToolTip:point:userData:]
-+[WebStringTruncator rightTruncateString:toWidth:withFont:]
--[WebView(WebIBActions) goBack:]
--[WebView goBack]
-__ZNK20WebFrameLoaderClient21shouldGoToHistoryItemEPN7WebCore11HistoryItemE
-__ZN20WebFrameLoaderClient16restoreViewStateEv
--[WebDynamicScrollBarsView(WebInternal) allowsHorizontalScrolling]
--[WebView(WebPendingPublic) shouldClose]
--[NSEvent(WebExtras) _web_isReturnOrEnterKeyEvent]
--[NSEvent(WebExtras) _web_isKeyEvent:]
-__ZN20WebFrameLoaderClient27registerForIconNotificationEb
--[WebView(WebViewInternal) _receivedIconChangedNotification:]
-__ZN20WebFrameLoaderClient36transitionToCommittedFromCachedFrameEPN7WebCore11CachedFrameE
-__ZN20WebFrameLoaderClient11forceLayoutEv
--[WebHTMLView setNeedsToApplyStyles:]
+-[WebHTMLView validateUserInterfaceItem:]
+-[WebHTMLView validateUserInterfaceItemWithoutDelegate:]
+-[WebHTMLView coreCommandBySelector:]
+__ZL22commandNameForSelectorP13objc_selector
+__ZN3WTF7HashMapIP13objc_selectorN7WebCore6StringENS_7PtrHashIS2_EENS_10HashTraitsIS2_EENS7_IS4_EEE3addERKS2_RKS4_
+__ZN3WTF9HashTableIP13objc_selectorSt4pairIS2_N7WebCore6StringEENS_18PairFirstExtractorIS6_EENS_7PtrHashIS2_EENS_14PairHashTrai
+__ZNK3WTF9HashTableIP13objc_selectorSt4pairIS2_N7WebCore6StringEENS_18PairFirstExtractorIS6_EENS_7PtrHashIS2_EENS_14PairHashTra
+__ZL3kitN7WebCore8TriStateE
+__Z30CallUIDelegateReturningBooleanaP7WebViewP13objc_selectorP11objc_objecta
+-[WebFrame(WebPrivate) _isDisplayingStandaloneImage]
+-[WebHTMLView selectAll:]
+-[WebHTMLView executeCoreCommandBySelector:]
+-[WebHTMLView callDelegateDoCommandBySelectorIfNeeded:]
+-[WebView(WebPrivate) _editingDelegateForwarder]
++[WebDefaultEditingDelegate sharedEditingDelegate]
+-[WebDefaultEditingDelegate webView:doCommandBySelector:]
+__ZN15WebEditorClient25shouldChangeSelectedRangeEPN7WebCore5RangeES2_NS0_9EAffinityEb
+-[WebView(WebViewEditing) _shouldChangeSelectedDOMRange:toDOMRange:affinity:stillSelecting:]
+-[WebDefaultEditingDelegate webView:shouldChangeSelectedDOMRange:toDOMRange:affinity:stillSelecting:]
+-[WebHTMLView(WebInternal) smartInsertDeleteEnabled]
+-[WebHTMLView(WebInternal) isAutomaticQuoteSubstitutionEnabled]
+-[WebView(WebViewTextChecking) isAutomaticQuoteSubstitutionEnabled]
+-[WebHTMLView(WebInternal) isAutomaticDashSubstitutionEnabled]
+-[WebView(WebViewTextChecking) isAutomaticDashSubstitutionEnabled]
+-[WebHTMLView(WebInternal) isAutomaticLinkDetectionEnabled]
+-[WebView(WebViewTextChecking) isAutomaticLinkDetectionEnabled]
+-[WebHTMLView(WebInternal) isAutomaticTextReplacementEnabled]
+-[WebView(WebViewTextChecking) isAutomaticTextReplacementEnabled]
+-[WebView(WebIBActions) validateUserInterfaceItem:]
+-[WebView(WebIBActions) validateUserInterfaceItemWithoutDelegate:]
+-[WebHTMLView(WebInternal) isGrammarCheckingEnabled]
+-[WebHTMLView(WebInternal) isAutomaticSpellingCorrectionEnabled]
+-[WebView(WebViewTextChecking) isAutomaticSpellingCorrectionEnabled]
+-[WebView(WebIBActions) toggleContinuousSpellChecking:]
+-[WebView(WebViewEditing) setContinuousSpellCheckingEnabled:]
+-[WebFrame(WebInternal) _unmarkAllMisspellings]
++[WebView(WebFileInternal) _preflightSpellChecker]
++[WebView(WebFileInternal) _preflightSpellCheckerNow:]
+-[WebHTMLView(WebInternal) toggleGrammarChecking:]
+-[WebView(WebViewGrammarChecking) toggleGrammarChecking:]
+-[WebView(WebViewGrammarChecking) setGrammarCheckingEnabled:]
+__ZN13WebDragClient28dragSourceActionMaskForPointERKN7WebCore8IntPointE
+-[WebDefaultUIDelegate webView:dragSourceActionMaskForPoint:]
+-[WebHTMLView mouseDown:]
+-[WebView(WebPendingPublic) canResetPageZoom]
+-[WebView _canResetZoom:]
+-[WebView _zoomMultiplier:]
+-[WebView(WebIBActions) canMakeTextStandardSize]
+-[WebView(WebPendingPublic) canZoomPageIn]
+-[WebView _canZoomIn:]
+-[WebView(WebPendingPublic) canZoomPageOut]
+-[WebView _canZoomOut:]
+-[WebHTMLRepresentation canProvideDocumentSource]
+-[WebFrame(WebInternal) _canProvideDocumentSource]
+-[WebView(WebIBActions) reload:]
+-[WebFrame reload]
+-[WebHTMLView(WebPrivate) _removeTrackingRects:count:]
+-[WebHTMLView(WebPrivate) _addTrackingRect:owner:userData:assumeInside:useTrackingNum:]
__XPCGetWindowNPObject
_WKPCGetWindowNPObject
__ZN6WebKit27NetscapePluginInstanceProxy17getWindowNPObjectERj
-__ZN6WebKit27NetscapePluginInstanceProxy11idForObjectEPN3JSC8JSObjectE
+__ZN6WebKit27NetscapePluginInstanceProxy14LocalObjectMap11idForObjectEPN3JSC8JSObjectE
__ZNK3WTF9HashTableIjSt4pairIjN3JSC12ProtectedPtrINS2_8JSObjectEEEENS_18PairFirstExtractorIS6_EENS_7IntHashIjEENS_14PairHashTra
__ZN3WTF7HashMapIjN3JSC12ProtectedPtrINS1_8JSObjectEEENS_7IntHashIjEENS_10HashTraitsIjEENS7_IS4_EEE3setERKjRKS4_
-__ZN3WTF9HashTableIjSt4pairIjN3JSC12ProtectedPtrINS2_8JSObjectEEEENS_18PairFirstExtractorIS6_EENS_7IntHashIjEENS_14PairHashTrai
+__ZN3WTF7HashMapIPN3JSC8JSObjectESt4pairIjjENS_7PtrHashIS3_EENS_10HashTraitsIS3_EENS8_IS5_EEE3setERKS3_RKS5_
__XPCEvaluate
_WKPCEvaluate
-__ZN6WebKit27NetscapePluginInstanceProxy22willCallPluginFunctionEv
-__ZN6WebKit27NetscapePluginInstanceProxy8evaluateEjRKN7WebCore6StringERPcRj
-__ZNK3JSC21UStringSourceProvider6lengthEv
-__ZNK3JSC21UStringSourceProvider4dataEv
+__ZN6WebKit27NetscapePluginInstanceProxy8evaluateEjRKN7WebCore6StringERPcRjb
+__ZNK7WebCore20StringSourceProvider6lengthEv
+__ZNK7WebCore20StringSourceProvider4dataEv
__ZN6WebKit27NetscapePluginInstanceProxy12marshalValueEPN3JSC9ExecStateENS1_7JSValueERPcRj
__ZN6WebKit27NetscapePluginInstanceProxy15addValueToArrayEP14NSMutableArrayPN3JSC9ExecStateENS3_7JSValueE
__WKPHBooleanAndDataReply
-__ZN6WebKit27NetscapePluginInstanceProxy21didCallPluginFunctionEv
__XPCGetStringIdentifier
_WKPCGetStringIdentifier
__XPCInvoke
@@ -1427,20 +1279,36 @@ __ZN6WebKit27NetscapePluginInstanceProxy6invokeEjRKN3JSC10IdentifierEPcjRS5_Rj
__ZNK3WTF7HashMapIjN3JSC12ProtectedPtrINS1_8JSObjectEEENS_7IntHashIjEENS_10HashTraitsIjEENS7_IS4_EEE3getERKj
__ZN6WebKit27NetscapePluginInstanceProxy15demarshalValuesEPN3JSC9ExecStateEPcjRNS1_20MarkedArgumentBufferE
__ZN6WebKit27NetscapePluginInstanceProxy23demarshalValueFromArrayEPN3JSC9ExecStateEP7NSArrayRmRNS1_7JSValueE
-__XPCReleaseObject
-_WKPCReleaseObject
-__ZN6WebKit27NetscapePluginInstanceProxy13releaseObjectEj
+__XPCForgetBrowserObject
+_WKPCForgetBrowserObject
+__ZN6WebKit27NetscapePluginInstanceProxy21forgetBrowserObjectIDEj
+__ZN6WebKit27NetscapePluginInstanceProxy14LocalObjectMap6forgetEj
__ZN6WebKit26HostedNetscapePluginStreamC1EPNS_27NetscapePluginInstanceProxyEjP12NSURLRequest
__ZN6WebKit26HostedNetscapePluginStreamC2EPNS_27NetscapePluginInstanceProxyEjP12NSURLRequest
__ZN3WTF7HashMapIjNS_6RefPtrIN6WebKit26HostedNetscapePluginStreamEEENS_7IntHashIjEENS_10HashTraitsIjEENS7_IS4_EEE3addERKjRKS4_
__ZN3WTF9HashTableIjSt4pairIjNS_6RefPtrIN6WebKit26HostedNetscapePluginStreamEEEENS_18PairFirstExtractorIS6_EENS_7IntHashIjEENS_
__ZN6WebKit26HostedNetscapePluginStream5startEv
--[WebHostedNetscapePluginView createPluginBindingsInstance:]
+-[WebBaseNetscapePluginView element]
+-[WebBaseNetscapePluginView shouldClipOutPlugin]
+__ZNK7WebCore12PluginWidget14isPluginWidgetEv
+-[WebHostedNetscapePluginView pluginLayer]
+__ZN7WebCore6Widget22widgetPositionsUpdatedEv
+-[WebBaseNetscapePluginView windowResignedKey:]
+-[WebBaseNetscapePluginView invalidatePluginContentRect:]
+__ZN6WebKit26HostedNetscapePluginStream18didReceiveResponseEPN7WebCore26NetscapePlugInStreamLoaderERKNS1_16ResourceResponseE
+_WKGetNSURLResponseLastModifiedDate
+__ZN6WebKit26HostedNetscapePluginStream11startStreamEP5NSURLxP6NSDateP8NSStringP6NSData
+-[NSURL(WebNSURLExtras) _web_URLCString]
+__WKPHStartStream
+__ZNK6WebKit26HostedNetscapePluginStream15wantsAllStreamsEv
+__ZN6WebKit26HostedNetscapePluginStream14didReceiveDataEPN7WebCore26NetscapePlugInStreamLoaderEPKci
+__WKPHStreamDidReceiveData
+__ZN6WebKit26HostedNetscapePluginStream16didFinishLoadingEPN7WebCore26NetscapePlugInStreamLoaderE
+__WKPHStreamDidFinishLoading
+__ZN6WebKit27NetscapePluginInstanceProxy16disconnectStreamEPNS_26HostedNetscapePluginStreamE
+__ZN6WebKit26HostedNetscapePluginStreamD0Ev
__ZN6WebKit27NetscapePluginInstanceProxy22createBindingsInstanceEN3WTF10PassRefPtrIN3JSC8Bindings10RootObjectEEE
__WKPHGetScriptableNPObject
-__XPCInvalidateRect
-_WKPCInvalidateRect
-__ZN6WebKit27NetscapePluginInstanceProxy14invalidateRectEdddd
__XPCGetScriptableNPObjectReply
_WKPCGetScriptableNPObjectReply
__ZN6WebKit13ProxyInstanceC1EN3WTF10PassRefPtrIN3JSC8Bindings10RootObjectEEEPNS_27NetscapePluginInstanceProxyEj
@@ -1451,6 +1319,9 @@ __ZN3WTF9HashTableIPN6WebKit13ProxyInstanceES3_NS_17IdentityExtractorIS3_EENS_7P
__ZN3WTF9HashTableIPN6WebKit13ProxyInstanceES3_NS_17IdentityExtractorIS3_EENS_7PtrHashIS3_EENS_10HashTraitsIS3_EES9_E6rehashEi
__ZN3WTF9HashTableIPN6WebKit13ProxyInstanceES3_NS_17IdentityExtractorIS3_EENS_7PtrHashIS3_EENS_10HashTraitsIS3_EES9_E13allocate
__ZN6WebKit27NetscapePluginInstanceProxy26GetScriptableNPObjectReplyD0Ev
+__ZN6WebKit13ProxyInstance16newRuntimeObjectEPN3JSC9ExecStateE
+__ZN6WebKit18ProxyRuntimeObjectC1EPN3JSC9ExecStateEN3WTF10PassRefPtrINS_13ProxyInstanceEEE
+__ZN6WebKit18ProxyRuntimeObjectC2EPN3JSC9ExecStateEN3WTF10PassRefPtrINS_13ProxyInstanceEEE
__ZN3JSC8Bindings8Instance12virtualBeginEv
__ZNK6WebKit13ProxyInstance8getClassEv
__ZN6WebKitL10proxyClassEv
@@ -1459,293 +1330,189 @@ __ZN6WebKit13ProxyInstance10fieldNamedERKN3JSC10IdentifierE
__WKPHNPObjectHasProperty
__XPCIdentifierInfo
_WKPCIdentifierInfo
-__ZN3WTF7HashMapINS_6RefPtrIN3JSC7UString3RepEEEPNS2_8Bindings5FieldENS_7StrHashIS5_EENS_10HashTraitsIS5_EENSB_IS8_EEE3addEPS4_
-__ZN3WTF9HashTableINS_6RefPtrIN3JSC7UString3RepEEESt4pairIS5_PNS2_8Bindings5FieldEENS_18PairFirstExtractorISA_EENS_7StrHashIS5_
__ZNK6WebKit10ProxyClass12methodsNamedERKN3JSC10IdentifierEPNS1_8Bindings8InstanceE
__ZN6WebKit13ProxyInstance12methodsNamedERKN3JSC10IdentifierE
__WKPHNPObjectHasMethod
-__ZN3WTF7HashMapINS_6RefPtrIN3JSC7UString3RepEEEPNS2_8Bindings6MethodENS_7StrHashIS5_EENS_10HashTraitsIS5_EENSB_IS8_EEE3addEPS4
-__ZN3WTF9HashTableINS_6RefPtrIN3JSC7UString3RepEEESt4pairIS5_PNS2_8Bindings6MethodEENS_18PairFirstExtractorISA_EENS_7StrHashIS5
-__ZN3WTF6VectorIPN3JSC8Bindings6MethodELm0EEC1ERKS5_
-__ZN3WTF6VectorIPN3JSC8Bindings6MethodELm0EEC2ERKS5_
__ZN3JSC8Bindings5Class14fallbackObjectEPNS_9ExecStateEPNS0_8InstanceERKNS_10IdentifierE
__ZN3JSC8Bindings8Instance10virtualEndEv
__ZN3JSC8Bindings8Instance18getOwnPropertySlotEPNS_8JSObjectEPNS_9ExecStateERKNS_10IdentifierERNS_12PropertySlotE
-__ZN6WebKit26HostedNetscapePluginStream7didFailEPN7WebCore26NetscapePlugInStreamLoaderERKNS1_13ResourceErrorE
-__WKPHStreamDidFail
-__ZN15WebChromeClient10windowRectEv
-__ZN6WebKit13ProxyInstanceD0Ev
-__ZN3WTF20deleteAllPairSecondsIPN3JSC8Bindings5FieldEKNS_7HashMapINS_6RefPtrINS1_7UString3RepEEES4_NS_7StrHashIS9_EENS_10HashTr
-__ZN3WTF20deleteAllPairSecondsIPN3JSC8Bindings6MethodEKNS_7HashMapINS_6RefPtrINS1_7UString3RepEEES4_NS_7StrHashIS9_EENS_10HashT
-__ZN6WebKit27NetscapePluginInstanceProxy14removeInstanceEPNS_13ProxyInstanceE
-__ZN3WTF9HashTableIPN6WebKit13ProxyInstanceES3_NS_17IdentityExtractorIS3_EENS_7PtrHashIS3_EENS_10HashTraitsIS3_EES9_E4findIS3_N
-__ZN3WTF9HashTableIPN6WebKit13ProxyInstanceES3_NS_17IdentityExtractorIS3_EENS_7PtrHashIS3_EENS_10HashTraitsIS3_EES9_E47removeAn
-__ZN3WTF9HashTableIPN6WebKit13ProxyInstanceES3_NS_17IdentityExtractorIS3_EENS_7PtrHashIS3_EENS_10HashTraitsIS3_EES9_E6removeEPS
-__ZN6WebKit13ProxyInstance10invalidateEv
-__WKPHNPObjectRelease
-__ZN3WTF6VectorINS_6RefPtrIN6WebKit26HostedNetscapePluginStreamEEELm0EE14expandCapacityEm
-__ZN3WTF6VectorINS_6RefPtrIN6WebKit26HostedNetscapePluginStreamEEELm0EE15reserveCapacityEm
-__ZN6WebKit26HostedNetscapePluginStream4stopEv
-__ZN3WTF6VectorINS_6RefPtrIN6WebKit26HostedNetscapePluginStreamEEELm0EE6shrinkEm
-__ZN3JSC21UStringSourceProviderD0Ev
--[WebView(WebIBActions) goForward:]
--[WebView goForward]
--[WebFramePolicyListener download]
-__ZN20WebFrameLoaderClient8downloadEPN7WebCore14ResourceHandleERKNS0_15ResourceRequestES5_RKNS0_16ResourceResponseE
--[WebDownload _initWithLoadingConnection:request:response:delegate:proxy:]
--[WebDownload _setRealDelegate:]
--[WebDownloadInternal setRealDelegate:]
--[WebDownload init]
--[WebDownloadInternal respondsToSelector:]
--[WebDownloadInternal downloadDidBegin:]
--[WebDownloadInternal download:didReceiveResponse:]
-__ZNK20WebFrameLoaderClient25setOriginalURLForDownloadEP11WebDownloadRKN7WebCore15ResourceRequestE
-__ZN20WebFrameLoaderClient29interruptForPolicyChangeErrorERKN7WebCore15ResourceRequestE
--[WebDownloadInternal download:didReceiveDataOfLength:]
--[WebDownloadInternal download:decideDestinationWithSuggestedFilename:]
--[NSFileManager(WebNSFileManagerExtras) _webkit_setMetadataURL:referrer:atPath:]
-_setMetaData
-_WKSetMetadataURL
--[WebDownloadInternal download:didCreateDestination:]
--[WebDownloadInternal downloadDidFinish:]
--[WebDownload dealloc]
--[WebDownloadInternal dealloc]
-__ZN20NetscapePluginWidget11handleEventEPN7WebCore5EventE
--[WebHostedNetscapePluginView handleMouseMoved:]
-__ZN6WebKit27NetscapePluginInstanceProxy10mouseEventEP6NSViewP7NSEvent16NPCocoaEventType
-__WKPHPluginInstanceMouseEvent
-__ZN6WebKit26HostedNetscapePluginStream18didReceiveResponseEPN7WebCore26NetscapePlugInStreamLoaderERKNS1_16ResourceResponseE
-_WKGetNSURLResponseLastModifiedDate
-__ZN6WebKit26HostedNetscapePluginStream11startStreamEP5NSURLxP6NSDateP8NSStringP6NSData
--[NSURL(WebNSURLExtras) _web_URLCString]
-__WKPHStartStream
-__ZNK6WebKit26HostedNetscapePluginStream15wantsAllStreamsEv
-__ZN6WebKit26HostedNetscapePluginStream14didReceiveDataEPN7WebCore26NetscapePlugInStreamLoaderEPKci
-__WKPHStreamDidReceiveData
-__ZN6WebKit26HostedNetscapePluginStream16didFinishLoadingEPN7WebCore26NetscapePlugInStreamLoaderE
-__WKPHStreamDidFinishLoading
-__ZN6WebKit27NetscapePluginInstanceProxy16disconnectStreamEPNS_26HostedNetscapePluginStreamE
-__ZN6WebKit26HostedNetscapePluginStreamD0Ev
--[WebHostedNetscapePluginView mouseExited:]
-__ZN20WebFrameLoaderClient18dispatchCreatePageEv
--[WebBaseNetscapePluginView preferencesHaveChanged:]
-__ZN20WebFrameLoaderClient12dispatchShowEv
--[WebBaseNetscapePluginView windowResignedKey:]
--[WebView(WebPendingPublic) canMarkAllTextMatches]
--[WebView(WebPendingPublic) searchFor:direction:caseSensitive:wrap:startInSelection:]
--[WebHTMLView(WebDocumentPrivateProtocols) searchFor:direction:caseSensitive:wrap:startInSelection:]
--[WebView(WebPendingPublic) rectsForTextMatches]
--[WebHTMLView(WebDocumentInternalProtocols) rectsForTextMatches]
-__ZN3WTF6VectorIN7WebCore7IntRectELm0EE6shrinkEm
--[WebHTMLView(WebDocumentPrivateProtocols) selectionRect]
--[WebHTMLView(WebDocumentPrivateProtocols) selectionTextRects]
-__ZN3WTF6VectorIN7WebCore9FloatRectELm0EE6shrinkEm
--[WebHTMLView(WebDocumentPrivateProtocols) selectionImageForcingBlackText:]
--[WebHTMLView(WebDocumentPrivateProtocols) selectedString]
--[WebFrame(WebInternal) _selectedString]
--[WebBaseNetscapePluginView windowBecameKey:]
--[WebHostedNetscapePluginView windowFrameDidChange:]
-+[WebStringTruncator widthOfString:font:]
+__ZN20WebFrameLoaderClient16restoreViewStateEv
+__ZN3WTF7HashMapINS_6RefPtrIN7WebCore10StringImplEEEPN3JSC8Bindings6MethodENS2_10StringHashENS_10HashTraitsIS4_EENSA_IS8_EEE3ad
+__ZN3WTF9HashTableINS_6RefPtrIN7WebCore10StringImplEEESt4pairIS4_PN3JSC8Bindings6MethodEENS_18PairFirstExtractorISA_EENS2_10Str
__ZN3WTF6VectorIPN3JSC8Bindings6MethodELm0EE14expandCapacityEmPKS4_
__ZN3WTF6VectorIPN3JSC8Bindings6MethodELm0EE14expandCapacityEm
__ZN3WTF6VectorIPN3JSC8Bindings6MethodELm0EE15reserveCapacityEm
+__ZN3WTF6VectorIPN3JSC8Bindings6MethodELm0EEC1ERKS5_
+__ZN3WTF6VectorIPN3JSC8Bindings6MethodELm0EEC2ERKS5_
__ZN3WTF6VectorIPN3JSC8Bindings6MethodELm0EE6shrinkEm
-__ZN6WebKit13ProxyInstance12invokeMethodEPN3JSC9ExecStateERKN3WTF6VectorIPNS1_8Bindings6MethodELm0EEERKNS1_7ArgListE
+__ZN6WebKit13ProxyInstance9getMethodEPN3JSC9ExecStateERKNS1_10IdentifierE
+__ZN6WebKit13ProxyInstance12invokeMethodEPN3JSC9ExecStateEPNS1_13RuntimeMethodERKNS1_7ArgListE
+__ZNK6WebKit18ProxyRuntimeMethod9classInfoEv
__ZN6WebKit13ProxyInstance6invokeEPN3JSC9ExecStateE10InvokeTypeyRKNS1_7ArgListE
__ZN6WebKit27NetscapePluginInstanceProxy13marshalValuesEPN3JSC9ExecStateERKNS1_7ArgListE
__WKPHNPObjectInvoke
__XPCBooleanAndDataReply
_WKPCBooleanAndDataReply
+__ZN6WebKit27NetscapePluginInstanceProxy30moveGlobalExceptionToExecStateEPN3JSC9ExecStateE
+__ZN6WebKitL21globalExceptionStringEv
__ZN6WebKit27NetscapePluginInstanceProxy14demarshalValueEPN3JSC9ExecStateEPKcj
__ZN6WebKit27NetscapePluginInstanceProxy19BooleanAndDataReplyD0Ev
--[NSString(WebNSURLExtras) _webkit_stringByReplacingValidPercentEscapes]
--[WebFrame findFrameNamed:]
-__ZN6WebKit27NetscapePluginInstanceProxy18evaluateJavaScriptEPNS0_13PluginRequestE
--[WebHostedNetscapePluginView mouseEntered:]
--[WebView(WebIBActions) stopLoading:]
+-[WebBaseNetscapePluginView inFlatteningPaint]
+__ZN6WebKit27NetscapePluginInstanceProxy17retainLocalObjectEN3JSC7JSValueE
+__ZN6WebKit27NetscapePluginInstanceProxy18releaseLocalObjectEN3JSC7JSValueE
+-[WebView(WebPrivate) _viewWillDrawInternal]
+__ZNK3WTF7HashMapIPN7WebCore10StringImplEPN3JSC8JSStringENS1_10StringHashENS_10HashTraitsIS3_EENS8_IS6_EEE3getERKS3_
+__ZN3WTF6VectorIN3JSC8RegisterELm8EE6shrinkEm
+-[WebBaseNetscapePluginView supportsSnapshotting]
+__ZN6WebKit27NetscapePluginInstanceProxy8snapshotEP9CGContextjj
+__WKPHPluginInstanceSnapshot
+-[WebBaseNetscapePluginView windowBecameKey:]
+-[WebHostedNetscapePluginView windowFrameDidChange:]
+-[WebView(WebPendingPublic) zoomPageIn:]
+-[WebView _zoomIn:isTextOnly:]
+-[WebView(WebPendingPublic) zoomPageOut:]
+-[WebView _zoomOut:isTextOnly:]
+-[WebHostedNetscapePluginView visibleRectDidChange]
+-[WebBaseNetscapePluginView visibleRectDidChange]
+_WKSyncSurfaceToView
+-[WebPreferences(WebPrivate) setZoomsTextOnly:]
+-[WebBaseNetscapePluginView preferencesHaveChanged:]
+-[WebFrameView documentViewShouldHandlePrint]
+-[WebFrameView printOperationWithPrintInfo:]
+-[WebFrameView canPrintHeadersAndFooters]
+-[WebHTMLView canPrintHeadersAndFooters]
+-[WebHTMLView knowsPageRange:]
+-[NSPrintOperation(WebKitExtras) _web_availablePaperWidth]
+-[WebHTMLView(WebPrivate) _beginPrintModeWithPageWidth:shrinkToFit:]
+-[WebHTMLView _setPrinting:minimumPageWidth:maximumPageWidth:adjustViewSize:]
+-[WebHTMLView setNeedsToApplyStyles:]
+-[WebView(WebViewPrintingPrivate) _adjustPrintingMarginsForHeaderAndFooter]
+-[NSPrintOperation(WebKitExtras) _web_pageSetupScaleFactor]
+-[WebView(WebViewPrintingPrivate) _headerHeight]
+__Z28CallUIDelegateReturningFloatP7WebViewP13objc_selector
+-[WebView(WebViewPrintingPrivate) _footerHeight]
+-[WebHTMLView _scaleFactorForPrintOperation:]
+-[NSPrintOperation(WebKitExtras) _web_availablePaperHeight]
+-[WebFrame(WebInternal) _computePageRectsWithPrintWidthScaleFactor:printHeight:]
+-[WebHTMLView _provideTotalScaleFactorForPrintOperation:]
+-[WebHTMLView beginDocument]
+-[WebHTMLView endDocument]
+-[WebHTMLView _endPrintModeAndRestoreWindowAutodisplay]
+-[WebHTMLView(WebPrivate) _endPrintMode]
+-[WebView(WebIBActions) canMakeTextLarger]
+-[WebView(WebIBActions) canMakeTextSmaller]
+-[WebView(WebIBActions) makeTextLarger:]
+-[WebView(WebIBActions) makeTextSmaller:]
+-[WebView(WebPendingPublic) resetPageZoom:]
+-[WebView _resetZoom:isTextOnly:]
+-[WebView(WebIBActions) makeTextStandardSize:]
+-[WebView initWithCoder:]
+-[WebDynamicScrollBarsView initWithCoder:]
+-[WebPreferences initWithCoder:]
++[WebPreferences(WebInternal) _concatenateKeyWithIBCreatorID:]
+-[WebView setPreferences:]
+-[WebPreferences setMinimumFontSize:]
+-[NSMutableDictionary(WebNSDictionaryExtras) _webkit_setInt:forKey:]
+-[WebHTMLRepresentation documentSource]
+-[WebDataSource data]
+-[WebFrame loadData:MIMEType:textEncodingName:baseURL:]
+-[WebFrame _loadData:MIMEType:textEncodingName:baseURL:unreachableURL:]
+__ZL22createUniqueWebDataURLv
+__ZN3WTF6RefPtrIN7WebCore10StringImplEED2Ev
+-[WebDefaultPolicyDelegate webView:decidePolicyForNavigationAction:request:frame:decisionListener:]
++[WebPreferences(WebPrivate) _checkLastReferenceForIdentifier:]
+-[WebPreferences dealloc]
+-[WebPreferencesPrivate dealloc]
+-[WebView supportsTextEncoding]
+-[WebHTMLView(WebDocumentPrivateProtocols) supportsTextEncoding]
+-[WebView customTextEncodingName]
+-[WebView _mainFrameOverrideEncoding]
+-[WebView setCustomTextEncodingName:]
+__ZN6WebKit13ProxyInstanceD0Ev
+__ZN3WTF20deleteAllPairSecondsIPN3JSC8Bindings5FieldEKNS_7HashMapINS_6RefPtrIN7WebCore10StringImplEEES4_NS7_10StringHashENS_10H
+__ZN3WTF20deleteAllPairSecondsIPN3JSC8Bindings6MethodEKNS_7HashMapINS_6RefPtrIN7WebCore10StringImplEEES4_NS7_10StringHashENS_10
__ZN6WebKit11ProxyMethodD0Ev
--[WebDownloadInternal download:shouldDecodeSourceDataOfMIMEType:]
-__ZN20WebFrameLoaderClient25pluginWillHandleLoadErrorERKN7WebCore16ResourceResponseE
--[NSError(WebKitExtras) _initWithPluginErrorCode:contentURL:pluginPageURL:pluginName:MIMEType:]
--[WebHTMLRepresentation receivedError:withDataSource:]
-_WKDrawMediaUIPart
-__ZL24createCGImageRefFromDataPKhj
-__ZL14drawMediaImageP9CGContext6CGRectP7CGImage
-_WKDrawMediaSliderTrack
-_WKQTMovieMaxTimeSeekable
-__ZN15WebChromeClient5focusEv
-__Z13webGetNSImagePN7WebCore5ImageE7_NSSize
-__ZL12CallDelegatePFP11objc_objectS0_P13objc_selectorzEP7WebViewS0_S2_S0_
-__ZL12CallDelegatePFP11objc_objectS0_P13objc_selectorzEP7WebViewS0_S2_S0_S0_
-__ZL12CallDelegatePFP11objc_objectS0_P13objc_selectorzEP7WebViewS0_S2_S0_S0_S0_S0_
-__ZL12CallDelegatePFP11objc_objectS0_P13objc_selectorzEP7WebViewS0_S2_S0_S0_S0_
-__ZL12CallDelegateP7WebViewP11objc_objectP13objc_selectorS2_
-__Z24CallResourceLoadDelegatePFP11objc_objectS0_P13objc_selectorzEP7WebViewS2_S0_iS0_
-__ZL12CallDelegatePFP11objc_objectS0_P13objc_selectorzEP7WebViewS0_S2_S0_iS0_
-__ZSt16__introsort_loopIPiiEvT_S1_T0_
-__ZL9setCursorP8NSWindowP13objc_selector8_NSPoint
-+[WebNetscapePluginPackage initialize]
-_WebLMGetCurApRefNum
-_WebLMSetCurApRefNum
-+[WebNetscapePluginDocumentView initialize]
--[WebNetscapePluginDocumentView .cxx_construct]
--[WebNetscapePluginDocumentView initWithFrame:pluginPackage:URL:baseURL:MIMEType:attributeKeys:attributeValues:loadManually:ele
--[WebNetscapePluginDocumentView setAttributeKeys:andValues:]
--[WebNetscapePluginPackage load]
--[WebNetscapePluginPackage _tryLoad]
--[WebNetscapePluginPackage _applyDjVuWorkaround]
--[WebNetscapePluginDocumentView createPlugin]
--[WebNetscapePluginPackage open]
--[WebNetscapePluginDocumentView(Internal) _createPlugin]
-+[WebNetscapePluginDocumentView setCurrentPluginView:]
--[WebNetscapePluginPackage pluginFuncs]
-_NPN_UserAgent
-__Z21pluginViewForInstanceP4_NPP
-+[WebNetscapePluginDocumentView currentPluginView]
--[WebNetscapePluginDocumentView(WebNPPCallbacks) userAgent]
-_NPN_GetValue
--[WebNetscapePluginDocumentView(WebNPPCallbacks) getVariable:value:]
-_NPN_SetValue
--[WebNetscapePluginDocumentView(WebNPPCallbacks) setVariable:value:]
-_NPN_InvalidateRect
--[WebNetscapePluginDocumentView(WebNPPCallbacks) invalidateRect:]
-__ZN29WebNetscapePluginEventHandler6createEP29WebNetscapePluginDocumentView
--[WebNetscapePluginDocumentView eventModel]
-__ZN35WebNetscapePluginEventHandlerCarbonC1EP29WebNetscapePluginDocumentView
-__ZN35WebNetscapePluginEventHandlerCarbonC2EP29WebNetscapePluginDocumentView
--[WebNetscapePluginDocumentView updateAndSetWindow]
--[WebNetscapePluginDocumentView saveAndSetNewPortState]
--[WebNetscapePluginDocumentView saveAndSetNewPortStateForUpdate:]
--[WebNetscapePluginDocumentView superviewsHaveSuperviews]
--[WebNetscapePluginDocumentView setWindowIfNecessary]
--[WebNetscapePluginDocumentView isNewWindowEqualToOldWindow]
--[WebNetscapePluginDocumentView willCallPlugInFunction]
--[WebNetscapePluginDocumentView didCallPlugInFunction]
--[WebNetscapePluginDocumentView restorePortState:]
--[WebNetscapePluginDocumentView windowFocusChanged:]
-__ZN35WebNetscapePluginEventHandlerCarbon18windowFocusChangedEb
-__ZL14getCarbonEventP11EventRecord
-__ZN35WebNetscapePluginEventHandlerCarbon9sendEventEP11EventRecord
--[WebNetscapePluginDocumentView sendEvent:isDrawRect:]
--[WebNetscapePluginDocumentView stopTimers]
--[WebBaseNetscapePluginView stopTimers]
-__ZN35WebNetscapePluginEventHandlerCarbon10stopTimersEv
--[WebNetscapePluginDocumentView startTimers]
--[WebBaseNetscapePluginView startTimers]
-__ZN35WebNetscapePluginEventHandlerCarbon11startTimersEb
--[WebNetscapePluginDocumentView loadStream]
--[WebNetscapePluginDocumentView(Internal) _shouldCancelSrcStream]
--[NSURL(WebNSURLExtras) _web_isEmpty]
--[WebNetscapePluginDocumentView(WebNPPCallbacks) loadRequest:inTarget:withNotifyData:sendNotification:]
-__ZN23WebNetscapePluginStreamC1EP12NSURLRequestP4_NPPbPv
-__ZN23WebNetscapePluginStreamC2EP12NSURLRequestP4_NPPbPv
-__ZN23WebNetscapePluginStream9setPluginEP4_NPP
--[WebBaseNetscapePluginView pluginPackage]
-__ZL7streamsv
-__ZN3WTF7HashMapIP9_NPStreamP4_NPPNS_7PtrHashIS2_EENS_10HashTraitsIS2_EENS7_IS4_EEE3addERKS2_RKS4_
-__ZN3WTF9HashTableIP9_NPStreamSt4pairIS2_P4_NPPENS_18PairFirstExtractorIS6_EENS_7PtrHashIS2_EENS_14PairHashTraitsINS_10HashTrai
-__ZN3WTF7HashSetINS_6RefPtrI23WebNetscapePluginStreamEENS_7PtrHashIS3_EENS_10HashTraitsIS3_EEE3addERKS3_
-__ZN3WTF9HashTableINS_6RefPtrI23WebNetscapePluginStreamEES3_NS_17IdentityExtractorIS3_EENS_7PtrHashIS3_EENS_10HashTraitsIS3_EES
-__ZN23WebNetscapePluginStream5startEv
-__ZN3WTF6VectorI6CGRectLm16EE6shrinkEm
--[WebNetscapePluginDocumentView drawRect:]
--[WebNetscapePluginDocumentView sendDrawRectEvent:]
-__ZN35WebNetscapePluginEventHandlerCarbon8drawRectEP9CGContextRK7_NSRect
-__ZN35WebNetscapePluginEventHandlerCarbon19nullEventTimerFiredEP16__CFRunLoopTimerPv
-__ZN35WebNetscapePluginEventHandlerCarbon13sendNullEventEv
-__ZN23WebNetscapePluginStream18didReceiveResponseEPN7WebCore26NetscapePlugInStreamLoaderERKNS0_16ResourceResponseE
-__ZN23WebNetscapePluginStream11startStreamEP5NSURLxP6NSDateP8NSStringP6NSData
-__ZNK23WebNetscapePluginStream15wantsAllStreamsEv
-__ZN23WebNetscapePluginStream14didReceiveDataEPN7WebCore26NetscapePlugInStreamLoaderEPKci
-__ZN23WebNetscapePluginStream11deliverDataEv
-__ZN23WebNetscapePluginStream16didFinishLoadingEPN7WebCore26NetscapePlugInStreamLoaderE
-__ZN23WebNetscapePluginStream23destroyStreamWithReasonEs
-__ZN23WebNetscapePluginStream13destroyStreamEv
--[WebNetscapePluginDocumentView disconnectStream:]
-__ZN23WebNetscapePluginStreamD0Ev
--[WebNetscapePluginDocumentView createPluginScriptableObject]
-_NPN_MemFree
-_NPN_PostURLNotify
--[WebNetscapePluginDocumentView(WebNPPCallbacks) postURLNotify:target:len:buf:file:notifyData:]
--[WebNetscapePluginDocumentView(WebNPPCallbacks) _postURL:target:len:buf:file:notifyData:sendNotification:allowHeaders:]
--[NSData(WebNSDataExtras) _web_startsWithBlankLine]
--[NSData(WebNSDataExtras) _web_locationAfterFirstBlankLine]
--[NSData(WebNSDataExtras) _webkit_parseRFC822HeaderFields]
--[NSString(WebNSDataExtrasInternal) _web_capitalizeRFC822HeaderFieldName]
-_NPN_GetURLNotify
--[WebNetscapePluginDocumentView(WebNPPCallbacks) getURLNotify:target:notifyData:]
-_NPN_GetURL
--[WebNetscapePluginDocumentView(WebNPPCallbacks) getURL:target:]
--[WebPluginRequest initWithRequest:frameName:notifyData:sendNotification:didStartFromUserGesture:]
--[WebNetscapePluginDocumentView(WebNPPCallbacks) loadPluginRequest:]
--[WebPluginRequest request]
--[WebPluginRequest frameName]
--[WebNetscapePluginDocumentView(WebNPPCallbacks) evaluateJavaScriptPluginRequest:]
--[WebPluginRequest isCurrentEventUserGesture]
--[WebPluginRequest sendNotification]
--[WebPluginRequest dealloc]
--[WebHistoryItem(WebPrivate) _getDailyVisitCounts:]
--[WebHistoryItem(WebPrivate) _getWeeklyVisitCounts:]
--[WebHistoryItem(WebPrivate) _lastVisitWasHTTPNonGet]
--[WebHistoryItem(WebPrivate) lastVisitWasFailure]
--[WebHistoryItem(WebPrivate) _redirectURLs]
--[WebView(WebIBActions) reload:]
--[WebFrame reload]
-__Z14CallUIDelegateP7WebViewP13objc_selectorP11objc_objectj
-__ZL12CallDelegateP7WebViewP11objc_objectP13objc_selectorS2_j
--[WebNetscapePluginDocumentView mouseEntered:]
-__ZN35WebNetscapePluginEventHandlerCarbon12mouseEnteredEP7NSEvent
-__ZL14getCarbonEventP11EventRecordP7NSEvent
-_WKConvertNSEventToCarbonEvent
--[WebNetscapePluginDocumentView handleMouseMoved:]
-__ZN35WebNetscapePluginEventHandlerCarbon10mouseMovedEP7NSEvent
--[WebBaseNetscapePluginView acceptsFirstResponder]
--[WebBaseNetscapePluginView becomeFirstResponder]
--[WebNetscapePluginDocumentView focusChanged]
-__ZN35WebNetscapePluginEventHandlerCarbon12focusChangedEb
-__ZN35WebNetscapePluginEventHandlerCarbon22installKeyEventHandlerEv
--[WebNetscapePluginDocumentView mouseDown:]
-__ZN35WebNetscapePluginEventHandlerCarbon9mouseDownEP7NSEvent
--[WebNetscapePluginDocumentView inputContext]
--[WebNetscapePluginDocumentView mouseUp:]
-__ZN35WebNetscapePluginEventHandlerCarbon7mouseUpEP7NSEvent
--[WebNetscapePluginDocumentView mouseExited:]
-__ZN35WebNetscapePluginEventHandlerCarbon11mouseExitedEP7NSEvent
--[WebNetscapePluginDocumentView mouseDragged:]
-__ZN35WebNetscapePluginEventHandlerCarbon12mouseDraggedEP7NSEvent
--[WebNetscapePluginDocumentView keyDown:]
-__ZN35WebNetscapePluginEventHandlerCarbon7keyDownEP7NSEvent
-_WKSendKeyEventToTSM
-__ZN35WebNetscapePluginEventHandlerCarbon15TSMEventHandlerEP25OpaqueEventHandlerCallRefP14OpaqueEventRefPv
--[WebNetscapePluginDocumentView keyUp:]
-__ZN35WebNetscapePluginEventHandlerCarbon5keyUpEP7NSEvent
--[WebNetscapePluginDocumentView flagsChanged:]
-__ZN35WebNetscapePluginEventHandlerCarbon12flagsChangedEP7NSEvent
--[WebBaseNetscapePluginView resignFirstResponder]
-__ZN35WebNetscapePluginEventHandlerCarbon21removeKeyEventHandlerEv
--[WebNetscapePluginDocumentView shouldStop]
--[WebNetscapePluginDocumentView destroyPlugin]
--[WebNetscapePluginDocumentView(Internal) _destroyPlugin]
--[WebNetscapePluginPackage close]
-__ZN35WebNetscapePluginEventHandlerCarbonD0Ev
--[WebNetscapePluginDocumentView dealloc]
--[WebNetscapePluginDocumentView fini]
--[WebNetscapePluginDocumentView .cxx_destruct]
-__ZL12CallDelegatePFP11objc_objectS0_P13objc_selectorzEP7WebViewS0_S2_S0_dS0_S0_
--[WebViewFactory imageTitleForFilename:width:height:]
--[WebHTMLRepresentation matchLabels:againstElement:]
--[WebHTMLRepresentation searchForLabels:beforeElement:]
-__ZN20WebFrameLoaderClient22createJavaAppletWidgetERKN7WebCore7IntSizeEPNS0_17HTMLAppletElementERKNS0_4KURLERKN3WTF6VectorINS0_
-__ZL14parameterValueRKN3WTF6VectorIN7WebCore6StringELm0EEES5_RKS2_
-__ZN7WebCore6Widget11handleEventEPNS_5EventE
-__ZN20WebFrameLoaderClient10javaAppletEP6NSView
--[WebPluginController webPlugInContainerShowStatus:]
-__ZN20WebFrameLoaderClient21fileDoesNotExistErrorERKN7WebCore16ResourceResponseE
-__ZN23WebNetscapePluginStream7didFailEPN7WebCore26NetscapePlugInStreamLoaderERKNS0_13ResourceErrorE
-__ZN23WebNetscapePluginStream22destroyStreamWithErrorEP7NSError
-__ZN23WebNetscapePluginStream14reasonForErrorEP7NSError
+__ZN6WebKit27NetscapePluginInstanceProxy14removeInstanceEPNS_13ProxyInstanceE
+__ZN3WTF9HashTableIPN6WebKit13ProxyInstanceES3_NS_17IdentityExtractorIS3_EENS_7PtrHashIS3_EENS_10HashTraitsIS3_EES9_E4findIS3_N
+__ZN3WTF9HashTableIPN6WebKit13ProxyInstanceES3_NS_17IdentityExtractorIS3_EENS_7PtrHashIS3_EENS_10HashTraitsIS3_EES9_E47removeAn
+__ZN3WTF9HashTableIPN6WebKit13ProxyInstanceES3_NS_17IdentityExtractorIS3_EENS_7PtrHashIS3_EENS_10HashTraitsIS3_EES9_E6removeEPS
+__ZN6WebKit13ProxyInstance10invalidateEv
+__WKPHNPObjectRelease
+__ZN7WebCore20StringSourceProviderD0Ev
+__ZN6WebKit18ProxyRuntimeObjectD1Ev
+__ZN6WebKit18ProxyRuntimeObjectD2Ev
+__ZN6WebKit18ProxyRuntimeMethodD1Ev
+__ZN3JSC13RuntimeMethodD2Ev
+_WKGetUserToBaseCTM
+-[WebView(WebIBActions) goBack:]
+-[WebView goBack]
+__ZNK20WebFrameLoaderClient21shouldGoToHistoryItemEPN7WebCore11HistoryItemE
+-[WebHistoryItem(WebPrivate) URL]
+__ZNK20WebFrameLoaderClient33dispatchDidChangeBackForwardIndexEv
+-[WebView(WebIBActions) goForward:]
+-[WebView goForward]
+__ZN20WebFrameLoaderClient36transitionToCommittedFromCachedFrameEPN7WebCore11CachedFrameE
+-[WebFrame loadAlternateHTMLString:baseURL:forUnreachableURL:]
+-[WebFrame _loadHTMLString:baseURL:unreachableURL:]
+-[WebFrame(WebInternal) _findFrameWithSelection]
+-[WebFrame(WebInternal) _hasSelection]
+__ZN20WebFrameLoaderClient19dispatchDidFailLoadERKN7WebCore13ResourceErrorE
+-[WebView(WebPrivate) _didFailLoadWithError:forFrame:]
+-[WebHTMLView keyUp:]
+-[WebHTMLView keyDown:]
+-[WebHTMLView(WebNSTextInputSupport) insertText:]
+__ZN3WTF6VectorIN7WebCore15KeypressCommandELm0EE14expandCapacityEmPKS2_
+__ZN3WTF6VectorIN7WebCore15KeypressCommandELm0EE14expandCapacityEm
+__ZN3WTF6VectorIN7WebCore15KeypressCommandELm0EE15reserveCapacityEm
+-[WebFrameView keyDown:]
+-[WebFrameView(WebPrivate) _isScrollable]
+-[WebDynamicScrollBarsView horizontalScrollingAllowed]
+-[WebDynamicScrollBarsView verticalScrollingAllowed]
+-[WebFrameView(WebPrivate) _largestScrollableChild]
+-[WebHTMLView(WebInternal) detachRootLayer]
+-[WebBaseNetscapePluginView viewWillMoveToHostWindow:]
+-[WebBaseNetscapePluginView viewDidMoveToHostWindow]
+__ZN20WebFrameLoaderClient38dispatchDidLoadResourceFromMemoryCacheEPN7WebCore14DocumentLoaderERKNS0_15ResourceRequestERKNS0_16R
+__Z24CallResourceLoadDelegatePFP11objc_objectS0_P13objc_selectorzEP7WebViewS2_S0_S0_lS0_
+__ZL32applyHostNameFunctionToURLStringP8NSStringPFvS0_8_NSRangePvES2_
+__ZL29collectRangesThatNeedEncodingP8NSString8_NSRangePv
+__ZL28collectRangesThatNeedMappingP8NSString8_NSRangePva
+-[NSString(WebNSURLExtras) _web_hostNameNeedsEncodingWithRange:]
+__ZL8hexDigiti
+-[NSEvent(WebExtras) _web_isOptionTabKeyEvent]
+-[NSString(WebNSURLExtras) _web_isUserVisibleURL]
++[WebStringTruncator rightTruncateString:toWidth:withFont:]
+__ZN20WebFrameLoaderClient41dispatchDidReceiveAuthenticationChallengeEPN7WebCore14DocumentLoaderEmRKNS0_23AuthenticationChallen
++[WebPanelAuthenticationHandler sharedHandler]
+-[WebPanelAuthenticationHandler init]
+-[WebPanelAuthenticationHandler startAuthentication:window:]
+-[WebAuthenticationPanel initWithCallback:selector:]
+-[NSMutableDictionary(WebNSDictionaryExtras) _webkit_setObject:forUncopiedKey:]
+-[WebAuthenticationPanel runAsSheetOnWindow:withChallenge:]
+-[WebAuthenticationPanel setUpForChallenge:]
+-[WebAuthenticationPanel loadNib]
+-[NSControl(WebExtras) sizeToFitAndAdjustWindowHeight]
+-[NonBlockingPanel _blocksActionWhenModal:]
+-[WebAuthenticationPanel logIn:]
+-[WebAuthenticationPanel sheetDidEnd:returnCode:contextInfo:]
+-[WebPanelAuthenticationHandler _authenticationDoneWithChallenge:result:]
+-[WebAuthenticationPanel dealloc]
+-[WebPanelAuthenticationHandler tryNextChallengeForWindow:]
+-[WebView(WebPrivate) _setIncludesFlattenedCompositingLayersWhenDrawingToBitmap:]
+-[WebHTMLView(WebPrivate) _compositingLayersHostingView]
+-[WebHTMLView mouseDragged:]
+-[WebDynamicScrollBarsView(WebInternal) allowsHorizontalScrolling]
+__ZN15WebChromeClient11scaleFactorEv
+__ZN15WebChromeClient13setWindowRectERKN7WebCore9FloatRectE
+__ZN15WebEditorClient33isSelectTrailingWhitespaceEnabledEv
+-[WebView(WebPrivate) isSelectTrailingWhitespaceEnabled]
__ZN13WebDragClient24declareAndWriteDragImageEP12NSPasteboardP10DOMElementP5NSURLP8NSStringPN7WebCore5FrameE
__ZL14getTopHTMLViewPN7WebCore5FrameE
+-[DOMNode(WebDOMNodeOperations) webArchive]
+-[WebArchive(WebInternal) _initWithCoreLegacyWebArchive:]
++[WebArchivePrivate initialize]
+-[WebArchivePrivate .cxx_construct]
+-[WebArchivePrivate initWithCoreArchive:]
-[NSPasteboard(WebExtras) _web_declareAndWriteDragImageForElement:URL:title:archive:source:]
+[NSPasteboard(WebExtras) _web_writableTypesForImageIncludingArchive:]
__ZL33_writableTypesForImageWithArchivev
@@ -1759,214 +1526,465 @@ __ZL36_writableTypesForImageWithoutArchivev
__ZL18promisedDataClientv
__ZN7WebCore20CachedResourceClient12imageChangedEPNS_11CachedImageEPKNS_7IntRectE
__ZN7WebCore20CachedResourceClient14notifyFinishedEPNS_14CachedResourceE
+-[WebArchive data]
+-[WebArchivePrivate coreArchive]
__ZN13WebDragClient27willPerformDragSourceActionEN7WebCore16DragSourceActionERKNS0_8IntPointEPNS0_9ClipboardE
-[WebDefaultUIDelegate webView:willPerformDragSourceAction:fromPoint:withPasteboard:]
__ZN13WebDragClient9startDragEN3WTF9RetainPtrI7NSImageEERKN7WebCore8IntPointES7_PNS4_9ClipboardEPNS4_5FrameEb
-[WebHTMLView(WebInternal) _mouseDownEvent]
-[WebHTMLView dragImage:at:offset:event:pasteboard:source:slideBack:]
-[WebHTMLView draggingSourceOperationMaskForLocal:]
--[WebHTMLView draggedImage:movedTo:]
--[WebFrame(WebInternal) _dragSourceMovedTo:]
+-[WebView _hitTest:dragTypes:]
+-[WebView draggingEntered:]
+-[WebView documentViewAtWindowPoint:]
+-[WebView(WebFileInternal) _frameViewAtWindowPoint:]
+__ZN13WebDragClient17actionMaskForDragEPN7WebCore8DragDataE
+-[WebDefaultUIDelegate webView:dragDestinationActionMaskForDraggingInfo:]
+__ZNK19WebPasteboardHelper25insertablePasteboardTypesEv
+-[WebView draggingUpdated:]
+-[WebView _shouldAutoscrollForDraggingInfo:]
-[WebView draggingExited:]
-[WebHTMLView draggedImage:endedAt:operation:]
-[WebFrame(WebInternal) _dragSourceEndedAt:operation:]
--[WebNetscapePluginDocumentView setLayer:]
-__ZN34WebNetscapePluginEventHandlerCocoaC1EP29WebNetscapePluginDocumentView
-__ZN34WebNetscapePluginEventHandlerCocoaC2EP29WebNetscapePluginDocumentView
-__ZN34WebNetscapePluginEventHandlerCocoa18windowFocusChangedEb
-__ZN34WebNetscapePluginEventHandlerCocoa9sendEventEP13_NPCocoaEvent
-__ZN29WebNetscapePluginEventHandler10stopTimersEv
-__ZN29WebNetscapePluginEventHandler11startTimersEb
-_NPN_ConvertPoint
--[WebBaseNetscapePluginView convertFromX:andY:space:toX:andY:space:]
-__Z26browserContainerCheckFuncsv
-_WKN_CheckIfAllowedToLoadURL
--[WebNetscapePluginDocumentView checkIfAllowedToLoadURL:frame:callbackFunc:context:]
--[WebNetscapeContainerCheckContextInfo initWithCheckRequestID:callbackFunc:context:]
-+[WebPluginContainerCheck checkWithRequest:target:resultObject:selector:controller:contextInfo:]
--[WebPluginContainerCheck initWithRequest:target:resultObject:selector:controller:contextInfo:]
--[WebPluginContainerCheck start]
--[WebPluginContainerCheck _isForbiddenFileLoad]
--[WebPluginContainerCheck _askPolicyDelegate]
--[WebPluginContainerCheck _actionInformationWithURL:]
--[WebPolicyDecisionListener _initWithTarget:action:]
--[WebPolicyDecisionListenerPrivate initWithTarget:action:]
--[WebPolicyDecisionListener use]
--[WebPolicyDecisionListener _usePolicy:]
--[WebPluginContainerCheck _continueWithPolicy:]
--[WebNetscapePluginDocumentView _containerCheckResult:contextInfo:]
--[WebNetscapeContainerCheckContextInfo callback]
--[WebNetscapeContainerCheckContextInfo context]
--[WebNetscapeContainerCheckContextInfo checkRequestID]
--[WebNetscapePluginDocumentView plugin]
--[WebNetscapePluginDocumentView _webPluginContainerCancelCheckIfAllowedToLoadRequest:]
--[WebPluginContainerCheck contextInfo]
--[WebNetscapePluginDocumentView cancelCheckIfAllowedToLoadURL:]
--[WebPluginContainerCheck cancel]
--[WebPolicyDecisionListener _invalidate]
--[WebPolicyDecisionListener dealloc]
--[WebPolicyDecisionListenerPrivate dealloc]
--[WebPluginContainerCheck dealloc]
-_NPN_MemAlloc
-__ZN34WebNetscapePluginEventHandlerCocoaD0Ev
+-[WebArchive dealloc]
+-[WebArchivePrivate dealloc]
+-[WebArchivePrivate .cxx_destruct]
+__ZN3WTF6VectorINS_6RefPtrIN7WebCore15ArchiveResourceEEELm0EE6shrinkEm
+__ZN7WebCore17FrameLoaderClient29dispatchDidNavigateWithinPageEv
+__ZN20WebFrameLoaderClient35dispatchDidChangeLocationWithinPageEv
+__ZN20WebFrameLoaderClient13didFinishLoadEv
+-[WebPluginDatabase destroyAllPluginInstanceViews]
+-[WebPluginDatabase dealloc]
+__ZN6WebKit26HostedNetscapePluginStream10cancelLoadEs
+__ZNK6WebKit26HostedNetscapePluginStream14errorForReasonEs
+__ZN6WebKit26HostedNetscapePluginStream10cancelLoadEP7NSError
+__ZN6WebKit26HostedNetscapePluginStream7didFailEPN7WebCore26NetscapePlugInStreamLoaderERKNS1_13ResourceErrorE
+__ZN6WebKit26HostedNetscapePluginStream14reasonForErrorEP7NSError
+__WKPHStreamDidFail
+-[WebHTMLView(WebPrivate) pasteboard:provideDataForType:]
+-[WebHTMLView(WebInternal) promisedDragTIFFDataSource]
+-[WebArchive initWithData:]
+-[WebArchivePrivate init]
+-[WebArchivePrivate setCoreArchive:]
+-[NSPasteboard(WebExtras) _web_writePromisedRTFDFromArchive:containsImage:]
+-[WebArchive subresources]
+-[WebResource(WebResourceInternal) _initWithCoreResource:]
++[WebResourcePrivate initialize]
+-[WebResourcePrivate initWithCoreResource:]
+-[WebArchive mainResource]
+-[WebResource MIMEType]
+-[WebResource(WebResourcePrivate) _fileWrapperRepresentation]
+-[WebResource data]
+-[WebResource(WebResourcePrivate) _suggestedFilename]
+-[NSPasteboard(WebExtras) _web_writeFileWrapperAsRTFDAttachment:]
-[WebView _pluginForExtension:]
-[WebPluginDatabase pluginForExtension:]
-[WebBasePluginPackage extensionEnumerator]
-[WebBasePluginPackage MIMETypeForExtension:]
-__ZN34WebNetscapePluginEventHandlerCocoa10mouseMovedEP7NSEvent
-__ZN34WebNetscapePluginEventHandlerCocoa14sendMouseEventEP7NSEvent16NPCocoaEventType
-__ZN34WebNetscapePluginEventHandlerCocoa11mouseExitedEP7NSEvent
+__ZN20WebFrameLoaderClient22createJavaAppletWidgetERKN7WebCore7IntSizeEPNS0_17HTMLAppletElementERKNS0_4KURLERKN3WTF6VectorINS0_
+__ZL14parameterValueRKN3WTF6VectorIN7WebCore6StringELm0EEES5_RKS2_
+__ZL10pluginViewP8WebFrameP16WebPluginPackageP7NSArrayS4_P5NSURLP10DOMElementa
+-[WebPluginPackage viewFactory]
++[WebPluginController plugInViewWithArguments:fromPluginPackage:]
+-[WebPluginController addPlugin:]
+-[WebPluginController webView]
+-[WebPluginController webFrame]
+-[WebView(WebPrivate) defersCallbacks]
+__ZL13isKindOfClassP11objc_objectP8NSString
+__ZN20WebFrameLoaderClient10javaAppletEP6NSView
+-[WebPluginController webPlugInContainerShowStatus:]
+-[WebPluginController stopOnePlugin:]
+-[WebPluginController destroyPlugin:]
+-[WebPluginController destroyOnePlugin:]
+-[WebViewFactory fileButtonChooseFileLabel]
+-[WebViewFactory fileButtonNoFileSelectedLabel]
+-[NSString(WebNSURLExtras) _webkit_stringByReplacingValidPercentEscapes]
+-[WebFrame findFrameNamed:]
+__ZN6WebKit27NetscapePluginInstanceProxy18evaluateJavaScriptEPNS0_13PluginRequestE
+__ZN20WebFrameLoaderClient27registerForIconNotificationEb
+-[WebView(WebViewInternal) _receivedIconChangedNotification:]
+-[WebViewFactory imageTitleForFilename:width:height:]
+-[NSView(WebExtras) _web_dragShouldBeginFromMouseDown:withExpiration:]
+-[WebView(WebPendingPublic) markAllMatchesForText:caseSensitive:highlight:limit:]
+-[WebHTMLView(WebDocumentInternalProtocols) setMarkedTextMatchesAreHighlighted:]
+-[WebHTMLView(WebDocumentInternalProtocols) markAllMatchesForText:caseSensitive:limit:]
+-[WebView(WebPendingPublic) unmarkAllTextMatches]
+-[WebHTMLView(WebDocumentInternalProtocols) unmarkAllTextMatches]
+__ZL14incrementFrameP8WebFrameaa
++[NSPasteboard(WebExtras) _web_setFindPasteboardString:withOwner:]
+-[WebFrame globalContext]
+-[NSData(WebNSDataExtras) _web_startsWithBlankLine]
+-[NSData(WebNSDataExtras) _web_locationAfterFirstBlankLine]
+-[NSData(WebNSDataExtras) _webkit_parseRFC822HeaderFields]
+-[NSString(WebNSDataExtrasInternal) _web_capitalizeRFC822HeaderFieldName]
+-[NSFileManager(WebNSFileManagerExtras) _webkit_pathWithUniqueFilenameForPath:]
+-[NSString(WebKitExtras) _webkit_filenameByFixingIllegalCharacters]
+_fileExists
+__ZNK6WebKit13ProxyInstance27supportsInvokeDefaultMethodEv
+__WKPHNPObjectHasInvokeDefaultMethod
+__ZN20WebFrameLoaderClient20redirectDataToPluginEPN7WebCore6WidgetE
+-[WebHTMLRepresentation _redirectDataToManualLoader:forPluginView:]
+-[WebHostedNetscapePluginView pluginView:receivedResponse:]
+__ZN6WebKit26HostedNetscapePluginStreamC1EPNS_27NetscapePluginInstanceProxyEPN7WebCore11FrameLoaderE
+__ZN6WebKit26HostedNetscapePluginStreamC2EPNS_27NetscapePluginInstanceProxyEPN7WebCore11FrameLoaderE
+__ZN6WebKit27NetscapePluginInstanceProxy15setManualStreamEN3WTF10PassRefPtrINS_26HostedNetscapePluginStreamEEE
+__ZN6WebKit26HostedNetscapePluginStream23startStreamWithResponseEP13NSURLResponse
+-[WebHostedNetscapePluginView pluginView:receivedData:]
+-[WebHostedNetscapePluginView pluginViewFinishedLoading:]
+_WKDrawFocusRing
+-[WebViewFactory submitButtonDefaultLabel]
+__ZN15WebChromeClient36requestGeolocationPermissionForFrameEPN7WebCore5FrameEPNS0_11GeolocationE
+-[WebGeolocationPolicyListener .cxx_construct]
+-[WebGeolocationPolicyListener initWithGeolocation:]
+__Z14CallUIDelegateP7WebViewP13objc_selectorP11objc_objectS4_S4_
+-[WebSecurityOrigin port]
+-[WebSecurityOrigin host]
+-[WebSecurityOrigin protocol]
+-[WebGeolocationPolicyListener deny]
+-[WebGeolocationPolicyListener .cxx_destruct]
+-[WebHTMLRepresentation receivedError:withDataSource:]
+__ZN20WebFrameLoaderClient18cannotShowURLErrorERKN7WebCore15ResourceRequestE
+__ZN15WebChromeClient5focusEv
+__ZN20WebFrameLoaderClient21fileDoesNotExistErrorERKN7WebCore16ResourceResponseE
+__ZN6WebKit27NetscapePluginInstanceProxy14LocalObjectMap6retainEPN3JSC8JSObjectE
+__ZN6WebKit27NetscapePluginInstanceProxy14LocalObjectMap7releaseEPN3JSC8JSObjectE
+__XPCConvertPoint
+_WKPCConvertPoint
+__ZN6WebKit27NetscapePluginInstanceProxy12convertPointEdd17NPCoordinateSpaceRdS2_S1_
+-[WebBaseNetscapePluginView convertFromX:andY:space:toX:andY:space:]
+__ZN20NetscapePluginWidget11handleEventEPN7WebCore5EventE
+-[WebHostedNetscapePluginView handleMouseEntered:]
+__ZN6WebKit27NetscapePluginInstanceProxy10mouseEventEP6NSViewP7NSEvent16NPCocoaEventType
+__WKPHPluginInstanceMouseEvent
+-[WebHostedNetscapePluginView handleMouseMoved:]
+_WKGetFontInLanguageForCharacter
+__XPCInvalidateRect
+_WKPCInvalidateRect
+__ZN6WebKit27NetscapePluginInstanceProxy14invalidateRectEdddd
+__WKPHPluginInstanceDidDraw
+___WKPCInvalidateRect_block_invoke_2
+-[WebPDFRepresentation setDataSource:]
+-[WebPDFView initWithFrame:]
++[WebPDFView(FileInternal) _PDFPreviewViewClass]
++[WebPDFView PDFKitBundle]
+-[PDFPrefUpdatingProxy initWithView:]
+-[WebPDFView setNextKeyView:]
+-[WebPDFView viewWillMoveToWindow:]
+-[WebPDFView viewDidMoveToWindow]
+-[WebPDFView(FileInternal) _trackFirstResponder]
+-[WebPDFView(FileInternal) _clipViewForPDFDocumentView]
+-[WebPDFView becomeFirstResponder]
+-[WebPDFView setDataSource:]
+-[WebPDFRepresentation title]
+-[WebPDFView acceptsFirstResponder]
+-[WebPDFRepresentation receivedData:withDataSource:]
+-[WebPDFView dataSourceUpdated:]
+-[WebPDFView hitTest:]
+-[WebPDFRepresentation receivedError:withDataSource:]
+-[WebPDFView setNeedsLayout:]
+-[WebPDFView layout]
+-[WebPDFView selectionView]
+-[WebPDFView dealloc]
+__ZNK7WebCore20StringSourceProvider8getRangeEii
+__XPCResolveURL
+_WKPCResolveURL
+__ZN6WebKit27NetscapePluginInstanceProxy10resolveURLEPKcS2_RPcRj
+-[WebBaseNetscapePluginView resolvedURLStringForURL:target:]
+__ZN3WTF6VectorIcLm0EE6shrinkEm
+__XPCGetCookies
+_WKPCGetCookies
+__ZN6WebKit27NetscapePluginInstanceProxy10getCookiesEPcjRS1_Rj
+-[WebHostedNetscapePluginView setLayer:]
+__ZN3WTF7HashMapINS_6RefPtrIN7WebCore10StringImplEEEPN3JSC8Bindings5FieldENS2_10StringHashENS_10HashTraitsIS4_EENSA_IS8_EEE3add
+__ZN3WTF9HashTableINS_6RefPtrIN7WebCore10StringImplEEESt4pairIS4_PN3JSC8Bindings5FieldEENS_18PairFirstExtractorISA_EENS2_10Stri
+-[WebViewFactory refreshPlugins]
+__ZN15WebChromeClient27invalidateContentsAndWindowERKN7WebCore7IntRectEb
+-[WebFramePolicyListener invalidate]
+__ZN20WebFrameLoaderClient29interruptForPolicyChangeErrorERKN7WebCore15ResourceRequestE
+-[WebFramePolicyListener ignore]
+-[WebHTMLView(WebNSTextInputSupport) hasMarkedText]
+__ZN15WebEditorClient16shouldInsertTextERKN7WebCore6StringEPNS0_5RangeENS0_18EditorInsertActionE
+-[WebDefaultEditingDelegate webView:shouldInsertText:replacingDOMRange:givenAction:]
+__ZN15WebEditorClient24textFieldDidBeginEditingEPN7WebCore7ElementE
+__ZN15WebEditorClient24textDidChangeInTextFieldEPN7WebCore7ElementE
+-[WebHTMLRepresentation formForElement:]
+__ZN15WebEditorClient22registerCommandForUndoEN3WTF10PassRefPtrIN7WebCore11EditCommandEEE
+__ZN15WebEditorClient28registerCommandForUndoOrRedoEN3WTF10PassRefPtrIN7WebCore11EditCommandEEEb
+-[WebView(WebViewEditing) undoManager]
++[WebEditCommand initialize]
++[WebEditCommand commandWithEditCommand:]
+-[WebEditCommand .cxx_construct]
+-[WebEditCommand initWithEditCommand:]
+__ZN15WebEditorClient24respondToChangedContentsEv
+__ZN15WebEditorClient35isAutomaticQuoteSubstitutionEnabledEv
+__ZN15WebEditorClient31isAutomaticLinkDetectionEnabledEv
+__ZN15WebEditorClient34isAutomaticDashSubstitutionEnabledEv
+__ZN15WebEditorClient33isAutomaticTextReplacementEnabledEv
+__ZN15WebEditorClient36isAutomaticSpellingCorrectionEnabledEv
+__ZN15WebEditorClient20checkTextOfParagraphEPKtiyRN3WTF6VectorIN7WebCore18TextCheckingResultELm0EEE
+__ZN15WebEditorClient23spellCheckerDocumentTagEv
+-[WebView(WebViewEditing) spellCheckerDocumentTag]
+__ZN3WTF6VectorIN7WebCore18TextCheckingResultELm0EE14expandCapacityEmPKS2_
+__ZN3WTF6VectorIN7WebCore18TextCheckingResultELm0EE14expandCapacityEm
+__ZN3WTF6VectorIN7WebCore18TextCheckingResultELm0EE15reserveCapacityEm
+__ZN7WebCore18TextCheckingResultC2ERKS0_
+__ZN3WTF6VectorIN7WebCore13GrammarDetailELm0EEC1ERKS3_
+__ZN3WTF6VectorIN7WebCore13GrammarDetailELm0EEC2ERKS3_
+__ZN7WebCore18TextCheckingResultD2Ev
+_WKSetPatternPhaseInUserSpace
+__ZN15WebChromeClient13willPopUpMenuEP6NSMenu
+_WKPopupMenu
__ZN15WebChromeClient12createWindowEPN7WebCore5FrameERKNS0_16FrameLoadRequestERKNS0_14WindowFeaturesE
__Z14CallUIDelegateP7WebViewP13objc_selectorP11objc_objectS4_
-__ZL12CallDelegateP7WebViewP11objc_objectP13objc_selectorS2_S2_
+__ZN6WebKit25NetscapePluginHostManager15didCreateWindowEv
__ZN15WebChromeClient18setToolbarsVisibleEb
__ZN15WebChromeClient19setStatusbarVisibleEb
__ZN15WebChromeClient20setScrollbarsVisibleEb
+-[WebFrameView setAllowsScrolling:]
__ZN15WebChromeClient17setMenubarVisibleEb
__ZN15WebChromeClient12setResizableEb
__ZN15WebChromeClient8pageRectEv
-__ZN15WebChromeClient13setWindowRectERKN7WebCore9FloatRectE
__ZN15WebChromeClient4showEv
-__ZN34WebNetscapePluginEventHandlerCocoa12mouseEnteredEP7NSEvent
-__ZN34WebNetscapePluginEventHandlerCocoa12focusChangedEb
-__ZN34WebNetscapePluginEventHandlerCocoa22installKeyEventHandlerEv
-__ZN34WebNetscapePluginEventHandlerCocoa9mouseDownEP7NSEvent
-__ZN34WebNetscapePluginEventHandlerCocoa12mouseDraggedEP7NSEvent
-__ZN34WebNetscapePluginEventHandlerCocoa7mouseUpEP7NSEvent
+-[WebHostedNetscapePluginView handleMouseExited:]
+-[WebEditCommand dealloc]
+-[WebEditCommand .cxx_destruct]
+__ZN15WebChromeClient15closeWindowSoonEv
+-[WebView(WebPrivate) _closeWindow]
-[WebBaseNetscapePluginView windowWillClose:]
--[WebFrameView keyDown:]
--[WebFrameView(WebFrameViewFileInternal) _web_frame]
--[WebNetscapePluginDocumentView scrollWheel:]
-__ZN35WebNetscapePluginEventHandlerCarbon11scrollWheelEP7NSEvent
-__ZN3WTF6VectorINS_6RefPtrI23WebNetscapePluginStreamEELm0EE14expandCapacityEm
-__ZN3WTF6VectorINS_6RefPtrI23WebNetscapePluginStreamEELm0EE15reserveCapacityEm
-__ZN23WebNetscapePluginStream4stopEv
-__ZN23WebNetscapePluginStream35cancelLoadAndDestroyStreamWithErrorEP7NSError
-__ZN23WebNetscapePluginStream19cancelLoadWithErrorEP7NSError
-__ZN3WTF6VectorINS_6RefPtrI23WebNetscapePluginStreamEELm0EE6shrinkEm
--[WebHTMLView(WebPrivate) pasteboard:provideDataForType:]
--[WebHTMLView(WebInternal) promisedDragTIFFDataSource]
--[WebArchive initWithData:]
--[WebArchivePrivate init]
--[WebArchivePrivate setCoreArchive:]
--[NSPasteboard(WebExtras) _web_writePromisedRTFDFromArchive:containsImage:]
--[WebResource(WebResourcePrivate) _fileWrapperRepresentation]
--[WebResource(WebResourcePrivate) _suggestedFilename]
--[NSPasteboard(WebExtras) _web_writeFileWrapperAsRTFDAttachment:]
-__ZN15WebChromeClient16statusbarVisibleEv
-__Z30CallUIDelegateReturningBooleanaP7WebViewP13objc_selector
--[WebIconDatabase releaseIconForURL:]
+__Z32CallFormDelegateReturningBooleanaP7WebViewP13objc_selectorP11objc_objectS2_S4_
+__ZN20WebFrameLoaderClient27dispatchWillSendSubmitEventEPN7WebCore15HTMLFormElementE
+-[WebHTMLRepresentation matchLabels:againstElement:]
+-[WebHTMLRepresentation searchForLabels:beforeElement:resultDistance:resultIsInCellAbove:]
+-[WebHTMLRepresentation elementWithName:inForm:]
+__ZN15WebChromeClient18makeFirstResponderEP11NSResponder
+-[WebView(WebPrivate) _pushPerformingProgrammaticFocus]
+-[WebView(WebPrivate) _popPerformingProgrammaticFocus]
+__ZN20WebFrameLoaderClient38dispatchDecidePolicyForNewWindowActionEMN7WebCore13PolicyCheckerEFvNS0_12PolicyActionEERKNS0_16Navi
+__ZN20WebFrameLoaderClient18dispatchCreatePageEv
+__ZN20WebFrameLoaderClient12dispatchShowEv
+__ZN15WebEditorClient24smartInsertDeleteEnabledEv
+__ZN15WebEditorClient17shouldDeleteRangeEPN7WebCore5RangeE
+-[WebDefaultEditingDelegate webView:shouldDeleteDOMRange:]
+__ZN15WebEditorClient28textWillBeDeletedInTextFieldEPN7WebCore7ElementE
+__ZNK15WebChromeClient11tabsToLinksEv
+-[WebPreferences tabsToLinks]
+__ZN15WebChromeClient12canTakeFocusEN7WebCore14FocusDirectionE
+__ZN15WebChromeClient9takeFocusEN7WebCore14FocusDirectionE
+-[WebView(WebViewInternal) _becomingFirstResponderFromOutside]
+-[WebBackForwardList forwardItem]
+-[WebBackForwardList backItem]
+-[WebView(WebViewEventHandling) mouseUp:]
+-[NSView(WebExtras) _webView]
+__ZN15WebChromeClient7unfocusEv
+-[WebDefaultUIDelegate webViewUnfocus:]
+__ZN15WebChromeClient14keyboardUIModeEv
+-[WebView(WebViewInternal) _keyboardUIMode]
+-[WebView(WebViewInternal) _retrieveKeyboardUIModeFromPreferences:]
+-[WebBaseNetscapePluginView acceptsFirstResponder]
+-[WebBaseNetscapePluginView becomeFirstResponder]
+-[WebHostedNetscapePluginView focusChanged]
+__ZN6WebKit27NetscapePluginInstanceProxy12focusChangedEb
+__WKPHPluginInstanceFocusChanged
+-[WebHostedNetscapePluginView mouseDown:]
+-[WebHostedNetscapePluginView mouseUp:]
+-[WebHostedNetscapePluginView mouseDragged:]
+-[WebBaseNetscapePluginView resignFirstResponder]
+-[WebView(WebPrivate) _clearMainFrameName]
+-[WebViewFactory contextMenuItemTagOpenLink]
+-[WebViewFactory contextMenuItemTagOpenLinkInNewWindow]
+-[WebViewFactory contextMenuItemTagDownloadLinkToDisk]
+-[WebViewFactory contextMenuItemTagCopyLinkToClipboard]
+-[WebViewFactory contextMenuItemTagOpenImageInNewWindow]
+-[WebViewFactory contextMenuItemTagDownloadImageToDisk]
+-[WebViewFactory contextMenuItemTagCopyImageToClipboard]
+-[WebViewFactory contextMenuItemTagSearchInSpotlight]
+-[WebViewFactory contextMenuItemTagLookUpInDictionary]
+-[WebViewFactory contextMenuItemTagSearchWeb]
+-[WebViewFactory contextMenuItemTagCopy]
+-[WebViewFactory contextMenuItemTagGoBack]
+-[WebViewFactory contextMenuItemTagGoForward]
+-[WebViewFactory contextMenuItemTagStop]
+-[WebViewFactory contextMenuItemTagReload]
+-[WebViewFactory contextMenuItemTagOpenFrameInNewWindow]
+-[WebViewFactory contextMenuItemTagNoGuessesFound]
+-[WebViewFactory contextMenuItemTagIgnoreSpelling]
+-[WebViewFactory contextMenuItemTagLearnSpelling]
+-[WebViewFactory contextMenuItemTagIgnoreGrammar]
+-[WebViewFactory contextMenuItemTagCut]
+-[WebViewFactory contextMenuItemTagPaste]
+__ZN20WebContextMenuClient29getCustomMenuFromDefaultItemsEPN7WebCore11ContextMenuE
+__ZL19isPreVersion3Clientv
+__ZL26fixMenusToSendToOldClientsP14NSMutableArray
+__ZL28isPreInspectElementTagClientv
+-[WebElementDictionary _absoluteImageURL]
+-[WebFramePolicyListener download]
+__ZN20WebFrameLoaderClient8downloadEPN7WebCore14ResourceHandleERKNS0_15ResourceRequestES5_RKNS0_16ResourceResponseE
+-[WebDownload _initWithLoadingConnection:request:response:delegate:proxy:]
+-[WebDownload _setRealDelegate:]
+-[WebDownloadInternal setRealDelegate:]
+-[WebDownload init]
+-[WebDownloadInternal respondsToSelector:]
+-[WebDownloadInternal downloadDidBegin:]
+-[WebDownloadInternal download:didReceiveResponse:]
+__ZNK20WebFrameLoaderClient25setOriginalURLForDownloadEP11WebDownloadRKN7WebCore15ResourceRequestE
+-[WebDownloadInternal download:didReceiveDataOfLength:]
+-[WebDownloadInternal download:decideDestinationWithSuggestedFilename:]
+-[NSFileManager(WebNSFileManagerExtras) _webkit_setMetadataURL:referrer:atPath:]
+-[NSURL(WebNSURLExtras) _web_URLByRemovingUserInfo]
+-[NSURL(WebNSURLExtras) _web_URLByRemovingComponentAndSubsequentCharacter:]
+_setMetaData
+_WKSetMetadataURL
+-[WebDownloadInternal download:didCreateDestination:]
+-[WebDownloadInternal downloadDidFinish:]
+-[WebDownload dealloc]
+-[WebDownloadInternal dealloc]
+-[WebPDFRepresentation finishedLoadingWithDataSource:]
++[WebPDFRepresentation PDFDocumentClass]
+-[WebPDFView setPDFDocument:]
+-[WebPDFView(FileInternal) _scaleOrDisplayModeOrPageChanged:]
+-[WebPDFView(FileInternal) _applyPDFDefaults]
+-[WebPreferences(WebPrivate) PDFScaleFactor]
+-[WebPreferences _floatValueForKey:]
+-[WebPreferences(WebPrivate) PDFDisplayMode]
+__Z23allScriptsInPDFDocumentP11PDFDocument
+-[WebPDFView PDFDocument]
+__ZN15WebChromeClient21exceededDatabaseQuotaEPN7WebCore5FrameERKNS0_6StringE
+-[WebSecurityOrigin quota]
+-[WebDatabaseManager detailsForDatabase:withOrigin:]
+-[WebSecurityOrigin(WebInternal) _core]
+-[WebSecurityOrigin setQuota:]
+__ZN24WebDatabaseTrackerClient23dispatchDidModifyOriginEPN7WebCore14SecurityOriginE
+__ZN24WebDatabaseTrackerClient25dispatchDidModifyDatabaseEPN7WebCore14SecurityOriginERKNS0_6StringE
++[WebIconDatabase(WebPrivate) _checkIntegrityBeforeOpening]
+-[WebPreferences(WebPrivate) setAllowUniversalAccessFromFileURLs:]
+-[WebPreferences(WebPrivate) setAllowFileAccessFromFileURLs:]
+-[WebPreferences setStandardFontFamily:]
+-[WebPreferences _setStringValue:forKey:]
+-[WebPreferences setFixedFontFamily:]
-[WebPreferences setSerifFontFamily:]
-[WebPreferences setSansSerifFontFamily:]
-[WebPreferences setCursiveFontFamily:]
-[WebPreferences setFantasyFontFamily:]
+-[WebPreferences setDefaultFontSize:]
+-[WebPreferences setDefaultFixedFontSize:]
+-[WebPreferences(WebPrivate) setEditableLinkBehavior:]
-[WebPreferences setTabsToLinks:]
+-[WebPreferences setShouldPrintBackgrounds:]
+-[WebPreferences(WebPrivate) setXSSAuditorEnabled:]
+-[WebPreferences(WebPrivate) setExperimentalNotificationsEnabled:]
+-[WebPreferences(WebPrivate) setPluginAllowedRunTime:]
+-[WebPreferences(WebPrivate) setAuthorAndUserStylesEnabled:]
+-[WebPreferences(WebPrivate) setJavaScriptCanAccessClipboard:]
+-[WebPreferences(WebPrivate) setOfflineWebApplicationCacheEnabled:]
+-[WebPreferences(WebPrivate) setDeveloperExtrasEnabled:]
+-[WebPreferences setLoadsImagesAutomatically:]
+-[WebPreferences(WebPrivate) setFrameFlatteningEnabled:]
+-[WebPreferences setUserStyleSheetEnabled:]
-[WebPreferences setUsesPageCache:]
+-[WebPreferences(WebPrivate) setAcceleratedCompositingEnabled:]
+-[WebPreferences(WebPrivate) setWebGLEnabled:]
+[WebPluginDatabase setAdditionalWebPlugInPaths:]
--[WebHistory removeAllItems]
--[WebHistoryPrivate removeAllItems]
-+[WebCache empty]
--[WebBackForwardList pageCacheSize]
--[WebBackForwardList setPageCacheSize:]
--[WebView(WebPrivate) setUsesPageCache:]
--[WebIconDatabase(WebPendingPublic) removeAllIcons]
-__ZN21WebIconDatabaseClient25dispatchDidRemoveAllIconsEv
--[WebIconDatabase(WebInternal) _sendDidRemoveAllIconsNotification]
--[WebView(WebPendingPublic) setMediaVolume:]
--[WebView(WebDebugBinding) addObserver:forKeyPath:options:context:]
--[WebView(WebPrivate) setObservationInfo:]
-+[WebView(WebPrivate) automaticallyNotifiesObserversForKey:]
+-[WebDefaultUIDelegate webView:didDrawRect:]
+-[WebView(WebPrivate) _setPostsAcceleratedCompositingNotifications:]
-[WebView(WebPrivate) drawRect:]
--[WebView(WebIBActions) makeTextStandardSize:]
--[WebView _resetZoom:isTextOnly:]
--[WebView(WebPendingPublic) resetPageZoom:]
+-[WebView(WebViewEditing) setEditable:]
+-[WebView(WebViewEditing) editingDelegate]
+-[WebView(WebPendingPublic) setTabKeyCyclesThroughElements:]
-[WebView(WebPrivate) _setDashboardBehavior:to:]
--[WebView(WebPrivate) _clearMainFrameName]
--[WebPreferences(WebPrivate) setAuthorAndUserStylesEnabled:]
--[WebPreferences(WebPrivate) setOfflineWebApplicationCacheEnabled:]
--[WebPreferences(WebPrivate) setDeveloperExtrasEnabled:]
+-[WebDefaultEditingDelegate undoManagerForWebView:]
+-[WebView groupName]
++[WebView(WebPrivate) _removeAllUserContentFromGroup:]
-[WebView(WebViewEditing) setSmartInsertDeleteEnabled:]
-[WebView(WebPrivate) setSelectTrailingWhitespaceEnabled:]
-[WebView(WebPrivate) inspector]
-[WebInspector initWithWebView:]
-[WebInspector setJavaScriptProfilingEnabled:]
+[WebView(WebPrivate) _setUsesTestModeFocusRingColor:]
--[WebDefaultPolicyDelegate webView:decidePolicyForNavigationAction:request:frame:decisionListener:]
++[WebView(WebPrivate) _resetOriginAccessWhitelists]
++[WebHistory optionalSharedHistory]
-[WebDefaultPolicyDelegate webView:decidePolicyForMIMEType:request:frame:decisionListener:]
--[WebFrame windowObject]
--[WebFrame globalContext]
+-[WebFrame(WebPrivate) _pendingFrameUnloadEventCount]
+-[WebDefaultUIDelegate webViewFirstResponder:]
-[WebHTMLView accessibilityFocusedUIElement]
-[WebFrame(WebInternal) _accessibilityTree]
--[WebFrame(WebPrivate) _pendingFrameUnloadEventCount]
--[NSView(WebExtras) _web_parentWebFrameView]
--[WebHistoryItem hash]
--[WebClipView _focusRingVisibleRect]
-+[WebView(WebPrivate) _pointingHandCursor]
--[NSEvent(WebExtras) _web_isDeleteKeyEvent]
--[WebFrameView allowsScrolling]
--[WebFrameView _scrollLineHorizontally:]
--[WebFrameView _scrollOverflowInDirection:granularity:]
--[WebFrameView(WebPrivate) _hasScrollBars]
--[WebFrameView(WebPrivate) _largestChildWithScrollBars]
--[WebHostedNetscapePluginView mouseDown:]
--[WebHostedNetscapePluginView mouseDragged:]
--[WebHostedNetscapePluginView mouseUp:]
--[WebHostedNetscapePluginView scrollWheel:]
+-[WebView(WebViewEditing) setSelectedDOMRange:affinity:]
+-[WebFrame loadHTMLString:baseURL:]
-[WebViewFactory unregisterUniqueIdForUIElement:]
_WKUnregisterUniqueIdForElement
-[WebViewFactory accessibilityHandleFocusChanged]
_WKAccessibilityHandleFocusChanged
+-[WebHTMLView accessibilityAttributeValue:]
+-[WebViewFactory AXHeadingText]
-[WebViewFactory textMarkerWithBytes:length:]
_WKCreateAXTextMarker
+-[WebDefaultUIDelegate webView:didScrollDocumentInFrameView:]
-[WebViewFactory objectIsTextMarker:]
_WKGetAXTextMarkerTypeID
-[WebViewFactory objectIsTextMarkerRange:]
_WKGetAXTextMarkerRangeTypeID
--[WebHTMLView accessibilityAttributeValue:]
+__ZN15WebEditorClient18shouldBeginEditingEPN7WebCore5RangeE
+__ZN15WebEditorClient15didBeginEditingEv
+-[WebDynamicScrollBarsView(WebInternal) accessibilityIsIgnored]
-[WebHTMLView _accessibilityParentForSubview:]
-[WebViewFactory AXWebAreaText]
-[WebViewFactory AXLinkText]
--[WebViewFactory AXHeadingText]
-[WebViewFactory AXDefinitionListTermText]
-[WebViewFactory AXDefinitionListDefinitionText]
--[WebViewFactory fileButtonChooseFileLabel]
--[WebViewFactory fileButtonNoFileSelectedLabel]
+_WKDrawMediaUIPart
+__ZL16controlsForThemei
+__ZN13MediaControls8drawPartEiP9CGContext6CGRectj
+__ZNK21MediaSharedUIControls14controlForPartEi
+__ZN30MediaSharedUIBackgroundElement5paintEP9CGContext6CGRect
+__ZNK14MediaUIElement23setUpContextForPaintingEP9CGContext6CGRect
+__ZL25createGenericGrayGradientPKdS0_m
+__ZL35draw3PartBannerInRectRelativeToEdgeP9CGContext6CGRect10CGRectEdgedPKvP7CGColorS4_
+__ZNK14MediaUIElement27restoreContextAfterPaintingEP9CGContext
+__ZN25MediaSharedUIImageElement5paintEP9CGContext6CGRect
+__ZNK25MediaSharedUIImageElement20constrainAspectRatioEv
+__ZN25MediaSharedUIImageElement21createBackgroundImageEP9CGContext6CGRect
+__ZNK25MediaSharedUIImageElement5imageEv
+__ZL28createMediaPDFRetreat30Imagev
+__ZL32createCGLayerFromPDFDataProviderP14CGDataProvider
+__ZNK25MediaSharedUIImageElement14drawBackgroundEP9CGContext6CGRect
+__ZL15drawOuterShadowP9CGContext6CGRectPKv
+__ZL10drawShadowP9CGContext6CGRectPKv6CGSizedP7CGColor
+__ZL16drawImageOrLayerP9CGContext6CGRectPKv
+__ZL15drawInnerShadowP9CGContext6CGRectPKv6CGSizedP7CGColor
+__ZL29createMediaPDFPlayButtonImagev
+-[WebViewFactory mediaElementLoadingStateText]
+_WKQTMovieHasClosedCaptions
+__ZN15WebChromeClient25supportsFullscreenForNodeEPKN7WebCore4NodeE
+-[WebView(WebPrivate) _isUsingAcceleratedCompositing]
+_WKMeasureMediaUIPart
+__ZNK13MediaControls11naturalSizeEi
+__ZNK39MediaSharedUITimelineSliderThumbElement11naturalSizeEv
+_WKDrawMediaSliderTrack
+__ZN13MediaControls15drawSliderTrackEP9CGContext6CGRectddj
+__ZNK21MediaSharedUIControls6sliderEv
+__ZN27MediaSharedUITimelineSlider5paintEP9CGContext6CGRect
+__ZL23addRoundedRectToContextP9CGContext6CGRectd
+__ZNK27MediaSharedUITimelineSlider22highlightUnloadedRangeEP9CGContext6CGRect
+__ZN39MediaSharedUITimelineSliderThumbElement5paintEP9CGContext6CGRect
+__ZL34createMediaPDFEnterFullscreenImagev
+__ZL34createMediaPDFAudioVolumeHighImagev
+-[WebViewFactory localizedMediaControlElementString:]
-[WebViewFactory textMarkerRangeWithStart:end:]
_WKCreateAXTextMarkerRange
-[WebFrame(WebPrivate) _numberOfActiveAnimations]
-[WebFrame(WebPrivate) _pauseAnimation:onNode:atTime:]
--[WebFrame(WebKitDebug) renderTreeAsExternalRepresentation]
+-[WebFrame(WebKitDebug) renderTreeAsExternalRepresentationForPrinting:]
+[WebCoreStatistics garbageCollectJavaScriptObjects]
--[WebNullPluginView initWithFrame:error:DOMElement:]
--[WebNullPluginView viewDidMoveToWindow]
--[WebNullPluginView reportFailure]
--[WebNullPluginView dealloc]
+-[WebFrame(WebPrivate) _layerTreeAsText]
+-[WebFrame(WebPrivate) _pauseTransitionOfProperty:onNode:atTime:]
+-[WebPreferences(WebPrivate) _setPreferenceForTestWithValue:forKey:]
-[WebInspector webViewClosed]
--[WebView(WebDebugBinding) removeObserver:forKeyPath:]
+[WebCoreStatistics emptyCache]
-+[NSObject(WebScripting) isKeyExcludedFromWebScript:]
--[WebIconDatabase iconURLForURL:]
-__ZN15WebChromeClient7repaintERKN7WebCore7IntRectEbbb
--[WebHistoryItem(WebPrivate) RSSFeedReferrer]
--[WebViewFactory refreshPlugins]
+-[NSError(WebKitExtras) _initWithPluginErrorCode:contentURL:pluginPageURL:pluginName:MIMEType:]
+-[WebViewFactory missingPluginText]
-[WebViewFactory searchableIndexIntroduction]
-__ZN15WebChromeClient15closeWindowSoonEv
--[WebView(WebPrivate) _closeWindow]
--[WebHTMLView validRequestorForSendType:returnType:]
--[WebHTMLView(WebDocumentPrivateProtocols) pasteboardTypesForSelection]
--[WebHTMLView(WebInternal) _canSmartCopyOrDelete]
--[WebHTMLView(WebInternal) isGrammarCheckingEnabled]
--[WebView(WebPendingPublic) canResetPageZoom]
--[WebView _canResetZoom:]
--[WebView(WebIBActions) canMakeTextStandardSize]
--[WebView(WebPendingPublic) canZoomPageIn]
--[WebView(WebPendingPublic) canZoomPageOut]
--[WebHTMLRepresentation canProvideDocumentSource]
--[WebFrame(WebInternal) _canProvideDocumentSource]
--[WebView supportsTextEncoding]
--[WebHTMLView(WebDocumentPrivateProtocols) supportsTextEncoding]
__ZN15WebEditorClient26shouldMoveRangeAfterDeleteEPN7WebCore5RangeES2_
-[WebDefaultEditingDelegate webView:shouldMoveRangeAfterDelete:replacingRange:]
+__ZN15WebEditorClient13didEndEditingEv
__ZN15WebEditorClient25shouldShowDeleteInterfaceEPN7WebCore11HTMLElementE
__ZN15WebEditorClient16shouldEndEditingEPN7WebCore5RangeE
-[WebView(WebPrivate) _executeCoreCommandByName:value:]
@@ -1977,40 +1995,50 @@ __ZN15WebEditorClient4undoEv
-[WebEditCommand command]
__ZN15WebEditorClient22registerCommandForRedoEN3WTF10PassRefPtrIN7WebCore11EditCommandEEE
__ZN15WebEditorClient23textDidChangeInTextAreaEPN7WebCore7ElementE
-__ZN15WebChromeClient7unfocusEv
--[WebDefaultUIDelegate webViewUnfocus:]
+-[WebView textSizeMultiplier]
__ZN15WebEditorClient33didSetSelectionTypesForPasteboardEv
-[WebDefaultEditingDelegate webView:didSetSelectionTypesForPasteboard:]
__ZN15WebEditorClient29didWriteSelectionToPasteboardEv
-[WebDefaultEditingDelegate webView:didWriteSelectionToPasteboard:]
-[WebHTMLView(WebInternal) paste:]
--[WebHTMLView callDelegateDoCommandBySelectorIfNeeded:]
-[WebHTMLView(WebHTMLViewFileInternal) _pasteWithPasteboard:allowPlainText:]
-[WebView(WebViewInternal) _setInsertionPasteboard:]
+-[WebHTMLView(WebHTMLViewFileInternal) _selectedRange]
-[WebHTMLView(WebHTMLViewFileInternal) _documentFragmentFromPasteboard:inContext:allowPlainText:]
-[WebHTMLView(WebPrivate) _documentFragmentFromPasteboard:forType:inContext:subresources:]
-[WebHTMLView(WebHTMLViewFileInternal) _dataSource]
-[WebDataSource(WebInternal) _documentFragmentWithArchive:]
-[WebArchive(WebInternal) _coreLegacyWebArchive]
+-[WebResource URL]
-[WebFrame(WebInternal) _documentFragmentWithMarkupString:baseURLString:]
-[WebHTMLView(WebHTMLViewFileInternal) _shouldInsertFragment:replacingDOMRange:givenAction:]
-[WebHTMLView(WebPrivate) _canSmartReplaceWithPasteboard:]
-[WebFrame(WebPrivate) _replaceSelectionWithFragment:selectReplacement:smartReplace:matchStyle:]
+-[WebResource dealloc]
+-[WebResourcePrivate dealloc]
-[WebView(WebIBActions) _responderValidateUserInterfaceItem:]
-[WebView(WebFileInternal) _responderForResponderOperations]
-[NSView(WebExtras) _web_firstResponderIsSelfOrDescendantView]
__ZN15WebChromeClient5printEPN7WebCore5FrameE
+-[WebDefaultUIDelegate webView:makeFirstResponder:]
+-[WebHTMLView(WebNSTextInputSupport) firstRectForCharacterRange:]
+-[WebFrame(WebInternal) _convertNSRangeToDOMRange:]
+-[WebFrame(WebInternal) _convertToDOMRange:]
+-[WebFrame(WebInternal) _firstRectForDOMRange:]
__ZNK15WebEditorClient7canRedoEv
__ZN15WebEditorClient4redoEv
-[WebEditorUndoTarget redoEditing:]
-[DOMDocument(WebDOMDocumentOperations) URLWithAttributeString:]
-[WebView(WebPrivate) _catchesDelegateExceptions]
+-[WebView performDragOperation:]
__ZNK19WebPasteboardHelper22fragmentFromPasteboardEPK12NSPasteboard
-[WebHTMLView(WebInternal) _documentFragmentFromPasteboard:]
__ZN15WebEditorClient16shouldInsertNodeEPN7WebCore4NodeEPNS0_5RangeENS0_18EditorInsertActionE
+__ZN13WebDragClient32willPerformDragDestinationActionEN7WebCore21DragDestinationActionEPNS0_8DragDataE
+-[WebDefaultUIDelegate webView:willPerformDragDestinationAction:forDraggingInfo:]
+-[WebHTMLView(WebPrivate) _hasHTMLDocument]
__ZN15WebEditorClient17userVisibleStringEP5NSURL
_WKGetExtensionsForMIMEType
--[WebHTMLView(WebPrivate) _hasHTMLDocument]
+[WebHTMLView(WebHTMLViewFileInternal) _excludedElementsForAttributedStringConversion]
+[NSURL(WebDataURL) _web_uniqueWebDataURL]
-[WebResource initWithData:URL:MIMEType:textEncodingName:frameName:]
@@ -2018,36 +2046,24 @@ _WKGetExtensionsForMIMEType
__ZN7WebCore20ResourceResponseBaseD2Ev
-[WebDataSource addSubresource:]
-[WebResource(WebResourceInternal) _coreResource]
+__ZNK19WebPasteboardHelper17urlFromPasteboardEPK12NSPasteboardPN7WebCore6StringE
+-[NSPasteboard(WebExtras) _web_bestURL]
+-[NSString(WebNSURLExtras) _webkit_looksLikeAbsoluteURL]
+-[NSString(WebNSURLExtras) _webkit_rangeOfURLScheme]
+__ZNK19WebPasteboardHelper23plainTextFromPasteboardEPK12NSPasteboard
__ZN13WebDragClient22createDragImageForLinkERN7WebCore4KURLERKNS0_6StringEPNS0_5FrameE
-[WebHTMLView(WebPrivate) _dragImageForURL:withLabel:]
-__ZNK19WebPasteboardHelper23plainTextFromPasteboardEPK12NSPasteboard
+-[NSString(WebKitExtras) _web_drawDoubledAtPoint:withTopColor:bottomColor:font:]
+__ZN15WebChromeClient18chooseIconForFilesERKN3WTF6VectorIN7WebCore6StringELm0EEEPNS2_11FileChooserE
__ZL25uniqueURLWithRelativePartP8NSString
-[WebDataSource(WebInternal) _documentFragmentWithImageResource:]
-[WebDataSource(WebInternal) _imageElementWithImageResource:]
+__ZN3WTF6VectorINS_6RefPtrIN7WebCore7ArchiveEEELm0EE6shrinkEm
-[WebHTMLView menuForEvent:]
--[WebViewFactory contextMenuItemTagOpenLink]
--[WebViewFactory contextMenuItemTagOpenLinkInNewWindow]
--[WebViewFactory contextMenuItemTagDownloadLinkToDisk]
--[WebViewFactory contextMenuItemTagCopyLinkToClipboard]
--[WebViewFactory contextMenuItemTagOpenImageInNewWindow]
--[WebViewFactory contextMenuItemTagDownloadImageToDisk]
--[WebViewFactory contextMenuItemTagCopyImageToClipboard]
--[WebViewFactory contextMenuItemTagSearchInSpotlight]
--[WebViewFactory contextMenuItemTagLookUpInDictionary]
--[WebViewFactory contextMenuItemTagSearchWeb]
--[WebViewFactory contextMenuItemTagCopy]
--[WebViewFactory contextMenuItemTagGoBack]
--[WebViewFactory contextMenuItemTagGoForward]
--[WebViewFactory contextMenuItemTagStop]
--[WebViewFactory contextMenuItemTagReload]
--[WebViewFactory contextMenuItemTagOpenFrameInNewWindow]
--[WebViewFactory contextMenuItemTagNoGuessesFound]
--[WebViewFactory contextMenuItemTagIgnoreSpelling]
--[WebViewFactory contextMenuItemTagLearnSpelling]
--[WebViewFactory contextMenuItemTagIgnoreGrammar]
--[WebViewFactory contextMenuItemTagCut]
--[WebViewFactory contextMenuItemTagPaste]
-__ZN20WebContextMenuClient29getCustomMenuFromDefaultItemsEPN7WebCore11ContextMenuE
+-[WebViewFactory contextMenuItemTagSpeechMenu]
+-[WebViewFactory contextMenuItemTagStartSpeaking]
+-[WebViewFactory contextMenuItemTagStopSpeaking]
+__ZN20WebContextMenuClient10isSpeakingEv
-[WebViewFactory contextMenuItemTagSpellingMenu]
-[WebViewFactory contextMenuItemTagShowSpellingPanel:]
-[WebViewFactory contextMenuItemTagCheckSpelling]
@@ -2075,9 +2091,6 @@ __ZN15WebEditorClient27substitutionsPanelIsShowingEv
-[WebViewFactory contextMenuItemTagOutline]
-[WebViewFactory contextMenuItemTagStyles]
-[WebViewFactory contextMenuItemTagShowColors]
--[WebViewFactory contextMenuItemTagSpeechMenu]
--[WebViewFactory contextMenuItemTagStartSpeaking]
--[WebViewFactory contextMenuItemTagStopSpeaking]
-[WebViewFactory contextMenuItemTagWritingDirectionMenu]
-[WebViewFactory contextMenuItemTagDefaultDirection]
-[WebViewFactory contextMenuItemTagLeftToRight]
@@ -2085,121 +2098,238 @@ __ZN15WebEditorClient27substitutionsPanelIsShowingEv
-[WebHTMLView(WebNSTextInputSupport) selectedRange]
-[WebFrame(WebPrivate) _selectedNSRange]
-[WebFrame(WebInternal) _convertToNSRange:]
--[WebHTMLView(WebNSTextInputSupport) firstRectForCharacterRange:]
--[WebFrame(WebInternal) _convertNSRangeToDOMRange:]
--[WebFrame(WebInternal) _convertToDOMRange:]
--[WebFrame(WebInternal) _firstRectForDOMRange:]
__ZN15WebChromeClient19customHighlightRectEPN7WebCore4NodeERKNS0_12AtomicStringERKNS0_9FloatRectE
-[WebHTMLView(WebInternal) _highlighterForType:]
__ZN15WebChromeClient20paintCustomHighlightEPN7WebCore4NodeERKNS0_12AtomicStringERKNS0_9FloatRectES8_bb
--[WebView(WebIBActions) makeTextLarger:]
--[WebView _zoomIn:isTextOnly:]
+-[WebViewFactory resetButtonDefaultLabel]
-[WebDefaultPolicyDelegate webView:shouldGoToHistoryItem:]
--[WebView(WebPendingPublic) zoomPageIn:]
--[WebView(WebPendingPublic) zoomPageOut:]
--[WebView _zoomOut:isTextOnly:]
--[WebPDFRepresentation setDataSource:]
--[WebPDFView initWithFrame:]
-+[WebPDFView(FileInternal) _PDFPreviewViewClass]
-+[WebPDFView PDFKitBundle]
--[PDFPrefUpdatingProxy initWithView:]
--[WebPDFView setNextKeyView:]
--[WebPDFView viewWillMoveToWindow:]
--[WebPDFView viewDidMoveToWindow]
--[WebPDFView(FileInternal) _trackFirstResponder]
--[WebPDFView(FileInternal) _clipViewForPDFDocumentView]
--[WebPDFView becomeFirstResponder]
--[WebPDFView setDataSource:]
--[WebPDFView setNeedsLayout:]
--[WebPDFView layout]
--[WebPDFView acceptsFirstResponder]
--[WebPDFRepresentation receivedData:withDataSource:]
--[WebPDFView dataSourceUpdated:]
--[WebPDFRepresentation title]
--[WebPDFRepresentation finishedLoadingWithDataSource:]
--[WebDataSource data]
-+[WebPDFRepresentation PDFDocumentClass]
--[WebPDFView setPDFDocument:]
--[WebPDFView(FileInternal) _scaleOrDisplayModeOrPageChanged:]
--[WebPDFView(FileInternal) _applyPDFDefaults]
--[WebPreferences(WebPrivate) PDFScaleFactor]
--[WebPreferences _floatValueForKey:]
--[WebPreferences(WebPrivate) PDFDisplayMode]
--[WebPDFView selectionView]
--[WebPDFView string]
--[WebPDFView dealloc]
+-[WebFrame(WebKitDebug) counterValueForElement:]
+__ZN15WebChromeClient11canRunModalEv
+[WebCoreStatistics javaScriptObjectsCount]
+-[WebFrame name]
-[WebBackForwardList capacity]
-[WebBackForwardList addItem:]
+__Z4coreP14WebHistoryItem
-[WebBackForwardList goToItem:]
-[WebDefaultUIDelegate webView:setToolbarsVisible:]
-[WebDefaultUIDelegate webView:setStatusBarVisible:]
-[WebDefaultUIDelegate webView:setResizable:]
-[WebDefaultUIDelegate webViewShow:]
-__XPCGetProperty
-_WKPCGetProperty
-__ZN6WebKit27NetscapePluginInstanceProxy11getPropertyEjRKN3JSC10IdentifierERPcRj
--[WebHostedNetscapePluginView setLayer:]
-[WebDefaultPolicyDelegate webView:decidePolicyForNewWindowAction:request:newFrameName:decisionListener:]
-[WebDefaultUIDelegate webView:createWebViewWithRequest:windowFeatures:]
+__ZN15WebChromeClient14menubarVisibleEv
+__ZN7WebCore12ChromeClient22registerContentHandlerERKNS_6StringES3_S3_S3_
+__ZN7WebCore12ChromeClient23registerProtocolHandlerERKNS_6StringES3_S3_S3_
-[WebKeyGenerator strengthMenuItemTitles]
--[WebViewFactory resetButtonDefaultLabel]
-__ZL19isPreVersion3Clientv
-__ZL26fixMenusToSendToOldClientsP14NSMutableArray
-__ZL28isPreInspectElementTagClientv
__ZN15WebChromeClient20runJavaScriptConfirmEPN7WebCore5FrameERKNS0_6StringE
__Z30CallUIDelegateReturningBooleanaP7WebViewP13objc_selectorP11objc_objectS4_
__ZN15WebChromeClient19runJavaScriptPromptEPN7WebCore5FrameERKNS0_6StringES5_RS3_
-__Z14CallUIDelegateP7WebViewP13objc_selectorP11objc_objectS4_S4_
__ZN15WebChromeClient17scrollbarsVisibleEv
+-[WebFrameView allowsScrolling]
__ZN15WebChromeClient15toolbarsVisibleEv
-__ZN15WebChromeClient14menubarVisibleEv
-[NSString(WebNSURLExtras) _web_encodeHostName]
__ZL22readIDNScriptWhiteListv
__ZL26readIDNScriptWhiteListFileP8NSString
-__ZNK15WebChromeClient11tabsToLinksEv
--[WebPreferences tabsToLinks]
--[WebViewFactory submitButtonDefaultLabel]
-__ZN15WebChromeClient12canTakeFocusEN7WebCore14FocusDirectionE
-__ZN15WebChromeClient9takeFocusEN7WebCore14FocusDirectionE
--[WebView(WebViewInternal) _becomingFirstResponderFromOutside]
--[WebHostedNetscapePluginView focusChanged]
-__ZN6WebKit27NetscapePluginInstanceProxy12focusChangedEb
-__WKPHPluginInstanceFocusChanged
-__ZN15WebChromeClient14keyboardUIModeEv
--[WebView(WebViewInternal) _keyboardUIMode]
--[WebView(WebViewInternal) _retrieveKeyboardUIModeFromPreferences:]
+-[WebFrameView _scrollLineHorizontally:]
+-[WebFrameView _scrollOverflowInDirection:granularity:]
+-[WebHTMLView(WebNSTextInputSupport) setMarkedText:selectedRange:]
+-[WebResponderChainSink initWithResponderChain:]
+-[WebHTMLView complete:]
+-[WebTextCompletionController initWithWebView:HTMLView:]
+-[WebTextCompletionController doCompletion]
+-[WebFrame(WebInternal) _rangeByAlteringCurrentSelection:direction:granularity:]
+-[WebResponderChainSink receivedUnhandledCommand]
+-[WebResponderChainSink detach]
+-[WebTextCompletionController popupWindowIsOpen]
+-[WebTextCompletionController filterKeyDown:]
+-[WebTextCompletionController endRevertingChange:moveLeft:]
+-[WebTextCompletionController dealloc]
+-[WebFrameView scrollPageUp:]
+-[WebFrameView _pageVertically:]
+-[WebView(WebViewEditingActions) scrollPageUp:]
+-[WebView(WebViewEditingActions) _performResponderOperation:with:]
+-[WebResponderChainSink tryToPerform:with:]
+-[WebFrameView scrollPageDown:]
+-[WebView(WebViewEditingActions) scrollPageDown:]
+-[WebFrameView scrollToBeginningOfDocument:]
+-[WebFrameView _scrollToBeginningOfDocument]
+-[WebView(WebViewEditingActions) scrollToBeginningOfDocument:]
+-[WebFrameView scrollToEndOfDocument:]
+-[WebFrameView _scrollToEndOfDocument]
+-[WebView(WebViewEditingActions) scrollToEndOfDocument:]
+-[WebFrameView(WebPrivate) _contentView]
+-[WebViewFactory multipleFileUploadTextForNumberOfFiles:]
+-[WebFrameView(WebInternal) _verticalPageScrollDistance]
+-[WebFrameView _scrollVerticallyBy:]
+-[WebViewFactory validationMessagePatternMismatchText]
+-[WebViewFactory validationMessageValueMissingText]
+-[WebViewFactory validationMessageTypeMismatchText]
+__ZN20WebFrameLoaderClient34didTransferChildFrameToNewDocumentEv
+-[WebDefaultUIDelegate webViewClose:]
+-[WebHistory init]
++[WebHistoryPrivate initialize]
+-[WebHistoryPrivate init]
++[WebHistory setOptionalSharedHistory:]
+-[WebHistory(WebInternal) _addVisitedLinksToPageGroup:]
+-[WebHistoryPrivate addVisitedLinksToPageGroup:]
+-[WebView(WebViewPrivateStyleInfo) _computedStyleIncludingVisitedInfo:forElement:]
-[WebHistory dealloc]
-[WebHistoryPrivate dealloc]
--[WebDefaultUIDelegate webViewClose:]
-__ZN15WebChromeClient21exceededDatabaseQuotaEPN7WebCore5FrameERKNS0_6StringE
--[WebSecurityOrigin(WebInternal) _initWithWebCoreSecurityOrigin:]
--[WebSecurityOrigin setQuota:]
-__ZN24WebDatabaseTrackerClient23dispatchDidModifyOriginEPN7WebCore14SecurityOriginE
--[WebSecurityOrigin dealloc]
-__ZN24WebDatabaseTrackerClient25dispatchDidModifyDatabaseEPN7WebCore14SecurityOriginERKNS0_6StringE
--[NSURL(WebNSURLExtras) _web_URLWithLowercasedScheme]
--[WebFrame loadAlternateHTMLString:baseURL:forUnreachableURL:]
-__ZN3WTF10RefCountedIN7WebCore10StringImplEE5derefEv
-__ZN20WebFrameLoaderClient18cannotShowURLErrorERKN7WebCore15ResourceRequestE
+__ZN3WTF9HashTableIxSt4pairIxNS_9RetainPtrI14NSMutableArrayEEENS_18PairFirstExtractorIS5_EENS_7IntHashIyEENS_14PairHashTraitsIN
+-[WebHistory(WebInternal) _visitedURL:withTitle:method:wasFailure:increaseVisitCount:]
+-[WebHistoryPrivate visitedURL:withTitle:increaseVisitCount:]
+-[WebHistoryItem initWithURLString:title:lastVisitedTimeInterval:]
+-[WebHistoryItem(WebInternal) _recordInitialVisit]
+-[WebHistoryPrivate addItemToDateCaches:]
+-[WebHistoryItem lastVisitedTimeInterval]
+-[WebHistoryPrivate findKey:forDay:]
+__ZL16getDayBoundariesdRdS_
+__ZNK3WTF9HashTableIxSt4pairIxNS_9RetainPtrI14NSMutableArrayEEENS_18PairFirstExtractorIS5_EENS_7IntHashIyEENS_14PairHashTraitsI
+__ZN3WTF7HashMapIxNS_9RetainPtrI14NSMutableArrayEENS_7IntHashIyEENS_10HashTraitsIxEENS6_IS3_EEE3setERKxRKS3_
+-[WebHistory _sendNotification:entries:]
+-[WebHistory(WebPrivate) allItems]
+-[WebHistoryPrivate allItems]
+-[WebView(WebPrivate) _loadBackForwardListFromOtherView:]
+__ZN20WebFrameLoaderClient30dispatchDidPushStateWithinPageEv
-[WebHistoryItem(WebPrivate) target]
-[WebHistoryItem(WebPrivate) isTargetItem]
-[WebHistoryItem(WebPrivate) children]
-__ZN20WebFrameLoaderClient31dispatchUnableToImplementPolicyERKN7WebCore13ResourceErrorE
--[WebView goToBackForwardItem:]
-__ZN3WTF6VectorIN3JSC8RegisterELm8EE6shrinkEm
--[NSString(WebKitExtras) _webkit_fixedCarbonPOSIXPath]
-_WKCreateCustomCFReadStream
-_WKSignalCFReadStreamHasBytes
-_WKSignalCFReadStreamEnd
-__ZN20WebFrameLoaderClient12blockedErrorERKN7WebCore15ResourceRequestE
--[WebHTMLView(WebNSTextInputSupport) setMarkedText:selectedRange:]
+-[WebPreferences setUserStyleSheetLocation:]
+-[WebPreferences userStyleSheetLocation]
+__ZN20WebFrameLoaderClient29dispatchDidPopStateWithinPageEv
+__ZN18WebInspectorClient15populateSettingERKN7WebCore6StringEPS1_
++[WebWorkersPrivate workerThreadCount]
+-[WebInspector show:]
+__ZN18WebInspectorClient21openInspectorFrontendEPN7WebCore19InspectorControllerE
+-[WebInspectorWindowController initWithInspectedWebView:]
+-[WebInspectorWindowController init]
+-[WebPreferences init]
+-[WebPreferences setAllowsAnimatedImages:]
+-[WebPreferences setMinimumLogicalFontSize:]
+-[WebView setDrawsBackground:]
+-[WebView(WebPrivate) setProhibitsMainFrameScrolling:]
+-[WebInspectorWindowController webView]
+__ZN26WebInspectorFrontendClientC1EP7WebViewP28WebInspectorWindowControllerPN7WebCore19InspectorControllerEPNS4_4PageE
+__ZN26WebInspectorFrontendClientC2EP7WebViewP28WebInspectorWindowControllerPN7WebCore19InspectorControllerEPNS4_4PageE
+-[WebInspectorWindowController setFrontendClient:]
+-[WebInspector evaluateInFrontend:callId:script:]
+__ZN26WebInspectorFrontendClient19localizedStringsURLEv
+__ZN26WebInspectorFrontendClient12hiddenPanelsEv
+__ZN18WebInspectorClient13hideHighlightEv
+-[WebNodeHighlighter hideHighlight]
+__ZN26WebInspectorFrontendClient14frontendLoadedEv
+-[WebInspectorWindowController showWindow:]
+-[WebInspectorWindowController attached]
+__ZN26WebInspectorFrontendClient23setAttachedWindowHeightEj
+-[WebInspectorWindowController setAttachedWindowHeight:]
+__ZN26WebInspectorFrontendClient12bringToFrontEv
+__ZNK26WebInspectorFrontendClient17updateWindowTitleEv
+-[WebInspectorWindowController window]
+_WKNSWindowMakeBottomCornersSquare
+__ZN26WebInspectorFrontendClient19inspectedURLChangedERKN7WebCore6StringE
+__ZN18WebInspectorClient12storeSettingERKN7WebCore6StringES3_
+-[WebInspector close:]
+__ZN26WebInspectorFrontendClient11closeWindowEv
+-[WebInspectorWindowController destroyInspectorView]
+-[WebInspectorWindowController close]
+__ZN26WebInspectorFrontendClientD0Ev
+-[WebInspectorWindowController dealloc]
+__ZN18WebInspectorClient9highlightEPN7WebCore4NodeE
+-[WebNodeHighlighter highlightNode:]
+-[WebNodeHighlight initWithTargetView:inspectorController:]
+-[WebNodeHighlight(FileInternal) _computeHighlightWindowFrame]
+-[WebNodeHighlightView initWithWebNodeHighlight:]
+-[WebNodeHighlightView isFlipped]
+-[WebNodeHighlight setDelegate:]
+-[WebNodeHighlight attach]
+-[WebNodeHighlightView drawRect:]
+-[WebNodeHighlight inspectorController]
+-[WebNodeHighlighter didAttachWebNodeHighlight:]
+-[WebView setCurrentNodeHighlight:]
+-[WebNodeHighlight(FileInternal) _repositionHighlightWindow]
+-[WebNodeHighlight targetView]
+-[WebNodeHighlight setNeedsUpdateInTargetViewRect:]
+-[WebNodeHighlight detach]
+-[WebNodeHighlighter willDetachWebNodeHighlight:]
+-[WebNodeHighlightView detachFromWebNodeHighlight]
+-[WebNodeHighlight dealloc]
+-[WebNodeHighlightView dealloc]
+-[WebInspector setTimelineProfilingEnabled:]
+__XPCHasMethod
+_WKPCHasMethod
+__ZN6WebKit27NetscapePluginInstanceProxy9hasMethodEjRKN3JSC10IdentifierE
+__WKPHBooleanReply
+__ZNK6WebKit10ProxyField17valueFromInstanceEPN3JSC9ExecStateEPKNS1_8Bindings8InstanceE
+__ZNK6WebKit13ProxyInstance10fieldValueEPN3JSC9ExecStateEPKNS1_8Bindings5FieldE
+__WKPHNPObjectGetProperty
+__ZNK6WebKit18ProxyRuntimeObject9classInfoEv
+__ZN6WebKit10ProxyFieldD0Ev
+__ZL30createMediaPDFPauseButtonImagev
+__ZNK27MediaSharedUICCImageElement20constrainAspectRatioEv
+__ZNK25MediaSharedUIImageElement11naturalSizeEv
+__ZL33createMediaPDFClosedCaptionsImagev
+__ZN27MediaSharedUICCImageElement21createBackgroundImageEP9CGContext6CGRect
+_WKQTMovieSetShowClosedCaptions
+__ZN20WebFrameLoaderClient25pluginWillHandleLoadErrorERKN7WebCore16ResourceResponseE
+__ZN15WebChromeClient22enterFullscreenForNodeEPN7WebCore4NodeE
+-[WebView(WebViewInternal) _enterFullscreenForNode:]
+-[WebVideoFullscreenController .cxx_construct]
+-[WebVideoFullscreenController init]
+-[WebVideoFullscreenWindow initWithContentRect:styleMask:backing:defer:]
+-[WebVideoFullscreenController windowDidLoad]
+-[WebVideoFullscreenController fullscreenWindow]
+__ZL16initQTMovieLayerv
+__ZL12QTKitLibraryv
+-[WebVideoFullscreenController setMediaElement:]
+__ZL36initQTMovieRateDidChangeNotificationv
+-[WebVideoFullscreenController enterFullscreen:]
+-[WebVideoFullscreenController mediaElementRect]
+-[WebVideoFullscreenController setupFadeAnimationIfNeededAndFadeIn:]
+-[WebWindowFadeAnimation initWithDuration:window:initialAlpha:finalAlpha:]
+-[WebWindowFadeAnimation init]
+-[WebVideoFullscreenWindow animateFromRect:toRect:withSubAnimation:controllerAction:]
+-[WebWindowScaleAnimation initWithHintedDuration:window:initalFrame:finalFrame:]
+-[WebWindowScaleAnimation init]
+-[WebWindowScaleAnimation setSubAnimation:]
+-[WebWindowScaleAnimation setCurrentProgress:]
+-[WebWindowScaleAnimation currentFrame]
+-[WebWindowScaleAnimation currentValue]
+_WKWindowSetScaledFrame
+_flipRect
+-[WebWindowFadeAnimation setCurrentProgress:]
+-[WebWindowFadeAnimation currentAlpha]
+_WKWindowSetAlpha
+-[WebVideoFullscreenWindow canBecomeKeyWindow]
+-[WebWindowScaleAnimation startAnimation]
+-[WebWindowScaleAnimation additionalDurationNeededToReachFinalFrame]
+_squaredDistance
+-[WebWindowScaleAnimation setDuration:]
+_WebWindowAnimationDurationFromDuration
+__ZN15WebChromeClient21exitFullscreenForNodeEPN7WebCore4NodeE
+-[WebVideoFullscreenController exitFullscreen]
+-[WebVideoFullscreenController clearFadeAnimation]
+-[WebWindowFadeAnimation stopAnimation]
+-[WebWindowFadeAnimation setWindow:]
+-[WebWindowScaleAnimation stopAnimation]
+-[WebWindowScaleAnimation dealloc]
+-[WebVideoFullscreenWindow animationDidEnd:]
+-[WebWindowScaleAnimation setWindow:]
+-[WebVideoFullscreenWindow animatedResizeDidEnd]
+-[WebVideoFullscreenController windowDidExitFullscreen]
+-[WebVideoFullscreenController dealloc]
+-[WebVideoFullscreenController .cxx_destruct]
+-[WebVideoFullscreenWindow dealloc]
+__ZL33createMediaPDFAudioVolumeOffImagev
+-[WebHTMLView accessibilityHitTest:]
+-[WebView(WebViewEditing) selectedDOMRange]
__ZN3WTF6VectorIN7WebCore20CompositionUnderlineELm0EE14expandCapacityEmPKS2_
__ZN3WTF6VectorIN7WebCore20CompositionUnderlineELm0EE14expandCapacityEm
__ZN3WTF6VectorIN7WebCore20CompositionUnderlineELm0EE15reserveCapacityEm
__ZN3WTF6VectorIN7WebCore20CompositionUnderlineELm0EE6shrinkEm
-[WebFrame(WebPrivate) _selectNSRange:]
-[WebHTMLView(WebNSTextInputSupport) attributedSubstringFromRange:]
++[NSAttributedString(WebKitExtras) _web_attributedStringFromRange:]
+__ZN3WTF6VectorIjLm1EE6shrinkEm
-[WebHTMLView(WebNSTextInputSupport) markedRange]
-[WebHTMLView(WebNSTextInputSupport) unmarkText]
-[WebHTMLView(WebNSTextInputSupport) characterIndexForPoint:]
@@ -2208,7 +2338,6 @@ __ZN3WTF6VectorIN7WebCore20CompositionUnderlineELm0EE6shrinkEm
-[WebHTMLView(WebNSTextInputSupport) conversationIdentifier]
-[WebView(WebPendingPublic) aeDescByEvaluatingJavaScriptFromString:]
__ZL17aeDescFromJSValuePN3JSC9ExecStateENS_7JSValueE
-__ZN3WTF12bitwise_castIdlEET_T0_
__ZNK3WTF9HashTableIPN3JSC8JSObjectES3_NS_17IdentityExtractorIS3_EENS_7PtrHashIS3_EENS_10HashTraitsIS3_EES9_E8containsIS3_NS_22
__ZN3WTF7HashSetIPN3JSC8JSObjectENS_7PtrHashIS3_EENS_10HashTraitsIS3_EEE3addERKS3_
__ZN3WTF9HashTableIPN3JSC8JSObjectES3_NS_17IdentityExtractorIS3_EENS_7PtrHashIS3_EENS_10HashTraitsIS3_EES9_E6expandEv
@@ -2219,134 +2348,100 @@ __ZN3WTF9HashTableIPN3JSC8JSObjectES3_NS_17IdentityExtractorIS3_EENS_7PtrHashIS3
__ZN3WTF9HashTableIPN3JSC8JSObjectES3_NS_17IdentityExtractorIS3_EENS_7PtrHashIS3_EENS_10HashTraitsIS3_EES9_E47removeAndInvalida
__ZN3WTF9HashTableIPN3JSC8JSObjectES3_NS_17IdentityExtractorIS3_EENS_7PtrHashIS3_EENS_10HashTraitsIS3_EES9_E6removeEPS3_
-[WebFrame(WebInternal) _convertDOMRangeToNSRange:]
-__ZNK6WebKit13ProxyInstance27supportsInvokeDefaultMethodEv
-__WKPHNPObjectHasInvokeDefaultMethod
+-[WebPDFView(FileInternal) _updatePreferencesSoon]
+-[WebPDFView(FileInternal) _updatePreferences:]
+-[WebPreferences(WebPrivate) setPDFScaleFactor:]
+-[WebPreferences _setFloatValue:forKey:]
+-[WebPreferences(WebPrivate) setPDFDisplayMode:]
+-[WebPDFView viewState]
++[WebHTMLView(WebPrivate) supportedMIMETypes]
++[WebHTMLRepresentation supportedMIMETypes]
+__ZN7WebCore17FrameLoaderClient18didNotAllowPluginsEv
__ZN6WebKit13ProxyInstance19invokeDefaultMethodEPN3JSC9ExecStateERKNS1_7ArgListE
-__ZNK6WebKit10ProxyField17valueFromInstanceEPN3JSC9ExecStateEPKNS1_8Bindings8InstanceE
-__ZNK6WebKit13ProxyInstance10fieldValueEPN3JSC9ExecStateEPKNS1_8Bindings5FieldE
-__WKPHNPObjectGetProperty
-__ZN6WebKit10ProxyFieldD0Ev
-__WKPHLoadURLNotify
__XPCGetIntIdentifier
_WKPCGetIntIdentifier
-__ZNK6WebKit10ProxyField18setValueToInstanceEPN3JSC9ExecStateEPKNS1_8Bindings8InstanceENS1_7JSValueE
-__ZNK6WebKit13ProxyInstance13setFieldValueEPN3JSC9ExecStateEPKNS1_8Bindings5FieldENS1_7JSValueE
-__WKPHNPObjectSetProperty
-__XPCConstruct
-_WKPCConstruct
-__ZN6WebKit27NetscapePluginInstanceProxy9constructEjPcjRS1_Rj
-__ZNK6WebKit13ProxyInstance17supportsConstructEv
-__WKPHNPObjectHasConstructMethod
-__ZN6WebKit13ProxyInstance15invokeConstructEPN3JSC9ExecStateERKNS1_7ArgListE
-__XPCGetPluginElementNPObject
-_WKPCGetPluginElementNPObject
-__ZN6WebKit27NetscapePluginInstanceProxy24getPluginElementNPObjectERj
--[WebBaseNetscapePluginView element]
-__XPCSetProperty
-_WKPCSetProperty
-__ZN6WebKit27NetscapePluginInstanceProxy11setPropertyEjRKN3JSC10IdentifierEPcj
+__ZNK3JSC8JSObject11toPrimitiveEPNS_9ExecStateENS_22PreferredPrimitiveTypeE
__XPCEnumerate
_WKPCEnumerate
__ZN6WebKit27NetscapePluginInstanceProxy9enumerateEjRPcRj
-__ZN3WTF9HashTableIPN3JSC7UString3RepES4_NS_17IdentityExtractorIS4_EENS_7PtrHashIS4_EENS_10HashTraitsIS4_EESA_E15deallocateTabl
+__ZN3WTF9HashTableIPN7WebCore10StringImplES3_NS_17IdentityExtractorIS3_EENS_7PtrHashIS3_EENS_10HashTraitsIS3_EES9_E15deallocate
+__ZN3WTF6VectorIN3JSC10IdentifierELm20EE6shrinkEm
__ZN6WebKit13ProxyInstance16getPropertyNamesEPN3JSC9ExecStateERNS1_17PropertyNameArrayE
__WKPHNPObjectEnumerate
+__XPCGetProperty
+_WKPCGetProperty
+__ZN6WebKit27NetscapePluginInstanceProxy11getPropertyEjRKN3JSC10IdentifierERPcRj
+__XPCHasProperty
+_WKPCHasProperty
+__ZN6WebKit27NetscapePluginInstanceProxy11hasPropertyEjRKN3JSC10IdentifierE
__XPCInvokeDefault
_WKPCInvokeDefault
__ZN6WebKit27NetscapePluginInstanceProxy13invokeDefaultEjPcjRS1_Rj
__ZN3WTF12bitwise_castIldEET_T0_
-__ZN20WebFrameLoaderClient20redirectDataToPluginEPN7WebCore6WidgetE
--[WebHTMLRepresentation _redirectDataToManualLoader:forPluginView:]
--[WebHostedNetscapePluginView pluginView:receivedResponse:]
-__ZN6WebKit26HostedNetscapePluginStreamC1EPNS_27NetscapePluginInstanceProxyEPN7WebCore11FrameLoaderE
-__ZN6WebKit26HostedNetscapePluginStreamC2EPNS_27NetscapePluginInstanceProxyEPN7WebCore11FrameLoaderE
-__ZN6WebKit27NetscapePluginInstanceProxy15setManualStreamEN3WTF10PassRefPtrINS_26HostedNetscapePluginStreamEEE
-__ZN6WebKit26HostedNetscapePluginStream23startStreamWithResponseEP13NSURLResponse
--[WebHostedNetscapePluginView pluginView:receivedData:]
--[WebHostedNetscapePluginView pluginViewFinishedLoading:]
-__ZN6WebKit26HostedNetscapePluginStream10cancelLoadEs
-__ZNK6WebKit26HostedNetscapePluginStream14errorForReasonEs
-__ZNK6WebKit26HostedNetscapePluginStream30pluginCancelledConnectionErrorEv
-__ZN6WebKit26HostedNetscapePluginStream10cancelLoadEP7NSError
-+[WebDatabaseManager sharedWebDatabaseManager]
+__ZNK6WebKit10ProxyField18setValueToInstanceEPN3JSC9ExecStateEPKNS1_8Bindings8InstanceENS1_7JSValueE
+__ZNK6WebKit13ProxyInstance13setFieldValueEPN3JSC9ExecStateEPKNS1_8Bindings5FieldENS1_7JSValueE
+__WKPHNPObjectSetProperty
+__ZNK6WebKit18ProxyRuntimeObject24getInternalProxyInstanceEv
+__XPCStatusText
+_WKPCStatusText
+__ZN6WebKit27NetscapePluginInstanceProxy6statusEPKc
+-[WebFrame(WebKitDebug) numberOfPages::]
+-[WebFrame(WebKitDebug) pageNumberForElement:::]
+__ZN20WebFrameLoaderClient12blockedErrorERKN7WebCore15ResourceRequestE
-[WebDatabaseManager deleteAllDatabases]
+-[WebFrame(WebPrivate) _stringByEvaluatingJavaScriptFromString:withGlobalObject:inScriptWorld:]
-[WebSecurityOrigin initWithURL:]
--[WebSecurityOrigin port]
--[WebSecurityOrigin host]
--[WebSecurityOrigin protocol]
--[WebFrame(WebPrivate) _pauseTransitionOfProperty:onNode:atTime:]
-__ZN3WTF6VectorINS_6RefPtrIN7WebCore7ArchiveEEELm0EE6shrinkEm
+-[WebFrame(WebPrivate) _pauseSVGAnimation:onSMILNode:atTime:]
++[WebView(WebPrivate) _addUserStyleSheetToGroup:world:source:url:whitelist:blacklist:]
+__ZL14toStringVectorP7NSArray
++[WebView(WebPrivate) _addUserScriptToGroup:world:source:url:whitelist:blacklist:injectionTime:]
-[WebDataSource webArchive]
-[WebIconDatabase(WebPendingPublic) setEnabled:]
-[WebIconDatabase(WebInternal) _shutDownIconDatabase]
--[WebPDFView viewState]
--[WebFramePolicyListener invalidate]
-__ZL8hexDigiti
-__ZNK3JSC21UStringSourceProvider8getRangeEii
-__ZN7WebCore13ResourceErrorD2Ev
-+[WebIconDatabase(WebPrivate) _checkIntegrityBeforeOpening]
-__XPCConvertPoint
-_WKPCConvertPoint
-__ZN6WebKit27NetscapePluginInstanceProxy12convertPointEdd17NPCoordinateSpaceRdS2_S1_
--[WebHistoryItem(WebPrivate) _lastVisitedDate]
-__ZN6WebKit27NetscapePluginInstanceProxy10wheelEventEP6NSViewP7NSEvent
-__WKPHPluginInstanceWheelEvent
--[WebPreferences init]
++[WebApplicationCache setMaximumSize:]
+__ZN15WebChromeClient22reachedMaxAppCacheSizeEx
+-[WebHistory(WebPrivate) _itemForURLString:]
+-[WebHistoryPrivate itemForURLString:]
+-[WebHistory itemForURL:]
+-[WebHistoryPrivate itemForURL:]
+-[WebHistoryItem(WebInternal) setTitle:]
+-[WebView(WebPrivate) _dispatchPendingLoadRequests]
+_WKCreateCustomCFReadStream
+_WKSignalCFReadStreamHasBytes
+__ZN15WebChromeClient39shouldReplaceWithGeneratedFileForUploadERKN7WebCore6StringERS1_
+-[WebDefaultUIDelegate webView:shouldReplaceUploadFile:usingGeneratedFilename:]
+_WKSignalCFReadStreamEnd
+__ZNK27MediaSharedUITimelineSlider21timelineRectForBoundsE6CGRect
+__ZN20WebFrameLoaderClient31dispatchUnableToImplementPolicyERKN7WebCore13ResourceErrorE
+__ZN20WebFrameLoaderClient24revertToProvisionalStateEPN7WebCore14DocumentLoaderE
+-[WebDataSource(WebInternal) _revertToProvisionalState]
+-[WebView goToBackForwardItem:]
+-[NSString(WebKitExtras) _webkit_fixedCarbonPOSIXPath]
++[WebView(WebPrivate) _addOriginAccessWhitelistEntryWithSourceOrigin:destinationProtocol:destinationHost:allowDestinationSubdom
+__XPCSetException
+_WKPCSetException
+__ZN6WebKit27NetscapePluginInstanceProxy18setGlobalExceptionERKN7WebCore6StringE
++[WebView(WebPrivate) _removeOriginAccessWhitelistEntryWithSourceOrigin:destinationProtocol:destinationHost:allowDestinationSub
-[WebPreferences(WebPrivate) setApplicationChromeModeEnabled:]
-[WebHistoryItem(WebPrivate) _setTransientProperty:forKey:]
--[WebHistoryItem(WebPrivate) _setLastVisitWasFailure:]
--[WebBackForwardList backItem]
-_WKAdvanceDefaultButtonPulseAnimation
--[WKAppKitDrawDecoyWindow isKeyWindow]
--[WebHostedNetscapePluginView keyDown:]
--[WebTextInputWindowController interpretKeyEvent:string:]
--[WebTextInputPanel _interpretKeyEvent:string:]
-__ZN6WebKit27NetscapePluginInstanceProxy8keyEventEP6NSViewP7NSEvent16NPCocoaEventType
-_WKGetNSEventKeyChar
-__WKPHPluginInstanceKeyboardEvent
--[WebHostedNetscapePluginView keyUp:]
--[WebFrameView scrollLineUp:]
--[WebFrameView _scrollLineVertically:]
--[WebFrameView(WebFrameViewFileInternal) _verticalKeyboardScrollDistance]
--[WebFrameView _scrollVerticallyBy:]
--[WebFrameView scrollLineDown:]
--[WebHostedNetscapePluginView flagsChanged:]
-__ZN6WebKit27NetscapePluginInstanceProxy12flagsChangedEP7NSEvent
--[WebDataSource(WebPrivate) _fileWrapperForURL:]
--[WebDataSource subresourceForURL:]
-__XPCSetMenuBarVisible
-_WKPCSetMenuBarVisible
-__ZN6WebKit23NetscapePluginHostProxy17setMenuBarVisibleEb
--[WebBackForwardList backListWithLimit:]
-__ZL15vectorToNSArrayRN3WTF6VectorINS_6RefPtrIN7WebCore11HistoryItemEEELm0EEE
-__ZL30bumperCarBackForwardHackNeededv
-__ZN3WTF6VectorINS_6RefPtrIN7WebCore11HistoryItemEEELm0EE6shrinkEm
--[WebHistoryItem(WebPrivate) targetItem]
--[WebHistoryItem icon]
--[WebBackForwardList forwardItem]
-__ZN15WebChromeClient13willPopUpMenuEP6NSMenu
-_WKPopupMenu
--[WebBaseNetscapePluginView viewWillMoveToHostWindow:]
--[WebBaseNetscapePluginView viewDidMoveToHostWindow]
--[WebFrame(WebPrivate) _isDescendantOfFrame:]
-__ZN3WTF6VectorItLm2048EE14expandCapacityEmPKt
-__ZN3WTF6VectorItLm2048EE14expandCapacityEm
-__ZN3WTF6VectorItLm2048EE15reserveCapacityEm
--[WebHTMLView copy:]
--[WebHTMLView executeCoreCommandBySelector:]
--[WebView(WebViewEditingInMail) _selectionIsAll]
--[WebView(WebPrivate) _cachedResponseForURL:]
--[NSMutableURLRequest(WebNSURLRequestExtras) _web_setHTTPUserAgent:]
-+[WebView(WebPrivate) suggestedFileExtensionForMIMEType:]
-_WKGetPreferredExtensionForMIMEType
--[WebHTMLView(WebPrivate) pasteboardChangedOwner:]
--[NSURL(WebNSURLExtras) _webkit_isJavaScriptURL]
++[WebURLsWithTitles URLsFromPasteboard:]
++[WebView(WebPrivate) canShowFile:]
++[WebView(WebPrivate) _MIMETypeForFile:]
+-[NSView(WebExtras) _web_dragOperationForDraggingInfo:]
+-[WebIconDatabase(WebPendingPublic) removeAllIcons]
+__ZN21WebIconDatabaseClient25dispatchDidRemoveAllIconsEv
+-[WebIconDatabase(WebInternal) _sendDidRemoveAllIconsNotification]
+-[WebPreferences(WebPrivate) setWebArchiveDebugModeEnabled:]
+-[WebPreferences(WebPrivate) setLocalFileContentSniffingEnabled:]
+-[WebPreferences(WebPrivate) setShowDebugBorders:]
+-[WebPreferences(WebPrivate) setShowRepaintCounter:]
+[WebCoreStatistics statistics]
+[WebCache statistics]
+[WebCoreStatistics javaScriptGlobalObjectsCount]
+[WebCoreStatistics javaScriptProtectedObjectsCount]
+[WebCoreStatistics javaScriptProtectedObjectTypeCounts]
__ZN3WTF9HashTableIPKcSt4pairIS2_jENS_18PairFirstExtractorIS4_EENS_7PtrHashIS2_EENS_14PairHashTraitsINS_10HashTraitsIS2_EENSA_I
++[WebCoreStatistics javaScriptObjectTypeCounts]
+[WebCoreStatistics iconPageURLMappingCount]
+[WebCoreStatistics iconRetainedPageURLCount]
+[WebCoreStatistics iconRecordCount]
@@ -2355,181 +2450,153 @@ __ZN3WTF9HashTableIPKcSt4pairIS2_jENS_18PairFirstExtractorIS4_EENS_7PtrHashIS2_E
+[WebCoreStatistics cachedFontDataInactiveCount]
+[WebCoreStatistics glyphPageCount]
+[WebCoreStatistics memoryStatistics]
-__XPCSetModal
-_WKPCSetModal
-__ZN6WebKit23NetscapePluginHostProxy8setModalEb
-__ZN6WebKit23NetscapePluginHostProxy10beginModalEv
--[WebPlaceholderModalWindow _wantsUserAttention]
-__ZN6WebKit23NetscapePluginHostProxy8endModalEv
--[WebHTMLRepresentation canSaveAsWebArchive]
--[WebFrame(WebInternal) _canSaveAsWebArchive]
-+[WebView(WebPrivate) _decodeData:]
--[WebFrameView documentViewShouldHandlePrint]
--[WebFrameView printOperationWithPrintInfo:]
--[WebFrameView canPrintHeadersAndFooters]
--[WebHTMLView canPrintHeadersAndFooters]
--[WebHTMLView knowsPageRange:]
--[WebHTMLView _availablePaperWidthForPrintOperation:]
--[WebHTMLView _setPrinting:minimumPageWidth:maximumPageWidth:adjustViewSize:]
--[WebView(WebViewPrintingPrivate) _adjustPrintingMarginsForHeaderAndFooter]
--[NSPrintOperation(WebKitExtras) _web_pageSetupScaleFactor]
--[WebView(WebViewPrintingPrivate) _headerHeight]
-__Z28CallUIDelegateReturningFloatP7WebViewP13objc_selector
--[WebView(WebViewPrintingPrivate) _footerHeight]
--[WebHTMLView _scaleFactorForPrintOperation:]
--[WebHTMLView(WebHTMLViewFileInternal) _calculatePrintHeight]
--[WebFrame(WebInternal) _computePageRectsWithPrintWidthScaleFactor:printHeight:]
--[WebHTMLView _provideTotalScaleFactorForPrintOperation:]
--[WebHTMLView beginDocument]
--[WebHTMLView rectForPage:]
--[WebHTMLView drawPageBorderWithSize:]
--[WebView(WebViewPrintingPrivate) _drawHeaderAndFooter]
--[WebView(WebViewPrintingPrivate) _drawHeaderInRect:]
-__Z14CallUIDelegateP7WebViewP13objc_selector6CGRect
--[WebView(WebViewPrintingPrivate) _drawFooterInRect:]
--[WebHTMLView endDocument]
--[WebHTMLView _endPrintMode]
--[WebHTMLView(WebPrivate) _hasInsertionPoint]
--[WebPreferences(WebPrivate) setZoomsTextOnly:]
--[WebView(WebIBActions) makeTextSmaller:]
--[WebFrameView initWithCoder:]
--[WebHTMLRepresentation documentSource]
--[WebView setCustomTextEncodingName:]
--[WebBackForwardList containsItem:]
--[WebRenderNode initWithWebFrameView:]
--[WebRenderNode dealloc]
-__ZL14copyRenderNodePN7WebCore12RenderObjectE
--[WebRenderNode initWithName:position:rect:view:children:]
--[WebRenderNode children]
--[WebRenderNode name]
--[WebRenderNode absolutePositionString]
--[WebRenderNode positionString]
--[WebRenderNode widthString]
--[WebRenderNode heightString]
-+[WebView(WebPrivate) _setAlwaysUsesComplexTextCodePath:]
+[WebCoreStatistics returnFreeMemoryToSystem]
+[WebCache isDisabled]
++[WebCache setDisabled:]
+[WebCoreStatistics purgeInactiveFontData]
--[WebView(WebPrivate) _loadBackForwardListFromOtherView:]
--[WebDatabaseManager origins]
++[WebCoreStatistics cachedPageCount]
++[WebCoreStatistics cachedFrameCount]
++[WebCoreStatistics autoreleasedPageCount]
+-[WebFrame(WebPrivate) _cacheabilityDictionary]
+__ZNK3WTF9HashTableIN7WebCore12AtomicStringESt4pairIS2_PNS_6VectorINS1_23RegisteredEventListenerELm1EEEENS_18PairFirstExtractor
++[WebView(WebPrivate) _setAlwaysUsesComplexTextCodePath:]
+-[WebView(WebPrivate) setBackgroundColor:]
+-[WebPreferences(WebPrivate) setDatabasesEnabled:]
+-[WebPreferences(WebPrivate) setLocalStorageEnabled:]
-[WebInspector isDebuggingJavaScript]
-[WebInspector isProfilingJavaScript]
+-[WebNodeHighlight highlightView]
+__ZN26WebInspectorFrontendClient12detachWindowEv
+-[WebInspectorWindowController detach]
-[WebView customUserAgent]
--[WebInspector show:]
-__ZN18WebInspectorClient10createPageEv
--[WebInspectorWindowController initWithInspectedWebView:]
--[WebInspectorWindowController init]
--[WebView setDrawsBackground:]
--[WebView(WebPrivate) setProhibitsMainFrameScrolling:]
--[WebInspectorWindowController webView]
-__ZN18WebInspectorClient19inspectedURLChangedERKN7WebCore6StringE
-__ZNK18WebInspectorClient17updateWindowTitleEv
-__ZN18WebInspectorClient19localizedStringsURLEv
-__ZN18WebInspectorClient12hiddenPanelsEv
-__ZN18WebInspectorClient13hideHighlightEv
--[WebInspectorWindowController hideHighlight]
-__ZN18WebInspectorClient10showWindowEv
--[WebInspectorWindowController window]
-_WKNSWindowMakeBottomCornersSquare
--[WebInspectorWindowController showWindow:]
--[WebInspectorWindowController setAttachedWindowHeight:]
-__ZN18WebInspectorClient12attachWindowEv
--[WebInspectorWindowController attach]
-[WebInspector showConsole:]
--[WebDefaultEditingDelegate webView:shouldEndEditingInDOMRange:]
-__ZN18WebInspectorClient9highlightEPN7WebCore4NodeE
--[WebInspectorWindowController highlightNode:]
--[WebNodeHighlight initWithTargetView:inspectorController:]
--[WebNodeHighlight(FileInternal) _computeHighlightWindowFrame]
--[WebNodeHighlightView initWithWebNodeHighlight:]
--[WebNodeHighlightView isFlipped]
--[WebNodeHighlight setDelegate:]
--[WebNodeHighlight attach]
--[WebNodeHighlightView drawRect:]
--[WebNodeHighlight inspectorController]
--[WebInspectorWindowController didAttachWebNodeHighlight:]
--[WebView setCurrentNodeHighlight:]
--[WebNodeHighlight detach]
--[WebInspectorWindowController willDetachWebNodeHighlight:]
--[WebNodeHighlightView detachFromWebNodeHighlight]
--[WebNodeHighlight dealloc]
--[WebNodeHighlightView dealloc]
-__ZN18WebInspectorClient12detachWindowEv
--[WebInspectorWindowController detach]
--[WebInspectorWindowController close]
--[WebDefaultUIDelegate webViewFrame:]
--[WebDefaultUIDelegate webView:setFrame:]
--[WebNodeHighlight highlightView]
--[WebHTMLView _wantsKeyDownForEvent:]
--[WebInspectorWindowController windowShouldClose:]
+-[WebDefaultEditingDelegate webView:shouldBeginEditingInDOMRange:]
+-[WebInspectorWindowController validateUserInterfaceItem:]
+-[WebView setShouldCloseWithWindow:]
-[WebFrame(WebPrivate) _setIsDisconnected:]
-__ZN18WebInspectorClient11closeWindowEv
+-[WebDefaultEditingDelegate webView:shouldEndEditingInDOMRange:]
+-[WebHTMLView(WebPrivate) _canEditRichly]
+-[WebHTMLView(WebPrivate) _hasInsertionPoint]
+-[WebView(WebFileInternal) _isLoading]
+-[WebInspectorWindowController toggleDebuggingJavaScript:]
-[WebInspector toggleDebuggingJavaScript:]
-[WebInspector startDebuggingJavaScript:]
+-[WebInspectorWindowController toggleProfilingJavaScript:]
-[WebInspector toggleProfilingJavaScript:]
-[WebInspector startProfilingJavaScript:]
--[WebInspector stopProfilingJavaScript:]
+__ZNK7WebCore6Widget12isPluginViewEv
+-[WebDefaultUIDelegate webViewFocus:]
+-[WebPreferences(WebPrivate) _setUseSiteSpecificSpoofing:]
+__ZN26WebInspectorFrontendClient12attachWindowEv
+-[WebInspectorWindowController attach]
+-[WebInspectorWindowController webView:dragDestinationActionMaskForDraggingInfo:]
+-[WebInspectorWindowController windowShouldClose:]
+-[WebHostedNetscapePluginView keyDown:]
+-[WebTextInputWindowController interpretKeyEvent:string:]
+-[WebTextInputPanel _interpretKeyEvent:string:]
+__ZN6WebKit27NetscapePluginInstanceProxy8keyEventEP6NSViewP7NSEvent16NPCocoaEventType
+_WKGetNSEventKeyChar
+__WKPHPluginInstanceKeyboardEvent
+-[WebHostedNetscapePluginView keyUp:]
+-[WebHostedNetscapePluginView flagsChanged:]
+__ZN6WebKit27NetscapePluginInstanceProxy12flagsChangedEP7NSEvent
+-[WebHostedNetscapePluginView scrollWheel:]
+__ZN6WebKit27NetscapePluginInstanceProxy10wheelEventEP6NSViewP7NSEvent
+__WKPHPluginInstanceWheelEvent
+__XPCGetPluginElementNPObject
+_WKPCGetPluginElementNPObject
+__ZN6WebKit27NetscapePluginInstanceProxy24getPluginElementNPObjectERj
+-[WebFrameView(WebPrivate) _setCustomScrollViewClass:]
+-[DOMHTMLIFrameElement(WebDOMHTMLIFrameElementOperations) contentFrame]
+-[WebView(WebPendingPublic) canMarkAllTextMatches]
+-[WebView(WebPendingPublic) searchFor:direction:caseSensitive:wrap:startInSelection:]
+-[WebHTMLView(WebDocumentPrivateProtocols) searchFor:direction:caseSensitive:wrap:startInSelection:]
+-[WebView(WebPendingPublic) rectsForTextMatches]
+-[WebHTMLView(WebDocumentInternalProtocols) rectsForTextMatches]
+__ZN3WTF6VectorIN7WebCore7IntRectELm0EE6shrinkEm
+-[WebHTMLView(WebDocumentPrivateProtocols) selectionRect]
+-[WebHTMLView(WebDocumentPrivateProtocols) selectionTextRects]
+__ZN3WTF6VectorIN7WebCore9FloatRectELm0EE6shrinkEm
+-[WebHTMLView(WebDocumentPrivateProtocols) selectionImageForcingBlackText:]
+-[WebHTMLView(WebDocumentPrivateProtocols) selectedString]
+-[WebFrame(WebInternal) _selectedString]
++[WebStringTruncator widthOfString:font:]
+__ZNK6WebKit26HostedNetscapePluginStream30pluginCancelledConnectionErrorEv
+-[WebBaseNetscapePluginView pluginPackage]
+__XPCSetFullscreenWindowIsShowing
+_WKPCSetFullscreenWindowIsShowing
+__ZN6WebKit23NetscapePluginHostProxy28setFullscreenWindowIsShowingEb
+__ZNK6WebKit23NetscapePluginHostProxy18didEnterFullscreenEv
+__XPCSetMenuBarVisible
+_WKPCSetMenuBarVisible
+__ZN6WebKit23NetscapePluginHostProxy17setMenuBarVisibleEb
+__ZNK6WebKit23NetscapePluginHostProxy17didExitFullscreenEv
+__ZN15WebChromeClient27runBeforeUnloadConfirmPanelERKN7WebCore6StringEPNS0_5FrameE
+-[WebFrameView scrollLineDown:]
+-[WebFrameView _scrollLineVertically:]
+-[WebFrameView(WebFrameViewFileInternal) _verticalKeyboardScrollDistance]
+__ZN25MediaSharedUIImageElement9glowColorEv
+-[WebView(WebViewEventHandling) mouseDown:]
+-[NSEvent(WebExtras) _web_isEscapeKeyEvent]
+-[NSEvent(WebExtras) _web_isKeyEvent:]
++[NSURL(WebNSURLExtras) _web_URLWithData:]
+-[WebHTMLView namesOfPromisedFilesDroppedAtDestination:]
+-[NSString(WebKitExtras) _webkit_hasCaseInsensitiveSuffix:]
+-[WebHTMLView(WebPrivate) pasteboardChangedOwner:]
+-[WebView prepareForDragOperation:]
+-[WebHostedNetscapePluginView privateBrowsingModeDidChange]
+__ZN6WebKit27NetscapePluginInstanceProxy28privateBrowsingModeDidChangeEb
+__WKPHPluginInstancePrivateBrowsingModeDidChange
+-[WebFrame(WebPrivate) _allowsFollowingLink:]
+-[WebElementDictionary _imageRect]
+-[WebDataSource(WebPrivate) _fileWrapperForURL:]
+-[WebDataSource subresourceForURL:]
+-[WebHTMLView copy:]
+-[WebView(WebViewEditingInMail) _selectionIsAll]
+-[WebDefaultUIDelegate webViewFrame:]
+-[WebFrame(WebPrivate) _firstLayoutDone]
-[WebHistoryItem(WebPrivate) setRSSFeedReferrer:]
--[NSView(WebExtras) _web_dragOperationForDraggingInfo:]
--[NSString(WebKitExtras) _webkit_filenameByFixingIllegalCharacters]
+_WKAdvanceDefaultButtonPulseAnimation
+-[WKAppKitDrawDecoyWindow isKeyWindow]
+-[WebHTMLRepresentation canSaveAsWebArchive]
+-[WebFrame(WebInternal) _canSaveAsWebArchive]
++[WebView(WebPrivate) suggestedFileExtensionForMIMEType:]
+_WKGetPreferredExtensionForMIMEType
-[WebIconDatabase(WebInternal) _scaleIcon:toSize:]
--[WebPDFView hitTest:]
+-[WebPDFView selectedString]
+-[WebPDFView rectsForTextMatches]
+-[WebPDFView(FileInternal) _visiblePDFPages]
+-[WebPDFView unmarkAllTextMatches]
+-[WebPDFView(FileInternal) _setTextMatches:]
-[WebPDFView(FileInternal) _PDFDocumentViewMightHaveScrolled:]
--[NSView(WebExtras) _webView]
--[WebPDFView(FileInternal) _updatePreferencesSoon]
--[WebPDFView(FileInternal) _updatePreferences:]
--[WebPreferences(WebPrivate) setPDFScaleFactor:]
--[WebPreferences _setFloatValue:forKey:]
--[NSMutableDictionary(WebNSDictionaryExtras) _webkit_setFloat:forKey:]
--[WebPreferences(WebPrivate) setPDFDisplayMode:]
--[WebPDFView PDFViewOpenPDFInNativeApplication:]
--[WebPDFView(FileInternal) _openWithFinder:]
--[WebPDFView(FileInternal) _path]
--[WebPDFView(FileInternal) _temporaryPDFDirectoryPath]
-[WebPDFView setMarkedTextMatchesAreHighlighted:]
-[WebPDFView markAllMatchesForText:caseSensitive:limit:]
-[WebPDFView(FileInternal) _nextMatchFor:direction:caseSensitive:wrap:fromSelection:startInSelection:]
--[WebPDFView(FileInternal) _setTextMatches:]
--[WebPDFView selectedString]
+-[NSMutableDictionary(WebNSDictionaryExtras) _webkit_setFloat:forKey:]
-[WebPDFView searchFor:direction:caseSensitive:wrap:startInSelection:]
--[WebPDFView unmarkAllTextMatches]
--[WebPDFView rectsForTextMatches]
--[WebPDFView(FileInternal) _visiblePDFPages]
-[WebPDFView selectionRect]
-[WebPDFView selectionTextRects]
-[WebPDFView selectionImageForcingBlackText:]
-[WebPDFView selectedAttributedString]
-[WebPDFView(FileInternal) _scaledAttributedString:]
-+[WebURLsWithTitles URLsFromPasteboard:]
-+[WebView(WebPrivate) canShowFile:]
-+[WebView(WebPrivate) _MIMETypeForFile:]
-__ZN20WebFrameLoaderClient41dispatchDidReceiveAuthenticationChallengeEPN7WebCore14DocumentLoaderEmRKNS0_23AuthenticationChallen
-+[WebPanelAuthenticationHandler sharedHandler]
--[WebPanelAuthenticationHandler init]
--[WebPanelAuthenticationHandler startAuthentication:window:]
--[WebAuthenticationPanel initWithCallback:selector:]
--[NSMutableDictionary(WebNSDictionaryExtras) _webkit_setObject:forUncopiedKey:]
--[WebAuthenticationPanel runAsSheetOnWindow:withChallenge:]
--[WebAuthenticationPanel setUpForChallenge:]
--[WebAuthenticationPanel loadNib]
--[NSControl(WebExtras) sizeToFitAndAdjustWindowHeight]
--[NonBlockingPanel _blocksActionWhenModal:]
--[WebAuthenticationPanel logIn:]
--[WebAuthenticationPanel sheetDidEnd:returnCode:contextInfo:]
--[WebPanelAuthenticationHandler _authenticationDoneWithChallenge:result:]
--[WebAuthenticationPanel dealloc]
--[WebPanelAuthenticationHandler tryNextChallengeForWindow:]
--[WebView(WebPrivate) setBackgroundColor:]
-__ZN15WebChromeClient23dashboardRegionsChangedEv
--[WebView(WebPrivate) _addScrollerDashboardRegions:]
--[WebView(WebPrivate) _addScrollerDashboardRegions:from:]
--[WebView(WebPrivate) _addScrollerDashboardRegionsForFrameView:dashboardRegions:]
--[WebView(WebPrivate) _setAdditionalWebPlugInPaths:]
--[WebFrame(WebPrivate) _recursive_resumeNullEventsForAllNetscapePlugins]
--[WebHTMLView(WebPrivate) _resumeNullEventsForAllNetscapePlugins]
-__ZNK7WebCore6Widget11isScrollbarEv
--[WebPreferences(WebPrivate) _setUseSiteSpecificSpoofing:]
--[WebFrame(WebPrivate) _recursive_pauseNullEventsForAllNetscapePlugins]
--[WebHTMLView(WebPrivate) _pauseNullEventsForAllNetscapePlugins]
-+[NSObject(WebScripting) isSelectorExcludedFromWebScript:]
--[WebHTMLView(WebInternal) _destroyAllWebPlugins]
+-[WebPDFView PDFViewSavePDFToDownloadFolder:]
+__Z14CallUIDelegateP7WebViewP13objc_selectorP11objc_objecta
+-[WebPDFView PDFViewOpenPDFInNativeApplication:]
+-[WebPDFView(FileInternal) _openWithFinder:]
+-[WebPDFView(FileInternal) _path]
+-[WebPDFView(FileInternal) _temporaryPDFDirectoryPath]
+-[WebBackForwardList containsItem:]
++[WebURLsWithTitles titlesFromPasteboard:]
+-[WebDownloadInternal download:shouldDecodeSourceDataOfMIMEType:]
+-[WebView(WebPrivate) _cachedResponseForURL:]
+-[NSMutableURLRequest(WebNSURLRequestExtras) _web_setHTTPUserAgent:]
+-[WebHTMLView writeSelectionToPasteboard:types:]
+-[WebHTMLView(WebDocumentPrivateProtocols) writeSelectionWithPasteboardTypes:toPasteboard:]
+-[WebHTMLView(WebHTMLViewFileInternal) _writeSelectionWithPasteboardTypes:toPasteboard:cachedAttributedString:]
+__ZN20WebContextMenuClient11downloadURLERKN7WebCore4KURLE
+-[WebView(WebPrivate) _downloadURL:]
+-[WebDownload _initWithRequest:delegate:directory:]
+-[WebDownload initWithRequest:delegate:]
+-[NSURL(WebNSURLExtras) _web_URLWithLowercasedScheme]
+-[NSEvent(WebExtras) _web_isReturnOrEnterKeyEvent]
+-[WebPreferences setDefaultTextEncodingName:]
diff --git a/WebKit/mac/WebView/WebFrame.mm b/WebKit/mac/WebView/WebFrame.mm
index b4169b6..7545bd8 100644
--- a/WebKit/mac/WebView/WebFrame.mm
+++ b/WebKit/mac/WebView/WebFrame.mm
@@ -541,7 +541,15 @@ static inline WebDataSource *dataSource(DocumentLoader* loader)
FrameView* view = _private->coreFrame->view();
- bool shouldFlatten = WKCGContextIsBitmapContext(ctx) && [getWebView(self) _includesFlattenedCompositingLayersWhenDrawingToBitmap];
+ bool shouldFlatten = false;
+ if (Frame* parentFrame = _private->coreFrame->tree()->parent()) {
+ // For subframes, we need to inherit the paint behavior from our parent
+ FrameView* parentView = parentFrame ? parentFrame->view() : 0;
+ if (parentView)
+ shouldFlatten = parentView->paintBehavior() & PaintBehaviorFlattenCompositingLayers;
+ } else
+ shouldFlatten = WKCGContextIsBitmapContext(ctx) && [getWebView(self) _includesFlattenedCompositingLayersWhenDrawingToBitmap];
+
PaintBehavior oldBehavior = PaintBehaviorNormal;
if (shouldFlatten) {
oldBehavior = view->paintBehavior();
diff --git a/WebKit/mac/WebView/WebVideoFullscreenController.mm b/WebKit/mac/WebView/WebVideoFullscreenController.mm
index 21e4814..8cbe0a0 100644
--- a/WebKit/mac/WebView/WebVideoFullscreenController.mm
+++ b/WebKit/mac/WebView/WebVideoFullscreenController.mm
@@ -93,8 +93,8 @@ SOFT_LINK_POINTER(QTKit, QTMovieRateDidChangeNotification, NSString *)
QTMovieLayer *layer = [[getQTMovieLayerClass() alloc] init];
[[window contentView] setLayer:layer];
[[window contentView] setWantsLayer:YES];
- if (_mediaElement)
- [layer setMovie:_mediaElement->platformMedia().qtMovie];
+ if (_mediaElement && _mediaElement->platformMedia().type == WebCore::PlatformMedia::QTMovieType)
+ [layer setMovie:_mediaElement->platformMedia().media.qtMovie];
[window setHasShadow:YES]; // This is nicer with a shadow.
[window setLevel:NSPopUpMenuWindowLevel-1];
[layer release];
@@ -114,7 +114,7 @@ SOFT_LINK_POINTER(QTKit, QTMovieRateDidChangeNotification, NSString *)
#else
_mediaElement = mediaElement;
if ([self isWindowLoaded]) {
- QTMovie *movie = _mediaElement->platformMedia().qtMovie;
+ QTMovie *movie = _mediaElement->platformMedia().type == WebCore::PlatformMedia::QTMovieType ? _mediaElement->platformMedia().media.qtMovie : 0;
QTMovieLayer *movieLayer = (QTMovieLayer *)[[[self fullscreenWindow] contentView] layer];
ASSERT(movieLayer && [movieLayer isKindOfClass:[getQTMovieLayerClass() class]]);
diff --git a/WebKit/mac/WebView/WebView.mm b/WebKit/mac/WebView/WebView.mm
index 2442846..36313b4 100644
--- a/WebKit/mac/WebView/WebView.mm
+++ b/WebKit/mac/WebView/WebView.mm
@@ -530,6 +530,21 @@ static NSString *createUserVisibleWebKitVersionString()
return [NSString stringWithFormat:@"Mozilla/5.0 (Macintosh; U; " PROCESSOR " Mac OS X %@; %@) AppleWebKit/%@ (KHTML, like Gecko)", osVersion, language, webKitVersion];
}
++ (void)_reportException:(JSValueRef)exception inContext:(JSContextRef)context
+{
+ if (!exception || !context)
+ return;
+
+ JSLock lock(SilenceAssertionsOnly);
+ JSC::ExecState* execState = toJS(context);
+
+ // Make sure the context has a DOMWindow global object, otherwise this context didn't originate from a WebView.
+ if (!toJSDOMWindow(execState->lexicalGlobalObject()))
+ return;
+
+ reportException(execState, toJS(execState, exception));
+}
+
static void WebKitInitializeApplicationCachePathIfNecessary()
{
#if ENABLE(OFFLINE_WEB_APPLICATIONS)
@@ -1084,8 +1099,9 @@ static bool fastDocumentTeardownEnabled()
// Deleteing the WebCore::Page will clear the page cache so we call destroy on
// all the plug-ins in the page cache to break any retain cycles.
// See comment in HistoryItem::releaseAllPendingPageCaches() for more information.
- delete _private->page;
+ Page* page = _private->page;
_private->page = 0;
+ delete page;
if (_private->hasSpellCheckerDocumentTag) {
[[NSSpellChecker sharedSpellChecker] closeSpellDocumentWithTag:_private->spellCheckerDocumentTag];
diff --git a/WebKit/mac/WebView/WebViewPrivate.h b/WebKit/mac/WebView/WebViewPrivate.h
index 327743a..cedc62c 100644
--- a/WebKit/mac/WebView/WebViewPrivate.h
+++ b/WebKit/mac/WebView/WebViewPrivate.h
@@ -28,6 +28,7 @@
#import <WebKit/WebView.h>
#import <WebKit/WebFramePrivate.h>
+#import <JavaScriptCore/JSBase.h>
#if !defined(ENABLE_DASHBOARD_SUPPORT)
#define ENABLE_DASHBOARD_SUPPORT 1
@@ -240,6 +241,14 @@ Could be worth adding to the API.
*/
- (void)_loadBackForwardListFromOtherView:(WebView *)otherView;
+/*
+ @method _reportException:inContext:
+ @abstract Logs the exception to the Web Inspector. This only needs called for exceptions that
+ occur while using the JavaScriptCore APIs with a context owned by a WebKit.
+ @param exception The exception value to log.
+ @param context The context the exception occured in.
+*/
++ (void)_reportException:(JSValueRef)exception inContext:(JSContextRef)context;
/*!
@method _dispatchPendingLoadRequests:
diff --git a/WebKit/qt/Api/headers.pri b/WebKit/qt/Api/headers.pri
index 1a42597..29bb125 100644
--- a/WebKit/qt/Api/headers.pri
+++ b/WebKit/qt/Api/headers.pri
@@ -1,6 +1,7 @@
WEBKIT_API_HEADERS = $$PWD/qwebframe.h \
$$PWD/qgraphicswebview.h \
$$PWD/qwebkitglobal.h \
+ $$PWD/qwebkitplatformplugin.h \
$$PWD/qwebpage.h \
$$PWD/qwebview.h \
$$PWD/qwebsettings.h \
diff --git a/WebKit/qt/Api/qgraphicswebview.cpp b/WebKit/qt/Api/qgraphicswebview.cpp
index 821e699..904201e 100644
--- a/WebKit/qt/Api/qgraphicswebview.cpp
+++ b/WebKit/qt/Api/qgraphicswebview.cpp
@@ -25,7 +25,7 @@
#include "qwebframe_p.h"
#include "qwebpage.h"
#include "qwebpage_p.h"
-#include "QWebPageClient.h"
+#include "PageClientQt.h"
#include "FrameView.h"
#include "GraphicsContext.h"
#include "IntRect.h"
@@ -46,98 +46,24 @@
#endif
#include <Settings.h>
-// the overlay is here for one reason only: to have the scroll-bars and other
-// extra UI elements appear on top of any QGraphicsItems created by CSS compositing layers
-class QGraphicsWebViewOverlay : public QGraphicsItem {
- public:
- QGraphicsWebViewOverlay(QGraphicsWebView* view)
- :QGraphicsItem(view)
- , q(view)
- {
- setPos(0, 0);
-#if QT_VERSION >= QT_VERSION_CHECK(4, 6, 0)
- setFlag(QGraphicsItem::ItemUsesExtendedStyleOption, true);
-#endif
- setCacheMode(QGraphicsItem::DeviceCoordinateCache);
- }
-
- QRectF boundingRect() const
- {
- return q->boundingRect();
- }
-
- void paint(QPainter* painter, const QStyleOptionGraphicsItem* options, QWidget*)
- {
- q->page()->mainFrame()->render(painter, static_cast<QWebFrame::RenderLayer>(QWebFrame::AllLayers&(~QWebFrame::ContentsLayer)), options->exposedRect.toRect());
- }
-
- friend class QGraphicsWebView;
- QGraphicsWebView* q;
-};
+using namespace WebCore;
-class QGraphicsWebViewPrivate : public QWebPageClient {
+class QGraphicsWebViewPrivate {
public:
QGraphicsWebViewPrivate(QGraphicsWebView* parent)
: q(parent)
, page(0)
- , resizesToContents(false)
-#if USE(ACCELERATED_COMPOSITING)
- , rootGraphicsLayer(0)
- , shouldSync(false)
-#endif
- {
-#if USE(ACCELERATED_COMPOSITING)
- // the overlay and stays alive for the lifetime of
- // this QGraphicsWebView as the scrollbars are needed when there's no compositing
- q->setFlag(QGraphicsItem::ItemUsesExtendedStyleOption);
- syncMetaMethod = q->metaObject()->method(q->metaObject()->indexOfMethod("syncLayers()"));
-#endif
- }
+ , resizesToContents(false) {}
virtual ~QGraphicsWebViewPrivate();
- virtual void scroll(int dx, int dy, const QRect&);
- virtual void update(const QRect& dirtyRect);
- virtual void setInputMethodEnabled(bool enable);
- virtual bool inputMethodEnabled() const;
-#if QT_VERSION >= 0x040600
- virtual void setInputMethodHint(Qt::InputMethodHint hint, bool enable);
-#endif
-
-#ifndef QT_NO_CURSOR
- virtual QCursor cursor() const;
- virtual void updateCursor(const QCursor& cursor);
-#endif
-
- virtual QPalette palette() const;
- virtual int screenNumber() const;
- virtual QWidget* ownerWidget() const;
- virtual QRect geometryRelativeToOwnerWidget() const;
-
- virtual QObject* pluginParent() const;
-
- virtual QStyle* style() const;
-
-#if USE(ACCELERATED_COMPOSITING)
- virtual void setRootGraphicsLayer(QGraphicsItem* layer);
- virtual void markForSync(bool scheduleSync);
- void updateCompositingScrollPosition();
-
- // QGraphicsWebView can render composited layers
- virtual bool allowsAcceleratedCompositing() const { return true; }
-#endif
+ void syncLayers();
void updateResizesToContentsForPage();
- QRectF graphicsItemVisibleRect() const;
-#if ENABLE(TILED_BACKING_STORE)
- void updateTiledBackingStoreScale();
-#endif
+ virtual QRectF graphicsItemVisibleRect() const;
- void createOrDeleteOverlay();
- void syncLayers();
-
- void unsetPageIfExists();
+ void detachCurrentPage();
void _q_doLoadFinished(bool success);
void _q_contentsSizeChanged(const QSize&);
@@ -148,101 +74,21 @@ public:
QGraphicsWebView* q;
QWebPage* page;
-
bool resizesToContents;
- // the overlay gets instantiated when the root layer is attached, and get deleted when it's detached
- QSharedPointer<QGraphicsWebViewOverlay> overlay;
-
- // we need to put the root graphics layer behind the overlay (which contains the scrollbar)
- enum { RootGraphicsLayerZValue, OverlayZValue };
-
-#if USE(ACCELERATED_COMPOSITING)
- QGraphicsItem* rootGraphicsLayer;
- // we need to sync the layers if we get a special call from the WebCore
- // compositor telling us to do so. We'll get that call from ChromeClientQt
- bool shouldSync;
-
- // we have to flush quite often, so we use a meta-method instead of QTimer::singleShot for putting the event in the queue
- QMetaMethod syncMetaMethod;
-#endif
+ // Just a convenience to avoid using page->client->overlay always
+ QSharedPointer<QGraphicsItemOverlay> overlay;
};
QGraphicsWebViewPrivate::~QGraphicsWebViewPrivate()
{
-#if USE(ACCELERATED_COMPOSITING)
- if (rootGraphicsLayer) {
- // we don't need to delete the root graphics layer
- // The lifecycle is managed in GraphicsLayerQt.cpp
- rootGraphicsLayer->setParentItem(0);
- q->scene()->removeItem(rootGraphicsLayer);
- }
-#endif
-}
-
-void QGraphicsWebViewPrivate::createOrDeleteOverlay()
-{
- bool useOverlay = false;
- if (!resizesToContents) {
-#if USE(ACCELERATED_COMPOSITING)
- useOverlay = useOverlay || rootGraphicsLayer;
-#endif
-#if ENABLE(TILED_BACKING_STORE)
- useOverlay = useOverlay || QWebFramePrivate::core(q->page()->mainFrame())->tiledBackingStore();
-#endif
- }
- if (useOverlay == !!overlay)
- return;
- if (useOverlay) {
- overlay = QSharedPointer<QGraphicsWebViewOverlay>(new QGraphicsWebViewOverlay(q));
- overlay->setZValue(OverlayZValue);
- } else
- overlay.clear();
-}
-
-#if USE(ACCELERATED_COMPOSITING)
-void QGraphicsWebViewPrivate::setRootGraphicsLayer(QGraphicsItem* layer)
-{
- if (rootGraphicsLayer) {
- rootGraphicsLayer->setParentItem(0);
- q->scene()->removeItem(rootGraphicsLayer);
- QWebFramePrivate::core(q->page()->mainFrame())->view()->syncCompositingStateRecursive();
- }
-
- rootGraphicsLayer = layer;
-
- if (layer) {
- layer->setFlag(QGraphicsItem::ItemClipsChildrenToShape, true);
- layer->setParentItem(q);
- layer->setZValue(RootGraphicsLayerZValue);
- updateCompositingScrollPosition();
- }
- createOrDeleteOverlay();
-}
-
-void QGraphicsWebViewPrivate::markForSync(bool scheduleSync)
-{
- shouldSync = true;
- if (scheduleSync)
- syncMetaMethod.invoke(q, Qt::QueuedConnection);
-}
-
-void QGraphicsWebViewPrivate::updateCompositingScrollPosition()
-{
- if (rootGraphicsLayer && q->page() && q->page()->mainFrame()) {
- const QPoint scrollPosition = q->page()->mainFrame()->scrollPosition();
- rootGraphicsLayer->setPos(-scrollPosition);
- }
+ detachCurrentPage();
}
-#endif
void QGraphicsWebViewPrivate::syncLayers()
{
#if USE(ACCELERATED_COMPOSITING)
- if (shouldSync) {
- QWebFramePrivate::core(q->page()->mainFrame())->view()->syncCompositingStateRecursive();
- shouldSync = false;
- }
+ static_cast<PageClientQGraphicsWidget*>(page->d->client)->syncLayers();
#endif
}
@@ -275,117 +121,6 @@ void QGraphicsWebViewPrivate::_q_pageDestroyed()
q->setPage(0);
}
-void QGraphicsWebViewPrivate::scroll(int dx, int dy, const QRect& rectToScroll)
-{
- q->scroll(qreal(dx), qreal(dy), QRectF(rectToScroll));
-
-#if USE(ACCELERATED_COMPOSITING)
- updateCompositingScrollPosition();
-#endif
-}
-
-void QGraphicsWebViewPrivate::update(const QRect & dirtyRect)
-{
- q->update(QRectF(dirtyRect));
-
- createOrDeleteOverlay();
- if (overlay)
- overlay->update(QRectF(dirtyRect));
-#if USE(ACCELERATED_COMPOSITING)
- updateCompositingScrollPosition();
- syncLayers();
-#endif
-}
-
-
-void QGraphicsWebViewPrivate::setInputMethodEnabled(bool enable)
-{
-#if QT_VERSION >= QT_VERSION_CHECK(4, 6, 0)
- q->setFlag(QGraphicsItem::ItemAcceptsInputMethod, enable);
-#endif
-}
-
-bool QGraphicsWebViewPrivate::inputMethodEnabled() const
-{
-#if QT_VERSION >= QT_VERSION_CHECK(4, 6, 0)
- return q->flags() & QGraphicsItem::ItemAcceptsInputMethod;
-#else
- return false;
-#endif
-}
-
-#if QT_VERSION >= 0x040600
-void QGraphicsWebViewPrivate::setInputMethodHint(Qt::InputMethodHint hint, bool enable)
-{
- if (enable)
- q->setInputMethodHints(q->inputMethodHints() | hint);
- else
- q->setInputMethodHints(q->inputMethodHints() & ~hint);
-}
-#endif
-#ifndef QT_NO_CURSOR
-QCursor QGraphicsWebViewPrivate::cursor() const
-{
- return q->cursor();
-}
-
-void QGraphicsWebViewPrivate::updateCursor(const QCursor& cursor)
-{
- q->setCursor(cursor);
-}
-#endif
-
-QPalette QGraphicsWebViewPrivate::palette() const
-{
- return q->palette();
-}
-
-int QGraphicsWebViewPrivate::screenNumber() const
-{
-#if defined(Q_WS_X11)
- if (QGraphicsScene* scene = q->scene()) {
- const QList<QGraphicsView*> views = scene->views();
-
- if (!views.isEmpty())
- return views.at(0)->x11Info().screen();
- }
-#endif
-
- return 0;
-}
-
-QWidget* QGraphicsWebViewPrivate::ownerWidget() const
-{
- if (QGraphicsScene* scene = q->scene()) {
- const QList<QGraphicsView*> views = scene->views();
- return views.value(0);
- }
- return 0;
-}
-
-QRect QGraphicsWebViewPrivate::geometryRelativeToOwnerWidget() const
-{
- if (!q->scene())
- return QRect();
-
- QList<QGraphicsView*> views = q->scene()->views();
- if (views.isEmpty())
- return QRect();
-
- QGraphicsView* view = views.at(0);
- return view->mapFromScene(q->boundingRect()).boundingRect();
-}
-
-QObject* QGraphicsWebViewPrivate::pluginParent() const
-{
- return q;
-}
-
-QStyle* QGraphicsWebViewPrivate::style() const
-{
- return q->style();
-}
-
void QGraphicsWebViewPrivate::updateResizesToContentsForPage()
{
ASSERT(page);
@@ -418,7 +153,7 @@ void QGraphicsWebViewPrivate::_q_contentsSizeChanged(const QSize& size)
void QGraphicsWebViewPrivate::_q_scaleChanged()
{
#if ENABLE(TILED_BACKING_STORE)
- updateTiledBackingStoreScale();
+ static_cast<PageClientQGraphicsWidget*>(page->d->client)->updateTiledBackingStoreScale();
#endif
}
@@ -441,16 +176,6 @@ QRectF QGraphicsWebViewPrivate::graphicsItemVisibleRect() const
return q->mapRectFromScene(QRectF(QPoint(xPosition, yPosition), views[0]->viewport()->size()));
}
-#if ENABLE(TILED_BACKING_STORE)
-void QGraphicsWebViewPrivate::updateTiledBackingStoreScale()
-{
- WebCore::TiledBackingStore* backingStore = QWebFramePrivate::core(page->mainFrame())->tiledBackingStore();
- if (!backingStore)
- return;
- backingStore->setContentsScale(q->scale());
-}
-#endif
-
/*!
\class QGraphicsWebView
\brief The QGraphicsWebView class allows Web content to be added to a GraphicsView.
@@ -554,18 +279,6 @@ QGraphicsWebView::QGraphicsWebView(QGraphicsItem* parent)
*/
QGraphicsWebView::~QGraphicsWebView()
{
- if (d->page) {
-#if QT_VERSION >= 0x040600
- d->page->d->view.clear();
-#else
- d->page->d->view = 0;
-#endif
- d->page->d->client = 0; // unset the page client
- }
-
- if (d->page && d->page->parent() == this)
- delete d->page;
-
delete d;
}
@@ -599,12 +312,7 @@ void QGraphicsWebView::paint(QPainter* painter, const QStyleOptionGraphicsItem*
#if ENABLE(TILED_BACKING_STORE)
if (WebCore::TiledBackingStore* backingStore = QWebFramePrivate::core(page()->mainFrame())->tiledBackingStore()) {
// FIXME: We should set the backing store viewport earlier than in paint
- if (d->resizesToContents)
- backingStore->viewportChanged(WebCore::IntRect(d->graphicsItemVisibleRect()));
- else {
- QRectF visibleRect(d->page->mainFrame()->scrollPosition(), d->page->mainFrame()->geometry().size());
- backingStore->viewportChanged(WebCore::IntRect(visibleRect));
- }
+ backingStore->adjustVisibleRect();
// QWebFrame::render is a public API, bypass it for tiled rendering so behavior does not need to change.
WebCore::GraphicsContext context(painter);
page()->mainFrame()->d->renderFromTiledBackingStore(&context, option->exposedRect.toAlignedRect());
@@ -713,7 +421,7 @@ bool QGraphicsWebView::event(QEvent* event)
// WebCore.
// FIXME: Add a QEvent::CursorUnset or similar to Qt.
if (cursor().shape() == Qt::ArrowCursor)
- d->resetCursor();
+ d->page->d->client->resetCursor();
}
#endif
}
@@ -721,18 +429,19 @@ bool QGraphicsWebView::event(QEvent* event)
return QGraphicsWidget::event(event);
}
-void QGraphicsWebViewPrivate::unsetPageIfExists()
+void QGraphicsWebViewPrivate::detachCurrentPage()
{
if (!page)
return;
- // if the page client is the special client constructed for
- // delegating the responsibilities to a QWidget, we need
- // to destroy it.
-
- if (page->d->client && page->d->client->isQWidgetClient())
- delete page->d->client;
+#if QT_VERSION >= 0x040600
+ page->d->view.clear();
+#else
+ page->d->view = 0;
+#endif
+ // The client has always to be deleted.
+ delete page->d->client;
page->d->client = 0;
// if the page was created by us, we own it and need to
@@ -742,6 +451,8 @@ void QGraphicsWebViewPrivate::unsetPageIfExists()
delete page;
else
page->disconnect(q);
+
+ page = 0;
}
/*!
@@ -758,16 +469,17 @@ void QGraphicsWebView::setPage(QWebPage* page)
if (d->page == page)
return;
- d->unsetPageIfExists();
+ d->detachCurrentPage();
d->page = page;
if (!d->page)
return;
- d->page->d->client = d; // set the page client
+ d->page->d->client = new PageClientQGraphicsWidget(this, page); // set the page client
+ d->overlay = static_cast<PageClientQGraphicsWidget*>(d->page->d->client)->overlay;
if (d->overlay)
- d->overlay->prepareGeometryChange();
+ d->overlay->prepareGraphicsItemGeometryChange();
QSize size = geometry().size().toSize();
page->setViewportSize(size);
@@ -878,7 +590,7 @@ qreal QGraphicsWebView::zoomFactor() const
void QGraphicsWebView::updateGeometry()
{
if (d->overlay)
- d->overlay->prepareGeometryChange();
+ d->overlay->prepareGraphicsItemGeometryChange();
QGraphicsWidget::updateGeometry();
@@ -896,7 +608,7 @@ void QGraphicsWebView::setGeometry(const QRectF& rect)
QGraphicsWidget::setGeometry(rect);
if (d->overlay)
- d->overlay->prepareGeometryChange();
+ d->overlay->prepareGraphicsItemGeometryChange();
if (!d->page)
return;
@@ -1130,8 +842,10 @@ void QGraphicsWebView::setResizesToContents(bool enabled)
if (d->resizesToContents == enabled)
return;
d->resizesToContents = enabled;
- if (d->page)
+ if (d->page) {
+ static_cast<PageClientQGraphicsWidget*>(d->page->d->client)->viewResizesToContents = enabled;
d->updateResizesToContentsForPage();
+ }
}
bool QGraphicsWebView::resizesToContents() const
diff --git a/WebKit/qt/Api/qwebdatabase.cpp b/WebKit/qt/Api/qwebdatabase.cpp
index 4e8fd30..ba039c7 100644
--- a/WebKit/qt/Api/qwebdatabase.cpp
+++ b/WebKit/qt/Api/qwebdatabase.cpp
@@ -39,8 +39,10 @@ using namespace WebCore;
access on a local computer through JavaScript. QWebDatabase is the C++ interface to these
databases.
- To get access to all databases defined by a security origin, use QWebSecurityOrigin::databases().
- Each database has an internal name(), as well as a user-friendly name, provided by displayName().
+ Databases are grouped together in security origins. To get access to all databases defined by
+ a security origin, use QWebSecurityOrigin::databases(). Each database has an internal name(),
+ as well as a user-friendly name, provided by displayName(). These names are specified when
+ creating the database in the JavaScript code.
WebKit uses SQLite to create and access the local SQL databases. The location of the database
file in the local file system is returned by fileName(). You can access the database directly
@@ -49,7 +51,7 @@ using namespace WebCore;
For each database the web site can define an expectedSize(). The current size of the database
in bytes is returned by size().
- For more information refer to the \l{http://dev.w3.org/html5/webdatabase/}{HTML 5 Draft Standard}.
+ For more information refer to the \l{http://dev.w3.org/html5/webdatabase/}{HTML5 Web SQL Database Draft Standard}.
\sa QWebSecurityOrigin
*/
@@ -80,7 +82,7 @@ QString QWebDatabase::name() const
}
/*!
- Returns the name of the database as seen by the user.
+ Returns the name of the database in a format that is suitable for display to the user.
*/
QString QWebDatabase::displayName() const
{
diff --git a/WebKit/qt/Api/qwebelement.cpp b/WebKit/qt/Api/qwebelement.cpp
index 551346b..d2cdf79 100644
--- a/WebKit/qt/Api/qwebelement.cpp
+++ b/WebKit/qt/Api/qwebelement.cpp
@@ -84,13 +84,27 @@ public:
\snippet webkitsnippets/webelement/main.cpp Traversing with QWebElement
+ Individual elements can be inspected or changed using methods such as attribute()
+ or setAttribute(). For examle, to capture the user's input in a text field for later
+ use (auto-completion), a browser could do something like this:
+
+ \snippet webkitsnippets/webelement/main.cpp autocomplete1
+
+ When the same page is later revisited, the browser can fill in the text field automatically
+ by modifying the value attribute of the input element:
+
+ \snippet webkitsnippets/webelement/main.cpp autocomplete2
+
+ Another use case is to emulate a click event on an element. The following
+ code snippet demonstrates how to call the JavaScript DOM method click() of
+ a submit button:
+
+ \snippet webkitsnippets/webelement/main.cpp Calling a DOM element method
+
The underlying content of QWebElement is explicitly shared. Creating a copy
of a QWebElement does not create a copy of the content. Instead, both
instances point to the same element.
- The element's attributes can be read using attribute() and modified with
- setAttribute().
-
The contents of child elements can be converted to plain text with
toPlainText(); to XHTML using toInnerXml(). To include the element's tag in
the output, use toOuterXml().
diff --git a/WebKit/qt/Api/qwebframe.cpp b/WebKit/qt/Api/qwebframe.cpp
index e6ee00f..4b12545 100644
--- a/WebKit/qt/Api/qwebframe.cpp
+++ b/WebKit/qt/Api/qwebframe.cpp
@@ -88,8 +88,9 @@ QT_BEGIN_NAMESPACE
extern Q_GUI_EXPORT int qt_defaultDpi();
QT_END_NAMESPACE
-static bool webframe_scrollOverflow(WebCore::Frame* frame, int dx, int dy, const QPoint& pos)
+bool QWEBKIT_EXPORT qtwebkit_webframe_scrollOverflow(QWebFrame* qFrame, int dx, int dy, const QPoint& pos)
{
+ WebCore::Frame* frame = QWebFramePrivate::core(qFrame);
if (!frame || !frame->document() || !frame->view() || !frame->eventHandler())
return false;
@@ -112,17 +113,24 @@ static bool webframe_scrollOverflow(WebCore::Frame* frame, int dx, int dy, const
bool scrolledHorizontal = false;
bool scrolledVertical = false;
- if (dx > 0)
- scrolledHorizontal = renderLayer->scroll(ScrollRight, ScrollByPixel, dx);
- else if (dx < 0)
- scrolledHorizontal = renderLayer->scroll(ScrollLeft, ScrollByPixel, qAbs(dx));
+ do {
+ if (dx > 0)
+ scrolledHorizontal = renderLayer->scroll(ScrollRight, ScrollByPixel, dx);
+ else if (dx < 0)
+ scrolledHorizontal = renderLayer->scroll(ScrollLeft, ScrollByPixel, qAbs(dx));
+
+ if (dy > 0)
+ scrolledVertical = renderLayer->scroll(ScrollDown, ScrollByPixel, dy);
+ else if (dy < 0)
+ scrolledVertical = renderLayer->scroll(ScrollUp, ScrollByPixel, qAbs(dy));
+
+ if (scrolledHorizontal || scrolledVertical)
+ return true;
- if (dy > 0)
- scrolledVertical = renderLayer->scroll(ScrollDown, ScrollByPixel, dy);
- else if (dy < 0)
- scrolledVertical = renderLayer->scroll(ScrollUp, ScrollByPixel, qAbs(dy));
+ renderLayer = renderLayer->parent();
+ } while (renderLayer);
- return (scrolledHorizontal || scrolledVertical);
+ return false;
}
@@ -138,7 +146,7 @@ void QWEBKIT_EXPORT qtwebkit_webframe_scrollRecursively(QWebFrame* qFrame, int d
if (!qFrame)
return;
- if (webframe_scrollOverflow(QWebFramePrivate::core(qFrame), dx, dy, pos))
+ if (qtwebkit_webframe_scrollOverflow(qFrame, dx, dy, pos))
return;
bool scrollHorizontal = false;
@@ -152,7 +160,7 @@ void QWEBKIT_EXPORT qtwebkit_webframe_scrollRecursively(QWebFrame* qFrame, int d
if (dy > 0) // scroll down
scrollVertical = qFrame->scrollBarValue(Qt::Vertical) < qFrame->scrollBarMaximum(Qt::Vertical);
- else if (dy < 0) //scroll up
+ else if (dy < 0) //scroll up
scrollVertical = qFrame->scrollBarValue(Qt::Vertical) > qFrame->scrollBarMinimum(Qt::Vertical);
if (scrollHorizontal || scrollVertical) {
@@ -364,8 +372,10 @@ void QWebFramePrivate::renderRelativeCoords(GraphicsContext* context, QWebFrame:
can connect to the web page's \l{QWebPage::}{frameCreated()} signal
to be notified when a new frame is created.
- The hitTestContent() function can be used to programmatically examine the
- contents of a frame.
+ There are multiple ways to programmatically examine the contents of a frame.
+ The hitTestContent() function can be used to find elements by coordinate.
+ For access to the underlying DOM tree, there is documentElement(),
+ findAllElements() and findFirstElement().
A QWebFrame can be printed onto a QPrinter using the print() function.
This function is marked as a slot and can be conveniently connected to
@@ -593,6 +603,10 @@ static inline QUrl ensureAbsoluteUrl(const QUrl &url)
\property QWebFrame::url
\brief the url of the frame currently viewed
+ Setting this property clears the view and loads the URL.
+
+ By default, this property contains an empty, invalid URL.
+
\sa urlChanged()
*/
diff --git a/WebKit/qt/Api/qwebhistoryinterface.cpp b/WebKit/qt/Api/qwebhistoryinterface.cpp
index 80567d1..61cf5af 100644
--- a/WebKit/qt/Api/qwebhistoryinterface.cpp
+++ b/WebKit/qt/Api/qwebhistoryinterface.cpp
@@ -41,7 +41,7 @@ static void gCleanupInterface()
/*!
Sets a new default interface, \a defaultInterface, that will be used by all of WebKit
- for managing history.
+ to keep track of visited links.
If an interface without a parent has already been set, the old interface will be deleted.
When the application exists QWebHistoryInterface will automatically delete the
@@ -68,8 +68,9 @@ void QWebHistoryInterface::setDefaultInterface(QWebHistoryInterface* defaultInte
}
/*!
- Returns the default interface that will be used by WebKit. If no
- default interface has been set, QtWebkit will not track history.
+ Returns the default interface that will be used by WebKit. If no default interface has been set,
+ Webkit will not keep track of visited links and a null pointer will be returned.
+ \sa setDefaultInterface
*/
QWebHistoryInterface* QWebHistoryInterface::defaultInterface()
{
@@ -84,11 +85,15 @@ QWebHistoryInterface* QWebHistoryInterface::defaultInterface()
\inmodule QtWebKit
The QWebHistoryInterface is an interface that can be used to
- implement link history. It contains two pure virtual methods that
- are called by the WebKit engine. addHistoryEntry() is used to add
- pages that have been visited to the interface, while
- historyContains() is used to query whether this page has been
- visited by the user.
+ keep track of visited links. It contains two pure virtual methods that
+ are called by the WebKit engine: addHistoryEntry() is used to add
+ urls that have been visited to the interface, while
+ historyContains() is used to query whether the given url has been
+ visited by the user. By default the QWebHistoryInterface is not set, so WebKit does not keep
+ track of visited links.
+
+ \note The history tracked by QWebHistoryInterface is not specific to an instance of QWebPage
+ but applies to all pages.
*/
/*!
@@ -100,7 +105,7 @@ QWebHistoryInterface::QWebHistoryInterface(QObject* parent)
}
/*!
- Destructor. If this is currently the default interface it will be unset.
+ Destroys the interface. If this is currently the default interface it will be unset.
*/
QWebHistoryInterface::~QWebHistoryInterface()
{
diff --git a/WebKit/qt/Api/qwebinspector.cpp b/WebKit/qt/Api/qwebinspector.cpp
index c0e5277..802ea98 100644
--- a/WebKit/qt/Api/qwebinspector.cpp
+++ b/WebKit/qt/Api/qwebinspector.cpp
@@ -31,17 +31,23 @@
/*!
\class QWebInspector
\since 4.6
+ \inmodule QtWebKit
\brief The QWebInspector class allows the placement and control of a
QWebPage's inspector.
- The inspector allows you to see a page current hierarchy and loading
- statistics.
+ The inspector can display a page's hierarchy, its loading statistics and
+ the current state of its individual elements. It is mostly used by web
+ developers.
- The QWebPage to be inspected is determined with the setPage() method.
+ The QWebPage to be inspected must be specified using the setPage() method.
A typical use of QWebInspector follows:
\snippet webkitsnippets/qtwebkit_qwebinspector_snippet.cpp 0
+ A QWebInspector can be made visible either programmatically using
+ setVisible(), or by the user through the attached QWebPage's context
+ menu.
+
\note A QWebInspector will display a blank widget if either:
\list
\o page() is null
@@ -61,17 +67,16 @@
\section1 Inspector configuration persistence
The inspector allows the user to configure some options through its
- interface (e.g. the resource tracking "Always enable" option).
- These settings are persisted automatically by QtWebKit using QSettings.
-
- However since the QSettings object is instantiated using the empty
- constructor, QCoreApplication::setOrganizationName() and
- QCoreApplication::setApplicationName() must be called within your
- application to enable the persistence of these options.
+ user interface (e.g. the resource tracking "Always enable" option).
+ These settings will be persisted automatically by QtWebKit only if
+ your application previously called QCoreApplication::setOrganizationName()
+ and QCoreApplication::setApplicationName().
+ See QSettings's default constructor documentation for an explanation
+ of why this is necessary.
*/
/*!
- Constructs an empty QWebInspector with parent \a parent.
+ Constructs an unbound QWebInspector with \a parent as its parent.
*/
QWebInspector::QWebInspector(QWidget* parent)
: QWidget(parent)
@@ -89,16 +94,16 @@ QWebInspector::~QWebInspector()
}
/*!
- Sets the QWebPage to be inspected.
-
- There can only be one QWebInspector associated with a QWebPage
- and vices versa.
+ Bind this inspector to the QWebPage to be inspected.
- Calling with \a page as null will break the current association, if any.
-
- If \a page is already associated to another QWebInspector, the association
- will be replaced and the previous QWebInspector will have no page
- associated.
+ \bold {Notes:}
+ \list
+ \o There can only be one QWebInspector associated with a QWebPage
+ and vice versa.
+ \o Calling this method with a null \a page will break the current association, if any.
+ \o If \a page is already associated to another QWebInspector, the association
+ will be replaced and the previous QWebInspector will become unbound
+ \endlist
\sa page()
*/
diff --git a/WebKit/qt/Api/qwebkitglobal.h b/WebKit/qt/Api/qwebkitglobal.h
index 665bf1b..d83d569 100644
--- a/WebKit/qt/Api/qwebkitglobal.h
+++ b/WebKit/qt/Api/qwebkitglobal.h
@@ -22,9 +22,9 @@
#include <QtCore/qglobal.h>
-#define QTWEBKIT_VERSION_STR "2.0.0"
+#define QTWEBKIT_VERSION_STR "2.1.0"
// QTWEBKIT_VERSION is (major << 16) + (minor << 8) + patch. Similar to Qt.
-#define QTWEBKIT_VERSION 0x020000
+#define QTWEBKIT_VERSION 0x020100
// Use: #if (QTWEBKIT_VERSION >= QTWEBKIT_VERSION_CHECK(2, 0, 0)). Similar to Qt.
#define QTWEBKIT_VERSION_CHECK(major, minor, patch) ((major<<16)|(minor<<8)|(patch))
diff --git a/WebKit/qt/Api/qwebkitplatformplugin.h b/WebKit/qt/Api/qwebkitplatformplugin.h
new file mode 100644
index 0000000..7d024ae
--- /dev/null
+++ b/WebKit/qt/Api/qwebkitplatformplugin.h
@@ -0,0 +1,77 @@
+/*
+ * Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies)
+ *
+ * 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 QWEBKITPLATFORMPLUGIN_H
+#define QWEBKITPLATFORMPLUGIN_H
+
+/*
+ * Warning: The contents of this file is not part of the public QtWebKit API
+ * and may be changed from version to version or even be completely removed.
+*/
+
+#include <QObject>
+
+class QWebSelectData
+{
+public:
+ inline ~QWebSelectData() {}
+
+ enum ItemType { Option, Group, Separator };
+
+ virtual ItemType itemType(int) const = 0;
+ virtual QString itemText(int index) const = 0;
+ virtual QString itemToolTip(int index) const = 0;
+ virtual bool itemIsEnabled(int index) const = 0;
+ virtual bool itemIsSelected(int index) const = 0;
+ virtual int itemCount() const = 0;
+ virtual bool multiple() const = 0;
+};
+
+class QWebSelectMethod : public QObject
+{
+ Q_OBJECT
+public:
+ inline ~QWebSelectMethod() {}
+
+ virtual void show(const QWebSelectData&) = 0;
+ virtual void hide() = 0;
+
+Q_SIGNALS:
+ void selectItem(int index, bool allowMultiplySelections, bool shift);
+ void didHide();
+};
+
+class QWebKitPlatformPlugin
+{
+public:
+ inline ~QWebKitPlatformPlugin() {}
+
+ enum Extension {
+ MultipleSelections
+ };
+
+ virtual QWebSelectMethod* createSelectInputMethod() const = 0;
+ virtual bool supportsExtension(Extension extension) const = 0;
+
+};
+
+Q_DECLARE_INTERFACE(QWebKitPlatformPlugin, "com.nokia.Qt.WebKit.PlatformPlugin/1.0");
+
+#endif // QWEBKITPLATFORMPLUGIN_H
diff --git a/WebKit/qt/Api/qwebkitversion.cpp b/WebKit/qt/Api/qwebkitversion.cpp
index 062839f..181913b 100644
--- a/WebKit/qt/Api/qwebkitversion.cpp
+++ b/WebKit/qt/Api/qwebkitversion.cpp
@@ -22,11 +22,21 @@
#include <WebKitVersion.h>
/*!
-
+ \relates QWebPage
+ \since 4.6
Returns the version number of WebKit at run-time as a string (for
- example, "531.3"). This is the version of WebKit the application
- was compiled against.
+ example, "531.3").
+
+ This version is commonly used in WebKit based browsers as part
+ of the user agent string. Web servers and JavaScript might use
+ it to identify the presence of certain WebKit engine features
+ and behaviour.
+ The evolution of this version is bound to the releases of Apple's
+ Safari browser. For a version specific to the QtWebKit library,
+ see QTWEBKIT_VERSION
+
+ \sa QWebPage::userAgentForUrl()
*/
QString qWebKitVersion()
{
@@ -34,11 +44,13 @@ QString qWebKitVersion()
}
/*!
-
+ \relates QWebPage
+ \since 4.6
Returns the 'major' version number of WebKit at run-time as an integer
(for example, 531). This is the version of WebKit the application
was compiled against.
+ \sa qWebKitVersion()
*/
int qWebKitMajorVersion()
{
@@ -46,13 +58,57 @@ int qWebKitMajorVersion()
}
/*!
-
+ \relates QWebPage
+ \since 4.6
Returns the 'minor' version number of WebKit at run-time as an integer
(for example, 3). This is the version of WebKit the application
was compiled against.
+ \sa qWebKitVersion()
*/
int qWebKitMinorVersion()
{
return WEBKIT_MINOR_VERSION;
}
+
+/*!
+ \macro QTWEBKIT_VERSION
+ \relates QWebPage
+
+ This macro expands a numeric value of the form 0xMMNNPP (MM =
+ major, NN = minor, PP = patch) that specifies QtWebKit's version
+ number. For example, if you compile your application against QtWebKit
+ 2.1.2, the QTWEBKIT_VERSION macro will expand to 0x020102.
+
+ You can use QTWEBKIT_VERSION to use the latest QtWebKit API where
+ available.
+
+ \sa QT_VERSION
+*/
+
+/*!
+ \macro QTWEBKIT_VERSION_STR
+ \relates QWebPage
+
+ This macro expands to a string that specifies QtWebKit's version number
+ (for example, "2.1.2"). This is the version against which the
+ application is compiled.
+
+ \sa QTWEBKIT_VERSION
+*/
+
+/*!
+ \macro QTWEBKIT_VERSION_CHECK
+ \relates QWebPage
+
+ Turns the major, minor and patch numbers of a version into an
+ integer, 0xMMNNPP (MM = major, NN = minor, PP = patch). This can
+ be compared with another similarly processed version id, for example
+ in a preprocessor statement:
+
+ \code
+ #if QTWEBKIT_VERSION >= QTWEBKIT_VERSION_CHECK(2, 1, 0)
+ // code to use API new in QtWebKit 2.1.0
+ #endif
+ \endcode
+*/
diff --git a/WebKit/qt/Api/qwebpage.cpp b/WebKit/qt/Api/qwebpage.cpp
index c9fc210..3810155 100644
--- a/WebKit/qt/Api/qwebpage.cpp
+++ b/WebKit/qt/Api/qwebpage.cpp
@@ -1478,7 +1478,7 @@ InspectorController* QWebPagePrivate::inspectorController()
/*!
\enum QWebPage::FindFlag
- This enum describes the options available to QWebPage's findText() function. The options
+ This enum describes the options available to the findText() function. The options
can be OR-ed together from the following list:
\value FindBackward Searches backwards instead of forwards.
@@ -1499,6 +1499,8 @@ InspectorController* QWebPagePrivate::inspectorController()
\value DelegateExternalLinks When activating links that point to documents not stored on the
local filesystem or an equivalent - such as the Qt resource system - then linkClicked() is emitted.
\value DelegateAllLinks Whenever a link is activated the linkClicked() signal is emitted.
+
+ \sa QWebPage::linkDelegationPolicy
*/
/*!
@@ -1513,6 +1515,8 @@ InspectorController* QWebPagePrivate::inspectorController()
\value NavigationTypeReload The user activated the reload action.
\value NavigationTypeFormResubmitted An HTML form was submitted a second time.
\value NavigationTypeOther A navigation to another document using a method not listed above.
+
+ \sa acceptNavigationRequest()
*/
/*!
@@ -1522,7 +1526,7 @@ InspectorController* QWebPagePrivate::inspectorController()
Actions only have an effect when they are applicable. The availability of
actions can be be determined by checking \l{QAction::}{isEnabled()} on the
- action returned by \l{QWebPage::}{action()}.
+ action returned by action().
One method of enabling the text editing, cursor movement, and text selection actions
is by setting \l contentEditable to true.
@@ -1604,6 +1608,8 @@ InspectorController* QWebPagePrivate::inspectorController()
/*!
\enum QWebPage::WebWindowType
+ This enum describes the types of window that can be created by the createWindow() function.
+
\value WebBrowserWindow The window is a regular web browser window.
\value WebModalDialog The window acts as modal dialog.
*/
@@ -1620,11 +1626,13 @@ InspectorController* QWebPagePrivate::inspectorController()
to provide functionality like QWebView in a widget-less environment.
QWebPage's API is very similar to QWebView, as you are still provided with
- common functions like action() (known as \l{QWebView::}{pageAction()} in
- QWebView), triggerAction(), findText() and settings(). More QWebView-like
- functions can be found in the main frame of QWebPage, obtained via
- QWebPage::mainFrame(). For example, the load(), setUrl() and setHtml()
- unctions for QWebPage can be accessed using QWebFrame.
+ common functions like action() (known as
+ \l{QWebView::pageAction()}{pageAction}() in QWebView), triggerAction(),
+ findText() and settings(). More QWebView-like functions can be found in the
+ main frame of QWebPage, obtained via the mainFrame() function. For example,
+ the \l{QWebFrame::load()}{load}(), \l{QWebFrame::setUrl()}{setUrl}() and
+ \l{QWebFrame::setHtml()}{setHtml}() functions for QWebPage can be accessed
+ using QWebFrame.
The loadStarted() signal is emitted when the page begins to load.The
loadProgress() signal, on the other hand, is emitted whenever an element
@@ -1728,7 +1736,8 @@ QWebFrame *QWebPage::currentFrame() const
/*!
\since 4.6
- Returns the frame at the given point \a pos.
+ Returns the frame at the given point \a pos, or 0 if there is no frame at
+ that position.
\sa mainFrame(), currentFrame()
*/
@@ -1847,7 +1856,7 @@ bool QWebPage::javaScriptConfirm(QWebFrame *frame, const QString& msg)
result should be written to \a result and true should be returned. If the prompt was not cancelled by the
user, the implementation should return true and the result string must not be null.
- The default implementation uses QInputDialog::getText.
+ The default implementation uses QInputDialog::getText().
*/
bool QWebPage::javaScriptPrompt(QWebFrame *frame, const QString& msg, const QString& defaultValue, QString* result)
{
@@ -2061,6 +2070,8 @@ QSize QWebPage::viewportSize() const
By default, for a newly-created Web page, this property contains a size with
zero width and height.
+
+ \sa QWebFrame::render(), preferredContentsSize
*/
void QWebPage::setViewportSize(const QSize &size) const
{
@@ -2089,11 +2100,12 @@ QSize QWebPage::preferredContentsSize() const
/*!
\property QWebPage::preferredContentsSize
\since 4.6
- \brief the size of the fixed layout
+ \brief the preferred size of the contents
- The size affects the layout of the page in the viewport. If set to a fixed size of
- 1024x768 for example then webkit will layout the page as if the viewport were that size
- rather than something different.
+ If this property is set to a valid size, it is used to lay out the page.
+ If it is not set (the default), the viewport size is used instead.
+
+ \sa viewportSize
*/
void QWebPage::setPreferredContentsSize(const QSize &size) const
{
@@ -2441,9 +2453,11 @@ QAction *QWebPage::action(WebAction action) const
/*!
\property QWebPage::modified
- \brief whether the page contains unsubmitted form data
+ \brief whether the page contains unsubmitted form data, or the contents have been changed.
By default, this property is false.
+
+ \sa contentsChanged(), contentEditable, undoStack()
*/
bool QWebPage::isModified() const
{
@@ -2459,6 +2473,8 @@ bool QWebPage::isModified() const
#ifndef QT_NO_UNDOSTACK
/*!
Returns a pointer to the undo stack used for editable content.
+
+ \sa modified
*/
QUndoStack *QWebPage::undoStack() const
{
@@ -2581,7 +2597,7 @@ bool QWebPage::event(QEvent *ev)
}
/*!
- Similar to QWidget::focusNextPrevChild it focuses the next focusable web element
+ Similar to QWidget::focusNextPrevChild() it focuses the next focusable web element
if \a next is true; otherwise the previous element is focused.
Returns true if it can find a new focusable element, or false if it can't.
@@ -2608,6 +2624,8 @@ bool QWebPage::focusNextPrevChild(bool next)
If this property is enabled the contents of the page can be edited by the user through a visible
cursor. If disabled (the default) only HTML elements in the web page with their
\c{contenteditable} attribute set are editable.
+
+ \sa modified, contentsChanged(), WebAction
*/
void QWebPage::setContentEditable(bool editable)
{
@@ -2777,17 +2795,21 @@ void QWebPage::updatePositionDependentActions(const QPoint &pos)
as a result of the user clicking on a "file upload" button in a HTML form where multiple
file selection is allowed.
- \omitvalue ErrorPageExtension (introduced in Qt 4.6)
+ \value ErrorPageExtension Whether the web page can provide an error page when loading fails.
+ (introduced in Qt 4.6)
+
+ \sa ChooseMultipleFilesExtensionOption, ChooseMultipleFilesExtensionReturn, ErrorPageExtensionOption, ErrorPageExtensionReturn
*/
/*!
\enum QWebPage::ErrorDomain
\since 4.6
- \internal
- \value QtNetwork
- \value Http
- \value WebKit
+ This enum describes the domain of an ErrorPageExtensionOption object (i.e. the layer in which the error occurred).
+
+ \value QtNetwork The error occurred in the QtNetwork layer; the error code is of type QNetworkReply::NetworkError.
+ \value Http The error occurred in the HTTP layer; the error code is a HTTP status code (see QNetworkRequest::HttpStatusCodeAttribute).
+ \value WebKit The error is an internal WebKit error.
*/
/*!
@@ -2797,7 +2819,18 @@ void QWebPage::updatePositionDependentActions(const QPoint &pos)
\inmodule QtWebKit
- \sa QWebPage::extension()
+ \sa QWebPage::extension() QWebPage::ExtensionReturn
+*/
+
+
+/*!
+ \class QWebPage::ExtensionReturn
+ \since 4.4
+ \brief The ExtensionReturn class provides an output result from a QWebPage's extension.
+
+ \inmodule QtWebKit
+
+ \sa QWebPage::extension() QWebPage::ExtensionOption
*/
/*!
@@ -2808,12 +2841,38 @@ void QWebPage::updatePositionDependentActions(const QPoint &pos)
\inmodule QtWebKit
- The ErrorPageExtensionOption class holds the \a url for which an error occoured as well as
+ The ErrorPageExtensionOption class holds the \a url for which an error occurred as well as
the associated \a frame.
The error itself is reported by an error \a domain, the \a error code as well as \a errorString.
- \sa QWebPage::ErrorPageExtensionReturn
+ \sa QWebPage::extension() QWebPage::ErrorPageExtensionReturn
+*/
+
+/*!
+ \variable QWebPage::ErrorPageExtensionOption::url
+ \brief the url for which an error occurred
+*/
+
+/*!
+ \variable QWebPage::ErrorPageExtensionOption::frame
+ \brief the frame associated with the error
+*/
+
+/*!
+ \variable QWebPage::ErrorPageExtensionOption::domain
+ \brief the domain that reported the error
+*/
+
+/*!
+ \variable QWebPage::ErrorPageExtensionOption::error
+ \brief the error code. Interpretation of the value depends on the \a domain
+ \sa QWebPage::ErrorDomain
+*/
+
+/*!
+ \variable QWebPage::ErrorPageExtensionOption::errorString
+ \brief a string that describes the error
*/
/*!
@@ -2834,7 +2893,7 @@ void QWebPage::updatePositionDependentActions(const QPoint &pos)
External objects such as stylesheets or images referenced in the HTML are located relative to
\a baseUrl.
- \sa QWebPage::ErrorPageExtensionOption, QString::toUtf8()
+ \sa QWebPage::extension() QWebPage::ErrorPageExtensionOption, QString::toUtf8()
*/
/*!
@@ -2843,6 +2902,29 @@ void QWebPage::updatePositionDependentActions(const QPoint &pos)
Constructs a new error page object.
*/
+
+/*!
+ \variable QWebPage::ErrorPageExtensionReturn::contentType
+ \brief the error page's content type
+*/
+
+/*!
+ \variable QWebPage::ErrorPageExtensionReturn::encoding
+ \brief the error page encoding
+*/
+
+/*!
+ \variable QWebPage::ErrorPageExtensionReturn::baseUrl
+ \brief the base url
+
+ External objects such as stylesheets or images referenced in the HTML are located relative to this url.
+*/
+
+/*!
+ \variable QWebPage::ErrorPageExtensionReturn::content
+ \brief the HTML content of the error page
+*/
+
/*!
\class QWebPage::ChooseMultipleFilesExtensionOption
\since 4.5
@@ -2854,7 +2936,22 @@ void QWebPage::updatePositionDependentActions(const QPoint &pos)
The ChooseMultipleFilesExtensionOption class holds the frame originating the request
and the suggested filenames which might be provided.
- \sa QWebPage::chooseFile(), QWebPage::ChooseMultipleFilesExtensionReturn
+ \sa QWebPage::extension() QWebPage::chooseFile(), QWebPage::ChooseMultipleFilesExtensionReturn
+*/
+
+/*!
+ \variable QWebPage::ChooseMultipleFilesExtensionOption::parentFrame
+ \brief The frame in which the request originated
+*/
+
+/*!
+ \variable QWebPage::ChooseMultipleFilesExtensionOption::suggestedFileNames
+ \brief The suggested filenames
+*/
+
+/*!
+ \variable QWebPage::ChooseMultipleFilesExtensionReturn::fileNames
+ \brief The selected filenames
*/
/*!
@@ -2868,14 +2965,17 @@ void QWebPage::updatePositionDependentActions(const QPoint &pos)
The ChooseMultipleFilesExtensionReturn class holds the filenames selected by the user
when the extension is invoked.
- \sa QWebPage::ChooseMultipleFilesExtensionOption
+ \sa QWebPage::extension() QWebPage::ChooseMultipleFilesExtensionOption
*/
/*!
This virtual function can be reimplemented in a QWebPage subclass to provide support for extensions. The \a option
argument is provided as input to the extension; the output results can be stored in \a output.
- The behavior of this function is determined by \a extension.
+ The behavior of this function is determined by \a extension. The \a option
+ and \a output values are typically casted to the corresponding types (for
+ example, ChooseMultipleFilesExtensionOption and
+ ChooseMultipleFilesExtensionReturn for ChooseMultipleFilesExtension).
You can call supportsExtension() to check if an extension is supported by the page.
@@ -2967,6 +3067,8 @@ QWebSettings *QWebPage::settings() const
A suggested filename may be provided in \a suggestedFile. The frame originating the
request is provided as \a parentFrame.
+
+ \sa ChooseMultipleFilesExtension
*/
QString QWebPage::chooseFile(QWebFrame *parentFrame, const QString& suggestedFile)
{
@@ -3220,6 +3322,15 @@ QString QWebPage::userAgentForUrl(const QUrl&) const
case QSysInfo::SV_9_4:
firstPartTemp += QString::fromLatin1("/9.4");
break;
+ case QSysInfo::SV_SF_2:
+ firstPartTemp += QString::fromLatin1("^2");
+ break;
+ case QSysInfo::SV_SF_3:
+ firstPartTemp += QString::fromLatin1("^3");
+ break;
+ case QSysInfo::SV_SF_4:
+ firstPartTemp += QString::fromLatin1("^4");
+ break;
default:
firstPartTemp += QString::fromLatin1("/Unknown");
}
@@ -3330,7 +3441,7 @@ quint64 QWebPage::totalBytes() const
/*!
Returns the number of bytes that were received from the network to render the current page.
- \sa totalBytes()
+ \sa totalBytes(), loadProgress()
*/
quint64 QWebPage::bytesReceived() const
{
@@ -3362,7 +3473,7 @@ quint64 QWebPage::bytesReceived() const
This signal is emitted when a load of the page is finished.
\a ok will indicate whether the load was successful or any error occurred.
- \sa loadStarted()
+ \sa loadStarted(), ErrorPageExtension
*/
/*!
@@ -3389,12 +3500,15 @@ quint64 QWebPage::bytesReceived() const
\fn void QWebPage::frameCreated(QWebFrame *frame)
This signal is emitted whenever the page creates a new \a frame.
+
+ \sa currentFrame()
*/
/*!
\fn void QWebPage::selectionChanged()
- This signal is emitted whenever the selection changes.
+ This signal is emitted whenever the selection changes, either interactively
+ or programmatically (e.g. by calling triggerAction() with a selection action).
\sa selectedText()
*/
@@ -3406,7 +3520,7 @@ quint64 QWebPage::bytesReceived() const
This signal is emitted whenever the text in form elements changes
as well as other editable content.
- \sa contentEditable, QWebFrame::toHtml(), QWebFrame::toPlainText()
+ \sa contentEditable, modified, QWebFrame::toHtml(), QWebFrame::toPlainText()
*/
/*!
@@ -3482,9 +3596,9 @@ quint64 QWebPage::bytesReceived() const
\fn void QWebPage::microFocusChanged()
This signal is emitted when for example the position of the cursor in an editable form
- element changes. It is used inform input methods about the new on-screen position where
- the user is able to enter text. This signal is usually connected to QWidget's updateMicroFocus()
- slot.
+ element changes. It is used to inform input methods about the new on-screen position where
+ the user is able to enter text. This signal is usually connected to the
+ QWidget::updateMicroFocus() slot.
*/
/*!
@@ -3495,6 +3609,9 @@ quint64 QWebPage::bytesReceived() const
By default no links are delegated and are handled by QWebPage instead.
+ \note This signal possibly won't be emitted for clicked links which use
+ JavaScript to trigger navigation.
+
\sa linkHovered()
*/
@@ -3525,6 +3642,8 @@ quint64 QWebPage::bytesReceived() const
This signal is emitted whenever the web site shown in \a frame is asking to store data
to the database \a databaseName and the quota allocated to that web site is exceeded.
+
+ \sa QWebDatabase
*/
/*!
diff --git a/WebKit/qt/Api/qwebpluginfactory.cpp b/WebKit/qt/Api/qwebpluginfactory.cpp
index 8ff13b1..f715430 100644
--- a/WebKit/qt/Api/qwebpluginfactory.cpp
+++ b/WebKit/qt/Api/qwebpluginfactory.cpp
@@ -23,25 +23,40 @@
/*!
\class QWebPluginFactory
\since 4.4
- \brief The QWebPluginFactory class creates plugins to be embedded into web
- pages.
+ \brief The QWebPluginFactory class is used to embed custom data types in web pages.
\inmodule QtWebKit
- QWebPluginFactory is a factory for creating plugins for QWebPage. A plugin
- factory can be installed on a QWebPage using QWebPage::setPluginFactory().
+ The HTML \c{<object>} tag is used to embed arbitrary content into a web page,
+ for example:
+
+ \code
+ <object type="application/x-pdf" data="http://qt.nokia.com/document.pdf" width="500" height="400"></object>
+ \endcode
+
+ QtWebkit will natively handle the most basic data types like \c{text/html} and
+ \c{image/jpeg}, but for any advanced or custom data types you will need to
+ provide a handler yourself.
+
+ QWebPluginFactory is a factory for creating plugins for QWebPage, where each
+ plugin provides support for one or more data types. A plugin factory can be
+ installed on a QWebPage using QWebPage::setPluginFactory().
\note The plugin factory is only used if plugins are enabled through QWebSettings.
- You can provide a QWebPluginFactory by implementing the plugins() and the
- create() method. For plugins() it is necessary to describe the plugins the
+ You provide a QWebPluginFactory by implementing the plugins() and the
+ create() methods. For plugins() it is necessary to describe the plugins the
factory can create, including a description and the supported MIME types.
The MIME types each plugin can handle should match the ones specified in
- in the HTML \c{<object>} tag.
+ in the HTML \c{<object>} tag of your content.
The create() method is called if the requested MIME type is supported. The
implementation has to return a new instance of the plugin requested for the
given MIME type and the specified URL.
+
+ The plugins themselves are subclasses of QObject, but currently only plugins
+ based on either QWidget or QGraphicsWidget are supported.
+
*/
@@ -183,6 +198,7 @@ void QWebPluginFactory::refreshPlugins()
/*!
\enum QWebPluginFactory::Extension
+ \internal
This enum describes the types of extensions that the plugin factory can support. Before using these extensions, you
should verify that the extension is supported by calling supportsExtension().
@@ -192,6 +208,7 @@ void QWebPluginFactory::refreshPlugins()
/*!
\class QWebPluginFactory::ExtensionOption
+ \internal
\since 4.4
\brief The ExtensionOption class provides an extended input argument to QWebPluginFactory's extension support.
@@ -202,6 +219,7 @@ void QWebPluginFactory::refreshPlugins()
/*!
\class QWebPluginFactory::ExtensionReturn
+ \internal
\since 4.4
\brief The ExtensionOption class provides an extended output argument to QWebPluginFactory's extension support.
@@ -214,6 +232,8 @@ void QWebPluginFactory::refreshPlugins()
This virtual function can be reimplemented in a QWebPluginFactory subclass to provide support for extensions. The \a option
argument is provided as input to the extension; the output results can be stored in \a output.
+ \internal
+
The behaviour of this function is determined by \a extension.
You can call supportsExtension() to check if an extension is supported by the factory.
@@ -233,6 +253,8 @@ bool QWebPluginFactory::extension(Extension extension, const ExtensionOption *op
/*!
This virtual function returns true if the plugin factory supports \a extension; otherwise false is returned.
+ \internal
+
\sa extension()
*/
bool QWebPluginFactory::supportsExtension(Extension extension) const
diff --git a/WebKit/qt/Api/qwebsecurityorigin.cpp b/WebKit/qt/Api/qwebsecurityorigin.cpp
index b69f24d..fe25d2d 100644
--- a/WebKit/qt/Api/qwebsecurityorigin.cpp
+++ b/WebKit/qt/Api/qwebsecurityorigin.cpp
@@ -48,6 +48,16 @@ using namespace WebCore;
\c{http://www.malicious.com/evil.html} from accessing \c{http://www.example.com/}'s resources,
because they are of a different security origin.
+ By default local schemes like \c{file://} and \c{qrc://} are concidered to be in the same
+ security origin, and can access each other's resources. You can add additional local schemes
+ by using QWebSecurityOrigin::addLocalScheme(), or override the default same-origin behavior
+ by setting QWebSettings::LocalContentCanAccessFileUrls to \c{false}.
+
+ \note Local resources are by default restricted from accessing remote content, which
+ means your \c{file://} will not be able to access \c{http://domain.com/foo.html}. You
+ can relax this restriction by setting QWebSettings::LocalContentCanAccessRemoteUrls to
+ \c{true}.
+
Call QWebFrame::securityOrigin() to get the QWebSecurityOrigin for a frame in a
web page, and use host(), scheme() and port() to identify the security origin.
@@ -204,7 +214,11 @@ QList<QWebDatabase> QWebSecurityOrigin::databases() const
\since 4.6
Adds the given \a scheme to the list of schemes that are considered equivalent
- to the \c file: scheme. They are not subject to cross domain restrictions.
+ to the \c file: scheme.
+
+ Cross domain restrictions depend on the two web settings QWebSettings::LocalContentCanAccessFileUrls
+ and QWebSettings::LocalContentCanAccessFileUrls. By default all local schemes are concidered to be
+ in the same security origin, and local schemes can not access remote content.
*/
void QWebSecurityOrigin::addLocalScheme(const QString& scheme)
{
@@ -216,6 +230,9 @@ void QWebSecurityOrigin::addLocalScheme(const QString& scheme)
Removes the given \a scheme from the list of local schemes.
+ \note You can not remove the \c{file://} scheme from the list
+ of local schemes.
+
\sa addLocalScheme()
*/
void QWebSecurityOrigin::removeLocalScheme(const QString& scheme)
@@ -225,7 +242,10 @@ void QWebSecurityOrigin::removeLocalScheme(const QString& scheme)
/*!
\since 4.6
- Returns a list of all the schemes that were set by the application as local schemes,
+ Returns a list of all the schemes concidered to be local.
+
+ By default this is \c{file://} and \c{qrc://}.
+
\sa addLocalScheme(), removeLocalScheme()
*/
QStringList QWebSecurityOrigin::localSchemes()
diff --git a/WebKit/qt/Api/qwebsettings.cpp b/WebKit/qt/Api/qwebsettings.cpp
index 99fd812..a649658 100644
--- a/WebKit/qt/Api/qwebsettings.cpp
+++ b/WebKit/qt/Api/qwebsettings.cpp
@@ -290,8 +290,8 @@ QWebSettings* QWebSettings::globalSettings()
function. The \l{QWebSettings::WebAttribute}{WebAttribute} enum further describes
each attribute.
- QWebSettings also configures global properties such as the Web page memory
- cache and the Web page icon database, local database storage and offline
+ QWebSettings also configures global properties such as the web page memory
+ cache, icon database, local database storage and offline
applications storage.
\section1 Enabling Plugins
@@ -300,8 +300,8 @@ QWebSettings* QWebSettings::globalSettings()
\l{QWebSettings::PluginsEnabled}{PluginsEnabled} attribute. For many applications,
this attribute is enabled for all pages by setting it on the
\l{globalSettings()}{global settings object}. QtWebKit will always ignore this setting
- \when processing Qt plugins. The decision to allow a Qt plugin is made by the client
- \in its reimplementation of QWebPage::createPlugin.
+ when processing Qt plugins. The decision to allow a Qt plugin is made by the client
+ in its reimplementation of QWebPage::createPlugin().
\section1 Web Application Support
@@ -340,7 +340,7 @@ QWebSettings* QWebSettings::globalSettings()
\value MinimumFontSize The hard minimum font size.
\value MinimumLogicalFontSize The minimum logical font size that is applied
- after zooming with QWebFrame's textSizeMultiplier().
+ when zooming out with QWebFrame::setTextSizeMultiplier().
\value DefaultFontSize The default font size for regular text.
\value DefaultFixedFontSize The default font size for fixed-pitch text.
*/
@@ -363,67 +363,76 @@ QWebSettings* QWebSettings::globalSettings()
This enum describes various attributes that are configurable through QWebSettings.
\value AutoLoadImages Specifies whether images are automatically loaded in
- web pages.
+ web pages. This is enabled by default.
\value DnsPrefetchEnabled Specifies whether QtWebkit will try to pre-fetch DNS entries to
- speed up browsing. This only works as a global attribute. Only for Qt 4.6 and later.
+ speed up browsing. This only works as a global attribute. Only for Qt 4.6 and later. This is disabled by default.
\value JavascriptEnabled Enables or disables the running of JavaScript
- programs.
+ programs. This is enabled by default
\value JavaEnabled Enables or disables Java applets.
Currently Java applets are not supported.
- \value PluginsEnabled Enables or disables plugins in Web pages. Qt plugins
- with a mimetype such as "application/x-qt-plugin" are not affected by this setting.
+ \value PluginsEnabled Enables or disables plugins in Web pages (e.g. using NPAPI). Qt plugins
+ with a mimetype such as "application/x-qt-plugin" are not affected by this setting. This is disabled by default.
\value PrivateBrowsingEnabled Private browsing prevents WebKit from
- recording visited pages in the history and storing web page icons.
+ recording visited pages in the history and storing web page icons. This is disabled by default.
\value JavascriptCanOpenWindows Specifies whether JavaScript programs
- can open new windows.
+ can open new windows. This is disabled by default.
\value DOMPasteAllowed Specifies whether JavaScript programs can
read clipboard contents.
+ \value JavascriptCanAccessClipboard Specifies whether JavaScript programs
+ can read or write to the clipboard. This is disabled by default.
\value DeveloperExtrasEnabled Enables extra tools for Web developers.
Currently this enables the "Inspect" element in the context menu as
- well as the use of QWebInspector which controls the WebKit WebInspector
- for web site debugging.
+ well as the use of QWebInspector which controls the web inspector
+ for web site debugging. This is disabled by default.
\value SpatialNavigationEnabled Enables or disables the Spatial Navigation
feature, which consists in the ability to navigate between focusable
elements in a Web page, such as hyperlinks and form controls, by using
- Left, Right, Up and Down arrow keys. For example, if an user presses the
+ Left, Right, Up and Down arrow keys. For example, if a user presses the
Right key, heuristics determine whether there is an element he might be
- trying to reach towards the right, and if there are multiple elements,
- which element he probably wants.
+ trying to reach towards the right and which element he probably wants.
+ This is disabled by default.
\value LinksIncludedInFocusChain Specifies whether hyperlinks should be
- included in the keyboard focus chain.
- \value ZoomTextOnly Specifies whether the zoom factor on a frame applies to
- only the text or all content.
+ included in the keyboard focus chain. This is enabled by default.
+ \value ZoomTextOnly Specifies whether the zoom factor on a frame applies
+ only to the text or to all content. This is disabled by default.
\value PrintElementBackgrounds Specifies whether the background color and images
- are also drawn when the page is printed.
+ are also drawn when the page is printed. This is enabled by default.
\value OfflineStorageDatabaseEnabled Specifies whether support for the HTML 5
- offline storage feature is enabled or not. Disabled by default.
+ offline storage feature is enabled or not. This is disabled by default.
\value OfflineWebApplicationCacheEnabled Specifies whether support for the HTML 5
- web application cache feature is enabled or not. Disabled by default.
+ web application cache feature is enabled or not. This is disabled by default.
\value LocalStorageEnabled Specifies whether support for the HTML 5
- local storage feature is enabled or not. Disabled by default.
+ local storage feature is enabled or not. This is disabled by default.
\value LocalStorageDatabaseEnabled \e{This enum value is deprecated.} Use
QWebSettings::LocalStorageEnabled instead.
- \value LocalContentCanAccessRemoteUrls Specifies whether locally loaded documents are allowed to access remote urls.
- \value LocalContentCanAccessFileUrls Specifies whether locally loaded documents are allowed to access other local urls.
- \value JavaScriptCanAccessClipboard Specifies whether JavaScript can access the clipboard.
- \value XSSAuditingEnabled Specifies whether load requests should be monitored for cross-site scripting attempts.
+ \value LocalContentCanAccessRemoteUrls Specifies whether locally loaded documents are
+ allowed to access remote urls. This is disabled by default. For more information
+ about security origins and local vs. remote content see QWebSecurityOrigin.
+ \value LocalContentCanAccessFileUrls Specifies whether locally loaded documents are
+ allowed to access other local urls. This is enabled by default. For more information
+ about security origins and local vs. remote content see QWebSecurityOrigin.
+ \value XSSAuditingEnabled Specifies whether load requests should be monitored for cross-site
+ scripting attempts. Suspicious scripts will be blocked and reported in the inspector's
+ JavaScript console. Enabling this feature might have an impact on performance
+ and it is disabled by default.
\value AcceleratedCompositingEnabled This feature, when used in conjunction with
QGraphicsWebView, accelerates animations of web content. CSS animations of the transform and
opacity properties will be rendered by composing the cached content of the animated elements.
- This feature is enabled by default
+ This is enabled by default.
\value TiledBackingStoreEnabled This setting enables the tiled backing store feature
for a QGraphicsWebView. With the tiled backing store enabled, the web page contents in and around
the current visible area is speculatively cached to bitmap tiles. The tiles are automatically kept
in sync with the web page as it changes. Enabling tiling can significantly speed up painting heavy
operations like scrolling. Enabling the feature increases memory consumption. It does not work well
with contents using CSS fixed positioning (see also \l{QGraphicsWebView::}{resizesToContents} property).
- \l{QGraphicsWebView::}{tiledBackingStoreFrozen} property allows application to temporarily freeze the contents of the backing store.
+ \l{QGraphicsWebView::}{tiledBackingStoreFrozen} property allows application to temporarily
+ freeze the contents of the backing store. This is disabled by default.
\value FrameFlatteningEnabled With this setting each subframe is expanded to its contents.
On touch devices, it is desired to not have any scrollable sub parts of the page
as it results in a confusing user experience, with scrolling sometimes scrolling sub parts
and at other times scrolling the page itself. For this reason iframes and framesets are
barely usable on touch devices. This will flatten all the frames to become one scrollable page.
- Disabled by default.
+ This is disabled by default.
*/
/*!
@@ -529,7 +538,8 @@ void QWebSettings::resetFontSize(FontSize type)
with UTF-8 and Base64 encoded data, such as:
"data:text/css;charset=utf-8;base64,cCB7IGJhY2tncm91bmQtY29sb3I6IHJlZCB9Ow=="
- NOTE: In case the base 64 data is not valid the style will not be applied.
+
+ \note If the base64 data is not valid, the style will not be applied.
\sa userStyleSheetUrl()
*/
@@ -580,9 +590,11 @@ QString QWebSettings::defaultTextEncoding() const
Sets the path of the icon database to \a path. The icon database is used
to store "favicons" associated with web sites.
- \a path must point to an existing directory where the icons are stored.
+ \a path must point to an existing directory.
Setting an empty path disables the icon database.
+
+ \sa iconDatabasePath(), clearIconDatabase()
*/
void QWebSettings::setIconDatabasePath(const QString& path)
{
@@ -625,7 +637,7 @@ void QWebSettings::clearIconDatabase()
/*!
Returns the web site's icon for \a url.
- If the web site does not specify an icon, or the icon is not in the
+ If the web site does not specify an icon \bold OR if the icon is not in the
database, a null QIcon is returned.
\note The returned icon's size is arbitrary.
@@ -662,7 +674,7 @@ QWebPluginDatabase *QWebSettings::pluginDatabase()
Sets \a graphic to be drawn when QtWebKit needs to draw an image of the
given \a type.
- For example, when an image cannot be loaded the pixmap specified by
+ For example, when an image cannot be loaded, the pixmap specified by
\l{QWebSettings::WebGraphic}{MissingImageGraphic} is drawn instead.
\sa webGraphic()
@@ -680,9 +692,6 @@ void QWebSettings::setWebGraphic(WebGraphic type, const QPixmap& graphic)
Returns a previously set pixmap used to draw replacement graphics of the
specified \a type.
- For example, when an image cannot be loaded the pixmap specified by
- \l{QWebSettings::WebGraphic}{MissingImageGraphic} is drawn instead.
-
\sa setWebGraphic()
*/
QPixmap QWebSettings::webGraphic(WebGraphic type)
@@ -723,8 +732,7 @@ void QWebSettings::clearMemoryCaches()
Sets the maximum number of pages to hold in the memory page cache to \a pages.
The Page Cache allows for a nicer user experience when navigating forth or back
- to pages in the forward/back history, by pausing and resuming up to \a pages
- per page group.
+ to pages in the forward/back history, by pausing and resuming up to \a pages.
For more information about the feature, please refer to:
@@ -796,8 +804,8 @@ QString QWebSettings::fontFamily(FontFamily which) const
}
/*!
- Resets the actual font family to the default font family, specified by
- \a which.
+ Resets the actual font family specified by \a which to the one set
+ in the global QWebSettings instance.
This function has no effect on the global QWebSettings instance.
*/
@@ -839,7 +847,9 @@ bool QWebSettings::testAttribute(WebAttribute attr) const
/*!
\fn void QWebSettings::resetAttribute(WebAttribute attribute)
- Resets the setting of \a attribute.
+ Resets the setting of \a attribute to the value specified in the
+ global QWebSettings instance.
+
This function has no effect on the global QWebSettings instance.
\sa globalSettings()
@@ -855,12 +865,15 @@ void QWebSettings::resetAttribute(WebAttribute attr)
/*!
\since 4.5
- Sets the path for HTML5 offline storage to \a path.
+ Sets \a path as the save location for HTML5 client-side database storage data.
- \a path must point to an existing directory where the databases are stored.
+ \a path must point to an existing directory.
Setting an empty path disables the feature.
+ Support for client-side databases can enabled by setting the
+ \l{QWebSettings::OfflineStorageDatabaseEnabled}{OfflineStorageDatabaseEnabled} attribute.
+
\sa offlineStoragePath()
*/
void QWebSettings::setOfflineStoragePath(const QString& path)
@@ -873,7 +886,7 @@ void QWebSettings::setOfflineStoragePath(const QString& path)
/*!
\since 4.5
- Returns the path of the HTML5 offline storage or an empty string if the
+ Returns the path of the HTML5 client-side database storage or an empty string if the
feature is disabled.
\sa setOfflineStoragePath()
@@ -910,22 +923,24 @@ qint64 QWebSettings::offlineStorageDefaultQuota()
/*!
\since 4.6
- \relates QWebSettings
Sets the path for HTML5 offline web application cache storage to \a path.
An application cache acts like an HTTP cache in some sense. For documents
- that use the application cache via JavaScript, the loader mechinery will
+ that use the application cache via JavaScript, the loader engine will
first ask the application cache for the contents, before hitting the
network.
The feature is described in details at:
http://dev.w3.org/html5/spec/Overview.html#appcache
- \a path must point to an existing directory where the cache is stored.
+ \a path must point to an existing directory.
Setting an empty path disables the feature.
+ Support for offline web application cache storage can enabled by setting the
+ \l{QWebSettings::OfflineWebApplicationCacheEnabled}{OfflineWebApplicationCacheEnabled} attribute.
+
\sa offlineWebApplicationCachePath()
*/
void QWebSettings::setOfflineWebApplicationCachePath(const QString& path)
@@ -937,7 +952,6 @@ void QWebSettings::setOfflineWebApplicationCachePath(const QString& path)
/*!
\since 4.6
- \relates QWebSettings
Returns the path of the HTML5 offline web application cache storage
or an empty string if the feature is disabled.
@@ -984,7 +998,6 @@ qint64 QWebSettings::offlineWebApplicationCacheQuota()
/*!
\since 4.6
- \relates QWebSettings
Sets the path for HTML5 local storage to \a path.
@@ -1004,7 +1017,6 @@ void QWebSettings::setLocalStoragePath(const QString& path)
/*!
\since 4.6
- \relates QWebSettings
Returns the path for HTML5 local storage.
@@ -1017,13 +1029,14 @@ QString QWebSettings::localStoragePath() const
/*!
\since 4.6
- \relates QWebSettings
- Enables WebKit persistent data and sets the path to \a path.
- If the \a path is empty the path for persistent data is set to the
- user-specific data location specified by
- \l{QDesktopServices::DataLocation}{DataLocation}.
-
+ Enables WebKit data persistence and sets the path to \a path.
+ If \a path is empty, the user-specific data location specified by
+ \l{QDesktopServices::DataLocation}{DataLocation} will be used instead.
+
+ This method will simultaneously set and enable the iconDatabasePath(),
+ localStoragePath(), offlineStoragePath() and offlineWebApplicationCachePath().
+
\sa localStoragePath()
*/
void QWebSettings::enablePersistentStorage(const QString& path)
diff --git a/WebKit/qt/Api/qwebsettings.h b/WebKit/qt/Api/qwebsettings.h
index 7355e33..040f9b4 100644
--- a/WebKit/qt/Api/qwebsettings.h
+++ b/WebKit/qt/Api/qwebsettings.h
@@ -63,7 +63,7 @@ public:
OfflineStorageDatabaseEnabled,
OfflineWebApplicationCacheEnabled,
LocalStorageEnabled,
-#ifdef QT_DEPRECATED
+#if defined(QT_DEPRECATED) || defined(qdoc)
LocalStorageDatabaseEnabled = LocalStorageEnabled,
#endif
LocalContentCanAccessRemoteUrls,
diff --git a/WebKit/qt/Api/qwebview.cpp b/WebKit/qt/Api/qwebview.cpp
index 3ba1678..2defdbb 100644
--- a/WebKit/qt/Api/qwebview.cpp
+++ b/WebKit/qt/Api/qwebview.cpp
@@ -44,8 +44,10 @@ public:
Q_ASSERT(view);
}
+ virtual ~QWebViewPrivate();
+
void _q_pageDestroyed();
- void unsetPageIfExists();
+ void detachCurrentPage();
QWebView *view;
QWebPage *page;
@@ -53,6 +55,11 @@ public:
QPainter::RenderHints renderHints;
};
+QWebViewPrivate::~QWebViewPrivate()
+{
+ detachCurrentPage();
+}
+
void QWebViewPrivate::_q_pageDestroyed()
{
page = 0;
@@ -319,18 +326,6 @@ QWebView::QWebView(QWidget *parent)
*/
QWebView::~QWebView()
{
- if (d->page) {
-#if QT_VERSION >= 0x040600
- d->page->d->view.clear();
-#else
- d->page->d->view = 0;
-#endif
- delete d->page->d->client;
- d->page->d->client = 0;
- }
-
- if (d->page && d->page->parent() == this)
- delete d->page;
delete d;
}
@@ -348,11 +343,19 @@ QWebPage *QWebView::page() const
return d->page;
}
-void QWebViewPrivate::unsetPageIfExists()
+void QWebViewPrivate::detachCurrentPage()
{
if (!page)
return;
+ if (page) {
+#if QT_VERSION >= 0x040600
+ page->d->view.clear();
+#else
+ page->d->view = 0;
+#endif
+ }
+
// if the page client is the special client constructed for
// delegating the responsibilities to a QWidget, we need
// to destroy it.
@@ -369,6 +372,8 @@ void QWebViewPrivate::unsetPageIfExists()
delete page;
else
page->disconnect(view);
+
+ page = 0;
}
/*!
@@ -385,7 +390,7 @@ void QWebView::setPage(QWebPage* page)
if (d->page == page)
return;
- d->unsetPageIfExists();
+ d->detachCurrentPage();
d->page = page;
if (d->page) {
diff --git a/WebKit/qt/ChangeLog b/WebKit/qt/ChangeLog
index 0ed6300..e5fabd8 100644
--- a/WebKit/qt/ChangeLog
+++ b/WebKit/qt/ChangeLog
@@ -1,3 +1,458 @@
+2010-05-17 Tasuku Suzuki <tasuku.suzuki@nokia.com>
+
+ Reviewed by Kenneth Rohde Christiansen.
+
+ [Qt] Fix compilation with QT_NO_COMBOBOX
+ https://bugs.webkit.org/show_bug.cgi?id=38324
+
+ * WebCoreSupport/ChromeClientQt.cpp:
+ (WebCore::ChromeClientQt::createSelectPopup):
+ * WebCoreSupport/QtFallbackWebPopup.cpp:
+ * WebCoreSupport/QtFallbackWebPopup.h:
+
+2010-05-17 Antti Koivisto <koivisto@iki.fi>
+
+ Reviewed by Kenneth Rohde Christiansen.
+
+ https://bugs.webkit.org/show_bug.cgi?id=39218
+ [Qt] Tiled backing store tiles sometimes flicker when exiting a zoom animation
+
+ Tiles sometimes flicker when exiting a zoom animation. This happens as a result
+ of the visible rectangle being momentarily out of sync.
+
+ Instead of updating the visible rect by explicitly setting it, pull it through
+ the client and recompute in WebKit the level.
+
+ * Api/qgraphicswebview.cpp:
+ (QGraphicsWebView::paint):
+ * WebCoreSupport/ChromeClientQt.cpp:
+ (WebCore::ChromeClientQt::visibleRectForTiledBackingStore):
+ * WebCoreSupport/ChromeClientQt.h:
+
+2010-05-16 Robert Hogan <robert@webkit.org>
+
+ Reviewed by Kenneth Rohde Christiansen.
+
+ [Qt] Unskip fast/loader/main-document-url-for-non-http-loads.html
+
+ Fix FrameLoaderClientQt.cpp to print relative filename paths correctly.
+
+ Move qt_* functions in FrameLoaderClientQt, EditorClientQt, and NotificationPresenterClientQt
+ to DumpRenderTreeSupportQt. Create new functions to replace them in DumpRenderTreeSupportQt.
+ Support for the old function names is retained until confirmed that no one uses them outside
+ QtWebKit.
+
+ https://bugs.webkit.org/show_bug.cgi?id=38867
+
+ * WebCoreSupport/DumpRenderTreeSupportQt.cpp:
+ (DumpRenderTreeSupportQt::dumpFrameLoader):
+ (DumpRenderTreeSupportQt::dumpResourceLoadCallbacks):
+ (DumpRenderTreeSupportQt::dumpResourceLoadCallbacksPath):
+ (DumpRenderTreeSupportQt::setWillSendRequestReturnsNullOnRedirect):
+ (DumpRenderTreeSupportQt::setWillSendRequestReturnsNull):
+ (DumpRenderTreeSupportQt::setWillSendRequestClearHeaders):
+ (DumpRenderTreeSupportQt::dumpEditingCallbacks):
+ (DumpRenderTreeSupportQt::dumpSetAcceptsEditing):
+ (DumpRenderTreeSupportQt::dumpNotification):
+ (qt_dump_frame_loader):
+ (qt_dump_resource_load_callbacks):
+ (qt_dump_resource_load_callbacks_path):
+ (qt_set_will_send_request_returns_null_on_redirect):
+ (qt_set_will_send_request_returns_null):
+ (qt_set_will_send_request_clear_headers):
+ (qt_dump_editing_callbacks):
+ (qt_dump_set_accepts_editing):
+ (qt_dump_notification):
+ * WebCoreSupport/DumpRenderTreeSupportQt.h:
+ * WebCoreSupport/EditorClientQt.cpp:
+ * WebCoreSupport/EditorClientQt.h:
+ * WebCoreSupport/FrameLoaderClientQt.cpp:
+ (drtDescriptionSuitableForTestResult):
+ * WebCoreSupport/FrameLoaderClientQt.h:
+ * WebCoreSupport/NotificationPresenterClientQt.cpp:
+ * WebCoreSupport/NotificationPresenterClientQt.h:
+
+2010-05-16 Robert Hogan <robert@webkit.org>
+
+ Reviewed by Kenneth Rohde Christiansen.
+
+ [Qt]Unskip security/set-form-autocomplete-attribute.html
+
+ Add support for layoutTestController.elementDoesAutoCompleteForElementWithId().
+
+ https://bugs.webkit.org/show_bug.cgi?id=38859
+
+ * WebCoreSupport/DumpRenderTreeSupportQt.cpp:
+ (DumpRenderTreeSupportQt::elementDoesAutoCompleteForElementWithId):
+ * WebCoreSupport/DumpRenderTreeSupportQt.h:
+
+2010-05-16 Simon Hausmann <simon.hausmann@nokia.com>
+
+ [Qt] Prospective Qt/Mac build fix.
+
+ The friend declaration of QGraphicsWidget confuses gcc and thinks that it's an implicit
+ forward declaration, moving the class into the WebCore namespace (WebCore::QGraphicsWidget).
+
+ The declaration seems useless as no method of QGraphicsWidget is going to call anything
+ in this class.
+
+ * WebCoreSupport/PageClientQt.h:
+
+2010-05-15 Charles Wei <charles.wei@torchmobile.com.cn>
+
+ Reviewed by Simon Hausmann.
+
+ This patch fixes the build failure of WebKit on Linux for Qt4.5
+ https://bugs.webkig.org/show_bug.cgi?id=39108
+
+ * Api/qgraphicswebview.cpp:
+ (QGraphicsWebViewPrivate::syncLayers):
+ * WebCoreSupport/QtPlatformPlugin.cpp:
+
+2010-05-14 Kent Hansen <kent.hansen@nokia.com>, Jocelyn Turcotte <jocelyn.turcotte@nokia.com>, Tor Arne Vestbø <tor.arne.vestbo@nokia.com>, Henry Haverinen <henry.haverinen@nokia.com>, Jedrzej Nowacki <jedrzej.nowacki@nokia.com>, Andreas Kling <andreas.kling@nokia.com>
+
+ Reviewed by Simon Hausmann.
+
+ [Qt] Merge overhaul of the QtWebKit API documentation
+
+ Numerous improvements in wording, qdoc warning fixes and
+ clarifications, done in a team work effort.
+
+ No functional changes.
+
+ * Api/qwebdatabase.cpp:
+ * Api/qwebelement.cpp:
+ * Api/qwebframe.cpp:
+ * Api/qwebhistoryinterface.cpp:
+ * Api/qwebinspector.cpp:
+ * Api/qwebkitversion.cpp:
+ * Api/qwebpage.cpp:
+ * Api/qwebpluginfactory.cpp:
+ * Api/qwebsecurityorigin.cpp:
+ * Api/qwebsettings.cpp:
+ * Api/qwebsettings.h:
+ * docs/qtwebkit.qdoc:
+ * docs/webkitsnippets/qtwebkit_qwebinspector_snippet.cpp:
+ (wrapInFunction):
+ * docs/webkitsnippets/webelement/main.cpp:
+ (findButtonAndClick):
+ (autocomplete1):
+ (autocomplete2):
+ (main):
+
+2010-05-14 Martin Smith <msmith@trolltech.com>
+
+ Reviewed by Simon Hausmann.
+
+ Documentation: Fix overview grouping.
+
+ * docs/qtwebkit.qdoc:
+
+2010-05-14 Benjamin Poulain <benjamin.poulain@nokia.com>
+
+ Reviewed by Laszlo Gombos.
+
+ [QT] Update the Symbian version for the user agent
+ https://bugs.webkit.org/show_bug.cgi?id=38389
+
+ Update the user agent for Symbian^2 to Symbian^4
+
+ * Api/qwebpage.cpp:
+ (QWebPage::userAgentForUrl):
+
+2010-05-14 Dawit Alemayehu <adawit@kde.org>
+
+ Reviewed by Simon Hausmann.
+
+ Implemented createJavaAppletWidget to activate Java applet support.
+
+ https://bugs.webkit.org/show_bug.cgi?id=33044
+
+ * WebCoreSupport/FrameLoaderClientQt.cpp:
+ (WebCore::FrameLoaderClientQt::createJavaAppletWidget):
+
+2010-05-13 Simon Hausmann <hausmann@webkit.org>
+
+ Symbian build fix.
+
+ [Qt] Updated the def file with new exports.
+
+ * symbian/eabi/QtWebKitu.def: Add missing gc symbol for QtLauncher
+
+2010-05-13 Simon Hausmann <simon.hausmann@nokia.com>
+
+ Symbian build fix.
+
+ [Qt] Updated the def file with new exports.
+
+ * symbian/eabi/QtWebKitu.def:
+
+2010-05-11 Diego Gonzalez <diegohcg@webkit.org>
+
+ Reviewed by Kenneth Rohde Christiansen.
+
+ [Qt] tst_QWebPage::inputMethods failing on Maemo5
+ https://bugs.webkit.org/show_bug.cgi?id=38685
+
+ Check if the SIP (Software Input Panel) is triggered, which normally
+ happens on mobile platforms, when a user input form receives a mouse click.
+
+ * tests/qwebpage/tst_qwebpage.cpp:
+ (tst_QWebPage::inputMethods):
+
+2010-05-11 Kenneth Rohde Christiansen <kenneth@webkit.org>
+
+ Reviewed by Laszlo Gombos.
+
+ [Qt] REGRESSION(r58497) tst_QGraphicsWebView::crashOnViewlessWebPages() is failing
+ https://bugs.webkit.org/show_bug.cgi?id=38655
+
+ Fix double free by moving the connect till after the resize.
+
+ The bug is causes by the fact that a resize of an empty page causes a
+ layout, thus deleting the qgraphicswebview before setHtml is called,
+ which then deletes it again, causing a double free.
+
+ * tests/qgraphicswebview/tst_qgraphicswebview.cpp:
+ (tst_QGraphicsWebView::crashOnViewlessWebPages):
+
+2010-05-12 Kenneth Rohde Christiansen <kenneth@webkit.org>
+
+ Reviewed by Laszlo Gombos.
+
+ [Qt] Regression(r59152): QGraphicsPageClient is not forwarding scroll and update events to view
+ https://bugs.webkit.org/show_bug.cgi?id=39016
+
+ Some forward calls got lost during the refatory.
+
+ * WebCoreSupport/PageClientQt.cpp:
+ (WebCore::PageClientQGraphicsWidget::scroll):
+ (WebCore::PageClientQGraphicsWidget::update):
+
+2010-05-13 Antonio Gomes <tonikitoo@webkit.org>, Yi Shen <yi.4.shen@nokia.com>
+
+ Reviewed by Kenneth Christiansen.
+
+ [Qt] Add LayoutTestController interface: computedStyleIncludingVisitedInfo
+ https://bugs.webkit.org/show_bug.cgi?id=37759
+
+ * WebCoreSupport/DumpRenderTreeSupportQt.cpp:
+ (DumpRenderTreeSupportQt::markerTextForListItem):
+ (DumpRenderTreeSupportQt::computedStyleIncludingVisitedInfo):
+ * WebCoreSupport/DumpRenderTreeSupportQt.h:
+
+2010-05-12 Joe Ligman <joseph.ligman@nokia.com>
+
+ Reviewed by Laszlo Gombos.
+
+ [Qt] Nested overflow div does not scroll
+ https://bugs.webkit.org/show_bug.cgi?id=38641
+
+ Modify qtwebkit_webframe_scrollOverflow, if the current node's render layer
+ does not scroll it will try and scroll the parent's render layer. Also export
+ qtwebkit_webframe_scrollOverflow so we can use it independently of
+ qtwebkit_webframe_scrollRecursively
+
+ * Api/qwebframe.cpp:
+ (qtwebkit_webframe_scrollOverflow):
+ (qtwebkit_webframe_scrollRecursively):
+
+2010-05-12 Antonio Gomes <tonikitoo@webkit.org>
+
+ Reviewed by Kenneth Christiansen.
+
+ [Qt] Remove the unneeded check for QWidgetPageClient @QGraphicsWebView::detachCurrentPage
+ https://bugs.webkit.org/show_bug.cgi?id=38989
+
+ Reasons:
+ - There is no need to check for a QWidgetPageClient-based in QGraphicsWebView.
+ - The client has always to be deleted anyways.
+
+ * Api/qgraphicswebview.cpp:
+ (QGraphicsWebViewPrivate::detachPage):
+
+2010-05-12 Simon Hausmann <simon.hausmann@nokia.com>
+
+ Reviewed by Laszlo Gombos.
+
+ Add a comment to explain the web inspector dynamic property url hook
+ and that it's there on purpose :)
+
+ https://bugs.webkit.org/show_bug.cgi?id=35340
+
+ * WebCoreSupport/InspectorClientQt.cpp:
+ (WebCore::InspectorClientQt::openInspectorFrontend):
+
+2010-05-11 Antonio Gomes <tonikitoo@webkit.org>
+
+ Reviewed by Kenneth Christiansen.
+
+ [Qt] Implement a detachCurrentPage method for QGraphicsWebView and QWebView
+ https://bugs.webkit.org/show_bug.cgi?id=38939
+
+ unsetPageIfExists method was renamed to detachCurrentPage method and is now responsible
+ for doing all the unset logic of page and pageClient references previously done by
+ the Q{Graphics}WebView destructor(s).
+
+ It is a code clean up, no behaviour change.
+
+ * Api/qgraphicswebview.cpp:
+ (QGraphicsWebViewPrivate::~QGraphicsWebViewPrivate):
+ (QGraphicsWebView::~QGraphicsWebView):
+ (QGraphicsWebViewPrivate::detachCurrentPage):
+ (QGraphicsWebView::setPage):
+ * Api/qwebview.cpp:
+ (QWebViewPrivate::~QWebViewPrivate):
+ (QWebView::~QWebView):
+ (QWebViewPrivate::detachCurrentPage):
+ (QWebView::setPage):
+
+2010-05-11 Antonio Gomes <tonikitoo@webkit.org>
+
+ Reviewed by Kenneth Christiansen.
+
+ [Qt] emit initialLayoutCompleted signal from FrameLoaderClientQt::dispatchDidFirstVisuallyNonEmptyLayout
+ https://bugs.webkit.org/show_bug.cgi?id=38921
+
+ Emit initialLayoutCompleted signal from FrameLoaderClientQt::dispatchDidFirstVisuallyNonEmptyLayout
+ instead of FrameLoaderClientQt::dispatchDidFirstLayout , because the former ensures that a
+ visual content layed out on the frame.
+
+ It matches to QWebFrame::initialLayoutCompleted signal documentation at:
+
+ "... This is the first time you will see contents displayed on the frame ..."
+
+ * WebCoreSupport/FrameLoaderClientQt.cpp:
+ (WebCore::FrameLoaderClientQt::dispatchDidFirstLayout):
+ (WebCore::FrameLoaderClientQt::dispatchDidFirstVisuallyNonEmptyLayout):
+
+2010-05-11 Jesus Sanchez-Palencia <jesus@webkit.org>
+
+ Reviewed by Kenneth Rohde Christiansen.
+
+ Add PageClientQGraphicsWidget specific implementation.
+ QGraphicsWebViewPrivate doesn't inherit QWebPageClient anymore
+ and the needed functions were moved to this new PageClient class,
+ including Tiling and Accelerated Composite specific ones.
+
+ [Qt] PageClientQt specific implementation for QGraphicsWidget
+ https://bugs.webkit.org/show_bug.cgi?id=37866
+
+ * Api/qgraphicswebview.cpp:
+ (QGraphicsWebViewPrivate::QGraphicsWebViewPrivate):
+ (QGraphicsWebViewPrivate::~QGraphicsWebViewPrivate):
+ (QGraphicsWebViewPrivate::syncLayers):
+ (QGraphicsWebViewPrivate::_q_scaleChanged):
+ (QGraphicsWebView::event):
+ (QGraphicsWebView::setPage):
+ (QGraphicsWebView::updateGeometry):
+ (QGraphicsWebView::setGeometry):
+ (QGraphicsWebView::setResizesToContents):
+ * WebCoreSupport/PageClientQt.cpp:
+ (WebCore::PageClientQGraphicsWidget::~PageClientQGraphicsWidget):
+ (WebCore::PageClientQGraphicsWidget::scroll):
+ (WebCore::PageClientQGraphicsWidget::update):
+ (WebCore::PageClientQGraphicsWidget::createOrDeleteOverlay):
+ (WebCore::PageClientQGraphicsWidget::syncLayers):
+ (WebCore::PageClientQGraphicsWidget::setRootGraphicsLayer):
+ (WebCore::PageClientQGraphicsWidget::markForSync):
+ (WebCore::PageClientQGraphicsWidget::updateCompositingScrollPosition):
+ (WebCore::PageClientQGraphicsWidget::updateTiledBackingStoreScale):
+ (WebCore::PageClientQGraphicsWidget::setInputMethodEnabled):
+ (WebCore::PageClientQGraphicsWidget::inputMethodEnabled):
+ (WebCore::PageClientQGraphicsWidget::setInputMethodHint):
+ (WebCore::PageClientQGraphicsWidget::cursor):
+ (WebCore::PageClientQGraphicsWidget::updateCursor):
+ (WebCore::PageClientQGraphicsWidget::palette):
+ (WebCore::PageClientQGraphicsWidget::screenNumber):
+ (WebCore::PageClientQGraphicsWidget::ownerWidget):
+ (WebCore::PageClientQGraphicsWidget::geometryRelativeToOwnerWidget):
+ (WebCore::PageClientQGraphicsWidget::pluginParent):
+ (WebCore::PageClientQGraphicsWidget::style):
+ * WebCoreSupport/PageClientQt.h:
+ (WebCore::QGraphicsItemOverlay::page):
+ (WebCore::QGraphicsItemOverlay::boundingRect):
+ (WebCore::QGraphicsItemOverlay::paint):
+ (WebCore::QGraphicsItemOverlay::prepareGraphicsItemGeometryChange):
+ (WebCore::PageClientQGraphicsWidget::PageClientQGraphicsWidget):
+ (WebCore::PageClientQGraphicsWidget::isQWidgetClient):
+ (WebCore::PageClientQGraphicsWidget::allowsAcceleratedCompositing):
+ (WebCore::PageClientQGraphicsWidget::):
+
+2010-05-09 Noam Rosenthal <noam.rosenthal@nokia.com>
+
+ Reviewed by Kenneth Rohde Christiansen.
+
+ [Qt] Crash in QGraphicsWebViewPrivate::~QGraphicsWebViewPrivate when animation were used
+ https://bugs.webkit.org/show_bug.cgi?id=38574
+
+ The fix uses a QWeakPointer for rootGraphicsLayer, protecting from a crash in case the layer is deleted before the QGraphicsWebView.
+
+ * Api/qgraphicswebview.cpp:
+ (QGraphicsWebViewPrivate::QGraphicsWebViewPrivate):
+ (QGraphicsWebViewPrivate::~QGraphicsWebViewPrivate):
+ (QGraphicsWebViewPrivate::setRootGraphicsLayer):
+ (QGraphicsWebViewPrivate::updateCompositingScrollPosition):
+
+2010-05-08 Luiz Agostini <luiz.agostini@openbossa.org>
+
+ Reviewed by Simon Hausmann.
+
+ [Qt] Platform plugin
+ https://bugs.webkit.org/show_bug.cgi?id=38438
+
+ Select popups delegate private API. To provide select popup delegates
+ a plugin that implements QWebKitPlatformPlugin must be found
+ in QCoreApplication::libraryPaths.
+
+ * Api/headers.pri:
+ * Api/qwebkitplatformplugin.h: Added.
+ (QWebSelectData::~QWebSelectData):
+ (QWebSelectData::):
+ (QWebSelectMethod::~QWebSelectMethod):
+ (QWebKitPlatformPlugin::~QWebKitPlatformPlugin):
+ (QWebKitPlatformPlugin::):
+ * WebCoreSupport/ChromeClientQt.cpp:
+ (WebCore::ChromeClientQt::createSelectPopup):
+ * WebCoreSupport/ChromeClientQt.h:
+ * WebCoreSupport/QtPlatformPlugin.cpp: Added.
+ (WebCore::SelectData::SelectData):
+ (WebCore::SelectData::itemText):
+ (WebCore::SelectData::itemToolTip):
+ (WebCore::SelectData::itemIsEnabled):
+ (WebCore::SelectData::itemCount):
+ (WebCore::SelectData::itemIsSelected):
+ (WebCore::SelectData::multiple):
+ (WebCore::SelectData::itemType):
+ (WebCore::SelectInputMethodWrapper::SelectInputMethodWrapper):
+ (WebCore::SelectInputMethodWrapper::show):
+ (WebCore::SelectInputMethodWrapper::hide):
+ (WebCore::SelectInputMethodWrapper::selectItem):
+ (WebCore::SelectInputMethodWrapper::didHide):
+ (WebCore::getPluginObject):
+ (WebCore::QtPlatformPlugin::~QtPlatformPlugin):
+ (WebCore::QtPlatformPlugin::plugin):
+ (WebCore::QtPlatformPlugin::createSelectInputMethod):
+ * WebCoreSupport/QtPlatformPlugin.h: Added.
+ (WebCore::QtPlatformPlugin::QtPlatformPlugin):
+
+2010-05-08 Jocelyn Turcotte <jocelyn.turcotte@nokia.com>
+
+ Reviewed by Simon Hausmann.
+
+ [Qt] Document a limitation of QWebPage::linkClicked
+ https://bugs.webkit.org/show_bug.cgi?id=37694
+
+ * Api/qwebpage.cpp:
+
+2010-05-02 Simon Hausmann <hausmann@webkit.org>
+
+ [Qt] Unreviewed, QtWebKit versioning for the trunk.
+
+ The next version is going to be 2.1, based off the trunk.
+
+ * Api/qwebkitglobal.h:
+
2010-05-07 Simon Hausmann <simon.hausmann@nokia.com>
Symbian build fix.
diff --git a/WebKit/qt/WebCoreSupport/ChromeClientQt.cpp b/WebKit/qt/WebCoreSupport/ChromeClientQt.cpp
index cf100f7..1c475b3 100644
--- a/WebKit/qt/WebCoreSupport/ChromeClientQt.cpp
+++ b/WebKit/qt/WebCoreSupport/ChromeClientQt.cpp
@@ -567,13 +567,28 @@ bool ChromeClientQt::allowsAcceleratedCompositing() const
}
#endif
+
+#if ENABLE(TILED_BACKING_STORE)
+IntRect ChromeClientQt::visibleRectForTiledBackingStore() const
+{
+ if (!platformPageClient())
+ return IntRect();
+ return enclosingIntRect(FloatRect(platformPageClient()->graphicsItemVisibleRect()));
+}
+#endif
QtAbstractWebPopup* ChromeClientQt::createSelectPopup()
{
+ QtAbstractWebPopup* result = m_platformPlugin.createSelectInputMethod();
+ if (result)
+ return result;
+
#if defined(Q_WS_MAEMO_5)
return new QtMaemoWebPopup;
-#else
+#elif !defined(QT_NO_COMBOBOX)
return new QtFallbackWebPopup;
+#else
+ return result;
#endif
}
diff --git a/WebKit/qt/WebCoreSupport/ChromeClientQt.h b/WebKit/qt/WebCoreSupport/ChromeClientQt.h
index a4575e2..0396aef 100644
--- a/WebKit/qt/WebCoreSupport/ChromeClientQt.h
+++ b/WebKit/qt/WebCoreSupport/ChromeClientQt.h
@@ -33,6 +33,7 @@
#include "RefCounted.h"
#include "KURL.h"
#include "PlatformString.h"
+#include "QtPlatformPlugin.h"
QT_BEGIN_NAMESPACE
class QEventLoop;
@@ -144,6 +145,10 @@ namespace WebCore {
virtual bool allowsAcceleratedCompositing() const;
#endif
+#if ENABLE(TILED_BACKING_STORE)
+ virtual IntRect visibleRectForTiledBackingStore() const;
+#endif
+
#if ENABLE(TOUCH_EVENTS)
virtual void needTouchEvents(bool) { }
#endif
@@ -181,6 +186,8 @@ namespace WebCore {
bool statusBarVisible;
bool menuBarVisible;
QEventLoop* m_eventLoop;
+
+ QtPlatformPlugin m_platformPlugin;
};
}
diff --git a/WebKit/qt/WebCoreSupport/DumpRenderTreeSupportQt.cpp b/WebKit/qt/WebCoreSupport/DumpRenderTreeSupportQt.cpp
index 935be85..6e59a20 100644
--- a/WebKit/qt/WebCoreSupport/DumpRenderTreeSupportQt.cpp
+++ b/WebKit/qt/WebCoreSupport/DumpRenderTreeSupportQt.cpp
@@ -23,16 +23,21 @@
#include "config.h"
#include "DumpRenderTreeSupportQt.h"
+#include "CSSComputedStyleDeclaration.h"
#include "ContextMenu.h"
#include "ContextMenuClientQt.h"
#include "ContextMenuController.h"
#include "Editor.h"
+#include "EditorClientQt.h"
#include "Element.h"
#include "FocusController.h"
#include "Frame.h"
+#include "FrameLoaderClientQt.h"
#include "FrameView.h"
#include "GCController.h"
+#include "HTMLInputElement.h"
#include "InspectorController.h"
+#include "NotificationPresenterClientQt.h"
#include "Page.h"
#include "PageGroup.h"
#include "PluginDatabase.h"
@@ -47,6 +52,7 @@
#include "TextIterator.h"
#include "WorkerThread.h"
+#include "qwebelement.h"
#include "qwebframe.h"
#include "qwebframe_p.h"
#include "qwebpage.h"
@@ -377,6 +383,23 @@ QString DumpRenderTreeSupportQt::markerTextForListItem(const QWebElement& listIt
return WebCore::markerTextForListItem(listItem.m_element);
}
+QVariantMap DumpRenderTreeSupportQt::computedStyleIncludingVisitedInfo(const QWebElement& element)
+{
+ QVariantMap res;
+
+ WebCore::Element* webElement = element.m_element;
+ if (!webElement)
+ return res;
+
+ RefPtr<WebCore::CSSComputedStyleDeclaration> style = computedStyle(webElement, true);
+ for (int i = 0; i < style->length(); i++) {
+ QString name = style->item(i);
+ QString value = (static_cast<WebCore::CSSStyleDeclaration*>(style.get()))->getPropertyValue(name);
+ res[name] = QVariant(value);
+ }
+ return res;
+}
+
QVariantList DumpRenderTreeSupportQt::selectedRange(QWebPage* page)
{
WebCore::Frame* frame = page->handle()->page->focusController()->focusedOrMainFrame();
@@ -421,6 +444,74 @@ QVariantList DumpRenderTreeSupportQt::firstRectForCharacterRange(QWebPage* page,
return rect;
}
+bool DumpRenderTreeSupportQt::elementDoesAutoCompleteForElementWithId(QWebFrame* frame, const QString& elementId)
+{
+ Frame* coreFrame = QWebFramePrivate::core(frame);
+ if (!coreFrame)
+ return false;
+
+ Document* doc = coreFrame->document();
+ Q_ASSERT(doc);
+
+ Node* coreNode = doc->getElementById(elementId);
+ if (!coreNode || !coreNode->renderer())
+ return false;
+
+ HTMLInputElement* inputElement = static_cast<HTMLInputElement*>(coreNode);
+ if (!inputElement)
+ return false;
+
+ return (inputElement->isTextField()
+ && inputElement->inputType() != HTMLInputElement::PASSWORD
+ && inputElement->autoComplete());
+}
+
+void DumpRenderTreeSupportQt::dumpFrameLoader(bool b)
+{
+ FrameLoaderClientQt::dumpFrameLoaderCallbacks = b;
+}
+
+void DumpRenderTreeSupportQt::dumpResourceLoadCallbacks(bool b)
+{
+ FrameLoaderClientQt::dumpResourceLoadCallbacks = b;
+}
+
+void DumpRenderTreeSupportQt::dumpResourceLoadCallbacksPath(const QString& path)
+{
+ FrameLoaderClientQt::dumpResourceLoadCallbacksPath = path;
+}
+
+void DumpRenderTreeSupportQt::setWillSendRequestReturnsNullOnRedirect(bool b)
+{
+ FrameLoaderClientQt::sendRequestReturnsNullOnRedirect = b;
+}
+
+void DumpRenderTreeSupportQt::setWillSendRequestReturnsNull(bool b)
+{
+ FrameLoaderClientQt::sendRequestReturnsNull = b;
+}
+
+void DumpRenderTreeSupportQt::setWillSendRequestClearHeaders(const QStringList& headers)
+{
+ FrameLoaderClientQt::sendRequestClearHeaders = headers;
+}
+
+void DumpRenderTreeSupportQt::dumpEditingCallbacks(bool b)
+{
+ EditorClientQt::dumpEditingCallbacks = b;
+}
+
+void DumpRenderTreeSupportQt::dumpSetAcceptsEditing(bool b)
+{
+ EditorClientQt::acceptsEditing = b;
+}
+
+void DumpRenderTreeSupportQt::dumpNotification(bool b)
+{
+#if ENABLE(NOTIFICATIONS)
+ NotificationPresenterClientQt::dumpNotification = b;
+#endif
+}
// Provide a backward compatibility with previously exported private symbols as of QtWebKit 4.6 release
void QWEBKIT_EXPORT qt_resumeActiveDOMObjects(QWebFrame* frame)
@@ -502,3 +593,49 @@ void QWEBKIT_EXPORT qt_webpage_setGroupName(QWebPage* page, const QString& group
{
DumpRenderTreeSupportQt::webPageSetGroupName(page, groupName);
}
+
+void QWEBKIT_EXPORT qt_dump_frame_loader(bool b)
+{
+ DumpRenderTreeSupportQt::dumpFrameLoader(b);
+}
+
+void QWEBKIT_EXPORT qt_dump_resource_load_callbacks(bool b)
+{
+ DumpRenderTreeSupportQt::dumpResourceLoadCallbacks(b);
+}
+
+void QWEBKIT_EXPORT qt_dump_resource_load_callbacks_path(const QString& path)
+{
+ DumpRenderTreeSupportQt::dumpResourceLoadCallbacksPath(path);
+}
+
+void QWEBKIT_EXPORT qt_set_will_send_request_returns_null_on_redirect(bool b)
+{
+ DumpRenderTreeSupportQt::setWillSendRequestReturnsNullOnRedirect(b);
+
+}
+
+void QWEBKIT_EXPORT qt_set_will_send_request_returns_null(bool b)
+{
+ DumpRenderTreeSupportQt::setWillSendRequestReturnsNull(b);
+}
+
+void QWEBKIT_EXPORT qt_set_will_send_request_clear_headers(const QStringList& headers)
+{
+ DumpRenderTreeSupportQt::setWillSendRequestClearHeaders(headers);
+}
+
+void QWEBKIT_EXPORT qt_dump_editing_callbacks(bool b)
+{
+ DumpRenderTreeSupportQt::dumpEditingCallbacks(b);
+}
+
+void QWEBKIT_EXPORT qt_dump_set_accepts_editing(bool b)
+{
+ DumpRenderTreeSupportQt::dumpSetAcceptsEditing(b);
+}
+
+void QWEBKIT_EXPORT qt_dump_notification(bool b)
+{
+ DumpRenderTreeSupportQt::dumpNotification(b);
+}
diff --git a/WebKit/qt/WebCoreSupport/DumpRenderTreeSupportQt.h b/WebKit/qt/WebCoreSupport/DumpRenderTreeSupportQt.h
index c0187df..6045463 100644
--- a/WebKit/qt/WebCoreSupport/DumpRenderTreeSupportQt.h
+++ b/WebKit/qt/WebCoreSupport/DumpRenderTreeSupportQt.h
@@ -26,10 +26,9 @@
#include "qwebkitglobal.h"
#include <QVariant>
-#include "qwebelement.h"
-
-class QWebPage;
+class QWebElement;
class QWebFrame;
+class QWebPage;
class QWEBKIT_EXPORT DumpRenderTreeSupportQt {
@@ -78,6 +77,7 @@ public:
static int numberOfPages(QWebFrame* frame, float width, float height);
static int pageNumberForElementById(QWebFrame* frame, const QString& id, float width, float height);
static bool hasDocumentElement(QWebFrame* frame);
+ static bool elementDoesAutoCompleteForElementWithId(QWebFrame* frame, const QString& elementId);
static void whiteListAccessFromOrigin(const QString& sourceOrigin, const QString& destinationProtocol, const QString& destinationHost, bool allowDestinationSubdomains);
static void resetOriginAccessWhiteLists();
@@ -85,6 +85,20 @@ public:
static int workerThreadCount();
static QString markerTextForListItem(const QWebElement& listItem);
+ static QVariantMap computedStyleIncludingVisitedInfo(const QWebElement& element);
+
+ static void dumpFrameLoader(bool b);
+ static void dumpResourceLoadCallbacks(bool b);
+ static void dumpResourceLoadCallbacksPath(const QString& path);
+ static void setWillSendRequestReturnsNullOnRedirect(bool b);
+ static void setWillSendRequestReturnsNull(bool b);
+ static void setWillSendRequestClearHeaders(const QStringList& headers);
+
+ static void dumpEditingCallbacks(bool b);
+ static void dumpSetAcceptsEditing(bool b);
+
+ static void dumpNotification(bool b);
+
};
#endif
diff --git a/WebKit/qt/WebCoreSupport/EditorClientQt.cpp b/WebKit/qt/WebCoreSupport/EditorClientQt.cpp
index 8a0aa08..83aa2a9 100644
--- a/WebKit/qt/WebCoreSupport/EditorClientQt.cpp
+++ b/WebKit/qt/WebCoreSupport/EditorClientQt.cpp
@@ -57,19 +57,6 @@
#include <QUndoStack>
#define methodDebug() qDebug("EditorClientQt: %s", __FUNCTION__);
-static bool dumpEditingCallbacks = false;
-static bool acceptsEditing = true;
-void QWEBKIT_EXPORT qt_dump_editing_callbacks(bool b)
-{
- dumpEditingCallbacks = b;
-}
-
-void QWEBKIT_EXPORT qt_dump_set_accepts_editing(bool b)
-{
- acceptsEditing = b;
-}
-
-
static QString dumpPath(WebCore::Node *node)
{
QString str = node->nodeName();
@@ -99,6 +86,9 @@ static QString dumpRange(WebCore::Range *range)
namespace WebCore {
+bool EditorClientQt::dumpEditingCallbacks = false;
+bool EditorClientQt::acceptsEditing = true;
+
using namespace HTMLNames;
bool EditorClientQt::shouldDeleteRange(Range* range)
diff --git a/WebKit/qt/WebCoreSupport/EditorClientQt.h b/WebKit/qt/WebCoreSupport/EditorClientQt.h
index 6c20898..811298b 100644
--- a/WebKit/qt/WebCoreSupport/EditorClientQt.h
+++ b/WebKit/qt/WebCoreSupport/EditorClientQt.h
@@ -109,6 +109,9 @@ public:
bool isEditing() const;
+ static bool dumpEditingCallbacks;
+ static bool acceptsEditing;
+
private:
QWebPage* m_page;
bool m_editing;
diff --git a/WebKit/qt/WebCoreSupport/FrameLoaderClientQt.cpp b/WebKit/qt/WebCoreSupport/FrameLoaderClientQt.cpp
index a0b06fb..00359c0 100644
--- a/WebKit/qt/WebCoreSupport/FrameLoaderClientQt.cpp
+++ b/WebKit/qt/WebCoreSupport/FrameLoaderClientQt.cpp
@@ -78,39 +78,8 @@
#include <QStringList>
#include "qwebhistory_p.h"
-static bool dumpFrameLoaderCallbacks = false;
-static bool dumpResourceLoadCallbacks = false;
-static bool sendRequestReturnsNullOnRedirect = false;
-static bool sendRequestReturnsNull = false;
-static QStringList sendRequestClearHeaders;
-
static QMap<unsigned long, QString> dumpAssignedUrls;
-void QWEBKIT_EXPORT qt_dump_frame_loader(bool b)
-{
- dumpFrameLoaderCallbacks = b;
-}
-
-void QWEBKIT_EXPORT qt_dump_resource_load_callbacks(bool b)
-{
- dumpResourceLoadCallbacks = b;
-}
-
-void QWEBKIT_EXPORT qt_set_will_send_request_returns_null_on_redirect(bool b)
-{
- sendRequestReturnsNullOnRedirect = b;
-}
-
-void QWEBKIT_EXPORT qt_set_will_send_request_returns_null(bool b)
-{
- sendRequestReturnsNull = b;
-}
-
-void QWEBKIT_EXPORT qt_set_will_send_request_clear_headers(const QStringList& headers)
-{
- sendRequestClearHeaders = headers;
-}
-
// Compare with WebKitTools/DumpRenderTree/mac/FrameLoadDelegate.mm
static QString drtDescriptionSuitableForTestResult(WebCore::Frame* _frame)
{
@@ -131,8 +100,10 @@ static QString drtDescriptionSuitableForTestResult(WebCore::Frame* _frame)
static QString drtDescriptionSuitableForTestResult(const WebCore::KURL& _url)
{
- QUrl url = _url;
- return url.toString();
+ if (_url.isEmpty() || !_url.isLocalFile())
+ return _url.string();
+ // Remove the leading path from file urls
+ return QString(_url.string()).replace(WebCore::FrameLoaderClientQt::dumpResourceLoadCallbacksPath, "").mid(1);
}
static QString drtDescriptionSuitableForTestResult(const WebCore::ResourceError& error)
@@ -143,15 +114,15 @@ static QString drtDescriptionSuitableForTestResult(const WebCore::ResourceError&
static QString drtDescriptionSuitableForTestResult(const WebCore::ResourceRequest& request)
{
- QString url = request.url().string();
+ QString url = drtDescriptionSuitableForTestResult(request.url());
QString httpMethod = request.httpMethod();
- QString mainDocumentUrl = request.firstPartyForCookies().string();
+ QString mainDocumentUrl = drtDescriptionSuitableForTestResult(request.firstPartyForCookies());
return QString::fromLatin1("<NSURLRequest URL %1, main document URL %2, http method %3>").arg(url).arg(mainDocumentUrl).arg(httpMethod);
}
static QString drtDescriptionSuitableForTestResult(const WebCore::ResourceResponse& response)
{
- QString url = response.url().string();
+ QString url = drtDescriptionSuitableForTestResult(response.url());
int httpStatusCode = response.httpStatusCode();
return QString::fromLatin1("<NSURLResponse %1, http status code %2>").arg(url).arg(httpStatusCode);
}
@@ -160,6 +131,13 @@ static QString drtDescriptionSuitableForTestResult(const WebCore::ResourceRespon
namespace WebCore
{
+bool FrameLoaderClientQt::dumpFrameLoaderCallbacks = false;
+bool FrameLoaderClientQt::dumpResourceLoadCallbacks = false;
+bool FrameLoaderClientQt::sendRequestReturnsNullOnRedirect = false;
+bool FrameLoaderClientQt::sendRequestReturnsNull = false;
+QStringList FrameLoaderClientQt::sendRequestClearHeaders;
+QString FrameLoaderClientQt::dumpResourceLoadCallbacksPath;
+
FrameLoaderClientQt::FrameLoaderClientQt()
: m_frame(0)
, m_webFrame(0)
@@ -446,13 +424,13 @@ void FrameLoaderClientQt::dispatchDidFinishLoad()
void FrameLoaderClientQt::dispatchDidFirstLayout()
{
- if (m_webFrame)
- emit m_webFrame->initialLayoutCompleted();
+ notImplemented();
}
void FrameLoaderClientQt::dispatchDidFirstVisuallyNonEmptyLayout()
{
- notImplemented();
+ if (m_webFrame)
+ emit m_webFrame->initialLayoutCompleted();
}
void FrameLoaderClientQt::dispatchShow()
@@ -1413,11 +1391,10 @@ void FrameLoaderClientQt::redirectDataToPlugin(Widget* pluginWidget)
m_hasSentResponseToPlugin = false;
}
-PassRefPtr<Widget> FrameLoaderClientQt::createJavaAppletWidget(const IntSize&, HTMLAppletElement*, const KURL&,
- const Vector<String>&, const Vector<String>&)
+PassRefPtr<Widget> FrameLoaderClientQt::createJavaAppletWidget(const IntSize& pluginSize, HTMLAppletElement* element, const KURL& url,
+ const Vector<String>& paramNames, const Vector<String>& paramValues)
{
- notImplemented();
- return 0;
+ return createPlugin(pluginSize, element, url, paramNames, paramValues, "application/x-java-applet", true);
}
String FrameLoaderClientQt::overrideMediaType() const
diff --git a/WebKit/qt/WebCoreSupport/FrameLoaderClientQt.h b/WebKit/qt/WebCoreSupport/FrameLoaderClientQt.h
index 9c968a0..9aa9344 100644
--- a/WebKit/qt/WebCoreSupport/FrameLoaderClientQt.h
+++ b/WebKit/qt/WebCoreSupport/FrameLoaderClientQt.h
@@ -212,6 +212,13 @@ namespace WebCore {
QString chooseFile(const QString& oldFile);
+ static bool dumpFrameLoaderCallbacks;
+ static bool dumpResourceLoadCallbacks;
+ static QString dumpResourceLoadCallbacksPath;
+ static bool sendRequestReturnsNullOnRedirect;
+ static bool sendRequestReturnsNull;
+ static QStringList sendRequestClearHeaders;
+
private:
Frame *m_frame;
QWebFrame *m_webFrame;
diff --git a/WebKit/qt/WebCoreSupport/InspectorClientQt.cpp b/WebKit/qt/WebCoreSupport/InspectorClientQt.cpp
index a3dd9dd..725c5fb 100644
--- a/WebKit/qt/WebCoreSupport/InspectorClientQt.cpp
+++ b/WebKit/qt/WebCoreSupport/InspectorClientQt.cpp
@@ -89,6 +89,10 @@ void InspectorClientQt::openInspectorFrontend(WebCore::InspectorController*)
inspectorView->setPage(inspectorPage);
QWebInspector* inspector = m_inspectedWebPage->d->getOrCreateInspector();
+ // This is a known hook that allows changing the default URL for the
+ // Web inspector. This is used for SDK purposes. Please keep this hook
+ // around and don't remove it.
+ // https://bugs.webkit.org/show_bug.cgi?id=35340
QUrl inspectorUrl = inspector->property("_q_inspectorUrl").toUrl();
if (!inspectorUrl.isValid())
inspectorUrl = QUrl("qrc:/webkit/inspector/inspector.html");
diff --git a/WebKit/qt/WebCoreSupport/NotificationPresenterClientQt.cpp b/WebKit/qt/WebCoreSupport/NotificationPresenterClientQt.cpp
index e440837..d6546ae 100644
--- a/WebKit/qt/WebCoreSupport/NotificationPresenterClientQt.cpp
+++ b/WebKit/qt/WebCoreSupport/NotificationPresenterClientQt.cpp
@@ -41,17 +41,13 @@
#include <QtGui>
-static bool dumpNotification = false;
-
-void QWEBKIT_EXPORT qt_dump_notification(bool b)
-{
- dumpNotification = b;
-}
#if ENABLE(NOTIFICATIONS)
using namespace WebCore;
+bool NotificationPresenterClientQt::dumpNotification = false;
+
NotificationPresenterClientQt::NotificationPresenterClientQt()
{
}
diff --git a/WebKit/qt/WebCoreSupport/NotificationPresenterClientQt.h b/WebKit/qt/WebCoreSupport/NotificationPresenterClientQt.h
index 272c661..5967867 100644
--- a/WebKit/qt/WebCoreSupport/NotificationPresenterClientQt.h
+++ b/WebKit/qt/WebCoreSupport/NotificationPresenterClientQt.h
@@ -51,6 +51,8 @@ public:
virtual void requestPermission(SecurityOrigin*, PassRefPtr<VoidCallback>);
virtual NotificationPresenter::Permission checkPermission(const KURL&);
+ static bool dumpNotification;
+
private:
#ifndef QT_NO_SYSTEMTRAYICON
QSystemTrayIcon m_tray;
diff --git a/WebKit/qt/WebCoreSupport/PageClientQt.cpp b/WebKit/qt/WebCoreSupport/PageClientQt.cpp
index 611bab7..e19f44f 100644
--- a/WebKit/qt/WebCoreSupport/PageClientQt.cpp
+++ b/WebKit/qt/WebCoreSupport/PageClientQt.cpp
@@ -103,4 +103,201 @@ QStyle* PageClientQWidget::style() const
return view->style();
}
+PageClientQGraphicsWidget::~PageClientQGraphicsWidget()
+{
+#if USE(ACCELERATED_COMPOSITING)
+ if (!rootGraphicsLayer)
+ return;
+ // we don't need to delete the root graphics layer. The lifecycle is managed in GraphicsLayerQt.cpp.
+ rootGraphicsLayer.data()->setParentItem(0);
+ view->scene()->removeItem(rootGraphicsLayer.data());
+#endif
+}
+
+void PageClientQGraphicsWidget::scroll(int dx, int dy, const QRect& rectToScroll)
+{
+ view->scroll(qreal(dx), qreal(dy), rectToScroll);
+
+#if USE(ACCELERATED_COMPOSITING)
+ updateCompositingScrollPosition();
+#endif
+}
+
+void PageClientQGraphicsWidget::update(const QRect& dirtyRect)
+{
+ view->update(dirtyRect);
+
+ createOrDeleteOverlay();
+ if (overlay)
+ overlay->update(QRectF(dirtyRect));
+#if USE(ACCELERATED_COMPOSITING)
+ syncLayers();
+#endif
+}
+
+void PageClientQGraphicsWidget::createOrDeleteOverlay()
+{
+ bool useOverlay = false;
+ if (!viewResizesToContents) {
+#if USE(ACCELERATED_COMPOSITING)
+ useOverlay = useOverlay || rootGraphicsLayer;
+#endif
+#if ENABLE(TILED_BACKING_STORE)
+ useOverlay = useOverlay || QWebFramePrivate::core(page->mainFrame())->tiledBackingStore();
+#endif
+ }
+ if (useOverlay == !!overlay)
+ return;
+ if (useOverlay) {
+ overlay = QSharedPointer<QGraphicsItemOverlay>(new QGraphicsItemOverlay(view, page));
+ overlay->setZValue(OverlayZValue);
+ } else
+ overlay.clear();
+}
+
+#if USE(ACCELERATED_COMPOSITING)
+void PageClientQGraphicsWidget::syncLayers()
+{
+ if (shouldSync) {
+ QWebFramePrivate::core(page->mainFrame())->view()->syncCompositingStateRecursive();
+ shouldSync = false;
+ }
+}
+
+void PageClientQGraphicsWidget::setRootGraphicsLayer(QGraphicsItem* layer)
+{
+ if (rootGraphicsLayer) {
+ rootGraphicsLayer.data()->setParentItem(0);
+ view->scene()->removeItem(rootGraphicsLayer.data());
+ QWebFramePrivate::core(page->mainFrame())->view()->syncCompositingStateRecursive();
+ }
+
+ rootGraphicsLayer = layer ? layer->toGraphicsObject() : 0;
+
+ if (layer) {
+ layer->setFlag(QGraphicsItem::ItemClipsChildrenToShape, true);
+ layer->setParentItem(view);
+ layer->setZValue(RootGraphicsLayerZValue);
+ updateCompositingScrollPosition();
+ }
+ createOrDeleteOverlay();
+}
+
+void PageClientQGraphicsWidget::markForSync(bool scheduleSync)
+{
+ shouldSync = true;
+ if (scheduleSync)
+ syncMetaMethod.invoke(view, Qt::QueuedConnection);
+}
+
+void PageClientQGraphicsWidget::updateCompositingScrollPosition()
+{
+ if (rootGraphicsLayer && page && page->mainFrame()) {
+ const QPoint scrollPosition = page->mainFrame()->scrollPosition();
+ rootGraphicsLayer.data()->setPos(-scrollPosition);
+ }
+}
+#endif
+
+#if ENABLE(TILED_BACKING_STORE)
+void PageClientQGraphicsWidget::updateTiledBackingStoreScale()
+{
+ WebCore::TiledBackingStore* backingStore = QWebFramePrivate::core(page->mainFrame())->tiledBackingStore();
+ if (!backingStore)
+ return;
+ backingStore->setContentsScale(view->scale());
+}
+#endif
+
+void PageClientQGraphicsWidget::setInputMethodEnabled(bool enable)
+{
+#if QT_VERSION >= QT_VERSION_CHECK(4, 6, 0)
+ view->setFlag(QGraphicsItem::ItemAcceptsInputMethod, enable);
+#endif
+}
+
+bool PageClientQGraphicsWidget::inputMethodEnabled() const
+{
+#if QT_VERSION >= QT_VERSION_CHECK(4, 6, 0)
+ return view->flags() & QGraphicsItem::ItemAcceptsInputMethod;
+#else
+ return false;
+#endif
+}
+
+#if QT_VERSION >= 0x040600
+void PageClientQGraphicsWidget::setInputMethodHint(Qt::InputMethodHint hint, bool enable)
+{
+ if (enable)
+ view->setInputMethodHints(view->inputMethodHints() | hint);
+ else
+ view->setInputMethodHints(view->inputMethodHints() & ~hint);
+}
+#endif
+
+#ifndef QT_NO_CURSOR
+QCursor PageClientQGraphicsWidget::cursor() const
+{
+ return view->cursor();
+}
+
+void PageClientQGraphicsWidget::updateCursor(const QCursor& cursor)
+{
+ view->setCursor(cursor);
+}
+#endif
+
+QPalette PageClientQGraphicsWidget::palette() const
+{
+ return view->palette();
+}
+
+int PageClientQGraphicsWidget::screenNumber() const
+{
+#if defined(Q_WS_X11)
+ if (QGraphicsScene* scene = view->scene()) {
+ const QList<QGraphicsView*> views = scene->views();
+
+ if (!views.isEmpty())
+ return views.at(0)->x11Info().screen();
+ }
+#endif
+
+ return 0;
+}
+
+QWidget* PageClientQGraphicsWidget::ownerWidget() const
+{
+ if (QGraphicsScene* scene = view->scene()) {
+ const QList<QGraphicsView*> views = scene->views();
+ return views.value(0);
+ }
+ return 0;
+}
+
+QRect PageClientQGraphicsWidget::geometryRelativeToOwnerWidget() const
+{
+ if (!view->scene())
+ return QRect();
+
+ QList<QGraphicsView*> views = view->scene()->views();
+ if (views.isEmpty())
+ return QRect();
+
+ QGraphicsView* graphicsView = views.at(0);
+ return graphicsView->mapFromScene(view->boundingRect()).boundingRect();
+}
+
+QObject* PageClientQGraphicsWidget::pluginParent() const
+{
+ return view;
+}
+
+QStyle* PageClientQGraphicsWidget::style() const
+{
+ return view->style();
+}
+
+
+
}
diff --git a/WebKit/qt/WebCoreSupport/PageClientQt.h b/WebKit/qt/WebCoreSupport/PageClientQt.h
index 3f09564..9341b19 100644
--- a/WebKit/qt/WebCoreSupport/PageClientQt.h
+++ b/WebKit/qt/WebCoreSupport/PageClientQt.h
@@ -21,10 +21,27 @@
#ifndef PageClientQt_h
#define PageClientQt_h
+#include "FrameView.h"
+#include "GraphicsContext.h"
+#include "IntRect.h"
+#include "qwebframe.h"
+#include "qwebframe_p.h"
+#include "qwebpage.h"
+#include "qwebpage_p.h"
#include "QWebPageClient.h"
+#include "TiledBackingStore.h"
+#include <QtCore/qmetaobject.h>
+#include <QtCore/qsharedpointer.h>
+#include <QtGui/qgraphicsscene.h>
+#include <QtGui/qgraphicsview.h>
+#include <QtGui/qgraphicswidget.h>
+#include <QtGui/qscrollbar.h>
+#include <QtGui/qstyleoption.h>
#include <QtGui/qwidget.h>
+#include <Settings.h>
+
namespace WebCore {
@@ -63,5 +80,123 @@ public:
QWidget* view;
};
+// the overlay is here for one reason only: to have the scroll-bars and other
+// extra UI elements appear on top of any QGraphicsItems created by CSS compositing layers
+class QGraphicsItemOverlay : public QGraphicsItem {
+ public:
+ QGraphicsItemOverlay(QGraphicsWidget* view, QWebPage* p)
+ :QGraphicsItem(view)
+ , q(view)
+ , page(p)
+ {
+ setPos(0, 0);
+#if QT_VERSION >= QT_VERSION_CHECK(4, 6, 0)
+ setFlag(QGraphicsItem::ItemUsesExtendedStyleOption, true);
+#endif
+ setCacheMode(QGraphicsItem::DeviceCoordinateCache);
+ }
+
+ QRectF boundingRect() const
+ {
+ return q->boundingRect();
+ }
+
+ void paint(QPainter* painter, const QStyleOptionGraphicsItem* options, QWidget*)
+ {
+ page->mainFrame()->render(painter, static_cast<QWebFrame::RenderLayer>(QWebFrame::AllLayers&(~QWebFrame::ContentsLayer)), options->exposedRect.toRect());
+ }
+
+ void prepareGraphicsItemGeometryChange()
+ {
+ prepareGeometryChange();
+ }
+
+ QGraphicsWidget* q;
+ QWebPage* page;
+};
+
+
+class PageClientQGraphicsWidget : public QWebPageClient {
+public:
+ PageClientQGraphicsWidget(QGraphicsWidget* v, QWebPage* p)
+ : view(v)
+ , page(p)
+ , viewResizesToContents(false)
+#if USE(ACCELERATED_COMPOSITING)
+ , shouldSync(false)
+#endif
+ {
+ Q_ASSERT(view);
+#if USE(ACCELERATED_COMPOSITING)
+ // the overlay and stays alive for the lifetime of
+ // this QGraphicsWebView as the scrollbars are needed when there's no compositing
+ view->setFlag(QGraphicsItem::ItemUsesExtendedStyleOption);
+ syncMetaMethod = view->metaObject()->method(view->metaObject()->indexOfMethod("syncLayers()"));
+#endif
+ }
+
+ virtual ~PageClientQGraphicsWidget();
+
+ virtual bool isQWidgetClient() const { return false; }
+
+ virtual void scroll(int dx, int dy, const QRect&);
+ virtual void update(const QRect& dirtyRect);
+ virtual void setInputMethodEnabled(bool enable);
+ virtual bool inputMethodEnabled() const;
+#if QT_VERSION >= 0x040600
+ virtual void setInputMethodHint(Qt::InputMethodHint hint, bool enable);
+#endif
+
+#ifndef QT_NO_CURSOR
+ virtual QCursor cursor() const;
+ virtual void updateCursor(const QCursor& cursor);
+#endif
+
+ virtual QPalette palette() const;
+ virtual int screenNumber() const;
+ virtual QWidget* ownerWidget() const;
+ virtual QRect geometryRelativeToOwnerWidget() const;
+
+ virtual QObject* pluginParent() const;
+
+ virtual QStyle* style() const;
+
+ void createOrDeleteOverlay();
+
+#if ENABLE(TILED_BACKING_STORE)
+ void updateTiledBackingStoreScale();
+#endif
+
+#if USE(ACCELERATED_COMPOSITING)
+ virtual void setRootGraphicsLayer(QGraphicsItem* layer);
+ virtual void markForSync(bool scheduleSync);
+ void updateCompositingScrollPosition();
+ void syncLayers();
+
+ // QGraphicsWebView can render composited layers
+ virtual bool allowsAcceleratedCompositing() const { return true; }
+#endif
+
+ QGraphicsWidget* view;
+ QWebPage* page;
+ bool viewResizesToContents;
+
+#if USE(ACCELERATED_COMPOSITING)
+ QWeakPointer<QGraphicsObject> rootGraphicsLayer;
+
+ // we have to flush quite often, so we use a meta-method instead of QTimer::singleShot for putting the event in the queue
+ QMetaMethod syncMetaMethod;
+
+ // we need to sync the layers if we get a special call from the WebCore
+ // compositor telling us to do so. We'll get that call from ChromeClientQt
+ bool shouldSync;
+#endif
+ // the overlay gets instantiated when the root layer is attached, and get deleted when it's detached
+ QSharedPointer<QGraphicsItemOverlay> overlay;
+
+ // we need to put the root graphics layer behind the overlay (which contains the scrollbar)
+ enum { RootGraphicsLayerZValue, OverlayZValue };
+};
+
}
#endif // PageClientQt
diff --git a/WebKit/qt/WebCoreSupport/QtFallbackWebPopup.cpp b/WebKit/qt/WebCoreSupport/QtFallbackWebPopup.cpp
index 7514077..26420e5 100644
--- a/WebKit/qt/WebCoreSupport/QtFallbackWebPopup.cpp
+++ b/WebKit/qt/WebCoreSupport/QtFallbackWebPopup.cpp
@@ -21,6 +21,8 @@
#include "config.h"
#include "QtFallbackWebPopup.h"
+#ifndef QT_NO_COMBOBOX
+
#include "HostWindow.h"
#include "PopupMenuClient.h"
#include "QWebPageClient.h"
@@ -225,3 +227,5 @@ void QtFallbackWebPopup::activeChanged(int index)
}
}
+
+#endif // QT_NO_COMBOBOX
diff --git a/WebKit/qt/WebCoreSupport/QtFallbackWebPopup.h b/WebKit/qt/WebCoreSupport/QtFallbackWebPopup.h
index 62b8aea..6d2e1ff 100644
--- a/WebKit/qt/WebCoreSupport/QtFallbackWebPopup.h
+++ b/WebKit/qt/WebCoreSupport/QtFallbackWebPopup.h
@@ -23,6 +23,8 @@
#include "QtAbstractWebPopup.h"
#include <QComboBox>
+#ifndef QT_NO_COMBOBOX
+
QT_BEGIN_NAMESPACE
class QGraphicsProxyWidget;
QT_END_NAMESPACE
@@ -67,4 +69,6 @@ private:
}
+#endif // QT_NO_COMBOBOX
+
#endif // QtFallbackWebPopup_h
diff --git a/WebKit/qt/WebCoreSupport/QtPlatformPlugin.cpp b/WebKit/qt/WebCoreSupport/QtPlatformPlugin.cpp
new file mode 100644
index 0000000..a097bf7
--- /dev/null
+++ b/WebKit/qt/WebCoreSupport/QtPlatformPlugin.cpp
@@ -0,0 +1,143 @@
+/*
+ * Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies)
+ *
+ * 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.
+ *
+ */
+
+#include "config.h"
+#include "QtPlatformPlugin.h"
+
+#include "qwebkitplatformplugin.h"
+
+#include <QCoreApplication>
+#include <QDir>
+#include <QPluginLoader>
+
+namespace WebCore {
+
+class SelectData : public QWebSelectData {
+public:
+ SelectData(QtAbstractWebPopup* data) : d(data) {}
+
+ virtual ItemType itemType(int) const;
+ virtual QString itemText(int index) const { return d->itemText(index); }
+ virtual QString itemToolTip(int index) const { return d->itemToolTip(index); }
+ virtual bool itemIsEnabled(int index) const { return d->itemIsEnabled(index); }
+ virtual int itemCount() const { return d->itemCount(); }
+ virtual bool itemIsSelected(int index) const { return d->itemIsSelected(index); }
+ virtual bool multiple() const { return d->multiple(); }
+
+private:
+ QtAbstractWebPopup* d;
+};
+
+QWebSelectData::ItemType SelectData::itemType(int index) const
+{
+ switch (d->itemType(index)) {
+ case QtAbstractWebPopup::Separator: return Separator;
+ case QtAbstractWebPopup::Group: return Group;
+ default: return Option;
+ }
+}
+
+SelectInputMethodWrapper::SelectInputMethodWrapper(QWebSelectMethod* plugin)
+ : m_plugin(plugin)
+{
+ m_plugin->setParent(this);
+ connect(m_plugin, SIGNAL(didHide()), this, SLOT(didHide()));
+ connect(m_plugin, SIGNAL(selectItem(int, bool, bool)), this, SLOT(selectItem(int, bool, bool)));
+}
+
+void SelectInputMethodWrapper::show()
+{
+ SelectData data(this);
+ m_plugin->show(data);
+}
+
+void SelectInputMethodWrapper::hide()
+{
+ m_plugin->hide();
+}
+
+void SelectInputMethodWrapper::selectItem(int index, bool allowMultiplySelections, bool shift)
+{
+ QtAbstractWebPopup::selectItem(index, allowMultiplySelections, shift);
+}
+
+void SelectInputMethodWrapper::didHide()
+{
+ QtAbstractWebPopup::popupDidHide();
+}
+
+// QtPlatformPlugin
+
+static QWebKitPlatformPlugin* getPluginObject()
+{
+ const QLatin1String suffix("/webkit/");
+ const QStringList paths = QCoreApplication::libraryPaths();
+ QObject* obj = 0;
+ for (int i = 0; !obj && i < paths.count(); ++i) {
+ const QDir dir(paths[i] + suffix);
+ if (!dir.exists())
+ continue;
+ const QStringList files = dir.entryList(QDir::Files);
+ for (int i = 0; i < files.count(); ++i) {
+ QPluginLoader pluginLoader(dir.absoluteFilePath(files.at(i)));
+ if (!pluginLoader.load())
+ continue;
+ obj = pluginLoader.instance();
+ if (obj) {
+ QWebKitPlatformPlugin* result = qobject_cast<QWebKitPlatformPlugin*>(obj);
+ if (result)
+ return result;
+ delete obj;
+ }
+ pluginLoader.unload();
+ }
+ }
+ return 0;
+}
+
+QtPlatformPlugin::~QtPlatformPlugin()
+{
+ delete m_plugin;
+}
+
+QWebKitPlatformPlugin* QtPlatformPlugin::plugin()
+{
+ if (m_loaded)
+ return m_plugin;
+
+ m_loaded = true;
+ m_plugin = getPluginObject();
+ return m_plugin;
+}
+
+QtAbstractWebPopup* QtPlatformPlugin::createSelectInputMethod()
+{
+ QWebKitPlatformPlugin* p = plugin();
+ if (!p)
+ return 0;
+
+ QWebSelectMethod* selector = p->createSelectInputMethod();
+ if (!selector)
+ return 0;
+
+ return new SelectInputMethodWrapper(selector);
+}
+
+}
diff --git a/WebKit/qt/WebCoreSupport/QtPlatformPlugin.h b/WebKit/qt/WebCoreSupport/QtPlatformPlugin.h
new file mode 100644
index 0000000..9b73079
--- /dev/null
+++ b/WebKit/qt/WebCoreSupport/QtPlatformPlugin.h
@@ -0,0 +1,64 @@
+/*
+ * Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies)
+ *
+ * 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 QtPlatformPlugin_h
+#define QtPlatformPlugin_h
+
+#include "QtAbstractWebPopup.h"
+#include <QObject>
+
+class QWebSelectMethod;
+class QWebKitPlatformPlugin;
+
+namespace WebCore {
+
+class SelectInputMethodWrapper : public QObject, public QtAbstractWebPopup {
+ Q_OBJECT
+public:
+ SelectInputMethodWrapper(QWebSelectMethod* plugin);
+
+ virtual void show();
+ virtual void hide();
+
+private Q_SLOTS:
+ void selectItem(int index, bool allowMultiplySelections, bool shift);
+ void didHide();
+
+private:
+ QWebSelectMethod* m_plugin;
+};
+
+class QtPlatformPlugin {
+public:
+ QtPlatformPlugin() : m_loaded(false), m_plugin(0) {}
+ ~QtPlatformPlugin();
+
+ QtAbstractWebPopup* createSelectInputMethod();
+
+private:
+ bool m_loaded;
+ QWebKitPlatformPlugin* m_plugin;
+
+ QWebKitPlatformPlugin* plugin();
+};
+
+}
+
+#endif // QtPlatformPlugin_h
diff --git a/WebKit/qt/docs/qtwebkit.qdoc b/WebKit/qt/docs/qtwebkit.qdoc
index 9e653e4..c6dd550 100644
--- a/WebKit/qt/docs/qtwebkit.qdoc
+++ b/WebKit/qt/docs/qtwebkit.qdoc
@@ -5,63 +5,11 @@
\previouspage QtSvg
\nextpage QtXml
\ingroup modules
+ \ingroup technology-apis
+
\brief The QtWebKit module provides a web browser engine as well as
classes to render and interact with web content.
- To include the definitions of the module's classes, use the
- following directive:
-
- \snippet webkitsnippets/qtwebkit_build_snippet.qdoc 1
-
- To link against the module, add this line to your \l qmake \c
- .pro file:
-
- \snippet webkitsnippets/qtwebkit_build_snippet.qdoc 0
-
- \section1 License Information
-
- This is a snapshot of the Qt port of WebKit. The exact version information
- can be found in the \c{src/3rdparty/webkit/VERSION} file supplied with Qt.
-
- Qt Commercial Edition licensees that wish to distribute applications that
- use the QtWebKit module need to be aware of their obligations under the
- GNU Library General Public License (LGPL).
-
- Developers using the Open Source Edition can choose to redistribute
- the module under the appropriate version of the GNU LGPL.
-
- \legalese
- WebKit is licensed under the GNU Library General Public License.
- Individual contributor names and copyright dates can be found
- inline in the code.
-
- 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.
- \endlegalese
-*/
-
-/*!
- \page webintegration.html
- \title Integrating Web Content with QtWebKit
- \since 4.4
-
- \ingroup frameworks-technologies
-
- \keyword Browser
- \keyword Web Browser
-
QtWebKit provides a Web browser engine that makes it easy to embed content
from the World Wide Web into your Qt application. At the same time Web
content can be enhanced with native controls.
@@ -83,6 +31,20 @@
QtWebKit is based on the Open Source WebKit engine. More information about
WebKit itself can be found on the \l{WebKit Open Source Project} Web site.
+ \section1 Including In Your Project
+
+ To include the definitions of the module's classes, use the
+ following directive:
+
+ \snippet webkitsnippets/qtwebkit_build_snippet.qdoc 1
+
+ To link against the module, add this line to your \l qmake \c
+ .pro file:
+
+ \snippet webkitsnippets/qtwebkit_build_snippet.qdoc 0
+
+ \section1 Notes
+
\note Building the QtWebKit module with debugging symbols is problematic
on many platforms due to the size of the WebKit engine. We recommend
building the module only in release mode for embedded platforms.
@@ -97,10 +59,6 @@
Embedded Linux systems. See the \l{Qt for Embedded Linux Requirements}
document for more information.
- Topics:
-
- \tableofcontents
-
\section1 Architecture
The easiest way to render content is through the QWebView class. As a
@@ -193,4 +151,39 @@
\o The system \c{/Library/Internet Plug-Ins} directory
\endlist
\endtable
+
+
+ \section1 License Information
+
+ This is a snapshot of the Qt port of WebKit. The exact version information
+ can be found in the \c{src/3rdparty/webkit/VERSION} file supplied with Qt.
+
+ Qt Commercial Edition licensees that wish to distribute applications that
+ use the QtWebKit module need to be aware of their obligations under the
+ GNU Library General Public License (LGPL).
+
+ Developers using the Open Source Edition can choose to redistribute
+ the module under the appropriate version of the GNU LGPL.
+
+ \legalese
+ WebKit is licensed under the GNU Library General Public License.
+ Individual contributor names and copyright dates can be found
+ inline in the code.
+
+ 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.
+ \endlegalese
*/
+
diff --git a/WebKit/qt/docs/webkitsnippets/qtwebkit_qwebinspector_snippet.cpp b/WebKit/qt/docs/webkitsnippets/qtwebkit_qwebinspector_snippet.cpp
index a6b6620..07f1d45 100644
--- a/WebKit/qt/docs/webkitsnippets/qtwebkit_qwebinspector_snippet.cpp
+++ b/WebKit/qt/docs/webkitsnippets/qtwebkit_qwebinspector_snippet.cpp
@@ -9,8 +9,6 @@ void wrapInFunction()
QWebInspector *inspector = new QWebInspector;
inspector->setPage(page);
-
- connect(page, SIGNAL(webInspectorTriggered(QWebElement)), inspector, SLOT(show()));
//! [0]
}
diff --git a/WebKit/qt/docs/webkitsnippets/webelement/main.cpp b/WebKit/qt/docs/webkitsnippets/webelement/main.cpp
index 822b61c..b1781a6 100644
--- a/WebKit/qt/docs/webkitsnippets/webelement/main.cpp
+++ b/WebKit/qt/docs/webkitsnippets/webelement/main.cpp
@@ -36,6 +36,59 @@ static void traverse()
//! [Traversing with QWebElement]
}
+static void findButtonAndClick()
+{
+
+ frame->setHtml("<form name=\"myform\" action=\"submit_form.asp\" method=\"get\">"
+ "<input type=\"text\" name=\"myfield\">"
+ "<input type=\"submit\" value=\"Submit\">"
+ "</form>");
+
+//! [Calling a DOM element method]
+
+ QWebElement document = frame->documentElement();
+ /* Assume that the document has the following structure:
+
+ <form name="myform" action="submit_form.asp" method="get">
+ <input type="text" name="myfield">
+ <input type="submit" value="Submit">
+ </form>
+
+ */
+
+ QWebElement button = document.findFirst("input[type=submit]");
+ button.evaluateJavaScript("click()");
+
+//! [Calling a DOM element method]
+
+ }
+
+static void autocomplete1()
+{
+ QWebElement document = frame->documentElement();
+
+//! [autocomplete1]
+ QWebElement firstTextInput = document.findFirst("input[type=text]");
+ QString storedText = firstTextInput.attribute("value");
+//! [autocomplete1]
+
+}
+
+
+static void autocomplete2()
+{
+
+ QWebElement document = frame->documentElement();
+ QString storedText = "text";
+
+//! [autocomplete2]
+ QWebElement firstTextInput = document.findFirst("input[type=text]");
+ textInput.setAttribute("value", storedText);
+//! [autocomplete2]
+
+}
+
+
static void findAll()
{
//! [FindAll]
@@ -65,5 +118,8 @@ int main(int argc, char *argv[])
frame = view->page()->mainFrame();
traverse();
findAll();
+ findButtonAndClick();
+ autocomplete1();
+ autocomplete2();
return 0;
}
diff --git a/WebKit/qt/symbian/eabi/QtWebKitu.def b/WebKit/qt/symbian/eabi/QtWebKitu.def
index 6ccaaa7..a9c2825 100644
--- a/WebKit/qt/symbian/eabi/QtWebKitu.def
+++ b/WebKit/qt/symbian/eabi/QtWebKitu.def
@@ -720,3 +720,6 @@ EXPORTS
_Z19qt_drt_setMediaTypeP9QWebFrameRK7QString @ 719 NONAME ABSENT
_Z26qt_drt_enableCaretBrowsingP8QWebPageb @ 720 NONAME ABSENT
_ZNK12QWebSettings12inspectorUrlEv @ 721 NONAME ABSENT
+ _ZN23DumpRenderTreeSupportQt19webPageSetGroupNameEP8QWebPageRK7QString @ 722 NONAME
+ _ZN23DumpRenderTreeSupportQt16webPageGroupNameEP8QWebPage @ 723 NONAME
+ _ZN23DumpRenderTreeSupportQt23garbageCollectorCollectEv @ 724 NONAME
diff --git a/WebKit/qt/tests/qgraphicswebview/tst_qgraphicswebview.cpp b/WebKit/qt/tests/qgraphicswebview/tst_qgraphicswebview.cpp
index 14f5820..ebe847d 100644
--- a/WebKit/qt/tests/qgraphicswebview/tst_qgraphicswebview.cpp
+++ b/WebKit/qt/tests/qgraphicswebview/tst_qgraphicswebview.cpp
@@ -84,16 +84,19 @@ void tst_QGraphicsWebView::crashOnViewlessWebPages()
WebPage* page = new WebPage;
webView->setPage(page);
page->webView = webView;
- connect(page->mainFrame(), SIGNAL(initialLayoutCompleted()), page, SLOT(aborting()));
-
scene.addItem(webView);
view.setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding);
view.resize(600, 480);
webView->resize(view.geometry().size());
+
QCoreApplication::processEvents();
view.show();
+ // Resizing the page will resize and layout the empty "about:blank"
+ // page, so we first connect the signal afterward.
+ connect(page->mainFrame(), SIGNAL(initialLayoutCompleted()), page, SLOT(aborting()));
+
page->mainFrame()->setHtml(QString("data:text/html,"
"<frameset cols=\"25%,75%\">"
"<frame src=\"data:text/html,foo \">"
@@ -101,6 +104,7 @@ void tst_QGraphicsWebView::crashOnViewlessWebPages()
"</frameset>"));
QVERIFY(waitForSignal(page, SIGNAL(loadFinished(bool))));
+ delete page;
}
void tst_QGraphicsWebView::microFocusCoordinates()
diff --git a/WebKit/qt/tests/qwebpage/tst_qwebpage.cpp b/WebKit/qt/tests/qwebpage/tst_qwebpage.cpp
index 795216d..bbbfe09 100644
--- a/WebKit/qt/tests/qwebpage/tst_qwebpage.cpp
+++ b/WebKit/qt/tests/qwebpage/tst_qwebpage.cpp
@@ -27,6 +27,7 @@
#include <QLocale>
#include <QMenu>
#include <QPushButton>
+#include <QStyle>
#include <QtTest/QtTest>
#include <QTextCharFormat>
#include <qgraphicsscene.h>
@@ -1364,7 +1365,27 @@ void tst_QWebPage::inputMethods()
page->event(&evrel);
#if QT_VERSION >= QT_VERSION_CHECK(4, 6, 0)
- QVERIFY(!viewEventSpy.contains(QEvent::RequestSoftwareInputPanel));
+ // This part of the test checks if the SIP (Software Input Panel) is triggered,
+ // which normally happens on mobile platforms, when a user input form receives
+ // a mouse click.
+ int inputPanel = 0;
+ if (viewType == "QWebView") {
+ if (QWebView* wv = qobject_cast<QWebView*>(view))
+ inputPanel = wv->style()->styleHint(QStyle::SH_RequestSoftwareInputPanel);
+ } else if (viewType == "QGraphicsWebView") {
+ if (QGraphicsWebView* wv = qobject_cast<QGraphicsWebView*>(view))
+ inputPanel = wv->style()->styleHint(QStyle::SH_RequestSoftwareInputPanel);
+ }
+
+ // For non-mobile platforms RequestSoftwareInputPanel event is not called
+ // because there is no SIP (Software Input Panel) triggered. In the case of a
+ // mobile platform, an input panel, e.g. virtual keyboard, is usually invoked
+ // and the RequestSoftwareInputPanel event is called. For these two situations
+ // this part of the test can verified as the checks below.
+ if (inputPanel)
+ QVERIFY(viewEventSpy.contains(QEvent::RequestSoftwareInputPanel));
+ else
+ QVERIFY(!viewEventSpy.contains(QEvent::RequestSoftwareInputPanel));
#endif
viewEventSpy.clear();
diff --git a/WebKit/win/ChangeLog b/WebKit/win/ChangeLog
index c342ab0..a67e10f 100644
--- a/WebKit/win/ChangeLog
+++ b/WebKit/win/ChangeLog
@@ -1,3 +1,79 @@
+2010-05-13 Brian Weinstein <bweinstein@apple.com>
+
+ Reviewed by Tim Hatcher.
+
+ <rdar://problem/7982652>
+
+ Allow reporting exceptions that occur when using JavaScriptCore APIs to the Web Inspector.
+
+ * Interfaces/IWebViewPrivate.idl: Add a reportException function off of IWebViewPrivate.
+ * Interfaces/WebKit.idl: Touch WebKit.idl to make sure Interfaces rebuild.
+ * WebView.cpp:
+ (WebView::reportException): Make sure the function was called with a context from a WebView, and call
+ WebCore::reportException.
+ * WebView.h:
+
+2010-05-12 Jer Noble <jer.noble@apple.com>
+
+ Reviewed by Darin Adler.
+
+ Bug 38689: #34005 will break fullscreen video playback
+ https://bugs.webkit.org/show_bug.cgi?id=38689
+
+ Use the new definition of PlatformMedia to check the actual type
+ returned by MediaPlayer.
+
+ * FullscreenVideoController.cpp:
+ (FullscreenVideoController::movie):
+
+2010-05-11 Jer Noble <jer.noble@apple.com>
+
+ No Review.
+
+ Fix build error: The QTMovieWin project is dependent on the JavaScriptCore project.
+
+ * WebKit.vcproj/WebKit.sln:
+
+2010-05-11 Alice Liu <alice.liu@apple.com>
+
+ Rubber-stamped by Gavin Barraclough.
+
+ Fix build error when enabling debugging block in WebKit win painting code
+
+ * WebView.cpp:
+ (WebView::paintIntoBackingStore):
+
+2010-05-11 Alice Liu <alice.liu@apple.com>
+
+ Reviewed by Steve Falkenburg.
+
+ https://bugs.webkit.org/show_bug.cgi?id=38937
+ W7 window preview paints content at the wrong location
+
+ * WebFrame.cpp:
+ (WebFrame::paintDocumentRectToContext): Revert r58895
+ (WebFrame::paintDocumentRectToContextAtPoint): Added
+
+ * Interfaces/IWebFramePrivate.idl: Added paintDocumentRectToContextAtPoint
+ * Interfaces/IWebViewPrivate.idl: ditto
+ * Interfaces/WebKit.idl: touch to rebuild
+ * WebFrame.h: ditto
+ * WebView.cpp: ditto
+ (WebView::paintDocumentRectToContextAtPoint): ditto
+ * WebView.h: ditto
+
+2010-05-07 Jer Noble <jer.noble@apple.com>
+
+ Reviewed by Adele Peterson.
+
+ Safari pegs CPU and drops tons of frames using HTML5 Vimeo player
+ https://bugs.webkit.org/show_bug.cgi?id=34005
+
+ QTMovieWin is now QTMovieGWorld.
+ * FullscreenVideoController.cpp:
+ (FullscreenVideoController::movie):
+ * FullscreenVideoController.h:
+
2010-05-06 Adam Roben <aroben@apple.com>
Bail out of WebView::paint when there's nothing to paint
diff --git a/WebKit/win/FullscreenVideoController.cpp b/WebKit/win/FullscreenVideoController.cpp
index 884f46a..6132fca 100644
--- a/WebKit/win/FullscreenVideoController.cpp
+++ b/WebKit/win/FullscreenVideoController.cpp
@@ -192,9 +192,16 @@ FullscreenVideoController::~FullscreenVideoController()
movie()->exitFullscreen();
}
-QTMovieWin* FullscreenVideoController::movie() const
+QTMovieGWorld* FullscreenVideoController::movie() const
{
- return m_mediaElement ? reinterpret_cast<QTMovieWin*>(m_mediaElement->platformMedia().qtMovie) : 0;
+ if (!m_mediaElement)
+ return 0;
+
+ PlatformMedia platformMedia = m_mediaElement->platformMedia();
+ if (platformMedia.type != PlatformMedia::QTMovieGWorldType)
+ return 0;
+
+ return platformMedia.media.qtMovieGWorld;
}
void FullscreenVideoController::setMediaElement(HTMLMediaElement* mediaElement)
diff --git a/WebKit/win/FullscreenVideoController.h b/WebKit/win/FullscreenVideoController.h
index 60145ad..31acc63 100644
--- a/WebKit/win/FullscreenVideoController.h
+++ b/WebKit/win/FullscreenVideoController.h
@@ -28,7 +28,7 @@
#if ENABLE(VIDEO)
-#include "QTMovieWin.h"
+#include "QTMovieGWorld.h"
#include <WebCore/HTMLMediaElement.h>
#include <WebCore/Image.h>
@@ -99,7 +99,7 @@ private:
int m_dragStartOffset;
};
-class FullscreenVideoController : QTMovieWinFullscreenClient, public Noncopyable {
+class FullscreenVideoController : QTMovieGWorldFullscreenClient, public Noncopyable {
public:
FullscreenVideoController();
virtual ~FullscreenVideoController();
@@ -111,11 +111,11 @@ public:
void exitFullscreen();
private:
- // QTMovieWinFullscreenClient
+ // QTMovieGWorldFullscreenClient
virtual LRESULT fullscreenClientWndProc(HWND, UINT message, WPARAM, LPARAM);
void ensureWindow();
- QTMovieWin* movie() const;
+ QTMovieGWorld* movie() const;
bool canPlay() const;
void play();
diff --git a/WebKit/win/Interfaces/IWebFramePrivate.idl b/WebKit/win/Interfaces/IWebFramePrivate.idl
index 3172ce6..80a3e24 100755
--- a/WebKit/win/Interfaces/IWebFramePrivate.idl
+++ b/WebKit/win/Interfaces/IWebFramePrivate.idl
@@ -110,4 +110,6 @@ interface IWebFramePrivate : IUnknown
HRESULT numberOfPages([in] float pageWidthInPixels, [in] float pageHeightInPixels, [out, retval] int* pageNumber);
HRESULT layerTreeAsText([out, retval] BSTR* result);
+
+ HRESULT paintDocumentRectToContextAtPoint([in] RECT rect, [in] POINT pt, [in] OLE_HANDLE deviceContext);
}
diff --git a/WebKit/win/Interfaces/IWebViewPrivate.idl b/WebKit/win/Interfaces/IWebViewPrivate.idl
index 77ef4ac..1bf21d5 100644
--- a/WebKit/win/Interfaces/IWebViewPrivate.idl
+++ b/WebKit/win/Interfaces/IWebViewPrivate.idl
@@ -233,4 +233,8 @@ interface IWebViewPrivate : IUnknown
HRESULT registerURLSchemeAsSecure([in] BSTR scheme);
HRESULT nextDisplayIsSynchronous();
+
+ HRESULT paintDocumentRectToContextAtPoint([in] RECT rect, [in] POINT pt, [in] OLE_HANDLE dc);
+
+ [local] HRESULT reportException([in] JSContextRef context, [in] JSValueRef exception);
}
diff --git a/WebKit/win/WebFrame.cpp b/WebKit/win/WebFrame.cpp
index 3d9c8a8..0e8ee80 100644
--- a/WebKit/win/WebFrame.cpp
+++ b/WebKit/win/WebFrame.cpp
@@ -342,11 +342,45 @@ HRESULT STDMETHODCALLTYPE WebFrame::paintDocumentRectToContext(
// We can't paint with a layout still pending.
view->layoutIfNeededRecursive();
- HDC dc = (HDC)(ULONG64)deviceContext;
+ HDC dc = reinterpret_cast<HDC>(static_cast<ULONG64>(deviceContext));
+ GraphicsContext gc(dc);
+ gc.setShouldIncludeChildWindows(true);
+ gc.save();
+ LONG width = rect.right - rect.left;
+ LONG height = rect.bottom - rect.top;
+ FloatRect dirtyRect;
+ dirtyRect.setWidth(width);
+ dirtyRect.setHeight(height);
+ gc.clip(dirtyRect);
+ gc.translate(-rect.left, -rect.top);
+ view->paintContents(&gc, rect);
+ gc.restore();
+
+ return S_OK;
+}
+
+HRESULT STDMETHODCALLTYPE WebFrame::paintDocumentRectToContextAtPoint(
+ /* [in] */ RECT rect,
+ /* [in] */ POINT pt,
+ /* [in] */ OLE_HANDLE deviceContext)
+{
+ Frame* coreFrame = core(this);
+ if (!coreFrame)
+ return E_FAIL;
+
+ FrameView* view = coreFrame->view();
+ if (!view)
+ return E_FAIL;
+
+ // We can't paint with a layout still pending.
+ view->layoutIfNeededRecursive();
+
+ HDC dc = reinterpret_cast<HDC>(static_cast<ULONG64>(deviceContext));
GraphicsContext gc(dc);
gc.setShouldIncludeChildWindows(true);
gc.save();
IntRect dirtyRect(rect);
+ gc.translate(-pt.x, -pt.y);
gc.clip(dirtyRect);
view->paintContents(&gc, rect);
gc.restore();
diff --git a/WebKit/win/WebFrame.h b/WebKit/win/WebFrame.h
index d053d3b..b556192 100644
--- a/WebKit/win/WebFrame.h
+++ b/WebKit/win/WebFrame.h
@@ -245,6 +245,11 @@ public:
/* [in] */ RECT rect,
/* [in] */ OLE_HANDLE deviceContext);
+ virtual HRESULT STDMETHODCALLTYPE paintDocumentRectToContextAtPoint(
+ /* [in] */ RECT rect,
+ /* [in] */ POINT pt,
+ /* [in] */ OLE_HANDLE deviceContext);
+
virtual HRESULT STDMETHODCALLTYPE elementDoesAutoComplete(
/* [in] */ IDOMElement* element,
/* [retval][out] */ BOOL* result);
diff --git a/WebKit/win/WebKit.vcproj/WebKit.sln b/WebKit/win/WebKit.vcproj/WebKit.sln
index 3b641fd..6f437f3 100644
--- a/WebKit/win/WebKit.vcproj/WebKit.sln
+++ b/WebKit/win/WebKit.vcproj/WebKit.sln
@@ -66,6 +66,7 @@ EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "QTMovieWin", "..\..\..\WebCore\WebCore.vcproj\QTMovieWin.vcproj", "{E498CA9D-3BD2-4D52-8E37-C8DC76526325}"
ProjectSection(ProjectDependencies) = postProject
{0A324352-B3B6-496C-9E5B-4C7E923E628B} = {0A324352-B3B6-496C-9E5B-4C7E923E628B}
+ {011D10F1-B656-4A1B-A0C3-3842F02122C5} = {011D10F1-B656-4A1B-A0C3-3842F02122C5}
EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "WinLauncher", "..\..\..\WebKitTools\WinLauncher\WinLauncher.vcproj", "{114FCA11-216B-4C8C-957E-30A75AE80443}"
diff --git a/WebKit/win/WebView.cpp b/WebKit/win/WebView.cpp
index 3a6a51f..1fbd8d3 100644
--- a/WebKit/win/WebView.cpp
+++ b/WebKit/win/WebView.cpp
@@ -58,6 +58,7 @@
#include "WebPreferences.h"
#include "WebScriptWorld.h"
#include "WindowsTouch.h"
+#include <JavaScriptCore/APICast.h>
#include <JavaScriptCore/InitializeThreading.h>
#include <JavaScriptCore/JSLock.h>
#include <JavaScriptCore/JSValue.h>
@@ -1029,7 +1030,7 @@ void WebView::paintIntoBackingStore(FrameView* frameView, HDC bitmapDC, const In
#if FLASH_BACKING_STORE_REDRAW
HDC dc = ::GetDC(m_viewWindow);
- OwnPtr<HBRUSH> yellowBrush = CreateSolidBrush(RGB(255, 255, 0));
+ OwnPtr<HBRUSH> yellowBrush(CreateSolidBrush(RGB(255, 255, 0)));
FillRect(dc, &rect, yellowBrush.get());
GdiFlush();
Sleep(50);
@@ -5612,6 +5613,38 @@ HRESULT STDMETHODCALLTYPE WebView::paintDocumentRectToContext(
return m_mainFrame->paintDocumentRectToContext(rect, deviceContext);
}
+HRESULT STDMETHODCALLTYPE WebView::paintDocumentRectToContextAtPoint(
+ /* [in] */ RECT rect,
+ /* [in] */ POINT pt,
+ /* [in] */ OLE_HANDLE deviceContext)
+{
+ if (!deviceContext)
+ return E_POINTER;
+
+ if (!m_mainFrame)
+ return E_FAIL;
+
+ return m_mainFrame->paintDocumentRectToContextAtPoint(rect, pt, deviceContext);
+}
+
+HRESULT STDMETHODCALLTYPE WebView::reportException(
+ /* [in] */ JSContextRef context,
+ /* [in] */ JSValueRef exception)
+{
+ if (!context || !exception)
+ return E_FAIL;
+
+ JSLock lock(JSC::SilenceAssertionsOnly);
+ JSC::ExecState* execState = toJS(context);
+
+ // Make sure the context has a DOMWindow global object, otherwise this context didn't originate from a WebView.
+ if (!toJSDOMWindow(execState->lexicalGlobalObject()))
+ return E_FAIL;
+
+ WebCore::reportException(execState, toJS(execState, exception));
+ return S_OK;
+}
+
HRESULT STDMETHODCALLTYPE WebView::setCustomHTMLTokenizerTimeDelay(
/* [in] */ double timeDelay)
{
diff --git a/WebKit/win/WebView.h b/WebKit/win/WebView.h
index 7c10039..29f8705 100644
--- a/WebKit/win/WebView.h
+++ b/WebKit/win/WebView.h
@@ -694,6 +694,15 @@ public:
/* [in] */ RECT rect,
/* [in] */ OLE_HANDLE dc);
+ virtual HRESULT STDMETHODCALLTYPE paintDocumentRectToContextAtPoint(
+ /* [in] */ RECT rect,
+ /* [in] */ POINT pt,
+ /* [in] */ OLE_HANDLE dc);
+
+ virtual HRESULT STDMETHODCALLTYPE reportException(
+ /* [in] */ JSContextRef context,
+ /* [in] */ JSValueRef exception);
+
virtual HRESULT STDMETHODCALLTYPE setCustomHTMLTokenizerTimeDelay(
/* [in] */ double timeDelay);
diff --git a/WebKit/wx/ChangeLog b/WebKit/wx/ChangeLog
index 4f09956..51da133 100644
--- a/WebKit/wx/ChangeLog
+++ b/WebKit/wx/ChangeLog
@@ -1,3 +1,13 @@
+2010-05-11 Kevin Watters <kevinwatters@gmail.com>
+
+ Reviewed by Kevin Ollivier.
+
+ Load a blank page on creation to initialize WebCore objects properly.
+ https://bugs.webkit.org/show_bug.cgi?id=38932
+
+ * WebView.cpp:
+ (wxWebView::Create):
+
2010-05-03 Kevin Watters <kevinwatters@gmail.com>
Reviewed by Kevin Ollivier.
diff --git a/WebKit/wx/WebView.cpp b/WebKit/wx/WebView.cpp
index cfa402f..2c5087c 100644
--- a/WebKit/wx/WebView.cpp
+++ b/WebKit/wx/WebView.cpp
@@ -352,6 +352,10 @@ bool wxWebView::Create(wxWindow* parent, int id, const wxPoint& position,
SetDatabasesEnabled(true);
#endif
+ // we need to do this so that objects like the focusController are properly
+ // initialized so that the activate handler is run properly.
+ LoadURL(wxT("about:blank"));
+
wxWindow* tlw = wxGetTopLevelParent(this);
tlw->Connect(-1, wxEVT_ACTIVATE, wxActivateEventHandler(wxWebView::OnTLWActivated));