summaryrefslogtreecommitdiffstats
path: root/Source/WebKit
diff options
context:
space:
mode:
authorSteve Block <steveblock@google.com>2011-05-25 19:08:45 +0100
committerSteve Block <steveblock@google.com>2011-06-08 13:51:31 +0100
commit2bde8e466a4451c7319e3a072d118917957d6554 (patch)
tree28f4a1b869a513e565c7760d0e6a06e7cf1fe95a /Source/WebKit
parent6939c99b71d9372d14a0c74a772108052e8c48c8 (diff)
downloadexternal_webkit-2bde8e466a4451c7319e3a072d118917957d6554.zip
external_webkit-2bde8e466a4451c7319e3a072d118917957d6554.tar.gz
external_webkit-2bde8e466a4451c7319e3a072d118917957d6554.tar.bz2
Merge WebKit at r82507: Initial merge by git
Change-Id: I60ce9d780725b58b45e54165733a8ffee23b683e
Diffstat (limited to 'Source/WebKit')
-rw-r--r--Source/WebKit/ChangeLog53
-rw-r--r--Source/WebKit/English.lproj/Localizable.stringsbin54008 -> 37390 bytes
-rw-r--r--Source/WebKit/WebKit.xcodeproj/project.pbxproj36
-rw-r--r--Source/WebKit/cf/ChangeLog12
-rw-r--r--Source/WebKit/cf/WebCoreSupport/WebInspectorClientCF.cpp17
-rw-r--r--Source/WebKit/chromium/ChangeLog1710
-rw-r--r--Source/WebKit/chromium/DEPS2
-rw-r--r--Source/WebKit/chromium/WebKit.grd1
-rw-r--r--Source/WebKit/chromium/WebKit.gyp151
-rw-r--r--Source/WebKit/chromium/features.gypi3
-rw-r--r--Source/WebKit/chromium/public/WebAccessibilityObject.h1
-rw-r--r--Source/WebKit/chromium/public/WebAccessibilityRole.h5
-rw-r--r--Source/WebKit/chromium/public/WebApplicationCacheHost.h5
-rw-r--r--Source/WebKit/chromium/public/WebAudioDevice.h1
-rw-r--r--Source/WebKit/chromium/public/WebBindings.h25
-rw-r--r--Source/WebKit/chromium/public/WebClipboard.h6
-rw-r--r--Source/WebKit/chromium/public/WebCommonWorkerClient.h6
-rw-r--r--Source/WebKit/chromium/public/WebConsoleMessage.h2
-rw-r--r--Source/WebKit/chromium/public/WebDOMMouseEvent.h8
-rw-r--r--Source/WebKit/chromium/public/WebDevToolsAgent.h17
-rw-r--r--Source/WebKit/chromium/public/WebDevToolsAgentClient.h3
-rw-r--r--Source/WebKit/chromium/public/WebDocument.h2
-rw-r--r--Source/WebKit/chromium/public/WebElement.h1
-rw-r--r--Source/WebKit/chromium/public/WebFileInfo.h4
-rw-r--r--Source/WebKit/chromium/public/WebFormControlElement.h1
-rw-r--r--Source/WebKit/chromium/public/WebFrame.h17
-rw-r--r--Source/WebKit/chromium/public/WebGeolocationClientMock.h1
-rw-r--r--Source/WebKit/chromium/public/WebIDBCallbacks.h2
-rwxr-xr-xSource/WebKit/chromium/public/WebIDBFactory.h12
-rw-r--r--Source/WebKit/chromium/public/WebInputElement.h2
-rw-r--r--Source/WebKit/chromium/public/WebKitClient.h1
-rw-r--r--Source/WebKit/chromium/public/WebMediaPlayerClient.h1
-rw-r--r--Source/WebKit/chromium/public/WebMenuItemInfo.h2
-rw-r--r--Source/WebKit/chromium/public/WebNode.h1
-rw-r--r--Source/WebKit/chromium/public/WebPageSerializer.h12
-rw-r--r--Source/WebKit/chromium/public/WebPlugin.h4
-rw-r--r--Source/WebKit/chromium/public/WebPluginContainer.h4
-rw-r--r--Source/WebKit/chromium/public/WebRuntimeFeatures.h6
-rw-r--r--Source/WebKit/chromium/public/WebSettings.h1
-rwxr-xr-xSource/WebKit/chromium/public/WebSpellCheckClient.h73
-rw-r--r--Source/WebKit/chromium/public/WebTextCheckingCompletion.h2
-rw-r--r--Source/WebKit/chromium/public/WebTextCheckingResult.h24
-rw-r--r--Source/WebKit/chromium/public/WebURL.h10
-rw-r--r--Source/WebKit/chromium/public/WebURLLoader.h17
-rw-r--r--Source/WebKit/chromium/public/WebURLLoaderClient.h4
-rw-r--r--Source/WebKit/chromium/public/WebVector.h11
-rw-r--r--Source/WebKit/chromium/public/WebView.h26
-rw-r--r--Source/WebKit/chromium/public/WebViewClient.h27
-rw-r--r--Source/WebKit/chromium/public/gtk/WebFontInfo.h2
-rw-r--r--Source/WebKit/chromium/scripts/generate_devtools_grd.py121
-rw-r--r--Source/WebKit/chromium/scripts/generate_devtools_html.py12
-rw-r--r--Source/WebKit/chromium/src/ApplicationCacheHost.cpp5
-rw-r--r--Source/WebKit/chromium/src/AssertMatchingEnums.cpp10
-rw-r--r--Source/WebKit/chromium/src/AssociatedURLLoader.cpp189
-rw-r--r--Source/WebKit/chromium/src/AssociatedURLLoader.h31
-rw-r--r--Source/WebKit/chromium/src/AudioDestinationChromium.cpp3
-rw-r--r--Source/WebKit/chromium/src/ChromeClientImpl.cpp2
-rw-r--r--Source/WebKit/chromium/src/ChromeClientImpl.h2
-rw-r--r--Source/WebKit/chromium/src/DebuggerAgentManager.cpp4
-rw-r--r--Source/WebKit/chromium/src/EditorClientImpl.cpp24
-rw-r--r--Source/WebKit/chromium/src/FrameLoaderClientImpl.cpp14
-rw-r--r--Source/WebKit/chromium/src/FrameLoaderClientImpl.h3
-rw-r--r--Source/WebKit/chromium/src/GraphicsContext3DChromium.cpp55
-rw-r--r--Source/WebKit/chromium/src/GraphicsContext3DInternal.h6
-rw-r--r--Source/WebKit/chromium/src/IDBCallbacksProxy.cpp6
-rw-r--r--Source/WebKit/chromium/src/IDBCallbacksProxy.h1
-rwxr-xr-xSource/WebKit/chromium/src/IDBFactoryBackendProxy.cpp5
-rwxr-xr-xSource/WebKit/chromium/src/IDBFactoryBackendProxy.h3
-rw-r--r--Source/WebKit/chromium/src/LocalFileSystemChromium.cpp31
-rw-r--r--Source/WebKit/chromium/src/LocalizedStrings.cpp2
-rw-r--r--Source/WebKit/chromium/src/PlatformMessagePortChannel.h2
-rw-r--r--Source/WebKit/chromium/src/ResourceHandle.cpp18
-rw-r--r--Source/WebKit/chromium/src/StorageNamespaceProxy.cpp15
-rw-r--r--Source/WebKit/chromium/src/StorageNamespaceProxy.h5
-rw-r--r--Source/WebKit/chromium/src/WebAccessibilityObject.cpp6
-rw-r--r--Source/WebKit/chromium/src/WebBindings.cpp209
-rw-r--r--Source/WebKit/chromium/src/WebDOMMouseEvent.cpp16
-rw-r--r--Source/WebKit/chromium/src/WebDataSourceImpl.cpp2
-rw-r--r--Source/WebKit/chromium/src/WebDevToolsAgentImpl.cpp83
-rw-r--r--Source/WebKit/chromium/src/WebDevToolsAgentImpl.h9
-rw-r--r--Source/WebKit/chromium/src/WebDocument.cpp9
-rw-r--r--Source/WebKit/chromium/src/WebElement.cpp5
-rw-r--r--Source/WebKit/chromium/src/WebFileSystemCallbacksImpl.cpp1
-rw-r--r--Source/WebKit/chromium/src/WebFormControlElement.cpp5
-rw-r--r--Source/WebKit/chromium/src/WebFrameImpl.cpp33
-rw-r--r--Source/WebKit/chromium/src/WebFrameImpl.h7
-rw-r--r--Source/WebKit/chromium/src/WebGeolocationClientMock.cpp5
-rw-r--r--Source/WebKit/chromium/src/WebIDBCallbacksImpl.cpp7
-rw-r--r--Source/WebKit/chromium/src/WebIDBCallbacksImpl.h1
-rwxr-xr-xSource/WebKit/chromium/src/WebIDBFactoryImpl.cpp4
-rwxr-xr-xSource/WebKit/chromium/src/WebIDBFactoryImpl.h2
-rwxr-xr-xSource/WebKit/chromium/src/WebIDBObjectStoreImpl.cpp1
-rw-r--r--Source/WebKit/chromium/src/WebInputElement.cpp12
-rw-r--r--Source/WebKit/chromium/src/WebMediaPlayerClientImpl.cpp6
-rw-r--r--Source/WebKit/chromium/src/WebMediaPlayerClientImpl.h1
-rw-r--r--Source/WebKit/chromium/src/WebNode.cpp7
-rw-r--r--Source/WebKit/chromium/src/WebPageSerializer.cpp177
-rw-r--r--Source/WebKit/chromium/src/WebPluginContainerImpl.cpp27
-rw-r--r--Source/WebKit/chromium/src/WebPluginContainerImpl.h1
-rw-r--r--Source/WebKit/chromium/src/WebRuntimeFeatures.cpp32
-rw-r--r--Source/WebKit/chromium/src/WebSettingsImpl.cpp5
-rw-r--r--Source/WebKit/chromium/src/WebSettingsImpl.h1
-rw-r--r--Source/WebKit/chromium/src/WebTextCheckingCompletionImpl.cpp2
-rw-r--r--Source/WebKit/chromium/src/WebViewImpl.cpp345
-rw-r--r--Source/WebKit/chromium/src/WebViewImpl.h40
-rw-r--r--Source/WebKit/chromium/src/WebWorkerBase.cpp8
-rw-r--r--Source/WebKit/chromium/src/WebWorkerBase.h2
-rw-r--r--Source/WebKit/chromium/src/WorkerFileSystemCallbacksBridge.cpp28
-rw-r--r--Source/WebKit/chromium/src/WorkerFileSystemCallbacksBridge.h8
-rw-r--r--Source/WebKit/chromium/src/WorkerFileWriterCallbacksBridge.h4
-rw-r--r--Source/WebKit/chromium/src/js/DevTools.js1
-rwxr-xr-xSource/WebKit/chromium/src/js/Images/segmentChromium.pngbin4272 -> 4276 bytes
-rwxr-xr-xSource/WebKit/chromium/src/js/Images/segmentHoverChromium.pngbin4160 -> 4125 bytes
-rwxr-xr-xSource/WebKit/chromium/src/js/Images/segmentHoverEndChromium.pngbin4143 -> 4112 bytes
-rwxr-xr-xSource/WebKit/chromium/src/js/Images/segmentSelectedChromium.pngbin4113 -> 4071 bytes
-rwxr-xr-xSource/WebKit/chromium/src/js/Images/segmentSelectedEndChromium.pngbin4104 -> 4070 bytes
-rwxr-xr-xSource/WebKit/chromium/src/js/Images/statusbarBackgroundChromium.pngbin4116 -> 4235 bytes
-rwxr-xr-xSource/WebKit/chromium/src/js/Images/statusbarBottomBackgroundChromium.pngbin4120 -> 4239 bytes
-rwxr-xr-xSource/WebKit/chromium/src/js/Images/statusbarMenuButtonChromium.pngbin4654 -> 4570 bytes
-rwxr-xr-xSource/WebKit/chromium/src/js/Images/statusbarMenuButtonSelectedChromium.pngbin4372 -> 4274 bytes
-rw-r--r--Source/WebKit/chromium/tests/PopupMenuTest.cpp2
-rwxr-xr-xSource/WebKit/chromium/tests/TilingDataTest.cpp52
-rw-r--r--Source/WebKit/chromium/tests/WebFrameTest.cpp4
-rw-r--r--Source/WebKit/chromium/tests/WebPageSerializerTest.cpp193
-rw-r--r--Source/WebKit/chromium/tests/data/pageserialization/awesome.png1
-rw-r--r--Source/WebKit/chromium/tests/data/pageserialization/embed_iframe.html5
-rw-r--r--Source/WebKit/chromium/tests/data/pageserialization/object_iframe.html5
-rw-r--r--Source/WebKit/chromium/tests/data/pageserialization/simple_iframe.html14
-rw-r--r--Source/WebKit/chromium/tests/data/pageserialization/simple_page.html50
-rwxr-xr-xSource/WebKit/chromium/tests/data/pageserialization/top_frame.html28
-rw-r--r--Source/WebKit/efl/ChangeLog260
-rw-r--r--Source/WebKit/efl/DefaultTheme/default.edc2
-rw-r--r--Source/WebKit/efl/DefaultTheme/widget/mediacontrol/mutebutton/mute_button.edc60
-rw-r--r--Source/WebKit/efl/DefaultTheme/widget/mediacontrol/mutebutton/mutebutton.pngbin0 -> 832 bytes
-rw-r--r--Source/WebKit/efl/DefaultTheme/widget/mediacontrol/mutebutton/unmutebutton.pngbin0 -> 1182 bytes
-rwxr-xr-xSource/WebKit/efl/DefaultTheme/widget/mediacontrol/playpausebutton/pausebutton.pngbin0 -> 2250 bytes
-rwxr-xr-xSource/WebKit/efl/DefaultTheme/widget/mediacontrol/playpausebutton/playbutton.pngbin0 -> 2632 bytes
-rw-r--r--Source/WebKit/efl/DefaultTheme/widget/mediacontrol/playpausebutton/playpause_button.edc60
-rw-r--r--Source/WebKit/efl/WebCoreSupport/ChromeClientEfl.cpp7
-rw-r--r--Source/WebKit/efl/WebCoreSupport/ChromeClientEfl.h2
-rw-r--r--Source/WebKit/efl/WebCoreSupport/FrameLoaderClientEfl.cpp65
-rw-r--r--Source/WebKit/efl/WebCoreSupport/FrameLoaderClientEfl.h4
-rw-r--r--Source/WebKit/efl/ewk/ewk_contextmenu.cpp203
-rw-r--r--Source/WebKit/efl/ewk/ewk_contextmenu.h37
-rw-r--r--Source/WebKit/efl/ewk/ewk_cookies.cpp4
-rw-r--r--Source/WebKit/efl/ewk/ewk_cookies.h6
-rw-r--r--Source/WebKit/efl/ewk/ewk_frame.cpp9
-rw-r--r--Source/WebKit/efl/ewk/ewk_history.cpp7
-rw-r--r--Source/WebKit/efl/ewk/ewk_main.cpp5
-rw-r--r--Source/WebKit/efl/ewk/ewk_private.h9
-rw-r--r--Source/WebKit/efl/ewk/ewk_settings.cpp67
-rw-r--r--Source/WebKit/efl/ewk/ewk_settings.h11
-rw-r--r--Source/WebKit/efl/ewk/ewk_view.cpp44
-rw-r--r--Source/WebKit/efl/ewk/ewk_view.h2
-rw-r--r--Source/WebKit/efl/ewk/ewk_window_features.cpp67
-rw-r--r--Source/WebKit/efl/ewk/ewk_window_features.h6
-rw-r--r--Source/WebKit/gtk/ChangeLog334
-rw-r--r--Source/WebKit/gtk/GNUmakefile.am2
-rw-r--r--Source/WebKit/gtk/NEWS51
-rw-r--r--Source/WebKit/gtk/WebCoreSupport/ChromeClientGtk.cpp8
-rw-r--r--Source/WebKit/gtk/WebCoreSupport/ChromeClientGtk.h2
-rw-r--r--Source/WebKit/gtk/WebCoreSupport/DumpRenderTreeSupportGtk.cpp40
-rw-r--r--Source/WebKit/gtk/WebCoreSupport/DumpRenderTreeSupportGtk.h3
-rw-r--r--Source/WebKit/gtk/WebCoreSupport/FrameLoaderClientGtk.cpp10
-rw-r--r--Source/WebKit/gtk/WebCoreSupport/FrameLoaderClientGtk.h4
-rw-r--r--Source/WebKit/gtk/WebCoreSupport/TextCheckerClientEnchant.cpp27
-rw-r--r--Source/WebKit/gtk/po/ChangeLog8
-rw-r--r--Source/WebKit/gtk/po/it.po947
-rw-r--r--Source/WebKit/gtk/tests/testapplicationcache.c21
-rw-r--r--Source/WebKit/gtk/tests/testatk.c23
-rw-r--r--Source/WebKit/gtk/tests/testdomdomwindow.c6
-rw-r--r--Source/WebKit/gtk/tests/testwebview.c5
-rw-r--r--Source/WebKit/gtk/webkit/webkit.h1
-rw-r--r--Source/WebKit/gtk/webkit/webkitapplicationcache.cpp28
-rw-r--r--Source/WebKit/gtk/webkit/webkitapplicationcache.h7
-rw-r--r--Source/WebKit/gtk/webkit/webkitdefines.h3
-rw-r--r--Source/WebKit/gtk/webkit/webkitglobals.cpp45
-rw-r--r--Source/WebKit/gtk/webkit/webkitglobals.h3
-rw-r--r--Source/WebKit/gtk/webkit/webkitglobalsprivate.h1
-rw-r--r--Source/WebKit/gtk/webkit/webkiticondatabase.cpp317
-rw-r--r--Source/WebKit/gtk/webkit/webkiticondatabase.h78
-rw-r--r--Source/WebKit/gtk/webkit/webkitviewportattributes.cpp2
-rw-r--r--Source/WebKit/gtk/webkit/webkitwebframe.cpp17
-rw-r--r--Source/WebKit/gtk/webkit/webkitwebplugindatabase.cpp3
-rw-r--r--Source/WebKit/gtk/webkit/webkitwebsettings.cpp31
-rw-r--r--Source/WebKit/gtk/webkit/webkitwebview.cpp63
-rw-r--r--Source/WebKit/gtk/webkit/webkitwebview.h3
-rw-r--r--Source/WebKit/haiku/ChangeLog55
-rw-r--r--Source/WebKit/haiku/WebCoreSupport/EditorClientHaiku.cpp2
-rw-r--r--Source/WebKit/haiku/WebCoreSupport/FrameLoaderClientHaiku.cpp4
-rw-r--r--Source/WebKit/haiku/WebCoreSupport/FrameLoaderClientHaiku.h4
-rw-r--r--Source/WebKit/mac/Carbon/CarbonWindowAdapter.mm4
-rw-r--r--Source/WebKit/mac/ChangeLog788
-rw-r--r--Source/WebKit/mac/Configurations/Base.xcconfig14
-rw-r--r--Source/WebKit/mac/Configurations/Version.xcconfig2
-rw-r--r--Source/WebKit/mac/DOM/WebDOMOperations.mm5
-rw-r--r--Source/WebKit/mac/DOM/WebDOMOperationsPrivate.h1
-rw-r--r--Source/WebKit/mac/DefaultDelegates/WebDefaultContextMenuDelegate.mm27
-rw-r--r--Source/WebKit/mac/History/WebHistoryItem.mm6
-rw-r--r--Source/WebKit/mac/Misc/WebIconDatabase.mm14
-rw-r--r--Source/WebKit/mac/Misc/WebNSControlExtras.m10
-rw-r--r--Source/WebKit/mac/Misc/WebNSPasteboardExtras.mm5
-rw-r--r--Source/WebKit/mac/Plugins/Hosted/ProxyInstance.mm4
-rw-r--r--Source/WebKit/mac/Plugins/Hosted/ProxyRuntimeObject.h4
-rw-r--r--Source/WebKit/mac/Plugins/WebBasePluginPackage.mm12
-rw-r--r--Source/WebKit/mac/Plugins/WebPluginContainerPrivate.h2
-rw-r--r--Source/WebKit/mac/Storage/WebStorageManager.mm113
-rw-r--r--Source/WebKit/mac/Storage/WebStorageManagerInternal.h30
-rw-r--r--Source/WebKit/mac/Storage/WebStorageManagerPrivate.h45
-rw-r--r--Source/WebKit/mac/Storage/WebStorageTrackerClient.h45
-rw-r--r--Source/WebKit/mac/Storage/WebStorageTrackerClient.mm82
-rw-r--r--Source/WebKit/mac/WebCoreSupport/CorrectionPanel.h60
-rw-r--r--Source/WebKit/mac/WebCoreSupport/CorrectionPanel.mm157
-rw-r--r--Source/WebKit/mac/WebCoreSupport/WebApplicationCache.h5
-rw-r--r--Source/WebKit/mac/WebCoreSupport/WebApplicationCache.mm26
-rw-r--r--Source/WebKit/mac/WebCoreSupport/WebChromeClient.h4
-rw-r--r--Source/WebKit/mac/WebCoreSupport/WebChromeClient.mm52
-rw-r--r--Source/WebKit/mac/WebCoreSupport/WebEditorClient.h14
-rw-r--r--Source/WebKit/mac/WebCoreSupport/WebEditorClient.mm72
-rw-r--r--Source/WebKit/mac/WebCoreSupport/WebFrameLoaderClient.h4
-rw-r--r--Source/WebKit/mac/WebCoreSupport/WebFrameLoaderClient.mm23
-rw-r--r--Source/WebKit/mac/WebCoreSupport/WebIconDatabaseClient.h7
-rw-r--r--Source/WebKit/mac/WebCoreSupport/WebIconDatabaseClient.mm19
-rw-r--r--Source/WebKit/mac/WebCoreSupport/WebInspectorClient.h10
-rw-r--r--Source/WebKit/mac/WebCoreSupport/WebInspectorClient.mm28
-rw-r--r--Source/WebKit/mac/WebCoreSupport/WebKeyGenerator.h46
-rw-r--r--Source/WebKit/mac/WebCoreSupport/WebKeyGenerator.m104
-rw-r--r--Source/WebKit/mac/WebCoreSupport/WebKeyGenerator.mm61
-rw-r--r--Source/WebKit/mac/WebCoreSupport/WebPlatformStrategies.h6
-rw-r--r--Source/WebKit/mac/WebCoreSupport/WebPlatformStrategies.mm26
-rw-r--r--Source/WebKit/mac/WebCoreSupport/WebSecurityOrigin.mm15
-rw-r--r--Source/WebKit/mac/WebCoreSupport/WebSecurityOriginPrivate.h6
-rw-r--r--Source/WebKit/mac/WebCoreSupport/WebSystemInterface.mm10
-rw-r--r--Source/WebKit/mac/WebKit.exp3
-rw-r--r--Source/WebKit/mac/WebKitPrefix.h14
-rw-r--r--Source/WebKit/mac/WebView/WebClipView.mm17
-rw-r--r--Source/WebKit/mac/WebView/WebFrame.mm91
-rw-r--r--Source/WebKit/mac/WebView/WebFrameInternal.h1
-rw-r--r--Source/WebKit/mac/WebView/WebFramePrivate.h9
-rw-r--r--Source/WebKit/mac/WebView/WebFrameView.mm1
-rw-r--r--Source/WebKit/mac/WebView/WebFullScreenController.h2
-rw-r--r--Source/WebKit/mac/WebView/WebFullScreenController.mm2
-rw-r--r--Source/WebKit/mac/WebView/WebHTMLRepresentation.h1
-rw-r--r--Source/WebKit/mac/WebView/WebHTMLRepresentation.mm6
-rw-r--r--Source/WebKit/mac/WebView/WebHTMLView.mm325
-rw-r--r--Source/WebKit/mac/WebView/WebHTMLViewInternal.h2
-rw-r--r--Source/WebKit/mac/WebView/WebPreferenceKeysPrivate.h2
-rw-r--r--Source/WebKit/mac/WebView/WebPreferences.mm35
-rw-r--r--Source/WebKit/mac/WebView/WebPreferencesPrivate.h5
-rw-r--r--Source/WebKit/mac/WebView/WebScriptDebugDelegate.mm2
-rw-r--r--Source/WebKit/mac/WebView/WebView.mm60
-rw-r--r--Source/WebKit/mac/WebView/WebViewData.h3
-rw-r--r--Source/WebKit/mac/WebView/WebViewData.mm4
-rw-r--r--Source/WebKit/mac/WebView/WebViewInternal.h3
-rw-r--r--Source/WebKit/mac/WebView/WebViewPrivate.h10
-rw-r--r--Source/WebKit/qt/Api/DerivedSources.pro1
-rw-r--r--Source/WebKit/qt/Api/qgraphicswebview.cpp67
-rw-r--r--Source/WebKit/qt/Api/qgraphicswebview.h7
-rw-r--r--Source/WebKit/qt/Api/qwebframe.cpp25
-rw-r--r--Source/WebKit/qt/Api/qwebhistory.cpp7
-rw-r--r--Source/WebKit/qt/Api/qwebhistoryinterface.cpp4
-rw-r--r--Source/WebKit/qt/Api/qwebkitplatformplugin.h5
-rw-r--r--Source/WebKit/qt/Api/qwebkitversion.cpp2
-rw-r--r--Source/WebKit/qt/Api/qwebpage.cpp71
-rw-r--r--Source/WebKit/qt/Api/qwebsettings.cpp23
-rw-r--r--Source/WebKit/qt/ChangeLog713
-rw-r--r--Source/WebKit/qt/QtWebKit.pro19
-rw-r--r--Source/WebKit/qt/WebCoreSupport/ChromeClientQt.cpp7
-rw-r--r--Source/WebKit/qt/WebCoreSupport/ChromeClientQt.h2
-rw-r--r--Source/WebKit/qt/WebCoreSupport/DumpRenderTreeSupportQt.cpp30
-rw-r--r--Source/WebKit/qt/WebCoreSupport/DumpRenderTreeSupportQt.h1
-rw-r--r--Source/WebKit/qt/WebCoreSupport/EditorClientQt.cpp24
-rw-r--r--Source/WebKit/qt/WebCoreSupport/FrameLoaderClientQt.cpp64
-rw-r--r--Source/WebKit/qt/WebCoreSupport/FrameLoaderClientQt.h10
-rw-r--r--Source/WebKit/qt/WebCoreSupport/FullScreenVideoWidget.cpp2
-rw-r--r--Source/WebKit/qt/WebCoreSupport/GeolocationClientQt.cpp7
-rw-r--r--Source/WebKit/qt/WebCoreSupport/IconDatabaseClientQt.cpp83
-rw-r--r--Source/WebKit/qt/WebCoreSupport/IconDatabaseClientQt.h58
-rw-r--r--Source/WebKit/qt/WebCoreSupport/InspectorClientQt.cpp24
-rw-r--r--Source/WebKit/qt/WebCoreSupport/InspectorServerQt.cpp37
-rw-r--r--Source/WebKit/qt/WebCoreSupport/PopupMenuQt.cpp6
-rw-r--r--Source/WebKit/qt/WebCoreSupport/QtFallbackWebPopup.cpp13
-rw-r--r--Source/WebKit/qt/WebCoreSupport/WebPlatformStrategies.cpp2
-rw-r--r--Source/WebKit/qt/WebCoreSupport/WebPlatformStrategies.h2
-rw-r--r--Source/WebKit/qt/declarative/plugin.cpp5
-rw-r--r--Source/WebKit/qt/declarative/qdeclarativewebview.cpp27
-rw-r--r--Source/WebKit/qt/declarative/qdeclarativewebview_p.h11
-rw-r--r--Source/WebKit/qt/tests/benchmarks/webgl/10000_triangles.html59
-rw-r--r--Source/WebKit/qt/tests/benchmarks/webgl/tst_webgl.cpp130
-rw-r--r--Source/WebKit/qt/tests/benchmarks/webgl/tst_webgl.qrc5
-rw-r--r--Source/WebKit/qt/tests/benchmarks/webgl/webgl.pro4
-rw-r--r--Source/WebKit/qt/tests/qdeclarativewebview/resources/webviewbackgroundcolor.qml10
-rw-r--r--Source/WebKit/qt/tests/qdeclarativewebview/tst_qdeclarativewebview.cpp34
-rw-r--r--Source/WebKit/qt/tests/qdeclarativewebview/tst_qdeclarativewebview.qrc1
-rw-r--r--Source/WebKit/qt/tests/qgraphicswebview/qgraphicswebview.pro3
-rw-r--r--Source/WebKit/qt/tests/qgraphicswebview/resources/pointing_right.html45
-rw-r--r--Source/WebKit/qt/tests/qgraphicswebview/resources/pointing_up.html46
-rw-r--r--Source/WebKit/qt/tests/qgraphicswebview/tst_qgraphicswebview.cpp157
-rw-r--r--Source/WebKit/qt/tests/qgraphicswebview/tst_qgraphicswebview.qrc11
-rw-r--r--Source/WebKit/qt/tests/qwebframe/tst_qwebframe.cpp146
-rw-r--r--Source/WebKit/qt/tests/qwebpage/tst_qwebpage.cpp104
-rw-r--r--Source/WebKit/qt/tests/qwebview/tst_qwebview.cpp62
-rw-r--r--Source/WebKit/qt/tests/tests.pri2
-rw-r--r--Source/WebKit/qt/tests/tests.pro3
-rw-r--r--Source/WebKit/win/AccessibleBase.h3
-rw-r--r--Source/WebKit/win/AccessibleDocument.h7
-rw-r--r--Source/WebKit/win/CFDictionaryPropertyBag.h1
-rw-r--r--Source/WebKit/win/COMPropertyBag.h469
-rw-r--r--Source/WebKit/win/COMVariantSetter.h388
-rw-r--r--Source/WebKit/win/ChangeLog440
-rw-r--r--Source/WebKit/win/DOMCSSClasses.cpp2
-rw-r--r--Source/WebKit/win/DOMCoreClasses.cpp2
-rw-r--r--Source/WebKit/win/DOMCreateInstance.cpp357
-rw-r--r--Source/WebKit/win/DOMCreateInstance.h38
-rw-r--r--Source/WebKit/win/DOMEventsClasses.cpp2
-rw-r--r--Source/WebKit/win/DOMHTMLClasses.cpp2
-rw-r--r--Source/WebKit/win/DOMHTMLClasses.h4
-rw-r--r--Source/WebKit/win/DefaultDownloadDelegate.cpp15
-rw-r--r--Source/WebKit/win/DefaultDownloadDelegate.h1
-rw-r--r--Source/WebKit/win/DefaultPolicyDelegate.cpp5
-rw-r--r--Source/WebKit/win/DefaultPolicyDelegate.h1
-rw-r--r--Source/WebKit/win/GEN_DOMObject.cpp79
-rw-r--r--Source/WebKit/win/GEN_DOMObject.h48
-rw-r--r--Source/WebKit/win/MarshallingHelpers.cpp2
-rw-r--r--Source/WebKit/win/WebActionPropertyBag.cpp5
-rw-r--r--Source/WebKit/win/WebActionPropertyBag.h3
-rw-r--r--Source/WebKit/win/WebCache.cpp3
-rw-r--r--Source/WebKit/win/WebCoreStatistics.cpp1
-rw-r--r--Source/WebKit/win/WebCoreSupport/EmbeddedWidget.h1
-rw-r--r--Source/WebKit/win/WebCoreSupport/WebChromeClient.cpp18
-rw-r--r--Source/WebKit/win/WebCoreSupport/WebContextMenuClient.cpp2
-rw-r--r--Source/WebKit/win/WebCoreSupport/WebDragClient.cpp2
-rw-r--r--Source/WebKit/win/WebCoreSupport/WebEditorClient.cpp2
-rw-r--r--Source/WebKit/win/WebCoreSupport/WebEditorClient.h2
-rw-r--r--Source/WebKit/win/WebCoreSupport/WebFrameLoaderClient.cpp2
-rw-r--r--Source/WebKit/win/WebCoreSupport/WebFrameLoaderClient.h3
-rw-r--r--Source/WebKit/win/WebCoreSupport/WebInspectorClient.cpp14
-rw-r--r--Source/WebKit/win/WebCoreSupport/WebInspectorClient.h10
-rw-r--r--Source/WebKit/win/WebCoreSupport/WebInspectorDelegate.h666
-rw-r--r--Source/WebKit/win/WebCoreSupport/WebPlatformStrategies.cpp2
-rw-r--r--Source/WebKit/win/WebCoreSupport/WebPlatformStrategies.h2
-rw-r--r--Source/WebKit/win/WebDataSource.h4
-rw-r--r--Source/WebKit/win/WebDatabaseManager.h3
-rw-r--r--Source/WebKit/win/WebDocumentLoader.h3
-rw-r--r--Source/WebKit/win/WebDownload.cpp2
-rw-r--r--Source/WebKit/win/WebDownloadCFNet.cpp2
-rw-r--r--Source/WebKit/win/WebDownloadCurl.cpp2
-rw-r--r--Source/WebKit/win/WebElementPropertyBag.cpp2
-rw-r--r--Source/WebKit/win/WebElementPropertyBag.h5
-rw-r--r--Source/WebKit/win/WebError.cpp4
-rw-r--r--Source/WebKit/win/WebError.h4
-rw-r--r--Source/WebKit/win/WebFrame.cpp42
-rw-r--r--Source/WebKit/win/WebFrame.h11
-rw-r--r--Source/WebKit/win/WebFramePolicyListener.cpp3
-rw-r--r--Source/WebKit/win/WebFramePolicyListener.h7
-rw-r--r--Source/WebKit/win/WebGeolocationPolicyListener.h6
-rw-r--r--Source/WebKit/win/WebHistory.cpp2
-rw-r--r--Source/WebKit/win/WebHistory.h3
-rw-r--r--Source/WebKit/win/WebHistoryItem.cpp4
-rw-r--r--Source/WebKit/win/WebIconDatabase.cpp41
-rw-r--r--Source/WebKit/win/WebIconDatabase.h11
-rw-r--r--Source/WebKit/win/WebInspector.cpp2
-rw-r--r--Source/WebKit/win/WebJavaScriptCollector.cpp2
-rw-r--r--Source/WebKit/win/WebKit.vcproj/Interfaces.vcproj180
-rw-r--r--Source/WebKit/win/WebKit.vcproj/InterfacesDebug.vsprops12
-rw-r--r--Source/WebKit/win/WebKit.vcproj/InterfacesDebugAll.vsprops12
-rw-r--r--Source/WebKit/win/WebKit.vcproj/InterfacesDebugCairoCFLite.vsprops13
-rw-r--r--Source/WebKit/win/WebKit.vcproj/InterfacesProduction.vsprops13
-rw-r--r--Source/WebKit/win/WebKit.vcproj/InterfacesRelease.vsprops12
-rw-r--r--Source/WebKit/win/WebKit.vcproj/InterfacesReleaseCairoCFLite.vsprops13
-rwxr-xr-xSource/WebKit/win/WebKit.vcproj/WebKit.make3
-rw-r--r--Source/WebKit/win/WebKit.vcproj/WebKit.sln118
-rw-r--r--Source/WebKit/win/WebKit.vcproj/WebKit.submit.sln14
-rw-r--r--Source/WebKit/win/WebKit.vcproj/WebKit.vcproj22
-rw-r--r--Source/WebKit/win/WebKit.vcproj/WebKitGUID.vcproj14
-rw-r--r--Source/WebKit/win/WebKit.vcproj/WebKitGUIDDebug.vsprops12
-rw-r--r--Source/WebKit/win/WebKit.vcproj/WebKitGUIDDebugAll.vsprops13
-rw-r--r--Source/WebKit/win/WebKit.vcproj/WebKitGUIDDebugCairoCFLite.vsprops13
-rw-r--r--Source/WebKit/win/WebKit.vcproj/WebKitGUIDProduction.vsprops13
-rw-r--r--Source/WebKit/win/WebKit.vcproj/WebKitGUIDRelease.vsprops12
-rw-r--r--Source/WebKit/win/WebKit.vcproj/WebKitGUIDReleaseCairoCFLite.vsprops13
-rw-r--r--Source/WebKit/win/WebKit.vcproj/WebKitLibDebug.vsprops12
-rw-r--r--Source/WebKit/win/WebKit.vcproj/WebKitLibDebugAll.vsprops13
-rw-r--r--Source/WebKit/win/WebKit.vcproj/WebKitLibDebugCairoCFLite.vsprops15
-rw-r--r--Source/WebKit/win/WebKit.vcproj/WebKitLibProduction.vsprops13
-rw-r--r--Source/WebKit/win/WebKit.vcproj/WebKitLibRelease.vsprops12
-rw-r--r--Source/WebKit/win/WebKit.vcproj/WebKitLibReleaseCairoCFLite.vsprops15
-rw-r--r--Source/WebKit/win/WebKitCOMAPI.h2
-rw-r--r--Source/WebKit/win/WebKitClassFactory.h2
-rw-r--r--Source/WebKit/win/WebKitDLL.cpp4
-rw-r--r--Source/WebKit/win/WebKitGraphics.cpp2
-rw-r--r--Source/WebKit/win/WebKitSystemBits.cpp5
-rw-r--r--Source/WebKit/win/WebLocalizableStrings.cpp2
-rw-r--r--Source/WebKit/win/WebMutableURLRequest.cpp29
-rw-r--r--Source/WebKit/win/WebMutableURLRequest.h2
-rw-r--r--Source/WebKit/win/WebNodeHighlight.cpp2
-rw-r--r--Source/WebKit/win/WebNodeHighlight.h3
-rw-r--r--Source/WebKit/win/WebNotificationCenter.cpp4
-rw-r--r--Source/WebKit/win/WebPreferences.cpp6
-rw-r--r--Source/WebKit/win/WebResource.cpp3
-rw-r--r--Source/WebKit/win/WebResource.h3
-rw-r--r--Source/WebKit/win/WebScriptWorld.h1
-rw-r--r--Source/WebKit/win/WebScrollBar.cpp3
-rw-r--r--Source/WebKit/win/WebScrollBar.h2
-rw-r--r--Source/WebKit/win/WebSerializedJSValue.h1
-rw-r--r--Source/WebKit/win/WebURLAuthenticationChallenge.cpp3
-rw-r--r--Source/WebKit/win/WebURLAuthenticationChallenge.h3
-rw-r--r--Source/WebKit/win/WebURLAuthenticationChallengeSender.cpp3
-rw-r--r--Source/WebKit/win/WebURLAuthenticationChallengeSenderCFNet.cpp3
-rw-r--r--Source/WebKit/win/WebURLAuthenticationChallengeSenderCurl.cpp3
-rw-r--r--Source/WebKit/win/WebURLCredential.cpp2
-rw-r--r--Source/WebKit/win/WebURLCredential.h3
-rw-r--r--Source/WebKit/win/WebURLProtectionSpace.cpp2
-rw-r--r--Source/WebKit/win/WebURLProtectionSpace.h3
-rw-r--r--Source/WebKit/win/WebURLResponse.cpp20
-rw-r--r--Source/WebKit/win/WebURLResponse.h3
-rw-r--r--Source/WebKit/win/WebUserContentURLPattern.h1
-rw-r--r--Source/WebKit/win/WebView.cpp67
-rw-r--r--Source/WebKit/wince/CMakeListsWinCE.txt1
-rw-r--r--Source/WebKit/wince/ChangeLog58
-rw-r--r--Source/WebKit/wince/WebCoreSupport/FrameLoaderClientWinCE.cpp17
-rw-r--r--Source/WebKit/wince/WebCoreSupport/FrameLoaderClientWinCE.h3
-rw-r--r--Source/WebKit/wince/WebCoreSupport/PlatformStrategiesWinCE.cpp2
-rw-r--r--Source/WebKit/wince/WebCoreSupport/PlatformStrategiesWinCE.h2
-rw-r--r--Source/WebKit/wx/ChangeLog77
-rw-r--r--Source/WebKit/wx/WebFrame.cpp8
-rw-r--r--Source/WebKit/wx/WebKitSupport/FrameLoaderClientWx.cpp3
-rw-r--r--Source/WebKit/wx/WebKitSupport/FrameLoaderClientWx.h3
-rw-r--r--Source/WebKit/wx/WebView.cpp3
-rw-r--r--Source/WebKit/wx/bindings/python/webview.i1
430 files changed, 12092 insertions, 3840 deletions
diff --git a/Source/WebKit/ChangeLog b/Source/WebKit/ChangeLog
index 78e8174..d786ce1 100644
--- a/Source/WebKit/ChangeLog
+++ b/Source/WebKit/ChangeLog
@@ -1,3 +1,56 @@
+2011-03-29 Timothy Hatcher <timothy@apple.com>
+
+ Update WebKit Localizable.strings to only contain WebKit/win strings.
+
+ https://webkit.org/b/57354
+
+ Reviewed by Sam Weinig.
+
+ * English.lproj/Localizable.strings: Updated.
+
+2011-03-23 Jia Pu <jpu@apple.com>
+
+ Reviewed by Darin Adler.
+
+ Hook up new AppKit autocorrection UI with WK2.
+ https://bugs.webkit.org/show_bug.cgi?id=56055
+ <rdar://problem/8947463>
+
+ Please see WebCore/ChangeLog for detail.
+
+ * WebKit.xcodeproj/project.pbxproj:
+
+2011-03-17 Jeff Miller <jeffm@apple.com>
+
+ Use a consistent set of file patterns in the svn:ignore property for all .xcodeproj directories, specifically:
+
+ *.mode*
+ *.pbxuser
+ *.perspective*
+ project.xcworkspace
+ xcuserdata
+
+ * WebKit.xcodeproj: Modified property svn:ignore.
+
+2011-03-15 Alexey Proskuryakov <ap@apple.com>
+
+ Reviewed by Darin Adler.
+
+ REGRESSION (WebKit2): keygen element doesn't work
+ https://bugs.webkit.org/show_bug.cgi?id=56402
+ <rdar://problem/9006545>
+
+ * WebKit.xcodeproj/project.pbxproj: Renamed WebKeyGenerator.m to use Objective C++.
+
+2011-03-11 Anton D'Auria <adauria@apple.com>
+
+ Reviewed and landed by Brady Eidson.
+
+ Add WebKit1 API to view and delete local storage
+ https://bugs.webkit.org/show_bug.cgi?id=51878
+
+ * WebKit.xcodeproj/project.pbxproj:
+
2011-03-02 Sam Weinig <sam@webkit.org>
Reviewed by Anders Carlsson.
diff --git a/Source/WebKit/English.lproj/Localizable.strings b/Source/WebKit/English.lproj/Localizable.strings
index ebc6ecf..eebf03f 100644
--- a/Source/WebKit/English.lproj/Localizable.strings
+++ b/Source/WebKit/English.lproj/Localizable.strings
Binary files differ
diff --git a/Source/WebKit/WebKit.xcodeproj/project.pbxproj b/Source/WebKit/WebKit.xcodeproj/project.pbxproj
index 5bebdbe..06a5566 100644
--- a/Source/WebKit/WebKit.xcodeproj/project.pbxproj
+++ b/Source/WebKit/WebKit.xcodeproj/project.pbxproj
@@ -85,6 +85,11 @@
37B6FB4F1063530C000FDB3B /* WebPDFDocumentExtras.mm in Sources */ = {isa = PBXBuildFile; fileRef = 37B6FB4D1063530C000FDB3B /* WebPDFDocumentExtras.mm */; };
37D1DCA81065928C0068F7EF /* WebJSPDFDoc.h in Headers */ = {isa = PBXBuildFile; fileRef = 37D1DCA61065928C0068F7EF /* WebJSPDFDoc.h */; };
37D1DCA91065928C0068F7EF /* WebJSPDFDoc.mm in Sources */ = {isa = PBXBuildFile; fileRef = 37D1DCA71065928C0068F7EF /* WebJSPDFDoc.mm */; };
+ 3AB02AF612C1319B00FBB694 /* WebStorageManager.mm in Sources */ = {isa = PBXBuildFile; fileRef = 3AB02AF512C1319B00FBB694 /* WebStorageManager.mm */; };
+ 3AB02B0012C132B200FBB694 /* WebStorageManagerPrivate.h in Headers */ = {isa = PBXBuildFile; fileRef = 3AB02AFF12C132B200FBB694 /* WebStorageManagerPrivate.h */; settings = {ATTRIBUTES = (Private, ); }; };
+ 3ABB3C7A1309C3B500E93D94 /* WebStorageTrackerClient.h in Headers */ = {isa = PBXBuildFile; fileRef = 3ABB3C781309C3B500E93D94 /* WebStorageTrackerClient.h */; };
+ 3ABB3C7B1309C3B500E93D94 /* WebStorageTrackerClient.mm in Sources */ = {isa = PBXBuildFile; fileRef = 3ABB3C791309C3B500E93D94 /* WebStorageTrackerClient.mm */; };
+ 3AE15D5012DBDED4009323C8 /* WebStorageManagerInternal.h in Headers */ = {isa = PBXBuildFile; fileRef = 3AE15D4F12DBDED4009323C8 /* WebStorageManagerInternal.h */; };
41F4484F10338E8C0030E55E /* WebWorkersPrivate.h in Headers */ = {isa = PBXBuildFile; fileRef = 41F4484D10338E8C0030E55E /* WebWorkersPrivate.h */; settings = {ATTRIBUTES = (Private, ); }; };
41F4485010338E8C0030E55E /* WebWorkersPrivate.mm in Sources */ = {isa = PBXBuildFile; fileRef = 41F4484E10338E8C0030E55E /* WebWorkersPrivate.mm */; };
44BB8B141241A022001E3A22 /* WebArchiveInternal.h in Headers */ = {isa = PBXBuildFile; fileRef = 44BB8B131241A022001E3A22 /* WebArchiveInternal.h */; };
@@ -302,7 +307,7 @@
939811130824BF01008DF038 /* WebHistory.mm in Sources */ = {isa = PBXBuildFile; fileRef = 65DA2608052CC18700A97B31 /* WebHistory.mm */; };
939811150824BF01008DF038 /* WebNSDataExtras.m in Sources */ = {isa = PBXBuildFile; fileRef = BECD142A0565830A005BB09C /* WebNSDataExtras.m */; };
939811160824BF01008DF038 /* WebNSEventExtras.m in Sources */ = {isa = PBXBuildFile; fileRef = BE887C00056D3A6E009BB3E7 /* WebNSEventExtras.m */; };
- 939811170824BF01008DF038 /* WebKeyGenerator.m in Sources */ = {isa = PBXBuildFile; fileRef = 84723BE4056D719E0044BFEA /* WebKeyGenerator.m */; };
+ 939811170824BF01008DF038 /* WebKeyGenerator.mm in Sources */ = {isa = PBXBuildFile; fileRef = 84723BE4056D719E0044BFEA /* WebKeyGenerator.mm */; };
939811190824BF01008DF038 /* WebNSPrintOperationExtras.m in Sources */ = {isa = PBXBuildFile; fileRef = EDD1A5C705C83987008E3150 /* WebNSPrintOperationExtras.m */; };
9398111A0824BF01008DF038 /* WebResource.mm in Sources */ = {isa = PBXBuildFile; fileRef = 84311A1305EAAAF00088EDA4 /* WebResource.mm */; };
9398111B0824BF01008DF038 /* WebDefaultEditingDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = BE95BEE505FD0805006E1513 /* WebDefaultEditingDelegate.m */; };
@@ -339,6 +344,8 @@
B6CE5C25100BC5F500219936 /* WebApplicationCache.h in Headers */ = {isa = PBXBuildFile; fileRef = B68049710FFBCEC1009F7F62 /* WebApplicationCache.h */; settings = {ATTRIBUTES = (Private, ); }; };
B804176F1217A83100466BAE /* WebInspectorFrontend.h in Headers */ = {isa = PBXBuildFile; fileRef = B804176D1217A83100466BAE /* WebInspectorFrontend.h */; };
B80417701217A83100466BAE /* WebInspectorFrontend.mm in Sources */ = {isa = PBXBuildFile; fileRef = B804176E1217A83100466BAE /* WebInspectorFrontend.mm */; };
+ B82958D3132707D0000D0E79 /* CorrectionPanel.h in Headers */ = {isa = PBXBuildFile; fileRef = B82958D1132707D0000D0E79 /* CorrectionPanel.h */; };
+ B82958D4132707D0000D0E79 /* CorrectionPanel.mm in Sources */ = {isa = PBXBuildFile; fileRef = B82958D2132707D0000D0E79 /* CorrectionPanel.mm */; };
BC26C69E10B743F400B687ED /* WebSerializedJSValue.h in Headers */ = {isa = PBXBuildFile; fileRef = BC26C69D10B743F400B687ED /* WebSerializedJSValue.h */; settings = {ATTRIBUTES = (Private, ); }; };
BC26C6A510B7447A00B687ED /* WebSerializedJSValue.mm in Sources */ = {isa = PBXBuildFile; fileRef = BC26C6A410B7447A00B687ED /* WebSerializedJSValue.mm */; };
BC2E464D0FD8A96800A9D9DE /* WebViewData.h in Headers */ = {isa = PBXBuildFile; fileRef = BC2E464B0FD8A96800A9D9DE /* WebViewData.h */; };
@@ -483,6 +490,11 @@
3944607E020F50ED0ECA1767 /* WebBackForwardList.mm */ = {isa = PBXFileReference; fileEncoding = 30; indentWidth = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = WebBackForwardList.mm; sourceTree = "<group>"; tabWidth = 8; usesTabs = 0; };
3944607F020F50ED0ECA1767 /* WebHistoryItem.h */ = {isa = PBXFileReference; fileEncoding = 30; indentWidth = 4; lastKnownFileType = sourcecode.c.h; path = WebHistoryItem.h; sourceTree = "<group>"; tabWidth = 8; usesTabs = 0; };
39446080020F50ED0ECA1767 /* WebHistoryItem.mm */ = {isa = PBXFileReference; fileEncoding = 30; indentWidth = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = WebHistoryItem.mm; sourceTree = "<group>"; tabWidth = 8; usesTabs = 0; };
+ 3AB02AF512C1319B00FBB694 /* WebStorageManager.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = WebStorageManager.mm; sourceTree = "<group>"; };
+ 3AB02AFF12C132B200FBB694 /* WebStorageManagerPrivate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WebStorageManagerPrivate.h; sourceTree = "<group>"; };
+ 3ABB3C781309C3B500E93D94 /* WebStorageTrackerClient.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WebStorageTrackerClient.h; sourceTree = "<group>"; };
+ 3ABB3C791309C3B500E93D94 /* WebStorageTrackerClient.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = WebStorageTrackerClient.mm; sourceTree = "<group>"; };
+ 3AE15D4F12DBDED4009323C8 /* WebStorageManagerInternal.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WebStorageManagerInternal.h; sourceTree = "<group>"; };
41F4484D10338E8C0030E55E /* WebWorkersPrivate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = WebWorkersPrivate.h; path = mac/Workers/WebWorkersPrivate.h; sourceTree = "<group>"; };
41F4484E10338E8C0030E55E /* WebWorkersPrivate.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; name = WebWorkersPrivate.mm; path = mac/Workers/WebWorkersPrivate.mm; sourceTree = "<group>"; };
449098B90F8F82DF0076A327 /* FeatureDefines.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = FeatureDefines.xcconfig; sourceTree = "<group>"; };
@@ -587,7 +599,7 @@
8467275C0367158500CA2ACA /* WebPluginController.h */ = {isa = PBXFileReference; fileEncoding = 30; indentWidth = 4; lastKnownFileType = sourcecode.c.h; path = WebPluginController.h; sourceTree = "<group>"; tabWidth = 8; usesTabs = 0; };
8467275D0367158500CA2ACA /* WebPluginController.mm */ = {isa = PBXFileReference; fileEncoding = 30; indentWidth = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = WebPluginController.mm; sourceTree = "<group>"; tabWidth = 8; usesTabs = 0; };
84723BE3056D719E0044BFEA /* WebKeyGenerator.h */ = {isa = PBXFileReference; fileEncoding = 4; indentWidth = 4; lastKnownFileType = sourcecode.c.h; path = WebKeyGenerator.h; sourceTree = "<group>"; tabWidth = 8; usesTabs = 0; };
- 84723BE4056D719E0044BFEA /* WebKeyGenerator.m */ = {isa = PBXFileReference; fileEncoding = 4; indentWidth = 4; lastKnownFileType = sourcecode.c.objc; path = WebKeyGenerator.m; sourceTree = "<group>"; tabWidth = 8; usesTabs = 0; };
+ 84723BE4056D719E0044BFEA /* WebKeyGenerator.mm */ = {isa = PBXFileReference; fileEncoding = 4; indentWidth = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = WebKeyGenerator.mm; sourceTree = "<group>"; tabWidth = 8; usesTabs = 0; };
848DFF840365FE6A00CA2ACA /* WebPlugin.h */ = {isa = PBXFileReference; fileEncoding = 30; indentWidth = 4; lastKnownFileType = sourcecode.c.h; path = WebPlugin.h; sourceTree = "<group>"; tabWidth = 8; usesTabs = 0; };
848DFF850365FE6A00CA2ACA /* WebPluginContainer.h */ = {isa = PBXFileReference; fileEncoding = 30; indentWidth = 4; lastKnownFileType = sourcecode.c.h; path = WebPluginContainer.h; sourceTree = "<group>"; tabWidth = 8; usesTabs = 0; };
848DFF860365FE6A00CA2ACA /* WebPluginViewFactory.h */ = {isa = PBXFileReference; fileEncoding = 30; indentWidth = 4; lastKnownFileType = sourcecode.c.h; path = WebPluginViewFactory.h; sourceTree = "<group>"; tabWidth = 8; usesTabs = 0; };
@@ -650,6 +662,8 @@
B68049720FFBCEC1009F7F62 /* WebApplicationCache.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = WebApplicationCache.mm; sourceTree = "<group>"; };
B804176D1217A83100466BAE /* WebInspectorFrontend.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WebInspectorFrontend.h; sourceTree = "<group>"; };
B804176E1217A83100466BAE /* WebInspectorFrontend.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = WebInspectorFrontend.mm; sourceTree = "<group>"; };
+ B82958D1132707D0000D0E79 /* CorrectionPanel.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CorrectionPanel.h; sourceTree = "<group>"; };
+ B82958D2132707D0000D0E79 /* CorrectionPanel.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = CorrectionPanel.mm; sourceTree = "<group>"; };
BC26C69D10B743F400B687ED /* WebSerializedJSValue.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WebSerializedJSValue.h; sourceTree = "<group>"; };
BC26C6A410B7447A00B687ED /* WebSerializedJSValue.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = WebSerializedJSValue.mm; sourceTree = "<group>"; };
BC2E464B0FD8A96800A9D9DE /* WebViewData.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WebViewData.h; sourceTree = "<group>"; };
@@ -1056,6 +1070,11 @@
A5DEFC0E11D5343E00885273 /* WebDatabaseQuotaManager.mm */,
511F3FD30CECC88F00852565 /* WebDatabaseTrackerClient.h */,
511F3FD40CECC88F00852565 /* WebDatabaseTrackerClient.mm */,
+ 3AB02AF512C1319B00FBB694 /* WebStorageManager.mm */,
+ 3AB02AFF12C132B200FBB694 /* WebStorageManagerPrivate.h */,
+ 3AE15D4F12DBDED4009323C8 /* WebStorageManagerInternal.h */,
+ 3ABB3C781309C3B500E93D94 /* WebStorageTrackerClient.h */,
+ 3ABB3C791309C3B500E93D94 /* WebStorageTrackerClient.mm */,
);
name = Storage;
path = mac/Storage;
@@ -1280,6 +1299,8 @@
F5B36B400281DE87018635CB /* WebCoreSupport */ = {
isa = PBXGroup;
children = (
+ B82958D1132707D0000D0E79 /* CorrectionPanel.h */,
+ B82958D2132707D0000D0E79 /* CorrectionPanel.mm */,
598AD91D1201CECF00ABAE4E /* WebDeviceOrientationClient.mm */,
598AD9191201CEC900ABAE4E /* WebDeviceOrientationClient.h */,
B68049710FFBCEC1009F7F62 /* WebApplicationCache.h */,
@@ -1310,7 +1331,7 @@
9345D4EA0365C5B2008635CE /* WebJavaScriptTextInputPanel.h */,
9345D4EB0365C5B2008635CE /* WebJavaScriptTextInputPanel.m */,
84723BE3056D719E0044BFEA /* WebKeyGenerator.h */,
- 84723BE4056D719E0044BFEA /* WebKeyGenerator.m */,
+ 84723BE4056D719E0044BFEA /* WebKeyGenerator.mm */,
1AA879B411CBE9BF003C664F /* WebPlatformStrategies.h */,
1AA879B511CBE9BF003C664F /* WebPlatformStrategies.mm */,
0A2D87FB107AF52B00CDDEE3 /* WebPluginHalterClient.h */,
@@ -1625,8 +1646,12 @@
598AD92A1201CF3B00ABAE4E /* WebDeviceOrientationProviderMockInternal.h in Headers */,
598ADA461202275000ABAE4E /* WebDeviceOrientationProvider.h in Headers */,
93E2A1A4123B0B3C009FE12A /* WebDashboardRegion.h in Headers */,
+ 3AB02B0012C132B200FBB694 /* WebStorageManagerPrivate.h in Headers */,
CDA62AE2125F87C2007FD118 /* WebFullScreenController.h in Headers */,
+ 3AE15D5012DBDED4009323C8 /* WebStorageManagerInternal.h in Headers */,
+ 3ABB3C7A1309C3B500E93D94 /* WebStorageTrackerClient.h in Headers */,
BC42D324131ED1E00075FA4B /* WebLocalizableStringsInternal.h in Headers */,
+ B82958D3132707D0000D0E79 /* CorrectionPanel.h in Headers */,
);
runOnlyForDeploymentPostprocessing = 0;
};
@@ -1908,7 +1933,7 @@
1C7B0C660EB2464D00A28502 /* WebInspectorClientCF.cpp in Sources */,
939810E40824BF01008DF038 /* WebJavaScriptTextInputPanel.m in Sources */,
37D1DCA91065928C0068F7EF /* WebJSPDFDoc.mm in Sources */,
- 939811170824BF01008DF038 /* WebKeyGenerator.m in Sources */,
+ 939811170824BF01008DF038 /* WebKeyGenerator.mm in Sources */,
939811030824BF01008DF038 /* WebKitErrors.m in Sources */,
939810C30824BF01008DF038 /* WebKitLogging.m in Sources */,
939810C40824BF01008DF038 /* WebKitNSStringExtras.mm in Sources */,
@@ -1993,8 +2018,11 @@
598AD9221201CF1000ABAE4E /* WebDeviceOrientation.mm in Sources */,
598AD9281201CF3200ABAE4E /* WebDeviceOrientationProviderMock.mm in Sources */,
93E2A1A5123B0B3C009FE12A /* WebDashboardRegion.mm in Sources */,
+ 3AB02AF612C1319B00FBB694 /* WebStorageManager.mm in Sources */,
CDA62AE3125F87C2007FD118 /* WebFullScreenController.mm in Sources */,
+ 3ABB3C7B1309C3B500E93D94 /* WebStorageTrackerClient.mm in Sources */,
BC42D34D131ED3880075FA4B /* WebLocalizableStringsInternal.mm in Sources */,
+ B82958D4132707D0000D0E79 /* CorrectionPanel.mm in Sources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
diff --git a/Source/WebKit/cf/ChangeLog b/Source/WebKit/cf/ChangeLog
index 1826525..abcc065 100644
--- a/Source/WebKit/cf/ChangeLog
+++ b/Source/WebKit/cf/ChangeLog
@@ -1,3 +1,15 @@
+2011-03-15 Kevin Ollivier <kevino@theolliviers.com>
+
+ Reviewed by Darin Adler.
+
+ Introduce WTF_USE_EXPORT_MACROS, which will allow us to put shared library import/export
+ info into the headers rather than in export symbol definition files, but disable it on
+ all platforms initially so we can deal with port build issues one port at a time.
+
+ https://bugs.webkit.org/show_bug.cgi?id=27551
+
+ * WebCoreSupport/WebInspectorClientCF.cpp:
+
2011-02-23 Patrick Gansterer <paroga@webkit.org>
Reviewed by Darin Adler.
diff --git a/Source/WebKit/cf/WebCoreSupport/WebInspectorClientCF.cpp b/Source/WebKit/cf/WebCoreSupport/WebInspectorClientCF.cpp
index 7fe7e5f..0362dac 100644
--- a/Source/WebKit/cf/WebCoreSupport/WebInspectorClientCF.cpp
+++ b/Source/WebKit/cf/WebCoreSupport/WebInspectorClientCF.cpp
@@ -37,6 +37,11 @@
#define WTF_USE_JSC 1
#endif
+// Leave these set to nothing until we switch Mac and Win ports over to
+// using the export macros.
+#define JS_EXPORT_PRIVATE
+#define WTF_EXPORT_PRIVATE
+
#if defined(WIN32) || defined(_WIN32)
#ifndef WTF_USE_CFNETWORK
#define WTF_USE_CFNETWORK 1
@@ -126,6 +131,18 @@ void WebInspectorClient::releaseFrontendPage()
m_frontendPage = 0;
}
+void WebInspectorClient::saveSessionSetting(const String& key, const String& value)
+{
+ if (!key.isEmpty())
+ m_sessionSettings.set(key, value);
+}
+
+void WebInspectorClient::loadSessionSetting(const String& key, String* value)
+{
+ if (!key.isEmpty())
+ *value = m_sessionSettings.get(key);
+}
+
WTF::PassOwnPtr<WebCore::InspectorFrontendClientLocal::Settings> WebInspectorClient::createFrontendSettings()
{
class InspectorFrontendSettingsCF : public WebCore::InspectorFrontendClientLocal::Settings {
diff --git a/Source/WebKit/chromium/ChangeLog b/Source/WebKit/chromium/ChangeLog
index e5e6149..8becdba 100644
--- a/Source/WebKit/chromium/ChangeLog
+++ b/Source/WebKit/chromium/ChangeLog
@@ -1,3 +1,1713 @@
+2011-03-29 John Abd-El-Malek <jam@chromium.org>
+
+ Reviewed by Tony Chang.
+
+ [chromium]: Remove the code that called WebViewClient for spelling now that chromium is updated
+ https://bugs.webkit.org/show_bug.cgi?id=57396
+
+ * DEPS:
+ * public/WebFrame.h:
+ * public/WebView.h:
+ * public/WebViewClient.h:
+ (WebKit::WebViewClient::handleCurrentKeyboardEvent):
+ * src/EditorClientImpl.cpp:
+ (WebKit::EditorClientImpl::checkSpellingOfString):
+ (WebKit::EditorClientImpl::requestCheckingOfString):
+ (WebKit::EditorClientImpl::getAutoCorrectSuggestionForMisspelledWord):
+ (WebKit::EditorClientImpl::updateSpellingUIWithMisspelledWord):
+ (WebKit::EditorClientImpl::showSpellingUI):
+ (WebKit::EditorClientImpl::spellingUIIsShowing):
+ * src/WebViewImpl.cpp:
+ (WebKit::WebView::create):
+ * src/WebViewImpl.h:
+ * src/WebWorkerBase.cpp:
+ (WebKit::WebWorkerBase::initializeLoader):
+ * tests/PopupMenuTest.cpp:
+ (WebKit::SelectPopupMenuTest::SetUp):
+ * tests/WebFrameTest.cpp:
+ (WebKit::TEST_F):
+ * tests/WebPageSerializerTest.cpp:
+ (WebKit::WebPageSerializerTest::SetUp):
+
+2011-03-30 MORITA Hajime <morrita@google.com>
+
+ Reviewed by Dimitri Glazkov.
+
+ [Chromium] Expose the shadow DOM to DumpRenderTree JS tests.
+ https://bugs.webkit.org/show_bug.cgi?id=56573
+
+ Added:
+ - WebBindins::makeNode() to convert WebNode to a JS object, and
+ - WebElement::shadowRoot().
+
+ * public/WebBindings.h:
+ * public/WebElement.h:
+ * src/WebBindings.cpp:
+ (WebKit::makeNodeImpl):
+ (WebKit::WebBindings::makeNode):
+ * src/WebElement.cpp:
+ (WebKit::WebElement::shadowRoot):
+
+2011-03-30 Mario Sanchez Prada <msanchez@igalia.com>
+
+ Reviewed by Chris Fleizach.
+
+ AX: GTK: ARIA role is not respected on <p> <label> <div> and <form>
+ https://bugs.webkit.org/show_bug.cgi?id=47636
+
+ Duplicate new internal WebCore roles in the Chromium port.
+
+ * public/WebAccessibilityRole.h: Update enumeration
+ WebAccessibilityRole to reflect newly added roles in WebCore.
+ * src/AssertMatchingEnums.cpp: Added new assertions.
+
+2011-03-30 Yury Semikhatsky <yurys@chromium.org>
+
+ Reviewed by Pavel Feldman.
+
+ Web Inspector: split debugger agent into Page and Worker-specific ones
+ https://bugs.webkit.org/show_bug.cgi?id=57345
+
+ ScriptDebugServer and InspectorDebuggerAgent contain only functionality common
+ for Worker and Page debugger. All specifics is moved into Page/WorkerScriptDebugServer
+ and Page/WorkerDebuggerAgent.
+
+ * src/DebuggerAgentManager.cpp:
+ (WebKit::DebuggerAgentManager::setExposeV8DebuggerProtocol):
+ * src/WebDevToolsAgentImpl.cpp:
+ (WebKit::WebDevToolsAgent::interruptAndDispatch):
+ (WebKit::WebDevToolsAgent::processPendingMessages):
+
+2011-03-30 Yury Semikhatsky <yurys@chromium.org>
+
+ Unreviewed. Rollout r82438 and r82436.
+
+ * src/DebuggerAgentManager.cpp:
+ (WebKit::DebuggerAgentManager::setExposeV8DebuggerProtocol):
+ * src/WebDevToolsAgentImpl.cpp:
+ (WebKit::WebDevToolsAgent::interruptAndDispatch):
+ (WebKit::WebDevToolsAgent::processPendingMessages):
+
+2011-03-30 Yury Semikhatsky <yurys@chromium.org>
+
+ Reviewed by Pavel Feldman.
+
+ Web Inspector: split debugger agent into Page and Worker-specific ones
+ https://bugs.webkit.org/show_bug.cgi?id=57345
+
+ ScriptDebugServer and InspectorDebuggerAgent contain only functionality common
+ for Worker and Page debugger. All specifics is moved into Page/WorkerScriptDebugServer
+ and Page/WorkerDebuggerAgent.
+
+ * src/DebuggerAgentManager.cpp:
+ (WebKit::DebuggerAgentManager::setExposeV8DebuggerProtocol):
+ * src/WebDevToolsAgentImpl.cpp:
+ (WebKit::WebDevToolsAgent::interruptAndDispatch):
+ (WebKit::WebDevToolsAgent::processPendingMessages):
+
+2011-03-29 Sheriff Bot <webkit.review.bot@gmail.com>
+
+ Unreviewed, rolling out r82293.
+ http://trac.webkit.org/changeset/82293
+ https://bugs.webkit.org/show_bug.cgi?id=57390
+
+ Breaks RetrieveCSSResources (Requested by abarth|gardener on
+ #webkit).
+
+ * WebKit.gyp:
+ * src/WebPageSerializer.cpp:
+ (WebCore::getSubResourceURLFromElement):
+ (WebCore::retrieveResourcesForElement):
+ (WebCore::retrieveResourcesForFrame):
+ (WebKit::WebPageSerializer::retrieveAllResources):
+ * tests/WebPageSerializerTest.cpp:
+ * tests/data/pageserialization/css_test_page.html: Removed.
+ * tests/data/pageserialization/import_style_from_link.css: Removed.
+ * tests/data/pageserialization/import_styles.css: Removed.
+ * tests/data/pageserialization/link_styles.css: Removed.
+
+2011-03-29 Tony Chang <tony@chromium.org>
+
+ Roll chromium version to r79710 to pick up libpng changes.
+
+ * DEPS:
+
+2011-03-29 Sheriff Bot <webkit.review.bot@gmail.com>
+
+ Unreviewed, rolling out r82295 and r82300.
+ http://trac.webkit.org/changeset/82295
+ http://trac.webkit.org/changeset/82300
+ https://bugs.webkit.org/show_bug.cgi?id=57380
+
+ This patch breaks compile on Chromium (Requested by
+ abarth|gardener on #webkit).
+
+ * public/WebAccessibilityRole.h:
+ * src/AssertMatchingEnums.cpp:
+
+2011-03-29 Mario Sanchez Prada <msanchez@igalia.com>
+
+ Reviewed by Adam Barth.
+
+ REGRESSION(r82295): This patch does not compile on Chromium (Requested by abarth|gardener on #webkit).
+ https://bugs.webkit.org/show_bug.cgi?id=57377
+
+ Fix build errors on Chromium bots.
+
+ * public/WebAccessibilityRole.h: Update to reflect newly added roles in WebCore.
+ * src/AssertMatchingEnums.cpp: Ditto.
+
+2011-03-29 Adam Barth <abarth@webkit.org>
+
+ Roll Chromium DEPS
+ https://bugs.webkit.org/show_bug.cgi?id=57361
+
+ * DEPS:
+
+2011-03-29 Jay Civelli <jcivelli@chromium.org>
+
+ Reviewed by David Levin.
+
+ Adding retrieval off CSS resources to WebPageSerializer::retrieveAllResources.
+ https://bugs.webkit.org/show_bug.cgi?id=56650
+
+ * WebKit.gyp:
+ * src/WebPageSerializer.cpp:
+ (WebCore::getResourceAttributeForElement):
+ (WebCore::retrieveStyleSheetForElement):
+ (WebCore::retrieveResourcesForElement):
+ (WebCore::retrieveResourcesForFrame):
+ (WebCore::retrieveResourcesForCSSRule):
+ (WebCore::retrieveResourcesForCSSStyleDeclaration):
+ (WebCore::retrieveResourcesForCSSStyleSheet):
+ (WebKit::WebPageSerializer::retrieveAllResources):
+ * tests/WebPageSerializerTest.cpp:
+ (WebKit::TestWebFrameClient::TestWebFrameClient):
+ (WebKit::TestWebFrameClient::allowScript):
+ (WebKit::WebPageSerializerTest::enableJS):
+ (WebKit::WebPageSerializerTest::runOnLoad):
+ (WebKit::TEST_F):
+ * tests/data/pageserialization/css_test_page.html: Added.
+ * tests/data/pageserialization/import_style_from_link.css: Added.
+ (#divOrange):
+ * tests/data/pageserialization/import_styles.css: Added.
+ (#divYellow):
+ * tests/data/pageserialization/link_styles.css: Added.
+ (#divRed):
+
+2011-03-29 Vsevolod Vlasov <vsevik@chromium.org>
+
+ Reviewed by Pavel Feldman.
+
+ [Chromium] Inspector does not always shows transferred size correctly (e.g. gzipped/chunked content)
+ https://bugs.webkit.org/show_bug.cgi?id=56602
+
+ Added new methods to interface while keeping the old ones to keep
+ chromium working until it is also patched.
+
+ * public/WebURLLoaderClient.h:
+ (WebKit::WebURLLoaderClient::didReceiveData2):
+ * src/AssociatedURLLoader.cpp:
+ (WebKit::AssociatedURLLoader::ClientAdapter::didReceiveData):
+ * src/ResourceHandle.cpp:
+ (WebCore::ResourceHandleInternal::didReceiveData):
+ (WebCore::ResourceHandleInternal::didReceiveData2):
+
+2011-03-29 Vsevolod Vlasov <vsevik@chromium.org>
+
+ Reviewed by Pavel Feldman.
+
+ Web Inspector: [Chromium] DevTools shows two resources for each plugin resource loaded
+ https://bugs.webkit.org/show_bug.cgi?id=57101
+
+ Remove DevToolsAgent network callbacks as this information is now available through ResourceLoader
+
+ * public/WebDevToolsAgent.h:
+ * src/WebDevToolsAgentImpl.cpp:
+ * src/WebDevToolsAgentImpl.h:
+
+2011-03-29 Emil A Eklund <eae@chromium.org>
+
+ Reviewed by Dimitri Glazkov.
+
+ Relative mouse coordinates recalculated for each target
+ https://bugs.webkit.org/show_bug.cgi?id=57130
+
+ * public/WebDOMMouseEvent.h:
+ * src/WebDOMMouseEvent.cpp:
+ (WebKit::WebDOMMouseEvent::layerX):
+ (WebKit::WebDOMMouseEvent::layerY):
+ (WebKit::WebDOMMouseEvent::offsetX):
+ (WebKit::WebDOMMouseEvent::offsetY):
+
+2011-03-29 Yuta Kitamura <yutak@chromium.org>
+
+ Unreviewed, rolling out r82195.
+ http://trac.webkit.org/changeset/82195
+ https://bugs.webkit.org/show_bug.cgi?id=56602
+
+ Broke Chromium Clang builds.
+
+ * public/WebDevToolsAgent.h:
+ * public/WebURLLoaderClient.h:
+ * src/AssociatedURLLoader.cpp:
+ (WebKit::AssociatedURLLoader::ClientAdapter::didReceiveData):
+ * src/ResourceHandle.cpp:
+ (WebCore::ResourceHandleInternal::didReceiveData):
+ * src/WebDevToolsAgentImpl.cpp:
+ (WebKit::WebDevToolsAgentImpl::didReceiveData):
+ * src/WebDevToolsAgentImpl.h:
+
+2011-03-29 Yuta Kitamura <yutak@chromium.org>
+
+ Unreviewed. Another build fix. The last fix was incorrect.
+
+ * src/ChromeClientImpl.cpp:
+ (WebKit::ChromeClientImpl::supportsFullscreenForNode):
+ (WebKit::ChromeClientImpl::supportsFullScreenForElement):
+ * src/ChromeClientImpl.h:
+
+2011-03-29 Yuta Kitamura <yutak@chromium.org>
+
+ Unreviewed. Build fix for Chromium Clang bot.
+
+ * src/ChromeClientImpl.cpp:
+ (WebKit::ChromeClientImpl::supportsFullscreenForNode):
+ * src/ChromeClientImpl.h:
+
+2011-03-28 Vsevolod Vlasov <vsevik@chromium.org>
+
+ Reviewed by Pavel Feldman.
+
+ [Chromium] Inspector does not always shows transferred size correctly (e.g. gzipped/chunked content)
+ https://bugs.webkit.org/show_bug.cgi?id=56602
+
+ Added new methods to interface while keeping the old ones to keep
+ chromium working until it is also patched.
+
+ * public/WebDevToolsAgent.h:
+ * public/WebURLLoaderClient.h:
+ (WebKit::WebURLLoaderClient::didReceiveData):
+ * src/AssociatedURLLoader.cpp:
+ (WebKit::AssociatedURLLoader::ClientAdapter::didReceiveData):
+ * src/ResourceHandle.cpp:
+ (WebCore::ResourceHandleInternal::didReceiveData):
+ * src/WebDevToolsAgentImpl.cpp:
+ (WebKit::WebDevToolsAgentImpl::didReceiveData):
+ * src/WebDevToolsAgentImpl.h:
+
+2011-03-28 Tony Chang <tony@chromium.org>
+
+ Reviewed by Adam Barth.
+
+ [chromium] have DRT write the png checksum into a png comment
+ https://bugs.webkit.org/show_bug.cgi?id=57255
+
+ * DEPS: Pull in version of chromium with comment writing
+
+2011-03-28 Adele Peterson <adele@apple.com>
+
+ Build fix.
+
+ * src/WebFrameImpl.cpp: (WebKit::WebFrameImpl::selectionStartHasSpellingMarkerFor):
+ Call new selectionStartHasMarkerFor method instead of selectionStartHasSpellingMarkerFor.
+
+2011-03-28 Pavel Feldman <pfeldman@chromium.org>
+
+ Not reviewed: fixed chromium build.
+
+ * src/WebDevToolsAgentImpl.cpp:
+ (WebKit::WebDevToolsAgent::shouldInterruptForMessage):
+
+2011-03-25 Andy Estes <aestes@apple.com>
+
+ Reviewed by Adele Peterson.
+
+ REGRESSION (r70748): latest nightly builds kills AC_QuickTime.js
+ https://bugs.webkit.org/show_bug.cgi?id=49016
+
+ Update objectContentType() implementation to handle the
+ shouldPreferPlugInsForImages flag.
+
+ * src/FrameLoaderClientImpl.cpp:
+ (WebKit::FrameLoaderClientImpl::objectContentType):
+ * src/FrameLoaderClientImpl.h:
+
+2011-03-25 Kinuko Yasuda <kinuko@chromium.org>
+
+ Reviewed by David Levin.
+
+ Data race between ~WorkerFileSystemCallbacksBridge and runTasksOnWorkerThread
+ https://bugs.webkit.org/show_bug.cgi?id=56138
+ Stopped passing the WorkerFileSystemCallbacksBridge's reference to
+ MainThreadFileSystemCallbacks so that in most cases (in normal cases)
+ its reference is only maintained by WorkerThread.
+
+ * src/WorkerFileSystemCallbacksBridge.cpp:
+ (WebKit::MainThreadFileSystemCallbacks::createLeakedPtr):
+ (WebKit::MainThreadFileSystemCallbacks::MainThreadFileSystemCallbacks):
+ (WebKit::WorkerFileSystemCallbacksBridge::mayPostTaskToWorker):
+ * src/WorkerFileSystemCallbacksBridge.h:
+
+2011-03-24 John Abd-El-Malek <jam@chromium.org>
+
+ Reviewed by Dimitri Glazkov.
+
+ [chromium] Add setters for various client interfaces, and add WebSpellCheckClient
+ https://bugs.webkit.org/show_bug.cgi?id=57070
+
+ * public/WebSpellCheckClient.h: Added.
+ (WebKit::WebSpellCheckClient::spellCheck):
+ (WebKit::WebSpellCheckClient::requestCheckingOfText):
+ (WebKit::WebSpellCheckClient::autoCorrectWord):
+ (WebKit::WebSpellCheckClient::showSpellingUI):
+ (WebKit::WebSpellCheckClient::isShowingSpellingUI):
+ (WebKit::WebSpellCheckClient::updateSpellingUIWithMisspelledWord):
+ (WebKit::WebSpellCheckClient::~WebSpellCheckClient):
+ * public/WebView.h:
+ * public/WebViewClient.h:
+ * src/EditorClientImpl.cpp:
+ (WebKit::EditorClientImpl::checkSpellingOfString):
+ (WebKit::EditorClientImpl::requestCheckingOfString):
+ (WebKit::EditorClientImpl::getAutoCorrectSuggestionForMisspelledWord):
+ (WebKit::EditorClientImpl::updateSpellingUIWithMisspelledWord):
+ (WebKit::EditorClientImpl::showSpellingUI):
+ (WebKit::EditorClientImpl::spellingUIIsShowing):
+ * src/WebViewImpl.cpp:
+ (WebKit::WebViewImpl::setWebDevToolsAgentClient):
+ (WebKit::WebViewImpl::setWebAutoFillClient):
+ (WebKit::WebViewImpl::setWebSpellCheckClient):
+ (WebKit::WebViewImpl::WebViewImpl):
+ * src/WebViewImpl.h:
+ (WebKit::WebViewImpl::spellCheckClient):
+
+2011-03-25 Cary Clark <caryclark@google.com>
+
+ Reviewed by Dimitri Glazkov.
+
+ Add CGBitmapContext.h include to WebViewImpl.cpp
+ https://bugs.webkit.org/show_bug.cgi?id=57097
+
+ No tests. Exposes no new functionality.
+
+ * src/WebViewImpl.cpp:
+
+2011-03-25 Adam Klein <adamk@chromium.org>
+
+ Reviewed by David Levin.
+
+ [chromium] Remove deprecated overload of openFileSystem for workers
+ https://bugs.webkit.org/show_bug.cgi?id=57062
+
+ * public/WebCommonWorkerClient.h:
+
+2011-03-25 Chang Shu <cshu@webkit.org>
+
+ Reviewed by Ryosuke Niwa.
+
+ rename Node::isContentEditable and all call sites to rendererIsEditable
+ https://bugs.webkit.org/show_bug.cgi?id=54290
+
+ This is part of the effort to separate JS API HTMLElement isContentEditable from
+ internal Node::rendererIsEditable.
+
+ * src/WebNode.cpp:
+ (WebKit::WebNode::isContentEditable):
+ * src/WebViewImpl.cpp:
+ (WebKit::WebViewImpl::setFocus):
+ (WebKit::WebViewImpl::setComposition):
+ (WebKit::WebViewImpl::confirmComposition):
+
+2011-03-25 Mikhail Naganov <mnaganov@chromium.org>
+
+ Roll forward Chromium deps to r79379 to pick up V8 3.2.4.2.
+
+ * DEPS:
+
+2011-03-24 Sheriff Bot <webkit.review.bot@gmail.com>
+
+ Unreviewed, rolling out r81916 and r81917.
+ http://trac.webkit.org/changeset/81916
+ http://trac.webkit.org/changeset/81917
+ https://bugs.webkit.org/show_bug.cgi?id=57071
+
+ broke a test on platforms that do not have QuickTime installed
+ (Requested by estes on #webkit).
+
+ * src/FrameLoaderClientImpl.cpp:
+ (WebKit::FrameLoaderClientImpl::objectContentType):
+ * src/FrameLoaderClientImpl.h:
+
+2011-03-24 Min Qin <qinmin@google.com>
+
+ Reviewed by James Robinson.
+
+ Allow WebMediaPlayerClient to notify MediaPlayer that the playback state has changed
+
+ https://bugs.webkit.org/show_bug.cgi?id=56837
+
+ * public/WebMediaPlayerClient.h:
+ * src/WebMediaPlayerClientImpl.cpp:
+ (WebKit::WebMediaPlayerClientImpl::playbackStateChanged):
+ * src/WebMediaPlayerClientImpl.h:
+
+2011-03-23 John Abd-El-Malek <jam@chromium.org>
+
+ Reviewed by Tony Chang.
+
+ [chromium] Get rid of WEB_TEXT_CHECKING_RESULT_IS_A_STRUCT since it&apos;s not needed anymore
+ https://bugs.webkit.org/show_bug.cgi?id=56955
+
+ * DEPS:
+ * public/WebTextCheckingResult.h:
+
+2011-03-24 Bill Budge <bbudge@chromium.org>
+
+ Reviewed by Eric Seidel.
+
+ Change a forward declaration of WebURLLoaderOptions to struct to prevent a build break in Chromium.
+ https://bugs.webkit.org/show_bug.cgi?id=57064
+
+ No tests. Exposes no new functionality.
+
+ * public/WebFrame.h:
+
+2011-03-24 Andy Estes <aestes@apple.com>
+
+ Fix the chromium build.
+
+ * src/FrameLoaderClientImpl.cpp:
+ (WebKit::FrameLoaderClientImpl::objectContentType):
+
+2011-03-24 Andy Estes <aestes@apple.com>
+
+ Reviewed by Darin Adler.
+
+ REGRESSION (r70748): latest nightly builds kills AC_QuickTime.js
+ https://bugs.webkit.org/show_bug.cgi?id=49016
+
+ Update objectContentType() implementation to handle the
+ shouldPreferPlugInsForImages flag.
+
+ * src/FrameLoaderClientImpl.cpp:
+ (WebKit::FrameLoaderClientImpl::objectContentType):
+ * src/FrameLoaderClientImpl.h:
+
+2011-03-24 Bill Budge <bbudge@chromium.org>
+
+ Reviewed by Dmitry Titov.
+
+ Add an overloaded WebFrame::createAssociatedURLLoader method that takes WebURLLoaderOptions, so clients can specify CORS options to allow cross-origin requests.
+ https://bugs.webkit.org/show_bug.cgi?id=56885
+
+ No new tests. Exposes no new functionality.
+
+ * public/WebFrame.h:
+ * src/WebFrameImpl.cpp:
+ (WebKit::WebFrameImpl::createAssociatedURLLoader):
+ * src/WebFrameImpl.h:
+
+2011-03-24 Sam Weinig <sam@webkit.org>
+
+ Reviewed by Anders Carlsson.
+
+ Remove legacy version of findPlainText.
+ https://bugs.webkit.org/show_bug.cgi?id=57056
+
+ * src/WebFrameImpl.cpp:
+ (WebKit::WebFrameImpl::scopeStringMatches):
+ Replace use of legacy findPlainText with a version that
+ takes an options parameter.
+
+2011-03-24 Nat Duca <nduca@chromium.org>
+
+ Reviewed by Kenneth Russell.
+
+ [chromium] Add traceEvents to compositor
+ https://bugs.webkit.org/show_bug.cgi?id=56965
+
+ * src/WebViewImpl.cpp:
+ (WebKit::WebViewImpl::composite):
+
+2011-03-24 Dominic Mazzoni <dmazzoni@google.com>
+
+ Reviewed by Dimitri Glazkov.
+
+ Add accessibilityObject accessor to WebDocument (needed for
+ building an accessibility tree that includes iframes).
+ https://bugs.webkit.org/show_bug.cgi?id=56984
+
+ * public/WebDocument.h:
+ * src/WebDocument.cpp:
+ (WebKit::WebDocument::accessibilityObject):
+
+2011-03-24 Ilya Sherman <isherman@chromium.org>
+
+ Reviewed by Dimitri Glazkov.
+
+ Expose Node::isFocusable() in the Chromium WebKit API
+ In service of https://code.google.com/p/chromium/issues/detail?id=72918
+ https://bugs.webkit.org/show_bug.cgi?id=56809
+
+ * public/WebNode.h:
+ * src/WebNode.cpp:
+ (WebKit::WebNode::isFocusable):
+
+2011-03-24 Pavel Feldman <pfeldman@chromium.org>
+
+ Not reviewed: fix chromium compilation.
+
+ * public/WebDevToolsAgent.h:
+
+2011-03-24 Pavel Feldman <pfeldman@chromium.org>
+
+ Reviewed by Yury Semikhatsky.
+
+ Web Inspector: brush up Network agent API.
+ https://bugs.webkit.org/show_bug.cgi?id=57001
+
+ * public/WebDevToolsAgent.h:
+ * src/WebDevToolsAgentImpl.cpp:
+ (WebKit::WebDevToolsAgentImpl::identifierForInitialRequest):
+ (WebKit::WebDevToolsAgentImpl::willSendRequest):
+ * src/WebDevToolsAgentImpl.h:
+
+2011-03-24 Noel Gordon <noel.gordon@gmail.com>
+
+ Reviewed by Ojan Vafai.
+
+ [chromium] WebBindings::getRangeImpl() should NULL check its NPObject argument
+ https://bugs.webkit.org/show_bug.cgi?id=56996
+
+ * src/WebBindings.cpp:
+ (WebKit::getRangeImpl):
+
+2011-03-23 Noel Gordon <noel.gordon@gmail.com>
+
+ Reviewed by Ojan Vafai.
+
+ [chromium] WebBindings{.h,.cpp}: should use consistent argument naming
+ https://bugs.webkit.org/show_bug.cgi?id=56898
+
+ Address FIXME I noted/added in r81676. Wanted to just copy/paste the checking
+ code from elsewhere in the file, but inconsistent argument naming made it more
+ difficult than it need be, so first step: use consistent naming.
+
+ * public/WebBindings.h:
+ * src/WebBindings.cpp:
+ (WebKit::WebBindings::construct):
+ (WebKit::WebBindings::enumerate):
+ (WebKit::WebBindings::evaluate):
+ (WebKit::WebBindings::evaluateHelper):
+ (WebKit::WebBindings::getProperty):
+ (WebKit::WebBindings::hasMethod):
+ (WebKit::WebBindings::hasProperty):
+ (WebKit::WebBindings::invoke):
+ (WebKit::WebBindings::invokeDefault):
+ (WebKit::WebBindings::releaseObject):
+ (WebKit::WebBindings::removeProperty):
+ (WebKit::WebBindings::retainObject):
+ (WebKit::WebBindings::setException):
+ (WebKit::WebBindings::setProperty):
+ (WebKit::WebBindings::unregisterObject):
+ (WebKit::WebBindings::extractIdentifierData):
+ (WebKit::getRangeImpl):
+ (WebKit::getElementImpl):
+ (WebKit::makeIntArrayImpl):
+ (WebKit::WebBindings::getRange):
+ (WebKit::WebBindings::makeIntArray):
+
+2011-03-23 Jay Civelli <jcivelli@chromium.org>
+
+ Reviewed by David Levin.
+
+ Relanding:
+ Moving the method that is used to retrieve all the resources in
+ a page from the Chromium code (dom_operations.cc) to WebKit.
+ https://bugs.webkit.org/show_bug.cgi?id=55859
+
+ * WebKit.gyp:
+ * public/WebPageSerializer.h:
+ * public/WebURL.h:
+ (WebKit::operator==):
+ (WebKit::operator!=):
+ * public/WebVector.h:
+ (WebKit::WebVector::contains):
+ * src/WebDataSourceImpl.cpp:
+ (WebKit::WebDataSourceImpl::WebDataSourceImpl):
+ * src/WebPageSerializer.cpp:
+ (WebCore::getSubResourceURLFromElement):
+ (WebCore::retrieveResourcesForElement):
+ (WebCore::retrieveResourcesForFrame):
+ (WebKit::WebPageSerializer::retrieveAllResources):
+ * tests/WebFrameTest.cpp:
+ * tests/WebPageSerializerTest.cpp: Added.
+ * tests/data/pageserialization/awesome.png: Added.
+ * tests/data/pageserialization/embed_iframe.html: Added.
+ * tests/data/pageserialization/object_iframe.html: Added.
+ * tests/data/pageserialization/simple_iframe.html: Added.
+ * tests/data/pageserialization/simple_page.html: Added.
+ * tests/data/pageserialization/top_frame.html: Added.
+
+2011-03-23 Kenneth Russell <kbr@google.com>
+
+ Rolled forward Chromium DEPS again to fix DumpRenderTree build
+ failure caused by r81821.
+
+ * DEPS:
+
+2011-03-23 Kenneth Russell <kbr@google.com>
+
+ Rolled forward Chromium DEPS to fix build breakage after r81821.
+
+ * DEPS:
+
+2011-03-23 Kenneth Russell <kbr@google.com>
+
+ Reviewed by James Robinson.
+
+ [chromium] WebGLRenderingContext and other DOMWindow properties should remain if WebGL is disabled
+ https://bugs.webkit.org/show_bug.cgi?id=56947
+
+ Removed the WebRuntimeFeatures setting for WebGL. WebGL support is
+ now controlled exclusively through the page's Settings.
+
+ * public/WebRuntimeFeatures.h:
+ * src/WebRuntimeFeatures.cpp:
+
+2011-03-23 Chris Rogers <crogers@google.com>
+
+ Reviewed by Kenneth Russell.
+
+ Add API to retrieve the audio hardware sample-rate
+ https://bugs.webkit.org/show_bug.cgi?id=56882
+
+ * public/WebAudioDevice.h:
+ * public/WebKitClient.h:
+ (WebKit::WebKitClient::audioHardwareSampleRate):
+ * src/AudioDestinationChromium.cpp:
+ (WebCore::AudioDestination::hardwareSampleRate):
+
+2011-03-23 Cris Neckar <cdn@chromium.org>
+
+ Reviewed by Eric Seidel.
+
+ Add refptr for widget. Mutations can happen within the event handler.
+ https://bugs.webkit.org/show_bug.cgi?id=56774
+
+ * src/WebPluginContainerImpl.cpp:
+ (WebKit::WebPluginContainerImpl::handleEvent):
+
+2011-03-23 Viet-Trung Luu <viettrungluu@chromium.org>
+
+ Reviewed by Tony Chang.
+
+ [chromium] Add FormatPlainText to WebClipboard::Format enumeration.
+ https://bugs.webkit.org/show_bug.cgi?id=56868
+
+ Chromium's WebClipboard::isFormatAvailable() will be correspondingly
+ extended.
+
+ * public/WebClipboard.h:
+ * src/AssertMatchingEnums.cpp:
+
+2011-03-23 Yury Semikhatsky <yurys@chromium.org>
+
+ Reviewed by Pavel Feldman.
+
+ [Chromium] Web Inspector: Remove DebuggerScript.js from Chromium resource bundle.
+ https://bugs.webkit.org/show_bug.cgi?id=56916
+
+ * DEPS: bump up Chromium dependency to the revision where no references to the DebuggerScript.js resource are left.
+ * WebKit.grd:
+
+2011-03-23 Yury Semikhatsky <yurys@chromium.org>
+
+ Reviewed by Pavel Feldman.
+
+ [Chromium] Web Inspector: remove inspectNode method from WebDevToolsAgent
+ https://bugs.webkit.org/show_bug.cgi?id=56926
+
+ * public/WebDevToolsAgent.h:
+ * src/WebDevToolsAgentImpl.cpp:
+ * src/WebDevToolsAgentImpl.h:
+
+2011-03-23 Sheriff Bot <webkit.review.bot@gmail.com>
+
+ Unreviewed, rolling out r81686.
+ http://trac.webkit.org/changeset/81686
+ https://bugs.webkit.org/show_bug.cgi?id=56914
+
+ Breaks webkit_tests in Chromium again. (Requested by pfeldman
+ on #webkit).
+
+ * WebKit.gyp:
+ * public/WebPageSerializer.h:
+ * public/WebURL.h:
+ * public/WebVector.h:
+ (WebKit::WebVector::operator[]):
+ * src/WebDataSourceImpl.cpp:
+ (WebKit::WebDataSourceImpl::WebDataSourceImpl):
+ * src/WebPageSerializer.cpp:
+ * tests/WebFrameTest.cpp:
+ * tests/WebPageSerializerTest.cpp: Removed.
+ * tests/data/pageserialization/awesome.png: Removed.
+ * tests/data/pageserialization/embed_iframe.html: Removed.
+ * tests/data/pageserialization/object_iframe.html: Removed.
+ * tests/data/pageserialization/simple_iframe.html: Removed.
+ * tests/data/pageserialization/simple_page.html: Removed.
+ * tests/data/pageserialization/top_frame.html: Removed.
+
+2011-03-22 Yury Semikhatsky <yurys@chromium.org>
+
+ Reviewed by Pavel Feldman.
+
+ [V8] Web Inspector: compile DebuggerScript.js into DebuggerScriptSource.h
+ https://bugs.webkit.org/show_bug.cgi?id=56843
+
+ * public/WebDevToolsAgentClient.h: the script source is now compiled along with the inspector code.
+ * src/WebDevToolsAgentImpl.cpp:
+ (WebKit::WebDevToolsAgentImpl::attach):
+
+2011-03-22 Yury Semikhatsky <yurys@chromium.org>
+
+ Reviewed by Pavel Feldman.
+
+ [Chromium] Web Inspector: remove obsolete methods from WebDevToolsAgentClient.h
+ https://bugs.webkit.org/show_bug.cgi?id=56897
+
+ * public/WebDevToolsAgentClient.h:
+
+2011-03-22 Noel Gordon <noel.gordon@gmail.com>
+
+ Reviewed by Tony Chang.
+
+ [chromium] Remove identity from dragTargetDragEnter() function signature
+ https://bugs.webkit.org/show_bug.cgi?id=56875
+
+ First part of 3-sided patch. Add new function signature sans identity.
+
+ * public/WebView.h:
+ * src/WebViewImpl.cpp:
+ (WebKit::WebViewImpl::dragTargetDragEnter):
+ * src/WebViewImpl.h:
+
+2011-03-22 John Bauman <jbauman@chromium.org>
+
+ Reviewed by Kenneth Russell.
+
+ Add support for preserveDrawingBuffer context creation attribute
+ https://bugs.webkit.org/show_bug.cgi?id=56431
+
+ * src/GraphicsContext3DChromium.cpp:
+ (WebCore::GraphicsContext3DInternal::markContextChanged):
+ (WebCore::GraphicsContext3DInternal::markLayerComposited):
+ (WebCore::GraphicsContext3DInternal::layerComposited):
+ (WebCore::GraphicsContext3D::layerComposited):
+ * src/GraphicsContext3DInternal.h:
+
+2011-03-22 John Abd-El-Malek <jam@chromium.org>
+
+ Reviewed by Tony Chang.
+
+ [chromium] Make WebTextCheckingResult&apos;s members be public in preparation for converting it to a struct
+ https://bugs.webkit.org/show_bug.cgi?id=56857
+
+ * DEPS:
+ * public/WebTextCheckingResult.h:
+
+2011-03-22 Jay Civelli <jcivelli@chromium.org>
+
+ Reviewed by David Levin.
+
+ Relanding:
+ Moving the method that is used to retrieve all the resources in
+ a page from the Chromium code (dom_operations.cc) to WebKit.
+ https://bugs.webkit.org/show_bug.cgi?id=55859
+
+
+ * WebKit.gyp:
+ * public/WebPageSerializer.h:
+ * public/WebURL.h:
+ (WebKit::operator==):
+ (WebKit::operator!=):
+ * public/WebVector.h:
+ (WebKit::WebVector::contains):
+ * src/WebDataSourceImpl.cpp:
+ (WebKit::WebDataSourceImpl::WebDataSourceImpl):
+ * src/WebPageSerializer.cpp:
+ (WebCore::getSubResourceURLFromElement):
+ (WebCore::retrieveResourcesForElement):
+ (WebCore::retrieveResourcesForFrame):
+ (WebKit::WebPageSerializer::retrieveAllResources):
+ * tests/WebFrameTest.cpp:
+ * tests/WebPageSerializerTest.cpp: Added.
+ * tests/data/pageserialization/awesome.png: Added.
+ * tests/data/pageserialization/embed_iframe.html: Added.
+ * tests/data/pageserialization/object_iframe.html: Added.
+ * tests/data/pageserialization/simple_iframe.html: Added.
+ * tests/data/pageserialization/simple_page.html: Added.
+ * tests/data/pageserialization/top_frame.html: Added.
+
+2011-03-22 Noel Gordon <noel.gordon@gmail.com>
+
+ Reviewed by Tony Chang.
+
+ [chromium] Remove Gears from Chromium WebKit
+ https://bugs.webkit.org/show_bug.cgi?id=56808
+
+ Gears has been removed from Chromium 12. Remove Gears drag drop support
+ from WebKit. That work lead to http://webkit.org/b/25916, a proposal to
+ add native file drag drop, and its subsequent standardization in HTML5.
+
+ * public/WebBindings.h:
+ * public/WebView.h:
+ * src/WebBindings.cpp:
+ (WebKit::getRangeImpl): FIXME note added.
+ * src/WebViewImpl.cpp:
+ (WebKit::WebViewImpl::WebViewImpl):
+ (WebKit::WebViewImpl::dragTargetDragEnter):
+ (WebKit::WebViewImpl::dragTargetDragLeave):
+ (WebKit::WebViewImpl::dragTargetDrop):
+ (WebKit::WebViewImpl::dragTargetDragEnterOrOver):
+ * src/WebViewImpl.h:
+
+2011-03-21 Adam Klein <adamk@chromium.org>
+
+ Reviewed by David Levin.
+
+ [fileapi] Add URI resolution support to WorkerContext
+ https://bugs.webkit.org/show_bug.cgi?id=55644
+
+ Pass "create" bool through to allow opening
+ a filesystem without allowing creation.
+
+ * src/LocalFileSystemChromium.cpp:
+ (WebCore::LocalFileSystem::readFileSystem):
+ (WebCore::LocalFileSystem::requestFileSystem):
+ * src/WebWorkerBase.cpp:
+ (WebKit::WebWorkerBase::openFileSystemForWorker):
+ * src/WebWorkerBase.h:
+ * src/WorkerFileSystemCallbacksBridge.cpp:
+ (WebKit::WorkerFileSystemCallbacksBridge::postOpenFileSystemToMainThread):
+ (WebKit::WorkerFileSystemCallbacksBridge::openFileSystemOnMainThread):
+ * src/WorkerFileSystemCallbacksBridge.h:
+
+2011-03-21 Ilya Sherman <isherman@chromium.org>
+
+ Reviewed by James Robinson.
+
+ Remove WebInputElement::isEnabledFormControl() from Chromium WebKit API
+ Clients should instead call into WebFormControlElement::isEnabled().
+ https://bugs.webkit.org/show_bug.cgi?id=56364
+
+ * public/WebInputElement.h: Removed isEnabledFormControl().
+ * src/WebInputElement.cpp: Removed isEnabledFormControl().
+
+2011-03-21 Robert Kroeger <rjkroege@chromium.org>
+
+ Reviewed by Antonio Gomes.
+
+ Flag to enable a platform specific GestureReocognizer framework in Chromium.
+
+ https://bugs.webkit.org/show_bug.cgi?id=49345
+
+ * features.gypi:
+
+2011-03-21 Tony Chang <tony@chromium.org>
+
+ Reviewed by Pavel Feldman.
+
+ [chromium] remove devtools_html's dependency on WebKit.gypi
+ https://bugs.webkit.org/show_bug.cgi?id=56661
+
+ We want to depend on the values in the gypi file, not the gypi file
+ itself. Actually, if someone edits a gypi file, s/he should re-run
+ gyp to pick up the new dependencies.
+
+ It turns out that this doesn't matter much for this target anymore
+ since we pull the .js dependencies from the inspector html file.
+
+ * WebKit.gyp: cleanup dependencies
+ * scripts/generate_devtools_html.py: remove unused param
+
+2011-03-21 Sheriff Bot <webkit.review.bot@gmail.com>
+
+ Unreviewed, rolling out r81377.
+ http://trac.webkit.org/changeset/81377
+ https://bugs.webkit.org/show_bug.cgi?id=56765
+
+ WebPageSerializerTest.MultipleFrames is broken (Requested by
+ simonjam on #webkit).
+
+ * WebKit.gyp:
+ * public/WebPageSerializer.h:
+ * public/WebURL.h:
+ * public/WebVector.h:
+ (WebKit::WebVector::operator[]):
+ * src/WebDataSourceImpl.cpp:
+ (WebKit::WebDataSourceImpl::WebDataSourceImpl):
+ * src/WebPageSerializer.cpp:
+ * tests/WebFrameTest.cpp:
+ * tests/WebPageSerializerTest.cpp: Removed.
+ * tests/data/pageserialization/awesome.png: Removed.
+ * tests/data/pageserialization/embed_iframe.html: Removed.
+ * tests/data/pageserialization/object_iframe.html: Removed.
+ * tests/data/pageserialization/simple_iframe.html: Removed.
+ * tests/data/pageserialization/simple_page.html: Removed.
+ * tests/data/pageserialization/top_frame.html: Removed.
+
+2011-03-21 Daniel Sievers <sievers@google.com>
+
+ Reviewed by Simon Fraser.
+
+ [Chromium] Make RenderAsTextBehavior and LayerTreeAsTextBehavior tweakable from the DumpRenderTree commandline
+ https://bugs.webkit.org/show_bug.cgi?id=56139
+
+ * public/WebFrame.h:
+ * src/WebFrameImpl.cpp:
+ (WebKit::WebFrameImpl::renderTreeAsText):
+ (WebKit::WebFrameImpl::layerTreeAsText):
+ * src/WebFrameImpl.h:
+
+2011-03-21 Eric Uhrhane <ericu@chromium.org>
+
+ Reviewed by David Levin.
+
+ [fileapi/chromium] Fetch platform path using GetMetadata before creating File from FileEntry*
+ https://bugs.webkit.org/show_bug.cgi?id=56704
+
+ * src/WebFileSystemCallbacksImpl.cpp:
+ (WebFileSystemCallbacksImpl::didReadMetadata)
+ Pass new platformPath member through.
+
+ * src/WorkerFileSystemCallbacksBridge.cpp:
+ (CrossThreadCopierBase)
+ Copy new platformPath member.
+
+ * public/WebFileInfo.h:
+ (struct WebFileInfo)
+ Add new platformPath member.
+
+2011-03-21 Leandro Gracia Gil <leandrogracia@chromium.org>
+
+ Reviewed by Steve Block.
+
+ Media Stream API patch 0: adding compilation guards.
+ https://bugs.webkit.org/show_bug.cgi?id=56458
+
+ Enabling the feature by default for chromium builds.
+
+ * features.gypi:
+
+2011-03-21 Vsevolod Vlasov <vsevik@chromium.org>
+
+ Reviewed by Pavel Feldman.
+
+ Web Inspector: Inspector does not always show correct transfer size (for compressed/chunked data)
+ https://bugs.webkit.org/show_bug.cgi?id=56691
+
+ Added transfer size support in inspector for compressed data.
+
+ * src/ResourceHandle.cpp:
+ (WebCore::ResourceHandleInternal::didReceiveData):
+ * src/WebDevToolsAgentImpl.cpp:
+ (WebKit::WebDevToolsAgentImpl::didReceiveData):
+
+2011-03-20 Bill Budge <bbudge@chromium.org>
+
+ Reviewed by Adam Barth.
+
+ Rename ThreadSafeShared to ThreadSafeRefCounted
+ https://bugs.webkit.org/show_bug.cgi?id=56714
+
+ No new tests. Exposes no new functionality.
+
+ * src/PlatformMessagePortChannel.h:
+ * src/WebWorkerBase.cpp:
+ * src/WorkerFileSystemCallbacksBridge.h:
+ * src/WorkerFileWriterCallbacksBridge.h:
+
+2011-03-18 Tony Chang <tony@chromium.org>
+
+ Reviewed by Eric Seidel.
+
+ [chromium] make devtool concatenation targets conditional based on debug_devtools
+ https://bugs.webkit.org/show_bug.cgi?id=56667
+
+ We don't want to run these targets when debug_devtools=1 because it
+ will overwrite the devtools.js and devtools.css files copied by
+ inspector_resources. On Linux, this triggers a warning because
+ there are two commands that target the same output file when
+ debug_devtools=1.
+
+ I also removed the 'sources' lines since I don't think they do
+ anything for actions.
+
+ * WebKit.gyp:
+
+2011-03-17 Alexey Marinichev <amarinichev@chromium.org>
+
+ Reviewed by Kenneth Russell.
+
+ chromium: uninitialized field in WebViewImpl
+ https://bugs.webkit.org/show_bug.cgi?id=56620
+
+ * src/WebViewImpl.cpp:
+ (WebKit::WebViewImpl::WebViewImpl):
+
+2011-03-17 Adrienne Walker <enne@google.com>
+
+ Reviewed by James Robinson.
+
+ [chromium] Turn off accelerated compositing for RTL style pages.
+ https://bugs.webkit.org/show_bug.cgi?id=56585
+
+ * src/WebViewImpl.cpp:
+ (WebKit::WebViewImpl::layout):
+ (WebKit::WebViewImpl::pageHasRTLStyle):
+ (WebKit::WebViewImpl::setRootGraphicsLayer):
+ * src/WebViewImpl.h:
+
+2011-03-17 Jay Civelli <jcivelli@chromium.org>
+
+ Reviewed by David Levin.
+
+ Moving the method that is used to retrieve all the resources in
+ a page from the Chromium code (dom_operations.cc) to WebKit.
+ https://bugs.webkit.org/show_bug.cgi?id=55859
+
+ * WebKit.gyp:
+ * public/WebPageSerializer.h:
+ * public/WebURL.h:
+ (WebKit::operator==):
+ (WebKit::operator!=):
+ * public/WebVector.h:
+ (WebKit::WebVector::contains):
+ * src/WebDataSourceImpl.cpp:
+ (WebKit::WebDataSourceImpl::WebDataSourceImpl):
+ * src/WebPageSerializer.cpp:
+ (WebCore::getSubResourceURLFromElement):
+ (WebCore::retrieveResourcesForElement):
+ (WebCore::retrieveResourcesForFrame):
+ (WebKit::WebPageSerializer::retrieveAllResources):
+ * tests/WebFrameTest.cpp:
+ * tests/WebPageSerializerTest.cpp: Added.
+ * tests/data/pageserialization: Added.
+ * tests/data/pageserialization/awesome.png: Added.
+ * tests/data/pageserialization/embed_iframe.html: Added.
+ * tests/data/pageserialization/object_iframe.html: Added.
+ * tests/data/pageserialization/simple_iframe.html: Added.
+ * tests/data/pageserialization/simple_page.html: Added.
+ * tests/data/pageserialization/top_frame.html: Added.
+
+2011-03-17 Tony Chang <tony@chromium.org>
+
+ Reviewed by Pavel Feldman.
+
+ [chromium] don't concatenate devtools files when debug_devtools=1
+ https://bugs.webkit.org/show_bug.cgi?id=56572
+
+ * WebKit.gyp:
+
+2011-03-17 Tony Chang <tony@chromium.org>
+
+ Reviewed by Eric Seidel.
+
+ [chromium] minor cleanup of devtools_files variable in WebKit.gyp
+ https://bugs.webkit.org/show_bug.cgi?id=56503
+
+ * WebKit.gyp: Moving duplicate variables out of a condition.
+
+2011-03-16 Adam Barth <abarth@webkit.org>
+
+ Reviewed by James Robinson.
+
+ Remove USE(BUILTIN_UTF8_CODEC)
+ https://bugs.webkit.org/show_bug.cgi?id=56508
+
+ * features.gypi:
+
+2011-03-16 Tony Chang <tony@chromium.org>
+
+ Reviewed by Adam Barth.
+
+ [chromium] include inspector gif files in the list of resources
+ https://bugs.webkit.org/show_bug.cgi?id=56504
+
+ * scripts/generate_devtools_grd.py:
+
+2011-03-16 Bill Budge <bbudge@chromium.org>
+
+ Reviewed by David Levin.
+
+ AssociatedURLLoader does not support Cross Origin Requests
+ https://bugs.webkit.org/show_bug.cgi?id=53925
+
+ No new tests. Exposes no new functionality.
+
+ * public/WebURLLoader.h:
+ (WebKit::WebURLLoaderOptions::WebURLLoaderOptions):
+ * src/AssociatedURLLoader.cpp:
+ (WebKit::AssociatedURLLoader::ClientAdapter::isDocumentThreadableLoaderClient):
+ (WebKit::AssociatedURLLoader::ClientAdapter::clearClient):
+ (WebKit::AssociatedURLLoader::ClientAdapter::create):
+ (WebKit::AssociatedURLLoader::ClientAdapter::ClientAdapter):
+ (WebKit::AssociatedURLLoader::ClientAdapter::willSendRequest):
+ (WebKit::AssociatedURLLoader::ClientAdapter::didSendData):
+ (WebKit::AssociatedURLLoader::ClientAdapter::didReceiveResponse):
+ (WebKit::AssociatedURLLoader::ClientAdapter::didReceiveData):
+ (WebKit::AssociatedURLLoader::ClientAdapter::didReceiveCachedMetadata):
+ (WebKit::AssociatedURLLoader::ClientAdapter::didFinishLoading):
+ (WebKit::AssociatedURLLoader::ClientAdapter::didFail):
+ (WebKit::AssociatedURLLoader::AssociatedURLLoader):
+ (WebKit::AssociatedURLLoader::~AssociatedURLLoader):
+ (WebKit::AssociatedURLLoader::loadSynchronously):
+ (WebKit::AssociatedURLLoader::loadAsynchronously):
+ (WebKit::AssociatedURLLoader::cancel):
+ (WebKit::AssociatedURLLoader::setDefersLoading):
+ * src/AssociatedURLLoader.h:
+
+2011-03-16 Adam Barth <abarth@webkit.org>
+
+ Roll Chromium DEPS.
+
+ * DEPS:
+
+2011-03-16 Daniel Sievers <sievers@google.com>
+
+ Reviewed by James Robinson.
+
+ Add setting to always force compositing mode
+ https://bugs.webkit.org/show_bug.cgi?id=56156
+
+ * public/WebSettings.h:
+ * src/WebSettingsImpl.cpp:
+ (WebKit::WebSettingsImpl::setForceCompositingMode):
+ * src/WebSettingsImpl.h:
+
+2011-03-16 Sreeram Ramachandran <sreeram@google.com>
+
+ Reviewed by Dimitri Glazkov.
+
+ Revert of r80451. Decided to do this in WebCore instead.
+ https://bugs.webkit.org/show_bug.cgi?id=55844
+
+ * public/WebFrame.h:
+ * src/WebFrameImpl.cpp:
+ * src/WebFrameImpl.h:
+
+2011-03-15 Ilya Sherman <isherman@chromium.org>
+
+ Reviewed by Darin Fisher.
+
+ Move isReadOnly() from WebInputElement to WebFormControlElement
+ https://bugs.webkit.org/show_bug.cgi?id=55760
+
+ * public/WebFormControlElement.h:
+ * public/WebInputElement.h:
+ * src/WebFormControlElement.cpp:
+ (WebKit::WebFormControlElement::isReadOnly):
+ * src/WebInputElement.cpp:
+
+2011-03-15 John Bauman <jbauman@chromium.org>
+
+ Reviewed by Kenneth Russell.
+
+ Non-premultiplied-alpha canvas attribute is ignore for toDataURL, drawImage, texImage2D
+ https://bugs.webkit.org/show_bug.cgi?id=56238
+
+ Add support for reading a webgl context into an ImageData.
+
+ * src/GraphicsContext3DChromium.cpp:
+ (WebCore::GraphicsContext3DInternal::paintRenderingResultsToCanvas):
+ (WebCore::GraphicsContext3DInternal::paintRenderingResultsToImageData):
+ * src/GraphicsContext3DInternal.h:
+
+2011-03-15 Sheriff Bot <webkit.review.bot@gmail.com>
+
+ Unreviewed, rolling out r81144.
+ http://trac.webkit.org/changeset/81144
+ https://bugs.webkit.org/show_bug.cgi?id=56432
+
+ It broke the ui test
+ NPAPITesterBase.GetURLRedirectNotification. (Requested by
+ dave_levin on #webkit).
+
+ * public/WebURLLoader.h:
+ * src/AssociatedURLLoader.cpp:
+ (WebKit::AssociatedURLLoader::AssociatedURLLoader):
+ (WebKit::AssociatedURLLoader::~AssociatedURLLoader):
+ (WebKit::AssociatedURLLoader::loadSynchronously):
+ (WebKit::AssociatedURLLoader::loadAsynchronously):
+ (WebKit::AssociatedURLLoader::cancel):
+ (WebKit::AssociatedURLLoader::setDefersLoading):
+ (WebKit::AssociatedURLLoader::prepareRequest):
+ (WebKit::AssociatedURLLoader::willSendRequest):
+ (WebKit::AssociatedURLLoader::didSendData):
+ (WebKit::AssociatedURLLoader::didReceiveResponse):
+ (WebKit::AssociatedURLLoader::didDownloadData):
+ (WebKit::AssociatedURLLoader::didReceiveData):
+ (WebKit::AssociatedURLLoader::didReceiveCachedMetadata):
+ (WebKit::AssociatedURLLoader::didFinishLoading):
+ (WebKit::AssociatedURLLoader::didFail):
+ * src/AssociatedURLLoader.h:
+
+2011-03-15 Tony Chang <tony@chromium.org>
+
+ Reviewed by Adam Barth.
+
+ pngcrush images used by inspector
+ https://bugs.webkit.org/show_bug.cgi?id=56426
+
+ This saves 120k in WebCore and 8k in WebKit/chromium. I ran
+ pngcrush -brute, so none of the meta data (ancillary chunks)
+ are modified.
+
+ * src/js/Images/segmentChromium.png:
+ * src/js/Images/segmentHoverChromium.png:
+ * src/js/Images/segmentHoverEndChromium.png:
+ * src/js/Images/segmentSelectedChromium.png:
+ * src/js/Images/segmentSelectedEndChromium.png:
+ * src/js/Images/statusbarBackgroundChromium.png:
+ * src/js/Images/statusbarBottomBackgroundChromium.png:
+ * src/js/Images/statusbarMenuButtonChromium.png:
+ * src/js/Images/statusbarMenuButtonSelectedChromium.png:
+
+2011-03-15 Michael Nordman <michaeln@google.com>
+
+ Reviewed by Alexey Proskuryakov.
+
+ When initiating a main resource load, let the application cache
+ know which frame the load is being conducted for. This patch doesn't
+ resolve the following bug, but the additional WebFrame parameter
+ should provide the chromium port with enough info to pick the
+ "most appropiate" cached resource.
+ https://bugs.webkit.org/show_bug.cgi?id=55505
+
+ Also fixup a stale comment in stopLoadingInFrame.
+
+ * public/WebApplicationCacheHost.h:
+ (WebKit::WebApplicationCacheHost::willStartMainResourceRequest):
+ * src/ApplicationCacheHost.cpp:
+ (WebCore::ApplicationCacheHost::maybeLoadMainResource):
+ (WebCore::ApplicationCacheHost::stopLoadingInFrame):
+
+2011-03-15 Tony Chang <tony@chromium.org>
+
+ Reviewed by Adam Barth.
+
+ [chromium] add a build target to create a grd file with devtool resources
+ https://bugs.webkit.org/show_bug.cgi?id=56335
+
+ Reland with a fix to avoid really long command lines on Windows.
+
+ * WebKit.gyp:
+ * scripts/generate_devtools_grd.py: Added.
+
+2011-03-15 Alok priyadarshi <alokp@chromium.org>
+
+ Reviewed by James Robinson.
+
+ Valgrind error due to uninitialized PluginLayerChromium::m_textureId
+ https://bugs.webkit.org/show_bug.cgi?id=56390
+
+ * src/WebPluginContainerImpl.cpp:
+ (WebKit::WebPluginContainerImpl::setBackingTextureId):
+ (WebKit::WebPluginContainerImpl::platformLayer):
+
+2011-03-15 Brett Wilson <brettw@chromium.org>
+
+ Reviewed by Adam Barth.
+
+ Make WebConsoleMessage properly respect the log level.
+ https://bugs.webkit.org/show_bug.cgi?id=56386
+
+ * public/WebConsoleMessage.h:
+ (WebKit::WebConsoleMessage::WebConsoleMessage):
+
+2011-03-15 Tony Chang <tony@chromium.org>
+
+ Revert r81147 and r81149, broke the chromium win build.
+
+ * WebKit.gyp:
+ * scripts/generate_devtools_grd.py: Removed.
+
+2011-03-15 Tony Chang <tony@chromium.org>
+
+ Fix chromium build using python 2.5 (with statement).
+
+ * scripts/generate_devtools_grd.py:
+
+2011-03-15 Tony Chang <tony@chromium.org>
+
+ Reviewed by Adam Barth.
+
+ [chromium] add a build target to create a grd file with devtool resources
+ https://bugs.webkit.org/show_bug.cgi?id=56335
+
+ This is the webkit side of the fix for
+ http://code.google.com/p/chromium/issues/detail?id=35793
+
+ * WebKit.gyp:
+ * scripts/generate_devtools_grd.py: Added.
+
+2011-03-15 Bill Budge <bbudge@chromium.org>
+
+ Reviewed by David Levin.
+
+ AssociatedURLLoader does not support Cross Origin Requests
+ https://bugs.webkit.org/show_bug.cgi?id=53925
+
+ No new tests. No new functionality exposed.
+
+ * public/WebURLLoader.h:
+ (WebKit::WebURLLoaderOptions::WebURLLoaderOptions):
+ * src/AssociatedURLLoader.cpp:
+ (WebKit::AssociatedURLLoader::ClientAdapter::clearClient):
+ (WebKit::AssociatedURLLoader::ClientAdapter::create):
+ (WebKit::AssociatedURLLoader::ClientAdapter::ClientAdapter):
+ (WebKit::AssociatedURLLoader::ClientAdapter::willSendRequest):
+ (WebKit::AssociatedURLLoader::ClientAdapter::didSendData):
+ (WebKit::AssociatedURLLoader::ClientAdapter::didReceiveResponse):
+ (WebKit::AssociatedURLLoader::ClientAdapter::didReceiveData):
+ (WebKit::AssociatedURLLoader::ClientAdapter::didReceiveCachedMetadata):
+ (WebKit::AssociatedURLLoader::ClientAdapter::didFinishLoading):
+ (WebKit::AssociatedURLLoader::ClientAdapter::didFail):
+ (WebKit::AssociatedURLLoader::AssociatedURLLoader):
+ (WebKit::AssociatedURLLoader::~AssociatedURLLoader):
+ (WebKit::AssociatedURLLoader::loadSynchronously):
+ (WebKit::AssociatedURLLoader::loadAsynchronously):
+ (WebKit::AssociatedURLLoader::cancel):
+ (WebKit::AssociatedURLLoader::setDefersLoading):
+ * src/AssociatedURLLoader.h:
+
+2011-03-15 Alok priyadarshi <alokp@chromium.org>
+
+ Reviewed by James Robinson.
+
+ Remove unnecessary function WebPlugin::getBackingTextureId
+ https://bugs.webkit.org/show_bug.cgi?id=56122
+
+ It will be tested by Pepper2D and Pepper3D layout/smoke tests
+ on the Chromium side.
+
+ * public/WebPlugin.h:
+ * src/WebPluginContainerImpl.cpp:
+ (WebKit::WebPluginContainerImpl::platformLayer):
+
+2011-03-15 Mikhail Naganov <mnaganov@chromium.org>
+
+ Unreviewed. Update chromium deps to pick up the latest V8.
+
+ * DEPS:
+
+2011-03-14 Alexey Marinichev <amarinichev@chromium.org>
+
+ Reviewed by Kenneth Russell.
+
+ Graphics Context is not properly recovered if the GPU process dies.
+ https://bugs.webkit.org/show_bug.cgi?id=56148
+
+ Split context recreation into two steps.
+
+ * src/WebViewImpl.cpp:
+ (WebKit::WebViewImpl::composite):
+ (WebKit::WebViewImpl::doComposite):
+ (WebKit::WebViewImpl::reallocateRenderer):
+ * src/WebViewImpl.h:
+
+2011-03-14 Sheriff Bot <webkit.review.bot@gmail.com>
+
+ Unreviewed, rolling out r81094.
+ http://trac.webkit.org/changeset/81094
+ https://bugs.webkit.org/show_bug.cgi?id=56355
+
+ Broke the chromium DRT related build. (Requested by dave_levin
+ on #webkit).
+
+ * public/WebFrame.h:
+ * src/WebFrameImpl.cpp:
+ (WebKit::WebFrameImpl::renderTreeAsText):
+ (WebKit::WebFrameImpl::layerTreeAsText):
+ * src/WebFrameImpl.h:
+
+2011-03-14 Daniel Sievers <sievers@google.com>
+
+ Reviewed by Simon Fraser.
+
+ [Chromium] Make RenderAsTextBehavior and LayerTreeAsTextBehavior tweakable from the DumpRenderTree commandline
+ https://bugs.webkit.org/show_bug.cgi?id=56139
+
+ * public/WebFrame.h:
+ * src/WebFrameImpl.cpp:
+ (WebKit::WebFrameImpl::renderTreeAsText):
+ (WebKit::WebFrameImpl::layerTreeAsText):
+ * src/WebFrameImpl.h:
+
+2011-03-14 John Knottenbelt <jknotten@chromium.org>
+
+ Reviewed by Steve Block.
+
+ Detach Geolocation from Frame when Page destroyed.
+ https://bugs.webkit.org/show_bug.cgi?id=52877
+
+ Add accessors to the WebGeolocationClientMock to allow the number of
+ pending geolocation permission requests to be queried.
+
+ * public/WebGeolocationClientMock.h:
+ * src/WebGeolocationClientMock.cpp:
+ (WebKit::WebGeolocationClientMock::numberOfPendingPermissionRequests):
+
+2011-03-11 David Levin <levin@chromium.org>
+
+ Rollout the chromium deps roll as it adds a dependency on a header
+ that the bots building for WebKit don't seem to have.
+
+ Specifically gfx\gl\gl_context_egl.cc depends on d3dcompiler.h
+
+ * DEPS:
+
+2011-03-11 Daniel Cheng <dcheng@chromium.org>
+
+ Reviewed by Tony Chang.
+
+ [chromium] Correct return type of WebClipboard::readImage.
+ https://bugs.webkit.org/show_bug.cgi?id=56234
+
+ Update the return type to reflect that we are returning a blob of PNG
+ data, not a bitmap.
+
+ * public/WebClipboard.h:
+ (WebKit::WebClipboard::readImage):
+
+2011-03-11 David Levin <levin@chromium.org>
+
+ Update chromium deps to pick up the skia roll.
+
+ * DEPS:
+
+2011-03-11 Adrienne Walker <enne@google.com>
+
+ Reviewed by Kenneth Russell.
+
+ Add missing unit tests to TilingData.
+ https://bugs.webkit.org/show_bug.cgi?id=54143
+
+ * tests/TilingDataTest.cpp:
+ (WebCore::TEST):
+
+2011-03-11 Anton D'Auria <adauria@apple.com>
+
+ Reviewed and landed by Brady Eidson.
+
+ Add WebKit1 API to view and delete local storage
+ https://bugs.webkit.org/show_bug.cgi?id=51878
+
+ * src/StorageNamespaceProxy.cpp:
+ (WebCore::StorageNamespaceProxy::clearOriginForDeletion):
+ (WebCore::StorageNamespaceProxy::clearAllOriginsForDeletion):
+ (WebCore::StorageNamespaceProxy::sync):
+ * src/StorageNamespaceProxy.h:
+
+2011-03-11 Dominic Mazzoni <dmazzoni@google.com>
+
+ Reviewed by Dimitri Glazkov.
+
+ Add an accessibilityIsIgnored method to WebAccessibilityObject.
+ https://bugs.webkit.org/show_bug.cgi?id=50969
+
+ * public/WebAccessibilityObject.h:
+ * src/WebAccessibilityObject.cpp:
+ (WebKit::WebAccessibilityObject::accessibilityIsIgnored):
+
+2011-03-11 Avi Drissman <avi@google.com>
+
+ Reviewed by Tony Chang.
+
+ Fix missing initialization of new member variables.
+ https://bugs.webkit.org/show_bug.cgi?id=50969
+
+ * public/WebMenuItemInfo.h:
+ (WebKit::WebMenuItemInfo::WebMenuItemInfo):
+
+2011-03-11 Roland Steiner <rolandsteiner@chromium.org>
+
+ Reviewed by Ryosuke Niwa.
+
+ Bug 55570 - Remove dependency of dom/InputElement.cpp on html/ and wml/
+ https://bugs.webkit.org/show_bug.cgi?id=55570
+
+ Add a virtual function toInputElement() to Node that has a default
+ implementation of returning 0.
+ For HTMLInputElement and WMLInputElement (which derive from InputElement)
+ override this to return the object.
+ Change all calling sites of the old toInputElement to use the new member
+ function. This also allows us to save some casts.
+
+ No new tests (refactoring).
+
+ * src/WebInputElement.cpp:
+ (WebKit::toWebInputElement):
+
+2011-03-10 Takayoshi Kochi <kochi@chromium.org>
+
+ Reviewed by Tony Chang.
+
+ Remove default parameter declaration for familiForChars(), which is no longer necessary.
+
+ * public/gtk/WebFontInfo.h:
+
+2011-03-10 Nat Duca <nduca@chromium.org>
+
+ Reviewed by James Robinson.
+
+ [chromium] Make updateAndDrawLayers argumentless.
+ https://bugs.webkit.org/show_bug.cgi?id=55985
+
+ Made the TilePainters and viewport parameters for
+ LayerRendererChromium member variables instead of arguments on
+ updateAndDrawLayers. In a future change, this will allows us to
+ draw the layer tree without the WebView's assistance.
+
+ * src/WebViewImpl.cpp:
+ (WebKit::WebViewImpl::resize):
+ (WebKit::WebViewImpl::paint):
+ (WebKit::WebViewImpl::scrollRootLayerRect):
+ (WebKit::WebViewImpl::invalidateRootLayerRect):
+ (WebKit::WebViewImplContentPainter::create):
+ (WebKit::WebViewImplContentPainter::paint):
+ (WebKit::WebViewImplContentPainter::WebViewImplContentPainter):
+ (WebKit::WebViewImplScrollbarPainter::create):
+ (WebKit::WebViewImplScrollbarPainter::paint):
+ (WebKit::WebViewImplScrollbarPainter::WebViewImplScrollbarPainter):
+ (WebKit::WebViewImpl::setIsAcceleratedCompositingActive):
+ (WebKit::WebViewImpl::doComposite):
+ (WebKit::WebViewImpl::reallocateRenderer):
+ (WebKit::WebViewImpl::updateLayerRendererViewport):
+ * src/WebViewImpl.h:
+
+2011-03-10 Tony Chang <tony@chromium.org>
+
+ Unreviewed, roll chromium version to r77259 to pick up
+ webfontinfo api change.
+
+ * DEPS:
+
+2011-03-10 Sheriff Bot <webkit.review.bot@gmail.com>
+
+ Unreviewed, rolling out r80701.
+ http://trac.webkit.org/changeset/80701
+ https://bugs.webkit.org/show_bug.cgi?id=56126
+
+ fast/dom/Geolocation/window-close-crash.html fails on Snow
+ Leopard release builds (Requested by mihaip on #webkit).
+
+ * public/WebGeolocationClientMock.h:
+ * src/WebGeolocationClientMock.cpp:
+
+2011-03-10 Andrey Kosyakov <caseq@chromium.org>
+
+ Reviewed by Yury Semikhatsky.
+
+ Web Inspector: better names for HAR export commands
+ https://bugs.webkit.org/show_bug.cgi?id=56097
+
+ Rename Export to HAR to Copy entry/network log as HAR
+ Expose Copy as HAR unconditionally, remove related settings entry.
+
+ * src/js/DevTools.js: removed override for resourceExportEnabled
+
+2011-01-26 John Knottenbelt <jknotten@chromium.org>
+
+ Reviewed by Dmitry Titov.
+
+ Detach Geolocation from Frame when Page destroyed.
+ https://bugs.webkit.org/show_bug.cgi?id=52877
+
+ Add accessors to the WebGeolocationClientMock to allow the number of
+ pending geolocation permission requests to be queried.
+
+ * public/WebGeolocationClientMock.h:
+ * src/WebGeolocationClientMock.cpp:
+ (WebKit::WebGeolocationClientMock::numberOfPendingPermissionRequests):
+
+2011-03-08 Hans Wennborg <hans@chromium.org>
+
+ Reviewed by Jeremy Orlow.
+
+ IndexedDB: Add BackingStoreType parameter to IDBFactoryBackendInterface::open
+ https://bugs.webkit.org/show_bug.cgi?id=55948
+
+ Add a parameter that allows for selection of alternative backing store
+ implementations.
+
+ * public/WebIDBFactory.h:
+ (WebKit::WebIDBFactory::open):
+ * src/AssertMatchingEnums.cpp:
+ * src/IDBFactoryBackendProxy.cpp:
+ (WebCore::IDBFactoryBackendProxy::open):
+ * src/IDBFactoryBackendProxy.h:
+ * src/WebIDBFactoryImpl.cpp:
+ (WebKit::WebIDBFactoryImpl::open):
+ * src/WebIDBFactoryImpl.h:
+
+2011-03-08 Kinuko Yasuda <kinuko@chromium.org>
+
+ Reviewed by David Levin.
+
+ Destroying WorkerFileSystemCallbacksBridge on main thread results in ASSERT in WorkerContext::Observer::~Observer
+ https://bugs.webkit.org/show_bug.cgi?id=55895
+
+ * src/WorkerFileSystemCallbacksBridge.cpp:
+ (WebKit::WorkerFileSystemCallbacksBridge::runTaskOnWorkerThread):
+ Added stopObserving() so that releasing the bridge on the main thread
+ (this could happen before or after the runTaskOnWorkerThread) does
+ not cause the assertion error.
+
+2011-03-08 Alok priyadarshi <alokp@chromium.org>
+
+ Reviewed by Dimitri Glazkov.
+
+ Plugins needs a way to trigger style recalc
+ https://bugs.webkit.org/show_bug.cgi?id=55242
+
+ It will be tested by Pepper2D and Pepper3D layout/smoke tests
+ on the Chromium side.
+
+ * public/WebPluginContainer.h:
+ * src/WebPluginContainerImpl.cpp:
+ (WebKit::WebPluginContainerImpl::setBackingTextureId):
+ * src/WebPluginContainerImpl.h:
+
+2011-03-08 Andrei Popescu <andreip@google.com>
+
+ Reviewed by Steve Block.
+
+ IDBCallbacks::onsuccess(IDBIndex*) is unused and should be removed.
+ https://bugs.webkit.org/show_bug.cgi?id=55938
+
+ * public/WebIDBCallbacks.h:
+ * src/IDBCallbacksProxy.cpp:
+ * src/IDBCallbacksProxy.h:
+ * src/WebIDBCallbacksImpl.cpp:
+ * src/WebIDBCallbacksImpl.h:
+ * src/WebIDBObjectStoreImpl.cpp:
+
+2011-03-07 Daniel Cheng <dcheng@chromium.org>
+
+ Reviewed by David Levin.
+
+ Add support for DataTransferItems
+ https://bugs.webkit.org/show_bug.cgi?id=55115
+
+ Add new runtime enabled flag for data transfer items feature.
+
+ * public/WebRuntimeFeatures.h:
+ * src/WebRuntimeFeatures.cpp:
+ (WebKit::WebRuntimeFeatures::enableDataTransferItems):
+ (WebKit::WebRuntimeFeatures::isDataTransferItemsEnabled):
+
2011-03-07 Ryosuke Niwa <rniwa@webkit.org>
Chromium build fix.
diff --git a/Source/WebKit/chromium/DEPS b/Source/WebKit/chromium/DEPS
index 0e8c529..3ab2e78 100644
--- a/Source/WebKit/chromium/DEPS
+++ b/Source/WebKit/chromium/DEPS
@@ -32,7 +32,7 @@
vars = {
'chromium_svn': 'http://src.chromium.org/svn/trunk/src',
- 'chromium_rev': '77152'
+ 'chromium_rev': '79759'
}
deps = {
diff --git a/Source/WebKit/chromium/WebKit.grd b/Source/WebKit/chromium/WebKit.grd
index 38570b9..4da7600 100644
--- a/Source/WebKit/chromium/WebKit.grd
+++ b/Source/WebKit/chromium/WebKit.grd
@@ -9,7 +9,6 @@
</outputs>
<release seq="1">
<includes>
- <include name="IDR_DEVTOOLS_DEBUGGER_SCRIPT_JS" file="..\..\..\Source\WebCore\bindings\v8\DebuggerScript.js" type="BINDATA"/>
<include name="IDR_AUDIO_SPATIALIZATION_T000_P000" file="..\..\WebCore\platform\audio\resources\IRC_Composite_C_R0195_T000_P000.wav" type="BINDATA"/>
<include name="IDR_AUDIO_SPATIALIZATION_T000_P015" file="..\..\WebCore\platform\audio\resources\IRC_Composite_C_R0195_T000_P015.wav" type="BINDATA"/>
<include name="IDR_AUDIO_SPATIALIZATION_T000_P030" file="..\..\WebCore\platform\audio\resources\IRC_Composite_C_R0195_T000_P030.wav" type="BINDATA"/>
diff --git a/Source/WebKit/chromium/WebKit.gyp b/Source/WebKit/chromium/WebKit.gyp
index 1cb68f9..d47248e 100644
--- a/Source/WebKit/chromium/WebKit.gyp
+++ b/Source/WebKit/chromium/WebKit.gyp
@@ -44,22 +44,10 @@
# e.g. via build-webkit --chromium
'chromium_src_dir': '../../WebKit/chromium',
'webkit_target_type': 'static_library',
-
- # List of DevTools source files, ordered by dependencies. It is used both
- # for copying them to resource dir, and for generating 'devtools.html' file.
- 'devtools_files': [
- '<@(devtools_css_files)',
- '<@(devtools_js_files)',
- ],
},{
# WebKit is checked out in src/chromium/third_party/WebKit
'chromium_src_dir': '../../../../..',
'webkit_target_type': '<(library)',
-
- 'devtools_files': [
- '<@(devtools_css_files)',
- '<@(devtools_js_files)',
- ],
}],
],
'ahem_path': '../../../Tools/DumpRenderTree/qt/fonts/AHEM____.TTF',
@@ -67,6 +55,13 @@
# If debug_devtools is set to 1, JavaScript files for DevTools are
# stored as is. Otherwise, a concatenated file is stored.
'debug_devtools%': 0,
+
+ # List of DevTools source files, ordered by dependencies. It is used both
+ # for copying them to resource dir, and for generating 'devtools.html' file.
+ 'devtools_files': [
+ '<@(devtools_css_files)',
+ '<@(devtools_js_files)',
+ ],
},
'targets': [
{
@@ -732,67 +727,57 @@
'sources': ['<(PRODUCT_DIR)/resources/inspector/devtools.html'],
'actions': [{
'action_name': 'devtools_html',
- 'inputs': [
- 'scripts/generate_devtools_html.py',
- # See issue 29695: WebKit.gypi is a source file for devtools.html.
- 'WebKit.gypi',
- '../../WebCore/inspector/front-end/inspector.html',
- ],
- 'outputs': ['<(PRODUCT_DIR)/resources/inspector/devtools.html'],
- 'action': ['python', '<@(_inputs)', '<@(_outputs)', '<@(debug_devtools)', '<@(devtools_files)'],
- }],
- },
- {
- 'target_name': 'concatenated_devtools_js',
- 'type': 'none',
- 'dependencies': [
- 'devtools_html',
- '../../WebCore/WebCore.gyp/WebCore.gyp:inspector_protocol_sources'
- ],
- 'sources': ['<(PRODUCT_DIR)/resources/inspector/DevTools.js'],
- 'actions': [{
- 'action_name': 'concatenate_devtools_js',
- 'script_name': 'scripts/concatenate_js_files.py',
+ 'script_name': 'scripts/generate_devtools_html.py',
'input_page': '../../WebCore/inspector/front-end/inspector.html',
'inputs': [
'<@(_script_name)',
'<@(_input_page)',
- '<@(webinspector_files)',
'<@(devtools_files)',
- '<(SHARED_INTERMEDIATE_DIR)/webcore/InspectorBackendStub.js'
- ],
- 'search_path': [
- '../../WebCore/inspector/front-end',
- 'src/js',
- '<(SHARED_INTERMEDIATE_DIR)/webcore',
],
- 'outputs': ['<(PRODUCT_DIR)/resources/inspector/DevTools.js'],
- 'action': ['python', '<@(_script_name)', '<@(_input_page)', '<@(_search_path)', '<@(_outputs)'],
+ 'outputs': ['<(PRODUCT_DIR)/resources/inspector/devtools.html'],
+ 'action': ['python', '<@(_script_name)', '<@(_input_page)', '<@(_outputs)', '<@(debug_devtools)', '<@(devtools_files)'],
}],
},
{
- 'target_name': 'concatenated_devtools_css',
+ 'target_name': 'generate_devtools_grd',
'type': 'none',
'dependencies': [
- 'devtools_html'
+ 'devtools_html',
+ ],
+ 'conditions': [
+ ['debug_devtools==0', {
+ 'dependencies': ['concatenated_devtools_js',
+ 'concatenated_devtools_css'],
+ },{
+ # If we're not concatenating devtools files, we want to
+ # run after the original files have been copied to
+ # <(PRODUCT_DIR)/resources/inspector.
+ 'dependencies': ['inspector_resources'],
+ }],
],
- 'sources': ['<(PRODUCT_DIR)/resources/inspector/devTools.css'],
'actions': [{
- 'action_name': 'concatenate_devtools_css',
- 'script_name': 'scripts/concatenate_css_files.py',
- 'input_page': '../../WebCore/inspector/front-end/inspector.html',
+ 'action_name': 'generate_devtools_grd',
+ 'script_name': 'scripts/generate_devtools_grd.py',
+ 'input_pages': [
+ '<(PRODUCT_DIR)/resources/inspector/devtools.html',
+ '<(PRODUCT_DIR)/resources/inspector/DevTools.js',
+ '<(PRODUCT_DIR)/resources/inspector/devTools.css',
+ ],
+ 'images': [
+ '<@(webinspector_image_files)',
+ '<@(devtools_image_files)',
+ ],
'inputs': [
'<@(_script_name)',
- '<@(_input_page)',
- '<@(webinspector_files)',
- '<@(devtools_files)'
+ '<@(_input_pages)',
+ '<@(_images)',
],
'search_path': [
- '../../WebCore/inspector/front-end',
- 'src/js',
+ '../../WebCore/inspector/front-end/Images',
+ 'src/js/Images',
],
- 'outputs': ['<(PRODUCT_DIR)/resources/inspector/devTools.css'],
- 'action': ['python', '<@(_script_name)', '<@(_input_page)', '<@(_search_path)', '<@(_outputs)'],
+ 'outputs': ['<(SHARED_INTERMEDIATE_DIR)/devtools/devtools_resources.grd'],
+ 'action': ['python', '<@(_script_name)', '<@(_input_pages)', '--images', '<@(_search_path)', '--output', '<@(_outputs)'],
}],
},
{
@@ -832,6 +817,7 @@
'tests/TransparencyWinTest.cpp',
'tests/UniscribeHelperTest.cpp',
'tests/WebFrameTest.cpp',
+ 'tests/WebPageSerializerTest.cpp',
],
}],
['OS=="mac"', {
@@ -1151,6 +1137,61 @@
},
],
}],
+ ['debug_devtools==0', {
+ 'targets': [
+ {
+ 'target_name': 'concatenated_devtools_js',
+ 'type': 'none',
+ 'dependencies': [
+ 'devtools_html',
+ '../../WebCore/WebCore.gyp/WebCore.gyp:inspector_protocol_sources'
+ ],
+ 'actions': [{
+ 'action_name': 'concatenate_devtools_js',
+ 'script_name': 'scripts/concatenate_js_files.py',
+ 'input_page': '../../WebCore/inspector/front-end/inspector.html',
+ 'inputs': [
+ '<@(_script_name)',
+ '<@(_input_page)',
+ '<@(webinspector_files)',
+ '<@(devtools_files)',
+ '<(SHARED_INTERMEDIATE_DIR)/webcore/InspectorBackendStub.js'
+ ],
+ 'search_path': [
+ '../../WebCore/inspector/front-end',
+ 'src/js',
+ '<(SHARED_INTERMEDIATE_DIR)/webcore',
+ ],
+ 'outputs': ['<(PRODUCT_DIR)/resources/inspector/DevTools.js'],
+ 'action': ['python', '<@(_script_name)', '<@(_input_page)', '<@(_search_path)', '<@(_outputs)'],
+ }],
+ },
+ {
+ 'target_name': 'concatenated_devtools_css',
+ 'type': 'none',
+ 'dependencies': [
+ 'devtools_html'
+ ],
+ 'actions': [{
+ 'action_name': 'concatenate_devtools_css',
+ 'script_name': 'scripts/concatenate_css_files.py',
+ 'input_page': '../../WebCore/inspector/front-end/inspector.html',
+ 'inputs': [
+ '<@(_script_name)',
+ '<@(_input_page)',
+ '<@(webinspector_files)',
+ '<@(devtools_files)'
+ ],
+ 'search_path': [
+ '../../WebCore/inspector/front-end',
+ 'src/js',
+ ],
+ 'outputs': ['<(PRODUCT_DIR)/resources/inspector/devTools.css'],
+ 'action': ['python', '<@(_script_name)', '<@(_input_page)', '<@(_search_path)', '<@(_outputs)'],
+ }],
+ },
+ ],
+ }],
], # conditions
}
diff --git a/Source/WebKit/chromium/features.gypi b/Source/WebKit/chromium/features.gypi
index 4e91d60..7354eb8 100644
--- a/Source/WebKit/chromium/features.gypi
+++ b/Source/WebKit/chromium/features.gypi
@@ -59,6 +59,7 @@
'ENABLE_FILTERS=1',
'ENABLE_FULLSCREEN_API=1',
'ENABLE_GEOLOCATION=1',
+ 'ENABLE_GESTURE_RECOGNIZER=1',
'ENABLE_ICONDATABASE=0',
'ENABLE_INDEXED_DATABASE=1',
'ENABLE_INPUT_SPEECH=1',
@@ -67,6 +68,7 @@
'ENABLE_LINK_PREFETCH=1',
'ENABLE_MATHML=0',
'ENABLE_MEDIA_STATISTICS=1',
+ 'ENABLE_MEDIA_STREAM=1',
'ENABLE_METER_TAG=1',
'ENABLE_NOTIFICATIONS=1',
'ENABLE_OFFLINE_WEB_APPLICATIONS=1',
@@ -93,7 +95,6 @@
'ENABLE_XPATH=1',
'ENABLE_XSLT=1',
'WTF_USE_ACCELERATED_COMPOSITING=1',
- 'WTF_USE_BUILTIN_UTF8_CODEC=1',
'WTF_USE_WEBP=1',
'WTF_USE_WEBKIT_IMAGE_DECODERS=1',
],
diff --git a/Source/WebKit/chromium/public/WebAccessibilityObject.h b/Source/WebKit/chromium/public/WebAccessibilityObject.h
index 67a79e0..bdc3d09d 100644
--- a/Source/WebKit/chromium/public/WebAccessibilityObject.h
+++ b/Source/WebKit/chromium/public/WebAccessibilityObject.h
@@ -118,6 +118,7 @@ public:
WEBKIT_API WebDocument document() const;
WEBKIT_API bool hasComputedStyle() const;
WEBKIT_API WebString computedStyleDisplay() const;
+ WEBKIT_API bool accessibilityIsIgnored() const;
#if WEBKIT_IMPLEMENTATION
WebAccessibilityObject(const WTF::PassRefPtr<WebCore::AccessibilityObject>&);
diff --git a/Source/WebKit/chromium/public/WebAccessibilityRole.h b/Source/WebKit/chromium/public/WebAccessibilityRole.h
index b0748a7..391b3e2 100644
--- a/Source/WebKit/chromium/public/WebAccessibilityRole.h
+++ b/Source/WebKit/chromium/public/WebAccessibilityRole.h
@@ -116,6 +116,11 @@ enum WebAccessibilityRole {
WebAccessibilityRoleMenuListPopup,
WebAccessibilityRoleMenuListOption,
+ WebAccessibilityRoleParagraph,
+ WebAccessibilityRoleLabel,
+ WebAccessibilityRoleDiv,
+ WebAccessibilityRoleForm,
+
WebAccessibilityRoleLandmarkApplication,
WebAccessibilityRoleLandmarkBanner,
WebAccessibilityRoleLandmarkComplementary,
diff --git a/Source/WebKit/chromium/public/WebApplicationCacheHost.h b/Source/WebKit/chromium/public/WebApplicationCacheHost.h
index acbc106..8539d82 100644
--- a/Source/WebKit/chromium/public/WebApplicationCacheHost.h
+++ b/Source/WebKit/chromium/public/WebApplicationCacheHost.h
@@ -38,6 +38,7 @@
namespace WebKit {
class WebApplicationCacheHostClient;
+class WebFrame;
class WebURL;
class WebURLRequest;
class WebURLResponse;
@@ -73,9 +74,11 @@ public:
virtual ~WebApplicationCacheHost() { }
// Called for every request made within the context.
- virtual void willStartMainResourceRequest(WebURLRequest&) { }
+ virtual void willStartMainResourceRequest(WebURLRequest& r, const WebFrame*) { willStartMainResourceRequest(r); }
virtual void willStartSubResourceRequest(WebURLRequest&) { }
+ virtual void willStartMainResourceRequest(WebURLRequest&) { } // DEPRECATED, remove after derived classes have caught up.
+
// One or the other selectCache methods is called after having parsed the <html> tag.
// The latter returns false if the current document has been identified as a "foreign"
// entry, in which case the frame navigation will be restarted by webkit.
diff --git a/Source/WebKit/chromium/public/WebAudioDevice.h b/Source/WebKit/chromium/public/WebAudioDevice.h
index a9f5a1c..00aea97 100644
--- a/Source/WebKit/chromium/public/WebAudioDevice.h
+++ b/Source/WebKit/chromium/public/WebAudioDevice.h
@@ -48,6 +48,7 @@ public:
virtual void start() = 0;
virtual void stop() = 0;
+ virtual double sampleRate() = 0;
};
} // namespace WebKit
diff --git a/Source/WebKit/chromium/public/WebBindings.h b/Source/WebKit/chromium/public/WebBindings.h
index cb33781..149bff3 100644
--- a/Source/WebKit/chromium/public/WebBindings.h
+++ b/Source/WebKit/chromium/public/WebBindings.h
@@ -40,6 +40,7 @@ namespace WebKit {
class WebDragData;
class WebElement;
+class WebNode;
class WebRange;
// A haphazard collection of functions for dealing with plugins.
@@ -55,7 +56,7 @@ public:
WEBKIT_API static NPObject* createObject(NPP, NPClass*);
// NPN_Enumerate
- WEBKIT_API static bool enumerate(NPP, NPObject*, NPIdentifier**, uint32_t* count);
+ WEBKIT_API static bool enumerate(NPP, NPObject*, NPIdentifier**, uint32_t* identifierCount);
// NPN_Evaluate
WEBKIT_API static bool evaluate(NPP, NPObject*, NPString* script, NPVariant* result);
@@ -67,7 +68,7 @@ public:
WEBKIT_API static NPIdentifier getIntIdentifier(int32_t number);
// NPN_GetProperty
- WEBKIT_API static bool getProperty(NPP, NPObject*, NPIdentifier propertyName, NPVariant *result);
+ WEBKIT_API static bool getProperty(NPP, NPObject*, NPIdentifier property, NPVariant *result);
// NPN_GetStringIdentifier
WEBKIT_API static NPIdentifier getStringIdentifier(const NPUTF8* string);
@@ -76,10 +77,10 @@ public:
WEBKIT_API static void getStringIdentifiers(const NPUTF8** names, int32_t nameCount, NPIdentifier*);
// NPN_HasMethod
- WEBKIT_API static bool hasMethod(NPP, NPObject*, NPIdentifier methodName);
+ WEBKIT_API static bool hasMethod(NPP, NPObject*, NPIdentifier method);
// NPN_HasProperty
- WEBKIT_API static bool hasProperty(NPP, NPObject*, NPIdentifier propertyName);
+ WEBKIT_API static bool hasProperty(NPP, NPObject*, NPIdentifier property);
// NPN_IdentifierIsString
WEBKIT_API static bool identifierIsString(NPIdentifier);
@@ -91,10 +92,10 @@ public:
WEBKIT_API static int32_t intFromIdentifier(NPIdentifier);
// NPN_Invoke
- WEBKIT_API static bool invoke(NPP, NPObject*, NPIdentifier methodName, const NPVariant* args, uint32_t count, NPVariant* result);
+ WEBKIT_API static bool invoke(NPP, NPObject*, NPIdentifier method, const NPVariant* args, uint32_t argCount, NPVariant* result);
// NPN_InvokeDefault
- WEBKIT_API static bool invokeDefault(NPP, NPObject*, const NPVariant* args, uint32_t count, NPVariant* result);
+ WEBKIT_API static bool invokeDefault(NPP, NPObject*, const NPVariant* args, uint32_t argCount, NPVariant* result);
// NPN_ReleaseObject
WEBKIT_API static void releaseObject(NPObject*);
@@ -127,17 +128,6 @@ public:
// undefined. If iString is false, the opposite is true.
WEBKIT_API static void extractIdentifierData(const NPIdentifier&, const NPUTF8*& string, int32_t& number, bool& isString);
- // Return true (success) if the given npobj is the current drag event in browser dispatch,
- // and is accessible based on context execution frames and their security origins and
- // WebKit clipboard access policy. If so, return the event id and the clipboard data (WebDragData).
- // This only works with V8. If compiled without V8, it'll always return false.
- WEBKIT_API static bool getDragData(NPObject* event, int* eventId, WebDragData*);
-
- // Invoke the event access policy checks listed above with GetDragData(). No need for clipboard
- // data or event_id outputs, just confirm the given npobj is the current & accessible drag event.
- // This only works with V8. If compiled without V8, it'll always return false.
- WEBKIT_API static bool isDragEvent(NPObject* event);
-
// Return true (success) if the given npobj is a range object.
// If so, return that range as a WebRange object.
WEBKIT_API static bool getRange(NPObject* range, WebRange*);
@@ -148,6 +138,7 @@ public:
WEBKIT_API static NPObject* makeIntArray(const WebVector<int>&);
WEBKIT_API static NPObject* makeStringArray(const WebVector<WebString>&);
+ WEBKIT_API static NPObject* makeNode(const WebNode&);
// Exceptions -------------------------------------------------------------
diff --git a/Source/WebKit/chromium/public/WebClipboard.h b/Source/WebKit/chromium/public/WebClipboard.h
index f9a06cf..1be255a 100644
--- a/Source/WebKit/chromium/public/WebClipboard.h
+++ b/Source/WebKit/chromium/public/WebClipboard.h
@@ -32,18 +32,20 @@
#define WebClipboard_h
#include "WebCommon.h"
-#include "WebImage.h"
+#include "WebData.h"
#include "WebString.h"
#include "WebVector.h"
namespace WebKit {
class WebDragData;
+class WebImage;
class WebURL;
class WebClipboard {
public:
enum Format {
+ FormatPlainText,
FormatHTML,
FormatBookmark,
FormatSmartPaste
@@ -62,7 +64,7 @@ public:
virtual WebString readPlainText(Buffer) { return WebString(); }
virtual WebString readHTML(Buffer, WebURL*) { return WebString(); }
- virtual WebImage readImage(Buffer) { return WebImage(); }
+ virtual WebData readImage(Buffer) { return WebData(); }
virtual void writePlainText(const WebString&) { }
virtual void writeHTML(
diff --git a/Source/WebKit/chromium/public/WebCommonWorkerClient.h b/Source/WebKit/chromium/public/WebCommonWorkerClient.h
index b99d39d..9f11aa2 100644
--- a/Source/WebKit/chromium/public/WebCommonWorkerClient.h
+++ b/Source/WebKit/chromium/public/WebCommonWorkerClient.h
@@ -92,12 +92,6 @@ public:
WEBKIT_ASSERT_NOT_REACHED();
}
- // This will be removed once changes in chromium use the new method above.
- virtual void openFileSystem(WebFileSystem::Type, long long size, WebFileSystemCallbacks*)
- {
- WEBKIT_ASSERT_NOT_REACHED();
- }
-
protected:
~WebCommonWorkerClient() { }
};
diff --git a/Source/WebKit/chromium/public/WebConsoleMessage.h b/Source/WebKit/chromium/public/WebConsoleMessage.h
index d7a0ead..3dcbc77 100644
--- a/Source/WebKit/chromium/public/WebConsoleMessage.h
+++ b/Source/WebKit/chromium/public/WebConsoleMessage.h
@@ -49,7 +49,7 @@ struct WebConsoleMessage {
WebConsoleMessage()
: level(LevelLog) { }
WebConsoleMessage(Level level, const WebString& text)
- : level(LevelLog)
+ : level(level)
, text(text) { }
};
diff --git a/Source/WebKit/chromium/public/WebDOMMouseEvent.h b/Source/WebKit/chromium/public/WebDOMMouseEvent.h
index 4c38b56..c3de098 100644
--- a/Source/WebKit/chromium/public/WebDOMMouseEvent.h
+++ b/Source/WebKit/chromium/public/WebDOMMouseEvent.h
@@ -44,10 +44,10 @@ public:
WEBKIT_API int screenY() const;
WEBKIT_API int clientX() const;
WEBKIT_API int clientY() const;
- WEBKIT_API int layerX() const;
- WEBKIT_API int layerY() const;
- WEBKIT_API int offsetX() const;
- WEBKIT_API int offsetY() const;
+ WEBKIT_API int layerX();
+ WEBKIT_API int layerY();
+ WEBKIT_API int offsetX();
+ WEBKIT_API int offsetY();
WEBKIT_API int pageX() const;
WEBKIT_API int pageY() const;
WEBKIT_API int x() const;
diff --git a/Source/WebKit/chromium/public/WebDevToolsAgent.h b/Source/WebKit/chromium/public/WebDevToolsAgent.h
index d6a7bcd..03303f7 100644
--- a/Source/WebKit/chromium/public/WebDevToolsAgent.h
+++ b/Source/WebKit/chromium/public/WebDevToolsAgent.h
@@ -33,13 +33,6 @@
#include "WebCommon.h"
-#if WEBKIT_USING_V8
-namespace v8 {
-class Value;
-template <class T> class Handle;
-}
-#endif
-
namespace WebKit {
class WebDevToolsAgentClient;
class WebDevToolsMessageTransport;
@@ -65,9 +58,6 @@ public:
virtual void dispatchOnInspectorBackend(const WebString& message) = 0;
virtual void inspectElementAt(const WebPoint&) = 0;
-#if WEBKIT_USING_V8
- virtual void inspectNode(v8::Handle<v8::Value>) = 0;
-#endif
virtual void setRuntimeProperty(const WebString& name, const WebString& value) = 0;
// Exposed for LayoutTestController.
@@ -98,13 +88,6 @@ public:
// Installs dispatch handle that is going to be called periodically
// while on a breakpoint.
WEBKIT_API static void setMessageLoopDispatchHandler(MessageLoopDispatchHandler);
-
- virtual void identifierForInitialRequest(unsigned long resourceId, WebFrame*, const WebURLRequest&) = 0;
- virtual void willSendRequest(unsigned long resourceId, WebURLRequest&) = 0;
- virtual void didReceiveData(unsigned long resourceId, int length) = 0;
- virtual void didReceiveResponse(unsigned long resourceId, const WebURLResponse&) = 0;
- virtual void didFinishLoading(unsigned long resourceId) = 0;
- virtual void didFailLoading(unsigned long resourceId, const WebURLError&) = 0;
};
} // namespace WebKit
diff --git a/Source/WebKit/chromium/public/WebDevToolsAgentClient.h b/Source/WebKit/chromium/public/WebDevToolsAgentClient.h
index b373b60..3ec5487 100644
--- a/Source/WebKit/chromium/public/WebDevToolsAgentClient.h
+++ b/Source/WebKit/chromium/public/WebDevToolsAgentClient.h
@@ -42,7 +42,6 @@ class WebDevToolsAgentClient {
public:
virtual void sendMessageToInspectorFrontend(const WebString&) { }
virtual void sendDebuggerOutput(const WebString&) { }
- virtual void sendDispatchToAPU(const WebString&) { }
// Returns the identifier of the entity hosting this agent.
virtual int hostIdentifier() { return -1; }
@@ -50,8 +49,6 @@ public:
// Notifies host upon runtime feature being enabled/disabled.
virtual void runtimePropertyChanged(const WebString& name, const WebString& value) { }
- virtual WebCString debuggerScriptSource() { return WebCString(); }
-
class WebKitClientMessageLoop {
public:
virtual ~WebKitClientMessageLoop() { }
diff --git a/Source/WebKit/chromium/public/WebDocument.h b/Source/WebKit/chromium/public/WebDocument.h
index d9f7386..23f28c3 100644
--- a/Source/WebKit/chromium/public/WebDocument.h
+++ b/Source/WebKit/chromium/public/WebDocument.h
@@ -42,6 +42,7 @@ namespace WTF { template <typename T> class PassRefPtr; }
#endif
namespace WebKit {
+class WebAccessibilityObject;
class WebDocumentType;
class WebElement;
class WebFrame;
@@ -79,6 +80,7 @@ public:
WEBKIT_API WebElement getElementById(const WebString&) const;
WEBKIT_API WebNode focusedNode() const;
WEBKIT_API WebDocumentType doctype() const;
+ WEBKIT_API WebAccessibilityObject accessibilityObject() const;
#if WEBKIT_IMPLEMENTATION
WebDocument(const WTF::PassRefPtr<WebCore::Document>&);
diff --git a/Source/WebKit/chromium/public/WebElement.h b/Source/WebKit/chromium/public/WebElement.h
index 8d51e98..2072dd3 100644
--- a/Source/WebKit/chromium/public/WebElement.h
+++ b/Source/WebKit/chromium/public/WebElement.h
@@ -58,6 +58,7 @@ class WebNamedNodeMap;
WEBKIT_API bool setAttribute(const WebString& name, const WebString& value);
WEBKIT_API WebNamedNodeMap attributes() const;
WEBKIT_API WebString innerText() const;
+ WEBKIT_API WebNode shadowRoot();
// Returns the language code specified for this element. This attribute
// is inherited, so the returned value is drawn from the closest parent
diff --git a/Source/WebKit/chromium/public/WebFileInfo.h b/Source/WebKit/chromium/public/WebFileInfo.h
index be0b3e4..d326e06 100644
--- a/Source/WebKit/chromium/public/WebFileInfo.h
+++ b/Source/WebKit/chromium/public/WebFileInfo.h
@@ -31,6 +31,8 @@
#ifndef WebFileInfo_h
#define WebFileInfo_h
+#include "WebString.h"
+
namespace WebKit {
struct WebFileInfo {
@@ -50,6 +52,8 @@ struct WebFileInfo {
Type type;
+ WebString platformPath;
+
WebFileInfo() : modificationTime(0.0), length(-1), type(TypeUnknown) { }
};
diff --git a/Source/WebKit/chromium/public/WebFormControlElement.h b/Source/WebKit/chromium/public/WebFormControlElement.h
index e70b995..53ef850 100644
--- a/Source/WebKit/chromium/public/WebFormControlElement.h
+++ b/Source/WebKit/chromium/public/WebFormControlElement.h
@@ -54,6 +54,7 @@ public:
void assign(const WebFormControlElement& e) { WebElement::assign(e); }
WEBKIT_API bool isEnabled() const;
+ WEBKIT_API bool isReadOnly() const;
WEBKIT_API WebString formControlName() const;
WEBKIT_API WebString formControlType() const;
diff --git a/Source/WebKit/chromium/public/WebFrame.h b/Source/WebKit/chromium/public/WebFrame.h
index f3f5ba6..d5d2ff4 100644
--- a/Source/WebKit/chromium/public/WebFrame.h
+++ b/Source/WebKit/chromium/public/WebFrame.h
@@ -70,11 +70,9 @@ struct WebFindOptions;
struct WebRect;
struct WebScriptSource;
struct WebSize;
+struct WebURLLoaderOptions;
template <typename T> class WebVector;
-// FIXME(jam): take this out once Chromium has this
-#define WEBFRAME_PRINTBEGIN_TAKES_NODE
-
class WebFrame {
public:
// Returns the number of live WebFrame objects, used for leak checking.
@@ -345,10 +343,13 @@ public:
// DEPRECATED: Please use createAssociatedURLLoader instead.
virtual void dispatchWillSendRequest(WebURLRequest&) = 0;
+ // FIXME: Remove this overload when clients have been changed to pass options.
+ virtual WebURLLoader* createAssociatedURLLoader() = 0;
+
// Returns a WebURLLoader that is associated with this frame. The loader
// will, for example, be cancelled when WebFrame::stopLoading is called.
// FIXME: stopLoading does not yet cancel an associated loader!!
- virtual WebURLLoader* createAssociatedURLLoader() = 0;
+ virtual WebURLLoader* createAssociatedURLLoader(const WebURLLoaderOptions&) = 0;
// Called from within WebFrameClient::didReceiveDocumentData to commit
// data for the frame that will be used to construct the frame's
@@ -365,10 +366,6 @@ public:
// with a suppressed opener.
virtual bool willSuppressOpenerInNewFrame() const = 0;
- // Returns true if this frame is in the midst of executing a beforeunload
- // or unload event handler.
- virtual bool pageDismissalEventBeingDispatched() const = 0;
-
// Editing -------------------------------------------------------------
@@ -549,7 +546,7 @@ public:
// Returns a text representation of the render tree. This method is used
// to support layout tests.
- virtual WebString renderTreeAsText() const = 0;
+ virtual WebString renderTreeAsText(bool showDebugInfo = false) const = 0;
// Returns the counter value for the specified element. This method is
// used to support layout tests.
@@ -582,7 +579,7 @@ public:
// Dumps the layer tree, used by the accelerated compositor, in
// text form. This is used only by layout tests.
- virtual WebString layerTreeAsText() const = 0;
+ virtual WebString layerTreeAsText(bool showDebugInfo = false) const = 0;
protected:
~WebFrame() { }
diff --git a/Source/WebKit/chromium/public/WebGeolocationClientMock.h b/Source/WebKit/chromium/public/WebGeolocationClientMock.h
index 08a85e2..9a39e2e 100644
--- a/Source/WebKit/chromium/public/WebGeolocationClientMock.h
+++ b/Source/WebKit/chromium/public/WebGeolocationClientMock.h
@@ -51,6 +51,7 @@ public:
WEBKIT_API void setPosition(double latitude, double longitude, double accuracy);
WEBKIT_API void setError(int errorCode, const WebString& message);
WEBKIT_API void setPermission(bool);
+ WEBKIT_API int numberOfPendingPermissionRequests() const;
WEBKIT_API void resetMock();
virtual void startUpdating();
diff --git a/Source/WebKit/chromium/public/WebIDBCallbacks.h b/Source/WebKit/chromium/public/WebIDBCallbacks.h
index 1eb6d3a..ec7c095 100644
--- a/Source/WebKit/chromium/public/WebIDBCallbacks.h
+++ b/Source/WebKit/chromium/public/WebIDBCallbacks.h
@@ -49,8 +49,8 @@ public:
virtual void onSuccess(WebIDBCursor*) { WEBKIT_ASSERT_NOT_REACHED(); }
virtual void onSuccess(WebIDBDatabase*) { WEBKIT_ASSERT_NOT_REACHED(); }
virtual void onSuccess(const WebIDBKey&) { WEBKIT_ASSERT_NOT_REACHED(); }
+ // FIXME: remove after Webkit roll.
virtual void onSuccess(WebIDBIndex*) { WEBKIT_ASSERT_NOT_REACHED(); }
- virtual void onSuccess(WebIDBObjectStore*) { WEBKIT_ASSERT_NOT_REACHED(); }
virtual void onSuccess(WebIDBTransaction*) { WEBKIT_ASSERT_NOT_REACHED(); }
virtual void onSuccess(const WebSerializedScriptValue&) { WEBKIT_ASSERT_NOT_REACHED(); }
virtual void onBlocked() { WEBKIT_ASSERT_NOT_REACHED(); }
diff --git a/Source/WebKit/chromium/public/WebIDBFactory.h b/Source/WebKit/chromium/public/WebIDBFactory.h
index 977510f..29414e8 100755
--- a/Source/WebKit/chromium/public/WebIDBFactory.h
+++ b/Source/WebKit/chromium/public/WebIDBFactory.h
@@ -51,8 +51,18 @@ public:
virtual ~WebIDBFactory() { }
+ enum BackingStoreType {
+ DefaultBackingStore,
+ LevelDBBackingStore
+ };
+
// The WebKit implementation of open ignores the WebFrame* parameter.
- virtual void open(const WebString& name, WebIDBCallbacks*, const WebSecurityOrigin&, WebFrame*, const WebString& dataDir, unsigned long long maximumSize) { WEBKIT_ASSERT_NOT_REACHED(); }
+ // FIXME: Assert not reached when Chromium side is updated.
+ virtual void open(const WebString& name, WebIDBCallbacks* callbacks, const WebSecurityOrigin& origin, WebFrame* frame, const WebString& dataDir, unsigned long long maximumSize, BackingStoreType) { open(name, callbacks, origin, frame, dataDir, maximumSize); }
+
+ // FIXME: Remove this when Chromium side is updated.
+ virtual void open(const WebString& name, WebIDBCallbacks* callbacks, const WebSecurityOrigin& origin, WebFrame* frame, const WebString& dataDir, unsigned long long maximumSize) { open(name, callbacks, origin, frame, dataDir, maximumSize, DefaultBackingStore); }
+
virtual void deleteDatabase(const WebString& name, WebIDBCallbacks*, const WebSecurityOrigin&, WebFrame*, const WebString& dataDir) { WEBKIT_ASSERT_NOT_REACHED(); }
};
diff --git a/Source/WebKit/chromium/public/WebInputElement.h b/Source/WebKit/chromium/public/WebInputElement.h
index 1f0836b..3ae6578 100644
--- a/Source/WebKit/chromium/public/WebInputElement.h
+++ b/Source/WebKit/chromium/public/WebInputElement.h
@@ -60,8 +60,6 @@ namespace WebKit {
WEBKIT_API bool isPasswordField() const;
WEBKIT_API bool isImageButton() const;
WEBKIT_API bool autoComplete() const;
- WEBKIT_API bool isReadOnly() const;
- WEBKIT_API bool isEnabledFormControl() const;
WEBKIT_API int maxLength() const;
WEBKIT_API bool isActivatedSubmit() const;
WEBKIT_API void setActivatedSubmit(bool);
diff --git a/Source/WebKit/chromium/public/WebKitClient.h b/Source/WebKit/chromium/public/WebKitClient.h
index 208ecdd..eb99531 100644
--- a/Source/WebKit/chromium/public/WebKitClient.h
+++ b/Source/WebKit/chromium/public/WebKitClient.h
@@ -286,6 +286,7 @@ public:
// Audio --------------------------------------------------------------
+ virtual double audioHardwareSampleRate() { return 0; }
virtual WebAudioDevice* createAudioDevice(size_t bufferSize, unsigned numberOfChannels, double sampleRate, WebAudioDevice::RenderCallback*) { return 0; }
// FileSystem ----------------------------------------------------------
diff --git a/Source/WebKit/chromium/public/WebMediaPlayerClient.h b/Source/WebKit/chromium/public/WebMediaPlayerClient.h
index 7e5dd68..5f60870 100644
--- a/Source/WebKit/chromium/public/WebMediaPlayerClient.h
+++ b/Source/WebKit/chromium/public/WebMediaPlayerClient.h
@@ -49,6 +49,7 @@ public:
virtual void sizeChanged() = 0;
virtual void sawUnsupportedTracks() = 0;
virtual float volume() const = 0;
+ virtual void playbackStateChanged() = 0;
protected:
~WebMediaPlayerClient() { }
diff --git a/Source/WebKit/chromium/public/WebMenuItemInfo.h b/Source/WebKit/chromium/public/WebMenuItemInfo.h
index f6e622a..742b4ef 100644
--- a/Source/WebKit/chromium/public/WebMenuItemInfo.h
+++ b/Source/WebKit/chromium/public/WebMenuItemInfo.h
@@ -49,6 +49,8 @@ struct WebMenuItemInfo {
WebMenuItemInfo()
: type(Option)
, action(0)
+ , textDirection(WebTextDirectionDefault)
+ , hasTextDirectionOverride(false)
, enabled(false)
, checked(false)
{
diff --git a/Source/WebKit/chromium/public/WebNode.h b/Source/WebKit/chromium/public/WebNode.h
index 7116dfa..92b17d4 100644
--- a/Source/WebKit/chromium/public/WebNode.h
+++ b/Source/WebKit/chromium/public/WebNode.h
@@ -96,6 +96,7 @@ public:
WEBKIT_API WebNodeList childNodes();
WEBKIT_API WebString createMarkup() const;
WEBKIT_API bool isTextNode() const;
+ WEBKIT_API bool isFocusable() const;
WEBKIT_API bool isContentEditable() const;
WEBKIT_API bool isElementNode() const;
WEBKIT_API void addEventListener(const WebString& eventType, WebDOMEventListener* listener, bool useCapture);
diff --git a/Source/WebKit/chromium/public/WebPageSerializer.h b/Source/WebKit/chromium/public/WebPageSerializer.h
index 94f7994..b4d5715 100644
--- a/Source/WebKit/chromium/public/WebPageSerializer.h
+++ b/Source/WebKit/chromium/public/WebPageSerializer.h
@@ -34,10 +34,12 @@
#include "WebCommon.h"
namespace WebKit {
+class WebCString;
class WebFrame;
class WebPageSerializerClient;
class WebString;
class WebURL;
+class WebView;
template <typename T> class WebVector;
// Get html data by serializing all frames of current page with lists
@@ -69,6 +71,14 @@ public:
const WebVector<WebString>& localPaths,
const WebString& localDirectoryName);
+ // Retrieve all the resource for the passed view, including the main frame
+ // and sub-frames. Returns true if all resources were retrieved
+ // successfully.
+ WEBKIT_API static bool retrieveAllResources(WebView*,
+ const WebVector<WebCString>& supportedSchemes,
+ WebVector<WebURL>* resources,
+ WebVector<WebURL>* frames);
+
// FIXME: The following are here for unit testing purposes. Consider
// changing the unit tests instead.
@@ -80,6 +90,6 @@ public:
WEBKIT_API static WebString generateBaseTagDeclaration(const WebString& baseTarget);
};
-} // namespace WebKit
+} // namespace WebKit
#endif
diff --git a/Source/WebKit/chromium/public/WebPlugin.h b/Source/WebKit/chromium/public/WebPlugin.h
index 4a6f081..17e29e2 100644
--- a/Source/WebKit/chromium/public/WebPlugin.h
+++ b/Source/WebKit/chromium/public/WebPlugin.h
@@ -64,10 +64,6 @@ public:
virtual void updateGeometry(
const WebRect& frameRect, const WebRect& clipRect,
const WebVector<WebRect>& cutOutsRects, bool isVisible) = 0;
-
- // If the plugin instance is backed by an OpenGL texture, return its ID in the
- // compositors namespace. Otherwise return 0. Returns 0 by default.
- virtual unsigned getBackingTextureId() { return 0; }
virtual void updateFocus(bool) = 0;
virtual void updateVisibility(bool) = 0;
diff --git a/Source/WebKit/chromium/public/WebPluginContainer.h b/Source/WebKit/chromium/public/WebPluginContainer.h
index c580f81..026028b 100644
--- a/Source/WebKit/chromium/public/WebPluginContainer.h
+++ b/Source/WebKit/chromium/public/WebPluginContainer.h
@@ -55,6 +55,10 @@ public:
// WebPlugin::updateGeometry.
virtual void reportGeometry() = 0;
+ // Sets the id of the texture used for hw-accel compositing.
+ // The default value for id is zero which indicates software rendering.
+ // A non-zero value will trigger hw-accelerated compositing.
+ virtual void setBackingTextureId(unsigned) = 0;
// Called when the backing texture is ready to be composited.
virtual void commitBackingTexture() {}
diff --git a/Source/WebKit/chromium/public/WebRuntimeFeatures.h b/Source/WebKit/chromium/public/WebRuntimeFeatures.h
index c9e32f5..dfaae5e 100644
--- a/Source/WebKit/chromium/public/WebRuntimeFeatures.h
+++ b/Source/WebKit/chromium/public/WebRuntimeFeatures.h
@@ -63,6 +63,9 @@ public:
WEBKIT_API static void enableApplicationCache(bool);
WEBKIT_API static bool isApplicationCacheEnabled();
+
+ WEBKIT_API static void enableDataTransferItems(bool);
+ WEBKIT_API static bool isDataTransferItemsEnabled();
WEBKIT_API static void enableGeolocation(bool);
WEBKIT_API static bool isGeolocationEnabled();
@@ -73,9 +76,6 @@ public:
WEBKIT_API static void enableWebAudio(bool);
WEBKIT_API static bool isWebAudioEnabled();
- WEBKIT_API static void enableWebGL(bool);
- WEBKIT_API static bool isWebGLEnabled();
-
WEBKIT_API static void enablePushState(bool);
WEBKIT_API static bool isPushStateEnabled(bool);
diff --git a/Source/WebKit/chromium/public/WebSettings.h b/Source/WebKit/chromium/public/WebSettings.h
index 11ed49d..113de52 100644
--- a/Source/WebKit/chromium/public/WebSettings.h
+++ b/Source/WebKit/chromium/public/WebSettings.h
@@ -101,6 +101,7 @@ public:
virtual bool showPlatformLayerTree() const = 0;
virtual void setEditingBehavior(EditingBehavior) = 0;
virtual void setAcceleratedCompositingEnabled(bool) = 0;
+ virtual void setForceCompositingMode(bool) = 0;
virtual void setCompositeToTextureEnabled(bool) = 0;
virtual bool compositeToTextureEnabled() const = 0;
virtual void setAcceleratedCompositingFor3DTransformsEnabled(bool) = 0;
diff --git a/Source/WebKit/chromium/public/WebSpellCheckClient.h b/Source/WebKit/chromium/public/WebSpellCheckClient.h
new file mode 100755
index 0000000..87bdf9e
--- /dev/null
+++ b/Source/WebKit/chromium/public/WebSpellCheckClient.h
@@ -0,0 +1,73 @@
+/*
+ * 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 WebSpellCheckClient_h
+#define WebSpellCheckClient_h
+
+#include "WebString.h"
+
+namespace WebKit {
+
+class WebString;
+class WebTextCheckingCompletion;
+
+class WebSpellCheckClient {
+public:
+ // The client should perform spell-checking on the given text. If the
+ // text contains a misspelled word, then upon return misspelledOffset
+ // will point to the start of the misspelled word, and misspelledLength
+ // will indicates its length. Otherwise, if there was not a spelling
+ // error, then upon return misspelledLength is 0.
+ virtual void spellCheck(
+ const WebString& text, int& misspelledOffset, int& misspelledLength) { }
+ // Requests asynchronous spelling and grammar checking, whose result should be
+ // returned by passed completion object.
+ virtual void requestCheckingOfText(const WebString&, WebTextCheckingCompletion*) { }
+
+ // Computes an auto-corrected replacement for a misspelled word. If no
+ // replacement is found, then an empty string is returned.
+ virtual WebString autoCorrectWord(const WebString& misspelledWord) { return WebString(); }
+
+ // Show or hide the spelling UI.
+ virtual void showSpellingUI(bool show) { }
+
+ // Returns true if the spelling UI is showing.
+ virtual bool isShowingSpellingUI() { return false; }
+
+ // Update the spelling UI with the given word.
+ virtual void updateSpellingUIWithMisspelledWord(const WebString& word) { }
+
+protected:
+ ~WebSpellCheckClient() { }
+};
+
+} // namespace WebKit
+
+#endif
diff --git a/Source/WebKit/chromium/public/WebTextCheckingCompletion.h b/Source/WebKit/chromium/public/WebTextCheckingCompletion.h
index 7e6526d..a207a27 100644
--- a/Source/WebKit/chromium/public/WebTextCheckingCompletion.h
+++ b/Source/WebKit/chromium/public/WebTextCheckingCompletion.h
@@ -35,7 +35,7 @@
namespace WebKit {
-class WebTextCheckingResult;
+struct WebTextCheckingResult;
template <typename T> class WebVector;
// Gets called back when WebViewClient finished an asynchronous spell checking.
diff --git a/Source/WebKit/chromium/public/WebTextCheckingResult.h b/Source/WebKit/chromium/public/WebTextCheckingResult.h
index 4d16d31..79fbb56 100644
--- a/Source/WebKit/chromium/public/WebTextCheckingResult.h
+++ b/Source/WebKit/chromium/public/WebTextCheckingResult.h
@@ -36,28 +36,22 @@
namespace WebKit {
// A checked entry of text checking.
-class WebTextCheckingResult {
-public:
+struct WebTextCheckingResult {
enum Error {
ErrorSpelling = 1 << 0,
ErrorGrammar = 1 << 1
};
- Error error() const { return m_error; }
- int position() const { return m_position; }
- int length() const { return m_length; }
-
- explicit WebTextCheckingResult(Error error = ErrorSpelling, int position = 0, int length = 0)
- : m_error(error)
- , m_position(position)
- , m_length(length)
+ explicit WebTextCheckingResult(Error e = ErrorSpelling, int p = 0, int l = 0)
+ : error(e)
+ , position(p)
+ , length(l)
{
}
-
-private:
- Error m_error;
- int m_position;
- int m_length;
+
+ Error error;
+ int position;
+ int length;
};
} // namespace WebKit
diff --git a/Source/WebKit/chromium/public/WebURL.h b/Source/WebKit/chromium/public/WebURL.h
index bb90e32..707ba08 100644
--- a/Source/WebKit/chromium/public/WebURL.h
+++ b/Source/WebKit/chromium/public/WebURL.h
@@ -143,6 +143,16 @@ inline bool operator<(const WebURL& a, const WebURL& b)
return a.spec() < b.spec();
}
+inline bool operator==(const WebURL& a, const WebURL& b)
+{
+ return !a.spec().compare(b.spec());
+}
+
+inline bool operator!=(const WebURL& a, const WebURL& b)
+{
+ return !(a == b);
+}
+
} // namespace WebKit
#endif
diff --git a/Source/WebKit/chromium/public/WebURLLoader.h b/Source/WebKit/chromium/public/WebURLLoader.h
index 54d105e..38efcb4 100644
--- a/Source/WebKit/chromium/public/WebURLLoader.h
+++ b/Source/WebKit/chromium/public/WebURLLoader.h
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2009 Google Inc. All rights reserved.
+ * Copyright (C) 2009, 2011 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
@@ -41,6 +41,21 @@ class WebURLRequest;
class WebURLResponse;
struct WebURLError;
+enum WebCrossOriginRequestPolicy {
+ DenyCrossOriginRequests,
+ UseAccessControl,
+ AllowCrossOriginRequests
+};
+
+struct WebURLLoaderOptions {
+ WebURLLoaderOptions() : sniffContent(false), allowCredentials(false), forcePreflight(false), crossOriginRequestPolicy(DenyCrossOriginRequests) { }
+
+ bool sniffContent; // Whether to sniff content.
+ bool allowCredentials; // Whether to send HTTP credentials and cookies with the request.
+ bool forcePreflight; // If AccessControl is used, whether to force a preflight.
+ WebCrossOriginRequestPolicy crossOriginRequestPolicy;
+};
+
class WebURLLoader {
public:
// The WebURLLoader may be deleted in a call to its client.
diff --git a/Source/WebKit/chromium/public/WebURLLoaderClient.h b/Source/WebKit/chromium/public/WebURLLoaderClient.h
index 87d100f..e306b19 100644
--- a/Source/WebKit/chromium/public/WebURLLoaderClient.h
+++ b/Source/WebKit/chromium/public/WebURLLoaderClient.h
@@ -58,6 +58,10 @@ public:
virtual void didDownloadData(WebURLLoader*, int dataLength) { }
// Called when a chunk of response data is received.
+ // FIXME(vsevik): rename once original didReceiveData() is removed.
+ virtual void didReceiveData2(WebURLLoader*, const char* data, int dataLength, int lengthReceived) { }
+
+ // FIXME(vsevik): remove once not used downstream
virtual void didReceiveData(WebURLLoader*, const char* data, int dataLength) { }
// Called when a chunk of renderer-generated metadata is received from the cache.
diff --git a/Source/WebKit/chromium/public/WebVector.h b/Source/WebKit/chromium/public/WebVector.h
index cf3ec95..bb02abc 100644
--- a/Source/WebKit/chromium/public/WebVector.h
+++ b/Source/WebKit/chromium/public/WebVector.h
@@ -125,6 +125,15 @@ public:
WEBKIT_ASSERT(i < m_size);
return m_ptr[i];
}
+
+ bool contains(const T& value) const
+ {
+ for (size_t i = 0; i < m_size; i++) {
+ if (m_ptr[i] == value)
+ return true;
+ }
+ return false;
+ }
T* data() { return m_ptr; }
const T* data() const { return m_ptr; }
@@ -172,6 +181,6 @@ private:
size_t m_size;
};
-} // namespace WebKit
+} // namespace WebKit
#endif
diff --git a/Source/WebKit/chromium/public/WebView.h b/Source/WebKit/chromium/public/WebView.h
index 081fddb..d32e09c 100644
--- a/Source/WebKit/chromium/public/WebView.h
+++ b/Source/WebKit/chromium/public/WebView.h
@@ -36,9 +36,6 @@
#include "WebVector.h"
#include "WebWidget.h"
-// FIXME(jam): take out once Chromium rolls past this revision
-#define WEBKIT_HAS_WEB_AUTO_FILL_CLIENT
-
namespace WebKit {
class WebAccessibilityObject;
@@ -51,6 +48,7 @@ class WebFrameClient;
class WebGraphicsContext3D;
class WebNode;
class WebSettings;
+class WebSpellCheckClient;
class WebString;
class WebViewClient;
struct WebMediaPlayerAction;
@@ -86,9 +84,7 @@ public:
// Creates a WebView that is NOT yet initialized. You will need to
// call initializeMainFrame to finish the initialization. It is valid
// to pass null client pointers.
- WEBKIT_API static WebView* create(WebViewClient*,
- WebDevToolsAgentClient*,
- WebAutoFillClient*);
+ WEBKIT_API static WebView* create(WebViewClient*);
// After creating a WebView, you should immediately call this method.
// You can optionally modify the settings before calling this method.
@@ -96,6 +92,11 @@ public:
// child frames. It is valid to pass a null WebFrameClient pointer.
virtual void initializeMainFrame(WebFrameClient*) = 0;
+ // Initializes the various client interfaces.
+ virtual void setDevToolsAgentClient(WebDevToolsAgentClient*) = 0;
+ virtual void setAutoFillClient(WebAutoFillClient*) = 0;
+ virtual void setSpellCheckClient(WebSpellCheckClient*) = 0;
+
// Options -------------------------------------------------------------
@@ -229,7 +230,11 @@ public:
// Callback methods when a drag-and-drop operation is trying to drop
// something on the WebView.
virtual WebDragOperation dragTargetDragEnter(
- const WebDragData&, int identity,
+ const WebDragData&, int identity, // FIXME: remove identity from this function signature.
+ const WebPoint& clientPoint, const WebPoint& screenPoint,
+ WebDragOperationsMask operationsAllowed) = 0;
+ virtual WebDragOperation dragTargetDragEnter(
+ const WebDragData&,
const WebPoint& clientPoint, const WebPoint& screenPoint,
WebDragOperationsMask operationsAllowed) = 0;
virtual WebDragOperation dragTargetDragOver(
@@ -239,13 +244,6 @@ public:
virtual void dragTargetDrop(
const WebPoint& clientPoint, const WebPoint& screenPoint) = 0;
- virtual int dragIdentity() = 0;
-
- // Helper method for drag and drop target operations: override the
- // default drop effect with either a "copy" (accept true) or "none"
- // (accept false) effect. Return true on success.
- virtual bool setDropEffect(bool accept) = 0;
-
// Support for resource loading initiated by plugins -------------------
diff --git a/Source/WebKit/chromium/public/WebViewClient.h b/Source/WebKit/chromium/public/WebViewClient.h
index 2588788..c168ef2 100644
--- a/Source/WebKit/chromium/public/WebViewClient.h
+++ b/Source/WebKit/chromium/public/WebViewClient.h
@@ -64,7 +64,6 @@ class WebRange;
class WebSpeechInputController;
class WebSpeechInputListener;
class WebStorageNamespace;
-class WebTextCheckingCompletion;
class WebURL;
class WebURLRequest;
class WebView;
@@ -170,32 +169,6 @@ public:
virtual bool handleCurrentKeyboardEvent() { return false; }
- // Spellchecker --------------------------------------------------------
-
- // The client should perform spell-checking on the given text. If the
- // text contains a misspelled word, then upon return misspelledOffset
- // will point to the start of the misspelled word, and misspelledLength
- // will indicates its length. Otherwise, if there was not a spelling
- // error, then upon return misspelledLength is 0.
- virtual void spellCheck(
- const WebString& text, int& misspelledOffset, int& misspelledLength) { }
- // Requests asynchronous spelling and grammar checking, whose result should be
- // returned by passed completion object.
- virtual void requestCheckingOfText(const WebString&, WebTextCheckingCompletion*) { }
- // Computes an auto-corrected replacement for a misspelled word. If no
- // replacement is found, then an empty string is returned.
- virtual WebString autoCorrectWord(const WebString& misspelledWord) { return WebString(); }
-
- // Show or hide the spelling UI.
- virtual void showSpellingUI(bool show) { }
-
- // Returns true if the spelling UI is showing.
- virtual bool isShowingSpellingUI() { return false; }
-
- // Update the spelling UI with the given word.
- virtual void updateSpellingUIWithMisspelledWord(const WebString& word) { }
-
-
// Dialogs -------------------------------------------------------------
// This method returns immediately after showing the dialog. When the
diff --git a/Source/WebKit/chromium/public/gtk/WebFontInfo.h b/Source/WebKit/chromium/public/gtk/WebFontInfo.h
index d603372..aa31faf 100644
--- a/Source/WebKit/chromium/public/gtk/WebFontInfo.h
+++ b/Source/WebKit/chromium/public/gtk/WebFontInfo.h
@@ -50,7 +50,7 @@ public:
//
// Returns: the font family or an empty string if the request could not be
// satisfied.
- WEBKIT_API static WebCString familyForChars(const WebUChar* characters, size_t numCharacters, const char* preferredLocale = 0);
+ WEBKIT_API static WebCString familyForChars(const WebUChar* characters, size_t numCharacters, const char* preferredLocale);
// Fill out the given WebFontRenderStyle with the user's preferences for
// rendering the given font at the given size.
diff --git a/Source/WebKit/chromium/scripts/generate_devtools_grd.py b/Source/WebKit/chromium/scripts/generate_devtools_grd.py
new file mode 100644
index 0000000..fabe64b
--- /dev/null
+++ b/Source/WebKit/chromium/scripts/generate_devtools_grd.py
@@ -0,0 +1,121 @@
+#!/usr/bin/env python
+#
+# Copyright (C) 2011 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.
+
+"""Creates a grd file for packaging the inspector files."""
+
+from __future__ import with_statement
+
+import errno
+import os
+import shutil
+import sys
+from xml.dom import minidom
+
+kDevToolsResourcePrefix = 'IDR_DEVTOOLS_'
+kGrdTemplate = '''<?xml version="1.0" encoding="UTF-8"?>
+<grit latest_public_release="0" current_release="1">
+ <outputs>
+ <output filename="grit/devtools_resources.h" type="rc_header">
+ <emit emit_type='prepend'></emit>
+ </output>
+ <output filename="grit/devtools_resources_map.cc" type="resource_file_map_source" />
+ <output filename="grit/devtools_resources_map.h" type="resource_map_header" />
+
+ <output filename="devtools_resources.pak" type="data_package" />
+ </outputs>
+ <release seq="1">
+ <includes></includes>
+ </release>
+</grit>
+'''
+
+
+class ParsedArgs:
+ def __init__(self, source_files, image_dirs, output_filename):
+ self.source_files = source_files
+ self.image_dirs = image_dirs
+ self.output_filename = output_filename
+
+
+def parse_args(argv):
+ images_position = argv.index('--images')
+ output_position = argv.index('--output')
+ source_files = argv[:images_position]
+ image_dirs = argv[images_position + 1:output_position]
+ return ParsedArgs(source_files, image_dirs, argv[output_position + 1])
+
+
+def make_name_from_filename(filename):
+ return (filename.replace('/', '_')
+ .replace('\\', '_')
+ .replace('.', '_')).upper()
+
+
+def add_file_to_grd(grd_doc, filename):
+ includes_node = grd_doc.getElementsByTagName('includes')[0]
+ includes_node.appendChild(grd_doc.createTextNode('\n '))
+
+ new_include_node = grd_doc.createElement('include')
+ new_include_node.setAttribute('name', make_name_from_filename(filename))
+ new_include_node.setAttribute('file', filename)
+ new_include_node.setAttribute('type', 'BINDATA')
+ includes_node.appendChild(new_include_node)
+
+
+def main(argv):
+ parsed_args = parse_args(argv[1:])
+
+ doc = minidom.parseString(kGrdTemplate)
+ output_directory = os.path.dirname(parsed_args.output_filename)
+
+ try:
+ os.makedirs(os.path.join(output_directory, 'Images'))
+ except OSError, e:
+ if e.errno != errno.EEXIST:
+ raise e
+
+ for filename in parsed_args.source_files:
+ shutil.copy(filename, output_directory)
+ add_file_to_grd(doc, os.path.basename(filename))
+
+ for dirname in parsed_args.image_dirs:
+ for filename in os.listdir(dirname):
+ if not filename.endswith('.png') and not filename.endswith('.gif'):
+ continue
+ shutil.copy(os.path.join(dirname, filename),
+ os.path.join(output_directory, 'Images'))
+ add_file_to_grd(doc, os.path.join('Images', filename))
+
+ with open(parsed_args.output_filename, 'w') as output_file:
+ output_file.write(doc.toxml(encoding='UTF-8'))
+
+
+if __name__ == '__main__':
+ sys.exit(main(sys.argv))
diff --git a/Source/WebKit/chromium/scripts/generate_devtools_html.py b/Source/WebKit/chromium/scripts/generate_devtools_html.py
index b9b5fff..b8eab09 100644
--- a/Source/WebKit/chromium/scripts/generate_devtools_html.py
+++ b/Source/WebKit/chromium/scripts/generate_devtools_html.py
@@ -45,17 +45,17 @@ def GenerateIncludeTag(resource_path):
def main(argv):
- if len(argv) < 5:
- print('usage: %s ignored inspector_html devtools_html debug'
+ if len(argv) < 4:
+ print('usage: %s inspector_html devtools_html debug'
' css_and_js_files_list' % argv[0])
return 1
# The first argument is ignored. We put 'webkit.gyp' in the inputs list
# for this script, so every time the list of script gets changed, our html
# file is rebuilt.
- inspector_html_name = argv[2]
- devtools_html_name = argv[3]
- debug = argv[4] != '0'
+ inspector_html_name = argv[1]
+ devtools_html_name = argv[2]
+ debug = argv[3] != '0'
inspector_html = open(inspector_html_name, 'r')
devtools_html = open(devtools_html_name, 'w')
@@ -66,7 +66,7 @@ def main(argv):
continue
if '</head>' in line:
if debug:
- for resource in argv[5:]:
+ for resource in argv[4:]:
devtools_html.write(GenerateIncludeTag(resource))
else:
devtools_html.write(GenerateIncludeTag("devTools.css"))
diff --git a/Source/WebKit/chromium/src/ApplicationCacheHost.cpp b/Source/WebKit/chromium/src/ApplicationCacheHost.cpp
index 2696b2c..3981ee9 100644
--- a/Source/WebKit/chromium/src/ApplicationCacheHost.cpp
+++ b/Source/WebKit/chromium/src/ApplicationCacheHost.cpp
@@ -42,6 +42,7 @@
#include "Page.h"
#include "ProgressEvent.h"
#include "Settings.h"
+#include "WebFrameImpl.h"
#include "WebURL.h"
#include "WebURLError.h"
#include "WebURLResponse.h"
@@ -81,7 +82,7 @@ void ApplicationCacheHost::maybeLoadMainResource(ResourceRequest& request, Subst
m_internal.set(new ApplicationCacheHostInternal(this));
if (m_internal->m_outerHost) {
WrappedResourceRequest wrapped(request);
- m_internal->m_outerHost->willStartMainResourceRequest(wrapped);
+ m_internal->m_outerHost->willStartMainResourceRequest(wrapped, WebFrameImpl::fromFrame(m_documentLoader->frame()));
} else
m_internal.clear();
@@ -259,7 +260,7 @@ void ApplicationCacheHost::stopDeferringEvents()
void ApplicationCacheHost::stopLoadingInFrame(Frame* frame)
{
- // FIXME: Implement this method.
+ // N/A to the chromium port
}
void ApplicationCacheHost::dispatchDOMEvent(EventID id, int total, int done)
diff --git a/Source/WebKit/chromium/src/AssertMatchingEnums.cpp b/Source/WebKit/chromium/src/AssertMatchingEnums.cpp
index 20fbcd5..7baaf8a 100644
--- a/Source/WebKit/chromium/src/AssertMatchingEnums.cpp
+++ b/Source/WebKit/chromium/src/AssertMatchingEnums.cpp
@@ -45,6 +45,7 @@
#include "GeolocationError.h"
#include "GeolocationPosition.h"
#include "HTMLInputElement.h"
+#include "IDBFactoryBackendInterface.h"
#include "IDBKey.h"
#include "MediaPlayer.h"
#include "NotificationPresenter.h"
@@ -67,6 +68,7 @@
#include "WebFontDescription.h"
#include "WebGeolocationError.h"
#include "WebGeolocationPosition.h"
+#include "WebIDBFactory.h"
#include "WebIDBKey.h"
#include "WebInputElement.h"
#include "WebMediaPlayer.h"
@@ -171,6 +173,10 @@ COMPILE_ASSERT_MATCHING_ENUM(WebAccessibilityRoleTreeItemRole, TreeItemRole);
COMPILE_ASSERT_MATCHING_ENUM(WebAccessibilityRoleDirectory, DirectoryRole);
COMPILE_ASSERT_MATCHING_ENUM(WebAccessibilityRoleEditableText, EditableTextRole);
COMPILE_ASSERT_MATCHING_ENUM(WebAccessibilityRoleListItem, ListItemRole);
+COMPILE_ASSERT_MATCHING_ENUM(WebAccessibilityRoleParagraph, ParagraphRole);
+COMPILE_ASSERT_MATCHING_ENUM(WebAccessibilityRoleLabel, LabelRole);
+COMPILE_ASSERT_MATCHING_ENUM(WebAccessibilityRoleDiv, DivRole);
+COMPILE_ASSERT_MATCHING_ENUM(WebAccessibilityRoleForm, FormRole);
COMPILE_ASSERT_MATCHING_ENUM(WebAccessibilityRoleLandmarkApplication, LandmarkApplicationRole);
COMPILE_ASSERT_MATCHING_ENUM(WebAccessibilityRoleLandmarkBanner, LandmarkBannerRole);
COMPILE_ASSERT_MATCHING_ENUM(WebAccessibilityRoleLandmarkComplementary, LandmarkComplementaryRole);
@@ -209,6 +215,7 @@ COMPILE_ASSERT_MATCHING_ENUM(WebApplicationCacheHost::CachedEvent, ApplicationCa
COMPILE_ASSERT_MATCHING_ENUM(WebApplicationCacheHost::ObsoleteEvent, ApplicationCacheHost::OBSOLETE_EVENT);
#endif
+COMPILE_ASSERT_MATCHING_ENUM(WebClipboard::FormatPlainText, PasteboardPrivate::PlainTextFormat);
COMPILE_ASSERT_MATCHING_ENUM(WebClipboard::FormatHTML, PasteboardPrivate::HTMLFormat);
COMPILE_ASSERT_MATCHING_ENUM(WebClipboard::FormatBookmark, PasteboardPrivate::BookmarkFormat);
COMPILE_ASSERT_MATCHING_ENUM(WebClipboard::FormatSmartPaste, PasteboardPrivate::WebSmartPasteFormat);
@@ -377,6 +384,9 @@ COMPILE_ASSERT_MATCHING_ENUM(WebIDBKey::StringType, IDBKey::StringType);
COMPILE_ASSERT_MATCHING_ENUM(WebIDBKey::DateType, IDBKey::DateType);
COMPILE_ASSERT_MATCHING_ENUM(WebIDBKey::NumberType, IDBKey::NumberType);
+COMPILE_ASSERT_MATCHING_ENUM(WebIDBFactory::DefaultBackingStore, IDBFactoryBackendInterface::DefaultBackingStore);
+COMPILE_ASSERT_MATCHING_ENUM(WebIDBFactory::LevelDBBackingStore, IDBFactoryBackendInterface::LevelDBBackingStore);
+
#if ENABLE(FILE_SYSTEM)
COMPILE_ASSERT_MATCHING_ENUM(WebFileSystem::TypeTemporary, AsyncFileSystem::Temporary);
COMPILE_ASSERT_MATCHING_ENUM(WebFileSystem::TypePersistent, AsyncFileSystem::Persistent);
diff --git a/Source/WebKit/chromium/src/AssociatedURLLoader.cpp b/Source/WebKit/chromium/src/AssociatedURLLoader.cpp
index 34a4055..1ca9900 100644
--- a/Source/WebKit/chromium/src/AssociatedURLLoader.cpp
+++ b/Source/WebKit/chromium/src/AssociatedURLLoader.cpp
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2010 Google Inc. All rights reserved.
+ * Copyright (C) 2010, 2011 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
@@ -31,103 +31,206 @@
#include "config.h"
#include "AssociatedURLLoader.h"
+#include "DocumentThreadableLoader.h"
+#include "DocumentThreadableLoaderClient.h"
+#include "SubresourceLoader.h"
#include "WebApplicationCacheHost.h"
#include "WebDataSource.h"
#include "WebFrameImpl.h"
#include "WebKit.h"
#include "WebKitClient.h"
+#include "WebURLError.h"
+#include "WebURLLoaderClient.h"
#include "WebURLRequest.h"
+#include "WrappedResourceRequest.h"
+#include "WrappedResourceResponse.h"
+
+using namespace WebCore;
+using namespace WebKit;
+using namespace WTF;
namespace WebKit {
-AssociatedURLLoader::AssociatedURLLoader(PassRefPtr<WebFrameImpl> frameImpl)
- : m_frameImpl(frameImpl),
- m_realLoader(webKitClient()->createURLLoader()),
- m_realClient(0)
+// This class bridges the interface differences between WebCore and WebKit loader clients.
+// It forwards its ThreadableLoaderClient notifications to a WebURLLoaderClient.
+class AssociatedURLLoader::ClientAdapter : public DocumentThreadableLoaderClient {
+public:
+ static PassOwnPtr<ClientAdapter> create(AssociatedURLLoader*, WebURLLoaderClient*, bool /*downloadToFile*/);
+
+ virtual void didSendData(unsigned long long /*bytesSent*/, unsigned long long /*totalBytesToBeSent*/);
+ virtual void willSendRequest(ResourceRequest& /*newRequest*/, const ResourceResponse& /*redirectResponse*/);
+
+ virtual void didReceiveResponse(const ResourceResponse&);
+ virtual void didReceiveData(const char*, int /*dataLength*/);
+ virtual void didReceiveCachedMetadata(const char*, int /*dataLength*/);
+ virtual void didFinishLoading(unsigned long /*identifier*/, double /*finishTime*/);
+ virtual void didFail(const ResourceError&);
+
+ virtual bool isDocumentThreadableLoaderClient() { return true; }
+
+ // This method stops loading and releases the DocumentThreadableLoader as early as possible.
+ void clearClient() { m_client = 0; }
+
+private:
+ ClientAdapter(AssociatedURLLoader*, WebURLLoaderClient*, bool /*downloadToFile*/);
+
+ AssociatedURLLoader* m_loader;
+ WebURLLoaderClient* m_client;
+ unsigned long m_downloadLength;
+ bool m_downloadToFile;
+};
+
+PassOwnPtr<AssociatedURLLoader::ClientAdapter> AssociatedURLLoader::ClientAdapter::create(AssociatedURLLoader* loader, WebURLLoaderClient* client, bool downloadToFile)
{
+ return adoptPtr(new ClientAdapter(loader, client, downloadToFile));
}
-AssociatedURLLoader::~AssociatedURLLoader()
+AssociatedURLLoader::ClientAdapter::ClientAdapter(AssociatedURLLoader* loader, WebURLLoaderClient* client, bool downloadToFile)
+ : m_loader(loader)
+ , m_client(client)
+ , m_downloadLength(0)
+ , m_downloadToFile(downloadToFile)
{
+ ASSERT(m_loader);
+ ASSERT(m_client);
}
-void AssociatedURLLoader::loadSynchronously(const WebURLRequest& request, WebURLResponse& response, WebURLError& error, WebData& data)
+void AssociatedURLLoader::ClientAdapter::willSendRequest(ResourceRequest& newRequest, const ResourceResponse& redirectResponse)
{
- ASSERT(!m_realClient);
-
- WebURLRequest requestCopy(request);
- prepareRequest(requestCopy);
+ if (!m_client)
+ return;
- m_realLoader->loadSynchronously(requestCopy, response, error, data);
+ WrappedResourceRequest wrappedNewRequest(newRequest);
+ WrappedResourceResponse wrappedRedirectResponse(redirectResponse);
+ m_client->willSendRequest(m_loader, wrappedNewRequest, wrappedRedirectResponse);
}
-void AssociatedURLLoader::loadAsynchronously(const WebURLRequest& request, WebURLLoaderClient* client)
+void AssociatedURLLoader::ClientAdapter::didSendData(unsigned long long bytesSent, unsigned long long totalBytesToBeSent)
{
- ASSERT(!m_realClient);
+ if (!m_client)
+ return;
- WebURLRequest requestCopy(request);
- prepareRequest(requestCopy);
+ m_client->didSendData(m_loader, bytesSent, totalBytesToBeSent);
+}
- m_realClient = client;
- m_realLoader->loadAsynchronously(requestCopy, this);
+void AssociatedURLLoader::ClientAdapter::didReceiveResponse(const ResourceResponse& response)
+{
+ WrappedResourceResponse wrappedResponse(response);
+ m_client->didReceiveResponse(m_loader, wrappedResponse);
}
-void AssociatedURLLoader::cancel()
+void AssociatedURLLoader::ClientAdapter::didReceiveData(const char* data, int dataLength)
{
- m_realLoader->cancel();
+ if (!m_client)
+ return;
+
+ // FIXME(vsevik): add -1 to params once migrated.
+ m_client->didReceiveData(m_loader, data, dataLength);
+ m_downloadLength += dataLength;
}
-void AssociatedURLLoader::setDefersLoading(bool defersLoading)
+void AssociatedURLLoader::ClientAdapter::didReceiveCachedMetadata(const char* data, int lengthReceived)
{
- m_realLoader->setDefersLoading(defersLoading);
+ if (!m_client)
+ return;
+
+ m_client->didReceiveCachedMetadata(m_loader, data, lengthReceived);
}
-void AssociatedURLLoader::prepareRequest(WebURLRequest& request)
+void AssociatedURLLoader::ClientAdapter::didFinishLoading(unsigned long identifier, double finishTime)
{
- WebApplicationCacheHost* applicationCacheHost = m_frameImpl->dataSource()->applicationCacheHost();
- if (applicationCacheHost)
- applicationCacheHost->willStartSubResourceRequest(request);
- m_frameImpl->dispatchWillSendRequest(request);
+ if (!m_client)
+ return;
+
+ if (m_downloadToFile) {
+ int downloadLength = m_downloadLength <= INT_MAX ? m_downloadLength : INT_MAX;
+ m_client->didDownloadData(m_loader, downloadLength);
+ // While the client could have cancelled, continue, since the load finished.
+ }
+
+ m_client->didFinishLoading(m_loader, finishTime);
}
-void AssociatedURLLoader::willSendRequest(WebURLLoader*, WebURLRequest& newRequest, const WebURLResponse& redirectResponse)
+void AssociatedURLLoader::ClientAdapter::didFail(const ResourceError& error)
{
- m_realClient->willSendRequest(this, newRequest, redirectResponse);
+ if (!m_client)
+ return;
+
+ WebURLError webError(error);
+ m_client->didFail(m_loader, webError);
}
-void AssociatedURLLoader::didSendData(WebURLLoader*, unsigned long long bytesSent, unsigned long long totalBytesToBeSent)
+AssociatedURLLoader::AssociatedURLLoader(PassRefPtr<WebFrameImpl> frameImpl)
+ : m_frameImpl(frameImpl)
+ , m_client(0)
{
- m_realClient->didSendData(this, bytesSent, totalBytesToBeSent);
+ ASSERT(m_frameImpl);
+
+ m_options.sniffContent = false;
+ m_options.allowCredentials = true;
+ m_options.forcePreflight = false;
+ m_options.crossOriginRequestPolicy = AllowCrossOriginRequests; // TODO(bbudge) Default should be DenyCrossOriginRequests, but this would break some tests.
}
-void AssociatedURLLoader::didReceiveResponse(WebURLLoader*, const WebURLResponse& response)
+AssociatedURLLoader::AssociatedURLLoader(PassRefPtr<WebFrameImpl> frameImpl, const WebURLLoaderOptions& options)
+ : m_frameImpl(frameImpl)
+ , m_options(options)
+ , m_client(0)
{
- m_realClient->didReceiveResponse(this, response);
+ ASSERT(m_frameImpl);
}
-void AssociatedURLLoader::didDownloadData(WebURLLoader*, int dataLength)
+AssociatedURLLoader::~AssociatedURLLoader()
{
- m_realClient->didDownloadData(this, dataLength);
+ if (m_clientAdapter)
+ m_clientAdapter->clearClient();
}
-void AssociatedURLLoader::didReceiveData(WebURLLoader*, const char* data, int dataLength)
+#define COMPILE_ASSERT_MATCHING_ENUM(webkit_name, webcore_name) \
+ COMPILE_ASSERT(static_cast<int>(WebKit::webkit_name) == static_cast<int>(WebCore::webcore_name), mismatching_enums)
+
+COMPILE_ASSERT_MATCHING_ENUM(DenyCrossOriginRequests, DenyCrossOriginRequests);
+COMPILE_ASSERT_MATCHING_ENUM(UseAccessControl, UseAccessControl);
+COMPILE_ASSERT_MATCHING_ENUM(AllowCrossOriginRequests, AllowCrossOriginRequests);
+
+void AssociatedURLLoader::loadSynchronously(const WebURLRequest& request, WebURLResponse& response, WebURLError& error, WebData& data)
{
- m_realClient->didReceiveData(this, data, dataLength);
+ ASSERT(0); // Synchronous loading is not supported.
}
-void AssociatedURLLoader::didReceiveCachedMetadata(WebURLLoader*, const char* data, int dataLength)
+void AssociatedURLLoader::loadAsynchronously(const WebURLRequest& request, WebURLLoaderClient* client)
{
- m_realClient->didReceiveCachedMetadata(this, data, dataLength);
+ ASSERT(!m_client);
+
+ m_client = client;
+ ASSERT(m_client);
+
+ ThreadableLoaderOptions options;
+ options.sendLoadCallbacks = true; // Always send callbacks.
+ options.sniffContent = m_options.sniffContent;
+ options.allowCredentials = m_options.allowCredentials;
+ options.forcePreflight = m_options.forcePreflight;
+ options.crossOriginRequestPolicy = static_cast<WebCore::CrossOriginRequestPolicy>(m_options.crossOriginRequestPolicy);
+
+ const ResourceRequest& webcoreRequest = request.toResourceRequest();
+ Document* webcoreDocument = m_frameImpl->frame()->document();
+ m_clientAdapter = ClientAdapter::create(this, m_client, request.downloadToFile());
+
+ m_loader = DocumentThreadableLoader::create(webcoreDocument, m_clientAdapter.get(), webcoreRequest, options);
}
-void AssociatedURLLoader::didFinishLoading(WebURLLoader*, double finishTime)
+void AssociatedURLLoader::cancel()
{
- m_realClient->didFinishLoading(this, finishTime);
+ if (m_loader) {
+ m_clientAdapter->clearClient();
+ m_loader->cancel();
+ }
}
-void AssociatedURLLoader::didFail(WebURLLoader*, const WebURLError& error)
+void AssociatedURLLoader::setDefersLoading(bool defersLoading)
{
- m_realClient->didFail(this, error);
+ if (m_loader)
+ m_loader->setDefersLoading(defersLoading);
}
} // namespace WebKit
diff --git a/Source/WebKit/chromium/src/AssociatedURLLoader.h b/Source/WebKit/chromium/src/AssociatedURLLoader.h
index 91cb0bf..ed183e5 100644
--- a/Source/WebKit/chromium/src/AssociatedURLLoader.h
+++ b/Source/WebKit/chromium/src/AssociatedURLLoader.h
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2010 Google Inc. All rights reserved.
+ * Copyright (C) 2010, 2011 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
@@ -32,20 +32,22 @@
#define AssociatedURLLoader_h
#include "WebURLLoader.h"
-#include "WebURLLoaderClient.h"
+#include <wtf/Noncopyable.h>
#include <wtf/OwnPtr.h>
#include <wtf/RefPtr.h>
+namespace WebCore { class DocumentThreadableLoader; }
+
namespace WebKit {
class WebFrameImpl;
// This class is used to implement WebFrame::createAssociatedURLLoader.
-// FIXME: Implement in terms of WebCore::SubresourceLoader.
-class AssociatedURLLoader : public WebURLLoader,
- public WebURLLoaderClient {
+class AssociatedURLLoader : public WebURLLoader {
+ WTF_MAKE_NONCOPYABLE(AssociatedURLLoader);
public:
AssociatedURLLoader(PassRefPtr<WebFrameImpl>);
+ AssociatedURLLoader(PassRefPtr<WebFrameImpl>, const WebURLLoaderOptions&);
~AssociatedURLLoader();
// WebURLLoader methods:
@@ -54,22 +56,15 @@ public:
virtual void cancel();
virtual void setDefersLoading(bool);
- // WebURLLoaderClient methods:
- virtual void willSendRequest(WebURLLoader*, WebURLRequest& newRequest, const WebURLResponse& redirectResponse);
- virtual void didSendData(WebURLLoader*, unsigned long long bytesSent, unsigned long long totalBytesToBeSent);
- virtual void didReceiveResponse(WebURLLoader*, const WebURLResponse&);
- virtual void didDownloadData(WebURLLoader*, int dataLength);
- virtual void didReceiveData(WebURLLoader*, const char* data, int dataLength);
- virtual void didReceiveCachedMetadata(WebURLLoader*, const char* data, int dataLength);
- virtual void didFinishLoading(WebURLLoader*, double finishTime);
- virtual void didFail(WebURLLoader*, const WebURLError&);
-
private:
- void prepareRequest(WebURLRequest&);
+
+ class ClientAdapter;
RefPtr<WebFrameImpl> m_frameImpl;
- OwnPtr<WebURLLoader> m_realLoader;
- WebURLLoaderClient* m_realClient;
+ WebURLLoaderOptions m_options;
+ WebURLLoaderClient* m_client;
+ OwnPtr<ClientAdapter> m_clientAdapter;
+ RefPtr<WebCore::DocumentThreadableLoader> m_loader;
};
} // namespace WebKit
diff --git a/Source/WebKit/chromium/src/AudioDestinationChromium.cpp b/Source/WebKit/chromium/src/AudioDestinationChromium.cpp
index a483308..6fc51db 100644
--- a/Source/WebKit/chromium/src/AudioDestinationChromium.cpp
+++ b/Source/WebKit/chromium/src/AudioDestinationChromium.cpp
@@ -98,8 +98,7 @@ void AudioDestinationChromium::stop()
double AudioDestination::hardwareSampleRate()
{
- // FIXME: implement this properly for Chromium.
- return 44100.0;
+ return webKitClient()->audioHardwareSampleRate();
}
// Pulls on our provider to get the rendered audio stream.
diff --git a/Source/WebKit/chromium/src/ChromeClientImpl.cpp b/Source/WebKit/chromium/src/ChromeClientImpl.cpp
index 1e639ec..99302cc 100644
--- a/Source/WebKit/chromium/src/ChromeClientImpl.cpp
+++ b/Source/WebKit/chromium/src/ChromeClientImpl.cpp
@@ -857,7 +857,7 @@ void ChromeClientImpl::exitFullscreenForNode(WebCore::Node* node)
}
#if ENABLE(FULLSCREEN_API)
-bool ChromeClientImpl::supportsFullScreenForElement(const WebCore::Element* element)
+bool ChromeClientImpl::supportsFullScreenForElement(const WebCore::Element* element, bool withKeyboard)
{
return m_webView->page()->settings()->fullScreenEnabled();
}
diff --git a/Source/WebKit/chromium/src/ChromeClientImpl.h b/Source/WebKit/chromium/src/ChromeClientImpl.h
index e70b766..f3a48ee 100644
--- a/Source/WebKit/chromium/src/ChromeClientImpl.h
+++ b/Source/WebKit/chromium/src/ChromeClientImpl.h
@@ -166,7 +166,7 @@ public:
virtual void exitFullscreenForNode(WebCore::Node*);
#if ENABLE(FULLSCREEN_API)
- virtual bool supportsFullScreenForElement(const WebCore::Element*);
+ virtual bool supportsFullScreenForElement(const WebCore::Element*, bool withKeyboard);
virtual void enterFullScreenForElement(WebCore::Element*);
virtual void exitFullScreenForElement(WebCore::Element*);
virtual void fullScreenRendererChanged(WebCore::RenderBox*);
diff --git a/Source/WebKit/chromium/src/DebuggerAgentManager.cpp b/Source/WebKit/chromium/src/DebuggerAgentManager.cpp
index b76bcfe..368b78c 100644
--- a/Source/WebKit/chromium/src/DebuggerAgentManager.cpp
+++ b/Source/WebKit/chromium/src/DebuggerAgentManager.cpp
@@ -34,7 +34,7 @@
#include "DebuggerAgentImpl.h"
#include "Frame.h"
#include "PageGroupLoadDeferrer.h"
-#include "ScriptDebugServer.h"
+#include "PageScriptDebugServer.h"
#include "V8Proxy.h"
#include "WebDevToolsAgentImpl.h"
#include "WebFrameImpl.h"
@@ -247,7 +247,7 @@ void DebuggerAgentManager::setMessageLoopDispatchHandler(WebDevToolsAgent::Messa
void DebuggerAgentManager::setExposeV8DebuggerProtocol(bool value)
{
s_exposeV8DebuggerProtocol = value;
- WebCore::ScriptDebugServer::shared().setEnabled(!s_exposeV8DebuggerProtocol);
+ WebCore::PageScriptDebugServer::shared().setEnabled(!s_exposeV8DebuggerProtocol);
}
void DebuggerAgentManager::setHostId(WebFrameImpl* webframe, int hostId)
diff --git a/Source/WebKit/chromium/src/EditorClientImpl.cpp b/Source/WebKit/chromium/src/EditorClientImpl.cpp
index 38d4f5e..6f2231d 100644
--- a/Source/WebKit/chromium/src/EditorClientImpl.cpp
+++ b/Source/WebKit/chromium/src/EditorClientImpl.cpp
@@ -54,6 +54,7 @@
#include "WebNode.h"
#include "WebPasswordAutocompleteListener.h"
#include "WebRange.h"
+#include "WebSpellCheckClient.h"
#include "WebTextAffinity.h"
#include "WebTextCheckingCompletionImpl.h"
#include "WebViewClient.h"
@@ -856,8 +857,8 @@ void EditorClientImpl::checkSpellingOfString(const UChar* text, int length,
int spellLength = 0;
// Check to see if the provided text is spelled correctly.
- if (isContinuousSpellCheckingEnabled() && m_webView->client())
- m_webView->client()->spellCheck(WebString(text, length), spellLocation, spellLength);
+ if (isContinuousSpellCheckingEnabled() && m_webView->spellCheckClient())
+ m_webView->spellCheckClient()->spellCheck(WebString(text, length), spellLocation, spellLength);
else {
spellLocation = 0;
spellLength = 0;
@@ -873,7 +874,8 @@ void EditorClientImpl::checkSpellingOfString(const UChar* text, int length,
void EditorClientImpl::requestCheckingOfString(SpellChecker* sender, int identifier, const String& text)
{
- m_webView->client()->requestCheckingOfText(text, new WebTextCheckingCompletionImpl(identifier, sender));
+ if (m_webView->spellCheckClient())
+ m_webView->spellCheckClient()->requestCheckingOfText(text, new WebTextCheckingCompletionImpl(identifier, sender));
}
String EditorClientImpl::getAutoCorrectSuggestionForMisspelledWord(const String& misspelledWord)
@@ -888,7 +890,9 @@ String EditorClientImpl::getAutoCorrectSuggestionForMisspelledWord(const String&
return String();
}
- return m_webView->client()->autoCorrectWord(WebString(misspelledWord));
+ if (m_webView->spellCheckClient())
+ return m_webView->spellCheckClient()->autoCorrectWord(WebString(misspelledWord));
+ return String();
}
void EditorClientImpl::checkGrammarOfString(const UChar*, int length,
@@ -911,20 +915,20 @@ void EditorClientImpl::updateSpellingUIWithGrammarString(const String&,
void EditorClientImpl::updateSpellingUIWithMisspelledWord(const String& misspelledWord)
{
- if (m_webView->client())
- m_webView->client()->updateSpellingUIWithMisspelledWord(WebString(misspelledWord));
+ if (m_webView->spellCheckClient())
+ m_webView->spellCheckClient()->updateSpellingUIWithMisspelledWord(WebString(misspelledWord));
}
void EditorClientImpl::showSpellingUI(bool show)
{
- if (m_webView->client())
- m_webView->client()->showSpellingUI(show);
+ if (m_webView->spellCheckClient())
+ m_webView->spellCheckClient()->showSpellingUI(show);
}
bool EditorClientImpl::spellingUIIsShowing()
{
- if (m_webView->client())
- return m_webView->client()->isShowingSpellingUI();
+ if (m_webView->spellCheckClient())
+ return m_webView->spellCheckClient()->isShowingSpellingUI();
return false;
}
diff --git a/Source/WebKit/chromium/src/FrameLoaderClientImpl.cpp b/Source/WebKit/chromium/src/FrameLoaderClientImpl.cpp
index dc47923..647a70c 100644
--- a/Source/WebKit/chromium/src/FrameLoaderClientImpl.cpp
+++ b/Source/WebKit/chromium/src/FrameLoaderClientImpl.cpp
@@ -1,5 +1,6 @@
/*
* Copyright (C) 2009 Google Inc. All rights reserved.
+ * Copyright (C) 2011 Apple Inc. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are
@@ -1479,7 +1480,8 @@ PassRefPtr<Widget> FrameLoaderClientImpl::createJavaAppletWidget(
ObjectContentType FrameLoaderClientImpl::objectContentType(
const KURL& url,
- const String& explicitMimeType)
+ const String& explicitMimeType,
+ bool shouldPreferPlugInsForImages)
{
// This code is based on Apple's implementation from
// WebCoreSupport/WebFrameBridge.mm.
@@ -1503,12 +1505,14 @@ ObjectContentType FrameLoaderClientImpl::objectContentType(
return ObjectContentFrame;
}
- if (MIMETypeRegistry::isSupportedImageMIMEType(mimeType))
- return ObjectContentImage;
-
// If Chrome is started with the --disable-plugins switch, pluginData is 0.
PluginData* pluginData = m_webFrame->frame()->page()->pluginData();
- if (pluginData && pluginData->supportsMimeType(mimeType))
+ bool plugInSupportsMIMEType = pluginData && pluginData->supportsMimeType(mimeType);
+
+ if (MIMETypeRegistry::isSupportedImageMIMEType(mimeType))
+ return shouldPreferPlugInsForImages && plugInSupportsMIMEType ? ObjectContentNetscapePlugin : ObjectContentImage;
+
+ if (plugInSupportsMIMEType)
return ObjectContentNetscapePlugin;
if (MIMETypeRegistry::isSupportedNonImageMIMEType(mimeType))
diff --git a/Source/WebKit/chromium/src/FrameLoaderClientImpl.h b/Source/WebKit/chromium/src/FrameLoaderClientImpl.h
index 7abf617..f19c26c 100644
--- a/Source/WebKit/chromium/src/FrameLoaderClientImpl.h
+++ b/Source/WebKit/chromium/src/FrameLoaderClientImpl.h
@@ -1,5 +1,6 @@
/*
* Copyright (C) 2009 Google Inc. All rights reserved.
+ * Copyright (C) 2011 Apple Inc. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are
@@ -197,7 +198,7 @@ public:
const Vector<WTF::String>& paramNames,
const Vector<WTF::String>& paramValues);
virtual WebCore::ObjectContentType objectContentType(
- const WebCore::KURL& url, const WTF::String& mimeType);
+ const WebCore::KURL&, const WTF::String& mimeType, bool shouldPreferPlugInsForImages);
virtual WTF::String overrideMediaType() const;
virtual void didPerformFirstNavigation() const;
virtual void registerForIconNotification(bool listen = true);
diff --git a/Source/WebKit/chromium/src/GraphicsContext3DChromium.cpp b/Source/WebKit/chromium/src/GraphicsContext3DChromium.cpp
index 3d937ac..54c18e3 100644
--- a/Source/WebKit/chromium/src/GraphicsContext3DChromium.cpp
+++ b/Source/WebKit/chromium/src/GraphicsContext3DChromium.cpp
@@ -82,6 +82,7 @@ namespace WebCore {
GraphicsContext3DInternal::GraphicsContext3DInternal()
: m_webViewImpl(0)
, m_initializedAvailableExtensions(false)
+ , m_layerComposited(false)
#if USE(SKIA)
#elif PLATFORM(CG)
, m_renderOutput(0)
@@ -160,6 +161,24 @@ WebGLLayerChromium* GraphicsContext3DInternal::platformLayer() const
}
#endif
+void GraphicsContext3DInternal::markContextChanged()
+{
+#if USE(ACCELERATED_COMPOSITING)
+ platformLayer()->setTextureUpdated();
+#endif
+ m_layerComposited = false;
+}
+
+void GraphicsContext3DInternal::markLayerComposited()
+{
+ m_layerComposited = true;
+}
+
+bool GraphicsContext3DInternal::layerComposited() const
+{
+ return m_layerComposited;
+}
+
void GraphicsContext3DInternal::paintRenderingResultsToCanvas(CanvasRenderingContext* context)
{
HTMLCanvasElement* canvas = context->canvas();
@@ -200,6 +219,16 @@ void GraphicsContext3DInternal::paintRenderingResultsToCanvas(CanvasRenderingCon
m_impl->readBackFramebuffer(pixels, 4 * m_impl->width() * m_impl->height());
+ if (!m_impl->getContextAttributes().premultipliedAlpha) {
+ size_t bufferSize = 4 * m_impl->width() * m_impl->height();
+
+ for (size_t i = 0; i < bufferSize; i += 4) {
+ pixels[i + 0] = std::min(255, pixels[i + 0] * pixels[i + 3] / 255);
+ pixels[i + 1] = std::min(255, pixels[i + 1] * pixels[i + 3] / 255);
+ pixels[i + 2] = std::min(255, pixels[i + 2] * pixels[i + 3] / 255);
+ }
+ }
+
#if USE(SKIA)
if (m_resizingBitmap.readyToDraw()) {
// We need to draw the resizing bitmap into the canvas's backing store.
@@ -218,6 +247,23 @@ void GraphicsContext3DInternal::paintRenderingResultsToCanvas(CanvasRenderingCon
#endif
}
+PassRefPtr<ImageData> GraphicsContext3DInternal::paintRenderingResultsToImageData()
+{
+ if (m_impl->getContextAttributes().premultipliedAlpha)
+ return 0;
+
+ RefPtr<ImageData> imageData = ImageData::create(IntSize(m_impl->width(), m_impl->height()));
+ unsigned char* pixels = imageData->data()->data()->data();
+ size_t bufferSize = 4 * m_impl->width() * m_impl->height();
+
+ m_impl->readBackFramebuffer(pixels, bufferSize);
+
+ for (size_t i = 0; i < bufferSize; i += 4)
+ std::swap(pixels[i], pixels[i + 2]);
+
+ return imageData.release();
+}
+
bool GraphicsContext3DInternal::paintsIntoCanvasBuffer() const
{
// If the gpu compositor is on then skip the readback and software rendering path.
@@ -1058,7 +1104,16 @@ DELEGATE_TO_INTERNAL_6(vertexAttribPointer, GC3Duint, GC3Dint, GC3Denum, GC3Dboo
DELEGATE_TO_INTERNAL_4(viewport, GC3Dint, GC3Dint, GC3Dsizei, GC3Dsizei)
+DELEGATE_TO_INTERNAL(markLayerComposited)
+DELEGATE_TO_INTERNAL(markContextChanged)
+
+bool GraphicsContext3D::layerComposited() const
+{
+ return m_internal->layerComposited();
+}
+
DELEGATE_TO_INTERNAL_1(paintRenderingResultsToCanvas, CanvasRenderingContext*)
+DELEGATE_TO_INTERNAL_R(paintRenderingResultsToImageData, PassRefPtr<ImageData>)
bool GraphicsContext3D::paintsIntoCanvasBuffer() const
{
diff --git a/Source/WebKit/chromium/src/GraphicsContext3DInternal.h b/Source/WebKit/chromium/src/GraphicsContext3DInternal.h
index c8f7c7a..0af291e 100644
--- a/Source/WebKit/chromium/src/GraphicsContext3DInternal.h
+++ b/Source/WebKit/chromium/src/GraphicsContext3DInternal.h
@@ -66,7 +66,12 @@ public:
void reshape(int width, int height);
IntSize getInternalFramebufferSize();
+ void markContextChanged();
+ bool layerComposited() const;
+ void markLayerComposited();
+
void paintRenderingResultsToCanvas(CanvasRenderingContext*);
+ PassRefPtr<ImageData> paintRenderingResultsToImageData();
bool paintsIntoCanvasBuffer() const;
void prepareTexture();
@@ -273,6 +278,7 @@ private:
bool m_initializedAvailableExtensions;
HashSet<String> m_enabledExtensions;
HashSet<String> m_requestableExtensions;
+ bool m_layerComposited;
#if USE(ACCELERATED_COMPOSITING)
RefPtr<WebGLLayerChromium> m_compositingLayer;
#endif
diff --git a/Source/WebKit/chromium/src/IDBCallbacksProxy.cpp b/Source/WebKit/chromium/src/IDBCallbacksProxy.cpp
index ea0f433..727092a 100644
--- a/Source/WebKit/chromium/src/IDBCallbacksProxy.cpp
+++ b/Source/WebKit/chromium/src/IDBCallbacksProxy.cpp
@@ -35,7 +35,6 @@
#include "WebIDBCursorImpl.h"
#include "WebIDBDatabaseImpl.h"
#include "WebIDBDatabaseError.h"
-#include "WebIDBIndexImpl.h"
#include "WebIDBKey.h"
#include "WebIDBTransactionImpl.h"
#include "WebSerializedScriptValue.h"
@@ -73,11 +72,6 @@ void IDBCallbacksProxy::onSuccess(PassRefPtr<IDBDatabaseBackendInterface> backen
m_callbacks->onSuccess(new WebKit::WebIDBDatabaseImpl(backend));
}
-void IDBCallbacksProxy::onSuccess(PassRefPtr<IDBIndexBackendInterface> backend)
-{
- m_callbacks->onSuccess(new WebKit::WebIDBIndexImpl(backend));
-}
-
void IDBCallbacksProxy::onSuccess(PassRefPtr<IDBKey> idbKey)
{
m_callbacks->onSuccess(WebKit::WebIDBKey(idbKey));
diff --git a/Source/WebKit/chromium/src/IDBCallbacksProxy.h b/Source/WebKit/chromium/src/IDBCallbacksProxy.h
index 912cb86..6829845 100644
--- a/Source/WebKit/chromium/src/IDBCallbacksProxy.h
+++ b/Source/WebKit/chromium/src/IDBCallbacksProxy.h
@@ -50,7 +50,6 @@ public:
virtual void onError(PassRefPtr<IDBDatabaseError>);
virtual void onSuccess(PassRefPtr<IDBCursorBackendInterface>);
virtual void onSuccess(PassRefPtr<IDBDatabaseBackendInterface>);
- virtual void onSuccess(PassRefPtr<IDBIndexBackendInterface>);
virtual void onSuccess(PassRefPtr<IDBKey>);
virtual void onSuccess(PassRefPtr<IDBTransactionBackendInterface>);
virtual void onSuccess(PassRefPtr<SerializedScriptValue>);
diff --git a/Source/WebKit/chromium/src/IDBFactoryBackendProxy.cpp b/Source/WebKit/chromium/src/IDBFactoryBackendProxy.cpp
index 67504a3..9e5ccc0 100755
--- a/Source/WebKit/chromium/src/IDBFactoryBackendProxy.cpp
+++ b/Source/WebKit/chromium/src/IDBFactoryBackendProxy.cpp
@@ -59,13 +59,12 @@ IDBFactoryBackendProxy::~IDBFactoryBackendProxy()
{
}
-void IDBFactoryBackendProxy::open(const String& name, PassRefPtr<IDBCallbacks> callbacks, PassRefPtr<SecurityOrigin> origin, Frame* frame, const String& dataDir, int64_t maximumSize)
+void IDBFactoryBackendProxy::open(const String& name, PassRefPtr<IDBCallbacks> callbacks, PassRefPtr<SecurityOrigin> origin, Frame* frame, const String& dataDir, int64_t maximumSize, BackingStoreType backingStoreType)
{
WebKit::WebFrame* webFrame = WebKit::WebFrameImpl::fromFrame(frame);
- m_webIDBFactory->open(name, new WebIDBCallbacksImpl(callbacks), origin, webFrame, dataDir, maximumSize);
+ m_webIDBFactory->open(name, new WebIDBCallbacksImpl(callbacks), origin, webFrame, dataDir, maximumSize, static_cast<WebKit::WebIDBFactory::BackingStoreType>(backingStoreType));
}
} // namespace WebCore
#endif // ENABLE(INDEXED_DATABASE)
-
diff --git a/Source/WebKit/chromium/src/IDBFactoryBackendProxy.h b/Source/WebKit/chromium/src/IDBFactoryBackendProxy.h
index 5950a68..593051e 100755
--- a/Source/WebKit/chromium/src/IDBFactoryBackendProxy.h
+++ b/Source/WebKit/chromium/src/IDBFactoryBackendProxy.h
@@ -45,7 +45,7 @@ public:
virtual ~IDBFactoryBackendProxy();
PassRefPtr<DOMStringList> databases(void) const;
- virtual void open(const String& name, PassRefPtr<IDBCallbacks>, PassRefPtr<SecurityOrigin>, Frame*, const String& dataDir, int64_t maximumSize);
+ virtual void open(const String& name, PassRefPtr<IDBCallbacks>, PassRefPtr<SecurityOrigin>, Frame*, const String& dataDir, int64_t maximumSize, BackingStoreType);
private:
IDBFactoryBackendProxy();
@@ -59,4 +59,3 @@ private:
#endif
#endif // IDBFactoryBackendProxy_h
-
diff --git a/Source/WebKit/chromium/src/LocalFileSystemChromium.cpp b/Source/WebKit/chromium/src/LocalFileSystemChromium.cpp
index 35e4de8..b377bdb 100644
--- a/Source/WebKit/chromium/src/LocalFileSystemChromium.cpp
+++ b/Source/WebKit/chromium/src/LocalFileSystemChromium.cpp
@@ -57,29 +57,40 @@ LocalFileSystem& LocalFileSystem::localFileSystem()
return *localFileSystem;
}
-void LocalFileSystem::readFileSystem(ScriptExecutionContext* context, AsyncFileSystem::Type type, PassOwnPtr<AsyncFileSystemCallbacks> callbacks)
-{
- ASSERT(context && context->isDocument());
- Document* document = static_cast<Document*>(context);
- WebFrameImpl* webFrame = WebFrameImpl::fromFrame(document->frame());
- webFrame->client()->openFileSystem(webFrame, static_cast<WebFileSystem::Type>(type), 0, false, new WebFileSystemCallbacksImpl(callbacks, type));
-}
+namespace {
-void LocalFileSystem::requestFileSystem(ScriptExecutionContext* context, AsyncFileSystem::Type type, long long size, PassOwnPtr<AsyncFileSystemCallbacks> callbacks, bool synchronous)
+enum CreationFlag {
+ OpenExisting,
+ CreateIfNotPresent
+};
+
+} // namespace
+
+static void openFileSystemHelper(ScriptExecutionContext* context, AsyncFileSystem::Type type, PassOwnPtr<AsyncFileSystemCallbacks> callbacks, bool synchronous, long long size, CreationFlag create)
{
ASSERT(context);
if (context->isDocument()) {
Document* document = static_cast<Document*>(context);
WebFrameImpl* webFrame = WebFrameImpl::fromFrame(document->frame());
- webFrame->client()->openFileSystem(webFrame, static_cast<WebFileSystem::Type>(type), size, true, new WebFileSystemCallbacksImpl(callbacks, type));
+ webFrame->client()->openFileSystem(webFrame, static_cast<WebFileSystem::Type>(type), size, create == CreateIfNotPresent, new WebFileSystemCallbacksImpl(callbacks, type));
} else {
WorkerContext* workerContext = static_cast<WorkerContext*>(context);
WorkerLoaderProxy* workerLoaderProxy = &workerContext->thread()->workerLoaderProxy();
WebWorkerBase* webWorker = static_cast<WebWorkerBase*>(workerLoaderProxy);
- webWorker->openFileSystemForWorker(static_cast<WebFileSystem::Type>(type), size, new WebFileSystemCallbacksImpl(callbacks, type, context, synchronous), synchronous);
+ webWorker->openFileSystemForWorker(static_cast<WebFileSystem::Type>(type), size, create == CreateIfNotPresent, new WebFileSystemCallbacksImpl(callbacks, type, context, synchronous), synchronous);
}
}
+void LocalFileSystem::readFileSystem(ScriptExecutionContext* context, AsyncFileSystem::Type type, PassOwnPtr<AsyncFileSystemCallbacks> callbacks, bool synchronous)
+{
+ openFileSystemHelper(context, type, callbacks, synchronous, 0, OpenExisting);
+}
+
+void LocalFileSystem::requestFileSystem(ScriptExecutionContext* context, AsyncFileSystem::Type type, long long size, PassOwnPtr<AsyncFileSystemCallbacks> callbacks, bool synchronous)
+{
+ openFileSystemHelper(context, type, callbacks, synchronous, size, CreateIfNotPresent);
+}
+
} // namespace WebCore
#endif // ENABLE(FILE_SYSTEM)
diff --git a/Source/WebKit/chromium/src/LocalizedStrings.cpp b/Source/WebKit/chromium/src/LocalizedStrings.cpp
index 18f9fb8..35e03c4 100644
--- a/Source/WebKit/chromium/src/LocalizedStrings.cpp
+++ b/Source/WebKit/chromium/src/LocalizedStrings.cpp
@@ -257,7 +257,7 @@ String contextMenuItemTagNoGuessesFound() { return String(); }
String contextMenuItemTagIgnoreSpelling() { return String(); }
String contextMenuItemTagLearnSpelling() { return String(); }
String contextMenuItemTagSearchWeb() { return String(); }
-String contextMenuItemTagLookUpInDictionary() { return String(); }
+String contextMenuItemTagLookUpInDictionary(const String&) { return String(); }
String contextMenuItemTagOpenLink() { return String(); }
String contextMenuItemTagIgnoreGrammar() { return String(); }
String contextMenuItemTagSpellingMenu() { return String(); }
diff --git a/Source/WebKit/chromium/src/PlatformMessagePortChannel.h b/Source/WebKit/chromium/src/PlatformMessagePortChannel.h
index 5416145..9cd7001 100644
--- a/Source/WebKit/chromium/src/PlatformMessagePortChannel.h
+++ b/Source/WebKit/chromium/src/PlatformMessagePortChannel.h
@@ -46,7 +46,7 @@ namespace WebCore {
class MessagePort;
// PlatformMessagePortChannel is a platform-dependent interface to the remote side of a message channel.
-class PlatformMessagePortChannel : public ThreadSafeShared<PlatformMessagePortChannel>,
+class PlatformMessagePortChannel : public ThreadSafeRefCounted<PlatformMessagePortChannel>,
public WebKit::WebMessagePortChannelClient {
public:
static void createChannel(PassRefPtr<MessagePort>, PassRefPtr<MessagePort>);
diff --git a/Source/WebKit/chromium/src/ResourceHandle.cpp b/Source/WebKit/chromium/src/ResourceHandle.cpp
index 72f60bb..f88a48a 100644
--- a/Source/WebKit/chromium/src/ResourceHandle.cpp
+++ b/Source/WebKit/chromium/src/ResourceHandle.cpp
@@ -72,7 +72,11 @@ public:
virtual void didSendData(
WebURLLoader*, unsigned long long bytesSent, unsigned long long totalBytesToBeSent);
virtual void didReceiveResponse(WebURLLoader*, const WebURLResponse&);
+ virtual void didReceiveData2(WebURLLoader*, const char* data, int dataLength, int lengthReceived);
+
+ // FIXME(vsevik): remove once not used downstream
virtual void didReceiveData(WebURLLoader*, const char* data, int dataLength);
+
virtual void didReceiveCachedMetadata(WebURLLoader*, const char* data, int dataLength);
virtual void didFinishLoading(WebURLLoader*, double finishTime);
virtual void didFail(WebURLLoader*, const WebURLError&);
@@ -159,18 +163,20 @@ void ResourceHandleInternal::didReceiveResponse(WebURLLoader*, const WebURLRespo
m_client->didReceiveResponse(m_owner, response.toResourceResponse());
}
-void ResourceHandleInternal::didReceiveData(
- WebURLLoader*, const char* data, int dataLength)
+// FIXME(vsevik): remove once not used
+void ResourceHandleInternal::didReceiveData(WebURLLoader* webURLLoader, const char* data, int dataLength)
+{
+ didReceiveData2(webURLLoader, data, dataLength, -1);
+}
+
+void ResourceHandleInternal::didReceiveData2(WebURLLoader*, const char* data, int dataLength, int lengthReceived)
{
ASSERT(m_client);
if (m_state != ConnectionStateReceivedResponse && m_state != ConnectionStateReceivingData)
CRASH();
m_state = ConnectionStateReceivingData;
- // FIXME(yurys): it looks like lengthReceived is always the same as
- // dataLength and that the latter parameter can be eliminated.
- // See WebKit bug: https://bugs.webkit.org/show_bug.cgi?id=31019
- m_client->didReceiveData(m_owner, data, dataLength, dataLength);
+ m_client->didReceiveData(m_owner, data, dataLength, lengthReceived);
}
void ResourceHandleInternal::didReceiveCachedMetadata(WebURLLoader*, const char* data, int dataLength)
diff --git a/Source/WebKit/chromium/src/StorageNamespaceProxy.cpp b/Source/WebKit/chromium/src/StorageNamespaceProxy.cpp
index ec0dbce..ef19b2f 100644
--- a/Source/WebKit/chromium/src/StorageNamespaceProxy.cpp
+++ b/Source/WebKit/chromium/src/StorageNamespaceProxy.cpp
@@ -92,6 +92,21 @@ void StorageNamespaceProxy::unlock()
// FIXME: Implement.
}
+void StorageNamespaceProxy::clearOriginForDeletion(SecurityOrigin* origin)
+{
+ ASSERT_NOT_REACHED();
+}
+
+void StorageNamespaceProxy::clearAllOriginsForDeletion()
+{
+ ASSERT_NOT_REACHED();
+}
+
+void StorageNamespaceProxy::sync()
+{
+ ASSERT_NOT_REACHED();
+}
+
} // namespace WebCore
#endif // ENABLE(DOM_STORAGE)
diff --git a/Source/WebKit/chromium/src/StorageNamespaceProxy.h b/Source/WebKit/chromium/src/StorageNamespaceProxy.h
index 28d7a23..9388531 100644
--- a/Source/WebKit/chromium/src/StorageNamespaceProxy.h
+++ b/Source/WebKit/chromium/src/StorageNamespaceProxy.h
@@ -43,6 +43,11 @@ public:
virtual PassRefPtr<StorageNamespace> copy();
virtual void close();
virtual void unlock();
+
+ virtual void clearOriginForDeletion(SecurityOrigin*);
+ virtual void clearAllOriginsForDeletion();
+
+ virtual void sync();
private:
OwnPtr<WebKit::WebStorageNamespace> m_storageNamespace;
diff --git a/Source/WebKit/chromium/src/WebAccessibilityObject.cpp b/Source/WebKit/chromium/src/WebAccessibilityObject.cpp
index 30305bd..8df112a 100644
--- a/Source/WebKit/chromium/src/WebAccessibilityObject.cpp
+++ b/Source/WebKit/chromium/src/WebAccessibilityObject.cpp
@@ -537,6 +537,12 @@ WebString WebAccessibilityObject::computedStyleDisplay() const
return WebString(CSSPrimitiveValue::create(renderStyle->display())->getStringValue());
}
+bool WebAccessibilityObject::accessibilityIsIgnored() const
+{
+ m_private->updateBackingStore();
+ return m_private->accessibilityIsIgnored();
+}
+
WebAccessibilityObject::WebAccessibilityObject(const WTF::PassRefPtr<WebCore::AccessibilityObject>& object)
: m_private(static_cast<WebAccessibilityObjectPrivate*>(object.releaseRef()))
{
diff --git a/Source/WebKit/chromium/src/WebBindings.cpp b/Source/WebKit/chromium/src/WebBindings.cpp
index 0882e38..4012d1c 100644
--- a/Source/WebKit/chromium/src/WebBindings.cpp
+++ b/Source/WebKit/chromium/src/WebBindings.cpp
@@ -35,25 +35,18 @@
#include "npruntime_priv.h"
#if USE(V8)
-#include "ChromiumDataObject.h"
-#include "ClipboardChromium.h"
-#include "EventNames.h"
-#include "MouseEvent.h"
#include "NPV8Object.h" // for PrivateIdentifier
#include "Range.h"
#include "V8BindingState.h"
#include "V8DOMWrapper.h"
#include "V8Element.h"
-#include "V8Event.h"
-#include "V8Helpers.h"
-#include "V8HiddenPropertyName.h"
#include "V8NPUtils.h"
+#include "V8Node.h"
#include "V8Proxy.h"
#include "V8Range.h"
#elif USE(JSC)
#include "bridge/c/c_utility.h"
#endif
-#include "WebDragData.h"
#include "WebElement.h"
#include "WebRange.h"
@@ -65,9 +58,9 @@ using namespace WebCore;
namespace WebKit {
-bool WebBindings::construct(NPP npp, NPObject *npobj, const NPVariant *args, uint32_t argCount, NPVariant* result)
+bool WebBindings::construct(NPP npp, NPObject* object, const NPVariant* args, uint32_t argCount, NPVariant* result)
{
- return _NPN_Construct(npp, npobj, args, argCount, result);
+ return _NPN_Construct(npp, object, args, argCount, result);
}
NPObject* WebBindings::createObject(NPP npp, NPClass* npClass)
@@ -75,19 +68,19 @@ NPObject* WebBindings::createObject(NPP npp, NPClass* npClass)
return _NPN_CreateObject(npp, npClass);
}
-bool WebBindings::enumerate(NPP id, NPObject* obj, NPIdentifier** identifier, uint32_t* val)
+bool WebBindings::enumerate(NPP npp, NPObject* object, NPIdentifier** identifier, uint32_t* identifierCount)
{
- return _NPN_Enumerate(id, obj, identifier, val);
+ return _NPN_Enumerate(npp, object, identifier, identifierCount);
}
-bool WebBindings::evaluate(NPP npp, NPObject* npObject, NPString* npScript, NPVariant* result)
+bool WebBindings::evaluate(NPP npp, NPObject* object, NPString* script, NPVariant* result)
{
- return _NPN_Evaluate(npp, npObject, npScript, result);
+ return _NPN_Evaluate(npp, object, script, result);
}
-bool WebBindings::evaluateHelper(NPP npp, bool popups_allowed, NPObject* npobj, NPString* npscript, NPVariant* result)
+bool WebBindings::evaluateHelper(NPP npp, bool popupsAllowed, NPObject* object, NPString* script, NPVariant* result)
{
- return _NPN_EvaluateHelper(npp, popups_allowed, npobj, npscript, result);
+ return _NPN_EvaluateHelper(npp, popupsAllowed, object, script, result);
}
NPIdentifier WebBindings::getIntIdentifier(int32_t number)
@@ -95,9 +88,9 @@ NPIdentifier WebBindings::getIntIdentifier(int32_t number)
return _NPN_GetIntIdentifier(number);
}
-bool WebBindings::getProperty(NPP npp, NPObject* obj, NPIdentifier propertyName, NPVariant *result)
+bool WebBindings::getProperty(NPP npp, NPObject* object, NPIdentifier property, NPVariant* result)
{
- return _NPN_GetProperty(npp, obj, propertyName, result);
+ return _NPN_GetProperty(npp, object, property, result);
}
NPIdentifier WebBindings::getStringIdentifier(const NPUTF8* string)
@@ -110,14 +103,14 @@ void WebBindings::getStringIdentifiers(const NPUTF8** names, int32_t nameCount,
_NPN_GetStringIdentifiers(names, nameCount, identifiers);
}
-bool WebBindings::hasMethod(NPP npp, NPObject* npObject, NPIdentifier methodName)
+bool WebBindings::hasMethod(NPP npp, NPObject* object, NPIdentifier method)
{
- return _NPN_HasMethod(npp, npObject, methodName);
+ return _NPN_HasMethod(npp, object, method);
}
-bool WebBindings::hasProperty(NPP npp, NPObject* npObject, NPIdentifier propertyName)
+bool WebBindings::hasProperty(NPP npp, NPObject* object, NPIdentifier property)
{
- return _NPN_HasProperty(npp, npObject, propertyName);
+ return _NPN_HasProperty(npp, object, property);
}
bool WebBindings::identifierIsString(NPIdentifier identifier)
@@ -139,19 +132,19 @@ void WebBindings::initializeVariantWithStringCopy(NPVariant* variant, const NPSt
#endif
}
-bool WebBindings::invoke(NPP npp, NPObject* npObject, NPIdentifier methodName, const NPVariant* arguments, uint32_t argumentCount, NPVariant* result)
+bool WebBindings::invoke(NPP npp, NPObject* object, NPIdentifier method, const NPVariant* args, uint32_t argCount, NPVariant* result)
{
- return _NPN_Invoke(npp, npObject, methodName, arguments, argumentCount, result);
+ return _NPN_Invoke(npp, object, method, args, argCount, result);
}
-bool WebBindings::invokeDefault(NPP id, NPObject* obj, const NPVariant* args, uint32_t count, NPVariant* result)
+bool WebBindings::invokeDefault(NPP npp, NPObject* object, const NPVariant* args, uint32_t argCount, NPVariant* result)
{
- return _NPN_InvokeDefault(id, obj, args, count, result);
+ return _NPN_InvokeDefault(npp, object, args, argCount, result);
}
-void WebBindings::releaseObject(NPObject* npObject)
+void WebBindings::releaseObject(NPObject* object)
{
- return _NPN_ReleaseObject(npObject);
+ return _NPN_ReleaseObject(object);
}
void WebBindings::releaseVariantValue(NPVariant* variant)
@@ -159,30 +152,30 @@ void WebBindings::releaseVariantValue(NPVariant* variant)
_NPN_ReleaseVariantValue(variant);
}
-bool WebBindings::removeProperty(NPP id, NPObject* object, NPIdentifier identifier)
+bool WebBindings::removeProperty(NPP npp, NPObject* object, NPIdentifier identifier)
{
- return _NPN_RemoveProperty(id, object, identifier);
+ return _NPN_RemoveProperty(npp, object, identifier);
}
-NPObject* WebBindings::retainObject(NPObject* npObject)
+NPObject* WebBindings::retainObject(NPObject* object)
{
- return _NPN_RetainObject(npObject);
+ return _NPN_RetainObject(object);
}
-void WebBindings::setException(NPObject* obj, const NPUTF8* message)
+void WebBindings::setException(NPObject* object, const NPUTF8* message)
{
- _NPN_SetException(obj, message);
+ _NPN_SetException(object, message);
}
-bool WebBindings::setProperty(NPP id, NPObject* obj, NPIdentifier identifier, const NPVariant* variant)
+bool WebBindings::setProperty(NPP npp, NPObject* object, NPIdentifier identifier, const NPVariant* value)
{
- return _NPN_SetProperty(id, obj, identifier, variant);
+ return _NPN_SetProperty(npp, object, identifier, value);
}
-void WebBindings::unregisterObject(NPObject* npObject)
+void WebBindings::unregisterObject(NPObject* object)
{
#if USE(V8)
- _NPN_UnregisterObject(npObject);
+ _NPN_UnregisterObject(object);
#endif
}
@@ -193,116 +186,46 @@ NPUTF8* WebBindings::utf8FromIdentifier(NPIdentifier identifier)
void WebBindings::extractIdentifierData(const NPIdentifier& identifier, const NPUTF8*& string, int32_t& number, bool& isString)
{
- PrivateIdentifier* priv = static_cast<PrivateIdentifier*>(identifier);
- if (!priv) {
+ PrivateIdentifier* data = static_cast<PrivateIdentifier*>(identifier);
+ if (!data) {
isString = false;
number = 0;
return;
}
- isString = priv->isString;
+ isString = data->isString;
if (isString)
- string = priv->value.string;
+ string = data->value.string;
else
- number = priv->value.number;
+ number = data->value.number;
}
#if USE(V8)
-static v8::Local<v8::Value> getEvent(const v8::Handle<v8::Context>& context)
+static bool getRangeImpl(NPObject* object, WebRange* webRange)
{
- return context->Global()->GetHiddenValue(V8HiddenPropertyName::event());
-}
-
-static bool getDragDataImpl(NPObject* npobj, int* eventId, WebDragData* data)
-{
- if (!npobj)
- return false;
- if (npobj->_class != npScriptObjectClass)
- return false;
-
- v8::HandleScope handleScope;
- v8::Handle<v8::Context> context = v8::Context::GetEntered();
- if (context.IsEmpty())
- return false;
-
- // Get the current WebCore event.
- v8::Handle<v8::Value> currentEvent(getEvent(context));
- Event* event = V8Event::toNative(v8::Handle<v8::Object>::Cast(currentEvent));
- if (!event)
- return false;
-
- // Check that the given npobj is that event.
- V8NPObject* object = reinterpret_cast<V8NPObject*>(npobj);
- Event* given = V8Event::toNative(object->v8Object);
- if (given != event)
- return false;
-
- // Check the execution frames are same origin.
- V8Proxy* current = V8Proxy::retrieve(V8Proxy::retrieveFrameForCurrentContext());
- Frame* frame = V8Proxy::retrieveFrame(context);
- if (!current || !V8BindingSecurity::canAccessFrame(V8BindingState::Only(), frame, false))
- return false;
-
- const EventNames& names(eventNames());
- const AtomicString& eventType(event->type());
-
- enum DragTargetMouseEventId {
- DragEnterId = 1, DragOverId = 2, DragLeaveId = 3, DropId = 4
- };
-
- // The event type should be a drag event.
- if (eventType == names.dragenterEvent)
- *eventId = DragEnterId;
- else if (eventType == names.dragoverEvent)
- *eventId = DragOverId;
- else if (eventType == names.dragleaveEvent)
- *eventId = DragLeaveId;
- else if (eventType == names.dropEvent)
- *eventId = DropId;
- else
- return false;
-
- // Drag events are mouse events and should have a clipboard.
- MouseEvent* me = static_cast<MouseEvent*>(event);
- Clipboard* clipboard = me->clipboard();
- if (!clipboard)
+ if (!object || (object->_class != npScriptObjectClass))
return false;
- // And that clipboard should be accessible by WebKit policy.
- ClipboardChromium* chrome = static_cast<ClipboardChromium*>(clipboard);
- HashSet<String> accessible(chrome->types());
- if (accessible.isEmpty())
- return false;
-
- RefPtr<ChromiumDataObject> dataObject(chrome->dataObject());
- if (dataObject && data)
- *data = WebDragData(dataObject);
-
- return dataObject;
-}
-
-static bool getRangeImpl(NPObject* npobj, WebRange* range)
-{
- V8NPObject* v8npobject = reinterpret_cast<V8NPObject*>(npobj);
- v8::Handle<v8::Object> v8object(v8npobject->v8Object);
- if (!V8Range::info.equals(V8DOMWrapper::domWrapperType(v8object)))
+ V8NPObject* v8NPObject = reinterpret_cast<V8NPObject*>(object);
+ v8::Handle<v8::Object> v8Object(v8NPObject->v8Object);
+ if (!V8Range::info.equals(V8DOMWrapper::domWrapperType(v8Object)))
return false;
- Range* native = V8Range::toNative(v8object);
+ Range* native = V8Range::toNative(v8Object);
if (!native)
return false;
- *range = WebRange(native);
+ *webRange = WebRange(native);
return true;
}
-static bool getElementImpl(NPObject* npObj, WebElement* webElement)
+static bool getElementImpl(NPObject* object, WebElement* webElement)
{
- if (!npObj || (npObj->_class != npScriptObjectClass))
+ if (!object || (object->_class != npScriptObjectClass))
return false;
- V8NPObject* v8NPObject = reinterpret_cast<V8NPObject*>(npObj);
+ V8NPObject* v8NPObject = reinterpret_cast<V8NPObject*>(object);
v8::Handle<v8::Object> v8Object(v8NPObject->v8Object);
Element* native = V8Element::toNative(v8Object);
if (!native)
@@ -316,7 +239,7 @@ static NPObject* makeIntArrayImpl(const WebVector<int>& data)
{
v8::HandleScope handleScope;
v8::Handle<v8::Array> result = v8::Array::New(data.size());
- for (size_t i = 0; i < data.size(); i++)
+ for (size_t i = 0; i < data.size(); ++i)
result->Set(i, v8::Number::New(data[i]));
WebCore::DOMWindow* window = WebCore::V8Proxy::retrieveWindow(WebCore::V8Proxy::currentContext());
@@ -334,28 +257,22 @@ static NPObject* makeStringArrayImpl(const WebVector<WebString>& data)
return npCreateV8ScriptObject(0, result, window);
}
-#endif
-
-bool WebBindings::getDragData(NPObject* event, int* eventId, WebDragData* data)
+static NPObject* makeNodeImpl(WebNode data)
{
-#if USE(V8)
- return getDragDataImpl(event, eventId, data);
-#else
- // Not supported on other ports (JSC, etc).
- return false;
-#endif
+ v8::HandleScope handleScope;
+ if (data.isNull())
+ return 0;
+ v8::Handle<v8::Object> result = V8Node::wrap(data.unwrap<Node>());
+ WebCore::DOMWindow* window = WebCore::V8Proxy::retrieveWindow(WebCore::V8Proxy::currentContext());
+ return npCreateV8ScriptObject(0, result, window);
}
-bool WebBindings::isDragEvent(NPObject* event)
-{
- int eventId;
- return getDragData(event, &eventId, 0);
-}
+#endif
-bool WebBindings::getRange(NPObject* range, WebRange* webrange)
+bool WebBindings::getRange(NPObject* range, WebRange* webRange)
{
#if USE(V8)
- return getRangeImpl(range, webrange);
+ return getRangeImpl(range, webRange);
#else
// Not supported on other ports (JSC, etc).
return false;
@@ -372,7 +289,7 @@ bool WebBindings::getElement(NPObject* element, WebElement* webElement)
#endif
}
-NPObject* WebBindings::makeIntArray(const WebVector<int> & data)
+NPObject* WebBindings::makeIntArray(const WebVector<int>& data)
{
#if USE(V8)
return makeIntArrayImpl(data);
@@ -392,6 +309,16 @@ NPObject* WebBindings::makeStringArray(const WebVector<WebString>& data)
#endif
}
+NPObject* WebBindings::makeNode(const WebNode& data)
+{
+#if USE(V8)
+ return makeNodeImpl(data);
+#else
+ // Not supported on other ports (JSC, etc.).
+ return 0;
+#endif
+}
+
void WebBindings::pushExceptionHandler(ExceptionHandler handler, void* data)
{
WebCore::pushExceptionHandler(handler, data);
diff --git a/Source/WebKit/chromium/src/WebDOMMouseEvent.cpp b/Source/WebKit/chromium/src/WebDOMMouseEvent.cpp
index bfeae37..1e65888 100644
--- a/Source/WebKit/chromium/src/WebDOMMouseEvent.cpp
+++ b/Source/WebKit/chromium/src/WebDOMMouseEvent.cpp
@@ -57,24 +57,24 @@ int WebDOMMouseEvent::clientY() const
return constUnwrap<MouseEvent>()->clientY();
}
-int WebDOMMouseEvent::layerX() const
+int WebDOMMouseEvent::layerX()
{
- return constUnwrap<MouseEvent>()->layerX();
+ return unwrap<MouseEvent>()->layerX();
}
-int WebDOMMouseEvent::layerY() const
+int WebDOMMouseEvent::layerY()
{
- return constUnwrap<MouseEvent>()->layerY();
+ return unwrap<MouseEvent>()->layerY();
}
-int WebDOMMouseEvent::offsetX() const
+int WebDOMMouseEvent::offsetX()
{
- return constUnwrap<MouseEvent>()->offsetX();
+ return unwrap<MouseEvent>()->offsetX();
}
-int WebDOMMouseEvent::offsetY() const
+int WebDOMMouseEvent::offsetY()
{
- return constUnwrap<MouseEvent>()->offsetY();
+ return unwrap<MouseEvent>()->offsetY();
}
int WebDOMMouseEvent::pageX() const
diff --git a/Source/WebKit/chromium/src/WebDataSourceImpl.cpp b/Source/WebKit/chromium/src/WebDataSourceImpl.cpp
index 65147fa..1366a80 100644
--- a/Source/WebKit/chromium/src/WebDataSourceImpl.cpp
+++ b/Source/WebKit/chromium/src/WebDataSourceImpl.cpp
@@ -174,7 +174,7 @@ WebDataSourceImpl::WebDataSourceImpl(const ResourceRequest& request, const Subst
// frame, which results in a second data source being created. We want
// to wait to attach the WebPluginLoadObserver to that data source.
if (!request.url().isEmpty()) {
- ASSERT(m_nextPluginLoadObserver->url() == request.url());
+ ASSERT(m_nextPluginLoadObserver->url() == WebURL(request.url()));
m_pluginLoadObserver.set(m_nextPluginLoadObserver);
m_nextPluginLoadObserver = 0;
}
diff --git a/Source/WebKit/chromium/src/WebDevToolsAgentImpl.cpp b/Source/WebKit/chromium/src/WebDevToolsAgentImpl.cpp
index 6329d76..c1a5f9c 100644
--- a/Source/WebKit/chromium/src/WebDevToolsAgentImpl.cpp
+++ b/Source/WebKit/chromium/src/WebDevToolsAgentImpl.cpp
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2010 Google Inc. All rights reserved.
+ * Copyright (C) 2010-2011 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
@@ -40,13 +40,12 @@
#include "InspectorInstrumentation.h"
#include "Page.h"
#include "PageGroup.h"
+#include "PageScriptDebugServer.h"
#include "PlatformString.h"
#include "ResourceError.h"
#include "ResourceRequest.h"
#include "ResourceResponse.h"
-#include "ScriptDebugServer.h"
#include "V8Binding.h"
-#include "V8Node.h"
#include "V8Proxy.h"
#include "V8Utilities.h"
#include "WebDataSource.h"
@@ -73,14 +72,14 @@ namespace {
static const char kFrontendConnectedFeatureName[] = "frontend-connected";
static const char kInspectorStateFeatureName[] = "inspector-state";
-class ClientMessageLoopAdapter : public ScriptDebugServer::ClientMessageLoop {
+class ClientMessageLoopAdapter : public PageScriptDebugServer::ClientMessageLoop {
public:
static void ensureClientMessageLoopCreated(WebDevToolsAgentClient* client)
{
if (s_instance)
return;
s_instance = new ClientMessageLoopAdapter(client->createClientMessageLoop());
- ScriptDebugServer::shared().setClientMessageLoop(s_instance);
+ PageScriptDebugServer::shared().setClientMessageLoop(s_instance);
}
static void inspectedViewClosed(WebViewImpl* view)
@@ -93,7 +92,7 @@ public:
{
// Release render thread if necessary.
if (s_instance && s_instance->m_running)
- ScriptDebugServer::shared().continueProgram();
+ PageScriptDebugServer::shared().continueProgram();
}
private:
@@ -187,9 +186,6 @@ void WebDevToolsAgentImpl::attach()
m_debuggerAgentImpl.set(
new DebuggerAgentImpl(m_webViewImpl, this, m_client));
- WebCString debuggerScriptJs = m_client->debuggerScriptSource();
- ScriptDebugServer::shared().setDebuggerScriptSource(
- String(debuggerScriptJs.data(), debuggerScriptJs.length()));
m_attached = true;
}
@@ -230,14 +226,6 @@ void WebDevToolsAgentImpl::inspectElementAt(const WebPoint& point)
m_webViewImpl->inspectElementAt(point);
}
-void WebDevToolsAgentImpl::inspectNode(v8::Handle<v8::Value> node)
-{
- if (!V8Node::HasInstance(node))
- V8Proxy::setDOMException(TYPE_MISMATCH_ERR);
- else
- inspectorController()->inspect(V8Node::toNative(v8::Handle<v8::Object>::Cast(node)));
-}
-
void WebDevToolsAgentImpl::setRuntimeProperty(const WebString& name, const WebString& value)
{
if (name == kInspectorStateFeatureName) {
@@ -260,49 +248,6 @@ Frame* WebDevToolsAgentImpl::mainFrame()
return 0;
}
-
-//------- plugin resource load notifications ---------------
-void WebDevToolsAgentImpl::identifierForInitialRequest(
- unsigned long resourceId,
- WebFrame* webFrame,
- const WebURLRequest& request)
-{
- WebFrameImpl* webFrameImpl = static_cast<WebFrameImpl*>(webFrame);
- Frame* frame = webFrameImpl->frame();
- DocumentLoader* loader = frame->loader()->activeDocumentLoader();
- InspectorInstrumentation::identifierForInitialRequest(frame, resourceId, loader, request.toResourceRequest());
-}
-
-void WebDevToolsAgentImpl::willSendRequest(unsigned long resourceId, WebURLRequest& request)
-{
- if (InspectorController* ic = inspectorController()) {
- InspectorInstrumentation::willSendRequest(mainFrame(), resourceId, request.toMutableResourceRequest(), ResourceResponse());
- if (ic->hasFrontend() && request.reportLoadTiming())
- request.setReportRawHeaders(true);
- }
-}
-
-void WebDevToolsAgentImpl::didReceiveData(unsigned long resourceId, int length)
-{
- InspectorInstrumentation::didReceiveContentLength(mainFrame(), resourceId, length);
-}
-
-void WebDevToolsAgentImpl::didReceiveResponse(unsigned long resourceId, const WebURLResponse& response)
-{
- InspectorInstrumentationCookie cookie = InspectorInstrumentation::willReceiveResourceResponse(mainFrame(), resourceId, response.toResourceResponse());
- InspectorInstrumentation::didReceiveResourceResponse(cookie, resourceId, 0, response.toResourceResponse());
-}
-
-void WebDevToolsAgentImpl::didFinishLoading(unsigned long resourceId)
-{
- InspectorInstrumentation::didFinishLoading(mainFrame(), resourceId, 0);
-}
-
-void WebDevToolsAgentImpl::didFailLoading(unsigned long resourceId, const WebURLError& error)
-{
- InspectorInstrumentation::didFailLoading(mainFrame(), resourceId, error);
-}
-
void WebDevToolsAgentImpl::inspectorDestroyed()
{
// Our lifetime is bound to the WebViewImpl.
@@ -374,7 +319,7 @@ void WebDevToolsAgent::debuggerPauseScript()
void WebDevToolsAgent::interruptAndDispatch(MessageDescriptor* d)
{
- class DebuggerTask : public ScriptDebugServer::Task {
+ class DebuggerTask : public PageScriptDebugServer::Task {
public:
DebuggerTask(WebDevToolsAgent::MessageDescriptor* descriptor) : m_descriptor(descriptor) { }
virtual ~DebuggerTask() { }
@@ -386,7 +331,7 @@ void WebDevToolsAgent::interruptAndDispatch(MessageDescriptor* d)
private:
OwnPtr<WebDevToolsAgent::MessageDescriptor> m_descriptor;
};
- ScriptDebugServer::interruptAndRun(new DebuggerTask(d));
+ PageScriptDebugServer::interruptAndRun(new DebuggerTask(d));
}
bool WebDevToolsAgent::shouldInterruptForMessage(const WebString& message)
@@ -395,18 +340,18 @@ bool WebDevToolsAgent::shouldInterruptForMessage(const WebString& message)
if (!InspectorBackendDispatcher::getCommandName(message, &commandName))
return false;
return commandName == InspectorBackendDispatcher::Debugger_pauseCmd
- || commandName == InspectorBackendDispatcher::Debugger_setJavaScriptBreakpointCmd
- || commandName == InspectorBackendDispatcher::Debugger_removeJavaScriptBreakpointCmd
- || commandName == InspectorBackendDispatcher::Debugger_activateBreakpointsCmd
- || commandName == InspectorBackendDispatcher::Debugger_deactivateBreakpointsCmd
- || commandName == InspectorBackendDispatcher::Inspector_startProfilingCmd
- || commandName == InspectorBackendDispatcher::Inspector_stopProfilingCmd
+ || commandName == InspectorBackendDispatcher::Debugger_setBreakpointCmd
+ || commandName == InspectorBackendDispatcher::Debugger_setBreakpointByUrlCmd
+ || commandName == InspectorBackendDispatcher::Debugger_removeBreakpointCmd
+ || commandName == InspectorBackendDispatcher::Debugger_setBreakpointsActiveCmd
+ || commandName == InspectorBackendDispatcher::Profiler_startCmd
+ || commandName == InspectorBackendDispatcher::Profiler_stopCmd
|| commandName == InspectorBackendDispatcher::Profiler_getProfileCmd;
}
void WebDevToolsAgent::processPendingMessages()
{
- ScriptDebugServer::shared().runPendingTasks();
+ PageScriptDebugServer::shared().runPendingTasks();
}
void WebDevToolsAgent::setMessageLoopDispatchHandler(MessageLoopDispatchHandler handler)
diff --git a/Source/WebKit/chromium/src/WebDevToolsAgentImpl.h b/Source/WebKit/chromium/src/WebDevToolsAgentImpl.h
index 2bc197d..33ca232 100644
--- a/Source/WebKit/chromium/src/WebDevToolsAgentImpl.h
+++ b/Source/WebKit/chromium/src/WebDevToolsAgentImpl.h
@@ -35,7 +35,6 @@
#include "WebDevToolsAgentPrivate.h"
-#include <v8.h>
#include <wtf/Forward.h>
#include <wtf/OwnPtr.h>
@@ -76,18 +75,10 @@ public:
virtual void didNavigate();
virtual void dispatchOnInspectorBackend(const WebString& message);
virtual void inspectElementAt(const WebPoint& point);
- virtual void inspectNode(v8::Handle<v8::Value> node);
virtual void evaluateInWebInspector(long callId, const WebString& script);
virtual void setRuntimeProperty(const WebString& name, const WebString& value);
virtual void setTimelineProfilingEnabled(bool enable);
- virtual void identifierForInitialRequest(unsigned long, WebFrame*, const WebURLRequest&);
- virtual void willSendRequest(unsigned long, WebURLRequest&);
- virtual void didReceiveData(unsigned long, int length);
- virtual void didReceiveResponse(unsigned long, const WebURLResponse&);
- virtual void didFinishLoading(unsigned long);
- virtual void didFailLoading(unsigned long, const WebURLError&);
-
// InspectorClient implementation.
virtual void inspectorDestroyed();
virtual void openInspectorFrontend(WebCore::InspectorController*);
diff --git a/Source/WebKit/chromium/src/WebDocument.cpp b/Source/WebKit/chromium/src/WebDocument.cpp
index a983bf7..0abf307 100644
--- a/Source/WebKit/chromium/src/WebDocument.cpp
+++ b/Source/WebKit/chromium/src/WebDocument.cpp
@@ -31,6 +31,7 @@
#include "config.h"
#include "WebDocument.h"
+#include "AXObjectCache.h"
#include "Document.h"
#include "DocumentType.h"
#include "Element.h"
@@ -41,6 +42,7 @@
#include "HTMLHeadElement.h"
#include "NodeList.h"
+#include "WebAccessibilityObject.h"
#include "WebDocumentType.h"
#include "WebElement.h"
#include "WebFrameImpl.h"
@@ -129,6 +131,13 @@ WebDocumentType WebDocument::doctype() const
return WebDocumentType(constUnwrap<Document>()->doctype());
}
+WebAccessibilityObject WebDocument::accessibilityObject() const
+{
+ const Document* document = constUnwrap<Document>();
+ return WebAccessibilityObject(
+ document->axObjectCache()->getOrCreate(document->renderer()));
+}
+
WebDocument::WebDocument(const PassRefPtr<Document>& elem)
: WebNode(elem)
{
diff --git a/Source/WebKit/chromium/src/WebElement.cpp b/Source/WebKit/chromium/src/WebElement.cpp
index 34daa34..ee7ec09 100644
--- a/Source/WebKit/chromium/src/WebElement.cpp
+++ b/Source/WebKit/chromium/src/WebElement.cpp
@@ -90,6 +90,11 @@ WebString WebElement::innerText() const
return constUnwrap<Element>()->innerText();
}
+WebNode WebElement::shadowRoot()
+{
+ return adoptRef(unwrap<Element>()->shadowRoot());
+}
+
WebString WebElement::computeInheritedLanguage() const
{
return WebString(constUnwrap<Element>()->computeInheritedLanguage());
diff --git a/Source/WebKit/chromium/src/WebFileSystemCallbacksImpl.cpp b/Source/WebKit/chromium/src/WebFileSystemCallbacksImpl.cpp
index 0c71f80..58d56e9 100644
--- a/Source/WebKit/chromium/src/WebFileSystemCallbacksImpl.cpp
+++ b/Source/WebKit/chromium/src/WebFileSystemCallbacksImpl.cpp
@@ -72,6 +72,7 @@ void WebFileSystemCallbacksImpl::didReadMetadata(const WebFileInfo& webFileInfo)
fileMetadata.modificationTime = webFileInfo.modificationTime;
fileMetadata.length = webFileInfo.length;
fileMetadata.type = static_cast<FileMetadata::Type>(webFileInfo.type);
+ fileMetadata.platformPath = webFileInfo.platformPath;
m_callbacks->didReadMetadata(fileMetadata);
delete this;
}
diff --git a/Source/WebKit/chromium/src/WebFormControlElement.cpp b/Source/WebKit/chromium/src/WebFormControlElement.cpp
index d2bc8ab..f00b058 100644
--- a/Source/WebKit/chromium/src/WebFormControlElement.cpp
+++ b/Source/WebKit/chromium/src/WebFormControlElement.cpp
@@ -43,6 +43,11 @@ bool WebFormControlElement::isEnabled() const
return constUnwrap<HTMLFormControlElement>()->isEnabledFormControl();
}
+bool WebFormControlElement::isReadOnly() const
+{
+ return constUnwrap<HTMLFormControlElement>()->readOnly();
+}
+
WebString WebFormControlElement::formControlName() const
{
return constUnwrap<HTMLFormControlElement>()->name();
diff --git a/Source/WebKit/chromium/src/WebFrameImpl.cpp b/Source/WebKit/chromium/src/WebFrameImpl.cpp
index 53e1d44..fdfb14e 100644
--- a/Source/WebKit/chromium/src/WebFrameImpl.cpp
+++ b/Source/WebKit/chromium/src/WebFrameImpl.cpp
@@ -1052,11 +1052,17 @@ void WebFrameImpl::dispatchWillSendRequest(WebURLRequest& request)
0, 0, request.toMutableResourceRequest(), response);
}
+// FIXME: Remove this overload when clients have been changed to pass options.
WebURLLoader* WebFrameImpl::createAssociatedURLLoader()
{
return new AssociatedURLLoader(this);
}
+WebURLLoader* WebFrameImpl::createAssociatedURLLoader(const WebURLLoaderOptions& options)
+{
+ return new AssociatedURLLoader(this, options);
+}
+
void WebFrameImpl::commitDocumentData(const char* data, size_t length)
{
m_frame->loader()->documentLoader()->commitData(data, length);
@@ -1077,11 +1083,6 @@ bool WebFrameImpl::willSuppressOpenerInNewFrame() const
return frame()->loader()->suppressOpenerInNewFrame();
}
-bool WebFrameImpl::pageDismissalEventBeingDispatched() const
-{
- return frame()->loader()->pageDismissalEventBeingDispatched();
-}
-
void WebFrameImpl::replaceSelection(const WebString& text)
{
RefPtr<DocumentFragment> fragment = createFragmentFromText(
@@ -1583,8 +1584,7 @@ void WebFrameImpl::scopeStringMatches(int identifier,
// find an alternative.
RefPtr<Range> resultRange(findPlainText(searchRange.get(),
searchText,
- true,
- options.matchCase));
+ options.matchCase ? 0 : CaseInsensitive));
if (resultRange->collapsed(ec)) {
if (!resultRange->startContainer()->isInShadowTree())
break;
@@ -1742,9 +1742,18 @@ WebString WebFrameImpl::contentAsMarkup() const
return createFullMarkup(m_frame->document());
}
-WebString WebFrameImpl::renderTreeAsText() const
+WebString WebFrameImpl::renderTreeAsText(bool showDebugInfo) const
{
- return externalRepresentation(m_frame);
+ RenderAsTextBehavior behavior = RenderAsTextBehaviorNormal;
+
+ if (showDebugInfo) {
+ behavior |= RenderAsTextShowCompositedLayers
+ | RenderAsTextShowAddresses
+ | RenderAsTextShowIDAndClass
+ | RenderAsTextShowLayerNesting;
+ }
+
+ return externalRepresentation(m_frame, behavior);
}
WebString WebFrameImpl::counterValueForElementById(const WebString& id) const
@@ -1791,7 +1800,7 @@ bool WebFrameImpl::selectionStartHasSpellingMarkerFor(int from, int length) cons
{
if (!m_frame)
return false;
- return m_frame->editor()->selectionStartHasSpellingMarkerFor(from, length);
+ return m_frame->editor()->selectionStartHasMarkerFor(DocumentMarker::Spelling, from, length);
}
bool WebFrameImpl::pauseSVGAnimation(const WebString& animationId, double time, const WebString& elementId)
@@ -1814,11 +1823,11 @@ bool WebFrameImpl::pauseSVGAnimation(const WebString& animationId, double time,
#endif
}
-WebString WebFrameImpl::layerTreeAsText() const
+WebString WebFrameImpl::layerTreeAsText(bool showDebugInfo) const
{
if (!m_frame)
return WebString();
- return WebString(m_frame->layerTreeAsText());
+ return WebString(m_frame->layerTreeAsText(showDebugInfo));
}
// WebFrameImpl public ---------------------------------------------------------
diff --git a/Source/WebKit/chromium/src/WebFrameImpl.h b/Source/WebKit/chromium/src/WebFrameImpl.h
index 179051e..6129de1 100644
--- a/Source/WebKit/chromium/src/WebFrameImpl.h
+++ b/Source/WebKit/chromium/src/WebFrameImpl.h
@@ -133,12 +133,13 @@ public:
virtual bool isViewSourceModeEnabled() const;
virtual void setReferrerForRequest(WebURLRequest&, const WebURL& referrer);
virtual void dispatchWillSendRequest(WebURLRequest&);
+ // FIXME: Remove this overload when clients have been changed to pass options.
virtual WebURLLoader* createAssociatedURLLoader();
+ virtual WebURLLoader* createAssociatedURLLoader(const WebURLLoaderOptions&);
virtual void commitDocumentData(const char* data, size_t length);
virtual unsigned unloadListenerCount() const;
virtual bool isProcessingUserGesture() const;
virtual bool willSuppressOpenerInNewFrame() const;
- virtual bool pageDismissalEventBeingDispatched() const;
virtual void replaceSelection(const WebString&);
virtual void insertText(const WebString&);
virtual void setMarkedText(const WebString&, unsigned location, unsigned length);
@@ -187,7 +188,7 @@ public:
virtual WebString contentAsText(size_t maxChars) const;
virtual WebString contentAsMarkup() const;
- virtual WebString renderTreeAsText() const;
+ virtual WebString renderTreeAsText(bool showDebugInfo = false) const;
virtual WebString counterValueForElementById(const WebString& id) const;
virtual WebString markerTextForListItem(const WebElement&) const;
virtual int pageNumberForElementById(const WebString& id,
@@ -199,7 +200,7 @@ public:
virtual bool pauseSVGAnimation(const WebString& animationId,
double time,
const WebString& elementId);
- virtual WebString layerTreeAsText() const;
+ virtual WebString layerTreeAsText(bool showDebugInfo = false) const;
static PassRefPtr<WebFrameImpl> create(WebFrameClient* client);
~WebFrameImpl();
diff --git a/Source/WebKit/chromium/src/WebGeolocationClientMock.cpp b/Source/WebKit/chromium/src/WebGeolocationClientMock.cpp
index 1ec3dd1..0ad47da 100644
--- a/Source/WebKit/chromium/src/WebGeolocationClientMock.cpp
+++ b/Source/WebKit/chromium/src/WebGeolocationClientMock.cpp
@@ -82,6 +82,11 @@ void WebGeolocationClientMock::setPermission(bool allowed)
m_clientMock->setPermission(allowed);
}
+int WebGeolocationClientMock::numberOfPendingPermissionRequests() const
+{
+ return m_clientMock->numberOfPendingPermissionRequests();
+}
+
void WebGeolocationClientMock::resetMock()
{
m_clientMock->reset();
diff --git a/Source/WebKit/chromium/src/WebIDBCallbacksImpl.cpp b/Source/WebKit/chromium/src/WebIDBCallbacksImpl.cpp
index 38ac360..ce307a4 100644
--- a/Source/WebKit/chromium/src/WebIDBCallbacksImpl.cpp
+++ b/Source/WebKit/chromium/src/WebIDBCallbacksImpl.cpp
@@ -30,13 +30,11 @@
#include "IDBCursorBackendProxy.h"
#include "IDBDatabaseError.h"
#include "IDBDatabaseProxy.h"
-#include "IDBIndexBackendProxy.h"
#include "IDBKey.h"
#include "IDBTransactionBackendProxy.h"
#include "WebIDBCallbacks.h"
#include "WebIDBDatabase.h"
#include "WebIDBDatabaseError.h"
-#include "WebIDBIndex.h"
#include "WebIDBKey.h"
#include "WebIDBTransaction.h"
#include "WebSerializedScriptValue.h"
@@ -74,11 +72,6 @@ void WebIDBCallbacksImpl::onSuccess(const WebKit::WebIDBKey& key)
m_callbacks->onSuccess(key);
}
-void WebIDBCallbacksImpl::onSuccess(WebKit::WebIDBIndex* webKitInstance)
-{
- m_callbacks->onSuccess(IDBIndexBackendProxy::create(webKitInstance));
-}
-
void WebIDBCallbacksImpl::onSuccess(WebKit::WebIDBTransaction* webKitInstance)
{
m_callbacks->onSuccess(IDBTransactionBackendProxy::create(webKitInstance));
diff --git a/Source/WebKit/chromium/src/WebIDBCallbacksImpl.h b/Source/WebKit/chromium/src/WebIDBCallbacksImpl.h
index 9dd59a5..057aa25 100644
--- a/Source/WebKit/chromium/src/WebIDBCallbacksImpl.h
+++ b/Source/WebKit/chromium/src/WebIDBCallbacksImpl.h
@@ -45,7 +45,6 @@ public:
virtual void onSuccess(WebKit::WebIDBCursor*);
virtual void onSuccess(WebKit::WebIDBDatabase*);
virtual void onSuccess(const WebKit::WebIDBKey&);
- virtual void onSuccess(WebKit::WebIDBIndex*);
virtual void onSuccess(WebKit::WebIDBTransaction*);
virtual void onSuccess(const WebKit::WebSerializedScriptValue&);
virtual void onBlocked();
diff --git a/Source/WebKit/chromium/src/WebIDBFactoryImpl.cpp b/Source/WebKit/chromium/src/WebIDBFactoryImpl.cpp
index a509076..3e21af5 100755
--- a/Source/WebKit/chromium/src/WebIDBFactoryImpl.cpp
+++ b/Source/WebKit/chromium/src/WebIDBFactoryImpl.cpp
@@ -58,9 +58,9 @@ WebIDBFactoryImpl::~WebIDBFactoryImpl()
{
}
-void WebIDBFactoryImpl::open(const WebString& name, WebIDBCallbacks* callbacks, const WebSecurityOrigin& origin, WebFrame*, const WebString& dataDir, unsigned long long maximumSize)
+void WebIDBFactoryImpl::open(const WebString& name, WebIDBCallbacks* callbacks, const WebSecurityOrigin& origin, WebFrame*, const WebString& dataDir, unsigned long long maximumSize, BackingStoreType backingStoreType)
{
- m_idbFactoryBackend->open(name, IDBCallbacksProxy::create(callbacks), origin, 0, dataDir, maximumSize);
+ m_idbFactoryBackend->open(name, IDBCallbacksProxy::create(callbacks), origin, 0, dataDir, maximumSize, static_cast<IDBFactoryBackendInterface::BackingStoreType>(backingStoreType));
}
} // namespace WebKit
diff --git a/Source/WebKit/chromium/src/WebIDBFactoryImpl.h b/Source/WebKit/chromium/src/WebIDBFactoryImpl.h
index 9ed6e3f..0ffd289 100755
--- a/Source/WebKit/chromium/src/WebIDBFactoryImpl.h
+++ b/Source/WebKit/chromium/src/WebIDBFactoryImpl.h
@@ -42,7 +42,7 @@ public:
WebIDBFactoryImpl();
virtual ~WebIDBFactoryImpl();
- virtual void open(const WebString& name, WebIDBCallbacks*, const WebSecurityOrigin&, WebFrame*, const WebString& dataDir, unsigned long long maximumSize);
+ virtual void open(const WebString& name, WebIDBCallbacks*, const WebSecurityOrigin&, WebFrame*, const WebString& dataDir, unsigned long long maximumSize, BackingStoreType);
private:
WTF::RefPtr<WebCore::IDBFactoryBackendInterface> m_idbFactoryBackend;
diff --git a/Source/WebKit/chromium/src/WebIDBObjectStoreImpl.cpp b/Source/WebKit/chromium/src/WebIDBObjectStoreImpl.cpp
index 9fe6166..56e354d 100755
--- a/Source/WebKit/chromium/src/WebIDBObjectStoreImpl.cpp
+++ b/Source/WebKit/chromium/src/WebIDBObjectStoreImpl.cpp
@@ -28,6 +28,7 @@
#include "DOMStringList.h"
#include "IDBCallbacksProxy.h"
+#include "IDBIndexBackendInterface.h"
#include "IDBKeyRange.h"
#include "IDBObjectStoreBackendInterface.h"
#include "WebIDBIndexImpl.h"
diff --git a/Source/WebKit/chromium/src/WebInputElement.cpp b/Source/WebKit/chromium/src/WebInputElement.cpp
index 548f1bb..3448bb6 100644
--- a/Source/WebKit/chromium/src/WebInputElement.cpp
+++ b/Source/WebKit/chromium/src/WebInputElement.cpp
@@ -65,16 +65,6 @@ bool WebInputElement::autoComplete() const
return constUnwrap<HTMLInputElement>()->autoComplete();
}
-bool WebInputElement::isReadOnly() const
-{
- return constUnwrap<HTMLInputElement>()->readOnly();
-}
-
-bool WebInputElement::isEnabledFormControl() const
-{
- return constUnwrap<HTMLInputElement>()->isEnabledFormControl();
-}
-
int WebInputElement::maxLength() const
{
return constUnwrap<HTMLInputElement>()->maxLength();
@@ -183,7 +173,7 @@ WebInputElement::operator PassRefPtr<HTMLInputElement>() const
WebInputElement* toWebInputElement(WebElement* webElement)
{
- InputElement* inputElement = toInputElement(webElement->unwrap<Element>());
+ InputElement* inputElement = webElement->unwrap<Element>()->toInputElement();
if (!inputElement)
return 0;
diff --git a/Source/WebKit/chromium/src/WebMediaPlayerClientImpl.cpp b/Source/WebKit/chromium/src/WebMediaPlayerClientImpl.cpp
index a1b428c..abe9cbf 100644
--- a/Source/WebKit/chromium/src/WebMediaPlayerClientImpl.cpp
+++ b/Source/WebKit/chromium/src/WebMediaPlayerClientImpl.cpp
@@ -183,6 +183,12 @@ float WebMediaPlayerClientImpl::volume() const
return 0.0f;
}
+void WebMediaPlayerClientImpl::playbackStateChanged()
+{
+ ASSERT(m_mediaPlayer);
+ m_mediaPlayer->playbackStateChanged();
+}
+
// MediaPlayerPrivateInterface -------------------------------------------------
void WebMediaPlayerClientImpl::load(const String& url)
diff --git a/Source/WebKit/chromium/src/WebMediaPlayerClientImpl.h b/Source/WebKit/chromium/src/WebMediaPlayerClientImpl.h
index 5d44626..22030b3 100644
--- a/Source/WebKit/chromium/src/WebMediaPlayerClientImpl.h
+++ b/Source/WebKit/chromium/src/WebMediaPlayerClientImpl.h
@@ -76,6 +76,7 @@ public:
virtual void sizeChanged();
virtual void sawUnsupportedTracks();
virtual float volume() const;
+ virtual void playbackStateChanged();
// MediaPlayerPrivateInterface methods:
virtual void load(const WTF::String& url);
diff --git a/Source/WebKit/chromium/src/WebNode.cpp b/Source/WebKit/chromium/src/WebNode.cpp
index e91d1ee..68b6f13 100644
--- a/Source/WebKit/chromium/src/WebNode.cpp
+++ b/Source/WebKit/chromium/src/WebNode.cpp
@@ -145,9 +145,14 @@ bool WebNode::isTextNode() const
return m_private->isTextNode();
}
+bool WebNode::isFocusable() const
+{
+ return m_private->isFocusable();
+}
+
bool WebNode::isContentEditable() const
{
- return m_private->isContentEditable();
+ return m_private->rendererIsEditable();
}
bool WebNode::isElementNode() const
diff --git a/Source/WebKit/chromium/src/WebPageSerializer.cpp b/Source/WebKit/chromium/src/WebPageSerializer.cpp
index 1fda484..c8c7529 100644
--- a/Source/WebKit/chromium/src/WebPageSerializer.cpp
+++ b/Source/WebKit/chromium/src/WebPageSerializer.cpp
@@ -31,19 +31,152 @@
#include "config.h"
#include "WebPageSerializer.h"
+#include "DocumentLoader.h"
+#include "Element.h"
+#include "Frame.h"
+#include "HTMLAllCollection.h"
+#include "HTMLFrameOwnerElement.h"
+#include "HTMLInputElement.h"
+#include "HTMLNames.h"
#include "KURL.h"
+#include "Vector.h"
+#include "WebCString.h"
#include "WebFrame.h"
+#include "WebFrameImpl.h"
#include "WebPageSerializerClient.h"
#include "WebPageSerializerImpl.h"
#include "WebString.h"
#include "WebURL.h"
#include "WebVector.h"
+#include "WebView.h"
#include <wtf/text/StringConcatenate.h>
using namespace WebCore;
+namespace {
+
+KURL getSubResourceURLFromElement(Element* element)
+{
+ ASSERT(element);
+ const QualifiedName* attributeName = 0;
+ if (element->hasTagName(HTMLNames::imgTag) || element->hasTagName(HTMLNames::scriptTag))
+ attributeName = &HTMLNames::srcAttr;
+ else if (element->hasTagName(HTMLNames::inputTag)) {
+ HTMLInputElement* input = static_cast<HTMLInputElement*>(element);
+ if (input->isImageButton())
+ attributeName = &HTMLNames::srcAttr;
+ } else if (element->hasTagName(HTMLNames::bodyTag)
+ || element->hasTagName(HTMLNames::tableTag)
+ || element->hasTagName(HTMLNames::trTag)
+ || element->hasTagName(HTMLNames::tdTag))
+ attributeName = &HTMLNames::backgroundAttr;
+ else if (element->hasTagName(HTMLNames::blockquoteTag)
+ || element->hasTagName(HTMLNames::qTag)
+ || element->hasTagName(HTMLNames::delTag)
+ || element->hasTagName(HTMLNames::insTag))
+ attributeName = &HTMLNames::citeAttr;
+ else if (element->hasTagName(HTMLNames::linkTag)) {
+ // If the link element is not css, ignore it.
+ if (equalIgnoringCase(element->getAttribute(HTMLNames::typeAttr), "text/css")) {
+ // FIXME: Add support for extracting links of sub-resources which
+ // are inside style-sheet such as @import, @font-face, url(), etc.
+ attributeName = &HTMLNames::hrefAttr;
+ }
+ } else if (element->hasTagName(HTMLNames::objectTag))
+ attributeName = &HTMLNames::dataAttr;
+ else if (element->hasTagName(HTMLNames::embedTag))
+ attributeName = &HTMLNames::srcAttr;
+
+ if (!attributeName)
+ return KURL();
+
+ String value = element->getAttribute(*attributeName);
+ // Ignore javascript content.
+ if (value.isEmpty() || value.stripWhiteSpace().startsWith("javascript:", false))
+ return KURL();
+
+ return element->document()->completeURL(value);
+}
+
+void retrieveResourcesForElement(Element* element,
+ Vector<Frame*>* visitedFrames,
+ Vector<Frame*>* framesToVisit,
+ Vector<KURL>* frameURLs,
+ Vector<KURL>* resourceURLs)
+{
+ // If the node is a frame, we'll process it later in retrieveResourcesForFrame.
+ if ((element->hasTagName(HTMLNames::iframeTag) || element->hasTagName(HTMLNames::frameTag)
+ || element->hasTagName(HTMLNames::objectTag) || element->hasTagName(HTMLNames::embedTag))
+ && element->isFrameOwnerElement()) {
+ Frame* frame = static_cast<HTMLFrameOwnerElement*>(element)->contentFrame();
+ if (frame) {
+ if (!visitedFrames->contains(frame))
+ framesToVisit->append(frame);
+ return;
+ }
+ }
+
+ KURL url = getSubResourceURLFromElement(element);
+ if (url.isEmpty() || !url.isValid())
+ return; // No subresource for this node.
+
+ // Ignore URLs that have a non-standard protocols. Since the FTP protocol
+ // does no have a cache mechanism, we skip it as well.
+ if (!url.protocolInHTTPFamily() && !url.isLocalFile())
+ return;
+
+ if (!resourceURLs->contains(url))
+ resourceURLs->append(url);
+}
+
+void retrieveResourcesForFrame(Frame* frame,
+ const WebKit::WebVector<WebKit::WebCString>& supportedSchemes,
+ Vector<Frame*>* visitedFrames,
+ Vector<Frame*>* framesToVisit,
+ Vector<KURL>* frameURLs,
+ Vector<KURL>* resourceURLs)
+{
+ KURL frameURL = frame->loader()->documentLoader()->request().url();
+
+ // If the frame's URL is invalid, ignore it, it is not retrievable.
+ if (!frameURL.isValid())
+ return;
+
+ // Ignore frames from unsupported schemes.
+ bool isValidScheme = false;
+ for (size_t i = 0; i < supportedSchemes.size(); ++i) {
+ if (frameURL.protocolIs(static_cast<CString>(supportedSchemes[i]).data())) {
+ isValidScheme = true;
+ break;
+ }
+ }
+ if (!isValidScheme)
+ return;
+
+ // If we have already seen that frame, ignore it.
+ if (visitedFrames->contains(frame))
+ return;
+ visitedFrames->append(frame);
+ if (!frameURLs->contains(frameURL))
+ frameURLs->append(frameURL);
+
+ // Now get the resources associated with each node of the document.
+ RefPtr<HTMLAllCollection> allNodes = frame->document()->all();
+ for (unsigned i = 0; i < allNodes->length(); ++i) {
+ Node* node = allNodes->item(i);
+ // We are only interested in HTML resources.
+ if (!node->isElementNode())
+ continue;
+ retrieveResourcesForElement(static_cast<Element*>(node),
+ visitedFrames, framesToVisit,
+ frameURLs, resourceURLs);
+ }
+}
+
+} // namespace
+
namespace WebKit {
bool WebPageSerializer::serialize(WebFrame* frame,
@@ -58,6 +191,48 @@ bool WebPageSerializer::serialize(WebFrame* frame,
return serializerImpl.serialize();
}
+bool WebPageSerializer::retrieveAllResources(WebView* view,
+ const WebVector<WebCString>& supportedSchemes,
+ WebVector<WebURL>* resourceURLs,
+ WebVector<WebURL>* frameURLs) {
+ WebFrameImpl* mainFrame = static_cast<WebFrameImpl*>(view->mainFrame());
+ if (!mainFrame)
+ return false;
+
+ Vector<Frame*> framesToVisit;
+ Vector<Frame*> visitedFrames;
+ Vector<KURL> frameKURLs;
+ Vector<KURL> resourceKURLs;
+
+ // Let's retrieve the resources from every frame in this page.
+ framesToVisit.append(mainFrame->frame());
+ while (!framesToVisit.isEmpty()) {
+ Frame* frame = framesToVisit[0];
+ framesToVisit.remove(0);
+ retrieveResourcesForFrame(frame, supportedSchemes,
+ &visitedFrames, &framesToVisit,
+ &frameKURLs, &resourceKURLs);
+ }
+
+ // Converts the results to WebURLs.
+ WebVector<WebURL> resultResourceURLs(resourceKURLs.size());
+ for (size_t i = 0; i < resourceKURLs.size(); ++i) {
+ resultResourceURLs[i] = resourceKURLs[i];
+ // A frame's src can point to the same URL as another resource, keep the
+ // resource URL only in such cases.
+ size_t index = frameKURLs.find(resourceKURLs[i]);
+ if (index != notFound)
+ frameKURLs.remove(index);
+ }
+ *resourceURLs = resultResourceURLs;
+ WebVector<WebURL> resultFrameURLs(frameKURLs.size());
+ for (size_t i = 0; i < frameKURLs.size(); ++i)
+ resultFrameURLs[i] = frameKURLs[i];
+ *frameURLs = resultFrameURLs;
+
+ return true;
+}
+
WebString WebPageSerializer::generateMetaCharsetDeclaration(const WebString& charset)
{
return makeString("<meta http-equiv=\"Content-Type\" content=\"text/html; charset=", static_cast<const String&>(charset), "\">");
@@ -77,4 +252,4 @@ WebString WebPageSerializer::generateBaseTagDeclaration(const WebString& baseTar
return makeString("<base href=\".\" target=\"", static_cast<const String&>(baseTarget), "\">");
}
-} // namespace WebKit
+} // namespace WebKit
diff --git a/Source/WebKit/chromium/src/WebPluginContainerImpl.cpp b/Source/WebKit/chromium/src/WebPluginContainerImpl.cpp
index bb1b083..40f8625 100644
--- a/Source/WebKit/chromium/src/WebPluginContainerImpl.cpp
+++ b/Source/WebKit/chromium/src/WebPluginContainerImpl.cpp
@@ -164,6 +164,7 @@ void WebPluginContainerImpl::handleEvent(Event* event)
if (!m_webPlugin->acceptsInputEvents())
return;
+ RefPtr<WebPluginContainerImpl> protector(this);
// The events we pass are defined at:
// http://devedge-temp.mozilla.org/library/manuals/2002/plugin/1.0/structures5.html#1000000
// Don't take the documentation as truth, however. There are many cases
@@ -307,6 +308,22 @@ void WebPluginContainerImpl::reportGeometry()
m_webPlugin->updateGeometry(windowRect, clipRect, cutOutRects, isVisible());
}
+void WebPluginContainerImpl::setBackingTextureId(unsigned id)
+{
+#if USE(ACCELERATED_COMPOSITING)
+ unsigned currId = m_platformLayer->textureId();
+ if (currId == id)
+ return;
+
+ m_platformLayer->setTextureId(id);
+ // If anyone of the IDs is zero we need to switch between hardware
+ // and software compositing. This is done by triggering a style recalc
+ // on the container element.
+ if (!(currId * id))
+ m_element->setNeedsStyleRecalc(WebCore::SyntheticStyleChange);
+#endif
+}
+
void WebPluginContainerImpl::commitBackingTexture()
{
#if USE(ACCELERATED_COMPOSITING)
@@ -427,15 +444,7 @@ void WebPluginContainerImpl::willDestroyPluginLoadObserver(WebPluginLoadObserver
#if USE(ACCELERATED_COMPOSITING)
WebCore::LayerChromium* WebPluginContainerImpl::platformLayer() const
{
- // FIXME: In the event of a context lost, the texture needs to be recreated on the compositor's
- // context and rebound to the platform layer here.
- unsigned backingTextureId = m_webPlugin->getBackingTextureId();
- if (!backingTextureId)
- return 0;
-
- m_platformLayer->setTextureId(backingTextureId);
-
- return m_platformLayer.get();
+ return m_platformLayer->textureId() ? m_platformLayer.get() : 0;
}
#endif
diff --git a/Source/WebKit/chromium/src/WebPluginContainerImpl.h b/Source/WebKit/chromium/src/WebPluginContainerImpl.h
index ebe6983..9922932 100644
--- a/Source/WebKit/chromium/src/WebPluginContainerImpl.h
+++ b/Source/WebKit/chromium/src/WebPluginContainerImpl.h
@@ -84,6 +84,7 @@ public:
virtual void invalidateRect(const WebRect&);
virtual void scrollRect(int dx, int dy, const WebRect&);
virtual void reportGeometry();
+ virtual void setBackingTextureId(unsigned);
virtual void commitBackingTexture();
virtual void clearScriptObjects();
virtual NPObject* scriptableObjectForElement();
diff --git a/Source/WebKit/chromium/src/WebRuntimeFeatures.cpp b/Source/WebKit/chromium/src/WebRuntimeFeatures.cpp
index e3ece6e..256bf56 100644
--- a/Source/WebKit/chromium/src/WebRuntimeFeatures.cpp
+++ b/Source/WebKit/chromium/src/WebRuntimeFeatures.cpp
@@ -152,6 +152,22 @@ bool WebRuntimeFeatures::isApplicationCacheEnabled()
#endif
}
+void WebRuntimeFeatures::enableDataTransferItems(bool enable)
+{
+#if ENABLE(DATA_TRANSFER_ITEMS)
+ RuntimeEnabledFeatures::setDataTransferItemsEnabled(enable);
+#endif
+}
+
+bool WebRuntimeFeatures::isDataTransferItemsEnabled()
+{
+#if ENABLE(DATA_TRANSFER_ITEMS)
+ return RuntimeEnabledFeatures::dataTransferItemsEnabled();
+#else
+ return false;
+#endif
+}
+
void WebRuntimeFeatures::enableGeolocation(bool enable)
{
#if ENABLE(GEOLOCATION)
@@ -200,22 +216,6 @@ bool WebRuntimeFeatures::isWebAudioEnabled()
#endif
}
-void WebRuntimeFeatures::enableWebGL(bool enable)
-{
-#if ENABLE(WEBGL)
- RuntimeEnabledFeatures::setWebGLEnabled(enable);
-#endif
-}
-
-bool WebRuntimeFeatures::isWebGLEnabled()
-{
-#if ENABLE(WEBGL)
- return RuntimeEnabledFeatures::webGLRenderingContextEnabled();
-#else
- return false;
-#endif
-}
-
void WebRuntimeFeatures::enablePushState(bool enable)
{
RuntimeEnabledFeatures::setPushStateEnabled(enable);
diff --git a/Source/WebKit/chromium/src/WebSettingsImpl.cpp b/Source/WebKit/chromium/src/WebSettingsImpl.cpp
index e5d172e..1089af9 100644
--- a/Source/WebKit/chromium/src/WebSettingsImpl.cpp
+++ b/Source/WebKit/chromium/src/WebSettingsImpl.cpp
@@ -308,6 +308,11 @@ void WebSettingsImpl::setAcceleratedCompositingEnabled(bool enabled)
m_settings->setAcceleratedCompositingEnabled(enabled);
}
+void WebSettingsImpl::setForceCompositingMode(bool enabled)
+{
+ m_settings->setForceCompositingMode(enabled);
+}
+
void WebSettingsImpl::setCompositeToTextureEnabled(bool enabled)
{
m_compositeToTextureEnabled = enabled;
diff --git a/Source/WebKit/chromium/src/WebSettingsImpl.h b/Source/WebKit/chromium/src/WebSettingsImpl.h
index 323a5b3..d0319f8 100644
--- a/Source/WebKit/chromium/src/WebSettingsImpl.h
+++ b/Source/WebKit/chromium/src/WebSettingsImpl.h
@@ -94,6 +94,7 @@ public:
virtual bool showPlatformLayerTree() const { return m_showPlatformLayerTree; }
virtual void setEditingBehavior(EditingBehavior);
virtual void setAcceleratedCompositingEnabled(bool);
+ virtual void setForceCompositingMode(bool);
virtual void setCompositeToTextureEnabled(bool);
virtual bool compositeToTextureEnabled() const { return m_compositeToTextureEnabled; }
virtual void setAcceleratedCompositingFor3DTransformsEnabled(bool);
diff --git a/Source/WebKit/chromium/src/WebTextCheckingCompletionImpl.cpp b/Source/WebKit/chromium/src/WebTextCheckingCompletionImpl.cpp
index 2759790..b9e5227 100644
--- a/Source/WebKit/chromium/src/WebTextCheckingCompletionImpl.cpp
+++ b/Source/WebKit/chromium/src/WebTextCheckingCompletionImpl.cpp
@@ -43,7 +43,7 @@ static Vector<SpellCheckingResult> toCoreResults(const WebVector<WebTextChecking
{
Vector<SpellCheckingResult> coreResults;
for (size_t i = 0; i < results.size(); ++i)
- coreResults.append(SpellCheckingResult(static_cast<DocumentMarker::MarkerType>(results[i].error()), results[i].position(), results[i].length()));
+ coreResults.append(SpellCheckingResult(static_cast<DocumentMarker::MarkerType>(results[i].error), results[i].position, results[i].length));
return coreResults;
}
diff --git a/Source/WebKit/chromium/src/WebViewImpl.cpp b/Source/WebKit/chromium/src/WebViewImpl.cpp
index 6ae4f35..4efa880 100644
--- a/Source/WebKit/chromium/src/WebViewImpl.cpp
+++ b/Source/WebKit/chromium/src/WebViewImpl.cpp
@@ -77,7 +77,6 @@
#include "PageGroup.h"
#include "PageGroupLoadDeferrer.h"
#include "Pasteboard.h"
-#include "PlatformBridge.h"
#include "PlatformContextSkia.h"
#include "PlatformKeyboardEvent.h"
#include "PlatformMouseEvent.h"
@@ -93,6 +92,7 @@
#include "Settings.h"
#include "SpeechInputClientImpl.h"
#include "Timer.h"
+#include "TraceEvent.h"
#include "TypingCommand.h"
#include "UserGestureIndicator.h"
#include "Vector.h"
@@ -126,6 +126,7 @@
#include <wtf/RefPtr.h>
#if PLATFORM(CG)
+#include <CoreGraphics/CGBitmapContext.h>
#include <CoreGraphics/CGContext.h>
#endif
@@ -211,13 +212,13 @@ static bool shouldUseExternalPopupMenus = false;
// WebView ----------------------------------------------------------------
-WebView* WebView::create(WebViewClient* client, WebDevToolsAgentClient* devToolsClient, WebAutoFillClient* autoFillClient)
+WebView* WebView::create(WebViewClient* client)
{
// Keep runtime flag for device motion turned off until it's implemented.
WebRuntimeFeatures::enableDeviceMotion(false);
// Pass the WebViewImpl's self-reference to the caller.
- return adoptRef(new WebViewImpl(client, devToolsClient, autoFillClient)).leakRef();
+ return adoptRef(new WebViewImpl(client)).leakRef();
}
void WebView::setUseExternalPopupMenus(bool useExternalPopupMenus)
@@ -269,9 +270,28 @@ void WebViewImpl::initializeMainFrame(WebFrameClient* frameClient)
SecurityOrigin::setLocalLoadPolicy(SecurityOrigin::AllowLocalLoadsForLocalOnly);
}
-WebViewImpl::WebViewImpl(WebViewClient* client, WebDevToolsAgentClient* devToolsClient, WebAutoFillClient* autoFillClient)
+void WebViewImpl::setDevToolsAgentClient(WebDevToolsAgentClient* devToolsClient)
+{
+ if (devToolsClient)
+ m_devToolsAgent = new WebDevToolsAgentImpl(this, devToolsClient);
+ else
+ m_devToolsAgent.clear();
+}
+
+void WebViewImpl::setAutoFillClient(WebAutoFillClient* autoFillClient)
+{
+ m_autoFillClient = autoFillClient;
+}
+
+void WebViewImpl::setSpellCheckClient(WebSpellCheckClient* spellCheckClient)
+{
+ m_spellCheckClient = spellCheckClient;
+}
+
+WebViewImpl::WebViewImpl(WebViewClient* client)
: m_client(client)
- , m_autoFillClient(autoFillClient)
+ , m_autoFillClient(0)
+ , m_spellCheckClient(0)
, m_chromeClientImpl(this)
, m_contextMenuClientImpl(this)
, m_dragClientImpl(this)
@@ -290,9 +310,6 @@ WebViewImpl::WebViewImpl(WebViewClient* client, WebDevToolsAgentClient* devTools
, m_suppressNextKeypressEvent(false)
, m_initialNavigationPolicy(WebNavigationPolicyIgnore)
, m_imeAcceptEvents(true)
- , m_dragTargetDispatch(false)
- , m_dragIdentity(0)
- , m_dropEffect(DropEffectDefault)
, m_operationsAllowed(WebDragOperationNone)
, m_dragOperation(WebDragOperationNone)
, m_autoFillPopupShowing(false)
@@ -305,6 +322,7 @@ WebViewImpl::WebViewImpl(WebViewClient* client, WebDevToolsAgentClient* devTools
, m_layerRenderer(0)
, m_isAcceleratedCompositingActive(false)
, m_compositorCreationFailed(false)
+ , m_recreatingGraphicsContext(false)
#endif
#if ENABLE(INPUT_SPEECH)
, m_speechInputClient(SpeechInputClientImpl::create(client))
@@ -321,9 +339,6 @@ WebViewImpl::WebViewImpl(WebViewClient* client, WebDevToolsAgentClient* devTools
// set to impossible point so we always get the first mouse pos
m_lastMousePosition = WebPoint(-1, -1);
- if (devToolsClient)
- m_devToolsAgent = new WebDevToolsAgentImpl(this, devToolsClient);
-
Page::PageClients pageClients;
pageClients.chromeClient = &m_chromeClientImpl;
pageClients.contextMenuClient = &m_contextMenuClientImpl;
@@ -962,13 +977,14 @@ void WebViewImpl::resize(const WebSize& newSize)
}
if (m_client) {
- WebRect damagedRect(0, 0, m_size.width, m_size.height);
if (isAcceleratedCompositingActive()) {
#if USE(ACCELERATED_COMPOSITING)
- invalidateRootLayerRect(damagedRect);
+ updateLayerRendererViewport();
#endif
- } else
+ } else {
+ WebRect damagedRect(0, 0, m_size.width, m_size.height);
m_client->didInvalidateRect(damagedRect);
+ }
}
#if USE(ACCELERATED_COMPOSITING)
@@ -993,6 +1009,12 @@ void WebViewImpl::animate()
void WebViewImpl::layout()
{
+#if USE(ACCELERATED_COMPOSITING)
+ // FIXME: RTL style not supported by the compositor yet.
+ if (isAcceleratedCompositingActive() && pageHasRTLStyle())
+ setIsAcceleratedCompositingActive(false);
+#endif
+
WebFrameImpl* webframe = mainFrameImpl();
if (webframe) {
// In order for our child HWNDs (NativeWindowWidgets) to update properly,
@@ -1057,7 +1079,7 @@ void WebViewImpl::paint(WebCanvas* canvas, const WebRect& rect)
if (canvas) {
// Clip rect to the confines of the rootLayerTexture.
IntRect resizeRect(rect);
- resizeRect.intersect(IntRect(IntPoint(), m_layerRenderer->visibleRectSize()));
+ resizeRect.intersect(IntRect(IntPoint(), m_layerRenderer->viewportSize()));
doPixelReadbackToCanvas(canvas, resizeRect);
}
#endif
@@ -1081,6 +1103,14 @@ void WebViewImpl::themeChanged()
void WebViewImpl::composite(bool finish)
{
#if USE(ACCELERATED_COMPOSITING)
+ TRACE_EVENT("WebViewImpl::composite", this, 0);
+ if (m_recreatingGraphicsContext) {
+ // reallocateRenderer will request a repaint whether or not it succeeded
+ // in creating a new context.
+ reallocateRenderer();
+ m_recreatingGraphicsContext = false;
+ return;
+ }
doComposite();
// Finish if requested.
@@ -1091,8 +1121,16 @@ void WebViewImpl::composite(bool finish)
m_layerRenderer->present();
GraphicsContext3D* context = m_layerRenderer->context();
- if (context->getExtensions()->getGraphicsResetStatusARB() != GraphicsContext3D::NO_ERROR)
- reallocateRenderer();
+ if (context->getExtensions()->getGraphicsResetStatusARB() != GraphicsContext3D::NO_ERROR) {
+ // Trying to recover the context right here will not work if GPU process
+ // died. This is because GpuChannelHost::OnErrorMessage will only be
+ // called at the next iteration of the message loop, reverting our
+ // recovery attempts here. Instead, we detach the root layer from the
+ // renderer, recreate the renderer at the next message loop iteration
+ // and request a repaint yet again.
+ m_recreatingGraphicsContext = true;
+ setRootLayerNeedsDisplay();
+ }
#endif
}
@@ -1235,7 +1273,7 @@ void WebViewImpl::setFocus(bool enable)
Element* element = static_cast<Element*>(focusedNode);
if (element->isTextFormControl())
element->updateFocusAppearance(true);
- else if (focusedNode->isContentEditable()) {
+ else if (focusedNode->rendererIsEditable()) {
// updateFocusAppearance() selects all the text of
// contentseditable DIVs. So we set the selection explicitly
// instead. Note that this has the side effect of moving the
@@ -1297,7 +1335,7 @@ bool WebViewImpl::setComposition(
PassRefPtr<Range> range = editor->compositionRange();
if (range) {
const Node* node = range->startContainer();
- if (!node || !node->isContentEditable())
+ if (!node || !node->rendererIsEditable())
return false;
}
@@ -1346,7 +1384,7 @@ bool WebViewImpl::confirmComposition(const WebString& text)
PassRefPtr<Range> range = editor->compositionRange();
if (range) {
const Node* node = range->startContainer();
- if (!node || !node->isContentEditable())
+ if (!node || !node->rendererIsEditable())
return false;
}
@@ -1755,7 +1793,22 @@ void WebViewImpl::dragSourceSystemDragEnded()
}
WebDragOperation WebViewImpl::dragTargetDragEnter(
- const WebDragData& webDragData, int identity,
+ const WebDragData& webDragData, int identity, // FIXME: remove identity from this function signature.
+ const WebPoint& clientPoint,
+ const WebPoint& screenPoint,
+ WebDragOperationsMask operationsAllowed)
+{
+ ASSERT(!m_currentDragData.get());
+
+ m_currentDragData = webDragData;
+ UNUSED_PARAM(identity);
+ m_operationsAllowed = operationsAllowed;
+
+ return dragTargetDragEnterOrOver(clientPoint, screenPoint, DragEnter);
+}
+
+WebDragOperation WebViewImpl::dragTargetDragEnter(
+ const WebDragData& webDragData,
const WebPoint& clientPoint,
const WebPoint& screenPoint,
WebDragOperationsMask operationsAllowed)
@@ -1763,7 +1816,6 @@ WebDragOperation WebViewImpl::dragTargetDragEnter(
ASSERT(!m_currentDragData.get());
m_currentDragData = webDragData;
- m_dragIdentity = identity;
m_operationsAllowed = operationsAllowed;
return dragTargetDragEnterOrOver(clientPoint, screenPoint, DragEnter);
@@ -1789,14 +1841,12 @@ void WebViewImpl::dragTargetDragLeave()
IntPoint(),
static_cast<DragOperation>(m_operationsAllowed));
- m_dragTargetDispatch = true;
m_page->dragController()->dragExited(&dragData);
- m_dragTargetDispatch = false;
- m_currentDragData = 0;
- m_dropEffect = DropEffectDefault;
+ // FIXME: why is the drag scroll timer not stopped here?
+
m_dragOperation = WebDragOperationNone;
- m_dragIdentity = 0;
+ m_currentDragData = 0;
}
void WebViewImpl::dragTargetDrop(const WebPoint& clientPoint,
@@ -1822,22 +1872,12 @@ void WebViewImpl::dragTargetDrop(const WebPoint& clientPoint,
screenPoint,
static_cast<DragOperation>(m_operationsAllowed));
- m_dragTargetDispatch = true;
m_page->dragController()->performDrag(&dragData);
- m_dragTargetDispatch = false;
- m_currentDragData = 0;
- m_dropEffect = DropEffectDefault;
m_dragOperation = WebDragOperationNone;
- m_dragIdentity = 0;
- m_dragScrollTimer->stop();
-}
+ m_currentDragData = 0;
-int WebViewImpl::dragIdentity()
-{
- if (m_dragTargetDispatch)
- return m_dragIdentity;
- return 0;
+ m_dragScrollTimer->stop();
}
WebDragOperation WebViewImpl::dragTargetDragEnterOrOver(const WebPoint& clientPoint, const WebPoint& screenPoint, DragAction dragAction)
@@ -1850,27 +1890,23 @@ WebDragOperation WebViewImpl::dragTargetDragEnterOrOver(const WebPoint& clientPo
screenPoint,
static_cast<DragOperation>(m_operationsAllowed));
- m_dropEffect = DropEffectDefault;
- m_dragTargetDispatch = true;
- DragOperation effect = dragAction == DragEnter ? m_page->dragController()->dragEntered(&dragData)
- : m_page->dragController()->dragUpdated(&dragData);
- // Mask the operation against the drag source's allowed operations.
- if (!(effect & dragData.draggingSourceOperationMask()))
- effect = DragOperationNone;
- m_dragTargetDispatch = false;
-
- if (m_dropEffect != DropEffectDefault) {
- m_dragOperation = (m_dropEffect != DropEffectNone) ? WebDragOperationCopy
- : WebDragOperationNone;
- } else
- m_dragOperation = static_cast<WebDragOperation>(effect);
+ DragOperation dropEffect;
+ if (dragAction == DragEnter)
+ dropEffect = m_page->dragController()->dragEntered(&dragData);
+ else
+ dropEffect = m_page->dragController()->dragUpdated(&dragData);
+
+ // Mask the drop effect operation against the drag source's allowed operations.
+ if (!(dropEffect & dragData.draggingSourceOperationMask()))
+ dropEffect = DragOperationNone;
+
+ m_dragOperation = static_cast<WebDragOperation>(dropEffect);
if (dragAction == DragOver)
m_dragScrollTimer->triggerScroll(mainFrameImpl()->frameView(), clientPoint);
else
m_dragScrollTimer->stop();
-
return m_dragOperation;
}
@@ -2010,15 +2046,6 @@ void WebViewImpl::performCustomContextMenuAction(unsigned action)
// WebView --------------------------------------------------------------------
-bool WebViewImpl::setDropEffect(bool accept)
-{
- if (m_dragTargetDispatch) {
- m_dropEffect = accept ? DropEffectCopy : DropEffectNone;
- return true;
- }
- return false;
-}
-
void WebViewImpl::setIsTransparent(bool isTransparent)
{
// Set any existing frames to be transparent.
@@ -2258,9 +2285,26 @@ bool WebViewImpl::allowsAcceleratedCompositing()
return !m_compositorCreationFailed;
}
+bool WebViewImpl::pageHasRTLStyle() const
+{
+ if (!page())
+ return false;
+ Document* document = page()->mainFrame()->document();
+ if (!document)
+ return false;
+ RenderView* renderView = document->renderView();
+ if (!renderView)
+ return false;
+ RenderStyle* style = renderView->style();
+ if (!style)
+ return false;
+ return (style->direction() == RTL);
+}
+
void WebViewImpl::setRootGraphicsLayer(WebCore::PlatformLayer* layer)
{
- setIsAcceleratedCompositingActive(layer ? true : false);
+ // FIXME: RTL style not supported by the compositor yet.
+ setIsAcceleratedCompositingActive(layer && !pageHasRTLStyle() ? true : false);
if (m_layerRenderer)
m_layerRenderer->setRootLayer(layer);
@@ -2279,6 +2323,7 @@ void WebViewImpl::setRootLayerNeedsDisplay()
void WebViewImpl::scrollRootLayerRect(const IntSize& scrollDelta, const IntRect& clipRect)
{
+ updateLayerRendererViewport();
setRootLayerNeedsDisplay();
}
@@ -2290,14 +2335,66 @@ void WebViewImpl::invalidateRootLayerRect(const IntRect& rect)
return;
FrameView* view = page()->mainFrame()->view();
- IntRect contentRect = view->visibleContentRect(false);
- IntRect visibleRect = view->visibleContentRect(true);
-
IntRect dirtyRect = view->windowToContents(rect);
- m_layerRenderer->invalidateRootLayerRect(dirtyRect, visibleRect, contentRect);
+ updateLayerRendererViewport();
+ m_layerRenderer->invalidateRootLayerRect(dirtyRect);
setRootLayerNeedsDisplay();
}
+class WebViewImplContentPainter : public TilePaintInterface {
+ WTF_MAKE_NONCOPYABLE(WebViewImplContentPainter);
+public:
+ static PassOwnPtr<WebViewImplContentPainter*> create(WebViewImpl* webViewImpl)
+ {
+ return adoptPtr(new WebViewImplContentPainter(webViewImpl));
+ }
+
+ virtual void paint(GraphicsContext& context, const IntRect& contentRect)
+ {
+ Page* page = m_webViewImpl->page();
+ if (!page)
+ return;
+ FrameView* view = page->mainFrame()->view();
+ view->paintContents(&context, contentRect);
+ }
+
+private:
+ explicit WebViewImplContentPainter(WebViewImpl* webViewImpl)
+ : m_webViewImpl(webViewImpl)
+ {
+ }
+
+ WebViewImpl* m_webViewImpl;
+};
+
+class WebViewImplScrollbarPainter : public TilePaintInterface {
+ WTF_MAKE_NONCOPYABLE(WebViewImplScrollbarPainter);
+public:
+ static PassOwnPtr<WebViewImplScrollbarPainter> create(WebViewImpl* webViewImpl)
+ {
+ return adoptPtr(new WebViewImplScrollbarPainter(webViewImpl));
+ }
+
+ virtual void paint(GraphicsContext& context, const IntRect& contentRect)
+ {
+ Page* page = m_webViewImpl->page();
+ if (!page)
+ return;
+ FrameView* view = page->mainFrame()->view();
+
+ context.translate(static_cast<float>(view->scrollX()), static_cast<float>(view->scrollY()));
+ IntRect windowRect = view->contentsToWindow(contentRect);
+ view->paintScrollbars(&context, windowRect);
+ }
+
+private:
+ explicit WebViewImplScrollbarPainter(WebViewImpl* webViewImpl)
+ : m_webViewImpl(webViewImpl)
+ {
+ }
+
+ WebViewImpl* m_webViewImpl;
+};
void WebViewImpl::setIsAcceleratedCompositingActive(bool active)
{
@@ -2308,8 +2405,11 @@ void WebViewImpl::setIsAcceleratedCompositingActive(bool active)
if (!active) {
m_isAcceleratedCompositingActive = false;
+ // We need to finish all GL rendering before sending
+ // didActivateAcceleratedCompositing(false) to prevent
+ // flickering when compositing turns off.
if (m_layerRenderer)
- m_layerRenderer->finish(); // finish all GL rendering before we hide the window?
+ m_layerRenderer->finish();
m_client->didActivateAcceleratedCompositing(false);
} else if (m_layerRenderer) {
m_isAcceleratedCompositingActive = true;
@@ -2324,7 +2424,8 @@ void WebViewImpl::setIsAcceleratedCompositingActive(bool active)
if (context)
context->reshape(std::max(1, m_size.width), std::max(1, m_size.height));
}
- m_layerRenderer = LayerRendererChromium::create(context.release());
+
+ m_layerRenderer = LayerRendererChromium::create(context.release(), WebViewImplContentPainter::create(this), WebViewImplScrollbarPainter::create(this));
if (m_layerRenderer) {
m_client->didActivateAcceleratedCompositing(true);
m_isAcceleratedCompositingActive = true;
@@ -2339,95 +2440,67 @@ void WebViewImpl::setIsAcceleratedCompositingActive(bool active)
page()->mainFrame()->view()->setClipsRepaints(!m_isAcceleratedCompositingActive);
}
-class WebViewImplTilePaintInterface : public TilePaintInterface {
-public:
- explicit WebViewImplTilePaintInterface(WebViewImpl* webViewImpl)
- : m_webViewImpl(webViewImpl)
- {
- }
-
- virtual void paint(GraphicsContext& context, const IntRect& contentRect)
- {
- Page* page = m_webViewImpl->page();
- if (!page)
- return;
- FrameView* view = page->mainFrame()->view();
- view->paintContents(&context, contentRect);
- }
-
-private:
- WebViewImpl* m_webViewImpl;
-};
-
-
-class WebViewImplScrollbarPaintInterface : public TilePaintInterface {
-public:
- explicit WebViewImplScrollbarPaintInterface(WebViewImpl* webViewImpl)
- : m_webViewImpl(webViewImpl)
- {
- }
-
- virtual void paint(GraphicsContext& context, const IntRect& contentRect)
- {
- Page* page = m_webViewImpl->page();
- if (!page)
- return;
- FrameView* view = page->mainFrame()->view();
-
- context.translate(static_cast<float>(view->scrollX()), static_cast<float>(view->scrollY()));
- IntRect windowRect = view->contentsToWindow(contentRect);
- view->paintScrollbars(&context, windowRect);
- }
-
-private:
- WebViewImpl* m_webViewImpl;
-};
-
void WebViewImpl::doComposite()
{
+ ASSERT(m_layerRenderer);
+ if (!m_layerRenderer) {
+ setIsAcceleratedCompositingActive(false);
+ return;
+ }
+
ASSERT(isAcceleratedCompositingActive());
if (!page())
return;
- FrameView* view = page()->mainFrame()->view();
-
- // The visibleRect includes scrollbars whereas the contentRect doesn't.
- IntRect visibleRect = view->visibleContentRect(true);
- IntRect contentRect = view->visibleContentRect(false);
- IntPoint scroll(view->scrollX(), view->scrollY());
-
- WebViewImplTilePaintInterface tilePaint(this);
-
- WebViewImplScrollbarPaintInterface scrollbarPaint(this);
m_layerRenderer->setCompositeOffscreen(settings()->compositeToTextureEnabled());
CCHeadsUpDisplay* hud = m_layerRenderer->headsUpDisplay();
hud->setShowFPSCounter(settings()->showFPSCounter());
hud->setShowPlatformLayerTree(settings()->showPlatformLayerTree());
- m_layerRenderer->updateAndDrawLayers(visibleRect, contentRect, scroll, tilePaint, scrollbarPaint);
-
- if (m_layerRenderer->isCompositingOffscreen())
- m_layerRenderer->copyOffscreenTextureToDisplay();
+ m_layerRenderer->updateAndDrawLayers();
}
void WebViewImpl::reallocateRenderer()
{
- GraphicsContext3D* context = m_layerRenderer->context();
- RefPtr<GraphicsContext3D> newContext = GraphicsContext3D::create(context->getContextAttributes(), m_page->chrome(), GraphicsContext3D::RenderDirectlyToHostWindow);
+ RefPtr<GraphicsContext3D> newContext = GraphicsContext3D::create(
+ getCompositorContextAttributes(), m_page->chrome(), GraphicsContext3D::RenderDirectlyToHostWindow);
// GraphicsContext3D::create might fail and return 0, in that case LayerRendererChromium::create will also return 0.
- RefPtr<LayerRendererChromium> layerRenderer = LayerRendererChromium::create(newContext);
+ RefPtr<LayerRendererChromium> layerRenderer = LayerRendererChromium::create(newContext, WebViewImplContentPainter::create(this), WebViewImplScrollbarPainter::create(this));
// Reattach the root layer. Child layers will get reattached as a side effect of updateLayersRecursive.
- if (layerRenderer)
+ if (layerRenderer) {
m_layerRenderer->transferRootLayer(layerRenderer.get());
- m_layerRenderer = layerRenderer;
-
- // Enable or disable accelerated compositing and request a refresh.
- setRootGraphicsLayer(m_layerRenderer ? m_layerRenderer->rootLayer() : 0);
+ m_layerRenderer = layerRenderer;
+ // FIXME: In MacOS newContext->reshape method needs to be called to
+ // allocate IOSurfaces. All calls to create a context followed by
+ // reshape should really be extracted into one function; it is not
+ // immediately obvious that GraphicsContext3D object will not
+ // function properly until its reshape method is called.
+ newContext->reshape(std::max(1, m_size.width), std::max(1, m_size.height));
+ setRootGraphicsLayer(m_layerRenderer->rootLayer());
+ // Forces ViewHostMsg_DidActivateAcceleratedCompositing to be sent so
+ // that the browser process can reacquire surfaces.
+ m_client->didActivateAcceleratedCompositing(true);
+ } else
+ setRootGraphicsLayer(0);
}
#endif
+void WebViewImpl::updateLayerRendererViewport()
+{
+ ASSERT(m_layerRenderer);
+
+ if (!page())
+ return;
+
+ FrameView* view = page()->mainFrame()->view();
+ IntRect contentRect = view->visibleContentRect(false);
+ IntRect visibleRect = view->visibleContentRect(true);
+ IntPoint scroll(view->scrollX(), view->scrollY());
+
+ m_layerRenderer->setViewport(visibleRect, contentRect, scroll);
+}
WebGraphicsContext3D* WebViewImpl::graphicsContext3D()
{
diff --git a/Source/WebKit/chromium/src/WebViewImpl.h b/Source/WebKit/chromium/src/WebViewImpl.h
index 2163725..66b2908 100644
--- a/Source/WebKit/chromium/src/WebViewImpl.h
+++ b/Source/WebKit/chromium/src/WebViewImpl.h
@@ -114,6 +114,9 @@ public:
// WebView methods:
virtual void initializeMainFrame(WebFrameClient*);
+ virtual void setDevToolsAgentClient(WebDevToolsAgentClient*);
+ virtual void setAutoFillClient(WebAutoFillClient*);
+ virtual void setSpellCheckClient(WebSpellCheckClient*);
virtual WebSettings* settings();
virtual WebString pageEncoding() const;
virtual void setPageEncoding(const WebString& encoding);
@@ -154,7 +157,12 @@ public:
WebDragOperation operation);
virtual void dragSourceSystemDragEnded();
virtual WebDragOperation dragTargetDragEnter(
- const WebDragData& dragData, int identity,
+ const WebDragData&, int identity, // FIXME: remove identity from this function signature.
+ const WebPoint& clientPoint,
+ const WebPoint& screenPoint,
+ WebDragOperationsMask operationsAllowed);
+ virtual WebDragOperation dragTargetDragEnter(
+ const WebDragData&,
const WebPoint& clientPoint,
const WebPoint& screenPoint,
WebDragOperationsMask operationsAllowed);
@@ -166,8 +174,6 @@ public:
virtual void dragTargetDrop(
const WebPoint& clientPoint,
const WebPoint& screenPoint);
- virtual int dragIdentity();
- virtual bool setDropEffect(bool accept);
virtual unsigned long createUniqueIdentifierForRequest();
virtual void inspectElementAt(const WebPoint& point);
virtual WebString inspectorSettings() const;
@@ -221,6 +227,11 @@ public:
return m_autoFillClient;
}
+ WebSpellCheckClient* spellCheckClient()
+ {
+ return m_spellCheckClient;
+ }
+
// Returns the page object associated with this view. This may be null when
// the page is shutting down, but will be valid at all other times.
WebCore::Page* page() const
@@ -327,6 +338,7 @@ public:
#if USE(ACCELERATED_COMPOSITING)
bool allowsAcceleratedCompositing();
+ bool pageHasRTLStyle() const;
void setRootGraphicsLayer(WebCore::PlatformLayer*);
void setRootLayerNeedsDisplay();
void scrollRootLayerRect(const WebCore::IntSize& scrollDelta, const WebCore::IntRect& clipRect);
@@ -361,7 +373,7 @@ private:
DragOver
};
- WebViewImpl(WebViewClient*, WebDevToolsAgentClient*, WebAutoFillClient*);
+ WebViewImpl(WebViewClient*);
~WebViewImpl();
// Returns true if the event was actually processed.
@@ -399,10 +411,12 @@ private:
void doComposite();
void doPixelReadbackToCanvas(WebCanvas*, const WebCore::IntRect&);
void reallocateRenderer();
+ void updateLayerRendererViewport();
#endif
WebViewClient* m_client;
WebAutoFillClient* m_autoFillClient;
+ WebSpellCheckClient* m_spellCheckClient;
ChromeClientImpl m_chromeClientImpl;
ContextMenuClientImpl m_contextMenuClientImpl;
@@ -467,22 +481,6 @@ private:
// Represents whether or not this object should process incoming IME events.
bool m_imeAcceptEvents;
- // True while dispatching system drag and drop events to drag/drop targets
- // within this WebView.
- bool m_dragTargetDispatch;
-
- // Valid when m_dragTargetDispatch is true; the identity of the drag data
- // copied from the WebDropData object sent from the browser process.
- int m_dragIdentity;
-
- // Valid when m_dragTargetDispatch is true. Used to override the default
- // browser drop effect with the effects "none" or "copy".
- enum DragTargetDropEffect {
- DropEffectDefault = -1,
- DropEffectNone,
- DropEffectCopy
- } m_dropEffect;
-
// The available drag operations (copy, move link...) allowed by the source.
WebDragOperation m_operationsAllowed;
@@ -531,6 +529,8 @@ private:
RefPtr<WebCore::LayerRendererChromium> m_layerRenderer;
bool m_isAcceleratedCompositingActive;
bool m_compositorCreationFailed;
+ // If true, the graphics context is being restored.
+ bool m_recreatingGraphicsContext;
#endif
static const WebInputEvent* m_currentInputEvent;
diff --git a/Source/WebKit/chromium/src/WebWorkerBase.cpp b/Source/WebKit/chromium/src/WebWorkerBase.cpp
index b16b6d4..0cd5f41 100644
--- a/Source/WebKit/chromium/src/WebWorkerBase.cpp
+++ b/Source/WebKit/chromium/src/WebWorkerBase.cpp
@@ -65,7 +65,7 @@ namespace {
// This class is used to route the result of the WebWorkerBase::allowDatabase
// call back to the worker context.
-class AllowDatabaseMainThreadBridge : public ThreadSafeShared<AllowDatabaseMainThreadBridge> {
+class AllowDatabaseMainThreadBridge : public ThreadSafeRefCounted<AllowDatabaseMainThreadBridge> {
public:
static PassRefPtr<AllowDatabaseMainThreadBridge> create(WebWorkerBase* worker, const WTF::String& mode, WebCommonWorkerClient* commonClient, WebFrame* frame, const WTF::String& name, const WTF::String& displayName, unsigned long estimatedSize)
{
@@ -170,7 +170,7 @@ void WebWorkerBase::initializeLoader(const WebURL& url)
// loading requests from the worker context to the rest of WebKit and Chromium
// infrastructure.
ASSERT(!m_webView);
- m_webView = WebView::create(0, 0, 0);
+ m_webView = WebView::create(0);
m_webView->settings()->setOfflineWebApplicationCacheEnabled(WebRuntimeFeatures::isApplicationCacheEnabled());
m_webView->initializeMainFrame(this);
@@ -237,7 +237,7 @@ bool WebWorkerBase::allowDatabase(WebFrame*, const WebString& name, const WebStr
}
#if ENABLE(FILE_SYSTEM)
-void WebWorkerBase::openFileSystemForWorker(WebFileSystem::Type type, long long size, WebFileSystemCallbacks* callbacks, bool synchronous)
+void WebWorkerBase::openFileSystemForWorker(WebFileSystem::Type type, long long size, bool create, WebFileSystemCallbacks* callbacks, bool synchronous)
{
WorkerRunLoop& runLoop = m_workerThread->runLoop();
WorkerScriptController* controller = WorkerScriptController::controllerForContext();
@@ -248,7 +248,7 @@ void WebWorkerBase::openFileSystemForWorker(WebFileSystem::Type type, long long
mode.append(String::number(runLoop.createUniqueId()));
RefPtr<WorkerFileSystemCallbacksBridge> bridge = WorkerFileSystemCallbacksBridge::create(this, workerContext, callbacks);
- bridge->postOpenFileSystemToMainThread(commonClient(), type, size, mode);
+ bridge->postOpenFileSystemToMainThread(commonClient(), type, size, create, mode);
if (synchronous) {
if (runLoop.runInMode(workerContext, mode) == MessageQueueTerminated)
diff --git a/Source/WebKit/chromium/src/WebWorkerBase.h b/Source/WebKit/chromium/src/WebWorkerBase.h
index ec73505..8fb032e 100644
--- a/Source/WebKit/chromium/src/WebWorkerBase.h
+++ b/Source/WebKit/chromium/src/WebWorkerBase.h
@@ -92,7 +92,7 @@ public:
virtual bool allowDatabase(WebFrame*, const WebString& name, const WebString& displayName, unsigned long estimatedSize);
#if ENABLE(FILE_SYSTEM)
- void openFileSystemForWorker(WebFileSystem::Type, long long size, WebFileSystemCallbacks*, bool synchronous);
+ void openFileSystemForWorker(WebFileSystem::Type, long long size, bool create, WebFileSystemCallbacks*, bool synchronous);
#endif
// Executes the given task on the main thread.
diff --git a/Source/WebKit/chromium/src/WorkerFileSystemCallbacksBridge.cpp b/Source/WebKit/chromium/src/WorkerFileSystemCallbacksBridge.cpp
index 6c31221..d05322f 100644
--- a/Source/WebKit/chromium/src/WorkerFileSystemCallbacksBridge.cpp
+++ b/Source/WebKit/chromium/src/WorkerFileSystemCallbacksBridge.cpp
@@ -57,6 +57,7 @@ template<> struct CrossThreadCopierBase<false, false, WebKit::WebFileInfo> {
newInfo.modificationTime = info.modificationTime;
newInfo.length = info.length;
newInfo.type = info.type;
+ newInfo.platformPath.assign(info.platformPath.data(), info.platformPath.length());
return newInfo;
}
};
@@ -85,7 +86,7 @@ namespace WebKit {
class MainThreadFileSystemCallbacks : public WebFileSystemCallbacks {
public:
// Callbacks are self-destructed and we always return leaked pointer here.
- static MainThreadFileSystemCallbacks* createLeakedPtr(PassRefPtr<WorkerFileSystemCallbacksBridge> bridge, const String& mode)
+ static MainThreadFileSystemCallbacks* createLeakedPtr(WorkerFileSystemCallbacksBridge* bridge, const String& mode)
{
OwnPtr<MainThreadFileSystemCallbacks> callbacks = adoptPtr(new MainThreadFileSystemCallbacks(bridge, mode));
return callbacks.leakPtr();
@@ -126,15 +127,16 @@ public:
}
private:
- MainThreadFileSystemCallbacks(PassRefPtr<WorkerFileSystemCallbacksBridge> bridge, const String& mode)
+ MainThreadFileSystemCallbacks(WorkerFileSystemCallbacksBridge* bridge, const String& mode)
: m_bridge(bridge)
, m_mode(mode)
{
- ASSERT(m_bridge.get());
+ ASSERT(m_bridge);
}
friend class WorkerFileSystemCallbacksBridge;
- RefPtr<WorkerFileSystemCallbacksBridge> m_bridge;
+ // The bridge pointer is kept by the bridge itself on the WorkerThread.
+ WorkerFileSystemCallbacksBridge* m_bridge;
const String m_mode;
};
@@ -150,9 +152,9 @@ void WorkerFileSystemCallbacksBridge::stop()
}
}
-void WorkerFileSystemCallbacksBridge::postOpenFileSystemToMainThread(WebCommonWorkerClient* commonClient, WebFileSystem::Type type, long long size, const String& mode)
+void WorkerFileSystemCallbacksBridge::postOpenFileSystemToMainThread(WebCommonWorkerClient* commonClient, WebFileSystem::Type type, long long size, bool create, const String& mode)
{
- dispatchTaskToMainThread(createCallbackTask(&openFileSystemOnMainThread, commonClient, type, size, this, mode));
+ dispatchTaskToMainThread(createCallbackTask(&openFileSystemOnMainThread, commonClient, type, size, create, this, mode));
}
void WorkerFileSystemCallbacksBridge::postMoveToMainThread(WebFileSystem* fileSystem, const String& sourcePath, const String& destinationPath, const String& mode)
@@ -212,12 +214,12 @@ void WorkerFileSystemCallbacksBridge::postReadDirectoryToMainThread(WebFileSyste
dispatchTaskToMainThread(createCallbackTask(&readDirectoryOnMainThread, fileSystem, path, this, mode));
}
-void WorkerFileSystemCallbacksBridge::openFileSystemOnMainThread(ScriptExecutionContext*, WebCommonWorkerClient* commonClient, WebFileSystem::Type type, long long size, WorkerFileSystemCallbacksBridge* bridge, const String& mode)
+void WorkerFileSystemCallbacksBridge::openFileSystemOnMainThread(ScriptExecutionContext*, WebCommonWorkerClient* commonClient, WebFileSystem::Type type, long long size, bool create, WorkerFileSystemCallbacksBridge* bridge, const String& mode)
{
if (!commonClient)
bridge->didFailOnMainThread(WebFileErrorAbort, mode);
else {
- commonClient->openFileSystem(type, size, MainThreadFileSystemCallbacks::createLeakedPtr(bridge, mode));
+ commonClient->openFileSystem(type, size, create, MainThreadFileSystemCallbacks::createLeakedPtr(bridge, mode));
}
}
@@ -365,6 +367,7 @@ void WorkerFileSystemCallbacksBridge::runTaskOnWorkerThread(WebCore::ScriptExecu
ASSERT(bridge->m_workerContext->isContextThread());
taskToRun->performTask(scriptExecutionContext);
bridge->m_callbacksOnWorkerThread = 0;
+ bridge->stopObserving();
}
void WorkerFileSystemCallbacksBridge::dispatchTaskToMainThread(PassOwnPtr<WebCore::ScriptExecutionContext::Task> task)
@@ -379,12 +382,9 @@ void WorkerFileSystemCallbacksBridge::dispatchTaskToMainThread(PassOwnPtr<WebCor
void WorkerFileSystemCallbacksBridge::mayPostTaskToWorker(PassOwnPtr<ScriptExecutionContext::Task> task, const String& mode)
{
ASSERT(isMainThread());
- { // Let go of the mutex before possibly deleting this due to m_selfRef.clear().
- MutexLocker locker(m_mutex);
- if (m_worker)
- m_worker->postTaskForModeToWorkerContext(createCallbackTask(&runTaskOnWorkerThread, m_selfRef, task), mode);
- }
- m_selfRef.clear();
+ MutexLocker locker(m_mutex);
+ if (m_worker)
+ m_worker->postTaskForModeToWorkerContext(createCallbackTask(&runTaskOnWorkerThread, m_selfRef.release(), task), mode);
}
} // namespace WebCore
diff --git a/Source/WebKit/chromium/src/WorkerFileSystemCallbacksBridge.h b/Source/WebKit/chromium/src/WorkerFileSystemCallbacksBridge.h
index fa57f38..9a869dc 100644
--- a/Source/WebKit/chromium/src/WorkerFileSystemCallbacksBridge.h
+++ b/Source/WebKit/chromium/src/WorkerFileSystemCallbacksBridge.h
@@ -66,7 +66,7 @@ struct WebFileSystemEntry;
// --> Bridge::didXxxOnWorkerThread is called on WorkerThread
// This calls the original callbacks (m_callbacksOnWorkerThread) and
// releases a self-reference to the bridge.
-class WorkerFileSystemCallbacksBridge : public ThreadSafeShared<WorkerFileSystemCallbacksBridge>, public WebCore::WorkerContext::Observer {
+class WorkerFileSystemCallbacksBridge : public ThreadSafeRefCounted<WorkerFileSystemCallbacksBridge>, public WebCore::WorkerContext::Observer {
public:
~WorkerFileSystemCallbacksBridge();
@@ -84,7 +84,7 @@ public:
}
// Methods that create an instance and post an initial request task to the main thread. They must be called on the worker thread.
- void postOpenFileSystemToMainThread(WebCommonWorkerClient*, WebFileSystem::Type, long long size, const String& mode);
+ void postOpenFileSystemToMainThread(WebCommonWorkerClient*, WebFileSystem::Type, long long size, bool create, const String& mode);
void postMoveToMainThread(WebFileSystem*, const String& srcPath, const String& destPath, const String& mode);
void postCopyToMainThread(WebFileSystem*, const String& srcPath, const String& destPath, const String& mode);
void postRemoveToMainThread(WebFileSystem*, const String& path, const String& mode);
@@ -107,7 +107,7 @@ private:
WorkerFileSystemCallbacksBridge(WebWorkerBase*, WebCore::ScriptExecutionContext*, WebFileSystemCallbacks*);
// Methods that are to be called on the main thread.
- static void openFileSystemOnMainThread(WebCore::ScriptExecutionContext*, WebCommonWorkerClient*, WebFileSystem::Type, long long size, WorkerFileSystemCallbacksBridge*, const String& mode);
+ static void openFileSystemOnMainThread(WebCore::ScriptExecutionContext*, WebCommonWorkerClient*, WebFileSystem::Type, long long size, bool create, WorkerFileSystemCallbacksBridge*, const String& mode);
static void moveOnMainThread(WebCore::ScriptExecutionContext*, WebFileSystem*, const String& srcPath, const String& destPath, WorkerFileSystemCallbacksBridge*, const String& mode);
static void copyOnMainThread(WebCore::ScriptExecutionContext*, WebFileSystem*, const String& srcPath, const String& destPath, WorkerFileSystemCallbacksBridge*, const String& mode);
static void removeOnMainThread(WebCore::ScriptExecutionContext*, WebFileSystem*, const String& path, WorkerFileSystemCallbacksBridge*, const String& mode);
@@ -138,7 +138,7 @@ private:
void dispatchTaskToMainThread(PassOwnPtr<WebCore::ScriptExecutionContext::Task>);
void mayPostTaskToWorker(PassOwnPtr<WebCore::ScriptExecutionContext::Task>, const String& mode);
- // m_selfRef keeps a reference to itself until a task is created for the worker thread (at which point the task holds the reference).
+ // m_selfRef keeps a reference to itself while there's a pending callback on the main thread.
RefPtr<WorkerFileSystemCallbacksBridge> m_selfRef;
Mutex m_mutex;
diff --git a/Source/WebKit/chromium/src/WorkerFileWriterCallbacksBridge.h b/Source/WebKit/chromium/src/WorkerFileWriterCallbacksBridge.h
index 62e333c..7e9795e 100644
--- a/Source/WebKit/chromium/src/WorkerFileWriterCallbacksBridge.h
+++ b/Source/WebKit/chromium/src/WorkerFileWriterCallbacksBridge.h
@@ -38,7 +38,7 @@
#include "WorkerContext.h"
#include <wtf/PassOwnPtr.h>
#include <wtf/PassRefPtr.h>
-#include <wtf/ThreadSafeShared.h>
+#include <wtf/ThreadSafeRefCounted.h>
namespace WebCore {
class AsyncFileWriterClient;
@@ -79,7 +79,7 @@ class WebWorkerBase;
// should call postShutdownToMainThread before dropping its reference to the
// bridge. This ensures that the WebFileWriter will be cleared on the main
// thread and that no further calls to the WebFileWriterClient will be made.
-class WorkerFileWriterCallbacksBridge : public ThreadSafeShared<WorkerFileWriterCallbacksBridge>, public WebCore::WorkerContext::Observer, public WebFileWriterClient {
+class WorkerFileWriterCallbacksBridge : public ThreadSafeRefCounted<WorkerFileWriterCallbacksBridge>, public WebCore::WorkerContext::Observer, public WebFileWriterClient {
public:
~WorkerFileWriterCallbacksBridge();
diff --git a/Source/WebKit/chromium/src/js/DevTools.js b/Source/WebKit/chromium/src/js/DevTools.js
index 03c72d2..7a3eb8d 100644
--- a/Source/WebKit/chromium/src/js/DevTools.js
+++ b/Source/WebKit/chromium/src/js/DevTools.js
@@ -48,7 +48,6 @@ var context = {}; // Used by WebCore's inspector routines.
Preferences.onlineDetectionEnabled = false;
Preferences.nativeInstrumentationEnabled = true;
Preferences.fileSystemEnabled = false;
- Preferences.resourceExportEnabled = true;
Preferences.showTimingTab = true;
Preferences.showCookiesTab = true;
})();
diff --git a/Source/WebKit/chromium/src/js/Images/segmentChromium.png b/Source/WebKit/chromium/src/js/Images/segmentChromium.png
index f4248e1..a636820 100755
--- a/Source/WebKit/chromium/src/js/Images/segmentChromium.png
+++ b/Source/WebKit/chromium/src/js/Images/segmentChromium.png
Binary files differ
diff --git a/Source/WebKit/chromium/src/js/Images/segmentHoverChromium.png b/Source/WebKit/chromium/src/js/Images/segmentHoverChromium.png
index 0a743d9..0510773 100755
--- a/Source/WebKit/chromium/src/js/Images/segmentHoverChromium.png
+++ b/Source/WebKit/chromium/src/js/Images/segmentHoverChromium.png
Binary files differ
diff --git a/Source/WebKit/chromium/src/js/Images/segmentHoverEndChromium.png b/Source/WebKit/chromium/src/js/Images/segmentHoverEndChromium.png
index cf62072..91be9db 100755
--- a/Source/WebKit/chromium/src/js/Images/segmentHoverEndChromium.png
+++ b/Source/WebKit/chromium/src/js/Images/segmentHoverEndChromium.png
Binary files differ
diff --git a/Source/WebKit/chromium/src/js/Images/segmentSelectedChromium.png b/Source/WebKit/chromium/src/js/Images/segmentSelectedChromium.png
index a1f7251..9df447b 100755
--- a/Source/WebKit/chromium/src/js/Images/segmentSelectedChromium.png
+++ b/Source/WebKit/chromium/src/js/Images/segmentSelectedChromium.png
Binary files differ
diff --git a/Source/WebKit/chromium/src/js/Images/segmentSelectedEndChromium.png b/Source/WebKit/chromium/src/js/Images/segmentSelectedEndChromium.png
index 07641db..abe8db8 100755
--- a/Source/WebKit/chromium/src/js/Images/segmentSelectedEndChromium.png
+++ b/Source/WebKit/chromium/src/js/Images/segmentSelectedEndChromium.png
Binary files differ
diff --git a/Source/WebKit/chromium/src/js/Images/statusbarBackgroundChromium.png b/Source/WebKit/chromium/src/js/Images/statusbarBackgroundChromium.png
index 7a760c1..b5a780f 100755
--- a/Source/WebKit/chromium/src/js/Images/statusbarBackgroundChromium.png
+++ b/Source/WebKit/chromium/src/js/Images/statusbarBackgroundChromium.png
Binary files differ
diff --git a/Source/WebKit/chromium/src/js/Images/statusbarBottomBackgroundChromium.png b/Source/WebKit/chromium/src/js/Images/statusbarBottomBackgroundChromium.png
index e3bc944..531a3ef 100755
--- a/Source/WebKit/chromium/src/js/Images/statusbarBottomBackgroundChromium.png
+++ b/Source/WebKit/chromium/src/js/Images/statusbarBottomBackgroundChromium.png
Binary files differ
diff --git a/Source/WebKit/chromium/src/js/Images/statusbarMenuButtonChromium.png b/Source/WebKit/chromium/src/js/Images/statusbarMenuButtonChromium.png
index 5ff61d9..c8fbd45 100755
--- a/Source/WebKit/chromium/src/js/Images/statusbarMenuButtonChromium.png
+++ b/Source/WebKit/chromium/src/js/Images/statusbarMenuButtonChromium.png
Binary files differ
diff --git a/Source/WebKit/chromium/src/js/Images/statusbarMenuButtonSelectedChromium.png b/Source/WebKit/chromium/src/js/Images/statusbarMenuButtonSelectedChromium.png
index 3c0aeec..668070d 100755
--- a/Source/WebKit/chromium/src/js/Images/statusbarMenuButtonSelectedChromium.png
+++ b/Source/WebKit/chromium/src/js/Images/statusbarMenuButtonSelectedChromium.png
Binary files differ
diff --git a/Source/WebKit/chromium/tests/PopupMenuTest.cpp b/Source/WebKit/chromium/tests/PopupMenuTest.cpp
index acfcda5..8c53ffc 100644
--- a/Source/WebKit/chromium/tests/PopupMenuTest.cpp
+++ b/Source/WebKit/chromium/tests/PopupMenuTest.cpp
@@ -181,7 +181,7 @@ public:
protected:
virtual void SetUp()
{
- m_webView = static_cast<WebViewImpl*>(WebView::create(&m_webviewClient, 0, 0));
+ m_webView = static_cast<WebViewImpl*>(WebView::create(&m_webviewClient));
m_webView->initializeMainFrame(&m_webFrameClient);
m_popupMenu = adoptRef(new PopupMenuChromium(&m_popupMenuClient));
}
diff --git a/Source/WebKit/chromium/tests/TilingDataTest.cpp b/Source/WebKit/chromium/tests/TilingDataTest.cpp
index ec18f01..a41f7fe 100755
--- a/Source/WebKit/chromium/tests/TilingDataTest.cpp
+++ b/Source/WebKit/chromium/tests/TilingDataTest.cpp
@@ -331,4 +331,56 @@ TEST(TilingDataTest, tileSizeY_and_tilePositionY)
EXPECT_EQ(4, TilingData(3, 100, 6, true).tilePositionY(3));
}
+TEST(TilingDataTest, setTotalSize)
+{
+ TilingData data(5, 5, 5, false);
+ EXPECT_EQ(5, data.totalSizeX());
+ EXPECT_EQ(5, data.totalSizeY());
+ EXPECT_EQ(1, data.numTilesX());
+ EXPECT_EQ(5, data.tileSizeX(0));
+ EXPECT_EQ(1, data.numTilesY());
+ EXPECT_EQ(5, data.tileSizeY(0));
+
+ data.setTotalSize(6, 5);
+ EXPECT_EQ(6, data.totalSizeX());
+ EXPECT_EQ(5, data.totalSizeY());
+ EXPECT_EQ(2, data.numTilesX());
+ EXPECT_EQ(5, data.tileSizeX(0));
+ EXPECT_EQ(1, data.tileSizeX(1));
+ EXPECT_EQ(1, data.numTilesY());
+ EXPECT_EQ(5, data.tileSizeY(0));
+
+ data.setTotalSize(5, 12);
+ EXPECT_EQ(5, data.totalSizeX());
+ EXPECT_EQ(12, data.totalSizeY());
+ EXPECT_EQ(1, data.numTilesX());
+ EXPECT_EQ(5, data.tileSizeX(0));
+ EXPECT_EQ(3, data.numTilesY());
+ EXPECT_EQ(5, data.tileSizeY(0));
+ EXPECT_EQ(5, data.tileSizeY(1));
+ EXPECT_EQ(2, data.tileSizeY(2));
+}
+
+TEST(TilingDataTest, setMaxTextureSize)
+{
+ TilingData data(8, 16, 32, false);
+ EXPECT_EQ(2, data.numTilesX());
+ EXPECT_EQ(4, data.numTilesY());
+
+ data.setMaxTextureSize(32);
+ EXPECT_EQ(32, data.maxTextureSize());
+ EXPECT_EQ(1, data.numTilesX());
+ EXPECT_EQ(1, data.numTilesY());
+
+ data.setMaxTextureSize(2);
+ EXPECT_EQ(2, data.maxTextureSize());
+ EXPECT_EQ(8, data.numTilesX());
+ EXPECT_EQ(16, data.numTilesY());
+
+ data.setMaxTextureSize(5);
+ EXPECT_EQ(5, data.maxTextureSize());
+ EXPECT_EQ(4, data.numTilesX());
+ EXPECT_EQ(7, data.numTilesY());
+}
+
} // namespace
diff --git a/Source/WebKit/chromium/tests/WebFrameTest.cpp b/Source/WebKit/chromium/tests/WebFrameTest.cpp
index 7342721..891fa83 100644
--- a/Source/WebKit/chromium/tests/WebFrameTest.cpp
+++ b/Source/WebKit/chromium/tests/WebFrameTest.cpp
@@ -28,6 +28,8 @@
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
+#include "config.h"
+
#include <googleurl/src/gurl.h>
#include <gtest/gtest.h>
#include <webkit/support/webkit_support.h>
@@ -85,7 +87,7 @@ TEST_F(WebFrameTest, ContentText)
// Create and initialize the WebView.
TestWebFrameClient webFrameClient;
- WebView* webView = WebView::create(0, 0, 0);
+ WebView* webView = WebView::create(0);
webView->initializeMainFrame(&webFrameClient);
// Load the main frame URL.
diff --git a/Source/WebKit/chromium/tests/WebPageSerializerTest.cpp b/Source/WebKit/chromium/tests/WebPageSerializerTest.cpp
new file mode 100644
index 0000000..1416882
--- /dev/null
+++ b/Source/WebKit/chromium/tests/WebPageSerializerTest.cpp
@@ -0,0 +1,193 @@
+/*
+ * Copyright (C) 2011 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 "WebPageSerializer.h"
+
+#include "WebFrame.h"
+#include "WebFrameClient.h"
+#include "WebString.h"
+#include "WebURL.h"
+#include "WebURLRequest.h"
+#include "WebURLResponse.h"
+#include "WebView.h"
+
+#include <googleurl/src/gurl.h>
+#include <gtest/gtest.h>
+#include <webkit/support/webkit_support.h>
+
+using namespace WebKit;
+
+namespace {
+
+class TestWebFrameClient : public WebFrameClient {
+};
+
+class WebPageSerializerTest : public testing::Test {
+public:
+ WebPageSerializerTest() : m_webView(0), m_supportedSchemes(3U)
+ {
+ m_supportedSchemes[0] = "http";
+ m_supportedSchemes[1] = "https";
+ m_supportedSchemes[2] = "file";
+ }
+
+protected:
+ virtual void SetUp()
+ {
+ // Create and initialize the WebView.
+ m_webView = WebView::create(0);
+ m_webView->initializeMainFrame(&m_webFrameClient);
+ }
+
+ virtual void TearDown()
+ {
+ webkit_support::UnregisterAllMockedURLs();
+ m_webView->close();
+ }
+
+ void registerMockedURLLoad(const WebURL& url, const WebString& fileName)
+ {
+ WebURLResponse response;
+ response.initialize();
+ response.setMIMEType("text/html");
+ std::string filePath = webkit_support::GetWebKitRootDir().utf8();
+ filePath.append("/Source/WebKit/chromium/tests/data/pageserialization/");
+ filePath.append(fileName.utf8());
+ webkit_support::RegisterMockedURL(url, response, WebString::fromUTF8(filePath));
+ }
+
+ void loadURLInTopFrame(const GURL& url)
+ {
+ WebURLRequest urlRequest;
+ urlRequest.initialize();
+ urlRequest.setURL(WebURL(url));
+ m_webView->mainFrame()->loadRequest(urlRequest);
+ // Make sure any pending request get served.
+ webkit_support::ServeAsynchronousMockedRequests();
+ }
+
+ static bool webVectorContains(const WebVector<WebURL>& vector, char* url)
+ {
+ return vector.contains(WebURL(GURL(url)));
+ }
+
+ // Useful for debugging.
+ static void printWebURLs(const WebVector<WebURL>& urls)
+ {
+ for (size_t i = 0; i < urls.size(); i++)
+ printf("%s\n", urls[i].spec().data());
+ }
+
+ WebView* m_webView;
+ WebVector<WebCString> m_supportedSchemes;
+
+private:
+ TestWebFrameClient m_webFrameClient;
+};
+
+TEST_F(WebPageSerializerTest, HTMLNodes)
+{
+ // Register the mocked frame and load it.
+ WebURL topFrameURL = GURL("http://www.test.com");
+ registerMockedURLLoad(topFrameURL, WebString::fromUTF8("simple_page.html"));
+ loadURLInTopFrame(topFrameURL);
+
+ // Retrieve all resources.
+ WebVector<WebURL> frames;
+ WebVector<WebURL> resources;
+ ASSERT_TRUE(WebPageSerializer::retrieveAllResources(
+ m_webView, m_supportedSchemes, &resources, &frames));
+
+ // Tests that all resources from the frame have been retrieved.
+ EXPECT_EQ(1, frames.size()); // There should be no duplicates.
+ EXPECT_TRUE(webVectorContains(frames, "http://www.test.com"));
+
+ EXPECT_EQ(14, resources.size()); // There should be no duplicates.
+ EXPECT_TRUE(webVectorContains(resources, "http://www.example.com/beautifull.css"));
+ EXPECT_TRUE(webVectorContains(resources, "http://www.test.com/awesome.js"));
+ EXPECT_TRUE(webVectorContains(resources, "http://www.test.com/bodyBackground.jpg"));
+ EXPECT_TRUE(webVectorContains(resources, "http://www.test.com/awesome.png"));
+ EXPECT_TRUE(webVectorContains(resources, "http://www.test.com/imageButton.png"));
+ EXPECT_TRUE(webVectorContains(resources, "http://www.test.com/tableBackground.png"));
+ EXPECT_TRUE(webVectorContains(resources, "http://www.test.com/trBackground.png"));
+ EXPECT_TRUE(webVectorContains(resources, "http://www.test.com/tdBackground.png"));
+ EXPECT_TRUE(webVectorContains(resources, "http://www.evene.fr/citations/auteur.php?ida=46"));
+ EXPECT_TRUE(webVectorContains(resources, "http://www.brainyquote.com/quotes/authors/c/charles_darwin.html"));
+ EXPECT_TRUE(webVectorContains(resources, "http://www.test.com/why_deleted.html"));
+ EXPECT_TRUE(webVectorContains(resources, "http://www.test.com/why_inserted.html"));
+ EXPECT_TRUE(webVectorContains(resources, "https://www.secure.com/https.gif"));
+ EXPECT_TRUE(webVectorContains(resources, "file://c/my_folder/file.gif"));
+}
+
+TEST_F(WebPageSerializerTest, MultipleFrames)
+{
+ // Register the mocked frames.
+ WebURL topFrameURL = GURL("http://www.test.com");
+ registerMockedURLLoad(topFrameURL, WebString::fromUTF8("top_frame.html"));
+ registerMockedURLLoad(GURL("http://www.test.com/simple_iframe.html"),
+ WebString::fromUTF8("simple_iframe.html"));
+ registerMockedURLLoad(GURL("http://www.test.com/object_iframe.html"),
+ WebString::fromUTF8("object_iframe.html"));
+ registerMockedURLLoad(GURL("http://www.test.com/embed_iframe.html"),
+ WebString::fromUTF8("embed_iframe.html"));
+ // If we don't register a mocked resource for awesome.png, it causes the
+ // document loader of the iframe that has it as its src to assert on close,
+ // not sure why.
+ registerMockedURLLoad(GURL("http://www.test.com/awesome.png"),
+ WebString::fromUTF8("awesome.png"));
+
+ loadURLInTopFrame(topFrameURL);
+
+ // Retrieve all resources.
+ WebVector<WebURL> frames;
+ WebVector<WebURL> resources;
+ ASSERT_TRUE(WebPageSerializer::retrieveAllResources(
+ m_webView, m_supportedSchemes, &resources, &frames));
+
+ // Tests that all resources from the frame have been retrieved.
+ EXPECT_EQ(4, frames.size()); // There should be no duplicates.
+ EXPECT_TRUE(webVectorContains(frames, "http://www.test.com"));
+ EXPECT_TRUE(webVectorContains(frames, "http://www.test.com/simple_iframe.html"));
+ EXPECT_TRUE(webVectorContains(frames, "http://www.test.com/object_iframe.html"));
+ EXPECT_TRUE(webVectorContains(frames, "http://www.test.com/embed_iframe.html"));
+
+ EXPECT_EQ(5, resources.size()); // There should be no duplicates.
+ EXPECT_TRUE(webVectorContains(resources, "http://www.test.com/awesome.png"));
+ EXPECT_TRUE(webVectorContains(resources, "http://www.test.com/innerFrame.png"));
+ EXPECT_TRUE(webVectorContains(resources, "http://www.test.com/flash.swf"));
+ // FIXME: for some reason the following resources is missing on one of the bot
+ // causing the test to fail. Probably a plugin issue.
+ // EXPECT_TRUE(webVectorContains(resources, "http://www.test.com/music.mid"));
+ EXPECT_TRUE(webVectorContains(resources, "http://www.test.com/object.png"));
+ EXPECT_TRUE(webVectorContains(resources, "http://www.test.com/embed.png"));
+}
+
+}
diff --git a/Source/WebKit/chromium/tests/data/pageserialization/awesome.png b/Source/WebKit/chromium/tests/data/pageserialization/awesome.png
new file mode 100644
index 0000000..8b13789
--- /dev/null
+++ b/Source/WebKit/chromium/tests/data/pageserialization/awesome.png
@@ -0,0 +1 @@
+
diff --git a/Source/WebKit/chromium/tests/data/pageserialization/embed_iframe.html b/Source/WebKit/chromium/tests/data/pageserialization/embed_iframe.html
new file mode 100644
index 0000000..174a8a9
--- /dev/null
+++ b/Source/WebKit/chromium/tests/data/pageserialization/embed_iframe.html
@@ -0,0 +1,5 @@
+<html>
+
+<img src="embed.png"/>
+
+</html>
diff --git a/Source/WebKit/chromium/tests/data/pageserialization/object_iframe.html b/Source/WebKit/chromium/tests/data/pageserialization/object_iframe.html
new file mode 100644
index 0000000..662bc5f
--- /dev/null
+++ b/Source/WebKit/chromium/tests/data/pageserialization/object_iframe.html
@@ -0,0 +1,5 @@
+<html>
+
+<img src="object.png"/>
+
+</html>
diff --git a/Source/WebKit/chromium/tests/data/pageserialization/simple_iframe.html b/Source/WebKit/chromium/tests/data/pageserialization/simple_iframe.html
new file mode 100644
index 0000000..65dca17
--- /dev/null
+++ b/Source/WebKit/chromium/tests/data/pageserialization/simple_iframe.html
@@ -0,0 +1,14 @@
+<html>
+<!--
+ This page is used to test that WebPageSerializer::retrieveAllResources retrieves
+ correctly the expected resources when dealing with multiple frames.
+-->
+
+<body>
+
+<img src="awesome.png"/>
+<img src="innerFrame.png"/>
+
+</body>
+
+</html>
diff --git a/Source/WebKit/chromium/tests/data/pageserialization/simple_page.html b/Source/WebKit/chromium/tests/data/pageserialization/simple_page.html
new file mode 100644
index 0000000..66d09e1
--- /dev/null
+++ b/Source/WebKit/chromium/tests/data/pageserialization/simple_page.html
@@ -0,0 +1,50 @@
+<html>
+<!--
+ This page is used to test that WebPageSerializer::retrieveAllResources retrieves
+ correctly the expected resources from various HTML nodes.
+-->
+
+<head>
+<!-- Style sheet links should be retrieved -->
+<link rel="stylesheet" type="text/css" href="http://www.example.com/beautifull.css"/>
+<!-- Other link should NOT be retrieved -->
+<link rel="copyright" type="text/plain" href="http://www.example.com/copyright"/>
+<!-- Scripts should be retrieved -->
+<script src="awesome.js"></script>
+</head>
+
+<!-- Images are always retrieved -->
+<body background="bodyBackground.jpg">
+
+<!-- Twice to make sure we only report each resource once -->
+<img src="awesome.png"/>
+<img src="awesome.png"/>
+
+<form>
+ <input type="image" src="imageButton.png"/>
+</form>
+
+<table background="tableBackground.png">
+ <tr background="trBackground.png">
+ <td background="tdBackground.png"></td>
+ </tr>
+ <tr background="trBackground.png">
+ <td background="tdBackground.png"></td>
+ </tr>
+</table>
+
+<!-- Some more obscure tags -->
+<blockquote cite="http://www.evene.fr/citations/auteur.php?ida=46"></blockquote>
+<q CITE="http://www.brainyquote.com/quotes/authors/c/charles_darwin.html"></q>
+<p>My favorite color is <del cite="why_deleted.html">blue</del> <ins>red</ins>!</p>
+<p>My favorite color is <del>blue</del> <ins cite="why_inserted.html">red</ins>!</p>
+
+<!-- Make sure we only retrieve URLs with the right schemes -->
+<img src="https://www.secure.com/https.gif"/> <!-- HTTPS is OK -->
+<img src="file://c/my_folder/file.gif"/> <!-- file is OK -->
+<img src="ftp://ftp.com/ftp.gif"/> <!-- FTP is not OK -->
+<img src="unknown://unkown.com/unknown.gif"/> <!-- Unknown schemes are not OK -->
+
+</body>
+
+</html>
diff --git a/Source/WebKit/chromium/tests/data/pageserialization/top_frame.html b/Source/WebKit/chromium/tests/data/pageserialization/top_frame.html
new file mode 100755
index 0000000..edc8ab2
--- /dev/null
+++ b/Source/WebKit/chromium/tests/data/pageserialization/top_frame.html
@@ -0,0 +1,28 @@
+<html>
+<!--
+ This page is used to test that WebPageSerializer::retrieveAllResources retrieves
+ correctly the expected resources when dealing with multiple frames.
+-->
+
+<body>
+
+<!-- Resources used by a frame and a tag should be only reported once -->
+<iframe src="awesome.png"></iframe>
+<img src="awesome.png"/>
+
+<iframe src="simple_iframe.html"></iframe>
+<iframe src="simple_iframe.html"></iframe>
+
+<!-- Object tags can be used to create iframes -->
+
+<object data="object_iframe.html"></object>
+<object data="flash.swf"></object>
+
+<!-- Embed tags can be used to create iframes as well -->
+<embed src="embed_iframe.html"></object>
+<!--
+<embed src="music.mid"></embed>
+-->
+</body>
+
+</html>
diff --git a/Source/WebKit/efl/ChangeLog b/Source/WebKit/efl/ChangeLog
index a781c80..35da09c 100644
--- a/Source/WebKit/efl/ChangeLog
+++ b/Source/WebKit/efl/ChangeLog
@@ -1,3 +1,263 @@
+2011-03-29 Gyuyoung Kim <gyuyoung.kim@samsung.com>
+
+ Reviewed by Antonio Gomes.
+
+ [EFL] Remove unnecessary ewk_view_viewport_attributes_set() invocation
+ https://bugs.webkit.org/show_bug.cgi?id=57222
+
+ WebCore sends viewport signal whenever viewport is changed by Page::updateViewportArguments().
+ Thus, we don't need to call ewk_view_viewport_attributes_set() with dummy viewport data
+ anymore.
+
+ * WebCoreSupport/FrameLoaderClientEfl.cpp:
+ (WebCore::FrameLoaderClientEfl::dispatchDidCommitLoad):
+
+2011-03-27 Patrick Gansterer <paroga@webkit.org>
+
+ Reviewed by Andreas Kling.
+
+ Fix agentOS() in FrameLoaderClientEfl
+ https://bugs.webkit.org/show_bug.cgi?id=57177
+
+ Replace old PLATFORM macro with OS and CPU.
+
+ * WebCoreSupport/FrameLoaderClientEfl.cpp:
+ (WebCore::agentOS):
+
+2011-03-27 Patrick Gansterer <paroga@webkit.org>
+
+ Reviewed by Andreas Kling.
+
+ [EFL] Use an appropriate user agent string
+ https://bugs.webkit.org/show_bug.cgi?id=57176
+
+ * WebCoreSupport/FrameLoaderClientEfl.cpp:
+ (WebCore::composeUserAgent):
+
+2011-03-25 Andy Estes <aestes@apple.com>
+
+ Reviewed by Adele Peterson.
+
+ REGRESSION (r70748): latest nightly builds kills AC_QuickTime.js
+ https://bugs.webkit.org/show_bug.cgi?id=49016
+
+ Update objectContentType() implementation to handle the
+ shouldPreferPlugInsForImages flag.
+
+ * WebCoreSupport/FrameLoaderClientEfl.cpp:
+ (WebCore::FrameLoaderClientEfl::objectContentType):
+ * WebCoreSupport/FrameLoaderClientEfl.h:
+
+2011-03-24 Gyuyoung Kim <gyuyoung.kim@samsung.com>
+
+ Reviewed by Antonio Gomes.
+
+ [EFL] Add sound / mute button to MediaControl UI
+ https://bugs.webkit.org/show_bug.cgi?id=56726
+
+ Add sound / mute button to MediaControl UI.
+
+ * DefaultTheme/default.edc:
+ * DefaultTheme/widget/mediacontrol/mutebutton/mute_button.edc: Added.
+ * DefaultTheme/widget/mediacontrol/mutebutton/mutebutton.png: Added.
+ * DefaultTheme/widget/mediacontrol/mutebutton/unmutebutton.png: Added.
+
+2011-03-24 Sheriff Bot <webkit.review.bot@gmail.com>
+
+ Unreviewed, rolling out r81916 and r81917.
+ http://trac.webkit.org/changeset/81916
+ http://trac.webkit.org/changeset/81917
+ https://bugs.webkit.org/show_bug.cgi?id=57071
+
+ broke a test on platforms that do not have QuickTime installed
+ (Requested by estes on #webkit).
+
+ * WebCoreSupport/FrameLoaderClientEfl.cpp:
+ (WebCore::FrameLoaderClientEfl::objectContentType):
+ * WebCoreSupport/FrameLoaderClientEfl.h:
+
+2011-03-24 Andy Estes <aestes@apple.com>
+
+ Reviewed by Darin Adler.
+
+ REGRESSION (r70748): latest nightly builds kills AC_QuickTime.js
+ https://bugs.webkit.org/show_bug.cgi?id=49016
+
+ Update objectContentType() implementation to handle the
+ shouldPreferPlugInsForImages flag.
+
+ * WebCoreSupport/FrameLoaderClientEfl.cpp:
+ (WebCore::FrameLoaderClientEfl::objectContentType):
+ * WebCoreSupport/FrameLoaderClientEfl.h:
+
+2011-03-23 Brady Eidson <beidson@apple.com>
+
+ Reviewed by Sam Weinig.
+
+ Change IconDatabase opening to allow for arbitrary filenames
+ https://bugs.webkit.org/show_bug.cgi?id=56977
+
+ * ewk/ewk_settings.cpp:
+ (ewk_settings_icon_database_path_set):
+
+2011-03-23 Gyuyoung Kim <gyuyoung.kim@samsung.com>
+
+ Reviewed by Antonio Gomes.
+
+ [EFL] Add play / pause button to media control
+ https://bugs.webkit.org/show_bug.cgi?id=55463
+
+ Add play|pause button to media control.
+
+ * DefaultTheme/default.edc:
+ * DefaultTheme/widget/mediacontrol/playpausebutton/pausebutton.png: Added.
+ * DefaultTheme/widget/mediacontrol/playpausebutton/playbutton.png: Added.
+ * DefaultTheme/widget/mediacontrol/playpausebutton/playpause_button.edc: Added.
+
+2011-03-22 Gyuyoung Kim <gyuyoung.kim@samsung.com>
+
+ Reviewed by Antonio Gomes.
+
+ [EFL] Change return values with better one in ewk_setting's functions
+ https://bugs.webkit.org/show_bug.cgi?id=56819
+
+ In ewk_settings_cache_directory_path_set_xxx, they return false value
+ when soup is disabled. It is better to use EINA_SAFETY_ON_TRUE_RETURN_XXX.
+
+ * ewk/ewk_settings.cpp:
+ (ewk_settings_proxy_uri_get):
+ (ewk_settings_cache_directory_path_set):
+ (ewk_settings_cache_directory_path_get):
+
+2011-03-22 Grzegorz Czajkowski <g.czajkowski@samsung.com>
+
+ Reviewed by Kent Tamura.
+
+ Add void to function without parameters
+ https://bugs.webkit.org/show_bug.cgi?id=56821
+
+ * ewk/ewk_cookies.cpp:
+ (ewk_cookies_clear):
+ (ewk_cookies_policy_get):
+ * ewk/ewk_cookies.h:
+ * ewk/ewk_private.h:
+ * ewk/ewk_settings.cpp:
+ (ewk_settings_web_database_default_quota_get):
+ (ewk_settings_web_database_path_get):
+ (ewk_settings_proxy_uri_get):
+ (ewk_settings_default_user_agent_get):
+ * ewk/ewk_settings.h:
+ * ewk/ewk_view.cpp:
+ (ewk_view_dpi_get):
+
+2011-03-17 Brady Eidson <beidson@apple.com>
+
+ Reviewed by Sam Weinig.
+
+ https://bugs.webkit.org/show_bug.cgi?id=56425
+ More groundwork for WebKit2 IconDatabase
+
+ Update already-used function names:
+ * ewk/ewk_history.cpp:
+ (ewk_history_item_icon_surface_get):
+ (ewk_history_item_icon_object_add):
+ * ewk/ewk_settings.cpp:
+ (ewk_settings_icon_database_icon_surface_get):
+ (ewk_settings_icon_database_icon_object_add):
+
+2011-03-16 Joseph Pecoraro <joepeck@webkit.org>
+
+ Reviewed by Kenneth Rohde Christiansen.
+
+ Viewport no longer allows an auto value for "user-scalable"
+ https://bugs.webkit.org/show_bug.cgi?id=55416
+
+ Make the default value for userScalable be true.
+
+ * ewk/ewk_view.cpp:
+ (ewk_view_viewport_attributes_get):
+
+2011-03-14 Brady Eidson <beidson@apple.com>
+
+ Try to fix the EFL build-bustage that their EWS bot did not see, but their core-builder did. (sigh)
+
+ * ewk/ewk_history.cpp:
+ (ewk_history_item_icon_surface_get):
+ (ewk_history_item_icon_object_add):
+
+2011-03-14 Brady Eidson <beidson@apple.com>
+
+ Reviewed by Anders Carlsson.
+
+ https://bugs.webkit.org/show_bug.cgi?id=56320
+ Remove HistoryItem::icon() and the WebCore dependency on "IconDatabaseBase::defaultIcon()"
+
+ * ewk/ewk_history.cpp:
+ (ewk_history_item_icon_surface_get): Use IconDatabase directly.
+
+2011-03-14 Ryuan Choi <ryuan.choi@samsung.com>
+
+ Reviewed by Kenneth Rohde Christiansen.
+
+ [EFL] Move cache_directory api
+ https://bugs.webkit.org/show_bug.cgi?id=52139
+
+ Move cache directory related apis from ewk_view to ewk_settings because
+ those are not related to ewk_view.
+
+ * ewk/ewk_main.cpp:
+ (_ewk_init_body):
+ * ewk/ewk_settings.cpp:
+ (ewk_settings_cache_directory_path_set):
+ (ewk_settings_cache_directory_path_get):
+ * ewk/ewk_settings.h:
+ * ewk/ewk_view.cpp:
+ (_ewk_view_priv_new):
+ (_ewk_view_priv_del):
+ * ewk/ewk_view.h:
+
+2011-03-12 Ryuan Choi <ryuan.choi@samsung.com>
+
+ Unreviewed build fix.
+
+ [EFL] Fix build break because of several reason.
+ https://bugs.webkit.org/show_bug.cgi?id=56244
+
+ * ewk/ewk_settings.cpp:
+ (ewk_settings_icon_database_path_set):
+
+2011-03-10 Ryuan Choi <ryuan.choi@samsung.com>
+
+ Reviewed by Antonio Gomes.
+
+ [EFL] Limit touch events when only page required touch events.
+ https://bugs.webkit.org/show_bug.cgi?id=54857
+
+ Block touch events when ChromeClient::needTouchEvents got false.
+
+ * WebCoreSupport/ChromeClientEfl.cpp:
+ (WebCore::ChromeClientEfl::needTouchEvents):
+ * WebCoreSupport/ChromeClientEfl.h:
+ * ewk/ewk_frame.cpp:
+ (ewk_frame_feed_touch_event):
+ * ewk/ewk_private.h:
+ * ewk/ewk_view.cpp:
+ (ewk_view_need_touch_events_set):
+ (ewk_view_need_touch_events_get):
+
+2011-03-08 Grzegorz Czajkowski <g.czajkowski@samsung.com>
+
+ Reviewed by Kent Tamura.
+
+ [EFL] Doxygen documentation for ewk_window_features and ewk_context_menu
+ https://bugs.webkit.org/show_bug.cgi?id=55026
+
+ * ewk/ewk_contextmenu.cpp:
+ (ewk_context_menu_item_select): returns EINA_FALSE when CONTEXT_MENU is disabled
+ * ewk/ewk_contextmenu.h:
+ * ewk/ewk_window_features.cpp:
+ * ewk/ewk_window_features.h:
+
2011-03-07 Sam Weinig <sam@webkit.org>
Reviewed by Anders Carlsson.
diff --git a/Source/WebKit/efl/DefaultTheme/default.edc b/Source/WebKit/efl/DefaultTheme/default.edc
index 7d750f4..f77bd86 100644
--- a/Source/WebKit/efl/DefaultTheme/default.edc
+++ b/Source/WebKit/efl/DefaultTheme/default.edc
@@ -76,4 +76,6 @@ collections {
#include "widget/search/cancel/search_cancel.edc"
#include "widget/search/decoration/search_decoration.edc"
#include "widget/slider/slider.edc"
+#include "widget/mediacontrol/playpausebutton/playpause_button.edc"
+#include "widget/mediacontrol/mutebutton/mute_button.edc"
}
diff --git a/Source/WebKit/efl/DefaultTheme/widget/mediacontrol/mutebutton/mute_button.edc b/Source/WebKit/efl/DefaultTheme/widget/mediacontrol/mutebutton/mute_button.edc
new file mode 100644
index 0000000..3219f2d
--- /dev/null
+++ b/Source/WebKit/efl/DefaultTheme/widget/mediacontrol/mutebutton/mute_button.edc
@@ -0,0 +1,60 @@
+/*
+ Copyright (C) 2008,2009 INdT - Instituto Nokia de Tecnologia
+ Copyright (C) 2009,2010 ProFUSION embedded systems
+ Copyright (C) 2011 Samsung Electronics
+
+ This file 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 file 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.
+*/
+
+ group {
+ name: "webkit/widget/mediacontrol/mute_button";
+
+ images {
+ image: "widget/mediacontrol/mutebutton/mutebutton.png" COMP;
+ image: "widget/mediacontrol/mutebutton/unmutebutton.png" COMP;
+ }
+
+ parts {
+ part {
+ name: "mute_button";
+ type: IMAGE;
+ description { state: "default" 0.0;
+ min: 25 25;
+ }
+ description { state: "mute" 0.0;
+ inherit: "default" 0.0;
+ image.normal: "widget/mediacontrol/mutebutton/mutebutton.png";
+ }
+ description { state: "sound" 0.0;
+ inherit: "default" 0.0;
+ image.normal: "widget/mediacontrol/mutebutton/unmutebutton.png";
+ }
+ }
+ }
+
+ programs {
+ program {
+ signal: "mute";
+ action: STATE_SET "mute" 0.0;
+ target: "mute_button";
+ }
+ program {
+ signal: "sound";
+ action: STATE_SET "sound" 0.0;
+ target: "mute_button";
+ }
+ }
+ }
diff --git a/Source/WebKit/efl/DefaultTheme/widget/mediacontrol/mutebutton/mutebutton.png b/Source/WebKit/efl/DefaultTheme/widget/mediacontrol/mutebutton/mutebutton.png
new file mode 100644
index 0000000..575acd6
--- /dev/null
+++ b/Source/WebKit/efl/DefaultTheme/widget/mediacontrol/mutebutton/mutebutton.png
Binary files differ
diff --git a/Source/WebKit/efl/DefaultTheme/widget/mediacontrol/mutebutton/unmutebutton.png b/Source/WebKit/efl/DefaultTheme/widget/mediacontrol/mutebutton/unmutebutton.png
new file mode 100644
index 0000000..4282017
--- /dev/null
+++ b/Source/WebKit/efl/DefaultTheme/widget/mediacontrol/mutebutton/unmutebutton.png
Binary files differ
diff --git a/Source/WebKit/efl/DefaultTheme/widget/mediacontrol/playpausebutton/pausebutton.png b/Source/WebKit/efl/DefaultTheme/widget/mediacontrol/playpausebutton/pausebutton.png
new file mode 100755
index 0000000..b40cfea
--- /dev/null
+++ b/Source/WebKit/efl/DefaultTheme/widget/mediacontrol/playpausebutton/pausebutton.png
Binary files differ
diff --git a/Source/WebKit/efl/DefaultTheme/widget/mediacontrol/playpausebutton/playbutton.png b/Source/WebKit/efl/DefaultTheme/widget/mediacontrol/playpausebutton/playbutton.png
new file mode 100755
index 0000000..b4bc661
--- /dev/null
+++ b/Source/WebKit/efl/DefaultTheme/widget/mediacontrol/playpausebutton/playbutton.png
Binary files differ
diff --git a/Source/WebKit/efl/DefaultTheme/widget/mediacontrol/playpausebutton/playpause_button.edc b/Source/WebKit/efl/DefaultTheme/widget/mediacontrol/playpausebutton/playpause_button.edc
new file mode 100644
index 0000000..86b7bca
--- /dev/null
+++ b/Source/WebKit/efl/DefaultTheme/widget/mediacontrol/playpausebutton/playpause_button.edc
@@ -0,0 +1,60 @@
+/*
+ Copyright (C) 2008,2009 INdT - Instituto Nokia de Tecnologia
+ Copyright (C) 2009,2010 ProFUSION embedded systems
+ Copyright (C) 2011 Samsung Electronics
+
+ This file 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 file 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.
+*/
+
+ group {
+ name: "webkit/widget/mediacontrol/playpause_button";
+
+ images {
+ image: "widget/mediacontrol/playpausebutton/playbutton.png" COMP;
+ image: "widget/mediacontrol/playpausebutton/pausebutton.png" COMP;
+ }
+
+ parts {
+ part {
+ name: "playpause_button";
+ type: IMAGE;
+ description { state: "default" 0.0;
+ min: 25 25;
+ }
+ description { state: "play" 0.0;
+ inherit: "default" 0.0;
+ image.normal: "widget/mediacontrol/playpausebutton/playbutton.png";
+ }
+ description { state: "pause" 0.0;
+ inherit: "default" 0.0;
+ image.normal: "widget/mediacontrol/playpausebutton/pausebutton.png";
+ }
+ }
+ }
+
+ programs {
+ program {
+ signal: "play";
+ action: STATE_SET "play" 0.0;
+ target: "playpause_button";
+ }
+ program {
+ signal: "pause";
+ action: STATE_SET "pause" 0.0;
+ target: "playpause_button";
+ }
+ }
+ }
diff --git a/Source/WebKit/efl/WebCoreSupport/ChromeClientEfl.cpp b/Source/WebKit/efl/WebCoreSupport/ChromeClientEfl.cpp
index a1851c5..ce2ac1b 100644
--- a/Source/WebKit/efl/WebCoreSupport/ChromeClientEfl.cpp
+++ b/Source/WebKit/efl/WebCoreSupport/ChromeClientEfl.cpp
@@ -396,6 +396,13 @@ void ChromeClientEfl::reachedApplicationCacheOriginQuota(SecurityOrigin*)
}
#endif
+#if ENABLE(TOUCH_EVENTS)
+void ChromeClientEfl::needTouchEvents(bool needed)
+{
+ ewk_view_need_touch_events_set(m_view, needed);
+}
+#endif
+
#if ENABLE(DATABASE)
void ChromeClientEfl::exceededDatabaseQuota(Frame* frame, const String& databaseName)
{
diff --git a/Source/WebKit/efl/WebCoreSupport/ChromeClientEfl.h b/Source/WebKit/efl/WebCoreSupport/ChromeClientEfl.h
index 09b0f4f..3d276e5 100644
--- a/Source/WebKit/efl/WebCoreSupport/ChromeClientEfl.h
+++ b/Source/WebKit/efl/WebCoreSupport/ChromeClientEfl.h
@@ -121,7 +121,7 @@ public:
#endif
#if ENABLE(TOUCH_EVENTS)
- virtual void needTouchEvents(bool) { }
+ virtual void needTouchEvents(bool);
#endif
virtual void runOpenPanel(Frame*, PassRefPtr<FileChooser>);
diff --git a/Source/WebKit/efl/WebCoreSupport/FrameLoaderClientEfl.cpp b/Source/WebKit/efl/WebCoreSupport/FrameLoaderClientEfl.cpp
index 3ea8c2a..fa34ac9 100644
--- a/Source/WebKit/efl/WebCoreSupport/FrameLoaderClientEfl.cpp
+++ b/Source/WebKit/efl/WebCoreSupport/FrameLoaderClientEfl.cpp
@@ -1,6 +1,6 @@
/*
* Copyright (C) 2006 Zack Rusin <zack@kde.org>
- * Copyright (C) 2006 Apple Computer, Inc. All rights reserved.
+ * Copyright (C) 2006, 2011 Apple Inc. All rights reserved.
* Copyright (C) 2008 Nokia Corporation and/or its subsidiary(-ies)
* Copyright (C) 2008 Collabora Ltd. All rights reserved.
* Copyright (C) 2008 Holger Hans Peter Freyther
@@ -50,13 +50,15 @@
#include "ProgressTracker.h"
#include "RenderPart.h"
#include "ResourceRequest.h"
-#include "ViewportArguments.h"
+#include "WebKitVersion.h"
#include "ewk_private.h"
#include <wtf/text/CString.h>
#include <wtf/text/StringConcatenate.h>
-#if PLATFORM(UNIX)
+#if OS(UNIX)
#include <sys/utsname.h>
+#elif OS(WINDOWS)
+#include "SystemInfo.h"
#endif
#include <Ecore_Evas.h>
@@ -75,29 +77,22 @@ FrameLoaderClientEfl::FrameLoaderClientEfl(Evas_Object *view)
{
}
-static String agentPlatform()
-{
- notImplemented();
- return "Unknown";
-}
-
static String agentOS()
{
-#if PLATFORM(DARWIN)
-#if PLATFORM(X86)
+#if OS(DARWIN)
+#if CPU(X86)
return "Intel Mac OS X";
#else
return "PPC Mac OS X";
#endif
-#elif PLATFORM(UNIX)
+#elif OS(UNIX)
struct utsname name;
if (uname(&name) != -1)
return makeString(name.sysname, ' ', name.machine);
return "Unknown";
-#elif PLATFORM(WIN_OS)
- // FIXME: Compute the Windows version
- return "Windows";
+#elif OS(WINDOWS)
+ return windowsVersionForUAString();
#else
notImplemented();
return "Unknown";
@@ -106,35 +101,8 @@ static String agentOS()
static String composeUserAgent()
{
- // This is a liberal interpretation of http://www.mozilla.org/build/revised-user-agent-strings.html
- // See also http://developer.apple.com/internet/safari/faq.html#anchor2
-
- String ua;
-
- // Product
- ua += "Mozilla/5.0";
-
- // Comment
- ua += " (";
- ua += agentPlatform(); // Platform
- ua += "; ";
- ua += agentOS(); // OS-or-CPU
- ua += ") ";
-
- // WebKit Product
- // FIXME: The WebKit version is hardcoded
- static const String webKitVersion = "525.1+";
- ua += "AppleWebKit/" + webKitVersion;
- ua += " (KHTML, like Gecko, ";
- // We mention Safari since many broken sites check for it (OmniWeb does this too)
- // We re-use the WebKit version, though it doesn't seem to matter much in practice
- ua += "Safari/" + webKitVersion;
- ua += ") ";
-
- // Vendor Product
- // ua += g_get_prgname();
-
- return ua;
+ String webKitVersion = String::format("%d.%d", WEBKIT_MAJOR_VERSION, WEBKIT_MINOR_VERSION);
+ return makeString("Mozilla/5.0 (", agentOS(), ") AppleWebKit/", webKitVersion, " (KHTML, like Gecko) Safari/", webKitVersion);
}
void FrameLoaderClientEfl::setCustomUserAgent(const String &agent)
@@ -399,8 +367,12 @@ PassRefPtr<Widget> FrameLoaderClientEfl::createJavaAppletWidget(const IntSize&,
return 0;
}
-ObjectContentType FrameLoaderClientEfl::objectContentType(const KURL& url, const String& mimeType)
+ObjectContentType FrameLoaderClientEfl::objectContentType(const KURL& url, const String& mimeType, bool shouldPreferPlugInsForImages)
{
+ // FIXME: once plugin support is enabled, this method needs to correctly handle the 'shouldPreferPlugInsForImages' flag. See
+ // WebCore::FrameLoader::defaultObjectContentType() for an example.
+ UNUSED_PARAM(shouldPreferPlugInsForImages);
+
if (url.isEmpty() && mimeType.isEmpty())
return ObjectContentNone;
@@ -626,9 +598,6 @@ void FrameLoaderClientEfl::dispatchDidCommitLoad()
return;
ewk_view_title_set(m_view, 0);
ewk_view_uri_changed(m_view);
-
- ViewportArguments arguments;
- ewk_view_viewport_attributes_set(m_view, arguments);
}
void FrameLoaderClientEfl::dispatchDidFinishDocumentLoad()
diff --git a/Source/WebKit/efl/WebCoreSupport/FrameLoaderClientEfl.h b/Source/WebKit/efl/WebCoreSupport/FrameLoaderClientEfl.h
index 424c66b..5ea4e8c 100644
--- a/Source/WebKit/efl/WebCoreSupport/FrameLoaderClientEfl.h
+++ b/Source/WebKit/efl/WebCoreSupport/FrameLoaderClientEfl.h
@@ -1,6 +1,6 @@
/*
* Copyright (C) 2006 Zack Rusin <zack@kde.org>
- * Copyright (C) 2006 Apple Computer, Inc. All rights reserved.
+ * Copyright (C) 2006, 2011 Apple Inc. All rights reserved.
* Copyright (C) 2008 Collabora Ltd. All rights reserved.
* Copyright (C) 2008 INdT - Instituto Nokia de Tecnologia
* Copyright (C) 2009-2010 ProFUSION embedded systems
@@ -149,7 +149,7 @@ class FrameLoaderClientEfl : public FrameLoaderClient {
virtual void registerForIconNotification(bool);
- virtual ObjectContentType objectContentType(const KURL& url, const String& mimeType);
+ virtual ObjectContentType objectContentType(const KURL&, const String& mimeType, bool shouldPreferPlugInsForImages);
virtual void setMainFrameDocumentReady(bool);
diff --git a/Source/WebKit/efl/ewk/ewk_contextmenu.cpp b/Source/WebKit/efl/ewk/ewk_contextmenu.cpp
index 40bd2ba..128208d 100644
--- a/Source/WebKit/efl/ewk/ewk_contextmenu.cpp
+++ b/Source/WebKit/efl/ewk/ewk_contextmenu.cpp
@@ -31,33 +31,53 @@
#include <eina_safety_checks.h>
#include <wtf/text/CString.h>
+/**
+ * \struct _Ewk_Context_Menu
+ * @brief Contains the context menu data.
+ */
struct _Ewk_Context_Menu {
- unsigned int __ref;
+ unsigned int __ref; /**< the reference count of the object */
#if ENABLE(CONTEXT_MENUS)
- WebCore::ContextMenuController* controller;
+ WebCore::ContextMenuController* controller; /**< the WebCore's object which is responsible for the context menu */
#endif
- Evas_Object* view;
+ Evas_Object* view; /**< the view object */
- Eina_List* items;
+ Eina_List* items; /**< the list of items */
};
+/**
+ * \struct _Ewk_Context_Menu_Item
+ * @brief Represents one item of the context menu object.
+ */
struct _Ewk_Context_Menu_Item {
- Ewk_Context_Menu_Item_Type type;
- Ewk_Context_Menu_Action action;
+ Ewk_Context_Menu_Item_Type type; /**< contains the type of the item */
+ Ewk_Context_Menu_Action action; /**< contains the action of the item */
- const char* title;
- Ewk_Context_Menu* submenu;
+ const char* title; /**< contains the title of the item */
+ Ewk_Context_Menu* submenu; /**< contains the pointer to the submenu of the item */
Eina_Bool checked:1;
Eina_Bool enabled:1;
};
+/**
+ * Increases the reference count of the given object.
+ *
+ * @param menu the context menu object to increase the reference count
+ */
void ewk_context_menu_ref(Ewk_Context_Menu* menu)
{
EINA_SAFETY_ON_NULL_RETURN(menu);
menu->__ref++;
}
+/**
+ * Decreases the reference count of the given object, possibly freeing it.
+ *
+ * When the reference count it's reached 0, the menu with all items are freed.
+ *
+ * @param menu the context menu object to decrease the reference count
+ */
void ewk_context_menu_unref(Ewk_Context_Menu* menu)
{
EINA_SAFETY_ON_NULL_RETURN(menu);
@@ -72,6 +92,14 @@ void ewk_context_menu_unref(Ewk_Context_Menu* menu)
free(menu);
}
+/**
+ * Destroys the context menu object.
+ *
+ * @param menu the context menu object to destroy
+ * @return @c EINA_TRUE on success, @c EINA_FALSE on failure
+ *
+ * @see ewk_context_menu_item_free
+ */
Eina_Bool ewk_context_menu_destroy(Ewk_Context_Menu* menu)
{
EINA_SAFETY_ON_NULL_RETURN_VAL(menu, EINA_FALSE);
@@ -84,6 +112,12 @@ Eina_Bool ewk_context_menu_destroy(Ewk_Context_Menu* menu)
return EINA_TRUE;
}
+/**
+ * Gets the list of items.
+ *
+ * @param o the context menu object to get list of the items
+ * @return the list of the items on success or @c 0 on failure
+ */
const Eina_List* ewk_context_menu_item_list_get(Ewk_Context_Menu* o)
{
EINA_SAFETY_ON_NULL_RETURN_VAL(o, 0);
@@ -91,6 +125,19 @@ const Eina_List* ewk_context_menu_item_list_get(Ewk_Context_Menu* o)
return o->items;
}
+/**
+ * Creates a new item of the context menu.
+ *
+ * @param type specifies a type of the item
+ * @param action specifies a action of the item
+ * @param submenu specifies a submenu of the item
+ * @param title specifies a title of the item
+ * @param checked
+ * @param enabled @c EINA_TRUE to enable the item or @c EINA_FALSE to disable
+ * @return the pointer to the new item on success or @c 0 on failure
+ *
+ * @note The return value @b should @b be freed after use.
+ */
Ewk_Context_Menu_Item* ewk_context_menu_item_new(Ewk_Context_Menu_Item_Type type,
Ewk_Context_Menu_Action action, Ewk_Context_Menu* submenu,
const char* title, Eina_Bool checked, Eina_Bool enabled)
@@ -109,6 +156,13 @@ Ewk_Context_Menu_Item* ewk_context_menu_item_new(Ewk_Context_Menu_Item_Type type
return item;
}
+/**
+ * Selects the item from the context menu object.
+ *
+ * @param menu the context menu object
+ * @param item the item is selected
+ * @return @c EINA_TRUE on success or @c EINA_FALSE on failure
+ */
Eina_Bool ewk_context_menu_item_select(Ewk_Context_Menu* menu, Ewk_Context_Menu_Item* item)
{
#if ENABLE(CONTEXT_MENUS)
@@ -120,11 +174,20 @@ Eina_Bool ewk_context_menu_item_select(Ewk_Context_Menu* menu, Ewk_Context_Menu_
// Don't care about title and submenu as they're not used after this point.
WebCore::ContextMenuItem core(type, action, WTF::String());
menu->controller->contextMenuItemSelected(&core);
-#endif
-
return EINA_TRUE;
+#else
+ return EINA_FALSE;
+#endif
}
+/**
+ * Destroys the item of the context menu object.
+ *
+ * @param item the item to destroy
+ *
+ * @see ewk_context_menu_destroy
+ * @see ewk_context_menu_unref
+ */
void ewk_context_menu_item_free(Ewk_Context_Menu_Item* item)
{
EINA_SAFETY_ON_NULL_RETURN(item);
@@ -133,12 +196,29 @@ void ewk_context_menu_item_free(Ewk_Context_Menu_Item* item)
free(item);
}
+/**
+ * Gets type of the item.
+ *
+ * @param o the item to get the type
+ * @return type of the item on success or @c EWK_ACTION_TYPE on failure
+ *
+ * @see ewk_context_menu_item_type_set
+ */
Ewk_Context_Menu_Item_Type ewk_context_menu_item_type_get(Ewk_Context_Menu_Item* o)
{
EINA_SAFETY_ON_NULL_RETURN_VAL(o, EWK_ACTION_TYPE);
return o->type;
}
+/**
+ * Sets the type of item.
+ *
+ * @param o the item to set the type
+ * @param type a new type for the item object
+ * @return @c EINA_TRUE on success, or @c EINA_FALSE on failure
+ *
+ * @see ewk_context_menu_item_type_get
+ */
Eina_Bool ewk_context_menu_item_type_set(Ewk_Context_Menu_Item* o, Ewk_Context_Menu_Item_Type type)
{
EINA_SAFETY_ON_NULL_RETURN_VAL(o, EINA_FALSE);
@@ -146,12 +226,29 @@ Eina_Bool ewk_context_menu_item_type_set(Ewk_Context_Menu_Item* o, Ewk_Context_M
return EINA_TRUE;
}
+/**
+ * Gets an action of the item.
+ *
+ * @param o the item to get the action
+ * @return an action of the item on success or @c EWK_CONTEXT_MENU_ITEM_TAG_NO_ACTION on failure
+ *
+ * @see ewk_context_menu_item_action_set
+ */
Ewk_Context_Menu_Action ewk_context_menu_item_action_get(Ewk_Context_Menu_Item* o)
{
EINA_SAFETY_ON_NULL_RETURN_VAL(o, EWK_CONTEXT_MENU_ITEM_TAG_NO_ACTION);
return o->action;
}
+/**
+ * Sets an action of the item.
+ *
+ * @param o the item to set the action
+ * @param action a new action for the item object
+ * @return @c EINA_TRUE on success, or @c EINA_FALSE on failure
+ *
+ * @see ewk_context_menu_item_action_get
+ */
Eina_Bool ewk_context_menu_item_action_set(Ewk_Context_Menu_Item* o, Ewk_Context_Menu_Action action)
{
EINA_SAFETY_ON_NULL_RETURN_VAL(o, EINA_FALSE);
@@ -159,12 +256,29 @@ Eina_Bool ewk_context_menu_item_action_set(Ewk_Context_Menu_Item* o, Ewk_Context
return EINA_TRUE;
}
+/**
+ * Gets a title of the item.
+ *
+ * @param o the item to get the title
+ * @return a title of the item on success, or @c 0 on failure
+ *
+ * @see ewk_context_menu_item_title_set
+ */
const char* ewk_context_menu_item_title_get(Ewk_Context_Menu_Item* o)
{
EINA_SAFETY_ON_NULL_RETURN_VAL(o, 0);
return o->title;
}
+/**
+ * Sets a title of the item.
+ *
+ * @param o the item to set the title
+ * @param title a new title for the item object
+ * @return a new title of the item on success or @c 0 on failure
+ *
+ * @see ewk_context_menu_item_title_get
+ */
const char* ewk_context_menu_item_title_set(Ewk_Context_Menu_Item* o, const char* title)
{
EINA_SAFETY_ON_NULL_RETURN_VAL(o, 0);
@@ -185,12 +299,29 @@ Eina_Bool ewk_context_menu_item_checked_set(Ewk_Context_Menu_Item* o, Eina_Bool
return EINA_TRUE;
}
+/**
+ * Gets if the item is enabled.
+ *
+ * @param o the item to get enabled state
+ * @return @c EINA_TRUE if it's enabled, @c EINA_FALSE if not or on failure
+ *
+ * @see ewk_context_menu_item_enabled_set
+ */
Eina_Bool ewk_context_menu_item_enabled_get(Ewk_Context_Menu_Item* o)
{
EINA_SAFETY_ON_NULL_RETURN_VAL(o, EINA_FALSE);
return o->enabled;
}
+/**
+ * Enables/disables the item.
+ *
+ * @param o the item to enable/disable
+ * @param enabled @c EINA_TRUE to enable the item or @c EINA_FALSE to disable
+ * @return @c EINA_TRUE on success, or @c EINA_FALSE on failure
+ *
+ * @see ewk_context_menu_item_enabled_get
+ */
Eina_Bool ewk_context_menu_item_enabled_set(Ewk_Context_Menu_Item *o, Eina_Bool enabled)
{
EINA_SAFETY_ON_NULL_RETURN_VAL(o, EINA_FALSE);
@@ -205,12 +336,13 @@ Eina_Bool ewk_context_menu_item_enabled_set(Ewk_Context_Menu_Item *o, Eina_Bool
/**
* @internal
*
- * Creates context on view.
+ * Creates an empty context menu on view.
*
- * @param view View.
- * @param Controller Context Menu Controller.
+ * @param view the view object
+ * @param controller the WebCore's context menu controller
+ * @return newly allocated the context menu on success or @c 0 on errors
*
- * @return newly allocated context menu or @c 0 on errors.
+ * @note emits a signal "contextmenu,new"
*/
Ewk_Context_Menu* ewk_context_menu_new(Evas_Object* view, WebCore::ContextMenuController* controller)
{
@@ -233,6 +365,19 @@ Ewk_Context_Menu* ewk_context_menu_new(Evas_Object* view, WebCore::ContextMenuCo
return menu;
}
+/**
+ * @internal
+ *
+ * Frees the context menu.
+ *
+ * @param o the view object
+ * @return @c EINA_TRUE on success, or @c EINA_FALSE on failure
+ *
+ * @note emits a signal "contextmenu,free"
+ *
+ * @see ewk_context_menu_unref
+ * @see ewk_context_menu_destroy
+ */
Eina_Bool ewk_context_menu_free(Ewk_Context_Menu* o)
{
EINA_SAFETY_ON_NULL_RETURN_VAL(o, EINA_FALSE);
@@ -241,6 +386,17 @@ Eina_Bool ewk_context_menu_free(Ewk_Context_Menu* o)
return EINA_TRUE;
}
+/**
+ * @internal
+ *
+ * Appends the WebCore's item to the context menu object.
+ *
+ * @param o the context menu object
+ * @param core the WebCore's context menu item that will be added to the context menu
+ * @note emits a signal "contextmenu,item,appended"
+ *
+ * @see ewk_context_menu_item_new
+ */
void ewk_context_menu_item_append(Ewk_Context_Menu* o, WebCore::ContextMenuItem& core)
{
Ewk_Context_Menu_Item_Type type = static_cast<Ewk_Context_Menu_Item_Type>(core.type());
@@ -255,6 +411,18 @@ void ewk_context_menu_item_append(Ewk_Context_Menu* o, WebCore::ContextMenuItem&
evas_object_smart_callback_call(o->view, "contextmenu,item,appended", o);
}
+/**
+ * @internal
+ *
+ * Emits a signal with the items of the context menu.
+ *
+ * @param o the context menu object
+ * @return the same context menu object that was given through parameter
+ *
+ * @note emits a signal "contextmenu,customize"
+ *
+ * @see ewk_context_menu_item_list_get
+ */
Ewk_Context_Menu* ewk_context_menu_custom_get(Ewk_Context_Menu* o)
{
EINA_SAFETY_ON_NULL_RETURN_VAL(o, 0);
@@ -263,6 +431,13 @@ Ewk_Context_Menu* ewk_context_menu_custom_get(Ewk_Context_Menu* o)
return o;
}
+/**
+ * @internal
+ *
+ * Emits a signal "contextmenu,show"
+ *
+ * @param o the context menu object
+ */
void ewk_context_menu_show(Ewk_Context_Menu* o)
{
EINA_SAFETY_ON_NULL_RETURN(o);
diff --git a/Source/WebKit/efl/ewk/ewk_contextmenu.h b/Source/WebKit/efl/ewk/ewk_contextmenu.h
index c5adb48..7b60410 100644
--- a/Source/WebKit/efl/ewk/ewk_contextmenu.h
+++ b/Source/WebKit/efl/ewk/ewk_contextmenu.h
@@ -18,6 +18,11 @@
Boston, MA 02110-1301, USA.
*/
+/**
+ * @file ewk_contextmenu.h
+ * @brief Describes the context menu API.
+ */
+
#ifndef ewk_contextmenu_h
#define ewk_contextmenu_h
@@ -30,7 +35,11 @@
extern "C" {
#endif
-// keep this in sync with ContextMenuItem.h
+/**
+ * \enum _Ewk_Context_Menu_Action
+ * @brief Provides the actions of items for the context menu.
+ * @info Keep this in sync with ContextMenuItem.h
+ */
enum _Ewk_Context_Menu_Action {
EWK_CONTEXT_MENU_ITEM_TAG_NO_ACTION = 0, // this item is not actually in web_uidelegate.h
EWK_CONTEXT_MENU_ITEM_TAG_OPEN_LINK_IN_NEW_WINDOW = 1,
@@ -67,12 +76,12 @@ enum _Ewk_Context_Menu_Action {
EWK_CONTEXT_MENU_ITEM_PDFPREVIOUS_PAGE,
EWK_CONTEXT_MENU_ITEM_TAG_OPEN_LINK = 2000,
EWK_CONTEXT_MENU_ITEM_TAG_IGNORE_GRAMMAR,
- EWK_CONTEXT_MENU_ITEM_TAG_SPELLING_MENU, // spelling or spelling/grammar sub-menu
+ EWK_CONTEXT_MENU_ITEM_TAG_SPELLING_MENU, /**< spelling or spelling/grammar sub-menu */
EWK_CONTEXT_MENU_ITEM_TAG_SHOW_SPELLING_PANEL,
EWK_CONTEXT_MENU_ITEM_TAG_CHECK_SPELLING,
EWK_CONTEXT_MENU_ITEM_TAG_CHECK_SPELLING_WHILE_TYPING,
EWK_CONTEXT_MENU_ITEM_TAG_CHECK_GRAMMAR_WITH_SPELLING,
- EWK_CONTEXT_MENU_ITEM_TAG_FONT_MENU, // font sub-menu
+ EWK_CONTEXT_MENU_ITEM_TAG_FONT_MENU, /**< font sub-menu */
EWK_CONTEXT_MENU_ITEM_TAG_SHOW_FONTS,
EWK_CONTEXT_MENU_ITEM_TAG_BOLD,
EWK_CONTEXT_MENU_ITEM_TAG_ITALIC,
@@ -80,41 +89,43 @@ enum _Ewk_Context_Menu_Action {
EWK_CONTEXT_MENU_ITEM_TAG_OUTLINE,
EWK_CONTEXT_MENU_ITEM_TAG_STYLES,
EWK_CONTEXT_MENU_ITEM_TAG_SHOW_COLORS,
- EWK_CONTEXT_MENU_ITEM_TAG_SPEECH_MENU, // speech sub-menu
+ EWK_CONTEXT_MENU_ITEM_TAG_SPEECH_MENU, /**< speech sub-menu */
EWK_CONTEXT_MENU_ITEM_TAG_START_SPEAKING,
EWK_CONTEXT_MENU_ITEM_TAG_STOP_SPEAKING,
- EWK_CONTEXT_MENU_ITEM_TAG_WRITING_DIRECTION_MENU, // writing direction sub-menu
+ EWK_CONTEXT_MENU_ITEM_TAG_WRITING_DIRECTION_MENU, /**< writing direction sub-menu */
EWK_CONTEXT_MENU_ITEM_TAG_DEFAULT_DIRECTION,
EWK_CONTEXT_MENU_ITEM_TAG_LEFT_TO_RIGHT,
EWK_CONTEXT_MENU_ITEM_TAG_RIGHT_TO_LEFT,
EWK_CONTEXT_MENU_ITEM_TAG_PDFSINGLE_PAGE_SCROLLING,
EWK_CONTEXT_MENU_ITEM_TAG_PDFFACING_PAGES_SCROLLING,
- EWK_CONTEXT_MENU_ITEM_TAG_TEXT_DIRECTION_MENU, // text direction sub-menu
+ EWK_CONTEXT_MENU_ITEM_TAG_TEXT_DIRECTION_MENU, /**< text direction sub-menu */
EWK_CONTEXT_MENU_ITEM_TAG_TEXT_DIRECTION_DEFAULT,
EWK_CONTEXT_MENU_ITEM_TAG_TEXT_DIRECTION_LEFT_TO_RIGHT,
EWK_CONTEXT_MENU_ITEM_TAG_TEXT_DIRECTION_RIGHT_TO_LEFT,
EWK_CONTEXT_MENU_ITEM_BASE_CUSTOM_TAG = 5000,
EWK_CONTEXT_MENU_ITEM_BASE_APPLICATION_TAG = 10000
};
+/** Creates a type name for _Ewk_Context_Menu_Action */
typedef enum _Ewk_Context_Menu_Action Ewk_Context_Menu_Action;
-// keep this in sync with ContextMenuItem.h
+/**
+ * \enum _Ewk_Context_Menu_Item_Type
+ * @brief Defines the types of the items for the context menu.
+ * @info Keep this in sync with ContextMenuItem.h
+ */
enum _Ewk_Context_Menu_Item_Type {
EWK_ACTION_TYPE,
EWK_CHECKABLE_ACTION_TYPE,
EWK_SEPARATOR_TYPE,
EWK_SUBMENU_TYPE
};
+/** Creates a type name for _Ewk_Context_Menu_Item_Type */
typedef enum _Ewk_Context_Menu_Item_Type Ewk_Context_Menu_Item_Type;
-/**
- * The structure to contain Context Menu data
- */
+/** Creates a type name for _Ewk_Context_Menu */
typedef struct _Ewk_Context_Menu Ewk_Context_Menu;
-/**
- * Represents one item from Ewk_Context_Menu
- */
+/** Creates a type name for _Ewk_Context_Menu_Item */
typedef struct _Ewk_Context_Menu_Item Ewk_Context_Menu_Item;
diff --git a/Source/WebKit/efl/ewk/ewk_cookies.cpp b/Source/WebKit/efl/ewk/ewk_cookies.cpp
index 7558154..048886b 100644
--- a/Source/WebKit/efl/ewk/ewk_cookies.cpp
+++ b/Source/WebKit/efl/ewk/ewk_cookies.cpp
@@ -76,7 +76,7 @@ EAPI Eina_Bool ewk_cookies_file_set(const char *filename)
/**
* Clears all the cookies from the cookie jar.
*/
-EAPI void ewk_cookies_clear()
+EAPI void ewk_cookies_clear(void)
{
#if USE(SOUP)
GSList* l;
@@ -207,7 +207,7 @@ EAPI void ewk_cookies_policy_set(Ewk_Cookie_Policy p)
* @return the current acceptance policy
* @see Ewk_Cookie_Policy
*/
-EAPI Ewk_Cookie_Policy ewk_cookies_policy_get()
+EAPI Ewk_Cookie_Policy ewk_cookies_policy_get(void)
{
Ewk_Cookie_Policy ewk_policy = EWK_COOKIE_JAR_ACCEPT_ALWAYS;
#if USE(SOUP)
diff --git a/Source/WebKit/efl/ewk/ewk_cookies.h b/Source/WebKit/efl/ewk/ewk_cookies.h
index 19eac0f..ec0e84f 100644
--- a/Source/WebKit/efl/ewk/ewk_cookies.h
+++ b/Source/WebKit/efl/ewk/ewk_cookies.h
@@ -76,12 +76,12 @@ typedef enum _Ewk_Cookie_Policy Ewk_Cookie_Policy;
/************************** Exported functions ***********************/
EAPI Eina_Bool ewk_cookies_file_set(const char *filename);
-EAPI void ewk_cookies_clear();
-EAPI Eina_List* ewk_cookies_get_all();
+EAPI void ewk_cookies_clear(void);
+EAPI Eina_List* ewk_cookies_get_all(void);
EAPI void ewk_cookies_cookie_del(Ewk_Cookie *cookie);
EAPI void ewk_cookies_cookie_free(Ewk_Cookie *cookie);
EAPI void ewk_cookies_policy_set(Ewk_Cookie_Policy p);
-EAPI Ewk_Cookie_Policy ewk_cookies_policy_get();
+EAPI Ewk_Cookie_Policy ewk_cookies_policy_get(void);
#ifdef __cplusplus
}
diff --git a/Source/WebKit/efl/ewk/ewk_frame.cpp b/Source/WebKit/efl/ewk/ewk_frame.cpp
index 0e2f903..4e52b56 100644
--- a/Source/WebKit/efl/ewk/ewk_frame.cpp
+++ b/Source/WebKit/efl/ewk/ewk_frame.cpp
@@ -1484,9 +1484,14 @@ Eina_Bool ewk_frame_feed_touch_event(Evas_Object* o, Ewk_Touch_Event_Type action
Eina_Bool ret = EINA_FALSE;
#if ENABLE(TOUCH_EVENTS)
- EWK_FRAME_SD_GET_OR_RETURN(o, sd, EINA_FALSE);
- EINA_SAFETY_ON_NULL_RETURN_VAL(sd->frame, EINA_FALSE);
EINA_SAFETY_ON_NULL_RETURN_VAL(points, EINA_FALSE);
+ EWK_FRAME_SD_GET(o, sd);
+
+ if (!sd || !sd->frame || !ewk_view_need_touch_events_get(sd->view)) {
+ void* point;
+ EINA_LIST_FREE(points, point);
+ return EINA_FALSE;
+ }
Evas_Coord x, y;
evas_object_geometry_get(sd->view, &x, &y, 0, 0);
diff --git a/Source/WebKit/efl/ewk/ewk_history.cpp b/Source/WebKit/efl/ewk/ewk_history.cpp
index 0a9d349..fb70903 100644
--- a/Source/WebKit/efl/ewk/ewk_history.cpp
+++ b/Source/WebKit/efl/ewk/ewk_history.cpp
@@ -24,7 +24,9 @@
#include "BackForwardListImpl.h"
#include "EWebKit.h"
#include "HistoryItem.h"
+#include "IconDatabaseBase.h"
#include "Image.h"
+#include "IntSize.h"
#include "ewk_private.h"
#include <wtf/text/CString.h>
@@ -578,7 +580,8 @@ double ewk_history_item_time_last_visited_get(const Ewk_History_Item* item)
cairo_surface_t* ewk_history_item_icon_surface_get(const Ewk_History_Item* item)
{
EWK_HISTORY_ITEM_CORE_GET_OR_RETURN(item, core, 0);
- WebCore::Image* icon = core->icon();
+
+ WebCore::Image* icon = WebCore::iconDatabase().synchronousIconForPageURL(core->url(), WebCore::IntSize(16, 16));
if (!icon) {
ERR("icon is NULL.");
return 0;
@@ -606,7 +609,7 @@ Evas_Object* ewk_history_item_icon_object_add(const Ewk_History_Item* item, Evas
{
EWK_HISTORY_ITEM_CORE_GET_OR_RETURN(item, core, 0);
EINA_SAFETY_ON_NULL_RETURN_VAL(canvas, 0);
- WebCore::Image* icon = core->icon();
+ WebCore::Image* icon = WebCore::iconDatabase().synchronousIconForPageURL(core->url(), WebCore::IntSize(16, 16));
cairo_surface_t* surface;
if (!icon) {
diff --git a/Source/WebKit/efl/ewk/ewk_main.cpp b/Source/WebKit/efl/ewk/ewk_main.cpp
index c1c8e02..0c7cc70 100644
--- a/Source/WebKit/efl/ewk/ewk_main.cpp
+++ b/Source/WebKit/efl/ewk/ewk_main.cpp
@@ -26,7 +26,6 @@
#include "Logging.h"
#include "PageCache.h"
#include "PageGroup.h"
-#include "appcache/ApplicationCacheStorage.h"
#include "ewk_private.h"
#include "ewk_settings.h"
#include "runtime/InitializeThreading.h"
@@ -175,7 +174,9 @@ Eina_Bool _ewk_init_body(void)
ewk_settings_web_database_path_set(wkdir.utf8().data());
ewk_settings_icon_database_path_set(wkdir.utf8().data());
- WebCore::cacheStorage().setCacheDirectory(wkdir);
+#if ENABLE(OFFLINE_WEB_APPLICATIONS)
+ ewk_settings_cache_directory_path_set(wkdir.utf8().data());
+#endif
}
// TODO: this should move to WebCore, already reported to webkit-gtk folks:
diff --git a/Source/WebKit/efl/ewk/ewk_private.h b/Source/WebKit/efl/ewk/ewk_private.h
index 496efdb..114c39e 100644
--- a/Source/WebKit/efl/ewk/ewk_private.h
+++ b/Source/WebKit/efl/ewk/ewk_private.h
@@ -106,7 +106,12 @@ void ewk_view_viewport_attributes_set(Evas_Object *o, const WebCore::ViewportArg
void ewk_view_download_request(Evas_Object *o, Ewk_Download *download);
-int ewk_view_dpi_get();
+int ewk_view_dpi_get(void);
+
+#if ENABLE(TOUCH_EVENTS)
+void ewk_view_need_touch_events_set(Evas_Object*, bool needed);
+Eina_Bool ewk_view_need_touch_events_get(Evas_Object*);
+#endif
Ewk_History *ewk_history_new(WebCore::BackForwardListImpl *history);
void ewk_history_free(Ewk_History *history);
@@ -160,7 +165,7 @@ void ewk_view_contents_size_changed(Evas_Object *o, Evas_Coord w, Evas_Coord h);
WebCore::FloatRect ewk_view_page_rect_get(Evas_Object *o);
-const char* ewk_settings_default_user_agent_get();
+const char* ewk_settings_default_user_agent_get(void);
#ifdef __cplusplus
diff --git a/Source/WebKit/efl/ewk/ewk_settings.cpp b/Source/WebKit/efl/ewk/ewk_settings.cpp
index 69934c0..3a185d9 100644
--- a/Source/WebKit/efl/ewk/ewk_settings.cpp
+++ b/Source/WebKit/efl/ewk/ewk_settings.cpp
@@ -47,6 +47,12 @@
#include <libsoup/soup.h>
#endif
+#if ENABLE(OFFLINE_WEB_APPLICATIONS)
+#include "appcache/ApplicationCacheStorage.h"
+
+static const char* _ewk_cache_directory_path = 0;
+#endif
+
static const char* _ewk_default_web_database_path = 0;
static const char* _ewk_icon_database_path = 0;
static uint64_t _ewk_default_web_database_quota = 1 * 1024 * 1024;
@@ -81,7 +87,7 @@ static WTF::String _ewk_settings_webkit_os_version_get()
*
* @return the current default database quota in bytes
*/
-uint64_t ewk_settings_web_database_default_quota_get()
+uint64_t ewk_settings_web_database_default_quota_get(void)
{
return _ewk_default_web_database_quota;
}
@@ -114,7 +120,7 @@ void ewk_settings_web_database_path_set(const char *path)
*
* @return database path or @c 0 if none or web database is not supported
*/
-const char *ewk_settings_web_database_path_get()
+const char *ewk_settings_web_database_path_get(void)
{
#if ENABLE(DATABASE)
return _ewk_default_web_database_path;
@@ -133,7 +139,7 @@ const char *ewk_settings_web_database_path_get()
*/
Eina_Bool ewk_settings_icon_database_path_set(const char *directory)
{
- WebCore::iconDatabase().delayDatabaseCleanup();
+ WebCore::IconDatabase::delayDatabaseCleanup();
if (directory) {
struct stat st;
@@ -155,7 +161,7 @@ Eina_Bool ewk_settings_icon_database_path_set(const char *directory)
}
WebCore::iconDatabase().setEnabled(true);
- WebCore::iconDatabase().open(WTF::String::fromUTF8(directory));
+ WebCore::iconDatabase().open(WTF::String::fromUTF8(directory), WebCore::IconDatabase::defaultDatabaseFilename());
if (!_ewk_icon_database_path)
_ewk_icon_database_path = eina_stringshare_add(directory);
else
@@ -225,7 +231,7 @@ cairo_surface_t* ewk_settings_icon_database_icon_surface_get(const char *url)
EINA_SAFETY_ON_NULL_RETURN_VAL(url, 0);
WebCore::KURL kurl(WebCore::KURL(), WTF::String::fromUTF8(url));
- WebCore::Image *icon = WebCore::iconDatabase().iconForPageURL(kurl.string(), WebCore::IntSize(16, 16));
+ WebCore::Image *icon = WebCore::iconDatabase().synchronousIconForPageURL(kurl.string(), WebCore::IntSize(16, 16));
if (!icon) {
ERR("no icon for url %s", url);
@@ -257,7 +263,7 @@ Evas_Object* ewk_settings_icon_database_icon_object_add(const char* url, Evas* c
EINA_SAFETY_ON_NULL_RETURN_VAL(canvas, 0);
WebCore::KURL kurl(WebCore::KURL(), WTF::String::fromUTF8(url));
- WebCore::Image* icon = WebCore::iconDatabase().iconForPageURL(kurl.string(), WebCore::IntSize(16, 16));
+ WebCore::Image* icon = WebCore::iconDatabase().synchronousIconForPageURL(kurl.string(), WebCore::IntSize(16, 16));
cairo_surface_t* surface;
if (!icon) {
@@ -300,7 +306,7 @@ void ewk_settings_proxy_uri_set(const char* proxy)
*
* @return current proxy URI or @c 0 if it's not set
*/
-const char* ewk_settings_proxy_uri_get()
+const char* ewk_settings_proxy_uri_get(void)
{
#if USE(SOUP)
SoupURI* uri;
@@ -315,7 +321,7 @@ const char* ewk_settings_proxy_uri_get()
WTF::String proxy = soup_uri_to_string(uri, EINA_FALSE);
return eina_stringshare_add(proxy.utf8().data());
#elif USE(CURL)
- EINA_SAFETY_ON_TRUE_RETURN_VAL(1, NULL);
+ EINA_SAFETY_ON_TRUE_RETURN_VAL(1, 0);
#endif
}
@@ -326,10 +332,53 @@ const char* ewk_settings_proxy_uri_get()
*
* @return a pointer to an eina_stringshare containing the user agent string
*/
-const char* ewk_settings_default_user_agent_get()
+const char* ewk_settings_default_user_agent_get(void)
{
WTF::String ua_version = makeString(String::number(WEBKIT_USER_AGENT_MAJOR_VERSION), '.', String::number(WEBKIT_USER_AGENT_MINOR_VERSION), '+');
WTF::String static_ua = makeString("Mozilla/5.0 (", _ewk_settings_webkit_platform_get(), "; ", _ewk_settings_webkit_os_version_get(), ") AppleWebKit/", ua_version) + makeString(" (KHTML, like Gecko) Version/5.0 Safari/", ua_version);
return eina_stringshare_add(static_ua.utf8().data());
}
+
+/**
+ * Sets cache directory.
+ *
+ * @param path where to store cache, must be write-able.
+ *
+ * @return @c EINA_TRUE on success, @c EINA_FALSE if path is NULL or offline
+ * web application is not supported.
+ */
+Eina_Bool ewk_settings_cache_directory_path_set(const char *path)
+{
+#if ENABLE(OFFLINE_WEB_APPLICATIONS)
+ if (!path)
+ return EINA_FALSE;
+
+ WebCore::cacheStorage().setCacheDirectory(WTF::String::fromUTF8(path));
+ if (!_ewk_cache_directory_path)
+ _ewk_cache_directory_path = eina_stringshare_add(path);
+ else
+ eina_stringshare_replace(&_ewk_cache_directory_path, path);
+ return EINA_TRUE;
+#else
+ EINA_SAFETY_ON_TRUE_RETURN_VAL(1, EINA_FALSE);
+#endif
+}
+
+/**
+ * Return cache directory path.
+ *
+ * This is guaranteed to be eina_stringshare, so whenever possible
+ * save yourself some cpu cycles and use eina_stringshare_ref()
+ * instead of eina_stringshare_add() or strdup().
+ *
+ * @return cache directory path.
+ */
+const char *ewk_settings_cache_directory_path_get()
+{
+#if ENABLE(OFFLINE_WEB_APPLICATIONS)
+ return _ewk_cache_directory_path;
+#else
+ EINA_SAFETY_ON_TRUE_RETURN_VAL(1, 0);
+#endif
+}
diff --git a/Source/WebKit/efl/ewk/ewk_settings.h b/Source/WebKit/efl/ewk/ewk_settings.h
index 0a495da..3e5ca47 100644
--- a/Source/WebKit/efl/ewk/ewk_settings.h
+++ b/Source/WebKit/efl/ewk/ewk_settings.h
@@ -37,9 +37,9 @@ extern "C" {
* @brief General purpose settings, not tied to any view object.
*/
-EAPI uint64_t ewk_settings_web_database_default_quota_get();
+EAPI uint64_t ewk_settings_web_database_default_quota_get(void);
EAPI void ewk_settings_web_database_path_set(const char *path);
-EAPI const char *ewk_settings_web_database_path_get();
+EAPI const char *ewk_settings_web_database_path_get(void);
EAPI Eina_Bool ewk_settings_icon_database_path_set(const char *path);
EAPI const char *ewk_settings_icon_database_path_get(void);
@@ -48,8 +48,11 @@ EAPI Eina_Bool ewk_settings_icon_database_clear(void);
EAPI cairo_surface_t *ewk_settings_icon_database_icon_surface_get(const char *url);
EAPI Evas_Object *ewk_settings_icon_database_icon_object_add(const char *url, Evas *canvas);
-EAPI void ewk_settings_proxy_uri_set(const char* proxy);
-EAPI const char* ewk_settings_proxy_uri_get();
+EAPI Eina_Bool ewk_settings_cache_directory_path_set(const char *path);
+EAPI const char *ewk_settings_cache_directory_path_get(void);
+
+EAPI void ewk_settings_proxy_uri_set(const char* proxy);
+EAPI const char* ewk_settings_proxy_uri_get(void);
#ifdef __cplusplus
}
diff --git a/Source/WebKit/efl/ewk/ewk_view.cpp b/Source/WebKit/efl/ewk/ewk_view.cpp
index ab0629a..8a3b04d 100644
--- a/Source/WebKit/efl/ewk/ewk_view.cpp
+++ b/Source/WebKit/efl/ewk/ewk_view.cpp
@@ -43,7 +43,6 @@
#include "PlatformMouseEvent.h"
#include "PopupMenuClient.h"
#include "ProgressTracker.h"
-#include "appcache/ApplicationCacheStorage.h"
#include "ewk_private.h"
#include <Ecore.h>
@@ -95,13 +94,13 @@ struct _Ewk_View_Private_Data {
unsigned int imh; /**< input method hints */
struct {
Eina_Bool view_cleared:1;
+ Eina_Bool need_touch_events:1;
} flags;
struct {
const char* user_agent;
const char* user_stylesheet;
const char* encoding_default;
const char* encoding_custom;
- const char* cache_directory;
const char* theme;
const char* local_storage_database_path;
int font_minimum_size;
@@ -584,9 +583,6 @@ static Ewk_View_Private_Data* _ewk_view_priv_new(Ewk_View_Smart_Data* sd)
(priv->page_settings->defaultTextEncodingName().utf8().data());
priv->settings.encoding_custom = 0;
- priv->settings.cache_directory = eina_stringshare_add
- (WebCore::cacheStorage().cacheDirectory().utf8().data());
-
s = priv->page_settings->localStorageDatabasePath();
priv->settings.local_storage_database_path = eina_stringshare_add(s.string().utf8().data());
@@ -672,7 +668,6 @@ static void _ewk_view_priv_del(Ewk_View_Private_Data* priv)
eina_stringshare_del(priv->settings.user_stylesheet);
eina_stringshare_del(priv->settings.encoding_default);
eina_stringshare_del(priv->settings.encoding_custom);
- eina_stringshare_del(priv->settings.cache_directory);
eina_stringshare_del(priv->settings.font_standard);
eina_stringshare_del(priv->settings.font_cursive);
eina_stringshare_del(priv->settings.font_monospace);
@@ -2723,22 +2718,6 @@ Eina_Bool ewk_view_setting_encoding_detector_get(Evas_Object* o)
return priv->settings.encoding_detector;
}
-const char* ewk_view_setting_cache_directory_get(const Evas_Object* o)
-{
- EWK_VIEW_SD_GET_OR_RETURN(o, sd, 0);
- EWK_VIEW_PRIV_GET_OR_RETURN(sd, priv, 0);
- return priv->settings.cache_directory;
-}
-
-Eina_Bool ewk_view_setting_cache_directory_set(Evas_Object* o, const char* path)
-{
- EWK_VIEW_SD_GET_OR_RETURN(o, sd, EINA_FALSE);
- EWK_VIEW_PRIV_GET_OR_RETURN(sd, priv, EINA_FALSE);
- if (eina_stringshare_replace(&priv->settings.cache_directory, path))
- WebCore::cacheStorage().setCacheDirectory(String::fromUTF8(path));
- return EINA_TRUE;
-}
-
int ewk_view_setting_font_minimum_size_get(const Evas_Object* o)
{
EWK_VIEW_SD_GET_OR_RETURN(o, sd, 0);
@@ -4305,7 +4284,7 @@ void ewk_view_viewport_attributes_get(Evas_Object *o, float* w, float* h, float*
if (device_pixel_ratio)
*device_pixel_ratio = attributes.devicePixelRatio;
if (user_scalable)
- *user_scalable = attributes.userScalable;
+ *user_scalable = static_cast<bool>(attributes.userScalable);
}
/**
@@ -4508,7 +4487,7 @@ WebCore::FloatRect ewk_view_page_rect_get(Evas_Object *o)
*
* @return device's dpi value.
*/
-int ewk_view_dpi_get()
+int ewk_view_dpi_get(void)
{
#ifdef HAVE_ECORE_X
return ecore_x_dpi_get();
@@ -4516,3 +4495,20 @@ int ewk_view_dpi_get()
return 160;
#endif
}
+
+#if ENABLE(TOUCH_EVENTS)
+void ewk_view_need_touch_events_set(Evas_Object* o, bool needed)
+{
+ EWK_VIEW_SD_GET(o, sd);
+ EWK_VIEW_PRIV_GET(sd, priv);
+
+ priv->flags.need_touch_events = needed;
+}
+
+Eina_Bool ewk_view_need_touch_events_get(Evas_Object* o)
+{
+ EWK_VIEW_SD_GET_OR_RETURN(o, sd, EINA_FALSE);
+ EWK_VIEW_PRIV_GET_OR_RETURN(sd, priv, EINA_FALSE);
+ return priv->flags.need_touch_events;
+}
+#endif
diff --git a/Source/WebKit/efl/ewk/ewk_view.h b/Source/WebKit/efl/ewk/ewk_view.h
index e487f5e..84beecd 100644
--- a/Source/WebKit/efl/ewk/ewk_view.h
+++ b/Source/WebKit/efl/ewk/ewk_view.h
@@ -450,8 +450,6 @@ EAPI const char *ewk_view_setting_encoding_custom_get(const Evas_Object *o);
EAPI Eina_Bool ewk_view_setting_encoding_custom_set(Evas_Object *o, const char *encoding);
EAPI const char *ewk_view_setting_encoding_default_get(const Evas_Object *o);
EAPI Eina_Bool ewk_view_setting_encoding_default_set(Evas_Object *o, const char *encoding);
-EAPI const char *ewk_view_setting_cache_directory_get(const Evas_Object *o);
-EAPI Eina_Bool ewk_view_setting_cache_directory_set(Evas_Object *o, const char *path);
EAPI int ewk_view_setting_font_minimum_size_get(const Evas_Object *o);
EAPI Eina_Bool ewk_view_setting_font_minimum_size_set(Evas_Object *o, int size);
diff --git a/Source/WebKit/efl/ewk/ewk_window_features.cpp b/Source/WebKit/efl/ewk/ewk_window_features.cpp
index 3855e89..4a311dc 100644
--- a/Source/WebKit/efl/ewk/ewk_window_features.cpp
+++ b/Source/WebKit/efl/ewk/ewk_window_features.cpp
@@ -26,17 +26,21 @@
#include <Eina.h>
+/**
+ * \struct _Ewk_Window_Features
+ * @brief Contains the window features data.
+ */
struct _Ewk_Window_Features {
unsigned int __ref;
WebCore::WindowFeatures* core;
};
/**
- * Decrease the ref count of an Ewk_Window_Features, possibly freeing it.
+ * Decreases the referece count of an Ewk_Window_Features, possibly freeing it.
*
- * When its ref count reaches 0, @param window_features is freed.
+ * When the reference count of the object reaches 0, the one is freed.
*
- * @param window_features The window's features.
+ * @param window_features the object to decrease reference count
*/
EAPI void ewk_window_features_unref(Ewk_Window_Features* window_features)
{
@@ -52,9 +56,9 @@ EAPI void ewk_window_features_unref(Ewk_Window_Features* window_features)
}
/**
- * Increase the ref count of an Ewk_Window_Features
+ * Increases the reference count of an Ewk_Window_Features.
*
- * @param window_features The window's features.
+ * @param window_features the object to increase reference count
*/
EAPI void ewk_window_features_ref(Ewk_Window_Features* window_features)
{
@@ -63,15 +67,20 @@ EAPI void ewk_window_features_ref(Ewk_Window_Features* window_features)
}
/**
- * Get boolean properties
+ * Gets boolean properties of an Ewk_Window_Features.
+ *
+ * Properties are returned in the respective pointers. Passing @c 0 to any of
+ * these pointers will make that property to not be returned.
*
- * @param window_features A window_features.
- * @param toolbar_visible pointer to store if toolbar is visible.
- * @param statusbar_visible pointer to store if statusbar is visible.
- * @param scrollbars_visible pointer to store if scrollbars is visible.
- * @param menubar_visible pointer to store if menubar is visible.
- * @param locationbar_visible pointer to store if locationbar is visible.
- * @param fullscreen pointer to store if fullscreen is enabled.
+ * @param window_features the object to get boolean properties
+ * @param toolbar_visible the pointer to store if toolbar is visible
+ * @param statusbar_visible the pointer to store if statusbar is visible
+ * @param scrollbars_visible the pointer to store if scrollbars is visible
+ * @param menubar_visible the pointer to store if menubar is visible
+ * @param locationbar_visible the pointer to store if locationbar is visible
+ * @param fullscreen the pointer to store if fullscreen is enabled
+ *
+ * @see ewk_window_features_int_property_get
*/
EAPI void ewk_window_features_bool_property_get(Ewk_Window_Features* window_features, Eina_Bool* toolbar_visible, Eina_Bool* statusbar_visible, Eina_Bool* scrollbars_visible, Eina_Bool* menubar_visible, Eina_Bool* locationbar_visible, Eina_Bool* fullscreen)
{
@@ -98,18 +107,21 @@ EAPI void ewk_window_features_bool_property_get(Ewk_Window_Features* window_feat
}
/**
- * Get int properties
+ * Gets int properties of an Ewk_Window_Features.
+ *
+ * Properties are returned in the respective pointers. Passing @c 0 to any of
+ * these pointers will make that property to not be returned.
+ *
+ * Make sure to check if the value returned is less than 0 before using it, since in
+ * that case it means that property was not set in winwdow_features object.
*
- * Properties are returned in the respective pointers. Passing NULL to any of
- * these pointers will make that property to not be returned. Make sure to check
- * if the value returned is less than 0 before using it, since in that case it
- * means that property was not set in @param winwdow_features.
+ * @param window_features the window's features
+ * @param x the pointer to store x position
+ * @param y the pointer to store y position
+ * @param w the pointer to store width
+ * @param h the pointer to store height
*
- * @param window_features A window_features.
- * @param x pointer to store x position or -1 if it's not set in window_features.
- * @param y pointer to store y position or-1 if it's not set in window_features.
- * @param w pointer to store width or-1 if it's not set in window_features.
- * @param h pointer to store height or-1 if it's not set in window_features.
+ * @see ewk_window_features_bool_property_get
*/
EAPI void ewk_window_features_int_property_get(Ewk_Window_Features* window_features, int* x, int* y, int* w, int* h)
{
@@ -133,13 +145,12 @@ EAPI void ewk_window_features_int_property_get(Ewk_Window_Features* window_featu
/**
* @internal
- * Create a new Ewk_Window_Features from a WebCore::WindowFeatures if @param
- * core is not NULL or a new one with default features.
*
- * A new WebCore::WindowFeatures is allocated copying @param core features and
- * it is embedded inside an Ewk_Window_Features whose ref count is initialized.
+ * Creates a new Ewk_Window_Features object.
*
- * @returns a new allocated Ewk_Window_Features
+ * @param core if not @c 0 a new WebCore::WindowFeatures is allocated copying core features and
+ * it is embedded inside the Ewk_Window_Features whose ref count is initialized, if core is @c 0 a new one is created with the default features.
+ * @returns a new allocated the Ewk_Window_Features object
*/
Ewk_Window_Features* ewk_window_features_new_from_core(const WebCore::WindowFeatures* core)
{
diff --git a/Source/WebKit/efl/ewk/ewk_window_features.h b/Source/WebKit/efl/ewk/ewk_window_features.h
index b579dc4..0501881 100644
--- a/Source/WebKit/efl/ewk/ewk_window_features.h
+++ b/Source/WebKit/efl/ewk/ewk_window_features.h
@@ -18,6 +18,11 @@
Boston, MA 02110-1301, USA.
*/
+/**
+ * @file ewk_window_features.h
+ * @brief Access to the features of window.
+ */
+
#ifndef ewk_window_features_h
#define ewk_window_features_h
@@ -29,6 +34,7 @@
extern "C" {
#endif
+/** Creates a type name for _Ewk_Window_Features. */
typedef struct _Ewk_Window_Features Ewk_Window_Features;
EAPI void ewk_window_features_unref(Ewk_Window_Features* window_features);
diff --git a/Source/WebKit/gtk/ChangeLog b/Source/WebKit/gtk/ChangeLog
index d5cfb4d..88452c2 100644
--- a/Source/WebKit/gtk/ChangeLog
+++ b/Source/WebKit/gtk/ChangeLog
@@ -1,3 +1,337 @@
+2011-03-30 Martin Robinson <mrobinson@igalia.com>
+
+ Reviewed by Dirk Schulze.
+
+ [Cairo] Better separate the concerns of GraphicsContextCairo
+ https://bugs.webkit.org/show_bug.cgi?id=55150
+
+ Add a PlatformContextCairo which right now stores the cairo_t* for a
+ GraphicsContextCairo. Later patches will move logic for tracking ContextShadow
+ and image masking layers into this PlatformContextCairo class.
+
+ * webkit/webkitwebframe.cpp:
+ (draw_page_callback):
+ * webkit/webkitwebview.cpp:
+ (webkit_web_view_expose_event):
+ (webkit_web_view_draw):
+
+2011-03-29 Philippe Normand <pnormand@igalia.com>
+
+ Unreviewed, disable an assert in testwebview due to
+ https://bugs.webkit.org/show_bug.cgi?id=57315
+
+ * tests/testwebview.c:
+
+2011-03-28 Adele Peterson <adele@apple.com>
+
+ Build fix.
+
+ * WebCoreSupport/DumpRenderTreeSupportGtk.cpp:
+ (DumpRenderTreeSupportGtk::webkitWebFrameSelectionHasSpellingMarker):
+
+2011-03-28 Sergio Villar Senin <svillar@igalia.com>
+
+ Reviewed by Martin Robinson.
+
+ [GTK] Fullscreen tests failing after r82084
+ https://bugs.webkit.org/show_bug.cgi?id=57219
+
+ Added the withKeyboard parameter to supportsFullScreenForElement
+ method in ChromeClient. Fullscreen will be disabled for keyboard
+ access by default.
+
+ * WebCoreSupport/ChromeClientGtk.cpp:
+ (WebKit::ChromeClient::supportsFullScreenForElement):
+ * WebCoreSupport/ChromeClientGtk.h:
+
+2011-03-25 Andy Estes <aestes@apple.com>
+
+ Reviewed by Adele Peterson.
+
+ REGRESSION (r70748): latest nightly builds kills AC_QuickTime.js
+ https://bugs.webkit.org/show_bug.cgi?id=49016
+
+ Update objectContentType() implementation to handle the
+ shouldPreferPlugInsForImages flag.
+
+ * WebCoreSupport/FrameLoaderClientGtk.cpp:
+ (WebKit::FrameLoaderClient::objectContentType):
+ * WebCoreSupport/FrameLoaderClientGtk.h:
+
+2011-03-25 Priit Laes <plaes@plaes.org>
+
+ Reviewed by Martin Robinson.
+
+ [GTK] [PATCH] Avoid critical warning when free-ing list of plugins
+ https://bugs.webkit.org/show_bug.cgi?id=57025
+
+ * webkit/webkitwebplugindatabase.cpp:
+ (webkit_web_plugin_database_plugins_list_free):
+ Use regular check and return instead of g_return_if_fail.
+
+2011-03-24 Sheriff Bot <webkit.review.bot@gmail.com>
+
+ Unreviewed, rolling out r81916 and r81917.
+ http://trac.webkit.org/changeset/81916
+ http://trac.webkit.org/changeset/81917
+ https://bugs.webkit.org/show_bug.cgi?id=57071
+
+ broke a test on platforms that do not have QuickTime installed
+ (Requested by estes on #webkit).
+
+ * WebCoreSupport/FrameLoaderClientGtk.cpp:
+ (WebKit::FrameLoaderClient::objectContentType):
+ * WebCoreSupport/FrameLoaderClientGtk.h:
+
+2011-03-24 Andy Estes <aestes@apple.com>
+
+ Reviewed by Darin Adler.
+
+ REGRESSION (r70748): latest nightly builds kills AC_QuickTime.js
+ https://bugs.webkit.org/show_bug.cgi?id=49016
+
+ Update objectContentType() implementation to handle the
+ shouldPreferPlugInsForImages flag.
+
+ * WebCoreSupport/FrameLoaderClientGtk.cpp:
+ (WebKit::FrameLoaderClient::objectContentType):
+ * WebCoreSupport/FrameLoaderClientGtk.h:
+
+2011-03-23 Brady Eidson <beidson@apple.com>
+
+ Reviewed by Sam Weinig.
+
+ Change IconDatabase opening to allow for arbitrary filenames
+ https://bugs.webkit.org/show_bug.cgi?id=56977
+
+ * webkit/webkiticondatabase.cpp:
+ (webkit_icon_database_set_path):
+
+2011-03-22 Gustavo Noronha Silva <gustavo.noronha@collabora.co.uk>
+
+ Rubber-stamped by Xan Lopez.
+
+ Applications that include WebKit headers fail to build when using strict warnings
+ because the signature for webkit_application_cache_get_maximum_size is missing a
+ 'void' to make it explicit it takes no arguments.
+
+ * webkit/webkitapplicationcache.h:
+
+2011-03-21 Alejandro G. Castro <alex@igalia.com>
+
+ Reviewed by Martin Robinson.
+
+ [GTK] 1.3.13 release bump
+ https://bugs.webkit.org/show_bug.cgi?id=56795
+
+ Version bump for 1.3.13 and updated NEWS file with release notes.
+
+ * NEWS:
+
+2011-03-21 Chang Shu <cshu@webkit.org>
+
+ Reviewed by Alexey Proskuryakov.
+
+ REGRESSION (r79953): Can't type in MS Outlook 2011
+ https://bugs.webkit.org/show_bug.cgi?id=56665
+
+ r79953 removed the WebView level editablity which is persistent no matter whether
+ underlying document itself is changed and editability gets lost. The resolution is to
+ set this WebView editable value to WebCore. This avoids the callback from WebCore to
+ WebKit which was the main goal in r79953 to improve performance.
+
+ * webkit/webkitwebview.cpp:
+ (webkit_web_view_get_editable):
+ (webkit_web_view_set_editable):
+
+2011-03-21 Mario Sanchez Prada <msanchez@igalia.com>
+
+ Reviewed by Martin Robinson.
+
+ [GTK] [Stable] AtkHypertext exposes wrong offsets for links placed inside <span> nodes
+ https://bugs.webkit.org/show_bug.cgi?id=56737
+
+ * tests/testatk.c:
+ (testWebkitAtkHypertextAndHyperlinks): Updated unit test to also
+ check offsets for hyperlinks inside <span> nodes.
+
+2011-03-18 David Keijser <keijser@gmail.com> and Xan Lopez <xlopez@igalia.com>
+
+ Reviewed by Martin Robinson.
+
+ [GTK] On-demand event-listeners for DOM event signals
+ https://bugs.webkit.org/show_bug.cgi?id=49649
+
+ * tests/testdomdomwindow.c: update unit tests for new APIs.
+ (load_event_callback): ditto.
+ (test_dom_domview_signals): ditto.
+ (load_status_callback): ditto.
+
+2011-03-17 Brady Eidson <beidson@apple.com>
+
+ Reviewed by Sam Weinig.
+
+ https://bugs.webkit.org/show_bug.cgi?id=56425
+ More groundwork for WebKit2 IconDatabase
+
+ Update already-used function names:
+ * webkit/webkiticondatabase.cpp:
+ (webkit_icon_database_get_icon_uri):
+ (webkit_icon_database_get_icon_pixbuf):
+ * webkit/webkitwebview.cpp:
+ (webkit_web_view_get_icon_uri):
+
+2011-03-16 Joseph Pecoraro <joepeck@webkit.org>
+
+ Reviewed by Kenneth Rohde Christiansen.
+
+ Viewport no longer allows an auto value for "user-scalable"
+ https://bugs.webkit.org/show_bug.cgi?id=55416
+
+ Make the default value for userScalable be true.
+
+ * WebCoreSupport/DumpRenderTreeSupportGtk.cpp:
+ (DumpRenderTreeSupportGtk::dumpConfigurationForViewport): update test output to include userScalable.
+ * webkit/webkitviewportattributes.cpp:
+ (webkitViewportAttributesRecompute):
+
+2011-03-15 Ilya Sherman <isherman@chromium.org>
+
+ Reviewed by Tony Chang.
+
+ Autofilled form elements are assigned fixed background color but not text color
+ https://bugs.webkit.org/show_bug.cgi?id=48382
+
+ * WebCoreSupport/DumpRenderTreeSupportGtk.cpp:
+ (DumpRenderTreeSupportGtk::setAutofilled): Added.
+ * WebCoreSupport/DumpRenderTreeSupportGtk.h:
+
+2011-03-14 Ryuan Choi <ryuan.choi@samsung.com>
+
+ Reviewed by Martin Robinson.
+
+ [GTK] Possible leaks after splitting TextCheckerClientEnchant.
+ https://bugs.webkit.org/show_bug.cgi?id=55989
+
+ Convert gchar* to GOwnPtr<gchar> and refactor the code.
+
+ * WebCoreSupport/TextCheckerClientEnchant.cpp:
+ (WebKit::TextCheckerClientEnchant::checkSpellingOfString):
+
+2011-03-11 Marco Peereboom <marco@peereboom.us>
+
+ Reviewed by Gustavo Noronha Silva.
+
+ Provide a knob to enable/disable DNS prefetching.
+ DNS prefetching is enabled by default.
+ https://bugs.webkit.org/show_bug.cgi?id=55973
+
+ * webkit/webkitwebsettings.cpp:
+ (webkit_web_settings_class_init):
+ (webkit_web_settings_set_property):
+ (webkit_web_settings_get_property):
+ (webkit_web_settings_copy):
+ * webkit/webkitwebview.cpp:
+ (webkit_web_view_update_settings):
+ (webkit_web_view_settings_notify):
+
+2011-03-08 Philippe Normand <pnormand@igalia.com>
+
+ Reviewed by Martin Robinson.
+
+ [GTK] close-web-view emitted on disposed WebView
+ https://bugs.webkit.org/show_bug.cgi?id=55932
+
+ * WebCoreSupport/ChromeClientGtk.cpp:
+ (ChromeClient::chromeDestroyed): Remove the closeSoonTimer glib
+ source before destruction of the ChromeClient.
+
+2011-03-11 Roland Steiner <rolandsteiner@chromium.org>
+
+ Reviewed by Ryosuke Niwa.
+
+ Bug 55570 - Remove dependency of dom/InputElement.cpp on html/ and wml/
+ https://bugs.webkit.org/show_bug.cgi?id=55570
+
+ Add a virtual function toInputElement() to Node that has a default
+ implementation of returning 0.
+ For HTMLInputElement and WMLInputElement (which derive from InputElement)
+ override this to return the object.
+ Change all calling sites of the old toInputElement to use the new member
+ function. This also allows us to save some casts.
+
+ No new tests (refactoring).
+
+ * src/WebInputElement.cpp:
+ (WebKit::toWebInputElement):
+
+ * WebCoreSupport/DumpRenderTreeSupportGtk.cpp:
+ (DumpRenderTreeSupportGtk::setValueForUser):
+
+2011-03-10 Philippe Normand <pnormand@igalia.com>
+
+ Reviewed by Xan Lopez.
+
+ [GTK] unittests/testapplicationcache crashes
+ https://bugs.webkit.org/show_bug.cgi?id=56083
+
+ Removed the webkit_application_cache_get_database_directory_path
+ API as the underlying ApplicationCacheStorage doesn't allow
+ setting the cache path multiple times.
+
+ * tests/testapplicationcache.c:
+ (main):
+ * webkit/webkitapplicationcache.cpp:
+ (webkit_application_cache_get_database_directory_path):
+ * webkit/webkitapplicationcache.h:
+ * webkit/webkitglobals.cpp:
+ (webkitInit):
+
+2011-03-09 Peter Kasting <pkasting@google.com>
+
+ Reviewed by Mihai Parparita.
+
+ Unify Windows version checks.
+ https://bugs.webkit.org/show_bug.cgi?id=55979
+
+ * webkit/webkitwebsettings.cpp:
+ (webkitOSVersion):
+
+2011-03-08 Christian Dywan <christian@lanedo.com>
+
+ Reviewed by Martin Robinson.
+
+ [GTK] provide an API to control the IconDatabase
+ https://bugs.webkit.org/show_bug.cgi?id=32510
+
+ * GNUmakefile.am:
+ * WebCoreSupport/FrameLoaderClientGtk.cpp: Emit signals on
+ the icon database for new icons.
+ * webkit/webkit.h:
+ * webkit/webkitdefines.h:
+ * webkit/webkitglobals.cpp:
+ * webkit/webkitglobals.h: Add a function to obtain the global
+ icon database.
+ * webkit/webkiticondatabase.cpp:
+ * webkit/webkiticondatabase.h: Implement public icon database
+ object with methods for obtaining icon URLs, pixbufs, clearing
+ waiting for new icons.
+ * webkit/webkitwebview.cpp:
+ * webkit/webkitwebview.h: Add a method to obtain an icon pixbuf
+ for the web view.
+2011-03-08 Carlos Garcia Campos <cgarcia@igalia.com>
+
+ Reviewed by Martin Robinson.
+
+ [GTK] Add layoutTestController.setValueForUser() after r80412
+ https://bugs.webkit.org/show_bug.cgi?id=55862
+
+ Add setValueForUser method to DumpRenderTreeSupportGTK.
+
+ * WebCoreSupport/DumpRenderTreeSupportGtk.cpp:
+ (DumpRenderTreeSupportGtk::setValueForUser):
+ * WebCoreSupport/DumpRenderTreeSupportGtk.h:
+
2011-03-07 Sam Weinig <sam@webkit.org>
Reviewed by Anders Carlsson.
diff --git a/Source/WebKit/gtk/GNUmakefile.am b/Source/WebKit/gtk/GNUmakefile.am
index 42ac1e4..7030ea8 100644
--- a/Source/WebKit/gtk/GNUmakefile.am
+++ b/Source/WebKit/gtk/GNUmakefile.am
@@ -116,6 +116,7 @@ webkitgtk_static_h_api += \
$(srcdir)/Source/WebKit/gtk/webkit/webkitgeolocationpolicydecision.h \
$(srcdir)/Source/WebKit/gtk/webkit/webkitglobals.h \
$(srcdir)/Source/WebKit/gtk/webkit/webkithittestresult.h \
+ $(srcdir)/Source/WebKit/gtk/webkit/webkiticondatabase.h \
$(srcdir)/Source/WebKit/gtk/webkit/webkitnetworkrequest.h \
$(srcdir)/Source/WebKit/gtk/webkit/webkitnetworkresponse.h \
$(srcdir)/Source/WebKit/gtk/webkit/webkitsecurityorigin.h \
@@ -203,6 +204,7 @@ webkitgtk_sources += \
Source/WebKit/gtk/webkit/webkitglobalsprivate.h \
Source/WebKit/gtk/webkit/webkithittestresult.cpp \
Source/WebKit/gtk/webkit/webkithittestresultprivate.h \
+ Source/WebKit/gtk/webkit/webkiticondatabase.cpp \
Source/WebKit/gtk/webkit/webkitnetworkrequest.cpp \
Source/WebKit/gtk/webkit/webkitnetworkrequestprivate.h \
Source/WebKit/gtk/webkit/webkitnetworkresponse.cpp \
diff --git a/Source/WebKit/gtk/NEWS b/Source/WebKit/gtk/NEWS
index a7e4581..c847f01 100644
--- a/Source/WebKit/gtk/NEWS
+++ b/Source/WebKit/gtk/NEWS
@@ -1,4 +1,55 @@
=================
+WebKitGTK+ 1.3.13
+=================
+
+What's new in WebKitGTK+ 1.3.13?
+
+In this release the GObject DOM Bindings contain a major change. Explicit
+invocation of DOM objects' addEventListener methods has replaced the GObject
+signal method of DOM event handling. For intance, where before a developer
+would connect to the "click-event" signal, a developer must now call:
+webkit_dom_event_target_add_event_listener. For a more illustrative example see:
+http://trac.webkit.org/changeset/81486/trunk/Source/WebKit/gtk/tests/testdomdomwindow.c
+
+Added API to control the IconDatabase and the cache database APIs.
+
+WebKit bugs mostly relevant with the GTK+ port fixed since 1.3.12:
+
+Bug 23526 - [CAIRO] Support ImageBuffers clip operation on all Cairo ports (Martin Robinson)
+Bug 56180 - [GTK] JSC crashes in 32bit Release bots after r80743 (Martin Robinson)
+Bug 56180 - [GTK] JSC crashes in 32bit Release bots after r80743 (Geoffrey Garen)
+Bug 49649 - [GTK] On-demand event-listeners for DOM event signals (David Keijser)
+Bug 56333 - [GTK] [WebKit2] The UIProcess never changes the mouse cursor (Martin Robinson)
+Bug 55989 - [GTK] Possible leaks after splitting TextCheckerClientEnchant. (Ryuan Choi)
+Bug 50497 - Add all web audio auto-generated files to GTK make system (Chris Rogers)
+Bug 56180 - [GTK] JSC crashes in 32bit Release bots after r80743 (Sergio Villar Senin)
+Bug 55932 - [GTK] close-web-view emitted on disposed WebView (Philippe Normand)
+Bug 53098 - [GTK] Implement spin buttons for GTK+ 2.x (Martin Robinson)
+Bug 56125 - [GTK] [Webkit2] There are no scrollbars visible in the MiniBrowser (Martin Robinson)
+Bug 41903 - [GTK] plugins/return-negative-one-from-write.html crashes (Martin Robinson)
+Bug 32510 - [GTK] provide an API to control the IconDatabase (Christian Dywan)
+Bug 55868 - [GTK] Do not set juntion sides on scrollbar stepper buttons (Carlos Garcia Campos)
+Bug 55866 - [GTK] Use doubles instead of integers for coordinates when rendering arrows (Carlos Garcia Campos)
+Bug 55878 - [Gtk] toDataURL uses incorrect quality value when saving GdkPixbuf to buffer (Zan Dobersek)
+Bug 55531 - [GTK] Windowless plugins override the view cursor (Martin Robinson)
+Bug 55136 - Enable Copy Image Address context menu item in the Gtk port (Christian Dywan)
+Bug 53960 - [GTK] DRT needs implementation of EventSender.scheduleAsynchronousClick (Carlos Garcia Campos)
+Bug 55335 - [GTK] Extended application cache database API and added unit tests file. (Lukasz Slachciak)
+Bug 53146 - [GTK] Combo boxes should emit object:selection-changed even when collapsed (Mario Sanchez Prada)
+Bug 55473 - [GTK] Add support for external protocol handlers (Sergio Villar Senin)
+Bug 53228 - [Gtk] Resource size is incorrectly reported to WebCore (Sergio Villar Senin)
+Bug 48510 - [GTK] Implement WebContext and NativeKeyboardEvent classes for WebKit2 (Amruth Raj)
+Bug 48509 - [GTK] Implement WebView and WebKitWebView classes for WebKit2 (Amruth Raj)
+Bug 48510 - [GTK] Implement WebEventFactory, WebErrors classes for WebKit2 ( Amruth Raj)
+Bug 54658 - [gtk] Failing collinear arcTo canvas tests (Zan Dobersek)
+Bug 37769 - [Gtk] Flash item placed on wrong location right after load (Martin Robinson)
+Bug 54981 - [GTK] position:fixed elements flicker while scrolling after r74196 (Martin Robinson)
+Bug 56180 - [GTK] JSC crashes in 32bit Release bots after r80743 (Oliver Hunt)
+Bug 56737 - [GTK] [Stable] AtkHypertext exposes wrong offsets for links placed inside <span> nodes (Mario Sanchez Prada)
+Bug 56201 - WebKitIconDatabase may trigger crash in cairoImageSurfaceToGdkPixbuf (Christian Dywan)
+Bug 56690 - Stop inserting when the parent is removed (Justin Schuh)
+
+=================
WebKitGTK+ 1.3.12
=================
diff --git a/Source/WebKit/gtk/WebCoreSupport/ChromeClientGtk.cpp b/Source/WebKit/gtk/WebCoreSupport/ChromeClientGtk.cpp
index 8e828ac..9f21139 100644
--- a/Source/WebKit/gtk/WebCoreSupport/ChromeClientGtk.cpp
+++ b/Source/WebKit/gtk/WebCoreSupport/ChromeClientGtk.cpp
@@ -79,6 +79,9 @@ ChromeClient::ChromeClient(WebKitWebView* webView)
void ChromeClient::chromeDestroyed()
{
+ if (m_closeSoonTimer)
+ g_source_remove(m_closeSoonTimer);
+
delete this;
}
@@ -720,8 +723,11 @@ void ChromeClient::exitFullscreenForNode(Node* node)
#endif
#if ENABLE(FULLSCREEN_API)
-bool ChromeClient::supportsFullScreenForElement(const WebCore::Element* element)
+bool ChromeClient::supportsFullScreenForElement(const WebCore::Element* element, bool withKeyboard)
{
+ if (withKeyboard)
+ return false;
+
return true;
}
diff --git a/Source/WebKit/gtk/WebCoreSupport/ChromeClientGtk.h b/Source/WebKit/gtk/WebCoreSupport/ChromeClientGtk.h
index 462ddc4..2bf81eb 100644
--- a/Source/WebKit/gtk/WebCoreSupport/ChromeClientGtk.h
+++ b/Source/WebKit/gtk/WebCoreSupport/ChromeClientGtk.h
@@ -145,7 +145,7 @@ namespace WebKit {
#endif
#if ENABLE(FULLSCREEN_API)
- virtual bool supportsFullScreenForElement(const WebCore::Element*);
+ virtual bool supportsFullScreenForElement(const WebCore::Element*, bool withKeyboard);
virtual void enterFullScreenForElement(WebCore::Element*);
virtual void exitFullScreenForElement(WebCore::Element*);
#endif
diff --git a/Source/WebKit/gtk/WebCoreSupport/DumpRenderTreeSupportGtk.cpp b/Source/WebKit/gtk/WebCoreSupport/DumpRenderTreeSupportGtk.cpp
index 6db2c81..1336f11 100644
--- a/Source/WebKit/gtk/WebCoreSupport/DumpRenderTreeSupportGtk.cpp
+++ b/Source/WebKit/gtk/WebCoreSupport/DumpRenderTreeSupportGtk.cpp
@@ -34,6 +34,8 @@
#include "FrameView.h"
#include "GCController.h"
#include "GraphicsContext.h"
+#include "HTMLInputElement.h"
+#include "InputElement.h"
#include "JSDOMWindow.h"
#include "JSDocument.h"
#include "JSElement.h"
@@ -98,11 +100,6 @@ bool DumpRenderTreeSupportGtk::linksIncludedInFocusChain()
return s_linksIncludedInTabChain;
}
-void DumpRenderTreeSupportGtk::setIconDatabaseEnabled(bool enabled)
-{
- WebKit::setIconDatabaseEnabled(enabled);
-}
-
void DumpRenderTreeSupportGtk::setSelectTrailingWhitespaceEnabled(bool enabled)
{
s_selectTrailingWhitespaceEnabled = enabled;
@@ -629,7 +626,7 @@ void DumpRenderTreeSupportGtk::dumpConfigurationForViewport(WebKitWebView* webVi
ViewportArguments arguments = webView->priv->corePage->mainFrame()->document()->viewportArguments();
ViewportAttributes attrs = computeViewportAttributes(arguments, /* default layout width for non-mobile pages */ 980, deviceWidth, deviceHeight, deviceDPI, IntSize(availableWidth, availableHeight));
- fprintf(stdout, "viewport size %dx%d scale %f with limits [%f, %f]\n", attrs.layoutSize.width(), attrs.layoutSize.height(), attrs.initialScale, attrs.minimumScale, attrs.maximumScale);
+ fprintf(stdout, "viewport size %dx%d scale %f with limits [%f, %f] and userScalable %f\n", attrs.layoutSize.width(), attrs.layoutSize.height(), attrs.initialScale, attrs.minimumScale, attrs.maximumScale, attrs.userScalable);
}
void DumpRenderTreeSupportGtk::clearOpener(WebKitWebFrame* frame)
@@ -652,7 +649,7 @@ bool DumpRenderTreeSupportGtk::webkitWebFrameSelectionHasSpellingMarker(WebKitWe
{
g_return_val_if_fail(WEBKIT_IS_WEB_FRAME(frame), FALSE);
- return core(frame)->editor()->selectionStartHasSpellingMarkerFor(from, length);
+ return core(frame)->editor()->selectionStartHasMarkerFor(DocumentMarker::Spelling, from, length);
}
bool DumpRenderTreeSupportGtk::findString(WebKitWebView* webView, const gchar* targetString, WebKitFindOptions findOptions)
@@ -669,3 +666,32 @@ void DumpRenderTreeSupportGtk::setMinimumTimerInterval(WebKitWebView* webView, d
{
core(webView)->settings()->setMinDOMTimerInterval(interval);
}
+
+void DumpRenderTreeSupportGtk::setAutofilled(JSContextRef context, JSValueRef nodeObject, bool autofilled)
+{
+ JSC::ExecState* exec = toJS(context);
+ Element* element = toElement(toJS(exec, nodeObject));
+ if (!element)
+ return;
+ InputElement* inputElement = element->toInputElement();
+ if (!inputElement)
+ return;
+
+ static_cast<HTMLInputElement*>(inputElement)->setAutofilled(autofilled);
+}
+
+void DumpRenderTreeSupportGtk::setValueForUser(JSContextRef context, JSValueRef nodeObject, JSStringRef value)
+{
+ JSC::ExecState* exec = toJS(context);
+ Element* element = toElement(toJS(exec, nodeObject));
+ if (!element)
+ return;
+ InputElement* inputElement = element->toInputElement();
+ if (!inputElement)
+ return;
+
+ size_t bufferSize = JSStringGetMaximumUTF8CStringSize(value);
+ GOwnPtr<gchar> valueBuffer(static_cast<gchar*>(g_malloc(bufferSize)));
+ JSStringGetUTF8CString(value, valueBuffer.get(), bufferSize);
+ inputElement->setValueForUser(String::fromUTF8(valueBuffer.get()));
+}
diff --git a/Source/WebKit/gtk/WebCoreSupport/DumpRenderTreeSupportGtk.h b/Source/WebKit/gtk/WebCoreSupport/DumpRenderTreeSupportGtk.h
index 595d6da..7ad5af6 100644
--- a/Source/WebKit/gtk/WebCoreSupport/DumpRenderTreeSupportGtk.h
+++ b/Source/WebKit/gtk/WebCoreSupport/DumpRenderTreeSupportGtk.h
@@ -53,7 +53,6 @@ public:
static void setLinksIncludedInFocusChain(bool);
static bool linksIncludedInFocusChain();
- static void setIconDatabaseEnabled(bool);
static void setSelectTrailingWhitespaceEnabled(bool);
static bool selectTrailingWhitespaceEnabled();
@@ -85,6 +84,8 @@ public:
static AtkObject* getFocusedAccessibleElement(WebKitWebFrame*);
static AtkObject* getRootAccessibleElement(WebKitWebFrame*);
static void layoutFrame(WebKitWebFrame*);
+ static void setAutofilled(JSContextRef, JSValueRef, bool);
+ static void setValueForUser(JSContextRef, JSValueRef, JSStringRef);
// WebKitWebView
static void executeCoreCommandByName(WebKitWebView*, const gchar* name, const gchar* value);
diff --git a/Source/WebKit/gtk/WebCoreSupport/FrameLoaderClientGtk.cpp b/Source/WebKit/gtk/WebCoreSupport/FrameLoaderClientGtk.cpp
index d8ea90e..ca8bf9a 100644
--- a/Source/WebKit/gtk/WebCoreSupport/FrameLoaderClientGtk.cpp
+++ b/Source/WebKit/gtk/WebCoreSupport/FrameLoaderClientGtk.cpp
@@ -6,6 +6,7 @@
* Copyright (C) 2009, 2010 Gustavo Noronha Silva <gns@gnome.org>
* Copyright (C) Research In Motion Limited 2009. All rights reserved.
* Copyright (C) 2010 Igalia S.L.
+ * Copyright (C) 2011 Apple Inc. All rights reserved.
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
@@ -65,6 +66,7 @@
#include "webkiterror.h"
#include "webkitglobals.h"
#include "webkitglobalsprivate.h"
+#include "webkiticondatabase.h"
#include "webkitnetworkrequest.h"
#include "webkitnetworkrequestprivate.h"
#include "webkitnetworkresponse.h"
@@ -710,9 +712,9 @@ PassRefPtr<Widget> FrameLoaderClient::createJavaAppletWidget(const IntSize& plug
return FrameLoaderClient::createPlugin(pluginSize, element, baseURL, paramNames, paramValues, "application/x-java-applet", false);
}
-ObjectContentType FrameLoaderClient::objectContentType(const KURL& url, const String& mimeType)
+ObjectContentType FrameLoaderClient::objectContentType(const KURL& url, const String& mimeType, bool shouldPreferPlugInsForImages)
{
- return FrameLoader::defaultObjectContentType(url, mimeType);
+ return FrameLoader::defaultObjectContentType(url, mimeType, shouldPreferPlugInsForImages);
}
String FrameLoaderClient::overrideMediaType() const
@@ -925,6 +927,10 @@ void FrameLoaderClient::dispatchDidReceiveIcon()
if (m_loadingErrorPage)
return;
+ const gchar* frameURI = webkit_web_frame_get_uri(m_frame);
+ WebKitIconDatabase* database = webkit_get_icon_database();
+ g_signal_emit_by_name(database, "icon-loaded", m_frame, frameURI);
+
WebKitWebView* webView = getViewFromFrame(m_frame);
// Avoid reporting favicons for non-main frames.
diff --git a/Source/WebKit/gtk/WebCoreSupport/FrameLoaderClientGtk.h b/Source/WebKit/gtk/WebCoreSupport/FrameLoaderClientGtk.h
index 3340837..b7ead7a 100644
--- a/Source/WebKit/gtk/WebCoreSupport/FrameLoaderClientGtk.h
+++ b/Source/WebKit/gtk/WebCoreSupport/FrameLoaderClientGtk.h
@@ -1,6 +1,6 @@
/*
* Copyright (C) 2006 Zack Rusin <zack@kde.org>
- * Copyright (C) 2006 Apple Computer, Inc. All rights reserved.
+ * Copyright (C) 2006, 2011 Apple Inc. All rights reserved.
* Copyright (C) 2008 Collabora Ltd. All rights reserved.
*
* All rights reserved.
@@ -126,7 +126,7 @@ namespace WebKit {
virtual void registerForIconNotification(bool);
- virtual WebCore::ObjectContentType objectContentType(const WebCore::KURL& url, const WTF::String& mimeType);
+ virtual WebCore::ObjectContentType objectContentType(const WebCore::KURL&, const WTF::String& mimeType, bool shouldPreferPlugInsForImages);
virtual void setMainFrameDocumentReady(bool);
diff --git a/Source/WebKit/gtk/WebCoreSupport/TextCheckerClientEnchant.cpp b/Source/WebKit/gtk/WebCoreSupport/TextCheckerClientEnchant.cpp
index 74e8132..460000b 100644
--- a/Source/WebKit/gtk/WebCoreSupport/TextCheckerClientEnchant.cpp
+++ b/Source/WebKit/gtk/WebCoreSupport/TextCheckerClientEnchant.cpp
@@ -77,16 +77,16 @@ void TextCheckerClientEnchant::checkSpellingOfString(const UChar* text, int leng
if (!dicts)
return;
- gchar* ctext = g_utf16_to_utf8(const_cast<gunichar2*>(text), length, 0, 0, 0);
- int utflen = g_utf8_strlen(ctext, -1);
+ GOwnPtr<gchar> utf8Text(g_utf16_to_utf8(const_cast<gunichar2*>(text), length, 0, 0, 0));
+ int utf8Length = g_utf8_strlen(utf8Text.get(), -1);
PangoLanguage* language(pango_language_get_default());
- GOwnPtr<PangoLogAttr> attrs(g_new(PangoLogAttr, utflen+1));
+ GOwnPtr<PangoLogAttr> attrs(g_new(PangoLogAttr, utf8Length + 1));
// pango_get_log_attrs uses an aditional position at the end of the text.
- pango_get_log_attrs(ctext, -1, -1, language, attrs.get(), utflen+1);
+ pango_get_log_attrs(utf8Text.get(), -1, -1, language, attrs.get(), utf8Length + 1);
- for (int i = 0; i < length+1; i++) {
+ for (int i = 0; i < length + 1; i++) {
// We go through each character until we find an is_word_start,
// then we get into an inner loop to find the is_word_end corresponding
// to it.
@@ -103,18 +103,15 @@ void TextCheckerClientEnchant::checkSpellingOfString(const UChar* text, int leng
// check characters twice.
i = end;
- for (; dicts; dicts = dicts->next) {
- EnchantDict* dict = static_cast<EnchantDict*>(dicts->data);
- gchar* cstart = g_utf8_offset_to_pointer(ctext, start);
- gint bytes = static_cast<gint>(g_utf8_offset_to_pointer(ctext, end) - cstart);
- gchar* word = g_new0(gchar, bytes+1);
- int result;
+ gchar* cstart = g_utf8_offset_to_pointer(utf8Text.get(), start);
+ gint bytes = static_cast<gint>(g_utf8_offset_to_pointer(utf8Text.get(), end) - cstart);
+ GOwnPtr<gchar> word(g_new0(gchar, bytes + 1));
- g_utf8_strncpy(word, cstart, end - start);
+ g_utf8_strncpy(word.get(), cstart, wordLength);
- result = enchant_dict_check(dict, word, -1);
- g_free(word);
- if (result) {
+ for (; dicts; dicts = dicts->next) {
+ EnchantDict* dict = static_cast<EnchantDict*>(dicts->data);
+ if (enchant_dict_check(dict, word.get(), wordLength)) {
*misspellingLocation = start;
*misspellingLength = wordLength;
} else {
diff --git a/Source/WebKit/gtk/po/ChangeLog b/Source/WebKit/gtk/po/ChangeLog
index 2b4b385..8febef5 100644
--- a/Source/WebKit/gtk/po/ChangeLog
+++ b/Source/WebKit/gtk/po/ChangeLog
@@ -1,3 +1,11 @@
+2011-03-23 Luca Ferretti <lferrett@gnome.org>
+
+ Rubber-stamped by Gustavo Noronha.
+
+ Italian translation update.
+
+ * it.po: Updated.
+
2011-02-26 Christian Dywan <christian@lanedo.com>
Reviewed by Andreas Kling.
diff --git a/Source/WebKit/gtk/po/it.po b/Source/WebKit/gtk/po/it.po
index 0112a44..d30665a 100644
--- a/Source/WebKit/gtk/po/it.po
+++ b/Source/WebKit/gtk/po/it.po
@@ -1,12 +1,13 @@
# This is the Italian locale translation for WebKitGtk
# Copyright (C) 2009 Free Software Foundation, Inc.
-# Luca Ferretti <lferrett@gnome.org>, 2009, 2010.
+# Luca Ferretti <lferrett@gnome.org>, 2009, 2010, 2011.
+#
msgid ""
msgstr ""
"Project-Id-Version: WebKitGtk\n"
-"Report-Msgid-Bugs-To: http://bugs.webkit.org/\n"
-"POT-Creation-Date: 2010-02-25 15:53-0300\n"
-"PO-Revision-Date: 2010-03-18 22:13+0100\n"
+"Report-Msgid-Bugs-To: http://bugs.webkit.org\n"
+"POT-Creation-Date: 2010-12-27 15:26+0000\n"
+"PO-Revision-Date: 2011-03-23 13:44+0100\n"
"Last-Translator: Luca Ferretti <lferrett@gnome.org>\n"
"Language-Team: Italian <tp@lists.linux.it>\n"
"MIME-Version: 1.0\n"
@@ -14,321 +15,564 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1)\n"
-#: WebKit/gtk/WebCoreSupport/ChromeClientGtk.cpp:535
+#: ../WebCoreSupport/ChromeClientGtk.cpp:589
msgid "Upload File"
msgstr "Carica file"
-#: WebKit/gtk/WebCoreSupport/ContextMenuClientGtk.cpp:61
-#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:143
+# merge da gtk
+#: ../WebCoreSupport/ContextMenuClientGtk.cpp:63
+#: ../../../WebCore/platform/gtk/LocalizedStringsGtk.cpp:194
msgid "Input _Methods"
msgstr "Met_odi di input"
# merge da gtk
-#: WebKit/gtk/WebCoreSupport/ContextMenuClientGtk.cpp:78
+#: ../WebCoreSupport/ContextMenuClientGtk.cpp:80
msgid "LRM _Left-to-right mark"
msgstr "LRM - Contrassegno _sinistra-destra"
# merge da gtk
-#: WebKit/gtk/WebCoreSupport/ContextMenuClientGtk.cpp:79
+#: ../WebCoreSupport/ContextMenuClientGtk.cpp:81
msgid "RLM _Right-to-left mark"
msgstr "RLM - Contrassegno _destra-sinistra"
# merge da gtk
-#: WebKit/gtk/WebCoreSupport/ContextMenuClientGtk.cpp:80
+#: ../WebCoreSupport/ContextMenuClientGtk.cpp:82
msgid "LRE Left-to-right _embedding"
msgstr "LRE - _Inserimento sinistra-destra"
# merge da gtk
-#: WebKit/gtk/WebCoreSupport/ContextMenuClientGtk.cpp:81
+#: ../WebCoreSupport/ContextMenuClientGtk.cpp:83
msgid "RLE Right-to-left e_mbedding"
msgstr "RLE - I_nserimento destra-sinistra"
# merge da gtk
-#: WebKit/gtk/WebCoreSupport/ContextMenuClientGtk.cpp:82
+#: ../WebCoreSupport/ContextMenuClientGtk.cpp:84
msgid "LRO Left-to-right _override"
msgstr "LRO - _Forza sinistra-destra"
# merge da gtk
-#: WebKit/gtk/WebCoreSupport/ContextMenuClientGtk.cpp:83
+#: ../WebCoreSupport/ContextMenuClientGtk.cpp:85
msgid "RLO Right-to-left o_verride"
msgstr "RLO - F_orza destra-sinistra"
# merge da gtk
-#: WebKit/gtk/WebCoreSupport/ContextMenuClientGtk.cpp:84
+#: ../WebCoreSupport/ContextMenuClientGtk.cpp:86
msgid "PDF _Pop directional formatting"
msgstr "PDF - Ca_ttura formattazione direzionale"
# merge da gtk
-#: WebKit/gtk/WebCoreSupport/ContextMenuClientGtk.cpp:85
+#: ../WebCoreSupport/ContextMenuClientGtk.cpp:87
msgid "ZWS _Zero width space"
msgstr "ZWS - Spa_zio a larghezza nulla"
# merge da gtk
-#: WebKit/gtk/WebCoreSupport/ContextMenuClientGtk.cpp:86
+#: ../WebCoreSupport/ContextMenuClientGtk.cpp:88
msgid "ZWJ Zero width _joiner"
msgstr "ZWJ - Spazio di _unione a larghezza nulla"
# merge da gtk
-#: WebKit/gtk/WebCoreSupport/ContextMenuClientGtk.cpp:87
+#: ../WebCoreSupport/ContextMenuClientGtk.cpp:89
msgid "ZWNJ Zero width _non-joiner"
msgstr "ZWNJ - Spazio non di unione a _larghezza nulla"
# merge da gtk
-#: WebKit/gtk/WebCoreSupport/ContextMenuClientGtk.cpp:109
-#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:138
+#: ../WebCoreSupport/ContextMenuClientGtk.cpp:111
+#: ../../../WebCore/platform/gtk/LocalizedStringsGtk.cpp:189
msgid "_Insert Unicode Control Character"
msgstr "Inserisci carattere di controllo _Unicode"
-#: WebKit/gtk/webkit/webkitdownload.cpp:266
+#: ../WebCoreSupport/FrameLoaderClientGtk.cpp:1180
+msgid "Load request cancelled"
+msgstr "Richiesta di caricamento annullata"
+
+# messo una perché, in base al codice, sono diverse porte.
+# Grazie a Daniele Forsi
+#: ../WebCoreSupport/FrameLoaderClientGtk.cpp:1186
+msgid "Not allowed to use restricted network port"
+msgstr "Non è concesso usare una porta di rete con restrizioni"
+
+#: ../WebCoreSupport/FrameLoaderClientGtk.cpp:1192
+msgid "URL cannot be shown"
+msgstr "Impossibile mostrare l'URL"
+
+#: ../WebCoreSupport/FrameLoaderClientGtk.cpp:1198
+msgid "Frame load was interrupted"
+msgstr "Il caricamento del frame è stato interrotto"
+
+#: ../WebCoreSupport/FrameLoaderClientGtk.cpp:1204
+msgid "Content with the specified MIME type cannot be shown"
+msgstr "Impossibile mostrare il contenuto con il tipo MIME specificato"
+
+#: ../WebCoreSupport/FrameLoaderClientGtk.cpp:1210
+msgid "File does not exist"
+msgstr "Il file non esiste"
+
+#: ../WebCoreSupport/FrameLoaderClientGtk.cpp:1216
+msgid "Plugin will handle load"
+msgstr "Il plugin gestirà il caricamento"
+
+#: ../WebCoreSupport/FullscreenVideoController.cpp:385
+msgid "Play"
+msgstr "Riproduci"
+
+#: ../WebCoreSupport/FullscreenVideoController.cpp:387
+msgid "Pause"
+msgstr "Pausa"
+
+#: ../WebCoreSupport/FullscreenVideoController.cpp:533
+msgid "Play / Pause"
+msgstr "Riproduci / Pausa"
+
+#: ../WebCoreSupport/FullscreenVideoController.cpp:533
+msgid "Play or pause the media"
+msgstr "Riproduce o mette in pausa il contenuto multimediale"
+
+#: ../WebCoreSupport/FullscreenVideoController.cpp:541
+msgid "Time:"
+msgstr "Tempo:"
+
+#: ../WebCoreSupport/FullscreenVideoController.cpp:565
+msgid "Exit Fullscreen"
+msgstr "Finestra normale"
+
+#: ../WebCoreSupport/FullscreenVideoController.cpp:565
+msgid "Exit from fullscreen mode"
+msgstr "Esce dalla modalità schermo intero"
+
+#: ../webkit/webkitdownload.cpp:273
msgid "Network Request"
msgstr "Richiesta di rete"
-#: WebKit/gtk/webkit/webkitdownload.cpp:267
+#: ../webkit/webkitdownload.cpp:274
msgid "The network request for the URI that should be downloaded"
msgstr "La richiesta di rete per l'URI che dovrebbe essere scaricato"
-#: WebKit/gtk/webkit/webkitdownload.cpp:281
+#: ../webkit/webkitdownload.cpp:288
msgid "Network Response"
msgstr "Risposta di rete"
-#: WebKit/gtk/webkit/webkitdownload.cpp:282
+#: ../webkit/webkitdownload.cpp:289
msgid "The network response for the URI that should be downloaded"
msgstr "La risposta di rete per l'URI che dovrebbe essere scaricato"
-#: WebKit/gtk/webkit/webkitdownload.cpp:296
+#: ../webkit/webkitdownload.cpp:303
msgid "Destination URI"
msgstr "URI di destinazione"
-#: WebKit/gtk/webkit/webkitdownload.cpp:297
+#: ../webkit/webkitdownload.cpp:304
msgid "The destination URI where to save the file"
msgstr "L'URI di destinazione in cui salvare il file"
-#: WebKit/gtk/webkit/webkitdownload.cpp:311
+#: ../webkit/webkitdownload.cpp:318
msgid "Suggested Filename"
msgstr "Nome file suggerito"
-#: WebKit/gtk/webkit/webkitdownload.cpp:312
+#: ../webkit/webkitdownload.cpp:319
msgid "The filename suggested as default when saving"
msgstr "Il nome di file suggerito come predefinito quando si salva"
-#: WebKit/gtk/webkit/webkitdownload.cpp:329
+#: ../webkit/webkitdownload.cpp:336
msgid "Progress"
msgstr "Avanzamento"
-#: WebKit/gtk/webkit/webkitdownload.cpp:330
+#: ../webkit/webkitdownload.cpp:337
msgid "Determines the current progress of the download"
msgstr "Determina l'avanzamento corrente dello scaricamento"
-#: WebKit/gtk/webkit/webkitdownload.cpp:343
+#: ../webkit/webkitdownload.cpp:350
msgid "Status"
msgstr "Stato"
-#: WebKit/gtk/webkit/webkitdownload.cpp:344
+#: ../webkit/webkitdownload.cpp:351
msgid "Determines the current status of the download"
msgstr "Determina lo stato corrente dello scaricamento"
-#: WebKit/gtk/webkit/webkitdownload.cpp:359
+#: ../webkit/webkitdownload.cpp:366
msgid "Current Size"
msgstr "Dimensione corrente"
-#: WebKit/gtk/webkit/webkitdownload.cpp:360
+#: ../webkit/webkitdownload.cpp:367
msgid "The length of the data already downloaded"
msgstr "La lunghezza dei dati già scaricati"
-#: WebKit/gtk/webkit/webkitdownload.cpp:374
+#: ../webkit/webkitdownload.cpp:381
msgid "Total Size"
msgstr "Dimensione totale"
-#: WebKit/gtk/webkit/webkitdownload.cpp:375
+#: ../webkit/webkitdownload.cpp:382
msgid "The total size of the file"
msgstr "La dimensione totale del file"
-#: WebKit/gtk/webkit/webkitdownload.cpp:526
+#: ../webkit/webkitdownload.cpp:534
msgid "User cancelled the download"
msgstr "L'utente ha annullato lo scaricamento"
-#: WebKit/gtk/webkit/webkitsoupauthdialog.c:248
+#: ../webkit/webkithittestresult.cpp:156
+msgid "Context"
+msgstr "Contesto"
+
+#: ../webkit/webkithittestresult.cpp:157
+msgid "Flags indicating the kind of target that received the event."
+msgstr "Flag che indicano il tipo di destinazione che ha ricevuto l'evento."
+
+#: ../webkit/webkithittestresult.cpp:171
+msgid "Link URI"
+msgstr "URI collegamento"
+
+#: ../webkit/webkithittestresult.cpp:172
+msgid "The URI to which the target that received the event points, if any."
+msgstr ""
+"L'URI a cui punta la destinazione che ha ricevuto l'evento, se presente."
+
+#: ../webkit/webkithittestresult.cpp:185
+msgid "Image URI"
+msgstr "URI immagine"
+
+#: ../webkit/webkithittestresult.cpp:186
+msgid ""
+"The URI of the image that is part of the target that received the event, if "
+"any."
+msgstr ""
+"L'URI dell'immagine che è parte della destinazione che ha ricevuto l'evento, "
+"se presente."
+
+#: ../webkit/webkithittestresult.cpp:199
+msgid "Media URI"
+msgstr "URI contenuto multimediale"
+
+#: ../webkit/webkithittestresult.cpp:200
+msgid ""
+"The URI of the media that is part of the target that received the event, if "
+"any."
+msgstr ""
+"L'URI del contenuto multimediale che è parte della destinazione che ha "
+"ricevuto l'evento, se presente."
+
+#: ../webkit/webkithittestresult.cpp:221
+msgid "Inner node"
+msgstr "Nodo interno"
+
+#: ../webkit/webkithittestresult.cpp:222
+msgid "The inner DOM node associated with the hit test result."
+msgstr "Il nodo DOM interno associato con il risultato dell'hit test."
+
+#: ../webkit/webkitnetworkrequest.cpp:134
+#: ../webkit/webkitnetworkresponse.cpp:134 ../webkit/webkitwebframe.cpp:323
+#: ../webkit/webkitwebhistoryitem.cpp:176 ../webkit/webkitwebresource.cpp:126
+#: ../webkit/webkitwebview.cpp:2997
+msgid "URI"
+msgstr "URI"
+
+#: ../webkit/webkitnetworkrequest.cpp:135
+msgid "The URI to which the request will be made."
+msgstr "L'URI a cui sarà fatta la richiesta."
+
+#: ../webkit/webkitnetworkrequest.cpp:148
+#: ../webkit/webkitnetworkresponse.cpp:148
+msgid "Message"
+msgstr "Messaggio"
+
+#: ../webkit/webkitnetworkrequest.cpp:149
+msgid "The SoupMessage that backs the request."
+msgstr "Il SoupMessage che accompagna la richesta."
+
+#: ../webkit/webkitnetworkresponse.cpp:135
+msgid "The URI to which the response will be made."
+msgstr "L'URI a cui verrà data la risposta."
+
+#: ../webkit/webkitnetworkresponse.cpp:149
+msgid "The SoupMessage that backs the response."
+msgstr "Il SoupMessage che accompagna la risposta."
+
+#: ../webkit/webkitsecurityorigin.cpp:150
+msgid "Protocol"
+msgstr "Protocollo"
+
+# origine di sicurezza??????
+#: ../webkit/webkitsecurityorigin.cpp:151
+msgid "The protocol of the security origin"
+msgstr "Il protocollo dell'origine della sicurezza"
+
+#: ../webkit/webkitsecurityorigin.cpp:164
+msgid "Host"
+msgstr "Host"
+
+#: ../webkit/webkitsecurityorigin.cpp:165
+msgid "The host of the security origin"
+msgstr "L'host dell'origine della sicurezza"
+
+#: ../webkit/webkitsecurityorigin.cpp:178
+msgid "Port"
+msgstr "Porta"
+
+#: ../webkit/webkitsecurityorigin.cpp:179
+msgid "The port of the security origin"
+msgstr "La porta dell'origine della sicurezza"
+
+#: ../webkit/webkitsecurityorigin.cpp:192
+msgid "Web Database Usage"
+msgstr "Uso database web"
+
+#: ../webkit/webkitsecurityorigin.cpp:193
+msgid "The cumulative size of all web databases in the security origin"
+msgstr ""
+"La dimensione cumulativa di tutti i database web nell'origine della sicurezza"
+
+#: ../webkit/webkitsecurityorigin.cpp:205
+msgid "Web Database Quota"
+msgstr "Quota database web"
+
+#: ../webkit/webkitsecurityorigin.cpp:206
+msgid "The web database quota of the security origin in bytes"
+msgstr "La quota di database web dell'origine della sicurezza in byte"
+
+#: ../webkit/webkitsoupauthdialog.c:264
#, c-format
msgid "A username and password are being requested by the site %s"
msgstr "Il sito %s richiede un nome utente e una password"
-#: WebKit/gtk/webkit/webkitsoupauthdialog.c:278
+#: ../webkit/webkitsoupauthdialog.c:294
msgid "Server message:"
msgstr "Messaggio del server:"
-#: WebKit/gtk/webkit/webkitsoupauthdialog.c:291
+#: ../webkit/webkitsoupauthdialog.c:307
msgid "Username:"
msgstr "Nome utente:"
-#: WebKit/gtk/webkit/webkitsoupauthdialog.c:293
+#: ../webkit/webkitsoupauthdialog.c:309
msgid "Password:"
msgstr "Password:"
# checkbox
-#: WebKit/gtk/webkit/webkitsoupauthdialog.c:302
+#: ../webkit/webkitsoupauthdialog.c:318
msgid "_Remember password"
msgstr "_Ricordare la password"
-#: WebKit/gtk/webkit/webkitwebframe.cpp:298
+#: ../webkit/webkitwebdatabase.cpp:173
+msgid "Security Origin"
+msgstr "Origine della sicurezza"
+
+#: ../webkit/webkitwebdatabase.cpp:174
+msgid "The security origin of the database"
+msgstr "L'origine della sicurezza del database"
+
+#: ../webkit/webkitwebdatabase.cpp:187 ../webkit/webkitwebframe.cpp:309
msgid "Name"
msgstr "Nome"
-#: WebKit/gtk/webkit/webkitwebframe.cpp:299
+#: ../webkit/webkitwebdatabase.cpp:188
+msgid "The name of the Web Database database"
+msgstr "Il nome del database Web Database"
+
+#: ../webkit/webkitwebdatabase.cpp:201
+msgid "Display Name"
+msgstr "Nome visibile"
+
+#: ../webkit/webkitwebdatabase.cpp:202
+msgid "The display name of the Web Storage database"
+msgstr "Il nome visibile del database Web Storage"
+
+#: ../webkit/webkitwebdatabase.cpp:215
+msgid "Expected Size"
+msgstr "Dimensione attesa"
+
+#: ../webkit/webkitwebdatabase.cpp:216
+msgid "The expected size of the Web Database database"
+msgstr "La dimensione attesa del database Web Database"
+
+#: ../webkit/webkitwebdatabase.cpp:228
+msgid "Size"
+msgstr "Dimensione"
+
+#: ../webkit/webkitwebdatabase.cpp:229
+msgid "The current size of the Web Database database"
+msgstr "La dimensione attuale del database Web Database"
+
+#: ../webkit/webkitwebdatabase.cpp:241
+msgid "Filename"
+msgstr "Nome file"
+
+#: ../webkit/webkitwebdatabase.cpp:242
+msgid "The absolute filename of the Web Storage database"
+msgstr "Il nome file assoluto del database Web Storage"
+
+#: ../webkit/webkitwebframe.cpp:310
msgid "The name of the frame"
-msgstr "Il nome della cornice"
+msgstr "Il nome del frame"
-#: WebKit/gtk/webkit/webkitwebframe.cpp:305
-#: WebKit/gtk/webkit/webkitwebhistoryitem.cpp:146
-#: WebKit/gtk/webkit/webkitwebview.cpp:2318
+#: ../webkit/webkitwebframe.cpp:316 ../webkit/webkitwebhistoryitem.cpp:144
+#: ../webkit/webkitwebview.cpp:2983
msgid "Title"
msgstr "Titolo"
-#: WebKit/gtk/webkit/webkitwebframe.cpp:306
+#: ../webkit/webkitwebframe.cpp:317
msgid "The document title of the frame"
-msgstr "Il titolo del documento nella cornice"
-
-#: WebKit/gtk/webkit/webkitwebframe.cpp:312
-#: WebKit/gtk/webkit/webkitwebhistoryitem.cpp:178
-#: WebKit/gtk/webkit/webkitwebview.cpp:2332
-msgid "URI"
-msgstr "URI"
+msgstr "Il titolo del documento nel frame"
-#: WebKit/gtk/webkit/webkitwebframe.cpp:313
+#: ../webkit/webkitwebframe.cpp:324
msgid "The current URI of the contents displayed by the frame"
-msgstr "L'URI corrente del contenuto mostrato dalla cornice"
+msgstr "L'URI corrente del contenuto mostrato dal frame"
-#: WebKit/gtk/webkit/webkitwebframe.cpp:344
+#: ../webkit/webkitwebframe.cpp:355
msgid "Horizontal Scrollbar Policy"
msgstr "Politica barra scorrimento orizzontale"
-#: WebKit/gtk/webkit/webkitwebframe.cpp:345
+#: ../webkit/webkitwebframe.cpp:356
msgid ""
"Determines the current policy for the horizontal scrollbar of the frame."
msgstr ""
-"Determina la politica attuale per la barra di scorrimento orizzontale della "
-"cornice."
+"Determina la politica attuale per la barra di scorrimento orizzontale del "
+"frame."
-#: WebKit/gtk/webkit/webkitwebframe.cpp:362
+#: ../webkit/webkitwebframe.cpp:373
msgid "Vertical Scrollbar Policy"
msgstr "Politica barra scorrimento verticale"
-#: WebKit/gtk/webkit/webkitwebframe.cpp:363
+#: ../webkit/webkitwebframe.cpp:374
msgid "Determines the current policy for the vertical scrollbar of the frame."
msgstr ""
"Determina la politica attuale per la barra di scorrimento verticale del "
-"cornice."
+"frame."
-#: WebKit/gtk/webkit/webkitwebhistoryitem.cpp:147
+#: ../webkit/webkitwebhistoryitem.cpp:145
msgid "The title of the history item"
msgstr "Il titolo dell'elemento di cronologia"
-#: WebKit/gtk/webkit/webkitwebhistoryitem.cpp:162
+#: ../webkit/webkitwebhistoryitem.cpp:160
msgid "Alternate Title"
msgstr "Titolo alternativo"
-#: WebKit/gtk/webkit/webkitwebhistoryitem.cpp:163
+#: ../webkit/webkitwebhistoryitem.cpp:161
msgid "The alternate title of the history item"
msgstr "Il titolo alternativo dell'elemento di cronologia"
-#: WebKit/gtk/webkit/webkitwebhistoryitem.cpp:179
+#: ../webkit/webkitwebhistoryitem.cpp:177
msgid "The URI of the history item"
msgstr "L'URI dell'elemento di cronologia"
-#: WebKit/gtk/webkit/webkitwebhistoryitem.cpp:194
-#: WebKit/gtk/webkit/webkitwebnavigationaction.cpp:173
+#: ../webkit/webkitwebhistoryitem.cpp:192
+#: ../webkit/webkitwebnavigationaction.cpp:171
msgid "Original URI"
msgstr "URI originale"
-#: WebKit/gtk/webkit/webkitwebhistoryitem.cpp:195
+#: ../webkit/webkitwebhistoryitem.cpp:193
msgid "The original URI of the history item"
msgstr "L'URI originale dell'elemento di cronologia"
-#: WebKit/gtk/webkit/webkitwebhistoryitem.cpp:210
+#: ../webkit/webkitwebhistoryitem.cpp:208
msgid "Last visited Time"
msgstr "Data ultima visita"
-#: WebKit/gtk/webkit/webkitwebhistoryitem.cpp:211
+#: ../webkit/webkitwebhistoryitem.cpp:209
msgid "The time at which the history item was last visited"
msgstr ""
"La data in cui l'elemento di cronologia è stato visitato l'ultima volta"
# lasciato non tradotto perchè termine interno di WebKitGtk
# cfr http://webkitgtk.org/reference/webkitgtk-WebKitWebInspector.html#WebKitWebInspector--web-view
-#: WebKit/gtk/webkit/webkitwebinspector.cpp:268
+#: ../webkit/webkitwebinspector.cpp:270
msgid "Web View"
-msgstr "Web View"
+msgstr "Web view"
-#: WebKit/gtk/webkit/webkitwebinspector.cpp:269
+#: ../webkit/webkitwebinspector.cpp:271
msgid "The Web View that renders the Web Inspector itself"
-msgstr "La Web View che esegue il rendering dell'Ispettore web stesso"
+msgstr "La Web view che esegue il rendering dell'Ispettore web stesso"
-#: WebKit/gtk/webkit/webkitwebinspector.cpp:282
+#: ../webkit/webkitwebinspector.cpp:284
msgid "Inspected URI"
msgstr "URI ispezionato"
-#: WebKit/gtk/webkit/webkitwebinspector.cpp:283
+#: ../webkit/webkitwebinspector.cpp:285
msgid "The URI that is currently being inspected"
msgstr "L'URI che attualmente è ispezionato"
-#: WebKit/gtk/webkit/webkitwebinspector.cpp:299
+#: ../webkit/webkitwebinspector.cpp:301
msgid "Enable JavaScript profiling"
msgstr "Abilita profiling JavaScript"
# FIXME
# oppure Esegue il profiling?
-#: WebKit/gtk/webkit/webkitwebinspector.cpp:300
+#: ../webkit/webkitwebinspector.cpp:302
msgid "Profile the executed JavaScript."
msgstr "Traccia un profilo del codice JavaScript eseguito."
-#: WebKit/gtk/webkit/webkitwebinspector.cpp:315
+#: ../webkit/webkitwebinspector.cpp:317
msgid "Enable Timeline profiling"
msgstr "Abilita profiling Timeline"
-#: WebKit/gtk/webkit/webkitwebinspector.cpp:316
+#: ../webkit/webkitwebinspector.cpp:318
msgid "Profile the WebCore instrumentation."
msgstr "Traccia un profilo della strumentazione WebCore."
-#: WebKit/gtk/webkit/webkitwebnavigationaction.cpp:158
+#: ../webkit/webkitwebnavigationaction.cpp:156
msgid "Reason"
msgstr "Motivo"
-#: WebKit/gtk/webkit/webkitwebnavigationaction.cpp:159
+#: ../webkit/webkitwebnavigationaction.cpp:157
msgid "The reason why this navigation is occurring"
msgstr "Il motivo per cui questa navigazione si sta verificando"
-#: WebKit/gtk/webkit/webkitwebnavigationaction.cpp:174
+#: ../webkit/webkitwebnavigationaction.cpp:172
msgid "The URI that was requested as the target for the navigation"
-msgstr "L'URI che è stata richiesta come destinazione della navigazione"
+msgstr "L'URI che è stato richiesto come destinazione della navigazione"
-#: WebKit/gtk/webkit/webkitwebnavigationaction.cpp:188
+#: ../webkit/webkitwebnavigationaction.cpp:186
msgid "Button"
msgstr "Pulsante"
-#: WebKit/gtk/webkit/webkitwebnavigationaction.cpp:189
+#: ../webkit/webkitwebnavigationaction.cpp:187
msgid "The button used to click"
msgstr "Il pulsante usato per fare clic"
-#: WebKit/gtk/webkit/webkitwebnavigationaction.cpp:204
+#: ../webkit/webkitwebnavigationaction.cpp:202
msgid "Modifier state"
msgstr "Stato modificatori"
-#: WebKit/gtk/webkit/webkitwebnavigationaction.cpp:205
+#: ../webkit/webkitwebnavigationaction.cpp:203
msgid "A bitmask representing the state of the modifier keys"
msgstr "Una maschera di bit che rappresenta lo stato dei tasti modificatori"
-#: WebKit/gtk/webkit/webkitwebnavigationaction.cpp:220
+#: ../webkit/webkitwebnavigationaction.cpp:218
msgid "Target frame"
-msgstr "Cornice destinazione"
+msgstr "Frame destinazione"
-#: WebKit/gtk/webkit/webkitwebnavigationaction.cpp:221
+#: ../webkit/webkitwebnavigationaction.cpp:219
msgid "The target frame for the navigation"
-msgstr "La cornice di destinazione per la navigazione"
+msgstr "Il frame di destinazione per la navigazione"
-#: WebKit/gtk/webkit/webkitwebsettings.cpp:237
+#: ../webkit/webkitwebresource.cpp:127
+msgid "The uri of the resource"
+msgstr "L'URI della risorsa"
+
+#: ../webkit/webkitwebresource.cpp:141
+msgid "MIME Type"
+msgstr "Tipo MIME"
+
+#: ../webkit/webkitwebresource.cpp:142
+msgid "The MIME type of the resource"
+msgstr "Il tipo MIME della risorsa"
+
+#: ../webkit/webkitwebresource.cpp:156 ../webkit/webkitwebview.cpp:3132
+msgid "Encoding"
+msgstr "Codifica"
+
+#: ../webkit/webkitwebresource.cpp:157
+msgid "The text encoding name of the resource"
+msgstr "Il nome di codifica del testo della risorsa"
+
+#: ../webkit/webkitwebresource.cpp:172
+msgid "Frame Name"
+msgstr "Nome frame"
+
+#: ../webkit/webkitwebresource.cpp:173
+msgid "The frame name of the resource"
+msgstr "Il nome frame della risorsa"
+
+#: ../webkit/webkitwebsettings.cpp:252
msgid "Default Encoding"
msgstr "Codifica predefinita"
-#: WebKit/gtk/webkit/webkitwebsettings.cpp:238
+#: ../webkit/webkitwebsettings.cpp:253
msgid "The default encoding used to display text."
msgstr "La codifica predefinita usata per mostrare il testo."
@@ -337,90 +581,90 @@ msgstr "La codifica predefinita usata per mostrare il testo."
# * nella "breve" si lascia la forma inglese (es. sans serif) nella lunga
# si mette la forma italiana (es. senza grazie)
# Ciò per mantenere corte le "brevi" e per permettere che entrambe le diciture siano presenti
-#: WebKit/gtk/webkit/webkitwebsettings.cpp:246
+#: ../webkit/webkitwebsettings.cpp:261
msgid "Cursive Font Family"
msgstr "Famiglia carattere corsivo"
-#: WebKit/gtk/webkit/webkitwebsettings.cpp:247
+#: ../webkit/webkitwebsettings.cpp:262
msgid "The default Cursive font family used to display text."
msgstr ""
"La famiglia del tipo di carattere \"corsivo\" predefinito usata per mostrare "
"il testo."
-#: WebKit/gtk/webkit/webkitwebsettings.cpp:255
+#: ../webkit/webkitwebsettings.cpp:270
msgid "Default Font Family"
msgstr "Famiglia carattere predefinita"
-#: WebKit/gtk/webkit/webkitwebsettings.cpp:256
+#: ../webkit/webkitwebsettings.cpp:271
msgid "The default font family used to display text."
msgstr ""
"La famiglia del tipo di carattere predefinito usata per mostrare il testo."
-#: WebKit/gtk/webkit/webkitwebsettings.cpp:264
+#: ../webkit/webkitwebsettings.cpp:279
msgid "Fantasy Font Family"
msgstr "Famiglia carattere fantasia"
-#: WebKit/gtk/webkit/webkitwebsettings.cpp:265
+#: ../webkit/webkitwebsettings.cpp:280
msgid "The default Fantasy font family used to display text."
msgstr ""
"La famiglia del tipo di carattere \"fantasia\" predefinito usata per "
"mostrare il testo."
-#: WebKit/gtk/webkit/webkitwebsettings.cpp:273
+#: ../webkit/webkitwebsettings.cpp:288
msgid "Monospace Font Family"
msgstr "Famiglia carattere monospace"
-#: WebKit/gtk/webkit/webkitwebsettings.cpp:274
+#: ../webkit/webkitwebsettings.cpp:289
msgid "The default font family used to display monospace text."
msgstr ""
"La famiglia del tipo di carattere predefinito usata per mostrare il testo a "
"spaziatura fissa."
-#: WebKit/gtk/webkit/webkitwebsettings.cpp:282
+#: ../webkit/webkitwebsettings.cpp:297
msgid "Sans Serif Font Family"
msgstr "Famiglia carattere sans serif"
-#: WebKit/gtk/webkit/webkitwebsettings.cpp:283
+#: ../webkit/webkitwebsettings.cpp:298
msgid "The default Sans Serif font family used to display text."
msgstr ""
"La famiglia del tipo di carattere \"senza grazie\" predefinito usata per "
"mostrare il testo."
-#: WebKit/gtk/webkit/webkitwebsettings.cpp:291
+#: ../webkit/webkitwebsettings.cpp:306
msgid "Serif Font Family"
msgstr "Famiglia carattere serif"
-#: WebKit/gtk/webkit/webkitwebsettings.cpp:292
+#: ../webkit/webkitwebsettings.cpp:307
msgid "The default Serif font family used to display text."
msgstr ""
"La famiglia del tipo di carattere \"con grazie\" predefinito usata per "
"mostrare il testo."
-#: WebKit/gtk/webkit/webkitwebsettings.cpp:300
+#: ../webkit/webkitwebsettings.cpp:315
msgid "Default Font Size"
msgstr "Dimensione predefinita carattere"
-#: WebKit/gtk/webkit/webkitwebsettings.cpp:301
+#: ../webkit/webkitwebsettings.cpp:316
msgid "The default font size used to display text."
msgstr ""
"La dimensione predefinita per il tipo di carattere usato per mostrare il "
"testo."
-#: WebKit/gtk/webkit/webkitwebsettings.cpp:309
+#: ../webkit/webkitwebsettings.cpp:324
msgid "Default Monospace Font Size"
msgstr "Dimensione predefinita carattere monospace"
-#: WebKit/gtk/webkit/webkitwebsettings.cpp:310
+#: ../webkit/webkitwebsettings.cpp:325
msgid "The default font size used to display monospace text."
msgstr ""
"La dimensione predefinita per il tipo di carattere usato per mostrare il "
"testo a larghezza fissa."
-#: WebKit/gtk/webkit/webkitwebsettings.cpp:318
+#: ../webkit/webkitwebsettings.cpp:333
msgid "Minimum Font Size"
msgstr "Dimensione minima carattere"
-#: WebKit/gtk/webkit/webkitwebsettings.cpp:319
+#: ../webkit/webkitwebsettings.cpp:334
msgid "The minimum font size used to display text."
msgstr ""
"La dimensione minima per il tipo di carattere usato per mostrare il testo."
@@ -437,221 +681,245 @@ msgstr ""
# size alone. This will assure that your content will never display at sizes less than 12 points,
# but the functional font size boundary of the web view will remain at 9 points to prevent any
# chance of displaying unnecessarily small text.
-#: WebKit/gtk/webkit/webkitwebsettings.cpp:327
+#: ../webkit/webkitwebsettings.cpp:342
msgid "Minimum Logical Font Size"
msgstr "Dimensione minima naturale carattere"
-#: WebKit/gtk/webkit/webkitwebsettings.cpp:328
+#: ../webkit/webkitwebsettings.cpp:343
msgid "The minimum logical font size used to display text."
msgstr ""
"La dimensione minima naturale per il tipo di carattere usato per mostrare il "
"testo."
-#: WebKit/gtk/webkit/webkitwebsettings.cpp:347
+#: ../webkit/webkitwebsettings.cpp:362
msgid "Enforce 96 DPI"
msgstr "Forza 96 DPI"
-#: WebKit/gtk/webkit/webkitwebsettings.cpp:348
+#: ../webkit/webkitwebsettings.cpp:363
msgid "Enforce a resolution of 96 DPI"
msgstr "Forza la risoluzione a 96 DPI"
-#: WebKit/gtk/webkit/webkitwebsettings.cpp:356
+#: ../webkit/webkitwebsettings.cpp:371
msgid "Auto Load Images"
msgstr "Caricamento automatico immagini"
-#: WebKit/gtk/webkit/webkitwebsettings.cpp:357
+#: ../webkit/webkitwebsettings.cpp:372
msgid "Load images automatically."
msgstr "Carica le immagini in modo automatico."
-#: WebKit/gtk/webkit/webkitwebsettings.cpp:365
+#: ../webkit/webkitwebsettings.cpp:380
msgid "Auto Shrink Images"
msgstr "Restringimento automatico immagini"
# assolutamente libertario
-#: WebKit/gtk/webkit/webkitwebsettings.cpp:366
+#: ../webkit/webkitwebsettings.cpp:381
msgid "Automatically shrink standalone images to fit."
msgstr "Restringe automaticamente le immagini singole alla dimensione adatta."
-#: WebKit/gtk/webkit/webkitwebsettings.cpp:374
+#: ../webkit/webkitwebsettings.cpp:389
msgid "Print Backgrounds"
msgstr "Stampa sfondi"
-#: WebKit/gtk/webkit/webkitwebsettings.cpp:375
+#: ../webkit/webkitwebsettings.cpp:390
msgid "Whether background images should be printed."
msgstr "Indica se le immagini di sfondo devono essere stampate."
-#: WebKit/gtk/webkit/webkitwebsettings.cpp:383
+#: ../webkit/webkitwebsettings.cpp:398
msgid "Enable Scripts"
msgstr "Abilita script"
-#: WebKit/gtk/webkit/webkitwebsettings.cpp:384
+#: ../webkit/webkitwebsettings.cpp:399
msgid "Enable embedded scripting languages."
msgstr "Abilita i linguaggi di scripting incorporati."
-#: WebKit/gtk/webkit/webkitwebsettings.cpp:392
+#: ../webkit/webkitwebsettings.cpp:407
msgid "Enable Plugins"
msgstr "Abilita plugin"
-#: WebKit/gtk/webkit/webkitwebsettings.cpp:393
+#: ../webkit/webkitwebsettings.cpp:408
msgid "Enable embedded plugin objects."
msgstr "Abilita gli oggetti plugin incorporati."
-#: WebKit/gtk/webkit/webkitwebsettings.cpp:401
+#: ../webkit/webkitwebsettings.cpp:416
msgid "Resizable Text Areas"
msgstr "Aree testo ridimensionabili"
-#: WebKit/gtk/webkit/webkitwebsettings.cpp:402
+#: ../webkit/webkitwebsettings.cpp:417
msgid "Whether text areas are resizable."
msgstr "Indica se le aree di testo sono ridimensionabili."
-#: WebKit/gtk/webkit/webkitwebsettings.cpp:409
+#: ../webkit/webkitwebsettings.cpp:424
msgid "User Stylesheet URI"
msgstr "URI foglio stile utente"
-#: WebKit/gtk/webkit/webkitwebsettings.cpp:410
+#: ../webkit/webkitwebsettings.cpp:425
msgid "The URI of a stylesheet that is applied to every page."
msgstr "L'URI di un foglio di stile che è applicato a ogni pagina."
-#: WebKit/gtk/webkit/webkitwebsettings.cpp:425
+#: ../webkit/webkitwebsettings.cpp:440
msgid "Zoom Stepping Value"
msgstr "Valore passo ingrandimento"
-#: WebKit/gtk/webkit/webkitwebsettings.cpp:426
+#: ../webkit/webkitwebsettings.cpp:441
msgid "The value by which the zoom level is changed when zooming in or out."
msgstr ""
"Il valore di variazione del livello di ingrandimento quando si aumenta o "
"riduce l'ingrandimento."
-#: WebKit/gtk/webkit/webkitwebsettings.cpp:444
+#: ../webkit/webkitwebsettings.cpp:459
msgid "Enable Developer Extras"
msgstr "Abilita extra per sviluppatori"
-#: WebKit/gtk/webkit/webkitwebsettings.cpp:445
+#: ../webkit/webkitwebsettings.cpp:460
msgid "Enables special extensions that help developers"
msgstr "Abilita estensioni speciali che sono d'aiuto per gli sviluppatori"
-#: WebKit/gtk/webkit/webkitwebsettings.cpp:465
+#: ../webkit/webkitwebsettings.cpp:480
msgid "Enable Private Browsing"
msgstr "Abilita navigazione privata"
-#: WebKit/gtk/webkit/webkitwebsettings.cpp:466
+#: ../webkit/webkitwebsettings.cpp:481
msgid "Enables private browsing mode"
msgstr "Abilita la modalità di navigazione privata"
-#: WebKit/gtk/webkit/webkitwebsettings.cpp:481
+#: ../webkit/webkitwebsettings.cpp:496
msgid "Enable Spell Checking"
msgstr "Abilita controllo ortografico"
-#: WebKit/gtk/webkit/webkitwebsettings.cpp:482
+#: ../webkit/webkitwebsettings.cpp:497
msgid "Enables spell checking while typing"
msgstr "Abilita il controllo ortografico durante la digitazione"
-#: WebKit/gtk/webkit/webkitwebsettings.cpp:505
+#: ../webkit/webkitwebsettings.cpp:520
msgid "Languages to use for spell checking"
msgstr "Lingue da usare per controllo ortografico"
-#: WebKit/gtk/webkit/webkitwebsettings.cpp:506
+#: ../webkit/webkitwebsettings.cpp:521
msgid "Comma separated list of languages to use for spell checking"
msgstr ""
"Elenco separato da virgole delle lingue da usare per il controllo ortografico"
-#: WebKit/gtk/webkit/webkitwebsettings.cpp:520
+#: ../webkit/webkitwebsettings.cpp:535
msgid "Enable Caret Browsing"
msgstr "Abilita navigazione con cursore"
-#: WebKit/gtk/webkit/webkitwebsettings.cpp:521
-msgid "Whether to enable accessibility enhanced keyboard navigation"
+#: ../webkit/webkitwebsettings.cpp:536
+msgid "Whether to enable accesibility enhanced keyboard navigation"
msgstr ""
"Indica se abilitare la navigazione da tastiera ottimizzata per "
"l'accessibilità"
-#: WebKit/gtk/webkit/webkitwebsettings.cpp:536
+#: ../webkit/webkitwebsettings.cpp:551
msgid "Enable HTML5 Database"
-msgstr "Abilita Database HTML5"
+msgstr "Abilita database HTML5"
-#: WebKit/gtk/webkit/webkitwebsettings.cpp:537
+#: ../webkit/webkitwebsettings.cpp:552
msgid "Whether to enable HTML5 database support"
msgstr "Indica se abilitare il supporto ai database di HTML5"
-#: WebKit/gtk/webkit/webkitwebsettings.cpp:552
+#: ../webkit/webkitwebsettings.cpp:567
msgid "Enable HTML5 Local Storage"
-msgstr "Abilita Local Storage HTML5"
+msgstr "Abilita local storage HTML5"
-#: WebKit/gtk/webkit/webkitwebsettings.cpp:553
+#: ../webkit/webkitwebsettings.cpp:568
msgid "Whether to enable HTML5 Local Storage support"
msgstr "Indica se abilitare il supporto a local storage di HTML5"
-#: WebKit/gtk/webkit/webkitwebsettings.cpp:567
+#: ../webkit/webkitwebsettings.cpp:582
msgid "Enable XSS Auditor"
msgstr "Abilita auditor XSS"
-#: WebKit/gtk/webkit/webkitwebsettings.cpp:568
-msgid "Whether to enable teh XSS auditor"
+#: ../webkit/webkitwebsettings.cpp:583
+msgid "Whether to enable the XSS auditor"
msgstr "Indica se abilitare l'auditor XSS"
-#: WebKit/gtk/webkit/webkitwebsettings.cpp:586
+#: ../webkit/webkitwebsettings.cpp:601
+msgid "Enable Spatial Navigation"
+msgstr "Abilita navigazione spaziale"
+
+#: ../webkit/webkitwebsettings.cpp:602
+msgid "Whether to enable Spatial Navigation"
+msgstr "Indica se abilitare la navigazione spaziale"
+
+#: ../webkit/webkitwebsettings.cpp:620
+msgid "Enable Frame Flattening"
+msgstr "Abilita appiattimento frame"
+
+#: ../webkit/webkitwebsettings.cpp:621
+msgid "Whether to enable Frame Flattening"
+msgstr "Indica se abilitare l'appiattimento dei frame"
+
+#: ../webkit/webkitwebsettings.cpp:638
msgid "User Agent"
-msgstr "User Agent"
+msgstr "User agent"
-#: WebKit/gtk/webkit/webkitwebsettings.cpp:587
+#: ../webkit/webkitwebsettings.cpp:639
msgid "The User-Agent string used by WebKitGtk"
msgstr "La stringa User-Agent usata da WebKitGtk"
-#: WebKit/gtk/webkit/webkitwebsettings.cpp:602
+#: ../webkit/webkitwebsettings.cpp:654
msgid "JavaScript can open windows automatically"
-msgstr "JavaScript può aprire automatamente le fineste"
+msgstr "JavaScript può aprire automaticamente le finestre"
-#: WebKit/gtk/webkit/webkitwebsettings.cpp:603
+#: ../webkit/webkitwebsettings.cpp:655
msgid "Whether JavaScript can open windows automatically"
-msgstr "Indica se JavaScript può aprire automatamente le fineste"
+msgstr "Indica se JavaScript può aprire automaticamente le finestre"
-#: WebKit/gtk/webkit/webkitwebsettings.cpp:618
+#: ../webkit/webkitwebsettings.cpp:669
+msgid "JavaScript can access Clipboard"
+msgstr "JavaScript può accedere agli appunti"
+
+#: ../webkit/webkitwebsettings.cpp:670
+msgid "Whether JavaScript can access Clipboard"
+msgstr "Indica se JavaScript può accedere agli appunti"
+
+#: ../webkit/webkitwebsettings.cpp:686
msgid "Enable offline web application cache"
msgstr "Abilita cache per applicazioni web fuori rete"
-#: WebKit/gtk/webkit/webkitwebsettings.cpp:619
+#: ../webkit/webkitwebsettings.cpp:687
msgid "Whether to enable offline web application cache"
msgstr "Indica se abilitare la cache per le applicazioni web fuori rete"
-#: WebKit/gtk/webkit/webkitwebsettings.cpp:646
+#: ../webkit/webkitwebsettings.cpp:715
msgid "Editing behavior"
msgstr "Comportamento editing"
-#: WebKit/gtk/webkit/webkitwebsettings.cpp:647
+#: ../webkit/webkitwebsettings.cpp:716
msgid "The behavior mode to use in editing mode"
msgstr "La modalità di comportamento da usare in modalità editing"
-#: WebKit/gtk/webkit/webkitwebsettings.cpp:663
+#: ../webkit/webkitwebsettings.cpp:732
msgid "Enable universal access from file URIs"
-msgstr "Abilita accesso univesale dagli URI di file"
+msgstr "Abilita accesso universale dagli URI di file"
-#: WebKit/gtk/webkit/webkitwebsettings.cpp:664
+#: ../webkit/webkitwebsettings.cpp:733
msgid "Whether to allow universal access from file URIs"
-msgstr "Indica se abilitare l'accesso univesale dagli URI di file"
+msgstr "Indica se abilitare l'accesso universale dagli URI di file"
-#: WebKit/gtk/webkit/webkitwebsettings.cpp:679
+#: ../webkit/webkitwebsettings.cpp:748
msgid "Enable DOM paste"
msgstr "Abilita DOM pasting"
-#: WebKit/gtk/webkit/webkitwebsettings.cpp:680
+#: ../webkit/webkitwebsettings.cpp:749
msgid "Whether to enable DOM paste"
msgstr "Indica se abilitare il DOM pasting"
-#: WebKit/gtk/webkit/webkitwebsettings.cpp:698
+#: ../webkit/webkitwebsettings.cpp:767
msgid "Tab key cycles through elements"
msgstr "Tasto TAB per passare tra gli elementi"
-#: WebKit/gtk/webkit/webkitwebsettings.cpp:699
+#: ../webkit/webkitwebsettings.cpp:768
msgid "Whether the tab key cycles through elements on the page."
msgstr ""
"Indica se il tasto TAB permette di passare ciclicamente tra gli elementi "
"della pagina."
-#: WebKit/gtk/webkit/webkitwebsettings.cpp:719
+#: ../webkit/webkitwebsettings.cpp:788
msgid "Enable Default Context Menu"
msgstr "Abilita menù contestuale predefinito"
-#: WebKit/gtk/webkit/webkitwebsettings.cpp:720
+#: ../webkit/webkitwebsettings.cpp:789
msgid ""
"Enables the handling of right-clicks for the creation of the default context "
"menu"
@@ -659,251 +927,311 @@ msgstr ""
"Abilita la gestione dei clic destri per la creazione del menù contestuale "
"predefinito"
-#: WebKit/gtk/webkit/webkitwebsettings.cpp:740
+#: ../webkit/webkitwebsettings.cpp:809
msgid "Enable Site Specific Quirks"
msgstr "Abilita scappatoie specifiche per siti"
-#: WebKit/gtk/webkit/webkitwebsettings.cpp:741
+#: ../webkit/webkitwebsettings.cpp:810
msgid "Enables the site-specific compatibility workarounds"
msgstr ""
"Abilita delle correzioni di compatibilità specifiche per determinati siti"
-#: WebKit/gtk/webkit/webkitwebsettings.cpp:763
+#: ../webkit/webkitwebsettings.cpp:832
msgid "Enable page cache"
msgstr "Abilita la cache di pagina"
-#: WebKit/gtk/webkit/webkitwebsettings.cpp:764
+#: ../webkit/webkitwebsettings.cpp:833
msgid "Whether the page cache should be used"
msgstr "Indica se usare la cache delle pagine"
-#: WebKit/gtk/webkit/webkitwebsettings.cpp:784
+#: ../webkit/webkitwebsettings.cpp:853
msgid "Auto Resize Window"
msgstr "Ridimensionamento automatico finestra"
-#: WebKit/gtk/webkit/webkitwebsettings.cpp:785
+#: ../webkit/webkitwebsettings.cpp:854
msgid "Automatically resize the toplevel window when a page requests it"
msgstr ""
"Ridimensiona automaticamente la finestra di livello principale quando "
"richiesto da una pagina"
-#: WebKit/gtk/webkit/webkitwebsettings.cpp:817
+#: ../webkit/webkitwebsettings.cpp:886
msgid "Enable Java Applet"
msgstr "Abilita applet Java"
-#: WebKit/gtk/webkit/webkitwebsettings.cpp:818
+#: ../webkit/webkitwebsettings.cpp:887
msgid "Whether Java Applet support through <applet> should be enabled"
msgstr "Indica se abilitare il supporto alle applet Java attraverso <applet>"
-#: WebKit/gtk/webkit/webkitwebview.cpp:2319
+#: ../webkit/webkitwebsettings.cpp:901
+msgid "Enable Hyperlink Auditing"
+msgstr "Abilita auditing hyperlink"
+
+#: ../webkit/webkitwebsettings.cpp:902
+msgid "Whether <a ping> should be able to send pings"
+msgstr "Indica se <a ping> sia in grado di inviare ping"
+
+#: ../webkit/webkitwebsettings.cpp:910
+msgid "Enable Fullscreen"
+msgstr "Abilita schermo intero"
+
+#: ../webkit/webkitwebsettings.cpp:911
+msgid "Whether the Mozilla style API should be enabled."
+msgstr "Indica se abilitare le API in stile Mozilla."
+
+#: ../webkit/webkitwebview.cpp:2984
msgid "Returns the @web_view's document title"
msgstr "Restituisce il titolo del documento di @web_view"
-#: WebKit/gtk/webkit/webkitwebview.cpp:2333
+#: ../webkit/webkitwebview.cpp:2998
msgid "Returns the current URI of the contents displayed by the @web_view"
msgstr "Restituisce l'URI attuale del contenuto mostrato dalla @web_view"
-#: WebKit/gtk/webkit/webkitwebview.cpp:2346
+#: ../webkit/webkitwebview.cpp:3011
msgid "Copy target list"
msgstr "Copia elenco destinazioni"
# ma ha senso??
-#: WebKit/gtk/webkit/webkitwebview.cpp:2347
+#: ../webkit/webkitwebview.cpp:3012
msgid "The list of targets this web view supports for clipboard copying"
msgstr ""
"L'elenco di destinazioni che questa vista web supporta per copiare negli "
"appunti"
-#: WebKit/gtk/webkit/webkitwebview.cpp:2360
+#: ../webkit/webkitwebview.cpp:3025
msgid "Paste target list"
msgstr "Incolla elenco destinazioni"
# ma ha senso??
-#: WebKit/gtk/webkit/webkitwebview.cpp:2361
+#: ../webkit/webkitwebview.cpp:3026
msgid "The list of targets this web view supports for clipboard pasting"
msgstr ""
"L'elenco di destinazioni che questa vista web supporta per incollare dagli "
"appunti"
-#: WebKit/gtk/webkit/webkitwebview.cpp:2367
+#: ../webkit/webkitwebview.cpp:3032
msgid "Settings"
msgstr "Impostazioni"
-#: WebKit/gtk/webkit/webkitwebview.cpp:2368
+#: ../webkit/webkitwebview.cpp:3033
msgid "An associated WebKitWebSettings instance"
msgstr "Un'istanza WebKitWebSettings associata"
-#: WebKit/gtk/webkit/webkitwebview.cpp:2381
+#: ../webkit/webkitwebview.cpp:3046
msgid "Web Inspector"
msgstr "Ispettore web"
-#: WebKit/gtk/webkit/webkitwebview.cpp:2382
+#: ../webkit/webkitwebview.cpp:3047
msgid "The associated WebKitWebInspector instance"
msgstr "L'istanza WebKitWebInspector associata"
-#: WebKit/gtk/webkit/webkitwebview.cpp:2402
+#: ../webkit/webkitwebview.cpp:3060
+msgid "Viewport Attributes"
+msgstr "Attributi viewport"
+
+#: ../webkit/webkitwebview.cpp:3061
+msgid "The associated WebKitViewportAttributes instance"
+msgstr "L'istanza WebKitViewportAttributes associata"
+
+#: ../webkit/webkitwebview.cpp:3081
msgid "Editable"
msgstr "Modificabile"
-#: WebKit/gtk/webkit/webkitwebview.cpp:2403
+#: ../webkit/webkitwebview.cpp:3082
msgid "Whether content can be modified by the user"
msgstr "Indica se il contenuto può essere modificato dall'utente"
-#: WebKit/gtk/webkit/webkitwebview.cpp:2409
+#: ../webkit/webkitwebview.cpp:3088
msgid "Transparent"
msgstr "Trasparente"
-#: WebKit/gtk/webkit/webkitwebview.cpp:2410
+#: ../webkit/webkitwebview.cpp:3089
msgid "Whether content has a transparent background"
msgstr "Indica se il contenuto ha uno sfondo trasparente"
-#: WebKit/gtk/webkit/webkitwebview.cpp:2423
+#: ../webkit/webkitwebview.cpp:3102
msgid "Zoom level"
msgstr "Livello ingrandimento"
-#: WebKit/gtk/webkit/webkitwebview.cpp:2424
+#: ../webkit/webkitwebview.cpp:3103
msgid "The level of zoom of the content"
msgstr "Il livello di ingrandimento del contenuto"
-#: WebKit/gtk/webkit/webkitwebview.cpp:2439
+#: ../webkit/webkitwebview.cpp:3118
msgid "Full content zoom"
msgstr "Ingrandimento intero contenuto"
-#: WebKit/gtk/webkit/webkitwebview.cpp:2440
+#: ../webkit/webkitwebview.cpp:3119
msgid "Whether the full content is scaled when zooming"
msgstr "Indica se all'ingrandimento viene scalato l'intero contenuto"
-#: WebKit/gtk/webkit/webkitwebview.cpp:2453
-msgid "Encoding"
-msgstr "Codifica"
-
-#: WebKit/gtk/webkit/webkitwebview.cpp:2454
+#: ../webkit/webkitwebview.cpp:3133
msgid "The default encoding of the web view"
msgstr "La codifica predefinita della vista web"
-#: WebKit/gtk/webkit/webkitwebview.cpp:2467
+#: ../webkit/webkitwebview.cpp:3146
msgid "Custom Encoding"
msgstr "Codifica personalizzata"
-#: WebKit/gtk/webkit/webkitwebview.cpp:2468
+#: ../webkit/webkitwebview.cpp:3147
msgid "The custom encoding of the web view"
msgstr "La codifica personalizzata della vista web"
-#: WebKit/gtk/webkit/webkitwebview.cpp:2520
+#: ../webkit/webkitwebview.cpp:3199
msgid "Icon URI"
msgstr "URI di icona"
-#: WebKit/gtk/webkit/webkitwebview.cpp:2521
+#: ../webkit/webkitwebview.cpp:3200
msgid "The URI for the favicon for the #WebKitWebView."
msgstr "L'URI per la favicon della #WebKitWebView."
-#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:55
-#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:60
+#: ../../../WebCore/platform/gtk/LocalizedStringsGtk.cpp:56
+#: ../../../WebCore/platform/gtk/LocalizedStringsGtk.cpp:61
msgid "Submit"
msgstr "Invia"
-#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:65
+#: ../../../WebCore/platform/gtk/LocalizedStringsGtk.cpp:66
msgid "Reset"
msgstr "Azzera"
-#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:70
+#: ../../../WebCore/platform/gtk/LocalizedStringsGtk.cpp:71
msgid "This is a searchable index. Enter search keywords: "
msgstr ""
-"Questo indice consente ricerche. Inserire la parole chiave da cercare: "
+"Questo indice consente ricerche. Inserire le parole chiave da cercare: "
-#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:75
+#: ../../../WebCore/platform/gtk/LocalizedStringsGtk.cpp:76
msgid "Choose File"
msgstr "Scelta file"
-#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:80
+#: ../../../WebCore/platform/gtk/LocalizedStringsGtk.cpp:81
msgid "(None)"
msgstr "(Nessuno)"
-#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:85
+#: ../../../WebCore/platform/gtk/LocalizedStringsGtk.cpp:86
msgid "Open Link in New _Window"
msgstr "Apri collegamento in nuova _finestra"
-#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:90
+#: ../../../WebCore/platform/gtk/LocalizedStringsGtk.cpp:91
msgid "_Download Linked File"
msgstr "_Scarica file collegato"
-#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:95
+#: ../../../WebCore/platform/gtk/LocalizedStringsGtk.cpp:96
msgid "Copy Link Loc_ation"
msgstr "Copia _posizione collegamento"
-#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:100
+#: ../../../WebCore/platform/gtk/LocalizedStringsGtk.cpp:101
msgid "Open _Image in New Window"
msgstr "Apri _immagine in nuova finestra"
-#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:105
+#: ../../../WebCore/platform/gtk/LocalizedStringsGtk.cpp:106
msgid "Sa_ve Image As"
msgstr "Sal_va immagine come"
-#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:110
+#: ../../../WebCore/platform/gtk/LocalizedStringsGtk.cpp:111
msgid "Cop_y Image"
msgstr "Copia i_mmagine"
-#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:115
+#: ../../../WebCore/platform/gtk/LocalizedStringsGtk.cpp:116
+msgid "Open _Video in New Window"
+msgstr "Apri _video in nuova finestra"
+
+#: ../../../WebCore/platform/gtk/LocalizedStringsGtk.cpp:121
+msgid "Open _Audio in New Window"
+msgstr "Apri _audio in nuova finestra"
+
+#: ../../../WebCore/platform/gtk/LocalizedStringsGtk.cpp:126
+msgid "Cop_y Video Link Location"
+msgstr "Copia _posizione collegamento video"
+
+#: ../../../WebCore/platform/gtk/LocalizedStringsGtk.cpp:131
+msgid "Cop_y Audio Link Location"
+msgstr "Copia _posizione collegamento audio"
+
+#: ../../../WebCore/platform/gtk/LocalizedStringsGtk.cpp:136
+msgid "_Toggle Media Controls"
+msgstr "Commu_ta controlli multimediali"
+
+#: ../../../WebCore/platform/gtk/LocalizedStringsGtk.cpp:141
+msgid "Toggle Media _Loop Playback"
+msgstr "Commuta _ripetizione multimediale"
+
+#: ../../../WebCore/platform/gtk/LocalizedStringsGtk.cpp:146
+msgid "Switch Video to _Fullscreen"
+msgstr "Mostra video a sc_hermo intero"
+
+#: ../../../WebCore/platform/gtk/LocalizedStringsGtk.cpp:151
+msgid "_Play"
+msgstr "_Riproduci"
+
+#: ../../../WebCore/platform/gtk/LocalizedStringsGtk.cpp:156
+msgid "_Pause"
+msgstr "_Pausa"
+
+#: ../../../WebCore/platform/gtk/LocalizedStringsGtk.cpp:161
+msgid "_Mute"
+msgstr "_Escludi audio"
+
+#: ../../../WebCore/platform/gtk/LocalizedStringsGtk.cpp:166
msgid "Open _Frame in New Window"
-msgstr "Apri c_ornice in nuova finestra"
+msgstr "Apri _frame in nuova finestra"
-#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:166
+#: ../../../WebCore/platform/gtk/LocalizedStringsGtk.cpp:217
msgid "_Reload"
msgstr "A_ggiorna"
# omesso Found
-#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:183
+#: ../../../WebCore/platform/gtk/LocalizedStringsGtk.cpp:234
msgid "No Guesses Found"
msgstr "Nessun suggerimento"
-#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:188
+#: ../../../WebCore/platform/gtk/LocalizedStringsGtk.cpp:239
msgid "_Ignore Spelling"
msgstr "_Ignora ortografia"
-#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:193
+#: ../../../WebCore/platform/gtk/LocalizedStringsGtk.cpp:244
msgid "_Learn Spelling"
msgstr "A_pprendi ortografia"
-#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:198
+#: ../../../WebCore/platform/gtk/LocalizedStringsGtk.cpp:249
msgid "_Search the Web"
msgstr "_Cerca nel web"
-#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:203
+#: ../../../WebCore/platform/gtk/LocalizedStringsGtk.cpp:254
msgid "_Look Up in Dictionary"
msgstr "Consu_lta dizionario"
-#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:208
+#: ../../../WebCore/platform/gtk/LocalizedStringsGtk.cpp:259
msgid "_Open Link"
msgstr "_Apri collegamento"
-#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:213
+#: ../../../WebCore/platform/gtk/LocalizedStringsGtk.cpp:264
msgid "Ignore _Grammar"
msgstr "Ignora _grammatica"
-#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:218
+#: ../../../WebCore/platform/gtk/LocalizedStringsGtk.cpp:269
msgid "Spelling and _Grammar"
msgstr "Ortografia e _grammatica"
-#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:223
+#: ../../../WebCore/platform/gtk/LocalizedStringsGtk.cpp:274
msgid "_Show Spelling and Grammar"
msgstr "_Mostra ortografia e grammatica"
-#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:223
+#: ../../../WebCore/platform/gtk/LocalizedStringsGtk.cpp:274
msgid "_Hide Spelling and Grammar"
msgstr "_Nascondi ortografia e grammatica"
-#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:228
+#: ../../../WebCore/platform/gtk/LocalizedStringsGtk.cpp:279
msgid "_Check Document Now"
msgstr "_Controlla documento ora"
-#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:233
+#: ../../../WebCore/platform/gtk/LocalizedStringsGtk.cpp:284
msgid "Check Spelling While _Typing"
msgstr "Controlla ortografia durante _digitazione"
-#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:238
+#: ../../../WebCore/platform/gtk/LocalizedStringsGtk.cpp:289
msgid "Check _Grammar With Spelling"
msgstr "Controlla _grammatica con ortografia"
-#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:243
+#: ../../../WebCore/platform/gtk/LocalizedStringsGtk.cpp:294
msgid "_Font"
msgstr "_Tipo di carattere"
@@ -912,260 +1240,275 @@ msgstr "_Tipo di carattere"
# Le traduzioni di questi ultimi tre effetti per i font è presa
# dalle GTK_STOCK (_Grassetto, _Corsivo, _Sottolineato)
# Usato Co_ntorno come in OpenOffice.org
-#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:266
+#: ../../../WebCore/platform/gtk/LocalizedStringsGtk.cpp:317
msgid "_Outline"
msgstr "Co_ntorno"
-#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:271
+#: ../../../WebCore/platform/gtk/LocalizedStringsGtk.cpp:322
msgid "Inspect _Element"
msgstr "Ispeziona _elemento"
-#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:276
+#: ../../../WebCore/platform/gtk/LocalizedStringsGtk.cpp:327
msgid "No recent searches"
msgstr "Nessuna ricerca recente"
-#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:281
+#: ../../../WebCore/platform/gtk/LocalizedStringsGtk.cpp:332
msgid "Recent searches"
msgstr "Ricerche recenti"
-#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:286
+#: ../../../WebCore/platform/gtk/LocalizedStringsGtk.cpp:337
msgid "_Clear recent searches"
msgstr "Pu_lisci ricerche recenti"
# String AXDefinitionListTermText()
-#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:291
+#: ../../../WebCore/platform/gtk/LocalizedStringsGtk.cpp:342
msgid "term"
msgstr "termine"
# String AXDefinitionListDefinitionText()
-#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:296
+#: ../../../WebCore/platform/gtk/LocalizedStringsGtk.cpp:347
msgid "definition"
msgstr "definizione"
# String AXButtonActionVerb()
-#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:301
+#: ../../../WebCore/platform/gtk/LocalizedStringsGtk.cpp:352
msgid "press"
msgstr "premi"
# String AXRadioButtonActionVerb()
-#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:306
+#: ../../../WebCore/platform/gtk/LocalizedStringsGtk.cpp:357
msgid "select"
msgstr "seleziona"
# String AXTextFieldActionVerb()
-#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:311
+#: ../../../WebCore/platform/gtk/LocalizedStringsGtk.cpp:362
msgid "activate"
msgstr "attiva"
# String AXCheckedCheckBoxActionVerb()
-#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:316
+#: ../../../WebCore/platform/gtk/LocalizedStringsGtk.cpp:367
msgid "uncheck"
msgstr "togli spunta"
# String AXUncheckedCheckBoxActionVerb()
-#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:321
+#: ../../../WebCore/platform/gtk/LocalizedStringsGtk.cpp:372
msgid "check"
msgstr "metti spunta"
# String AXLinkActionVerb()
-#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:326
+#: ../../../WebCore/platform/gtk/LocalizedStringsGtk.cpp:377
msgid "jump"
msgstr "salta"
+#: ../../../WebCore/platform/gtk/LocalizedStringsGtk.cpp:392
+msgid "Missing Plug-in"
+msgstr "Plugin mancante"
+
+#: ../../../WebCore/platform/gtk/LocalizedStringsGtk.cpp:398
+msgid "Plug-in Failure"
+msgstr "Fallimento plugin"
+
# String multipleFileUploadText(unsigned numberOfFiles)
-#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:342
+#. FIXME: If this file gets localized, this should really be localized as one string with a wildcard for the number.
+#: ../../../WebCore/platform/gtk/LocalizedStringsGtk.cpp:404
msgid " files"
msgstr " file"
# String unknownFileSizeText()
-#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:347
+#: ../../../WebCore/platform/gtk/LocalizedStringsGtk.cpp:409
msgid "Unknown"
msgstr "Sconosciuta"
-#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:364
+#: ../../../WebCore/platform/gtk/LocalizedStringsGtk.cpp:414
+#, c-format
+msgctxt "Title string for images"
+msgid "%s (%dx%d pixels)"
+msgstr "%s (%d×%d pixel)"
+
+#: ../../../WebCore/platform/gtk/LocalizedStringsGtk.cpp:426
msgid "Loading..."
msgstr "Caricamento..."
-#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:369
+#: ../../../WebCore/platform/gtk/LocalizedStringsGtk.cpp:431
msgid "Live Broadcast"
msgstr "Diffusione live"
-#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:375
+#: ../../../WebCore/platform/gtk/LocalizedStringsGtk.cpp:437
msgid "audio element controller"
msgstr "controllore elemento audio"
-#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:377
+#: ../../../WebCore/platform/gtk/LocalizedStringsGtk.cpp:439
msgid "video element controller"
msgstr "controllore elemento video"
-#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:379
+#: ../../../WebCore/platform/gtk/LocalizedStringsGtk.cpp:441
msgid "mute"
msgstr "escludi audio"
-#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:381
+#: ../../../WebCore/platform/gtk/LocalizedStringsGtk.cpp:443
msgid "unmute"
msgstr "abilita audio"
-#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:383
+#: ../../../WebCore/platform/gtk/LocalizedStringsGtk.cpp:445
msgid "play"
msgstr "riproduci"
-#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:385
+#: ../../../WebCore/platform/gtk/LocalizedStringsGtk.cpp:447
msgid "pause"
msgstr "pausa"
# name == "Slider"
-#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:387
+#: ../../../WebCore/platform/gtk/LocalizedStringsGtk.cpp:449
msgid "movie time"
msgstr "tempo filmato"
# name == "SliderThumb"
-#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:389
+#: ../../../WebCore/platform/gtk/LocalizedStringsGtk.cpp:451
msgid "timeline slider thumb"
msgstr "cursore dello scorrevole per linea temporale"
-#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:391
+#: ../../../WebCore/platform/gtk/LocalizedStringsGtk.cpp:453
msgid "back 30 seconds"
msgstr "indietro 30 secondi"
-#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:393
+#: ../../../WebCore/platform/gtk/LocalizedStringsGtk.cpp:455
msgid "return to realtime"
msgstr "ritorna a tempo effettivo"
-#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:395
+#: ../../../WebCore/platform/gtk/LocalizedStringsGtk.cpp:457
msgid "elapsed time"
msgstr "tempo trascorso"
-#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:397
+#: ../../../WebCore/platform/gtk/LocalizedStringsGtk.cpp:459
msgid "remaining time"
msgstr "tempo rimanente"
-#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:399
+#: ../../../WebCore/platform/gtk/LocalizedStringsGtk.cpp:461
msgid "status"
msgstr "stato"
-#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:401
+#: ../../../WebCore/platform/gtk/LocalizedStringsGtk.cpp:463
msgid "fullscreen"
msgstr "schermo intero"
-#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:403
+#: ../../../WebCore/platform/gtk/LocalizedStringsGtk.cpp:465
msgid "fast forward"
msgstr "avanti veloce"
-#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:405
+#: ../../../WebCore/platform/gtk/LocalizedStringsGtk.cpp:467
msgid "fast reverse"
msgstr "indietro veloce"
-#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:407
+#: ../../../WebCore/platform/gtk/LocalizedStringsGtk.cpp:469
msgid "show closed captions"
msgstr "mostra sottotitoli"
-#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:409
+#: ../../../WebCore/platform/gtk/LocalizedStringsGtk.cpp:471
msgid "hide closed captions"
msgstr "nascondi sottotitoli"
-#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:418
+#: ../../../WebCore/platform/gtk/LocalizedStringsGtk.cpp:480
msgid "audio element playback controls and status display"
msgstr "controlli di riproduzione e visualizzazione stato di elementi audio"
-#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:420
+#: ../../../WebCore/platform/gtk/LocalizedStringsGtk.cpp:482
msgid "video element playback controls and status display"
msgstr "controlli di riproduzione e visualizzazione stato di elementi video"
-#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:422
+#: ../../../WebCore/platform/gtk/LocalizedStringsGtk.cpp:484
msgid "mute audio tracks"
msgstr "escludi tracce audio"
-#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:424
+#: ../../../WebCore/platform/gtk/LocalizedStringsGtk.cpp:486
msgid "unmute audio tracks"
msgstr "abilita tracce audio"
-#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:426
+#: ../../../WebCore/platform/gtk/LocalizedStringsGtk.cpp:488
msgid "begin playback"
msgstr "inizia la riproduzione"
-#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:428
+#: ../../../WebCore/platform/gtk/LocalizedStringsGtk.cpp:490
msgid "pause playback"
msgstr "mette in pausa la riproduzione"
# non so se è corretto... per induzione dovrebbe
-#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:430
+#: ../../../WebCore/platform/gtk/LocalizedStringsGtk.cpp:492
msgid "movie time scrubber"
msgstr "cambia con trascinamento il tempo del filmato"
# non so se è corretto... per induzione dovrebbe
-#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:432
+#: ../../../WebCore/platform/gtk/LocalizedStringsGtk.cpp:494
msgid "movie time scrubber thumb"
msgstr "cursore per cambiare con trascinamento il tempo del filmato"
-#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:434
+#: ../../../WebCore/platform/gtk/LocalizedStringsGtk.cpp:496
msgid "seek movie back 30 seconds"
msgstr "posiziona il filmato indietro di 30 secondi"
-#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:436
+#: ../../../WebCore/platform/gtk/LocalizedStringsGtk.cpp:498
msgid "return streaming movie to real time"
msgstr "riporta il filmato in streaming al tempo reale"
-#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:438
+#: ../../../WebCore/platform/gtk/LocalizedStringsGtk.cpp:500
msgid "current movie time in seconds"
msgstr "tempo corrente del filmato in secondi"
-#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:440
+#: ../../../WebCore/platform/gtk/LocalizedStringsGtk.cpp:502
msgid "number of seconds of movie remaining"
msgstr "numero di secondi rimanenti del filmato"
-#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:442
+#: ../../../WebCore/platform/gtk/LocalizedStringsGtk.cpp:504
msgid "current movie status"
msgstr "stato attuale del filmato"
-#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:444
+#: ../../../WebCore/platform/gtk/LocalizedStringsGtk.cpp:506
msgid "seek quickly back"
msgstr "posiziona indietro rapidamente"
-#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:446
+#: ../../../WebCore/platform/gtk/LocalizedStringsGtk.cpp:508
msgid "seek quickly forward"
msgstr "posiziona avanti rapidamente"
-#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:448
+#: ../../../WebCore/platform/gtk/LocalizedStringsGtk.cpp:510
msgid "Play movie in fullscreen mode"
msgstr "Riproduce il filmato in modalità schermo intero"
-#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:450
+#: ../../../WebCore/platform/gtk/LocalizedStringsGtk.cpp:512
msgid "start displaying closed captions"
msgstr "avvia la visualizzazione dei sottotitoli"
-#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:452
+#: ../../../WebCore/platform/gtk/LocalizedStringsGtk.cpp:514
msgid "stop displaying closed captions"
msgstr "interrompe la visualizzazione dei sottotitoli"
-#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:461
+#: ../../../WebCore/platform/gtk/LocalizedStringsGtk.cpp:523
msgid "indefinite time"
msgstr "tempo indefinito"
-#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:491
+#: ../../../WebCore/platform/gtk/LocalizedStringsGtk.cpp:553
msgid "value missing"
msgstr "valore mancante"
-#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:497
+#: ../../../WebCore/platform/gtk/LocalizedStringsGtk.cpp:589
msgid "type mismatch"
msgstr "discrepanza di tipo"
-#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:502
+#: ../../../WebCore/platform/gtk/LocalizedStringsGtk.cpp:612
msgid "pattern mismatch"
msgstr "discrepanza di modello"
-#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:507
+#: ../../../WebCore/platform/gtk/LocalizedStringsGtk.cpp:617
msgid "too long"
msgstr "troppo lungo"
-#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:512
+#: ../../../WebCore/platform/gtk/LocalizedStringsGtk.cpp:622
msgid "range underflow"
msgstr "superamento limite inferiore dell'intervallo"
-#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:517
+#: ../../../WebCore/platform/gtk/LocalizedStringsGtk.cpp:627
msgid "range overflow"
msgstr "superamento limite superiore dell'intervallo"
-#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:522
+#: ../../../WebCore/platform/gtk/LocalizedStringsGtk.cpp:632
msgid "step mismatch"
msgstr "discrepanza di passo"
diff --git a/Source/WebKit/gtk/tests/testapplicationcache.c b/Source/WebKit/gtk/tests/testapplicationcache.c
index 55e360c..2b022fc 100644
--- a/Source/WebKit/gtk/tests/testapplicationcache.c
+++ b/Source/WebKit/gtk/tests/testapplicationcache.c
@@ -37,25 +37,6 @@ static void test_application_cache_maximum_size()
g_assert(maxSize == webkit_application_cache_get_maximum_size());
}
-static void test_application_cache_database_directory_path()
-{
- unsigned long long maxSize = 8192;
- webkit_application_cache_set_maximum_size(maxSize);
-
- gchar* databaseDirectorySet = g_build_filename(g_get_user_data_dir(), "webkit", "databases", NULL);
- webkit_application_cache_set_database_directory_path(databaseDirectorySet);
-
- // Creating a WebView - make sure that it didn't change anything
- WebKitWebView* webView = WEBKIT_WEB_VIEW(webkit_web_view_new());
- g_object_ref_sink(webView);
- g_object_unref(webView);
-
- const gchar* databaseDirectoryGet = webkit_application_cache_get_database_directory_path();
- g_assert_cmpstr(databaseDirectorySet, ==, databaseDirectoryGet);
-
- g_free(databaseDirectorySet);
-}
-
int main(int argc, char** argv)
{
g_thread_init(NULL);
@@ -64,8 +45,6 @@ int main(int argc, char** argv)
g_test_bug_base("https://bugs.webkit.org/");
g_test_add_func("/webkit/application_cache/maximum_size",
test_application_cache_maximum_size);
- g_test_add_func("/webkit/application_cache/database_directory_path",
- test_application_cache_database_directory_path);
return g_test_run();
}
diff --git a/Source/WebKit/gtk/tests/testatk.c b/Source/WebKit/gtk/tests/testatk.c
index 79ca67d..161b4b8 100644
--- a/Source/WebKit/gtk/tests/testatk.c
+++ b/Source/WebKit/gtk/tests/testatk.c
@@ -52,7 +52,7 @@ static const char* comboBoxSelector = "<html><body><select><option selected valu
static const char* formWithTextInputs = "<html><body><form><input type='text' name='entry' /></form></body></html>";
-static const char* hypertextAndHyperlinks = "<html><body><p>A paragraph with no links at all</p><p><a href='http://foo.bar.baz/'>A line</a> with <a href='http://bar.baz.foo/'>a link in the middle</a> as well as at the beginning and <a href='http://baz.foo.bar/'>at the end</a></p></body></html>";
+static const char* hypertextAndHyperlinks = "<html><body><p>A paragraph with no links at all</p><p><a href='http://foo.bar.baz/'>A line</a> with <a href='http://bar.baz.foo/'>a link in the middle</a> as well as at the beginning and <a href='http://baz.foo.bar/'>at the end</a></p><ol><li>List item with a <span><a href='http://foo.bar.baz/'>link inside a span node</a></span></li></ol></body></html>";
static const char* layoutAndDataTables = "<html><body><table><tr><th>Odd</th><th>Even</th></tr><tr><td>1</td><td>2</td></tr></table><table><tr><td>foo</td><td>bar</td></tr></table></body></html>";
@@ -1405,6 +1405,25 @@ static void testWebkitAtkHypertextAndHyperlinks()
g_assert_cmpint(atk_hyperlink_get_n_anchors(hLink3), ==, 1);
g_assert_cmpstr(atk_hyperlink_get_uri(hLink3, 0), ==, "http://baz.foo.bar/");
+ AtkObject* list = atk_object_ref_accessible_child(object, 2);
+ g_assert(ATK_OBJECT(list));
+ g_assert(atk_object_get_role(list) == ATK_ROLE_LIST);
+ g_assert_cmpint(atk_object_get_n_accessible_children(list), ==, 1);
+
+ AtkObject* listItem = atk_object_ref_accessible_child(list, 0);
+ g_assert(ATK_IS_TEXT(listItem));
+ g_assert(ATK_IS_HYPERTEXT(listItem));
+
+ AtkHyperlink* hLinkInListItem = atk_hypertext_get_link(ATK_HYPERTEXT(listItem), 0);
+ g_assert(ATK_HYPERLINK(hLinkInListItem));
+ AtkObject* hLinkObject = atk_hyperlink_get_object(hLinkInListItem, 0);
+ g_assert(ATK_OBJECT(hLinkObject));
+ g_assert(atk_object_get_role(hLinkObject) == ATK_ROLE_LINK);
+ g_assert_cmpint(atk_hyperlink_get_start_index(hLinkInListItem), ==, 20);
+ g_assert_cmpint(atk_hyperlink_get_end_index(hLinkInListItem), ==, 43);
+ g_assert_cmpint(atk_hyperlink_get_n_anchors(hLinkInListItem), ==, 1);
+ g_assert_cmpstr(atk_hyperlink_get_uri(hLinkInListItem, 0), ==, "http://foo.bar.baz/");
+
/* Finally check the AtkAction interface for a given AtkHyperlink. */
g_assert(ATK_IS_ACTION(hLink1));
g_assert_cmpint(atk_action_get_n_actions(ATK_ACTION(hLink1)), ==, 1);
@@ -1414,6 +1433,8 @@ static void testWebkitAtkHypertextAndHyperlinks()
g_object_unref(paragraph1);
g_object_unref(paragraph2);
+ g_object_unref(list);
+ g_object_unref(listItem);
g_object_unref(webView);
}
diff --git a/Source/WebKit/gtk/tests/testdomdomwindow.c b/Source/WebKit/gtk/tests/testdomdomwindow.c
index b15558e..0d93408 100644
--- a/Source/WebKit/gtk/tests/testdomdomwindow.c
+++ b/Source/WebKit/gtk/tests/testdomdomwindow.c
@@ -105,7 +105,7 @@ static void load_event_callback(WebKitWebView* webView, GParamSpec* spec, DomDom
{
WebKitLoadStatus status = webkit_web_view_get_load_status(webView);
if (status == WEBKIT_LOAD_FINISHED) {
- g_signal_connect(fixture->domWindow, "click-event", G_CALLBACK(clickedCallback), fixture);
+ webkit_dom_event_target_add_event_listener(WEBKIT_DOM_EVENT_TARGET(fixture->domWindow), "click", G_CALLBACK(clickedCallback), false, fixture);
g_assert(fixture->clicked == FALSE);
gtk_test_widget_click(GTK_WIDGET(fixture->webView), 1, 0);
@@ -125,7 +125,7 @@ static void test_dom_domview_signals(DomDomviewFixture* fixture, gconstpointer d
fixture->domWindow = domWindow;
- g_signal_connect(fixture->domWindow, "load-event", G_CALLBACK(loadedCallback), fixture);
+ webkit_dom_event_target_add_event_listener(WEBKIT_DOM_EVENT_TARGET(fixture->domWindow), "load", G_CALLBACK(loadedCallback), false, fixture);
g_signal_connect(fixture->window, "map-event", G_CALLBACK(map_event_cb), fixture);
g_signal_connect(fixture->webView, "notify::load-status", G_CALLBACK(load_event_callback), fixture);
@@ -176,7 +176,7 @@ static void load_status_callback(WebKitWebView* webView, GParamSpec* spec, DomDo
fixture->domWindow, 0, 0, 0, clientX, clientY,
FALSE, FALSE, FALSE, FALSE,
1, WEBKIT_DOM_EVENT_TARGET(element));
- g_signal_connect(element, "click-event", G_CALLBACK(clicked_cb), fixture);
+ webkit_dom_event_target_add_event_listener(WEBKIT_DOM_EVENT_TARGET(element), "click", G_CALLBACK(clicked_cb), false, fixture);
g_assert(fixture->clicked == FALSE);
webkit_dom_event_target_dispatch_event(WEBKIT_DOM_EVENT_TARGET(element), event, NULL);
}
diff --git a/Source/WebKit/gtk/tests/testwebview.c b/Source/WebKit/gtk/tests/testwebview.c
index 778235d..97e8a50 100644
--- a/Source/WebKit/gtk/tests/testwebview.c
+++ b/Source/WebKit/gtk/tests/testwebview.c
@@ -266,7 +266,10 @@ static void do_test_webkit_web_view_adjustments(gboolean with_page_cache)
g_assert_cmpfloat(lower, ==, gtk_adjustment_get_lower(adjustment));
g_assert_cmpfloat(upper, ==, gtk_adjustment_get_upper(adjustment));
- g_assert_cmpfloat(gtk_adjustment_get_value(adjustment), ==, 100.0);
+ /* This assert is temporarily disabled until we fix the following bug: */
+ /* https://bugs.webkit.org/show_bug.cgi?id=57315 */
+ /* It should be re-enabled ASAP. */
+ /* g_assert_cmpfloat(gtk_adjustment_get_value(adjustment), ==, 100.0); */
g_free(effective_uri);
g_free(second_uri);
diff --git a/Source/WebKit/gtk/webkit/webkit.h b/Source/WebKit/gtk/webkit/webkit.h
index d85d698..77e96bc 100644
--- a/Source/WebKit/gtk/webkit/webkit.h
+++ b/Source/WebKit/gtk/webkit/webkit.h
@@ -30,6 +30,7 @@
#include <webkit/webkitgeolocationpolicydecision.h>
#include <webkit/webkitglobals.h>
#include <webkit/webkithittestresult.h>
+#include <webkit/webkiticondatabase.h>
#include <webkit/webkitnetworkrequest.h>
#include <webkit/webkitnetworkresponse.h>
#include <webkit/webkitsecurityorigin.h>
diff --git a/Source/WebKit/gtk/webkit/webkitapplicationcache.cpp b/Source/WebKit/gtk/webkit/webkitapplicationcache.cpp
index ab179b5..0b65d04 100644
--- a/Source/WebKit/gtk/webkit/webkitapplicationcache.cpp
+++ b/Source/WebKit/gtk/webkit/webkitapplicationcache.cpp
@@ -26,8 +26,6 @@
#include <wtf/UnusedParam.h>
#include <wtf/text/CString.h>
-// keeps current directory path to offline web applications cache database
-static WTF::CString cacheDirectoryPath = "";
// web application cache maximum storage size
static unsigned long long cacheMaxSize = UINT_MAX;
@@ -89,33 +87,9 @@ G_CONST_RETURN gchar* webkit_application_cache_get_database_directory_path()
{
#if ENABLE(OFFLINE_WEB_APPLICATIONS)
CString path = WebCore::fileSystemRepresentation(WebCore::cacheStorage().cacheDirectory());
-
- if (path != cacheDirectoryPath)
- cacheDirectoryPath = path;
-
- return cacheDirectoryPath.data();
+ return path.data();
#else
return "";
#endif
}
-/**
- * webkit_application_cache_set_database_directory_path:
- * @path: the new web application cache database path
- *
- * Sets the current path to the directory WebKit will write web aplication cache
- * databases.
- *
- * Since: 1.3.13
- **/
-void webkit_application_cache_set_database_directory_path(const gchar* path)
-{
-#if ENABLE(OFFLINE_WEB_APPLICATIONS)
- WTF::CString pathString(path);
- if (pathString != cacheDirectoryPath)
- cacheDirectoryPath = pathString;
-
- WebCore::cacheStorage().setCacheDirectory(WebCore::filenameToString(cacheDirectoryPath.data()));
-#endif
-}
-
diff --git a/Source/WebKit/gtk/webkit/webkitapplicationcache.h b/Source/WebKit/gtk/webkit/webkitapplicationcache.h
index 810a5d6..bb0f867 100644
--- a/Source/WebKit/gtk/webkit/webkitapplicationcache.h
+++ b/Source/WebKit/gtk/webkit/webkitapplicationcache.h
@@ -25,16 +25,13 @@
G_BEGIN_DECLS
WEBKIT_API unsigned long long
-webkit_application_cache_get_maximum_size();
+webkit_application_cache_get_maximum_size(void);
WEBKIT_API void
webkit_application_cache_set_maximum_size(unsigned long long size);
WEBKIT_API G_CONST_RETURN gchar*
-webkit_application_cache_get_database_directory_path (void);
-
-WEBKIT_API void
-webkit_application_cache_set_database_directory_path (const gchar* path);
+webkit_application_cache_get_database_directory_path(void);
G_END_DECLS
diff --git a/Source/WebKit/gtk/webkit/webkitdefines.h b/Source/WebKit/gtk/webkit/webkitdefines.h
index b0b607b..0b88084 100644
--- a/Source/WebKit/gtk/webkit/webkitdefines.h
+++ b/Source/WebKit/gtk/webkit/webkitdefines.h
@@ -41,6 +41,9 @@
G_BEGIN_DECLS
+typedef struct _WebKitIconDatabase WebKitIconDatabase;
+typedef struct _WebKitIconDatabaseClass WebKitIconDatabaseClass;
+
typedef struct _WebKitNetworkRequest WebKitNetworkRequest;
typedef struct _WebKitNetworkRequestClass WebKitNetworkRequestClass;
diff --git a/Source/WebKit/gtk/webkit/webkitglobals.cpp b/Source/WebKit/gtk/webkit/webkitglobals.cpp
index 4d07ceb..b8d8b1f 100644
--- a/Source/WebKit/gtk/webkit/webkitglobals.cpp
+++ b/Source/WebKit/gtk/webkit/webkitglobals.cpp
@@ -40,6 +40,7 @@
#include "ResourceResponse.h"
#include "webkitapplicationcache.h"
#include "webkitglobalsprivate.h"
+#include "webkiticondatabase.h"
#include "webkitsoupauthdialog.h"
#include "webkitwebdatabase.h"
#include "webkitwebplugindatabaseprivate.h"
@@ -223,9 +224,24 @@ static GtkWidget* currentToplevelCallback(WebKitSoupAuthDialog* feature, SoupMes
return NULL;
}
-static void closeIconDatabaseOnExit()
+/**
+ * webkit_get_icon_database:
+ *
+ * Returns the #WebKitIconDatabase providing access to website icons.
+ *
+ * Return value: (transfer none): the current #WebKitIconDatabase
+ *
+ * Since: 1.3.13
+ */
+WebKitIconDatabase* webkit_get_icon_database()
{
- iconDatabase().close();
+ webkitInit();
+
+ static WebKitIconDatabase* database = 0;
+ if (!database)
+ database = WEBKIT_ICON_DATABASE(g_object_new(WEBKIT_TYPE_ICON_DATABASE, NULL));
+
+ return database;
}
void webkitInit()
@@ -249,14 +265,15 @@ void webkitInit()
gchar* databaseDirectory = g_build_filename(g_get_user_data_dir(), "webkit", "databases", NULL);
webkit_set_web_database_directory_path(databaseDirectory);
- webkit_application_cache_set_database_directory_path(databaseDirectory);
+ WebCore::cacheStorage().setCacheDirectory(databaseDirectory);
g_free(databaseDirectory);
PageGroup::setShouldTrackVisitedLinks(true);
Pasteboard::generalPasteboard()->setHelper(WebKit::pasteboardHelperInstance());
- WebKit::setIconDatabaseEnabled(true);
+ GOwnPtr<gchar> iconDatabasePath(g_build_filename(g_get_user_data_dir(), "webkit", "icondatabase", NULL));
+ webkit_icon_database_set_path(webkit_get_icon_database(), iconDatabasePath.get());
SoupSession* session = webkit_get_default_session();
@@ -280,25 +297,5 @@ PasteboardHelperGtk* pasteboardHelperInstance()
return helper;
}
-void setIconDatabaseEnabled(bool enabled)
-{
- static bool initialized = false;
- if (enabled && !initialized) {
- initialized = true;
- atexit(closeIconDatabaseOnExit);
- }
-
- if (enabled) {
- iconDatabase().setEnabled(true);
- GOwnPtr<gchar> iconDatabasePath(g_build_filename(g_get_user_data_dir(), "webkit", "icondatabase", NULL));
- iconDatabase().open(iconDatabasePath.get());
- return;
- }
-
- iconDatabase().setEnabled(false);
- iconDatabase().close();
-}
-
-
} /** end namespace WebKit */
diff --git a/Source/WebKit/gtk/webkit/webkitglobals.h b/Source/WebKit/gtk/webkit/webkitglobals.h
index 612c195..33d2b8b 100644
--- a/Source/WebKit/gtk/webkit/webkitglobals.h
+++ b/Source/WebKit/gtk/webkit/webkitglobals.h
@@ -58,6 +58,9 @@ webkit_get_default_session (void);
WEBKIT_API WebKitWebPluginDatabase *
webkit_get_web_plugin_database (void);
+WEBKIT_API WebKitIconDatabase *
+webkit_get_icon_database (void);
+
WEBKIT_API void
webkit_set_cache_model (WebKitCacheModel cache_model);
diff --git a/Source/WebKit/gtk/webkit/webkitglobalsprivate.h b/Source/WebKit/gtk/webkit/webkitglobalsprivate.h
index 7eb3aae..5923f2e 100644
--- a/Source/WebKit/gtk/webkit/webkitglobalsprivate.h
+++ b/Source/WebKit/gtk/webkit/webkitglobalsprivate.h
@@ -33,7 +33,6 @@ namespace WebKit {
class PasteboardHelperGtk;
PasteboardHelperGtk* pasteboardHelperInstance();
-void setIconDatabaseEnabled(bool);
}
extern "C" {
diff --git a/Source/WebKit/gtk/webkit/webkiticondatabase.cpp b/Source/WebKit/gtk/webkit/webkiticondatabase.cpp
new file mode 100644
index 0000000..397bd51
--- /dev/null
+++ b/Source/WebKit/gtk/webkit/webkiticondatabase.cpp
@@ -0,0 +1,317 @@
+/*
+ * Copyright (C) 2011 Christian Dywan <christian@lanedo.com>
+ *
+ * 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 "webkiticondatabase.h"
+
+#include "DatabaseDetails.h"
+#include "DatabaseTracker.h"
+#include "FileSystem.h"
+#include "IconDatabase.h"
+#include "Image.h"
+#include "IntSize.h"
+#include "webkitglobalsprivate.h"
+#include "webkitmarshal.h"
+#include "webkitsecurityoriginprivate.h"
+#include "webkitwebframe.h"
+#include <glib/gi18n-lib.h>
+#include <wtf/gobject/GOwnPtr.h>
+#include <wtf/text/CString.h>
+
+/**
+ * SECTION:webkitwebdatabase
+ * @short_description: A WebKit web application database
+ *
+ * #WebKitIconDatabase provides access to website icons, as shown
+ * in tab labels, window captions or bookmarks. All views share
+ * the same icon database.
+ *
+ * The icon database is enabled by default and stored in
+ * ~/.local/share/webkit/icondatabase, depending on XDG_DATA_HOME.
+ *
+ * WebKit will automatically look for available icons in link elements
+ * on opened pages as well as an existing favicon.ico and load the
+ * images found into the memory cache if possible. The signal "icon-loaded"
+ * will be emitted when any icon is found and loaded.
+ * Old Icons are automatically cleaned up after 4 days.
+ *
+ * webkit_icon_database_set_path() can be used to change the location
+ * of the database and also to disable it by passing %NULL.
+ *
+ * If WebKitWebSettings::enable-private-browsing is %TRUE new icons
+ * won't be added to the database on disk and no existing icons will
+ * be deleted from it.
+ *
+ * Since: 1.3.13
+ */
+
+using namespace WebKit;
+
+enum {
+ PROP_0,
+
+ PROP_PATH,
+};
+
+enum {
+ ICON_LOADED,
+
+ LAST_SIGNAL
+};
+
+static guint webkit_icon_database_signals[LAST_SIGNAL] = { 0, };
+
+G_DEFINE_TYPE(WebKitIconDatabase, webkit_icon_database, G_TYPE_OBJECT);
+
+struct _WebKitIconDatabasePrivate {
+ GOwnPtr<gchar> path;
+};
+
+static void webkit_icon_database_finalize(GObject* object)
+{
+ // Call C++ destructors, the reverse of 'placement new syntax'
+ WEBKIT_ICON_DATABASE(object)->priv->~WebKitIconDatabasePrivate();
+
+ G_OBJECT_CLASS(webkit_icon_database_parent_class)->finalize(object);
+}
+
+static void webkit_icon_database_dispose(GObject* object)
+{
+ G_OBJECT_CLASS(webkit_icon_database_parent_class)->dispose(object);
+}
+
+static void webkit_icon_database_set_property(GObject* object, guint propId, const GValue* value, GParamSpec* pspec)
+{
+ WebKitIconDatabase* database = WEBKIT_ICON_DATABASE(object);
+
+ switch (propId) {
+ case PROP_PATH:
+ webkit_icon_database_set_path(database, g_value_get_string(value));
+ break;
+ default:
+ G_OBJECT_WARN_INVALID_PROPERTY_ID(object, propId, pspec);
+ break;
+ }
+}
+
+static void webkit_icon_database_get_property(GObject* object, guint propId, GValue* value, GParamSpec* pspec)
+{
+ WebKitIconDatabase* database = WEBKIT_ICON_DATABASE(object);
+
+ switch (propId) {
+ case PROP_PATH:
+ g_value_set_string(value, webkit_icon_database_get_path(database));
+ break;
+ default:
+ G_OBJECT_WARN_INVALID_PROPERTY_ID(object, propId, pspec);
+ break;
+ }
+}
+
+static void webkit_icon_database_class_init(WebKitIconDatabaseClass* klass)
+{
+ webkitInit();
+
+ GObjectClass* gobjectClass = G_OBJECT_CLASS(klass);
+ gobjectClass->dispose = webkit_icon_database_dispose;
+ gobjectClass->finalize = webkit_icon_database_finalize;
+ gobjectClass->set_property = webkit_icon_database_set_property;
+ gobjectClass->get_property = webkit_icon_database_get_property;
+
+ /**
+ * WebKitIconDatabase:path:
+ *
+ * The absolute path of the icon database folder.
+ *
+ * Since: 1.3.13
+ */
+ g_object_class_install_property(gobjectClass, PROP_PATH,
+ g_param_spec_string("path",
+ _("Path"),
+ _("The absolute path of the icon database folder"),
+ NULL,
+ WEBKIT_PARAM_READWRITE));
+
+ /**
+ * WebKitIconDatabase::icon-loaded:
+ * @database: the object on which the signal is emitted
+ * @frame: the frame containing the icon
+ * @frame_uri: the URI of the frame containing the icon
+ *
+ * This signal is emitted when a favicon is available for a page,
+ * or a child frame.
+ * See WebKitWebView::icon-loaded if you only need the favicon for
+ * the main frame of a particular #WebKitWebView.
+ *
+ * Since: 1.3.13
+ */
+ webkit_icon_database_signals[ICON_LOADED] = g_signal_new("icon-loaded",
+ G_TYPE_FROM_CLASS(klass),
+ (GSignalFlags)G_SIGNAL_RUN_LAST,
+ 0,
+ NULL,
+ NULL,
+ webkit_marshal_VOID__OBJECT_STRING,
+ G_TYPE_NONE, 2,
+ WEBKIT_TYPE_WEB_FRAME,
+ G_TYPE_STRING);
+
+ g_type_class_add_private(klass, sizeof(WebKitIconDatabasePrivate));
+}
+
+static void webkit_icon_database_init(WebKitIconDatabase* database)
+{
+ database->priv = G_TYPE_INSTANCE_GET_PRIVATE(database, WEBKIT_TYPE_ICON_DATABASE, WebKitIconDatabasePrivate);
+ // 'placement new syntax', see webkitwebview.cpp
+ new (database->priv) WebKitIconDatabasePrivate();
+}
+
+/**
+ * webkit_icon_database_get_path:
+ * @database: a #WebKitIconDatabase
+ *
+ * Determines the absolute path to the database folder on disk.
+ *
+ * Returns: the absolute path of the database folder, or %NULL
+ *
+ * Since: 1.3.13
+ **/
+G_CONST_RETURN gchar* webkit_icon_database_get_path(WebKitIconDatabase* database)
+{
+ g_return_val_if_fail(WEBKIT_IS_ICON_DATABASE(database), 0);
+
+ return database->priv->path.get();
+}
+
+static void closeIconDatabaseOnExit()
+{
+ if (WebCore::iconDatabase().isEnabled()) {
+ WebCore::iconDatabase().setEnabled(false);
+ WebCore::iconDatabase().close();
+ }
+}
+
+/**
+ * webkit_icon_database_set_path:
+ * @database: a #WebKitIconDatabase
+ * @path: an absolute path to the icon database folder
+ *
+ * Specifies the absolute path to the database folder on disk.
+ *
+ * Passing %NULL or "" disables the icon database.
+ *
+ * Since: 1.3.13
+ **/
+void webkit_icon_database_set_path(WebKitIconDatabase* database, const gchar* path)
+{
+ g_return_if_fail(WEBKIT_IS_ICON_DATABASE(database));
+
+ if (database->priv->path.get())
+ WebCore::iconDatabase().close();
+
+ if (!(path && path[0])) {
+ database->priv->path.set(0);
+ WebCore::iconDatabase().setEnabled(false);
+ return;
+ }
+
+ database->priv->path.set(g_strdup(path));
+
+ WebCore::iconDatabase().setEnabled(true);
+ WebCore::iconDatabase().open(WebCore::filenameToString(database->priv->path.get()), WebCore::IconDatabase::defaultDatabaseFilename());
+
+ static bool initialized = false;
+ if (!initialized) {
+ atexit(closeIconDatabaseOnExit);
+ initialized = true;
+ }
+}
+
+/**
+ * webkit_icon_database_get_icon_uri:
+ * @database: a #WebKitIconDatabase
+ * @page_uri: URI of the page containing the icon
+ *
+ * Obtains the URI for the favicon for the given page URI.
+ * See also webkit_web_view_get_icon_uri().
+ *
+ * Returns: a newly allocated URI for the favicon, or %NULL
+ *
+ * Since: 1.3.13
+ **/
+gchar* webkit_icon_database_get_icon_uri(WebKitIconDatabase* database, const gchar* pageURI)
+{
+ g_return_val_if_fail(WEBKIT_IS_ICON_DATABASE(database), 0);
+ g_return_val_if_fail(pageURI, 0);
+
+ String pageURL = String::fromUTF8(pageURI);
+ return g_strdup(WebCore::iconDatabase().synchronousIconURLForPageURL(pageURL).utf8().data());
+}
+
+/**
+ * webkit_icon_database_get_icon_pixbuf:
+ * @database: a #WebKitIconDatabase
+ * @page_uri: URI of the page containing the icon
+ *
+ * Obtains a #GdkPixbuf of the favicon for the given page URI, or
+ * a default icon if there is no icon for the given page. Use
+ * webkit_icon_database_get_icon_uri() if you need to distinguish these cases.
+ * Usually you want to connect to WebKitIconDatabase::icon-loaded and call this
+ * method in the callback.
+ *
+ * The pixbuf will have the largest size provided by the server and should
+ * be resized before it is displayed.
+ * See also webkit_web_view_get_icon_pixbuf().
+ *
+ * Returns: (transfer full): a new reference to a #GdkPixbuf, or %NULL
+ *
+ * Since: 1.3.13
+ **/
+GdkPixbuf* webkit_icon_database_get_icon_pixbuf(WebKitIconDatabase* database, const gchar* pageURI)
+{
+ g_return_val_if_fail(WEBKIT_IS_ICON_DATABASE(database), 0);
+ g_return_val_if_fail(pageURI, 0);
+
+ String pageURL = String::fromUTF8(pageURI);
+ // The exact size we pass is irrelevant to the WebCore::iconDatabase code.
+ // We must pass something greater than 0, 0 to get a pixbuf.
+ WebCore::Image* icon = WebCore::iconDatabase().synchronousIconForPageURL(pageURL, WebCore::IntSize(16, 16));
+ if (!icon)
+ return 0;
+ GdkPixbuf* pixbuf = icon->getGdkPixbuf();
+ if (!pixbuf)
+ return 0;
+ return static_cast<GdkPixbuf*>(g_object_ref(pixbuf));
+}
+
+/**
+ * webkit_icon_database_clear():
+ * @database: a #WebKitIconDatabase
+ *
+ * Clears all icons from the database.
+ *
+ * Since: 1.3.13
+ **/
+void webkit_icon_database_clear(WebKitIconDatabase* database)
+{
+ g_return_if_fail(WEBKIT_IS_ICON_DATABASE(database));
+
+ WebCore::iconDatabase().removeAllIcons();
+}
+
diff --git a/Source/WebKit/gtk/webkit/webkiticondatabase.h b/Source/WebKit/gtk/webkit/webkiticondatabase.h
new file mode 100644
index 0000000..7fe5acd
--- /dev/null
+++ b/Source/WebKit/gtk/webkit/webkiticondatabase.h
@@ -0,0 +1,78 @@
+/*
+ * Copyright (C) 2011 Christian Dywan <christian@lanedo.com>
+ *
+ * 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 webkiticondatabase_h
+#define webkiticondatabase_h
+
+#include <gdk-pixbuf/gdk-pixbuf.h>
+#include <glib-object.h>
+#include <webkit/webkitdefines.h>
+
+G_BEGIN_DECLS
+
+#define WEBKIT_TYPE_ICON_DATABASE (webkit_icon_database_get_type())
+#define WEBKIT_ICON_DATABASE(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj), WEBKIT_TYPE_ICON_DATABASE, WebKitIconDatabase))
+#define WEBKIT_ICON_DATABASE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass), WEBKIT_TYPE_ICON_DATABASE, WebKitIconDatabaseClass))
+#define WEBKIT_IS_ICON_DATABASE(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj), WEBKIT_TYPE_ICON_DATABASE))
+#define WEBKIT_IS_ICON_DATABASE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE((klass), WEBKIT_TYPE_ICON_DATABASE))
+#define WEBKIT_ICON_DATABASE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS((obj), WEBKIT_TYPE_ICON_DATABASE, WebKitIconDatabaseClass))
+
+typedef struct _WebKitIconDatabasePrivate WebKitIconDatabasePrivate;
+
+struct _WebKitIconDatabase {
+ GObject parent_instance;
+
+ /*< private >*/
+ WebKitIconDatabasePrivate* priv;
+};
+
+struct _WebKitIconDatabaseClass {
+ GObjectClass parent_class;
+
+ /* Padding for future expansion */
+ void (*_webkit_reserved1) (void);
+ void (*_webkit_reserved2) (void);
+ void (*_webkit_reserved3) (void);
+ void (*_webkit_reserved4) (void);
+};
+
+WEBKIT_API GType
+webkit_icon_database_get_type (void);
+
+WEBKIT_API G_CONST_RETURN gchar*
+webkit_icon_database_get_path (WebKitIconDatabase* database);
+
+WEBKIT_API void
+webkit_icon_database_set_path (WebKitIconDatabase* database,
+ const gchar* path);
+
+WEBKIT_API gchar*
+webkit_icon_database_get_icon_uri (WebKitIconDatabase* database,
+ const gchar* page_uri);
+
+WEBKIT_API GdkPixbuf*
+webkit_icon_database_get_icon_pixbuf (WebKitIconDatabase* database,
+ const gchar* page_uri);
+
+WEBKIT_API void
+webkit_icon_database_clear (WebKitIconDatabase* database);
+
+G_END_DECLS
+
+#endif /* webkiticondatabase_h */
diff --git a/Source/WebKit/gtk/webkit/webkitviewportattributes.cpp b/Source/WebKit/gtk/webkit/webkitviewportattributes.cpp
index 9a98e44..742cddd 100644
--- a/Source/WebKit/gtk/webkit/webkitviewportattributes.cpp
+++ b/Source/WebKit/gtk/webkit/webkitviewportattributes.cpp
@@ -542,7 +542,7 @@ void webkitViewportAttributesRecompute(WebKitViewportAttributes* viewportAttribu
priv->minimumScaleFactor = attributes.minimumScale;
priv->maximumScaleFactor = attributes.maximumScale;
priv->devicePixelRatio = attributes.devicePixelRatio;
- priv->userScalable = arguments.userScalable;
+ priv->userScalable = static_cast<bool>(arguments.userScalable);
if (!priv->isValid) {
priv->isValid = TRUE;
diff --git a/Source/WebKit/gtk/webkit/webkitwebframe.cpp b/Source/WebKit/gtk/webkit/webkitwebframe.cpp
index fd90a6c..a0e40b3 100644
--- a/Source/WebKit/gtk/webkit/webkitwebframe.cpp
+++ b/Source/WebKit/gtk/webkit/webkitwebframe.cpp
@@ -44,6 +44,7 @@
#include "JSDOMBinding.h"
#include "JSDOMWindow.h"
#include "JSElement.h"
+#include "PlatformContextCairo.h"
#include "PrintContext.h"
#include "RenderListItem.h"
#include "RenderTreeAsText.h"
@@ -765,17 +766,17 @@ static void begin_print_callback(GtkPrintOperation* op, GtkPrintContext* context
gtk_print_operation_set_n_pages(op, printContext->pageCount());
}
-static void draw_page_callback(GtkPrintOperation* op, GtkPrintContext* context, gint page_nr, gpointer user_data)
+static void draw_page_callback(GtkPrintOperation*, GtkPrintContext* gtkPrintContext, gint pageNumber, PrintContext* corePrintContext)
{
- PrintContext* printContext = reinterpret_cast<PrintContext*>(user_data);
-
- if (page_nr >= static_cast<gint>(printContext->pageCount()))
+ if (pageNumber >= static_cast<gint>(corePrintContext->pageCount()))
return;
- cairo_t* cr = gtk_print_context_get_cairo_context(context);
- GraphicsContext ctx(cr);
- float width = gtk_print_context_get_width(context);
- printContext->spoolPage(ctx, page_nr, width);
+ cairo_t* cr = gtk_print_context_get_cairo_context(gtkPrintContext);
+ float pageWidth = gtk_print_context_get_width(gtkPrintContext);
+
+ PlatformContextCairo platformContext(cr);
+ GraphicsContext graphicsContext(&platformContext);
+ corePrintContext->spoolPage(graphicsContext, pageNumber, pageWidth);
}
static void end_print_callback(GtkPrintOperation* op, GtkPrintContext* context, gpointer user_data)
diff --git a/Source/WebKit/gtk/webkit/webkitwebplugindatabase.cpp b/Source/WebKit/gtk/webkit/webkitwebplugindatabase.cpp
index 2d36115..1ed5205 100644
--- a/Source/WebKit/gtk/webkit/webkitwebplugindatabase.cpp
+++ b/Source/WebKit/gtk/webkit/webkitwebplugindatabase.cpp
@@ -74,7 +74,8 @@ static void webkit_web_plugin_database_init(WebKitWebPluginDatabase* database)
*/
void webkit_web_plugin_database_plugins_list_free(GSList* list)
{
- g_return_if_fail(list);
+ if (!list)
+ return;
for (GSList* p = list; p; p = p->next)
g_object_unref(p->data);
diff --git a/Source/WebKit/gtk/webkit/webkitwebsettings.cpp b/Source/WebKit/gtk/webkit/webkitwebsettings.cpp
index 7e7a506..3b4cf57 100644
--- a/Source/WebKit/gtk/webkit/webkitwebsettings.cpp
+++ b/Source/WebKit/gtk/webkit/webkitwebsettings.cpp
@@ -39,6 +39,8 @@
#if OS(UNIX)
#include <sys/utsname.h>
+#elif OS(WINDOWS)
+#include "SystemInfo.h"
#endif
/**
@@ -110,6 +112,7 @@ struct _WebKitWebSettingsPrivate {
gboolean enable_java_applet;
gboolean enable_hyperlink_auditing;
gboolean enable_fullscreen;
+ gboolean enable_dns_prefetching;
};
#define WEBKIT_WEB_SETTINGS_GET_PRIVATE(obj) (G_TYPE_INSTANCE_GET_PRIVATE((obj), WEBKIT_TYPE_WEB_SETTINGS, WebKitWebSettingsPrivate))
@@ -162,7 +165,8 @@ enum {
PROP_AUTO_RESIZE_WINDOW,
PROP_ENABLE_JAVA_APPLET,
PROP_ENABLE_HYPERLINK_AUDITING,
- PROP_ENABLE_FULLSCREEN
+ PROP_ENABLE_FULLSCREEN,
+ PROP_ENABLE_DNS_PREFETCHING
};
// Create a default user agent string
@@ -208,7 +212,7 @@ static String webkitOSVersion()
else
uaOSVersion = String("Unknown");
#elif OS(WINDOWS)
- DEFINE_STATIC_LOCAL(const String, uaOSVersion, (String("Windows")));
+ DEFINE_STATIC_LOCAL(const String, uaOSVersion, (windowsVersionForUAString()));
#else
DEFINE_STATIC_LOCAL(const String, uaOSVersion, (String("Unknown")));
#endif
@@ -909,6 +913,22 @@ static void webkit_web_settings_class_init(WebKitWebSettingsClass* klass)
FALSE,
flags));
+ /**
+ * WebKitWebSettings:enable-dns-prefetching
+ *
+ * Whether webkit prefetches domain names. This is a separate knob from private browsing.
+ * Whether private browsing should set this or not is up for debate, for now it doesn't.
+ *
+ * Since: 1.3.13.
+ */
+ g_object_class_install_property(gobject_class,
+ PROP_ENABLE_DNS_PREFETCHING,
+ g_param_spec_boolean("enable-dns-prefetching",
+ _("WebKit prefetches domain names"),
+ _("Whether WebKit prefetches domain names"),
+ TRUE,
+ flags));
+
g_type_class_add_private(klass, sizeof(WebKitWebSettingsPrivate));
}
@@ -1094,6 +1114,9 @@ static void webkit_web_settings_set_property(GObject* object, guint prop_id, con
case PROP_ENABLE_FULLSCREEN:
priv->enable_fullscreen = g_value_get_boolean(value);
break;
+ case PROP_ENABLE_DNS_PREFETCHING:
+ priv->enable_dns_prefetching = g_value_get_boolean(value);
+ break;
default:
G_OBJECT_WARN_INVALID_PROPERTY_ID(object, prop_id, pspec);
break;
@@ -1244,6 +1267,9 @@ static void webkit_web_settings_get_property(GObject* object, guint prop_id, GVa
case PROP_ENABLE_FULLSCREEN:
g_value_set_boolean(value, priv->enable_fullscreen);
break;
+ case PROP_ENABLE_DNS_PREFETCHING:
+ g_value_set_boolean(value, priv->enable_dns_prefetching);
+ break;
default:
G_OBJECT_WARN_INVALID_PROPERTY_ID(object, prop_id, pspec);
break;
@@ -1320,6 +1346,7 @@ WebKitWebSettings* webkit_web_settings_copy(WebKitWebSettings* web_settings)
"enable-java-applet", priv->enable_java_applet,
"enable-hyperlink-auditing", priv->enable_hyperlink_auditing,
"enable-fullscreen", priv->enable_fullscreen,
+ "enable-dns-prefetching", priv->enable_dns_prefetching,
NULL));
return copy;
diff --git a/Source/WebKit/gtk/webkit/webkitwebview.cpp b/Source/WebKit/gtk/webkit/webkitwebview.cpp
index 0ffc9d9..bf74d7b 100644
--- a/Source/WebKit/gtk/webkit/webkitwebview.cpp
+++ b/Source/WebKit/gtk/webkit/webkitwebview.cpp
@@ -85,6 +85,7 @@
#include "webkitgeolocationpolicydecision.h"
#include "webkitglobalsprivate.h"
#include "webkithittestresultprivate.h"
+#include "webkiticondatabase.h"
#include "webkitmarshal.h"
#include "webkitnetworkrequest.h"
#include "webkitnetworkresponse.h"
@@ -709,8 +710,8 @@ static gboolean webkit_web_view_expose_event(GtkWidget* widget, GdkEventExpose*
frame->view()->updateLayoutAndStyleIfNeededRecursive();
RefPtr<cairo_t> cr = adoptRef(gdk_cairo_create(event->window));
- GraphicsContext ctx(cr.get());
- ctx.setGdkExposeEvent(event);
+ GraphicsContext gc(cr.get());
+ gc.setGdkExposeEvent(event);
int rectCount;
GOwnPtr<GdkRectangle> rects;
@@ -719,7 +720,7 @@ static gboolean webkit_web_view_expose_event(GtkWidget* widget, GdkEventExpose*
for (int i = 0; i < rectCount; i++)
paintRects.append(IntRect(rects.get()[i]));
- paintWebView(frame, priv->transparent, ctx, static_cast<IntRect>(event->area), paintRects);
+ paintWebView(frame, priv->transparent, gc, static_cast<IntRect>(event->area), paintRects);
}
return FALSE;
@@ -736,7 +737,7 @@ static gboolean webkit_web_view_draw(GtkWidget* widget, cairo_t* cr)
Frame* frame = core(webView)->mainFrame();
if (frame->contentRenderer() && frame->view()) {
- GraphicsContext ctx(cr);
+ GraphicsContext gc(cr);
IntRect rect = clipRect;
cairo_rectangle_list_t* rectList = cairo_copy_clip_rectangle_list(cr);
@@ -747,7 +748,7 @@ static gboolean webkit_web_view_draw(GtkWidget* widget, cairo_t* cr)
for (int i = 0; i < rectList->num_rectangles; i++)
rects.append(enclosingIntRect(FloatRect(rectList->rectangles[i])));
}
- paintWebView(frame, priv->transparent, ctx, rect, rects);
+ paintWebView(frame, priv->transparent, gc, rect, rects);
cairo_rectangle_list_destroy(rectList);
}
@@ -2315,6 +2316,8 @@ static void webkit_web_view_class_init(WebKitWebViewClass* webViewClass)
* @icon_uri: the URI for the icon
*
* This signal is emitted when the main frame has got a favicon.
+ * See WebKitIconDatabase::icon-loaded if you want to keep track of
+ * icons for child frames.
*
* Since: 1.1.18
*/
@@ -3290,7 +3293,8 @@ static void webkit_web_view_update_settings(WebKitWebView* webView)
javaScriptCanAccessClipboard, enableOfflineWebAppCache,
enableUniversalAccessFromFileURI, enableFileAccessFromFileURI,
enableDOMPaste, tabKeyCyclesThroughElements,
- enableSiteSpecificQuirks, usePageCache, enableJavaApplet, enableHyperlinkAuditing, enableFullscreen;
+ enableSiteSpecificQuirks, usePageCache, enableJavaApplet,
+ enableHyperlinkAuditing, enableFullscreen, enableDNSPrefetching;
WebKitEditingBehavior editingBehavior;
@@ -3331,6 +3335,7 @@ static void webkit_web_view_update_settings(WebKitWebView* webView)
"enable-hyperlink-auditing", &enableHyperlinkAuditing,
"spell-checking-languages", &defaultSpellCheckingLanguages,
"enable-fullscreen", &enableFullscreen,
+ "enable-dns-prefetching", &enableDNSPrefetching,
NULL);
settings->setDefaultTextEncodingName(defaultEncoding);
@@ -3375,6 +3380,7 @@ static void webkit_web_view_update_settings(WebKitWebView* webView)
WebKit::EditorClient* client = static_cast<WebKit::EditorClient*>(core(webView)->editorClient());
static_cast<WebKit::TextCheckerClientEnchant*>(client->textChecker())->updateSpellCheckingLanguage(defaultSpellCheckingLanguages);
#endif
+ settings->setDNSPrefetchingEnabled(enableDNSPrefetching);
Page* page = core(webView);
if (page)
@@ -3441,6 +3447,8 @@ static void webkit_web_view_settings_notify(WebKitWebSettings* webSettings, GPar
settings->setJavaScriptEnabled(g_value_get_boolean(&value));
else if (name == g_intern_string("enable-plugins"))
settings->setPluginsEnabled(g_value_get_boolean(&value));
+ else if (name == g_intern_string("enable-dns-prefetching"))
+ settings->setDNSPrefetchingEnabled(g_value_get_boolean(&value));
else if (name == g_intern_string("resizable-text-areas"))
settings->setTextAreasAreResizable(g_value_get_boolean(&value));
else if (name == g_intern_string("user-stylesheet-uri"))
@@ -4337,8 +4345,7 @@ gboolean webkit_web_view_get_editable(WebKitWebView* webView)
{
g_return_val_if_fail(WEBKIT_IS_WEB_VIEW(webView), FALSE);
- Frame* frame = core(webView)->mainFrame();
- return frame && frame->document()->inDesignMode();
+ return core(webView)->isEditable();
}
/**
@@ -4363,15 +4370,14 @@ void webkit_web_view_set_editable(WebKitWebView* webView, gboolean flag)
{
g_return_if_fail(WEBKIT_IS_WEB_VIEW(webView));
- Frame* frame = core(webView)->mainFrame();
- g_return_if_fail(frame);
-
- // TODO: What happens when the frame is replaced?
flag = flag != FALSE;
if (flag == webkit_web_view_get_editable(webView))
return;
- frame->document()->setDesignMode(flag ? WebCore::Document::on : WebCore::Document::off);
+ core(webView)->setEditable(flag);
+
+ Frame* frame = core(webView)->mainFrame();
+ g_return_if_fail(frame);
if (flag) {
frame->editor()->applyEditingStyleToBodyElement();
@@ -5058,12 +5064,41 @@ WebKitHitTestResult* webkit_web_view_get_hit_test_result(WebKitWebView* webView,
G_CONST_RETURN gchar* webkit_web_view_get_icon_uri(WebKitWebView* webView)
{
g_return_val_if_fail(WEBKIT_IS_WEB_VIEW(webView), 0);
- String iconURL = iconDatabase().iconURLForPageURL(core(webView)->mainFrame()->document()->url().prettyURL());
+ String iconURL = iconDatabase().synchronousIconURLForPageURL(core(webView)->mainFrame()->document()->url().prettyURL());
webView->priv->iconURI = iconURL.utf8();
return webView->priv->iconURI.data();
}
/**
+ * webkit_web_view_get_icon_pixbuf:
+ * @webView: the #WebKitWebView object
+ *
+ * Obtains a #GdkPixbuf of the favicon for the given #WebKitWebView, or
+ * a default icon if there is no icon for the given page. Use
+ * webkit_web_view_get_icon_uri() if you need to distinguish these cases.
+ * Usually you want to connect to WebKitWebView::icon-loaded and call this
+ * method in the callback.
+ *
+ * The pixbuf will have the largest size provided by the server and should
+ * be resized before it is displayed.
+ * See also webkit_icon_database_get_icon_pixbuf().
+ *
+ * Returns: (transfer full): a new reference to a #GdkPixbuf, or %NULL
+ *
+ * Since: 1.3.13
+ */
+GdkPixbuf* webkit_web_view_get_icon_pixbuf(WebKitWebView* webView)
+{
+ g_return_val_if_fail(WEBKIT_IS_WEB_VIEW(webView), 0);
+
+ const gchar* pageURI = webkit_web_view_get_uri(webView);
+ WebKitIconDatabase* database = webkit_get_icon_database();
+ return webkit_icon_database_get_icon_pixbuf(database, pageURI);
+}
+
+
+
+/**
* webkit_web_view_get_dom_document:
* @webView: a #WebKitWebView
*
diff --git a/Source/WebKit/gtk/webkit/webkitwebview.h b/Source/WebKit/gtk/webkit/webkitwebview.h
index 1838bfe..38c9a70 100644
--- a/Source/WebKit/gtk/webkit/webkitwebview.h
+++ b/Source/WebKit/gtk/webkit/webkitwebview.h
@@ -397,6 +397,9 @@ webkit_web_view_get_hit_test_result (WebKitWebView *webView,
WEBKIT_API G_CONST_RETURN gchar *
webkit_web_view_get_icon_uri (WebKitWebView *webView);
+WEBKIT_API GdkPixbuf *
+webkit_web_view_get_icon_pixbuf (WebKitWebView *webView);
+
WEBKIT_API WebKitDOMDocument *
webkit_web_view_get_dom_document (WebKitWebView *webView);
diff --git a/Source/WebKit/haiku/ChangeLog b/Source/WebKit/haiku/ChangeLog
index b2aefce..7757fe7 100644
--- a/Source/WebKit/haiku/ChangeLog
+++ b/Source/WebKit/haiku/ChangeLog
@@ -1,3 +1,58 @@
+2011-03-25 Andy Estes <aestes@apple.com>
+
+ Reviewed by Adele Peterson.
+
+ REGRESSION (r70748): latest nightly builds kills AC_QuickTime.js
+ https://bugs.webkit.org/show_bug.cgi?id=49016
+
+ Update objectContentType() implementation to handle the
+ shouldPreferPlugInsForImages flag.
+
+ * WebCoreSupport/FrameLoaderClientHaiku.cpp:
+ (WebCore::FrameLoaderClientHaiku::objectContentType):
+ * WebCoreSupport/FrameLoaderClientHaiku.h:
+
+2011-03-25 Chang Shu <cshu@webkit.org>
+
+ Reviewed by Ryosuke Niwa.
+
+ rename Node::isContentEditable and all call sites to rendererIsEditable
+ https://bugs.webkit.org/show_bug.cgi?id=54290
+
+ This is part of the effort to separate JS API HTMLElement isContentEditable from
+ internal Node::rendererIsEditable.
+
+ * WebCoreSupport/EditorClientHaiku.cpp:
+ (WebCore::EditorClientHaiku::handleKeyboardEvent):
+
+2011-03-24 Sheriff Bot <webkit.review.bot@gmail.com>
+
+ Unreviewed, rolling out r81916 and r81917.
+ http://trac.webkit.org/changeset/81916
+ http://trac.webkit.org/changeset/81917
+ https://bugs.webkit.org/show_bug.cgi?id=57071
+
+ broke a test on platforms that do not have QuickTime installed
+ (Requested by estes on #webkit).
+
+ * WebCoreSupport/FrameLoaderClientHaiku.cpp:
+ (WebCore::FrameLoaderClientHaiku::objectContentType):
+ * WebCoreSupport/FrameLoaderClientHaiku.h:
+
+2011-03-24 Andy Estes <aestes@apple.com>
+
+ Reviewed by Darin Adler.
+
+ REGRESSION (r70748): latest nightly builds kills AC_QuickTime.js
+ https://bugs.webkit.org/show_bug.cgi?id=49016
+
+ Update objectContentType() implementation to handle the
+ shouldPreferPlugInsForImages flag.
+
+ * WebCoreSupport/FrameLoaderClientHaiku.cpp:
+ (WebCore::FrameLoaderClientHaiku::objectContentType):
+ * WebCoreSupport/FrameLoaderClientHaiku.h:
+
2011-03-07 Sam Weinig <sam@webkit.org>
Reviewed by Anders Carlsson.
diff --git a/Source/WebKit/haiku/WebCoreSupport/EditorClientHaiku.cpp b/Source/WebKit/haiku/WebCoreSupport/EditorClientHaiku.cpp
index 5c1b13f..1a84dab 100644
--- a/Source/WebKit/haiku/WebCoreSupport/EditorClientHaiku.cpp
+++ b/Source/WebKit/haiku/WebCoreSupport/EditorClientHaiku.cpp
@@ -254,7 +254,7 @@ void EditorClientHaiku::handleKeyboardEvent(KeyboardEvent* event)
if (!start)
return;
- if (start->isContentEditable()) {
+ if (start->rendererIsEditable()) {
switch (kevent->windowsVirtualKeyCode()) {
case VK_BACK:
frame->editor()->deleteWithDirection(DirectionBackward,
diff --git a/Source/WebKit/haiku/WebCoreSupport/FrameLoaderClientHaiku.cpp b/Source/WebKit/haiku/WebCoreSupport/FrameLoaderClientHaiku.cpp
index 8c42132..24a98d5 100644
--- a/Source/WebKit/haiku/WebCoreSupport/FrameLoaderClientHaiku.cpp
+++ b/Source/WebKit/haiku/WebCoreSupport/FrameLoaderClientHaiku.cpp
@@ -1,7 +1,7 @@
/*
* Copyright (C) 2006 Don Gibson <dgibson77@gmail.com>
* Copyright (C) 2006 Zack Rusin <zack@kde.org>
- * Copyright (C) 2006 Apple Computer, Inc. All rights reserved.
+ * Copyright (C) 2006, 2011 Apple Inc. All rights reserved.
* Copyright (C) 2007 Trolltech ASA
* Copyright (C) 2007 Ryan Leavengood <leavengood@gmail.com> All rights reserved.
* Copyright (C) 2009 Maxime Simon <simon.maxime@gmail.com> All rights reserved.
@@ -754,7 +754,7 @@ void FrameLoaderClientHaiku::transferLoadingResourceFromPage(unsigned long, Docu
{
}
-ObjectContentType FrameLoaderClientHaiku::objectContentType(const KURL& url, const String& mimeType)
+ObjectContentType FrameLoaderClientHaiku::objectContentType(const KURL& url, const String& mimeType, bool shouldPreferPlugInsForImages)
{
notImplemented();
return ObjectContentType();
diff --git a/Source/WebKit/haiku/WebCoreSupport/FrameLoaderClientHaiku.h b/Source/WebKit/haiku/WebCoreSupport/FrameLoaderClientHaiku.h
index 3e995a1..dbd3084 100644
--- a/Source/WebKit/haiku/WebCoreSupport/FrameLoaderClientHaiku.h
+++ b/Source/WebKit/haiku/WebCoreSupport/FrameLoaderClientHaiku.h
@@ -1,6 +1,6 @@
/*
* Copyright (C) 2006 Zack Rusin <zack@kde.org>
- * Copyright (C) 2006 Apple Computer, Inc. All rights reserved.
+ * Copyright (C) 2006, 2011 Apple Inc. All rights reserved.
* Copyright (C) 2007 Ryan Leavengood <leavengood@gmail.com> All rights reserved.
*
*
@@ -239,7 +239,7 @@ namespace WebCore {
const KURL& baseURL, const Vector<String>& paramNames,
const Vector<String>& paramValues);
- virtual ObjectContentType objectContentType(const KURL& url, const String& mimeType);
+ virtual ObjectContentType objectContentType(const KURL&, const String& mimeType, bool shouldPreferPlugInsForImages);
virtual String overrideMediaType() const;
virtual void dispatchDidClearWindowObjectInWorld(DOMWrapperWorld*);
diff --git a/Source/WebKit/mac/Carbon/CarbonWindowAdapter.mm b/Source/WebKit/mac/Carbon/CarbonWindowAdapter.mm
index 9747350..7348304 100644
--- a/Source/WebKit/mac/Carbon/CarbonWindowAdapter.mm
+++ b/Source/WebKit/mac/Carbon/CarbonWindowAdapter.mm
@@ -179,7 +179,7 @@ static OSStatus NSCarbonWindowHandleEvent(EventHandlerCallRef inEventHandlerCall
osStatus = GetWindowModality(_windowRef, &windowModality, NULL);
if (osStatus != noErr) {
- NSLog(@"Couldn't get window modality: error=%d", osStatus);
+ NSLog(@"Couldn't get window modality: error=%ld", osStatus);
return nil;
}
@@ -334,7 +334,7 @@ static OSStatus NSCarbonWindowHandleEvent(EventHandlerCallRef inEventHandlerCall
if ([self _hasWindowRef]) {
osStatus = GetWindowClass([self windowRef], &windowClass);
if (osStatus != noErr) {
- NSLog(@"Couldn't get window class: error=%d", osStatus);
+ NSLog(@"Couldn't get window class: error=%ld", osStatus);
}
}
return windowClass;
diff --git a/Source/WebKit/mac/ChangeLog b/Source/WebKit/mac/ChangeLog
index 32f8e50..afaa1e3 100644
--- a/Source/WebKit/mac/ChangeLog
+++ b/Source/WebKit/mac/ChangeLog
@@ -1,3 +1,791 @@
+2011-03-30 Alexey Proskuryakov <ap@apple.com>
+
+ Reviewed by Darin Adler.
+
+ REGRESSION (r82320): Spacebar no longer pages down
+ https://bugs.webkit.org/show_bug.cgi?id=57423
+ <rdar://problem/9207702>
+
+ Also includes some unrelated cleanup that I had in my tree.
+
+ * WebView/WebHTMLView.mm:
+ (-[WebHTMLView _interpretKeyEvent:savingCommands:]): Added an assertion that the event is
+ being dispatched to the right frame.
+ (-[WebHTMLView setMarkedText:selectedRange:]): Use 0 for a pointer, not NULL.
+ (-[WebHTMLView doCommandBySelector:]): Update eventInterpretationHadSideEffects with "|=".
+ Even if this specific command hasn't been handled, that doesn't nullify side effects from
+ previous commands.
+ (-[WebHTMLView insertText:]): Besides looking at the return value of insertText() to fix the
+ bug, removed setting _private->interpretKeyEventsParameters to 0. I don't see any way for
+ another WebHTMLView NSTextInput method to be called from within insertText:, so no one is
+ going to look at it.
+
+2011-03-30 Sam Weinig <sam@webkit.org>
+
+ Reviewed by Brady Eidson.
+
+ WebKit2: Attempting to view css file from url causes it to download
+ <rdar://problem/9102611>
+ https://bugs.webkit.org/show_bug.cgi?id=57501
+
+ * WebView/WebHTMLRepresentation.h:
+ * WebView/WebHTMLRepresentation.mm:
+ (+[WebHTMLRepresentation unsupportedTextMIMETypes]):
+ * WebView/WebHTMLView.mm:
+ (+[WebHTMLView unsupportedTextMIMETypes]):
+ Re-factor unsupportedTextMIMETypes to pull from WebCore's
+ MIMETypeRegistry, so that the list can be shared with WebKit2.
+
+2011-03-29 Beth Dakin <bdakin@apple.com>
+
+ Reviewed by Maciej Stachowiak.
+
+ Fix for https://bugs.webkit.org/show_bug.cgi?id=57408
+ webkit-min-device-pixel-ratio media query doesn't work post-SnowLeopard
+ -and corresponding-
+ <rdar://problem/8665411>
+
+ * Misc/WebNSControlExtras.m:
+ (-[NSControl sizeToFitAndAdjustWindowHeight]):
+ * WebCoreSupport/WebChromeClient.mm:
+ (WebChromeClient::scaleFactor):
+ * WebView/WebHTMLView.mm:
+ (-[WebHTMLView viewDidMoveToWindow]):
+ (-[WebHTMLView attachRootLayer:]):
+
+2011-03-29 Kent Tamura <tkent@chromium.org>
+
+ Reviewed by Dimitri Glazkov.
+
+ Make validation message bubble testable
+ https://bugs.webkit.org/show_bug.cgi?id=57290
+
+ * WebView/WebView.mm:
+ (-[WebView _preferencesChangedNotification:]): Copy the private value of
+ the timer magnification to WebCore::Settings.
+ (-[WebView validationMessageTimerMagnification]): Added.
+ (-[WebView setValidationMessageTimerMagnification:]): Added.
+ * WebView/WebViewData.h: Declare a member for the timer magnification.
+ * WebView/WebViewData.mm:
+ (-[WebViewPrivate init]): Initialize the timer magnification.
+ * WebView/WebViewPrivate.h:
+ Declare a setter and a getter for the timer magnification.
+
+2011-03-29 Kent Tamura <tkent@chromium.org>
+
+ Reviewed by Dimitri Glazkov.
+
+ [Mac] Enable interactive-validation tests on Mac DRT
+ https://bugs.webkit.org/show_bug.cgi?id=57308
+
+ * WebView/WebView.mm:
+ (-[WebView _preferencesChangedNotification:]):
+ Convey a WebView flag for interactive validation to WebCore::Settings.
+ (-[WebView interactiveFormValidationEnabled]): Added.
+ (-[WebView setInteractiveFormValidationEnabled:]): Added.
+ * WebView/WebViewData.h: Add interactiveFormValidationEnabled.
+ * WebView/WebViewData.mm:
+ (-[WebViewPrivate init]): Initialize interactiveFormValidationEnabled.
+ * WebView/WebViewPrivate.h: Add setter and getter for interactiveFormValidationEnabled.
+
+2011-03-29 Timothy Hatcher <timothy@apple.com>
+
+ Update the order of the context menu to better match AppKit on Mac.
+
+ <rdar://problem/9054893>
+
+ Reviewed by John Sullivan.
+
+ * DefaultDelegates/WebDefaultContextMenuDelegate.mm:
+ (-[WebDefaultUIDelegate webView:contextMenuItemsForElement:defaultMenuItems:]): Update the order of items.
+ * WebCoreSupport/WebPlatformStrategies.h:
+ * WebCoreSupport/WebPlatformStrategies.mm:
+ (WebPlatformStrategies::contextMenuItemTagLookUpInDictionary): Added argument for selected string.
+
+2011-03-29 Alexey Proskuryakov <ap@apple.com>
+
+ Reviewed by Darin Adler.
+
+ https://bugs.webkit.org/show_bug.cgi?id=57379
+ Clean up WK1 key event handling logic
+
+ No bugs knowingly fixed, but this makes the code more consistent.
+
+ * WebView/WebHTMLView.mm:
+ (struct WebHTMLViewInterpretKeyEventsParameters): Renamed eventWasHandled to
+ eventInterpretationHadSideEffects, because "handled" doesn't really mean much.
+ (-[WebHTMLView _executeSavedEditingCommands]): Factored out from _interpretKeyEvent for use
+ from other functions. We need to execute saved commands when an input method asks for current
+ state, because providing stale state could confuse it.
+ (-[WebHTMLView _interpretKeyEvent:savingCommands:]): Heavily commented, and updated for other
+ changes.
+ (-[WebHTMLView characterIndexForPoint:]): Call _executeSavedEditingCommands, because otherwise,
+ the answer would be stale.
+ (-[WebHTMLView firstRectForCharacterRange:]): Ditto.
+ (-[WebHTMLView selectedRange]): Ditto.
+ (-[WebHTMLView markedRange]): Ditto.
+ (-[WebHTMLView attributedSubstringFromRange:]): Ditto.
+ (-[WebHTMLView hasMarkedText]): Ditto.
+ (-[WebHTMLView unmarkText]): Call _executeSavedEditingCommands, because otherwise, we'd be
+ operating on stale data. Also, updated for eventWasHandled renaming.
+ (-[WebHTMLView setMarkedText:selectedRange:]): Ditto.
+ (-[WebHTMLView doCommandBySelector:]): Removed special handling for noop:. I verified that
+ it's no longer needed for bug 14522, presumably due to WebCore level changes. It was also
+ fragile, because there is no guarantee about when noop: is sent (also, a custom key binding
+ could have a noop: as one of its commands, although that's hardly practical).
+ Added the same "from input method" logic that we have in insertText: - I don't know of any
+ IMs that call this method, but we clearly need to execute it as part of IM processing when
+ there is marked text.
+ (-[WebHTMLView insertText:]): Removed a confusing check for [text length]. Always set
+ eventInterpretationHadSideEffects to true, becasue there is no reason to try multiple times
+ if current selection isn't editable. This is different from doCommandBySelector:, where we
+ need to give super class a chance to handle the event if our processing fails.
+ Removed a nonsense "consumedByIM = true" assignment - we no longer need it now that the
+ return value of _interpretKeyEvent is computed differently.
+
+2011-03-28 Adele Peterson <adele@apple.com>
+
+ Reviewed by Eric Seidel.
+
+ Fix for <rdar://problem/9112694> REGRESSION (r79411): "Check grammar with spelling" context menu doesn't check as you type
+ https://bugs.webkit.org/show_bug.cgi?id=57173
+
+ * WebView/WebFrame.mm:
+ (-[WebFrame hasSpellingMarker:length:]): Call new selectionStartHasMarkerFor method instead of selectionStartHasSpellingMarkerFor.
+ (-[WebFrame hasGrammarMarker:length:]): Call new selectionStartHasMarkerFor method.
+ * WebView/WebFramePrivate.h: Add hasGrammarMarker so grammar marking can be tested.
+
+2011-03-28 Alexey Proskuryakov <ap@apple.com>
+
+ Reviewed by Darin Adler.
+
+ https://bugs.webkit.org/show_bug.cgi?id=57260
+ Clean up text input code a little
+
+ * WebCoreSupport/WebEditorClient.mm:
+ (WebEditorClient::handleKeyboardEvent):
+ (WebEditorClient::handleInputMethodKeydown):
+ * WebView/WebHTMLViewInternal.h:
+ Renamed _interceptEditingKeyEvent:shouldSaveCommand:, becasue it doesn't really intercept
+ anything. It's just a version it interpretKeyEvents: that tells us whether it was handled,
+ and also possibly saves resulting commands for later execution.
+
+ * WebView/WebHTMLView.mm:
+ (-[WebHTMLView _interpretKeyEvent:savingCommands:]): Changed to use early return. Changed
+ return value in case platformEvent is null to be less mysterious. Moved receivedNOOP from
+ WebHTMLViewPrivate to WebHTMLViewInterpretKeyEventsParameters, as this is just part of event
+ handling state, like the other booleans there. Don't call interpretKeyEvents: again simply
+ because the first call resulted in no saved commands, becasue it's confusing and apparently
+ useless (I couldn't find any broken behavior).
+ (-[WebHTMLView unmarkText]): Cleaned upo BOOL vs. bool constants.
+ (-[WebHTMLView setMarkedText:selectedRange:]): Ditto.
+ (-[WebHTMLView doCommandBySelector:]): Ditto.
+ (-[WebHTMLView insertText:]): Ditto.
+
+ * WebView/WebViewInternal.h: There was no _interceptEditingKeyEvent:shouldSaveCommand:
+ method on WebView.
+
+2011-03-27 Jer Noble <jer.noble@apple.com>
+
+ Reviewed by Maciej Stachowiak.
+
+ Full Screen: disable keyboard access by default
+ https://bugs.webkit.org/show_bug.cgi?id=56684
+
+ Take into account whether keyboard access was requested when deciding whether full
+ screen mode is supported.
+
+ * WebCoreSupport/WebChromeClient.h:
+ * WebCoreSupport/WebChromeClient.mm:
+ (WebChromeClient::supportsFullScreenForElement):
+ * WebView/WebView.mm:
+ (-[WebView _supportsFullScreenForElement:WebCore::withKeyboard:]):
+ * WebView/WebViewInternal.h:
+
+2011-03-26 Jer Noble <jer.noble@apple.com>
+
+ Reviewed by Eric Carlson.
+
+ Enable the Full Screen API by default in WebKit/mac and WebKit2
+ https://bugs.webkit.org/show_bug.cgi?id=56956
+
+ * WebView/WebPreferences.mm:
+ (+[WebPreferences initialize]): Default the WebKitFullScreenEnabled preference to true.
+
+2011-03-25 Andy Estes <aestes@apple.com>
+
+ Reviewed by Adele Peterson.
+
+ REGRESSION (r70748): latest nightly builds kills AC_QuickTime.js
+ https://bugs.webkit.org/show_bug.cgi?id=49016
+
+ Update objectContentType() implementation to handle the
+ shouldPreferPlugInsForImages flag.
+
+ * WebCoreSupport/WebFrameLoaderClient.h:
+ * WebCoreSupport/WebFrameLoaderClient.mm:
+ (WebFrameLoaderClient::objectContentType):
+
+2011-03-24 Sheriff Bot <webkit.review.bot@gmail.com>
+
+ Unreviewed, rolling out r81939.
+ http://trac.webkit.org/changeset/81939
+ https://bugs.webkit.org/show_bug.cgi?id=57084
+
+ Rolling out 81939, as it's causing a number of app cache test
+ failures. (Requested by jernoble on #webkit).
+
+ * WebView/WebView.mm:
+ (-[WebView _preferencesChangedNotification:]):
+
+2011-03-23 Jer Noble <jer.noble@apple.com>
+
+ Reviewed by Maciej Stachowiak.
+
+ Application Cache should save audio/ and video/ mime types as flat files
+ https://bugs.webkit.org/show_bug.cgi?id=53784
+ <rdar://problem/8932473>
+
+ No new tests.
+
+ Initialize the AppCache Total size quotas with the values for WebKitPreferences
+ upon startup.
+
+ * WebView/WebView.mm:
+ (-[WebView _preferencesChangedNotification:]):
+
+2011-03-24 Sheriff Bot <webkit.review.bot@gmail.com>
+
+ Unreviewed, rolling out r81916 and r81917.
+ http://trac.webkit.org/changeset/81916
+ http://trac.webkit.org/changeset/81917
+ https://bugs.webkit.org/show_bug.cgi?id=57071
+
+ broke a test on platforms that do not have QuickTime installed
+ (Requested by estes on #webkit).
+
+ * WebCoreSupport/WebFrameLoaderClient.h:
+ * WebCoreSupport/WebFrameLoaderClient.mm:
+ (WebFrameLoaderClient::objectContentType):
+
+2011-03-24 Andy Estes <aestes@apple.com>
+
+ Reviewed by Darin Adler.
+
+ REGRESSION (r70748): latest nightly builds kills AC_QuickTime.js
+ https://bugs.webkit.org/show_bug.cgi?id=49016
+
+ Update objectContentType() implementation to handle the
+ shouldPreferPlugInsForImages flag.
+
+ * WebCoreSupport/WebFrameLoaderClient.h:
+ * WebCoreSupport/WebFrameLoaderClient.mm:
+ (WebFrameLoaderClient::objectContentType):
+
+2011-03-24 Geoffrey Garen <ggaren@apple.com>
+
+ Reviewed by Oliver Hunt.
+
+ Ensure that all compilation takes place within a dynamic global object scope
+ https://bugs.webkit.org/show_bug.cgi?id=57054
+
+ * WebView/WebScriptDebugDelegate.mm:
+ (-[WebScriptCallFrame evaluateWebScript:]): Updated for signature change.
+
+2011-03-24 Jia Pu <jpu@apple.com>
+
+ Reviewed by Darin Adler.
+
+ Dismissed reversion suggestion is incorrectly learned.
+ https://bugs.webkit.org/show_bug.cgi?id=57039
+
+ CorrectionPanel should always use [NSSpellChecker dismissCorrectionBubbleForView].
+ [NSSpellChecker cancelCorrectionBubbleForView] is reserved for situation where correction panel
+ is dismissed explicitly by ESC key or clicking the dimiss button. Misusing these causes
+ incorrect automatic learning.
+
+ * WebCoreSupport/CorrectionPanel.mm:
+ (CorrectionPanel::dismissInternal):
+
+2011-03-24 David Kilzer <ddkilzer@apple.com>
+
+ <http://webkit.org/b/56993> ENABLE_PLUGIN_PROXY_FOR_VIDEO should be defined to 0 on Mac OS X
+
+ Reviewed by Joseph Pecoraro.
+
+ * Plugins/WebPluginContainerPrivate.h: Changed value of
+ ENABLE_PLUGIN_PROXY_FOR_VIDEO from 1 to 0.
+
+2011-03-23 Jia Pu <jpu@apple.com>
+
+ Reviewed by Darin Adler.
+
+ Hook up new AppKit autocorrection UI with WK2.
+ https://bugs.webkit.org/show_bug.cgi?id=56055
+ <rdar://problem/8947463>
+
+ Please see WebCore/ChangeLog for detail.
+
+ * WebCoreSupport/CorrectionPanel.h: Added.
+ (CorrectionPanel::isShowing):
+ * WebCoreSupport/CorrectionPanel.mm: Added.
+ (correctionBubbleType):
+ (CorrectionPanel::CorrectionPanel):
+ (CorrectionPanel::~CorrectionPanel):
+ (CorrectionPanel::show):
+ (CorrectionPanel::dismiss):
+ (CorrectionPanel::dismissSoon):
+ (CorrectionPanel::dismissInternal):
+ (CorrectionPanel::recordAutocorrectionResponse):
+ * WebCoreSupport/WebEditorClient.h:
+ * WebCoreSupport/WebEditorClient.mm:
+ (WebEditorClient::WebEditorClient):
+ (WebEditorClient::showCorrectionPanel):
+ (WebEditorClient::dismissCorrectionPanel):
+ (WebEditorClient::dismissCorrectionPanelSoon):
+ (WebEditorClient::recordAutocorrectionResponse):
+ * WebView/WebView.mm:
+ (-[WebView handleCorrectionPanelResult:]):
+ * WebView/WebViewPrivate.h:
+
+2011-03-23 Enrica Casucci <enrica@apple.com>
+
+ Reviewed by Alexey Proskuryakov.
+
+ Services menu item to convert selected Simplified/Traditional Chinese Text is not working.
+ https://bugs.webkit.org/show_bug.cgi?id=56974
+ <rdar://problem/8284642>
+
+ This fixes a regression introduced by http://trac.webkit.org/changeset/61794
+ where readSelectionFromPasteboard was accidentally removed.
+ This method and writeSelectionToPasteboard are needed to support Mac OS X
+ services.
+
+ * WebView/WebHTMLView.mm:
+ (-[WebHTMLView _pasteAsPlainTextWithPasteboard:]): Added.
+ (-[WebHTMLView readSelectionFromPasteboard:]): Added.
+
+2011-03-23 Brady Eidson <beidson@apple.com>
+
+ Reviewed by Sam Weinig.
+
+ Change IconDatabase opening to allow for arbitrary filenames
+ https://bugs.webkit.org/show_bug.cgi?id=56977
+
+ * Misc/WebIconDatabase.mm:
+ (-[WebIconDatabase _startUpIconDatabase]):
+
+2011-03-22 Anton D'Auria <adauria@apple.com>
+
+ Reviewed by Alexey Proskuryakov.
+
+ Add +[WebApplicationCache getOriginsWithCache]
+ https://bugs.webkit.org/show_bug.cgi?id=56722
+
+ Call existing WebCore::ApplicationCacheStorage::getOriginsWithCache API.
+
+ * WebCoreSupport/WebApplicationCache.h:
+ * WebCoreSupport/WebApplicationCache.mm:
+ (+[WebApplicationCache originsWithCache]):
+
+2011-03-22 Anders Carlsson <andersca@apple.com>
+
+ Reviewed by Sam Weinig.
+
+ OBJECT element with DivX source is always downloaded
+ https://bugs.webkit.org/show_bug.cgi?id=56879
+
+ * Plugins/WebBasePluginPackage.mm:
+ (-[WebBasePluginPackage getPluginInfoFromPLists]):
+ Always try to split every element in the "WebPluginExtensions" array, since the DivX plug-in
+ specifies multiple file extensions in a single element.
+
+2011-03-22 Brady Eidson <beidson@apple.com>
+
+ Reviewed by Sam Weinig.
+
+ <rdar://problem/8648311> and https://bugs.webkit.org/show_bug.cgi?id=56876
+ WK2 Icon DB: Expand IconDatabaseClient interface and move it to the main thread
+
+ Note that while the new client calls always come through on the main thread, our mechanisms to
+ route dispatches to the main thread are still valid and will still work.
+
+ Update to the new IconDatabaseClient interface:
+ * WebCoreSupport/WebIconDatabaseClient.h:
+ * WebCoreSupport/WebIconDatabaseClient.mm:
+ (WebIconDatabaseClient::didRemoveAllIcons):
+ (WebIconDatabaseClient::didImportIconURLForPageURL):
+ (WebIconDatabaseClient::didImportIconDataForPageURL):
+ (WebIconDatabaseClient::didChangeIconForPageURL):
+ (WebIconDatabaseClient::didFinishURLImport):
+
+2011-03-22 Matthew Delaney <mdelaney@apple.com>
+
+ Reviewed by Simon Fraser.
+
+ Have WebKit push acceleratedDrawing preferences to settings
+ https://bugs.webkit.org/show_bug.cgi?id=56792
+
+ * WebView/WebView.mm:
+
+2011-03-21 Nate Chapin <japhet@chromium.org>
+
+ Reviewed by Brady Eidson.
+
+ Expose a preference to use caching quirks for QuickLook,
+ and use it if the QuickLook framework is loaded.
+
+ https://bugs.webkit.org/show_bug.cgi?id=38690
+
+ * WebView/WebPreferenceKeysPrivate.h:
+ * WebView/WebPreferences.mm:
+ (useQuickLookQuirks):
+ (+[WebPreferences initialize]):
+ (-[WebPreferences useQuickLookResourceCachingQuirks]):
+ * WebView/WebPreferencesPrivate.h:
+ * WebView/WebView.mm:
+ (-[WebView _preferencesChangedNotification:]):
+
+2011-03-21 Chris Fleizach <cfleizach@apple.com>
+
+ Reviewed by Darin Adler.
+
+ AX: showContextMenu not working in WK2
+ https://bugs.webkit.org/show_bug.cgi?id=56734
+
+ Implement showContextMenu() so accessibility related code can call this
+ independent of whether WK1 or WK2 is running.
+
+ * WebCoreSupport/WebChromeClient.h:
+ * WebCoreSupport/WebChromeClient.mm:
+ (WebChromeClient::showContextMenu):
+
+2011-03-21 Chang Shu <cshu@webkit.org>
+
+ Reviewed by Alexey Proskuryakov.
+
+ REGRESSION (r79953): Can't type in MS Outlook 2011
+ https://bugs.webkit.org/show_bug.cgi?id=56665
+
+ r79953 removed the WebView level editablity which is persistent no matter whether
+ underlying document itself is changed and editability gets lost. The resolution is to
+ set this WebView editable value to WebCore. This avoids the callback from WebCore to
+ WebKit which was the main goal in r79953 to improve performance.
+
+ * WebView/WebView.mm:
+ (-[WebView setEditable:]):
+ (-[WebView isEditable]):
+
+2011-03-19 Anton D'Auria <adauria@apple.com>
+
+ Reviewed by Alexey Proskuryakov.
+
+ ApplicationCacheGroup is not obsolete after being deleted via ApplicationCacheStorage::deleteEntriesForOrigin
+ https://bugs.webkit.org/show_bug.cgi?id=56415
+
+ Use new ApplicationCache API to delete all cache for an origin.
+
+ * WebCoreSupport/WebApplicationCache.h:
+ * WebCoreSupport/WebApplicationCache.mm:
+ (+[WebApplicationCache deleteOrigin:]):
+
+2011-03-17 Brady Eidson <beidson@apple.com>
+
+ Reviewed by Sam Weinig.
+
+ https://bugs.webkit.org/show_bug.cgi?id=56425
+ More groundwork for WebKit2 IconDatabase
+
+ Update already-used function names:
+ * Misc/WebIconDatabase.mm:
+ (-[WebIconDatabase iconForURL:withSize:cache:]):
+ (-[WebIconDatabase iconURLForURL:]):
+ * WebView/WebView.mm:
+ (-[WebView _dispatchDidReceiveIconFromWebFrame:]):
+
+2011-03-18 Pavel Podivilov <podivilov@chromium.org>
+
+ Reviewed by Yury Semikhatsky.
+
+ Web Inspector: implement inspector session storage.
+ https://bugs.webkit.org/show_bug.cgi?id=56643
+
+ * WebCoreSupport/WebInspectorClient.h:
+ * WebCoreSupport/WebInspectorClient.mm:
+ (WebInspectorClient::saveSessionSetting):
+ (WebInspectorClient::loadSessionSetting):
+ (WebInspectorFrontendClient::saveSessionSetting):
+ (WebInspectorFrontendClient::loadSessionSetting):
+ (-[WebInspectorWindowController inspectorClient]):
+
+2011-03-17 Geoffrey Garen <ggaren@apple.com>
+
+ Reviewed by Oliver Hunt.
+
+ Fixed a leak seen on the buildbot.
+
+ * WebCoreSupport/WebInspectorClient.mm:
+ (WebInspectorClient::openInspectorFrontend): Smart pointers are smart.
+
+2011-03-16 Jeff Johnson <github@lapcatsoftware.com>
+
+ Reviewed by Alexey Proskuryakov.
+
+ Logic error in -[WebHTMLView close]
+ https://bugs.webkit.org/show_bug.cgi?id=56445
+
+ Page is always nil at this point, because [self _webView] is nil,
+ so the conditional code is never run.
+
+ * WebView/WebHTMLView.mm:
+ (-[WebHTMLView close]):
+
+2011-03-16 Chris Fleizach <cfleizach@apple.com>
+
+ Reviewed by Darin Adler.
+
+ WK2: Need to propagate enhanced accessibility flag from UI -> web process
+ https://bugs.webkit.org/show_bug.cgi?id=56379
+
+ * WebView/WebFrame.mm:
+ (-[WebFrame accessibilityRoot]):
+
+2011-03-15 Oliver Hunt <oliver@apple.com>
+
+ Reviewed by Geoffrey Garen.
+
+ Make Structure creation require a JSGlobalData
+ https://bugs.webkit.org/show_bug.cgi?id=56438
+
+ Mechanical change to make all Structure creation use a JSGlobalData&
+
+ * Plugins/Hosted/ProxyInstance.mm:
+ (WebKit::ProxyRuntimeMethod::createStructure):
+ * Plugins/Hosted/ProxyRuntimeObject.h:
+ (WebKit::ProxyRuntimeObject::createStructure):
+
+2011-03-15 Alexey Proskuryakov <ap@apple.com>
+
+ Forgot to save a modification to this file when committing.
+
+ * WebCoreSupport/WebKeyGenerator.mm: Changed "Apple Computer" to "Apple" in copyright header.
+
+2011-03-15 Alexey Proskuryakov <ap@apple.com>
+
+ Reviewed by Darin Adler.
+
+ REGRESSION (WebKit2): keygen element doesn't work
+ https://bugs.webkit.org/show_bug.cgi?id=56402
+ <rdar://problem/9006545>
+
+ * WebCoreSupport/WebKeyGenerator.h:
+ * WebCoreSupport/WebKeyGenerator.m: Removed.
+ * WebCoreSupport/WebKeyGenerator.mm: Copied from Source/WebKit/mac/WebCoreSupport/WebKeyGenerator.m.
+ (+[WebKeyGenerator sharedGenerator]):
+ (toWebCertificateParseResult):
+ WebCore no longer needs WebKeyGenerator. Safari still does need a part of it, so keeping
+ this misnamed and misplaced code for now.
+
+ * WebCoreSupport/WebPlatformStrategies.h:
+ * WebCoreSupport/WebPlatformStrategies.mm:
+ (WebPlatformStrategies::keygenMenuItem512):
+ (WebPlatformStrategies::keygenMenuItem1024):
+ (WebPlatformStrategies::keygenMenuItem2048):
+ (WebPlatformStrategies::keygenKeychainItemName):
+ Added strings used by keygen.
+
+ * WebCoreSupport/WebSystemInterface.mm: (InitWebCoreSystemInterface): Initialize a WebCore
+ pointer to a function used by keygen.
+
+ * WebView/WebFrameView.mm: (-[WebFrameView initWithFrame:]): WebKeyGenerator can be lazily
+ initialized now.
+
+2011-03-15 Beth Dakin <bdakin@apple.com>
+
+ Reviewed by Simon Fraser.
+
+ WebKit part of <rdar://problem/9075624> Overlay scrollbars slow down PLT by 6%
+
+ New WebKitystemInterface function to force the scrollbars to flash
+ * WebCoreSupport/WebSystemInterface.mm:
+ (InitWebCoreSystemInterface):
+
+2011-03-15 Ilya Sherman <isherman@chromium.org>
+
+ Reviewed by Tony Chang.
+
+ Autofilled form elements are assigned fixed background color but not text color
+ https://bugs.webkit.org/show_bug.cgi?id=48382
+
+ * DOM/WebDOMOperations.mm:
+ (-[DOMHTMLInputElement _setAutofilled:]): Added (wrapper).
+ * DOM/WebDOMOperationsPrivate.h:
+
+2011-03-15 Adam Roben <aroben@apple.com>
+
+ Fix a leak in WebStorageTrackerClient::dispatchDidModifyOrigin
+
+ Fixes <http://webkit.org/b/56385> SecurityOrigin leaks seen in
+ WebStorageTrackerClient::dispatchDidModifyOrigin
+
+ Reviewed by Antti Koivisto.
+
+ * Storage/WebStorageTrackerClient.mm:
+ (WebStorageTrackerClient::dispatchDidModifyOriginOnMainThread): Adopt the reference passed
+ to us by dispatchDidModifyOrigin.
+ (WebStorageTrackerClient::dispatchDidModifyOrigin): Added a comment and removed an
+ unnecessary cast.
+
+2011-03-15 Kevin Ollivier <kevino@theolliviers.com>
+
+ Reviewed by Darin Adler.
+
+ Introduce WTF_USE_EXPORT_MACROS, which will allow us to put shared library import/export
+ info into the headers rather than in export symbol definition files, but disable it on
+ all platforms initially so we can deal with port build issues one port at a time.
+
+ https://bugs.webkit.org/show_bug.cgi?id=27551
+
+ * WebKitPrefix.h:
+
+2011-03-14 Brady Eidson <beidson@apple.com>
+
+ Reviewed by Anders Carlsson.
+
+ https://bugs.webkit.org/show_bug.cgi?id=56320
+ Remove HistoryItem::icon() and the WebCore dependency on "IconDatabaseBase::defaultIcon()"
+
+ * History/WebHistoryItem.mm:
+ (-[WebHistoryItem icon]): This far-future FIXME is now irrelevant.
+
+2011-03-13 Pratik Solanki <psolanki@apple.com>
+
+ Reviewed by Brady Eidson.
+
+ Make adjustMIMETypeIfNecessary use CFNetwork directly
+ https://bugs.webkit.org/show_bug.cgi?id=55912
+
+ * WebCoreSupport/WebSystemInterface.mm:
+ (InitWebCoreSystemInterface): Support for new WKSI functions.
+
+2011-03-12 Mark Rowe <mrowe@apple.com>
+
+ Fix the 32-bit build.
+
+ * Carbon/CarbonWindowAdapter.mm:
+ (-[CarbonWindowAdapter initWithCarbonWindowRef:takingOwnership:disableOrdering:carbon:]): Use a more appropriate format specifier.
+ (-[CarbonWindowAdapter _carbonWindowClass]): Ditto.
+
+2011-03-11 Brady Eidson <beidson@apple.com>
+
+ Reviewed by Anders Carlsson
+
+ <rdar://problem/8648311> and https://bugs.webkit.org/show_bug.cgi?id=56216
+ Rework disabled IconDatabase builds while allowing for a pluggable icon database implementation.
+
+ * Misc/WebIconDatabase.mm:
+ (+[WebIconDatabase _checkIntegrityBeforeOpening]): Call these static methods on IconDatabase::, not iconDatabase().
+ (-[WebIconDatabase _startUpIconDatabase]): Ditto.
+ (importToWebCoreFormat):
+
+2011-03-11 Anton D'Auria <adauria@apple.com>
+
+ Reviewed and landed by Brady Eidson.
+
+ https://bugs.webkit.org/show_bug.cgi?id=51878
+ Add WebKit1 API to view and delete local storage
+
+ * Storage/WebStorageManager.mm: Added.
+ (+[WebStorageManager sharedWebStorageManager]):
+ (-[WebStorageManager origins]):
+ (-[WebStorageManager deleteAllOrigins]):
+ (-[WebStorageManager deleteOrigin:]):
+ (-[WebStorageManager syncLocalStorage]):
+ (-[WebStorageManager syncFileSystemAndTrackerDatabase]):
+ (storageDirectoryPath):
+ (WebKitInitializeStorageIfNecessary):
+ * Storage/WebStorageManagerInternal.h: Added.
+ * Storage/WebStorageManagerPrivate.h: Added.
+ * Storage/WebStorageTrackerClient.h: Added.
+ * Storage/WebStorageTrackerClient.mm: Added.
+ (WebStorageTrackerClient::sharedWebStorageTrackerClient):
+ (WebStorageTrackerClient::WebStorageTrackerClient):
+ (WebStorageTrackerClient::~WebStorageTrackerClient):
+ (WebStorageTrackerClient::dispatchDidModifyOriginOnMainThread):
+ (WebStorageTrackerClient::dispatchDidModifyOrigin):
+ * WebCoreSupport/WebSecurityOrigin.mm:
+ (-[WebSecurityOrigin protocol]):
+ (-[WebSecurityOrigin host]):
+ (-[WebSecurityOrigin databaseIdentifier]):
+ (-[WebSecurityOrigin domain]):
+ (-[WebSecurityOrigin _initWithWebCoreSecurityOrigin:]):
+ * WebCoreSupport/WebSecurityOriginPrivate.h:
+ * WebKit.exp:
+ * WebView/WebView.mm:
+ (-[WebView _commonInitializationWithFrameName:groupName:usesDocumentViews:]):
+
+2011-03-10 Anders Carlsson <andersca@apple.com>
+
+ Reviewed by Sam Weinig.
+
+ <rdar://problem/9117047>
+ Don't paint more than 60 times per second even when scrolling
+
+ * WebView/WebClipView.mm:
+ (-[WebClipView _immediateScrollToPoint:]):
+
+2011-03-09 Matthew Delaney <mdelaney@apple.com>
+
+ Reviewed by Simon Fraser.
+
+ Plumb through settings for accelerated drawing for canvas
+ https://bugs.webkit.org/show_bug.cgi?id=56039
+
+ * WebView/WebPreferenceKeysPrivate.h:
+ * WebView/WebPreferences.mm:
+ * WebView/WebPreferencesPrivate.h:
+
+2011-03-10 Ryosuke Niwa <rniwa@webkit.org>
+
+ Reviewed by Tony Chang.
+
+ VisiblePosition's next and previous should take an enum instead of a boolean
+ https://bugs.webkit.org/show_bug.cgi?id=56135
+
+ SelectionController::isAll now takes EditingBoundaryCrossingRule instead of
+ StayInEditableContent.
+
+ * WebView/WebView.mm:
+ (-[WebView _selectionIsAll]):
+
+2011-03-09 Jessie Berlin <jberlin@apple.com>
+
+ Reviewed by Adam Roben.
+
+ Use the Cookie Storage from the Private Browsing Storage Session directly
+ https://bugs.webkit.org/show_bug.cgi?id=55986
+
+ * WebCoreSupport/WebSystemInterface.mm:
+ (InitWebCoreSystemInterface):
+
+2011-03-08 Darin Adler <darin@apple.com>
+
+ Reviewed by Timothy Hatcher.
+
+ Promote a method used outside WebKit from internal to private
+ https://bugs.webkit.org/show_bug.cgi?id=55949
+
+ * Misc/WebNSPasteboardExtras.mm: Removed an unused category declaration.
+ Minor tweak, not directly related to the rest of this patch.
+
+ * WebView/WebFrame.mm:
+ (-[WebFrame _computePageRectsWithPrintScaleFactor:pageSize:]): Moved
+ this method from the internal category into the private category.
+ Streamlined the code a bit.
+
+ * WebView/WebFrameInternal.h: Removed _computePageRects method.
+ * WebView/WebFramePrivate.h: Added _computePageRects method.
+
2011-03-07 Ryosuke Niwa <rniwa@webkit.org>
Reviewed by Darin Adler.
diff --git a/Source/WebKit/mac/Configurations/Base.xcconfig b/Source/WebKit/mac/Configurations/Base.xcconfig
index 0e84791..0cf0f7a 100644
--- a/Source/WebKit/mac/Configurations/Base.xcconfig
+++ b/Source/WebKit/mac/Configurations/Base.xcconfig
@@ -25,7 +25,6 @@ DEBUG_INFORMATION_FORMAT = dwarf;
GCC_C_LANGUAGE_STANDARD = gnu99;
GCC_DEBUGGING_SYMBOLS = default;
GCC_DYNAMIC_NO_PIC = NO;
-GCC_ENABLE_CPP_EXCEPTIONS = NO;
GCC_ENABLE_CPP_RTTI = NO;
GCC_ENABLE_OBJC_EXCEPTIONS = YES;
GCC_ENABLE_OBJC_GC = $(GCC_ENABLE_OBJC_GC_$(REAL_PLATFORM_NAME));
@@ -104,12 +103,23 @@ TARGET_GCC_VERSION_macosx_1050_ = $(TARGET_GCC_VERSION_macosx_1050_$(XCODE_VERSI
TARGET_GCC_VERSION_macosx_1050_0310 = GCC_42;
TARGET_GCC_VERSION_macosx_1050_0320 = GCC_42;
TARGET_GCC_VERSION_macosx_1060 = GCC_42;
-TARGET_GCC_VERSION_macosx_1070 = LLVM_GCC_42;
+TARGET_GCC_VERSION_macosx_1070 = $(TARGET_GCC_VERSION_macosx_1070_$(CONFIGURATION));
+TARGET_GCC_VERSION_macosx_1070_Debug = LLVM_COMPILER;
+TARGET_GCC_VERSION_macosx_1070_Release = LLVM_GCC_42;
+TARGET_GCC_VERSION_macosx_1070_Production = LLVM_GCC_42;
GCC_VERSION = $(GCC_VERSION_$(TARGET_GCC_VERSION));
GCC_VERSION_GCC_40 = 4.0;
GCC_VERSION_GCC_42 = 4.2;
GCC_VERSION_LLVM_GCC_42 = com.apple.compilers.llvmgcc42;
+GCC_VERSION_LLVM_COMPILER = com.apple.compilers.llvm.clang.1_0;
+
+// FIXME: Disable C++ exceptions in the LLVM Compiler once it supports enabling Obj-C exceptions without C++ exceptions.
+GCC_ENABLE_CPP_EXCEPTIONS = $(GCC_ENABLE_CPP_EXCEPTIONS_$(TARGET_GCC_VERSION));
+GCC_ENABLE_CPP_EXCEPTIONS_GCC_40 = NO;
+GCC_ENABLE_CPP_EXCEPTIONS_GCC_42 = NO;
+GCC_ENABLE_CPP_EXCEPTIONS_LLVM_GCC = NO;
+GCC_ENABLE_CPP_EXCEPTIONS_LLVM_COMPILER = YES;
// If the target Mac OS X version does not match the current Mac OS X version then we'll want to build using the target version's SDK.
SDKROOT = $(SDKROOT_$(MAC_OS_X_VERSION_MAJOR)_$(TARGET_MAC_OS_X_VERSION_MAJOR));
diff --git a/Source/WebKit/mac/Configurations/Version.xcconfig b/Source/WebKit/mac/Configurations/Version.xcconfig
index b6a6045..5e8e50b 100644
--- a/Source/WebKit/mac/Configurations/Version.xcconfig
+++ b/Source/WebKit/mac/Configurations/Version.xcconfig
@@ -22,7 +22,7 @@
// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
MAJOR_VERSION = 534;
-MINOR_VERSION = 24;
+MINOR_VERSION = 27;
TINY_VERSION = 0;
FULL_VERSION = $(MAJOR_VERSION).$(MINOR_VERSION);
diff --git a/Source/WebKit/mac/DOM/WebDOMOperations.mm b/Source/WebKit/mac/DOM/WebDOMOperations.mm
index eee4919..979433d 100644
--- a/Source/WebKit/mac/DOM/WebDOMOperations.mm
+++ b/Source/WebKit/mac/DOM/WebDOMOperations.mm
@@ -197,6 +197,11 @@ using namespace JSC;
@implementation DOMHTMLInputElement (WebDOMHTMLInputElementOperationsPrivate)
+- (void)_setAutofilled:(BOOL)autofilled
+{
+ static_cast<HTMLInputElement*>(core((DOMElement *)self))->setAutofilled(autofilled);
+}
+
- (void)_setValueForUser:(NSString *)value
{
static_cast<HTMLInputElement*>(core((DOMElement *)self))->setValueForUser(value);
diff --git a/Source/WebKit/mac/DOM/WebDOMOperationsPrivate.h b/Source/WebKit/mac/DOM/WebDOMOperationsPrivate.h
index dc1aaf8..b579a6f 100644
--- a/Source/WebKit/mac/DOM/WebDOMOperationsPrivate.h
+++ b/Source/WebKit/mac/DOM/WebDOMOperationsPrivate.h
@@ -39,6 +39,7 @@
@end
@interface DOMHTMLInputElement (WebDOMHTMLInputElementOperationsPrivate)
+- (void)_setAutofilled:(BOOL)autofilled;
- (void)_setValueForUser:(NSString *)value;
@end
diff --git a/Source/WebKit/mac/DefaultDelegates/WebDefaultContextMenuDelegate.mm b/Source/WebKit/mac/DefaultDelegates/WebDefaultContextMenuDelegate.mm
index a2f02e6..a6dd828 100644
--- a/Source/WebKit/mac/DefaultDelegates/WebDefaultContextMenuDelegate.mm
+++ b/Source/WebKit/mac/DefaultDelegates/WebDefaultContextMenuDelegate.mm
@@ -129,6 +129,12 @@
}
}
+#if defined(BUILDING_ON_TIGER) || defined(BUILDING_ON_LEOPARD) || defined(BUILDING_ON_SNOW_LEOPARD)
+#define INCLUDE_SPOTLIGHT_CONTEXT_MENU_ITEM 1
+#else
+#define INCLUDE_SPOTLIGHT_CONTEXT_MENU_ITEM 0
+#endif
+
- (NSArray *)webView:(WebView *)wv contextMenuItemsForElement:(NSDictionary *)element defaultMenuItems:(NSArray *)defaultMenuItems
{
// The defaultMenuItems here are ones supplied by the WebDocumentView protocol implementation. WebPDFView is
@@ -141,16 +147,29 @@
// The Spotlight and Google items are implemented in WebView, and require that the
// current document view conforms to WebDocumentText
ASSERT([[[webFrame frameView] documentView] conformsToProtocol:@protocol(WebDocumentText)]);
- [menuItems addObject:[self menuItemWithTag:WebMenuItemTagSearchInSpotlight target:nil representedObject:element]];
- [menuItems addObject:[self menuItemWithTag:WebMenuItemTagSearchWeb target:nil representedObject:element]];
- [menuItems addObject:[NSMenuItem separatorItem]];
// FIXME 4184640: The Look Up in Dictionary item is only implemented in WebHTMLView, and so is present but
// dimmed for other cases where WebElementIsSelectedKey is present. It would probably
// be better not to include it in the menu if the documentView isn't a WebHTMLView, but that could break
// existing clients that have code that relies on it being present (unlikely for clients outside of Apple,
// but Safari has such code).
- [menuItems addObject:[self menuItemWithTag:WebMenuItemTagLookUpInDictionary target:nil representedObject:element]];
+
+#if INCLUDE_SPOTLIGHT_CONTEXT_MENU_ITEM
+ [menuItems addObject:[self menuItemWithTag:WebMenuItemTagSearchInSpotlight target:nil representedObject:element]];
+#else
+ NSMenuItem *lookupMenuItem = [self menuItemWithTag:WebMenuItemTagLookUpInDictionary target:nil representedObject:element];
+ NSString *selectedString = [(id <WebDocumentText>)[[webFrame frameView] documentView] selectedString];
+ [lookupMenuItem setTitle:[NSString stringWithFormat:UI_STRING_INTERNAL("Look Up “%@”", "Look Up context menu item with selected word"), selectedString]];
+ [menuItems addObject:lookupMenuItem];
+#endif
+
+ [menuItems addObject:[self menuItemWithTag:WebMenuItemTagSearchWeb target:nil representedObject:element]];
+
+#if INCLUDE_SPOTLIGHT_CONTEXT_MENU_ITEM
+ [menuItems addObject:[NSMenuItem separatorItem]];
+ [menuItems addObject:[self menuItemWithTag:WebMenuItemTagLookUpInDictionary target:nil representedObject:element]];
+#endif
+
[menuItems addObject:[NSMenuItem separatorItem]];
[menuItems addObject:[self menuItemWithTag:WebMenuItemTagCopy target:nil representedObject:element]];
} else {
diff --git a/Source/WebKit/mac/History/WebHistoryItem.mm b/Source/WebKit/mac/History/WebHistoryItem.mm
index de56180..530b18a 100644
--- a/Source/WebKit/mac/History/WebHistoryItem.mm
+++ b/Source/WebKit/mac/History/WebHistoryItem.mm
@@ -185,12 +185,6 @@ void WKNotifyHistoryItemChanged(HistoryItem*)
- (NSImage *)icon
{
return [[WebIconDatabase sharedIconDatabase] iconForURL:[self URLString] withSize:WebIconSmallSize];
-
- // FIXME: Ideally, this code should simply be the following -
- // return core(_private)->icon()->getNSImage();
- // Once radar -
- // <rdar://problem/4906567> - NSImage returned from WebCore::Image may be incorrect size
- // is resolved
}
- (NSTimeInterval)lastVisitedTimeInterval
diff --git a/Source/WebKit/mac/Misc/WebIconDatabase.mm b/Source/WebKit/mac/Misc/WebIconDatabase.mm
index 50bcd7e..f223f09 100644
--- a/Source/WebKit/mac/Misc/WebIconDatabase.mm
+++ b/Source/WebKit/mac/Misc/WebIconDatabase.mm
@@ -137,8 +137,8 @@ static WebIconDatabaseClient* defaultClient()
// FIXME - <rdar://problem/4697934> - Move the handling of FileURLs to WebCore and implement in ObjC++
if ([URL _webkit_isFileURL])
return [self _iconForFileURL:URL withSize:size];
-
- if (Image* image = iconDatabase().iconForPageURL(URL, IntSize(size)))
+
+ if (Image* image = iconDatabase().synchronousIconForPageURL(URL, IntSize(size)))
if (NSImage *icon = webGetNSImage(image, size))
return icon;
return [self defaultIconForURL:URL withSize:size];
@@ -155,7 +155,7 @@ static WebIconDatabaseClient* defaultClient()
return nil;
ASSERT_MAIN_THREAD();
- return iconDatabase().iconURLForPageURL(URL);
+ return iconDatabase().synchronousIconURLForPageURL(URL);
}
- (NSImage *)defaultIconWithSize:(NSSize)size
@@ -258,7 +258,7 @@ static WebIconDatabaseClient* defaultClient()
+ (void)_checkIntegrityBeforeOpening
{
- iconDatabase().checkIntegrityBeforeOpening();
+ IconDatabase::checkIntegrityBeforeOpening();
}
@end
@@ -296,14 +296,14 @@ static WebIconDatabaseClient* defaultClient()
NSString *legacyDB = [databaseDirectory stringByAppendingPathComponent:@"icon.db"];
NSFileManager *defaultManager = [NSFileManager defaultManager];
if ([defaultManager fileExistsAtPath:legacyDB isDirectory:&isDirectory] && !isDirectory) {
- NSString *newDB = [databaseDirectory stringByAppendingPathComponent:iconDatabase().defaultDatabaseFilename()];
+ NSString *newDB = [databaseDirectory stringByAppendingPathComponent:IconDatabase::defaultDatabaseFilename()];
if (![defaultManager fileExistsAtPath:newDB])
rename([legacyDB fileSystemRepresentation], [newDB fileSystemRepresentation]);
}
// Set the private browsing pref then open the WebCore icon database
iconDatabase().setPrivateBrowsingEnabled([[WebPreferences standardPreferences] privateBrowsingEnabled]);
- if (!iconDatabase().open(databaseDirectory))
+ if (!iconDatabase().open(databaseDirectory, IconDatabase::defaultDatabaseFilename()))
LOG_ERROR("Unable to open icon database");
// Register for important notifications
@@ -656,7 +656,7 @@ bool importToWebCoreFormat()
NSFileManager *fileManager = [NSFileManager defaultManager];
enumerator = [[fileManager contentsOfDirectoryAtPath:databaseDirectory error:NULL] objectEnumerator];
- NSString *databaseFilename = iconDatabase().defaultDatabaseFilename();
+ NSString *databaseFilename = IconDatabase::defaultDatabaseFilename();
BOOL foundIconDB = NO;
NSString *file;
diff --git a/Source/WebKit/mac/Misc/WebNSControlExtras.m b/Source/WebKit/mac/Misc/WebNSControlExtras.m
index b666131..dc91e23 100644
--- a/Source/WebKit/mac/Misc/WebNSControlExtras.m
+++ b/Source/WebKit/mac/Misc/WebNSControlExtras.m
@@ -44,7 +44,15 @@
NSWindow *window = [self window];
NSRect windowFrame = [window frame];
- windowFrame.size.height += heightDelta * [window userSpaceScaleFactor];
+
+ CGFloat userSpaceScaleFactor;
+#if !defined(BUILDING_ON_LEOPARD) && !defined(BUILDING_ON_SNOW_LEOPARD)
+ userSpaceScaleFactor = [window backingScaleFactor];
+#else
+ userSpaceScaleFactor = [window userSpaceScaleFactor];
+#endif
+
+ windowFrame.size.height += heightDelta * userSpaceScaleFactor;
[window setFrame:windowFrame display:NO];
}
diff --git a/Source/WebKit/mac/Misc/WebNSPasteboardExtras.mm b/Source/WebKit/mac/Misc/WebNSPasteboardExtras.mm
index 7caa47a..f5c7436 100644
--- a/Source/WebKit/mac/Misc/WebNSPasteboardExtras.mm
+++ b/Source/WebKit/mac/Misc/WebNSPasteboardExtras.mm
@@ -47,11 +47,6 @@
#import <wtf/RetainPtr.h>
#import <wtf/StdLibExtras.h>
-@interface NSFilePromiseDragSource : NSObject
-- (id)initWithSource:(id)draggingSource;
-- (void)setTypes:(NSArray *)types onPasteboard:(NSPasteboard *)pboard;
-@end
-
using namespace WebCore;
NSString *WebURLPboardType = @"public.url";
diff --git a/Source/WebKit/mac/Plugins/Hosted/ProxyInstance.mm b/Source/WebKit/mac/Plugins/Hosted/ProxyInstance.mm
index 8a413d4..f26b85d 100644
--- a/Source/WebKit/mac/Plugins/Hosted/ProxyInstance.mm
+++ b/Source/WebKit/mac/Plugins/Hosted/ProxyInstance.mm
@@ -187,9 +187,9 @@ public:
ASSERT(inherits(&s_info));
}
- static PassRefPtr<Structure> createStructure(JSValue prototype)
+ static PassRefPtr<Structure> createStructure(JSGlobalData& globalData, JSValue prototype)
{
- return Structure::create(prototype, TypeInfo(ObjectType, StructureFlags), AnonymousSlotCount, &s_info);
+ return Structure::create(globalData, prototype, TypeInfo(ObjectType, StructureFlags), AnonymousSlotCount, &s_info);
}
static const ClassInfo s_info;
diff --git a/Source/WebKit/mac/Plugins/Hosted/ProxyRuntimeObject.h b/Source/WebKit/mac/Plugins/Hosted/ProxyRuntimeObject.h
index fc77890..a07c86c 100644
--- a/Source/WebKit/mac/Plugins/Hosted/ProxyRuntimeObject.h
+++ b/Source/WebKit/mac/Plugins/Hosted/ProxyRuntimeObject.h
@@ -41,9 +41,9 @@ public:
ProxyInstance* getInternalProxyInstance() const;
- static PassRefPtr<JSC::Structure> createStructure(JSC::JSValue prototype)
+ static PassRefPtr<JSC::Structure> createStructure(JSC::JSGlobalData& globalData, JSC::JSValue prototype)
{
- return JSC::Structure::create(prototype, JSC::TypeInfo(JSC::ObjectType, StructureFlags), AnonymousSlotCount, &s_info);
+ return JSC::Structure::create(globalData, prototype, JSC::TypeInfo(JSC::ObjectType, StructureFlags), AnonymousSlotCount, &s_info);
}
static const JSC::ClassInfo s_info;
diff --git a/Source/WebKit/mac/Plugins/WebBasePluginPackage.mm b/Source/WebKit/mac/Plugins/WebBasePluginPackage.mm
index 05b084a..3fb86cb 100644
--- a/Source/WebKit/mac/Plugins/WebBasePluginPackage.mm
+++ b/Source/WebKit/mac/Plugins/WebBasePluginPackage.mm
@@ -38,6 +38,7 @@
#import <wtf/Assertions.h>
#import <wtf/Threading.h>
#import <wtf/Vector.h>
+#import <wtf/text/CString.h>
#import <WebKitSystemInterface.h>
@@ -222,8 +223,15 @@ static NSString *pathByResolvingSymlinksAndAliases(NSString *thePath)
MimeClassInfo mimeClassInfo;
extensions = [[MIMEDictionary objectForKey:WebPluginExtensionsKey] _web_lowercaseStrings];
- for (NSUInteger i = 0; i < [extensions count]; ++i)
- mimeClassInfo.extensions.append((NSString *)[extensions objectAtIndex:i]);
+ for (NSUInteger i = 0; i < [extensions count]; ++i) {
+ // The DivX plug-in lists multiple extensions in a comma separated string instead of using
+ // multiple array elements in the property list. Work around this here by splitting the
+ // extension string into components.
+ NSArray *extensionComponents = [[extensions objectAtIndex:i] componentsSeparatedByString:@","];
+
+ for (NSString *extension in extensionComponents)
+ mimeClassInfo.extensions.append(extension);
+ }
if ([extensions count] == 0)
extensions = [NSArray arrayWithObject:@""];
diff --git a/Source/WebKit/mac/Plugins/WebPluginContainerPrivate.h b/Source/WebKit/mac/Plugins/WebPluginContainerPrivate.h
index af7251d..1b8de41 100644
--- a/Source/WebKit/mac/Plugins/WebPluginContainerPrivate.h
+++ b/Source/WebKit/mac/Plugins/WebPluginContainerPrivate.h
@@ -29,7 +29,7 @@
#import <Cocoa/Cocoa.h>
#if !defined(ENABLE_PLUGIN_PROXY_FOR_VIDEO)
-#define ENABLE_PLUGIN_PROXY_FOR_VIDEO 1
+#define ENABLE_PLUGIN_PROXY_FOR_VIDEO 0
#endif
#if ENABLE_PLUGIN_PROXY_FOR_VIDEO
diff --git a/Source/WebKit/mac/Storage/WebStorageManager.mm b/Source/WebKit/mac/Storage/WebStorageManager.mm
new file mode 100644
index 0000000..23f699f
--- /dev/null
+++ b/Source/WebKit/mac/Storage/WebStorageManager.mm
@@ -0,0 +1,113 @@
+/*
+ * Copyright (C) 2011 Apple Inc. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#if ENABLE(DOM_STORAGE)
+
+#import "WebSecurityOriginInternal.h"
+#import "WebStorageManagerPrivate.h"
+#import "WebStorageManagerInternal.h"
+#import "WebStorageTrackerClient.h"
+
+#import <WebCore/SecurityOrigin.h>
+#import <WebCore/StorageTracker.h>
+
+using namespace WebCore;
+
+NSString * const WebStorageDirectoryDefaultsKey = @"WebKitLocalStorageDatabasePathPreferenceKey";
+NSString * const WebStorageDidModifyOriginNotification = @"WebStorageDidModifyOriginNotification";
+
+static NSString *storageDirectoryPath();
+
+@implementation WebStorageManager
+
++ (WebStorageManager *)sharedWebStorageManager
+{
+ static WebStorageManager *sharedManager = [[WebStorageManager alloc] init];
+ return sharedManager;
+}
+
+- (NSArray *)origins
+{
+ Vector<RefPtr<SecurityOrigin> > coreOrigins;
+
+ StorageTracker::tracker().origins(coreOrigins);
+
+ NSMutableArray *webOrigins = [[NSMutableArray alloc] initWithCapacity:coreOrigins.size()];
+
+ for (size_t i = 0; i < coreOrigins.size(); ++i) {
+ WebSecurityOrigin *webOrigin = [[WebSecurityOrigin alloc] _initWithWebCoreSecurityOrigin:coreOrigins[i].get()];
+ [webOrigins addObject:webOrigin];
+ [webOrigin release];
+ }
+
+ return [webOrigins autorelease];
+}
+
+- (void)deleteAllOrigins
+{
+ StorageTracker::tracker().deleteAllOrigins();
+}
+
+- (void)deleteOrigin:(WebSecurityOrigin *)origin
+{
+ StorageTracker::tracker().deleteOrigin([origin _core]);
+}
+
+- (void)syncLocalStorage
+{
+ StorageTracker::tracker().syncLocalStorage();
+}
+
+- (void)syncFileSystemAndTrackerDatabase
+{
+ StorageTracker::tracker().syncFileSystemAndTrackerDatabase();
+}
+
+static NSString *storageDirectoryPath()
+{
+ NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
+ NSString *storageDirectory = [defaults objectForKey:WebStorageDirectoryDefaultsKey];
+ if (!storageDirectory || ![storageDirectory isKindOfClass:[NSString class]])
+ storageDirectory = @"~/Library/WebKit/LocalStorage";
+
+ return [storageDirectory stringByStandardizingPath];
+}
+
+void WebKitInitializeStorageIfNecessary()
+{
+ static BOOL initialized = NO;
+ if (initialized)
+ return;
+
+ StorageTracker::initializeTracker(storageDirectoryPath());
+
+ StorageTracker::tracker().setClient(WebStorageTrackerClient::sharedWebStorageTrackerClient());
+
+ initialized = YES;
+}
+
+@end
+
+#endif
diff --git a/Source/WebKit/mac/Storage/WebStorageManagerInternal.h b/Source/WebKit/mac/Storage/WebStorageManagerInternal.h
new file mode 100644
index 0000000..d3d3604
--- /dev/null
+++ b/Source/WebKit/mac/Storage/WebStorageManagerInternal.h
@@ -0,0 +1,30 @@
+/*
+ * Copyright (C) 2011 Apple Inc. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#if ENABLE(DOM_STORAGE)
+
+void WebKitInitializeStorageIfNecessary();
+
+#endif
diff --git a/Source/WebKit/mac/Storage/WebStorageManagerPrivate.h b/Source/WebKit/mac/Storage/WebStorageManagerPrivate.h
new file mode 100644
index 0000000..34db3f6
--- /dev/null
+++ b/Source/WebKit/mac/Storage/WebStorageManagerPrivate.h
@@ -0,0 +1,45 @@
+/*
+ * Copyright (C) 2011 Apple Inc. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+extern NSString * const WebStorageDirectoryDefaultsKey;
+extern NSString * const WebStorageDidModifyOriginNotification;
+
+@class WebSecurityOrigin;
+
+@interface WebStorageManager : NSObject
+
++ (WebStorageManager *)sharedWebStorageManager;
+
+// Returns an array of WebSecurityOrigin objects that have LocalStorage.
+- (NSArray *)origins;
+
+- (void)deleteAllOrigins;
+- (void)deleteOrigin:(WebSecurityOrigin *)origin;
+
+- (void)syncLocalStorage;
+- (void)syncFileSystemAndTrackerDatabase;
+
+@end
+
diff --git a/Source/WebKit/mac/Storage/WebStorageTrackerClient.h b/Source/WebKit/mac/Storage/WebStorageTrackerClient.h
new file mode 100644
index 0000000..d3c190c
--- /dev/null
+++ b/Source/WebKit/mac/Storage/WebStorageTrackerClient.h
@@ -0,0 +1,45 @@
+/*
+ * Copyright (C) 2011 Apple Inc. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#if ENABLE(DOM_STORAGE)
+
+#import <WebCore/SecurityOrigin.h>
+#import <WebCore/StorageTrackerClient.h>
+
+using namespace WebCore;
+
+class WebStorageTrackerClient : public WebCore::StorageTrackerClient {
+public:
+ static WebStorageTrackerClient* sharedWebStorageTrackerClient();
+ static void dispatchDidModifyOriginOnMainThread(void* context);
+
+ virtual ~WebStorageTrackerClient();
+ virtual void dispatchDidModifyOrigin(const String& originIdentifier);
+ virtual void dispatchDidModifyOrigin(PassRefPtr<SecurityOrigin>);
+private:
+ WebStorageTrackerClient();
+};
+
+#endif
diff --git a/Source/WebKit/mac/Storage/WebStorageTrackerClient.mm b/Source/WebKit/mac/Storage/WebStorageTrackerClient.mm
new file mode 100644
index 0000000..01bb981
--- /dev/null
+++ b/Source/WebKit/mac/Storage/WebStorageTrackerClient.mm
@@ -0,0 +1,82 @@
+/*
+ * Copyright (C) 2011 Apple Inc. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#if ENABLE(DOM_STORAGE)
+
+#import "WebStorageTrackerClient.h"
+
+#import "WebSecurityOriginInternal.h"
+#import "WebStorageManagerPrivate.h"
+#import <WebCore/PlatformString.h>
+#import <WebCore/SecurityOrigin.h>
+#import <wtf/MainThread.h>
+#import <wtf/RetainPtr.h>
+
+using namespace WebCore;
+
+WebStorageTrackerClient* WebStorageTrackerClient::sharedWebStorageTrackerClient()
+{
+ static WebStorageTrackerClient* sharedClient = new WebStorageTrackerClient();
+ return sharedClient;
+}
+
+WebStorageTrackerClient::WebStorageTrackerClient()
+{
+}
+
+WebStorageTrackerClient::~WebStorageTrackerClient()
+{
+}
+
+void WebStorageTrackerClient::dispatchDidModifyOriginOnMainThread(void* context)
+{
+ ASSERT(isMainThread());
+ // adoptRef is balanced by leakRef in dispatchDidModifyOrigin.
+ RefPtr<SecurityOrigin> origin = adoptRef(static_cast<SecurityOrigin*>(context));
+ WebStorageTrackerClient::sharedWebStorageTrackerClient()->dispatchDidModifyOrigin(origin.get());
+}
+
+void WebStorageTrackerClient::dispatchDidModifyOrigin(PassRefPtr<SecurityOrigin> origin)
+{
+ RetainPtr<WebSecurityOrigin> webSecurityOrigin(AdoptNS, [[WebSecurityOrigin alloc] _initWithWebCoreSecurityOrigin:origin.get()]);
+
+ [[NSNotificationCenter defaultCenter] postNotificationName:WebStorageDidModifyOriginNotification
+ object:webSecurityOrigin.get()];
+}
+
+void WebStorageTrackerClient::dispatchDidModifyOrigin(const String& originIdentifier)
+{
+ PassRefPtr<SecurityOrigin> origin = SecurityOrigin::createFromDatabaseIdentifier(originIdentifier);
+
+ if (!isMainThread()) {
+ // leakRef is balanced by adoptRef in dispatchDidModifyOriginOnMainThread.
+ callOnMainThread(dispatchDidModifyOriginOnMainThread, origin.leakRef());
+ return;
+ }
+
+ dispatchDidModifyOrigin(origin);
+}
+
+#endif
diff --git a/Source/WebKit/mac/WebCoreSupport/CorrectionPanel.h b/Source/WebKit/mac/WebCoreSupport/CorrectionPanel.h
new file mode 100644
index 0000000..8adb79f
--- /dev/null
+++ b/Source/WebKit/mac/WebCoreSupport/CorrectionPanel.h
@@ -0,0 +1,60 @@
+/*
+ * Copyright (C) 2011 Apple Inc. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef CorrectionPanel_h
+#define CorrectionPanel_h
+
+#if !defined(BUILDING_ON_TIGER) && !defined(BUILDING_ON_LEOPARD) && !defined(BUILDING_ON_SNOW_LEOPARD)
+#import <AppKit/NSTextChecker.h>
+#import <WebCore/CorrectionPanelInfo.h>
+#import <wtf/RetainPtr.h>
+
+@class WebView;
+
+class CorrectionPanel {
+ WTF_MAKE_NONCOPYABLE(CorrectionPanel);
+public:
+ CorrectionPanel();
+ ~CorrectionPanel();
+ void show(WebView*, WebCore::CorrectionPanelInfo::PanelType, const WebCore::FloatRect& boundingBoxOfReplacedString, const String& replacedString, const String& replacementString, const Vector<String>& alternativeReplacementStrings);
+ void dismiss(WebCore::ReasonForDismissingCorrectionPanel);
+ String dismissSoon(WebCore::ReasonForDismissingCorrectionPanel);
+ static void recordAutocorrectionResponse(WebView*, NSCorrectionResponse, const String& replacedString, const String& replacementString);
+
+private:
+ bool isShowing() const { return m_view; }
+ void dismissInternal(WebCore::ReasonForDismissingCorrectionPanel, bool dismissingExternally);
+ void handleAcceptedReplacement(NSString* acceptedReplacement, NSString* replaced, NSString* proposedReplacement, NSCorrectionBubbleType);
+
+ bool m_wasDismissedExternally;
+ WebCore::ReasonForDismissingCorrectionPanel m_reasonForDismissing;
+ RetainPtr<WebView> m_view;
+ RetainPtr<NSString> m_resultForSynchronousDismissal;
+ RetainPtr<NSCondition> m_resultCondition;
+};
+
+#endif // !defined(BUILDING_ON_TIGER) && !defined(BUILDING_ON_LEOPARD) && !defined(BUILDING_ON_SNOW_LEOPARD)
+
+#endif // CorrectionPanel_h
diff --git a/Source/WebKit/mac/WebCoreSupport/CorrectionPanel.mm b/Source/WebKit/mac/WebCoreSupport/CorrectionPanel.mm
new file mode 100644
index 0000000..05f3f69
--- /dev/null
+++ b/Source/WebKit/mac/WebCoreSupport/CorrectionPanel.mm
@@ -0,0 +1,157 @@
+/*
+ * Copyright (C) 2011 Apple Inc. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ */
+#import "CorrectionPanel.h"
+
+#import "WebViewPrivate.h"
+
+#if !defined(BUILDING_ON_TIGER) && !defined(BUILDING_ON_LEOPARD) && !defined(BUILDING_ON_SNOW_LEOPARD)
+using namespace WebCore;
+
+static inline NSCorrectionBubbleType correctionBubbleType(CorrectionPanelInfo::PanelType panelType)
+{
+ switch (panelType) {
+ case CorrectionPanelInfo::PanelTypeCorrection:
+ return NSCorrectionBubbleTypeCorrection;
+ case CorrectionPanelInfo::PanelTypeReversion:
+ return NSCorrectionBubbleTypeReversion;
+ case CorrectionPanelInfo::PanelTypeSpellingSuggestions:
+ return NSCorrectionBubbleTypeGuesses;
+ }
+ ASSERT_NOT_REACHED();
+ return NSCorrectionBubbleTypeCorrection;
+}
+
+CorrectionPanel::CorrectionPanel()
+ : m_wasDismissedExternally(false)
+ , m_reasonForDismissing(ReasonForDismissingCorrectionPanelIgnored)
+ , m_resultCondition(AdoptNS, [[NSCondition alloc] init])
+{
+}
+
+CorrectionPanel::~CorrectionPanel()
+{
+ dismissInternal(ReasonForDismissingCorrectionPanelIgnored, false);
+}
+
+void CorrectionPanel::show(WebView* view, CorrectionPanelInfo::PanelType type, const FloatRect& boundingBoxOfReplacedString, const String& replacedString, const String& replacementString, const Vector<String>& alternativeReplacementStrings)
+{
+ dismissInternal(ReasonForDismissingCorrectionPanelIgnored, false);
+
+ if (!view)
+ return;
+
+ NSString* replacedStringAsNSString = replacedString;
+ NSString* replacementStringAsNSString = replacementString;
+ m_view = view;
+ NSCorrectionBubbleType bubbleType = correctionBubbleType(type);
+
+ NSMutableArray* alternativeStrings = 0;
+ if (!alternativeReplacementStrings.isEmpty()) {
+ size_t size = alternativeReplacementStrings.size();
+ alternativeStrings = [NSMutableArray arrayWithCapacity:size];
+ for (size_t i = 0; i < size; ++i)
+ [alternativeStrings addObject:(NSString*)alternativeReplacementStrings[i]];
+ }
+
+ [[NSSpellChecker sharedSpellChecker] showCorrectionBubbleOfType:bubbleType primaryString:replacementStringAsNSString alternativeStrings:alternativeStrings forStringInRect:boundingBoxOfReplacedString view:m_view.get() completionHandler:^(NSString* acceptedString) {
+ handleAcceptedReplacement(acceptedString, replacedStringAsNSString, replacementStringAsNSString, bubbleType);
+ }];
+}
+
+void CorrectionPanel::dismiss(ReasonForDismissingCorrectionPanel reason)
+{
+ dismissInternal(reason, true);
+}
+
+String CorrectionPanel::dismissSoon(ReasonForDismissingCorrectionPanel reason)
+{
+ if (!isShowing())
+ return String();
+
+ dismissInternal(reason, true);
+ [m_resultCondition.get() lock];
+ while (!m_resultForSynchronousDismissal)
+ [m_resultCondition.get() wait];
+ [m_resultCondition.get() unlock];
+ return m_resultForSynchronousDismissal.get();
+}
+
+void CorrectionPanel::dismissInternal(ReasonForDismissingCorrectionPanel reason, bool dismissingExternally)
+{
+ m_wasDismissedExternally = dismissingExternally;
+ if (!isShowing())
+ return;
+
+ m_reasonForDismissing = reason;
+ m_resultForSynchronousDismissal.clear();
+ [[NSSpellChecker sharedSpellChecker] dismissCorrectionBubbleForView:m_view.get()];
+ m_view.clear();
+}
+
+void CorrectionPanel::recordAutocorrectionResponse(WebView* view, NSCorrectionResponse response, const String& replacedString, const String& replacementString)
+{
+ [[NSSpellChecker sharedSpellChecker] recordResponse:response toCorrection:replacementString forWord:replacedString language:nil inSpellDocumentWithTag:[view spellCheckerDocumentTag]];
+}
+
+void CorrectionPanel::handleAcceptedReplacement(NSString* acceptedReplacement, NSString* replaced, NSString* proposedReplacement, NSCorrectionBubbleType correctionBubbleType)
+{
+ NSSpellChecker* spellChecker = [NSSpellChecker sharedSpellChecker];
+ NSInteger documentTag = [m_view.get() spellCheckerDocumentTag];
+
+ switch (correctionBubbleType) {
+ case NSCorrectionBubbleTypeCorrection:
+ if (acceptedReplacement)
+ [spellChecker recordResponse:NSCorrectionResponseAccepted toCorrection:acceptedReplacement forWord:replaced language:nil inSpellDocumentWithTag:documentTag];
+ else {
+ if (!m_wasDismissedExternally || m_reasonForDismissing == ReasonForDismissingCorrectionPanelCancelled)
+ [spellChecker recordResponse:NSCorrectionResponseRejected toCorrection:proposedReplacement forWord:replaced language:nil inSpellDocumentWithTag:documentTag];
+ else
+ [spellChecker recordResponse:NSCorrectionResponseIgnored toCorrection:proposedReplacement forWord:replaced language:nil inSpellDocumentWithTag:documentTag];
+ }
+ break;
+ case NSCorrectionBubbleTypeReversion:
+ if (acceptedReplacement)
+ [spellChecker recordResponse:NSCorrectionResponseReverted toCorrection:replaced forWord:acceptedReplacement language:nil inSpellDocumentWithTag:documentTag];
+ break;
+ case NSCorrectionBubbleTypeGuesses:
+ if (acceptedReplacement)
+ [spellChecker recordResponse:NSCorrectionResponseAccepted toCorrection:acceptedReplacement forWord:replaced language:nil inSpellDocumentWithTag:documentTag];
+ break;
+ }
+
+ if (!m_wasDismissedExternally) {
+ [m_view.get() handleCorrectionPanelResult:acceptedReplacement];
+ return;
+ }
+
+ [m_resultCondition.get() lock];
+ if (acceptedReplacement)
+ m_resultForSynchronousDismissal.adoptNS([acceptedReplacement copy]);
+ [m_resultCondition.get() signal];
+ [m_resultCondition.get() unlock];
+}
+
+#endif // !defined(BUILDING_ON_TIGER) && !defined(BUILDING_ON_LEOPARD) && !defined(BUILDING_ON_SNOW_LEOPARD)
+
diff --git a/Source/WebKit/mac/WebCoreSupport/WebApplicationCache.h b/Source/WebKit/mac/WebCoreSupport/WebApplicationCache.h
index 976ce18..3d6c91e 100644
--- a/Source/WebKit/mac/WebCoreSupport/WebApplicationCache.h
+++ b/Source/WebKit/mac/WebCoreSupport/WebApplicationCache.h
@@ -25,6 +25,8 @@
#import <Foundation/Foundation.h>
+@class WebSecurityOrigin;
+
@interface WebApplicationCache: NSObject
+ (long long)maximumSize;
@@ -34,5 +36,8 @@
+ (void)setDefaultOriginQuota:(long long)size;
+ (void)deleteAllApplicationCaches;
++ (void)deleteCacheForOrigin:(WebSecurityOrigin *)origin;
+
++ (NSArray *)originsWithCache;
@end
diff --git a/Source/WebKit/mac/WebCoreSupport/WebApplicationCache.mm b/Source/WebKit/mac/WebCoreSupport/WebApplicationCache.mm
index bf517c1..131bb9c 100644
--- a/Source/WebKit/mac/WebCoreSupport/WebApplicationCache.mm
+++ b/Source/WebKit/mac/WebCoreSupport/WebApplicationCache.mm
@@ -26,7 +26,12 @@
#if ENABLE(OFFLINE_WEB_APPLICATIONS)
#import "WebApplicationCache.h"
+
+#import "WebSecurityOriginInternal.h"
+#import <WebCore/ApplicationCache.h>
#import <WebCore/ApplicationCacheStorage.h>
+#import <WebCore/SecurityOrigin.h>
+#import <wtf/RetainPtr.h>
using namespace WebCore;
@@ -58,6 +63,27 @@ using namespace WebCore;
cacheStorage().deleteAllEntries();
}
++ (void)deleteCacheForOrigin:(WebSecurityOrigin *)origin
+{
+ ApplicationCache::deleteCacheForOrigin([origin _core]);
+}
+
++ (NSArray *)originsWithCache
+{
+ HashSet<RefPtr<SecurityOrigin>, SecurityOriginHash> coreOrigins;
+ cacheStorage().getOriginsWithCache(coreOrigins);
+
+ NSMutableArray *webOrigins = [[[NSMutableArray alloc] initWithCapacity:coreOrigins.size()] autorelease];
+
+ HashSet<RefPtr<SecurityOrigin>, SecurityOriginHash>::const_iterator end = coreOrigins.end();
+ for (HashSet<RefPtr<SecurityOrigin>, SecurityOriginHash>::const_iterator it = coreOrigins.begin(); it != end; ++it) {
+ RetainPtr<WebSecurityOrigin> webOrigin(AdoptNS, [[WebSecurityOrigin alloc] _initWithWebCoreSecurityOrigin:(*it).get()]);
+ [webOrigins addObject:webOrigin.get()];
+ }
+
+ return webOrigins;
+}
+
@end
#endif
diff --git a/Source/WebKit/mac/WebCoreSupport/WebChromeClient.h b/Source/WebKit/mac/WebCoreSupport/WebChromeClient.h
index 3129fae..004d49b 100644
--- a/Source/WebKit/mac/WebCoreSupport/WebChromeClient.h
+++ b/Source/WebKit/mac/WebCoreSupport/WebChromeClient.h
@@ -164,7 +164,7 @@ public:
#endif
#if ENABLE(FULLSCREEN_API)
- virtual bool supportsFullScreenForElement(const WebCore::Element*);
+ virtual bool supportsFullScreenForElement(const WebCore::Element*, bool withKeyboard);
virtual void enterFullScreenForElement(WebCore::Element*);
virtual void exitFullScreenForElement(WebCore::Element*);
#endif
@@ -180,7 +180,7 @@ public:
virtual PassRefPtr<WebCore::SearchPopupMenu> createSearchPopupMenu(WebCore::PopupMenuClient*) const;
#if ENABLE(CONTEXT_MENUS)
- virtual void showContextMenu() { }
+ virtual void showContextMenu();
#endif
private:
WebView *m_webView;
diff --git a/Source/WebKit/mac/WebCoreSupport/WebChromeClient.mm b/Source/WebKit/mac/WebCoreSupport/WebChromeClient.mm
index 99b817b..6bf116b 100644
--- a/Source/WebKit/mac/WebCoreSupport/WebChromeClient.mm
+++ b/Source/WebKit/mac/WebCoreSupport/WebChromeClient.mm
@@ -51,14 +51,18 @@
#import <WebCore/BlockExceptions.h>
#import <WebCore/Console.h>
#import <WebCore/Cursor.h>
+#import <WebCore/ContextMenu.h>
+#import <WebCore/ContextMenuController.h>
#import <WebCore/Element.h>
#import <WebCore/FileChooser.h>
#import <WebCore/FloatRect.h>
#import <WebCore/Frame.h>
#import <WebCore/FrameLoadRequest.h>
+#import <WebCore/FrameView.h>
#import <WebCore/HTMLNames.h>
#import <WebCore/HitTestResult.h>
#import <WebCore/Icon.h>
+#import <WebCore/IntPoint.h>
#import <WebCore/IntRect.h>
#import <WebCore/NavigationAction.h>
#import <WebCore/Page.h>
@@ -174,9 +178,16 @@ FloatRect WebChromeClient::pageRect()
float WebChromeClient::scaleFactor()
{
- if (NSWindow *window = [m_webView window])
- return [window userSpaceScaleFactor];
+ NSWindow *window = [m_webView window];
+#if !defined(BUILDING_ON_LEOPARD) && !defined(BUILDING_ON_SNOW_LEOPARD)
+ if (window)
+ return [window backingScaleFactor];
+ return [[NSScreen mainScreen] backingScaleFactor];
+#else
+ if (window)
+ return [window userSpaceScaleFactor];
return [[NSScreen mainScreen] userSpaceScaleFactor];
+#endif
}
void WebChromeClient::focus()
@@ -876,6 +887,35 @@ PassRefPtr<WebCore::SearchPopupMenu> WebChromeClient::createSearchPopupMenu(WebC
return adoptRef(new SearchPopupMenuMac(client));
}
+#if ENABLE(CONTEXT_MENUS)
+void WebChromeClient::showContextMenu()
+{
+ Page* page = [m_webView page];
+ if (!page)
+ return;
+
+ ContextMenuController* controller = page->contextMenuController();
+ Node* node = controller->hitTestResult().innerNonSharedNode();
+ if (!node)
+ return;
+ Frame* frame = node->document()->frame();
+ if (!frame)
+ return;
+ FrameView* frameView = frame->view();
+ if (!frameView)
+ return;
+ NSView* view = frameView->documentView();
+
+ IntPoint point = frameView->contentsToWindow(controller->hitTestResult().point());
+ NSPoint nsScreenPoint = [view convertPoint:point toView:nil];
+ // Show the contextual menu for this event.
+ NSEvent* event = [NSEvent mouseEventWithType:NSRightMouseDown location:nsScreenPoint modifierFlags:0 timestamp:0 windowNumber:[[view window] windowNumber] context:0 eventNumber:0 clickCount:1 pressure:1];
+ NSMenu* nsMenu = [view menuForEvent:event];
+ if (nsMenu)
+ [NSMenu popUpContextMenu:nsMenu withEvent:event forView:view];
+}
+#endif
+
#if USE(ACCELERATED_COMPOSITING)
void WebChromeClient::attachRootGraphicsLayer(Frame* frame, GraphicsLayer* graphicsLayer)
@@ -938,12 +978,12 @@ void WebChromeClient::exitFullscreenForNode(Node*)
#if ENABLE(FULLSCREEN_API)
-bool WebChromeClient::supportsFullScreenForElement(const Element* element)
+bool WebChromeClient::supportsFullScreenForElement(const Element* element, bool withKeyboard)
{
- SEL selector = @selector(webView:supportsFullScreenForElement:);
+ SEL selector = @selector(webView:supportsFullScreenForElement:withKeyboard:);
if ([[m_webView UIDelegate] respondsToSelector:selector])
- return CallUIDelegateReturningBoolean(false, m_webView, selector, kit(const_cast<WebCore::Element*>(element)));
- return [m_webView _supportsFullScreenForElement:const_cast<WebCore::Element*>(element)];
+ return CallUIDelegateReturningBoolean(false, m_webView, selector, kit(const_cast<WebCore::Element*>(element)), withKeyboard);
+ return [m_webView _supportsFullScreenForElement:const_cast<WebCore::Element*>(element) withKeyboard:withKeyboard];
}
void WebChromeClient::enterFullScreenForElement(Element* element)
diff --git a/Source/WebKit/mac/WebCoreSupport/WebEditorClient.h b/Source/WebKit/mac/WebCoreSupport/WebEditorClient.h
index 1fa132a..412cb45 100644
--- a/Source/WebKit/mac/WebCoreSupport/WebEditorClient.h
+++ b/Source/WebKit/mac/WebCoreSupport/WebEditorClient.h
@@ -27,11 +27,11 @@
* THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
-#import <WebCore/Editor.h>
+#import "CorrectionPanel.h"
#import <WebCore/EditorClient.h>
#import <WebCore/TextCheckerClient.h>
-#import <wtf/RetainPtr.h>
#import <wtf/Forward.h>
+#import <wtf/RetainPtr.h>
#import <wtf/Vector.h>
@class WebView;
@@ -140,10 +140,10 @@ public:
virtual void setInputMethodState(bool enabled);
virtual void requestCheckingOfString(WebCore::SpellChecker*, int, const WTF::String&);
#if !defined(BUILDING_ON_TIGER) && !defined(BUILDING_ON_LEOPARD) && !defined(BUILDING_ON_SNOW_LEOPARD)
- virtual void showCorrectionPanel(WebCore::CorrectionPanelInfo::PanelType, const WebCore::FloatRect& boundingBoxOfReplacedString, const WTF::String& replacedString, const WTF::String& replacementString, const WTF::Vector<WTF::String>& alternativeReplacementStrings, WebCore::Editor*);
+ virtual void showCorrectionPanel(WebCore::CorrectionPanelInfo::PanelType, const WebCore::FloatRect& boundingBoxOfReplacedString, const String& replacedString, const String& replacementString, const Vector<String>& alternativeReplacementStrings);
virtual void dismissCorrectionPanel(WebCore::ReasonForDismissingCorrectionPanel);
- virtual bool isShowingCorrectionPanel();
- virtual void recordAutocorrectionResponse(AutocorrectionResponseType, const WTF::String& replacedString, const WTF::String& replacementString);
+ virtual String dismissCorrectionPanelSoon(WebCore::ReasonForDismissingCorrectionPanel);
+ virtual void recordAutocorrectionResponse(AutocorrectionResponseType, const String& replacedString, const String& replacementString);
#endif
private:
void registerCommandForUndoOrRedo(PassRefPtr<WebCore::EditCommand>, bool isRedo);
@@ -154,8 +154,6 @@ private:
bool m_haveUndoRedoOperations;
#if !defined(BUILDING_ON_TIGER) && !defined(BUILDING_ON_LEOPARD) && !defined(BUILDING_ON_SNOW_LEOPARD)
- BOOL m_correctionPanelIsShown;
- BOOL m_correctionPanelIsDismissedExternally;
- WebCore::ReasonForDismissingCorrectionPanel m_reasonForDismissingCorrectionPanel;
+ CorrectionPanel m_correctionPanel;
#endif
};
diff --git a/Source/WebKit/mac/WebCoreSupport/WebEditorClient.mm b/Source/WebKit/mac/WebCoreSupport/WebEditorClient.mm
index 69dd574..c205ef6 100644
--- a/Source/WebKit/mac/WebCoreSupport/WebEditorClient.mm
+++ b/Source/WebKit/mac/WebCoreSupport/WebEditorClient.mm
@@ -74,7 +74,6 @@
#endif
using namespace WebCore;
-using namespace WTF;
using namespace HTMLNames;
@@ -202,9 +201,6 @@ WebEditorClient::WebEditorClient(WebView *webView)
: m_webView(webView)
, m_undoTarget([[[WebEditorUndoTarget alloc] init] autorelease])
, m_haveUndoRedoOperations(false)
-#if !defined(BUILDING_ON_TIGER) && !defined(BUILDING_ON_LEOPARD) && !defined(BUILDING_ON_SNOW_LEOPARD)
- , m_correctionPanelIsShown(false)
-#endif
{
}
@@ -625,7 +621,7 @@ void WebEditorClient::handleKeyboardEvent(KeyboardEvent* event)
{
Frame* frame = event->target()->toNode()->document()->frame();
WebHTMLView *webHTMLView = [[kit(frame) frameView] documentView];
- if ([webHTMLView _interceptEditingKeyEvent:event shouldSaveCommand:NO])
+ if ([webHTMLView _interpretKeyEvent:event savingCommands:NO])
event->setDefaultHandled();
}
@@ -633,7 +629,7 @@ void WebEditorClient::handleInputMethodKeydown(KeyboardEvent* event)
{
Frame* frame = event->target()->toNode()->document()->frame();
WebHTMLView *webHTMLView = [[kit(frame) frameView] documentView];
- if ([webHTMLView _interceptEditingKeyEvent:event shouldSaveCommand:YES])
+ if ([webHTMLView _interpretKeyEvent:event savingCommands:YES])
event->setDefaultHandled();
}
@@ -891,73 +887,25 @@ void WebEditorClient::updateSpellingUIWithGrammarString(const String& badGrammar
}
#if !defined(BUILDING_ON_TIGER) && !defined(BUILDING_ON_LEOPARD) && !defined(BUILDING_ON_SNOW_LEOPARD)
-void WebEditorClient::showCorrectionPanel(WebCore::CorrectionPanelInfo::PanelType panelType, const FloatRect& boundingBoxOfReplacedString, const String& replacedString, const String& replacementString, const Vector<String>& alternativeReplacementStrings, Editor* editor) {
- dismissCorrectionPanel(ReasonForDismissingCorrectionPanelIgnored);
-
- // Need to explicitly use these local NSString objects, because the C++ references may be invalidated by the time the block below is executed.
- NSString *replacedStringAsNSString = replacedString;
- NSString *replacementStringAsNSString = replacementString;
-
- m_correctionPanelIsShown = YES;
- m_correctionPanelIsDismissedExternally = NO;
- m_reasonForDismissingCorrectionPanel = ReasonForDismissingCorrectionPanelIgnored;
-
- NSCorrectionBubbleType bubbleType = correctionBubbleType(panelType);
- NSMutableArray *alternativeStrings = nil;
- if (!alternativeReplacementStrings.isEmpty()) {
- size_t size = alternativeReplacementStrings.size();
- alternativeStrings = [NSMutableArray arrayWithCapacity:size];
- for (size_t i = 0; i < size; ++i)
- [alternativeStrings addObject:(NSString*)alternativeReplacementStrings[i]];
- }
- NSSpellChecker *spellChecker = [NSSpellChecker sharedSpellChecker];
- [[NSSpellChecker sharedSpellChecker] showCorrectionBubbleOfType:bubbleType primaryString:replacementStringAsNSString alternativeStrings:alternativeStrings forStringInRect:boundingBoxOfReplacedString view:m_webView completionHandler:^(NSString *acceptedString) {
- switch (bubbleType) {
- case NSCorrectionBubbleTypeCorrection:
- if (acceptedString)
- [spellChecker recordResponse:NSCorrectionResponseAccepted toCorrection:acceptedString forWord:replacedStringAsNSString language:nil inSpellDocumentWithTag:spellCheckerDocumentTag()];
- else {
- if (!m_correctionPanelIsDismissedExternally || m_reasonForDismissingCorrectionPanel == ReasonForDismissingCorrectionPanelCancelled)
- [spellChecker recordResponse:NSCorrectionResponseRejected toCorrection:replacementStringAsNSString forWord:replacedStringAsNSString language:nil inSpellDocumentWithTag:spellCheckerDocumentTag()];
- else
- [spellChecker recordResponse:NSCorrectionResponseIgnored toCorrection:replacementStringAsNSString forWord:replacedStringAsNSString language:nil inSpellDocumentWithTag:spellCheckerDocumentTag()];
- }
- break;
- case NSCorrectionBubbleTypeReversion:
- if (acceptedString)
- [spellChecker recordResponse:NSCorrectionResponseReverted toCorrection:replacedStringAsNSString forWord:acceptedString language:nil inSpellDocumentWithTag:spellCheckerDocumentTag()];
- break;
- case NSCorrectionBubbleTypeGuesses:
- if (acceptedString)
- [[NSSpellChecker sharedSpellChecker] recordResponse:NSCorrectionResponseAccepted toCorrection:acceptedString forWord:replacedStringAsNSString language:nil inSpellDocumentWithTag:[m_webView spellCheckerDocumentTag]];
- break;
- }
- editor->handleCorrectionPanelResult(String(acceptedString));
- }];
+void WebEditorClient::showCorrectionPanel(CorrectionPanelInfo::PanelType panelType, const FloatRect& boundingBoxOfReplacedString, const String& replacedString, const String& replacementString, const Vector<String>& alternativeReplacementStrings)
+{
+ m_correctionPanel.show(m_webView, panelType, boundingBoxOfReplacedString, replacedString, replacementString, alternativeReplacementStrings);
}
void WebEditorClient::dismissCorrectionPanel(ReasonForDismissingCorrectionPanel reasonForDismissing)
{
- if (isShowingCorrectionPanel()) {
- m_correctionPanelIsDismissedExternally = YES;
- m_reasonForDismissingCorrectionPanel = reasonForDismissing;
- if (reasonForDismissing == ReasonForDismissingCorrectionPanelAccepted)
- [[NSSpellChecker sharedSpellChecker] dismissCorrectionBubbleForView:m_webView];
- else
- [[NSSpellChecker sharedSpellChecker] cancelCorrectionBubbleForView:m_webView];
- m_correctionPanelIsShown = NO;
- }
+ m_correctionPanel.dismiss(reasonForDismissing);
}
-bool WebEditorClient::isShowingCorrectionPanel()
+String WebEditorClient::dismissCorrectionPanelSoon(ReasonForDismissingCorrectionPanel reasonForDismissing)
{
- return m_correctionPanelIsShown;
+ return m_correctionPanel.dismissSoon(reasonForDismissing);
}
void WebEditorClient::recordAutocorrectionResponse(EditorClient::AutocorrectionResponseType responseType, const String& replacedString, const String& replacementString)
{
- NSCorrectionResponse spellCheckerResponse = responseType == EditorClient::AutocorrectionReverted ? NSCorrectionResponseReverted : NSCorrectionResponseEdited;
- [[NSSpellChecker sharedSpellChecker] recordResponse:spellCheckerResponse toCorrection:replacementString forWord:replacedString language:nil inSpellDocumentWithTag:[m_webView spellCheckerDocumentTag]];
+ NSCorrectionResponse response = responseType == EditorClient::AutocorrectionReverted ? NSCorrectionResponseReverted : NSCorrectionResponseEdited;
+ CorrectionPanel::recordAutocorrectionResponse(m_webView, response, replacedString, replacementString);
}
#endif
diff --git a/Source/WebKit/mac/WebCoreSupport/WebFrameLoaderClient.h b/Source/WebKit/mac/WebCoreSupport/WebFrameLoaderClient.h
index c484729..4fe5664 100644
--- a/Source/WebKit/mac/WebCoreSupport/WebFrameLoaderClient.h
+++ b/Source/WebKit/mac/WebCoreSupport/WebFrameLoaderClient.h
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2006, 2007, 2008 Apple Inc. All rights reserved.
+ * Copyright (C) 2006, 2007, 2008, 2011 Apple Inc. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
@@ -216,7 +216,7 @@ private:
virtual void showMediaPlayerProxyPlugin(WebCore::Widget*);
#endif
- virtual WebCore::ObjectContentType objectContentType(const WebCore::KURL& url, const WTF::String& mimeType);
+ virtual WebCore::ObjectContentType objectContentType(const WebCore::KURL&, const WTF::String& mimeType, bool shouldPreferPlugInsForImages);
virtual WTF::String overrideMediaType() const;
virtual void dispatchDidClearWindowObjectInWorld(WebCore::DOMWrapperWorld*);
diff --git a/Source/WebKit/mac/WebCoreSupport/WebFrameLoaderClient.mm b/Source/WebKit/mac/WebCoreSupport/WebFrameLoaderClient.mm
index a558d83..92c2b03 100644
--- a/Source/WebKit/mac/WebCoreSupport/WebFrameLoaderClient.mm
+++ b/Source/WebKit/mac/WebCoreSupport/WebFrameLoaderClient.mm
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2006, 2007, 2008, 2009 Apple Inc. All rights reserved.
+ * Copyright (C) 2006, 2007, 2008, 2009, 2011 Apple Inc. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
@@ -1454,7 +1454,7 @@ void WebFrameLoaderClient::transferLoadingResourceFromPage(unsigned long identif
[kit(oldPage) _removeObjectForIdentifier:identifier];
}
-ObjectContentType WebFrameLoaderClient::objectContentType(const KURL& url, const String& mimeType)
+ObjectContentType WebFrameLoaderClient::objectContentType(const KURL& url, const String& mimeType, bool shouldPreferPlugInsForImages)
{
BEGIN_BLOCK_OBJC_EXCEPTIONS;
@@ -1491,18 +1491,25 @@ ObjectContentType WebFrameLoaderClient::objectContentType(const KURL& url, const
if (type.isEmpty())
return ObjectContentFrame; // Go ahead and hope that we can display the content.
- if (MIMETypeRegistry::isSupportedImageMIMEType(type))
- return ObjectContentImage;
-
WebBasePluginPackage *package = [getWebView(m_webFrame.get()) _pluginForMIMEType:type];
+ ObjectContentType plugInType = ObjectContentNone;
if (package) {
#if ENABLE(NETSCAPE_PLUGIN_API)
if ([package isKindOfClass:[WebNetscapePluginPackage class]])
- return ObjectContentNetscapePlugin;
+ plugInType = ObjectContentNetscapePlugin;
+ else
#endif
- ASSERT([package isKindOfClass:[WebPluginPackage class]]);
- return ObjectContentOtherPlugin;
+ {
+ ASSERT([package isKindOfClass:[WebPluginPackage class]]);
+ plugInType = ObjectContentOtherPlugin;
+ }
}
+
+ if (MIMETypeRegistry::isSupportedImageMIMEType(type))
+ return shouldPreferPlugInsForImages && plugInType != ObjectContentNone ? plugInType : ObjectContentImage;
+
+ if (plugInType != ObjectContentNone)
+ return plugInType;
if ([m_webFrame->_private->webFrameView _viewClassForMIMEType:type])
return ObjectContentFrame;
diff --git a/Source/WebKit/mac/WebCoreSupport/WebIconDatabaseClient.h b/Source/WebKit/mac/WebCoreSupport/WebIconDatabaseClient.h
index 3f9df13..a557ab5 100644
--- a/Source/WebKit/mac/WebCoreSupport/WebIconDatabaseClient.h
+++ b/Source/WebKit/mac/WebCoreSupport/WebIconDatabaseClient.h
@@ -32,6 +32,9 @@
class WebIconDatabaseClient : public WebCore::IconDatabaseClient {
public:
virtual bool performImport();
- virtual void dispatchDidRemoveAllIcons();
- virtual void dispatchDidAddIconForPageURL(const WTF::String& pageURL);
+ virtual void didRemoveAllIcons();
+ virtual void didImportIconURLForPageURL(const String&);
+ virtual void didImportIconDataForPageURL(const String&);
+ virtual void didChangeIconForPageURL(const String&);
+ virtual void didFinishURLImport();
};
diff --git a/Source/WebKit/mac/WebCoreSupport/WebIconDatabaseClient.mm b/Source/WebKit/mac/WebCoreSupport/WebIconDatabaseClient.mm
index 3651dea..8214d02 100644
--- a/Source/WebKit/mac/WebCoreSupport/WebIconDatabaseClient.mm
+++ b/Source/WebKit/mac/WebCoreSupport/WebIconDatabaseClient.mm
@@ -41,14 +41,14 @@ bool WebIconDatabaseClient::performImport()
return result;
}
-void WebIconDatabaseClient::dispatchDidRemoveAllIcons()
+void WebIconDatabaseClient::didRemoveAllIcons()
{
NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
[[WebIconDatabase sharedIconDatabase] _sendDidRemoveAllIconsNotification];
[pool drain];
}
-void WebIconDatabaseClient::dispatchDidAddIconForPageURL(const WTF::String& pageURL)
+void WebIconDatabaseClient::didImportIconURLForPageURL(const String& pageURL)
{
// This is a quick notification that is likely to fire in a rapidly iterating loop
// Therefore we let WebCore handle autorelease by draining its pool "from time to time"
@@ -56,4 +56,19 @@ void WebIconDatabaseClient::dispatchDidAddIconForPageURL(const WTF::String& page
[[WebIconDatabase sharedIconDatabase] _sendNotificationForURL:pageURL];
}
+void WebIconDatabaseClient::didImportIconDataForPageURL(const String& pageURL)
+{
+ // WebKit1 only has a single "icon did change" notification.
+ didImportIconURLForPageURL(pageURL);
+}
+void WebIconDatabaseClient::didChangeIconForPageURL(const String& pageURL)
+{
+ // WebKit1 only has a single "icon did change" notification.
+ didImportIconURLForPageURL(pageURL);
+}
+
+void WebIconDatabaseClient::didFinishURLImport()
+{
+}
+
#endif // ENABLE(ICONDATABASE)
diff --git a/Source/WebKit/mac/WebCoreSupport/WebInspectorClient.h b/Source/WebKit/mac/WebCoreSupport/WebInspectorClient.h
index 108c2cc..7d09109 100644
--- a/Source/WebKit/mac/WebCoreSupport/WebInspectorClient.h
+++ b/Source/WebKit/mac/WebCoreSupport/WebInspectorClient.h
@@ -31,7 +31,9 @@
#import <WebCore/PlatformString.h>
#import <wtf/Forward.h>
+#import <wtf/HashMap.h>
#import <wtf/RetainPtr.h>
+#import <wtf/text/StringHash.h>
#ifdef __OBJC__
@class WebInspectorWindowController;
@@ -67,12 +69,17 @@ public:
void releaseFrontendPage();
+ void saveSessionSetting(const String& key, const String& value);
+ void loadSessionSetting(const String& key, String* value);
+
private:
WTF::PassOwnPtr<WebCore::InspectorFrontendClientLocal::Settings> createFrontendSettings();
WebView *m_webView;
RetainPtr<WebNodeHighlighter> m_highlighter;
WebCore::Page* m_frontendPage;
+
+ WTF::HashMap<WTF::String, WTF::String> m_sessionSettings;
};
@@ -95,6 +102,9 @@ public:
virtual void setAttachedWindowHeight(unsigned height);
virtual void inspectedURLChanged(const WTF::String& newURL);
+ virtual void saveSessionSetting(const String& key, const String& value);
+ virtual void loadSessionSetting(const String& key, String* value);
+
private:
void updateWindowTitle() const;
diff --git a/Source/WebKit/mac/WebCoreSupport/WebInspectorClient.mm b/Source/WebKit/mac/WebCoreSupport/WebInspectorClient.mm
index d5a1d95..9b0c893 100644
--- a/Source/WebKit/mac/WebCoreSupport/WebInspectorClient.mm
+++ b/Source/WebKit/mac/WebCoreSupport/WebInspectorClient.mm
@@ -65,6 +65,7 @@ using namespace WebCore;
- (BOOL)attached;
- (void)setFrontendClient:(WebInspectorFrontendClient*)frontendClient;
- (void)setInspectorClient:(WebInspectorClient*)inspectorClient;
+- (WebInspectorClient*)inspectorClient;
- (void)setAttachedWindowHeight:(unsigned)height;
- (void)destroyInspectorView:(bool)notifyInspectorController;
@end
@@ -102,10 +103,10 @@ void WebInspectorClient::openInspectorFrontend(InspectorController* inspectorCon
[windowController.get() setInspectorClient:this];
m_frontendPage = core([windowController.get() webView]);
- WebInspectorFrontendClient* frontendClient = new WebInspectorFrontendClient(m_webView, windowController.get(), inspectorController, m_frontendPage, createFrontendSettings());
- m_frontendPage->inspectorController()->setInspectorFrontendClient(frontendClient);
-
- [[m_webView inspector] setFrontend:[[WebInspectorFrontend alloc] initWithFrontendClient:frontendClient]];
+ OwnPtr<WebInspectorFrontendClient> frontendClient = adoptPtr(new WebInspectorFrontendClient(m_webView, windowController.get(), inspectorController, m_frontendPage, createFrontendSettings()));
+ RetainPtr<WebInspectorFrontend> webInspectorFrontend(AdoptNS, [[WebInspectorFrontend alloc] initWithFrontendClient:frontendClient.get()]);
+ [[m_webView inspector] setFrontend:webInspectorFrontend.get()];
+ m_frontendPage->inspectorController()->setInspectorFrontendClient(frontendClient.release());
}
void WebInspectorClient::highlight(Node* node)
@@ -201,6 +202,20 @@ void WebInspectorFrontendClient::inspectedURLChanged(const String& newURL)
updateWindowTitle();
}
+void WebInspectorFrontendClient::saveSessionSetting(const String& key, const String& value)
+{
+ WebInspectorClient* client = [m_windowController.get() inspectorClient];
+ if (client)
+ client->saveSessionSetting(key, value);
+}
+
+void WebInspectorFrontendClient::loadSessionSetting(const String& key, String* value)
+{
+ WebInspectorClient* client = [m_windowController.get() inspectorClient];
+ if (client)
+ client->loadSessionSetting(key, value);
+}
+
void WebInspectorFrontendClient::updateWindowTitle() const
{
NSString *title = [NSString stringWithFormat:UI_STRING_INTERNAL("Web Inspector — %@", "Web Inspector window title"), (NSString *)m_inspectedURL];
@@ -422,6 +437,11 @@ void WebInspectorFrontendClient::updateWindowTitle() const
_inspectorClient = inspectorClient;
}
+- (WebInspectorClient*)inspectorClient
+{
+ return _inspectorClient;
+}
+
- (void)setAttachedWindowHeight:(unsigned)height
{
if (!_attachedToInspectedWebView)
diff --git a/Source/WebKit/mac/WebCoreSupport/WebKeyGenerator.h b/Source/WebKit/mac/WebCoreSupport/WebKeyGenerator.h
index ed2ff77..7728699 100644
--- a/Source/WebKit/mac/WebCoreSupport/WebKeyGenerator.h
+++ b/Source/WebKit/mac/WebCoreSupport/WebKeyGenerator.h
@@ -1,29 +1,26 @@
/*
- * Copyright (C) 2005 Apple Computer, Inc. All rights reserved.
+ * Copyright (C) 2005, 2011 Apple Inc. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
*
- * 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.
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
*/
typedef enum {
@@ -34,14 +31,11 @@ typedef enum {
#ifdef __OBJC__
-#import <WebCore/WebCoreKeyGenerator.h>
+@interface WebKeyGenerator : NSObject
-@interface WebKeyGenerator : WebCoreKeyGenerator
-{
- NSArray *strengthMenuItemTitles;
-}
-+ (void)createSharedGenerator;
++ (WebKeyGenerator *)sharedGenerator;
- (WebCertificateParseResult)addCertificatesToKeychainFromData:(NSData *)data;
+
@end
#endif
diff --git a/Source/WebKit/mac/WebCoreSupport/WebKeyGenerator.m b/Source/WebKit/mac/WebCoreSupport/WebKeyGenerator.m
deleted file mode 100644
index ea1526f..0000000
--- a/Source/WebKit/mac/WebCoreSupport/WebKeyGenerator.m
+++ /dev/null
@@ -1,104 +0,0 @@
-/*
- * Copyright (C) 2005 Apple Computer, 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.
- */
-
-#import <WebKit/WebKeyGenerator.h>
-
-#import "WebLocalizableStringsInternal.h"
-#import <WebKitSystemInterface.h>
-#import <wtf/Assertions.h>
-
-@implementation WebKeyGenerator
-
-+ (void)createSharedGenerator
-{
- if (![self sharedGenerator]) {
- [[[self alloc] init] release];
- }
- ASSERT([[self sharedGenerator] isKindOfClass:self]);
-}
-
-- (void)dealloc
-{
- [strengthMenuItemTitles release];
- [super dealloc];
-}
-
-- (NSArray *)strengthMenuItemTitles
-{
- if (!strengthMenuItemTitles) {
- strengthMenuItemTitles = [[NSArray alloc] initWithObjects:
- UI_STRING_INTERNAL("2048 (High Grade)", "Menu item title for KEYGEN pop-up menu"),
- UI_STRING_INTERNAL("1024 (Medium Grade)", "Menu item title for KEYGEN pop-up menu"),
- UI_STRING_INTERNAL("512 (Low Grade)", "Menu item title for KEYGEN pop-up menu"), nil];
- }
- return strengthMenuItemTitles;
-}
-
-- (NSString *)signedPublicKeyAndChallengeStringWithStrengthIndex:(unsigned)index challenge:(NSString *)challenge pageURL:(NSURL *)pageURL
-{
- // This switch statement must always be synced with the UI strings returned by strengthMenuItemTitles.
- UInt32 keySize;
- switch (index) {
- case 0:
- keySize = 2048;
- break;
- case 1:
- keySize = 1024;
- break;
- case 2:
- keySize = 512;
- break;
- default:
- return nil;
- }
-
- NSString *keyDescription = [NSString stringWithFormat:UI_STRING_INTERNAL("Key from %@", "name of keychain key generated by the KEYGEN tag"), [pageURL host]];
- return [(NSString *)WKSignedPublicKeyAndChallengeString(keySize, (CFStringRef)challenge, (CFStringRef)keyDescription) autorelease];
-}
-
-static inline WebCertificateParseResult toWebCertificateParseResult(WKCertificateParseResult result)
-{
- switch (result) {
- case WKCertificateParseResultSucceeded:
- return WebCertificateParseResultSucceeded;
- case WKCertificateParseResultFailed:
- return WebCertificateParseResultFailed;
- case WKCertificateParseResultPKCS7:
- return WebCertificateParseResultPKCS7;
- }
-
- ASSERT_NOT_REACHED();
- return WebCertificateParseResultFailed;
-}
-
-- (WebCertificateParseResult)addCertificatesToKeychainFromData:(NSData *)data
-{
- return toWebCertificateParseResult(WKAddCertificatesToKeychainFromData([data bytes], [data length]));
-}
-
-@end
diff --git a/Source/WebKit/mac/WebCoreSupport/WebKeyGenerator.mm b/Source/WebKit/mac/WebCoreSupport/WebKeyGenerator.mm
new file mode 100644
index 0000000..3e535ea
--- /dev/null
+++ b/Source/WebKit/mac/WebCoreSupport/WebKeyGenerator.mm
@@ -0,0 +1,61 @@
+/*
+ * Copyright (C) 2005, 2011 Apple Inc. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#import <WebKit/WebKeyGenerator.h>
+
+#import <WebKitSystemInterface.h>
+#import <wtf/Assertions.h>
+
+@implementation WebKeyGenerator
+
++ (WebKeyGenerator *)sharedGenerator
+{
+ static WebKeyGenerator *sharedGenerator = [[WebKeyGenerator alloc] init];
+ return sharedGenerator;
+}
+
+static inline WebCertificateParseResult toWebCertificateParseResult(WKCertificateParseResult result)
+{
+ // FIXME: WebKeyGenerator is not used in WebKit, and this code should be moved to Safari.
+
+ switch (result) {
+ case WKCertificateParseResultSucceeded:
+ return WebCertificateParseResultSucceeded;
+ case WKCertificateParseResultFailed:
+ return WebCertificateParseResultFailed;
+ case WKCertificateParseResultPKCS7:
+ return WebCertificateParseResultPKCS7;
+ }
+
+ ASSERT_NOT_REACHED();
+ return WebCertificateParseResultFailed;
+}
+
+- (WebCertificateParseResult)addCertificatesToKeychainFromData:(NSData *)data
+{
+ return toWebCertificateParseResult(WKAddCertificatesToKeychainFromData([data bytes], [data length]));
+}
+
+@end
diff --git a/Source/WebKit/mac/WebCoreSupport/WebPlatformStrategies.h b/Source/WebKit/mac/WebCoreSupport/WebPlatformStrategies.h
index 30cadcf..29bdb8a 100644
--- a/Source/WebKit/mac/WebCoreSupport/WebPlatformStrategies.h
+++ b/Source/WebKit/mac/WebCoreSupport/WebPlatformStrategies.h
@@ -80,7 +80,7 @@ private:
virtual WTF::String contextMenuItemTagIgnoreSpelling();
virtual WTF::String contextMenuItemTagLearnSpelling();
virtual WTF::String contextMenuItemTagSearchWeb();
- virtual WTF::String contextMenuItemTagLookUpInDictionary();
+ virtual WTF::String contextMenuItemTagLookUpInDictionary(const WTF::String& selectedString);
virtual WTF::String contextMenuItemTagOpenLink();
virtual WTF::String contextMenuItemTagIgnoreGrammar();
virtual WTF::String contextMenuItemTagSpellingMenu();
@@ -153,6 +153,10 @@ private:
virtual WTF::String crashedPluginText();
virtual WTF::String multipleFileUploadText(unsigned numberOfFiles);
virtual WTF::String unknownFileSizeText();
+ virtual WTF::String keygenMenuItem512();
+ virtual WTF::String keygenMenuItem1024();
+ virtual WTF::String keygenMenuItem2048();
+ virtual WTF::String keygenKeychainItemName(const WTF::String& host);
virtual WTF::String imageTitle(const WTF::String& filename, const WebCore::IntSize& size);
virtual WTF::String mediaElementLoadingStateText();
virtual WTF::String mediaElementLiveBroadcastStateText();
diff --git a/Source/WebKit/mac/WebCoreSupport/WebPlatformStrategies.mm b/Source/WebKit/mac/WebCoreSupport/WebPlatformStrategies.mm
index 94fc572..59ba436 100644
--- a/Source/WebKit/mac/WebCoreSupport/WebPlatformStrategies.mm
+++ b/Source/WebKit/mac/WebCoreSupport/WebPlatformStrategies.mm
@@ -274,9 +274,13 @@ String WebPlatformStrategies::contextMenuItemTagSearchWeb()
return UI_STRING_INTERNAL("Search in Google", "Search in Google context menu item");
}
-String WebPlatformStrategies::contextMenuItemTagLookUpInDictionary()
+String WebPlatformStrategies::contextMenuItemTagLookUpInDictionary(const String& selectedString)
{
+#if defined(BUILDING_ON_TIGER) || defined(BUILDING_ON_LEOPARD) || defined(BUILDING_ON_SNOW_LEOPARD)
return UI_STRING_INTERNAL("Look Up in Dictionary", "Look Up in Dictionary context menu item");
+#else
+ return [NSString stringWithFormat:UI_STRING_INTERNAL("Look Up “%@”", "Look Up context menu item with selected word"), (NSString *)selectedString];
+#endif
}
String WebPlatformStrategies::contextMenuItemTagOpenLink()
@@ -666,6 +670,26 @@ String WebPlatformStrategies::unknownFileSizeText()
return UI_STRING_INTERNAL("Unknown", "Unknown filesize FTP directory listing item");
}
+String WebPlatformStrategies::keygenMenuItem512()
+{
+ return UI_STRING_INTERNAL("512 (Low Grade)", "Menu item title for KEYGEN pop-up menu");
+}
+
+String WebPlatformStrategies::keygenMenuItem1024()
+{
+ return UI_STRING_INTERNAL("1024 (Medium Grade)", "Menu item title for KEYGEN pop-up menu");
+}
+
+String WebPlatformStrategies::keygenMenuItem2048()
+{
+ return UI_STRING_INTERNAL("2048 (High Grade)", "Menu item title for KEYGEN pop-up menu");
+}
+
+String WebPlatformStrategies::keygenKeychainItemName(const WTF::String& host)
+{
+ return [NSString stringWithFormat:UI_STRING_INTERNAL("Key from %@", "Name of keychain key generated by the KEYGEN tag"), (NSString *)host];
+}
+
String WebPlatformStrategies::imageTitle(const String& filename, const IntSize& size)
{
#if !defined(BUILDING_ON_TIGER) && !defined(BUILDING_ON_LEOPARD)
diff --git a/Source/WebKit/mac/WebCoreSupport/WebSecurityOrigin.mm b/Source/WebKit/mac/WebCoreSupport/WebSecurityOrigin.mm
index 385d869..131a1ac 100644
--- a/Source/WebKit/mac/WebCoreSupport/WebSecurityOrigin.mm
+++ b/Source/WebKit/mac/WebCoreSupport/WebSecurityOrigin.mm
@@ -46,23 +46,28 @@ using namespace WebCore;
RefPtr<SecurityOrigin> origin = SecurityOrigin::create(KURL([url absoluteURL]));
origin->ref();
- _private = reinterpret_cast<WebSecurityOriginPrivate*>(origin.get());
+ _private = reinterpret_cast<WebSecurityOriginPrivate *>(origin.get());
return self;
}
-- (NSString*)protocol
+- (NSString *)protocol
{
return reinterpret_cast<SecurityOrigin*>(_private)->protocol();
}
-- (NSString*)host
+- (NSString *)host
{
return reinterpret_cast<SecurityOrigin*>(_private)->host();
}
+- (NSString *)databaseIdentifier
+{
+ return reinterpret_cast<SecurityOrigin*>(_private)->databaseIdentifier();
+}
+
// Deprecated. Use host instead. This needs to stay here until we ship a new Safari.
-- (NSString*)domain
+- (NSString *)domain
{
return [self host];
}
@@ -111,7 +116,7 @@ using namespace WebCore;
return nil;
origin->ref();
- _private = reinterpret_cast<WebSecurityOriginPrivate*>(origin);
+ _private = reinterpret_cast<WebSecurityOriginPrivate *>(origin);
return self;
}
diff --git a/Source/WebKit/mac/WebCoreSupport/WebSecurityOriginPrivate.h b/Source/WebKit/mac/WebCoreSupport/WebSecurityOriginPrivate.h
index 2973d92..a784aba 100644
--- a/Source/WebKit/mac/WebCoreSupport/WebSecurityOriginPrivate.h
+++ b/Source/WebKit/mac/WebCoreSupport/WebSecurityOriginPrivate.h
@@ -37,8 +37,10 @@
- (id)initWithURL:(NSURL *)url;
-- (NSString*)protocol;
-- (NSString*)host;
+- (NSString *)protocol;
+- (NSString *)host;
+
+- (NSString *)databaseIdentifier;
// Returns zero if the port is the default port for the protocol, non-zero otherwise.
- (unsigned short)port;
diff --git a/Source/WebKit/mac/WebCoreSupport/WebSystemInterface.mm b/Source/WebKit/mac/WebCoreSupport/WebSystemInterface.mm
index 6504f17..1b212a7 100644
--- a/Source/WebKit/mac/WebCoreSupport/WebSystemInterface.mm
+++ b/Source/WebKit/mac/WebCoreSupport/WebSystemInterface.mm
@@ -63,6 +63,7 @@ void InitWebCoreSystemInterface(void)
INIT(GetHTTPPipeliningPriority);
INIT(GetMIMETypeForExtension);
INIT(GetNSURLResponseLastModifiedDate);
+ INIT(SignedPublicKeyAndChallengeString);
INIT(GetPreferredExtensionForMIMEType);
INIT(GetWheelEventDeltas);
INIT(HitTestMediaUIPart);
@@ -128,6 +129,7 @@ void InitWebCoreSystemInterface(void)
INIT(MakeScrollbarPainter);
INIT(ScrollbarPainterSetDelegate);
INIT(ScrollbarPainterPaint);
+ INIT(ScrollbarPainterForceFlashScrollers);
INIT(ScrollbarThickness);
INIT(ScrollbarMinimumThumbLength);
INIT(ScrollbarMinimumTotalLengthNeededForThumb);
@@ -168,11 +170,17 @@ void InitWebCoreSystemInterface(void)
INIT(UnregisterUniqueIdForElement);
INIT(CreatePrivateStorageSession);
INIT(CopyRequestWithStorageSession);
- INIT(CreatePrivateInMemoryHTTPCookieStorage);
+ INIT(CopyHTTPCookieStorage);
INIT(GetHTTPCookieAcceptPolicy);
INIT(HTTPCookiesForURL);
INIT(SetHTTPCookiesForURL);
INIT(DeleteHTTPCookie);
+ INIT(GetCFURLResponseMIMEType);
+ INIT(GetCFURLResponseURL);
+ INIT(GetCFURLResponseHTTPResponse);
+ INIT(CopyCFURLResponseSuggestedFilename);
+ INIT(SetCFURLResponseMIMEType);
+
didInit = true;
}
diff --git a/Source/WebKit/mac/WebKit.exp b/Source/WebKit/mac/WebKit.exp
index 7c20307..ec8f74b 100644
--- a/Source/WebKit/mac/WebKit.exp
+++ b/Source/WebKit/mac/WebKit.exp
@@ -6,6 +6,7 @@
.objc_class_name_WebCoreStatistics
.objc_class_name_WebDataSource
.objc_class_name_WebDatabaseManager
+.objc_class_name_WebStorageManager
.objc_class_name_WebDefaultPolicyDelegate
.objc_class_name_WebDeviceOrientation
.objc_class_name_WebDeviceOrientationProviderMock
@@ -114,6 +115,8 @@ _WebReportError
_WebScriptErrorDescriptionKey
_WebScriptErrorDomain
_WebScriptErrorLineNumberKey
+_WebStorageDirectoryDefaultsKey
+_WebStorageDidModifyOriginNotification
_WebURLNamePboardType
_WebURLPboardType
_WebViewDidBeginEditingNotification
diff --git a/Source/WebKit/mac/WebKitPrefix.h b/Source/WebKit/mac/WebKitPrefix.h
index fe0f214..6d57815 100644
--- a/Source/WebKit/mac/WebKitPrefix.h
+++ b/Source/WebKit/mac/WebKitPrefix.h
@@ -79,12 +79,6 @@ typedef float CGFloat;
#define WTF_USE_JSC 1
#define WTF_USE_V8 0
-#ifdef __cplusplus
-#include <wtf/FastMalloc.h>
-#endif
-
-#include <wtf/DisallowCType.h>
-
/* Work around bug with C++ library that screws up Objective-C++ when exception support is disabled. */
#undef try
#undef catch
@@ -92,3 +86,11 @@ typedef float CGFloat;
#define JS_EXPORTDATA
#define JS_EXPORTCLASS
#define WEBKIT_EXPORTDATA
+#define WTF_EXPORT_PRIVATE
+#define JS_EXPORT_PRIVATE
+
+#ifdef __cplusplus
+#include <wtf/FastMalloc.h>
+#endif
+
+#include <wtf/DisallowCType.h>
diff --git a/Source/WebKit/mac/WebView/WebClipView.mm b/Source/WebKit/mac/WebView/WebClipView.mm
index ced5d8d..280695e 100644
--- a/Source/WebKit/mac/WebView/WebClipView.mm
+++ b/Source/WebKit/mac/WebView/WebClipView.mm
@@ -51,6 +51,13 @@ using namespace WebCore;
- (void)_immediateScrollToPoint:(NSPoint)newOrigin;
@end
+#if !defined(BUILDING_ON_TIGER) && !defined(BUILDING_ON_LEOPARD)
+@interface NSWindow (WebNSWindowDetails)
+- (void)_disableDelayedWindowDisplay;
+- (void)_enableDelayedWindowDisplay;
+@end
+#endif
+
@implementation WebClipView
- (id)initWithFrame:(NSRect)frame
@@ -96,7 +103,17 @@ using namespace WebCore;
- (void)_immediateScrollToPoint:(NSPoint)newOrigin
{
_isScrolling = YES;
+
+#if !defined(BUILDING_ON_TIGER) && !defined(BUILDING_ON_LEOPARD)
+ [[self window] _disableDelayedWindowDisplay];
+#endif
+
[super _immediateScrollToPoint:newOrigin];
+
+#if !defined(BUILDING_ON_TIGER) && !defined(BUILDING_ON_LEOPARD)
+ [[self window] _enableDelayedWindowDisplay];
+#endif
+
_isScrolling = NO;
}
#endif
diff --git a/Source/WebKit/mac/WebView/WebFrame.mm b/Source/WebKit/mac/WebView/WebFrame.mm
index e792539..584b09e 100644
--- a/Source/WebKit/mac/WebView/WebFrame.mm
+++ b/Source/WebKit/mac/WebView/WebFrame.mm
@@ -579,51 +579,14 @@ static inline WebDataSource *dataSource(DocumentLoader* loader)
}
if (contentsOnly)
- _private->coreFrame->view()->paintContents(&context, enclosingIntRect(rect));
+ view->paintContents(&context, enclosingIntRect(rect));
else
- _private->coreFrame->view()->paint(&context, enclosingIntRect(rect));
+ view->paint(&context, enclosingIntRect(rect));
if (shouldFlatten)
view->setPaintBehavior(oldBehavior);
}
-// Used by pagination code called from AppKit when a standalone web page is printed.
-- (NSArray*)_computePageRectsWithPrintScaleFactor:(float)printScaleFactor pageSize:(NSSize)pageSize
-{
- NSMutableArray* pages = [NSMutableArray arrayWithCapacity:5];
- if (printScaleFactor <= 0) {
- LOG_ERROR("printScaleFactor has bad value %.2f", printScaleFactor);
- return pages;
- }
-
- if (!_private->coreFrame || !_private->coreFrame->document() || !_private->coreFrame->view()) return pages;
- RenderView* root = toRenderView(_private->coreFrame->document()->renderer());
- if (!root) return pages;
-
- FrameView* view = _private->coreFrame->view();
- if (!view)
- return pages;
-
- NSView* documentView = view->documentView();
- if (!documentView)
- return pages;
-
- float docWidth = root->docWidth();
- float docHeight = root->docHeight();
-
- float printWidth = root->style()->isHorizontalWritingMode() ? docWidth / printScaleFactor : pageSize.width;
- float printHeight = root->style()->isHorizontalWritingMode() ? pageSize.height : docHeight / printScaleFactor;
-
- PrintContext printContext(_private->coreFrame);
- printContext.computePageRectsWithPageSize(FloatSize(printWidth, printHeight), true);
-
- const Vector<IntRect>& pageRects = printContext.pageRects();
- const size_t pageCount = pageRects.size();
- for (size_t pageNumber = 0; pageNumber < pageCount; ++pageNumber)
- [pages addObject: [NSValue valueWithRect: NSRect(pageRects[pageNumber])]];
- return pages;
-}
-
- (BOOL)_getVisibleRect:(NSRect*)rect
{
ASSERT_ARG(rect, rect);
@@ -1347,10 +1310,18 @@ static inline WebDataSource *dataSource(DocumentLoader* loader)
- (BOOL)hasSpellingMarker:(int)from length:(int)length
{
- Frame* coreFrame = _private->coreFrame;
+ Frame* coreFrame = core(self);
+ if (!coreFrame)
+ return NO;
+ return coreFrame->editor()->selectionStartHasMarkerFor(DocumentMarker::Spelling, from, length);
+}
+
+- (BOOL)hasGrammarMarker:(int)from length:(int)length
+{
+ Frame* coreFrame = core(self);
if (!coreFrame)
return NO;
- return coreFrame->editor()->selectionStartHasSpellingMarkerFor(from, length);
+ return coreFrame->editor()->selectionStartHasMarkerFor(DocumentMarker::Grammar, from, length);
}
- (id)accessibilityRoot
@@ -1358,8 +1329,7 @@ static inline WebDataSource *dataSource(DocumentLoader* loader)
#if HAVE(ACCESSIBILITY)
if (!AXObjectCache::accessibilityEnabled()) {
AXObjectCache::enableAccessibility();
- if ([[NSApp accessibilityAttributeValue:NSAccessibilityEnhancedUserInterfaceAttribute] boolValue])
- AXObjectCache::enableEnhancedUserInterfaceAccessibility();
+ AXObjectCache::setEnhancedUserInterfaceAccessibility([[NSApp accessibilityAttributeValue:NSAccessibilityEnhancedUserInterfaceAttribute] boolValue]);
}
if (!_private->coreFrame || !_private->coreFrame->document())
@@ -1387,6 +1357,41 @@ static inline WebDataSource *dataSource(DocumentLoader* loader)
coreFrame->loader()->setOpener(0);
}
+// Used by pagination code called from AppKit when a standalone web page is printed.
+- (NSArray *)_computePageRectsWithPrintScaleFactor:(float)printScaleFactor pageSize:(NSSize)pageSize
+{
+ if (printScaleFactor <= 0) {
+ LOG_ERROR("printScaleFactor has bad value %.2f", printScaleFactor);
+ return [NSArray array];
+ }
+
+ if (!_private->coreFrame)
+ return [NSArray array];
+ if (!_private->coreFrame->document())
+ return [NSArray array];
+ if (!_private->coreFrame->view())
+ return [NSArray array];
+ if (!_private->coreFrame->view()->documentView())
+ return [NSArray array];
+
+ RenderView* root = toRenderView(_private->coreFrame->document()->renderer());
+ if (!root)
+ return [NSArray array];
+
+ float printWidth = root->style()->isHorizontalWritingMode() ? root->docWidth() / printScaleFactor : pageSize.width;
+ float printHeight = root->style()->isHorizontalWritingMode() ? pageSize.height : root->docHeight() / printScaleFactor;
+
+ PrintContext printContext(_private->coreFrame);
+ printContext.computePageRectsWithPageSize(FloatSize(printWidth, printHeight), true);
+ const Vector<IntRect>& pageRects = printContext.pageRects();
+
+ size_t size = pageRects.size();
+ NSMutableArray *pages = [NSMutableArray arrayWithCapacity:size];
+ for (size_t i = 0; i < size; ++i)
+ [pages addObject:[NSValue valueWithRect:NSRect(pageRects[i])]];
+ return pages;
+}
+
@end
@implementation WebFrame
diff --git a/Source/WebKit/mac/WebView/WebFrameInternal.h b/Source/WebKit/mac/WebView/WebFrameInternal.h
index 7e8016a..c13b721 100644
--- a/Source/WebKit/mac/WebView/WebFrameInternal.h
+++ b/Source/WebKit/mac/WebView/WebFrameInternal.h
@@ -125,7 +125,6 @@ WebView *getWebView(WebFrame *webFrame);
- (BOOL)_needsLayout;
- (void)_drawRect:(NSRect)rect contentsOnly:(BOOL)contentsOnly;
- (BOOL)_getVisibleRect:(NSRect*)rect;
-- (NSArray*)_computePageRectsWithPrintScaleFactor:(float)printWidthScaleFactor pageSize:(NSSize)pageSize;
- (NSString *)_stringByEvaluatingJavaScriptFromString:(NSString *)string;
- (NSString *)_stringByEvaluatingJavaScriptFromString:(NSString *)string forceUserGesture:(BOOL)forceUserGesture;
diff --git a/Source/WebKit/mac/WebView/WebFramePrivate.h b/Source/WebKit/mac/WebView/WebFramePrivate.h
index 75b57c7..82b3c4a 100644
--- a/Source/WebKit/mac/WebView/WebFramePrivate.h
+++ b/Source/WebKit/mac/WebView/WebFramePrivate.h
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2005, 2006, 2007, 2008, 2009, 2010 Apple Computer, Inc. All rights reserved.
+ * Copyright (C) 2005, 2006, 2007, 2008, 2009, 2010, 2011 Apple Inc. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
@@ -69,8 +69,9 @@ typedef enum {
} WebFrameLoadType;
@interface WebFrame (WebPrivate)
+
- (BOOL)_isDescendantOfFrame:(WebFrame *)frame;
-- (void)_setShouldCreateRenderers:(BOOL)f;
+- (void)_setShouldCreateRenderers:(BOOL)shouldCreateRenderers;
- (NSColor *)_bodyBackgroundColor;
- (BOOL)_isFrameSet;
- (BOOL)_firstLayoutDone;
@@ -142,11 +143,15 @@ typedef enum {
// Returns whether there is a spelling marker in the specified range of the focused node.
- (BOOL)hasSpellingMarker:(int)location length:(int)length;
+- (BOOL)hasGrammarMarker:(int)from length:(int)length;
+
// The top of the accessibility tree.
- (id)accessibilityRoot;
// Clears frame opener. This is executed between layout tests runs
- (void)_clearOpener;
+// Printing.
+- (NSArray *)_computePageRectsWithPrintScaleFactor:(float)printWidthScaleFactor pageSize:(NSSize)pageSize;
@end
diff --git a/Source/WebKit/mac/WebView/WebFrameView.mm b/Source/WebKit/mac/WebView/WebFrameView.mm
index 801c1f4..c42738c 100644
--- a/Source/WebKit/mac/WebView/WebFrameView.mm
+++ b/Source/WebKit/mac/WebView/WebFrameView.mm
@@ -308,7 +308,6 @@ static inline void addTypesFromClass(NSMutableDictionary *allTypes, Class objCCl
WebCore::notifyHistoryItemChanged = WKNotifyHistoryItemChanged;
[WebViewFactory createSharedFactory];
- [WebKeyGenerator createSharedGenerator];
// FIXME: Remove the NSAppKitVersionNumberWithDeferredWindowDisplaySupport check once
// once AppKit's Deferred Window Display support is available.
diff --git a/Source/WebKit/mac/WebView/WebFullScreenController.h b/Source/WebKit/mac/WebView/WebFullScreenController.h
index f867dc2..0f55bd0 100644
--- a/Source/WebKit/mac/WebView/WebFullScreenController.h
+++ b/Source/WebKit/mac/WebView/WebFullScreenController.h
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2010 Apple Inc. All rights reserved.
+ * Copyright (C) 2010, 2011 Apple Inc. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
diff --git a/Source/WebKit/mac/WebView/WebFullScreenController.mm b/Source/WebKit/mac/WebView/WebFullScreenController.mm
index 5b8b496..3cc8355 100644
--- a/Source/WebKit/mac/WebView/WebFullScreenController.mm
+++ b/Source/WebKit/mac/WebView/WebFullScreenController.mm
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2009, 2010, 2011 Apple Inc. All rights reserved.
+ * Copyright (C) 2010, 2011 Apple Inc. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
diff --git a/Source/WebKit/mac/WebView/WebHTMLRepresentation.h b/Source/WebKit/mac/WebView/WebHTMLRepresentation.h
index 68f9bde..b714bf6 100644
--- a/Source/WebKit/mac/WebView/WebHTMLRepresentation.h
+++ b/Source/WebKit/mac/WebView/WebHTMLRepresentation.h
@@ -57,6 +57,7 @@
+ (NSArray *)supportedMIMETypes;
+ (NSArray *)supportedNonImageMIMETypes;
+ (NSArray *)supportedImageMIMETypes;
++ (NSArray *)unsupportedTextMIMETypes;
- (NSAttributedString *)attributedStringFrom:(DOMNode *)startNode startOffset:(int)startOffset to:(DOMNode *)endNode endOffset:(int)endOffset;
diff --git a/Source/WebKit/mac/WebView/WebHTMLRepresentation.mm b/Source/WebKit/mac/WebView/WebHTMLRepresentation.mm
index fad0a4a..03edd5d 100644
--- a/Source/WebKit/mac/WebView/WebHTMLRepresentation.mm
+++ b/Source/WebKit/mac/WebView/WebHTMLRepresentation.mm
@@ -113,6 +113,12 @@ static NSArray *concatenateArrays(NSArray *first, NSArray *second)
return staticSupportedImageMIMETypes.get();
}
++ (NSArray *)unsupportedTextMIMETypes
+{
+ DEFINE_STATIC_LOCAL(RetainPtr<NSArray>, staticUnsupportedTextMIMETypes, (stringArray(MIMETypeRegistry::getUnsupportedTextMIMETypes())));
+ return staticUnsupportedTextMIMETypes.get();
+}
+
- (id)init
{
self = [super init];
diff --git a/Source/WebKit/mac/WebView/WebHTMLView.mm b/Source/WebKit/mac/WebView/WebHTMLView.mm
index 00f65bd..e611e2b 100644
--- a/Source/WebKit/mac/WebView/WebHTMLView.mm
+++ b/Source/WebKit/mac/WebView/WebHTMLView.mm
@@ -383,6 +383,7 @@ static CachedResourceClient* promisedDataClient()
- (DOMDocumentFragment *)_documentFragmentFromPasteboard:(NSPasteboard *)pasteboard inContext:(DOMRange *)context allowPlainText:(BOOL)allowPlainText;
- (NSString *)_plainTextFromPasteboard:(NSPasteboard *)pasteboard;
- (void)_pasteWithPasteboard:(NSPasteboard *)pasteboard allowPlainText:(BOOL)allowPlainText;
+- (void)_pasteAsPlainTextWithPasteboard:(NSPasteboard *)pasteboard;
- (void)_removeMouseMovedObserverUnconditionally;
- (void)_removeSuperviewObservers;
- (void)_removeWindowObservers;
@@ -461,11 +462,9 @@ static CachedResourceClient* promisedDataClient()
struct WebHTMLViewInterpretKeyEventsParameters {
KeyboardEvent* event;
- BOOL eventWasHandled;
- BOOL shouldSaveCommand;
- // The Input Method may consume an event and not tell us, in
- // which case we should not bubble the event up the DOM
- BOOL consumedByIM;
+ bool eventInterpretationHadSideEffects;
+ bool shouldSaveCommands;
+ bool consumedByIM;
};
@interface WebHTMLViewPrivate : NSObject {
@@ -522,7 +521,6 @@ struct WebHTMLViewInterpretKeyEventsParameters {
BOOL transparentBackground;
WebHTMLViewInterpretKeyEventsParameters* interpretKeyEventsParameters;
- BOOL receivedNOOP;
WebDataSource *dataSource;
WebCore::CachedImage* promisedDragTIFFDataSource;
@@ -914,6 +912,32 @@ static NSURL* uniqueURLWithRelativePart(NSString *relativePart)
[webView release];
}
+- (void)_pasteAsPlainTextWithPasteboard:(NSPasteboard *)pasteboard
+{
+ WebView *webView = [[self _webView] retain];
+ [webView _setInsertionPasteboard:pasteboard];
+
+ NSString *text = [self _plainTextFromPasteboard:pasteboard];
+ if ([self _shouldReplaceSelectionWithText:text givenAction:WebViewInsertActionPasted])
+ [[self _frame] _replaceSelectionWithText:text selectReplacement:NO smartReplace:[self _canSmartReplaceWithPasteboard:pasteboard]];
+
+ [webView _setInsertionPasteboard:nil];
+ [webView release];
+}
+
+// This method is needed to support Mac OS X services.
+- (BOOL)readSelectionFromPasteboard:(NSPasteboard *)pasteboard
+{
+ Frame* coreFrame = core([self _frame]);
+ if (!coreFrame)
+ return NO;
+ if (coreFrame->selection()->isContentRichlyEditable())
+ [self _pasteWithPasteboard:pasteboard allowPlainText:YES];
+ else
+ [self _pasteAsPlainTextWithPasteboard:pasteboard];
+ return YES;
+}
+
- (void)_removeMouseMovedObserverUnconditionally
{
if (!_private || !_private->observingMouseMovedNotifications)
@@ -1169,21 +1193,7 @@ static NSURL* uniqueURLWithRelativePart(NSString *relativePart)
+ (NSArray *)unsupportedTextMIMETypes
{
- return [NSArray arrayWithObjects:
- @"text/calendar", // iCal
- @"text/x-calendar",
- @"text/x-vcalendar",
- @"text/vcalendar",
- @"text/vcard", // vCard
- @"text/x-vcard",
- @"text/directory",
- @"text/ldif", // Netscape Address Book
- @"text/qif", // Quicken
- @"text/x-qif",
- @"text/x-csv", // CSV (for Address Book and Microsoft Outlook)
- @"text/x-vcf", // vCard type used in Sun affinity app
- @"text/rtf", // Rich Text Format
- nil];
+ return [WebHTMLRepresentation unsupportedTextMIMETypes];
}
+ (void)_postFlagsChangedEvent:(NSEvent *)flagsChangedEvent
@@ -1985,10 +1995,6 @@ static void _updateMouseoverTimerCallback(CFRunLoopTimerRef timer, void *info)
[self removeAllToolTips];
[_private clear];
-
- Page* page = core([self _webView]);
- if (page)
- page->dragController()->setDraggingImageURL(KURL());
}
- (BOOL)_hasHTMLDocument
@@ -2608,6 +2614,7 @@ WEBCORE_COMMAND(yankAndSelect)
[NSPasteboard _web_setFindPasteboardString:[self selectedString] withOwner:self];
}
+// This method is needed to support Mac OS X services.
- (BOOL)writeSelectionToPasteboard:(NSPasteboard *)pasteboard types:(NSArray *)types
{
[pasteboard declareTypes:types owner:[self _topHTMLView]];
@@ -3036,7 +3043,12 @@ WEBCORE_COMMAND(yankAndSelect)
// We may have created the layer hosting view while outside the window. Update the scale factor
// now that we have a window to get it from.
if (_private->layerHostingView) {
- CGFloat scaleFactor = [[self window] userSpaceScaleFactor];
+ CGFloat scaleFactor;
+#if !defined(BUILDING_ON_SNOW_LEOPARD)
+ scaleFactor = [[self window] backingScaleFactor];
+#else
+ scaleFactor = [[self window] userSpaceScaleFactor];
+#endif
[[_private->layerHostingView layer] setTransform:CATransform3DMakeScale(scaleFactor, scaleFactor, 1)];
}
#endif
@@ -5416,59 +5428,96 @@ static CGPoint coreGraphicsScreenPointForAppKitScreenPoint(NSPoint point)
[self _updateMouseoverWithFakeEvent];
}
-- (BOOL)_interceptEditingKeyEvent:(KeyboardEvent*)event shouldSaveCommand:(BOOL)shouldSave
+- (void)_executeSavedEditingCommands
+{
+ WebHTMLViewInterpretKeyEventsParameters* parameters = _private->interpretKeyEventsParameters;
+ if (!parameters || parameters->event->keypressCommands().isEmpty())
+ return;
+
+ // Avoid an infinite loop that would occur if executing a command appended it to event->keypressCommands() again.
+ bool wasSavingCommands = parameters->shouldSaveCommands;
+ parameters->shouldSaveCommands = false;
+
+ const Vector<KeypressCommand>& commands = parameters->event->keypressCommands();
+
+ for (size_t i = 0; i < commands.size(); ++i) {
+ if (commands[i].commandName == "insertText:")
+ [self insertText:commands[i].text];
+ else
+ [self doCommandBySelector:NSSelectorFromString(commands[i].commandName)];
+ }
+ parameters->event->keypressCommands().clear();
+ parameters->shouldSaveCommands = wasSavingCommands;
+}
+
+- (BOOL)_interpretKeyEvent:(KeyboardEvent*)event savingCommands:(BOOL)savingCommands
{
- // Ask AppKit to process the key event -- it will call back with either insertText or doCommandBySelector.
+ ASSERT(core([self _frame]) == event->target()->toNode()->document()->frame());
+ ASSERT(!savingCommands || event->keypressCommands().isEmpty()); // Save commands once for each event.
+
WebHTMLViewInterpretKeyEventsParameters parameters;
- parameters.eventWasHandled = false;
- parameters.shouldSaveCommand = shouldSave;
+ parameters.eventInterpretationHadSideEffects = false;
+ parameters.shouldSaveCommands = savingCommands;
// If we're intercepting the initial IM call we assume that the IM has consumed the event,
// and only change this assumption if one of the NSTextInput/Responder callbacks is used.
// We assume the IM will *not* consume hotkey sequences
- parameters.consumedByIM = !event->metaKey() && shouldSave;
+ parameters.consumedByIM = savingCommands && !event->metaKey();
- if (const PlatformKeyboardEvent* platformEvent = event->keyEvent()) {
- NSEvent *macEvent = platformEvent->macEvent();
- if ([macEvent type] == NSKeyDown && [_private->completionController filterKeyDown:macEvent])
- return true;
-
- if ([macEvent type] == NSFlagsChanged)
- return false;
-
- parameters.event = event;
- _private->interpretKeyEventsParameters = &parameters;
- _private->receivedNOOP = NO;
- const Vector<KeypressCommand>& commands = event->keypressCommands();
- bool hasKeypressCommand = !commands.isEmpty();
-
- // FIXME: interpretKeyEvents doesn't match application key equivalents (such as Cmd+A),
- // and sends noop: for those. As a result, we don't handle those from within WebCore,
- // but send a full sequence of DOM events, including an unneeded keypress.
- if (parameters.shouldSaveCommand || !hasKeypressCommand)
- [self interpretKeyEvents:[NSArray arrayWithObject:macEvent]];
- else {
- size_t size = commands.size();
- // Are there commands that would just cause text insertion if executed via Editor?
- // WebKit doesn't have enough information about mode to decide how they should be treated, so we leave it upon WebCore
- // to either handle them immediately (e.g. Tab that changes focus) or let a keypress event be generated
- // (e.g. Tab that inserts a Tab character, or Enter).
- bool haveTextInsertionCommands = false;
- for (size_t i = 0; i < size; ++i) {
- if ([self coreCommandBySelector:NSSelectorFromString(commands[i].commandName)].isTextInsertion())
- haveTextInsertionCommands = true;
- }
- if (!haveTextInsertionCommands || platformEvent->type() == PlatformKeyboardEvent::Char) {
- for (size_t i = 0; i < size; ++i) {
- if (commands[i].commandName == "insertText:")
- [self insertText:commands[i].text];
- else
- [self doCommandBySelector:NSSelectorFromString(commands[i].commandName)];
- }
- }
+ const PlatformKeyboardEvent* platformEvent = event->keyEvent();
+ if (!platformEvent)
+ return NO;
+
+ NSEvent *macEvent = platformEvent->macEvent();
+ if ([macEvent type] == NSKeyDown && [_private->completionController filterKeyDown:macEvent])
+ return YES;
+
+ if ([macEvent type] == NSFlagsChanged)
+ return NO;
+
+ parameters.event = event;
+ _private->interpretKeyEventsParameters = &parameters;
+ const Vector<KeypressCommand>& commands = event->keypressCommands();
+
+ if (savingCommands) {
+ // AppKit will respond with a series of NSTextInput protocol method calls. There are three groups that we heuristically differentiate:
+ // 1. Key Bindings. Only doCommandBySelector: and insertText: calls will be made, which we save in the event for execution
+ // after DOM dispatch. This is safe, because neither returns a result, so there is no branching on AppKit side.
+ // 2. Plain text input. Here as well, we need to dispatch DOM events prior to inserting text, so we save the insertText: command.
+ // 3. Input method processing. An IM can make any NSTextInput calls, and can base its decisions on results it gets, so we must
+ // execute the calls immediately. DOM events like keydown are tweaked to have keyCode of 229, and canceling them has no effect.
+ // Unfortunately, there is no real difference between plain text input and IM processing - for example, AppKit queries hasMarkedText
+ // when typing with U.S. keyboard, and inserts marked text for dead keys.
+ [self interpretKeyEvents:[NSArray arrayWithObject:macEvent]];
+ } else {
+ // Are there commands that could just cause text insertion if executed via Editor?
+ // WebKit doesn't have enough information about mode to decide how they should be treated, so we leave it upon WebCore
+ // to either handle them immediately (e.g. Tab that changes focus) or let a keypress event be generated
+ // (e.g. Tab that inserts a Tab character, or Enter).
+ bool haveTextInsertionCommands = false;
+ for (size_t i = 0; i < commands.size(); ++i) {
+ if ([self coreCommandBySelector:NSSelectorFromString(commands[i].commandName)].isTextInsertion())
+ haveTextInsertionCommands = true;
}
- _private->interpretKeyEventsParameters = 0;
+ // If there are no text insertion commands, default keydown handler is the right time to execute the commands.
+ // Keypress (Char event) handler is the latest opportunity to execute.
+ if (!haveTextInsertionCommands || platformEvent->type() == PlatformKeyboardEvent::Char)
+ [self _executeSavedEditingCommands];
}
- return (!_private->receivedNOOP && parameters.eventWasHandled) || parameters.consumedByIM;
+ _private->interpretKeyEventsParameters = 0;
+
+ // An input method may make several actions per keypress. For example, pressing Return with Korean IM both confirms it and sends a newline.
+ // IM-like actions are handled immediately (so parameters.eventInterpretationHadSideEffects is true), but there are saved commands that
+ // should be handled like normal text input after DOM event dispatch.
+ if (!event->keypressCommands().isEmpty())
+ return NO;
+
+ // An input method may consume an event and not tell us (e.g. when displaying a candidate window),
+ // in which case we should not bubble the event up the DOM.
+ if (parameters.consumedByIM)
+ return YES;
+
+ // If we have already executed all commands, don't do it again.
+ return parameters.eventInterpretationHadSideEffects;
}
- (WebCore::CachedImage*)promisedDragTIFFDataSource
@@ -5551,7 +5600,20 @@ static CGPoint coreGraphicsScreenPointForAppKitScreenPoint(NSPoint point)
#if !defined(BUILDING_ON_LEOPARD)
// If we aren't in the window yet, we'll use the screen's scale factor now, and reset the scale
// via -viewDidMoveToWindow.
- CGFloat scaleFactor = [self window] ? [[self window] userSpaceScaleFactor] : [[NSScreen mainScreen] userSpaceScaleFactor];
+ NSWindow *window = [self window];
+ CGFloat scaleFactor;
+#if !defined(BUILDING_ON_SNOW_LEOPARD)
+ if (window)
+ scaleFactor = [window backingScaleFactor];
+ else
+ scaleFactor = [[NSScreen mainScreen] backingScaleFactor];
+#else
+ if (window)
+ scaleFactor = [window userSpaceScaleFactor];
+ else
+ scaleFactor = [[NSScreen mainScreen] userSpaceScaleFactor];
+#endif
+
[viewLayer setTransform:CATransform3DMakeScale(scaleFactor, scaleFactor, 1)];
#endif
@@ -5684,6 +5746,8 @@ static CGPoint coreGraphicsScreenPointForAppKitScreenPoint(NSPoint point)
- (NSUInteger)characterIndexForPoint:(NSPoint)thePoint
{
+ [self _executeSavedEditingCommands];
+
NSWindow *window = [self window];
WebFrame *frame = [self _frame];
@@ -5703,7 +5767,9 @@ static CGPoint coreGraphicsScreenPointForAppKitScreenPoint(NSPoint point)
}
- (NSRect)firstRectForCharacterRange:(NSRange)theRange
-{
+{
+ [self _executeSavedEditingCommands];
+
WebFrame *frame = [self _frame];
// Just to match NSTextView's behavior. Regression tests cannot detect this;
@@ -5734,6 +5800,8 @@ static CGPoint coreGraphicsScreenPointForAppKitScreenPoint(NSPoint point)
- (NSRange)selectedRange
{
+ [self _executeSavedEditingCommands];
+
if (!isTextInput(core([self _frame]))) {
LOG(TextInput, "selectedRange -> (NSNotFound, 0)");
return NSMakeRange(NSNotFound, 0);
@@ -5746,6 +5814,8 @@ static CGPoint coreGraphicsScreenPointForAppKitScreenPoint(NSPoint point)
- (NSRange)markedRange
{
+ [self _executeSavedEditingCommands];
+
WebFrame *webFrame = [self _frame];
Frame* coreFrame = core(webFrame);
if (!coreFrame)
@@ -5758,6 +5828,8 @@ static CGPoint coreGraphicsScreenPointForAppKitScreenPoint(NSPoint point)
- (NSAttributedString *)attributedSubstringFromRange:(NSRange)nsRange
{
+ [self _executeSavedEditingCommands];
+
WebFrame *frame = [self _frame];
Frame* coreFrame = core(frame);
if (!isTextInput(coreFrame) || isInPasswordField(coreFrame)) {
@@ -5799,6 +5871,8 @@ static CGPoint coreGraphicsScreenPointForAppKitScreenPoint(NSPoint point)
- (BOOL)hasMarkedText
{
+ [self _executeSavedEditingCommands];
+
Frame* coreFrame = core([self _frame]);
BOOL result = coreFrame && coreFrame->editor()->hasComposition();
LOG(TextInput, "hasMarkedText -> %u", result);
@@ -5807,6 +5881,8 @@ static CGPoint coreGraphicsScreenPointForAppKitScreenPoint(NSPoint point)
- (void)unmarkText
{
+ [self _executeSavedEditingCommands];
+
LOG(TextInput, "unmarkText");
// Use pointer to get parameters passed to us by the caller of interpretKeyEvents.
@@ -5814,8 +5890,8 @@ static CGPoint coreGraphicsScreenPointForAppKitScreenPoint(NSPoint point)
_private->interpretKeyEventsParameters = 0;
if (parameters) {
- parameters->eventWasHandled = YES;
- parameters->consumedByIM = NO;
+ parameters->eventInterpretationHadSideEffects = true;
+ parameters->consumedByIM = false;
}
if (Frame* coreFrame = core([self _frame]))
@@ -5844,6 +5920,8 @@ static void extractUnderlines(NSAttributedString *string, Vector<CompositionUnde
- (void)setMarkedText:(id)string selectedRange:(NSRange)newSelRange
{
+ [self _executeSavedEditingCommands];
+
BOOL isAttributedString = [string isKindOfClass:[NSAttributedString class]]; // Otherwise, NSString
LOG(TextInput, "setMarkedText:\"%@\" selectedRange:(%u, %u)", isAttributedString ? [string string] : string, newSelRange.location, newSelRange.length);
@@ -5853,8 +5931,8 @@ static void extractUnderlines(NSAttributedString *string, Vector<CompositionUnde
_private->interpretKeyEventsParameters = 0;
if (parameters) {
- parameters->eventWasHandled = YES;
- parameters->consumedByIM = NO;
+ parameters->eventInterpretationHadSideEffects = true;
+ parameters->consumedByIM = false;
}
Frame* coreFrame = core([self _frame]);
@@ -5869,7 +5947,7 @@ static void extractUnderlines(NSAttributedString *string, Vector<CompositionUnde
if (isAttributedString) {
unsigned markedTextLength = [(NSString *)string length];
- NSString *rangeString = [string attribute:NSTextInputReplacementRangeAttributeName atIndex:0 longestEffectiveRange:NULL inRange:NSMakeRange(0, markedTextLength)];
+ NSString *rangeString = [string attribute:NSTextInputReplacementRangeAttributeName atIndex:0 longestEffectiveRange:0 inRange:NSMakeRange(0, markedTextLength)];
LOG(TextInput, " ReplacementRange: %@", rangeString);
// The AppKit adds a 'secret' property to the string that contains the replacement range.
// The replacement range is the range of the the text that should be replaced with the new string.
@@ -5891,17 +5969,16 @@ static void extractUnderlines(NSAttributedString *string, Vector<CompositionUnde
// The same call to interpretKeyEvents can do more than one command.
WebHTMLViewInterpretKeyEventsParameters* parameters = _private->interpretKeyEventsParameters;
if (parameters)
- parameters->consumedByIM = NO;
-
- if (selector == @selector(noop:)) {
- _private->receivedNOOP = YES;
- return;
- }
+ parameters->consumedByIM = false;
KeyboardEvent* event = parameters ? parameters->event : 0;
- bool shouldSaveCommand = parameters && parameters->shouldSaveCommand;
+ bool shouldSaveCommand = parameters && parameters->shouldSaveCommands;
+
+ // As in insertText:, we assume that the call comes from an input method if there is marked text.
+ RefPtr<Frame> coreFrame = core([self _frame]);
+ bool isFromInputMethod = coreFrame && coreFrame->editor()->hasComposition();
- if (event && shouldSaveCommand)
+ if (event && shouldSaveCommand && !isFromInputMethod)
event->keypressCommands().append(KeypressCommand(NSStringFromSelector(selector)));
else {
// Make sure that only direct calls to doCommandBySelector: see the parameters by setting to 0.
@@ -5933,10 +6010,8 @@ static void extractUnderlines(NSAttributedString *string, Vector<CompositionUnde
}
if (parameters)
- parameters->eventWasHandled = eventWasHandled;
+ parameters->eventInterpretationHadSideEffects |= eventWasHandled;
- // Restore the parameters so that other calls to doCommandBySelector: see them,
- // and other commands can participate in setting the "eventWasHandled" flag.
_private->interpretKeyEventsParameters = parameters;
}
}
@@ -5948,9 +6023,8 @@ static void extractUnderlines(NSAttributedString *string, Vector<CompositionUnde
LOG(TextInput, "insertText:\"%@\"", isAttributedString ? [string string] : string);
WebHTMLViewInterpretKeyEventsParameters* parameters = _private->interpretKeyEventsParameters;
- _private->interpretKeyEventsParameters = 0;
if (parameters)
- parameters->consumedByIM = NO;
+ parameters->consumedByIM = false;
// We don't support inserting an attributed string but input methods don't appear to require this.
RefPtr<Frame> coreFrame = core([self _frame]);
@@ -5960,57 +6034,48 @@ static void extractUnderlines(NSAttributedString *string, Vector<CompositionUnde
text = [string string];
// We deal with the NSTextInputReplacementRangeAttributeName attribute from NSAttributedString here
// simply because it is used by at least one Input Method -- it corresonds to the kEventParamTextInputSendReplaceRange
- // event in TSM. This behaviour matches that of -[WebHTMLView setMarkedText:selectedRange:] when it receives an
+ // event in TSM. This behavior matches that of -[WebHTMLView setMarkedText:selectedRange:] when it receives an
// NSAttributedString
- NSString *rangeString = [string attribute:NSTextInputReplacementRangeAttributeName atIndex:0 longestEffectiveRange:NULL inRange:NSMakeRange(0, [text length])];
+ NSString *rangeString = [string attribute:NSTextInputReplacementRangeAttributeName atIndex:0 longestEffectiveRange:0 inRange:NSMakeRange(0, [text length])];
LOG(TextInput, " ReplacementRange: %@", rangeString);
if (rangeString) {
[[self _frame] _selectNSRange:NSRangeFromString(rangeString)];
- isFromInputMethod = YES;
+ isFromInputMethod = true;
}
} else
text = string;
- bool eventHandled = false;
- if ([text length]) {
- KeyboardEvent* event = parameters ? parameters->event : 0;
-
- // insertText can be called from an input method or from normal key event processing
- // If its from normal key event processing, we may need to save the action to perform it later.
- // If its from an input method, then we should go ahead and insert the text now.
- // We assume it's from the input method if we have marked text.
- // FIXME: In theory, this could be wrong for some input methods, so we should try to find
- // another way to determine if the call is from the input method
- bool shouldSaveCommand = parameters && parameters->shouldSaveCommand;
- if (event && shouldSaveCommand && !isFromInputMethod) {
- event->keypressCommands().append(KeypressCommand("insertText:", text));
- _private->interpretKeyEventsParameters = parameters;
- return;
- }
-
- String eventText = text;
- eventText.replace(NSBackTabCharacter, NSTabCharacter); // same thing is done in KeyEventMac.mm in WebCore
- if (coreFrame && coreFrame->editor()->canEdit()) {
- if (!coreFrame->editor()->hasComposition())
- eventHandled = coreFrame->editor()->insertText(eventText, event);
- else {
- eventHandled = true;
- coreFrame->editor()->confirmComposition(eventText);
- }
- }
- }
-
- if (!parameters)
+ KeyboardEvent* event = parameters ? parameters->event : 0;
+
+ // insertText can be called for several reasons:
+ // - If it's from normal key event processing (including key bindings), we may need to save the action to perform it later.
+ // - If it's from an input method, then we should go ahead and insert the text now. We assume it's from the input method if we have marked text.
+ // FIXME: In theory, this could be wrong for some input methods, so we should try to find another way to determine if the call is from the input method.
+ // - If it's sent outside of keyboard event processing (e.g. from Character Viewer, or when confirming an inline input area with a mouse),
+ // then we also execute it immediately, as there will be no other chance.
+ bool shouldSaveCommand = parameters && parameters->shouldSaveCommands;
+ if (event && shouldSaveCommand && !isFromInputMethod) {
+ event->keypressCommands().append(KeypressCommand("insertText:", text));
return;
-
- if (isFromInputMethod) {
- // Allow doCommandBySelector: to be called after insertText: by resetting interpretKeyEventsParameters
- _private->interpretKeyEventsParameters = parameters;
- parameters->consumedByIM = YES;
+ }
+
+ if (!coreFrame || !coreFrame->editor()->canEdit())
return;
+
+ bool eventHandled = false;
+ String eventText = text;
+ eventText.replace(NSBackTabCharacter, NSTabCharacter); // same thing is done in KeyEventMac.mm in WebCore
+ if (!coreFrame->editor()->hasComposition()) {
+ // An insertText: might be handled by other responders in the chain if we don't handle it.
+ // One example is space bar that results in scrolling down the page.
+ eventHandled = coreFrame->editor()->insertText(eventText, event);
+ } else {
+ eventHandled = true;
+ coreFrame->editor()->confirmComposition(eventText);
}
- parameters->eventWasHandled = eventHandled;
+ if (parameters)
+ parameters->eventInterpretationHadSideEffects |= eventHandled;
}
- (void)_updateSelectionForInputManager
diff --git a/Source/WebKit/mac/WebView/WebHTMLViewInternal.h b/Source/WebKit/mac/WebView/WebHTMLViewInternal.h
index 07a782a..d38fded 100644
--- a/Source/WebKit/mac/WebView/WebHTMLViewInternal.h
+++ b/Source/WebKit/mac/WebView/WebHTMLViewInternal.h
@@ -49,7 +49,7 @@ namespace WebCore {
- (WebFrame *)_frame;
- (void)_lookUpInDictionaryFromMenu:(id)sender;
- (void)_hoverFeedbackSuspendedChanged;
-- (BOOL)_interceptEditingKeyEvent:(WebCore::KeyboardEvent *)event shouldSaveCommand:(BOOL)shouldSave;
+- (BOOL)_interpretKeyEvent:(WebCore::KeyboardEvent *)event savingCommands:(BOOL)savingCommands;
- (DOMDocumentFragment *)_documentFragmentFromPasteboard:(NSPasteboard *)pasteboard;
- (NSEvent *)_mouseDownEvent;
#ifndef BUILDING_ON_TIGER
diff --git a/Source/WebKit/mac/WebView/WebPreferenceKeysPrivate.h b/Source/WebKit/mac/WebView/WebPreferenceKeysPrivate.h
index b6ae03f..a2f176a 100644
--- a/Source/WebKit/mac/WebView/WebPreferenceKeysPrivate.h
+++ b/Source/WebKit/mac/WebView/WebPreferenceKeysPrivate.h
@@ -89,6 +89,7 @@
#define WebKitJavaScriptCanAccessClipboardPreferenceKey @"WebKitJavaScriptCanAccessClipboard"
#define WebKitXSSAuditorEnabledPreferenceKey @"WebKitXSSAuditorEnabled"
#define WebKitAcceleratedDrawingEnabledPreferenceKey @"WebKitAcceleratedDrawingEnabled"
+#define WebKitCanvasUsesAcceleratedDrawingPreferenceKey @"WebKitCanvasUsesAcceleratedDrawing"
#define WebKitAcceleratedCompositingEnabledPreferenceKey @"WebKitAcceleratedCompositingEnabled"
#define WebKitShowDebugBordersPreferenceKey @"WebKitShowDebugBorders"
#define WebKitShowRepaintCounterPreferenceKey @"WebKitShowRepaintCounter"
@@ -104,6 +105,7 @@
#define WebKitAsynchronousSpellCheckingEnabledPreferenceKey @"WebKitAsynchronousSpellCheckingEnabled"
#define WebKitMemoryInfoEnabledPreferenceKey @"WebKitMemoryInfoEnabled"
#define WebKitHyperlinkAuditingEnabledPreferenceKey @"WebKitHyperlinkAuditingEnabled"
+#define WebKitUseQuickLookResourceCachingQuirksPreferenceKey @"WebKitUseQuickLookResourceCachingQuirks"
// These are private both because callers should be using the cover methods and because the
// cover methods themselves are private.
diff --git a/Source/WebKit/mac/WebView/WebPreferences.mm b/Source/WebKit/mac/WebView/WebPreferences.mm
index 3fd41f6..a5f24e0 100644
--- a/Source/WebKit/mac/WebView/WebPreferences.mm
+++ b/Source/WebKit/mac/WebView/WebPreferences.mm
@@ -136,6 +136,22 @@ static WebCacheModel cacheModelForMainBundle(void)
return cacheModel;
}
+static bool useQuickLookQuirks(void)
+{
+ NSArray* frameworks = [NSBundle allFrameworks];
+
+ if (!frameworks)
+ return false;
+
+ for (unsigned int i = 0; i < [frameworks count]; i++) {
+ NSBundle* bundle = [frameworks objectAtIndex: i];
+ const char* bundleID = [[bundle bundleIdentifier] UTF8String];
+ if (bundleID && !strcasecmp(bundleID, "com.apple.QuickLookUIFramework"))
+ return true;
+ }
+ return false;
+}
+
@interface WebPreferencesPrivate : NSObject
{
@public
@@ -359,6 +375,7 @@ static WebCacheModel cacheModelForMainBundle(void)
[NSNumber numberWithBool:YES], WebKitXSSAuditorEnabledPreferenceKey,
[NSNumber numberWithBool:YES], WebKitAcceleratedCompositingEnabledPreferenceKey,
[NSNumber numberWithBool:NO], WebKitAcceleratedDrawingEnabledPreferenceKey,
+ [NSNumber numberWithBool:YES], WebKitCanvasUsesAcceleratedDrawingPreferenceKey,
[NSNumber numberWithBool:NO], WebKitShowDebugBordersPreferenceKey,
[NSNumber numberWithBool:NO], WebKitShowRepaintCounterPreferenceKey,
[NSNumber numberWithBool:NO], WebKitWebGLEnabledPreferenceKey,
@@ -367,11 +384,12 @@ static WebCacheModel cacheModelForMainBundle(void)
[NSNumber numberWithBool:NO], WebKitFrameFlatteningEnabledPreferenceKey,
[NSNumber numberWithBool:NO], WebKitSpatialNavigationEnabledPreferenceKey,
[NSNumber numberWithBool:NO], WebKitDNSPrefetchingEnabledPreferenceKey,
- [NSNumber numberWithBool:NO], WebKitFullScreenEnabledPreferenceKey,
+ [NSNumber numberWithBool:YES], WebKitFullScreenEnabledPreferenceKey,
[NSNumber numberWithBool:NO], WebKitAsynchronousSpellCheckingEnabledPreferenceKey,
[NSNumber numberWithBool:NO], WebKitMemoryInfoEnabledPreferenceKey,
[NSNumber numberWithBool:YES], WebKitHyperlinkAuditingEnabledPreferenceKey,
[NSNumber numberWithBool:NO], WebKitUsePreHTML5ParserQuirksKey,
+ [NSNumber numberWithBool:useQuickLookQuirks()], WebKitUseQuickLookResourceCachingQuirksPreferenceKey,
[NSNumber numberWithLongLong:WebCore::ApplicationCacheStorage::noQuota()], WebKitApplicationCacheTotalQuota,
[NSNumber numberWithLongLong:WebCore::ApplicationCacheStorage::noQuota()], WebKitApplicationCacheDefaultOriginQuota,
nil];
@@ -1245,6 +1263,16 @@ static NSString *classIBCreatorID = nil;
[self _setBoolValue:enabled forKey:WebKitAcceleratedDrawingEnabledPreferenceKey];
}
+- (BOOL)canvasUsesAcceleratedDrawing
+{
+ return [self _boolValueForKey:WebKitCanvasUsesAcceleratedDrawingPreferenceKey];
+}
+
+- (void)setCanvasUsesAcceleratedDrawing:(BOOL)enabled
+{
+ [self _setBoolValue:enabled forKey:WebKitCanvasUsesAcceleratedDrawingPreferenceKey];
+}
+
- (BOOL)acceleratedCompositingEnabled
{
return [self _boolValueForKey:WebKitAcceleratedCompositingEnabledPreferenceKey];
@@ -1385,6 +1413,11 @@ static NSString *classIBCreatorID = nil;
[self _setBoolValue:flag forKey:WebKitUsePreHTML5ParserQuirksKey];
}
+- (BOOL)useQuickLookResourceCachingQuirks
+{
+ return [self _boolValueForKey:WebKitUseQuickLookResourceCachingQuirksPreferenceKey];
+}
+
- (void)didRemoveFromWebView
{
ASSERT(_private->numWebViews);
diff --git a/Source/WebKit/mac/WebView/WebPreferencesPrivate.h b/Source/WebKit/mac/WebView/WebPreferencesPrivate.h
index 40d4b5b..7e1f6a2 100644
--- a/Source/WebKit/mac/WebView/WebPreferencesPrivate.h
+++ b/Source/WebKit/mac/WebView/WebPreferencesPrivate.h
@@ -179,6 +179,9 @@ extern NSString *WebPreferencesRemovedNotification;
- (BOOL)acceleratedDrawingEnabled;
- (void)setAcceleratedDrawingEnabled:(BOOL)enabled;
+- (BOOL)canvasUsesAcceleratedDrawing;
+- (void)setCanvasUsesAcceleratedDrawing:(BOOL)enabled;
+
- (BOOL)acceleratedCompositingEnabled;
- (void)setAcceleratedCompositingEnabled:(BOOL)enabled;
@@ -233,4 +236,6 @@ extern NSString *WebPreferencesRemovedNotification;
- (void)setUsePreHTML5ParserQuirks:(BOOL)flag;
- (BOOL)usePreHTML5ParserQuirks;
+- (BOOL)useQuickLookResourceCachingQuirks;
+
@end
diff --git a/Source/WebKit/mac/WebView/WebScriptDebugDelegate.mm b/Source/WebKit/mac/WebView/WebScriptDebugDelegate.mm
index 270266b..738c4df 100644
--- a/Source/WebKit/mac/WebView/WebScriptDebugDelegate.mm
+++ b/Source/WebKit/mac/WebView/WebScriptDebugDelegate.mm
@@ -239,7 +239,7 @@ NSString * const WebScriptErrorLineNumberKey = @"WebScriptErrorLineNumber";
if (self == _private->debugger->globalCallFrame() && !globalObject->globalData().dynamicGlobalObject) {
JSGlobalObject* globalObject = _private->debugger->globalObject();
- DynamicGlobalObjectScope globalObjectScope(globalObject->globalExec(), globalObject);
+ DynamicGlobalObjectScope globalObjectScope(globalObject->globalData(), globalObject);
JSValue exception;
JSValue result = evaluateInGlobalCallFrame(stringToUString(script), exception, globalObject);
diff --git a/Source/WebKit/mac/WebView/WebView.mm b/Source/WebKit/mac/WebView/WebView.mm
index 2f45ca4..3d42be0 100644
--- a/Source/WebKit/mac/WebView/WebView.mm
+++ b/Source/WebKit/mac/WebView/WebView.mm
@@ -97,6 +97,7 @@
#import "WebPreferencesPrivate.h"
#import "WebScriptDebugDelegate.h"
#import "WebScriptWorldInternal.h"
+#import "WebStorageManagerInternal.h"
#import "WebSystemInterface.h"
#import "WebTextCompletionController.h"
#import "WebTextIterator.h"
@@ -687,6 +688,10 @@ static NSString *leakMailQuirksUserScriptPath()
#if ENABLE(DATABASE)
WebKitInitializeDatabasesIfNecessary();
#endif
+
+#if ENABLE(DOM_STORAGE)
+ WebKitInitializeStorageIfNecessary();
+#endif
WebKitInitializeApplicationCachePathIfNecessary();
patchMailRemoveAttributesMethod();
@@ -1491,6 +1496,8 @@ static bool fastDocumentTeardownEnabled()
// Until we fix that, I will comment out the test (CFM)
settings->setAcceleratedCompositingEnabled((coreVideoHas7228836Fix() || [preferences webGLEnabled] ||
[preferences accelerated2dCanvasEnabled]) && [preferences acceleratedCompositingEnabled]);
+ settings->setAcceleratedDrawingEnabled([preferences acceleratedDrawingEnabled]);
+ settings->setCanvasUsesAcceleratedDrawing([preferences canvasUsesAcceleratedDrawing]);
settings->setShowDebugBorders([preferences showDebugBorders]);
settings->setShowRepaintCounter([preferences showRepaintCounter]);
settings->setPluginAllowedRunTime([preferences pluginAllowedRunTime]);
@@ -1511,7 +1518,10 @@ static bool fastDocumentTeardownEnabled()
settings->setMemoryInfoEnabled([preferences memoryInfoEnabled]);
settings->setHyperlinkAuditingEnabled([preferences hyperlinkAuditingEnabled]);
settings->setUsePreHTML5ParserQuirks([self _needsPreHTML5ParserQuirks]);
+ settings->setUseQuickLookResourceCachingQuirks([preferences useQuickLookResourceCachingQuirks]);
settings->setCrossOriginCheckInGetMatchedCSSRulesDisabled([self _needsUnrestrictedGetMatchedCSSRules]);
+ settings->setInteractiveFormValidationEnabled([self interactiveFormValidationEnabled]);
+ settings->setValidationMessageTimerMagnification([self validationMessageTimerMagnification]);
// Application Cache Preferences are stored on the global cache storage manager, not in Settings.
[WebApplicationCache setDefaultOriginQuota:[preferences applicationCacheDefaultOriginQuota]];
@@ -2396,6 +2406,26 @@ static inline IMP getMethod(id o, SEL s)
return NO;
}
+- (BOOL)interactiveFormValidationEnabled
+{
+ return _private->interactiveFormValidationEnabled;
+}
+
+- (void)setInteractiveFormValidationEnabled:(BOOL)enabled
+{
+ _private->interactiveFormValidationEnabled = enabled;
+}
+
+- (int)validationMessageTimerMagnification
+{
+ return _private->validationMessageTimerMagnification;
+}
+
+- (void)setValidationMessageTimerMagnification:(int)newValue
+{
+ _private->validationMessageTimerMagnification = newValue;
+}
+
- (BOOL)_isSoftwareRenderable
{
#if USE(ACCELERATED_COMPOSITING)
@@ -5000,12 +5030,12 @@ static NSAppleEventDescriptor* aeDescFromJSValue(ExecState* exec, JSValue jsValu
- (void)setEditable:(BOOL)flag
{
- if ([self isEditable] != flag) {
- if (!_private->tabKeyCyclesThroughElementsChanged && _private->page)
+ if ([self isEditable] != flag && _private->page) {
+ _private->page->setEditable(flag);
+ if (!_private->tabKeyCyclesThroughElementsChanged)
_private->page->setTabKeyCyclesThroughElements(!flag);
Frame* mainFrame = [self _mainCoreFrame];
if (mainFrame) {
- mainFrame->document()->setDesignMode(flag ? WebCore::Document::on : WebCore::Document::off);
if (flag) {
mainFrame->editor()->applyEditingStyleToBodyElement();
// If the WebView is made editable and the selection is empty, set it to something.
@@ -5018,10 +5048,7 @@ static NSAppleEventDescriptor* aeDescFromJSValue(ExecState* exec, JSValue jsValu
- (BOOL)isEditable
{
- Frame* mainFrame = [self _mainCoreFrame];
- if (mainFrame)
- return mainFrame->document()->inDesignMode();
- return false;
+ return _private->page && _private->page->isEditable();
}
- (void)setTypingStyle:(DOMCSSStyleDeclaration *)style
@@ -5306,6 +5333,16 @@ static NSAppleEventDescriptor* aeDescFromJSValue(ExecState* exec, JSValue jsValu
#endif
+#if !defined(BUILDING_ON_TIGER) && !defined(BUILDING_ON_LEOPARD) && !defined(BUILDING_ON_SNOW_LEOPARD)
+- (void)handleCorrectionPanelResult:(NSString*)result
+{
+ WebFrame *webFrame = [self _selectedOrMainFrame];
+ Frame* coreFrame = core(webFrame);
+ if (coreFrame)
+ coreFrame->editor()->handleCorrectionPanelResult(result);
+}
+#endif
+
@end
@implementation WebView (WebViewUndoableEditing)
@@ -5415,7 +5452,7 @@ FOR_EACH_RESPONDER_SELECTOR(FORWARD)
Frame* coreFrame = core([self _selectedOrMainFrame]);
if (!coreFrame)
return NO;
- return coreFrame->selection()->isAll(MayLeaveEditableContent);
+ return coreFrame->selection()->isAll(CanCrossEditingBoundary);
}
@end
@@ -5859,7 +5896,7 @@ static inline uint64_t roundUpToPowerOf2(uint64_t num)
WebFrameLoadDelegateImplementationCache* cache = &_private->frameLoadDelegateImplementations;
if (cache->didReceiveIconForFrameFunc) {
- Image* image = iconDatabase().iconForPageURL(core(webFrame)->document()->url().string(), IntSize(16, 16));
+ Image* image = iconDatabase().synchronousIconForPageURL(core(webFrame)->document()->url().string(), IntSize(16, 16));
if (NSImage *icon = webGetNSImage(image, NSMakeSize(16, 16)))
CallFrameLoadDelegate(cache->didReceiveIconForFrameFunc, self, @selector(webView:didReceiveIcon:forFrame:), icon, webFrame);
}
@@ -6120,8 +6157,11 @@ static void layerSyncRunLoopObserverCallBack(CFRunLoopObserverRef, CFRunLoopActi
#endif
#if ENABLE(FULLSCREEN_API)
-- (BOOL)_supportsFullScreenForElement:(const WebCore::Element*)element
+- (BOOL)_supportsFullScreenForElement:(const WebCore::Element*)element withKeyboard:(BOOL)withKeyboard
{
+ if (withKeyboard)
+ return NO;
+
if (![[WebPreferences standardPreferences] fullScreenEnabled])
return NO;
diff --git a/Source/WebKit/mac/WebView/WebViewData.h b/Source/WebKit/mac/WebView/WebViewData.h
index e8b9188..a6a5a07 100644
--- a/Source/WebKit/mac/WebView/WebViewData.h
+++ b/Source/WebKit/mac/WebView/WebViewData.h
@@ -186,5 +186,8 @@ extern int pluginDatabaseClientCount;
id<WebDeviceOrientationProvider> m_deviceOrientationProvider;
RefPtr<WebCore::HistoryItem> _globalHistoryItem;
+
+ BOOL interactiveFormValidationEnabled;
+ int validationMessageTimerMagnification;
}
@end
diff --git a/Source/WebKit/mac/WebView/WebViewData.mm b/Source/WebKit/mac/WebView/WebViewData.mm
index df7563e..e74c7a1 100644
--- a/Source/WebKit/mac/WebView/WebViewData.mm
+++ b/Source/WebKit/mac/WebView/WebViewData.mm
@@ -65,6 +65,10 @@ int pluginDatabaseClientCount = 0;
zoomMultiplier = 1;
zoomsTextOnly = NO;
+ interactiveFormValidationEnabled = NO;
+ // The default value should be synchronized with WebCore/page/Settings.cpp.
+ validationMessageTimerMagnification = 50;
+
#if ENABLE(DASHBOARD_SUPPORT)
dashboardBehaviorAllowWheelScrolling = YES;
#endif
diff --git a/Source/WebKit/mac/WebView/WebViewInternal.h b/Source/WebKit/mac/WebView/WebViewInternal.h
index 9517104..65cb4d8 100644
--- a/Source/WebKit/mac/WebView/WebViewInternal.h
+++ b/Source/WebKit/mac/WebView/WebViewInternal.h
@@ -57,7 +57,6 @@ namespace WebCore {
#ifdef __cplusplus
@interface WebView (WebViewEditingExtras)
-- (BOOL)_interceptEditingKeyEvent:(WebCore::KeyboardEvent*)event shouldSaveCommand:(BOOL)shouldSave;
- (BOOL)_shouldChangeSelectedDOMRange:(DOMRange *)currentRange toDOMRange:(DOMRange *)proposedRange affinity:(NSSelectionAffinity)selectionAffinity stillSelecting:(BOOL)flag;
@end
@@ -190,7 +189,7 @@ namespace WebCore {
#endif
#if ENABLE(FULLSCREEN_API) && defined(__cplusplus)
-- (BOOL)_supportsFullScreenForElement:(WebCore::Element*)element;
+- (BOOL)_supportsFullScreenForElement:(WebCore::Element*)element withKeyboard:(BOOL)withKeyboard;
- (void)_enterFullScreenForElement:(WebCore::Element*)element;
- (void)_exitFullScreenForElement:(WebCore::Element*)element;
- (void)_fullScreenRendererChanged:(WebCore::RenderBox*)renderer;
diff --git a/Source/WebKit/mac/WebView/WebViewPrivate.h b/Source/WebKit/mac/WebView/WebViewPrivate.h
index a4ea809..7d7537e 100644
--- a/Source/WebKit/mac/WebView/WebViewPrivate.h
+++ b/Source/WebKit/mac/WebView/WebViewPrivate.h
@@ -487,6 +487,12 @@ Could be worth adding to the API.
- (void)_setPostsAcceleratedCompositingNotifications:(BOOL)flag;
- (BOOL)_isUsingAcceleratedCompositing;
+// For DumpRenderTree
+- (BOOL)interactiveFormValidationEnabled;
+- (void)setInteractiveFormValidationEnabled:(BOOL)enabled;
+- (int)validationMessageTimerMagnification;
+- (void)setValidationMessageTimerMagnification:(int)newValue;
+
// Returns YES if NSView -displayRectIgnoringOpacity:inContext: will produce a faithful representation of the content.
- (BOOL)_isSoftwareRenderable;
// When drawing into a bitmap context, we normally flatten compositing layers (and distort 3D transforms).
@@ -644,7 +650,9 @@ Could be worth adding to the API.
- (void)setAutomaticSpellingCorrectionEnabled:(BOOL)flag;
- (void)toggleAutomaticSpellingCorrection:(id)sender;
#endif
-
+#if !defined(BUILDING_ON_TIGER) && !defined(BUILDING_ON_LEOPARD) && !defined(BUILDING_ON_SNOW_LEOPARD)
+- (void)handleCorrectionPanelResult:(NSString*)result;
+#endif
@end
@interface WebView (WebViewEditingInMail)
diff --git a/Source/WebKit/qt/Api/DerivedSources.pro b/Source/WebKit/qt/Api/DerivedSources.pro
index 8084242..8be6748 100644
--- a/Source/WebKit/qt/Api/DerivedSources.pro
+++ b/Source/WebKit/qt/Api/DerivedSources.pro
@@ -19,7 +19,6 @@ win32-msvc* | wince* {
} else {
QUOTE = "\'"
DOUBLE_ESCAPED_QUOTE = "\\\'"
- ESCAPE = "\\"
}
qtheader_module.target = $${DESTDIR}/QtWebKit
diff --git a/Source/WebKit/qt/Api/qgraphicswebview.cpp b/Source/WebKit/qt/Api/qgraphicswebview.cpp
index b1c9586..b7b28bc 100644
--- a/Source/WebKit/qt/Api/qgraphicswebview.cpp
+++ b/Source/WebKit/qt/Api/qgraphicswebview.cpp
@@ -55,7 +55,8 @@ public:
QGraphicsWebViewPrivate(QGraphicsWebView* parent)
: q(parent)
, page(0)
- , resizesToContents(false) {}
+ , resizesToContents(false)
+ , renderHints(QPainter::TextAntialiasing | QPainter::SmoothPixmapTransform) {}
virtual ~QGraphicsWebViewPrivate();
@@ -74,6 +75,7 @@ public:
QGraphicsWebView* q;
QWebPage* page;
bool resizesToContents;
+ QPainter::RenderHints renderHints;
QGraphicsItemOverlay* overlay() const
{
@@ -279,6 +281,8 @@ QWebPage* QGraphicsWebView::page() const
*/
void QGraphicsWebView::paint(QPainter* painter, const QStyleOptionGraphicsItem* option, QWidget*)
{
+ QPainter::RenderHints oldHints = painter->renderHints();
+ painter->setRenderHints(oldHints | d->renderHints);
#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
@@ -286,6 +290,7 @@ void QGraphicsWebView::paint(QPainter* painter, const QStyleOptionGraphicsItem*
// 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());
+ painter->setRenderHints(oldHints);
return;
}
#endif
@@ -294,6 +299,7 @@ void QGraphicsWebView::paint(QPainter* painter, const QStyleOptionGraphicsItem*
#else
page()->mainFrame()->render(painter, QWebFrame::AllLayers, option->exposedRect.toRect());
#endif
+ painter->setRenderHints(oldHints);
}
/*! \reimp
@@ -357,6 +363,65 @@ QVariant QGraphicsWebView::inputMethodQuery(Qt::InputMethodQuery query) const
return QVariant();
}
+/*!
+ \property QGraphicsWebView::renderHints
+ \since 4.8
+ \brief the default render hints for the view
+
+ These hints are used to initialize QPainter before painting the Web page.
+
+ QPainter::TextAntialiasing and QPainter::SmoothPixmapTransform are enabled by default and will be
+ used to render the item in addition of what has been set on the painter given by QGraphicsScene.
+
+ \note This property is not available on Symbian. However, the getter and
+ setter functions can still be used directly.
+
+ \sa QPainter::renderHints()
+*/
+
+/*!
+ \since 4.8
+ Returns the render hints used by the view to render content.
+
+ \sa QPainter::renderHints()
+*/
+QPainter::RenderHints QGraphicsWebView::renderHints() const
+{
+ return d->renderHints;
+}
+
+/*!
+ \since 4.8
+ Sets the render hints used by the view to the specified \a hints.
+
+ \sa QPainter::setRenderHints()
+*/
+void QGraphicsWebView::setRenderHints(QPainter::RenderHints hints)
+{
+ if (hints == d->renderHints)
+ return;
+ d->renderHints = hints;
+ update();
+}
+
+/*!
+ \since 4.8
+ If \a enabled is true, enables the specified render \a hint; otherwise
+ disables it.
+
+ \sa renderHints, QPainter::renderHints()
+*/
+void QGraphicsWebView::setRenderHint(QPainter::RenderHint hint, bool enabled)
+{
+ QPainter::RenderHints oldHints = d->renderHints;
+ if (enabled)
+ d->renderHints |= hint;
+ else
+ d->renderHints &= ~hint;
+ if (oldHints != d->renderHints)
+ update();
+}
+
/*! \reimp
*/
bool QGraphicsWebView::event(QEvent* event)
diff --git a/Source/WebKit/qt/Api/qgraphicswebview.h b/Source/WebKit/qt/Api/qgraphicswebview.h
index 733c224..ceb0ad8 100644
--- a/Source/WebKit/qt/Api/qgraphicswebview.h
+++ b/Source/WebKit/qt/Api/qgraphicswebview.h
@@ -50,6 +50,9 @@ class QWEBKIT_EXPORT QGraphicsWebView : public QGraphicsWidget {
Q_PROPERTY(bool resizesToContents READ resizesToContents WRITE setResizesToContents)
Q_PROPERTY(bool tiledBackingStoreFrozen READ isTiledBackingStoreFrozen WRITE setTiledBackingStoreFrozen)
+ Q_PROPERTY(QPainter::RenderHints renderHints READ renderHints WRITE setRenderHints)
+ Q_FLAGS(QPainter::RenderHints)
+
public:
explicit QGraphicsWebView(QGraphicsItem* parent = 0);
~QGraphicsWebView();
@@ -99,6 +102,10 @@ public:
virtual QVariant inputMethodQuery(Qt::InputMethodQuery query) const;
+ QPainter::RenderHints renderHints() const;
+ void setRenderHints(QPainter::RenderHints);
+ void setRenderHint(QPainter::RenderHint, bool enabled = true);
+
public Q_SLOTS:
void stop();
void back();
diff --git a/Source/WebKit/qt/Api/qwebframe.cpp b/Source/WebKit/qt/Api/qwebframe.cpp
index 6f98bca..e5124bd 100644
--- a/Source/WebKit/qt/Api/qwebframe.cpp
+++ b/Source/WebKit/qt/Api/qwebframe.cpp
@@ -731,7 +731,7 @@ QMultiMap<QString, QString> QWebFrame::metaData() const
static inline QUrl ensureAbsoluteUrl(const QUrl &url)
{
- if (!url.isRelative())
+ if (!url.isValid() || !url.isRelative())
return url;
// This contains the URL with absolute path but without
@@ -780,26 +780,7 @@ QUrl QWebFrame::url() const
*/
QUrl QWebFrame::requestedUrl() const
{
- // There are some possible edge cases to be handled here,
- // apart from checking if activeDocumentLoader is valid:
- //
- // * Method can be called while processing an unsucessful load.
- // In this case, frameLoaderClient will hold the current error
- // (m_loadError), and we will make use of it to recover the 'failingURL'.
- // * If the 'failingURL' holds a null'ed string though, we fallback
- // to 'outgoingReferrer' (it yet is safer than originalRequest).
- FrameLoader* loader = d->frame->loader();
- FrameLoaderClientQt* loaderClient = d->frameLoaderClient;
-
- if (!loader->activeDocumentLoader()
- || !loaderClient->m_loadError.isNull()) {
- if (!loaderClient->m_loadError.failingURL().isNull())
- return QUrl(loaderClient->m_loadError.failingURL());
- else if (!loader->outgoingReferrer().isEmpty())
- return QUrl(loader->outgoingReferrer());
- }
-
- return loader->originalRequest().url();
+ return d->frameLoaderClient->lastRequestedUrl();
}
/*!
\since 4.6
@@ -893,11 +874,9 @@ void QWebFrame::load(const QNetworkRequest &req,
case QNetworkAccessManager::DeleteOperation:
request.setHTTPMethod("DELETE");
break;
-#if QT_VERSION >= QT_VERSION_CHECK(4, 7, 0)
case QNetworkAccessManager::CustomOperation:
request.setHTTPMethod(req.attribute(QNetworkRequest::CustomVerbAttribute).toByteArray().constData());
break;
-#endif
case QNetworkAccessManager::UnknownOperation:
// eh?
break;
diff --git a/Source/WebKit/qt/Api/qwebhistory.cpp b/Source/WebKit/qt/Api/qwebhistory.cpp
index a9761de..33bad41 100644
--- a/Source/WebKit/qt/Api/qwebhistory.cpp
+++ b/Source/WebKit/qt/Api/qwebhistory.cpp
@@ -23,11 +23,13 @@
#include "qwebframe_p.h"
#include "BackForwardListImpl.h"
-#include "PlatformString.h"
+#include "IconDatabaseBase.h"
#include "Image.h"
+#include "IntSize.h"
#include "KURL.h"
#include "Page.h"
#include "PageGroup.h"
+#include "PlatformString.h"
#include <QSharedData>
#include <QDebug>
@@ -156,7 +158,8 @@ QDateTime QWebHistoryItem::lastVisited() const
QIcon QWebHistoryItem::icon() const
{
if (d->item)
- return *d->item->icon()->nativeImageForCurrentFrame();
+ return *WebCore::iconDatabase().synchronousIconForPageURL(d->item->url(), WebCore::IntSize(16, 16))->nativeImageForCurrentFrame();
+
return QIcon();
}
diff --git a/Source/WebKit/qt/Api/qwebhistoryinterface.cpp b/Source/WebKit/qt/Api/qwebhistoryinterface.cpp
index 61cf5af..40ff5c9 100644
--- a/Source/WebKit/qt/Api/qwebhistoryinterface.cpp
+++ b/Source/WebKit/qt/Api/qwebhistoryinterface.cpp
@@ -69,8 +69,8 @@ void QWebHistoryInterface::setDefaultInterface(QWebHistoryInterface* defaultInte
/*!
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
+ WebKit will not keep track of visited links and a null pointer will be returned.
+ \sa setDefaultInterface()
*/
QWebHistoryInterface* QWebHistoryInterface::defaultInterface()
{
diff --git a/Source/WebKit/qt/Api/qwebkitplatformplugin.h b/Source/WebKit/qt/Api/qwebkitplatformplugin.h
index 2a94e0c..f274a0b 100644
--- a/Source/WebKit/qt/Api/qwebkitplatformplugin.h
+++ b/Source/WebKit/qt/Api/qwebkitplatformplugin.h
@@ -26,6 +26,7 @@
* and may be changed from version to version or even be completely removed.
*/
+#include <QColor>
#include <QObject>
#include <QUrl>
#if defined(ENABLE_QT_MULTIMEDIA) && ENABLE_QT_MULTIMEDIA
@@ -46,6 +47,10 @@ public:
virtual bool itemIsSelected(int index) const = 0;
virtual int itemCount() const = 0;
virtual bool multiple() const = 0;
+ virtual QColor backgroundColor() const = 0;
+ virtual QColor foregroundColor() const = 0;
+ virtual QColor itemBackgroundColor(int index) const = 0;
+ virtual QColor itemForegroundColor(int index) const = 0;
};
class QWebSelectMethod : public QObject
diff --git a/Source/WebKit/qt/Api/qwebkitversion.cpp b/Source/WebKit/qt/Api/qwebkitversion.cpp
index 181913b..1143f99 100644
--- a/Source/WebKit/qt/Api/qwebkitversion.cpp
+++ b/Source/WebKit/qt/Api/qwebkitversion.cpp
@@ -40,7 +40,7 @@
*/
QString qWebKitVersion()
{
- return QString("%1.%2").arg(WEBKIT_MAJOR_VERSION).arg(WEBKIT_MINOR_VERSION);
+ return QString::fromLatin1("%1.%2").arg(WEBKIT_MAJOR_VERSION).arg(WEBKIT_MINOR_VERSION);
}
/*!
diff --git a/Source/WebKit/qt/Api/qwebpage.cpp b/Source/WebKit/qt/Api/qwebpage.cpp
index 5dd57f5..ac1d562 100644
--- a/Source/WebKit/qt/Api/qwebpage.cpp
+++ b/Source/WebKit/qt/Api/qwebpage.cpp
@@ -104,6 +104,9 @@
#include "Scrollbar.h"
#include "SecurityOrigin.h"
#include "Settings.h"
+#if defined Q_OS_WIN32
+#include "SystemInfo.h"
+#endif // Q_OS_WIN32
#include "TextIterator.h"
#include "WebPlatformStrategies.h"
#include "WindowFeatures.h"
@@ -312,9 +315,6 @@ QWebPagePrivate::QWebPagePrivate(QWebPage *qq)
ScriptController::initializeThreading();
WTF::initializeMainThread();
WebCore::SecurityOrigin::setLocalLoadPolicy(WebCore::SecurityOrigin::AllowLocalLoadsForLocalAndSubstituteData);
-#if QT_VERSION < QT_VERSION_CHECK(4, 7, 0)
- WebCore::Font::setCodePath(WebCore::Font::Complex);
-#endif
WebPlatformStrategies::initialize();
@@ -1168,7 +1168,7 @@ void QWebPagePrivate::dynamicPropertyChangeEvent(QDynamicPropertyChangeEvent* ev
QString p = q->property("_q_RepaintThrottlingPreset").toString();
for(int i = 0; i < sizeof(presets) / sizeof(presets[0]); i++) {
- if(p == presets[i].name) {
+ if (p == QLatin1String(presets[i].name)) {
FrameView::setRepaintThrottlingDeferredRepaintDelay(
presets[i].deferredRepaintDelay);
FrameView::setRepaintThrottlingnInitialDeferredRepaintDelayDuringLoading(
@@ -1219,6 +1219,9 @@ void QWebPagePrivate::dynamicPropertyChangeEvent(QDynamicPropertyChangeEvent* ev
else if (event->propertyName() == "_q_webInspectorServerPort") {
InspectorServerQt* inspectorServer = InspectorServerQt::server();
inspectorServer->listen(inspectorServerPort());
+ } else if (event->propertyName() == "_q_deadDecodedDataDeletionInterval") {
+ double interval = q->property("_q_deadDecodedDataDeletionInterval").toDouble();
+ memoryCache()->setDeadDecodedDataDeletionInterval(interval);
}
}
#endif
@@ -2070,7 +2073,7 @@ void QWebPage::javaScriptConsoleMessage(const QString& message, int lineNumber,
// Catch plugin logDestroy message for LayoutTests/plugins/open-and-close-window-with-plugin.html
// At this point DRT's WebPage has already been destroyed
if (QWebPagePrivate::drtRun) {
- if (message == "PLUGIN: NPP_Destroy")
+ if (message == QLatin1String("PLUGIN: NPP_Destroy"))
fprintf (stdout, "CONSOLE MESSAGE: line %d: %s\n", lineNumber, message.toUtf8().constData());
}
}
@@ -2540,7 +2543,7 @@ QWebPage::ViewportAttributes QWebPage::viewportAttributesForSize(const QSize& av
result.m_minimumScaleFactor = conf.minimumScale;
result.m_maximumScaleFactor = conf.maximumScale;
result.m_devicePixelRatio = conf.devicePixelRatio;
- result.m_isUserScalable = conf.userScalable;
+ result.m_isUserScalable = static_cast<bool>(conf.userScalable);
d->pixelRatio = conf.devicePixelRatio;
@@ -3169,10 +3172,10 @@ bool QWebPage::focusNextPrevChild(bool next)
void QWebPage::setContentEditable(bool editable)
{
if (isContentEditable() != editable) {
+ d->page->setEditable(editable);
d->page->setTabKeyCyclesThroughElements(!editable);
if (d->mainFrame) {
WebCore::Frame* frame = d->mainFrame->d->frame;
- frame->document()->setDesignMode(editable ? WebCore::Document::on : WebCore::Document::off);
if (editable) {
frame->editor()->applyEditingStyleToBodyElement();
// FIXME: mac port calls this if there is no selectedDOMRange
@@ -3186,7 +3189,7 @@ void QWebPage::setContentEditable(bool editable)
bool QWebPage::isContentEditable() const
{
- return d->mainFrame && d->mainFrame->d->frame->document()->inDesignMode();
+ return d->page->isEditable();
}
/*!
@@ -3772,52 +3775,7 @@ QString QWebPage::userAgentForUrl(const QUrl&) const
#ifdef Q_OS_AIX
firstPartTemp += QString::fromLatin1("AIX");
#elif defined Q_OS_WIN32
-
- switch (QSysInfo::WindowsVersion) {
- case QSysInfo::WV_32s:
- firstPartTemp += QString::fromLatin1("Windows 3.1");
- break;
- case QSysInfo::WV_95:
- firstPartTemp += QString::fromLatin1("Windows 95");
- break;
- case QSysInfo::WV_98:
- firstPartTemp += QString::fromLatin1("Windows 98");
- break;
- case QSysInfo::WV_Me:
- firstPartTemp += QString::fromLatin1("Windows 98; Win 9x 4.90");
- break;
- case QSysInfo::WV_NT:
- firstPartTemp += QString::fromLatin1("WinNT4.0");
- break;
- case QSysInfo::WV_2000:
- firstPartTemp += QString::fromLatin1("Windows NT 5.0");
- break;
- case QSysInfo::WV_XP:
- firstPartTemp += QString::fromLatin1("Windows NT 5.1");
- break;
- case QSysInfo::WV_2003:
- firstPartTemp += QString::fromLatin1("Windows NT 5.2");
- break;
- case QSysInfo::WV_VISTA:
- firstPartTemp += QString::fromLatin1("Windows NT 6.0");
- break;
- case QSysInfo::WV_WINDOWS7:
- firstPartTemp += QString::fromLatin1("Windows NT 6.1");
- break;
- case QSysInfo::WV_CE:
- firstPartTemp += QString::fromLatin1("Windows CE");
- break;
- case QSysInfo::WV_CENET:
- firstPartTemp += QString::fromLatin1("Windows CE .NET");
- break;
- case QSysInfo::WV_CE_5:
- firstPartTemp += QString::fromLatin1("Windows CE 5.x");
- break;
- case QSysInfo::WV_CE_6:
- firstPartTemp += QString::fromLatin1("Windows CE 6.x");
- break;
- }
-
+ firstPartTemp += windowsVersionForUAString();
#elif defined Q_OS_DARWIN
#ifdef __i386__ || __x86_64__
firstPartTemp += QString::fromLatin1("Intel Mac OS X");
@@ -4086,7 +4044,8 @@ quint64 QWebPage::bytesReceived() const
/*!
\fn void QWebPage::repaintRequested(const QRect& dirtyRect)
- This signal is emitted whenever this QWebPage should be updated and no view was set.
+ This signal is emitted whenever this QWebPage should be updated. It's useful
+ when rendering a QWebPage without a QWebView or QGraphicsWebView.
\a dirtyRect contains the area that needs to be updated. To paint the QWebPage get
the mainFrame() and call the render(QPainter*, const QRegion&) method with the
\a dirtyRect as the second parameter.
@@ -4131,6 +4090,8 @@ quint64 QWebPage::bytesReceived() const
At signal emission time the meta-data of the QNetworkReply \a reply is available.
+ \note The receiving slot is responsible for deleting the QNetworkReply \a reply.
+
\note This signal is only emitted if the forwardUnsupportedContent property is set to true.
\sa downloadRequested()
diff --git a/Source/WebKit/qt/Api/qwebsettings.cpp b/Source/WebKit/qt/Api/qwebsettings.cpp
index 3f0b436..f744e81 100644
--- a/Source/WebKit/qt/Api/qwebsettings.cpp
+++ b/Source/WebKit/qt/Api/qwebsettings.cpp
@@ -28,6 +28,9 @@
#include "MemoryCache.h"
#include "CrossOriginPreflightResultCache.h"
#include "FontCache.h"
+#if ENABLE(ICONDATABASE)
+#include "IconDatabaseClientQt.h"
+#endif
#include "Page.h"
#include "PageCache.h"
#include "Settings.h"
@@ -477,25 +480,16 @@ QWebSettings::QWebSettings()
d->fontFamilies.insert(QWebSettings::StandardFont, defaultFont.defaultFamily());
d->fontFamilies.insert(QWebSettings::SerifFont, defaultFont.defaultFamily());
-#if QT_VERSION >= QT_VERSION_CHECK(4, 7, 0)
defaultFont.setStyleHint(QFont::Fantasy);
d->fontFamilies.insert(QWebSettings::FantasyFont, defaultFont.defaultFamily());
defaultFont.setStyleHint(QFont::Cursive);
d->fontFamilies.insert(QWebSettings::CursiveFont, defaultFont.defaultFamily());
-#else
- d->fontFamilies.insert(QWebSettings::FantasyFont, defaultFont.defaultFamily());
- d->fontFamilies.insert(QWebSettings::CursiveFont, defaultFont.defaultFamily());
-#endif
defaultFont.setStyleHint(QFont::SansSerif);
d->fontFamilies.insert(QWebSettings::SansSerifFont, defaultFont.defaultFamily());
-#if QT_VERSION >= QT_VERSION_CHECK(4, 7, 0)
defaultFont.setStyleHint(QFont::Monospace);
-#else
- defaultFont.setStyleHint(QFont::TypeWriter);
-#endif
d->fontFamilies.insert(QWebSettings::FixedFont, defaultFont.defaultFamily());
d->attributes.insert(QWebSettings::AutoLoadImages, true);
@@ -645,13 +639,18 @@ QString QWebSettings::defaultTextEncoding() const
*/
void QWebSettings::setIconDatabasePath(const QString& path)
{
- WebCore::iconDatabase().delayDatabaseCleanup();
+#if ENABLE(ICONDATABASE)
+ // Make sure that IconDatabaseClientQt is instantiated.
+ WebCore::IconDatabaseClientQt::instance();
+#endif
+
+ WebCore::IconDatabase::delayDatabaseCleanup();
if (!path.isEmpty()) {
WebCore::iconDatabase().setEnabled(true);
QFileInfo info(path);
if (info.isDir() && info.isWritable())
- WebCore::iconDatabase().open(path);
+ WebCore::iconDatabase().open(path, WebCore::IconDatabase::defaultDatabaseFilename());
} else {
WebCore::iconDatabase().setEnabled(false);
WebCore::iconDatabase().close();
@@ -693,7 +692,7 @@ void QWebSettings::clearIconDatabase()
*/
QIcon QWebSettings::iconForUrl(const QUrl& url)
{
- WebCore::Image* image = WebCore::iconDatabase().iconForPageURL(WebCore::KURL(url).string(),
+ WebCore::Image* image = WebCore::iconDatabase().synchronousIconForPageURL(WebCore::KURL(url).string(),
WebCore::IntSize(16, 16));
if (!image)
return QPixmap();
diff --git a/Source/WebKit/qt/ChangeLog b/Source/WebKit/qt/ChangeLog
index a28825c..1a922ad 100644
--- a/Source/WebKit/qt/ChangeLog
+++ b/Source/WebKit/qt/ChangeLog
@@ -1,3 +1,716 @@
+2011-03-30 Robert Hogan <robert@webkit.org>
+
+ Reviewed by Antonio Gomes.
+
+ [Qt] Fix LoadHTMLStringItem::invoke() after r75966
+
+ Add DRT support for loading an alternate HTML string
+ for error pages. This allows Qt to unskip
+ http/tests/navigation/go-back-to-error-page.html.
+
+ https://bugs.webkit.org/show_bug.cgi?id=52614
+
+ * WebCoreSupport/DumpRenderTreeSupportQt.cpp:
+ (DumpRenderTreeSupportQt::setAlternateHtml):
+ * WebCoreSupport/DumpRenderTreeSupportQt.h:
+
+2011-03-29 Alexis Menard <alexis.menard@openbossa.org>
+
+ Unreviewed build fix for build-webkit -minimal.
+
+ Breakage introduced by http://trac.webkit.org/changeset/82238.
+ The minimal option has no support for shortcuts.
+
+ * WebCoreSupport/EditorClientQt.cpp:
+ (WebCore::EditorClientQt::handleInputMethodKeydown):
+
+2011-03-29 Janne Koskinen <janne.p.koskinen@digia.com>
+
+ Reviewed by Kenneth Rohde Christiansen.
+
+ [Qt] Enterkey to go to Newline does not work in the text area(in HTML form)
+ https://bugs.webkit.org/show_bug.cgi?id=33179
+
+ Fixed newline generation from Qt::Key_Enter when editting text area using InputMethods.
+
+ * WebCoreSupport/EditorClientQt.cpp:
+ (WebCore::EditorClientQt::handleInputMethodKeydown):
+ * tests/qwebpage/tst_qwebpage.cpp:
+ (tst_QWebPage::inputMethods):
+
+2011-03-29 Andreas Kling <kling@webkit.org>
+
+ Reviewed by Simon Hausmann.
+
+ [Qt] Fix documentation for QWebPage::repaintRequested()
+
+ This signal is always emitted when the page is dirtied, so remove
+ reference to old behavior where we would only emit the signal for
+ headless QWebPages.
+
+ * Api/qwebpage.cpp:
+
+2011-03-28 Andreas Kling <kling@webkit.org>
+
+ Reviewed by Benjamin Poulain.
+
+ [Qt] Pass QString() instead of String() when emitting titleChanged() for new loads.
+
+ * WebCoreSupport/FrameLoaderClientQt.cpp:
+ (WebCore::FrameLoaderClientQt::dispatchDidCommitLoad):
+
+2011-03-28 Andreas Kling <kling@webkit.org>
+
+ Reviewed by Benjamin Poulain.
+
+ [Qt] Crash when calling QWebFrame::render() in response to QWebPage::repaintRequested()
+ https://bugs.webkit.org/show_bug.cgi?id=52629
+
+ * WebCoreSupport/ChromeClientQt.cpp:
+ (WebCore::ChromeClientQt::invalidateContentsAndWindow): Make the emission of
+ QWebPage::repaintRequested() use a Qt::QueuedConnection.
+
+ * tests/qwebpage/tst_qwebpage.cpp:
+ (RepaintRequestedRenderer::RepaintRequestedRenderer):
+ (RepaintRequestedRenderer::onRepaintRequested):
+ (tst_QWebPage::renderOnRepaintRequestedShouldNotRecurse): Test that calling
+ QWebFrame::render() in a slot connected to to QWebPage::repaintRequested()
+ doesn't cause recursive signal emissions.
+
+2011-03-28 Benjamin Poulain <benjamin.poulain@nokia.com>
+
+ Reviewed by Andreas Kling.
+
+ [Qt] QtWebKit will not compile with QT_ASCII_CAST_WARNINGS enabled
+ https://bugs.webkit.org/show_bug.cgi?id=57087
+
+ * QtWebKit.pro: we can now enable QT_ASCII_CAST_WARNINGS
+ * tests/tests.pri: we do not require QT_ASCII_CAST_WARNINGS for tests
+ since they are applications, not libraries.
+
+2011-03-28 Andras Becsi <abecsi@webkit.org>
+
+ Reviewed by Csaba Osztrogonác.
+
+ [Qt] QtWebKit does not link with --3d-canvas using MinGW
+ https://bugs.webkit.org/show_bug.cgi?id=57225
+
+ * QtWebKit.pro: Append the OpenGL libraries on MinGW so it can resolve symbols.
+
+2011-03-28 Csaba Osztrogonác <ossy@webkit.org>
+
+ Reviewed by Andreas Kling.
+
+ REGRESSION(r54712): [Qt] Installed QtWebKit header does not compile.
+ https://bugs.webkit.org/show_bug.cgi?id=57183
+
+ Windows buildfix after r82065.
+
+ * Api/DerivedSources.pro: Readding escaping on Windows platforms.
+
+2011-03-27 Andreas Kling <kling@webkit.org>
+
+ Fix build warning about IconDatabaseClient.h (wrong path.)
+
+ * QtWebKit.pro:
+
+2011-03-27 Andreas Kling <kling@webkit.org>
+
+ Reviewed by Kenneth Rohde Christiansen.
+
+ [Qt] Support for CSS color and background-color properties on select element's dropdown list
+ https://bugs.webkit.org/show_bug.cgi?id=51627
+
+ Extend the QWebSelectData interface with background and foreground colors
+ for the whole menu, as well as per-item. Hook it up to the PopupMenuStyle
+ getters in RenderMenuList.
+
+ * Api/qwebkitplatformplugin.h:
+ * WebCoreSupport/PopupMenuQt.cpp:
+ (SelectData::backgroundColor):
+ (SelectData::foregroundColor):
+ (SelectData::itemBackgroundColor):
+ (SelectData::itemForegroundColor):
+ * WebCoreSupport/QtFallbackWebPopup.cpp:
+ (WebCore::QtFallbackWebPopup::show):
+ (WebCore::QtFallbackWebPopup::populate):
+
+2011-03-27 Yi Shen <yi.4.shen@nokia.com>
+
+ Reviewed by Andreas Kling.
+
+ [Qt][Symbian] Fix Api test failure -- microFocusCoordinates
+ https://bugs.webkit.org/show_bug.cgi?id=57108
+
+ Since the canvas is not self-closing tag, we need to add '</canvas>'.
+
+ * tests/qgraphicswebview/tst_qgraphicswebview.cpp:
+ (tst_QGraphicsWebView::microFocusCoordinates):
+ * tests/qwebview/tst_qwebview.cpp:
+ (tst_QWebView::microFocusCoordinates):
+
+2011-03-27 Kwang Yul Seo <skyul@company100.net>
+
+ Reviewed by Eric Seidel.
+
+ [Qt] Build fix: Define WTF_USE_TEXTURE_MAPPER=1 when CONFIG contains texmap.
+ https://bugs.webkit.org/show_bug.cgi?id=57143
+
+ Qt WebKit uses USE(TEXTURE_MAPPER) guard. Check texmap in CONFIG and
+ define WTF_USE_TEXTURE_MAPPER=1.
+
+ * QtWebKit.pro:
+
+2011-03-27 Andreas Kling <kling@webkit.org>
+
+ Reviewed by Benjamin Poulain.
+
+ REGRESSION(r54712): [Qt] Installed QtWebKit header does not compile.
+ https://bugs.webkit.org/show_bug.cgi?id=57183
+
+ The convenience <QtWebKit> header would include \<QtNetwork/QtNetwork\>
+ which was due to the outputting code previously being wrapped in eval().
+
+ * Api/DerivedSources.pro:
+
+2011-03-27 Benjamin Poulain <benjamin.poulain@nokia.com>
+
+ Reviewed by Andreas Kling.
+
+ [Qt] QtWebKit will not compile with QT_ASCII_CAST_WARNINGS enabled
+ https://bugs.webkit.org/show_bug.cgi?id=57087
+
+ Use explicit conversion for string to avoid depending on the default codec
+ installed by the user code.
+
+ * Api/qwebkitversion.cpp:
+ (qWebKitVersion):
+ * Api/qwebpage.cpp:
+ (QWebPagePrivate::dynamicPropertyChangeEvent):
+ (QWebPage::javaScriptConsoleMessage):
+ * WebCoreSupport/DumpRenderTreeSupportQt.cpp:
+ (convertToPropertyName):
+ (DumpRenderTreeSupportQt::setEditingBehavior):
+ (DumpRenderTreeSupportQt::plainText):
+ * WebCoreSupport/EditorClientQt.cpp:
+ (dumpRange):
+ * WebCoreSupport/FrameLoaderClientQt.cpp:
+ (drtDescriptionSuitableForTestResult):
+ (WebCore::FrameLoaderClientQt::dispatchDecidePolicyForNavigationAction):
+ * WebCoreSupport/InspectorClientQt.cpp:
+ (WebCore::InspectorClientQt::openInspectorFrontend):
+ * WebCoreSupport/InspectorServerQt.cpp:
+ (WebCore::parseWebSocketChallengeNumber):
+ (WebCore::InspectorServerRequestHandlerQt::tcpReadyRead):
+
+2011-03-26 Andreas Kling <kling@webkit.org>
+
+ Reviewed by Kenneth Rohde Christiansen.
+
+ [Qt] QWebFrame::iconChanged() not emitted when icon is cached but not yet loaded
+ https://bugs.webkit.org/show_bug.cgi?id=57157
+
+ Add an IconDatabaseClient for the Qt port to ensure that QWebFrame::iconChanged()
+ is always emitted when appropriate.
+
+ * QtWebKit.pro: Add new files.
+
+ * WebCoreSupport/IconDatabaseClientQt.h: Added.
+ * WebCoreSupport/IconDatabaseClientQt.cpp: Added.
+ (WebCore::IconDatabaseClientQt::instance):
+ (WebCore::IconDatabaseClientQt::IconDatabaseClientQt):
+ (WebCore::IconDatabaseClientQt::~IconDatabaseClientQt):
+ (WebCore::IconDatabaseClientQt::performImport):
+ (WebCore::IconDatabaseClientQt::didRemoveAllIcons):
+ (WebCore::IconDatabaseClientQt::didImportIconURLForPageURL):
+ (WebCore::IconDatabaseClientQt::didImportIconDataForPageURL):
+ (WebCore::IconDatabaseClientQt::didChangeIconForPageURL):
+ (WebCore::IconDatabaseClientQt::didFinishURLImport):
+
+ * WebCoreSupport/FrameLoaderClientQt.h:
+ * WebCoreSupport/FrameLoaderClientQt.cpp:
+ (WebCore::FrameLoaderClientQt::registerForIconNotification):
+ (WebCore::FrameLoaderClientQt::onIconLoadedForPageURL): New slot connected
+ to the IconDatabaseClientQt::iconLoadedForPageURL() signal. This emits the
+ QWebFrame::iconChanged() signal when the IconDatabases finishes loading
+ a cached favicon for the frame's URL.
+
+ * Api/qwebsettings.cpp:
+ (QWebSettings::setIconDatabasePath): Make sure that IconDatabaseClientQt is
+ instantiated. An IconDatabaseClient has to be registered before the IconDatabase
+ spawns its reader thread.
+
+2011-03-25 Andy Estes <aestes@apple.com>
+
+ Reviewed by Adele Peterson.
+
+ REGRESSION (r70748): latest nightly builds kills AC_QuickTime.js
+ https://bugs.webkit.org/show_bug.cgi?id=49016
+
+ Update objectContentType() implementation to handle the
+ shouldPreferPlugInsForImages flag.
+
+ * WebCoreSupport/FrameLoaderClientQt.cpp:
+ (WebCore::FrameLoaderClientQt::objectContentType):
+ * WebCoreSupport/FrameLoaderClientQt.h:
+
+2011-03-25 Chang Shu <cshu@webkit.org>
+
+ Reviewed by Ryosuke Niwa.
+
+ rename Node::isContentEditable and all call sites to rendererIsEditable
+ https://bugs.webkit.org/show_bug.cgi?id=54290
+
+ This is part of the effort to separate JS API HTMLElement isContentEditable from
+ internal Node::rendererIsEditable.
+
+ * WebCoreSupport/EditorClientQt.cpp:
+ (WebCore::EditorClientQt::handleKeyboardEvent):
+
+2011-03-25 Alexis Menard <alexis.menard@openbossa.org>
+
+ Reviewed by Andreas Kling.
+
+ [Qt] The keyboard shortcuts during fullscreen playback do not work.
+ https://bugs.webkit.org/show_bug.cgi?id=57095
+
+ We need to explicitely set the focus on the widget in order to receive the keyboard events.
+
+ * WebCoreSupport/FullScreenVideoWidget.cpp:
+ (WebCore::FullScreenVideoWidget::show):
+
+2011-03-24 Sheriff Bot <webkit.review.bot@gmail.com>
+
+ Unreviewed, rolling out r81916 and r81917.
+ http://trac.webkit.org/changeset/81916
+ http://trac.webkit.org/changeset/81917
+ https://bugs.webkit.org/show_bug.cgi?id=57071
+
+ broke a test on platforms that do not have QuickTime installed
+ (Requested by estes on #webkit).
+
+ * WebCoreSupport/FrameLoaderClientQt.cpp:
+ (WebCore::FrameLoaderClientQt::objectContentType):
+ * WebCoreSupport/FrameLoaderClientQt.h:
+
+2011-03-24 Andy Estes <aestes@apple.com>
+
+ Reviewed by Darin Adler.
+
+ REGRESSION (r70748): latest nightly builds kills AC_QuickTime.js
+ https://bugs.webkit.org/show_bug.cgi?id=49016
+
+ Update objectContentType() implementation to handle the
+ shouldPreferPlugInsForImages flag.
+
+ * WebCoreSupport/FrameLoaderClientQt.cpp:
+ (WebCore::FrameLoaderClientQt::objectContentType):
+ * WebCoreSupport/FrameLoaderClientQt.h:
+
+2011-03-24 Benjamin Poulain <benjamin.poulain@nokia.com>
+
+ Reviewed by Kenneth Rohde Christiansen.
+
+ [Qt] When we render WebGL offscreen, color conversion cost a lot of CPU cycles
+ https://bugs.webkit.org/show_bug.cgi?id=40884
+
+ Add tests and benchmarks for the software fallback of WebGL.
+
+ * tests/benchmarks/webgl/10000_triangles.html: Added.
+ * tests/benchmarks/webgl/tst_webgl.cpp: Added.
+ (GraphicsView::GraphicsView):
+ (GraphicsView::resizeEvent):
+ (tst_WebGlPerformance::init):
+ (tst_WebGlPerformance::cleanup):
+ (tst_WebGlPerformance::benchSoftwareFallbackRgb16):
+ (tst_WebGlPerformance::benchSoftwareFallbackRgb32):
+ (tst_WebGlPerformance::benchSoftwareFallbackArgb32):
+ (tst_WebGlPerformance::benchSoftwareFallbackArgb32Premultiplied):
+ (tst_WebGlPerformance::benchmarkFrameRenderingOnImage):
+ * tests/benchmarks/webgl/tst_webgl.qrc: Added.
+ * tests/benchmarks/webgl/webgl.pro: Added.
+ * tests/qgraphicswebview/qgraphicswebview.pro:
+ * tests/qgraphicswebview/resources/pointing_right.html: Added.
+ * tests/qgraphicswebview/resources/pointing_up.html: Added.
+ * tests/qgraphicswebview/tst_qgraphicswebview.cpp:
+ (compareImagesFuzzyPixelCount):
+ (GraphicsView::GraphicsView):
+ (tst_QGraphicsWebView::webglSoftwareFallbackVerticalOrientation):
+ (tst_QGraphicsWebView::webglSoftwareFallbackHorizontalOrientation):
+ (tst_QGraphicsWebView::compareCanvasToImage):
+ * tests/qgraphicswebview/tst_qgraphicswebview.qrc:
+ * tests/tests.pro:
+
+2011-03-24 Kristian Amlie <kristian.amlie@nokia.com>
+
+ Reviewed by Benjamin Poulain.
+
+ Avoided ASCII-cast warnings for WebKit.
+
+ Normally they won't be enabled anyway, but if you build webkit from
+ within the Qt mother repository it will pick up Qt's default build
+ settings, which do enable it. We need to disable them because
+ warnings are treated as errors and there are way too many of them in
+ the WebKit code.
+
+ [Qt] Avoid ASCII-cast warnings for WebKit.
+ https://bugs.webkit.org/show_bug.cgi?id=57016
+
+ * QtWebKit.pro:
+
+2011-03-24 Caio Marcelo de Oliveira Filho <caio.oliveira@openbossa.org>
+
+ Reviewed by Benjamin Poulain.
+
+ [Qt] Resetting the URL property of a QWebView results in the current directory being set as file::-type URL
+ https://bugs.webkit.org/show_bug.cgi?id=29595
+
+ Qt Designer resets the URL by setting it to QUrl(). The bug was caused by
+ ensureAbsoluteUrl() helper function treating the empty URL as a relative URL, and
+ prepending the current directory.
+
+ By fixing this, now we can pass QUrl() invalid and empty URLs to WebCore layer, which
+ will end up loading "about:blank", but keeping it as a requested URL.
+
+ This patch also simplifies the logic for requestedUrl(), since m_lastRequestedUrl
+ is filled for the loaded URLs as well, we can use it in every case.
+
+ Three new autotests were added, to better cover the expected behavior of setting
+ the QUrl() in a QWebFrame.
+
+ * Api/qwebframe.cpp:
+ (ensureAbsoluteUrl): do not treat invalid URLs (empty included) as relative.
+ (QWebFrame::requestedUrl): always use m_lastRequestedUrl.
+
+ * WebCoreSupport/FrameLoaderClientQt.cpp:
+ (WebCore::FrameLoaderClientQt::dispatchDidFinishLoad): do not clear m_lastRequestedUrl
+ anymore, since we always rely on it even for loaded frames.
+
+ * tests/qwebframe/tst_qwebframe.cpp:
+ (tst_QWebFrame::setUrlToEmpty): verify the behavior of setting empty URLs. This includes
+ the reduction of the bug report.
+ (tst_QWebFrame::setUrlToInvalid): setting invalid, but not necessarily empty, URLs.
+ (tst_QWebFrame::setUrlHistory): to verify how setting empty URLs affect history.
+
+2011-03-23 Brady Eidson <beidson@apple.com>
+
+ Reviewed by Sam Weinig.
+
+ Change IconDatabase opening to allow for arbitrary filenames
+ https://bugs.webkit.org/show_bug.cgi?id=56977
+
+ * Api/qwebsettings.cpp:
+ (QWebSettings::setIconDatabasePath):
+
+2011-03-23 Aparna Nandyal <aparna.nand@wipro.com>
+
+ Reviewed by Andreas Kling.
+
+ [Qt] QtWebKit rendering problem when maximizing and doing a back
+ https://bugs.webkit.org/show_bug.cgi?id=56669
+
+ Added an auto test.
+ Patch by Alexis Menard < alexis.menard@nokia.com> on 2011-03-21
+
+ * tests/qwebview/tst_qwebview.cpp:
+ (tst_QWebView::rendering):
+
+2011-03-23 Yury Semikhatsky <yurys@chromium.org>
+
+ Reviewed by Pavel Feldman.
+
+ [V8] Web Inspector: compile DebuggerScript.js into DebuggerScriptSource.h
+ https://bugs.webkit.org/show_bug.cgi?id=56843
+
+ * WebCoreSupport/InspectorClientQt.cpp:
+ (WebCore::InspectorClientQt::openInspectorFrontend):
+
+2011-03-22 Andrew Wason <rectalogic@rectalogic.com>
+
+ Reviewed by Benjamin Poulain.
+
+ [Qt] QWebPage with WebGL content crashes when rendering if no QWebView parent
+ https://bugs.webkit.org/show_bug.cgi?id=54138
+
+ * tests/qwebpage/tst_qwebpage.cpp:
+ (webGLScreenshotWithoutView):
+ (tst_QWebPage::acceleratedWebGLScreenshotWithoutView):
+ (tst_QWebPage::unacceleratedWebGLScreenshotWithoutView):
+ Render a QWebPage (with and without accelerated compositing)
+ with a WebGL context that has no owning view. Shouldn't crash.
+
+2011-03-21 Chang Shu <cshu@webkit.org>
+
+ Reviewed by Alexey Proskuryakov.
+
+ REGRESSION (r79953): Can't type in MS Outlook 2011
+ https://bugs.webkit.org/show_bug.cgi?id=56665
+
+ r79953 removed the WebView level editablity which is persistent no matter whether
+ underlying document itself is changed and editability gets lost. The resolution is to
+ set this WebView editable value to WebCore. This avoids the callback from WebCore to
+ WebKit which was the main goal in r79953 to improve performance.
+
+ * Api/qwebpage.cpp:
+ (QWebPage::setContentEditable):
+ (QWebPage::isContentEditable):
+
+2011-03-19 Andreas Kling <kling@webkit.org>
+
+ Reviewed by Benjamin Poulain.
+
+ [Qt] Remove support for Qt 4.6
+ https://bugs.webkit.org/show_bug.cgi?id=56712
+
+ * Api/qwebframe.cpp:
+ (QWebFrame::load):
+ * Api/qwebpage.cpp:
+ (QWebPagePrivate::QWebPagePrivate):
+ * Api/qwebsettings.cpp:
+ (QWebSettings::QWebSettings):
+ * WebCoreSupport/GeolocationClientQt.cpp:
+ (WebCore::GeolocationClientQt::positionUpdated):
+
+2011-03-19 Andreas Kling <kling@webkit.org>
+
+ Reviewed by Antonio Gomes.
+
+ [Qt][Doc] QWebPage::unsupportedContent() passes ownership of the QNetworkReply
+ https://bugs.webkit.org/show_bug.cgi?id=56711
+
+ Document the fact that when unsupportedContent(QNetworkReply*) is emitted,
+ ownership of the reply is transferred to the receiving slot.
+
+ * Api/qwebpage.cpp:
+
+2011-03-17 Brady Eidson <beidson@apple.com>
+
+ Reviewed by Sam Weinig.
+
+ https://bugs.webkit.org/show_bug.cgi?id=56425
+ More groundwork for WebKit2 IconDatabase
+
+ Update already-used function names:
+ * Api/qwebhistory.cpp:
+ (QWebHistoryItem::icon):
+ * Api/qwebsettings.cpp:
+ (QWebSettings::iconForUrl):
+
+2011-03-18 Alexis Menard <alexis.menard@openbossa.org>
+
+ Reviewed by Benjamin Poulain.
+
+ [Qt] console.log not being exposed to QmlViewer
+ https://bugs.webkit.org/show_bug.cgi?id=56536
+
+ The documentation is bogus the feature does not exist.
+
+ * declarative/qdeclarativewebview.cpp:
+
+2011-03-17 Andreas Kling <kling@webkit.org>
+
+ Reviewed by Kenneth Rohde Christiansen.
+
+ [Qt] QML WebView emits iconChanged() when the page title changes
+ https://bugs.webkit.org/show_bug.cgi?id=56570
+
+ * declarative/qdeclarativewebview.cpp:
+ (QDeclarativeWebView::setPage): Don't forward the frame's titleChanged
+ signal to the view's iconChanged signal.
+
+2011-03-17 Alexis Menard <alexis.menard@openbossa.org>
+
+ Reviewed by Benjamin Poulain.
+
+ [Qt] Videos look ugly when using QGraphicsWebView.
+ https://bugs.webkit.org/show_bug.cgi?id=56580
+
+ We need to set QPainter::SmoothPixmapTransform on the painter for a proper rendering of the video.
+ QWebView does it but not QGraphicsWebView because the API does not exist. This patch is fixing it
+ by introducing the same API as QWebView to control the renderHints of the item. Unlike QWebView
+ QGraphicsWebView inherits the painter from QGraphicsScene and those flags are not set. This patch
+ ensure that before rendering the item we add QPainter::SmoothPixmapTransform and QPainter::TextAntialiasing
+ in addition of what could be set on the painter. In order to not break the rendering of all the items in the
+ scene we set back the painter to its original state when QGraphicsWebView is rendered.
+
+ * Api/qgraphicswebview.cpp:
+ (QGraphicsWebViewPrivate::QGraphicsWebViewPrivate):
+ (QGraphicsWebView::paint):
+ (QGraphicsWebView::renderHints):
+ (QGraphicsWebView::setRenderHints):
+ (QGraphicsWebView::setRenderHint):
+ * Api/qgraphicswebview.h:
+ * tests/qgraphicswebview/tst_qgraphicswebview.cpp:
+ (tst_QGraphicsWebView::renderHints):
+
+2011-03-16 Joseph Pecoraro <joepeck@webkit.org>
+
+ Reviewed by Kenneth Rohde Christiansen.
+
+ Viewport no longer allows an auto value for "user-scalable"
+ https://bugs.webkit.org/show_bug.cgi?id=55416
+
+ Make the default value for userScalable be true.
+
+ * Api/qwebpage.cpp:
+ (QWebPage::viewportAttributesForSize):
+ * WebCoreSupport/DumpRenderTreeSupportQt.cpp:
+ (DumpRenderTreeSupportQt::viewportAsText): update test output to include userScalable.
+
+2011-03-15 Kevin Ollivier <kevino@theolliviers.com>
+
+ Reviewed by Darin Adler.
+
+ Introduce WTF_USE_EXPORT_MACROS, which will allow us to put shared library import/export
+ info into the headers rather than in export symbol definition files, but disable it on
+ all platforms initially so we can deal with port build issues one port at a time.
+
+ https://bugs.webkit.org/show_bug.cgi?id=27551
+
+ * WebCoreSupport/GeolocationClientQt.cpp:
+ * WebCoreSupport/PopupMenuQt.cpp:
+
+2011-03-14 Brady Eidson <beidson@apple.com>
+
+ Reviewed by Anders Carlsson.
+
+ https://bugs.webkit.org/show_bug.cgi?id=56320
+ Remove HistoryItem::icon() and the WebCore dependency on "IconDatabaseBase::defaultIcon()"
+
+ * Api/qwebhistory.cpp:
+ (QWebHistoryItem::icon): Use IconDatabase directly.
+
+2011-03-11 Brady Eidson <beidson@apple.com>
+
+ Reviewed by attempt at build fix!
+
+ https://bugs.webkit.org/show_bug.cgi?id=56216
+ Fix the Qt build following the same pattern of the patch.
+
+ * Api/qwebsettings.cpp:
+ (QWebSettings::setIconDatabasePath): Call the static method via IconDatabase:: and not via iconDatabase()
+
+2011-03-11 Alexis Menard <alexis.menard@openbossa.org>
+
+ Reviewed by Ariya Hidayat.
+
+ [Qt] Entering fullscreen and leaving it may hide the cursor of the application.
+ https://bugs.webkit.org/show_bug.cgi?id=56181
+
+ We need to stop the auto hide cursor timer when closing the widget otherwise the timer
+ might get fired and therefore hide the cursor even when the fullscreen widget is closed.
+
+ * WebCoreSupport/FullScreenVideoWidget.cpp:
+ (WebCore::FullScreenVideoWidget::closeEvent):
+
+2011-03-10 David Boddie <david.boddie@nokia.com>
+
+ Reviewed by Andreas Kling.
+
+ Fixed a qdoc warning and terminology (WebKit instead of Webkit).
+ https://bugs.webkit.org/show_bug.cgi?id=55756
+
+ * Api/qwebhistoryinterface.cpp:
+
+2011-03-10 Andreas Kling <kling@webkit.org>
+
+ Unreviewed build fix after r80774.
+
+ QML property versioning is introduced in Qt 4.7.3, not 4.7.2.
+ See also: http://bugreports.qt.nokia.com/browse/QTBUG-13451
+
+ * declarative/plugin.cpp:
+ (WebKitQmlPlugin::registerTypes):
+ * declarative/qdeclarativewebview.cpp:
+ * declarative/qdeclarativewebview_p.h:
+ * tests/qdeclarativewebview/tst_qdeclarativewebview.cpp:
+
+2011-03-10 Alexis Menard <alexis.menard@openbossa.org>
+
+ Reviewed by Andreas Kling.
+
+ [Qt] QtDeclarative Webview element has a fixed white background
+ https://bugs.webkit.org/show_bug.cgi?id=40918
+
+ Implement a way to change the background color of the WebView QML element.
+ This feature is activated for QtWebKit 1.1 version of the plugin.
+
+ * declarative/plugin.cpp:
+ (WebKitQmlPlugin::registerTypes):
+ * declarative/qdeclarativewebview.cpp:
+ (QDeclarativeWebView::backgroundColor):
+ (QDeclarativeWebView::setBackgroundColor):
+ * declarative/qdeclarativewebview_p.h:
+ * tests/qdeclarativewebview/resources/webviewbackgroundcolor.qml: Added.
+ * tests/qdeclarativewebview/tst_qdeclarativewebview.cpp:
+ (tst_QDeclarativeWebView::backgroundColor):
+ * tests/qdeclarativewebview/tst_qdeclarativewebview.qrc:
+
+2011-03-10 Stanislav Paltis <Stanislav.Paltis@nokia.com>
+
+ Reviewed by Laszlo Gombos.
+
+ [Qt] MemoryCache deadDecodedDataDeletionInterval is not exposed for client's usage
+ https://bugs.webkit.org/show_bug.cgi?id=55945
+
+ Added handling of dynamic/runtime property _q_deadDecodedDataDeletionInterval to
+ set interval used to trigger when decoded data in dead list of object cache will
+ be purged from object cache.
+
+ * Api/qwebpage.cpp:
+ (QWebPagePrivate::dynamicPropertyChangeEvent):
+
+2011-03-10 Caio Marcelo de Oliveira Filho <caio.oliveira@openbossa.org>
+
+ Reviewed by Antonio Gomes.
+
+ Simplify how QWebFrame::requestedUrl() is obtained
+ https://bugs.webkit.org/show_bug.cgi?id=55842
+
+ When a load starts, store the requested URL until we know that it'll be
+ available for us in the document loader -- after load finished.
+
+ The existing auto tests cover the three different code paths in
+ requestedUrl() and the new code passes the autotests. In each of those
+ cases, we looked for the information in a different place, but in all
+ of them, dispatchDidStartProvisionalLoad was called.
+
+ This simplification will be useful to fix bug 32723. The way requestedUrl()
+ is implementent, we can't use it as a fallback for url() when the setUrl()
+ was called with an invalid URL.
+
+ * Api/qwebframe.cpp:
+ (QWebFrame::requestedUrl):
+ * WebCoreSupport/FrameLoaderClientQt.cpp:
+ (WebCore::FrameLoaderClientQt::dispatchDidStartProvisionalLoad):
+ (WebCore::FrameLoaderClientQt::dispatchDidFinishLoad):
+ * WebCoreSupport/FrameLoaderClientQt.h:
+ (WebCore::FrameLoaderClientQt::lastRequestedUrl):
+
+2011-03-10 Gustavo Noronha Silva <gustavo.noronha@collabora.co.uk>
+
+ Reviewed by Kenneth Rohde Christiansen.
+
+ Tiled backing store's delegated scroll request uses incorrect convention
+ https://bugs.webkit.org/show_bug.cgi?id=56011
+
+ Adapt internal API to match the change from delta to point on the
+ WebCore side, and convert the point to a delta for the public API.
+
+ * WebCoreSupport/ChromeClientQt.cpp:
+ (WebCore::ChromeClientQt::delegatedScrollRequested):
+ * WebCoreSupport/ChromeClientQt.h:
+
+2011-03-09 Peter Kasting <pkasting@google.com>
+
+ Reviewed by Mihai Parparita.
+
+ Unify Windows version checks.
+ https://bugs.webkit.org/show_bug.cgi?id=55979
+
+ * Api/qwebpage.cpp:
+ (QWebPage::userAgentForUrl):
+
2011-03-07 Sam Weinig <sam@webkit.org>
Reviewed by Anders Carlsson.
diff --git a/Source/WebKit/qt/QtWebKit.pro b/Source/WebKit/qt/QtWebKit.pro
index 4b7bb05..8836c4a 100644
--- a/Source/WebKit/qt/QtWebKit.pro
+++ b/Source/WebKit/qt/QtWebKit.pro
@@ -42,6 +42,11 @@ isEmpty(OUTPUT_DIR): OUTPUT_DIR = ../..
contains(QT_CONFIG, embedded):CONFIG += embedded
+win32*:!win32-msvc* {
+ # Make sure OpenGL libs are after the webcore lib so MinGW can resolve symbols
+ contains(DEFINES, ENABLE_WEBGL=1)|contains(CONFIG, texmap): LIBS += $$QMAKE_LIBS_OPENGL
+}
+
moduleFile=$$PWD/qt_webkit_version.pri
isEmpty(QT_BUILD_TREE):include($$moduleFile)
VERSION = $${QT_WEBKIT_MAJOR_VERSION}.$${QT_WEBKIT_MINOR_VERSION}.$${QT_WEBKIT_PATCH_VERSION}
@@ -82,6 +87,7 @@ CONFIG(QTDIR_build) {
symbian: TARGET =$$TARGET$${QT_LIBINFIX}
}
+
symbian {
TARGET.EPOCALLOWDLLDATA=1
# DRM and Allfiles capabilites need to be audited to be signed on Symbian
@@ -215,6 +221,15 @@ contains(DEFINES, ENABLE_VIDEO=1) {
}
}
+contains(DEFINES, ENABLE_ICONDATABASE=1) {
+ HEADERS += \
+ $$SOURCE_DIR/WebCore/loader/icon/IconDatabaseClient.h \
+ $$PWD/WebCoreSupport/IconDatabaseClientQt.h
+
+ SOURCES += \
+ $$PWD/WebCoreSupport/IconDatabaseClientQt.cpp
+}
+
contains(DEFINES, ENABLE_DEVICE_ORIENTATION=1) {
HEADERS += \
$$PWD/WebCoreSupport/DeviceMotionClientQt.h \
@@ -238,6 +253,10 @@ contains(DEFINES, ENABLE_GEOLOCATION=1) {
$$PWD/WebCoreSupport/GeolocationClientQt.cpp
}
+contains(CONFIG, texmap) {
+ DEFINES += WTF_USE_TEXTURE_MAPPER=1
+}
+
!symbian-abld:!symbian-sbsv2 {
modfile.files = $$moduleFile
modfile.path = $$[QMAKE_MKSPECS]/modules
diff --git a/Source/WebKit/qt/WebCoreSupport/ChromeClientQt.cpp b/Source/WebKit/qt/WebCoreSupport/ChromeClientQt.cpp
index c784375..bec4bc4 100644
--- a/Source/WebKit/qt/WebCoreSupport/ChromeClientQt.cpp
+++ b/Source/WebKit/qt/WebCoreSupport/ChromeClientQt.cpp
@@ -411,7 +411,7 @@ void ChromeClientQt::invalidateContentsAndWindow(const IntRect& windowRect, bool
if (!rect.isEmpty())
platformPageClient()->update(rect);
}
- emit m_webPage->repaintRequested(windowRect);
+ QMetaObject::invokeMethod(m_webPage, "repaintRequested", Qt::QueuedConnection, Q_ARG(QRect, windowRect));
// FIXME: There is no "immediate" support for window painting. This should be done always whenever the flag
// is set.
@@ -430,9 +430,10 @@ void ChromeClientQt::scroll(const IntSize& delta, const IntRect& scrollViewRect,
}
#if ENABLE(TILED_BACKING_STORE)
-void ChromeClientQt::delegatedScrollRequested(const IntSize& delta)
+void ChromeClientQt::delegatedScrollRequested(const IntPoint& point)
{
- emit m_webPage->scrollRequested(delta.width(), delta.height(), QRect(QPoint(0, 0), m_webPage->viewportSize()));
+ QPoint currentPosition(m_webPage->mainFrame()->scrollPosition());
+ emit m_webPage->scrollRequested(point.x() - currentPosition.x(), point.y() - currentPosition.y(), QRect(QPoint(0, 0), m_webPage->viewportSize()));
}
#endif
diff --git a/Source/WebKit/qt/WebCoreSupport/ChromeClientQt.h b/Source/WebKit/qt/WebCoreSupport/ChromeClientQt.h
index 27327ef..a12c2ec 100644
--- a/Source/WebKit/qt/WebCoreSupport/ChromeClientQt.h
+++ b/Source/WebKit/qt/WebCoreSupport/ChromeClientQt.h
@@ -120,7 +120,7 @@ namespace WebCore {
virtual void invalidateContentsForSlowScroll(const IntRect&, bool);
virtual void scroll(const IntSize& scrollDelta, const IntRect& rectToScroll, const IntRect& clipRect);
#if ENABLE(TILED_BACKING_STORE)
- virtual void delegatedScrollRequested(const IntSize& scrollDelta);
+ virtual void delegatedScrollRequested(const IntPoint& scrollPoint);
#endif
virtual IntPoint screenToWindow(const IntPoint&) const;
diff --git a/Source/WebKit/qt/WebCoreSupport/DumpRenderTreeSupportQt.cpp b/Source/WebKit/qt/WebCoreSupport/DumpRenderTreeSupportQt.cpp
index c0017a2..ba712d1 100644
--- a/Source/WebKit/qt/WebCoreSupport/DumpRenderTreeSupportQt.cpp
+++ b/Source/WebKit/qt/WebCoreSupport/DumpRenderTreeSupportQt.cpp
@@ -531,7 +531,7 @@ QString DumpRenderTreeSupportQt::markerTextForListItem(const QWebElement& listIt
static QString convertToPropertyName(const QString& name)
{
- QStringList parts = name.split('-');
+ QStringList parts = name.split(QLatin1Char('-'));
QString camelCaseName;
for (int j = 0; j < parts.count(); ++j) {
QString part = parts.at(j);
@@ -626,11 +626,11 @@ void DumpRenderTreeSupportQt::setEditingBehavior(QWebPage* page, const QString&
{
WebCore::EditingBehaviorType coreEditingBehavior;
- if (editingBehavior == "win")
+ if (editingBehavior == QLatin1String("win"))
coreEditingBehavior = EditingWindowsBehavior;
- else if (editingBehavior == "mac")
+ else if (editingBehavior == QLatin1String("mac"))
coreEditingBehavior = EditingMacBehavior;
- else if (editingBehavior == "unix")
+ else if (editingBehavior == QLatin1String("unix"))
coreEditingBehavior = EditingUnixBehavior;
else {
ASSERT_NOT_REACHED();
@@ -742,12 +742,13 @@ QString DumpRenderTreeSupportQt::viewportAsText(QWebPage* page, int deviceDPI, c
availableSize);
QString res;
- res = res.sprintf("viewport size %dx%d scale %f with limits [%f, %f]\n",
+ res = res.sprintf("viewport size %dx%d scale %f with limits [%f, %f] and userScalable %f\n",
conf.layoutSize.width(),
conf.layoutSize.height(),
conf.initialScale,
conf.minimumScale,
- conf.maximumScale);
+ conf.maximumScale,
+ conf.userScalable);
return res;
}
@@ -922,10 +923,10 @@ void DumpRenderTreeSupportQt::simulateDesktopNotificationClick(const QString& ti
QString DumpRenderTreeSupportQt::plainText(const QVariant& range)
{
QMap<QString, QVariant> map = range.toMap();
- QVariant startContainer = map.value("startContainer");
+ QVariant startContainer = map.value(QLatin1String("startContainer"));
map = startContainer.toMap();
- return map.value("innerText").toString();
+ return map.value(QLatin1String("innerText")).toString();
}
QVariantList DumpRenderTreeSupportQt::nodesFromRect(const QWebElement& document, int x, int y, unsigned top, unsigned right, unsigned bottom, unsigned left, bool ignoreClipping)
@@ -949,6 +950,7 @@ QVariantList DumpRenderTreeSupportQt::nodesFromRect(const QWebElement& document,
return res;
}
+// API Candidate?
QString DumpRenderTreeSupportQt::responseMimeType(QWebFrame* frame)
{
WebCore::Frame* coreFrame = QWebFramePrivate::core(frame);
@@ -1038,6 +1040,18 @@ QUrl DumpRenderTreeSupportQt::mediaContentUrlByElementId(QWebFrame* frame, const
return res;
}
+// API Candidate?
+void DumpRenderTreeSupportQt::setAlternateHtml(QWebFrame* frame, const QString& html, const QUrl& baseUrl, const QUrl& failingUrl)
+{
+ KURL kurl(baseUrl);
+ WebCore::Frame* coreFrame = QWebFramePrivate::core(frame);
+ WebCore::ResourceRequest request(kurl);
+ const QByteArray utf8 = html.toUtf8();
+ WTF::RefPtr<WebCore::SharedBuffer> data = WebCore::SharedBuffer::create(utf8.constData(), utf8.length());
+ WebCore::SubstituteData substituteData(data, WTF::String("text/html"), WTF::String("utf-8"), failingUrl);
+ coreFrame->loader()->load(request, substituteData, false);
+}
+
// Provide a backward compatibility with previously exported private symbols as of QtWebKit 4.6 release
void QWEBKIT_EXPORT qt_resumeActiveDOMObjects(QWebFrame* frame)
diff --git a/Source/WebKit/qt/WebCoreSupport/DumpRenderTreeSupportQt.h b/Source/WebKit/qt/WebCoreSupport/DumpRenderTreeSupportQt.h
index 1e7b275..78752d8 100644
--- a/Source/WebKit/qt/WebCoreSupport/DumpRenderTreeSupportQt.h
+++ b/Source/WebKit/qt/WebCoreSupport/DumpRenderTreeSupportQt.h
@@ -198,6 +198,7 @@ public:
static void setMinimumTimerInterval(QWebPage*, double);
static QUrl mediaContentUrlByElementId(QWebFrame*, const QString& elementId);
+ static void setAlternateHtml(QWebFrame*, const QString& html, const QUrl& baseUrl, const QUrl& failingUrl);
};
#endif
diff --git a/Source/WebKit/qt/WebCoreSupport/EditorClientQt.cpp b/Source/WebKit/qt/WebCoreSupport/EditorClientQt.cpp
index cf2fa41..e7bbd2c 100644
--- a/Source/WebKit/qt/WebCoreSupport/EditorClientQt.cpp
+++ b/Source/WebKit/qt/WebCoreSupport/EditorClientQt.cpp
@@ -76,9 +76,9 @@ static QString dumpRange(WebCore::Range *range)
return QLatin1String("(null)");
WebCore::ExceptionCode code;
- QString str = QString("range from %1 of %2 to %3 of %4")
- .arg(range->startOffset(code)).arg(dumpPath(range->startContainer(code)))
- .arg(range->endOffset(code)).arg(dumpPath(range->endContainer(code)));
+ QString str = QString::fromLatin1("range from %1 of %2 to %3 of %4")
+ .arg(range->startOffset(code)).arg(dumpPath(range->startContainer(code)))
+ .arg(range->endOffset(code)).arg(dumpPath(range->endContainer(code)));
return str;
}
@@ -420,7 +420,7 @@ void EditorClientQt::handleKeyboardEvent(KeyboardEvent* event)
return;
// FIXME: refactor all of this to use Actions or something like them
- if (start->isContentEditable()) {
+ if (start->rendererIsEditable()) {
bool doSpatialNavigation = false;
if (isSpatialNavigationEnabled(frame)) {
if (!kevent->modifiers()) {
@@ -530,8 +530,22 @@ void EditorClientQt::handleKeyboardEvent(KeyboardEvent* event)
#endif // QT_NO_SHORTCUT
}
-void EditorClientQt::handleInputMethodKeydown(KeyboardEvent*)
+void EditorClientQt::handleInputMethodKeydown(KeyboardEvent* event)
{
+#ifndef QT_NO_SHORTCUT
+ const PlatformKeyboardEvent* kevent = event->keyEvent();
+ if (kevent->type() == PlatformKeyboardEvent::RawKeyDown) {
+ QWebPage::WebAction action = QWebPagePrivate::editorActionForKeyEvent(kevent->qtEvent());
+ switch (action) {
+ case QWebPage::InsertParagraphSeparator:
+ case QWebPage::InsertLineSeparator:
+ m_page->triggerAction(action);
+ break;
+ default:
+ break;
+ }
+ }
+#endif
}
EditorClientQt::EditorClientQt(QWebPage* page)
diff --git a/Source/WebKit/qt/WebCoreSupport/FrameLoaderClientQt.cpp b/Source/WebKit/qt/WebCoreSupport/FrameLoaderClientQt.cpp
index 5cab6a7..d318494 100644
--- a/Source/WebKit/qt/WebCoreSupport/FrameLoaderClientQt.cpp
+++ b/Source/WebKit/qt/WebCoreSupport/FrameLoaderClientQt.cpp
@@ -1,6 +1,6 @@
/*
* Copyright (C) 2006 Zack Rusin <zack@kde.org>
- * Copyright (C) 2006 Apple Computer, Inc. All rights reserved.
+ * Copyright (C) 2006, 2011 Apple Inc. All rights reserved.
* Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies)
* Copyright (C) 2008 Collabora Ltd. All rights reserved.
* Coypright (C) 2008 Holger Hans Peter Freyther
@@ -40,6 +40,9 @@
#include "FrameView.h"
#include "DocumentLoader.h"
#include "HitTestResult.h"
+#if ENABLE(ICONDATABASE)
+#include "IconDatabaseClientQt.h"
+#endif
#if USE(JSC)
#include "JSDOMWindowBase.h"
#elif USE(V8)
@@ -119,7 +122,7 @@ static QString drtDescriptionSuitableForTestResult(const WebCore::KURL& _url)
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);
+ return QString(_url.string()).remove(WebCore::FrameLoaderClientQt::dumpResourceLoadCallbacksPath).mid(1);
}
static QString drtDescriptionSuitableForTestResult(const WebCore::ResourceError& error)
@@ -147,17 +150,17 @@ static QString drtDescriptionSuitableForTestResult(const RefPtr<WebCore::Node> n
{
QString result;
if (exception) {
- result.append("ERROR");
+ result.append(QLatin1String("ERROR"));
return result;
}
if (!node) {
- result.append("NULL");
+ result.append(QLatin1String("NULL"));
return result;
}
result.append(node->nodeName());
RefPtr<WebCore::Node> parent = node->parentNode();
if (parent) {
- result.append(" > ");
+ result.append(QLatin1String(" > "));
result.append(drtDescriptionSuitableForTestResult(parent, 0));
}
return result;
@@ -437,6 +440,8 @@ void FrameLoaderClientQt::dispatchDidStartProvisionalLoad()
if (dumpUserGestureInFrameLoaderCallbacks)
printf("%s - in didStartProvisionalLoadForFrame\n", qPrintable(drtPrintFrameUserGestureStatus(m_frame)));
+ m_lastRequestedUrl = m_frame->loader()->activeDocumentLoader()->requestURL();
+
if (m_webFrame)
emit m_webFrame->provisionalLoad();
}
@@ -481,7 +486,7 @@ void FrameLoaderClientQt::dispatchDidCommitLoad()
// We should assume first the frame has no title. If it has, then the above dispatchDidReceiveTitle()
// will be called very soon with the correct title.
// This properly resets the title when we navigate to a URI without a title.
- emit titleChanged(String());
+ emit titleChanged(QString());
bool isMainFrame = (m_frame == m_frame->page()->mainFrame());
if (!isMainFrame)
@@ -769,11 +774,25 @@ void FrameLoaderClientQt::didPerformFirstNavigation() const
m_webFrame->page()->d->updateNavigationActions();
}
-void FrameLoaderClientQt::registerForIconNotification(bool)
+void FrameLoaderClientQt::registerForIconNotification(bool shouldRegister)
{
- notImplemented();
+#if ENABLE(ICONDATABASE)
+ if (shouldRegister)
+ connect(IconDatabaseClientQt::instance(), SIGNAL(iconLoadedForPageURL(QString)), this, SLOT(onIconLoadedForPageURL(QString)), Qt::UniqueConnection);
+ else
+ disconnect(IconDatabaseClientQt::instance(), SIGNAL(iconLoadedForPageURL(QString)), this, SLOT(onIconLoadedForPageURL(QString)));
+#endif
}
+void FrameLoaderClientQt::onIconLoadedForPageURL(const QString& url)
+{
+#if ENABLE(ICONDATABASE)
+ if (m_webFrame && m_webFrame->url() == url)
+ emit m_webFrame->iconChanged();
+#endif
+}
+
+
void FrameLoaderClientQt::updateGlobalHistory()
{
QWebHistoryInterface *history = QWebHistoryInterface::defaultInterface();
@@ -1210,7 +1229,7 @@ void FrameLoaderClientQt::dispatchDecidePolicyForNavigationAction(FramePolicyFun
printf("Policy delegate: attempt to load %s with navigation type '%s'%s\n",
qPrintable(drtDescriptionSuitableForTestResult(request.url())), navigationTypeToString(action.type()),
- (node) ? qPrintable(QString(" originating from " + drtDescriptionSuitableForTestResult(node, 0))) : "");
+ (node) ? qPrintable(QString::fromLatin1(" originating from ") + drtDescriptionSuitableForTestResult(node, 0)) : "");
if (policyDelegatePermissive)
result = PolicyUse;
@@ -1310,18 +1329,18 @@ void FrameLoaderClientQt::transferLoadingResourceFromPage(unsigned long, Documen
{
}
-ObjectContentType FrameLoaderClientQt::objectContentType(const KURL& url, const String& _mimeType)
+ObjectContentType FrameLoaderClientQt::objectContentType(const KURL& url, const String& mimeTypeIn, bool shouldPreferPlugInsForImages)
{
-// qDebug()<<" ++++++++++++++++ url is "<<url.prettyURL()<<", mime = "<<_mimeType;
+// qDebug()<<" ++++++++++++++++ url is "<<url.prettyURL()<<", mime = "<<mimeTypeIn;
QFileInfo fi(url.path());
String extension = fi.suffix();
- if (_mimeType == "application/x-qt-plugin" || _mimeType == "application/x-qt-styled-widget")
+ if (mimeTypeIn == "application/x-qt-plugin" || mimeTypeIn == "application/x-qt-styled-widget")
return ObjectContentOtherPlugin;
- if (url.isEmpty() && !_mimeType.length())
+ if (url.isEmpty() && !mimeTypeIn.length())
return ObjectContentNone;
- String mimeType = _mimeType;
+ String mimeType = mimeTypeIn;
if (!mimeType.length())
mimeType = MIMETypeRegistry::getMIMETypeForExtension(extension);
@@ -1331,14 +1350,17 @@ ObjectContentType FrameLoaderClientQt::objectContentType(const KURL& url, const
if (!mimeType.length())
return ObjectContentFrame;
- if (MIMETypeRegistry::isSupportedImageMIMEType(mimeType))
- return ObjectContentImage;
-
+ ObjectContentType plugInType = ObjectContentNone;
if (PluginDatabase::installedPlugins()->isMIMETypeRegistered(mimeType))
- return ObjectContentNetscapePlugin;
-
- if (m_frame->page() && m_frame->page()->pluginData() && m_frame->page()->pluginData()->supportsMimeType(mimeType))
- return ObjectContentOtherPlugin;
+ plugInType = ObjectContentNetscapePlugin;
+ else if (m_frame->page() && m_frame->page()->pluginData() && m_frame->page()->pluginData()->supportsMimeType(mimeType))
+ plugInType = ObjectContentOtherPlugin;
+
+ if (MIMETypeRegistry::isSupportedImageMIMEType(mimeType))
+ return shouldPreferPlugInsForImages && plugInType != ObjectContentNone ? plugInType : ObjectContentImage;
+
+ if (plugInType != ObjectContentNone)
+ return plugInType;
if (MIMETypeRegistry::isSupportedNonImageMIMEType(mimeType))
return ObjectContentFrame;
diff --git a/Source/WebKit/qt/WebCoreSupport/FrameLoaderClientQt.h b/Source/WebKit/qt/WebCoreSupport/FrameLoaderClientQt.h
index e5be421..3ec5f20 100644
--- a/Source/WebKit/qt/WebCoreSupport/FrameLoaderClientQt.h
+++ b/Source/WebKit/qt/WebCoreSupport/FrameLoaderClientQt.h
@@ -1,6 +1,6 @@
/*
* Copyright (C) 2006 Zack Rusin <zack@kde.org>
- * Copyright (C) 2006 Apple Computer, Inc. All rights reserved.
+ * Copyright (C) 2006, 2011 Apple Inc. All rights reserved.
* Copyright (C) 2008 Nokia Corporation and/or its subsidiary(-ies)
* Copyright (C) 2008 Collabora Ltd. All rights reserved.
*
@@ -211,7 +211,7 @@ public:
virtual PassRefPtr<Widget> createJavaAppletWidget(const IntSize&, HTMLAppletElement*, const KURL& baseURL, const Vector<String>& paramNames, const Vector<String>& paramValues);
- virtual ObjectContentType objectContentType(const KURL& url, const String& mimeType);
+ virtual ObjectContentType objectContentType(const KURL&, const String& mimeTypeIn, bool shouldPreferPlugInsForImages);
virtual String overrideMediaType() const;
virtual void dispatchDidClearWindowObjectInWorld(DOMWrapperWorld*);
@@ -239,6 +239,8 @@ public:
virtual PassRefPtr<FrameNetworkingContext> createNetworkingContext();
+ const KURL& lastRequestedUrl() const { return m_lastRequestedUrl; }
+
static bool dumpFrameLoaderCallbacks;
static bool dumpUserGestureInFrameLoaderCallbacks;
static bool dumpResourceLoadCallbacks;
@@ -253,6 +255,9 @@ public:
static bool dumpHistoryCallbacks;
static QMap<QString, QString> URLsToRedirect;
+private slots:
+ void onIconLoadedForPageURL(const QString&);
+
private:
Frame *m_frame;
QWebFrame *m_webFrame;
@@ -267,6 +272,7 @@ private:
// See finishedLoading().
bool m_hasRepresentation;
+ KURL m_lastRequestedUrl;
ResourceError m_loadError;
};
diff --git a/Source/WebKit/qt/WebCoreSupport/FullScreenVideoWidget.cpp b/Source/WebKit/qt/WebCoreSupport/FullScreenVideoWidget.cpp
index 4922cd7..bb5e2b9 100644
--- a/Source/WebKit/qt/WebCoreSupport/FullScreenVideoWidget.cpp
+++ b/Source/WebKit/qt/WebCoreSupport/FullScreenVideoWidget.cpp
@@ -66,6 +66,7 @@ void FullScreenVideoWidget::show(QMediaPlayer* player)
setMouseTracking(true);
raise();
m_mediaPlayer->setVideoOutput(this);
+ setFocus();
grabMouse();
hideCursor();
}
@@ -73,6 +74,7 @@ void FullScreenVideoWidget::show(QMediaPlayer* player)
void FullScreenVideoWidget::closeEvent(QCloseEvent* event)
{
m_mediaPlayer = 0;
+ m_cursorTimer.stop();
setMouseTracking(false);
releaseMouse();
QApplication::restoreOverrideCursor();
diff --git a/Source/WebKit/qt/WebCoreSupport/GeolocationClientQt.cpp b/Source/WebKit/qt/WebCoreSupport/GeolocationClientQt.cpp
index 68a2af5..3c382cf 100644
--- a/Source/WebKit/qt/WebCoreSupport/GeolocationClientQt.cpp
+++ b/Source/WebKit/qt/WebCoreSupport/GeolocationClientQt.cpp
@@ -82,12 +82,7 @@ void GeolocationClientQt::positionUpdated(const QGeoPositionInfo &geoPosition)
bool providesSpeed = geoPosition.hasAttribute(QGeoPositionInfo::GroundSpeed);
double speed = geoPosition.attribute(QGeoPositionInfo::GroundSpeed);
-#if QT_VERSION >= QT_VERSION_CHECK(4, 7, 0)
double timeStampInSeconds = geoPosition.timestamp().toMSecsSinceEpoch() / 1000;
-#else
- QDateTime datetime = geoPosition.timestamp();
- double timeStampInSeconds = (datetime.toTime_t() + datetime.time().msec()) / 1000;
-#endif
m_lastPosition = GeolocationPosition::create(timeStampInSeconds, latitude, longitude,
accuracy, providesAltitude, altitude,
@@ -140,3 +135,5 @@ void GeolocationClientQt::cancelPermissionRequest(Geolocation* geolocation)
}
} // namespace WebCore
+
+#include "moc_GeolocationClientQt.cpp"
diff --git a/Source/WebKit/qt/WebCoreSupport/IconDatabaseClientQt.cpp b/Source/WebKit/qt/WebCoreSupport/IconDatabaseClientQt.cpp
new file mode 100644
index 0000000..77b41db
--- /dev/null
+++ b/Source/WebKit/qt/WebCoreSupport/IconDatabaseClientQt.cpp
@@ -0,0 +1,83 @@
+/*
+ * Copyright (C) 2011 Andreas Kling <kling@webkit.org>
+ *
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE COMPUTER, INC. ``AS IS'' AND ANY
+ * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE COMPUTER, INC. OR
+ * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+ * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+ * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+ * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
+ * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include "config.h"
+#include "IconDatabaseClientQt.h"
+
+#include "FrameLoaderClientQt.h"
+#include "IconDatabaseBase.h"
+#include <wtf/text/CString.h>
+
+namespace WebCore {
+
+IconDatabaseClientQt* IconDatabaseClientQt::instance()
+{
+ static IconDatabaseClientQt* client = 0;
+ if (!client) {
+ client = new IconDatabaseClientQt;
+ iconDatabase().setClient(client);
+ }
+ return client;
+}
+
+IconDatabaseClientQt::IconDatabaseClientQt()
+{
+}
+
+IconDatabaseClientQt::~IconDatabaseClientQt()
+{
+}
+
+bool IconDatabaseClientQt::performImport()
+{
+ return true;
+}
+
+void IconDatabaseClientQt::didRemoveAllIcons()
+{
+}
+
+void IconDatabaseClientQt::didImportIconURLForPageURL(const String& url)
+{
+}
+
+void IconDatabaseClientQt::didImportIconDataForPageURL(const String& url)
+{
+ emit iconLoadedForPageURL(url);
+}
+
+void IconDatabaseClientQt::didChangeIconForPageURL(const String& url)
+{
+}
+
+void IconDatabaseClientQt::didFinishURLImport()
+{
+}
+
+}
+
+#include "moc_IconDatabaseClientQt.cpp"
diff --git a/Source/WebKit/qt/WebCoreSupport/IconDatabaseClientQt.h b/Source/WebKit/qt/WebCoreSupport/IconDatabaseClientQt.h
new file mode 100644
index 0000000..593fdd3
--- /dev/null
+++ b/Source/WebKit/qt/WebCoreSupport/IconDatabaseClientQt.h
@@ -0,0 +1,58 @@
+/*
+ * Copyright (C) 2011 Andreas Kling <kling@webkit.org>
+ *
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE COMPUTER, INC. ``AS IS'' AND ANY
+ * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE COMPUTER, INC. OR
+ * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+ * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+ * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+ * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
+ * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef IconDatabaseClientQt_h
+#define IconDatabaseClientQt_h
+
+#include "IconDatabaseClient.h"
+#include <QtCore/QObject>
+
+namespace WebCore {
+
+class IconDatabaseClientQt : public QObject, public IconDatabaseClient {
+ Q_OBJECT
+public:
+ static IconDatabaseClientQt* instance();
+
+ virtual bool performImport();
+ virtual void didRemoveAllIcons();
+ virtual void didImportIconURLForPageURL(const String&);
+ virtual void didImportIconDataForPageURL(const String&);
+ virtual void didChangeIconForPageURL(const String&);
+ virtual void didFinishURLImport();
+
+signals:
+ void iconLoadedForPageURL(const QString&);
+
+private:
+ IconDatabaseClientQt();
+ virtual ~IconDatabaseClientQt();
+};
+
+}
+
+#endif
diff --git a/Source/WebKit/qt/WebCoreSupport/InspectorClientQt.cpp b/Source/WebKit/qt/WebCoreSupport/InspectorClientQt.cpp
index 441add6..6b557db 100644
--- a/Source/WebKit/qt/WebCoreSupport/InspectorClientQt.cpp
+++ b/Source/WebKit/qt/WebCoreSupport/InspectorClientQt.cpp
@@ -140,7 +140,7 @@ public:
QVariant valueToStore = settingToVariant(value);
QString settingKey(settingStoragePrefix + QString(name));
qsettings.setValue(settingKey, valueToStore);
- qsettings.setValue(settingKey + settingStorageTypeSuffix, QVariant::typeToName(valueToStore.type()));
+ qsettings.setValue(settingKey + settingStorageTypeSuffix, QLatin1String(QVariant::typeToName(valueToStore.type())));
#endif // QT_NO_SETTINGS
}
@@ -174,22 +174,6 @@ private:
}
-#if USE(V8)
-static void ensureDebuggerScriptLoaded()
-{
- static bool scriptLoaded = false;
- if (scriptLoaded)
- return;
-
- QFile debuggerScriptFile(":/webkit/inspector/DebuggerScript.js");
- if (debuggerScriptFile.open(QIODevice::ReadOnly)) {
- QByteArray ba = debuggerScriptFile.readAll();
- ScriptDebugServer::shared().setDebuggerScriptSource(String(ba.constData(), ba.length()));
- scriptLoaded = true;
- }
-}
-#endif
-
InspectorClientQt::InspectorClientQt(QWebPage* page)
: m_inspectedWebPage(page)
, m_frontendWebPage(0)
@@ -218,10 +202,6 @@ void InspectorClientQt::inspectorDestroyed()
void InspectorClientQt::openInspectorFrontend(WebCore::InspectorController* inspectorController)
{
#if ENABLE(INSPECTOR)
-#if USE(V8)
- ensureDebuggerScriptLoaded();
-#endif
-
QWebView* inspectorView = new QWebView;
InspectorClientWebPage* inspectorPage = new InspectorClientWebPage(inspectorView);
inspectorView->setPage(inspectorPage);
@@ -240,7 +220,7 @@ void InspectorClientQt::openInspectorFrontend(WebCore::InspectorController* insp
inspectorUrl = inspector->property("_q_inspectorUrl").toUrl();
#endif
if (!inspectorUrl.isValid())
- inspectorUrl = QUrl("qrc:/webkit/inspector/inspector.html");
+ inspectorUrl = QUrl(QLatin1String("qrc:/webkit/inspector/inspector.html"));
#ifndef QT_NO_PROPERTIES
QVariant inspectorJavaScriptWindowObjects = inspector->property("_q_inspectorJavaScriptWindowObjects");
diff --git a/Source/WebKit/qt/WebCoreSupport/InspectorServerQt.cpp b/Source/WebKit/qt/WebCoreSupport/InspectorServerQt.cpp
index f83deb2..92b7d5c 100644
--- a/Source/WebKit/qt/WebCoreSupport/InspectorServerQt.cpp
+++ b/Source/WebKit/qt/WebCoreSupport/InspectorServerQt.cpp
@@ -73,11 +73,10 @@ static quint32 parseWebSocketChallengeNumber(QString field)
int numSpaces = 0;
for (int i = 0; i < field.size(); i++) {
QChar c = field[i];
- if (c == (QChar)' ') {
+ if (c == QLatin1Char(' '))
numSpaces++;
- } else if ((c >= (QChar)'0') && (c <= (QChar)'9')) {
- nString.append((QChar)c);
- }
+ else if ((c >= QLatin1Char('0')) && (c <= QLatin1Char('9')))
+ nString.append(c);
}
quint32 num = nString.toLong();
quint32 result = (numSpaces ? (num / numSpaces) : num);
@@ -195,7 +194,7 @@ void InspectorServerRequestHandlerQt::tcpReadyRead()
m_path = header.path();
m_contentType = header.contentType().toLatin1();
m_contentLength = header.contentLength();
- if (header.hasKey("Upgrade") && (header.value("Upgrade") == QLatin1String("WebSocket")))
+ if (header.hasKey(QLatin1String("Upgrade")) && (header.value(QLatin1String("Upgrade")) == QLatin1String("WebSocket")))
isWebSocket = true;
m_data.clear();
@@ -204,9 +203,9 @@ void InspectorServerRequestHandlerQt::tcpReadyRead()
}
if (m_endOfHeaders) {
- QStringList pathAndQuery = m_path.split("?");
+ QStringList pathAndQuery = m_path.split(QLatin1Char('?'));
m_path = pathAndQuery[0];
- QStringList words = m_path.split(QString::fromLatin1("/"));
+ QStringList words = m_path.split(QLatin1Char('/'));
if (isWebSocket) {
// switch to websocket-style WebSocketService messaging
@@ -216,18 +215,18 @@ void InspectorServerRequestHandlerQt::tcpReadyRead()
QByteArray key3 = m_tcpConnection->read(8);
- quint32 number1 = parseWebSocketChallengeNumber(header.value("Sec-WebSocket-Key1"));
- quint32 number2 = parseWebSocketChallengeNumber(header.value("Sec-WebSocket-Key2"));
+ quint32 number1 = parseWebSocketChallengeNumber(header.value(QLatin1String("Sec-WebSocket-Key1")));
+ quint32 number2 = parseWebSocketChallengeNumber(header.value(QLatin1String("Sec-WebSocket-Key2")));
char responseData[16];
generateWebSocketChallengeResponse(number1, number2, (unsigned char*)key3.data(), (unsigned char*)responseData);
QByteArray response(responseData, sizeof(responseData));
- QHttpResponseHeader responseHeader(101, "WebSocket Protocol Handshake", 1, 1);
- responseHeader.setValue("Upgrade", header.value("Upgrade"));
- responseHeader.setValue("Connection", header.value("Connection"));
- responseHeader.setValue("Sec-WebSocket-Origin", header.value("Origin"));
- responseHeader.setValue("Sec-WebSocket-Location", ("ws://" + header.value("Host") + m_path));
+ QHttpResponseHeader responseHeader(101, QLatin1String("WebSocket Protocol Handshake"), 1, 1);
+ responseHeader.setValue(QLatin1String("Upgrade"), header.value(QLatin1String("Upgrade")));
+ responseHeader.setValue(QLatin1String("Connection"), header.value(QLatin1String("Connection")));
+ responseHeader.setValue(QLatin1String("Sec-WebSocket-Origin"), header.value(QLatin1String("Origin")));
+ responseHeader.setValue(QLatin1String("Sec-WebSocket-Location"), (QLatin1String("ws://") + header.value(QLatin1String("Host")) + m_path));
responseHeader.setContentLength(response.size());
m_tcpConnection->write(responseHeader.toString().toLatin1());
m_tcpConnection->write(response);
@@ -259,19 +258,19 @@ void InspectorServerRequestHandlerQt::tcpReadyRead()
QString text = QString::fromLatin1("OK");
// If no path is specified, generate an index page.
- if ((m_path == "") || (m_path == "/")) {
- QString indexHtml = "<html><head><title>Remote Web Inspector</title></head><body><ul>\n";
+ if (m_path.isEmpty() || (m_path == QString(QLatin1Char('/')))) {
+ QString indexHtml = QLatin1String("<html><head><title>Remote Web Inspector</title></head><body><ul>\n");
for (QMap<int, InspectorClientQt* >::const_iterator it = m_server->m_inspectorClients.begin();
it != m_server->m_inspectorClients.end();
++it) {
- indexHtml.append(QString("<li><a href=\"/webkit/inspector/inspector.html?page=%1\">%2</li>\n")
+ indexHtml.append(QString::fromLatin1("<li><a href=\"/webkit/inspector/inspector.html?page=%1\">%2</li>\n")
.arg(it.key())
.arg(it.value()->m_inspectedWebPage->mainFrame()->url().toString()));
}
- indexHtml.append("</ul></body></html>");
+ indexHtml.append(QLatin1String("</ul></body></html>"));
response = indexHtml.toLatin1();
} else {
- QString path = QString(":%1").arg(m_path);
+ QString path = QString::fromLatin1(":%1").arg(m_path);
QFile file(path);
// It seems that there should be an enum or define for these status codes somewhere in Qt or WebKit,
// but grep fails to turn one up.
diff --git a/Source/WebKit/qt/WebCoreSupport/PopupMenuQt.cpp b/Source/WebKit/qt/WebCoreSupport/PopupMenuQt.cpp
index f7c4edc..b662f5c 100644
--- a/Source/WebKit/qt/WebCoreSupport/PopupMenuQt.cpp
+++ b/Source/WebKit/qt/WebCoreSupport/PopupMenuQt.cpp
@@ -44,6 +44,10 @@ public:
virtual int itemCount() const { return d ? d->listSize() : 0; }
virtual bool itemIsSelected(int idx) const { return d ? d->itemIsSelected(idx) : false; }
virtual bool multiple() const;
+ virtual QColor backgroundColor() const { return d ? QColor(d->menuStyle().backgroundColor()) : QColor(); }
+ virtual QColor foregroundColor() const { return d ? QColor(d->menuStyle().foregroundColor()) : QColor(); }
+ virtual QColor itemBackgroundColor(int idx) const { return d ? QColor(d->itemStyle(idx).backgroundColor()) : QColor(); }
+ virtual QColor itemForegroundColor(int idx) const { return d ? QColor(d->itemStyle(idx).foregroundColor()) : QColor(); }
private:
WebCore::PopupMenuClient*& d;
@@ -157,4 +161,6 @@ void PopupMenuQt::selectItem(int index, bool ctrl, bool shift)
}
+#include "moc_PopupMenuQt.cpp"
+
// vim: ts=4 sw=4 et
diff --git a/Source/WebKit/qt/WebCoreSupport/QtFallbackWebPopup.cpp b/Source/WebKit/qt/WebCoreSupport/QtFallbackWebPopup.cpp
index afa6492..5e641de 100644
--- a/Source/WebKit/qt/WebCoreSupport/QtFallbackWebPopup.cpp
+++ b/Source/WebKit/qt/WebCoreSupport/QtFallbackWebPopup.cpp
@@ -124,6 +124,17 @@ void QtFallbackWebPopup::show(const QWebSelectData& data)
populate(data);
+ QColor backgroundColor = data.backgroundColor();
+ QColor foregroundColor = data.foregroundColor();
+
+ QPalette palette = m_combo->palette();
+ if (backgroundColor.isValid())
+ palette.setColor(QPalette::Background, backgroundColor);
+ if (foregroundColor.isValid())
+ palette.setColor(QPalette::Foreground, foregroundColor);
+ m_combo->setPalette(palette);
+
+
QRect rect = geometry();
if (QGraphicsWebView *webView = qobject_cast<QGraphicsWebView*>(pageClient()->pluginParent())) {
QGraphicsProxyWidget* proxy = new QGraphicsProxyWidget(webView);
@@ -235,6 +246,8 @@ void QtFallbackWebPopup::populate(const QWebSelectData& data)
#ifndef QT_NO_TOOLTIP
model->item(i)->setToolTip(data.itemToolTip(i));
#endif
+ model->item(i)->setBackground(data.itemBackgroundColor(i));
+ model->item(i)->setForeground(data.itemForegroundColor(i));
if (data.itemIsSelected(i))
currentIndex = i;
break;
diff --git a/Source/WebKit/qt/WebCoreSupport/WebPlatformStrategies.cpp b/Source/WebKit/qt/WebCoreSupport/WebPlatformStrategies.cpp
index fffb564..182fe38 100644
--- a/Source/WebKit/qt/WebCoreSupport/WebPlatformStrategies.cpp
+++ b/Source/WebKit/qt/WebCoreSupport/WebPlatformStrategies.cpp
@@ -332,7 +332,7 @@ String WebPlatformStrategies::contextMenuItemTagSearchWeb()
return QCoreApplication::translate("QWebPage", "Search The Web", "Search The Web context menu item");
}
-String WebPlatformStrategies::contextMenuItemTagLookUpInDictionary()
+String WebPlatformStrategies::contextMenuItemTagLookUpInDictionary(const String&)
{
return QCoreApplication::translate("QWebPage", "Look Up In Dictionary", "Look Up in Dictionary context menu item");
}
diff --git a/Source/WebKit/qt/WebCoreSupport/WebPlatformStrategies.h b/Source/WebKit/qt/WebCoreSupport/WebPlatformStrategies.h
index fbcfd16..b74af39 100644
--- a/Source/WebKit/qt/WebCoreSupport/WebPlatformStrategies.h
+++ b/Source/WebKit/qt/WebCoreSupport/WebPlatformStrategies.h
@@ -86,7 +86,7 @@ private:
virtual WTF::String contextMenuItemTagIgnoreSpelling();
virtual WTF::String contextMenuItemTagLearnSpelling();
virtual WTF::String contextMenuItemTagSearchWeb();
- virtual WTF::String contextMenuItemTagLookUpInDictionary();
+ virtual WTF::String contextMenuItemTagLookUpInDictionary(const String&);
virtual WTF::String contextMenuItemTagOpenLink();
virtual WTF::String contextMenuItemTagIgnoreGrammar();
virtual WTF::String contextMenuItemTagSpellingMenu();
diff --git a/Source/WebKit/qt/declarative/plugin.cpp b/Source/WebKit/qt/declarative/plugin.cpp
index f1f165e..49af415 100644
--- a/Source/WebKit/qt/declarative/plugin.cpp
+++ b/Source/WebKit/qt/declarative/plugin.cpp
@@ -32,6 +32,11 @@ public:
Q_ASSERT(QLatin1String(uri) == QLatin1String("QtWebKit"));
qmlRegisterType<QDeclarativeWebSettings>();
qmlRegisterType<QDeclarativeWebView>(uri, 1, 0, "WebView");
+#if QT_VERSION >= 0x040703
+ qmlRegisterType<QDeclarativeWebView>(uri, 1, 1, "WebView");
+ qmlRegisterRevision<QDeclarativeWebView, 0>("QtWebKit", 1, 0);
+ qmlRegisterRevision<QDeclarativeWebView, 1>("QtWebKit", 1, 1);
+#endif
}
};
diff --git a/Source/WebKit/qt/declarative/qdeclarativewebview.cpp b/Source/WebKit/qt/declarative/qdeclarativewebview.cpp
index 9313d6c..83645aa 100644
--- a/Source/WebKit/qt/declarative/qdeclarativewebview.cpp
+++ b/Source/WebKit/qt/declarative/qdeclarativewebview.cpp
@@ -517,13 +517,12 @@ void QDeclarativeWebView::geometryChanged(const QRectF& newGeometry, const QRect
}
}
- html: "<script>console.log(\"This is in WebKit!\"); window.qml.qmlCall();</script>"
+ html: "<script>window.qml.qmlCall();</script>"
}
\endqml
The output of the example will be:
\code
- This is in WebKit!
This call is in QML!
\endcode
@@ -772,7 +771,6 @@ void QDeclarativeWebView::setPage(QWebPage* page)
page->mainFrame()->setScrollBarPolicy(Qt::Vertical, Qt::ScrollBarAlwaysOff);
connect(page->mainFrame(), SIGNAL(urlChanged(QUrl)), this, SLOT(pageUrlChanged()));
connect(page->mainFrame(), SIGNAL(titleChanged(QString)), this, SIGNAL(titleChanged(QString)));
- connect(page->mainFrame(), SIGNAL(titleChanged(QString)), this, SIGNAL(iconChanged()));
connect(page->mainFrame(), SIGNAL(iconChanged()), this, SIGNAL(iconChanged()));
connect(page->mainFrame(), SIGNAL(initialLayoutCompleted()), this, SLOT(initialLayout()));
connect(page->mainFrame(), SIGNAL(contentsSizeChanged(QSize)), this, SIGNAL(contentsSizeChanged(QSize)));
@@ -983,6 +981,29 @@ void QDeclarativeWebView::setContentsScale(qreal scale)
emit contentsScaleChanged();
}
+#if QT_VERSION >= 0x040703
+/*!
+ \qmlproperty color WebView::backgroundColor
+ \since QtWebKit 1.1
+ This property holds the background color of the view.
+*/
+
+QColor QDeclarativeWebView::backgroundColor() const
+{
+ return d->view->palette().base().color();
+}
+
+void QDeclarativeWebView::setBackgroundColor(const QColor& color)
+{
+ QPalette palette = d->view->palette();
+ if (palette.base().color() == color)
+ return;
+ palette.setBrush(QPalette::Base, color);
+ d->view->setPalette(palette);
+ emit backgroundColorChanged();
+}
+#endif
+
/*!
Returns the area of the largest element at position (\a x,\a y) that is no larger
than \a maxWidth by \a maxHeight pixels.
diff --git a/Source/WebKit/qt/declarative/qdeclarativewebview_p.h b/Source/WebKit/qt/declarative/qdeclarativewebview_p.h
index ca15a1e..05f35f6 100644
--- a/Source/WebKit/qt/declarative/qdeclarativewebview_p.h
+++ b/Source/WebKit/qt/declarative/qdeclarativewebview_p.h
@@ -123,6 +123,9 @@ class QDeclarativeWebView : public QDeclarativeItem {
Q_PROPERTY(QSize contentsSize READ contentsSize NOTIFY contentsSizeChanged)
Q_PROPERTY(qreal contentsScale READ contentsScale WRITE setContentsScale NOTIFY contentsScaleChanged)
+#if QT_VERSION >= 0x040703
+ Q_PROPERTY(QColor backgroundColor READ backgroundColor WRITE setBackgroundColor NOTIFY backgroundColorChanged REVISION 1)
+#endif
public:
QDeclarativeWebView(QDeclarativeItem *parent = 0);
@@ -193,6 +196,11 @@ public:
void setContentsScale(qreal scale);
qreal contentsScale() const;
+#if QT_VERSION >= 0x040703
+ Q_REVISION(1) QColor backgroundColor() const;
+ Q_REVISION(1) void setBackgroundColor(const QColor&);
+#endif
+
Q_SIGNALS:
void preferredWidthChanged();
void preferredHeightChanged();
@@ -209,6 +217,9 @@ Q_SIGNALS:
void renderingEnabledChanged();
void contentsSizeChanged(const QSize&);
void contentsScaleChanged();
+#if QT_VERSION >= 0x040703
+ void backgroundColorChanged();
+#endif
void loadStarted();
void loadFinished();
diff --git a/Source/WebKit/qt/tests/benchmarks/webgl/10000_triangles.html b/Source/WebKit/qt/tests/benchmarks/webgl/10000_triangles.html
new file mode 100644
index 0000000..fd061aa
--- /dev/null
+++ b/Source/WebKit/qt/tests/benchmarks/webgl/10000_triangles.html
@@ -0,0 +1,59 @@
+<html>
+ <body style="margin: 0">
+ <canvas width="1000" height="1000"></canvas>
+ </body>
+</html>
+<script>
+ var canvas = document.getElementsByTagName("canvas")[0];
+ gl = canvas.getContext("experimental-webgl");
+ gl.clearColor(0.0, 1.0, 0.0, 1.0);
+ gl.viewport(0, 0, canvas.width, canvas.height);
+
+ var vertexShader = gl.createShader(gl.VERTEX_SHADER);
+ gl.shaderSource(vertexShader, "attribute vec4 vPosition;\nvoid main() { gl_Position = vPosition; }");
+ gl.compileShader(vertexShader);
+
+ var fragmentShader = gl.createShader(gl.FRAGMENT_SHADER);
+ gl.shaderSource(fragmentShader, "void main() { gl_FragColor = vec4(1.0, 0.0, 0.0, 1.0); }");
+ gl.compileShader(fragmentShader);
+
+ var shaderProgram = gl.createProgram();
+ gl.attachShader(shaderProgram, vertexShader);
+ gl.attachShader(shaderProgram, fragmentShader);
+ gl.bindAttribLocation(shaderProgram, 0, "vPosition");
+ gl.linkProgram(shaderProgram);
+
+ gl.useProgram(shaderProgram);
+
+ var buffer = gl.createBuffer();
+ gl.bindBuffer(gl.ARRAY_BUFFER, buffer);
+
+ var vertices = [];
+ var seedX = -1.0;
+ var seedY = 1.0;
+ for (var i = 1; i <= 10000; ++i) {
+ vertices.push(seedX);
+ vertices.push(seedY);
+ vertices.push(0);
+ seedX += 0.01;
+ vertices.push(seedX);
+ vertices.push(seedY - 0.02);
+ vertices.push(0);
+ seedX += 0.01;
+ vertices.push(seedX);
+ vertices.push(seedY);
+ vertices.push(0);
+ if (!(i % 100)) {
+ seedX = -1.0;
+ seedY -= 0.02;
+ }
+ }
+ gl.bufferData(gl.ARRAY_BUFFER, new Float32Array(vertices), gl.STATIC_DRAW);
+
+
+ gl.vertexAttribPointer(0, 3, gl.FLOAT, false, 0, 0);
+ gl.enableVertexAttribArray(0);
+ gl.clear(gl.COLOR_BUFFER_BIT);
+ gl.drawArrays(gl.TRIANGLES, 0, 30000);
+ gl.flush();
+</script>
diff --git a/Source/WebKit/qt/tests/benchmarks/webgl/tst_webgl.cpp b/Source/WebKit/qt/tests/benchmarks/webgl/tst_webgl.cpp
new file mode 100644
index 0000000..bd865a2
--- /dev/null
+++ b/Source/WebKit/qt/tests/benchmarks/webgl/tst_webgl.cpp
@@ -0,0 +1,130 @@
+/*
+ Copyright (C) 2011 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 "../../util.h"
+#include <QGLWidget>
+#include <QGraphicsView>
+#include <QGraphicsWebView>
+#include <QScopedPointer>
+#include <QWebFrame>
+#include <QtTest/QtTest>
+
+class GraphicsView;
+
+class tst_WebGlPerformance : public QObject {
+ Q_OBJECT
+
+private slots:
+ void init();
+ void cleanup();
+
+ void benchSoftwareFallbackRgb16();
+ void benchSoftwareFallbackRgb32();
+ void benchSoftwareFallbackArgb32();
+ void benchSoftwareFallbackArgb32Premultiplied();
+
+private:
+ void benchmarkFrameRenderingOnImage(QImage::Format);
+
+ QScopedPointer<GraphicsView> m_view;
+};
+
+class GraphicsView : public QGraphicsView {
+public:
+ GraphicsView();
+ QGraphicsWebView* m_webView;
+
+protected:
+ void resizeEvent(QResizeEvent*);
+};
+
+GraphicsView::GraphicsView()
+{
+ QGraphicsScene* const scene = new QGraphicsScene(this);
+ setScene(scene);
+
+ m_webView = new QGraphicsWebView;
+ scene->addItem(m_webView);
+
+ m_webView->page()->settings()->setAttribute(QWebSettings::WebGLEnabled, true);
+
+ resize(800, 600);
+ setFrameShape(QFrame::NoFrame);
+ setViewport(new QGLWidget);
+}
+
+void GraphicsView::resizeEvent(QResizeEvent* event)
+{
+ QGraphicsView::resizeEvent(event);
+ QRectF rect(QPoint(0, 0), event->size());
+ m_webView->setGeometry(rect);
+ scene()->setSceneRect(rect);
+}
+
+void tst_WebGlPerformance::init()
+{
+ m_view.reset(new GraphicsView);
+ m_view->showMaximized();
+ QTest::qWaitForWindowShown(m_view.data());
+}
+
+void tst_WebGlPerformance::cleanup()
+{
+ m_view.reset();
+}
+
+void tst_WebGlPerformance::benchSoftwareFallbackRgb16()
+{
+ benchmarkFrameRenderingOnImage(QImage::Format_RGB16);
+}
+
+void tst_WebGlPerformance::benchSoftwareFallbackRgb32()
+{
+ benchmarkFrameRenderingOnImage(QImage::Format_RGB32);
+}
+
+void tst_WebGlPerformance::benchSoftwareFallbackArgb32()
+{
+ benchmarkFrameRenderingOnImage(QImage::Format_ARGB32);
+}
+
+void tst_WebGlPerformance::benchSoftwareFallbackArgb32Premultiplied()
+{
+ benchmarkFrameRenderingOnImage(QImage::Format_ARGB32_Premultiplied);
+}
+
+void tst_WebGlPerformance::benchmarkFrameRenderingOnImage(QImage::Format format)
+{
+ m_view->m_webView->load(QUrl(QLatin1String("qrc:///testcases/10000_triangles.html")));
+ const bool pageLoaded = waitForSignal(m_view->m_webView, SIGNAL(loadFinished(bool)));
+ Q_ASSERT(pageLoaded);
+ Q_UNUSED(pageLoaded);
+
+ QImage target(m_view->size(), format);
+ QBENCHMARK {
+ QPainter painter(&target);
+ m_view->render(&painter);
+ painter.end();
+ }
+}
+
+QTEST_MAIN(tst_WebGlPerformance)
+
+#include "tst_webgl.moc"
diff --git a/Source/WebKit/qt/tests/benchmarks/webgl/tst_webgl.qrc b/Source/WebKit/qt/tests/benchmarks/webgl/tst_webgl.qrc
new file mode 100644
index 0000000..b849448
--- /dev/null
+++ b/Source/WebKit/qt/tests/benchmarks/webgl/tst_webgl.qrc
@@ -0,0 +1,5 @@
+<RCC>
+ <qresource prefix="/testcases">
+ <file>10000_triangles.html</file>
+ </qresource>
+</RCC>
diff --git a/Source/WebKit/qt/tests/benchmarks/webgl/webgl.pro b/Source/WebKit/qt/tests/benchmarks/webgl/webgl.pro
new file mode 100644
index 0000000..fb21bc8
--- /dev/null
+++ b/Source/WebKit/qt/tests/benchmarks/webgl/webgl.pro
@@ -0,0 +1,4 @@
+isEmpty(OUTPUT_DIR): OUTPUT_DIR = ../../../../..
+include(../../tests.pri)
+exists($${TARGET}.qrc):RESOURCES += $${TARGET}.qrc
+QT += opengl
diff --git a/Source/WebKit/qt/tests/qdeclarativewebview/resources/webviewbackgroundcolor.qml b/Source/WebKit/qt/tests/qdeclarativewebview/resources/webviewbackgroundcolor.qml
new file mode 100644
index 0000000..2edc794
--- /dev/null
+++ b/Source/WebKit/qt/tests/qdeclarativewebview/resources/webviewbackgroundcolor.qml
@@ -0,0 +1,10 @@
+import Qt 4.7
+import QtWebKit 1.1
+
+WebView {
+ id: myweb
+ height: 300
+ width: 300
+ focus: true
+ backgroundColor : "red"
+}
diff --git a/Source/WebKit/qt/tests/qdeclarativewebview/tst_qdeclarativewebview.cpp b/Source/WebKit/qt/tests/qdeclarativewebview/tst_qdeclarativewebview.cpp
index 0025d6c..8fcab71 100644
--- a/Source/WebKit/qt/tests/qdeclarativewebview/tst_qdeclarativewebview.cpp
+++ b/Source/WebKit/qt/tests/qdeclarativewebview/tst_qdeclarativewebview.cpp
@@ -1,4 +1,5 @@
#include "../util.h"
+#include <QColor>
#include <QDebug>
#include <QDeclarativeComponent>
#include <QDeclarativeEngine>
@@ -22,6 +23,9 @@ private slots:
void preferredHeightTest();
void preferredWidthDefaultTest();
void preferredHeightDefaultTest();
+#if QT_VERSION >= 0x040703
+ void backgroundColor();
+#endif
private:
void checkNoErrors(const QDeclarativeComponent&);
@@ -82,6 +86,36 @@ void tst_QDeclarativeWebView::preferredHeightDefaultTest()
QCOMPARE(wv->property("prefHeight").toDouble(), view.preferredHeight());
}
+#if QT_VERSION >= 0x040703
+void tst_QDeclarativeWebView::backgroundColor()
+{
+ // We test here the rendering of the background.
+ QDeclarativeEngine engine;
+ QDeclarativeComponent component(&engine, QUrl("qrc:///resources/webviewbackgroundcolor.qml"));
+ checkNoErrors(component);
+ QObject* wv = component.create();
+ QVERIFY(wv);
+ QCOMPARE(wv->property("backgroundColor").value<QColor>(), QColor(Qt::red));
+ QDeclarativeView view;
+ view.setSource(QUrl("qrc:///resources/webviewbackgroundcolor.qml"));
+ view.show();
+ QTest::qWaitForWindowShown(&view);
+ QPixmap result(view.width(), view.height());
+ QPainter painter(&result);
+ view.render(&painter);
+ QPixmap reference(view.width(), view.height());
+ reference.fill(Qt::red);
+ QCOMPARE(reference, result);
+
+ // We test the emission of the backgroundColorChanged signal.
+ QSignalSpy spyColorChanged(wv, SIGNAL(backgroundColorChanged()));
+ wv->setProperty("backgroundColor", Qt::red);
+ QCOMPARE(spyColorChanged.count(), 0);
+ wv->setProperty("backgroundColor", Qt::green);
+ QCOMPARE(spyColorChanged.count(), 1);
+}
+#endif
+
void tst_QDeclarativeWebView::checkNoErrors(const QDeclarativeComponent& component)
{
// Wait until the component is ready
diff --git a/Source/WebKit/qt/tests/qdeclarativewebview/tst_qdeclarativewebview.qrc b/Source/WebKit/qt/tests/qdeclarativewebview/tst_qdeclarativewebview.qrc
index 9c27409..e14c333 100644
--- a/Source/WebKit/qt/tests/qdeclarativewebview/tst_qdeclarativewebview.qrc
+++ b/Source/WebKit/qt/tests/qdeclarativewebview/tst_qdeclarativewebview.qrc
@@ -3,5 +3,6 @@
<file>resources/webviewtestdefault.qml</file>
<file>resources/webviewtest.qml</file>
<file>resources/sample.html</file>
+ <file>resources/webviewbackgroundcolor.qml</file>
</qresource>
</RCC>
diff --git a/Source/WebKit/qt/tests/qgraphicswebview/qgraphicswebview.pro b/Source/WebKit/qt/tests/qgraphicswebview/qgraphicswebview.pro
index e915d60..e5494ae 100644
--- a/Source/WebKit/qt/tests/qgraphicswebview/qgraphicswebview.pro
+++ b/Source/WebKit/qt/tests/qgraphicswebview/qgraphicswebview.pro
@@ -1,3 +1,6 @@
isEmpty(OUTPUT_DIR): OUTPUT_DIR = ../../../..
include(../tests.pri)
exists($${TARGET}.qrc):RESOURCES += $${TARGET}.qrc
+contains(DEFINES, ENABLE_WEBGL=1) {
+ QT += opengl
+}
diff --git a/Source/WebKit/qt/tests/qgraphicswebview/resources/pointing_right.html b/Source/WebKit/qt/tests/qgraphicswebview/resources/pointing_right.html
new file mode 100644
index 0000000..bc592fb
--- /dev/null
+++ b/Source/WebKit/qt/tests/qgraphicswebview/resources/pointing_right.html
@@ -0,0 +1,45 @@
+<html>
+ <body style="margin: 0">
+ <canvas width="100" height="100"></canvas>
+ </body>
+</html>
+<script>
+ var canvas = document.getElementsByTagName("canvas")[0];
+ gl = canvas.getContext("experimental-webgl");
+ gl.clearColor(0.0, 1.0, 0.0, 1.0);
+ gl.viewport(0, 0, canvas.width, canvas.height);
+
+ var vertexShader = gl.createShader(gl.VERTEX_SHADER);
+ gl.shaderSource(vertexShader, "attribute vec4 vPosition;\nvoid main() { gl_Position = vPosition; }");
+ gl.compileShader(vertexShader);
+
+ var fragmentShader = gl.createShader(gl.FRAGMENT_SHADER);
+ gl.shaderSource(fragmentShader, "void main() { gl_FragColor = vec4(1.0, 0.0, 0.0, 1.0); }");
+ gl.compileShader(fragmentShader);
+
+ var shaderProgram = gl.createProgram();
+ gl.attachShader(shaderProgram, vertexShader);
+ gl.attachShader(shaderProgram, fragmentShader);
+ gl.bindAttribLocation(shaderProgram, 0, "vPosition");
+ gl.linkProgram(shaderProgram);
+
+ gl.useProgram(shaderProgram);
+
+ var buffer = gl.createBuffer();
+ gl.bindBuffer(gl.ARRAY_BUFFER, buffer);
+
+ var vertices = [-1.0, -1.0,
+ 0.0, 0.0,
+ -1.0, 1.0];
+ var seedX = -1.0;
+ var seedY = 1.0;
+ vertices
+ gl.bufferData(gl.ARRAY_BUFFER, new Float32Array(vertices), gl.STATIC_DRAW);
+
+
+ gl.vertexAttribPointer(0, 2, gl.FLOAT, false, 0, 0);
+ gl.enableVertexAttribArray(0);
+ gl.clear(gl.COLOR_BUFFER_BIT);
+ gl.drawArrays(gl.TRIANGLES, 0, 3);
+ gl.flush();
+</script>
diff --git a/Source/WebKit/qt/tests/qgraphicswebview/resources/pointing_up.html b/Source/WebKit/qt/tests/qgraphicswebview/resources/pointing_up.html
new file mode 100644
index 0000000..474a56d
--- /dev/null
+++ b/Source/WebKit/qt/tests/qgraphicswebview/resources/pointing_up.html
@@ -0,0 +1,46 @@
+<html>
+ <body style="margin: 0">
+ <canvas width="100" height="100"></canvas>
+ </body>
+</html>
+<script>
+ var canvas = document.getElementsByTagName("canvas")[0];
+ gl = canvas.getContext("experimental-webgl");
+ gl.clearColor(0.0, 1.0, 0.0, 1.0);
+ gl.viewport(0, 0, canvas.width, canvas.height);
+
+ var vertexShader = gl.createShader(gl.VERTEX_SHADER);
+ gl.shaderSource(vertexShader, "attribute vec4 vPosition;\nvoid main() { gl_Position = vPosition; }");
+ gl.compileShader(vertexShader);
+
+ var fragmentShader = gl.createShader(gl.FRAGMENT_SHADER);
+ gl.shaderSource(fragmentShader, "void main() { gl_FragColor = vec4(1.0, 0.0, 0.0, 1.0); }");
+ gl.compileShader(fragmentShader);
+
+ var shaderProgram = gl.createProgram();
+ gl.attachShader(shaderProgram, vertexShader);
+ gl.attachShader(shaderProgram, fragmentShader);
+ gl.bindAttribLocation(shaderProgram, 0, "vPosition");
+ gl.linkProgram(shaderProgram);
+
+ gl.useProgram(shaderProgram);
+
+ var buffer = gl.createBuffer();
+ gl.bindBuffer(gl.ARRAY_BUFFER, buffer);
+
+ var vertices = [-1.0, -1.0,
+ 0.0, 0.0,
+ 1.0, -1.0];
+ var seedX = -1.0;
+ var seedY = 1.0;
+ vertices
+ gl.bufferData(gl.ARRAY_BUFFER, new Float32Array(vertices), gl.STATIC_DRAW);
+
+
+ gl.vertexAttribPointer(0, 2, gl.FLOAT, false, 0, 0);
+ gl.enableVertexAttribArray(0);
+ gl.clear(gl.COLOR_BUFFER_BIT);
+ gl.drawArrays(gl.TRIANGLES, 0, 3);
+ gl.flush();
+ gl.finish();
+</script>
diff --git a/Source/WebKit/qt/tests/qgraphicswebview/tst_qgraphicswebview.cpp b/Source/WebKit/qt/tests/qgraphicswebview/tst_qgraphicswebview.cpp
index f8a4359..7cc88db 100644
--- a/Source/WebKit/qt/tests/qgraphicswebview/tst_qgraphicswebview.cpp
+++ b/Source/WebKit/qt/tests/qgraphicswebview/tst_qgraphicswebview.cpp
@@ -25,6 +25,10 @@
#include <qwebpage.h>
#include <qwebframe.h>
+#if defined(ENABLE_WEBGL) && ENABLE_WEBGL
+#include <QGLWidget>
+#endif
+
class tst_QGraphicsWebView : public QObject
{
Q_OBJECT
@@ -38,6 +42,15 @@ private slots:
void widgetsRenderingThroughCache();
void setPalette_data();
void setPalette();
+ void renderHints();
+
+#if defined(ENABLE_WEBGL) && ENABLE_WEBGL
+ void webglSoftwareFallbackVerticalOrientation();
+ void webglSoftwareFallbackHorizontalOrientation();
+
+private:
+ void compareCanvasToImage(const QUrl&, const QImage&);
+#endif
};
void tst_QGraphicsWebView::qgraphicswebview()
@@ -191,9 +204,9 @@ void tst_QGraphicsWebView::microFocusCoordinates()
page->mainFrame()->setHtml("<html><body>" \
"<input type='text' id='input1' style='font--family: serif' value='' maxlength='20'/><br>" \
- "<canvas id='canvas1' width='500' height='500'/>" \
+ "<canvas id='canvas1' width='500' height='500'></canvas>" \
"<input type='password'/><br>" \
- "<canvas id='canvas2' width='500' height='500'/>" \
+ "<canvas id='canvas2' width='500' height='500'></canvas>" \
"</body></html>");
page->mainFrame()->setFocus();
@@ -409,6 +422,146 @@ void tst_QGraphicsWebView::setPalette()
QVERIFY(img1 != img2);
}
+void tst_QGraphicsWebView::renderHints()
+{
+ QGraphicsWebView webView;
+
+ // default is only text antialiasing + smooth pixmap transform
+ QVERIFY(!(webView.renderHints() & QPainter::Antialiasing));
+ QVERIFY(webView.renderHints() & QPainter::TextAntialiasing);
+ QVERIFY(webView.renderHints() & QPainter::SmoothPixmapTransform);
+ QVERIFY(!(webView.renderHints() & QPainter::HighQualityAntialiasing));
+
+ webView.setRenderHint(QPainter::Antialiasing, true);
+ QVERIFY(webView.renderHints() & QPainter::Antialiasing);
+ QVERIFY(webView.renderHints() & QPainter::TextAntialiasing);
+ QVERIFY(webView.renderHints() & QPainter::SmoothPixmapTransform);
+ QVERIFY(!(webView.renderHints() & QPainter::HighQualityAntialiasing));
+
+ webView.setRenderHint(QPainter::Antialiasing, false);
+ QVERIFY(!(webView.renderHints() & QPainter::Antialiasing));
+ QVERIFY(webView.renderHints() & QPainter::TextAntialiasing);
+ QVERIFY(webView.renderHints() & QPainter::SmoothPixmapTransform);
+ QVERIFY(!(webView.renderHints() & QPainter::HighQualityAntialiasing));
+
+ webView.setRenderHint(QPainter::SmoothPixmapTransform, true);
+ QVERIFY(!(webView.renderHints() & QPainter::Antialiasing));
+ QVERIFY(webView.renderHints() & QPainter::TextAntialiasing);
+ QVERIFY(webView.renderHints() & QPainter::SmoothPixmapTransform);
+ QVERIFY(!(webView.renderHints() & QPainter::HighQualityAntialiasing));
+
+ webView.setRenderHint(QPainter::SmoothPixmapTransform, false);
+ QVERIFY(webView.renderHints() & QPainter::TextAntialiasing);
+ QVERIFY(!(webView.renderHints() & QPainter::SmoothPixmapTransform));
+ QVERIFY(!(webView.renderHints() & QPainter::HighQualityAntialiasing));
+}
+
+class GraphicsView : public QGraphicsView {
+public:
+ GraphicsView();
+ QGraphicsWebView* m_webView;
+};
+
+#if defined(ENABLE_WEBGL) && ENABLE_WEBGL
+bool compareImagesFuzzyPixelCount(const QImage& image1, const QImage& image2, qreal tolerance = 0.05)
+{
+ if (image1.size() != image2.size())
+ return false;
+
+ unsigned diffPixelCount = 0;
+ for (int row = 0; row < image1.size().width(); ++row) {
+ for (int column = 0; column < image1.size().height(); ++column)
+ if (image1.pixel(row, column) != image2.pixel(row, column))
+ ++diffPixelCount;
+ }
+
+ if (diffPixelCount > (image1.size().width() * image1.size().height()) * tolerance)
+ return false;
+
+ return true;
+}
+
+GraphicsView::GraphicsView()
+{
+ QGraphicsScene* const scene = new QGraphicsScene(this);
+ setScene(scene);
+
+ m_webView = new QGraphicsWebView;
+ scene->addItem(m_webView);
+
+ m_webView->page()->settings()->setAttribute(QWebSettings::WebGLEnabled, true);
+ m_webView->setResizesToContents(true);
+
+ setFrameShape(QFrame::NoFrame);
+ setViewport(new QGLWidget);
+}
+
+void tst_QGraphicsWebView::webglSoftwareFallbackVerticalOrientation()
+{
+ QSize canvasSize(100, 100);
+ QImage reference(canvasSize, QImage::Format_ARGB32);
+ reference.fill(0xFF00FF00);
+ { // Reference.
+ QPainter painter(&reference);
+ QPolygonF triangleUp;
+ triangleUp << QPointF(0, canvasSize.height())
+ << QPointF(canvasSize.width(), canvasSize.height())
+ << QPointF(canvasSize.width() / 2.0, canvasSize.height() / 2.0);
+ painter.setPen(Qt::NoPen);
+ painter.setBrush(Qt::red);
+ painter.drawPolygon(triangleUp);
+ }
+
+ compareCanvasToImage(QUrl(QLatin1String("qrc:///resources/pointing_up.html")), reference);
+}
+
+void tst_QGraphicsWebView::webglSoftwareFallbackHorizontalOrientation()
+{
+ QSize canvasSize(100, 100);
+ QImage reference(canvasSize, QImage::Format_ARGB32);
+ reference.fill(0xFF00FF00);
+ { // Reference.
+ QPainter painter(&reference);
+ QPolygonF triangleUp;
+ triangleUp << QPointF(0, 0)
+ << QPointF(0, canvasSize.height())
+ << QPointF(canvasSize.width() / 2.0, canvasSize.height() / 2.0);
+ painter.setPen(Qt::NoPen);
+ painter.setBrush(Qt::red);
+ painter.drawPolygon(triangleUp);
+ }
+
+ compareCanvasToImage(QUrl(QLatin1String("qrc:///resources/pointing_right.html")), reference);
+}
+
+void tst_QGraphicsWebView::compareCanvasToImage(const QUrl& url, const QImage& reference)
+{
+ GraphicsView view;
+ view.show();
+ QTest::qWaitForWindowShown(&view);
+
+ QGraphicsWebView* const graphicsWebView = view.m_webView;
+ graphicsWebView->load(url);
+ QVERIFY(waitForSignal(graphicsWebView, SIGNAL(loadFinished(bool))));
+ { // Force a render, to create the accelerated compositing tree.
+ QPixmap pixmap(view.size());
+ QPainter painter(&pixmap);
+ view.render(&painter);
+ }
+ QApplication::syncX();
+
+ const QSize imageSize = reference.size();
+
+ QImage target(imageSize, QImage::Format_ARGB32);
+ { // Web page content.
+ QPainter painter(&target);
+ QRectF renderRect(0, 0, imageSize.width(), imageSize.height());
+ view.scene()->render(&painter, renderRect, renderRect);
+ }
+ QVERIFY(compareImagesFuzzyPixelCount(target, reference, 0.01));
+}
+#endif
+
QTEST_MAIN(tst_QGraphicsWebView)
#include "tst_qgraphicswebview.moc"
diff --git a/Source/WebKit/qt/tests/qgraphicswebview/tst_qgraphicswebview.qrc b/Source/WebKit/qt/tests/qgraphicswebview/tst_qgraphicswebview.qrc
index c91bb9c..1488fcf 100644
--- a/Source/WebKit/qt/tests/qgraphicswebview/tst_qgraphicswebview.qrc
+++ b/Source/WebKit/qt/tests/qgraphicswebview/tst_qgraphicswebview.qrc
@@ -1,6 +1,7 @@
-<!DOCTYPE RCC><RCC version="1.0">
-<qresource>
- <file>resources/input_types.html</file>
-</qresource>
+<RCC>
+ <qresource prefix="/">
+ <file>resources/input_types.html</file>
+ <file>resources/pointing_right.html</file>
+ <file>resources/pointing_up.html</file>
+ </qresource>
</RCC>
-
diff --git a/Source/WebKit/qt/tests/qwebframe/tst_qwebframe.cpp b/Source/WebKit/qt/tests/qwebframe/tst_qwebframe.cpp
index bc1594a..2c44e4c 100644
--- a/Source/WebKit/qt/tests/qwebframe/tst_qwebframe.cpp
+++ b/Source/WebKit/qt/tests/qwebframe/tst_qwebframe.cpp
@@ -650,6 +650,9 @@ private slots:
void setCacheLoadControlAttribute();
void setUrlWithPendingLoads();
void setUrlWithFragment();
+ void setUrlToEmpty();
+ void setUrlToInvalid();
+ void setUrlHistory();
private:
QString evalJS(const QString&s) {
@@ -3340,5 +3343,148 @@ void tst_QWebFrame::setUrlWithFragment()
QCOMPARE(page.mainFrame()->url(), url);
}
+void tst_QWebFrame::setUrlToEmpty()
+{
+ int expectedLoadFinishedCount = 0;
+ const QUrl aboutBlank("about:blank");
+ const QUrl url("qrc:/test2.html");
+
+ QWebPage page;
+ QWebFrame* frame = page.mainFrame();
+ QCOMPARE(frame->url(), QUrl());
+ QCOMPARE(frame->requestedUrl(), QUrl());
+ QCOMPARE(frame->baseUrl(), QUrl());
+
+ QSignalSpy spy(frame, SIGNAL(loadFinished(bool)));
+
+ // Set existing url
+ frame->setUrl(url);
+ expectedLoadFinishedCount++;
+ ::waitForSignal(frame, SIGNAL(loadFinished(bool)));
+
+ QCOMPARE(spy.count(), expectedLoadFinishedCount);
+ QCOMPARE(frame->url(), url);
+ QCOMPARE(frame->requestedUrl(), url);
+ QCOMPARE(frame->baseUrl(), url);
+
+ // Set empty url
+ frame->setUrl(QUrl());
+ expectedLoadFinishedCount++;
+
+ QCOMPARE(spy.count(), expectedLoadFinishedCount);
+ QCOMPARE(frame->url(), aboutBlank);
+ QCOMPARE(frame->requestedUrl(), QUrl());
+ QCOMPARE(frame->baseUrl(), aboutBlank);
+
+ // Set existing url
+ frame->setUrl(url);
+ expectedLoadFinishedCount++;
+ ::waitForSignal(frame, SIGNAL(loadFinished(bool)));
+
+ QCOMPARE(spy.count(), expectedLoadFinishedCount);
+ QCOMPARE(frame->url(), url);
+ QCOMPARE(frame->requestedUrl(), url);
+ QCOMPARE(frame->baseUrl(), url);
+
+ // Load empty url
+ frame->load(QUrl());
+ expectedLoadFinishedCount++;
+
+ QCOMPARE(spy.count(), expectedLoadFinishedCount);
+ QCOMPARE(frame->url(), aboutBlank);
+ QCOMPARE(frame->requestedUrl(), QUrl());
+ QCOMPARE(frame->baseUrl(), aboutBlank);
+}
+
+void tst_QWebFrame::setUrlToInvalid()
+{
+ QWebPage page;
+ QWebFrame* frame = page.mainFrame();
+
+ const QUrl invalidUrl("http://strange;hostname/here");
+ QVERIFY(!invalidUrl.isEmpty());
+ QVERIFY(!invalidUrl.isValid());
+ QVERIFY(invalidUrl != QUrl());
+
+ frame->setUrl(invalidUrl);
+ QCOMPARE(frame->url(), invalidUrl);
+ QCOMPARE(frame->requestedUrl(), invalidUrl);
+ QCOMPARE(frame->baseUrl(), invalidUrl);
+
+ // QUrls equivalent to QUrl() will be treated as such.
+ const QUrl aboutBlank("about:blank");
+ const QUrl anotherInvalidUrl("1http://bugs.webkit.org");
+ QVERIFY(!anotherInvalidUrl.isEmpty()); // and they are not necessarily empty.
+ QVERIFY(!anotherInvalidUrl.isValid());
+ QCOMPARE(anotherInvalidUrl, QUrl());
+
+ frame->setUrl(anotherInvalidUrl);
+ QCOMPARE(frame->url(), aboutBlank);
+ QCOMPARE(frame->requestedUrl(), anotherInvalidUrl);
+ QCOMPARE(frame->baseUrl(), aboutBlank);
+}
+
+void tst_QWebFrame::setUrlHistory()
+{
+ const QUrl aboutBlank("about:blank");
+ QUrl url;
+ int expectedLoadFinishedCount = 0;
+ QWebFrame* frame = m_page->mainFrame();
+ QSignalSpy spy(frame, SIGNAL(loadFinished(bool)));
+
+ QCOMPARE(m_page->history()->count(), 0);
+
+ frame->setUrl(QUrl());
+ expectedLoadFinishedCount++;
+ QCOMPARE(spy.count(), expectedLoadFinishedCount);
+ QCOMPARE(frame->url(), aboutBlank);
+ QCOMPARE(frame->requestedUrl(), QUrl());
+ QCOMPARE(m_page->history()->count(), 0);
+
+ url = QUrl("http://non.existant/");
+ frame->setUrl(url);
+ ::waitForSignal(m_page, SIGNAL(loadFinished(bool)));
+ expectedLoadFinishedCount++;
+ QCOMPARE(spy.count(), expectedLoadFinishedCount);
+ QCOMPARE(frame->url(), url);
+ QCOMPARE(frame->requestedUrl(), url);
+ QCOMPARE(m_page->history()->count(), 0);
+
+ url = QUrl("qrc:/test1.html");
+ frame->setUrl(url);
+ ::waitForSignal(m_page, SIGNAL(loadFinished(bool)));
+ expectedLoadFinishedCount++;
+ QCOMPARE(spy.count(), expectedLoadFinishedCount);
+ QCOMPARE(frame->url(), url);
+ QCOMPARE(frame->requestedUrl(), url);
+ QCOMPARE(m_page->history()->count(), 1);
+
+ frame->setUrl(QUrl());
+ expectedLoadFinishedCount++;
+ QCOMPARE(spy.count(), expectedLoadFinishedCount);
+ QCOMPARE(frame->url(), aboutBlank);
+ QCOMPARE(frame->requestedUrl(), QUrl());
+ QCOMPARE(m_page->history()->count(), 1);
+
+ // Loading same page as current in history, so history count doesn't change.
+ url = QUrl("qrc:/test1.html");
+ frame->setUrl(url);
+ ::waitForSignal(m_page, SIGNAL(loadFinished(bool)));
+ expectedLoadFinishedCount++;
+ QCOMPARE(spy.count(), expectedLoadFinishedCount);
+ QCOMPARE(frame->url(), url);
+ QCOMPARE(frame->requestedUrl(), url);
+ QCOMPARE(m_page->history()->count(), 1);
+
+ url = QUrl("qrc:/test2.html");
+ frame->setUrl(url);
+ ::waitForSignal(m_page, SIGNAL(loadFinished(bool)));
+ expectedLoadFinishedCount++;
+ QCOMPARE(spy.count(), expectedLoadFinishedCount);
+ QCOMPARE(frame->url(), url);
+ QCOMPARE(frame->requestedUrl(), url);
+ QCOMPARE(m_page->history()->count(), 2);
+}
+
QTEST_MAIN(tst_QWebFrame)
#include "tst_qwebframe.moc"
diff --git a/Source/WebKit/qt/tests/qwebpage/tst_qwebpage.cpp b/Source/WebKit/qt/tests/qwebpage/tst_qwebpage.cpp
index 4417ac5..d43b2de 100644
--- a/Source/WebKit/qt/tests/qwebpage/tst_qwebpage.cpp
+++ b/Source/WebKit/qt/tests/qwebpage/tst_qwebpage.cpp
@@ -126,6 +126,11 @@ private slots:
void screenshot_data();
void screenshot();
+#if defined(ENABLE_WEBGL) && ENABLE_WEBGL
+ void acceleratedWebGLScreenshotWithoutView();
+ void unacceleratedWebGLScreenshotWithoutView();
+#endif
+
void originatingObjectInNetworkRequests();
void testJSPrompt();
void showModalDialog();
@@ -135,6 +140,7 @@ private slots:
void infiniteLoopJS();
void navigatorCookieEnabled();
void deleteQWebViewTwice();
+ void renderOnRepaintRequestedShouldNotRecurse();
#ifdef Q_OS_MAC
void macCopyUnicodeToClipboard();
@@ -2117,6 +2123,28 @@ void tst_QWebPage::inputMethods()
clickOnPage(page, inputElement.geometry().center());
QVERIFY(!viewEventSpy.contains(QEvent::RequestSoftwareInputPanel));
+
+ // START - Newline test for textarea
+ qApp->processEvents();
+ page->mainFrame()->setHtml("<html><body>" \
+ "<textarea rows='5' cols='1' id='input5' value=''/>" \
+ "</body></html>");
+ page->mainFrame()->evaluateJavaScript("var inputEle = document.getElementById('input5'); inputEle.focus(); inputEle.select();");
+ QKeyEvent keyEnter(QEvent::KeyPress, Qt::Key_Enter, Qt::NoModifier);
+ page->event(&keyEnter);
+ QList<QInputMethodEvent::Attribute> attribs;
+
+ QInputMethodEvent eventText("\n", attribs);
+ page->event(&eventText);
+
+ QInputMethodEvent eventText2("third line", attribs);
+ page->event(&eventText2);
+ qApp->processEvents();
+
+ QString inputValue2 = page->mainFrame()->evaluateJavaScript("document.getElementById('input5').value").toString();
+ QCOMPARE(inputValue2, QString("\n\nthird line"));
+ // END - Newline test for textarea
+
delete container;
}
@@ -2473,6 +2501,33 @@ void tst_QWebPage::screenshot()
QDir::setCurrent(QApplication::applicationDirPath());
}
+#if defined(ENABLE_WEBGL) && ENABLE_WEBGL
+// https://bugs.webkit.org/show_bug.cgi?id=54138
+static void webGLScreenshotWithoutView(bool accelerated)
+{
+ QWebPage page;
+ page.settings()->setAttribute(QWebSettings::WebGLEnabled, true);
+ page.settings()->setAttribute(QWebSettings::AcceleratedCompositingEnabled, accelerated);
+ QWebFrame* mainFrame = page.mainFrame();
+ mainFrame->setHtml("<html><body>"
+ "<canvas id='webgl' width='300' height='300'></canvas>"
+ "<script>document.getElementById('webgl').getContext('experimental-webgl')</script>"
+ "</body></html>");
+
+ takeScreenshot(&page);
+}
+
+void tst_QWebPage::acceleratedWebGLScreenshotWithoutView()
+{
+ webGLScreenshotWithoutView(true);
+}
+
+void tst_QWebPage::unacceleratedWebGLScreenshotWithoutView()
+{
+ webGLScreenshotWithoutView(false);
+}
+#endif
+
void tst_QWebPage::originatingObjectInNetworkRequests()
{
TestNetworkManager* networkManager = new TestNetworkManager(m_page);
@@ -2766,5 +2821,54 @@ void tst_QWebPage::deleteQWebViewTwice()
}
}
+class RepaintRequestedRenderer : public QObject {
+ Q_OBJECT
+public:
+ RepaintRequestedRenderer(QWebPage* page, QPainter* painter)
+ : m_page(page)
+ , m_painter(painter)
+ , m_recursionCount(0)
+ {
+ connect(m_page, SIGNAL(repaintRequested(QRect)), this, SLOT(onRepaintRequested(QRect)));
+ }
+
+signals:
+ void finished();
+
+private slots:
+ void onRepaintRequested(const QRect& rect)
+ {
+ QCOMPARE(m_recursionCount, 0);
+
+ m_recursionCount++;
+ m_page->mainFrame()->render(m_painter, rect);
+ m_recursionCount--;
+
+ QMetaObject::invokeMethod(this, "finished", Qt::QueuedConnection);
+ }
+
+private:
+ QWebPage* m_page;
+ QPainter* m_painter;
+ int m_recursionCount;
+};
+
+void tst_QWebPage::renderOnRepaintRequestedShouldNotRecurse()
+{
+ QSize viewportSize(720, 576);
+ QWebPage page;
+
+ QImage image(viewportSize, QImage::Format_ARGB32);
+ QPainter painter(&image);
+
+ page.setPreferredContentsSize(viewportSize);
+ page.setViewportSize(viewportSize);
+ RepaintRequestedRenderer r(&page, &painter);
+
+ page.mainFrame()->setHtml("zalan loves trunk", QUrl());
+
+ QVERIFY(::waitForSignal(&r, SIGNAL(finished())));
+}
+
QTEST_MAIN(tst_QWebPage)
#include "tst_qwebpage.moc"
diff --git a/Source/WebKit/qt/tests/qwebview/tst_qwebview.cpp b/Source/WebKit/qt/tests/qwebview/tst_qwebview.cpp
index 533d4e5..c7600fc 100644
--- a/Source/WebKit/qt/tests/qwebview/tst_qwebview.cpp
+++ b/Source/WebKit/qt/tests/qwebview/tst_qwebview.cpp
@@ -42,6 +42,7 @@ public slots:
void cleanup();
private slots:
+ void renderingAfterMaxAndBack();
void renderHints();
void getWebKitVersion();
@@ -207,9 +208,9 @@ void tst_QWebView::microFocusCoordinates()
page->mainFrame()->setHtml("<html><body>" \
"<input type='text' id='input1' style='font--family: serif' value='' maxlength='20'/><br>" \
- "<canvas id='canvas1' width='500' height='500'/>" \
+ "<canvas id='canvas1' width='500' height='500'></canvas>" \
"<input type='password'/><br>" \
- "<canvas id='canvas2' width='500' height='500'/>" \
+ "<canvas id='canvas2' width='500' height='500'></canvas>" \
"</body></html>");
page->mainFrame()->setFocus();
@@ -438,6 +439,63 @@ void tst_QWebView::setPalette()
QVERIFY(img1 != img2);
}
+void tst_QWebView::renderingAfterMaxAndBack()
+{
+ QUrl url = QUrl("data:text/html,<html><head></head>"
+ "<body width=1024 height=768 bgcolor=red>"
+ "</body>"
+ "</html>");
+
+ QWebView view;
+ view.page()->mainFrame()->load(url);
+ QVERIFY(waitForSignal(&view, SIGNAL(loadFinished(bool))));
+ view.show();
+
+ view.page()->settings()->setMaximumPagesInCache(3);
+
+ QTest::qWaitForWindowShown(&view);
+
+ QPixmap reference(view.page()->viewportSize());
+ reference.fill(Qt::red);
+
+ QPixmap image(view.page()->viewportSize());
+ QPainter painter(&image);
+ view.page()->currentFrame()->render(&painter);
+
+ QCOMPARE(image, reference);
+
+ QUrl url2 = QUrl("data:text/html,<html><head></head>"
+ "<body width=1024 height=768 bgcolor=blue>"
+ "</body>"
+ "</html>");
+ view.page()->mainFrame()->load(url2);
+
+ QVERIFY(waitForSignal(&view, SIGNAL(loadFinished(bool))));
+
+ view.showMaximized();
+
+ QTest::qWaitForWindowShown(&view);
+
+ QPixmap reference2(view.page()->viewportSize());
+ reference2.fill(Qt::blue);
+
+ QPixmap image2(view.page()->viewportSize());
+ QPainter painter2(&image2);
+ view.page()->currentFrame()->render(&painter2);
+
+ QCOMPARE(image2, reference2);
+
+ view.back();
+
+ QPixmap reference3(view.page()->viewportSize());
+ reference3.fill(Qt::red);
+ QPixmap image3(view.page()->viewportSize());
+ QPainter painter3(&image3);
+ view.page()->currentFrame()->render(&painter3);
+
+ QCOMPARE(image3, reference3);
+}
+
QTEST_MAIN(tst_QWebView)
#include "tst_qwebview.moc"
diff --git a/Source/WebKit/qt/tests/tests.pri b/Source/WebKit/qt/tests/tests.pri
index bb519eb..ebb6f8e 100644
--- a/Source/WebKit/qt/tests/tests.pri
+++ b/Source/WebKit/qt/tests/tests.pri
@@ -32,3 +32,5 @@ symbian {
# This define is used by some tests to look up resources in the source tree
!symbian: DEFINES += TESTS_SOURCE_DIR=\\\"$$PWD/\\\"
+DEFINES -= QT_ASCII_CAST_WARNINGS
+
diff --git a/Source/WebKit/qt/tests/tests.pro b/Source/WebKit/qt/tests/tests.pro
index e5b7408..529fa04 100644
--- a/Source/WebKit/qt/tests/tests.pro
+++ b/Source/WebKit/qt/tests/tests.pro
@@ -3,3 +3,6 @@ TEMPLATE = subdirs
SUBDIRS = qwebframe qwebpage qwebelement qgraphicswebview qwebhistoryinterface qwebview qwebhistory qwebinspector hybridPixmap
contains(QT_CONFIG, declarative): SUBDIRS += qdeclarativewebview
SUBDIRS += benchmarks/painting benchmarks/loading
+contains(DEFINES, ENABLE_WEBGL=1) {
+ SUBDIRS += benchmarks/webgl
+}
diff --git a/Source/WebKit/win/AccessibleBase.h b/Source/WebKit/win/AccessibleBase.h
index df2d927..008d580 100644
--- a/Source/WebKit/win/AccessibleBase.h
+++ b/Source/WebKit/win/AccessibleBase.h
@@ -26,10 +26,9 @@
#ifndef AccessibleBase_h
#define AccessibleBase_h
+#include "WebKit.h"
#include <WebCore/AccessibilityObject.h>
#include <WebCore/AccessibilityObjectWrapperWin.h>
-#include <WebKit/WebKit.h>
-#include <oleacc.h>
class DECLSPEC_UUID("3dbd565b-db22-4d88-8e0e-778bde54524a") AccessibleBase : public IAccessibleComparable, public IServiceProvider, public WebCore::AccessibilityObjectWrapper {
public:
diff --git a/Source/WebKit/win/AccessibleDocument.h b/Source/WebKit/win/AccessibleDocument.h
index aa38be8..bc13613 100644
--- a/Source/WebKit/win/AccessibleDocument.h
+++ b/Source/WebKit/win/AccessibleDocument.h
@@ -27,14 +27,11 @@
#define AccessibleDocument_h
#include "AccessibleBase.h"
-#include "WebKit.h"
-
-using WebCore::Document;
class AccessibleDocument : public AccessibleBase {
public:
- AccessibleDocument(Document*);
- Document* document() const;
+ AccessibleDocument(WebCore::Document*);
+ WebCore::Document* document() const;
protected:
virtual long role() const;
diff --git a/Source/WebKit/win/CFDictionaryPropertyBag.h b/Source/WebKit/win/CFDictionaryPropertyBag.h
index 3cac464..17964e5 100644
--- a/Source/WebKit/win/CFDictionaryPropertyBag.h
+++ b/Source/WebKit/win/CFDictionaryPropertyBag.h
@@ -26,6 +26,7 @@
#ifndef CFDictionaryPropertyBag_h
#define CFDictionaryPropertyBag_h
+#include "WebKit.h"
#include <WebCore/COMPtr.h>
#include <wtf/RetainPtr.h>
diff --git a/Source/WebKit/win/COMPropertyBag.h b/Source/WebKit/win/COMPropertyBag.h
index 620458e..dd0a8c4 100644
--- a/Source/WebKit/win/COMPropertyBag.h
+++ b/Source/WebKit/win/COMPropertyBag.h
@@ -1,234 +1,235 @@
-/*
- * Copyright (C) 2008 Apple Inc. All Rights Reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY APPLE INC. ``AS IS'' AND ANY
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR
- * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
- * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
- * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
- * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
- * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-#ifndef COMPropertyBag_h
-#define COMPropertyBag_h
-
-#define NOMINMAX
-#include <unknwn.h>
-
-#include <wtf/Noncopyable.h>
-#include <wtf/HashMap.h>
-
-#include "COMVariantSetter.h"
-
-template<typename ValueType, typename KeyType = typename WTF::String, typename HashType = typename WTF::StringHash>
-class COMPropertyBag : public IPropertyBag, public IPropertyBag2 {
- WTF_MAKE_NONCOPYABLE(COMPropertyBag);
-public:
- typedef HashMap<KeyType, ValueType, HashType> HashMapType;
-
- static COMPropertyBag* createInstance(const HashMapType&);
- static COMPropertyBag* adopt(HashMapType&);
-
- // IUnknown
- virtual HRESULT STDMETHODCALLTYPE QueryInterface(REFIID riid, void** ppvObject);
- virtual ULONG STDMETHODCALLTYPE AddRef();
- virtual ULONG STDMETHODCALLTYPE Release();
-
- // IPropertyBag
- virtual HRESULT STDMETHODCALLTYPE Read(LPCOLESTR pszPropName, VARIANT*, IErrorLog*);
- virtual HRESULT STDMETHODCALLTYPE Write(LPCOLESTR pszPropName, VARIANT*);
-
- // IPropertyBag2
- virtual HRESULT STDMETHODCALLTYPE Read(ULONG cProperties, PROPBAG2*, IErrorLog*, VARIANT* pvarValue, HRESULT* phrError);
- virtual HRESULT STDMETHODCALLTYPE Write(ULONG cProperties, PROPBAG2*, VARIANT*);
- virtual HRESULT STDMETHODCALLTYPE CountProperties(ULONG* pcProperties);
- virtual HRESULT STDMETHODCALLTYPE GetPropertyInfo(ULONG iProperty, ULONG cProperties, PROPBAG2* pPropBag, ULONG* pcProperties);
- virtual HRESULT STDMETHODCALLTYPE LoadObject(LPCOLESTR pstrName, DWORD dwHint, IUnknown*, IErrorLog*);
-
-private:
- COMPropertyBag()
- : m_refCount(0)
- {
- }
-
- COMPropertyBag(const HashMapType& hashMap)
- : m_refCount(0)
- , m_hashMap(hashMap)
- {
- }
-
- ~COMPropertyBag() {}
-
- ULONG m_refCount;
- HashMapType m_hashMap;
-};
-
-// COMPropertyBag ------------------------------------------------------------------
-template<typename ValueType, typename KeyType, typename HashType>
-COMPropertyBag<ValueType, KeyType, HashType>* COMPropertyBag<typename ValueType, typename KeyType, HashType>::createInstance(const HashMapType& hashMap)
-{
- COMPropertyBag* instance = new COMPropertyBag(hashMap);
- instance->AddRef();
- return instance;
-}
-
-template<typename ValueType, typename KeyType, typename HashType>
-COMPropertyBag<ValueType, KeyType, HashType>* COMPropertyBag<typename ValueType, typename KeyType, HashType>::adopt(HashMapType& hashMap)
-{
- COMPropertyBag* instance = new COMPropertyBag;
- instance->m_hashMap.swap(hashMap);
- instance->AddRef();
- return instance;
-}
-
-// IUnknown ------------------------------------------------------------------------
-template<typename ValueType, typename KeyType, typename HashType>
-HRESULT STDMETHODCALLTYPE COMPropertyBag<ValueType, KeyType, HashType>::QueryInterface(REFIID riid, void** ppvObject)
-{
- *ppvObject = 0;
- if (IsEqualGUID(riid, IID_IUnknown))
- *ppvObject = static_cast<IPropertyBag*>(this);
- else if (IsEqualGUID(riid, IID_IPropertyBag))
- *ppvObject = static_cast<IPropertyBag*>(this);
- else if (IsEqualGUID(riid, IID_IPropertyBag2))
- *ppvObject = static_cast<IPropertyBag2*>(this);
- else
- return E_NOINTERFACE;
-
- AddRef();
- return S_OK;
-}
-
-template<typename ValueType, typename KeyType, typename HashType>
-ULONG STDMETHODCALLTYPE COMPropertyBag<ValueType, KeyType, HashType>::AddRef()
-{
- return ++m_refCount;
-}
-
-template<typename ValueType, typename KeyType, typename HashType>
-ULONG STDMETHODCALLTYPE COMPropertyBag<ValueType, KeyType, HashType>::Release()
-{
- ULONG newRef = --m_refCount;
- if (!newRef)
- delete this;
-
- return newRef;
-}
-
-// IPropertyBag --------------------------------------------------------------------
-
-template<typename ValueType, typename KeyType, typename HashType>
-HRESULT STDMETHODCALLTYPE COMPropertyBag<ValueType, KeyType, HashType>::Read(LPCOLESTR pszPropName, VARIANT* pVar, IErrorLog* pErrorLog)
-{
- if (!pszPropName)
- return E_POINTER;
-
- HashMapType::const_iterator it = m_hashMap.find(String(pszPropName));
- HashMapType::const_iterator end = m_hashMap.end();
- if (it == end)
- return E_INVALIDARG;
-
- VARTYPE requestedType = V_VT(pVar);
- V_VT(pVar) = VT_EMPTY;
- COMVariantSetter<ValueType>::setVariant(pVar, it->second);
-
- if (requestedType != COMVariantSetter<ValueType>::variantType(it->second) && requestedType != VT_EMPTY)
- return ::VariantChangeType(pVar, pVar, VARIANT_NOUSEROVERRIDE | VARIANT_ALPHABOOL, requestedType);
-
- return S_OK;
-}
-
-template<typename ValueType, typename KeyType, typename HashType>
-HRESULT STDMETHODCALLTYPE COMPropertyBag<ValueType, KeyType, HashType>::Write(LPCOLESTR pszPropName, VARIANT* pVar)
-{
- return E_FAIL;
-}
-
-template<typename ValueType, typename KeyType, typename HashType>
-HRESULT STDMETHODCALLTYPE COMPropertyBag<ValueType, KeyType, HashType>::Read(ULONG cProperties, PROPBAG2* pPropBag, IErrorLog* pErrorLog, VARIANT* pvarValue, HRESULT* phrError)
-{
- if (!pPropBag || !pvarValue || !phrError)
- return E_POINTER;
-
- HRESULT hr = S_OK;
-
- for (ULONG i = 0; i < cProperties; ++i) {
- VariantInit(&pvarValue[i]);
- pvarValue[i].vt = pPropBag[i].vt;
- phrError[i] = Read(pPropBag[i].pstrName, &pvarValue[i], pErrorLog);
- if (FAILED(phrError[i]))
- hr = E_FAIL;
- }
-
- return hr;
-}
-
-template<typename ValueType, typename KeyType, typename HashType>
-HRESULT STDMETHODCALLTYPE COMPropertyBag<ValueType, KeyType, HashType>::Write(ULONG cProperties, PROPBAG2*, VARIANT*)
-{
- return E_NOTIMPL;
-}
-
-template<typename ValueType, typename KeyType, typename HashType>
-HRESULT STDMETHODCALLTYPE COMPropertyBag<ValueType, KeyType, HashType>::CountProperties(ULONG* pcProperties)
-{
- if (!pcProperties)
- return E_POINTER;
-
- *pcProperties = m_hashMap.size();
- return S_OK;
-}
-
-template<typename ValueType, typename KeyType, typename HashType>
-HRESULT STDMETHODCALLTYPE COMPropertyBag<ValueType, KeyType, HashType>::GetPropertyInfo(ULONG iProperty, ULONG cProperties, PROPBAG2* pPropBag, ULONG* pcProperties)
-{
- if (!pPropBag || !pcProperties)
- return E_POINTER;
-
- if (m_hashMap.size() <= iProperty)
- return E_INVALIDARG;
-
- *pcProperties = 0;
- typedef HashMapType::const_iterator Iterator;
- Iterator current = m_hashMap.begin();
- Iterator end = m_hashMap.end();
- for (ULONG i = 0; i < iProperty; ++i, ++current)
- ;
- for (ULONG j = 0; j < cProperties && current != end; ++j, ++current) {
- // FIXME: the following fields aren't filled in
- //pPropBag[j].cfType; // (CLIPFORMAT) Clipboard format or MIME type of the property.
- //pPropBag[j].clsid; // (CLSID) CLSID of the object. This member is valid only if dwType is PROPBAG2_TYPE_OBJECT.
-
- pPropBag[j].dwType = PROPBAG2_TYPE_DATA;
- pPropBag[j].vt = COMVariantSetter<ValueType>::variantType(current->second);
- pPropBag[j].dwHint = iProperty + j;
- pPropBag[j].pstrName = (LPOLESTR)CoTaskMemAlloc(sizeof(wchar_t)*(current->first.length()+1));
- if (!pPropBag[j].pstrName)
- return E_OUTOFMEMORY;
- wcscpy_s(pPropBag[j].pstrName, current->first.length()+1, static_cast<String>(current->first).charactersWithNullTermination());
- ++*pcProperties;
- }
- return S_OK;
-}
-
-template<typename ValueType, typename KeyType, typename HashType>
-HRESULT STDMETHODCALLTYPE COMPropertyBag<ValueType, KeyType, HashType>::LoadObject(LPCOLESTR pstrName, DWORD dwHint, IUnknown*, IErrorLog*)
-{
- return E_NOTIMPL;
-}
-
-#endif // COMPropertyBag_h
+/*
+ * Copyright (C) 2008 Apple Inc. All Rights Reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. ``AS IS'' AND ANY
+ * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR
+ * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+ * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+ * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+ * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
+ * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef COMPropertyBag_h
+#define COMPropertyBag_h
+
+#define NOMINMAX
+#include <ocidl.h>
+#include <unknwn.h>
+
+#include <wtf/Noncopyable.h>
+#include <wtf/HashMap.h>
+
+#include "COMVariantSetter.h"
+
+template<typename ValueType, typename KeyType = typename WTF::String, typename HashType = typename WTF::StringHash>
+class COMPropertyBag : public IPropertyBag, public IPropertyBag2 {
+ WTF_MAKE_NONCOPYABLE(COMPropertyBag);
+public:
+ typedef HashMap<KeyType, ValueType, HashType> HashMapType;
+
+ static COMPropertyBag* createInstance(const HashMapType&);
+ static COMPropertyBag* adopt(HashMapType&);
+
+ // IUnknown
+ virtual HRESULT STDMETHODCALLTYPE QueryInterface(REFIID riid, void** ppvObject);
+ virtual ULONG STDMETHODCALLTYPE AddRef();
+ virtual ULONG STDMETHODCALLTYPE Release();
+
+ // IPropertyBag
+ virtual HRESULT STDMETHODCALLTYPE Read(LPCOLESTR pszPropName, VARIANT*, IErrorLog*);
+ virtual HRESULT STDMETHODCALLTYPE Write(LPCOLESTR pszPropName, VARIANT*);
+
+ // IPropertyBag2
+ virtual HRESULT STDMETHODCALLTYPE Read(ULONG cProperties, PROPBAG2*, IErrorLog*, VARIANT* pvarValue, HRESULT* phrError);
+ virtual HRESULT STDMETHODCALLTYPE Write(ULONG cProperties, PROPBAG2*, VARIANT*);
+ virtual HRESULT STDMETHODCALLTYPE CountProperties(ULONG* pcProperties);
+ virtual HRESULT STDMETHODCALLTYPE GetPropertyInfo(ULONG iProperty, ULONG cProperties, PROPBAG2* pPropBag, ULONG* pcProperties);
+ virtual HRESULT STDMETHODCALLTYPE LoadObject(LPCOLESTR pstrName, DWORD dwHint, IUnknown*, IErrorLog*);
+
+private:
+ COMPropertyBag()
+ : m_refCount(0)
+ {
+ }
+
+ COMPropertyBag(const HashMapType& hashMap)
+ : m_refCount(0)
+ , m_hashMap(hashMap)
+ {
+ }
+
+ ~COMPropertyBag() {}
+
+ ULONG m_refCount;
+ HashMapType m_hashMap;
+};
+
+// COMPropertyBag ------------------------------------------------------------------
+template<typename ValueType, typename KeyType, typename HashType>
+COMPropertyBag<ValueType, KeyType, HashType>* COMPropertyBag<typename ValueType, typename KeyType, HashType>::createInstance(const HashMapType& hashMap)
+{
+ COMPropertyBag* instance = new COMPropertyBag(hashMap);
+ instance->AddRef();
+ return instance;
+}
+
+template<typename ValueType, typename KeyType, typename HashType>
+COMPropertyBag<ValueType, KeyType, HashType>* COMPropertyBag<typename ValueType, typename KeyType, HashType>::adopt(HashMapType& hashMap)
+{
+ COMPropertyBag* instance = new COMPropertyBag;
+ instance->m_hashMap.swap(hashMap);
+ instance->AddRef();
+ return instance;
+}
+
+// IUnknown ------------------------------------------------------------------------
+template<typename ValueType, typename KeyType, typename HashType>
+HRESULT STDMETHODCALLTYPE COMPropertyBag<ValueType, KeyType, HashType>::QueryInterface(REFIID riid, void** ppvObject)
+{
+ *ppvObject = 0;
+ if (IsEqualGUID(riid, IID_IUnknown))
+ *ppvObject = static_cast<IPropertyBag*>(this);
+ else if (IsEqualGUID(riid, IID_IPropertyBag))
+ *ppvObject = static_cast<IPropertyBag*>(this);
+ else if (IsEqualGUID(riid, IID_IPropertyBag2))
+ *ppvObject = static_cast<IPropertyBag2*>(this);
+ else
+ return E_NOINTERFACE;
+
+ AddRef();
+ return S_OK;
+}
+
+template<typename ValueType, typename KeyType, typename HashType>
+ULONG STDMETHODCALLTYPE COMPropertyBag<ValueType, KeyType, HashType>::AddRef()
+{
+ return ++m_refCount;
+}
+
+template<typename ValueType, typename KeyType, typename HashType>
+ULONG STDMETHODCALLTYPE COMPropertyBag<ValueType, KeyType, HashType>::Release()
+{
+ ULONG newRef = --m_refCount;
+ if (!newRef)
+ delete this;
+
+ return newRef;
+}
+
+// IPropertyBag --------------------------------------------------------------------
+
+template<typename ValueType, typename KeyType, typename HashType>
+HRESULT STDMETHODCALLTYPE COMPropertyBag<ValueType, KeyType, HashType>::Read(LPCOLESTR pszPropName, VARIANT* pVar, IErrorLog* pErrorLog)
+{
+ if (!pszPropName)
+ return E_POINTER;
+
+ HashMapType::const_iterator it = m_hashMap.find(String(pszPropName));
+ HashMapType::const_iterator end = m_hashMap.end();
+ if (it == end)
+ return E_INVALIDARG;
+
+ VARTYPE requestedType = V_VT(pVar);
+ V_VT(pVar) = VT_EMPTY;
+ COMVariantSetter<ValueType>::setVariant(pVar, it->second);
+
+ if (requestedType != COMVariantSetter<ValueType>::variantType(it->second) && requestedType != VT_EMPTY)
+ return ::VariantChangeType(pVar, pVar, VARIANT_NOUSEROVERRIDE | VARIANT_ALPHABOOL, requestedType);
+
+ return S_OK;
+}
+
+template<typename ValueType, typename KeyType, typename HashType>
+HRESULT STDMETHODCALLTYPE COMPropertyBag<ValueType, KeyType, HashType>::Write(LPCOLESTR pszPropName, VARIANT* pVar)
+{
+ return E_FAIL;
+}
+
+template<typename ValueType, typename KeyType, typename HashType>
+HRESULT STDMETHODCALLTYPE COMPropertyBag<ValueType, KeyType, HashType>::Read(ULONG cProperties, PROPBAG2* pPropBag, IErrorLog* pErrorLog, VARIANT* pvarValue, HRESULT* phrError)
+{
+ if (!pPropBag || !pvarValue || !phrError)
+ return E_POINTER;
+
+ HRESULT hr = S_OK;
+
+ for (ULONG i = 0; i < cProperties; ++i) {
+ VariantInit(&pvarValue[i]);
+ pvarValue[i].vt = pPropBag[i].vt;
+ phrError[i] = Read(pPropBag[i].pstrName, &pvarValue[i], pErrorLog);
+ if (FAILED(phrError[i]))
+ hr = E_FAIL;
+ }
+
+ return hr;
+}
+
+template<typename ValueType, typename KeyType, typename HashType>
+HRESULT STDMETHODCALLTYPE COMPropertyBag<ValueType, KeyType, HashType>::Write(ULONG cProperties, PROPBAG2*, VARIANT*)
+{
+ return E_NOTIMPL;
+}
+
+template<typename ValueType, typename KeyType, typename HashType>
+HRESULT STDMETHODCALLTYPE COMPropertyBag<ValueType, KeyType, HashType>::CountProperties(ULONG* pcProperties)
+{
+ if (!pcProperties)
+ return E_POINTER;
+
+ *pcProperties = m_hashMap.size();
+ return S_OK;
+}
+
+template<typename ValueType, typename KeyType, typename HashType>
+HRESULT STDMETHODCALLTYPE COMPropertyBag<ValueType, KeyType, HashType>::GetPropertyInfo(ULONG iProperty, ULONG cProperties, PROPBAG2* pPropBag, ULONG* pcProperties)
+{
+ if (!pPropBag || !pcProperties)
+ return E_POINTER;
+
+ if (m_hashMap.size() <= iProperty)
+ return E_INVALIDARG;
+
+ *pcProperties = 0;
+ typedef HashMapType::const_iterator Iterator;
+ Iterator current = m_hashMap.begin();
+ Iterator end = m_hashMap.end();
+ for (ULONG i = 0; i < iProperty; ++i, ++current)
+ ;
+ for (ULONG j = 0; j < cProperties && current != end; ++j, ++current) {
+ // FIXME: the following fields aren't filled in
+ //pPropBag[j].cfType; // (CLIPFORMAT) Clipboard format or MIME type of the property.
+ //pPropBag[j].clsid; // (CLSID) CLSID of the object. This member is valid only if dwType is PROPBAG2_TYPE_OBJECT.
+
+ pPropBag[j].dwType = PROPBAG2_TYPE_DATA;
+ pPropBag[j].vt = COMVariantSetter<ValueType>::variantType(current->second);
+ pPropBag[j].dwHint = iProperty + j;
+ pPropBag[j].pstrName = (LPOLESTR)CoTaskMemAlloc(sizeof(wchar_t)*(current->first.length()+1));
+ if (!pPropBag[j].pstrName)
+ return E_OUTOFMEMORY;
+ wcscpy_s(pPropBag[j].pstrName, current->first.length()+1, static_cast<String>(current->first).charactersWithNullTermination());
+ ++*pcProperties;
+ }
+ return S_OK;
+}
+
+template<typename ValueType, typename KeyType, typename HashType>
+HRESULT STDMETHODCALLTYPE COMPropertyBag<ValueType, KeyType, HashType>::LoadObject(LPCOLESTR pstrName, DWORD dwHint, IUnknown*, IErrorLog*)
+{
+ return E_NOTIMPL;
+}
+
+#endif // COMPropertyBag_h
diff --git a/Source/WebKit/win/COMVariantSetter.h b/Source/WebKit/win/COMVariantSetter.h
index feb233c..e211dca 100644
--- a/Source/WebKit/win/COMVariantSetter.h
+++ b/Source/WebKit/win/COMVariantSetter.h
@@ -1,194 +1,194 @@
-/*
- * Copyright (C) 2007, 2008 Apple Inc. All Rights Reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY APPLE INC. ``AS IS'' AND ANY
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR
- * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
- * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
- * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
- * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
- * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-#ifndef COMVariantSetter_h
-#define COMVariantSetter_h
-
-#include <WebCore/BString.h>
-#include <WebCore/COMPtr.h>
-#include <wtf/Assertions.h>
-#include <wtf/Forward.h>
-
-template<typename T> struct COMVariantSetter {};
-
-template<typename T> struct COMVariantSetterBase
-{
- static inline VARENUM variantType(const T&)
- {
- return COMVariantSetter<T>::VariantType;
- }
-};
-
-template<> struct COMVariantSetter<WTF::String> : COMVariantSetterBase<WTF::String>
-{
- static const VARENUM VariantType = VT_BSTR;
-
- static void setVariant(VARIANT* variant, const WTF::String& value)
- {
- ASSERT(V_VT(variant) == VT_EMPTY);
-
- V_VT(variant) = VariantType;
- V_BSTR(variant) = WebCore::BString(value).release();
- }
-};
-
-template<> struct COMVariantSetter<bool> : COMVariantSetterBase<bool>
-{
- static const VARENUM VariantType = VT_BOOL;
-
- static void setVariant(VARIANT* variant, bool value)
- {
- ASSERT(V_VT(variant) == VT_EMPTY);
-
- V_VT(variant) = VariantType;
- V_BOOL(variant) = value;
- }
-};
-
-template<> struct COMVariantSetter<unsigned long long> : COMVariantSetterBase<unsigned long long>
-{
- static const VARENUM VariantType = VT_UI8;
-
- static void setVariant(VARIANT* variant, unsigned long long value)
- {
- ASSERT(V_VT(variant) == VT_EMPTY);
-
- V_VT(variant) = VariantType;
- V_UI8(variant) = value;
- }
-};
-
-template<> struct COMVariantSetter<int> : COMVariantSetterBase<int>
-{
- static const VARENUM VariantType = VT_I4;
-
- static void setVariant(VARIANT* variant, int value)
- {
- ASSERT(V_VT(variant) == VT_EMPTY);
-
- V_VT(variant) = VariantType;
- V_I4(variant) = value;
- }
-};
-
-template<> struct COMVariantSetter<float> : COMVariantSetterBase<float>
-{
- static const VARENUM VariantType = VT_R4;
-
- static void setVariant(VARIANT* variant, float value)
- {
- ASSERT(V_VT(variant) == VT_EMPTY);
-
- V_VT(variant) = VariantType;
- V_R4(variant) = value;
- }
-};
-
-template<typename T> struct COMVariantSetter<COMPtr<T> > : COMVariantSetterBase<COMPtr<T> >
-{
- static const VARENUM VariantType = VT_UNKNOWN;
-
- static void setVariant(VARIANT* variant, const COMPtr<T>& value)
- {
- ASSERT(V_VT(variant) == VT_EMPTY);
-
- V_VT(variant) = VariantType;
- V_UNKNOWN(variant) = value.get();
- value->AddRef();
- }
-};
-
-template<typename COMType, typename UnderlyingType>
-struct COMIUnknownVariantSetter : COMVariantSetterBase<UnderlyingType>
-{
- static const VARENUM VariantType = VT_UNKNOWN;
-
- static void setVariant(VARIANT* variant, const UnderlyingType& value)
- {
- ASSERT(V_VT(variant) == VT_EMPTY);
-
- V_VT(variant) = VariantType;
- V_UNKNOWN(variant) = COMType::createInstance(value);
- }
-};
-
-class COMVariant {
-public:
- COMVariant()
- {
- ::VariantInit(&m_variant);
- }
-
- template<typename UnderlyingType>
- COMVariant(UnderlyingType value)
- {
- ::VariantInit(&m_variant);
- COMVariantSetter<UnderlyingType>::setVariant(&m_variant, value);
- }
-
- ~COMVariant()
- {
- ::VariantClear(&m_variant);
- }
-
- COMVariant(const COMVariant& other)
- {
- ::VariantInit(&m_variant);
- other.copyTo(&m_variant);
- }
-
- COMVariant& operator=(const COMVariant& other)
- {
- other.copyTo(&m_variant);
- return *this;
- }
-
- void copyTo(VARIANT* dest) const
- {
- ::VariantCopy(dest, const_cast<VARIANT*>(&m_variant));
- }
-
- VARENUM variantType() const { return static_cast<VARENUM>(V_VT(&m_variant)); }
-
-private:
- VARIANT m_variant;
-};
-
-template<> struct COMVariantSetter<COMVariant>
-{
- static inline VARENUM variantType(const COMVariant& value)
- {
- return value.variantType();
- }
-
- static void setVariant(VARIANT* variant, const COMVariant& value)
- {
- ASSERT(V_VT(variant) == VT_EMPTY);
-
- value.copyTo(variant);
- }
-};
-
-#endif // COMVariantSetter
+/*
+ * Copyright (C) 2007, 2008 Apple Inc. All Rights Reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. ``AS IS'' AND ANY
+ * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR
+ * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+ * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+ * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+ * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
+ * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef COMVariantSetter_h
+#define COMVariantSetter_h
+
+#include <WebCore/BString.h>
+#include <WebCore/COMPtr.h>
+#include <wtf/Assertions.h>
+#include <wtf/Forward.h>
+
+template<typename T> struct COMVariantSetter {};
+
+template<typename T> struct COMVariantSetterBase
+{
+ static inline VARENUM variantType(const T&)
+ {
+ return COMVariantSetter<T>::VariantType;
+ }
+};
+
+template<> struct COMVariantSetter<WTF::String> : COMVariantSetterBase<WTF::String>
+{
+ static const VARENUM VariantType = VT_BSTR;
+
+ static void setVariant(VARIANT* variant, const WTF::String& value)
+ {
+ ASSERT(V_VT(variant) == VT_EMPTY);
+
+ V_VT(variant) = VariantType;
+ V_BSTR(variant) = WebCore::BString(value).release();
+ }
+};
+
+template<> struct COMVariantSetter<bool> : COMVariantSetterBase<bool>
+{
+ static const VARENUM VariantType = VT_BOOL;
+
+ static void setVariant(VARIANT* variant, bool value)
+ {
+ ASSERT(V_VT(variant) == VT_EMPTY);
+
+ V_VT(variant) = VariantType;
+ V_BOOL(variant) = value;
+ }
+};
+
+template<> struct COMVariantSetter<unsigned long long> : COMVariantSetterBase<unsigned long long>
+{
+ static const VARENUM VariantType = VT_UI8;
+
+ static void setVariant(VARIANT* variant, unsigned long long value)
+ {
+ ASSERT(V_VT(variant) == VT_EMPTY);
+
+ V_VT(variant) = VariantType;
+ V_UI8(variant) = value;
+ }
+};
+
+template<> struct COMVariantSetter<int> : COMVariantSetterBase<int>
+{
+ static const VARENUM VariantType = VT_I4;
+
+ static void setVariant(VARIANT* variant, int value)
+ {
+ ASSERT(V_VT(variant) == VT_EMPTY);
+
+ V_VT(variant) = VariantType;
+ V_I4(variant) = value;
+ }
+};
+
+template<> struct COMVariantSetter<float> : COMVariantSetterBase<float>
+{
+ static const VARENUM VariantType = VT_R4;
+
+ static void setVariant(VARIANT* variant, float value)
+ {
+ ASSERT(V_VT(variant) == VT_EMPTY);
+
+ V_VT(variant) = VariantType;
+ V_R4(variant) = value;
+ }
+};
+
+template<typename T> struct COMVariantSetter<COMPtr<T> > : COMVariantSetterBase<COMPtr<T> >
+{
+ static const VARENUM VariantType = VT_UNKNOWN;
+
+ static void setVariant(VARIANT* variant, const COMPtr<T>& value)
+ {
+ ASSERT(V_VT(variant) == VT_EMPTY);
+
+ V_VT(variant) = VariantType;
+ V_UNKNOWN(variant) = value.get();
+ value->AddRef();
+ }
+};
+
+template<typename COMType, typename UnderlyingType>
+struct COMIUnknownVariantSetter : COMVariantSetterBase<UnderlyingType>
+{
+ static const VARENUM VariantType = VT_UNKNOWN;
+
+ static void setVariant(VARIANT* variant, const UnderlyingType& value)
+ {
+ ASSERT(V_VT(variant) == VT_EMPTY);
+
+ V_VT(variant) = VariantType;
+ V_UNKNOWN(variant) = COMType::createInstance(value);
+ }
+};
+
+class COMVariant {
+public:
+ COMVariant()
+ {
+ ::VariantInit(&m_variant);
+ }
+
+ template<typename UnderlyingType>
+ COMVariant(UnderlyingType value)
+ {
+ ::VariantInit(&m_variant);
+ COMVariantSetter<UnderlyingType>::setVariant(&m_variant, value);
+ }
+
+ ~COMVariant()
+ {
+ ::VariantClear(&m_variant);
+ }
+
+ COMVariant(const COMVariant& other)
+ {
+ ::VariantInit(&m_variant);
+ other.copyTo(&m_variant);
+ }
+
+ COMVariant& operator=(const COMVariant& other)
+ {
+ other.copyTo(&m_variant);
+ return *this;
+ }
+
+ void copyTo(VARIANT* dest) const
+ {
+ ::VariantCopy(dest, const_cast<VARIANT*>(&m_variant));
+ }
+
+ VARENUM variantType() const { return static_cast<VARENUM>(V_VT(&m_variant)); }
+
+private:
+ VARIANT m_variant;
+};
+
+template<> struct COMVariantSetter<COMVariant>
+{
+ static inline VARENUM variantType(const COMVariant& value)
+ {
+ return value.variantType();
+ }
+
+ static void setVariant(VARIANT* variant, const COMVariant& value)
+ {
+ ASSERT(V_VT(variant) == VT_EMPTY);
+
+ value.copyTo(variant);
+ }
+};
+
+#endif // COMVariantSetter
diff --git a/Source/WebKit/win/ChangeLog b/Source/WebKit/win/ChangeLog
index 5540ab3..870b692 100644
--- a/Source/WebKit/win/ChangeLog
+++ b/Source/WebKit/win/ChangeLog
@@ -1,3 +1,443 @@
+2011-03-30 Martin Robinson <mrobinson@igalia.com>
+
+ Reviewed by Dirk Schulze.
+
+ [Cairo] Better separate the concerns of GraphicsContextCairo
+ https://bugs.webkit.org/show_bug.cgi?id=55150
+
+ * WebFrame.cpp:
+ (hdcFromContext): Modify this method to take PlatformContextCairo
+ instead of a cairo_t.
+ (WebFrame::spoolPage): Update to reflect new platform context.
+ (WebFrame::spoolPages): Ditto.
+ * WebFrame.h: Ditto.
+
+2011-03-30 Steve Falkenburg <sfalken@apple.com>
+
+ Reviewed by Adam Roben.
+
+ Update Windows production build logic for new production configurations
+ https://bugs.webkit.org/show_bug.cgi?id=57494
+
+ * WebKit.vcproj/InterfacesProduction.vsprops:
+ * WebKit.vcproj/WebKit.make:
+ * WebKit.vcproj/WebKitGUIDProduction.vsprops:
+ * WebKit.vcproj/WebKitLibProduction.vsprops:
+
+2011-03-30 Steve Falkenburg <sfalken@apple.com>
+
+ Reviewed by Adam Roben.
+
+ Rename Windows configuration Release_LTCG to Production for clarity
+ https://bugs.webkit.org/show_bug.cgi?id=57465
+
+ * WebKit.vcproj/Interfaces.vcproj:
+ * WebKit.vcproj/InterfacesProduction.vsprops: Copied from Source/WebKit/win/WebKit.vcproj/InterfacesReleaseLTCG.vsprops.
+ * WebKit.vcproj/InterfacesReleaseLTCG.vsprops: Removed.
+ * WebKit.vcproj/WebKit.sln:
+ * WebKit.vcproj/WebKit.submit.sln:
+ * WebKit.vcproj/WebKit.vcproj:
+ * WebKit.vcproj/WebKitGUID.vcproj:
+ * WebKit.vcproj/WebKitGUIDProduction.vsprops: Copied from Source/WebKit/win/WebKit.vcproj/WebKitGUIDReleaseLTCG.vsprops.
+ * WebKit.vcproj/WebKitGUIDReleaseLTCG.vsprops: Removed.
+ * WebKit.vcproj/WebKitLibProduction.vsprops: Copied from Source/WebKit/win/WebKit.vcproj/WebKitLibReleaseLTCG.vsprops.
+ * WebKit.vcproj/WebKitLibReleaseLTCG.vsprops: Removed.
+
+2011-03-29 Patrick Gansterer <paroga@webkit.org>
+
+ Reviewed by Adam Roben.
+
+ [WIN] Remove unused GEN_DOMObject files
+ https://bugs.webkit.org/show_bug.cgi?id=57370
+
+ * GEN_DOMObject.cpp: Removed.
+ * GEN_DOMObject.h: Removed.
+
+2011-03-29 Steve Falkenburg <sfalken@apple.com>
+
+ More build fix.
+
+ * WebCoreSupport/WebPlatformStrategies.h:
+
+2011-03-29 Steve Falkenburg <sfalken@apple.com>
+
+ Build fix.
+
+ * WebCoreSupport/WebPlatformStrategies.cpp:
+ (WebPlatformStrategies::contextMenuItemTagLookUpInDictionary):
+
+2011-03-29 Patrick Gansterer <paroga@webkit.org>
+
+ Unreviewed. Try to fix Windows build.
+
+ * DOMEventsClasses.cpp: Added initguid.h again.
+
+2011-03-29 Patrick Gansterer <paroga@webkit.org>
+
+ Reviewed by Adam Roben.
+
+ [WIN] Cleanup includes in WebKit files
+ https://bugs.webkit.org/show_bug.cgi?id=57381
+
+ Add missing includes to fix build without precompiled header.
+ Also fix paths in #include statements (e.g. WTF -> wtf).
+
+ * AccessibleBase.h:
+ * AccessibleDocument.h: Replace using statement with a qualified name.
+ * CFDictionaryPropertyBag.h:
+ * DOMEventsClasses.cpp:
+ * DOMHTMLClasses.h:
+ * DefaultDownloadDelegate.cpp:
+ * DefaultDownloadDelegate.h:
+ * DefaultPolicyDelegate.cpp:
+ * DefaultPolicyDelegate.h:
+ * WebCoreSupport/EmbeddedWidget.h:
+ * WebCoreSupport/WebInspectorDelegate.h:
+ * WebDataSource.h:
+ * WebDatabaseManager.h:
+ * WebElementPropertyBag.h:
+ * WebFramePolicyListener.h:
+ * WebGeolocationPolicyListener.h:
+ * WebHistory.h:
+ * WebKitClassFactory.h:
+ * WebScriptWorld.h:
+ * WebSerializedJSValue.h:
+ * WebUserContentURLPattern.h:
+
+2011-03-29 Steve Falkenburg <sfalken@apple.com>
+
+ Reviewed by Darin Adler.
+
+ Use per-configuration vsprops in WebKit to avoid WebKitVSPropsRedirectionDir removal by MSVC IDE
+ https://bugs.webkit.org/show_bug.cgi?id=57383
+
+ Visual Studio's IDE was removing instances of $(WebKitVSPropsRedirectionDir) from
+ InheritedPropertySheet rules in our vcproj files when the vcproj was edited from within
+ the IDE. To avoid this, add a separate vsprops file for each project configuration that
+ contains the required inherited property sheets.
+
+ * WebKit.vcproj/Interfaces.vcproj:
+ * WebKit.vcproj/InterfacesDebug.vsprops: Added.
+ * WebKit.vcproj/InterfacesDebugAll.vsprops: Added.
+ * WebKit.vcproj/InterfacesDebugCairoCFLite.vsprops: Added.
+ * WebKit.vcproj/InterfacesRelease.vsprops: Added.
+ * WebKit.vcproj/InterfacesReleaseCairoCFLite.vsprops: Added.
+ * WebKit.vcproj/InterfacesReleaseLTCG.vsprops: Added.
+ * WebKit.vcproj/WebKit.vcproj:
+ * WebKit.vcproj/WebKitGUID.vcproj:
+ * WebKit.vcproj/WebKitGUIDDebug.vsprops: Added.
+ * WebKit.vcproj/WebKitGUIDDebugAll.vsprops: Added.
+ * WebKit.vcproj/WebKitGUIDDebugCairoCFLite.vsprops: Added.
+ * WebKit.vcproj/WebKitGUIDRelease.vsprops: Added.
+ * WebKit.vcproj/WebKitGUIDReleaseCairoCFLite.vsprops: Added.
+ * WebKit.vcproj/WebKitGUIDReleaseLTCG.vsprops: Added.
+ * WebKit.vcproj/WebKitLibDebug.vsprops: Added.
+ * WebKit.vcproj/WebKitLibDebugAll.vsprops: Added.
+ * WebKit.vcproj/WebKitLibDebugCairoCFLite.vsprops: Added.
+ * WebKit.vcproj/WebKitLibRelease.vsprops: Added.
+ * WebKit.vcproj/WebKitLibReleaseCairoCFLite.vsprops: Added.
+ * WebKit.vcproj/WebKitLibReleaseLTCG.vsprops: Added.
+
+2011-03-29 Patrick Gansterer <paroga@webkit.org>
+
+ Reviewed by Adam Roben.
+
+ Remove #pragma warning push and pop statements
+ https://bugs.webkit.org/show_bug.cgi?id=57198
+
+ We do not need to disable warnings via #pragma since we started
+ compiling WebCore with the same compiler warnings flags as WebKit.
+
+ * DOMCSSClasses.cpp:
+ * DOMCoreClasses.cpp:
+ * DOMEventsClasses.cpp:
+ * DOMHTMLClasses.cpp:
+ * DefaultDownloadDelegate.cpp:
+ * DefaultPolicyDelegate.cpp:
+ * MarshallingHelpers.cpp:
+ * WebActionPropertyBag.cpp:
+ * WebActionPropertyBag.h:
+ * WebCache.cpp:
+ * WebCoreSupport/WebDragClient.cpp:
+ * WebCoreSupport/WebEditorClient.cpp:
+ * WebCoreSupport/WebEditorClient.h:
+ * WebCoreSupport/WebFrameLoaderClient.cpp:
+ * WebCoreSupport/WebFrameLoaderClient.h:
+ * WebCoreSupport/WebInspectorClient.cpp:
+ * WebDocumentLoader.h:
+ * WebDownload.cpp:
+ * WebDownloadCFNet.cpp:
+ * WebDownloadCurl.cpp:
+ * WebElementPropertyBag.cpp:
+ * WebError.cpp:
+ * WebError.h:
+ * WebFrame.cpp:
+ * WebFrame.h:
+ * WebFramePolicyListener.cpp:
+ * WebFramePolicyListener.h:
+ * WebHistory.cpp:
+ * WebHistoryItem.cpp:
+ * WebIconDatabase.cpp:
+ * WebIconDatabase.h:
+ * WebInspector.cpp:
+ * WebJavaScriptCollector.cpp:
+ * WebKitGraphics.cpp:
+ * WebKitSystemBits.cpp:
+ * WebLocalizableStrings.cpp:
+ * WebMutableURLRequest.cpp:
+ * WebMutableURLRequest.h:
+ * WebNodeHighlight.cpp:
+ * WebNodeHighlight.h:
+ * WebNotificationCenter.cpp:
+ * WebResource.cpp:
+ * WebResource.h:
+ * WebScrollBar.cpp:
+ * WebScrollBar.h:
+ * WebURLAuthenticationChallenge.cpp:
+ * WebURLAuthenticationChallenge.h:
+ * WebURLAuthenticationChallengeSender.cpp:
+ * WebURLAuthenticationChallengeSenderCFNet.cpp:
+ * WebURLAuthenticationChallengeSenderCurl.cpp:
+ * WebURLCredential.cpp:
+ * WebURLCredential.h:
+ * WebURLProtectionSpace.cpp:
+ * WebURLProtectionSpace.h:
+ * WebURLResponse.cpp:
+ * WebURLResponse.h:
+
+2011-03-29 Brent Fulgham <bfulgham@webkit.org>
+
+ Unreviewed build fix after r82247.
+
+ * WebMutableURLRequest.cpp: The new CertificateCFWin routines
+ are not CFNetwork-specific. All CF-based ports can use them.
+
+2011-03-29 Patrick Gansterer <paroga@webkit.org>
+
+ Reviewed by Adam Roben.
+
+ [WIN] Use WCHAR instead of TCHAR
+ https://bugs.webkit.org/show_bug.cgi?id=57191
+
+ We always use the UNICODE versions of windows functions, so
+ the usage of TCHAR makes no sense and mixing them is bad style.
+
+ * DefaultDownloadDelegate.cpp:
+ * WebCoreSupport/WebChromeClient.cpp:
+ * WebCoreSupport/WebContextMenuClient.cpp:
+ * WebCoreSupport/WebInspectorClient.cpp:
+ * WebKitDLL.cpp:
+ * WebNotificationCenter.cpp:
+ * WebPreferences.cpp:
+ * WebURLResponse.cpp:
+ * WebView.cpp:
+
+2011-03-29 Jeff Miller <jeffm@apple.com>
+
+ Reviewed by Jon Honeycutt.
+
+ Add WebCore::copyCertificateToData() on Windows
+ https://bugs.webkit.org/show_bug.cgi?id=57296
+
+ Remove duplicate code that implemented this functionality in WebMutableURLRequest.cpp and use WebCore::copyCertificateToData() instead.
+
+ * WebMutableURLRequest.cpp:
+ (WebMutableURLRequest::setClientCertificate): Use WebCore::copyCertificateToData().
+
+2011-03-28 Patrick Gansterer <paroga@webkit.org>
+
+ Reviewed by Adam Roben.
+
+ [WIN] Remove unused DOMCreateInstance files
+ https://bugs.webkit.org/show_bug.cgi?id=57193
+
+ * DOMCreateInstance.cpp: Removed.
+ * DOMCreateInstance.h: Removed.
+
+2011-03-28 Adele Peterson <adele@apple.com>
+
+ Build fix.
+
+ * WebFrame.cpp: (WebFrame::hasSpellingMarker):
+ Call new selectionStartHasMarkerFor method instead of selectionStartHasSpellingMarkerFor.
+
+2011-03-28 Jeff Miller <jeffm@apple.com>
+
+ Reviewed by Adam Roben.
+
+ Include certificate when sending a WebCore::ResourceError to UI process on Windows
+ https://bugs.webkit.org/show_bug.cgi?id=57195
+
+ Rename callers of wkGetSSLPeerCertificateData() to use wkGetSSLPeerCertificateDataBytePtr(), since it returns a void*.
+
+ * WebError.cpp:
+ (WebError::sslPeerCertificate):
+ * WebURLResponse.cpp:
+ (WebURLResponse::sslPeerCertificate):
+
+2011-03-28 Darin Adler <darin@apple.com>
+
+ Set eol-style to native on more files. I noticed the last check-in had an entire file
+ changing because of an EOL style change, and setting this property prevents that from
+ happening in future. We may want to do this systematically for more of WebKit later.
+
+ * AccessibleBase.cpp: Added property svn:eol-style.
+ * AccessibleBase.h: Added property svn:eol-style.
+ * AccessibleDocument.cpp: Added property svn:eol-style.
+ * AccessibleDocument.h: Added property svn:eol-style.
+ * AccessibleImage.cpp: Added property svn:eol-style.
+ * AccessibleImage.h: Added property svn:eol-style.
+ * COMVariantSetter.h: Added property svn:eol-style.
+ * FullscreenVideoController.cpp: Added property svn:eol-style.
+ * FullscreenVideoController.h: Added property svn:eol-style.
+ * WebCoreSupport/EmbeddedWidget.cpp: Added property svn:eol-style.
+ * WebCoreSupport/EmbeddedWidget.h: Added property svn:eol-style.
+ * WebCoreSupport/WebDesktopNotificationsDelegate.cpp: Added property svn:eol-style.
+ * WebCoreSupport/WebDesktopNotificationsDelegate.h: Added property svn:eol-style.
+ * WebCoreSupport/WebFrameLoaderClient.cpp: Added property svn:eol-style.
+ * WebCoreSupport/WebInspectorDelegate.cpp: Added property svn:eol-style.
+ * WebCoreSupport/WebInspectorDelegate.h: Added property svn:eol-style.
+ * WebCoreSupport/WebPlatformStrategies.cpp: Added property svn:eol-style.
+ * WebCoreSupport/WebPlatformStrategies.h: Added property svn:eol-style.
+ * WebCoreSupport/WebPluginHalterClient.cpp: Added property svn:eol-style.
+ * WebCoreSupport/WebPluginHalterClient.h: Added property svn:eol-style.
+
+2011-03-28 Patrick Gansterer <paroga@webkit.org>
+
+ Unreviewed build fix.
+
+ * COMPropertyBag.h: Added missing include.
+ * WebKitCOMAPI.h: Ditto.
+ * WebCoreSupport/WebFrameLoaderClient.h: Added missing forward declaration.
+
+2011-03-25 Sam Weinig <sam@webkit.org>
+
+ Reviewed by Jon Honeycutt.
+
+ WebScrollBar not updating when calling WebScrollBar::setValue.
+ <rdar://problem/9143871>
+
+ * WebScrollBar.cpp:
+ (WebScrollBar::setValue):
+ Call scrollToOffsetWithoutAnimation to actually update the scroll position.
+
+2011-03-25 Andy Estes <aestes@apple.com>
+
+ Reviewed by Adele Peterson.
+
+ REGRESSION (r70748): latest nightly builds kills AC_QuickTime.js
+ https://bugs.webkit.org/show_bug.cgi?id=49016
+
+ Update objectContentType() implementation to handle the
+ shouldPreferPlugInsForImages flag.
+
+ * WebFrame.cpp:
+ (WebFrame::objectContentType):
+ * WebFrame.h:
+
+2011-03-24 Sheriff Bot <webkit.review.bot@gmail.com>
+
+ Unreviewed, rolling out r81916 and r81917.
+ http://trac.webkit.org/changeset/81916
+ http://trac.webkit.org/changeset/81917
+ https://bugs.webkit.org/show_bug.cgi?id=57071
+
+ broke a test on platforms that do not have QuickTime installed
+ (Requested by estes on #webkit).
+
+ * WebFrame.cpp:
+ (WebFrame::objectContentType):
+ * WebFrame.h:
+
+2011-03-24 Andy Estes <aestes@apple.com>
+
+ Reviewed by Darin Adler.
+
+ REGRESSION (r70748): latest nightly builds kills AC_QuickTime.js
+ https://bugs.webkit.org/show_bug.cgi?id=49016
+
+ Update objectContentType() implementation to handle the
+ shouldPreferPlugInsForImages flag.
+
+ * WebFrame.cpp:
+ (WebFrame::objectContentType):
+ * WebFrame.h:
+
+2011-03-23 Brady Eidson <beidson@apple.com>
+
+ Reviewed by Sam Weinig.
+
+ Change IconDatabase opening to allow for arbitrary filenames
+ https://bugs.webkit.org/show_bug.cgi?id=56977
+
+ * WebIconDatabase.cpp:
+ (WebIconDatabase::startUpIconDatabase):
+
+2011-03-22 Brady Eidson <beidson@apple.com>
+
+ Reviewed by Sam Weinig.
+
+ <rdar://problem/8648311> and https://bugs.webkit.org/show_bug.cgi?id=56876
+ WK2 Icon DB: Expand IconDatabaseClient interface and move it to the main thread
+
+ Note that while the new client calls always come through on the main thread, our mechanisms to
+ route dispatches to the main thread are still valid and will still work.
+
+ Update to the new IconDatabaseClient interface:
+ * WebIconDatabase.cpp:
+ (WebIconDatabase::performImport):
+ (WebIconDatabase::didRemoveAllIcons):
+ (WebIconDatabase::didImportIconURLForPageURL):
+ (WebIconDatabase::didImportIconDataForPageURL):
+ (WebIconDatabase::didChangeIconForPageURL):
+ (WebIconDatabase::didFinishURLImport):
+ * WebIconDatabase.h:
+
+2011-03-17 Brady Eidson <beidson@apple.com>
+
+ Reviewed by Sam Weinig.
+
+ https://bugs.webkit.org/show_bug.cgi?id=56425
+ More groundwork for WebKit2 IconDatabase
+
+ Update already-used function names:
+ * WebIconDatabase.cpp:
+ (WebIconDatabase::iconForURL):
+ (WebIconDatabase::iconURLForURL):
+ (WebIconDatabase::hasIconForURL):
+
+2011-03-18 Pavel Podivilov <podivilov@chromium.org>
+
+ Reviewed by Yury Semikhatsky.
+
+ Web Inspector: implement inspector session storage.
+ https://bugs.webkit.org/show_bug.cgi?id=56643
+
+ * WebCoreSupport/WebInspectorClient.cpp:
+ (WebInspectorClient::saveSessionSetting):
+ (WebInspectorClient::loadSessionSetting):
+ (WebInspectorFrontendClient::saveSessionSetting):
+ (WebInspectorFrontendClient::loadSessionSetting):
+ * WebCoreSupport/WebInspectorClient.h:
+
+2011-03-11 Brady Eidson <beidson@apple.com>
+
+ More Windows build fix for https://bugs.webkit.org/show_bug.cgi?id=56216
+
+ * WebCoreStatistics.cpp:
+ * WebIconDatabase.cpp:
+
+2011-03-09 Peter Kasting <pkasting@google.com>
+
+ Reviewed by Mihai Parparita.
+
+ Unify Windows version checks.
+ https://bugs.webkit.org/show_bug.cgi?id=55979
+
+ * WebView.cpp:
+ (WebView::standardUserAgentWithApplicationName):
+ (webKitVersionString):
+
2011-03-07 Sam Weinig <sam@webkit.org>
Reviewed by Anders Carlsson.
diff --git a/Source/WebKit/win/DOMCSSClasses.cpp b/Source/WebKit/win/DOMCSSClasses.cpp
index b89053b..0220031 100644
--- a/Source/WebKit/win/DOMCSSClasses.cpp
+++ b/Source/WebKit/win/DOMCSSClasses.cpp
@@ -27,9 +27,7 @@
#include "WebKitDLL.h"
#include "DOMCSSClasses.h"
-#pragma warning(push, 0)
#include <WebCore/PlatformString.h>
-#pragma warning(pop)
// DOMCSSStyleDeclaration - DOMCSSStyleDeclaration ----------------------------
diff --git a/Source/WebKit/win/DOMCoreClasses.cpp b/Source/WebKit/win/DOMCoreClasses.cpp
index c6b8823..b0a6031 100644
--- a/Source/WebKit/win/DOMCoreClasses.cpp
+++ b/Source/WebKit/win/DOMCoreClasses.cpp
@@ -33,7 +33,6 @@
#include "DOMHTMLClasses.h"
#include "WebKitGraphics.h"
-#pragma warning(push, 0)
#include <WebCore/BString.h>
#include <WebCore/DOMWindow.h>
#include <WebCore/Document.h>
@@ -49,7 +48,6 @@
#include <WebCore/NodeList.h>
#include <WebCore/RenderObject.h>
#include <WebCore/RenderTreeAsText.h>
-#pragma warning(pop)
#include <initguid.h>
// {3B0C0EFF-478B-4b0b-8290-D2321E08E23E}
diff --git a/Source/WebKit/win/DOMCreateInstance.cpp b/Source/WebKit/win/DOMCreateInstance.cpp
deleted file mode 100644
index ebaa4ce..0000000
--- a/Source/WebKit/win/DOMCreateInstance.cpp
+++ /dev/null
@@ -1,357 +0,0 @@
-/*
- * Copyright (C) 2007 Apple Inc. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- * 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.
- */
-
-// This file is a temporary hack to implement the createInstance methods for
-// the COM DOM bindings.
-
-#include "config.h"
-#include "DOMCreateInstance.h"
-
-#include "GEN_DOMNode.h"
-#include "GEN_DOMElement.h"
-#include "GEN_DOMDocument.h"
-#include "GEN_DOMAttr.h"
-#include "GEN_DOMText.h"
-#include "GEN_DOMCDATASection.h"
-#include "GEN_DOMEntityReference.h"
-#include "GEN_DOMEntity.h"
-#include "GEN_DOMProcessingInstruction.h"
-#include "GEN_DOMComment.h"
-#include "GEN_DOMHTMLElement.h"
-#include "GEN_DOMHTMLDocument.h"
-#include "GEN_DOMHTMLCollection.h"
-#include "GEN_DOMDocumentType.h"
-#include "GEN_DOMDocumentFragment.h"
-#include "GEN_DOMNotation.h"
-#include "GEN_DOMCSSCharsetRule.h"
-#include "GEN_DOMCSSFontFaceRule.h"
-#include "GEN_DOMCSSImportRule.h"
-#include "GEN_DOMCSSMediaRule.h"
-#include "GEN_DOMCSSPageRule.h"
-#include "GEN_DOMCSSPrimitiveValue.h"
-#include "GEN_DOMCSSRule.h"
-#include "GEN_DOMCSSRuleList.h"
-#include "GEN_DOMCSSStyleDeclaration.h"
-#include "GEN_DOMCSSStyleRule.h"
-#include "GEN_DOMCSSStyleSheet.h"
-#include "GEN_DOMCSSValueList.h"
-#include "GEN_DOMStyleSheet.h"
-#include "GEN_DOMDOMImplementation.h"
-#include "GEN_DOMNamedNodeMap.h"
-#include "GEN_DOMNodeList.h"
-#include "GEN_DOMCounter.h"
-#include "GEN_DOMCSSRuleList.h"
-#include "GEN_DOMCSSStyleDeclaration.h"
-#include "GEN_DOMMediaList.h"
-#include "GEN_DOMRect.h"
-#include "GEN_DOMStyleSheet.h"
-#include "GEN_DOMStyleSheetList.h"
-#include "GEN_DOMEvent.h"
-#include "GEN_DOMEvent.h"
-#include <wtf/HashMap.h>
-
-#pragma warning(push, 0)
-#include <WebCore/Node.h>
-#include <WebCore/Element.h>
-#include <WebCore/Document.h>
-#include <WebCore/Attr.h>
-#include <WebCore/Text.h>
-#include <WebCore/COMPtr.h>
-#include <WebCore/CDATASection.h>
-#include <WebCore/EntityReference.h>
-#include <WebCore/Entity.h>
-#include <WebCore/ProcessingInstruction.h>
-#include <WebCore/Comment.h>
-#include <WebCore/HTMLDocument.h>
-#include <WebCore/HTMLElement.h>
-#include <WebCore/HTMLCollection.h>
-#include <WebCore/DocumentType.h>
-#include <WebCore/DocumentFragment.h>
-#include <WebCore/Notation.h>
-#include <WebCore/CSSCharsetRule.h>
-#include <WebCore/CSSFontFaceRule.h>
-#include <WebCore/CSSImportRule.h>
-#include <WebCore/CSSMediaRule.h>
-#include <WebCore/CSSPageRule.h>
-#include <WebCore/CSSPrimitiveValue.h>
-#include <WebCore/CSSRule.h>
-#include <WebCore/CSSRuleList.h>
-#include <WebCore/CSSStyleDeclaration.h>
-#include <WebCore/CSSStyleRule.h>
-#include <WebCore/CSSStyleSheet.h>
-#include <WebCore/CSSValueList.h>
-#include <WebCore/StyleSheet.h>
-#include <WebCore/DOMImplementation.h>
-#include <WebCore/NamedNodeMap.h>
-#include <WebCore/NodeList.h>
-#include <WebCore/Counter.h>
-#include <WebCore/CSSRuleList.h>
-#include <WebCore/CSSStyleDeclaration.h>
-#include <WebCore/MediaList.h>
-#include <WebCore/Rect.h>
-#include <WebCore/StyleSheet.h>
-#include <WebCore/StyleSheetList.h>
-#include <WebCore/Event.h>
-#include <WebCore/EventListener.h>
-#pragma warning(pop)
-
-typedef HashMap<void*, GEN_DOMObject*> DOMWrapperCache;
-
-static DOMWrapperCache& domWrapperCache()
-{
- static DOMWrapperCache cache;
- return cache;
-}
-
-GEN_DOMObject* getDOMWrapper(void* objectHandle)
-{
- return domWrapperCache().get(objectHandle);
-}
-
-void setDOMWrapper(void* objectHandle, GEN_DOMObject* wrapper)
-{
- domWrapperCache().set(objectHandle, wrapper);
-}
-
-void removeDOMWrapper(void* objectHandle)
-{
- domWrapperCache().remove(objectHandle);
-}
-
-#define COM_DOM_PREFIX(Type) GEN_DOM##Type
-#define CREATE_ONLY_SELF(Type) \
- COM_DOM_PREFIX(Type)* COM_DOM_PREFIX(Type)::createInstance(WebCore::Type* impl) \
- { \
- if (!impl) \
- return 0; \
- if (GEN_DOMObject* cachedInstance = getDOMWrapper(impl)) { \
- cachedInstance->AddRef(); \
- return static_cast<COM_DOM_PREFIX(Type)*>(cachedInstance); \
- } \
- COMPtr<COM_DOM_PREFIX(Type)> comDOMObject = new COM_DOM_PREFIX(Type)(impl); \
- setDOMWrapper(impl, comDOMObject.get()); \
- return comDOMObject.releaseRef(); \
- } \
-
-// Core
-
-GEN_DOMNode* GEN_DOMNode::createInstance(WebCore::Node* node)
-{
- if (!node)
- return 0;
-
- if (GEN_DOMObject* cachedInstance = getDOMWrapper(node)) {
- cachedInstance->AddRef();
- return static_cast<GEN_DOMNode*>(cachedInstance);
- }
-
- COMPtr<GEN_DOMNode> domNode;
- switch (node->nodeType()) {
- case WebCore::Node::ELEMENT_NODE:
- // FIXME: add support for creating subclasses of HTMLElement.
- // FIXME: add support for creating SVGElements and its subclasses.
- if (node->isHTMLElement())
- domNode = new GEN_DOMHTMLElement(static_cast<WebCore::HTMLElement*>(node));
- else
- domNode = new GEN_DOMElement(static_cast<WebCore::Element*>(node));
- break;
- case WebCore::Node::ATTRIBUTE_NODE:
- domNode = new GEN_DOMAttr(static_cast<WebCore::Attr*>(node));
- break;
- case WebCore::Node::TEXT_NODE:
- domNode = new GEN_DOMText(static_cast<WebCore::Text*>(node));
- break;
- case WebCore::Node::CDATA_SECTION_NODE:
- domNode = new GEN_DOMCDATASection(static_cast<WebCore::CDATASection*>(node));
- break;
- case WebCore::Node::ENTITY_REFERENCE_NODE:
- domNode = new GEN_DOMEntityReference(static_cast<WebCore::EntityReference*>(node));
- break;
- case WebCore::Node::ENTITY_NODE:
- domNode = new GEN_DOMEntity(static_cast<WebCore::Entity*>(node));
- break;
- case WebCore::Node::PROCESSING_INSTRUCTION_NODE:
- domNode = new GEN_DOMProcessingInstruction(static_cast<WebCore::ProcessingInstruction*>(node));
- break;
- case WebCore::Node::COMMENT_NODE:
- domNode = new GEN_DOMComment(static_cast<WebCore::Comment*>(node));
- break;
- case WebCore::Node::DOCUMENT_NODE:
- // FIXME: add support for SVGDocument.
- if (static_cast<WebCore::Document*>(node)->isHTMLDocument())
- domNode = new GEN_DOMHTMLDocument(static_cast<WebCore::HTMLDocument*>(node));
- else
- domNode = new GEN_DOMDocument(static_cast<WebCore::Document*>(node));
- break;
- case WebCore::Node::DOCUMENT_TYPE_NODE:
- domNode = new GEN_DOMDocumentType(static_cast<WebCore::DocumentType*>(node));
- break;
- case WebCore::Node::DOCUMENT_FRAGMENT_NODE:
- domNode = new GEN_DOMDocumentFragment(static_cast<WebCore::DocumentFragment*>(node));
- break;
- case WebCore::Node::NOTATION_NODE:
- domNode = new GEN_DOMNotation(static_cast<WebCore::Notation*>(node));
- break;
- default:
- domNode = new GEN_DOMNode(node);
- break;
- }
-
- setDOMWrapper(node, domNode.get());
- return domNode.releaseRef();
-}
-
-GEN_DOMImplementation* GEN_DOMImplementation::createInstance(WebCore::DOMImplementation* impl)
-{
- if (!impl)
- return 0;
-
- if (GEN_DOMObject* cachedInstance = getDOMWrapper(impl)) {
- cachedInstance->AddRef();
- return static_cast<GEN_DOMImplementation*>(cachedInstance);
- }
-
- COMPtr<GEN_DOMImplementation> comDOMObject = new GEN_DOMImplementation(impl);
- setDOMWrapper(impl, comDOMObject.get());
- return comDOMObject.releaseRef();
-}
-
-CREATE_ONLY_SELF(NamedNodeMap)
-CREATE_ONLY_SELF(NodeList)
-
-// Events
-
-// FIXME: Add the subclasses for Event when they get generated.
-CREATE_ONLY_SELF(Event)
-
-
-// CSS
-
-GEN_DOMCSSRule* GEN_DOMCSSRule::createInstance(WebCore::CSSRule* rule)
-{
- if (!rule)
- return 0;
-
- if (GEN_DOMObject* cachedInstance = getDOMWrapper(rule)) {
- cachedInstance->AddRef();
- return static_cast<GEN_DOMCSSRule*>(cachedInstance);
- }
-
- COMPtr<GEN_DOMCSSRule> domRule;
- switch (rule->type()) {
- case WebCore::CSSRule::STYLE_RULE:
- domRule = new GEN_DOMCSSStyleRule(static_cast<WebCore::CSSStyleRule*>(rule));
- break;
- case WebCore::CSSRule::CHARSET_RULE:
- domRule = new GEN_DOMCSSCharsetRule(static_cast<WebCore::CSSCharsetRule*>(rule));
- break;
- case WebCore::CSSRule::IMPORT_RULE:
- domRule = new GEN_DOMCSSImportRule(static_cast<WebCore::CSSImportRule*>(rule));
- break;
- case WebCore::CSSRule::MEDIA_RULE:
- domRule = new GEN_DOMCSSMediaRule(static_cast<WebCore::CSSMediaRule*>(rule));
- break;
- case WebCore::CSSRule::FONT_FACE_RULE:
- domRule = new GEN_DOMCSSFontFaceRule(static_cast<WebCore::CSSFontFaceRule*>(rule));
- break;
- case WebCore::CSSRule::PAGE_RULE:
- domRule = new GEN_DOMCSSPageRule(static_cast<WebCore::CSSPageRule*>(rule));
- break;
- case WebCore::CSSRule::UNKNOWN_RULE:
- default:
- domRule = new GEN_DOMCSSRule(rule);
- break;
- }
-
- setDOMWrapper(rule, domRule.get());
- return domRule.releaseRef();
-}
-
-GEN_DOMStyleSheet* GEN_DOMStyleSheet::createInstance(WebCore::StyleSheet* styleSheet)
-{
- if (!styleSheet)
- return 0;
-
- if (GEN_DOMObject* cachedInstance = getDOMWrapper(styleSheet)) {
- cachedInstance->AddRef();
- return static_cast<GEN_DOMStyleSheet*>(cachedInstance);
- }
-
- COMPtr<GEN_DOMStyleSheet> domStyleSheet;
- if (styleSheet->isCSSStyleSheet())
- domStyleSheet = new GEN_DOMCSSStyleSheet(static_cast<WebCore::CSSStyleSheet*>(styleSheet));
- else
- domStyleSheet = new GEN_DOMStyleSheet(styleSheet);
-
- setDOMWrapper(styleSheet, domStyleSheet.get());
- return domStyleSheet.releaseRef();
-}
-
-
-GEN_DOMCSSValue* GEN_DOMCSSValue::createInstance(WebCore::CSSValue* value)
-{
- if (!value)
- return 0;
-
- if (GEN_DOMObject* cachedInstance = getDOMWrapper(value)) {
- cachedInstance->AddRef();
- return static_cast<GEN_DOMCSSValue*>(cachedInstance);
- }
-
- COMPtr<GEN_DOMCSSValue> domValue;
- switch (value->cssValueType()) {
- case WebCore::CSSValue::CSS_PRIMITIVE_VALUE:
- domValue = new GEN_DOMCSSPrimitiveValue(static_cast<WebCore::CSSPrimitiveValue*>(value));
- break;
- case WebCore::CSSValue::CSS_VALUE_LIST:
- domValue = new GEN_DOMCSSValueList(static_cast<WebCore::CSSValueList*>(value));
- break;
- case WebCore::CSSValue::CSS_INHERIT:
- domValue = new GEN_DOMCSSValue(value);
- break;
- case WebCore::CSSValue::CSS_CUSTOM:
- // FIXME: add support for SVGPaint and SVGColor
- domValue = new GEN_DOMCSSValue(value);
- break;
- }
-
- setDOMWrapper(value, domValue.get());
- return domValue.releaseRef();
-}
-
-CREATE_ONLY_SELF(Counter)
-CREATE_ONLY_SELF(CSSRuleList)
-CREATE_ONLY_SELF(CSSStyleDeclaration)
-CREATE_ONLY_SELF(MediaList)
-CREATE_ONLY_SELF(Rect)
-CREATE_ONLY_SELF(StyleSheetList)
-
-
-// HTML
-
-CREATE_ONLY_SELF(HTMLCollection)
diff --git a/Source/WebKit/win/DOMCreateInstance.h b/Source/WebKit/win/DOMCreateInstance.h
deleted file mode 100644
index a733e84..0000000
--- a/Source/WebKit/win/DOMCreateInstance.h
+++ /dev/null
@@ -1,38 +0,0 @@
-/*
- * Copyright (C) 2007 Apple Inc. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- * 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.
- */
-
-#ifndef DOMCreateInstance_h
-#define DOMCreateInstance_h
-
-class GEN_DOMObject;
-
-GEN_DOMObject* getDOMWrapper(void* objectHandle);
-void setDOMWrapper(void* objectHandle, GEN_DOMObject* wrapper);
-void removeDOMWrapper(void* objectHandle);
-
-#endif // DOMCreateInstance_h
diff --git a/Source/WebKit/win/DOMEventsClasses.cpp b/Source/WebKit/win/DOMEventsClasses.cpp
index 11e14b3..9980734 100644
--- a/Source/WebKit/win/DOMEventsClasses.cpp
+++ b/Source/WebKit/win/DOMEventsClasses.cpp
@@ -28,12 +28,10 @@
#include <initguid.h>
#include "DOMEventsClasses.h"
-#pragma warning( push, 0 )
#include <WebCore/DOMWindow.h>
#include <WebCore/Event.h>
#include <WebCore/KeyboardEvent.h>
#include <WebCore/MouseEvent.h>
-#pragma warning( pop )
// DOMEventListener -----------------------------------------------------------
diff --git a/Source/WebKit/win/DOMHTMLClasses.cpp b/Source/WebKit/win/DOMHTMLClasses.cpp
index 7fe2748..c163ec4 100644
--- a/Source/WebKit/win/DOMHTMLClasses.cpp
+++ b/Source/WebKit/win/DOMHTMLClasses.cpp
@@ -29,7 +29,6 @@
#include "COMPtr.h"
#include "WebFrame.h"
-#pragma warning(push, 0)
#include <WebCore/BString.h>
#include <WebCore/Document.h>
#include <WebCore/Element.h>
@@ -47,7 +46,6 @@
#include <WebCore/IntRect.h>
#include <WebCore/RenderObject.h>
#include <WebCore/RenderTextControl.h>
-#pragma warning(pop)
using namespace WebCore;
using namespace HTMLNames;
diff --git a/Source/WebKit/win/DOMHTMLClasses.h b/Source/WebKit/win/DOMHTMLClasses.h
index baeecc9..34c7951 100644
--- a/Source/WebKit/win/DOMHTMLClasses.h
+++ b/Source/WebKit/win/DOMHTMLClasses.h
@@ -28,9 +28,7 @@
#include "WebKit.h"
#include "DOMCoreClasses.h"
-#include "WebScriptObject.h"
-
-#include <WTF/RefPtr.h>
+#include <wtf/RefPtr.h>
namespace WebCore {
class HTMLCollection;
diff --git a/Source/WebKit/win/DefaultDownloadDelegate.cpp b/Source/WebKit/win/DefaultDownloadDelegate.cpp
index 29da6a4..d9cc71c 100644
--- a/Source/WebKit/win/DefaultDownloadDelegate.cpp
+++ b/Source/WebKit/win/DefaultDownloadDelegate.cpp
@@ -30,14 +30,13 @@
#include "WebKit.h"
#include "WebKitLogging.h"
#include "WebMutableURLRequest.h"
+#include <WebCore/COMPtr.h>
#include <wtf/text/CString.h>
#include <shlobj.h>
-#include <tchar.h>
+#include <wchar.h>
-#pragma warning(push, 0)
#include <WebCore/BString.h>
-#pragma warning(pop)
using namespace WebCore;
@@ -109,7 +108,7 @@ HRESULT STDMETHODCALLTYPE DefaultDownloadDelegate::decideDestinationWithSuggeste
{
LOG(Download, "DefaultDownloadDelegate %p - decideDestinationWithSuggestedFilename %s", download, String(filename, SysStringLen(filename)).ascii().data());
- TCHAR pathChars[MAX_PATH];
+ WCHAR pathChars[MAX_PATH];
if (FAILED(SHGetFolderPath(0, CSIDL_DESKTOPDIRECTORY | CSIDL_FLAG_CREATE, 0, 0, pathChars))) {
if (FAILED(download->setDestination(filename, true))) {
LOG_ERROR("Failed to set destination on file");
@@ -118,14 +117,14 @@ HRESULT STDMETHODCALLTYPE DefaultDownloadDelegate::decideDestinationWithSuggeste
return S_OK;
}
- size_t fullLength = _tcslen(pathChars) + SysStringLen(filename) + 2;
+ size_t fullLength = wcslen(pathChars) + SysStringLen(filename) + 2;
BSTR full = SysAllocStringLen(0, (UINT)fullLength);
if (!full)
return E_OUTOFMEMORY;
- _tcscpy_s(full, fullLength, pathChars);
- _tcscat_s(full, fullLength, _T("\\"));
- _tcscat_s(full, fullLength, filename);
+ wcscpy_s(full, fullLength, pathChars);
+ wcscat_s(full, fullLength, L"\\");
+ wcscat_s(full, fullLength, filename);
BString fullPath;
fullPath.adoptBSTR(full);
diff --git a/Source/WebKit/win/DefaultDownloadDelegate.h b/Source/WebKit/win/DefaultDownloadDelegate.h
index b8fb8a7..b670381 100644
--- a/Source/WebKit/win/DefaultDownloadDelegate.h
+++ b/Source/WebKit/win/DefaultDownloadDelegate.h
@@ -25,7 +25,6 @@
#ifndef DefaultDownloadDelegate_h
#define DefaultDownloadDelegate_h
-#include "COMPtr.h"
#include "WebKit.h"
#include <wtf/HashSet.h>
diff --git a/Source/WebKit/win/DefaultPolicyDelegate.cpp b/Source/WebKit/win/DefaultPolicyDelegate.cpp
index 67fc556..02d7bdb 100644
--- a/Source/WebKit/win/DefaultPolicyDelegate.cpp
+++ b/Source/WebKit/win/DefaultPolicyDelegate.cpp
@@ -27,11 +27,8 @@
#include "WebKitDLL.h"
#include "DefaultPolicyDelegate.h"
-#include "WebKit.h"
-
-#pragma warning(push, 0)
+#include <WebCore/COMPtr.h>
#include <WebCore/PlatformString.h>
-#pragma warning(pop)
using namespace WebCore;
diff --git a/Source/WebKit/win/DefaultPolicyDelegate.h b/Source/WebKit/win/DefaultPolicyDelegate.h
index 443cf8a..f894b38 100644
--- a/Source/WebKit/win/DefaultPolicyDelegate.h
+++ b/Source/WebKit/win/DefaultPolicyDelegate.h
@@ -26,7 +26,6 @@
#ifndef DefaultPolicyDelegate_h
#define DefaultPolicyDelegate_h
-#include "COMPtr.h"
#include "WebKit.h"
class DefaultPolicyDelegate : public IWebPolicyDelegate {
diff --git a/Source/WebKit/win/GEN_DOMObject.cpp b/Source/WebKit/win/GEN_DOMObject.cpp
deleted file mode 100644
index c8d0e3c..0000000
--- a/Source/WebKit/win/GEN_DOMObject.cpp
+++ /dev/null
@@ -1,79 +0,0 @@
-/*
- * Copyright (C) 2007 Apple Inc. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- * 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 "GEN_DOMObject.h"
-
-#include "WebKitDLL.h"
-
-#include <wtf/Assertions.h>
-
-// DOMObject ------------------------------------------------------------
-
-GEN_DOMObject::GEN_DOMObject()
- : m_refCount(0)
-{
- gClassCount++;
- gClassNameCount.add("GEN_DOMObject");
-}
-
-GEN_DOMObject::~GEN_DOMObject()
-{
- gClassCount--;
- gClassNameCount.remove("GEN_DOMObject");
-}
-
-// IUnknown -------------------------------------------------------------------
-
-HRESULT STDMETHODCALLTYPE GEN_DOMObject::QueryInterface(REFIID riid, void** ppvObject)
-{
- *ppvObject = 0;
- if (IsEqualGUID(riid, IID_IUnknown))
- *ppvObject = static_cast<IGEN_DOMObject*>(this);
- else if (IsEqualGUID(riid, IID_IGEN_DOMObject))
- *ppvObject = static_cast<GEN_DOMObject*>(this);
- else
- return E_NOINTERFACE;
-
- AddRef();
- return S_OK;
-}
-
-ULONG STDMETHODCALLTYPE GEN_DOMObject::AddRef()
-{
- return ++m_refCount;
-}
-
-ULONG STDMETHODCALLTYPE GEN_DOMObject::Release()
-{
- ULONG newRef = --m_refCount;
- if (!newRef)
- delete this;
-
- return newRef;
-}
diff --git a/Source/WebKit/win/GEN_DOMObject.h b/Source/WebKit/win/GEN_DOMObject.h
deleted file mode 100644
index bb654fb..0000000
--- a/Source/WebKit/win/GEN_DOMObject.h
+++ /dev/null
@@ -1,48 +0,0 @@
-/*
- * Copyright (C) 2007 Apple Inc. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- * 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.
- */
-
-#ifndef GEN_DOMObject_h
-#define GEN_DOMObject_h
-
-#include "WebKit.h"
-
-class GEN_DOMObject : public IGEN_DOMObject {
-public:
- // IUnknown
- virtual HRESULT STDMETHODCALLTYPE QueryInterface(REFIID, void** ppvObject);
- virtual ULONG STDMETHODCALLTYPE AddRef();
- virtual ULONG STDMETHODCALLTYPE Release();
-
-protected:
- GEN_DOMObject();
- virtual ~GEN_DOMObject();
-
- ULONG m_refCount;
-};
-
-#endif // GEN_DOMObject_h
diff --git a/Source/WebKit/win/MarshallingHelpers.cpp b/Source/WebKit/win/MarshallingHelpers.cpp
index 0cec6de..b29804e 100644
--- a/Source/WebKit/win/MarshallingHelpers.cpp
+++ b/Source/WebKit/win/MarshallingHelpers.cpp
@@ -28,11 +28,9 @@
#include "MarshallingHelpers.h"
#include "MathExtras.h"
-#pragma warning(push, 0)
#include <WebCore/IntRect.h>
#include <WebCore/KURL.h>
#include <WebCore/PlatformString.h>
-#pragma warning(pop)
using namespace WebCore;
diff --git a/Source/WebKit/win/WebActionPropertyBag.cpp b/Source/WebKit/win/WebActionPropertyBag.cpp
index c2b9e10..b20da91 100644
--- a/Source/WebKit/win/WebActionPropertyBag.cpp
+++ b/Source/WebKit/win/WebActionPropertyBag.cpp
@@ -31,13 +31,10 @@
#include "DOMCoreClasses.h"
#include "WebElementPropertyBag.h"
#include "WebKit.h"
-
-#pragma warning(push, 0)
#include <WebCore/BString.h>
#include <WebCore/EventHandler.h>
-#include <WebCore/MouseEvent.h>
#include <WebCore/HitTestResult.h>
-#pragma warning(pop)
+#include <WebCore/MouseEvent.h>
using namespace WebCore;
diff --git a/Source/WebKit/win/WebActionPropertyBag.h b/Source/WebKit/win/WebActionPropertyBag.h
index 56f8f52..a32e9c5 100644
--- a/Source/WebKit/win/WebActionPropertyBag.h
+++ b/Source/WebKit/win/WebActionPropertyBag.h
@@ -27,12 +27,9 @@
#define WebActionPropertyBag_h
#include "ocidl.h"
-
-#pragma warning(push, 0)
#include <WebCore/Frame.h>
#include <WebCore/HTMLFormElement.h>
#include <WebCore/NavigationAction.h>
-#pragma warning(pop)
class WebActionPropertyBag : public IPropertyBag {
public:
diff --git a/Source/WebKit/win/WebCache.cpp b/Source/WebKit/win/WebCache.cpp
index c7d0f31..dab1bcd 100644
--- a/Source/WebKit/win/WebCache.cpp
+++ b/Source/WebKit/win/WebCache.cpp
@@ -28,12 +28,9 @@
#include "WebCache.h"
#include "CFDictionaryPropertyBag.h"
-
-#pragma warning(push, 0)
#include <WebCore/ApplicationCacheStorage.h>
#include <WebCore/MemoryCache.h>
#include <WebCore/CrossOriginPreflightResultCache.h>
-#pragma warning(pop)
// WebCache ---------------------------------------------------------------------------
diff --git a/Source/WebKit/win/WebCoreStatistics.cpp b/Source/WebKit/win/WebCoreStatistics.cpp
index 7a9b126..0e30576 100644
--- a/Source/WebKit/win/WebCoreStatistics.cpp
+++ b/Source/WebKit/win/WebCoreStatistics.cpp
@@ -33,6 +33,7 @@
#include <WebCore/GlyphPageTreeNode.h>
#include <WebCore/IconDatabase.h>
#include <WebCore/JSDOMWindow.h>
+#include <WebCore/SharedBuffer.h>
using namespace JSC;
using namespace WebCore;
diff --git a/Source/WebKit/win/WebCoreSupport/EmbeddedWidget.h b/Source/WebKit/win/WebCoreSupport/EmbeddedWidget.h
index ccd3451..abfe76e 100644
--- a/Source/WebKit/win/WebCoreSupport/EmbeddedWidget.h
+++ b/Source/WebKit/win/WebCoreSupport/EmbeddedWidget.h
@@ -26,6 +26,7 @@
#ifndef EmbeddedWidget_h
#define EmbeddedWidget_h
+#include "WebKit.h"
#include <WebCore/COMPtr.h>
#include <WebCore/IntRect.h>
#include <WebCore/PluginView.h>
diff --git a/Source/WebKit/win/WebCoreSupport/WebChromeClient.cpp b/Source/WebKit/win/WebCoreSupport/WebChromeClient.cpp
index 65537f4..1935c5f 100644
--- a/Source/WebKit/win/WebCoreSupport/WebChromeClient.cpp
+++ b/Source/WebKit/win/WebCoreSupport/WebChromeClient.cpp
@@ -56,7 +56,7 @@
#include <WebCore/PopupMenuWin.h>
#include <WebCore/SearchPopupMenuWin.h>
#include <WebCore/WindowFeatures.h>
-#include <tchar.h>
+#include <wchar.h>
#if USE(ACCELERATED_COMPOSITING)
#include <WebCore/GraphicsLayer.h>
@@ -591,8 +591,8 @@ void WebChromeClient::exceededDatabaseQuota(Frame* frame, const String& database
uiDelegatePrivate->exceededDatabaseQuota(m_webView, kit(frame), origin.get(), BString(databaseIdentifier));
else {
// FIXME: remove this workaround once shipping Safari has the necessary delegate implemented.
- TCHAR path[MAX_PATH];
- HMODULE safariHandle = GetModuleHandle(TEXT("Safari.exe"));
+ WCHAR path[MAX_PATH];
+ HMODULE safariHandle = GetModuleHandleW(L"Safari.exe");
if (!safariHandle)
return;
GetModuleFileName(safariHandle, path, WTF_ARRAY_LENGTH(path));
@@ -606,9 +606,9 @@ void WebChromeClient::exceededDatabaseQuota(Frame* frame, const String& database
LPCTSTR productVersion;
UINT productVersionLength;
- if (!VerQueryValue(data.data(), TEXT("\\StringFileInfo\\040904b0\\ProductVersion"), (void**)&productVersion, &productVersionLength))
+ if (!VerQueryValueW(data.data(), L"\\StringFileInfo\\040904b0\\ProductVersion", (void**)&productVersion, &productVersionLength))
return;
- if (_tcsncmp(TEXT("3.1"), productVersion, productVersionLength) > 0) {
+ if (wcsncmp(L"3.1", productVersion, productVersionLength) > 0) {
const unsigned long long defaultQuota = 5 * 1024 * 1024; // 5 megabytes should hopefully be enough to test storage support.
origin->setQuota(defaultQuota);
}
@@ -738,7 +738,7 @@ void WebChromeClient::runOpenPanel(Frame*, PassRefPtr<FileChooser> prpFileChoose
return;
bool multiFile = fileChooser->allowsMultipleFiles();
- Vector<TCHAR> fileBuf(multiFile ? maxFilePathsListSize : MAX_PATH);
+ Vector<WCHAR> fileBuf(multiFile ? maxFilePathsListSize : MAX_PATH);
OPENFILENAME ofn;
@@ -750,7 +750,7 @@ void WebChromeClient::runOpenPanel(Frame*, PassRefPtr<FileChooser> prpFileChoose
ofn.lStructSize = sizeof(ofn);
ofn.hwndOwner = viewWindow;
String allFiles = allFilesText();
- allFiles.append(TEXT("\0*.*\0\0"), 6);
+ allFiles.append(L"\0*.*\0\0", 6);
ofn.lpstrFilter = allFiles.charactersWithNullTermination();
ofn.lpstrFile = fileBuf.data();
ofn.nMaxFile = fileBuf.size();
@@ -761,7 +761,7 @@ void WebChromeClient::runOpenPanel(Frame*, PassRefPtr<FileChooser> prpFileChoose
ofn.Flags = ofn.Flags | OFN_ALLOWMULTISELECT;
if (GetOpenFileName(&ofn)) {
- TCHAR* files = fileBuf.data();
+ WCHAR* files = fileBuf.data();
Vector<String> fileList;
String file(files);
if (multiFile) {
@@ -769,7 +769,7 @@ void WebChromeClient::runOpenPanel(Frame*, PassRefPtr<FileChooser> prpFileChoose
// When using the OFN_EXPLORER flag, the file list is null delimited.
// When you create a String from a ptr to this list, it will use strlen to look for the null character.
// Then we find the next file path string by using the length of the string we just created.
- TCHAR* nextFilePtr = files + file.length() + 1;
+ WCHAR* nextFilePtr = files + file.length() + 1;
String nextFile(nextFilePtr);
// If multiple files are selected, there will be a directory name first, which we don't want to add to the vector.
// We know a single file was selected if there is only one filename in the list.
diff --git a/Source/WebKit/win/WebCoreSupport/WebContextMenuClient.cpp b/Source/WebKit/win/WebCoreSupport/WebContextMenuClient.cpp
index 9405fc8..80690c7 100644
--- a/Source/WebKit/win/WebCoreSupport/WebContextMenuClient.cpp
+++ b/Source/WebKit/win/WebCoreSupport/WebContextMenuClient.cpp
@@ -41,8 +41,6 @@
#include <WebCore/ResourceRequest.h>
#include <WebCore/NotImplemented.h>
-#include <tchar.h>
-
using namespace WebCore;
WebContextMenuClient::WebContextMenuClient(WebView* webView)
diff --git a/Source/WebKit/win/WebCoreSupport/WebDragClient.cpp b/Source/WebKit/win/WebCoreSupport/WebDragClient.cpp
index c232867..5abcf6b 100644
--- a/Source/WebKit/win/WebCoreSupport/WebDragClient.cpp
+++ b/Source/WebKit/win/WebCoreSupport/WebDragClient.cpp
@@ -31,14 +31,12 @@
#include <shlobj.h>
-#pragma warning(push, 0)
#include <WebCore/ClipboardWin.h>
#include <WebCore/DragController.h>
#include <WebCore/DragData.h>
#include <WebCore/FrameView.h>
#include <WebCore/GraphicsContext.h>
#include <WebCore/Page.h>
-#pragma warning(pop)
using namespace WebCore;
diff --git a/Source/WebKit/win/WebCoreSupport/WebEditorClient.cpp b/Source/WebKit/win/WebCoreSupport/WebEditorClient.cpp
index 9f08087..1105904 100644
--- a/Source/WebKit/win/WebCoreSupport/WebEditorClient.cpp
+++ b/Source/WebKit/win/WebCoreSupport/WebEditorClient.cpp
@@ -33,7 +33,6 @@
#include "WebNotificationCenter.h"
#include "WebView.h"
#include "DOMCoreClasses.h"
-#pragma warning(push, 0)
#include <WebCore/BString.h>
#include <WebCore/Document.h>
#include <WebCore/EditCommand.h>
@@ -45,7 +44,6 @@
#include <WebCore/PlatformKeyboardEvent.h>
#include <WebCore/Range.h>
#include <WebCore/UserTypingGestureIndicator.h>
-#pragma warning(pop)
using namespace WebCore;
using namespace HTMLNames;
diff --git a/Source/WebKit/win/WebCoreSupport/WebEditorClient.h b/Source/WebKit/win/WebCoreSupport/WebEditorClient.h
index 18be400..1d0a7d0 100644
--- a/Source/WebKit/win/WebCoreSupport/WebEditorClient.h
+++ b/Source/WebKit/win/WebCoreSupport/WebEditorClient.h
@@ -27,11 +27,9 @@
#define WebEditorClient_H
#include "WebKit.h"
-#pragma warning(push, 0)
#include <WebCore/EditorClient.h>
#include <WebCore/TextCheckerClient.h>
#include <wtf/OwnPtr.h>
-#pragma warning(pop)
class WebView;
class WebNotification;
diff --git a/Source/WebKit/win/WebCoreSupport/WebFrameLoaderClient.cpp b/Source/WebKit/win/WebCoreSupport/WebFrameLoaderClient.cpp
index 03041a6..10a3190 100644
--- a/Source/WebKit/win/WebCoreSupport/WebFrameLoaderClient.cpp
+++ b/Source/WebKit/win/WebCoreSupport/WebFrameLoaderClient.cpp
@@ -49,7 +49,6 @@
#include "WebURLAuthenticationChallenge.h"
#include "WebURLResponse.h"
#include "WebView.h"
-#pragma warning(push, 0)
#include <WebCore/BackForwardController.h>
#include <WebCore/CachedFrame.h>
#include <WebCore/DocumentLoader.h>
@@ -69,7 +68,6 @@
#include <WebCore/RenderPart.h>
#include <WebCore/ResourceHandle.h>
#include <WebCore/Settings.h>
-#pragma warning(pop)
using namespace WebCore;
using namespace HTMLNames;
diff --git a/Source/WebKit/win/WebCoreSupport/WebFrameLoaderClient.h b/Source/WebKit/win/WebCoreSupport/WebFrameLoaderClient.h
index 57de2ad..d864b23 100644
--- a/Source/WebKit/win/WebCoreSupport/WebFrameLoaderClient.h
+++ b/Source/WebKit/win/WebCoreSupport/WebFrameLoaderClient.h
@@ -29,9 +29,7 @@
#ifndef WebFrameLoaderClient_h
#define WebFrameLoaderClient_h
-#pragma warning(push, 0)
#include <WebCore/FrameLoaderClient.h>
-#pragma warning(pop)
namespace WebCore {
class PluginManualLoader;
@@ -40,6 +38,7 @@ namespace WebCore {
template <typename T> class COMPtr;
class WebFrame;
+class WebHistory;
class WebFrameLoaderClient : public WebCore::FrameLoaderClient {
public:
diff --git a/Source/WebKit/win/WebCoreSupport/WebInspectorClient.cpp b/Source/WebKit/win/WebCoreSupport/WebInspectorClient.cpp
index 2922485..a93765d 100644
--- a/Source/WebKit/win/WebCoreSupport/WebInspectorClient.cpp
+++ b/Source/WebKit/win/WebCoreSupport/WebInspectorClient.cpp
@@ -35,7 +35,6 @@
#include "WebNodeHighlight.h"
#include "WebView.h"
-#pragma warning(push, 0)
#include <WebCore/BString.h>
#include <WebCore/Element.h>
#include <WebCore/FloatRect.h>
@@ -45,9 +44,8 @@
#include <WebCore/Page.h>
#include <WebCore/RenderObject.h>
#include <WebCore/WindowMessageBroadcaster.h>
-#pragma warning(pop)
-#include <tchar.h>
+#include <wchar.h>
#include <wtf/RetainPtr.h>
#include <wtf/text/StringConcatenate.h>
@@ -322,6 +320,16 @@ void WebInspectorFrontendClient::inspectedURLChanged(const String& newURL)
updateWindowTitle();
}
+void WebInspectorFrontendClient::saveSessionSetting(const String& key, const String& value)
+{
+ m_inspectorClient->saveSessionSetting(key, value);
+}
+
+void WebInspectorFrontendClient::loadSessionSetting(const String& key, String* value)
+{
+ m_inspectorClient->loadSessionSetting(key, value);
+}
+
void WebInspectorFrontendClient::closeWindowWithoutNotifications()
{
if (!m_frontendHwnd)
diff --git a/Source/WebKit/win/WebCoreSupport/WebInspectorClient.h b/Source/WebKit/win/WebCoreSupport/WebInspectorClient.h
index a059559..e5ddbd5 100644
--- a/Source/WebKit/win/WebCoreSupport/WebInspectorClient.h
+++ b/Source/WebKit/win/WebCoreSupport/WebInspectorClient.h
@@ -35,7 +35,9 @@
#include <WebCore/PlatformString.h>
#include <WebCore/WindowMessageListener.h>
#include <wtf/Forward.h>
+#include <wtf/HashMap.h>
#include <wtf/OwnPtr.h>
+#include <wtf/text/StringHash.h>
#include <windows.h>
namespace WebCore {
@@ -73,6 +75,9 @@ public:
releaseFrontendPage();
}
+ void saveSessionSetting(const WTF::String& key, const WTF::String& value);
+ void loadSessionSetting(const WTF::String& key, WTF::String* value);
+
private:
~WebInspectorClient();
WTF::PassOwnPtr<WebCore::InspectorFrontendClientLocal::Settings> createFrontendSettings();
@@ -83,6 +88,8 @@ private:
HWND m_frontendHwnd;
OwnPtr<WebNodeHighlight> m_highlight;
+
+ WTF::HashMap<WTF::String, WTF::String> m_sessionSettings;
};
class WebInspectorFrontendClient : public WebCore::InspectorFrontendClientLocal, WebCore::WindowMessageListener {
@@ -104,6 +111,9 @@ public:
virtual void setAttachedWindowHeight(unsigned height);
virtual void inspectedURLChanged(const WTF::String& newURL);
+ virtual void saveSessionSetting(const WTF::String& key, const WTF::String& value);
+ virtual void loadSessionSetting(const WTF::String& key, WTF::String* value);
+
private:
~WebInspectorFrontendClient();
diff --git a/Source/WebKit/win/WebCoreSupport/WebInspectorDelegate.h b/Source/WebKit/win/WebCoreSupport/WebInspectorDelegate.h
index 7561d5a..dce935a 100644
--- a/Source/WebKit/win/WebCoreSupport/WebInspectorDelegate.h
+++ b/Source/WebKit/win/WebCoreSupport/WebInspectorDelegate.h
@@ -1,336 +1,330 @@
-/*
- * Copyright (C) 2008 Matt Lilek <webkit@mattlilek.com>
- *
- * 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.
- */
-
-#ifndef WebInspectorDelegate_h
-#define WebInspectorDelegate_h
-
-struct IDataObject;
-struct IPropertyBag;
-struct IWebView;
-struct IWebFrame;
-struct IWebError;
-struct IWebURLRequest;
-struct IWebOpenPanelResultListener;
-
-class WebInspectorDelegate : public IWebUIDelegate {
-public:
- static WebInspectorDelegate* createInstance();
-
- // IUnknown
- virtual ULONG STDMETHODCALLTYPE AddRef();
- virtual ULONG STDMETHODCALLTYPE Release();
- virtual HRESULT STDMETHODCALLTYPE QueryInterface(REFIID, void**) { return E_NOTIMPL; };
-
- // IWebUIDelegate
- virtual HRESULT STDMETHODCALLTYPE dragDestinationActionMaskForDraggingInfo(
- /* [in] */ IWebView*,
- /* [in] */ IDataObject*,
- /* [retval][out] */ WebDragDestinationAction* action);
-
- // Not implemented
- virtual HRESULT STDMETHODCALLTYPE createWebViewWithRequest(
- /* [in] */ IWebView*,
- /* [in] */ IWebURLRequest*,
- /* [retval][out] */ IWebView**) { return E_NOTIMPL; }
-
- virtual HRESULT STDMETHODCALLTYPE webViewShow(
- /* [in] */ IWebView*) { return E_NOTIMPL; }
-
- virtual HRESULT STDMETHODCALLTYPE webViewClose(
- /* [in] */ IWebView*) { return E_NOTIMPL; }
-
- virtual HRESULT STDMETHODCALLTYPE webViewFocus(
- /* [in] */ IWebView*) { return E_NOTIMPL; }
-
- virtual HRESULT STDMETHODCALLTYPE webViewUnfocus(
- /* [in] */ IWebView*) { return E_NOTIMPL; }
-
- virtual HRESULT STDMETHODCALLTYPE webViewFirstResponder(
- /* [in] */ IWebView*,
- /* [retval][out] */ OLE_HANDLE*) { return E_NOTIMPL; }
-
- virtual HRESULT STDMETHODCALLTYPE makeFirstResponder(
- /* [in] */ IWebView*,
- /* [in] */ OLE_HANDLE) { return E_NOTIMPL; }
-
- virtual HRESULT STDMETHODCALLTYPE setStatusText(
- /* [in] */ IWebView*,
- /* [in] */ BSTR) { return E_NOTIMPL; }
-
- virtual HRESULT STDMETHODCALLTYPE webViewStatusText(
- /* [in] */ IWebView*,
- /* [retval][out] */ BSTR*) { return E_NOTIMPL; }
-
- virtual HRESULT STDMETHODCALLTYPE webViewAreToolbarsVisible(
- /* [in] */ IWebView*,
- /* [retval][out] */ BOOL*) { return E_NOTIMPL; }
-
- virtual HRESULT STDMETHODCALLTYPE setToolbarsVisible(
- /* [in] */ IWebView*,
- /* [in] */ BOOL) { return E_NOTIMPL; }
-
- virtual HRESULT STDMETHODCALLTYPE webViewIsStatusBarVisible(
- /* [in] */ IWebView*,
- /* [retval][out] */ BOOL*) { return E_NOTIMPL; }
-
- virtual HRESULT STDMETHODCALLTYPE setStatusBarVisible(
- /* [in] */ IWebView*,
- /* [in] */ BOOL) { return E_NOTIMPL; }
-
- virtual HRESULT STDMETHODCALLTYPE webViewIsResizable(
- /* [in] */ IWebView*,
- /* [retval][out] */ BOOL*) { return E_NOTIMPL; }
-
- virtual HRESULT STDMETHODCALLTYPE setResizable(
- /* [in] */ IWebView*,
- /* [in] */ BOOL) { return E_NOTIMPL; }
-
- virtual HRESULT STDMETHODCALLTYPE setFrame(
- /* [in] */ IWebView*,
- /* [in] */ RECT*) { return E_NOTIMPL; }
-
- virtual HRESULT STDMETHODCALLTYPE webViewFrame(
- /* [in] */ IWebView*,
- /* [retval][out] */ RECT*) { return E_NOTIMPL; }
-
- virtual HRESULT STDMETHODCALLTYPE setContentRect(
- /* [in] */ IWebView*,
- /* [in] */ RECT*) { return E_NOTIMPL; }
-
- virtual HRESULT STDMETHODCALLTYPE webViewContentRect(
- /* [in] */ IWebView*,
- /* [retval][out] */ RECT*) { return E_NOTIMPL; }
-
- virtual HRESULT STDMETHODCALLTYPE runJavaScriptAlertPanelWithMessage(
- /* [in] */ IWebView*,
- /* [in] */ BSTR) { return E_NOTIMPL; }
-
- virtual HRESULT STDMETHODCALLTYPE runJavaScriptConfirmPanelWithMessage(
- /* [in] */ IWebView*,
- /* [in] */ BSTR,
- /* [retval][out] */ BOOL*) { return E_NOTIMPL; }
-
- virtual HRESULT STDMETHODCALLTYPE runJavaScriptTextInputPanelWithPrompt(
- /* [in] */ IWebView*,
- /* [in] */ BSTR /*message*/,
- /* [in] */ BSTR /*defaultText*/,
- /* [retval][out] */ BSTR*) { return E_NOTIMPL; }
-
- virtual HRESULT STDMETHODCALLTYPE runBeforeUnloadConfirmPanelWithMessage(
- /* [in] */ IWebView*,
- /* [in] */ BSTR /*message*/,
- /* [in] */ IWebFrame* /*initiatedByFrame*/,
- /* [retval][out] */ BOOL*) { return E_NOTIMPL; }
-
- virtual HRESULT STDMETHODCALLTYPE runOpenPanelForFileButtonWithResultListener(
- /* [in] */ IWebView*,
- /* [in] */ IWebOpenPanelResultListener*) { return E_NOTIMPL; }
-
- virtual HRESULT STDMETHODCALLTYPE mouseDidMoveOverElement(
- /* [in] */ IWebView*,
- /* [in] */ IPropertyBag*,
- /* [in] */ UINT /*modifierFlags*/) { return E_NOTIMPL; }
-
- virtual HRESULT STDMETHODCALLTYPE contextMenuItemsForElement(
- /* [in] */ IWebView*,
- /* [in] */ IPropertyBag*,
- /* [in] */ OLE_HANDLE,
- /* [retval][out] */ OLE_HANDLE*) { return E_NOTIMPL; }
-
- virtual HRESULT STDMETHODCALLTYPE validateUserInterfaceItem(
- /* [in] */ IWebView*,
- /* [in] */ UINT,
- /* [in] */ BOOL,
- /* [retval][out] */ BOOL*) { return E_NOTIMPL; }
-
- virtual HRESULT STDMETHODCALLTYPE shouldPerformAction(
- /* [in] */ IWebView*,
- /* [in] */ UINT /*itemCommandID*/,
- /* [in] */ UINT /*sender*/) { return E_NOTIMPL; }
-
- virtual HRESULT STDMETHODCALLTYPE willPerformDragDestinationAction(
- /* [in] */ IWebView*,
- /* [in] */ WebDragDestinationAction,
- /* [in] */ IDataObject*) { return E_NOTIMPL; }
-
- virtual HRESULT STDMETHODCALLTYPE dragSourceActionMaskForPoint(
- /* [in] */ IWebView*,
- /* [in] */ LPPOINT,
- /* [retval][out] */ WebDragSourceAction*) { return E_NOTIMPL; }
-
- virtual HRESULT STDMETHODCALLTYPE willPerformDragSourceAction(
- /* [in] */ IWebView*,
- /* [in] */ WebDragSourceAction,
- /* [in] */ LPPOINT,
- /* [in] */ IDataObject*,
- /* [retval][out] */ IDataObject**) { return E_NOTIMPL; }
-
- virtual HRESULT STDMETHODCALLTYPE contextMenuItemSelected(
- /* [in] */ IWebView*,
- /* [in] */ void* /*item*/,
- /* [in] */ IPropertyBag*) { return E_NOTIMPL; }
-
- virtual HRESULT STDMETHODCALLTYPE hasCustomMenuImplementation(
- /* [retval][out] */ BOOL*) { return E_NOTIMPL; }
-
- virtual HRESULT STDMETHODCALLTYPE trackCustomPopupMenu(
- /* [in] */ IWebView*,
- /* [in] */ OLE_HANDLE,
- /* [in] */ LPPOINT) { return E_NOTIMPL; }
-
- virtual HRESULT STDMETHODCALLTYPE measureCustomMenuItem(
- /* [in] */ IWebView*,
- /* [in] */ void* /*measureItem*/) { return E_NOTIMPL; }
-
- virtual HRESULT STDMETHODCALLTYPE drawCustomMenuItem(
- /* [in] */ IWebView*,
- /* [in] */ void* /*drawItem*/) { return E_NOTIMPL; }
-
- virtual HRESULT STDMETHODCALLTYPE addCustomMenuDrawingData(
- /* [in] */ IWebView*,
- /* [in] */ OLE_HANDLE) { return E_NOTIMPL; }
-
- virtual HRESULT STDMETHODCALLTYPE cleanUpCustomMenuDrawingData(
- /* [in] */ IWebView*,
- /* [in] */ OLE_HANDLE) { return E_NOTIMPL; }
-
- virtual HRESULT STDMETHODCALLTYPE canTakeFocus(
- /* [in] */ IWebView*,
- /* [in] */ BOOL /*forward*/,
- /* [out] */ BOOL*) { return E_NOTIMPL; }
-
- virtual HRESULT STDMETHODCALLTYPE takeFocus(
- /* [in] */ IWebView*,
- /* [in] */ BOOL /*forward*/) { return E_NOTIMPL; }
-
- virtual HRESULT STDMETHODCALLTYPE registerUndoWithTarget(
- /* [in] */ IWebUndoTarget*,
- /* [in] */ BSTR /*actionName*/,
- /* [in] */ IUnknown* /*actionArg*/) { return E_NOTIMPL; }
-
- virtual HRESULT STDMETHODCALLTYPE removeAllActionsWithTarget(
- /* [in] */ IWebUndoTarget*) { return E_NOTIMPL; }
-
- virtual HRESULT STDMETHODCALLTYPE setActionTitle(
- /* [in] */ BSTR) { return E_NOTIMPL; }
-
- virtual HRESULT STDMETHODCALLTYPE undo() { return E_NOTIMPL; }
-
- virtual HRESULT STDMETHODCALLTYPE redo() { return E_NOTIMPL; }
-
- virtual HRESULT STDMETHODCALLTYPE canUndo(
- /* [retval][out] */ BOOL*) { return E_NOTIMPL; }
-
- virtual HRESULT STDMETHODCALLTYPE canRedo(
- /* [retval][out] */ BOOL*) { return E_NOTIMPL; }
-
- virtual HRESULT STDMETHODCALLTYPE printFrame(
- /* [in] */ IWebView *webView,
- /* [in] */ IWebFrame *frame) { return E_NOTIMPL; }
-
- virtual HRESULT STDMETHODCALLTYPE ftpDirectoryTemplatePath(
- /* [in] */ IWebView *webView,
- /* [retval][out] */ BSTR *path) { return E_NOTIMPL; }
-
- virtual HRESULT STDMETHODCALLTYPE webViewHeaderHeight(
- /* [in] */ IWebView *webView,
- /* [retval][out] */ float *result) { return E_NOTIMPL; }
-
- virtual HRESULT STDMETHODCALLTYPE webViewFooterHeight(
- /* [in] */ IWebView *webView,
- /* [retval][out] */ float *result) { return E_NOTIMPL; }
-
- virtual HRESULT STDMETHODCALLTYPE drawHeaderInRect(
- /* [in] */ IWebView *webView,
- /* [in] */ RECT *rect,
- /* [in] */ OLE_HANDLE drawingContext) { return E_NOTIMPL; }
-
- virtual HRESULT STDMETHODCALLTYPE drawFooterInRect(
- /* [in] */ IWebView *webView,
- /* [in] */ RECT *rect,
- /* [in] */ OLE_HANDLE drawingContext,
- /* [in] */ UINT pageIndex,
- /* [in] */ UINT pageCount) { return E_NOTIMPL; }
-
- virtual HRESULT STDMETHODCALLTYPE webViewPrintingMarginRect(
- /* [in] */ IWebView *webView,
- /* [retval][out] */ RECT *rect) { return E_NOTIMPL; }
-
- virtual HRESULT STDMETHODCALLTYPE canRunModal(
- /* [in] */ IWebView *webView,
- /* [retval][out] */ BOOL *canRunBoolean) { return E_NOTIMPL; }
-
- virtual HRESULT STDMETHODCALLTYPE createModalDialog(
- /* [in] */ IWebView *sender,
- /* [in] */ IWebURLRequest *request,
- /* [retval][out] */ IWebView **newWebView) { return E_NOTIMPL; }
-
- virtual HRESULT STDMETHODCALLTYPE runModal(
- /* [in] */ IWebView *webView) { return E_NOTIMPL; }
-
- virtual HRESULT STDMETHODCALLTYPE isMenuBarVisible(
- /* [in] */ IWebView *webView,
- /* [retval][out] */ BOOL *visible) { return E_NOTIMPL; }
-
- virtual HRESULT STDMETHODCALLTYPE setMenuBarVisible(
- /* [in] */ IWebView *webView,
- /* [in] */ BOOL visible) { return E_NOTIMPL; }
-
- virtual HRESULT STDMETHODCALLTYPE runDatabaseSizeLimitPrompt(
- /* [in] */ IWebView *webView,
- /* [in] */ BSTR displayName,
- /* [in] */ IWebFrame *initiatedByFrame,
- /* [retval][out] */ BOOL *allowed) { return E_NOTIMPL; }
-
- virtual HRESULT STDMETHODCALLTYPE paintCustomScrollbar(
- /* [in] */ IWebView *webView,
- /* [in] */ HDC hDC,
- /* [in] */ RECT rect,
- /* [in] */ WebScrollBarControlSize size,
- /* [in] */ WebScrollbarControlState state,
- /* [in] */ WebScrollbarControlPart pressedPart,
- /* [in] */ BOOL vertical,
- /* [in] */ float value,
- /* [in] */ float proportion,
- /* [in] */ WebScrollbarControlPartMask parts) { return E_NOTIMPL; }
-
- virtual HRESULT STDMETHODCALLTYPE paintCustomScrollCorner(
- /* [in] */ IWebView *webView,
- /* [in] */ HDC hDC,
- /* [in] */ RECT rect) { return E_NOTIMPL; }
-
- virtual HRESULT STDMETHODCALLTYPE desktopNotificationsDelegate(
- /* [retval][out] */ IWebDesktopNotificationsDelegate **result) { return E_NOTIMPL; }
-
-private:
- WebInspectorDelegate();
-
- ULONG m_refCount;
-};
-
-#endif // WebInspectorDelegate_h
+/*
+ * Copyright (C) 2008 Matt Lilek <webkit@mattlilek.com>
+ *
+ * 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.
+ */
+
+#ifndef WebInspectorDelegate_h
+#define WebInspectorDelegate_h
+
+#include "WebKit.h"
+
+class WebInspectorDelegate : public IWebUIDelegate {
+public:
+ static WebInspectorDelegate* createInstance();
+
+ // IUnknown
+ virtual ULONG STDMETHODCALLTYPE AddRef();
+ virtual ULONG STDMETHODCALLTYPE Release();
+ virtual HRESULT STDMETHODCALLTYPE QueryInterface(REFIID, void**) { return E_NOTIMPL; };
+
+ // IWebUIDelegate
+ virtual HRESULT STDMETHODCALLTYPE dragDestinationActionMaskForDraggingInfo(
+ /* [in] */ IWebView*,
+ /* [in] */ IDataObject*,
+ /* [retval][out] */ WebDragDestinationAction* action);
+
+ // Not implemented
+ virtual HRESULT STDMETHODCALLTYPE createWebViewWithRequest(
+ /* [in] */ IWebView*,
+ /* [in] */ IWebURLRequest*,
+ /* [retval][out] */ IWebView**) { return E_NOTIMPL; }
+
+ virtual HRESULT STDMETHODCALLTYPE webViewShow(
+ /* [in] */ IWebView*) { return E_NOTIMPL; }
+
+ virtual HRESULT STDMETHODCALLTYPE webViewClose(
+ /* [in] */ IWebView*) { return E_NOTIMPL; }
+
+ virtual HRESULT STDMETHODCALLTYPE webViewFocus(
+ /* [in] */ IWebView*) { return E_NOTIMPL; }
+
+ virtual HRESULT STDMETHODCALLTYPE webViewUnfocus(
+ /* [in] */ IWebView*) { return E_NOTIMPL; }
+
+ virtual HRESULT STDMETHODCALLTYPE webViewFirstResponder(
+ /* [in] */ IWebView*,
+ /* [retval][out] */ OLE_HANDLE*) { return E_NOTIMPL; }
+
+ virtual HRESULT STDMETHODCALLTYPE makeFirstResponder(
+ /* [in] */ IWebView*,
+ /* [in] */ OLE_HANDLE) { return E_NOTIMPL; }
+
+ virtual HRESULT STDMETHODCALLTYPE setStatusText(
+ /* [in] */ IWebView*,
+ /* [in] */ BSTR) { return E_NOTIMPL; }
+
+ virtual HRESULT STDMETHODCALLTYPE webViewStatusText(
+ /* [in] */ IWebView*,
+ /* [retval][out] */ BSTR*) { return E_NOTIMPL; }
+
+ virtual HRESULT STDMETHODCALLTYPE webViewAreToolbarsVisible(
+ /* [in] */ IWebView*,
+ /* [retval][out] */ BOOL*) { return E_NOTIMPL; }
+
+ virtual HRESULT STDMETHODCALLTYPE setToolbarsVisible(
+ /* [in] */ IWebView*,
+ /* [in] */ BOOL) { return E_NOTIMPL; }
+
+ virtual HRESULT STDMETHODCALLTYPE webViewIsStatusBarVisible(
+ /* [in] */ IWebView*,
+ /* [retval][out] */ BOOL*) { return E_NOTIMPL; }
+
+ virtual HRESULT STDMETHODCALLTYPE setStatusBarVisible(
+ /* [in] */ IWebView*,
+ /* [in] */ BOOL) { return E_NOTIMPL; }
+
+ virtual HRESULT STDMETHODCALLTYPE webViewIsResizable(
+ /* [in] */ IWebView*,
+ /* [retval][out] */ BOOL*) { return E_NOTIMPL; }
+
+ virtual HRESULT STDMETHODCALLTYPE setResizable(
+ /* [in] */ IWebView*,
+ /* [in] */ BOOL) { return E_NOTIMPL; }
+
+ virtual HRESULT STDMETHODCALLTYPE setFrame(
+ /* [in] */ IWebView*,
+ /* [in] */ RECT*) { return E_NOTIMPL; }
+
+ virtual HRESULT STDMETHODCALLTYPE webViewFrame(
+ /* [in] */ IWebView*,
+ /* [retval][out] */ RECT*) { return E_NOTIMPL; }
+
+ virtual HRESULT STDMETHODCALLTYPE setContentRect(
+ /* [in] */ IWebView*,
+ /* [in] */ RECT*) { return E_NOTIMPL; }
+
+ virtual HRESULT STDMETHODCALLTYPE webViewContentRect(
+ /* [in] */ IWebView*,
+ /* [retval][out] */ RECT*) { return E_NOTIMPL; }
+
+ virtual HRESULT STDMETHODCALLTYPE runJavaScriptAlertPanelWithMessage(
+ /* [in] */ IWebView*,
+ /* [in] */ BSTR) { return E_NOTIMPL; }
+
+ virtual HRESULT STDMETHODCALLTYPE runJavaScriptConfirmPanelWithMessage(
+ /* [in] */ IWebView*,
+ /* [in] */ BSTR,
+ /* [retval][out] */ BOOL*) { return E_NOTIMPL; }
+
+ virtual HRESULT STDMETHODCALLTYPE runJavaScriptTextInputPanelWithPrompt(
+ /* [in] */ IWebView*,
+ /* [in] */ BSTR /*message*/,
+ /* [in] */ BSTR /*defaultText*/,
+ /* [retval][out] */ BSTR*) { return E_NOTIMPL; }
+
+ virtual HRESULT STDMETHODCALLTYPE runBeforeUnloadConfirmPanelWithMessage(
+ /* [in] */ IWebView*,
+ /* [in] */ BSTR /*message*/,
+ /* [in] */ IWebFrame* /*initiatedByFrame*/,
+ /* [retval][out] */ BOOL*) { return E_NOTIMPL; }
+
+ virtual HRESULT STDMETHODCALLTYPE runOpenPanelForFileButtonWithResultListener(
+ /* [in] */ IWebView*,
+ /* [in] */ IWebOpenPanelResultListener*) { return E_NOTIMPL; }
+
+ virtual HRESULT STDMETHODCALLTYPE mouseDidMoveOverElement(
+ /* [in] */ IWebView*,
+ /* [in] */ IPropertyBag*,
+ /* [in] */ UINT /*modifierFlags*/) { return E_NOTIMPL; }
+
+ virtual HRESULT STDMETHODCALLTYPE contextMenuItemsForElement(
+ /* [in] */ IWebView*,
+ /* [in] */ IPropertyBag*,
+ /* [in] */ OLE_HANDLE,
+ /* [retval][out] */ OLE_HANDLE*) { return E_NOTIMPL; }
+
+ virtual HRESULT STDMETHODCALLTYPE validateUserInterfaceItem(
+ /* [in] */ IWebView*,
+ /* [in] */ UINT,
+ /* [in] */ BOOL,
+ /* [retval][out] */ BOOL*) { return E_NOTIMPL; }
+
+ virtual HRESULT STDMETHODCALLTYPE shouldPerformAction(
+ /* [in] */ IWebView*,
+ /* [in] */ UINT /*itemCommandID*/,
+ /* [in] */ UINT /*sender*/) { return E_NOTIMPL; }
+
+ virtual HRESULT STDMETHODCALLTYPE willPerformDragDestinationAction(
+ /* [in] */ IWebView*,
+ /* [in] */ WebDragDestinationAction,
+ /* [in] */ IDataObject*) { return E_NOTIMPL; }
+
+ virtual HRESULT STDMETHODCALLTYPE dragSourceActionMaskForPoint(
+ /* [in] */ IWebView*,
+ /* [in] */ LPPOINT,
+ /* [retval][out] */ WebDragSourceAction*) { return E_NOTIMPL; }
+
+ virtual HRESULT STDMETHODCALLTYPE willPerformDragSourceAction(
+ /* [in] */ IWebView*,
+ /* [in] */ WebDragSourceAction,
+ /* [in] */ LPPOINT,
+ /* [in] */ IDataObject*,
+ /* [retval][out] */ IDataObject**) { return E_NOTIMPL; }
+
+ virtual HRESULT STDMETHODCALLTYPE contextMenuItemSelected(
+ /* [in] */ IWebView*,
+ /* [in] */ void* /*item*/,
+ /* [in] */ IPropertyBag*) { return E_NOTIMPL; }
+
+ virtual HRESULT STDMETHODCALLTYPE hasCustomMenuImplementation(
+ /* [retval][out] */ BOOL*) { return E_NOTIMPL; }
+
+ virtual HRESULT STDMETHODCALLTYPE trackCustomPopupMenu(
+ /* [in] */ IWebView*,
+ /* [in] */ OLE_HANDLE,
+ /* [in] */ LPPOINT) { return E_NOTIMPL; }
+
+ virtual HRESULT STDMETHODCALLTYPE measureCustomMenuItem(
+ /* [in] */ IWebView*,
+ /* [in] */ void* /*measureItem*/) { return E_NOTIMPL; }
+
+ virtual HRESULT STDMETHODCALLTYPE drawCustomMenuItem(
+ /* [in] */ IWebView*,
+ /* [in] */ void* /*drawItem*/) { return E_NOTIMPL; }
+
+ virtual HRESULT STDMETHODCALLTYPE addCustomMenuDrawingData(
+ /* [in] */ IWebView*,
+ /* [in] */ OLE_HANDLE) { return E_NOTIMPL; }
+
+ virtual HRESULT STDMETHODCALLTYPE cleanUpCustomMenuDrawingData(
+ /* [in] */ IWebView*,
+ /* [in] */ OLE_HANDLE) { return E_NOTIMPL; }
+
+ virtual HRESULT STDMETHODCALLTYPE canTakeFocus(
+ /* [in] */ IWebView*,
+ /* [in] */ BOOL /*forward*/,
+ /* [out] */ BOOL*) { return E_NOTIMPL; }
+
+ virtual HRESULT STDMETHODCALLTYPE takeFocus(
+ /* [in] */ IWebView*,
+ /* [in] */ BOOL /*forward*/) { return E_NOTIMPL; }
+
+ virtual HRESULT STDMETHODCALLTYPE registerUndoWithTarget(
+ /* [in] */ IWebUndoTarget*,
+ /* [in] */ BSTR /*actionName*/,
+ /* [in] */ IUnknown* /*actionArg*/) { return E_NOTIMPL; }
+
+ virtual HRESULT STDMETHODCALLTYPE removeAllActionsWithTarget(
+ /* [in] */ IWebUndoTarget*) { return E_NOTIMPL; }
+
+ virtual HRESULT STDMETHODCALLTYPE setActionTitle(
+ /* [in] */ BSTR) { return E_NOTIMPL; }
+
+ virtual HRESULT STDMETHODCALLTYPE undo() { return E_NOTIMPL; }
+
+ virtual HRESULT STDMETHODCALLTYPE redo() { return E_NOTIMPL; }
+
+ virtual HRESULT STDMETHODCALLTYPE canUndo(
+ /* [retval][out] */ BOOL*) { return E_NOTIMPL; }
+
+ virtual HRESULT STDMETHODCALLTYPE canRedo(
+ /* [retval][out] */ BOOL*) { return E_NOTIMPL; }
+
+ virtual HRESULT STDMETHODCALLTYPE printFrame(
+ /* [in] */ IWebView *webView,
+ /* [in] */ IWebFrame *frame) { return E_NOTIMPL; }
+
+ virtual HRESULT STDMETHODCALLTYPE ftpDirectoryTemplatePath(
+ /* [in] */ IWebView *webView,
+ /* [retval][out] */ BSTR *path) { return E_NOTIMPL; }
+
+ virtual HRESULT STDMETHODCALLTYPE webViewHeaderHeight(
+ /* [in] */ IWebView *webView,
+ /* [retval][out] */ float *result) { return E_NOTIMPL; }
+
+ virtual HRESULT STDMETHODCALLTYPE webViewFooterHeight(
+ /* [in] */ IWebView *webView,
+ /* [retval][out] */ float *result) { return E_NOTIMPL; }
+
+ virtual HRESULT STDMETHODCALLTYPE drawHeaderInRect(
+ /* [in] */ IWebView *webView,
+ /* [in] */ RECT *rect,
+ /* [in] */ OLE_HANDLE drawingContext) { return E_NOTIMPL; }
+
+ virtual HRESULT STDMETHODCALLTYPE drawFooterInRect(
+ /* [in] */ IWebView *webView,
+ /* [in] */ RECT *rect,
+ /* [in] */ OLE_HANDLE drawingContext,
+ /* [in] */ UINT pageIndex,
+ /* [in] */ UINT pageCount) { return E_NOTIMPL; }
+
+ virtual HRESULT STDMETHODCALLTYPE webViewPrintingMarginRect(
+ /* [in] */ IWebView *webView,
+ /* [retval][out] */ RECT *rect) { return E_NOTIMPL; }
+
+ virtual HRESULT STDMETHODCALLTYPE canRunModal(
+ /* [in] */ IWebView *webView,
+ /* [retval][out] */ BOOL *canRunBoolean) { return E_NOTIMPL; }
+
+ virtual HRESULT STDMETHODCALLTYPE createModalDialog(
+ /* [in] */ IWebView *sender,
+ /* [in] */ IWebURLRequest *request,
+ /* [retval][out] */ IWebView **newWebView) { return E_NOTIMPL; }
+
+ virtual HRESULT STDMETHODCALLTYPE runModal(
+ /* [in] */ IWebView *webView) { return E_NOTIMPL; }
+
+ virtual HRESULT STDMETHODCALLTYPE isMenuBarVisible(
+ /* [in] */ IWebView *webView,
+ /* [retval][out] */ BOOL *visible) { return E_NOTIMPL; }
+
+ virtual HRESULT STDMETHODCALLTYPE setMenuBarVisible(
+ /* [in] */ IWebView *webView,
+ /* [in] */ BOOL visible) { return E_NOTIMPL; }
+
+ virtual HRESULT STDMETHODCALLTYPE runDatabaseSizeLimitPrompt(
+ /* [in] */ IWebView *webView,
+ /* [in] */ BSTR displayName,
+ /* [in] */ IWebFrame *initiatedByFrame,
+ /* [retval][out] */ BOOL *allowed) { return E_NOTIMPL; }
+
+ virtual HRESULT STDMETHODCALLTYPE paintCustomScrollbar(
+ /* [in] */ IWebView *webView,
+ /* [in] */ HDC hDC,
+ /* [in] */ RECT rect,
+ /* [in] */ WebScrollBarControlSize size,
+ /* [in] */ WebScrollbarControlState state,
+ /* [in] */ WebScrollbarControlPart pressedPart,
+ /* [in] */ BOOL vertical,
+ /* [in] */ float value,
+ /* [in] */ float proportion,
+ /* [in] */ WebScrollbarControlPartMask parts) { return E_NOTIMPL; }
+
+ virtual HRESULT STDMETHODCALLTYPE paintCustomScrollCorner(
+ /* [in] */ IWebView *webView,
+ /* [in] */ HDC hDC,
+ /* [in] */ RECT rect) { return E_NOTIMPL; }
+
+ virtual HRESULT STDMETHODCALLTYPE desktopNotificationsDelegate(
+ /* [retval][out] */ IWebDesktopNotificationsDelegate **result) { return E_NOTIMPL; }
+
+private:
+ WebInspectorDelegate();
+
+ ULONG m_refCount;
+};
+
+#endif // WebInspectorDelegate_h
diff --git a/Source/WebKit/win/WebCoreSupport/WebPlatformStrategies.cpp b/Source/WebKit/win/WebCoreSupport/WebPlatformStrategies.cpp
index 9f5b20e..e87777e 100644
--- a/Source/WebKit/win/WebCoreSupport/WebPlatformStrategies.cpp
+++ b/Source/WebKit/win/WebCoreSupport/WebPlatformStrategies.cpp
@@ -285,7 +285,7 @@ String WebPlatformStrategies::contextMenuItemTagSearchWeb()
return UI_STRING("Search with Google", "Search in Google context menu item");
}
-String WebPlatformStrategies::contextMenuItemTagLookUpInDictionary()
+String WebPlatformStrategies::contextMenuItemTagLookUpInDictionary(const String&)
{
return UI_STRING("Look Up in Dictionary", "Look Up in Dictionary context menu item");
}
diff --git a/Source/WebKit/win/WebCoreSupport/WebPlatformStrategies.h b/Source/WebKit/win/WebCoreSupport/WebPlatformStrategies.h
index 4e5bb18..6d2949d 100644
--- a/Source/WebKit/win/WebCoreSupport/WebPlatformStrategies.h
+++ b/Source/WebKit/win/WebCoreSupport/WebPlatformStrategies.h
@@ -79,7 +79,7 @@ private:
virtual WTF::String contextMenuItemTagIgnoreSpelling();
virtual WTF::String contextMenuItemTagLearnSpelling();
virtual WTF::String contextMenuItemTagSearchWeb();
- virtual WTF::String contextMenuItemTagLookUpInDictionary();
+ virtual WTF::String contextMenuItemTagLookUpInDictionary(const WTF::String&);
virtual WTF::String contextMenuItemTagOpenLink();
virtual WTF::String contextMenuItemTagIgnoreGrammar();
virtual WTF::String contextMenuItemTagSpellingMenu();
diff --git a/Source/WebKit/win/WebDataSource.h b/Source/WebKit/win/WebDataSource.h
index 3baa024..992e9dd 100644
--- a/Source/WebKit/win/WebDataSource.h
+++ b/Source/WebKit/win/WebDataSource.h
@@ -27,8 +27,8 @@
#define WebDataSource_H
#include "WebKit.h"
-#include "COMPtr.h"
-#include <WTF/RefPtr.h>
+#include <WebCore/COMPtr.h>
+#include <wtf/RefPtr.h>
class WebDocumentLoader;
class WebMutableURLRequest;
diff --git a/Source/WebKit/win/WebDatabaseManager.h b/Source/WebKit/win/WebDatabaseManager.h
index a8ca523..b52cbd5 100644
--- a/Source/WebKit/win/WebDatabaseManager.h
+++ b/Source/WebKit/win/WebDatabaseManager.h
@@ -31,9 +31,8 @@
#if ENABLE(DATABASE)
-#include <WebCore/DatabaseTrackerClient.h>
-
#include "WebKit.h"
+#include <WebCore/DatabaseTrackerClient.h>
class WebDatabaseManager : public IWebDatabaseManager, private WebCore::DatabaseTrackerClient {
public:
diff --git a/Source/WebKit/win/WebDocumentLoader.h b/Source/WebKit/win/WebDocumentLoader.h
index ad0544e..93b2a86 100644
--- a/Source/WebKit/win/WebDocumentLoader.h
+++ b/Source/WebKit/win/WebDocumentLoader.h
@@ -24,10 +24,7 @@
*/
#include "WebDataSource.h"
-
-#pragma warning(push, 0)
#include <WebCore/DocumentLoader.h>
-#pragma warning(pop)
using namespace WebCore;
diff --git a/Source/WebKit/win/WebDownload.cpp b/Source/WebKit/win/WebDownload.cpp
index 45e36cc..cb5e2c3 100644
--- a/Source/WebKit/win/WebDownload.cpp
+++ b/Source/WebKit/win/WebDownload.cpp
@@ -38,7 +38,6 @@
#include "WebURLResponse.h"
#include <wtf/text/CString.h>
-#pragma warning(push, 0)
#include <WebCore/BString.h>
#include <WebCore/DownloadBundle.h>
#include <WebCore/NotImplemented.h>
@@ -48,7 +47,6 @@
#include <WebCore/ResourceResponse.h>
#include <wtf/CurrentTime.h>
#include <wtf/StdLibExtras.h>
-#pragma warning(pop)
using namespace WebCore;
diff --git a/Source/WebKit/win/WebDownloadCFNet.cpp b/Source/WebKit/win/WebDownloadCFNet.cpp
index 5a1f1bc..7398a2a 100644
--- a/Source/WebKit/win/WebDownloadCFNet.cpp
+++ b/Source/WebKit/win/WebDownloadCFNet.cpp
@@ -44,7 +44,6 @@
#include <sys/stat.h>
#include <sys/types.h>
-#pragma warning(push, 0)
#include <WebCore/AuthenticationCF.h>
#include <WebCore/BString.h>
#include <WebCore/CredentialStorage.h>
@@ -55,7 +54,6 @@
#include <WebCore/ResourceRequest.h>
#include <WebCore/ResourceResponse.h>
#include <wtf/CurrentTime.h>
-#pragma warning(pop)
using namespace WebCore;
diff --git a/Source/WebKit/win/WebDownloadCurl.cpp b/Source/WebKit/win/WebDownloadCurl.cpp
index 2025922..5eab2bb 100644
--- a/Source/WebKit/win/WebDownloadCurl.cpp
+++ b/Source/WebKit/win/WebDownloadCurl.cpp
@@ -44,7 +44,6 @@
#include <sys/stat.h>
#include <sys/types.h>
-#pragma warning(push, 0)
#include <WebCore/BString.h>
#include <WebCore/NotImplemented.h>
#include <WebCore/ResourceError.h>
@@ -52,7 +51,6 @@
#include <WebCore/ResourceRequest.h>
#include <WebCore/ResourceResponse.h>
#include <WebCore/SystemTime.h>
-#pragma warning(pop)
using namespace WebCore;
diff --git a/Source/WebKit/win/WebElementPropertyBag.cpp b/Source/WebKit/win/WebElementPropertyBag.cpp
index e68360c..4ca0a71 100644
--- a/Source/WebKit/win/WebElementPropertyBag.cpp
+++ b/Source/WebKit/win/WebElementPropertyBag.cpp
@@ -30,7 +30,6 @@
#include "MarshallingHelpers.h"
#include "DOMCoreClasses.h"
#include "WebFrame.h"
-#pragma warning(push, 0)
#include <WebCore/Document.h>
#include <WebCore/Frame.h>
#include <WebCore/HitTestResult.h>
@@ -38,7 +37,6 @@
#include <WebCore/Image.h>
#include <WebCore/KURL.h>
#include <WebCore/RenderObject.h>
-#pragma warning(pop)
using namespace WebCore;
diff --git a/Source/WebKit/win/WebElementPropertyBag.h b/Source/WebKit/win/WebElementPropertyBag.h
index 3d96a65..7c2a565 100644
--- a/Source/WebKit/win/WebElementPropertyBag.h
+++ b/Source/WebKit/win/WebElementPropertyBag.h
@@ -26,9 +26,8 @@
#ifndef WebElementPropertyBag_H
#define WebElementPropertyBag_H
-#include "ocidl.h"
-
-#include <WTF/OwnPtr.h>
+#include <ocidl.h>
+#include <wtf/OwnPtr.h>
namespace WebCore {
class HitTestResult;
diff --git a/Source/WebKit/win/WebError.cpp b/Source/WebKit/win/WebError.cpp
index c9f1dff..16006ff 100644
--- a/Source/WebKit/win/WebError.cpp
+++ b/Source/WebKit/win/WebError.cpp
@@ -28,9 +28,7 @@
#include "WebError.h"
#include "WebKit.h"
-#pragma warning(push, 0)
#include <WebCore/BString.h>
-#pragma warning(pop)
#if USE(CFNETWORK)
#include <WebKitSystemInterface/WebKitSystemInterface.h>
@@ -227,7 +225,7 @@ HRESULT STDMETHODCALLTYPE WebError::sslPeerCertificate(
if (!m_cfErrorUserInfoDict)
return E_FAIL;
- void* data = wkGetSSLPeerCertificateData(m_cfErrorUserInfoDict.get());
+ void* data = wkGetSSLPeerCertificateDataBytePtr(m_cfErrorUserInfoDict.get());
if (!data)
return E_FAIL;
*result = (OLE_HANDLE)(ULONG64)data;
diff --git a/Source/WebKit/win/WebError.h b/Source/WebKit/win/WebError.h
index ff0625d..0e78cf2 100644
--- a/Source/WebKit/win/WebError.h
+++ b/Source/WebKit/win/WebError.h
@@ -27,12 +27,8 @@
#define WebError_h
#include "WebKit.h"
-
-#pragma warning(push, 0)
#include <WebCore/COMPtr.h>
#include <WebCore/ResourceError.h>
-#pragma warning(pop)
-
#include <wtf/RetainPtr.h>
class WebError : public IWebError, IWebErrorPrivate {
diff --git a/Source/WebKit/win/WebFrame.cpp b/Source/WebKit/win/WebFrame.cpp
index e412543..4b9e35d 100644
--- a/Source/WebKit/win/WebFrame.cpp
+++ b/Source/WebKit/win/WebFrame.cpp
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2006, 2007, 2008, 2009 Apple Inc. All rights reserved.
+ * Copyright (C) 2006, 2007, 2008, 2009, 2011 Apple Inc. All rights reserved.
* Copyright (C) Research In Motion Limited 2009. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -53,7 +53,6 @@
#include "WebScriptWorld.h"
#include "WebURLResponse.h"
#include "WebView.h"
-#pragma warning( push, 0 )
#include <WebCore/BString.h>
#include <WebCore/MemoryCache.h>
#include <WebCore/Document.h>
@@ -104,11 +103,11 @@
#include <JavaScriptCore/JSObject.h>
#include <JavaScriptCore/JSValue.h>
#include <wtf/MathExtras.h>
-#pragma warning(pop)
#if PLATFORM(CG)
#include <CoreGraphics/CoreGraphics.h>
#elif PLATFORM(CAIRO)
+#include "PlatformContextCairo.h"
#include <cairo-win32.h>
#endif
@@ -1029,7 +1028,7 @@ HRESULT STDMETHODCALLTYPE WebFrame::hasSpellingMarker(
Frame* coreFrame = core(this);
if (!coreFrame)
return E_FAIL;
- *result = coreFrame->editor()->selectionStartHasSpellingMarkerFor(from, length);
+ *result = coreFrame->editor()->selectionStartHasMarkerFor(DocumentMarker::Spelling, from, length);
return S_OK;
}
@@ -1899,9 +1898,9 @@ PassRefPtr<Widget> WebFrame::createJavaAppletWidget(const IntSize& pluginSize, H
return pluginView;
}
-ObjectContentType WebFrame::objectContentType(const KURL& url, const String& mimeType)
+ObjectContentType WebFrame::objectContentType(const KURL& url, const String& mimeType, bool shouldPreferPlugInsForImages)
{
- return WebCore::FrameLoader::defaultObjectContentType(url, mimeType);
+ return WebCore::FrameLoader::defaultObjectContentType(url, mimeType, shouldPreferPlugInsForImages);
}
String WebFrame::overrideMediaType() const
@@ -2188,8 +2187,7 @@ static float scaleFactor(HDC printDC, const IntRect& marginRect, const IntRect&
static HDC hdcFromContext(PlatformGraphicsContext* pctx)
{
- cairo_surface_t* surface = cairo_get_target(pctx);
- return cairo_win32_surface_get_dc(surface);
+ return cairo_win32_surface_get_dc(cairo_get_target(pctx->cr()));
}
void WebFrame::drawHeader(PlatformGraphicsContext* pctx, IWebUIDelegate* ui, const IntRect& pageRect, float headerHeight)
@@ -2244,13 +2242,14 @@ void WebFrame::spoolPage(PlatformGraphicsContext* pctx, GraphicsContext* spoolCt
XFORM original, scaled;
GetWorldTransform(hdc, &original);
+ cairo_t* cr = pctx->cr();
bool preview = (hdc != printDC);
if (preview) {
// If this is a preview, the Windows HDC was set to a non-scaled state so that Cairo will
// draw correctly. We need to retain the correct preview scale here for use when the Cairo
// drawing completes so that we can scale our GDI-based header/footer calls. This is a
// workaround for a bug in Cairo (see https://bugs.freedesktop.org/show_bug.cgi?id=28161)
- scaled = buildXFORMFromCairo(hdc, pctx);
+ scaled = buildXFORMFromCairo(hdc, cr);
}
float scale = scaleFactor(printDC, marginRect, pageRect);
@@ -2260,13 +2259,13 @@ void WebFrame::spoolPage(PlatformGraphicsContext* pctx, GraphicsContext* spoolCt
// We cannot scale the display HDC because the print surface also scales fonts,
// resulting in invalid printing (and print preview)
- cairo_scale(pctx, scale, scale);
- cairo_translate(pctx, cairoMarginRect.x(), cairoMarginRect.y() + headerHeight);
+ cairo_scale(cr, scale, scale);
+ cairo_translate(cr, cairoMarginRect.x(), cairoMarginRect.y() + headerHeight);
// Modify Cairo (only) to account for page position.
- cairo_translate(pctx, -pageRect.x(), -pageRect.y());
+ cairo_translate(cr, -pageRect.x(), -pageRect.y());
coreFrame->view()->paintContents(spoolCtx, pageRect);
- cairo_translate(pctx, pageRect.x(), pageRect.y());
+ cairo_translate(cr, pageRect.x(), pageRect.y());
if (preview) {
// If this is a preview, the Windows HDC was set to a non-scaled state so that Cairo would
@@ -2287,8 +2286,8 @@ void WebFrame::spoolPage(PlatformGraphicsContext* pctx, GraphicsContext* spoolCt
SetWorldTransform(hdc, &original);
- cairo_show_page(pctx);
- ASSERT(!cairo_status(pctx));
+ cairo_show_page(cr);
+ ASSERT(!cairo_status(cr));
spoolCtx->restore();
}
@@ -2340,17 +2339,21 @@ HRESULT STDMETHODCALLTYPE WebFrame::spoolPages(
else
printSurface = cairo_win32_printing_surface_create(targetDC); // metafile
- PlatformGraphicsContext* pctx = (PlatformGraphicsContext*)cairo_create(printSurface);
- if (!pctx) {
+ cairo_t* cr = cairo_create(printSurface);
+ if (!cr) {
cairo_surface_destroy(printSurface);
return E_FAIL;
}
-
+
+ PlatformContextCairo platformContext(cr);
+ PlatformGraphicsContext* pctx = &platformContext;
+ cairo_destroy(cr);
+
if (ctx) {
// If this is a preview, the Windows HDC was sent with scaling information.
// Retrieve it and reset it so that it draws properly. This is a workaround
// for a bug in Cairo (see https://bugs.freedesktop.org/show_bug.cgi?id=28161)
- setCairoTransformToPreviewHDC(pctx, targetDC);
+ setCairoTransformToPreviewHDC(cr, targetDC);
}
cairo_surface_set_fallback_resolution(printSurface, 72.0, 72.0);
@@ -2394,7 +2397,6 @@ HRESULT STDMETHODCALLTYPE WebFrame::spoolPages(
spoolPage(pctx, &spoolCtx, printDC, ui.get(), headerHeight, footerHeight, ii, pageCount);
#if PLATFORM(CAIRO)
- cairo_destroy(pctx);
cairo_surface_finish(printSurface);
ASSERT(!cairo_surface_status(printSurface));
cairo_surface_destroy(printSurface);
diff --git a/Source/WebKit/win/WebFrame.h b/Source/WebKit/win/WebFrame.h
index 59c0aec..9158fb3 100644
--- a/Source/WebKit/win/WebFrame.h
+++ b/Source/WebKit/win/WebFrame.h
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2006, 2007 Apple Inc. All rights reserved.
+ * Copyright (C) 2006, 2007, 2011 Apple Inc. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
@@ -33,13 +33,11 @@
#include "AccessibleDocument.h"
-#pragma warning(push, 0)
#include <WebCore/FrameWin.h>
#include <WebCore/GraphicsContext.h>
#include <WebCore/KURL.h>
#include <WebCore/PlatformString.h>
#include <WebCore/ResourceHandleClient.h>
-#pragma warning(pop)
#include <WTF/RefPtr.h>
#include <WTF/HashMap.h>
@@ -64,7 +62,10 @@ typedef struct OpaqueJSValue* JSObjectRef;
#if PLATFORM(CG)
typedef struct CGContext PlatformGraphicsContext;
#elif PLATFORM(CAIRO)
-typedef struct _cairo PlatformGraphicsContext;
+namespace WebCore {
+class PlatformContextCairo;
+}
+typedef class WebCore::PlatformContextCairo PlatformGraphicsContext;
#endif
class WebFrame;
@@ -341,7 +342,7 @@ public:
virtual PassRefPtr<WebCore::Widget> createJavaAppletWidget(const WebCore::IntSize&, WebCore::HTMLAppletElement*, const WebCore::KURL& baseURL, const Vector<WTF::String>& paramNames, const Vector<WTF::String>& paramValues);
- virtual WebCore::ObjectContentType objectContentType(const WebCore::KURL& url, const WTF::String& mimeType);
+ virtual WebCore::ObjectContentType objectContentType(const WebCore::KURL&, const WTF::String& mimeType, bool shouldPreferPlugInsForImages);
virtual WTF::String overrideMediaType() const;
virtual void dispatchDidClearWindowObjectInWorld(WebCore::DOMWrapperWorld*);
diff --git a/Source/WebKit/win/WebFramePolicyListener.cpp b/Source/WebKit/win/WebFramePolicyListener.cpp
index e82043d..4d19e1a 100644
--- a/Source/WebKit/win/WebFramePolicyListener.cpp
+++ b/Source/WebKit/win/WebFramePolicyListener.cpp
@@ -28,12 +28,9 @@
#include "WebFramePolicyListener.h"
#include "WebFrame.h"
-
-#pragma warning(push, 0)
#include <WebCore/Frame.h>
#include <WebCore/FrameLoader.h>
#include <WebCore/FrameLoaderClient.h>
-#pragma warning(pop)
using namespace WebCore;
diff --git a/Source/WebKit/win/WebFramePolicyListener.h b/Source/WebKit/win/WebFramePolicyListener.h
index 42f6d94..f1663e7 100644
--- a/Source/WebKit/win/WebFramePolicyListener.h
+++ b/Source/WebKit/win/WebFramePolicyListener.h
@@ -27,13 +27,10 @@
#define WebFramePolicyListener_h
#include "WebKit.h"
+#include <wtf/PassRefPtr.h>
+#include <wtf/RefPtr.h>
-#include <WTF/PassRefPtr.h>
-#include <WTF/RefPtr.h>
-
-#pragma warning(push, 0)
#include <WebCore/FrameLoaderTypes.h>
-#pragma warning(pop)
namespace WebCore {
class Frame;
diff --git a/Source/WebKit/win/WebGeolocationPolicyListener.h b/Source/WebKit/win/WebGeolocationPolicyListener.h
index 636c5f5..17d3d58 100644
--- a/Source/WebKit/win/WebGeolocationPolicyListener.h
+++ b/Source/WebKit/win/WebGeolocationPolicyListener.h
@@ -27,11 +27,9 @@
#define WebGeolocationPolicyListener_h
#include "WebKit.h"
-
#include <WebCore/COMPtr.h>
-
-#include <WTF/PassRefPtr.h>
-#include <WTF/RefPtr.h>
+#include <wtf/PassRefPtr.h>
+#include <wtf/RefPtr.h>
namespace WebCore {
class Geolocation;
diff --git a/Source/WebKit/win/WebHistory.cpp b/Source/WebKit/win/WebHistory.cpp
index 4caa554..efd6494 100644
--- a/Source/WebKit/win/WebHistory.cpp
+++ b/Source/WebKit/win/WebHistory.cpp
@@ -36,13 +36,11 @@
#include "WebNotificationCenter.h"
#include "WebPreferences.h"
#include <CoreFoundation/CoreFoundation.h>
-#pragma warning( push, 0 )
#include <WebCore/HistoryItem.h>
#include <WebCore/HistoryPropertyList.h>
#include <WebCore/KURL.h>
#include <WebCore/PageGroup.h>
#include <WebCore/SharedBuffer.h>
-#pragma warning( pop )
#include <functional>
#include <wtf/StdLibExtras.h>
#include <wtf/Vector.h>
diff --git a/Source/WebKit/win/WebHistory.h b/Source/WebKit/win/WebHistory.h
index 17cd3a7..ec7a7a9 100644
--- a/Source/WebKit/win/WebHistory.h
+++ b/Source/WebKit/win/WebHistory.h
@@ -27,9 +27,8 @@
#define WebHistory_H
#include "WebKit.h"
-
-#include "COMPtr.h"
#include <CoreFoundation/CoreFoundation.h>
+#include <WebCore/COMPtr.h>
#include <wtf/Forward.h>
#include <wtf/OwnArrayPtr.h>
#include <wtf/RetainPtr.h>
diff --git a/Source/WebKit/win/WebHistoryItem.cpp b/Source/WebKit/win/WebHistoryItem.cpp
index 098eb86..031f8ab 100644
--- a/Source/WebKit/win/WebHistoryItem.cpp
+++ b/Source/WebKit/win/WebHistoryItem.cpp
@@ -31,13 +31,9 @@
#include "COMPtr.h"
#include "MarshallingHelpers.h"
#include "WebKit.h"
-
-#pragma warning(push, 0)
#include <WebCore/BString.h>
#include <WebCore/HistoryItem.h>
#include <WebCore/KURL.h>
-#pragma warning(pop)
-
#include <wtf/PassOwnPtr.h>
#include <wtf/RetainPtr.h>
#include <wtf/text/CString.h>
diff --git a/Source/WebKit/win/WebIconDatabase.cpp b/Source/WebKit/win/WebIconDatabase.cpp
index 5ccf0b7..24e8f41 100644
--- a/Source/WebKit/win/WebIconDatabase.cpp
+++ b/Source/WebKit/win/WebIconDatabase.cpp
@@ -31,14 +31,13 @@
#include "COMPtr.h"
#include "WebPreferences.h"
#include "WebNotificationCenter.h"
-#pragma warning(push, 0)
#include <WebCore/BitmapInfo.h>
#include <WebCore/BString.h>
#include <WebCore/FileSystem.h>
#include <WebCore/IconDatabase.h>
#include <WebCore/Image.h>
#include <WebCore/PlatformString.h>
-#pragma warning(pop)
+#include <WebCore/SharedBuffer.h>
#include <wtf/MainThread.h>
#include "shlobj.h"
@@ -97,7 +96,7 @@ void WebIconDatabase::startUpIconDatabase()
LOG_ERROR("Failed to construct default icon database path");
}
- if (!iconDatabase().open(databasePath))
+ if (!iconDatabase().open(databasePath, WebCore::IconDatabase::defaultDatabaseFilename()))
LOG_ERROR("Failed to open icon database path");
}
@@ -172,7 +171,7 @@ HRESULT STDMETHODCALLTYPE WebIconDatabase::iconForURL(
Image* icon = 0;
if (url)
- icon = iconDatabase().iconForPageURL(String(url, SysStringLen(url)), intSize);
+ icon = iconDatabase().synchronousIconForPageURL(String(url, SysStringLen(url)), intSize);
// Make sure we check for the case of an "empty image"
if (icon && icon->width()) {
@@ -234,7 +233,7 @@ HRESULT STDMETHODCALLTYPE WebIconDatabase::iconURLForURL(
{
if (!url || !iconURL)
return E_POINTER;
- BString iconURLBSTR(iconDatabase().iconURLForPageURL(String(url, SysStringLen(url))));
+ BString iconURLBSTR(iconDatabase().synchronousIconURLForPageURL(String(url, SysStringLen(url))));
*iconURL = iconURLBSTR.release();
return S_OK;
}
@@ -272,11 +271,11 @@ HRESULT STDMETHODCALLTYPE WebIconDatabase::hasIconForURL(
// Passing a size parameter of 0, 0 means we don't care about the result of the image, we just
// want to make sure the read from disk to load the icon is kicked off.
- iconDatabase().iconForPageURL(urlString, IntSize(0, 0));
+ iconDatabase().synchronousIconForPageURL(urlString, IntSize(0, 0));
// Check to see if we have a non-empty icon URL for the page, and if we do, we have an icon for
// the page.
- *result = !(iconDatabase().iconURLForPageURL(urlString).isEmpty());
+ *result = !(iconDatabase().synchronousIconURLForPageURL(urlString).isEmpty());
return S_OK;
}
@@ -320,7 +319,13 @@ HBITMAP WebIconDatabase::getOrCreateDefaultIconBitmap(LPSIZE size)
// IconDatabaseClient
-void WebIconDatabase::dispatchDidRemoveAllIcons()
+bool WebIconDatabase::performImport()
+{
+ // Windows doesn't do any old-style database importing.
+ return true;
+}
+
+void WebIconDatabase::didRemoveAllIcons()
{
// Queueing the empty string is a special way of saying "this queued notification is the didRemoveAllIcons notification"
MutexLocker locker(m_notificationMutex);
@@ -328,13 +333,29 @@ void WebIconDatabase::dispatchDidRemoveAllIcons()
scheduleNotificationDelivery();
}
-void WebIconDatabase::dispatchDidAddIconForPageURL(const String& pageURL)
-{
+void WebIconDatabase::didImportIconURLForPageURL(const WTF::String& pageURL)
+{
MutexLocker locker(m_notificationMutex);
m_notificationQueue.append(pageURL.threadsafeCopy());
scheduleNotificationDelivery();
}
+void WebIconDatabase::didImportIconDataForPageURL(const WTF::String& pageURL)
+{
+ // WebKit1 only has a single "icon did change" notification.
+ didImportIconURLForPageURL(pageURL);
+}
+
+void WebIconDatabase::didChangeIconForPageURL(const WTF::String& pageURL)
+{
+ // WebKit1 only has a single "icon did change" notification.
+ didImportIconURLForPageURL(pageURL);
+}
+
+void WebIconDatabase::didFinishURLImport()
+{
+}
+
void WebIconDatabase::scheduleNotificationDelivery()
{
// Caller of this method must hold the m_notificationQueue lock
diff --git a/Source/WebKit/win/WebIconDatabase.h b/Source/WebKit/win/WebIconDatabase.h
index 178fff8..a895b81 100644
--- a/Source/WebKit/win/WebIconDatabase.h
+++ b/Source/WebKit/win/WebIconDatabase.h
@@ -28,12 +28,9 @@
#include "WebKit.h"
-#pragma warning(push, 0)
#include <WebCore/IconDatabaseClient.h>
#include <WebCore/IntSize.h>
#include <WebCore/IntSizeHash.h>
-#pragma warning(pop)
-
#include <wtf/Vector.h>
#include <wtf/Threading.h>
@@ -107,8 +104,12 @@ public:
/* [retval][out] */ BOOL* result);
// IconDatabaseClient
- virtual void dispatchDidRemoveAllIcons();
- virtual void dispatchDidAddIconForPageURL(const WTF::String&);
+ virtual bool performImport();
+ virtual void didRemoveAllIcons();
+ virtual void didImportIconURLForPageURL(const WTF::String&);
+ virtual void didImportIconDataForPageURL(const WTF::String&);
+ virtual void didChangeIconForPageURL(const WTF::String&);
+ virtual void didFinishURLImport();
static BSTR iconDatabaseDidAddIconNotification();
static BSTR iconDatabaseDidRemoveAllIconsNotification();
diff --git a/Source/WebKit/win/WebInspector.cpp b/Source/WebKit/win/WebInspector.cpp
index ec35099..976391d 100644
--- a/Source/WebKit/win/WebInspector.cpp
+++ b/Source/WebKit/win/WebInspector.cpp
@@ -31,10 +31,8 @@
#include "WebKitDLL.h"
#include "WebView.h"
-#pragma warning(push, 0)
#include <WebCore/InspectorController.h>
#include <WebCore/Page.h>
-#pragma warning(pop)
#include <wtf/Assertions.h>
using namespace WebCore;
diff --git a/Source/WebKit/win/WebJavaScriptCollector.cpp b/Source/WebKit/win/WebJavaScriptCollector.cpp
index 42a9da1..cb56b27 100644
--- a/Source/WebKit/win/WebJavaScriptCollector.cpp
+++ b/Source/WebKit/win/WebJavaScriptCollector.cpp
@@ -27,13 +27,11 @@
#include "WebKitDLL.h"
#include "WebJavaScriptCollector.h"
-#pragma warning(push, 0)
#include <JavaScriptCore/Heap.h>
#include <JavaScriptCore/JSGlobalData.h>
#include <WebCore/GCController.h>
#include <WebCore/JSDOMWindow.h>
#include <runtime/JSLock.h>
-#pragma warning(pop)
using namespace JSC;
using namespace WebCore;
diff --git a/Source/WebKit/win/WebKit.vcproj/Interfaces.vcproj b/Source/WebKit/win/WebKit.vcproj/Interfaces.vcproj
index 555a477..724f98d 100644
--- a/Source/WebKit/win/WebKit.vcproj/Interfaces.vcproj
+++ b/Source/WebKit/win/WebKit.vcproj/Interfaces.vcproj
@@ -18,7 +18,7 @@
<Configuration
Name="Debug|Win32"
ConfigurationType="4"
- InheritedPropertySheets="$(WebKitVSPropsRedirectionDir)..\..\..\..\WebKitLibraries\win\tools\vsprops\FeatureDefines.vsprops;$(WebKitVSPropsRedirectionDir)..\..\..\..\WebKitLibraries\win\tools\vsprops\common.vsprops;$(WebKitVSPropsRedirectionDir)..\..\..\..\WebKitLibraries\win\tools\vsprops\debug.vsprops;.\InterfacesCommon.vsprops"
+ InheritedPropertySheets=".\InterfacesDebug.vsprops"
CharacterSet="1"
>
<Tool
@@ -70,7 +70,7 @@
<Configuration
Name="Release|Win32"
ConfigurationType="4"
- InheritedPropertySheets="$(WebKitVSPropsRedirectionDir)..\..\..\..\WebKitLibraries\win\tools\vsprops\FeatureDefines.vsprops;$(WebKitVSPropsRedirectionDir)..\..\..\..\WebKitLibraries\win\tools\vsprops\common.vsprops;$(WebKitVSPropsRedirectionDir)..\..\..\..\WebKitLibraries\win\tools\vsprops\release.vsprops;.\InterfacesCommon.vsprops"
+ InheritedPropertySheets=".\InterfacesRelease.vsprops"
CharacterSet="1"
>
<Tool
@@ -120,9 +120,9 @@
/>
</Configuration>
<Configuration
- Name="Release_LTCG|Win32"
+ Name="Production|Win32"
ConfigurationType="4"
- InheritedPropertySheets="$(WebKitVSPropsRedirectionDir)..\..\..\..\WebKitLibraries\win\tools\vsprops\FeatureDefines.vsprops;$(WebKitVSPropsRedirectionDir)..\..\..\..\WebKitLibraries\win\tools\vsprops\common.vsprops;$(WebKitVSPropsRedirectionDir)..\..\..\..\WebKitLibraries\win\tools\vsprops\release.vsprops;.\InterfacesCommon.vsprops"
+ InheritedPropertySheets=".\InterfacesProduction.vsprops"
CharacterSet="1"
WholeProgramOptimization="1"
>
@@ -175,7 +175,7 @@
<Configuration
Name="Debug_All|Win32"
ConfigurationType="4"
- InheritedPropertySheets="$(WebKitVSPropsRedirectionDir)..\..\..\..\WebKitLibraries\win\tools\vsprops\FeatureDefines.vsprops;$(WebKitVSPropsRedirectionDir)..\..\..\..\WebKitLibraries\win\tools\vsprops\common.vsprops;$(WebKitVSPropsRedirectionDir)..\..\..\..\WebKitLibraries\win\tools\vsprops\debug.vsprops;.\InterfacesCommon.vsprops"
+ InheritedPropertySheets=".\InterfacesDebugAll.vsprops"
CharacterSet="1"
>
<Tool
@@ -227,7 +227,7 @@
<Configuration
Name="Release_Cairo_CFLite|Win32"
ConfigurationType="4"
- InheritedPropertySheets="$(WebKitVSPropsRedirectionDir)..\..\..\..\WebKitLibraries\win\tools\vsprops\FeatureDefinesCairo.vsprops;$(WebKitVSPropsRedirectionDir)..\..\..\..\WebKitLibraries\win\tools\vsprops\common.vsprops;$(WebKitVSPropsRedirectionDir)..\..\..\..\WebKitLibraries\win\tools\vsprops\release.vsprops;$(WebKitVSPropsRedirectionDir)..\..\..\..\WebKitLibraries\win\tools\vsprops\WinCairo.vsprops;.\InterfacesCommon.vsprops"
+ InheritedPropertySheets=".\InterfacesReleaseCairoCFLite.vsprops"
CharacterSet="1"
>
<Tool
@@ -279,7 +279,7 @@
<Configuration
Name="Debug_Cairo_CFLite|Win32"
ConfigurationType="4"
- InheritedPropertySheets="$(WebKitVSPropsRedirectionDir)..\..\..\..\WebKitLibraries\win\tools\vsprops\FeatureDefinesCairo.vsprops;$(WebKitVSPropsRedirectionDir)..\..\..\..\WebKitLibraries\win\tools\vsprops\common.vsprops;$(WebKitVSPropsRedirectionDir)..\..\..\..\WebKitLibraries\win\tools\vsprops\debug.vsprops;$(WebKitVSPropsRedirectionDir)..\..\..\..\WebKitLibraries\win\tools\vsprops\debug_wincairo.vsprops;.\InterfacesCommon.vsprops"
+ InheritedPropertySheets=".\InterfacesDebugCairoCFLite.vsprops"
CharacterSet="1"
>
<Tool
@@ -352,7 +352,7 @@
/>
</FileConfiguration>
<FileConfiguration
- Name="Release_LTCG|Win32"
+ Name="Production|Win32"
ExcludedFromBuild="true"
>
<Tool
@@ -404,7 +404,7 @@
/>
</FileConfiguration>
<FileConfiguration
- Name="Release_LTCG|Win32"
+ Name="Production|Win32"
ExcludedFromBuild="true"
>
<Tool
@@ -456,7 +456,7 @@
/>
</FileConfiguration>
<FileConfiguration
- Name="Release_LTCG|Win32"
+ Name="Production|Win32"
ExcludedFromBuild="true"
>
<Tool
@@ -508,7 +508,7 @@
/>
</FileConfiguration>
<FileConfiguration
- Name="Release_LTCG|Win32"
+ Name="Production|Win32"
ExcludedFromBuild="true"
>
<Tool
@@ -560,7 +560,7 @@
/>
</FileConfiguration>
<FileConfiguration
- Name="Release_LTCG|Win32"
+ Name="Production|Win32"
ExcludedFromBuild="true"
>
<Tool
@@ -612,7 +612,7 @@
/>
</FileConfiguration>
<FileConfiguration
- Name="Release_LTCG|Win32"
+ Name="Production|Win32"
ExcludedFromBuild="true"
>
<Tool
@@ -664,7 +664,7 @@
/>
</FileConfiguration>
<FileConfiguration
- Name="Release_LTCG|Win32"
+ Name="Production|Win32"
ExcludedFromBuild="true"
>
<Tool
@@ -716,7 +716,7 @@
/>
</FileConfiguration>
<FileConfiguration
- Name="Release_LTCG|Win32"
+ Name="Production|Win32"
ExcludedFromBuild="true"
>
<Tool
@@ -768,7 +768,7 @@
/>
</FileConfiguration>
<FileConfiguration
- Name="Release_LTCG|Win32"
+ Name="Production|Win32"
ExcludedFromBuild="true"
>
<Tool
@@ -820,7 +820,7 @@
/>
</FileConfiguration>
<FileConfiguration
- Name="Release_LTCG|Win32"
+ Name="Production|Win32"
ExcludedFromBuild="true"
>
<Tool
@@ -872,7 +872,7 @@
/>
</FileConfiguration>
<FileConfiguration
- Name="Release_LTCG|Win32"
+ Name="Production|Win32"
ExcludedFromBuild="true"
>
<Tool
@@ -924,7 +924,7 @@
/>
</FileConfiguration>
<FileConfiguration
- Name="Release_LTCG|Win32"
+ Name="Production|Win32"
ExcludedFromBuild="true"
>
<Tool
@@ -976,7 +976,7 @@
/>
</FileConfiguration>
<FileConfiguration
- Name="Release_LTCG|Win32"
+ Name="Production|Win32"
ExcludedFromBuild="true"
>
<Tool
@@ -1028,7 +1028,7 @@
/>
</FileConfiguration>
<FileConfiguration
- Name="Release_LTCG|Win32"
+ Name="Production|Win32"
ExcludedFromBuild="true"
>
<Tool
@@ -1080,7 +1080,7 @@
/>
</FileConfiguration>
<FileConfiguration
- Name="Release_LTCG|Win32"
+ Name="Production|Win32"
ExcludedFromBuild="true"
>
<Tool
@@ -1132,7 +1132,7 @@
/>
</FileConfiguration>
<FileConfiguration
- Name="Release_LTCG|Win32"
+ Name="Production|Win32"
ExcludedFromBuild="true"
>
<Tool
@@ -1184,7 +1184,7 @@
/>
</FileConfiguration>
<FileConfiguration
- Name="Release_LTCG|Win32"
+ Name="Production|Win32"
ExcludedFromBuild="true"
>
<Tool
@@ -1236,7 +1236,7 @@
/>
</FileConfiguration>
<FileConfiguration
- Name="Release_LTCG|Win32"
+ Name="Production|Win32"
ExcludedFromBuild="true"
>
<Tool
@@ -1316,7 +1316,7 @@
/>
</FileConfiguration>
<FileConfiguration
- Name="Release_LTCG|Win32"
+ Name="Production|Win32"
ExcludedFromBuild="true"
>
<Tool
@@ -1368,7 +1368,7 @@
/>
</FileConfiguration>
<FileConfiguration
- Name="Release_LTCG|Win32"
+ Name="Production|Win32"
ExcludedFromBuild="true"
>
<Tool
@@ -1420,7 +1420,7 @@
/>
</FileConfiguration>
<FileConfiguration
- Name="Release_LTCG|Win32"
+ Name="Production|Win32"
ExcludedFromBuild="true"
>
<Tool
@@ -1472,7 +1472,7 @@
/>
</FileConfiguration>
<FileConfiguration
- Name="Release_LTCG|Win32"
+ Name="Production|Win32"
ExcludedFromBuild="true"
>
<Tool
@@ -1524,7 +1524,7 @@
/>
</FileConfiguration>
<FileConfiguration
- Name="Release_LTCG|Win32"
+ Name="Production|Win32"
ExcludedFromBuild="true"
>
<Tool
@@ -1576,7 +1576,7 @@
/>
</FileConfiguration>
<FileConfiguration
- Name="Release_LTCG|Win32"
+ Name="Production|Win32"
ExcludedFromBuild="true"
>
<Tool
@@ -1628,7 +1628,7 @@
/>
</FileConfiguration>
<FileConfiguration
- Name="Release_LTCG|Win32"
+ Name="Production|Win32"
ExcludedFromBuild="true"
>
<Tool
@@ -1680,7 +1680,7 @@
/>
</FileConfiguration>
<FileConfiguration
- Name="Release_LTCG|Win32"
+ Name="Production|Win32"
ExcludedFromBuild="true"
>
<Tool
@@ -1732,7 +1732,7 @@
/>
</FileConfiguration>
<FileConfiguration
- Name="Release_LTCG|Win32"
+ Name="Production|Win32"
ExcludedFromBuild="true"
>
<Tool
@@ -1784,7 +1784,7 @@
/>
</FileConfiguration>
<FileConfiguration
- Name="Release_LTCG|Win32"
+ Name="Production|Win32"
ExcludedFromBuild="true"
>
<Tool
@@ -1836,7 +1836,7 @@
/>
</FileConfiguration>
<FileConfiguration
- Name="Release_LTCG|Win32"
+ Name="Production|Win32"
ExcludedFromBuild="true"
>
<Tool
@@ -1888,7 +1888,7 @@
/>
</FileConfiguration>
<FileConfiguration
- Name="Release_LTCG|Win32"
+ Name="Production|Win32"
ExcludedFromBuild="true"
>
<Tool
@@ -1940,7 +1940,7 @@
/>
</FileConfiguration>
<FileConfiguration
- Name="Release_LTCG|Win32"
+ Name="Production|Win32"
ExcludedFromBuild="true"
>
<Tool
@@ -1992,7 +1992,7 @@
/>
</FileConfiguration>
<FileConfiguration
- Name="Release_LTCG|Win32"
+ Name="Production|Win32"
ExcludedFromBuild="true"
>
<Tool
@@ -2044,7 +2044,7 @@
/>
</FileConfiguration>
<FileConfiguration
- Name="Release_LTCG|Win32"
+ Name="Production|Win32"
ExcludedFromBuild="true"
>
<Tool
@@ -2096,7 +2096,7 @@
/>
</FileConfiguration>
<FileConfiguration
- Name="Release_LTCG|Win32"
+ Name="Production|Win32"
ExcludedFromBuild="true"
>
<Tool
@@ -2148,7 +2148,7 @@
/>
</FileConfiguration>
<FileConfiguration
- Name="Release_LTCG|Win32"
+ Name="Production|Win32"
ExcludedFromBuild="true"
>
<Tool
@@ -2200,7 +2200,7 @@
/>
</FileConfiguration>
<FileConfiguration
- Name="Release_LTCG|Win32"
+ Name="Production|Win32"
ExcludedFromBuild="true"
>
<Tool
@@ -2252,7 +2252,7 @@
/>
</FileConfiguration>
<FileConfiguration
- Name="Release_LTCG|Win32"
+ Name="Production|Win32"
ExcludedFromBuild="true"
>
<Tool
@@ -2304,7 +2304,7 @@
/>
</FileConfiguration>
<FileConfiguration
- Name="Release_LTCG|Win32"
+ Name="Production|Win32"
ExcludedFromBuild="true"
>
<Tool
@@ -2356,7 +2356,7 @@
/>
</FileConfiguration>
<FileConfiguration
- Name="Release_LTCG|Win32"
+ Name="Production|Win32"
ExcludedFromBuild="true"
>
<Tool
@@ -2408,7 +2408,7 @@
/>
</FileConfiguration>
<FileConfiguration
- Name="Release_LTCG|Win32"
+ Name="Production|Win32"
ExcludedFromBuild="true"
>
<Tool
@@ -2460,7 +2460,7 @@
/>
</FileConfiguration>
<FileConfiguration
- Name="Release_LTCG|Win32"
+ Name="Production|Win32"
ExcludedFromBuild="true"
>
<Tool
@@ -2512,7 +2512,7 @@
/>
</FileConfiguration>
<FileConfiguration
- Name="Release_LTCG|Win32"
+ Name="Production|Win32"
ExcludedFromBuild="true"
>
<Tool
@@ -2564,7 +2564,7 @@
/>
</FileConfiguration>
<FileConfiguration
- Name="Release_LTCG|Win32"
+ Name="Production|Win32"
ExcludedFromBuild="true"
>
<Tool
@@ -2616,7 +2616,7 @@
/>
</FileConfiguration>
<FileConfiguration
- Name="Release_LTCG|Win32"
+ Name="Production|Win32"
ExcludedFromBuild="true"
>
<Tool
@@ -2668,7 +2668,7 @@
/>
</FileConfiguration>
<FileConfiguration
- Name="Release_LTCG|Win32"
+ Name="Production|Win32"
ExcludedFromBuild="true"
>
<Tool
@@ -2720,7 +2720,7 @@
/>
</FileConfiguration>
<FileConfiguration
- Name="Release_LTCG|Win32"
+ Name="Production|Win32"
ExcludedFromBuild="true"
>
<Tool
@@ -2772,7 +2772,7 @@
/>
</FileConfiguration>
<FileConfiguration
- Name="Release_LTCG|Win32"
+ Name="Production|Win32"
ExcludedFromBuild="true"
>
<Tool
@@ -2824,7 +2824,7 @@
/>
</FileConfiguration>
<FileConfiguration
- Name="Release_LTCG|Win32"
+ Name="Production|Win32"
ExcludedFromBuild="true"
>
<Tool
@@ -2876,7 +2876,7 @@
/>
</FileConfiguration>
<FileConfiguration
- Name="Release_LTCG|Win32"
+ Name="Production|Win32"
ExcludedFromBuild="true"
>
<Tool
@@ -2928,7 +2928,7 @@
/>
</FileConfiguration>
<FileConfiguration
- Name="Release_LTCG|Win32"
+ Name="Production|Win32"
ExcludedFromBuild="true"
>
<Tool
@@ -2980,7 +2980,7 @@
/>
</FileConfiguration>
<FileConfiguration
- Name="Release_LTCG|Win32"
+ Name="Production|Win32"
ExcludedFromBuild="true"
>
<Tool
@@ -3032,7 +3032,7 @@
/>
</FileConfiguration>
<FileConfiguration
- Name="Release_LTCG|Win32"
+ Name="Production|Win32"
ExcludedFromBuild="true"
>
<Tool
@@ -3084,7 +3084,7 @@
/>
</FileConfiguration>
<FileConfiguration
- Name="Release_LTCG|Win32"
+ Name="Production|Win32"
ExcludedFromBuild="true"
>
<Tool
@@ -3136,7 +3136,7 @@
/>
</FileConfiguration>
<FileConfiguration
- Name="Release_LTCG|Win32"
+ Name="Production|Win32"
ExcludedFromBuild="true"
>
<Tool
@@ -3188,7 +3188,7 @@
/>
</FileConfiguration>
<FileConfiguration
- Name="Release_LTCG|Win32"
+ Name="Production|Win32"
ExcludedFromBuild="true"
>
<Tool
@@ -3240,7 +3240,7 @@
/>
</FileConfiguration>
<FileConfiguration
- Name="Release_LTCG|Win32"
+ Name="Production|Win32"
ExcludedFromBuild="true"
>
<Tool
@@ -3292,7 +3292,7 @@
/>
</FileConfiguration>
<FileConfiguration
- Name="Release_LTCG|Win32"
+ Name="Production|Win32"
ExcludedFromBuild="true"
>
<Tool
@@ -3344,7 +3344,7 @@
/>
</FileConfiguration>
<FileConfiguration
- Name="Release_LTCG|Win32"
+ Name="Production|Win32"
ExcludedFromBuild="true"
>
<Tool
@@ -3396,7 +3396,7 @@
/>
</FileConfiguration>
<FileConfiguration
- Name="Release_LTCG|Win32"
+ Name="Production|Win32"
ExcludedFromBuild="true"
>
<Tool
@@ -3448,7 +3448,7 @@
/>
</FileConfiguration>
<FileConfiguration
- Name="Release_LTCG|Win32"
+ Name="Production|Win32"
ExcludedFromBuild="true"
>
<Tool
@@ -3500,7 +3500,7 @@
/>
</FileConfiguration>
<FileConfiguration
- Name="Release_LTCG|Win32"
+ Name="Production|Win32"
ExcludedFromBuild="true"
>
<Tool
@@ -3552,7 +3552,7 @@
/>
</FileConfiguration>
<FileConfiguration
- Name="Release_LTCG|Win32"
+ Name="Production|Win32"
ExcludedFromBuild="true"
>
<Tool
@@ -3604,7 +3604,7 @@
/>
</FileConfiguration>
<FileConfiguration
- Name="Release_LTCG|Win32"
+ Name="Production|Win32"
ExcludedFromBuild="true"
>
<Tool
@@ -3656,7 +3656,7 @@
/>
</FileConfiguration>
<FileConfiguration
- Name="Release_LTCG|Win32"
+ Name="Production|Win32"
ExcludedFromBuild="true"
>
<Tool
@@ -3708,7 +3708,7 @@
/>
</FileConfiguration>
<FileConfiguration
- Name="Release_LTCG|Win32"
+ Name="Production|Win32"
ExcludedFromBuild="true"
>
<Tool
@@ -3760,7 +3760,7 @@
/>
</FileConfiguration>
<FileConfiguration
- Name="Release_LTCG|Win32"
+ Name="Production|Win32"
ExcludedFromBuild="true"
>
<Tool
@@ -3812,7 +3812,7 @@
/>
</FileConfiguration>
<FileConfiguration
- Name="Release_LTCG|Win32"
+ Name="Production|Win32"
ExcludedFromBuild="true"
>
<Tool
@@ -3864,7 +3864,7 @@
/>
</FileConfiguration>
<FileConfiguration
- Name="Release_LTCG|Win32"
+ Name="Production|Win32"
ExcludedFromBuild="true"
>
<Tool
@@ -3916,7 +3916,7 @@
/>
</FileConfiguration>
<FileConfiguration
- Name="Release_LTCG|Win32"
+ Name="Production|Win32"
ExcludedFromBuild="true"
>
<Tool
@@ -3968,7 +3968,7 @@
/>
</FileConfiguration>
<FileConfiguration
- Name="Release_LTCG|Win32"
+ Name="Production|Win32"
ExcludedFromBuild="true"
>
<Tool
@@ -4020,7 +4020,7 @@
/>
</FileConfiguration>
<FileConfiguration
- Name="Release_LTCG|Win32"
+ Name="Production|Win32"
ExcludedFromBuild="true"
>
<Tool
@@ -4072,7 +4072,7 @@
/>
</FileConfiguration>
<FileConfiguration
- Name="Release_LTCG|Win32"
+ Name="Production|Win32"
ExcludedFromBuild="true"
>
<Tool
@@ -4124,7 +4124,7 @@
/>
</FileConfiguration>
<FileConfiguration
- Name="Release_LTCG|Win32"
+ Name="Production|Win32"
ExcludedFromBuild="true"
>
<Tool
@@ -4176,7 +4176,7 @@
/>
</FileConfiguration>
<FileConfiguration
- Name="Release_LTCG|Win32"
+ Name="Production|Win32"
ExcludedFromBuild="true"
>
<Tool
@@ -4228,7 +4228,7 @@
/>
</FileConfiguration>
<FileConfiguration
- Name="Release_LTCG|Win32"
+ Name="Production|Win32"
ExcludedFromBuild="true"
>
<Tool
@@ -4280,7 +4280,7 @@
/>
</FileConfiguration>
<FileConfiguration
- Name="Release_LTCG|Win32"
+ Name="Production|Win32"
ExcludedFromBuild="true"
>
<Tool
@@ -4332,7 +4332,7 @@
/>
</FileConfiguration>
<FileConfiguration
- Name="Release_LTCG|Win32"
+ Name="Production|Win32"
ExcludedFromBuild="true"
>
<Tool
@@ -4384,7 +4384,7 @@
/>
</FileConfiguration>
<FileConfiguration
- Name="Release_LTCG|Win32"
+ Name="Production|Win32"
ExcludedFromBuild="true"
>
<Tool
@@ -4436,7 +4436,7 @@
/>
</FileConfiguration>
<FileConfiguration
- Name="Release_LTCG|Win32"
+ Name="Production|Win32"
ExcludedFromBuild="true"
>
<Tool
@@ -4488,7 +4488,7 @@
/>
</FileConfiguration>
<FileConfiguration
- Name="Release_LTCG|Win32"
+ Name="Production|Win32"
ExcludedFromBuild="true"
>
<Tool
@@ -4540,7 +4540,7 @@
/>
</FileConfiguration>
<FileConfiguration
- Name="Release_LTCG|Win32"
+ Name="Production|Win32"
ExcludedFromBuild="true"
>
<Tool
@@ -4592,7 +4592,7 @@
/>
</FileConfiguration>
<FileConfiguration
- Name="Release_LTCG|Win32"
+ Name="Production|Win32"
>
<Tool
Name="VCMIDLTool"
@@ -4644,7 +4644,7 @@
/>
</FileConfiguration>
<FileConfiguration
- Name="Release_LTCG|Win32"
+ Name="Production|Win32"
ExcludedFromBuild="true"
>
<Tool
diff --git a/Source/WebKit/win/WebKit.vcproj/InterfacesDebug.vsprops b/Source/WebKit/win/WebKit.vcproj/InterfacesDebug.vsprops
new file mode 100644
index 0000000..263dcb6
--- /dev/null
+++ b/Source/WebKit/win/WebKit.vcproj/InterfacesDebug.vsprops
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="Windows-1252"?>
+<VisualStudioPropertySheet
+ ProjectType="Visual C++"
+ Version="8.00"
+ Name="InterfacesDebug"
+ InheritedPropertySheets="
+ $(WebKitVSPropsRedirectionDir)..\..\..\..\WebKitLibraries\win\tools\vsprops\FeatureDefines.vsprops;
+ $(WebKitVSPropsRedirectionDir)..\..\..\..\WebKitLibraries\win\tools\vsprops\common.vsprops;
+ $(WebKitVSPropsRedirectionDir)..\..\..\..\WebKitLibraries\win\tools\vsprops\debug.vsprops;
+ .\InterfacesCommon.vsprops"
+ >
+</VisualStudioPropertySheet>
diff --git a/Source/WebKit/win/WebKit.vcproj/InterfacesDebugAll.vsprops b/Source/WebKit/win/WebKit.vcproj/InterfacesDebugAll.vsprops
new file mode 100644
index 0000000..045b788
--- /dev/null
+++ b/Source/WebKit/win/WebKit.vcproj/InterfacesDebugAll.vsprops
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="Windows-1252"?>
+<VisualStudioPropertySheet
+ ProjectType="Visual C++"
+ Version="8.00"
+ Name="InterfacesDebugAll"
+ InheritedPropertySheets="
+ $(WebKitVSPropsRedirectionDir)..\..\..\..\WebKitLibraries\win\tools\vsprops\FeatureDefines.vsprops;
+ $(WebKitVSPropsRedirectionDir)..\..\..\..\WebKitLibraries\win\tools\vsprops\common.vsprops;
+ $(WebKitVSPropsRedirectionDir)..\..\..\..\WebKitLibraries\win\tools\vsprops\debug.vsprops;
+ .\InterfacesCommon.vsprops"
+ >
+</VisualStudioPropertySheet>
diff --git a/Source/WebKit/win/WebKit.vcproj/InterfacesDebugCairoCFLite.vsprops b/Source/WebKit/win/WebKit.vcproj/InterfacesDebugCairoCFLite.vsprops
new file mode 100644
index 0000000..36fcc5a
--- /dev/null
+++ b/Source/WebKit/win/WebKit.vcproj/InterfacesDebugCairoCFLite.vsprops
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="Windows-1252"?>
+<VisualStudioPropertySheet
+ ProjectType="Visual C++"
+ Version="8.00"
+ Name="InterfacesDebugCairoCFLite"
+ InheritedPropertySheets="
+ $(WebKitVSPropsRedirectionDir)..\..\..\..\WebKitLibraries\win\tools\vsprops\FeatureDefinesCairo.vsprops;
+ $(WebKitVSPropsRedirectionDir)..\..\..\..\WebKitLibraries\win\tools\vsprops\common.vsprops;
+ $(WebKitVSPropsRedirectionDir)..\..\..\..\WebKitLibraries\win\tools\vsprops\debug.vsprops;
+ $(WebKitVSPropsRedirectionDir)..\..\..\..\WebKitLibraries\win\tools\vsprops\debug_wincairo.vsprops;
+ .\InterfacesCommon.vsprops"
+ >
+</VisualStudioPropertySheet>
diff --git a/Source/WebKit/win/WebKit.vcproj/InterfacesProduction.vsprops b/Source/WebKit/win/WebKit.vcproj/InterfacesProduction.vsprops
new file mode 100644
index 0000000..5e71307
--- /dev/null
+++ b/Source/WebKit/win/WebKit.vcproj/InterfacesProduction.vsprops
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="Windows-1252"?>
+<VisualStudioPropertySheet
+ ProjectType="Visual C++"
+ Version="8.00"
+ Name="InterfacesProduction"
+ InheritedPropertySheets="
+ $(WebKitVSPropsRedirectionDir)..\..\..\..\WebKitLibraries\win\tools\vsprops\FeatureDefines.vsprops;
+ $(WebKitVSPropsRedirectionDir)..\..\..\..\WebKitLibraries\win\tools\vsprops\common.vsprops;
+ $(WebKitVSPropsRedirectionDir)..\..\..\..\WebKitLibraries\win\tools\vsprops\release.vsprops;
+ $(WebKitVSPropsRedirectionDir)..\..\..\..\WebKitLibraries\win\tools\vsprops\production.vsprops;
+ .\InterfacesCommon.vsprops"
+ >
+</VisualStudioPropertySheet>
diff --git a/Source/WebKit/win/WebKit.vcproj/InterfacesRelease.vsprops b/Source/WebKit/win/WebKit.vcproj/InterfacesRelease.vsprops
new file mode 100644
index 0000000..77c4b1f
--- /dev/null
+++ b/Source/WebKit/win/WebKit.vcproj/InterfacesRelease.vsprops
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="Windows-1252"?>
+<VisualStudioPropertySheet
+ ProjectType="Visual C++"
+ Version="8.00"
+ Name="InterfacesRelease"
+ InheritedPropertySheets="
+ $(WebKitVSPropsRedirectionDir)..\..\..\..\WebKitLibraries\win\tools\vsprops\FeatureDefines.vsprops;
+ $(WebKitVSPropsRedirectionDir)..\..\..\..\WebKitLibraries\win\tools\vsprops\common.vsprops;
+ $(WebKitVSPropsRedirectionDir)..\..\..\..\WebKitLibraries\win\tools\vsprops\release.vsprops;
+ .\InterfacesCommon.vsprops"
+ >
+</VisualStudioPropertySheet>
diff --git a/Source/WebKit/win/WebKit.vcproj/InterfacesReleaseCairoCFLite.vsprops b/Source/WebKit/win/WebKit.vcproj/InterfacesReleaseCairoCFLite.vsprops
new file mode 100644
index 0000000..5e17aee
--- /dev/null
+++ b/Source/WebKit/win/WebKit.vcproj/InterfacesReleaseCairoCFLite.vsprops
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="Windows-1252"?>
+<VisualStudioPropertySheet
+ ProjectType="Visual C++"
+ Version="8.00"
+ Name="InterfacesReleaseCairoCFLite"
+ InheritedPropertySheets="
+ $(WebKitVSPropsRedirectionDir)..\..\..\..\WebKitLibraries\win\tools\vsprops\FeatureDefinesCairo.vsprops;
+ $(WebKitVSPropsRedirectionDir)..\..\..\..\WebKitLibraries\win\tools\vsprops\common.vsprops;
+ $(WebKitVSPropsRedirectionDir)..\..\..\..\WebKitLibraries\win\tools\vsprops\release.vsprops;
+ $(WebKitVSPropsRedirectionDir)..\..\..\..\WebKitLibraries\win\tools\vsprops\WinCairo.vsprops;
+ .\InterfacesCommon.vsprops"
+ >
+</VisualStudioPropertySheet>
diff --git a/Source/WebKit/win/WebKit.vcproj/WebKit.make b/Source/WebKit/win/WebKit.vcproj/WebKit.make
index b777d2f..59bd412 100755
--- a/Source/WebKit/win/WebKit.vcproj/WebKit.make
+++ b/Source/WebKit/win/WebKit.vcproj/WebKit.make
@@ -1,7 +1,7 @@
!IF "$(BUILDSTYLE)"=="DEBUG"
BUILDSTYLE=Debug_All
!ELSE
-BUILDSTYLE=Release_LTCG
+BUILDSTYLE=Production
!ENDIF
install:
@@ -9,7 +9,6 @@ install:
set WebKitOutputDir=$(OBJROOT)
set ConfigurationBuildDir=$(OBJROOT)\$(BUILDSTYLE)
set WebKitVSPropsRedirectionDir=$(SRCROOT)\AppleInternal\tools\vsprops\OpenSource\1\2\3\4\
- set PRODUCTION=1
devenv "WebKit.submit.sln" /rebuild $(BUILDSTYLE)
-xcopy "%ConfigurationBuildDir%\bin\*.exe" "$(DSTROOT)\AppleInternal\bin\" /e/v/i/h/y
xcopy "%ConfigurationBuildDir%\bin\*.pdb" "$(DSTROOT)\AppleInternal\bin\" /e/v/i/h/y
diff --git a/Source/WebKit/win/WebKit.vcproj/WebKit.sln b/Source/WebKit/win/WebKit.vcproj/WebKit.sln
index 3b578c5..b2b8d92 100644
--- a/Source/WebKit/win/WebKit.vcproj/WebKit.sln
+++ b/Source/WebKit/win/WebKit.vcproj/WebKit.sln
@@ -159,7 +159,7 @@ Global
Debug_Cairo_CFLite|Win32 = Debug_Cairo_CFLite|Win32
Debug|Win32 = Debug|Win32
Release_Cairo_CFLite|Win32 = Release_Cairo_CFLite|Win32
- Release_LTCG|Win32 = Release_LTCG|Win32
+ Production|Win32 = Production|Win32
Release|Win32 = Release|Win32
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
@@ -171,8 +171,8 @@ Global
{011D10F1-B656-4A1B-A0C3-3842F02122C5}.Debug|Win32.Build.0 = Debug|Win32
{011D10F1-B656-4A1B-A0C3-3842F02122C5}.Release_Cairo_CFLite|Win32.ActiveCfg = Release_Cairo_CFLite|Win32
{011D10F1-B656-4A1B-A0C3-3842F02122C5}.Release_Cairo_CFLite|Win32.Build.0 = Release_Cairo_CFLite|Win32
- {011D10F1-B656-4A1B-A0C3-3842F02122C5}.Release_LTCG|Win32.ActiveCfg = Release_LTCG|Win32
- {011D10F1-B656-4A1B-A0C3-3842F02122C5}.Release_LTCG|Win32.Build.0 = Release_LTCG|Win32
+ {011D10F1-B656-4A1B-A0C3-3842F02122C5}.Production|Win32.ActiveCfg = Production|Win32
+ {011D10F1-B656-4A1B-A0C3-3842F02122C5}.Production|Win32.Build.0 = Production|Win32
{011D10F1-B656-4A1B-A0C3-3842F02122C5}.Release|Win32.ActiveCfg = Release|Win32
{011D10F1-B656-4A1B-A0C3-3842F02122C5}.Release|Win32.Build.0 = Release|Win32
{1C16337B-ACF3-4D03-AA90-851C5B5EADA6}.Debug_All|Win32.ActiveCfg = Debug_All|Win32
@@ -183,8 +183,8 @@ Global
{1C16337B-ACF3-4D03-AA90-851C5B5EADA6}.Debug|Win32.Build.0 = Debug|Win32
{1C16337B-ACF3-4D03-AA90-851C5B5EADA6}.Release_Cairo_CFLite|Win32.ActiveCfg = Release_Cairo_CFLite|Win32
{1C16337B-ACF3-4D03-AA90-851C5B5EADA6}.Release_Cairo_CFLite|Win32.Build.0 = Release_Cairo_CFLite|Win32
- {1C16337B-ACF3-4D03-AA90-851C5B5EADA6}.Release_LTCG|Win32.ActiveCfg = Release_LTCG|Win32
- {1C16337B-ACF3-4D03-AA90-851C5B5EADA6}.Release_LTCG|Win32.Build.0 = Release_LTCG|Win32
+ {1C16337B-ACF3-4D03-AA90-851C5B5EADA6}.Production|Win32.ActiveCfg = Production|Win32
+ {1C16337B-ACF3-4D03-AA90-851C5B5EADA6}.Production|Win32.Build.0 = Production|Win32
{1C16337B-ACF3-4D03-AA90-851C5B5EADA6}.Release|Win32.ActiveCfg = Release|Win32
{1C16337B-ACF3-4D03-AA90-851C5B5EADA6}.Release|Win32.Build.0 = Release|Win32
{AA8A5A85-592B-4357-BC60-E0E91E026AF6}.Debug_All|Win32.ActiveCfg = Debug_All|Win32
@@ -195,8 +195,8 @@ Global
{AA8A5A85-592B-4357-BC60-E0E91E026AF6}.Debug|Win32.Build.0 = Debug|Win32
{AA8A5A85-592B-4357-BC60-E0E91E026AF6}.Release_Cairo_CFLite|Win32.ActiveCfg = Release_Cairo_CFLite|Win32
{AA8A5A85-592B-4357-BC60-E0E91E026AF6}.Release_Cairo_CFLite|Win32.Build.0 = Release_Cairo_CFLite|Win32
- {AA8A5A85-592B-4357-BC60-E0E91E026AF6}.Release_LTCG|Win32.ActiveCfg = Release_LTCG|Win32
- {AA8A5A85-592B-4357-BC60-E0E91E026AF6}.Release_LTCG|Win32.Build.0 = Release_LTCG|Win32
+ {AA8A5A85-592B-4357-BC60-E0E91E026AF6}.Production|Win32.ActiveCfg = Production|Win32
+ {AA8A5A85-592B-4357-BC60-E0E91E026AF6}.Production|Win32.Build.0 = Production|Win32
{AA8A5A85-592B-4357-BC60-E0E91E026AF6}.Release|Win32.ActiveCfg = Release|Win32
{AA8A5A85-592B-4357-BC60-E0E91E026AF6}.Release|Win32.Build.0 = Release|Win32
{C59E5129-B453-49B7-A52B-1E104715F76E}.Debug_All|Win32.ActiveCfg = Debug_All|Win32
@@ -207,8 +207,8 @@ Global
{C59E5129-B453-49B7-A52B-1E104715F76E}.Debug|Win32.Build.0 = Debug|Win32
{C59E5129-B453-49B7-A52B-1E104715F76E}.Release_Cairo_CFLite|Win32.ActiveCfg = Release_Cairo_CFLite|Win32
{C59E5129-B453-49B7-A52B-1E104715F76E}.Release_Cairo_CFLite|Win32.Build.0 = Release_Cairo_CFLite|Win32
- {C59E5129-B453-49B7-A52B-1E104715F76E}.Release_LTCG|Win32.ActiveCfg = Release_LTCG|Win32
- {C59E5129-B453-49B7-A52B-1E104715F76E}.Release_LTCG|Win32.Build.0 = Release_LTCG|Win32
+ {C59E5129-B453-49B7-A52B-1E104715F76E}.Production|Win32.ActiveCfg = Production|Win32
+ {C59E5129-B453-49B7-A52B-1E104715F76E}.Production|Win32.Build.0 = Production|Win32
{C59E5129-B453-49B7-A52B-1E104715F76E}.Release|Win32.ActiveCfg = Release|Win32
{C59E5129-B453-49B7-A52B-1E104715F76E}.Release|Win32.Build.0 = Release|Win32
{4FF5BA11-59EC-4C24-8F52-F235C2E7D43A}.Debug_All|Win32.ActiveCfg = Debug_All|Win32
@@ -219,8 +219,8 @@ Global
{4FF5BA11-59EC-4C24-8F52-F235C2E7D43A}.Debug|Win32.Build.0 = Debug|Win32
{4FF5BA11-59EC-4C24-8F52-F235C2E7D43A}.Release_Cairo_CFLite|Win32.ActiveCfg = Release_Cairo_CFLite|Win32
{4FF5BA11-59EC-4C24-8F52-F235C2E7D43A}.Release_Cairo_CFLite|Win32.Build.0 = Release_Cairo_CFLite|Win32
- {4FF5BA11-59EC-4C24-8F52-F235C2E7D43A}.Release_LTCG|Win32.ActiveCfg = Release_LTCG|Win32
- {4FF5BA11-59EC-4C24-8F52-F235C2E7D43A}.Release_LTCG|Win32.Build.0 = Release_LTCG|Win32
+ {4FF5BA11-59EC-4C24-8F52-F235C2E7D43A}.Production|Win32.ActiveCfg = Production|Win32
+ {4FF5BA11-59EC-4C24-8F52-F235C2E7D43A}.Production|Win32.Build.0 = Production|Win32
{4FF5BA11-59EC-4C24-8F52-F235C2E7D43A}.Release|Win32.ActiveCfg = Release|Win32
{4FF5BA11-59EC-4C24-8F52-F235C2E7D43A}.Release|Win32.Build.0 = Release|Win32
{0A324352-B3B6-496C-9E5B-4C7E923E628B}.Debug_All|Win32.ActiveCfg = Debug_All|Win32
@@ -231,8 +231,8 @@ Global
{0A324352-B3B6-496C-9E5B-4C7E923E628B}.Debug|Win32.Build.0 = Debug|Win32
{0A324352-B3B6-496C-9E5B-4C7E923E628B}.Release_Cairo_CFLite|Win32.ActiveCfg = Release_Cairo_CFLite|Win32
{0A324352-B3B6-496C-9E5B-4C7E923E628B}.Release_Cairo_CFLite|Win32.Build.0 = Release_Cairo_CFLite|Win32
- {0A324352-B3B6-496C-9E5B-4C7E923E628B}.Release_LTCG|Win32.ActiveCfg = Release_LTCG|Win32
- {0A324352-B3B6-496C-9E5B-4C7E923E628B}.Release_LTCG|Win32.Build.0 = Release_LTCG|Win32
+ {0A324352-B3B6-496C-9E5B-4C7E923E628B}.Production|Win32.ActiveCfg = Production|Win32
+ {0A324352-B3B6-496C-9E5B-4C7E923E628B}.Production|Win32.Build.0 = Production|Win32
{0A324352-B3B6-496C-9E5B-4C7E923E628B}.Release|Win32.ActiveCfg = Release|Win32
{0A324352-B3B6-496C-9E5B-4C7E923E628B}.Release|Win32.Build.0 = Release|Win32
{E498CA9D-3BD2-4D52-8E37-C8DC76526325}.Debug_All|Win32.ActiveCfg = Debug_All|Win32
@@ -241,8 +241,8 @@ Global
{E498CA9D-3BD2-4D52-8E37-C8DC76526325}.Debug|Win32.ActiveCfg = Debug|Win32
{E498CA9D-3BD2-4D52-8E37-C8DC76526325}.Debug|Win32.Build.0 = Debug|Win32
{E498CA9D-3BD2-4D52-8E37-C8DC76526325}.Release_Cairo_CFLite|Win32.ActiveCfg = Release_Cairo_CFLite|Win32
- {E498CA9D-3BD2-4D52-8E37-C8DC76526325}.Release_LTCG|Win32.ActiveCfg = Release_LTCG|Win32
- {E498CA9D-3BD2-4D52-8E37-C8DC76526325}.Release_LTCG|Win32.Build.0 = Release_LTCG|Win32
+ {E498CA9D-3BD2-4D52-8E37-C8DC76526325}.Production|Win32.ActiveCfg = Production|Win32
+ {E498CA9D-3BD2-4D52-8E37-C8DC76526325}.Production|Win32.Build.0 = Production|Win32
{E498CA9D-3BD2-4D52-8E37-C8DC76526325}.Release|Win32.ActiveCfg = Release|Win32
{E498CA9D-3BD2-4D52-8E37-C8DC76526325}.Release|Win32.Build.0 = Release|Win32
{1AFD081F-1AC7-4A97-8EFA-6DF97761A3A2}.Debug_All|Win32.ActiveCfg = Debug_All|Win32
@@ -253,8 +253,8 @@ Global
{1AFD081F-1AC7-4A97-8EFA-6DF97761A3A2}.Debug|Win32.Build.0 = Debug|Win32
{1AFD081F-1AC7-4A97-8EFA-6DF97761A3A2}.Release_Cairo_CFLite|Win32.ActiveCfg = Release_Cairo_CFLite|Win32
{1AFD081F-1AC7-4A97-8EFA-6DF97761A3A2}.Release_Cairo_CFLite|Win32.Build.0 = Release_Cairo_CFLite|Win32
- {1AFD081F-1AC7-4A97-8EFA-6DF97761A3A2}.Release_LTCG|Win32.ActiveCfg = Release_LTCG|Win32
- {1AFD081F-1AC7-4A97-8EFA-6DF97761A3A2}.Release_LTCG|Win32.Build.0 = Release_LTCG|Win32
+ {1AFD081F-1AC7-4A97-8EFA-6DF97761A3A2}.Production|Win32.ActiveCfg = Production|Win32
+ {1AFD081F-1AC7-4A97-8EFA-6DF97761A3A2}.Production|Win32.Build.0 = Production|Win32
{1AFD081F-1AC7-4A97-8EFA-6DF97761A3A2}.Release|Win32.ActiveCfg = Release|Win32
{1AFD081F-1AC7-4A97-8EFA-6DF97761A3A2}.Release|Win32.Build.0 = Release|Win32
{2E51ABE8-76CB-485B-A66C-46AEF4DF8ACD}.Debug_All|Win32.ActiveCfg = Debug_All|Win32
@@ -265,8 +265,8 @@ Global
{2E51ABE8-76CB-485B-A66C-46AEF4DF8ACD}.Debug|Win32.Build.0 = Debug|Win32
{2E51ABE8-76CB-485B-A66C-46AEF4DF8ACD}.Release_Cairo_CFLite|Win32.ActiveCfg = Release_Cairo_CFLite|Win32
{2E51ABE8-76CB-485B-A66C-46AEF4DF8ACD}.Release_Cairo_CFLite|Win32.Build.0 = Release_Cairo_CFLite|Win32
- {2E51ABE8-76CB-485B-A66C-46AEF4DF8ACD}.Release_LTCG|Win32.ActiveCfg = Release_LTCG|Win32
- {2E51ABE8-76CB-485B-A66C-46AEF4DF8ACD}.Release_LTCG|Win32.Build.0 = Release_LTCG|Win32
+ {2E51ABE8-76CB-485B-A66C-46AEF4DF8ACD}.Production|Win32.ActiveCfg = Production|Win32
+ {2E51ABE8-76CB-485B-A66C-46AEF4DF8ACD}.Production|Win32.Build.0 = Production|Win32
{2E51ABE8-76CB-485B-A66C-46AEF4DF8ACD}.Release|Win32.ActiveCfg = Release|Win32
{2E51ABE8-76CB-485B-A66C-46AEF4DF8ACD}.Release|Win32.Build.0 = Release|Win32
{2EDAD637-CBA8-4E55-97ED-7D2BBC336FDB}.Debug_All|Win32.ActiveCfg = Debug_All|Win32
@@ -277,8 +277,8 @@ Global
{2EDAD637-CBA8-4E55-97ED-7D2BBC336FDB}.Debug|Win32.Build.0 = Debug|Win32
{2EDAD637-CBA8-4E55-97ED-7D2BBC336FDB}.Release_Cairo_CFLite|Win32.ActiveCfg = Release_Cairo_CFLite|Win32
{2EDAD637-CBA8-4E55-97ED-7D2BBC336FDB}.Release_Cairo_CFLite|Win32.Build.0 = Release_Cairo_CFLite|Win32
- {2EDAD637-CBA8-4E55-97ED-7D2BBC336FDB}.Release_LTCG|Win32.ActiveCfg = Release_LTCG|Win32
- {2EDAD637-CBA8-4E55-97ED-7D2BBC336FDB}.Release_LTCG|Win32.Build.0 = Release_LTCG|Win32
+ {2EDAD637-CBA8-4E55-97ED-7D2BBC336FDB}.Production|Win32.ActiveCfg = Production|Win32
+ {2EDAD637-CBA8-4E55-97ED-7D2BBC336FDB}.Production|Win32.Build.0 = Production|Win32
{2EDAD637-CBA8-4E55-97ED-7D2BBC336FDB}.Release|Win32.ActiveCfg = Release|Win32
{2EDAD637-CBA8-4E55-97ED-7D2BBC336FDB}.Release|Win32.Build.0 = Release|Win32
{AAE88FEF-509E-4D49-870B-7357922C276F}.Debug_All|Win32.ActiveCfg = Debug_All|Win32
@@ -289,8 +289,8 @@ Global
{AAE88FEF-509E-4D49-870B-7357922C276F}.Debug|Win32.Build.0 = Debug|Win32
{AAE88FEF-509E-4D49-870B-7357922C276F}.Release_Cairo_CFLite|Win32.ActiveCfg = Release_Cairo_CFLite|Win32
{AAE88FEF-509E-4D49-870B-7357922C276F}.Release_Cairo_CFLite|Win32.Build.0 = Release_Cairo_CFLite|Win32
- {AAE88FEF-509E-4D49-870B-7357922C276F}.Release_LTCG|Win32.ActiveCfg = Release_LTCG|Win32
- {AAE88FEF-509E-4D49-870B-7357922C276F}.Release_LTCG|Win32.Build.0 = Release_LTCG|Win32
+ {AAE88FEF-509E-4D49-870B-7357922C276F}.Production|Win32.ActiveCfg = Production|Win32
+ {AAE88FEF-509E-4D49-870B-7357922C276F}.Production|Win32.Build.0 = Production|Win32
{AAE88FEF-509E-4D49-870B-7357922C276F}.Release|Win32.ActiveCfg = Release|Win32
{AAE88FEF-509E-4D49-870B-7357922C276F}.Release|Win32.Build.0 = Release|Win32
{91762BE2-87EF-4F5A-A480-48B90EB3F406}.Debug_All|Win32.ActiveCfg = Debug_All|Win32
@@ -301,8 +301,8 @@ Global
{91762BE2-87EF-4F5A-A480-48B90EB3F406}.Debug|Win32.Build.0 = Debug|Win32
{91762BE2-87EF-4F5A-A480-48B90EB3F406}.Release_Cairo_CFLite|Win32.ActiveCfg = Release_Cairo_CFLite|Win32
{91762BE2-87EF-4F5A-A480-48B90EB3F406}.Release_Cairo_CFLite|Win32.Build.0 = Release_Cairo_CFLite|Win32
- {91762BE2-87EF-4F5A-A480-48B90EB3F406}.Release_LTCG|Win32.ActiveCfg = Release_LTCG|Win32
- {91762BE2-87EF-4F5A-A480-48B90EB3F406}.Release_LTCG|Win32.Build.0 = Release_LTCG|Win32
+ {91762BE2-87EF-4F5A-A480-48B90EB3F406}.Production|Win32.ActiveCfg = Production|Win32
+ {91762BE2-87EF-4F5A-A480-48B90EB3F406}.Production|Win32.Build.0 = Production|Win32
{91762BE2-87EF-4F5A-A480-48B90EB3F406}.Release|Win32.ActiveCfg = Release|Win32
{91762BE2-87EF-4F5A-A480-48B90EB3F406}.Release|Win32.Build.0 = Release|Win32
{0662A8A9-82A3-4638-97D8-EC425D8D87C9}.Debug_All|Win32.ActiveCfg = Debug_All|Win32
@@ -313,8 +313,8 @@ Global
{0662A8A9-82A3-4638-97D8-EC425D8D87C9}.Debug|Win32.Build.0 = Debug|Win32
{0662A8A9-82A3-4638-97D8-EC425D8D87C9}.Release_Cairo_CFLite|Win32.ActiveCfg = Release_Cairo_CFLite|Win32
{0662A8A9-82A3-4638-97D8-EC425D8D87C9}.Release_Cairo_CFLite|Win32.Build.0 = Release_Cairo_CFLite|Win32
- {0662A8A9-82A3-4638-97D8-EC425D8D87C9}.Release_LTCG|Win32.ActiveCfg = Release_LTCG|Win32
- {0662A8A9-82A3-4638-97D8-EC425D8D87C9}.Release_LTCG|Win32.Build.0 = Release_LTCG|Win32
+ {0662A8A9-82A3-4638-97D8-EC425D8D87C9}.Production|Win32.ActiveCfg = Production|Win32
+ {0662A8A9-82A3-4638-97D8-EC425D8D87C9}.Production|Win32.Build.0 = Production|Win32
{0662A8A9-82A3-4638-97D8-EC425D8D87C9}.Release|Win32.ActiveCfg = Release|Win32
{0662A8A9-82A3-4638-97D8-EC425D8D87C9}.Release|Win32.Build.0 = Release|Win32
{B8437A41-67BC-4769-9452-45203827F821}.Debug_All|Win32.ActiveCfg = Debug_All|Win32
@@ -325,8 +325,8 @@ Global
{B8437A41-67BC-4769-9452-45203827F821}.Debug|Win32.Build.0 = Debug|Win32
{B8437A41-67BC-4769-9452-45203827F821}.Release_Cairo_CFLite|Win32.ActiveCfg = Release_Cairo_CFLite|Win32
{B8437A41-67BC-4769-9452-45203827F821}.Release_Cairo_CFLite|Win32.Build.0 = Release_Cairo_CFLite|Win32
- {B8437A41-67BC-4769-9452-45203827F821}.Release_LTCG|Win32.ActiveCfg = Release_LTCG|Win32
- {B8437A41-67BC-4769-9452-45203827F821}.Release_LTCG|Win32.Build.0 = Release_LTCG|Win32
+ {B8437A41-67BC-4769-9452-45203827F821}.Production|Win32.ActiveCfg = Production|Win32
+ {B8437A41-67BC-4769-9452-45203827F821}.Production|Win32.Build.0 = Production|Win32
{B8437A41-67BC-4769-9452-45203827F821}.Release|Win32.ActiveCfg = Release|Win32
{B8437A41-67BC-4769-9452-45203827F821}.Release|Win32.Build.0 = Release|Win32
{6567DFD4-D6DE-4CD5-825D-17E353D160E1}.Debug_All|Win32.ActiveCfg = Debug_All|Win32
@@ -337,8 +337,8 @@ Global
{6567DFD4-D6DE-4CD5-825D-17E353D160E1}.Debug|Win32.Build.0 = Debug|Win32
{6567DFD4-D6DE-4CD5-825D-17E353D160E1}.Release_Cairo_CFLite|Win32.ActiveCfg = Release_Cairo_CFLite|Win32
{6567DFD4-D6DE-4CD5-825D-17E353D160E1}.Release_Cairo_CFLite|Win32.Build.0 = Release_Cairo_CFLite|Win32
- {6567DFD4-D6DE-4CD5-825D-17E353D160E1}.Release_LTCG|Win32.ActiveCfg = Release_LTCG|Win32
- {6567DFD4-D6DE-4CD5-825D-17E353D160E1}.Release_LTCG|Win32.Build.0 = Release_LTCG|Win32
+ {6567DFD4-D6DE-4CD5-825D-17E353D160E1}.Production|Win32.ActiveCfg = Production|Win32
+ {6567DFD4-D6DE-4CD5-825D-17E353D160E1}.Production|Win32.Build.0 = Production|Win32
{6567DFD4-D6DE-4CD5-825D-17E353D160E1}.Release|Win32.ActiveCfg = Release|Win32
{6567DFD4-D6DE-4CD5-825D-17E353D160E1}.Release|Win32.Build.0 = Release|Win32
{59CC0547-70AC-499C-9B19-EC01C6F61137}.Debug_All|Win32.ActiveCfg = Debug_All|Win32
@@ -349,8 +349,8 @@ Global
{59CC0547-70AC-499C-9B19-EC01C6F61137}.Debug|Win32.Build.0 = Debug|Win32
{59CC0547-70AC-499C-9B19-EC01C6F61137}.Release_Cairo_CFLite|Win32.ActiveCfg = Release_Cairo_CFLite|Win32
{59CC0547-70AC-499C-9B19-EC01C6F61137}.Release_Cairo_CFLite|Win32.Build.0 = Release_Cairo_CFLite|Win32
- {59CC0547-70AC-499C-9B19-EC01C6F61137}.Release_LTCG|Win32.ActiveCfg = Release_LTCG|Win32
- {59CC0547-70AC-499C-9B19-EC01C6F61137}.Release_LTCG|Win32.Build.0 = Release_LTCG|Win32
+ {59CC0547-70AC-499C-9B19-EC01C6F61137}.Production|Win32.ActiveCfg = Production|Win32
+ {59CC0547-70AC-499C-9B19-EC01C6F61137}.Production|Win32.Build.0 = Production|Win32
{59CC0547-70AC-499C-9B19-EC01C6F61137}.Release|Win32.ActiveCfg = Release|Win32
{59CC0547-70AC-499C-9B19-EC01C6F61137}.Release|Win32.Build.0 = Release|Win32
{DA31DA52-6675-48D4-89E0-333A7144397C}.Debug_All|Win32.ActiveCfg = Debug_All|Win32
@@ -361,8 +361,8 @@ Global
{DA31DA52-6675-48D4-89E0-333A7144397C}.Debug|Win32.Build.0 = Debug|Win32
{DA31DA52-6675-48D4-89E0-333A7144397C}.Release_Cairo_CFLite|Win32.ActiveCfg = Release_Cairo_CFLite|Win32
{DA31DA52-6675-48D4-89E0-333A7144397C}.Release_Cairo_CFLite|Win32.Build.0 = Release_Cairo_CFLite|Win32
- {DA31DA52-6675-48D4-89E0-333A7144397C}.Release_LTCG|Win32.ActiveCfg = Release_LTCG|Win32
- {DA31DA52-6675-48D4-89E0-333A7144397C}.Release_LTCG|Win32.Build.0 = Release_LTCG|Win32
+ {DA31DA52-6675-48D4-89E0-333A7144397C}.Production|Win32.ActiveCfg = Production|Win32
+ {DA31DA52-6675-48D4-89E0-333A7144397C}.Production|Win32.Build.0 = Production|Win32
{DA31DA52-6675-48D4-89E0-333A7144397C}.Release|Win32.ActiveCfg = Release|Win32
{DA31DA52-6675-48D4-89E0-333A7144397C}.Release|Win32.Build.0 = Release|Win32
{44B9C152-1870-4035-B94D-7B3285AA0C12}.Debug_All|Win32.ActiveCfg = Debug_All|Win32
@@ -373,8 +373,8 @@ Global
{44B9C152-1870-4035-B94D-7B3285AA0C12}.Debug|Win32.Build.0 = Debug|Win32
{44B9C152-1870-4035-B94D-7B3285AA0C12}.Release_Cairo_CFLite|Win32.ActiveCfg = Release_Cairo_CFLite|Win32
{44B9C152-1870-4035-B94D-7B3285AA0C12}.Release_Cairo_CFLite|Win32.Build.0 = Release_Cairo_CFLite|Win32
- {44B9C152-1870-4035-B94D-7B3285AA0C12}.Release_LTCG|Win32.ActiveCfg = Release_LTCG|Win32
- {44B9C152-1870-4035-B94D-7B3285AA0C12}.Release_LTCG|Win32.Build.0 = Release_LTCG|Win32
+ {44B9C152-1870-4035-B94D-7B3285AA0C12}.Production|Win32.ActiveCfg = Production|Win32
+ {44B9C152-1870-4035-B94D-7B3285AA0C12}.Production|Win32.Build.0 = Production|Win32
{44B9C152-1870-4035-B94D-7B3285AA0C12}.Release|Win32.ActiveCfg = Release|Win32
{44B9C152-1870-4035-B94D-7B3285AA0C12}.Release|Win32.Build.0 = Release|Win32
{C0737398-3565-439E-A2B8-AB2BE4D5430C}.Debug_All|Win32.ActiveCfg = Debug_All|Win32
@@ -385,8 +385,8 @@ Global
{C0737398-3565-439E-A2B8-AB2BE4D5430C}.Debug|Win32.Build.0 = Debug|Win32
{C0737398-3565-439E-A2B8-AB2BE4D5430C}.Release_Cairo_CFLite|Win32.ActiveCfg = Release_Cairo_CFLite|Win32
{C0737398-3565-439E-A2B8-AB2BE4D5430C}.Release_Cairo_CFLite|Win32.Build.0 = Release_Cairo_CFLite|Win32
- {C0737398-3565-439E-A2B8-AB2BE4D5430C}.Release_LTCG|Win32.ActiveCfg = Release_LTCG|Win32
- {C0737398-3565-439E-A2B8-AB2BE4D5430C}.Release_LTCG|Win32.Build.0 = Release_LTCG|Win32
+ {C0737398-3565-439E-A2B8-AB2BE4D5430C}.Production|Win32.ActiveCfg = Production|Win32
+ {C0737398-3565-439E-A2B8-AB2BE4D5430C}.Production|Win32.Build.0 = Production|Win32
{C0737398-3565-439E-A2B8-AB2BE4D5430C}.Release|Win32.ActiveCfg = Release|Win32
{C0737398-3565-439E-A2B8-AB2BE4D5430C}.Release|Win32.Build.0 = Release|Win32
{626089A3-25D3-4883-A96C-B8C66E036397}.Debug_All|Win32.ActiveCfg = Debug_All|Win32
@@ -397,8 +397,8 @@ Global
{626089A3-25D3-4883-A96C-B8C66E036397}.Debug|Win32.Build.0 = Debug|Win32
{626089A3-25D3-4883-A96C-B8C66E036397}.Release_Cairo_CFLite|Win32.ActiveCfg = Release_Cairo_CFLite|Win32
{626089A3-25D3-4883-A96C-B8C66E036397}.Release_Cairo_CFLite|Win32.Build.0 = Release_Cairo_CFLite|Win32
- {626089A3-25D3-4883-A96C-B8C66E036397}.Release_LTCG|Win32.ActiveCfg = Release_LTCG|Win32
- {626089A3-25D3-4883-A96C-B8C66E036397}.Release_LTCG|Win32.Build.0 = Release_LTCG|Win32
+ {626089A3-25D3-4883-A96C-B8C66E036397}.Production|Win32.ActiveCfg = Production|Win32
+ {626089A3-25D3-4883-A96C-B8C66E036397}.Production|Win32.Build.0 = Production|Win32
{626089A3-25D3-4883-A96C-B8C66E036397}.Release|Win32.ActiveCfg = Release|Win32
{626089A3-25D3-4883-A96C-B8C66E036397}.Release|Win32.Build.0 = Release|Win32
{D09806DB-E58B-4646-8C9B-61101906C1E2}.Debug_All|Win32.ActiveCfg = Debug_All|Win32
@@ -409,8 +409,8 @@ Global
{D09806DB-E58B-4646-8C9B-61101906C1E2}.Debug|Win32.Build.0 = Debug|Win32
{D09806DB-E58B-4646-8C9B-61101906C1E2}.Release_Cairo_CFLite|Win32.ActiveCfg = Release_Cairo_CFLite|Win32
{D09806DB-E58B-4646-8C9B-61101906C1E2}.Release_Cairo_CFLite|Win32.Build.0 = Release_Cairo_CFLite|Win32
- {D09806DB-E58B-4646-8C9B-61101906C1E2}.Release_LTCG|Win32.ActiveCfg = Release_LTCG|Win32
- {D09806DB-E58B-4646-8C9B-61101906C1E2}.Release_LTCG|Win32.Build.0 = Release_LTCG|Win32
+ {D09806DB-E58B-4646-8C9B-61101906C1E2}.Production|Win32.ActiveCfg = Production|Win32
+ {D09806DB-E58B-4646-8C9B-61101906C1E2}.Production|Win32.Build.0 = Production|Win32
{D09806DB-E58B-4646-8C9B-61101906C1E2}.Release|Win32.ActiveCfg = Release|Win32
{D09806DB-E58B-4646-8C9B-61101906C1E2}.Release|Win32.Build.0 = Release|Win32
{114FCA11-216B-4C8C-957E-30A75AE80443}.Debug_All|Win32.ActiveCfg = Debug_All|Win32
@@ -421,8 +421,8 @@ Global
{114FCA11-216B-4C8C-957E-30A75AE80443}.Debug|Win32.Build.0 = Debug|Win32
{114FCA11-216B-4C8C-957E-30A75AE80443}.Release_Cairo_CFLite|Win32.ActiveCfg = Release_Cairo_CFLite|Win32
{114FCA11-216B-4C8C-957E-30A75AE80443}.Release_Cairo_CFLite|Win32.Build.0 = Release_Cairo_CFLite|Win32
- {114FCA11-216B-4C8C-957E-30A75AE80443}.Release_LTCG|Win32.ActiveCfg = Release_LTCG|Win32
- {114FCA11-216B-4C8C-957E-30A75AE80443}.Release_LTCG|Win32.Build.0 = Release_LTCG|Win32
+ {114FCA11-216B-4C8C-957E-30A75AE80443}.Production|Win32.ActiveCfg = Production|Win32
+ {114FCA11-216B-4C8C-957E-30A75AE80443}.Production|Win32.Build.0 = Production|Win32
{114FCA11-216B-4C8C-957E-30A75AE80443}.Release|Win32.ActiveCfg = Release|Win32
{114FCA11-216B-4C8C-957E-30A75AE80443}.Release|Win32.Build.0 = Release|Win32
{CBC3391C-F060-4BF5-A66E-81404168816B}.Debug_All|Win32.ActiveCfg = Debug_All|Win32
@@ -433,8 +433,8 @@ Global
{CBC3391C-F060-4BF5-A66E-81404168816B}.Debug|Win32.Build.0 = Debug|Win32
{CBC3391C-F060-4BF5-A66E-81404168816B}.Release_Cairo_CFLite|Win32.ActiveCfg = Release_Cairo_CFLite|Win32
{CBC3391C-F060-4BF5-A66E-81404168816B}.Release_Cairo_CFLite|Win32.Build.0 = Release_Cairo_CFLite|Win32
- {CBC3391C-F060-4BF5-A66E-81404168816B}.Release_LTCG|Win32.ActiveCfg = Release_LTCG|Win32
- {CBC3391C-F060-4BF5-A66E-81404168816B}.Release_LTCG|Win32.Build.0 = Release_LTCG|Win32
+ {CBC3391C-F060-4BF5-A66E-81404168816B}.Production|Win32.ActiveCfg = Production|Win32
+ {CBC3391C-F060-4BF5-A66E-81404168816B}.Production|Win32.Build.0 = Production|Win32
{CBC3391C-F060-4BF5-A66E-81404168816B}.Release|Win32.ActiveCfg = Release|Win32
{CBC3391C-F060-4BF5-A66E-81404168816B}.Release|Win32.Build.0 = Release|Win32
{4343BC0B-A2E0-4B48-8277-F33CFBFA83CD}.Debug_All|Win32.ActiveCfg = Debug_All|Win32
@@ -445,8 +445,8 @@ Global
{4343BC0B-A2E0-4B48-8277-F33CFBFA83CD}.Debug|Win32.Build.0 = Debug|Win32
{4343BC0B-A2E0-4B48-8277-F33CFBFA83CD}.Release_Cairo_CFLite|Win32.ActiveCfg = Release_Cairo_CFLite|Win32
{4343BC0B-A2E0-4B48-8277-F33CFBFA83CD}.Release_Cairo_CFLite|Win32.Build.0 = Release_Cairo_CFLite|Win32
- {4343BC0B-A2E0-4B48-8277-F33CFBFA83CD}.Release_LTCG|Win32.ActiveCfg = Release_LTCG|Win32
- {4343BC0B-A2E0-4B48-8277-F33CFBFA83CD}.Release_LTCG|Win32.Build.0 = Release_LTCG|Win32
+ {4343BC0B-A2E0-4B48-8277-F33CFBFA83CD}.Production|Win32.ActiveCfg = Production|Win32
+ {4343BC0B-A2E0-4B48-8277-F33CFBFA83CD}.Production|Win32.Build.0 = Production|Win32
{4343BC0B-A2E0-4B48-8277-F33CFBFA83CD}.Release|Win32.ActiveCfg = Release|Win32
{4343BC0B-A2E0-4B48-8277-F33CFBFA83CD}.Release|Win32.Build.0 = Release|Win32
{3B99669B-1817-443B-BCBE-835580146668}.Debug_All|Win32.ActiveCfg = Debug_All|Win32
@@ -457,8 +457,8 @@ Global
{3B99669B-1817-443B-BCBE-835580146668}.Debug|Win32.Build.0 = Debug|Win32
{3B99669B-1817-443B-BCBE-835580146668}.Release_Cairo_CFLite|Win32.ActiveCfg = Release_Cairo_CFLite|Win32
{3B99669B-1817-443B-BCBE-835580146668}.Release_Cairo_CFLite|Win32.Build.0 = Release_Cairo_CFLite|Win32
- {3B99669B-1817-443B-BCBE-835580146668}.Release_LTCG|Win32.ActiveCfg = Release_LTCG|Win32
- {3B99669B-1817-443B-BCBE-835580146668}.Release_LTCG|Win32.Build.0 = Release_LTCG|Win32
+ {3B99669B-1817-443B-BCBE-835580146668}.Production|Win32.ActiveCfg = Production|Win32
+ {3B99669B-1817-443B-BCBE-835580146668}.Production|Win32.Build.0 = Production|Win32
{3B99669B-1817-443B-BCBE-835580146668}.Release|Win32.ActiveCfg = Release|Win32
{3B99669B-1817-443B-BCBE-835580146668}.Release|Win32.Build.0 = Release|Win32
{1480CF5F-4160-47B5-A0E6-96AEC8258FB5}.Debug_All|Win32.ActiveCfg = Debug_All|Win32
@@ -469,8 +469,8 @@ Global
{1480CF5F-4160-47B5-A0E6-96AEC8258FB5}.Debug|Win32.Build.0 = Debug|Win32
{1480CF5F-4160-47B5-A0E6-96AEC8258FB5}.Release_Cairo_CFLite|Win32.ActiveCfg = Release_Cairo_CFLite|Win32
{1480CF5F-4160-47B5-A0E6-96AEC8258FB5}.Release_Cairo_CFLite|Win32.Build.0 = Release_Cairo_CFLite|Win32
- {1480CF5F-4160-47B5-A0E6-96AEC8258FB5}.Release_LTCG|Win32.ActiveCfg = Release_LTCG|Win32
- {1480CF5F-4160-47B5-A0E6-96AEC8258FB5}.Release_LTCG|Win32.Build.0 = Release_LTCG|Win32
+ {1480CF5F-4160-47B5-A0E6-96AEC8258FB5}.Production|Win32.ActiveCfg = Production|Win32
+ {1480CF5F-4160-47B5-A0E6-96AEC8258FB5}.Production|Win32.Build.0 = Production|Win32
{1480CF5F-4160-47B5-A0E6-96AEC8258FB5}.Release|Win32.ActiveCfg = Release|Win32
{1480CF5F-4160-47B5-A0E6-96AEC8258FB5}.Release|Win32.Build.0 = Release|Win32
{3E48AB23-D249-488F-A1C4-43CDF52FBD28}.Debug_All|Win32.ActiveCfg = Debug_All|Win32
@@ -481,8 +481,8 @@ Global
{3E48AB23-D249-488F-A1C4-43CDF52FBD28}.Debug|Win32.Build.0 = Debug|Win32
{3E48AB23-D249-488F-A1C4-43CDF52FBD28}.Release_Cairo_CFLite|Win32.ActiveCfg = Release_Cairo_CFLite|Win32
{3E48AB23-D249-488F-A1C4-43CDF52FBD28}.Release_Cairo_CFLite|Win32.Build.0 = Release_Cairo_CFLite|Win32
- {3E48AB23-D249-488F-A1C4-43CDF52FBD28}.Release_LTCG|Win32.ActiveCfg = Release_LTCG|Win32
- {3E48AB23-D249-488F-A1C4-43CDF52FBD28}.Release_LTCG|Win32.Build.0 = Release_LTCG|Win32
+ {3E48AB23-D249-488F-A1C4-43CDF52FBD28}.Production|Win32.ActiveCfg = Production|Win32
+ {3E48AB23-D249-488F-A1C4-43CDF52FBD28}.Production|Win32.Build.0 = Production|Win32
{3E48AB23-D249-488F-A1C4-43CDF52FBD28}.Release|Win32.ActiveCfg = Release|Win32
{3E48AB23-D249-488F-A1C4-43CDF52FBD28}.Release|Win32.Build.0 = Release|Win32
{45C45411-7F0E-404D-919A-4EE9BB60BE86}.Debug_All|Win32.ActiveCfg = Debug_All|Win32
@@ -493,8 +493,8 @@ Global
{45C45411-7F0E-404D-919A-4EE9BB60BE86}.Debug|Win32.Build.0 = Debug|Win32
{45C45411-7F0E-404D-919A-4EE9BB60BE86}.Release_Cairo_CFLite|Win32.ActiveCfg = Release_Cairo_CFLite|Win32
{45C45411-7F0E-404D-919A-4EE9BB60BE86}.Release_Cairo_CFLite|Win32.Build.0 = Release_Cairo_CFLite|Win32
- {45C45411-7F0E-404D-919A-4EE9BB60BE86}.Release_LTCG|Win32.ActiveCfg = Release_LTCG|Win32
- {45C45411-7F0E-404D-919A-4EE9BB60BE86}.Release_LTCG|Win32.Build.0 = Release_LTCG|Win32
+ {45C45411-7F0E-404D-919A-4EE9BB60BE86}.Production|Win32.ActiveCfg = Production|Win32
+ {45C45411-7F0E-404D-919A-4EE9BB60BE86}.Production|Win32.Build.0 = Production|Win32
{45C45411-7F0E-404D-919A-4EE9BB60BE86}.Release|Win32.ActiveCfg = Release|Win32
{45C45411-7F0E-404D-919A-4EE9BB60BE86}.Release|Win32.Build.0 = Release|Win32
{B0101604-B483-4F8C-9C51-90B46A2B1CD3}.Debug_All|Win32.ActiveCfg = Debug_All|Win32
@@ -505,8 +505,8 @@ Global
{B0101604-B483-4F8C-9C51-90B46A2B1CD3}.Debug|Win32.Build.0 = Debug|Win32
{B0101604-B483-4F8C-9C51-90B46A2B1CD3}.Release_Cairo_CFLite|Win32.ActiveCfg = Release_Cairo_CFLite|Win32
{B0101604-B483-4F8C-9C51-90B46A2B1CD3}.Release_Cairo_CFLite|Win32.Build.0 = Release_Cairo_CFLite|Win32
- {B0101604-B483-4F8C-9C51-90B46A2B1CD3}.Release_LTCG|Win32.ActiveCfg = Release_LTCG|Win32
- {B0101604-B483-4F8C-9C51-90B46A2B1CD3}.Release_LTCG|Win32.Build.0 = Release_LTCG|Win32
+ {B0101604-B483-4F8C-9C51-90B46A2B1CD3}.Production|Win32.ActiveCfg = Production|Win32
+ {B0101604-B483-4F8C-9C51-90B46A2B1CD3}.Production|Win32.Build.0 = Production|Win32
{B0101604-B483-4F8C-9C51-90B46A2B1CD3}.Release|Win32.ActiveCfg = Release|Win32
{B0101604-B483-4F8C-9C51-90B46A2B1CD3}.Release|Win32.Build.0 = Release|Win32
EndGlobalSection
diff --git a/Source/WebKit/win/WebKit.vcproj/WebKit.submit.sln b/Source/WebKit/win/WebKit.vcproj/WebKit.submit.sln
index 8f431f1..e873b11 100644
--- a/Source/WebKit/win/WebKit.vcproj/WebKit.submit.sln
+++ b/Source/WebKit/win/WebKit.vcproj/WebKit.submit.sln
@@ -18,7 +18,7 @@ Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug_All|Win32 = Debug_All|Win32
Debug|Win32 = Debug|Win32
- Release_LTCG|Win32 = Release_LTCG|Win32
+ Production|Win32 = Production|Win32
Release|Win32 = Release|Win32
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
@@ -26,24 +26,24 @@ Global
{0662A8A9-82A3-4638-97D8-EC425D8D87C9}.Debug_All|Win32.Build.0 = Debug_All|Win32
{0662A8A9-82A3-4638-97D8-EC425D8D87C9}.Debug|Win32.ActiveCfg = Debug|Win32
{0662A8A9-82A3-4638-97D8-EC425D8D87C9}.Debug|Win32.Build.0 = Debug|Win32
- {0662A8A9-82A3-4638-97D8-EC425D8D87C9}.Release_LTCG|Win32.ActiveCfg = Release_LTCG|Win32
- {0662A8A9-82A3-4638-97D8-EC425D8D87C9}.Release_LTCG|Win32.Build.0 = Release_LTCG|Win32
+ {0662A8A9-82A3-4638-97D8-EC425D8D87C9}.Production|Win32.ActiveCfg = Production|Win32
+ {0662A8A9-82A3-4638-97D8-EC425D8D87C9}.Production|Win32.Build.0 = Production|Win32
{0662A8A9-82A3-4638-97D8-EC425D8D87C9}.Release|Win32.ActiveCfg = Release|Win32
{0662A8A9-82A3-4638-97D8-EC425D8D87C9}.Release|Win32.Build.0 = Release|Win32
{B8437A41-67BC-4769-9452-45203827F821}.Debug_All|Win32.ActiveCfg = Debug_All|Win32
{B8437A41-67BC-4769-9452-45203827F821}.Debug_All|Win32.Build.0 = Debug_All|Win32
{B8437A41-67BC-4769-9452-45203827F821}.Debug|Win32.ActiveCfg = Debug|Win32
{B8437A41-67BC-4769-9452-45203827F821}.Debug|Win32.Build.0 = Debug|Win32
- {B8437A41-67BC-4769-9452-45203827F821}.Release_LTCG|Win32.ActiveCfg = Release_LTCG|Win32
- {B8437A41-67BC-4769-9452-45203827F821}.Release_LTCG|Win32.Build.0 = Release_LTCG|Win32
+ {B8437A41-67BC-4769-9452-45203827F821}.Production|Win32.ActiveCfg = Production|Win32
+ {B8437A41-67BC-4769-9452-45203827F821}.Production|Win32.Build.0 = Production|Win32
{B8437A41-67BC-4769-9452-45203827F821}.Release|Win32.ActiveCfg = Release|Win32
{B8437A41-67BC-4769-9452-45203827F821}.Release|Win32.Build.0 = Release|Win32
{91762BE2-87EF-4F5A-A480-48B90EB3F406}.Debug_All|Win32.ActiveCfg = Debug_All|Win32
{91762BE2-87EF-4F5A-A480-48B90EB3F406}.Debug_All|Win32.Build.0 = Debug_All|Win32
{91762BE2-87EF-4F5A-A480-48B90EB3F406}.Debug|Win32.ActiveCfg = Debug|Win32
{91762BE2-87EF-4F5A-A480-48B90EB3F406}.Debug|Win32.Build.0 = Debug|Win32
- {91762BE2-87EF-4F5A-A480-48B90EB3F406}.Release_LTCG|Win32.ActiveCfg = Release_LTCG|Win32
- {91762BE2-87EF-4F5A-A480-48B90EB3F406}.Release_LTCG|Win32.Build.0 = Release_LTCG|Win32
+ {91762BE2-87EF-4F5A-A480-48B90EB3F406}.Production|Win32.ActiveCfg = Production|Win32
+ {91762BE2-87EF-4F5A-A480-48B90EB3F406}.Production|Win32.Build.0 = Production|Win32
{91762BE2-87EF-4F5A-A480-48B90EB3F406}.Release|Win32.ActiveCfg = Release|Win32
{91762BE2-87EF-4F5A-A480-48B90EB3F406}.Release|Win32.Build.0 = Release|Win32
EndGlobalSection
diff --git a/Source/WebKit/win/WebKit.vcproj/WebKit.vcproj b/Source/WebKit/win/WebKit.vcproj/WebKit.vcproj
index d1aa3c6..a8b9cc3 100644
--- a/Source/WebKit/win/WebKit.vcproj/WebKit.vcproj
+++ b/Source/WebKit/win/WebKit.vcproj/WebKit.vcproj
@@ -18,7 +18,7 @@
<Configuration
Name="Debug|Win32"
ConfigurationType="4"
- InheritedPropertySheets="$(WebKitVSPropsRedirectionDir)..\..\..\..\WebKitLibraries\win\tools\vsprops\FeatureDefines.vsprops;$(WebKitVSPropsRedirectionDir)..\..\..\..\WebKitLibraries\win\tools\vsprops\common.vsprops;$(WebKitVSPropsRedirectionDir)..\..\..\..\WebKitLibraries\win\tools\vsprops\debug.vsprops;.\WebKitLibCommon.vsprops"
+ InheritedPropertySheets=".\WebKitLibDebug.vsprops"
CharacterSet="1"
>
<Tool
@@ -70,7 +70,7 @@
<Configuration
Name="Release|Win32"
ConfigurationType="4"
- InheritedPropertySheets="$(WebKitVSPropsRedirectionDir)..\..\..\..\WebKitLibraries\win\tools\vsprops\FeatureDefines.vsprops;$(WebKitVSPropsRedirectionDir)..\..\..\..\WebKitLibraries\win\tools\vsprops\common.vsprops;$(WebKitVSPropsRedirectionDir)..\..\..\..\WebKitLibraries\win\tools\vsprops\release.vsprops;.\WebKitLibCommon.vsprops"
+ InheritedPropertySheets=".\WebKitLibRelease.vsprops"
CharacterSet="1"
>
<Tool
@@ -122,7 +122,7 @@
<Configuration
Name="Debug_Cairo_CFLite|Win32"
ConfigurationType="4"
- InheritedPropertySheets="$(WebKitVSPropsRedirectionDir)..\..\..\..\WebKitLibraries\win\tools\vsprops\FeatureDefinesCairo.vsprops;$(WebKitVSPropsRedirectionDir)..\..\..\..\WebKitLibraries\win\tools\vsprops\WinCairo.vsprops;$(WebKitVSPropsRedirectionDir)..\..\..\..\WebKitLibraries\win\tools\vsprops\common.vsprops;$(WebKitVSPropsRedirectionDir)..\..\..\..\WebKitLibraries\win\tools\vsprops\debug.vsprops;$(WebKitVSPropsRedirectionDir)..\..\..\..\WebKitLibraries\win\tools\vsprops\debug_wincairo.vsprops;$(WebKitVSPropsRedirectionDir)..\..\..\..\WebKitLibraries\win\tools\vsprops\cURL.vsprops;.\WebKitLibCommon.vsprops"
+ InheritedPropertySheets=".\WebKitLibDebugCairoCFLite.vsprops"
CharacterSet="1"
>
<Tool
@@ -174,7 +174,7 @@
<Configuration
Name="Release_Cairo_CFLite|Win32"
ConfigurationType="4"
- InheritedPropertySheets="$(WebKitVSPropsRedirectionDir)..\..\..\..\WebKitLibraries\win\tools\vsprops\FeatureDefinesCairo.vsprops;$(WebKitVSPropsRedirectionDir)..\..\..\..\WebKitLibraries\win\tools\vsprops\WinCairo.vsprops;$(WebKitVSPropsRedirectionDir)..\..\..\..\WebKitLibraries\win\tools\vsprops\common.vsprops;$(WebKitVSPropsRedirectionDir)..\..\..\..\WebKitLibraries\win\tools\vsprops\release.vsprops;$(WebKitVSPropsRedirectionDir)..\..\..\..\WebKitLibraries\win\tools\vsprops\WinCairo.vsprops;$(WebKitVSPropsRedirectionDir)..\..\..\..\WebKitLibraries\win\tools\vsprops\cURL.vsprops;.\WebKitLibCommon.vsprops"
+ InheritedPropertySheets=".\WebKitLibReleaseCairoCFLite.vsprops"
CharacterSet="1"
>
<Tool
@@ -226,7 +226,7 @@
<Configuration
Name="Debug_All|Win32"
ConfigurationType="4"
- InheritedPropertySheets="$(WebKitVSPropsRedirectionDir)..\..\..\..\WebKitLibraries\win\tools\vsprops\FeatureDefines.vsprops;$(WebKitVSPropsRedirectionDir)..\..\..\..\WebKitLibraries\win\tools\vsprops\common.vsprops;$(WebKitVSPropsRedirectionDir)..\..\..\..\WebKitLibraries\win\tools\vsprops\debug.vsprops;$(WebKitVSPropsRedirectionDir)..\..\..\..\WebKitLibraries\win\tools\vsprops\debug_all.vsprops;.\WebKitLibCommon.vsprops"
+ InheritedPropertySheets=".\WebKitLibDebugAll.vsprops"
CharacterSet="1"
>
<Tool
@@ -276,9 +276,9 @@
/>
</Configuration>
<Configuration
- Name="Release_LTCG|Win32"
+ Name="Production|Win32"
ConfigurationType="4"
- InheritedPropertySheets="$(WebKitVSPropsRedirectionDir)..\..\..\..\WebKitLibraries\win\tools\vsprops\FeatureDefines.vsprops;$(WebKitVSPropsRedirectionDir)..\..\..\..\WebKitLibraries\win\tools\vsprops\common.vsprops;$(WebKitVSPropsRedirectionDir)..\..\..\..\WebKitLibraries\win\tools\vsprops\release.vsprops;.\WebKitLibCommon.vsprops"
+ InheritedPropertySheets=".\WebKitLibProduction.vsprops"
CharacterSet="1"
WholeProgramOptimization="1"
>
@@ -827,7 +827,7 @@
/>
</FileConfiguration>
<FileConfiguration
- Name="Release_LTCG|Win32"
+ Name="Production|Win32"
ExcludedFromBuild="true"
>
<Tool
@@ -903,7 +903,7 @@
/>
</FileConfiguration>
<FileConfiguration
- Name="Release_LTCG|Win32"
+ Name="Production|Win32"
ExcludedFromBuild="true"
>
<Tool
@@ -1079,7 +1079,7 @@
/>
</FileConfiguration>
<FileConfiguration
- Name="Release_LTCG|Win32"
+ Name="Production|Win32"
ExcludedFromBuild="true"
>
<Tool
@@ -1301,7 +1301,7 @@
/>
</FileConfiguration>
<FileConfiguration
- Name="Release_LTCG|Win32"
+ Name="Production|Win32"
>
<Tool
Name="VCCLCompilerTool"
diff --git a/Source/WebKit/win/WebKit.vcproj/WebKitGUID.vcproj b/Source/WebKit/win/WebKit.vcproj/WebKitGUID.vcproj
index 5d1abd2..f087413 100644
--- a/Source/WebKit/win/WebKit.vcproj/WebKitGUID.vcproj
+++ b/Source/WebKit/win/WebKit.vcproj/WebKitGUID.vcproj
@@ -18,7 +18,7 @@
<Configuration
Name="Debug|Win32"
ConfigurationType="4"
- InheritedPropertySheets="$(WebKitVSPropsRedirectionDir)..\..\..\..\WebKitLibraries\win\tools\vsprops\FeatureDefines.vsprops;$(WebKitVSPropsRedirectionDir)..\..\..\..\WebKitLibraries\win\tools\vsprops\common.vsprops;$(WebKitVSPropsRedirectionDir)..\..\..\..\WebKitLibraries\win\tools\vsprops\debug.vsprops;.\WebKitGUIDCommon.vsprops"
+ InheritedPropertySheets=".\WebKitGUIDDebug.vsprops"
CharacterSet="1"
>
<Tool
@@ -71,7 +71,7 @@
<Configuration
Name="Release|Win32"
ConfigurationType="4"
- InheritedPropertySheets="$(WebKitVSPropsRedirectionDir)..\..\..\..\WebKitLibraries\win\tools\vsprops\FeatureDefines.vsprops;$(WebKitVSPropsRedirectionDir)..\..\..\..\WebKitLibraries\win\tools\vsprops\common.vsprops;$(WebKitVSPropsRedirectionDir)..\..\..\..\WebKitLibraries\win\tools\vsprops\release.vsprops;.\WebKitGUIDCommon.vsprops"
+ InheritedPropertySheets=".\WebKitGUIDRelease.vsprops"
CharacterSet="1"
>
<Tool
@@ -124,7 +124,7 @@
<Configuration
Name="Debug_All|Win32"
ConfigurationType="4"
- InheritedPropertySheets="$(WebKitVSPropsRedirectionDir)..\..\..\..\WebKitLibraries\win\tools\vsprops\FeatureDefines.vsprops;$(WebKitVSPropsRedirectionDir)..\..\..\..\WebKitLibraries\win\tools\vsprops\common.vsprops;$(WebKitVSPropsRedirectionDir)..\..\..\..\WebKitLibraries\win\tools\vsprops\debug.vsprops;$(WebKitVSPropsRedirectionDir)..\..\..\..\WebKitLibraries\win\tools\vsprops\debug_all.vsprops;.\WebKitGUIDCommon.vsprops"
+ InheritedPropertySheets=".\WebKitGUIDDebugAll.vsprops"
CharacterSet="1"
>
<Tool
@@ -175,9 +175,9 @@
/>
</Configuration>
<Configuration
- Name="Release_LTCG|Win32"
+ Name="Production|Win32"
ConfigurationType="4"
- InheritedPropertySheets="$(WebKitVSPropsRedirectionDir)..\..\..\..\WebKitLibraries\win\tools\vsprops\FeatureDefines.vsprops;$(WebKitVSPropsRedirectionDir)..\..\..\..\WebKitLibraries\win\tools\vsprops\common.vsprops;$(WebKitVSPropsRedirectionDir)..\..\..\..\WebKitLibraries\win\tools\vsprops\release.vsprops;.\WebKitGUIDCommon.vsprops"
+ InheritedPropertySheets=".\WebKitGUIDProduction.vsprops"
CharacterSet="1"
WholeProgramOptimization="1"
>
@@ -231,7 +231,7 @@
<Configuration
Name="Release_Cairo_CFLite|Win32"
ConfigurationType="4"
- InheritedPropertySheets="$(WebKitVSPropsRedirectionDir)..\..\..\..\WebKitLibraries\win\tools\vsprops\FeatureDefinesCairo.vsprops;$(WebKitVSPropsRedirectionDir)..\..\..\..\WebKitLibraries\win\tools\vsprops\common.vsprops;$(WebKitVSPropsRedirectionDir)..\..\..\..\WebKitLibraries\win\tools\vsprops\release.vsprops;$(WebKitVSPropsRedirectionDir)..\..\..\..\WebKitLibraries\win\tools\vsprops\WinCairo.vsprops;.\WebKitGUIDCommon.vsprops"
+ InheritedPropertySheets=".\WebKitGUIDReleaseCairoCFLite.vsprops"
CharacterSet="1"
>
<Tool
@@ -284,7 +284,7 @@
<Configuration
Name="Debug_Cairo_CFLite|Win32"
ConfigurationType="4"
- InheritedPropertySheets="$(WebKitVSPropsRedirectionDir)..\..\..\..\WebKitLibraries\win\tools\vsprops\FeatureDefinesCairo.vsprops;$(WebKitVSPropsRedirectionDir)..\..\..\..\WebKitLibraries\win\tools\vsprops\common.vsprops;$(WebKitVSPropsRedirectionDir)..\..\..\..\WebKitLibraries\win\tools\vsprops\debug.vsprops;$(WebKitVSPropsRedirectionDir)..\..\..\..\WebKitLibraries\win\tools\vsprops\debug_wincairo.vsprops;.\WebKitGUIDCommon.vsprops"
+ InheritedPropertySheets=".\WebKitGUIDDebugCairoCFLite.vsprops"
CharacterSet="1"
>
<Tool
diff --git a/Source/WebKit/win/WebKit.vcproj/WebKitGUIDDebug.vsprops b/Source/WebKit/win/WebKit.vcproj/WebKitGUIDDebug.vsprops
new file mode 100644
index 0000000..2038998
--- /dev/null
+++ b/Source/WebKit/win/WebKit.vcproj/WebKitGUIDDebug.vsprops
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="Windows-1252"?>
+<VisualStudioPropertySheet
+ ProjectType="Visual C++"
+ Version="8.00"
+ Name="WebKitGUIDDebug"
+ InheritedPropertySheets="
+ $(WebKitVSPropsRedirectionDir)..\..\..\..\WebKitLibraries\win\tools\vsprops\FeatureDefines.vsprops;
+ $(WebKitVSPropsRedirectionDir)..\..\..\..\WebKitLibraries\win\tools\vsprops\common.vsprops;
+ $(WebKitVSPropsRedirectionDir)..\..\..\..\WebKitLibraries\win\tools\vsprops\debug.vsprops;
+ .\WebKitGUIDCommon.vsprops"
+ >
+</VisualStudioPropertySheet>
diff --git a/Source/WebKit/win/WebKit.vcproj/WebKitGUIDDebugAll.vsprops b/Source/WebKit/win/WebKit.vcproj/WebKitGUIDDebugAll.vsprops
new file mode 100644
index 0000000..ccd2847
--- /dev/null
+++ b/Source/WebKit/win/WebKit.vcproj/WebKitGUIDDebugAll.vsprops
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="Windows-1252"?>
+<VisualStudioPropertySheet
+ ProjectType="Visual C++"
+ Version="8.00"
+ Name="WebKitGUIDDebugAll"
+ InheritedPropertySheets="
+ $(WebKitVSPropsRedirectionDir)..\..\..\..\WebKitLibraries\win\tools\vsprops\FeatureDefines.vsprops;
+ $(WebKitVSPropsRedirectionDir)..\..\..\..\WebKitLibraries\win\tools\vsprops\common.vsprops;
+ $(WebKitVSPropsRedirectionDir)..\..\..\..\WebKitLibraries\win\tools\vsprops\debug.vsprops;
+ $(WebKitVSPropsRedirectionDir)..\..\..\..\WebKitLibraries\win\tools\vsprops\debug_all.vsprops;
+ .\WebKitGUIDCommon.vsprops"
+ >
+</VisualStudioPropertySheet>
diff --git a/Source/WebKit/win/WebKit.vcproj/WebKitGUIDDebugCairoCFLite.vsprops b/Source/WebKit/win/WebKit.vcproj/WebKitGUIDDebugCairoCFLite.vsprops
new file mode 100644
index 0000000..abbdd3e
--- /dev/null
+++ b/Source/WebKit/win/WebKit.vcproj/WebKitGUIDDebugCairoCFLite.vsprops
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="Windows-1252"?>
+<VisualStudioPropertySheet
+ ProjectType="Visual C++"
+ Version="8.00"
+ Name="WebKitGUIDDebugCairoCFLite"
+ InheritedPropertySheets="
+ $(WebKitVSPropsRedirectionDir)..\..\..\..\WebKitLibraries\win\tools\vsprops\FeatureDefinesCairo.vsprops;
+ $(WebKitVSPropsRedirectionDir)..\..\..\..\WebKitLibraries\win\tools\vsprops\common.vsprops;
+ $(WebKitVSPropsRedirectionDir)..\..\..\..\WebKitLibraries\win\tools\vsprops\debug.vsprops;
+ $(WebKitVSPropsRedirectionDir)..\..\..\..\WebKitLibraries\win\tools\vsprops\debug_wincairo.vsprops;
+ .\WebKitGUIDCommon.vsprops"
+ >
+</VisualStudioPropertySheet>
diff --git a/Source/WebKit/win/WebKit.vcproj/WebKitGUIDProduction.vsprops b/Source/WebKit/win/WebKit.vcproj/WebKitGUIDProduction.vsprops
new file mode 100644
index 0000000..941bf46
--- /dev/null
+++ b/Source/WebKit/win/WebKit.vcproj/WebKitGUIDProduction.vsprops
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="Windows-1252"?>
+<VisualStudioPropertySheet
+ ProjectType="Visual C++"
+ Version="8.00"
+ Name="WebKitGUIDProduction"
+ InheritedPropertySheets="
+ $(WebKitVSPropsRedirectionDir)..\..\..\..\WebKitLibraries\win\tools\vsprops\FeatureDefines.vsprops;
+ $(WebKitVSPropsRedirectionDir)..\..\..\..\WebKitLibraries\win\tools\vsprops\common.vsprops;
+ $(WebKitVSPropsRedirectionDir)..\..\..\..\WebKitLibraries\win\tools\vsprops\release.vsprops;
+ $(WebKitVSPropsRedirectionDir)..\..\..\..\WebKitLibraries\win\tools\vsprops\production.vsprops;
+ .\WebKitGUIDCommon.vsprops"
+ >
+</VisualStudioPropertySheet>
diff --git a/Source/WebKit/win/WebKit.vcproj/WebKitGUIDRelease.vsprops b/Source/WebKit/win/WebKit.vcproj/WebKitGUIDRelease.vsprops
new file mode 100644
index 0000000..39566ea
--- /dev/null
+++ b/Source/WebKit/win/WebKit.vcproj/WebKitGUIDRelease.vsprops
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="Windows-1252"?>
+<VisualStudioPropertySheet
+ ProjectType="Visual C++"
+ Version="8.00"
+ Name="WebKitGUIDRelease"
+ InheritedPropertySheets="
+ $(WebKitVSPropsRedirectionDir)..\..\..\..\WebKitLibraries\win\tools\vsprops\FeatureDefines.vsprops;
+ $(WebKitVSPropsRedirectionDir)..\..\..\..\WebKitLibraries\win\tools\vsprops\common.vsprops;
+ $(WebKitVSPropsRedirectionDir)..\..\..\..\WebKitLibraries\win\tools\vsprops\release.vsprops;
+ .\WebKitGUIDCommon.vsprops"
+ >
+</VisualStudioPropertySheet>
diff --git a/Source/WebKit/win/WebKit.vcproj/WebKitGUIDReleaseCairoCFLite.vsprops b/Source/WebKit/win/WebKit.vcproj/WebKitGUIDReleaseCairoCFLite.vsprops
new file mode 100644
index 0000000..bc0b7a1
--- /dev/null
+++ b/Source/WebKit/win/WebKit.vcproj/WebKitGUIDReleaseCairoCFLite.vsprops
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="Windows-1252"?>
+<VisualStudioPropertySheet
+ ProjectType="Visual C++"
+ Version="8.00"
+ Name="WebKitGUIDReleaseCairoCFLite"
+ InheritedPropertySheets="
+ $(WebKitVSPropsRedirectionDir)..\..\..\..\WebKitLibraries\win\tools\vsprops\FeatureDefinesCairo.vsprops;
+ $(WebKitVSPropsRedirectionDir)..\..\..\..\WebKitLibraries\win\tools\vsprops\common.vsprops;
+ $(WebKitVSPropsRedirectionDir)..\..\..\..\WebKitLibraries\win\tools\vsprops\release.vsprops;
+ $(WebKitVSPropsRedirectionDir)..\..\..\..\WebKitLibraries\win\tools\vsprops\WinCairo.vsprops;
+ .\WebKitGUIDCommon.vsprops"
+ >
+</VisualStudioPropertySheet>
diff --git a/Source/WebKit/win/WebKit.vcproj/WebKitLibDebug.vsprops b/Source/WebKit/win/WebKit.vcproj/WebKitLibDebug.vsprops
new file mode 100644
index 0000000..0e003e5
--- /dev/null
+++ b/Source/WebKit/win/WebKit.vcproj/WebKitLibDebug.vsprops
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="Windows-1252"?>
+<VisualStudioPropertySheet
+ ProjectType="Visual C++"
+ Version="8.00"
+ Name="WebKitLibDebug"
+ InheritedPropertySheets="
+ $(WebKitVSPropsRedirectionDir)..\..\..\..\WebKitLibraries\win\tools\vsprops\FeatureDefines.vsprops;
+ $(WebKitVSPropsRedirectionDir)..\..\..\..\WebKitLibraries\win\tools\vsprops\common.vsprops;
+ $(WebKitVSPropsRedirectionDir)..\..\..\..\WebKitLibraries\win\tools\vsprops\debug.vsprops;
+ .\WebKitLibCommon.vsprops"
+ >
+</VisualStudioPropertySheet>
diff --git a/Source/WebKit/win/WebKit.vcproj/WebKitLibDebugAll.vsprops b/Source/WebKit/win/WebKit.vcproj/WebKitLibDebugAll.vsprops
new file mode 100644
index 0000000..005cee7
--- /dev/null
+++ b/Source/WebKit/win/WebKit.vcproj/WebKitLibDebugAll.vsprops
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="Windows-1252"?>
+<VisualStudioPropertySheet
+ ProjectType="Visual C++"
+ Version="8.00"
+ Name="WebKitLibDebugAll"
+ InheritedPropertySheets="
+ $(WebKitVSPropsRedirectionDir)..\..\..\..\WebKitLibraries\win\tools\vsprops\FeatureDefines.vsprops;
+ $(WebKitVSPropsRedirectionDir)..\..\..\..\WebKitLibraries\win\tools\vsprops\common.vsprops;
+ $(WebKitVSPropsRedirectionDir)..\..\..\..\WebKitLibraries\win\tools\vsprops\debug.vsprops;
+ $(WebKitVSPropsRedirectionDir)..\..\..\..\WebKitLibraries\win\tools\vsprops\debug_all.vsprops;
+ .\WebKitLibCommon.vsprops"
+ >
+</VisualStudioPropertySheet>
diff --git a/Source/WebKit/win/WebKit.vcproj/WebKitLibDebugCairoCFLite.vsprops b/Source/WebKit/win/WebKit.vcproj/WebKitLibDebugCairoCFLite.vsprops
new file mode 100644
index 0000000..355350d
--- /dev/null
+++ b/Source/WebKit/win/WebKit.vcproj/WebKitLibDebugCairoCFLite.vsprops
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="Windows-1252"?>
+<VisualStudioPropertySheet
+ ProjectType="Visual C++"
+ Version="8.00"
+ Name="WebKitLibDebugCairoCFLite"
+ InheritedPropertySheets="
+ $(WebKitVSPropsRedirectionDir)..\..\..\..\WebKitLibraries\win\tools\vsprops\FeatureDefinesCairo.vsprops;
+ $(WebKitVSPropsRedirectionDir)..\..\..\..\WebKitLibraries\win\tools\vsprops\WinCairo.vsprops;
+ $(WebKitVSPropsRedirectionDir)..\..\..\..\WebKitLibraries\win\tools\vsprops\common.vsprops;
+ $(WebKitVSPropsRedirectionDir)..\..\..\..\WebKitLibraries\win\tools\vsprops\debug.vsprops;
+ $(WebKitVSPropsRedirectionDir)..\..\..\..\WebKitLibraries\win\tools\vsprops\debug_wincairo.vsprops;
+ $(WebKitVSPropsRedirectionDir)..\..\..\..\WebKitLibraries\win\tools\vsprops\cURL.vsprops;
+ .\WebKitLibCommon.vsprops"
+ >
+</VisualStudioPropertySheet>
diff --git a/Source/WebKit/win/WebKit.vcproj/WebKitLibProduction.vsprops b/Source/WebKit/win/WebKit.vcproj/WebKitLibProduction.vsprops
new file mode 100644
index 0000000..127707e
--- /dev/null
+++ b/Source/WebKit/win/WebKit.vcproj/WebKitLibProduction.vsprops
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="Windows-1252"?>
+<VisualStudioPropertySheet
+ ProjectType="Visual C++"
+ Version="8.00"
+ Name="WebKitProduction"
+ InheritedPropertySheets="
+ $(WebKitVSPropsRedirectionDir)..\..\..\..\WebKitLibraries\win\tools\vsprops\FeatureDefines.vsprops;
+ $(WebKitVSPropsRedirectionDir)..\..\..\..\WebKitLibraries\win\tools\vsprops\common.vsprops;
+ $(WebKitVSPropsRedirectionDir)..\..\..\..\WebKitLibraries\win\tools\vsprops\release.vsprops;
+ $(WebKitVSPropsRedirectionDir)..\..\..\..\WebKitLibraries\win\tools\vsprops\production.vsprops;
+ .\WebKitLibCommon.vsprops"
+ >
+</VisualStudioPropertySheet>
diff --git a/Source/WebKit/win/WebKit.vcproj/WebKitLibRelease.vsprops b/Source/WebKit/win/WebKit.vcproj/WebKitLibRelease.vsprops
new file mode 100644
index 0000000..82f6dfd
--- /dev/null
+++ b/Source/WebKit/win/WebKit.vcproj/WebKitLibRelease.vsprops
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="Windows-1252"?>
+<VisualStudioPropertySheet
+ ProjectType="Visual C++"
+ Version="8.00"
+ Name="WebKitLibRelease"
+ InheritedPropertySheets="
+ $(WebKitVSPropsRedirectionDir)..\..\..\..\WebKitLibraries\win\tools\vsprops\FeatureDefines.vsprops;
+ $(WebKitVSPropsRedirectionDir)..\..\..\..\WebKitLibraries\win\tools\vsprops\common.vsprops;
+ $(WebKitVSPropsRedirectionDir)..\..\..\..\WebKitLibraries\win\tools\vsprops\release.vsprops;
+ .\WebKitLibCommon.vsprops"
+ >
+</VisualStudioPropertySheet>
diff --git a/Source/WebKit/win/WebKit.vcproj/WebKitLibReleaseCairoCFLite.vsprops b/Source/WebKit/win/WebKit.vcproj/WebKitLibReleaseCairoCFLite.vsprops
new file mode 100644
index 0000000..692fdc0
--- /dev/null
+++ b/Source/WebKit/win/WebKit.vcproj/WebKitLibReleaseCairoCFLite.vsprops
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="Windows-1252"?>
+<VisualStudioPropertySheet
+ ProjectType="Visual C++"
+ Version="8.00"
+ Name="WebKitLibReleaseCairoCFLite"
+ InheritedPropertySheets="
+ $(WebKitVSPropsRedirectionDir)..\..\..\..\WebKitLibraries\win\tools\vsprops\FeatureDefinesCairo.vsprops;
+ $(WebKitVSPropsRedirectionDir)..\..\..\..\WebKitLibraries\win\tools\vsprops\WinCairo.vsprops;
+ $(WebKitVSPropsRedirectionDir)..\..\..\..\WebKitLibraries\win\tools\vsprops\common.vsprops;
+ $(WebKitVSPropsRedirectionDir)..\..\..\..\WebKitLibraries\win\tools\vsprops\release.vsprops;
+ $(WebKitVSPropsRedirectionDir)..\..\..\..\WebKitLibraries\win\tools\vsprops\WinCairo.vsprops;
+ $(WebKitVSPropsRedirectionDir)..\..\..\..\WebKitLibraries\win\tools\vsprops\cURL.vsprops;
+ .\WebKitLibCommon.vsprops"
+ >
+</VisualStudioPropertySheet>
diff --git a/Source/WebKit/win/WebKitCOMAPI.h b/Source/WebKit/win/WebKitCOMAPI.h
index 598ac2d..a9e6dad 100644
--- a/Source/WebKit/win/WebKitCOMAPI.h
+++ b/Source/WebKit/win/WebKitCOMAPI.h
@@ -26,6 +26,8 @@
#ifndef WebKitCOMAPI_h
#define WebKitCOMAPI_h
+#include <unknwn.h>
+
extern "C" {
// Callers should use this API instead of CoCreateInstance to instantiate WebKit COM classes.
diff --git a/Source/WebKit/win/WebKitClassFactory.h b/Source/WebKit/win/WebKitClassFactory.h
index 90a43c2..85ad843 100644
--- a/Source/WebKit/win/WebKitClassFactory.h
+++ b/Source/WebKit/win/WebKitClassFactory.h
@@ -26,6 +26,8 @@
#ifndef WebKitClassFactory_H
#define WebKitClassFactory_H
+#include <unknwn.h>
+
class WebKitClassFactory : public IClassFactory
{
public:
diff --git a/Source/WebKit/win/WebKitDLL.cpp b/Source/WebKit/win/WebKitDLL.cpp
index d6a5120..ef85608 100644
--- a/Source/WebKit/win/WebKitDLL.cpp
+++ b/Source/WebKit/win/WebKitDLL.cpp
@@ -38,9 +38,9 @@
#include <WebCore/SharedBuffer.h>
#include <WebCore/WebCoreInstanceHandle.h>
#include <WebCore/Widget.h>
-#include <wtf/Vector.h>
-#include <tchar.h>
#include <olectl.h>
+#include <wchar.h>
+#include <wtf/Vector.h>
using namespace WebCore;
diff --git a/Source/WebKit/win/WebKitGraphics.cpp b/Source/WebKit/win/WebKitGraphics.cpp
index b130002..216b7b7 100644
--- a/Source/WebKit/win/WebKitGraphics.cpp
+++ b/Source/WebKit/win/WebKitGraphics.cpp
@@ -31,7 +31,6 @@
#include "WebPreferences.h"
-#pragma warning(push, 0)
#include <WebCore/Font.h>
#include <WebCore/FontDescription.h>
#include <WebCore/FontSelector.h>
@@ -42,7 +41,6 @@
#include <wtf/unicode/CharacterNames.h>
#include <CoreGraphics/CoreGraphics.h>
-#pragma warning(pop)
#include <WebKitSystemInterface/WebKitSystemInterface.h>
diff --git a/Source/WebKit/win/WebKitSystemBits.cpp b/Source/WebKit/win/WebKitSystemBits.cpp
index eec6361..c77a78b 100644
--- a/Source/WebKit/win/WebKitSystemBits.cpp
+++ b/Source/WebKit/win/WebKitSystemBits.cpp
@@ -29,12 +29,9 @@
#include "config.h"
#include "WebKitSystemBits.h"
-#pragma warning(push, 0)
+#include <CoreFoundation/CoreFoundation.h>
#include <WebCore/PlatformString.h>
-#pragma warning(pop)
-
#include <windows.h>
-#include <CoreFoundation/CoreFoundation.h>
unsigned long long WebMemorySize()
{
diff --git a/Source/WebKit/win/WebLocalizableStrings.cpp b/Source/WebKit/win/WebLocalizableStrings.cpp
index e9b99ad..b05c55e 100644
--- a/Source/WebKit/win/WebLocalizableStrings.cpp
+++ b/Source/WebKit/win/WebLocalizableStrings.cpp
@@ -28,11 +28,9 @@
#include "WebLocalizableStrings.h"
-#pragma warning(push, 0)
#include <WebCore/PlatformString.h>
#include <wtf/text/CString.h>
#include <wtf/text/StringHash.h>
-#pragma warning(pop)
#include <wtf/Assertions.h>
#include <wtf/HashMap.h>
diff --git a/Source/WebKit/win/WebMutableURLRequest.cpp b/Source/WebKit/win/WebMutableURLRequest.cpp
index 02829d7..5aac756 100644
--- a/Source/WebKit/win/WebMutableURLRequest.cpp
+++ b/Source/WebKit/win/WebMutableURLRequest.cpp
@@ -30,17 +30,18 @@
#include "WebKit.h"
#include "MarshallingHelpers.h"
#include "WebKit.h"
-#pragma warning(push, 0)
#include <WebCore/BString.h>
#include <WebCore/COMPtr.h>
#include <WebCore/FormData.h>
#include <WebCore/NotImplemented.h>
#include <WebCore/ResourceHandle.h>
#include <wtf/text/CString.h>
-#pragma warning(pop)
-
#include <wtf/RetainPtr.h>
+#if USE(CF)
+#include <WebCore/CertificateCFWin.h>
+#endif
+
#if USE(CFNETWORK)
#include <CFNetwork/CFURLRequestPriv.h>
#endif
@@ -350,26 +351,6 @@ HRESULT STDMETHODCALLTYPE WebMutableURLRequest::setAllowsAnyHTTPSCertificate(voi
return S_OK;
}
-static void deallocCertContext(void* ptr, void* info)
-{
- if (ptr)
- CertFreeCertificateContext(reinterpret_cast<PCCERT_CONTEXT>(ptr));
-}
-
-static CFDataRef copyCert(PCCERT_CONTEXT cert)
-{
- static CFAllocatorRef certDealloc;
- PCCERT_CONTEXT certCopy = 0;
- if (!certDealloc) {
- CFAllocatorContext allocContext = {
- 0, 0, 0, 0, 0, 0, 0, deallocCertContext, 0
- };
- certDealloc = CFAllocatorCreate(kCFAllocatorDefault, &allocContext);
- }
- certCopy = CertDuplicateCertificateContext(cert);
- return CFDataCreateWithBytesNoCopy(kCFAllocatorDefault, reinterpret_cast<const UInt8*>(certCopy), sizeof(*certCopy), certDealloc);
-}
-
HRESULT STDMETHODCALLTYPE WebMutableURLRequest::setClientCertificate(
/* [in] */ OLE_HANDLE cert)
{
@@ -377,7 +358,7 @@ HRESULT STDMETHODCALLTYPE WebMutableURLRequest::setClientCertificate(
return E_POINTER;
PCCERT_CONTEXT certContext = reinterpret_cast<PCCERT_CONTEXT>((ULONG64)cert);
- RetainPtr<CFDataRef> certData(AdoptCF, copyCert(certContext));
+ RetainPtr<CFDataRef> certData = WebCore::copyCertificateToData(certContext);
ResourceHandle::setClientCertificate(m_request.url().host(), certData.get());
return S_OK;
}
diff --git a/Source/WebKit/win/WebMutableURLRequest.h b/Source/WebKit/win/WebMutableURLRequest.h
index 77dc1a0..0f89676 100644
--- a/Source/WebKit/win/WebMutableURLRequest.h
+++ b/Source/WebKit/win/WebMutableURLRequest.h
@@ -27,9 +27,7 @@
#define WebMutableURLRequest_H
#include "WebKit.h"
-#pragma warning(push, 0)
#include <WebCore/ResourceRequest.h>
-#pragma warning(pop)
namespace WebCore
{
diff --git a/Source/WebKit/win/WebNodeHighlight.cpp b/Source/WebKit/win/WebNodeHighlight.cpp
index c4bf181..0e51b1c 100644
--- a/Source/WebKit/win/WebNodeHighlight.cpp
+++ b/Source/WebKit/win/WebNodeHighlight.cpp
@@ -30,14 +30,12 @@
#include "WebNodeHighlight.h"
#include "WebView.h"
-#pragma warning(push, 0)
#include <WebCore/BitmapInfo.h>
#include <WebCore/Color.h>
#include <WebCore/GraphicsContext.h>
#include <WebCore/InspectorController.h>
#include <WebCore/Page.h>
#include <WebCore/WindowMessageBroadcaster.h>
-#pragma warning(pop)
#include <wtf/OwnPtr.h>
#include <wtf/HashSet.h>
diff --git a/Source/WebKit/win/WebNodeHighlight.h b/Source/WebKit/win/WebNodeHighlight.h
index de347d3..1d154f9 100644
--- a/Source/WebKit/win/WebNodeHighlight.h
+++ b/Source/WebKit/win/WebNodeHighlight.h
@@ -29,10 +29,7 @@
#ifndef WebNodeHighlight_h
#define WebNodeHighlight_h
-#pragma warning(push, 0)
#include <WebCore/WindowMessageListener.h>
-#pragma warning(pop)
-
#include <windows.h>
class WebView;
diff --git a/Source/WebKit/win/WebNotificationCenter.cpp b/Source/WebKit/win/WebNotificationCenter.cpp
index 6c22224..e30f066 100644
--- a/Source/WebKit/win/WebNotificationCenter.cpp
+++ b/Source/WebKit/win/WebNotificationCenter.cpp
@@ -28,16 +28,14 @@
#include "WebNotificationCenter.h"
#include "WebNotification.h"
-#pragma warning(push, 0)
#include <WebCore/COMPtr.h>
#include <WebCore/PlatformString.h>
#include <wtf/HashMap.h>
#include <wtf/HashTraits.h>
#include <wtf/Vector.h>
#include <wtf/text/StringHash.h>
-#pragma warning(pop)
-#include <tchar.h>
#include <utility>
+#include <wchar.h>
using namespace WebCore;
diff --git a/Source/WebKit/win/WebPreferences.cpp b/Source/WebKit/win/WebPreferences.cpp
index 01cab2b..a4869b6 100644
--- a/Source/WebKit/win/WebPreferences.cpp
+++ b/Source/WebKit/win/WebPreferences.cpp
@@ -40,7 +40,7 @@
#include <WebCore/PlatformString.h>
#include <limits>
#include <shlobj.h>
-#include <tchar.h>
+#include <wchar.h>
#include <wtf/HashMap.h>
#include <wtf/OwnArrayPtr.h>
#include <wtf/text/CString.h>
@@ -340,12 +340,12 @@ LONGLONG WebPreferences::longlongValueForKey(CFStringRef key)
void WebPreferences::setStringValue(CFStringRef key, LPCTSTR value)
{
BSTR val = stringValueForKey(key);
- if (val && !_tcscmp(val, value))
+ if (val && !wcscmp(val, value))
return;
SysFreeString(val);
RetainPtr<CFStringRef> valueRef(AdoptCF,
- CFStringCreateWithCharactersNoCopy(0, (UniChar*)_wcsdup(value), (CFIndex)_tcslen(value), kCFAllocatorMalloc));
+ CFStringCreateWithCharactersNoCopy(0, (UniChar*)_wcsdup(value), (CFIndex)wcslen(value), kCFAllocatorMalloc));
setValueForKey(key, valueRef.get());
postPreferencesChangesNotification();
diff --git a/Source/WebKit/win/WebResource.cpp b/Source/WebKit/win/WebResource.cpp
index 506e55d..ccfd95d 100644
--- a/Source/WebKit/win/WebResource.cpp
+++ b/Source/WebKit/win/WebResource.cpp
@@ -29,10 +29,7 @@
#include "MarshallingHelpers.h"
#include "MemoryStream.h"
-
-#pragma warning(push, 0)
#include <WebCore/BString.h>
-#pragma warning(pop)
using namespace WebCore;
diff --git a/Source/WebKit/win/WebResource.h b/Source/WebKit/win/WebResource.h
index 7c6759a..611803e 100644
--- a/Source/WebKit/win/WebResource.h
+++ b/Source/WebKit/win/WebResource.h
@@ -28,14 +28,11 @@
#include "WebKit.h"
#include "COMPtr.h"
-
-#pragma warning(push, 0)
#include <WebCore/KURL.h>
#include <WebCore/PlatformString.h>
#include <WebCore/ResourceResponse.h>
#include <WebCore/SharedBuffer.h>
#include <wtf/PassRefPtr.h>
-#pragma warning(pop)
class WebResource : public IWebResource {
public:
diff --git a/Source/WebKit/win/WebScriptWorld.h b/Source/WebKit/win/WebScriptWorld.h
index 01511de..4b0fa48 100644
--- a/Source/WebKit/win/WebScriptWorld.h
+++ b/Source/WebKit/win/WebScriptWorld.h
@@ -25,6 +25,7 @@
#ifndef WebScriptWorld_h
#define WebScriptWorld_h
+#include "WebKit.h"
#include <WebCore/COMPtr.h>
namespace WebCore {
diff --git a/Source/WebKit/win/WebScrollBar.cpp b/Source/WebKit/win/WebScrollBar.cpp
index 9f0131b..224a72a 100644
--- a/Source/WebKit/win/WebScrollBar.cpp
+++ b/Source/WebKit/win/WebScrollBar.cpp
@@ -28,12 +28,10 @@
#include "WebKit.h"
#include "WebScrollBar.h"
-#pragma warning(push, 0)
#include <WebCore/GraphicsContext.h>
#include <WebCore/PlatformMouseEvent.h>
#include <WebCore/Scrollbar.h>
#include <WebCore/ScrollbarTheme.h>
-#pragma warning(pop)
using namespace WebCore;
@@ -145,6 +143,7 @@ HRESULT STDMETHODCALLTYPE WebScrollBar::setValue(
/* [in] */ int value)
{
m_currentPosition = value;
+ ScrollableArea::scrollToOffsetWithoutAnimation(m_scrollBar->orientation(), m_currentPosition);
return S_OK;
}
diff --git a/Source/WebKit/win/WebScrollBar.h b/Source/WebKit/win/WebScrollBar.h
index 39457d4..0482419 100644
--- a/Source/WebKit/win/WebScrollBar.h
+++ b/Source/WebKit/win/WebScrollBar.h
@@ -31,11 +31,9 @@
#include <wtf/RefPtr.h>
#include <wtf/OwnPtr.h>
-#pragma warning(push, 0)
#include <WebCore/COMPtr.h>
#include <WebCore/Scrollbar.h>
#include <WebCore/ScrollableArea.h>
-#pragma warning(pop)
namespace WebCore {
class Scrollbar;
diff --git a/Source/WebKit/win/WebSerializedJSValue.h b/Source/WebKit/win/WebSerializedJSValue.h
index 6e3747d..61e5617 100644
--- a/Source/WebKit/win/WebSerializedJSValue.h
+++ b/Source/WebKit/win/WebSerializedJSValue.h
@@ -25,6 +25,7 @@
#ifndef WebSerializedJSValue_h
#define WebSerializedJSValue_h
+#include "WebKit.h"
#include <WebCore/COMPtr.h>
typedef const struct OpaqueJSContext* JSContextRef;
diff --git a/Source/WebKit/win/WebURLAuthenticationChallenge.cpp b/Source/WebKit/win/WebURLAuthenticationChallenge.cpp
index c711450..1663376 100644
--- a/Source/WebKit/win/WebURLAuthenticationChallenge.cpp
+++ b/Source/WebKit/win/WebURLAuthenticationChallenge.cpp
@@ -35,11 +35,8 @@
#include "WebURLProtectionSpace.h"
#include "WebURLResponse.h"
#include "WebKit.h"
-
-#pragma warning(push, 0)
#include <WebCore/BString.h>
#include <WebCore/ResourceHandle.h>
-#pragma warning(pop)
using namespace WebCore;
diff --git a/Source/WebKit/win/WebURLAuthenticationChallenge.h b/Source/WebKit/win/WebURLAuthenticationChallenge.h
index d0eba20..dfc5733 100644
--- a/Source/WebKit/win/WebURLAuthenticationChallenge.h
+++ b/Source/WebKit/win/WebURLAuthenticationChallenge.h
@@ -27,11 +27,8 @@
#define WebURLAuthenticationChallenge_h
#include "WebKit.h"
-
-#pragma warning(push, 0)
#include <WebCore/AuthenticationChallenge.h>
#include <WebCore/COMPtr.h>
-#pragma warning(pop)
class DECLSPEC_UUID("FD3B2381-0BB6-4B59-AF09-0E599C8901CF") WebURLAuthenticationChallenge : public IWebURLAuthenticationChallenge {
public:
diff --git a/Source/WebKit/win/WebURLAuthenticationChallengeSender.cpp b/Source/WebKit/win/WebURLAuthenticationChallengeSender.cpp
index 1257d41..0a9154f 100644
--- a/Source/WebKit/win/WebURLAuthenticationChallengeSender.cpp
+++ b/Source/WebKit/win/WebURLAuthenticationChallengeSender.cpp
@@ -32,10 +32,7 @@
#include "WebKit.h"
#include "WebURLAuthenticationChallenge.h"
#include "WebURLCredential.h"
-
-#pragma warning(push, 0)
#include <WebCore/AuthenticationClient.h>
-#pragma warning(pop)
using namespace WebCore;
diff --git a/Source/WebKit/win/WebURLAuthenticationChallengeSenderCFNet.cpp b/Source/WebKit/win/WebURLAuthenticationChallengeSenderCFNet.cpp
index f756391..3d329d1 100644
--- a/Source/WebKit/win/WebURLAuthenticationChallengeSenderCFNet.cpp
+++ b/Source/WebKit/win/WebURLAuthenticationChallengeSenderCFNet.cpp
@@ -32,10 +32,7 @@
#include "WebKit.h"
#include "WebURLAuthenticationChallenge.h"
#include "WebURLCredential.h"
-
-#pragma warning(push, 0)
#include <WebCore/AuthenticationClient.h>
-#pragma warning(pop)
using namespace WebCore;
diff --git a/Source/WebKit/win/WebURLAuthenticationChallengeSenderCurl.cpp b/Source/WebKit/win/WebURLAuthenticationChallengeSenderCurl.cpp
index 2cf9a75..2f49f67 100644
--- a/Source/WebKit/win/WebURLAuthenticationChallengeSenderCurl.cpp
+++ b/Source/WebKit/win/WebURLAuthenticationChallengeSenderCurl.cpp
@@ -33,10 +33,7 @@
#include "WebKit.h"
#include "WebURLAuthenticationChallenge.h"
#include "WebURLCredential.h"
-
-#pragma warning(push, 0)
#include <WebCore/ResourceHandle.h>
-#pragma warning(pop)
using namespace WebCore;
diff --git a/Source/WebKit/win/WebURLCredential.cpp b/Source/WebKit/win/WebURLCredential.cpp
index 82cf78c..0d9ac34 100644
--- a/Source/WebKit/win/WebURLCredential.cpp
+++ b/Source/WebKit/win/WebURLCredential.cpp
@@ -28,9 +28,7 @@
#include "WebURLCredential.h"
#include "WebKit.h"
-#pragma warning(push, 0)
#include <WebCore/BString.h>
-#pragma warning(pop)
using namespace WebCore;
diff --git a/Source/WebKit/win/WebURLCredential.h b/Source/WebKit/win/WebURLCredential.h
index 094c966..11f3755 100644
--- a/Source/WebKit/win/WebURLCredential.h
+++ b/Source/WebKit/win/WebURLCredential.h
@@ -27,10 +27,7 @@
#define WebURLCredential_h
#include "WebKit.h"
-
-#pragma warning(push, 0)
#include <WebCore/Credential.h>
-#pragma warning(pop)
class WebURLCredential : public IWebURLCredential
{
diff --git a/Source/WebKit/win/WebURLProtectionSpace.cpp b/Source/WebKit/win/WebURLProtectionSpace.cpp
index 6086abb..98a727e 100644
--- a/Source/WebKit/win/WebURLProtectionSpace.cpp
+++ b/Source/WebKit/win/WebURLProtectionSpace.cpp
@@ -28,9 +28,7 @@
#include "WebKitDLL.h"
#include "WebURLProtectionSpace.h"
-#pragma warning(push, 0)
#include <WebCore/BString.h>
-#pragma warning(pop)
using namespace WebCore;
diff --git a/Source/WebKit/win/WebURLProtectionSpace.h b/Source/WebKit/win/WebURLProtectionSpace.h
index 579d21b..c1f763f 100644
--- a/Source/WebKit/win/WebURLProtectionSpace.h
+++ b/Source/WebKit/win/WebURLProtectionSpace.h
@@ -27,10 +27,7 @@
#define WebURLProtectionSpace_h
#include "WebKit.h"
-
-#pragma warning(push, 0)
#include <WebCore/ProtectionSpace.h>
-#pragma warning(pop)
class WebURLProtectionSpace : public IWebURLProtectionSpace
{
diff --git a/Source/WebKit/win/WebURLResponse.cpp b/Source/WebKit/win/WebURLResponse.cpp
index 644e1d8..b6c94dd 100644
--- a/Source/WebKit/win/WebURLResponse.cpp
+++ b/Source/WebKit/win/WebURLResponse.cpp
@@ -38,14 +38,12 @@
#endif
#include <wtf/platform.h>
-#pragma warning( push, 0 )
#include <WebCore/BString.h>
#include <WebCore/KURL.h>
#include <WebCore/ResourceHandle.h>
-#pragma warning( pop )
#include <shlobj.h>
#include <shlwapi.h>
-#include <tchar.h>
+#include <wchar.h>
using namespace WebCore;
@@ -410,7 +408,7 @@ HRESULT STDMETHODCALLTYPE WebURLResponse::sslPeerCertificate(
CFDictionaryRef dict = certificateDictionary();
if (!dict)
return E_FAIL;
- void* data = wkGetSSLPeerCertificateData(dict);
+ void* data = wkGetSSLPeerCertificateDataBytePtr(dict);
if (!data)
return E_FAIL;
*result = (OLE_HANDLE)(ULONG64)data;
@@ -439,21 +437,21 @@ HRESULT WebURLResponse::suggestedFileExtension(BSTR *result)
err = RegOpenKeyEx(key, mimeType, 0, KEY_QUERY_VALUE, &subKey);
if (!err) {
DWORD keyType = REG_SZ;
- TCHAR extension[MAX_PATH];
+ WCHAR extension[MAX_PATH];
DWORD keySize = sizeof(extension)/sizeof(extension[0]);
err = RegQueryValueEx(subKey, TEXT("Extension"), 0, &keyType, (LPBYTE)extension, &keySize);
if (!err && keyType != REG_SZ)
err = ERROR_INVALID_DATA;
if (err) {
// fallback handlers
- if (!_tcscmp(mimeType, TEXT("text/html"))) {
- _tcscpy(extension, TEXT(".html"));
+ if (!wcscmp(mimeType, L"text/html")) {
+ wcscpy(extension, L".html");
err = 0;
- } else if (!_tcscmp(mimeType, TEXT("application/xhtml+xml"))) {
- _tcscpy(extension, TEXT(".xhtml"));
+ } else if (!wcscmp(mimeType, L"application/xhtml+xml")) {
+ wcscpy(extension, L".xhtml");
err = 0;
- } else if (!_tcscmp(mimeType, TEXT("image/svg+xml"))) {
- _tcscpy(extension, TEXT(".svg"));
+ } else if (!wcscmp(mimeType, L"image/svg+xml")) {
+ wcscpy(extension, L".svg");
err = 0;
}
}
diff --git a/Source/WebKit/win/WebURLResponse.h b/Source/WebKit/win/WebURLResponse.h
index 761ca8e..8e82a2b 100644
--- a/Source/WebKit/win/WebURLResponse.h
+++ b/Source/WebKit/win/WebURLResponse.h
@@ -27,10 +27,7 @@
#define WebURLResponse_H
#include "WebKit.h"
-
-#pragma warning(push, 0)
#include <WebCore/ResourceResponse.h>
-#pragma warning(pop)
class WebURLResponse : public IWebHTTPURLResponse, IWebURLResponsePrivate
{
diff --git a/Source/WebKit/win/WebUserContentURLPattern.h b/Source/WebKit/win/WebUserContentURLPattern.h
index 42854b4..8864093 100644
--- a/Source/WebKit/win/WebUserContentURLPattern.h
+++ b/Source/WebKit/win/WebUserContentURLPattern.h
@@ -25,6 +25,7 @@
#ifndef WebUserContentURLPattern_h
#define WebUserContentURLPattern_h
+#include "WebKit.h"
#include <WebCore/COMPtr.h>
#include <WebCore/UserContentURLPattern.h>
diff --git a/Source/WebKit/win/WebView.cpp b/Source/WebKit/win/WebView.cpp
index 0fb8047..69f83de 100644
--- a/Source/WebKit/win/WebView.cpp
+++ b/Source/WebKit/win/WebView.cpp
@@ -128,6 +128,7 @@
#include <WebCore/SelectionController.h>
#include <WebCore/Settings.h>
#include <WebCore/SimpleFontData.h>
+#include <WebCore/SystemInfo.h>
#include <WebCore/TypingCommand.h>
#include <WebCore/WindowMessageBroadcaster.h>
#include <wtf/Threading.h>
@@ -161,7 +162,7 @@
#include <comutil.h>
#include <dimm.h>
#include <oleacc.h>
-#include <tchar.h>
+#include <wchar.h>
#include <windowsx.h>
#include <wtf/HashSet.h>
#include <wtf/text/CString.h>
@@ -184,8 +185,7 @@ using JSC::JSLock;
static HMODULE accessibilityLib;
static HashSet<WebView*> pendingDeleteBackingStoreSet;
-static String osVersion();
-static String webKitVersion();
+static String webKitVersionString();
WebView* kit(Page* page)
{
@@ -1244,9 +1244,10 @@ bool WebView::canHandleRequest(const WebCore::ResourceRequest& request)
String WebView::standardUserAgentWithApplicationName(const String& applicationName)
{
- if (applicationName.isEmpty())
- return makeString("Mozilla/5.0 (", osVersion(), ") AppleWebKit/", webKitVersion(), " (KHTML, like Gecko)");
- return makeString("Mozilla/5.0 (", osVersion(), ") AppleWebKit/", webKitVersion(), " (KHTML, like Gecko) ", applicationName);
+ DEFINE_STATIC_LOCAL(String, osVersion, (windowsVersionForUAString()));
+ DEFINE_STATIC_LOCAL(String, webKitVersion, (webKitVersionString()));
+
+ return makeString("Mozilla/5.0 (", osVersion, ") AppleWebKit/", webKitVersion, " (KHTML, like Gecko)", applicationName.isEmpty() ? "" : " ", applicationName);
}
Page* WebView::page()
@@ -1675,12 +1676,12 @@ bool WebView::mouseWheel(WPARAM wParam, LPARAM lParam, bool isMouseHWheel)
HWND focusedWindow = GetFocus();
if (focusedWindow && focusedWindow != m_viewWindow) {
// Our focus is on a different hwnd, see if it's a PopupMenu and if so, set the focus back on us (which will hide the popup).
- TCHAR className[256];
+ WCHAR className[256];
// Make sure truncation won't affect the comparison.
- ASSERT(WTF_ARRAY_LENGTH(className) > _tcslen(PopupMenuWin::popupClassName()));
+ ASSERT(WTF_ARRAY_LENGTH(className) > wcslen(PopupMenuWin::popupClassName()));
- if (GetClassName(focusedWindow, className, WTF_ARRAY_LENGTH(className)) && !_tcscmp(className, PopupMenuWin::popupClassName())) {
+ if (GetClassNameW(focusedWindow, className, WTF_ARRAY_LENGTH(className)) && !wcscmp(className, PopupMenuWin::popupClassName())) {
// We don't let the WebView scroll here for two reasons - 1) To match Firefox behavior, 2) If we do scroll, we lose the
// focus ring around the select menu.
SetFocus(m_viewWindow);
@@ -2336,31 +2337,7 @@ bool WebView::developerExtrasEnabled() const
#endif
}
-static String osVersion()
-{
- String osVersion;
- OSVERSIONINFO versionInfo = {0};
- versionInfo.dwOSVersionInfoSize = sizeof(versionInfo);
- GetVersionEx(&versionInfo);
-
- if (versionInfo.dwPlatformId == VER_PLATFORM_WIN32_WINDOWS) {
- if (versionInfo.dwMajorVersion == 4) {
- if (versionInfo.dwMinorVersion == 0)
- osVersion = "Windows 95";
- else if (versionInfo.dwMinorVersion == 10)
- osVersion = "Windows 98";
- else if (versionInfo.dwMinorVersion == 90)
- osVersion = "Windows 98; Win 9x 4.90";
- }
- } else if (versionInfo.dwPlatformId == VER_PLATFORM_WIN32_NT)
- osVersion = makeString("Windows NT ", String::number(versionInfo.dwMajorVersion), '.', String::number(versionInfo.dwMinorVersion));
-
- if (!osVersion.length())
- osVersion = makeString("Windows ", String::number(versionInfo.dwMajorVersion), '.', String::number(versionInfo.dwMinorVersion));
- return osVersion;
-}
-
-static String webKitVersion()
+static String webKitVersionString()
{
LPWSTR buildNumberStringPtr;
if (!::LoadStringW(gInstance, BUILD_NUMBER, reinterpret_cast<LPWSTR>(&buildNumberStringPtr), 0) || !buildNumberStringPtr)
@@ -2523,15 +2500,15 @@ bool WebView::shouldInitializeTrackPointHack()
return shouldCreateScrollbars;
hasRunTrackPointCheck = true;
- const TCHAR trackPointKeys[][50] = { TEXT("Software\\Lenovo\\TrackPoint"),
- TEXT("Software\\Lenovo\\UltraNav"),
- TEXT("Software\\Alps\\Apoint\\TrackPoint"),
- TEXT("Software\\Synaptics\\SynTPEnh\\UltraNavUSB"),
- TEXT("Software\\Synaptics\\SynTPEnh\\UltraNavPS2") };
+ const WCHAR trackPointKeys[][50] = { L"Software\\Lenovo\\TrackPoint",
+ L"Software\\Lenovo\\UltraNav",
+ L"Software\\Alps\\Apoint\\TrackPoint",
+ L"Software\\Synaptics\\SynTPEnh\\UltraNavUSB",
+ L"Software\\Synaptics\\SynTPEnh\\UltraNavPS2" };
for (int i = 0; i < 5; ++i) {
HKEY trackPointKey;
- int readKeyResult = ::RegOpenKeyEx(HKEY_CURRENT_USER, trackPointKeys[i], 0, KEY_READ, &trackPointKey);
+ int readKeyResult = ::RegOpenKeyExW(HKEY_CURRENT_USER, trackPointKeys[i], 0, KEY_READ, &trackPointKey);
::RegCloseKey(trackPointKey);
if (readKeyResult == ERROR_SUCCESS) {
shouldCreateScrollbars = true;
@@ -2562,8 +2539,8 @@ HRESULT STDMETHODCALLTYPE WebView::initWithFrame(
// If we detected a registry key belonging to a TrackPoint driver, then create fake trackpoint
// scrollbars, so the WebView will receive WM_VSCROLL and WM_HSCROLL messages. We create one
// vertical scrollbar and one horizontal to allow for receiving both types of messages.
- ::CreateWindow(TEXT("SCROLLBAR"), TEXT("FAKETRACKPOINTHSCROLLBAR"), WS_CHILD | WS_VISIBLE | SBS_HORZ, 0, 0, 0, 0, m_viewWindow, 0, gInstance, 0);
- ::CreateWindow(TEXT("SCROLLBAR"), TEXT("FAKETRACKPOINTVSCROLLBAR"), WS_CHILD | WS_VISIBLE | SBS_VERT, 0, 0, 0, 0, m_viewWindow, 0, gInstance, 0);
+ ::CreateWindowW(L"SCROLLBAR", L"FAKETRACKPOINTHSCROLLBAR", WS_CHILD | WS_VISIBLE | SBS_HORZ, 0, 0, 0, 0, m_viewWindow, 0, gInstance, 0);
+ ::CreateWindowW(L"SCROLLBAR", L"FAKETRACKPOINTVSCROLLBAR", WS_CHILD | WS_VISIBLE | SBS_VERT, 0, 0, 0, 0, m_viewWindow, 0, gInstance, 0);
}
hr = registerDragDrop();
@@ -3050,7 +3027,7 @@ HRESULT STDMETHODCALLTYPE WebView::setCustomTextEncodingName(
if (FAILED(hr))
return hr;
- if (oldEncoding != encodingName && (!oldEncoding || !encodingName || _tcscmp(oldEncoding, encodingName))) {
+ if (oldEncoding != encodingName && (!oldEncoding || !encodingName || wcscmp(oldEncoding, encodingName))) {
if (Frame* coreFrame = core(m_mainFrame))
coreFrame->loader()->reloadWithOverrideEncoding(String(encodingName, SysStringLen(encodingName)));
}
@@ -5271,7 +5248,7 @@ const IMMDict& IMMDict::dict()
IMMDict::IMMDict()
{
- m_instance = ::LoadLibrary(TEXT("IMM32.DLL"));
+ m_instance = ::LoadLibraryW(L"IMM32.DLL");
getContext = reinterpret_cast<getContextPtr>(::GetProcAddress(m_instance, "ImmGetContext"));
ASSERT(getContext);
releaseContext = reinterpret_cast<releaseContextPtr>(::GetProcAddress(m_instance, "ImmReleaseContext"));
@@ -5928,7 +5905,7 @@ bool WebView::onGetObject(WPARAM wParam, LPARAM lParam, LRESULT& lResult) const
return false;
if (!accessibilityLib) {
- if (!(accessibilityLib = ::LoadLibrary(TEXT("oleacc.dll"))))
+ if (!(accessibilityLib = ::LoadLibraryW(L"oleacc.dll")))
return false;
}
diff --git a/Source/WebKit/wince/CMakeListsWinCE.txt b/Source/WebKit/wince/CMakeListsWinCE.txt
index 28feaf3..de6de60 100644
--- a/Source/WebKit/wince/CMakeListsWinCE.txt
+++ b/Source/WebKit/wince/CMakeListsWinCE.txt
@@ -1,6 +1,7 @@
LIST(APPEND WebKit_INCLUDE_DIRECTORIES
"${WEBCORE_DIR}/page/win"
"${WEBCORE_DIR}/platform/graphics/wince"
+ "${WEBCORE_DIR}/platform/graphics/win"
"${WEBCORE_DIR}/platform/network/win"
"${WEBCORE_DIR}/platform/win"
diff --git a/Source/WebKit/wince/ChangeLog b/Source/WebKit/wince/ChangeLog
index 724b92a..e595f25 100644
--- a/Source/WebKit/wince/ChangeLog
+++ b/Source/WebKit/wince/ChangeLog
@@ -1,3 +1,61 @@
+2011-03-27 Patrick Gansterer <paroga@webkit.org>
+
+ Reviewed by Andreas Kling.
+
+ [WINCE] Use a appropriate user agent string
+ https://bugs.webkit.org/show_bug.cgi?id=57175
+
+ * WebCoreSupport/FrameLoaderClientWinCE.cpp:
+ (WebKit::FrameLoaderClientWinCE::userAgent):
+
+2011-03-26 Patrick Gansterer <paroga@webkit.org>
+
+ Unreviewed WinCE build fix.
+
+ * CMakeListsWinCE.txt: Added missing include directory.
+
+2011-03-25 Andy Estes <aestes@apple.com>
+
+ Reviewed by Adele Peterson.
+
+ REGRESSION (r70748): latest nightly builds kills AC_QuickTime.js
+ https://bugs.webkit.org/show_bug.cgi?id=49016
+
+ Update objectContentType() implementation to handle the
+ shouldPreferPlugInsForImages flag.
+
+ * WebCoreSupport/FrameLoaderClientWinCE.cpp:
+ (WebKit::FrameLoaderClientWinCE::objectContentType):
+ * WebCoreSupport/FrameLoaderClientWinCE.h:
+
+2011-03-24 Sheriff Bot <webkit.review.bot@gmail.com>
+
+ Unreviewed, rolling out r81916 and r81917.
+ http://trac.webkit.org/changeset/81916
+ http://trac.webkit.org/changeset/81917
+ https://bugs.webkit.org/show_bug.cgi?id=57071
+
+ broke a test on platforms that do not have QuickTime installed
+ (Requested by estes on #webkit).
+
+ * WebCoreSupport/FrameLoaderClientWinCE.cpp:
+ (WebKit::FrameLoaderClientWinCE::objectContentType):
+ * WebCoreSupport/FrameLoaderClientWinCE.h:
+
+2011-03-24 Andy Estes <aestes@apple.com>
+
+ Reviewed by Darin Adler.
+
+ REGRESSION (r70748): latest nightly builds kills AC_QuickTime.js
+ https://bugs.webkit.org/show_bug.cgi?id=49016
+
+ Update objectContentType() implementation to handle the
+ shouldPreferPlugInsForImages flag.
+
+ * WebCoreSupport/FrameLoaderClientWinCE.cpp:
+ (WebKit::FrameLoaderClientWinCE::objectContentType):
+ * WebCoreSupport/FrameLoaderClientWinCE.h:
+
2011-03-07 Sam Weinig <sam@webkit.org>
Reviewed by Anders Carlsson.
diff --git a/Source/WebKit/wince/WebCoreSupport/FrameLoaderClientWinCE.cpp b/Source/WebKit/wince/WebCoreSupport/FrameLoaderClientWinCE.cpp
index 3fbed2b..2d8812f 100644
--- a/Source/WebKit/wince/WebCoreSupport/FrameLoaderClientWinCE.cpp
+++ b/Source/WebKit/wince/WebCoreSupport/FrameLoaderClientWinCE.cpp
@@ -1,5 +1,6 @@
/*
* Copyright (C) 2010 Patrick Gansterer <paroga@paroga.com>
+ * Copyright (C) 2011 Apple Inc. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
@@ -35,7 +36,10 @@
#include "Page.h"
#include "PluginDatabase.h"
#include "RenderPart.h"
+#include "SystemInfo.h"
+#include "WebKitVersion.h"
#include "WebView.h"
+#include <wtf/text/StringConcatenate.h>
using namespace WebCore;
@@ -54,7 +58,14 @@ FrameLoaderClientWinCE::~FrameLoaderClientWinCE()
String FrameLoaderClientWinCE::userAgent(const KURL&)
{
- return "WebKitWinCE";
+ DEFINE_STATIC_LOCAL(String, userAgentString, ());
+
+ if (userAgentString.isNull()) {
+ String webKitVersion = String::format("%d.%d", WEBKIT_MAJOR_VERSION, WEBKIT_MINOR_VERSION);
+ userAgentString = makeString("Mozilla/5.0 (", windowsVersionForUAString(), ") AppleWebKit/", webKitVersion, " (KHTML, like Gecko) Mobile Safari/", webKitVersion);
+ }
+
+ return userAgentString;
}
PassRefPtr<DocumentLoader> FrameLoaderClientWinCE::createDocumentLoader(const WebCore::ResourceRequest& request, const SubstituteData& substituteData)
@@ -182,9 +193,9 @@ PassRefPtr<Widget> FrameLoaderClientWinCE::createJavaAppletWidget(const IntSize&
return 0;
}
-ObjectContentType FrameLoaderClientWinCE::objectContentType(const KURL& url, const String& mimeType)
+ObjectContentType FrameLoaderClientWinCE::objectContentType(const KURL& url, const String& mimeType, bool shouldPreferPlugInsForImages)
{
- return FrameLoader::defaultObjectContentType(url, mimeType);
+ return FrameLoader::defaultObjectContentType(url, mimeType, shouldPreferPlugInsForImages);
}
String FrameLoaderClientWinCE::overrideMediaType() const
diff --git a/Source/WebKit/wince/WebCoreSupport/FrameLoaderClientWinCE.h b/Source/WebKit/wince/WebCoreSupport/FrameLoaderClientWinCE.h
index ce3a620..401225d 100644
--- a/Source/WebKit/wince/WebCoreSupport/FrameLoaderClientWinCE.h
+++ b/Source/WebKit/wince/WebCoreSupport/FrameLoaderClientWinCE.h
@@ -1,5 +1,6 @@
/*
* Copyright (C) 2010 Patrick Gansterer <paroga@paroga.com>
+ * Copyright (C) 2011 Apple Inc. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
@@ -120,7 +121,7 @@ public:
virtual void registerForIconNotification(bool);
- virtual WebCore::ObjectContentType objectContentType(const WebCore::KURL& url, const WTF::String& mimeType);
+ virtual WebCore::ObjectContentType objectContentType(const WebCore::KURL&, const WTF::String& mimeType, bool shouldPreferPlugInsForImages);
virtual void setMainFrameDocumentReady(bool);
diff --git a/Source/WebKit/wince/WebCoreSupport/PlatformStrategiesWinCE.cpp b/Source/WebKit/wince/WebCoreSupport/PlatformStrategiesWinCE.cpp
index fc447ab..455da71 100644
--- a/Source/WebKit/wince/WebCoreSupport/PlatformStrategiesWinCE.cpp
+++ b/Source/WebKit/wince/WebCoreSupport/PlatformStrategiesWinCE.cpp
@@ -289,7 +289,7 @@ String PlatformStrategiesWinCE::contextMenuItemTagSearchWeb()
return UI_STRING("Search with Google", "Search in Google context menu item");
}
-String PlatformStrategiesWinCE::contextMenuItemTagLookUpInDictionary()
+String PlatformStrategiesWinCE::contextMenuItemTagLookUpInDictionary(const String&)
{
return UI_STRING("Look Up in Dictionary", "Look Up in Dictionary context menu item");
}
diff --git a/Source/WebKit/wince/WebCoreSupport/PlatformStrategiesWinCE.h b/Source/WebKit/wince/WebCoreSupport/PlatformStrategiesWinCE.h
index e5f87ea..6ed49ae 100644
--- a/Source/WebKit/wince/WebCoreSupport/PlatformStrategiesWinCE.h
+++ b/Source/WebKit/wince/WebCoreSupport/PlatformStrategiesWinCE.h
@@ -78,7 +78,7 @@ private:
virtual WTF::String contextMenuItemTagIgnoreSpelling();
virtual WTF::String contextMenuItemTagLearnSpelling();
virtual WTF::String contextMenuItemTagSearchWeb();
- virtual WTF::String contextMenuItemTagLookUpInDictionary();
+ virtual WTF::String contextMenuItemTagLookUpInDictionary(const String&);
virtual WTF::String contextMenuItemTagOpenLink();
virtual WTF::String contextMenuItemTagIgnoreGrammar();
virtual WTF::String contextMenuItemTagSpellingMenu();
diff --git a/Source/WebKit/wx/ChangeLog b/Source/WebKit/wx/ChangeLog
index 3e385b1..980fa8a 100644
--- a/Source/WebKit/wx/ChangeLog
+++ b/Source/WebKit/wx/ChangeLog
@@ -1,3 +1,80 @@
+2011-03-25 Andy Estes <aestes@apple.com>
+
+ Reviewed by Adele Peterson.
+
+ REGRESSION (r70748): latest nightly builds kills AC_QuickTime.js
+ https://bugs.webkit.org/show_bug.cgi?id=49016
+
+ Update objectContentType() implementation to handle the
+ shouldPreferPlugInsForImages flag.
+
+ * WebKitSupport/FrameLoaderClientWx.cpp:
+ (WebCore::FrameLoaderClientWx::objectContentType):
+ * WebKitSupport/FrameLoaderClientWx.h:
+
+2011-03-24 Kevin Ollivier <kevino@theolliviers.com>
+
+ [wx] Build fix, remove old call and replace it with correct one.
+
+ * WebView.cpp:
+ (wxWebView::Create):
+
+2011-03-24 Sheriff Bot <webkit.review.bot@gmail.com>
+
+ Unreviewed, rolling out r81916 and r81917.
+ http://trac.webkit.org/changeset/81916
+ http://trac.webkit.org/changeset/81917
+ https://bugs.webkit.org/show_bug.cgi?id=57071
+
+ broke a test on platforms that do not have QuickTime installed
+ (Requested by estes on #webkit).
+
+ * WebKitSupport/FrameLoaderClientWx.cpp:
+ (WebCore::FrameLoaderClientWx::objectContentType):
+ * WebKitSupport/FrameLoaderClientWx.h:
+
+2011-03-24 Andy Estes <aestes@apple.com>
+
+ Reviewed by Darin Adler.
+
+ REGRESSION (r70748): latest nightly builds kills AC_QuickTime.js
+ https://bugs.webkit.org/show_bug.cgi?id=49016
+
+ Update objectContentType() implementation to handle the
+ shouldPreferPlugInsForImages flag.
+
+ * WebKitSupport/FrameLoaderClientWx.cpp:
+ (WebCore::FrameLoaderClientWx::objectContentType):
+ * WebKitSupport/FrameLoaderClientWx.h:
+
+2011-03-21 Chang Shu <cshu@webkit.org>
+
+ Reviewed by Alexey Proskuryakov.
+
+ REGRESSION (r79953): Can't type in MS Outlook 2011
+ https://bugs.webkit.org/show_bug.cgi?id=56665
+
+ r79953 removed the WebView level editablity which is persistent no matter whether
+ underlying document itself is changed and editability gets lost. The resolution is to
+ set this WebView editable value to WebCore. This avoids the callback from WebCore to
+ WebKit which was the main goal in r79953 to improve performance.
+
+ * WebFrame.cpp:
+ (wxWebFrame::MakeEditable):
+ (wxWebFrame::IsEditable):
+
+2011-03-15 Kevin Ollivier <kevino@theolliviers.com>
+
+ Reviewed by Darin Adler.
+
+ Introduce WTF_USE_EXPORT_MACROS, which will allow us to put shared library import/export
+ info into the headers rather than in export symbol definition files, but disable it on
+ all platforms initially so we can deal with port build issues one port at a time.
+
+ https://bugs.webkit.org/show_bug.cgi?id=27551
+
+ * bindings/python/webview.i:
+
2011-03-07 Sam Weinig <sam@webkit.org>
Reviewed by Anders Carlsson.
diff --git a/Source/WebKit/wx/WebFrame.cpp b/Source/WebKit/wx/WebFrame.cpp
index e32d300..86bf660 100644
--- a/Source/WebKit/wx/WebFrame.cpp
+++ b/Source/WebKit/wx/WebFrame.cpp
@@ -402,14 +402,14 @@ void wxWebFrame::ResetTextSize()
void wxWebFrame::MakeEditable(bool enable)
{
- if (enable != IsEditable() && m_impl->frame && m_impl->frame->document())
- m_impl->frame->document()->setDesignMode(enable ? WebCore::Document::on : WebCore::Document::off);
+ if (enable != IsEditable() && m_impl->frame && m_impl->frame->page())
+ m_impl->frame->page()->setEditable(enable);
}
bool wxWebFrame::IsEditable() const
{
- if (m_impl->frame && m_impl->frame->document())
- return m_impl->frame->document()->inDesignMode();
+ if (m_impl->frame && m_impl->frame->page())
+ return m_impl->frame->page()->isEditable();
return false;
}
diff --git a/Source/WebKit/wx/WebKitSupport/FrameLoaderClientWx.cpp b/Source/WebKit/wx/WebKitSupport/FrameLoaderClientWx.cpp
index 68e1e70..afc255c 100644
--- a/Source/WebKit/wx/WebKitSupport/FrameLoaderClientWx.cpp
+++ b/Source/WebKit/wx/WebKitSupport/FrameLoaderClientWx.cpp
@@ -1,5 +1,6 @@
/*
* Copyright (C) 2007 Kevin Ollivier <kevino@theolliviers.com>
+ * Copyright (C) 2011 Apple Inc. All rights reserved.
*
* All rights reserved.
*
@@ -870,7 +871,7 @@ void FrameLoaderClientWx::transferLoadingResourceFromPage(unsigned long, Documen
{
}
-ObjectContentType FrameLoaderClientWx::objectContentType(const KURL& url, const String& mimeType)
+ObjectContentType FrameLoaderClientWx::objectContentType(const KURL& url, const String& mimeType, bool shouldPreferPlugInsForImages)
{
notImplemented();
return ObjectContentType();
diff --git a/Source/WebKit/wx/WebKitSupport/FrameLoaderClientWx.h b/Source/WebKit/wx/WebKitSupport/FrameLoaderClientWx.h
index 8f1e69e..254f95c 100644
--- a/Source/WebKit/wx/WebKitSupport/FrameLoaderClientWx.h
+++ b/Source/WebKit/wx/WebKitSupport/FrameLoaderClientWx.h
@@ -1,5 +1,6 @@
/*
* Copyright (C) 2007 Kevin Ollivier <kevino@theolliviers.com>
+ * Copyright (C) 2011 Apple Inc. All rights reserved.
*
* All rights reserved.
*
@@ -217,7 +218,7 @@ namespace WebCore {
virtual PassRefPtr<Widget> createJavaAppletWidget(const IntSize&, HTMLAppletElement*, const KURL& baseURL, const Vector<String>& paramNames, const Vector<String>& paramValues);
- virtual ObjectContentType objectContentType(const KURL& url, const String& mimeType);
+ virtual ObjectContentType objectContentType(const KURL&, const String& mimeType, bool shouldPreferPlugInsForImages);
virtual String overrideMediaType() const;
virtual void dispatchDidClearWindowObjectInWorld(DOMWrapperWorld*);
diff --git a/Source/WebKit/wx/WebView.cpp b/Source/WebKit/wx/WebView.cpp
index 3215b7a..dab3225 100644
--- a/Source/WebKit/wx/WebView.cpp
+++ b/Source/WebKit/wx/WebView.cpp
@@ -71,6 +71,7 @@
#include "ScriptController.h"
#include "JSDOMBinding.h"
+#include <runtime/initializeThreading.h>
#include <runtime/JSValue.h>
#include <runtime/UString.h>
#include <wtf/text/CString.h>
@@ -358,7 +359,7 @@ bool wxWebView::Create(wxWindow* parent, int id, const wxPoint& position,
if (!wxWindow::Create(parent, id, position, size, style, name))
return false;
- WTF::initializeThreading();
+ JSC::initializeThreading();
WTF::initializeMainThread();
// This is necessary because we are using SharedTimerWin.cpp on Windows,
diff --git a/Source/WebKit/wx/bindings/python/webview.i b/Source/WebKit/wx/bindings/python/webview.i
index f1621b0..118aed1 100644
--- a/Source/WebKit/wx/bindings/python/webview.i
+++ b/Source/WebKit/wx/bindings/python/webview.i
@@ -49,6 +49,7 @@
#include "WebDOMNodeList.h"
#include "WebDOMObject.h"
#include "WebDOMRange.h"
+#include "WebDOMWebKitAnimationList.h"
#ifndef __WXMSW__
PyObject* createDOMNodeSubtype(WebDOMNode* ptr, bool setThisOwn, bool isValueObject)