diff options
Diffstat (limited to 'WebKit')
175 files changed, 4283 insertions, 3452 deletions
diff --git a/WebKit/CMakeListsEfl.txt b/WebKit/CMakeListsEfl.txt index 2fc964b..ee67d71 100644 --- a/WebKit/CMakeListsEfl.txt +++ b/WebKit/CMakeListsEfl.txt @@ -32,6 +32,7 @@ LIST(APPEND WebKit_SOURCES efl/WebCoreSupport/InspectorClientEfl.cpp efl/ewk/ewk_contextmenu.cpp + efl/ewk/ewk_cookies.cpp efl/ewk/ewk_frame.cpp efl/ewk/ewk_history.cpp efl/ewk/ewk_main.cpp diff --git a/WebKit/ChangeLog b/WebKit/ChangeLog index bbf5170..d4d2431 100644 --- a/WebKit/ChangeLog +++ b/WebKit/ChangeLog @@ -1,3 +1,100 @@ +2010-07-20 Lucas De Marchi <lucas.demarchi@profusion.mobi> + + Reviewed by Kenneth Rohde Christiansen. + + Fix zoom in/out on EFL after r62666. The patch for adding viewport + missed the initialization of zoom_range.user_scalable. In case browser + doesn't care about the viewport and does not listen to the signal, + user_scalable will be always false, thus inhibiting zoom in/out. + https://bugs.webkit.org/show_bug.cgi?id=42656 + + * efl/EWebLauncher/main.c: + (on_viewport_changed): when listening to signal about viewport meta tag, + it's not sufficient to receive the parameters. One needs also to enforce + these parameters in WebKit. + * efl/ewk/ewk_view.cpp: + (_ewk_view_priv_new): initialize user_scalable parameter to allow + browser zooming in and out. + +2010-07-16 Zhe Su <suzhe@chromium.org> + + Reviewed by Darin Adler. + + REGRESSION(r61484): Broke focus behaviour on Qt and probably other platforms + https://bugs.webkit.org/show_bug.cgi?id=42253 + + Dummy implementation of EditorClient::willSetInputMethodState. + + * efl/WebCoreSupport/EditorClientEfl.cpp: + (WebCore::EditorClientEfl::willSetInputMethodState): + * efl/WebCoreSupport/EditorClientEfl.h: + +2010-07-15 Mark Rowe <mrowe@apple.com> + + Update the sorting in the Xcode project files. + + * WebKit.xcodeproj/project.pbxproj: + +2010-07-14 Sam Weinig <sam@webkit.org> + + Reviewed by Darin Adler. + + Patch for https://bugs.webkit.org/show_bug.cgi?id=42232 + Make changing Cursors work in WebKit2. + + * efl/WebCoreSupport/ChromeClientEfl.cpp: + (WebCore::ChromeClientEfl::setCursor): + * efl/WebCoreSupport/ChromeClientEfl.h: + Change prototype to match new one. + +2010-07-14 Lucas De Marchi <lucas.demarchi@profusion.mobi> + + Reviewed by Antonio Gomes. + + [EFL] Add eina_safety to popup menu deletion. + https://bugs.webkit.org/show_bug.cgi?id=41873 + + Since this is a public call, it's better to have an eina_safety on + public calls. It would crash if browser calls this function to select + an item of a nonexistent popup. + + * efl/ewk/ewk_view.cpp: add eina_safety to return if popup menu client does + not exist. + +2010-07-13 Simon Fraser <simon.fraser@apple.com> + + Reviewed by Dan Bernstein. + + <rdar://problem/8186963> Expose RenderLayer hierarchy via Obj-C for debugging. + + Add WebRenderLayer files. + + * WebKit.xcodeproj/project.pbxproj: + +2010-07-13 Rafael Antognolli <antognolli@profusion.mobi> + + Reviewed by Antonio Gomes. + + This commit implements an API for configuring a path to the cookie + file in the Mozilla "cookies.txt" format, and functions to deal with it + in a more EFL like API. + + [EFL] Add API for dealing with cookies in EFL port. + https://bugs.webkit.org/show_bug.cgi?id=41770 + + * CMakeListsEfl.txt: + * efl/ewk/EWebKit.h: + * efl/ewk/ewk_cookies.cpp: Added. + (ewk_cookies_file_set): Set a path to the file storing cookies. + (ewk_cookies_clear): Clear all the cookies from the current cookie jar. + (ewk_cookies_get_all): Get all the cookies from the current cookie jar. + (ewk_cookies_cookie_del): Delete a specific cookie from the cookie jar. + (ewk_cookies_cookie_free): Free memory used by a cookie. + (ewk_cookies_policy_set): Set which acceptance policy will be used. + (ewk_cookies_policy_get): Get current acceptance policy being used. + * efl/ewk/ewk_cookies.h: Added. + (_Ewk_Cookie::): + 2010-07-12 Lucas De Marchi <lucas.demarchi@profusion.mobi> Unreviewed build fix after r60050. diff --git a/WebKit/WebKit.xcodeproj/project.pbxproj b/WebKit/WebKit.xcodeproj/project.pbxproj index 4c470e6..634a430 100644 --- a/WebKit/WebKit.xcodeproj/project.pbxproj +++ b/WebKit/WebKit.xcodeproj/project.pbxproj @@ -18,6 +18,8 @@ 0ACE917310FE47E30096A45F /* OpenGL.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 0ACE917210FE47E30096A45F /* OpenGL.framework */; }; 0AEBFF630F9FA8BE000D486B /* WebNetscapeContainerCheckPrivate.h in Headers */ = {isa = PBXBuildFile; fileRef = 0AEBFF610F9FA8BE000D486B /* WebNetscapeContainerCheckPrivate.h */; settings = {ATTRIBUTES = (Private, ); }; }; 0AEBFF640F9FA8BE000D486B /* WebNetscapeContainerCheckPrivate.mm in Sources */ = {isa = PBXBuildFile; fileRef = 0AEBFF620F9FA8BE000D486B /* WebNetscapeContainerCheckPrivate.mm */; }; + 0F30985F11ECFE4500F559DF /* WebRenderLayer.h in Headers */ = {isa = PBXBuildFile; fileRef = 0F30985D11ECFE4400F559DF /* WebRenderLayer.h */; settings = {ATTRIBUTES = (Private, ); }; }; + 0F30986011ECFE4500F559DF /* WebRenderLayer.mm in Sources */ = {isa = PBXBuildFile; fileRef = 0F30985E11ECFE4500F559DF /* WebRenderLayer.mm */; }; 0FD3B0F21076C3E900039B96 /* WebVideoFullscreenController.h in Headers */ = {isa = PBXBuildFile; fileRef = 0FD3B0EE1076C3E900039B96 /* WebVideoFullscreenController.h */; }; 0FD3B0F31076C3E900039B96 /* WebVideoFullscreenController.mm in Sources */ = {isa = PBXBuildFile; fileRef = 0FD3B0EF1076C3E900039B96 /* WebVideoFullscreenController.mm */; }; 0FD3B0F41076C3E900039B96 /* WebVideoFullscreenHUDWindowController.h in Headers */ = {isa = PBXBuildFile; fileRef = 0FD3B0F01076C3E900039B96 /* WebVideoFullscreenHUDWindowController.h */; }; @@ -371,6 +373,8 @@ 0ACE917210FE47E30096A45F /* OpenGL.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = OpenGL.framework; path = /System/Library/Frameworks/OpenGL.framework; sourceTree = "<absolute>"; }; 0AEBFF610F9FA8BE000D486B /* WebNetscapeContainerCheckPrivate.h */ = {isa = PBXFileReference; explicitFileType = sourcecode.c.h; fileEncoding = 4; path = WebNetscapeContainerCheckPrivate.h; sourceTree = "<group>"; }; 0AEBFF620F9FA8BE000D486B /* WebNetscapeContainerCheckPrivate.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = WebNetscapeContainerCheckPrivate.mm; sourceTree = "<group>"; }; + 0F30985D11ECFE4400F559DF /* WebRenderLayer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WebRenderLayer.h; sourceTree = "<group>"; }; + 0F30985E11ECFE4500F559DF /* WebRenderLayer.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = WebRenderLayer.mm; sourceTree = "<group>"; }; 0FD3B0EE1076C3E900039B96 /* WebVideoFullscreenController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WebVideoFullscreenController.h; sourceTree = "<group>"; }; 0FD3B0EF1076C3E900039B96 /* WebVideoFullscreenController.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = WebVideoFullscreenController.mm; sourceTree = "<group>"; }; 0FD3B0F01076C3E900039B96 /* WebVideoFullscreenHUDWindowController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WebVideoFullscreenHUDWindowController.h; sourceTree = "<group>"; }; @@ -726,13 +730,13 @@ files = ( 939811290824BF01008DF038 /* Carbon.framework in Frameworks */, 9398112A0824BF01008DF038 /* Cocoa.framework in Frameworks */, + CD8EAC7311CAC9A300774075 /* IOKit.framework in Frameworks */, 9398112B0824BF01008DF038 /* JavaScriptCore.framework in Frameworks */, 9398112E0824BF01008DF038 /* libicucore.dylib in Frameworks */, 0ACE917310FE47E30096A45F /* OpenGL.framework in Frameworks */, 1A20D08B0ED384F20043FA9F /* QuartzCore.framework in Frameworks */, 9398112F0824BF01008DF038 /* Security.framework in Frameworks */, 9398112C0824BF01008DF038 /* WebCore.framework in Frameworks */, - CD8EAC7311CAC9A300774075 /* IOKit.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -778,9 +782,9 @@ 0867D69AFE84028FC02AAC07 /* Frameworks and Libraries */ = { isa = PBXGroup; children = ( - CD8EAC7211CAC9A300774075 /* IOKit.framework */, F5C2869402846DCD018635CA /* Carbon.framework */, F5C2869502846DCD018635CA /* Cocoa.framework */, + CD8EAC7211CAC9A300774075 /* IOKit.framework */, F738C9E903FAD3DF0321FBE0 /* JavaScriptCore.framework */, 93D623DD051E791F002F47DD /* libicucore.dylib */, 0ACE917210FE47E30096A45F /* OpenGL.framework */, @@ -960,8 +964,8 @@ F59668C802AD2923018635CA /* WebStringTruncator.h */, F59668C902AD2923018635CA /* WebStringTruncator.mm */, DD7CDEE60A23BA9E00069928 /* WebTypesInternal.h */, - C0C5B3ED1177A4A0002B0AEF /* WebUserContentURLPattern.mm */, C0C5B3EC1177A4A0002B0AEF /* WebUserContentURLPattern.h */, + C0C5B3ED1177A4A0002B0AEF /* WebUserContentURLPattern.mm */, ); name = Misc; path = mac/Misc; @@ -1057,8 +1061,6 @@ 1A9C78030EBBC455008599D4 /* Events */, 1A1F91430ECBB16F006351DA /* Hosted */, F5F717230288493C018635CA /* npapi.mm */, - F5A672B90263866E01000102 /* WebNetscapePluginStream.h */, - F5A672BA0263866E01000102 /* WebNetscapePluginStream.mm */, 1A4DF5E20EC8D104006BD4B4 /* WebBaseNetscapePluginView.h */, 1A4DF5E30EC8D104006BD4B4 /* WebBaseNetscapePluginView.mm */, 0AB752350FA2E4DB00D7CBB1 /* WebNetscapeContainerCheckContextInfo.h */, @@ -1069,6 +1071,8 @@ 226E9E6809D0AA8200F3A2BC /* WebNetscapeDeprecatedFunctions.h */, F5F7171E0288493C018635CA /* WebNetscapePluginPackage.h */, F5F7171F0288493C018635CA /* WebNetscapePluginPackage.mm */, + F5A672B90263866E01000102 /* WebNetscapePluginStream.h */, + F5A672BA0263866E01000102 /* WebNetscapePluginStream.mm */, 1A4DF5200EC8C74D006BD4B4 /* WebNetscapePluginView.h */, 1A4DF5210EC8C74D006BD4B4 /* WebNetscapePluginView.mm */, 1A77B02C0EE7730500C8A1F9 /* WebPluginRequest.h */, @@ -1148,6 +1152,8 @@ 3944606E020F50ED0ECA1767 /* WebPreferences.h */, F5AEBB3D024A527601C1A526 /* WebPreferences.mm */, 9CAE9D070252A4130ECA16EA /* WebPreferencesPrivate.h */, + 0F30985D11ECFE4400F559DF /* WebRenderLayer.h */, + 0F30985E11ECFE4500F559DF /* WebRenderLayer.mm */, F5F81C3902B67C26018635CA /* WebRenderNode.h */, F5F81C3A02B67C26018635CA /* WebRenderNode.mm */, 84311A1205EAAAF00088EDA4 /* WebResource.h */, @@ -1370,7 +1376,6 @@ 939810110824BF01008DF038 /* WebBackForwardList.h in Headers */, 51C714FB0B20F79F00E5E33C /* WebBackForwardListInternal.h in Headers */, 22F219CC08D236730030E078 /* WebBackForwardListPrivate.h in Headers */, - 9398102B0824BF01008DF038 /* WebNetscapePluginStream.h in Headers */, 1A4DF5E40EC8D104006BD4B4 /* WebBaseNetscapePluginView.h in Headers */, 9398102E0824BF01008DF038 /* WebBasePluginPackage.h in Headers */, 5241ADF50B1BC48A004012BD /* WebCache.h in Headers */, @@ -1473,6 +1478,7 @@ 1AEA66D80DC6B209003D12BF /* WebNetscapePluginEventHandlerCarbon.h in Headers */, 1AEA6A500DC8CE2F003D12BF /* WebNetscapePluginEventHandlerCocoa.h in Headers */, 939810310824BF01008DF038 /* WebNetscapePluginPackage.h in Headers */, + 9398102B0824BF01008DF038 /* WebNetscapePluginStream.h in Headers */, 1A4DF5220EC8C74D006BD4B4 /* WebNetscapePluginView.h in Headers */, 1C68F66F095B5FC100C2984E /* WebNodeHighlight.h in Headers */, 1C68F671095B5FC100C2984E /* WebNodeHighlightView.h in Headers */, @@ -1499,6 +1505,7 @@ 37B6FB4E1063530C000FDB3B /* WebPDFDocumentExtras.h in Headers */, 939810A50824BF01008DF038 /* WebPDFRepresentation.h in Headers */, 939810A40824BF01008DF038 /* WebPDFView.h in Headers */, + 1AA879B611CBE9BF003C664F /* WebPlatformStrategies.h in Headers */, 939810350824BF01008DF038 /* WebPlugin.h in Headers */, 939810360824BF01008DF038 /* WebPluginContainer.h in Headers */, 939810B10824BF01008DF038 /* WebPluginContainerCheck.h in Headers */, @@ -1517,6 +1524,7 @@ 939810A80824BF01008DF038 /* WebPreferenceKeysPrivate.h in Headers */, 9398105D0824BF01008DF038 /* WebPreferences.h in Headers */, 9398105E0824BF01008DF038 /* WebPreferencesPrivate.h in Headers */, + 0F30985F11ECFE4500F559DF /* WebRenderLayer.h in Headers */, 9398105F0824BF01008DF038 /* WebRenderNode.h in Headers */, 939810880824BF01008DF038 /* WebResource.h in Headers */, 934C4AA00F0141F7009372C0 /* WebResourceInternal.h in Headers */, @@ -1539,6 +1547,7 @@ 939810750824BF01008DF038 /* WebUIDelegate.h in Headers */, 939810830824BF01008DF038 /* WebUIDelegatePrivate.h in Headers */, 939810150824BF01008DF038 /* WebURLsWithTitles.h in Headers */, + C0C5B3EE1177A4A0002B0AEF /* WebUserContentURLPattern.h in Headers */, 0FD3B0F21076C3E900039B96 /* WebVideoFullscreenController.h in Headers */, 0FD3B0F41076C3E900039B96 /* WebVideoFullscreenHUDWindowController.h in Headers */, 939810700824BF01008DF038 /* WebView.h in Headers */, @@ -1548,8 +1557,6 @@ 939810710824BF01008DF038 /* WebViewPrivate.h in Headers */, 0FD3B0F81076C3F700039B96 /* WebWindowAnimation.h in Headers */, 41F4484F10338E8C0030E55E /* WebWorkersPrivate.h in Headers */, - C0C5B3EE1177A4A0002B0AEF /* WebUserContentURLPattern.h in Headers */, - 1AA879B611CBE9BF003C664F /* WebPlatformStrategies.h in Headers */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -1789,7 +1796,6 @@ 9398111D0824BF01008DF038 /* WebArchive.mm in Sources */, 939810CF0824BF01008DF038 /* WebAuthenticationPanel.m in Sources */, 939810BC0824BF01008DF038 /* WebBackForwardList.mm in Sources */, - 939810D10824BF01008DF038 /* WebNetscapePluginStream.mm in Sources */, 1A4DF5E50EC8D104006BD4B4 /* WebBaseNetscapePluginView.mm in Sources */, 939810D30824BF01008DF038 /* WebBasePluginPackage.mm in Sources */, 5241ADF60B1BC48A004012BD /* WebCache.mm in Sources */, @@ -1851,6 +1857,7 @@ 1AEA66D90DC6B209003D12BF /* WebNetscapePluginEventHandlerCarbon.mm in Sources */, 1AEA6A510DC8CE2F003D12BF /* WebNetscapePluginEventHandlerCocoa.mm in Sources */, 939810D60824BF01008DF038 /* WebNetscapePluginPackage.mm in Sources */, + 939810D10824BF01008DF038 /* WebNetscapePluginStream.mm in Sources */, 1A4DF5230EC8C74D006BD4B4 /* WebNetscapePluginView.mm in Sources */, 1C68F670095B5FC100C2984E /* WebNodeHighlight.mm in Sources */, 1C68F672095B5FC100C2984E /* WebNodeHighlightView.mm in Sources */, @@ -1876,6 +1883,7 @@ 37B6FB4F1063530C000FDB3B /* WebPDFDocumentExtras.mm in Sources */, 9398111F0824BF01008DF038 /* WebPDFRepresentation.mm in Sources */, 9398111E0824BF01008DF038 /* WebPDFView.mm in Sources */, + 1AA879B711CBE9BF003C664F /* WebPlatformStrategies.mm in Sources */, 939811260824BF01008DF038 /* WebPluginContainerCheck.mm in Sources */, 939810DA0824BF01008DF038 /* WebPluginController.mm in Sources */, 939810DB0824BF01008DF038 /* WebPluginDatabase.mm in Sources */, @@ -1885,6 +1893,7 @@ 224100F90918190100D2D266 /* WebPluginsPrivate.m in Sources */, 939811080824BF01008DF038 /* WebPolicyDelegate.mm in Sources */, 939810F80824BF01008DF038 /* WebPreferences.mm in Sources */, + 0F30986011ECFE4500F559DF /* WebRenderLayer.mm in Sources */, 939810F90824BF01008DF038 /* WebRenderNode.mm in Sources */, 9398111A0824BF01008DF038 /* WebResource.mm in Sources */, 7E6FEF0908985A7200C44C3F /* WebScriptDebugDelegate.mm in Sources */, @@ -1898,6 +1907,7 @@ 1A74A28F0F4F75400082E228 /* WebTextInputWindowController.m in Sources */, F834AAD80E64B1C700E2737C /* WebTextIterator.mm in Sources */, 939810BE0824BF01008DF038 /* WebURLsWithTitles.m in Sources */, + C0C5B3EF1177A4A0002B0AEF /* WebUserContentURLPattern.mm in Sources */, 0FD3B0F31076C3E900039B96 /* WebVideoFullscreenController.mm in Sources */, 0FD3B0F51076C3E900039B96 /* WebVideoFullscreenHUDWindowController.mm in Sources */, 939811070824BF01008DF038 /* WebView.mm in Sources */, @@ -1906,8 +1916,6 @@ 939810E80824BF01008DF038 /* WebViewFactory.mm in Sources */, 0FD3B0F91076C3F700039B96 /* WebWindowAnimation.m in Sources */, 41F4485010338E8C0030E55E /* WebWorkersPrivate.mm in Sources */, - C0C5B3EF1177A4A0002B0AEF /* WebUserContentURLPattern.mm in Sources */, - 1AA879B711CBE9BF003C664F /* WebPlatformStrategies.mm in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; diff --git a/WebKit/chromium/ChangeLog b/WebKit/chromium/ChangeLog index 4356f21..009dc60 100644 --- a/WebKit/chromium/ChangeLog +++ b/WebKit/chromium/ChangeLog @@ -1,3 +1,856 @@ +2010-07-21 Bo Liu <boliu@chromium.org> + + Reviewed by Darin Fisher. + + [Chromium] Add chromium WebMediaPlayer to PlatformMedia + https://bugs.webkit.org/show_bug.cgi?id=41295 + + * WebKit.gyp: + * public/WebMediaElement.h: Added. + * src/WebMediaElement.cpp: Added. + (WebKit::WebMediaElement::player): + (WebKit::WebMediaElement::WebMediaElement): + (WebKit::WebMediaElement::operator=): + (WebKit::WebMediaElement::operator PassRefPtr<HTMLMediaElement>): + * src/WebMediaPlayerClientImpl.cpp: + (WebKit::WebMediaPlayerClientImpl::fromMediaElement): + (WebKit::WebMediaPlayerClientImpl::mediaPlayer): + (WebKit::WebMediaPlayerClientImpl::platformLayer): + (WebKit::WebMediaPlayerClientImpl::platformMedia): + * src/WebMediaPlayerClientImpl.h: + +2010-07-21 Finnur Thorarinsson <finnur.webkit@gmail.com> + + Reviewed by Dimitri Glazkov. + + Avoid crashing during find-in-page when |view| is NULL. + https://bugs.webkit.org/show_bug.cgi?id=42760 + + There are no layout tests because we don't have a repro case + to work with, so this is a speculative fix based on crash dump + diagnosis. See bug for details. + + * src/WebFrameImpl.cpp: + (WebKit::WebFrameImpl::shouldScopeMatches): + +2010-07-21 Hans Wennborg <hans@chromium.org> + + Reviewed by Steve Block. + + Runtime feature switch for device orientation + https://bugs.webkit.org/show_bug.cgi?id=42265 + + Add a runtime feature switch that decides whether device orientation + events are available or not. Defaults to true. + + * public/WebRuntimeFeatures.h: + * src/WebRuntimeFeatures.cpp: + (WebKit::WebRuntimeFeatures::enableDeviceOrientation): + (WebKit::WebRuntimeFeatures::isDeviceOrientationEnabled): + +2010-07-21 Yury Semikhatsky <yurys@chromium.org> + + Reviewed by Pavel Feldman. + + Web Inspector: should be possible to debug inspector + https://bugs.webkit.org/show_bug.cgi?id=42730 + + * src/WebDevToolsFrontendImpl.cpp: + (WebKit::WebDevToolsFrontendImpl::WebDevToolsFrontendImpl): + +2010-07-16 James Hawkins <jhawkins@chromium.org> + + Reviewed by Darin Fisher. + + [Chromium] Implement WebFormElement::wasUserSubmitted(). This is used to + verify that the user submitted the form instead of JS when saving form + data in AutoFill. + https://bugs.webkit.org/show_bug.cgi?id=42479 + + * public/WebFormElement.h: + * src/WebFormElement.cpp: + (WebKit::WebFormElement::wasUserSubmitted): + +2010-07-20 Daniel Erat <derat@chromium.org> + + Reviewed by Ojan Vafai. + + Subpixel rendering always disabled for Chromium Linux + https://bugs.webkit.org/show_bug.cgi?id=42220 + + Honor Fontconfig subpixel rendering setting on Chromium Linux. + + * src/gtk/WebFontInfo.cpp: + (WebKit::WebFontInfo::renderStyleForStrike): + +2010-07-20 Darin Fisher <darin@chromium.org> + + Fix Chromium build bustage. + + * src/ResourceHandle.cpp: + (WebCore::ResourceHandle::hasAuthenticationChallenge): Add + implementation of this method that always returns false. + +2010-07-20 Darin Fisher <darin@chromium.org> + + Reviewed by Jian Li. + + [Chromium] Add interface for downloading to a file. This can be used + in the future to support XMLHttpRequest.responseBlob, but it also + serves a use case in Chromium. + + https://bugs.webkit.org/show_bug.cgi?id=42657 + + * public/WebURLLoaderClient.h: + (WebKit::WebURLLoaderClient::willSendRequest): + (WebKit::WebURLLoaderClient::didSendData): + (WebKit::WebURLLoaderClient::didReceiveResponse): + (WebKit::WebURLLoaderClient::didDownloadData): + (WebKit::WebURLLoaderClient::didReceiveData): + (WebKit::WebURLLoaderClient::didFinishLoading): + (WebKit::WebURLLoaderClient::didFail): + * public/WebURLRequest.h: + * public/WebURLResponse.h: + * src/WebURLRequest.cpp: + (WebKit::WebURLRequest::downloadToFile): + (WebKit::WebURLRequest::setDownloadToFile): + * src/WebURLRequestPrivate.h: + (WebKit::WebURLRequestPrivate::WebURLRequestPrivate): + * src/WebURLResponse.cpp: + (WebKit::WebURLResponse::downloadFilePath): + (WebKit::WebURLResponse::setDownloadFilePath): + * src/WebURLResponsePrivate.h: + +2010-07-20 Sheriff Bot <webkit.review.bot@gmail.com> + + Unreviewed, rolling out r63750. + http://trac.webkit.org/changeset/63750 + https://bugs.webkit.org/show_bug.cgi?id=42648 + + This revision breaks the windows builds (Requested by + hwennborg on #webkit). + + * public/WebRuntimeFeatures.h: + * src/WebRuntimeFeatures.cpp: + +2010-07-19 Victor Wang <victorw@chromium.org> + + Reviewed by Darin Fisher. + + [Chromium] Add webkit api reset to WebIDBDatabaseError and WebIDBKey + and refactor their destructors for chromium multi dll build. + + https://bugs.webkit.org/show_bug.cgi?id=42574 + + * public/WebIDBDatabaseError.h: + (WebKit::WebIDBDatabaseError::~WebIDBDatabaseError): + * public/WebIDBKey.h: + (WebKit::WebIDBKey::~WebIDBKey): + * src/WebIDBDatabaseError.cpp: + (WebKit::WebIDBDatabaseError::reset): + * src/WebIDBKey.cpp: + (WebKit::WebIDBKey::reset): + +2010-07-20 Hans Wennborg <hans@chromium.org> + + Reviewed by Steve Block. + + Runtime feature switch for device orientation + https://bugs.webkit.org/show_bug.cgi?id=42265 + + Add a runtime feature switch that decides whether device orientation + events are available or not. Defaults to true. + + * public/WebRuntimeFeatures.h: + * src/WebRuntimeFeatures.cpp: + (WebKit::WebRuntimeFeatures::enableDeviceOrientation): + (WebKit::WebRuntimeFeatures::isDeviceOrientationEnabled): + +2010-07-19 Victoria Kirst <vrk@google.com> + + Reviewed by David Levin. + + Updated WebMediaPlayer to support accelerated rendering and to + create and return a VideoChromiumLayer as its platform layer. + https://bugs.webkit.org/show_bug.cgi?id=42234 + + * src/WebMediaPlayerClientImpl.cpp: + (WebKit::WebMediaPlayerClientImpl::platformLayer): + (WebKit::WebMediaPlayerClientImpl::create): + * src/WebMediaPlayerClientImpl.h: + (WebKit::WebMediaPlayerClientImpl::supportsAcceleratedRendering): + +2010-07-19 Kenneth Russell <kbr@google.com> + + Reviewed by Nate Chapin. + + WebGL rendering results must be made available to Canvas.toDataURL and 2D drawImage + https://bugs.webkit.org/show_bug.cgi?id=34719 + + Fixed compiler warning introduced by original patch. + + * src/WebGraphicsContext3DDefaultImpl.cpp: + (WebKit::WebGraphicsContext3DDefaultImpl::readBackFramebuffer): + +2010-07-19 Tony Chang <tony@chromium.org> + + Reviewed by Kent Tamura. + + [chromium] refactor npapi plugin copy step + https://bugs.webkit.org/show_bug.cgi?id=42493 + + This is to avoid duplicate copy rules in the Linux make build. + + * WebKit.gyp: + * DEPS: 52483:52869 + +2010-07-19 Ilya Tikhonovsky <loislo@chromium.org> + + Reviewed by Pavel Feldman. + + Web Inspector: Live edit is not working in chromium. + https://bugs.webkit.org/show_bug.cgi?id=42572 + + * src/js/DebuggerScript.js: + +2010-07-16 Pavel Podivilov <podivilov@chromium.org> + + Reviewed by Pavel Feldman. + + [V8] Web Inspector: get actual breakpoint location from v8 and pass it + to ScripDebugServer. + https://bugs.webkit.org/show_bug.cgi?id=42452 + + * src/js/DebuggerScript.js: + +2010-07-17 John Gregg <johnnyg@google.com> + + Reviewed by Kent Tamura. + + [chromium] directory upload: pass the attribute up to the chrome client + https://bugs.webkit.org/show_bug.cgi?id=42475 + + This allows chromium to display the native system directory picker when + the directory attribute is present on the input element. + + * public/WebFileChooserParams.h: + * src/ChromeClientImpl.cpp: + (WebKit::ChromeClientImpl::runOpenPanel): + +2010-07-16 Zhe Su <suzhe@chromium.org> + + Reviewed by Darin Adler. + + REGRESSION(r61484): Broke focus behaviour on Qt and probably other platforms + https://bugs.webkit.org/show_bug.cgi?id=42253 + + Implement EditorClient::willSetInputMethodState which replaces + setInputMethodState method. + + * src/EditorClientImpl.cpp: + (WebKit::EditorClientImpl::willSetInputMethodState): + (WebKit::EditorClientImpl::setInputMethodState): + * src/EditorClientImpl.h: + +2010-07-16 Kent Tamura <tkent@chromium.org> + + Reviewed by Darin Fisher. + + [Chromium] <input type=number> UI implementation for Windows + https://bugs.webkit.org/show_bug.cgi?id=42259 + + * public/WebThemeEngine.h: + (WebKit::WebThemeEngine::paintSpinButton): Added. + * src/ChromiumBridge.cpp: + (WebCore::ChromiumBridge::paintSpinButton): + Added. It calls WebThemeEngine::paintSpinButton(). + +2010-07-16 James Robinson <jamesr@chromium.org> + + Reviewed by Darin Fisher. + + [chromium] Avoid crashing if offscreen GLES2 context creation fails + https://bugs.webkit.org/show_bug.cgi?id=42469 + + If creating or initializing an offscreen GLES2Context fails we should return null + rather than crashing or returning an invalid context. + + * src/WebViewImpl.cpp: + (WebKit::WebViewImpl::getOffscreenGLES2Context): + +2010-07-15 Tony Gentilcore <tonyg@chromium.org> + + Reviewed by Darin Fisher. + + Enable window.webkitPerformance (Web Timing) for chromium + https://bugs.webkit.org/show_bug.cgi?id=42313 + + * features.gypi: + +2010-07-16 Sheriff Bot <webkit.review.bot@gmail.com> + + Unreviewed, rolling out r63551. + http://trac.webkit.org/changeset/63551 + https://bugs.webkit.org/show_bug.cgi?id=42460 + + "Problems with gyp" (Requested by yurys on #webkit). + + * DEPS: + +2010-07-16 Yury Semikhatsky <yurys@chromium.org> + + Unreviewed. Bump up Chromium revision. + + * DEPS: + +2010-07-16 Pavel Feldman <pfeldman@chromium.org> + + Reviewed by Yury Semikhatsky. + + Web Inspector: disable AppCache in chromium. + + https://bugs.webkit.org/show_bug.cgi?id=41858 + + * src/js/DevTools.js: + (WebInspector.loaded): + +2010-07-16 Alexander Pavlov <apavlov@chromium.org> + + Reviewed by Yury Semikhatsky. + + Web Inspector: [Chromium] A non-existent resource is referenced from devTools.css + + The erroneous rule has been removed. + https://bugs.webkit.org/show_bug.cgi?id=42454 + + * src/js/devTools.css: + +2010-07-16 Andrey Kosyakov <caseq@chromium.org> + + Reviewed by Pavel Feldman. + + Check that end node of a range has a valid renderer in WebViewImpl::caretOrSelectionBounds() + to avoid crash in Position::getInlineBoxAndOffset() when start node has renderer but end one doesn't. + https://bugs.webkit.org/show_bug.cgi?id=42449 + + * src/WebViewImpl.cpp: + (WebKit::WebViewImpl::caretOrSelectionBounds): + +2010-07-16 Mikhail Naganov <mnaganov@chromium.org> + + Reviewed by Pavel Feldman. + + Make JS memory stats available via 'Performance' object (Web Timing). + This statistics is populated only if 'WebKitMemoryInfoEnabled' + preference is set. + + 'console.memory' is kept until Web Timing object becomes visible by + default (currently it is hidden under compile-time flag). These stats + are guarded with the same preference. + + https://bugs.webkit.org/show_bug.cgi?id=41617 + + * public/WebSettings.h: + * src/WebSettingsImpl.cpp: + (WebKit::WebSettingsImpl::setMemoryInfoEnabled): + * src/WebSettingsImpl.h: + +2010-07-15 Victor Wang <victorw@chromium.org> + + Reviewed by David Levin. + + [Chromium] Chromium webkit dll updates: + -. Fix WEBKIT_IMPLEMENTATION in WebCommon so + dllimport works as expected. + -. Update webkit.gyp so targets that depend on webkit + has correct macros defined. + + https://bugs.webkit.org/show_bug.cgi?id=42177 + + * WebKit.gyp: + * public/WebCommon.h: + +2010-07-13 Zhenyao Mo <zmo@google.com> + + Reviewed by Nate Chapin. + + WebGL rendering results must be made available to Canvas.toDataURL and 2D drawImage + https://bugs.webkit.org/show_bug.cgi?id=34719 + + * src/GraphicsContext3D.cpp: + (WebCore::GraphicsContext3DInternal::paintRenderingResultsToCanvas): Implement paintRenderingResultsToCanvas(). + (WebCore::GraphicsContext3DInternal::beginPaint): Just use paintRenderingResultsToCanvas(). + +2010-07-15 Victor Wang <victorw@chromium.org> + + Reviewed by David Levin. + + Roll Chromium DEPS forward to r52483. + https://bugs.webkit.org/show_bug.cgi?id=42386 + + * DEPS: + +2010-07-15 Scott Violet <sky@chromium.org> + + Reviewed by David Levin. + + [chromium] WebViewClient::removeAutofillSuggestions is not passed the correct name + https://bugs.webkit.org/show_bug.cgi?id=42385 + + * src/WebViewImpl.cpp: + (WebKit::WebViewImpl::autocompleteHandleKeyEvent): Use WebInputElement::nameForAutofill() instead of name. + +2010-07-15 Sheriff Bot <webkit.review.bot@gmail.com> + + Unreviewed, rolling out r63446. + http://trac.webkit.org/changeset/63446 + https://bugs.webkit.org/show_bug.cgi?id=42412 + + It broke the Chromium Windows bot due to missing dependencies + there. (Requested by dave_levin on #webkit). + + * DEPS: + +2010-07-15 Victor Wang <victorw@chromium.org> + + Reviewed by David Levin. + + Roll Chromium DEPS forward to r52483. + https://bugs.webkit.org/show_bug.cgi?id=42386 + + * DEPS: + +2010-07-15 Michael Nordman <michaeln@google.com> + + Reviewed by Darin Fisher. + + WebKitAPI additions to support inspecting application caches. + https://bugs.webkit.org/show_bug.cgi?id=41993 + + * public/WebApplicationCacheHost.h: + (WebKit::WebApplicationCacheHost::CacheInfo::CacheInfo): + (WebKit::WebApplicationCacheHost::ResourceInfo::ResourceInfo): + (WebKit::WebApplicationCacheHost::getAssociatedCacheInfo): + (WebKit::WebApplicationCacheHost::getResourceList): + (WebKit::WebApplicationCacheHost::deleteAssociatedCacheGroup): + * public/WebApplicationCacheHostClient.h: + (WebKit::WebApplicationCacheHostClient::didChangeCacheAssociation): + * src/ApplicationCacheHostInternal.h: + (WebCore::ApplicationCacheHostInternal::didChangeCacheAssociation): + +2010-07-15 Pavel Feldman <pfeldman@chromium.org> + + Reviewed by Yury Semikhatsky. + + Web Inspector: differentiate between blocking and connecting timers. + + https://bugs.webkit.org/show_bug.cgi?id=42372 + + * public/WebURLResponse.h: + * src/WebURLResponse.cpp: + (WebKit::WebURLResponse::connectionReused): + (WebKit::WebURLResponse::setConnectionReused): + +2010-07-15 Pavel Podivilov <podivilov@chromium.org> + + Reviewed by Yury Semikhatsky. + + Fix mac compilation failure + https://bugs.webkit.org/show_bug.cgi?id=42344 + + * src/AutoFillPopupMenuClient.cpp: + (WebKit::AutoFillPopupMenuClient::removeSuggestionAtIndex): + (WebKit::AutoFillPopupMenuClient::canRemoveSuggestionAtIndex): + +2010-07-14 George Yakovlev <georgey@chromium.org> + + Reviewed by Darin Fisher. + + Allow Chromium access to Select control choices + https://bugs.webkit.org/show_bug.cgi?id=41384 + + * WebKit.gyp: + * public/WebOptionElement.h: Added. + (WebKit::WebOptionElement::WebOptionElement): + (WebKit::WebOptionElement::operator=): + (WebKit::WebOptionElement::assign): + * public/WebSelectElement.h: + * src/WebOptionElement.cpp: Added. + (WebKit::WebOptionElement::setValue): + (WebKit::WebOptionElement::value): + (WebKit::WebOptionElement::index): + (WebKit::WebOptionElement::text): + (WebKit::WebOptionElement::defaultSelected): + (WebKit::WebOptionElement::setDefaultSelected): + (WebKit::WebOptionElement::label): + (WebKit::WebOptionElement::disabled): + (WebKit::WebOptionElement::WebOptionElement): + (WebKit::WebOptionElement::operator=): + (WebKit::WebOptionElement::operator PassRefPtr<HTMLOptionElement>): + * src/WebSelectElement.cpp: + (WebKit::WebSelectElement::listItems): + +2010-07-14 Sheriff Bot <webkit.review.bot@gmail.com> + + Unreviewed, rolling out r63389. + http://trac.webkit.org/changeset/63389 + https://bugs.webkit.org/show_bug.cgi?id=42311 + + It broke the Chromium Linux build. (Requested by dave_levin on + #webkit). + + * DEPS: + * WebKit.gyp: + * public/WebCommon.h: + +2010-07-14 Scott Violet <sky@chromium.org> + + Reviewed by David Levin. + + [chromium] Autofill menu shows seperator at the wrong place when an entry is deleted + https://bugs.webkit.org/show_bug.cgi?id=42210 + + * src/AutoFillPopupMenuClient.cpp: + (WebKit::AutoFillPopupMenuClient::removeSuggestionAtIndex): Updates internal data appropriately. + (WebKit::AutoFillPopupMenuClient::canRemoveSuggestionAtIndex): Now called before removal to see if can remove. + * src/AutoFillPopupMenuClient.h: Fixed whitespace and added method. + * src/WebViewImpl.cpp: + (WebKit::WebViewImpl::autocompleteHandleKeyEvent): Added call to canRemoveSuggestionAtIndex. + +2010-07-14 James Robinson <jamesr@chromium.org> + + Unreviewed. Compile fix, initialization/declaration order mismatch. + + * src/GLES2ContextInternal.h: + +2010-07-14 Jay Civelli <jcivelli@chromium.org> + + Reviewed by David Levin. + + [chromium] don't restrict the width of the autofill popup. + https://bugs.webkit.org/show_bug.cgi?id=42206 + + * src/WebViewImpl.cpp: + +2010-07-14 Victor Wang <victorw@chromium.org> + + Reviewed by Darin Fisher. + + [Chromium] Chromium webkit dll updates: + -. Fix WEBKIT_IMPLEMENTATION in WebCommon so + dllimport works as expected. + -. Update webkit.gyp so targets that depend on webkit + has correct macros defined. + -. Roll forward chromium deps to r52273. + + https://bugs.webkit.org/show_bug.cgi?id=42177 + + * DEPS: + * WebKit.gyp: + * public/WebCommon.h: + +2010-07-14 James Hawkins <jhawkins@chromium.org> + + UNREVIEWED Build Fix. + + Fix a typo. + + * src/WebViewImpl.cpp: + (WebKit::WebViewImpl::applyAutoFillSuggestions): + +2010-07-14 James Robinson <jamesr@chromium.org> + + Reviewed by Darin Fisher. + + Breaks all dependencies on Page from platform/ and cleans up GLES2Context lifetime + https://bugs.webkit.org/show_bug.cgi?id=42203 + + Rather than constructing a GLES2Context from a Page, pass the LayerRendererChromium + a GLES2Context in from the constructor. This way the platform/ directory can remain + ignorant of Page and friends. Also adds functions on ChromeClientChromium to request + onscreen and offscreen GLES2Contexts for callers in WebCore that need them. + + * WebKit.gyp: + * src/ChromeClientImpl.cpp: + (WebKit::ChromeClientImpl::getOnscreenGLES2Context): + (WebKit::ChromeClientImpl::getOffscreenGLES2Context): + * src/ChromeClientImpl.h: + * src/GLES2Context.cpp: + (WebCore::GLES2ContextInternal::create): + (WebCore::GLES2Context::create): + (WebCore::GLES2Context::GLES2Context): + * src/GLES2ContextInternal.cpp: Added. + (WebCore::GLES2ContextInternal::~GLES2ContextInternal): + * src/GLES2ContextInternal.h: Added. + (WebCore::GLES2ContextInternal::getWebGLES2Context): + (WebCore::GLES2ContextInternal::GLES2ContextInternal): + * src/WebViewImpl.cpp: + (WebKit::WebViewImpl::setIsAcceleratedCompositingActive): + (WebKit::WebViewImpl::getOnscreenGLES2Context): + (WebKit::WebViewImpl::getOffscreenGLES2Context): + * src/WebViewImpl.h: + +2010-07-14 James Hawkins <jhawkins@chromium.org> + + Reviewed by Darin Fisher. + + [Chromium] Use the unique ID instead of the profile label to identify + the accepted AutoFill suggestion. + https://bugs.webkit.org/show_bug.cgi?id=42301 + + * public/WebView.h: + * public/WebViewClient.h: + (WebKit::WebViewClient::didAcceptAutoFillSuggestion): + (WebKit::WebViewClient::didSelectAutoFillSuggestion): + * src/AutoFillPopupMenuClient.cpp: + (WebKit::AutoFillPopupMenuClient::valueChanged): + (WebKit::AutoFillPopupMenuClient::selectionChanged): + (WebKit::AutoFillPopupMenuClient::initialize): + (WebKit::AutoFillPopupMenuClient::setSuggestions): + (WebKit::AutoFillPopupMenuClient::textFieldStyle): + * src/AutoFillPopupMenuClient.h: + * src/WebViewImpl.cpp: + (WebKit::WebViewImpl::applyAutoFillSuggestions): + (WebKit::WebViewImpl::applyAutocompleteSuggestions): + * src/WebViewImpl.h: + +2010-07-14 Jay Civelli <jcivelli@chromium.org> + + Reviewed by David Levin. + + Don't notify the WebView that the popup has been closed when the + selection is cleared, as the popup is not gone and would linger + as a ghost popup. + https://bugs.webkit.org/show_bug.cgi?id=42180 + + * src/AutoFillPopupMenuClient.cpp: + (WebKit::AutoFillPopupMenuClient::selectionCleared): + +2010-07-14 Sam Weinig <sam@webkit.org> + + Fix the chromium mac build. + + * src/WebPopupMenuImpl.cpp: + (WebKit::WebPopupMenuImpl::setCursor): + +2010-07-14 Sam Weinig <sam@webkit.org> + + Reviewed by Darin Adler. + + Patch for https://bugs.webkit.org/show_bug.cgi?id=42232 + Make changing Cursors work in WebKit2. + + * src/ChromeClientImpl.h: + (WebKit::ChromeClientImpl::setCursor): + Change prototype to match new one. + + * src/WebPopupMenuImpl.cpp: + (WebKit::WebPopupMenuImpl::setCursor): + * src/WebPopupMenuImpl.h: + Add empty setCursor function to satisfy the HostWindow interface. + +2010-07-13 Alexey Proskuryakov <ap@apple.com> + + Reviewed by Darin Adler. + + https://bugs.webkit.org/show_bug.cgi?id=42201 + Use ResourceHandle object for synchronous loading + + * src/ResourceHandle.cpp: + (WebCore::ResourceHandle::request): + This method is no longer const in cross-platform code, and is called firstRequest. + +2010-07-14 Sheriff Bot <webkit.review.bot@gmail.com> + + Unreviewed, rolling out r63305. + http://trac.webkit.org/changeset/63305 + https://bugs.webkit.org/show_bug.cgi?id=42256 + + "debugger-breakpoints-not-activated-on-reload.html fails on + GTK" (Requested by yurys on #webkit). + + * src/js/DebuggerScript.js: + (): + +2010-07-14 Yury Semikhatsky <yurys@chromium.org> + + Reviewed by Pavel Feldman. + + Web Inspector: remove v8 debugger code that doesn't use ScriptDebugServer + https://bugs.webkit.org/show_bug.cgi?id=42164 + + * WebKit.gypi: + * src/DebuggerAgentManager.cpp: + (WebKit::DebuggerAgentManager::debugAttach): + (WebKit::DebuggerAgentManager::debugDetach): + * src/InspectorFrontendClientImpl.cpp: + (WebKit::InspectorFrontendClientImpl::windowObjectCleared): + * src/WebDevToolsAgentImpl.cpp: + (WebKit::WebDevToolsAgentImpl::~WebDevToolsAgentImpl): + (WebKit::WebDevToolsAgentImpl::attach): + (WebKit::WebDevToolsAgentImpl::didNavigate): + (WebKit::WebDevToolsAgentImpl::createInspectorFrontendProxy): + * src/js/DebuggerAgent.js: Removed. + * src/js/DevTools.js: + (devtools.ToolsAgent): + (WebInspector.loaded): + * src/js/DevToolsHostStub.js: + * src/js/InspectorControllerImpl.js: + (devtools.InspectorBackendImpl): + * src/js/Tests.js: + (.TestSuite.prototype.testAutoContinueOnSyntaxError): + (.TestSuite.prototype.testExpandScope.examineScopes): + (.TestSuite.prototype.testExpandScope): + (.TestSuite.prototype.testDebugIntrinsicProperties): + +2010-07-14 Ilya Tikhonovsky <loislo@chromium.org> + + Reviewed by Yury Semikhatsky. + + WebInspector: Clean-up InspectorBackend code. In the next changes + InspectorBackend content will be generated by scripts. As far as + generator is very simple thing all nontrivial function should be + moved to InspectorController and DOMAgent. + https://bugs.webkit.org/show_bug.cgi?id=42171 + + * src/js/InspectorControllerImpl.js: + (devtools.InspectorBackendImpl): + (.devtools.InspectorBackendImpl.prototype.pause): + (.devtools.InspectorBackendImpl.prototype.resume): + (.devtools.InspectorBackendImpl.prototype.stepIntoStatement): + (.devtools.InspectorBackendImpl.prototype.stepOutOfFunction): + (.devtools.InspectorBackendImpl.prototype.stepOverStatement): + (else.devtools.InspectorBackendImpl.prototype.pause): + +2010-07-14 Pavel Podivilov <podivilov@chromium.org> + + Reviewed by Yury Semikhatsky. + + Web Inspector: if breakpoints were deactivated, add new breakpoints as disabled. + https://bugs.webkit.org/show_bug.cgi?id=41461 + + * src/js/DebuggerScript.js: + (): + +2010-07-14 Kent Tamura <tkent@chromium.org> + + Unreviewed, 2nd attempt to fix build on 'Webkit.org Reliability Builder'. + + * WebKit.gyp: + +2010-07-14 Kent Tamura <tkent@chromium.org> + + Unreviewed, attempt to fix build on 'Webkit.org Reliability Builder'. + + * WebKit.gyp: + +2010-07-14 Kent Tamura <tkent@chromium.org> + + Reviewed by David Levin. + + [Chromium] Upstreaming inspector_resources target + https://bugs.webkit.org/show_bug.cgi?id=41669 + + 'inspector_resource' is currently in src/webkit/webkit.gyp of + Chromium tree. We move it to WebKit tree because: + - DumpRenderTree in WebKit tree needs it, and + - It's hard to refer to WebKit.gypi and WebCore.gypi from + webkit_support in both cases of Chromium-tree build and + WebKit-tree build. + + * WebKit.gyp: + +2010-07-13 Kent Tamura <tkent@chromium.org> + + Reviewed by Darin Fisher. + + [Chromium] Linux implementation of <input type=number> UI + https://bugs.webkit.org/show_bug.cgi?id=41925 + + * src/WebViewImpl.cpp: + (WebKit::WebViewImpl::setScrollbarColors): + Call PlatformThemeChromiumGtk::setScrollbarColors() instead of + RenderThemeChromiumLinux::setScrollbarColors(). + +2010-07-13 Chris Guillory <chris.guillory@google.com> + + Reviewed by David Levin. + + Fix adoptRef usage violation in WebAccessibilityCacheImpl.cpp. + https://bugs.webkit.org/show_bug.cgi?id=42092 + + * src/WebAccessibilityCacheImpl.cpp: + (WebKit::WebAccessibilityCacheImpl::WeakHandle::create): + (WebKit::WebAccessibilityCacheImpl::WeakHandle::WeakHandle): + +2010-07-13 Albert J. Wong <ajwong@chromium.org> + + Unreviewed, build fix. + + [chromium] The comparision between signed/unsigned breaks the chromium + mac build. + + * src/AutoFillPopupMenuClient.cpp: + (WebKit::AutoFillPopupMenuClient::getSuggestion): + (WebKit::AutoFillPopupMenuClient::getLabel): + +2010-07-10 Zhenyao Mo <zmo@google.com> + + Reviewed by Darin Fisher. + + Implement bufferData and bufferSubData with ArrayBuffer as input + https://bugs.webkit.org/show_bug.cgi?id=41884 + + * src/GraphicsContext3D.cpp: Implement bufferData and bufferSubData with ArrayBuffer as input. + (WebCore::GraphicsContext3DInternal::bufferData): + (WebCore::GraphicsContext3DInternal::bufferSubData): + +2010-07-10 Zhenyao Mo <zmo@google.com> + + Reviewed by Darin Fisher. + + Need to emulate MAX_VARYING_VECTORS/MAX_FRAGMENT_UNIFORM_VECTORs/MAX_VERTEX_UNIFORM_VECTORS for glGet + https://bugs.webkit.org/show_bug.cgi?id=42032 + + * src/WebGraphicsContext3DDefaultImpl.cpp: + (WebKit::WebGraphicsContext3DDefaultImpl::getIntegerv): Emulate the enums. + +2010-07-13 Andrey Kosyakov <caseq@chromium.org> + + Reviewed by Yury Semikhatsky. + + Web Inspector: catch and log JS exceptions resulting from executing a + script on inspector front-end to prevent renderer from crashing. + https://bugs.webkit.org/show_bug.cgi?id=42157 + + * src/WebDevToolsFrontendImpl.cpp: + (WebKit::WebDevToolsFrontendImpl::executeScript): + +2010-07-13 Kent Tamura <tkent@chromium.org> + + Unreviewed, build fix. + + Fix a build error by r63179 for Chromium. + + * tests/PopupMenuTest.cpp: + (WebKit::TestPopupMenuClient::itemLabel): Added. + +2010-07-12 Jay Civelli <jcivelli@chromium.org> + + Reviewed by Kent Tamura. + + Making the autofill popup use labels to show the label + associated with an item. + https://bugs.webkit.org/show_bug.cgi?id=41964 + + * src/AutoFillPopupMenuClient.cpp: + (WebKit::AutoFillPopupMenuClient::getSuggestion): + (WebKit::AutoFillPopupMenuClient::getLabel): + (WebKit::AutoFillPopupMenuClient::itemLabel): + (WebKit::AutoFillPopupMenuClient::setSuggestions): + (WebKit::AutoFillPopupMenuClient::convertListIndexToInternalIndex): + * src/AutoFillPopupMenuClient.h: + 2010-07-12 Sheriff Bot <webkit.review.bot@gmail.com> Unreviewed, rolling out r63171. diff --git a/WebKit/chromium/DEPS b/WebKit/chromium/DEPS index 63509ff..24bf389 100644 --- a/WebKit/chromium/DEPS +++ b/WebKit/chromium/DEPS @@ -32,7 +32,7 @@ vars = { 'chromium_svn': 'http://src.chromium.org/svn/trunk/src', - 'chromium_rev': '51736', + 'chromium_rev': '52869', } deps = { @@ -89,6 +89,8 @@ deps = { Var('chromium_svn')+'/gpu@'+Var('chromium_rev'), 'media': Var('chromium_svn')+'/media@'+Var('chromium_rev'), + 'printing': + Var('chromium_svn')+'/printing@'+Var('chromium_rev'), 'third_party/angle': # needed by the gpu process From('chromium_deps', 'src/third_party/angle'), 'third_party/ffmpeg': # needed by webkit/media diff --git a/WebKit/chromium/WebKit.gyp b/WebKit/chromium/WebKit.gyp index 8143049..8abc159 100644 --- a/WebKit/chromium/WebKit.gyp +++ b/WebKit/chromium/WebKit.gyp @@ -1,5 +1,5 @@ # -# Copyright (C) 2009 Google Inc. All rights reserved. +# 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 @@ -30,8 +30,10 @@ { 'includes': [ - 'features.gypi', + '../../WebCore/WebCore.gypi', '../../WebKitTools/DumpRenderTree/DumpRenderTree.gypi', + 'WebKit.gypi', + 'features.gypi', ], 'variables': { 'webkit_target_type': 'static_library', @@ -42,12 +44,42 @@ # Webkit is being built outside of the full chromium project. # e.g. via build-webkit --chromium 'chromium_src_dir': '../../WebKit/chromium', + + # 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)', + '../../WebKit/chromium/v8/tools/codemap.js', + '../../WebKit/chromium/v8/tools/consarray.js', + '../../WebKit/chromium/v8/tools/csvparser.js', + '../../WebKit/chromium/v8/tools/logreader.js', + '../../WebKit/chromium/v8/tools/profile.js', + '../../WebKit/chromium/v8/tools/profile_view.js', + '../../WebKit/chromium/v8/tools/splaytree.js', + '<@(devtools_js_files)', + ], },{ # WebKit is checked out in src/chromium/third_party/WebKit 'chromium_src_dir': '../../../..', + + 'devtools_files': [ + '<@(devtools_css_files)', + '../../../../v8/tools/codemap.js', + '../../../../v8/tools/consarray.js', + '../../../../v8/tools/csvparser.js', + '../../../../v8/tools/logreader.js', + '../../../../v8/tools/profile.js', + '../../../../v8/tools/profile_view.js', + '../../../../v8/tools/splaytree.js', + '<@(devtools_js_files)', + ], }], ], 'ahem_path': '../../WebKitTools/DumpRenderTree/qt/fonts/AHEM____.TTF', + + # If debug_devtools is set to 1, JavaScript files for DevTools are + # stored as is. Otherwise, a concatenated file is stored. + 'debug_devtools%': 0, }, 'targets': [ { @@ -67,7 +99,7 @@ 'src', ], 'defines': [ - 'WEBKIT_IMPLEMENTATION', + 'WEBKIT_IMPLEMENTATION=1', ], 'sources': [ 'public/gtk/WebInputEventFactory.h', @@ -150,6 +182,7 @@ 'public/WebKitClient.h', 'public/WebLabelElement.h', 'public/WebLocalizedString.h', + 'public/WebMediaElement.h', 'public/WebMediaPlayer.h', 'public/WebMediaPlayerAction.h', 'public/WebMediaPlayerClient.h', @@ -166,6 +199,7 @@ 'public/WebNotification.h', 'public/WebNotificationPresenter.h', 'public/WebNotificationPermissionCallback.h', + 'public/WebOptionElement.h', 'public/WebPageSerializer.h', 'public/WebPageSerializerClient.h', 'public/WebPasswordAutocompleteListener.h', @@ -268,6 +302,8 @@ 'src/FrameLoaderClientImpl.cpp', 'src/FrameLoaderClientImpl.h', 'src/GLES2Context.cpp', + 'src/GLES2ContextInternal.cpp', + 'src/GLES2ContextInternal.h', 'src/gtk/WebFontInfo.cpp', 'src/gtk/WebFontInfo.h', 'src/gtk/WebInputEventFactory.cpp', @@ -380,6 +416,7 @@ 'src/WebInputEventConversion.h', 'src/WebKit.cpp', 'src/WebLabelElement.cpp', + 'src/WebMediaElement.cpp', 'src/WebMediaPlayerClientImpl.cpp', 'src/WebMediaPlayerClientImpl.h', 'src/WebMutationEvent.cpp', @@ -387,6 +424,7 @@ 'src/WebNodeCollection.cpp', 'src/WebNodeList.cpp', 'src/WebNotification.cpp', + 'src/WebOptionElement.cpp', 'src/WebPageSerializer.cpp', 'src/WebPageSerializerImpl.cpp', 'src/WebPageSerializerImpl.h', @@ -452,10 +490,10 @@ ['component=="shared_library"', { 'defines': [ 'WEBKIT_DLL', - 'USING_V8_SHARED', ], 'dependencies': [ '../../WebCore/WebCore.gyp/WebCore.gyp:webcore_bindings', + '<(chromium_src_dir)/build/temp_gyp/googleurl.gyp:googleurl', '<(chromium_src_dir)/gpu/gpu.gyp:gles2_c_lib', '<(chromium_src_dir)/third_party/icu/icu.gyp:*', '<(chromium_src_dir)/third_party/libjpeg/libjpeg.gyp:libjpeg', @@ -468,6 +506,15 @@ '<(chromium_src_dir)/third_party/zlib/zlib.gyp:zlib', '<(chromium_src_dir)/v8/tools/gyp/v8.gyp:v8', ], + 'direct_dependent_settings': { + 'defines': [ + 'WEBKIT_DLL', + ], + }, + 'export_dependent_settings': [ + '<(chromium_src_dir)/build/temp_gyp/googleurl.gyp:googleurl', + '<(chromium_src_dir)/v8/tools/gyp/v8.gyp:v8', + ], }], ], }, { @@ -541,6 +588,79 @@ }], ], }, + + { + 'target_name': 'inspector_resources', + 'type': 'none', + 'dependencies': ['devtools_html'], + 'conditions': [ + ['debug_devtools==0', { + 'dependencies': ['concatenated_devtools_js'], + }], + ], + 'copies': [ + { + 'destination': '<(PRODUCT_DIR)/resources/inspector', + 'files': [ + '<@(devtools_files)', + '<@(webinspector_files)', + ], + 'conditions': [ + ['debug_devtools==0', { + 'files/': [['exclude', '\\.js$']], + }], + ], + }, + { + 'destination': '<(PRODUCT_DIR)/resources/inspector/Images', + 'files': [ + '<@(webinspector_image_files)', + '<@(devtools_image_files)', + ], + }, + ], + }, + { + 'target_name': 'devtools_html', + 'type': 'none', + 'sources': ['<(PRODUCT_DIR)/resources/inspector/devtools.html'], + 'actions': [{ + 'action_name': 'devtools_html', + 'inputs': [ + '<(chromium_src_dir)/webkit/build/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)', '<@(devtools_files)'], + }], + }, + { + 'target_name': 'concatenated_devtools_js', + 'type': 'none', + 'dependencies': ['devtools_html'], + 'sources': ['<(PRODUCT_DIR)/resources/inspector/DevTools.js'], + 'actions': [{ + 'action_name': 'concatenate_devtools_js', + 'script_name': '<(chromium_src_dir)/webkit/build/concatenate_js_files.py', + 'input_page': '<(PRODUCT_DIR)/resources/inspector/devtools.html', + 'inputs': [ + '<@(_script_name)', + '<@(_input_page)', + '<@(webinspector_files)', + '<@(devtools_files)', + ], + 'search_path': [ + '../../WebCore/inspector/front-end', + 'src/js', + '<(chromium_src_dir)/v8/tools', + ], + 'outputs': ['<(PRODUCT_DIR)/resources/inspector/DevTools.js'], + 'action': ['python', '<@(_script_name)', '<@(_input_page)', '<@(_search_path)', '<@(_outputs)'], + }], + }, + { 'target_name': 'webkit_unit_tests', 'conditions': [ @@ -609,10 +729,11 @@ 'mac_bundle': 1, 'dependencies': [ 'ImageDiff', + 'inspector_resources', 'webkit', '../../JavaScriptCore/JavaScriptCore.gyp/JavaScriptCore.gyp:wtf_config', '<(chromium_src_dir)/third_party/icu/icu.gyp:icuuc', - '<(chromium_src_dir)/webkit/support/webkit_support.gyp:npapi_layout_test_plugin', + '<(chromium_src_dir)/webkit/support/webkit_support.gyp:copy_npapi_layout_test_plugin', '<(chromium_src_dir)/webkit/support/webkit_support.gyp:webkit_support', '<(chromium_src_dir)/gpu/gpu.gyp:gles2_c_lib' ], @@ -658,16 +779,6 @@ 'copies': [{ 'destination': '<(PRODUCT_DIR)', 'files': ['<(ahem_path)'], - }, { - # This should really be done in the 'npapi_layout_test_plugin' - # target, but the current VS generator handles 'copies' - # settings as AdditionalDependencies, which means that - # when it's over there, it tries to do the copy *before* - # the file is built, instead of after. We work around this - # by attaching the copy here, since it depends on that - # target. - 'destination': '<(PRODUCT_DIR)/plugins', - 'files': ['<(PRODUCT_DIR)/npapi_layout_test_plugin.dll'], }], },{ # OS!="win" 'sources/': [ @@ -712,10 +823,6 @@ '../../WebKitTools/DumpRenderTree/fonts/WebKitWeightWatcher900.ttf', '<(SHARED_INTERMEDIATE_DIR)/webkit/textAreaResizeCorner.png', ], - 'copies': [{ - 'destination': '<(PRODUCT_DIR)/DumpRenderTree.app/Contents/PlugIns/', - 'files': ['<(PRODUCT_DIR)/TestNetscapePlugIn.plugin/'], - }], },{ # OS!="mac" 'sources/': [ # .mm is already excluded by common.gypi @@ -730,9 +837,6 @@ '../../WebKitTools/DumpRenderTree/chromium/fonts.conf', '<(INTERMEDIATE_DIR)/repack/DumpRenderTree.pak', ] - }, { - 'destination': '<(PRODUCT_DIR)/plugins', - 'files': ['<(PRODUCT_DIR)/libnpapi_layout_test_plugin.so'], }], },{ # OS!="linux" and OS!="freebsd" and OS!="openbsd" and OS!="solaris" 'sources/': [ diff --git a/WebKit/chromium/WebKit.gypi b/WebKit/chromium/WebKit.gypi index 69b1479..7d7b19c 100644 --- a/WebKit/chromium/WebKit.gypi +++ b/WebKit/chromium/WebKit.gypi @@ -34,7 +34,6 @@ # for copying them to resource dir, and for generating 'devtools.html' file. 'devtools_js_files': [ 'src/js/InspectorControllerImpl.js', - 'src/js/DebuggerAgent.js', 'src/js/ProfilerAgent.js', 'src/js/ProfilerProcessor.js', 'src/js/HeapProfilerPanel.js', diff --git a/WebKit/chromium/features.gypi b/WebKit/chromium/features.gypi index a280f4f..eadce7e 100644 --- a/WebKit/chromium/features.gypi +++ b/WebKit/chromium/features.gypi @@ -76,7 +76,7 @@ 'ENABLE_TOUCH_EVENTS=1', 'ENABLE_VIDEO=1', 'ENABLE_WEB_SOCKETS=1', - 'ENABLE_WEB_TIMING=0', + 'ENABLE_WEB_TIMING=1', 'ENABLE_WORKERS=1', 'ENABLE_XHTMLMP=0', 'ENABLE_XPATH=1', diff --git a/WebKit/chromium/public/WebApplicationCacheHost.h b/WebKit/chromium/public/WebApplicationCacheHost.h index 23be4dd..acbc106 100644 --- a/WebKit/chromium/public/WebApplicationCacheHost.h +++ b/WebKit/chromium/public/WebApplicationCacheHost.h @@ -32,6 +32,8 @@ #define WebApplicationCacheHost_h #include "WebCommon.h" +#include "WebURL.h" +#include "WebVector.h" namespace WebKit { @@ -71,24 +73,46 @@ public: virtual ~WebApplicationCacheHost() { } // Called for every request made within the context. - virtual void willStartMainResourceRequest(WebURLRequest&) = 0; - virtual void willStartSubResourceRequest(WebURLRequest&) = 0; + virtual void willStartMainResourceRequest(WebURLRequest&) { } + virtual void willStartSubResourceRequest(WebURLRequest&) { } // 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. - virtual void selectCacheWithoutManifest() = 0; - virtual bool selectCacheWithManifest(const WebURL& manifestURL) = 0; + virtual void selectCacheWithoutManifest() { } + virtual bool selectCacheWithManifest(const WebURL& manifestURL) { return true; } // Called as the main resource is retrieved. - virtual void didReceiveResponseForMainResource(const WebURLResponse&) = 0; - virtual void didReceiveDataForMainResource(const char* data, int len) = 0; - virtual void didFinishLoadingMainResource(bool success) = 0; + virtual void didReceiveResponseForMainResource(const WebURLResponse&) { } + virtual void didReceiveDataForMainResource(const char* data, int len) { } + virtual void didFinishLoadingMainResource(bool success) { } // Called on behalf of the scriptable interface. - virtual Status status() = 0; - virtual bool startUpdate() = 0; - virtual bool swapCache() = 0; + virtual Status status() { return Uncached; } + virtual bool startUpdate() { return false; } + virtual bool swapCache() { return false; } + + // Structures and methods to support inspecting Application Caches. + struct CacheInfo { + WebURL manifestURL; // Empty if there is no associated cache. + double creationTime; + double updateTime; + long long totalSize; + CacheInfo() : creationTime(0), updateTime(0), totalSize(0) { } + }; + struct ResourceInfo { + WebURL url; + long long size; + bool isMaster; + bool isManifest; + bool isExplicit; + bool isForeign; + bool isFallback; + ResourceInfo() : size(0), isMaster(false), isManifest(false), isExplicit(false), isForeign(false), isFallback(false) { } + }; + virtual void getAssociatedCacheInfo(CacheInfo*) { } + virtual void getResourceList(WebVector<ResourceInfo>*) { } + virtual void deleteAssociatedCacheGroup() { } }; } // namespace WebKit diff --git a/WebKit/chromium/public/WebApplicationCacheHostClient.h b/WebKit/chromium/public/WebApplicationCacheHostClient.h index 39b7fa2..3f84c51 100644 --- a/WebKit/chromium/public/WebApplicationCacheHostClient.h +++ b/WebKit/chromium/public/WebApplicationCacheHostClient.h @@ -39,6 +39,9 @@ namespace WebKit { // This interface is used by the embedder to call into webkit. class WebApplicationCacheHostClient { public: + // Called when a different cache, including possibly no cache, is associated with the host. + virtual void didChangeCacheAssociation() = 0; + // Called to fire events in the scriptable interface. virtual void notifyEventListener(WebApplicationCacheHost::EventID) = 0; virtual void notifyProgressEventListener(const WebURL&, int num_total, int num_complete) = 0; diff --git a/WebKit/chromium/public/WebCommon.h b/WebKit/chromium/public/WebCommon.h index 5f441b7..2bfa17d 100644 --- a/WebKit/chromium/public/WebCommon.h +++ b/WebKit/chromium/public/WebCommon.h @@ -66,7 +66,7 @@ // Exported symbols need to be annotated with WEBKIT_API #if defined(WIN32) && defined(WEBKIT_DLL) - #if defined(WEBKIT_IMPLEMENTATION) + #if WEBKIT_IMPLEMENTATION #define WEBKIT_API __declspec(dllexport) #else #define WEBKIT_API __declspec(dllimport) diff --git a/WebKit/chromium/public/WebFileChooserParams.h b/WebKit/chromium/public/WebFileChooserParams.h index 6359f14..2a30944 100644 --- a/WebKit/chromium/public/WebFileChooserParams.h +++ b/WebKit/chromium/public/WebFileChooserParams.h @@ -40,6 +40,8 @@ namespace WebKit { struct WebFileChooserParams { // If |multiSelect| is true, the dialog allow to select multiple files. bool multiSelect; + // If |directory| is true, the dialog allows the user to select a directory. + bool directory; // |title| is a title of a file chooser dialog. It can be an empty string. WebString title; // |initialValue| is a filename which the dialog should select by default. diff --git a/WebKit/chromium/public/WebFormElement.h b/WebKit/chromium/public/WebFormElement.h index 6a0b24e..2b4ee53 100644 --- a/WebKit/chromium/public/WebFormElement.h +++ b/WebKit/chromium/public/WebFormElement.h @@ -63,6 +63,7 @@ namespace WebKit { WEBKIT_API WebString action() const; WEBKIT_API WebString name() const; WEBKIT_API WebString method() const; + WEBKIT_API bool wasUserSubmitted() const; WEBKIT_API void submit(); // FIXME: Deprecate and replace with WebVector<WebElement>. WEBKIT_API void getNamedElements(const WebString&, WebVector<WebNode>&); diff --git a/WebKit/chromium/public/WebIDBDatabaseError.h b/WebKit/chromium/public/WebIDBDatabaseError.h index 255d175..a237d5f 100644 --- a/WebKit/chromium/public/WebIDBDatabaseError.h +++ b/WebKit/chromium/public/WebIDBDatabaseError.h @@ -40,7 +40,7 @@ namespace WebKit { // See comment in WebIndexedDatabase for a high level overview these classes. class WebIDBDatabaseError { public: - WEBKIT_API ~WebIDBDatabaseError(); + ~WebIDBDatabaseError() { reset(); } WEBKIT_API WebIDBDatabaseError(unsigned short code, const WebString& message) { assign(code, message); } WEBKIT_API WebIDBDatabaseError(const WebIDBDatabaseError& e) { assign(e); } @@ -51,6 +51,7 @@ public: } WEBKIT_API void assign(const WebIDBDatabaseError&); + WEBKIT_API void reset(); WEBKIT_API unsigned short code() const; WEBKIT_API WebString message() const; diff --git a/WebKit/chromium/public/WebIDBKey.h b/WebKit/chromium/public/WebIDBKey.h index 876928a..1cf336d 100644 --- a/WebKit/chromium/public/WebIDBKey.h +++ b/WebKit/chromium/public/WebIDBKey.h @@ -36,7 +36,7 @@ namespace WebKit { class WebIDBKey { public: - ~WebIDBKey(); + ~WebIDBKey() { reset(); } WEBKIT_API static WebIDBKey createNull(); WEBKIT_API static WebIDBKey createInvalid(); @@ -55,6 +55,7 @@ public: WEBKIT_API void assign(const WebString&); WEBKIT_API void assign(int32_t); WEBKIT_API void assignInvalid(); + WEBKIT_API void reset(); enum Type { NullType = 0, diff --git a/WebKit/chromium/public/WebMediaElement.h b/WebKit/chromium/public/WebMediaElement.h new file mode 100644 index 0000000..94837a5 --- /dev/null +++ b/WebKit/chromium/public/WebMediaElement.h @@ -0,0 +1,56 @@ +/* + * 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 WebMediaElement_h +#define WebMediaElement_h + +#include "WebElement.h" + +#if WEBKIT_IMPLEMENTATION +namespace WebCore { class HTMLMediaElement; } +#endif + +namespace WebKit { + +class WebMediaPlayer; + +class WebMediaElement : public WebElement { +public: + WEBKIT_API WebMediaPlayer* player() const; + +#if WEBKIT_IMPLEMENTATION + WebMediaElement(const WTF::PassRefPtr<WebCore::HTMLMediaElement>&); + WebMediaElement& operator=(const WTF::PassRefPtr<WebCore::HTMLMediaElement>&); + operator WTF::PassRefPtr<WebCore::HTMLMediaElement>() const; +#endif +}; +} // namespace WebKit + +#endif // WebMediaElement_h diff --git a/WebKit/chromium/public/WebOptionElement.h b/WebKit/chromium/public/WebOptionElement.h new file mode 100644 index 0000000..1689a57 --- /dev/null +++ b/WebKit/chromium/public/WebOptionElement.h @@ -0,0 +1,75 @@ +/* + * 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 WebOptionElement_h +#define WebOptionElement_h + +#include "WebFormControlElement.h" +#include "WebVector.h" + +#if WEBKIT_IMPLEMENTATION +namespace WebCore { class HTMLOptionElement; } +#endif + +namespace WebKit { + +// Provides readonly access to some properties of a DOM option element node. +class WebOptionElement : public WebFormControlElement { +public: + WebOptionElement() : WebFormControlElement() { } + WebOptionElement(const WebOptionElement& e) : WebFormControlElement(e) { } + + WebOptionElement& operator=(const WebOptionElement& e) + { + WebFormControlElement::assign(e); + return *this; + } + WEBKIT_API void assign(const WebOptionElement& e) { WebFormControlElement::assign(e); } + + WEBKIT_API void setValue(const WebString&); + WEBKIT_API WebString value() const; + + WEBKIT_API int index() const; + WEBKIT_API WebString text() const; + WEBKIT_API bool defaultSelected() const; + WEBKIT_API void setDefaultSelected(bool); + WEBKIT_API WebString label() const; + WEBKIT_API bool isEnabled() const; + +#if WEBKIT_IMPLEMENTATION + WebOptionElement(const WTF::PassRefPtr<WebCore::HTMLOptionElement>&); + WebOptionElement& operator=(const WTF::PassRefPtr<WebCore::HTMLOptionElement>&); + operator WTF::PassRefPtr<WebCore::HTMLOptionElement>() const; +#endif +}; + +} // namespace WebKit + +#endif diff --git a/WebKit/chromium/public/WebPlugin.h b/WebKit/chromium/public/WebPlugin.h index 8e1c946..816d38b 100644 --- a/WebKit/chromium/public/WebPlugin.h +++ b/WebKit/chromium/public/WebPlugin.h @@ -50,9 +50,6 @@ struct WebRect; struct WebURLError; template <typename T> class WebVector; -// FIXME: remove once the chromium is updated. -#define WEBPLUGIN_FIND_HAS_RETURN_TYPE - class WebPlugin { public: virtual bool initialize(WebPluginContainer*) = 0; diff --git a/WebKit/chromium/public/WebRuntimeFeatures.h b/WebKit/chromium/public/WebRuntimeFeatures.h index 03ff681..95307a2 100644 --- a/WebKit/chromium/public/WebRuntimeFeatures.h +++ b/WebKit/chromium/public/WebRuntimeFeatures.h @@ -77,6 +77,9 @@ public: WEBKIT_API static void enableTouch(bool); WEBKIT_API static bool isTouchEnabled(); + WEBKIT_API static void enableDeviceOrientation(bool); + WEBKIT_API static bool isDeviceOrientationEnabled(); + private: WebRuntimeFeatures(); }; diff --git a/WebKit/chromium/public/WebSelectElement.h b/WebKit/chromium/public/WebSelectElement.h index 7bd755b..3e7f5e2 100644 --- a/WebKit/chromium/public/WebSelectElement.h +++ b/WebKit/chromium/public/WebSelectElement.h @@ -32,6 +32,8 @@ #define WebSelectElement_h #include "WebFormControlElement.h" +#include "WebOptionElement.h" +#include "WebVector.h" #if WEBKIT_IMPLEMENTATION namespace WebCore { class HTMLSelectElement; } @@ -45,11 +47,16 @@ public: WebSelectElement() : WebFormControlElement() { } WebSelectElement(const WebSelectElement& e) : WebFormControlElement(e) { } - WebSelectElement& operator=(const WebSelectElement& e) { WebFormControlElement::assign(e); return *this; } + WebSelectElement& operator=(const WebSelectElement& e) + { + WebFormControlElement::assign(e); + return *this; + } WEBKIT_API void assign(const WebSelectElement& e) { WebFormControlElement::assign(e); } WEBKIT_API void setValue(const WebString&); WEBKIT_API WebString value(); + WEBKIT_API WebVector<WebElement> listItems(); #if WEBKIT_IMPLEMENTATION WebSelectElement(const WTF::PassRefPtr<WebCore::HTMLSelectElement>&); diff --git a/WebKit/chromium/public/WebSettings.h b/WebKit/chromium/public/WebSettings.h index de895e1..32cefa1 100644 --- a/WebKit/chromium/public/WebSettings.h +++ b/WebKit/chromium/public/WebSettings.h @@ -92,6 +92,7 @@ public: virtual void setEditingBehavior(EditingBehavior) = 0; virtual void setAcceleratedCompositingEnabled(bool) = 0; virtual void setHTML5ParserEnabled(bool) = 0; + virtual void setMemoryInfoEnabled(bool) = 0; protected: ~WebSettings() { } diff --git a/WebKit/chromium/public/WebThemeEngine.h b/WebKit/chromium/public/WebThemeEngine.h index 9638c2f..ab59fa2 100644 --- a/WebKit/chromium/public/WebThemeEngine.h +++ b/WebKit/chromium/public/WebThemeEngine.h @@ -68,6 +68,10 @@ public: WebCanvas*, int part, int state, int classicState, const WebRect&, const WebRect& alignRect) = 0; + virtual void paintSpinButton( + WebCanvas*, int part, int state, int classicState, + const WebRect&) {} + virtual void paintTextField( WebCanvas*, int part, int state, int classicState, const WebRect&, WebColor, bool fillContentArea, bool drawEdges) = 0; diff --git a/WebKit/chromium/public/WebURLLoaderClient.h b/WebKit/chromium/public/WebURLLoaderClient.h index a66b153..c716e5d 100644 --- a/WebKit/chromium/public/WebURLLoaderClient.h +++ b/WebKit/chromium/public/WebURLLoaderClient.h @@ -43,27 +43,31 @@ public: // Called when following a redirect. |newRequest| contains the request // generated by the redirect. The client may modify |newRequest|. virtual void willSendRequest( - WebURLLoader*, WebURLRequest& newRequest, const WebURLResponse& redirectResponse) = 0; + WebURLLoader*, WebURLRequest& newRequest, const WebURLResponse& redirectResponse) { } // Called to report upload progress. The bytes reported correspond to // the HTTP message body. virtual void didSendData( - WebURLLoader*, unsigned long long bytesSent, unsigned long long totalBytesToBeSent) = 0; + WebURLLoader*, unsigned long long bytesSent, unsigned long long totalBytesToBeSent) { } // Called when response headers are received. - virtual void didReceiveResponse(WebURLLoader*, const WebURLResponse&) = 0; + virtual void didReceiveResponse(WebURLLoader*, const WebURLResponse&) { } + + // Called when a chunk of response data is downloaded. This is only called + // if WebURLRequest's downloadToFile flag was set to true. + virtual void didDownloadData(WebURLLoader*, int dataLength) { } // Called when a chunk of response data is received. - virtual void didReceiveData(WebURLLoader*, const char* data, int dataLength) = 0; + virtual void didReceiveData(WebURLLoader*, const char* data, int dataLength) { } // Called when a chunk of renderer-generated metadata is received from the cache. virtual void didReceiveCachedMetadata(WebURLLoader*, const char* data, int dataLength) { } // Called when the load completes successfully. - virtual void didFinishLoading(WebURLLoader*) = 0; + virtual void didFinishLoading(WebURLLoader*) { } // Called when the load completes with an error. - virtual void didFail(WebURLLoader*, const WebURLError&) = 0; + virtual void didFail(WebURLLoader*, const WebURLError&) { } protected: ~WebURLLoaderClient() { } diff --git a/WebKit/chromium/public/WebURLRequest.h b/WebKit/chromium/public/WebURLRequest.h index b60d5be..36d6791 100644 --- a/WebKit/chromium/public/WebURLRequest.h +++ b/WebKit/chromium/public/WebURLRequest.h @@ -151,6 +151,11 @@ public: WEBKIT_API int appCacheHostID() const; WEBKIT_API void setAppCacheHostID(int id); + // If true, the response body will be downloaded to a file managed by the + // WebURLLoader. See WebURLResponse::downloadedFilePath. + WEBKIT_API bool downloadToFile() const; + WEBKIT_API void setDownloadToFile(bool); + #if defined(WEBKIT_IMPLEMENTATION) WebCore::ResourceRequest& toMutableResourceRequest(); const WebCore::ResourceRequest& toResourceRequest() const; diff --git a/WebKit/chromium/public/WebURLResponse.h b/WebKit/chromium/public/WebURLResponse.h index 2aa603d..ac75d4c 100644 --- a/WebKit/chromium/public/WebURLResponse.h +++ b/WebKit/chromium/public/WebURLResponse.h @@ -76,6 +76,9 @@ public: WEBKIT_API unsigned connectionID() const; WEBKIT_API void setConnectionID(unsigned); + WEBKIT_API bool connectionReused() const; + WEBKIT_API void setConnectionReused(bool); + WEBKIT_API WebURLLoadTiming loadTiming(); WEBKIT_API void setLoadTiming(const WebURLLoadTiming&); @@ -155,6 +158,12 @@ public: WEBKIT_API bool isMultipartPayload() const; WEBKIT_API void setIsMultipartPayload(bool); + // This indicates the location of a downloaded response if the + // WebURLRequest had the downloadToFile flag set to true. This file path + // remains valid for the lifetime of the WebURLLoader used to create it. + WEBKIT_API WebString downloadFilePath() const; + WEBKIT_API void setDownloadFilePath(const WebString&); + protected: void assign(WebURLResponsePrivate*); diff --git a/WebKit/chromium/public/WebView.h b/WebKit/chromium/public/WebView.h index a8f5387..26d7269 100644 --- a/WebKit/chromium/public/WebView.h +++ b/WebKit/chromium/public/WebView.h @@ -248,11 +248,21 @@ public: // AutoFill ----------------------------------------------------------- + // DEPRECATED. + virtual void applyAutoFillSuggestions( + const WebNode&, + const WebVector<WebString>& names, + const WebVector<WebString>& labels, + int separatorIndex) = 0; + // Notifies the WebView that AutoFill suggestions are available for a node. + // |uniqueIDs| is a vector of IDs that represent the unique ID of each + // AutoFill profile in the suggestions popup. virtual void applyAutoFillSuggestions( const WebNode&, const WebVector<WebString>& names, const WebVector<WebString>& labels, + const WebVector<int>& uniqueIDs, int separatorIndex) = 0; // Notifies the WebView that Autocomplete suggestions are available for a diff --git a/WebKit/chromium/public/WebViewClient.h b/WebKit/chromium/public/WebViewClient.h index f21d262..11fb233 100644 --- a/WebKit/chromium/public/WebViewClient.h +++ b/WebKit/chromium/public/WebViewClient.h @@ -307,6 +307,7 @@ public: virtual void didAcceptAutoFillSuggestion(const WebNode&, const WebString& name, const WebString& label, + int uniqueID, unsigned index) { } // Informs the browser that the user has selected an AutoFill suggestion for @@ -314,10 +315,11 @@ public: // the arrow keys to navigate to a suggestion. virtual void didSelectAutoFillSuggestion(const WebNode&, const WebString& name, - const WebString& label) { } + const WebString& label, + int uniqueID) { } // Informs the browser that the user has cleared the selection from the - // AutoFill suggestions dropdown. This happens when a user uses the arrow + // AutoFill suggestions popup. This happens when a user uses the arrow // keys to navigate outside the range of possible selections. virtual void didClearAutoFillSelection(const WebNode&) { } diff --git a/WebKit/chromium/src/ApplicationCacheHostInternal.h b/WebKit/chromium/src/ApplicationCacheHostInternal.h index 902b9b5..c88420b 100644 --- a/WebKit/chromium/src/ApplicationCacheHostInternal.h +++ b/WebKit/chromium/src/ApplicationCacheHostInternal.h @@ -53,6 +53,11 @@ public: m_outerHost.set(webFrame->client()->createApplicationCacheHost(webFrame, this)); } + virtual void didChangeCacheAssociation() + { + // FIXME: Prod the inspector to update it's notion of what cache the page is using. + } + virtual void notifyEventListener(WebKit::WebApplicationCacheHost::EventID eventID) { m_innerHost->notifyDOMApplicationCache(static_cast<ApplicationCacheHost::EventID>(eventID), 0, 0); diff --git a/WebKit/chromium/src/AutoFillPopupMenuClient.cpp b/WebKit/chromium/src/AutoFillPopupMenuClient.cpp index 1294561..6b74f60 100644 --- a/WebKit/chromium/src/AutoFillPopupMenuClient.cpp +++ b/WebKit/chromium/src/AutoFillPopupMenuClient.cpp @@ -66,28 +66,47 @@ unsigned AutoFillPopupMenuClient::getSuggestionsCount() const WebString AutoFillPopupMenuClient::getSuggestion(unsigned listIndex) const { - if (listIndex == static_cast<unsigned>(m_separatorIndex)) + int index = convertListIndexToInternalIndex(listIndex); + if (index == -1) return WebString(); - if (m_separatorIndex != -1 && listIndex > static_cast<unsigned>(m_separatorIndex)) - --listIndex; - - // FIXME: Modify the PopupMenu to add the label in gray right-justified. - ASSERT(listIndex < m_names.size()); + ASSERT(index >= 0 && static_cast<size_t>(index) < m_names.size()); + return m_names[index]; +} - WebString suggestion = m_names[listIndex]; - if (m_labels[listIndex].isEmpty()) - return suggestion; +WebString AutoFillPopupMenuClient::getLabel(unsigned listIndex) const +{ + int index = convertListIndexToInternalIndex(listIndex); + if (index == -1) + return WebString(); - return suggestion + String(" (") + m_labels[listIndex] + String(")"); + ASSERT(index >= 0 && static_cast<size_t>(index) < m_labels.size()); + return m_labels[index]; } void AutoFillPopupMenuClient::removeSuggestionAtIndex(unsigned listIndex) { - // FIXME: Do we want to remove AutoFill suggestions? - ASSERT(listIndex < m_names.size()); - m_names.remove(listIndex); - m_labels.remove(listIndex); + if (!canRemoveSuggestionAtIndex(listIndex)) + return; + + int index = convertListIndexToInternalIndex(listIndex); + + ASSERT(static_cast<unsigned>(index) < m_names.size()); + + m_names.remove(index); + m_labels.remove(index); + + // Shift the separator index if necessary. + if (m_separatorIndex != -1) + m_separatorIndex--; +} + +bool AutoFillPopupMenuClient::canRemoveSuggestionAtIndex(unsigned listIndex) +{ + // Only allow deletion of items before the separator and those that don't + // have a label (autocomplete). + int index = convertListIndexToInternalIndex(listIndex); + return m_labels[index].isEmpty() && (m_separatorIndex == -1 || listIndex < static_cast<unsigned>(m_separatorIndex)); } void AutoFillPopupMenuClient::valueChanged(unsigned listIndex, bool fireEvents) @@ -119,6 +138,7 @@ void AutoFillPopupMenuClient::valueChanged(unsigned listIndex, bool fireEvents) webView->client()->didAcceptAutoFillSuggestion(WebNode(getTextField()), m_names[listIndex], m_labels[listIndex], + m_uniqueIDs[listIndex], listIndex); } } @@ -136,13 +156,15 @@ void AutoFillPopupMenuClient::selectionChanged(unsigned listIndex, bool fireEven webView->client()->didSelectAutoFillSuggestion(WebNode(getTextField()), m_names[listIndex], - m_labels[listIndex]); + m_labels[listIndex], + m_uniqueIDs[listIndex]); } void AutoFillPopupMenuClient::selectionCleared() { - // Same effect desired as popupDidHide, so call through. - popupDidHide(); + WebViewImpl* webView = getWebView(); + if (webView) + webView->client()->didClearAutoFillSelection(WebNode(getTextField())); } String AutoFillPopupMenuClient::itemText(unsigned listIndex) const @@ -150,6 +172,11 @@ String AutoFillPopupMenuClient::itemText(unsigned listIndex) const return getSuggestion(listIndex); } +String AutoFillPopupMenuClient::itemLabel(unsigned listIndex) const +{ + return getLabel(listIndex); +} + PopupMenuStyle AutoFillPopupMenuClient::itemStyle(unsigned listIndex) const { return *m_style; @@ -222,9 +249,11 @@ void AutoFillPopupMenuClient::initialize( HTMLInputElement* textField, const WebVector<WebString>& names, const WebVector<WebString>& labels, + const WebVector<int>& uniqueIDs, int separatorIndex) { ASSERT(names.size() == labels.size()); + ASSERT(names.size() == uniqueIDs.size()); ASSERT(separatorIndex < static_cast<int>(names.size())); m_selectedIndex = -1; @@ -232,7 +261,7 @@ void AutoFillPopupMenuClient::initialize( // The suggestions must be set before initializing the // AutoFillPopupMenuClient. - setSuggestions(names, labels, separatorIndex); + setSuggestions(names, labels, uniqueIDs, separatorIndex); FontDescription fontDescription; RenderTheme::defaultTheme()->systemFont(CSSValueWebkitControl, @@ -251,16 +280,20 @@ void AutoFillPopupMenuClient::initialize( void AutoFillPopupMenuClient::setSuggestions(const WebVector<WebString>& names, const WebVector<WebString>& labels, + const WebVector<int>& uniqueIDs, int separatorIndex) { ASSERT(names.size() == labels.size()); + ASSERT(names.size() == uniqueIDs.size()); ASSERT(separatorIndex < static_cast<int>(names.size())); m_names.clear(); m_labels.clear(); + m_uniqueIDs.clear(); for (size_t i = 0; i < names.size(); ++i) { m_names.append(names[i]); m_labels.append(labels[i]); + m_uniqueIDs.append(uniqueIDs[i]); } m_separatorIndex = separatorIndex; @@ -270,6 +303,16 @@ void AutoFillPopupMenuClient::setSuggestions(const WebVector<WebString>& names, setSelectedIndex(-1); } +int AutoFillPopupMenuClient::convertListIndexToInternalIndex(unsigned listIndex) const +{ + if (listIndex == static_cast<unsigned>(m_separatorIndex)) + return -1; + + if (m_separatorIndex == -1 || listIndex < static_cast<unsigned>(m_separatorIndex)) + return listIndex; + return listIndex - 1; +} + WebViewImpl* AutoFillPopupMenuClient::getWebView() const { Frame* frame = m_textField->document()->frame(); @@ -288,7 +331,7 @@ RenderStyle* AutoFillPopupMenuClient::textFieldStyle() const RenderStyle* style = m_textField->computedStyle(); if (!style) { // It seems we can only have a 0 style in a TextField if the - // node is detached, in which case we the popup shoud not be + // node is detached, in which case we the popup should not be // showing. Please report this in http://crbug.com/7708 and // include the page you were visiting. ASSERT_NOT_REACHED(); diff --git a/WebKit/chromium/src/AutoFillPopupMenuClient.h b/WebKit/chromium/src/AutoFillPopupMenuClient.h index a7d6693..289c8d0 100644 --- a/WebKit/chromium/src/AutoFillPopupMenuClient.h +++ b/WebKit/chromium/src/AutoFillPopupMenuClient.h @@ -57,14 +57,21 @@ public: // Returns the suggestion at |listIndex|. virtual WebString getSuggestion(unsigned listIndex) const; + // Returns the label at |listIndex|. + virtual WebString getLabel(unsigned listIndex) const; + // Removes the suggestion at |listIndex| from the list of suggestions. virtual void removeSuggestionAtIndex(unsigned listIndex); + // Returns true if the suggestion at |listIndex| can be removed. + bool canRemoveSuggestionAtIndex(unsigned listIndex); + // WebCore::PopupMenuClient methods: virtual void valueChanged(unsigned listIndex, bool fireEvents = true); virtual void selectionChanged(unsigned, bool); virtual void selectionCleared(); virtual WebCore::String itemText(unsigned listIndex) const; + virtual WebCore::String itemLabel(unsigned listIndex) const; virtual WebCore::String itemToolTip(unsigned lastIndex) const { return WebCore::String(); } virtual WebCore::String itemAccessibilityText(unsigned lastIndex) const { return WebCore::String(); } virtual bool itemIsEnabled(unsigned listIndex) const { return true; } @@ -93,10 +100,12 @@ public: void initialize(WebCore::HTMLInputElement*, const WebVector<WebString>& names, const WebVector<WebString>& labels, + const WebVector<int>& uniqueIDs, int separatorIndex); void setSuggestions(const WebVector<WebString>& names, const WebVector<WebString>& labels, + const WebVector<int>& uniqueIDs, int separatorIndex); // DEPRECATED: Will be removed once Autocomplete and AutoFill merge is @@ -104,6 +113,10 @@ public: void setAutocompleteMode(bool enabled) { m_AutocompleteModeEnabled = enabled; } private: + // Convert the specified index from an index into the visible list (which might + // include a separator entry) to an index to |m_names| and |m_labels|. + // Returns -1 if the given index points to the separator. + int convertListIndexToInternalIndex(unsigned) const; WebViewImpl* getWebView() const; WebCore::HTMLInputElement* getTextField() const { return m_textField.get(); } WebCore::RenderStyle* textFieldStyle() const; @@ -114,6 +127,7 @@ private: // The names and labels that make up the text of the menu items. Vector<WebCore::String> m_names; Vector<WebCore::String> m_labels; + Vector<int> m_uniqueIDs; // The index of the separator. -1 if there is no separator. int m_separatorIndex; diff --git a/WebKit/chromium/src/ChromeClientImpl.cpp b/WebKit/chromium/src/ChromeClientImpl.cpp index 54c81aa..d43d88a 100644 --- a/WebKit/chromium/src/ChromeClientImpl.cpp +++ b/WebKit/chromium/src/ChromeClientImpl.cpp @@ -31,8 +31,8 @@ #include "config.h" #include "ChromeClientImpl.h" -#include "AccessibilityObject.h" #include "AXObjectCache.h" +#include "AccessibilityObject.h" #include "CharacterNames.h" #include "Console.h" #include "Cursor.h" @@ -43,9 +43,9 @@ #include "FloatRect.h" #include "FrameLoadRequest.h" #include "FrameView.h" +#include "GLES2Context.h" #include "Geolocation.h" #include "GeolocationService.h" -#include "WebGeolocationService.h" #include "GeolocationServiceChromium.h" #include "GraphicsLayer.h" #include "HTMLNames.h" @@ -56,6 +56,7 @@ #include "Page.h" #include "PopupMenuChromium.h" #include "ScriptController.h" +#include "WebGeolocationService.h" #if USE(V8) #include "V8Proxy.h" #endif @@ -588,6 +589,11 @@ void ChromeClientImpl::runOpenPanel(Frame* frame, PassRefPtr<FileChooser> fileCh WebFileChooserParams params; params.multiSelect = fileChooser->allowsMultipleFiles(); +#if ENABLE(DIRECTORY_UPLOAD) + params.directory = fileChooser->allowsDirectoryUpload(); +#else + params.directory = false; +#endif params.acceptTypes = fileChooser->acceptTypes(); params.selectedFiles = fileChooser->filenames(); if (params.selectedFiles.size() > 0) @@ -728,6 +734,16 @@ void ChromeClientImpl::scheduleCompositingLayerSync() { m_webView->setRootLayerNeedsDisplay(); } + +PassOwnPtr<GLES2Context> ChromeClientImpl::getOnscreenGLES2Context() +{ + return m_webView->getOnscreenGLES2Context(); +} + +PassOwnPtr<GLES2Context> ChromeClientImpl::getOffscreenGLES2Context() +{ + return m_webView->getOffscreenGLES2Context(); +} #endif bool ChromeClientImpl::supportsFullscreenForNode(const WebCore::Node* node) diff --git a/WebKit/chromium/src/ChromeClientImpl.h b/WebKit/chromium/src/ChromeClientImpl.h index 84355c3..e824381 100644 --- a/WebKit/chromium/src/ChromeClientImpl.h +++ b/WebKit/chromium/src/ChromeClientImpl.h @@ -126,7 +126,7 @@ public: virtual void cancelGeolocationPermissionRequestForFrame(WebCore::Frame*, WebCore::Geolocation*); virtual void runOpenPanel(WebCore::Frame*, PassRefPtr<WebCore::FileChooser>); virtual void chooseIconForFiles(const Vector<WebCore::String>&, WebCore::FileChooser*); - virtual bool setCursor(WebCore::PlatformCursorHandle) { return false; } + virtual void setCursor(const WebCore::Cursor&) { } virtual void formStateDidChange(const WebCore::Node*); virtual PassOwnPtr<WebCore::HTMLParserQuirks> createHTMLParserQuirks() { return 0; } #if ENABLE(TOUCH_EVENTS) @@ -145,7 +145,11 @@ public: // Sets a flag to specify that the view needs to be updated, so we need // to do an eager layout before the drawing. virtual void scheduleCompositingLayerSync(); + + virtual PassOwnPtr<WebCore::GLES2Context> getOnscreenGLES2Context(); + virtual PassOwnPtr<WebCore::GLES2Context> getOffscreenGLES2Context(); #endif + virtual bool supportsFullscreenForNode(const WebCore::Node*); virtual void enterFullscreenForNode(WebCore::Node*); virtual void exitFullscreenForNode(WebCore::Node*); diff --git a/WebKit/chromium/src/ChromiumBridge.cpp b/WebKit/chromium/src/ChromiumBridge.cpp index 5124a7f..333020f 100644 --- a/WebKit/chromium/src/ChromiumBridge.cpp +++ b/WebKit/chromium/src/ChromiumBridge.cpp @@ -691,6 +691,14 @@ void ChromiumBridge::paintScrollbarTrack( alignRect); } +void ChromiumBridge::paintSpinButton( + GraphicsContext* gc, int part, int state, int classicState, + const IntRect& rect) +{ + webKitClient()->themeEngine()->paintSpinButton( + gc->platformContext()->canvas(), part, state, classicState, rect); +} + void ChromiumBridge::paintTextField( GraphicsContext* gc, int part, int state, int classicState, const IntRect& rect, const Color& color, bool fillContentArea, diff --git a/WebKit/chromium/src/DebuggerAgentManager.cpp b/WebKit/chromium/src/DebuggerAgentManager.cpp index 939f4ed..1cc6740 100644 --- a/WebKit/chromium/src/DebuggerAgentManager.cpp +++ b/WebKit/chromium/src/DebuggerAgentManager.cpp @@ -119,10 +119,8 @@ DebuggerAgentManager::AttachedAgentsMap* DebuggerAgentManager::s_attachedAgentsM void DebuggerAgentManager::debugAttach(DebuggerAgentImpl* debuggerAgent) { -#if ENABLE(V8_SCRIPT_DEBUG_SERVER) if (!s_exposeV8DebuggerProtocol) return; -#endif if (!s_attachedAgentsMap) { s_attachedAgentsMap = new AttachedAgentsMap(); v8::Debug::SetMessageHandler2(&DebuggerAgentManager::onV8DebugMessage); @@ -135,10 +133,8 @@ void DebuggerAgentManager::debugAttach(DebuggerAgentImpl* debuggerAgent) void DebuggerAgentManager::debugDetach(DebuggerAgentImpl* debuggerAgent) { -#if ENABLE(V8_SCRIPT_DEBUG_SERVER) if (!s_exposeV8DebuggerProtocol) return; -#endif if (!s_attachedAgentsMap) { ASSERT_NOT_REACHED(); return; diff --git a/WebKit/chromium/src/EditorClientImpl.cpp b/WebKit/chromium/src/EditorClientImpl.cpp index 4ae4934..11977b6 100644 --- a/WebKit/chromium/src/EditorClientImpl.cpp +++ b/WebKit/chromium/src/EditorClientImpl.cpp @@ -935,10 +935,14 @@ void EditorClientImpl::getGuessesForWord(const String&, notImplemented(); } -void EditorClientImpl::setInputMethodState(bool enabled) +void EditorClientImpl::willSetInputMethodState() { if (m_webView->client()) m_webView->client()->resetInputMethod(); } +void EditorClientImpl::setInputMethodState(bool) +{ +} + } // namesace WebKit diff --git a/WebKit/chromium/src/EditorClientImpl.h b/WebKit/chromium/src/EditorClientImpl.h index 006b609..549a512 100644 --- a/WebKit/chromium/src/EditorClientImpl.h +++ b/WebKit/chromium/src/EditorClientImpl.h @@ -108,6 +108,7 @@ public: virtual bool spellingUIIsShowing(); virtual void getGuessesForWord(const WebCore::String& word, WTF::Vector<WebCore::String>& guesses); + virtual void willSetInputMethodState(); virtual void setInputMethodState(bool enabled); // Shows the form autofill popup for |node| if it is an HTMLInputElement and diff --git a/WebKit/chromium/src/GLES2Context.cpp b/WebKit/chromium/src/GLES2Context.cpp index f342436..b4b4bb2 100644 --- a/WebKit/chromium/src/GLES2Context.cpp +++ b/WebKit/chromium/src/GLES2Context.cpp @@ -31,6 +31,7 @@ #include "config.h" #include "GLES2Context.h" +#include "GLES2ContextInternal.h" #include "IntSize.h" #include "WebGLES2Context.h" #include "WebKit.h" @@ -52,68 +53,23 @@ using namespace WebKit; namespace WebCore { -class GLES2ContextInternal { -public: - GLES2ContextInternal() {} - ~GLES2ContextInternal() {} - - bool initializeOnscreen(Page*); - bool initializeOffscreen(GLES2Context*); - - WebGLES2Context* getWebGLES2Context() { return m_impl; } - -private: - WebGLES2Context* m_impl; -}; - -bool GLES2ContextInternal::initializeOnscreen(Page* page) +PassOwnPtr<GLES2ContextInternal> GLES2ContextInternal::create(WebGLES2Context* impl, bool owns) { - ASSERT(page); - WebViewImpl* webView = WebViewImpl::fromPage(page); - m_impl = webView->gles2Context(); - if (!m_impl) - return false; - - return true; -} - -bool GLES2ContextInternal::initializeOffscreen(GLES2Context* parent) -{ - m_impl = webKitClient()->createGLES2Context(); - if (!m_impl) - return false; - if (!m_impl->initialize(0, parent ? parent->m_internal->m_impl : 0)) { - delete m_impl; - return false; - } - return true; + PassOwnPtr<GLES2ContextInternal> result = new GLES2ContextInternal(impl, owns); + return result; } -PassOwnPtr<GLES2Context> GLES2Context::createOnscreen(Page* page) +PassOwnPtr<GLES2Context> GLES2Context::create(PassOwnPtr<GLES2ContextInternal> internal) { - GLES2ContextInternal* internal = new GLES2ContextInternal(); - if (!internal->initializeOnscreen(page)) { - delete internal; - return 0; - } PassOwnPtr<GLES2Context> result = new GLES2Context(); - result->m_internal.set(internal); + result->m_internal = internal; return result; } -PassOwnPtr<GLES2Context> GLES2Context::createOffscreen(GLES2Context* parent) +GLES2Context::GLES2Context() { - GLES2ContextInternal* internal = new GLES2ContextInternal(); - if (!internal->initializeOffscreen(parent)) { - delete internal; - return 0; - } - PassOwnPtr<GLES2Context> result = new GLES2Context(); - result->m_internal.set(internal); - return result; } - GLES2Context::~GLES2Context() { } diff --git a/WebKit/chromium/src/GLES2ContextInternal.cpp b/WebKit/chromium/src/GLES2ContextInternal.cpp new file mode 100644 index 0000000..33eb602 --- /dev/null +++ b/WebKit/chromium/src/GLES2ContextInternal.cpp @@ -0,0 +1,52 @@ +/* + * Copyright (C) 2010 Google Inc. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are + * met: + * + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above + * copyright notice, this list of conditions and the following disclaimer + * in the documentation and/or other materials provided with the + * distribution. + * * Neither the name of Google Inc. nor the names of its + * contributors may be used to endorse or promote products derived from + * this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +#include "config.h" + +#include "GLES2ContextInternal.h" + +#include "WebGLES2Context.h" + +namespace WebCore { + +GLES2ContextInternal::GLES2ContextInternal(WebKit::WebGLES2Context* impl, bool owns) + : m_impl(impl) + , m_owns(owns) +{ +} + +GLES2ContextInternal::~GLES2ContextInternal() +{ + if (m_owns) + delete m_impl; +} + +} // namespace WebCore + diff --git a/WebKit/chromium/src/GLES2ContextInternal.h b/WebKit/chromium/src/GLES2ContextInternal.h new file mode 100644 index 0000000..4668311 --- /dev/null +++ b/WebKit/chromium/src/GLES2ContextInternal.h @@ -0,0 +1,55 @@ +/* + * Copyright (C) 2010 Google Inc. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are + * met: + * + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above + * copyright notice, this list of conditions and the following disclaimer + * in the documentation and/or other materials provided with the + * distribution. + * * Neither the name of Google Inc. nor the names of its + * contributors may be used to endorse or promote products derived from + * this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +#include <wtf/PassOwnPtr.h> + +namespace WebKit { +class WebGLES2Context; +} + +namespace WebCore { + +class GLES2ContextInternal { +public: + // If 'owns' is set to true, this GLES2ContextInternal takes ownership of the passed in WebKit::WebGLES2Context. + static PassOwnPtr<GLES2ContextInternal> create(WebKit::WebGLES2Context* impl, bool owns); + + WebKit::WebGLES2Context* getWebGLES2Context() { return m_impl; } + + ~GLES2ContextInternal(); + +private: + GLES2ContextInternal(WebKit::WebGLES2Context* impl, bool owns); + + WebKit::WebGLES2Context* m_impl; + bool m_owns; +}; + +} diff --git a/WebKit/chromium/src/GraphicsContext3D.cpp b/WebKit/chromium/src/GraphicsContext3D.cpp index 7ba0bce..fec0b20 100644 --- a/WebKit/chromium/src/GraphicsContext3D.cpp +++ b/WebKit/chromium/src/GraphicsContext3D.cpp @@ -112,6 +112,7 @@ public: void reshape(int width, int height); + void paintRenderingResultsToCanvas(WebGLRenderingContext* context); void beginPaint(WebGLRenderingContext* context); void endPaint(); @@ -139,7 +140,9 @@ public: void blendFuncSeparate(unsigned long srcRGB, unsigned long dstRGB, unsigned long srcAlpha, unsigned long dstAlpha); void bufferData(unsigned long target, int size, unsigned long usage); + void bufferData(unsigned long target, ArrayBuffer* data, unsigned long usage); void bufferData(unsigned long target, ArrayBufferView* data, unsigned long usage); + void bufferSubData(unsigned long target, long offset, ArrayBuffer* data); void bufferSubData(unsigned long target, long offset, ArrayBufferView* data); unsigned long checkFramebufferStatus(unsigned long target); @@ -397,7 +400,7 @@ WebGLLayerChromium* GraphicsContext3DInternal::platformLayer() const } #endif -void GraphicsContext3DInternal::beginPaint(WebGLRenderingContext* context) +void GraphicsContext3DInternal::paintRenderingResultsToCanvas(WebGLRenderingContext* context) { HTMLCanvasElement* canvas = context->canvas(); ImageBuffer* imageBuffer = canvas->buffer(); @@ -447,44 +450,20 @@ void GraphicsContext3DInternal::beginPaint(WebGLRenderingContext* context) canvas.drawBitmapRect(m_resizingBitmap, 0, dst); } #elif PLATFORM(CG) - if (m_renderOutput) { - int rowBytes = m_impl->width() * 4; - CGDataProviderRef dataProvider = CGDataProviderCreateWithData(0, m_renderOutput, rowBytes * m_impl->height(), 0); - CGColorSpaceRef colorSpace = CGColorSpaceCreateDeviceRGB(); - CGImageRef cgImage = CGImageCreate(m_impl->width(), - m_impl->height(), - 8, - 32, - rowBytes, - colorSpace, - kCGImageAlphaPremultipliedFirst | kCGBitmapByteOrder32Host, - dataProvider, - 0, - false, - kCGRenderingIntentDefault); - // CSS styling may cause the canvas's content to be resized on - // the page. Go back to the Canvas to figure out the correct - // width and height to draw. - CGRect rect = CGRectMake(0, 0, - context->canvas()->width(), - context->canvas()->height()); - // We want to completely overwrite the previous frame's - // rendering results. - CGContextSetBlendMode(imageBuffer->context()->platformContext(), - kCGBlendModeCopy); - CGContextSetInterpolationQuality(imageBuffer->context()->platformContext(), - kCGInterpolationNone); - CGContextDrawImage(imageBuffer->context()->platformContext(), - rect, cgImage); - CGImageRelease(cgImage); - CGColorSpaceRelease(colorSpace); - CGDataProviderRelease(dataProvider); - } + if (m_renderOutput) + context->graphicsContext3D()->paintToCanvas(m_renderOutput, m_impl->width(), m_impl->height(), + canvas->width(), canvas->height(), + imageBuffer->context()->platformContext()); #else #error Must port to your platform #endif } +void GraphicsContext3DInternal::beginPaint(WebGLRenderingContext* context) +{ + paintRenderingResultsToCanvas(context); +} + void GraphicsContext3DInternal::endPaint() { } @@ -718,11 +697,21 @@ void GraphicsContext3DInternal::bufferData(unsigned long target, int size, unsig m_impl->bufferData(target, size, 0, usage); } +void GraphicsContext3DInternal::bufferData(unsigned long target, ArrayBuffer* array, unsigned long usage) +{ + m_impl->bufferData(target, array->byteLength(), array->data(), usage); +} + void GraphicsContext3DInternal::bufferData(unsigned long target, ArrayBufferView* array, unsigned long usage) { m_impl->bufferData(target, array->byteLength(), array->baseAddress(), usage); } +void GraphicsContext3DInternal::bufferSubData(unsigned long target, long offset, ArrayBuffer* array) +{ + m_impl->bufferSubData(target, offset, array->byteLength(), array->data()); +} + void GraphicsContext3DInternal::bufferSubData(unsigned long target, long offset, ArrayBufferView* array) { m_impl->bufferSubData(target, offset, array->byteLength(), array->baseAddress()); @@ -1165,7 +1154,9 @@ DELEGATE_TO_INTERNAL_2(blendFunc, unsigned long, unsigned long) DELEGATE_TO_INTERNAL_4(blendFuncSeparate, unsigned long, unsigned long, unsigned long, unsigned long) DELEGATE_TO_INTERNAL_3(bufferData, unsigned long, int, unsigned long) +DELEGATE_TO_INTERNAL_3(bufferData, unsigned long, ArrayBuffer*, unsigned long) DELEGATE_TO_INTERNAL_3(bufferData, unsigned long, ArrayBufferView*, unsigned long) +DELEGATE_TO_INTERNAL_3(bufferSubData, unsigned long, long, ArrayBuffer*) DELEGATE_TO_INTERNAL_3(bufferSubData, unsigned long, long, ArrayBufferView*) DELEGATE_TO_INTERNAL_1R(checkFramebufferStatus, unsigned long, unsigned long) @@ -1311,6 +1302,7 @@ DELEGATE_TO_INTERNAL_6(vertexAttribPointer, unsigned long, int, int, bool, unsig DELEGATE_TO_INTERNAL_4(viewport, long, long, unsigned long, unsigned long) +DELEGATE_TO_INTERNAL_1(paintRenderingResultsToCanvas, WebGLRenderingContext*) DELEGATE_TO_INTERNAL_1(beginPaint, WebGLRenderingContext*) DELEGATE_TO_INTERNAL(endPaint) diff --git a/WebKit/chromium/src/InspectorFrontendClientImpl.cpp b/WebKit/chromium/src/InspectorFrontendClientImpl.cpp index 83b925a..73cedfa 100644 --- a/WebKit/chromium/src/InspectorFrontendClientImpl.cpp +++ b/WebKit/chromium/src/InspectorFrontendClientImpl.cpp @@ -71,9 +71,6 @@ void InspectorFrontendClientImpl::windowObjectCleared() v8::Handle<v8::Object> global = frameContext->Global(); global->Set(v8::String::New("InspectorFrontendHost"), frontendHostObj); -#if ENABLE(V8_SCRIPT_DEBUG_SERVER) - global->Set(v8::String::New("v8ScriptDebugServerEnabled"), v8::True()); -#endif } void InspectorFrontendClientImpl::frontendLoaded() diff --git a/WebKit/chromium/src/ResourceHandle.cpp b/WebKit/chromium/src/ResourceHandle.cpp index a13400d..88f7f39 100644 --- a/WebKit/chromium/src/ResourceHandle.cpp +++ b/WebKit/chromium/src/ResourceHandle.cpp @@ -226,7 +226,7 @@ PassRefPtr<ResourceHandle> ResourceHandle::create(const ResourceRequest& request return 0; } -const ResourceRequest& ResourceHandle::request() const +ResourceRequest& ResourceHandle::firstRequest() { return d->m_request; } @@ -252,6 +252,11 @@ bool ResourceHandle::start(Frame* deprecated) return true; } +bool ResourceHandle::hasAuthenticationChallenge() const +{ + return false; +} + void ResourceHandle::clearAuthentication() { } diff --git a/WebKit/chromium/src/WebAccessibilityCacheImpl.cpp b/WebKit/chromium/src/WebAccessibilityCacheImpl.cpp index 03e5f46..abb63cc 100644 --- a/WebKit/chromium/src/WebAccessibilityCacheImpl.cpp +++ b/WebKit/chromium/src/WebAccessibilityCacheImpl.cpp @@ -64,14 +64,15 @@ WebAccessibilityCache* WebAccessibilityCache::create() PassRefPtr<WebAccessibilityCacheImpl::WeakHandle> WebAccessibilityCacheImpl::WeakHandle::create(AccessibilityObject* object) { // FIXME: Remove resetting ref-count from AccessibilityObjectWrapper - // and convert to use adoptRef. - return new WebAccessibilityCacheImpl::WeakHandle(object); + RefPtr<WebAccessibilityCacheImpl::WeakHandle> weakHandle = adoptRef(new WebAccessibilityCacheImpl::WeakHandle(object)); + weakHandle->m_object->setWrapper(weakHandle.get()); + + return weakHandle.release(); } WebAccessibilityCacheImpl::WeakHandle::WeakHandle(AccessibilityObject* object) : AccessibilityObjectWrapper(object) { - m_object->setWrapper(this); } // WebAccessibilityCacheImpl ---------------------------------------- diff --git a/WebKit/chromium/src/WebDevToolsAgentImpl.cpp b/WebKit/chromium/src/WebDevToolsAgentImpl.cpp index 4205c62..0d8cbad 100644 --- a/WebKit/chromium/src/WebDevToolsAgentImpl.cpp +++ b/WebKit/chromium/src/WebDevToolsAgentImpl.cpp @@ -231,9 +231,7 @@ WebDevToolsAgentImpl::WebDevToolsAgentImpl( WebDevToolsAgentImpl::~WebDevToolsAgentImpl() { DebuggerAgentManager::onWebViewClosed(m_webViewImpl); -#if ENABLE(V8_SCRIPT_DEBUG_SERVER) ClientMessageLoopAdapter::inspectedViewClosed(m_webViewImpl); -#endif disposeUtilityContext(); } @@ -250,10 +248,8 @@ void WebDevToolsAgentImpl::attach() if (m_attached) return; -#if ENABLE(V8_SCRIPT_DEBUG_SERVER) if (!m_client->exposeV8DebuggerProtocol()) ClientMessageLoopAdapter::ensureClientMessageLoopCreated(m_client); -#endif m_debuggerAgentImpl.set( new DebuggerAgentImpl(m_webViewImpl, @@ -294,9 +290,7 @@ void WebDevToolsAgentImpl::detach() void WebDevToolsAgentImpl::didNavigate() { -#if ENABLE(V8_SCRIPT_DEBUG_SERVER) ClientMessageLoopAdapter::didNavigate(); -#endif DebuggerAgentManager::onNavigate(); } @@ -432,11 +426,9 @@ void WebDevToolsAgentImpl::createInspectorFrontendProxy() m_utilityContext = v8::Context::New(); compileUtilityScripts(); initDevToolsAgentHost(); -#if ENABLE(V8_SCRIPT_DEBUG_SERVER) WebCString debuggerScriptJs = m_client->debuggerScriptSource(); WebCore::ScriptDebugServer::shared().setDebuggerScriptSource( WebCore::String(debuggerScriptJs.data(), debuggerScriptJs.length())); -#endif } void WebDevToolsAgentImpl::setInspectorFrontendProxyToInspectorController() diff --git a/WebKit/chromium/src/WebDevToolsFrontendImpl.cpp b/WebKit/chromium/src/WebDevToolsFrontendImpl.cpp index eda2f77..3e83f18 100644 --- a/WebKit/chromium/src/WebDevToolsFrontendImpl.cpp +++ b/WebKit/chromium/src/WebDevToolsFrontendImpl.cpp @@ -105,9 +105,9 @@ WebDevToolsFrontendImpl::WebDevToolsFrontendImpl( InspectorController* ic = m_webViewImpl->page()->inspectorController(); ic->setInspectorFrontendClient(new InspectorFrontendClientImpl(m_webViewImpl->page(), m_client, this)); - // Put DevTools frontend Page into its own group so that it's not - // deferred along with inspected page. - m_webViewImpl->page()->setGroupName("DevToolsFrontend"); + // Put each DevTools frontend Page into its own (single page) group so that it's not + // deferred along with the inspected page. + m_webViewImpl->page()->setGroupName(String()); WebFrameImpl* frame = m_webViewImpl->mainFrameImpl(); v8::HandleScope scope; @@ -174,6 +174,8 @@ void WebDevToolsFrontendImpl::executeScript(const Vector<String>& v) Vector< v8::Handle<v8::Value> > args; for (size_t i = 0; i < v.size(); i++) args.append(ToV8String(v.at(i))); + v8::TryCatch tryCatch; + tryCatch.SetVerbose(true); function->Call(frameContext->Global(), args.size(), args.data()); } diff --git a/WebKit/chromium/src/WebFormElement.cpp b/WebKit/chromium/src/WebFormElement.cpp index 8b4ce04..9c77732 100644 --- a/WebKit/chromium/src/WebFormElement.cpp +++ b/WebKit/chromium/src/WebFormElement.cpp @@ -31,6 +31,7 @@ #include "config.h" #include "WebFormElement.h" +#include "FormState.h" #include "HTMLFormControlElement.h" #include "HTMLFormElement.h" #include "HTMLInputElement.h" @@ -55,16 +56,21 @@ WebString WebFormElement::action() const return constUnwrap<HTMLFormElement>()->action(); } -WebString WebFormElement::name() const +WebString WebFormElement::name() const { return constUnwrap<HTMLFormElement>()->name(); } -WebString WebFormElement::method() const +WebString WebFormElement::method() const { return constUnwrap<HTMLFormElement>()->method(); } - + +bool WebFormElement::wasUserSubmitted() const +{ + return constUnwrap<HTMLFormElement>()->submissionTrigger() == NotSubmittedByJavaScript; +} + void WebFormElement::submit() { unwrap<HTMLFormElement>()->submit(); @@ -77,7 +83,7 @@ void WebFormElement::getNamedElements(const WebString& name, unwrap<HTMLFormElement>()->getNamedElements(name, tempVector); result.assign(tempVector); } - + void WebFormElement::getFormControlElements(WebVector<WebFormControlElement>& result) const { const HTMLFormElement* form = constUnwrap<HTMLFormElement>(); diff --git a/WebKit/chromium/src/WebFrameImpl.cpp b/WebKit/chromium/src/WebFrameImpl.cpp index 535d128..f1c30e2 100644 --- a/WebKit/chromium/src/WebFrameImpl.cpp +++ b/WebKit/chromium/src/WebFrameImpl.cpp @@ -2101,9 +2101,9 @@ int WebFrameImpl::ordinalOfFirstMatchForFrame(WebFrameImpl* frame) const bool WebFrameImpl::shouldScopeMatches(const String& searchText) { - // Don't scope if we can't find a frame or if the frame is not visible. + // Don't scope if we can't find a frame or a view or if the frame is not visible. // The user may have closed the tab/application, so abort. - if (!frame() || !hasVisibleContent()) + if (!frame() || !frame()->view() || !hasVisibleContent()) return false; ASSERT(frame()->document() && frame()->view()); diff --git a/WebKit/chromium/src/WebGraphicsContext3DDefaultImpl.cpp b/WebKit/chromium/src/WebGraphicsContext3DDefaultImpl.cpp index 0863ec8..47bb5a0 100644 --- a/WebKit/chromium/src/WebGraphicsContext3DDefaultImpl.cpp +++ b/WebKit/chromium/src/WebGraphicsContext3DDefaultImpl.cpp @@ -710,7 +710,7 @@ bool WebGraphicsContext3DDefaultImpl::readBackFramebuffer(unsigned char* pixels, // vertical flip is only a temporary solution anyway until Chrome // is fully GPU composited, it wasn't worth the complexity. - bool mustRestoreFBO; + bool mustRestoreFBO = false; if (m_attributes.antialias) { glBindFramebufferEXT(GL_READ_FRAMEBUFFER_EXT, m_multisampleFBO); glBindFramebufferEXT(GL_DRAW_FRAMEBUFFER_EXT, m_fbo); @@ -1120,6 +1120,10 @@ void WebGraphicsContext3DDefaultImpl::getIntegerv(unsigned long pname, int* valu // Need to emulate IMPLEMENTATION_COLOR_READ_FORMAT/TYPE for GL. Any valid // combination should work, but GL_RGB/GL_UNSIGNED_BYTE might be the most // useful for desktop WebGL users. + // Need to emulate MAX_FRAGMENT/VERTEX_UNIFORM_VECTORS and MAX_VARYING_VECTORS + // because desktop GL's corresponding queries return the number of components + // whereas GLES2 return the number of vectors (each vector has 4 components). + // Therefore, the value returned by desktop GL needs to be divided by 4. makeContextCurrent(); switch (pname) { case 0x8B9B: // IMPLEMENTATION_COLOR_READ_FORMAT @@ -1128,6 +1132,18 @@ void WebGraphicsContext3DDefaultImpl::getIntegerv(unsigned long pname, int* valu case 0x8B9A: // IMPLEMENTATION_COLOR_READ_TYPE *value = GL_UNSIGNED_BYTE; break; + case 0x8DFD: // MAX_FRAGMENT_UNIFORM_VECTORS + glGetIntegerv(GL_MAX_FRAGMENT_UNIFORM_COMPONENTS, value); + *value /= 4; + break; + case 0x8DFB: // MAX_VERTEX_UNIFORM_VECTORS + glGetIntegerv(GL_MAX_VERTEX_UNIFORM_COMPONENTS, value); + *value /= 4; + break; + case 0x8DFC: // MAX_VARYING_VECTORS + glGetIntegerv(GL_MAX_VARYING_FLOATS, value); + *value /= 4; + break; default: glGetIntegerv(pname, value); } diff --git a/WebKit/chromium/src/WebIDBDatabaseError.cpp b/WebKit/chromium/src/WebIDBDatabaseError.cpp index 17fdd38..cbbe14a 100644 --- a/WebKit/chromium/src/WebIDBDatabaseError.cpp +++ b/WebKit/chromium/src/WebIDBDatabaseError.cpp @@ -40,11 +40,6 @@ using namespace WebCore; namespace WebKit { -WebIDBDatabaseError::~WebIDBDatabaseError() -{ - m_private.reset(); -} - void WebIDBDatabaseError::assign(const WebIDBDatabaseError& value) { m_private = value.m_private; @@ -55,6 +50,11 @@ void WebIDBDatabaseError::assign(unsigned short code, const WebString& message) m_private = IDBDatabaseError::create(code, message); } +void WebIDBDatabaseError::reset() +{ + m_private.reset(); +} + unsigned short WebIDBDatabaseError::code() const { return m_private->code(); diff --git a/WebKit/chromium/src/WebIDBKey.cpp b/WebKit/chromium/src/WebIDBKey.cpp index a52ea56..1c4c685 100644 --- a/WebKit/chromium/src/WebIDBKey.cpp +++ b/WebKit/chromium/src/WebIDBKey.cpp @@ -36,11 +36,6 @@ using namespace WebCore; namespace WebKit { -WebIDBKey::~WebIDBKey() -{ - m_private.reset(); -} - WebIDBKey WebIDBKey::createNull() { WebIDBKey key; @@ -80,6 +75,11 @@ void WebIDBKey::assignInvalid() m_private = 0; } +void WebIDBKey::reset() +{ + m_private.reset(); +} + WebIDBKey::Type WebIDBKey::type() const { if (!m_private.get()) diff --git a/WebKit/chromium/src/WebMediaElement.cpp b/WebKit/chromium/src/WebMediaElement.cpp new file mode 100644 index 0000000..4adda1e --- /dev/null +++ b/WebKit/chromium/src/WebMediaElement.cpp @@ -0,0 +1,64 @@ +/* + * Copyright (C) 2010 Google Inc. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are + * met: + * + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above + * copyright notice, this list of conditions and the following disclaimer + * in the documentation and/or other materials provided with the + * distribution. + * * Neither the name of Google Inc. nor the names of its + * contributors may be used to endorse or promote products derived from + * this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +#include "config.h" +#include "WebMediaElement.h" + +#include "HTMLMediaElement.h" +#include "MediaPlayer.h" +#include "WebMediaPlayer.h" +#include "WebMediaPlayerClientImpl.h" +#include <wtf/PassRefPtr.h> + +using namespace WebCore; + +namespace WebKit { + +WebMediaPlayer* WebMediaElement::player() const +{ + return WebMediaPlayerClientImpl::fromMediaElement(this)->mediaPlayer(); +} + +WebMediaElement::WebMediaElement(const PassRefPtr<HTMLMediaElement>& elem) + : WebElement(elem) +{ +} + +WebMediaElement& WebMediaElement::operator=(const PassRefPtr<HTMLMediaElement>& elem) +{ + m_private = elem; + return *this; +} + +WebMediaElement::operator PassRefPtr<HTMLMediaElement>() const +{ + return static_cast<HTMLMediaElement*>(m_private.get()); +} +} // namespace WebKit diff --git a/WebKit/chromium/src/WebMediaPlayerClientImpl.cpp b/WebKit/chromium/src/WebMediaPlayerClientImpl.cpp index 03051c3..2b0c9a7 100644 --- a/WebKit/chromium/src/WebMediaPlayerClientImpl.cpp +++ b/WebKit/chromium/src/WebMediaPlayerClientImpl.cpp @@ -14,7 +14,13 @@ #include "KURL.h" #include "MediaPlayer.h" #include "NotImplemented.h" +#include "RenderView.h" #include "TimeRanges.h" +#include "VideoLayerChromium.h" + +#if USE(ACCELERATED_COMPOSITING) +#include "RenderLayerCompositor.h" +#endif #include "WebCanvas.h" #include "WebCString.h" @@ -22,12 +28,14 @@ #include "WebFrameImpl.h" #include "WebKit.h" #include "WebKitClient.h" +#include "WebMediaElement.h" #include "WebMediaPlayer.h" #include "WebMimeRegistry.h" #include "WebRect.h" #include "WebSize.h" #include "WebString.h" #include "WebURL.h" +#include "WebViewImpl.h" // WebCommon.h defines WEBKIT_USING_SKIA so this has to be included last. #if WEBKIT_USING_SKIA @@ -45,6 +53,7 @@ static WebMediaPlayer* createWebMediaPlayer( WebMediaPlayerClient* client, Frame* frame) { WebFrameImpl* webFrame = WebFrameImpl::fromFrame(frame); + if (!webFrame->client()) return 0; return webFrame->client()->createMediaPlayer(webFrame, client); @@ -71,6 +80,17 @@ void WebMediaPlayerClientImpl::registerSelf(MediaEngineRegistrar registrar) } } +WebMediaPlayerClientImpl* WebMediaPlayerClientImpl::fromMediaElement(const WebMediaElement* element) +{ + PlatformMedia pm = element->constUnwrap<HTMLMediaElement>()->platformMedia(); + return static_cast<WebMediaPlayerClientImpl*>(pm.media.chromiumMediaPlayer); +} + +WebMediaPlayer* WebMediaPlayerClientImpl::mediaPlayer() const +{ + return m_webMediaPlayer.get(); +} + // WebMediaPlayerClient -------------------------------------------------------- void WebMediaPlayerClientImpl::networkStateChanged() @@ -146,6 +166,7 @@ void WebMediaPlayerClientImpl::load(const String& url) { Frame* frame = static_cast<HTMLMediaElement*>( m_mediaPlayer->mediaPlayerClient())->document()->frame(); + m_webMediaPlayer.set(createWebMediaPlayer(this, frame)); if (m_webMediaPlayer.get()) m_webMediaPlayer->load(KURL(ParsedURLString, url)); @@ -157,6 +178,22 @@ void WebMediaPlayerClientImpl::cancelLoad() m_webMediaPlayer->cancelLoad(); } +#if USE(ACCELERATED_COMPOSITING) +PlatformLayer* WebMediaPlayerClientImpl::platformLayer() const +{ + ASSERT(m_supportsAcceleratedCompositing); + return m_videoLayer.get(); +} +#endif + +PlatformMedia WebMediaPlayerClientImpl::platformMedia() const +{ + PlatformMedia pm; + pm.type = PlatformMedia::ChromiumMediaPlayerType; + pm.media.chromiumMediaPlayer = const_cast<WebMediaPlayerClientImpl*>(this); + return pm; +} + void WebMediaPlayerClientImpl::play() { if (m_webMediaPlayer.get()) @@ -360,6 +397,13 @@ bool WebMediaPlayerClientImpl::hasSingleSecurityOrigin() const return false; } +#if USE(ACCELERATED_COMPOSITING) +bool WebMediaPlayerClientImpl::supportsAcceleratedRendering() const +{ + return m_supportsAcceleratedCompositing; +} +#endif + MediaPlayer::MovieLoadType WebMediaPlayerClientImpl::movieLoadType() const { if (m_webMediaPlayer.get()) @@ -372,6 +416,22 @@ MediaPlayerPrivateInterface* WebMediaPlayerClientImpl::create(MediaPlayer* playe { WebMediaPlayerClientImpl* client = new WebMediaPlayerClientImpl(); client->m_mediaPlayer = player; + +#if USE(ACCELERATED_COMPOSITING) + Frame* frame = static_cast<HTMLMediaElement*>( + client->m_mediaPlayer->mediaPlayerClient())->document()->frame(); + + // This does not actually check whether the hardware can support accelerated + // compositing, but only if the flag is set. However, this is checked lazily + // in WebViewImpl::setIsAcceleratedCompositingActive() and will fail there + // if necessary. + client->m_supportsAcceleratedCompositing = + frame->contentRenderer()->compositor()->hasAcceleratedCompositing(); + + if (client->m_supportsAcceleratedCompositing) + client->m_videoLayer = VideoLayerChromium::create(0); +#endif + return client; } @@ -402,6 +462,10 @@ MediaPlayer::SupportsType WebMediaPlayerClientImpl::supportsType(const String& t WebMediaPlayerClientImpl::WebMediaPlayerClientImpl() : m_mediaPlayer(0) +#if USE(ACCELERATED_COMPOSITING) + , m_videoLayer(0) + , m_supportsAcceleratedCompositing(false) +#endif { } diff --git a/WebKit/chromium/src/WebMediaPlayerClientImpl.h b/WebKit/chromium/src/WebMediaPlayerClientImpl.h index 57c93b7..0faac26 100644 --- a/WebKit/chromium/src/WebMediaPlayerClientImpl.h +++ b/WebKit/chromium/src/WebMediaPlayerClientImpl.h @@ -39,6 +39,7 @@ namespace WebKit { +class WebMediaElement; class WebMediaPlayer; // This class serves as a bridge between WebCore::MediaPlayer and @@ -50,6 +51,11 @@ public: static void setIsEnabled(bool); static void registerSelf(WebCore::MediaEngineRegistrar); + static WebMediaPlayerClientImpl* fromMediaElement(const WebMediaElement* element); + + // Returns the encapsulated WebKit::WebMediaPlayer. + WebMediaPlayer* mediaPlayer() const; + // WebMediaPlayerClient methods: virtual void networkStateChanged(); virtual void readyStateChanged(); @@ -66,6 +72,10 @@ public: // MediaPlayerPrivateInterface methods: virtual void load(const WebCore::String& url); virtual void cancelLoad(); +#if USE(ACCELERATED_COMPOSITING) + virtual WebCore::PlatformLayer* platformLayer() const; +#endif + virtual WebCore::PlatformMedia platformMedia() const; virtual void play(); virtual void pause(); virtual bool supportsFullscreen() const; @@ -94,6 +104,10 @@ public: virtual void setSize(const WebCore::IntSize&); virtual void paint(WebCore::GraphicsContext*, const WebCore::IntRect&); virtual bool hasSingleSecurityOrigin() const; +#if USE(ACCELERATED_COMPOSITING) + virtual bool supportsAcceleratedRendering() const; +#endif + virtual WebCore::MediaPlayer::MovieLoadType movieLoadType() const; private: @@ -106,6 +120,10 @@ private: WebCore::MediaPlayer* m_mediaPlayer; OwnPtr<WebMediaPlayer> m_webMediaPlayer; +#if USE(ACCELERATED_COMPOSITING) + RefPtr<WebCore::PlatformLayer> m_videoLayer; + bool m_supportsAcceleratedCompositing; +#endif static bool m_isEnabled; }; diff --git a/WebKit/chromium/src/WebOptionElement.cpp b/WebKit/chromium/src/WebOptionElement.cpp new file mode 100644 index 0000000..49bff3b --- /dev/null +++ b/WebKit/chromium/src/WebOptionElement.cpp @@ -0,0 +1,100 @@ +/* + * Copyright (C) 2010 Google Inc. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are + * met: + * + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above + * copyright notice, this list of conditions and the following disclaimer + * in the documentation and/or other materials provided with the + * distribution. + * * Neither the name of Google Inc. nor the names of its + * contributors may be used to endorse or promote products derived from + * this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +#include "config.h" +#include "WebOptionElement.h" + +#include "HTMLNames.h" +#include "HTMLOptionElement.h" +#include "HTMLSelectElement.h" +#include "WebString.h" +#include <wtf/PassRefPtr.h> + +using namespace WebCore; + +namespace WebKit { + +void WebOptionElement::setValue(const WebString& newValue) +{ + return unwrap<HTMLOptionElement>()->setValue(newValue); +} + +WebString WebOptionElement::value() const +{ + return constUnwrap<HTMLOptionElement>()->value(); +} + +int WebOptionElement::index() const +{ + return constUnwrap<HTMLOptionElement>()->index(); +} + +WebString WebOptionElement::text() const +{ + return constUnwrap<HTMLOptionElement>()->text(); +} + +bool WebOptionElement::defaultSelected() const +{ + return constUnwrap<HTMLOptionElement>()->defaultSelected(); +} + +void WebOptionElement::setDefaultSelected(bool newSelected) +{ + return unwrap<HTMLOptionElement>()->setDefaultSelected(newSelected); +} + +WebString WebOptionElement::label() const +{ + return constUnwrap<HTMLOptionElement>()->label(); +} + +bool WebOptionElement::isEnabled() const +{ + return !(constUnwrap<HTMLOptionElement>()->disabled()); +} + +WebOptionElement::WebOptionElement(const PassRefPtr<HTMLOptionElement>& elem) + : WebFormControlElement(elem) +{ +} + +WebOptionElement& WebOptionElement::operator=(const PassRefPtr<HTMLOptionElement>& elem) +{ + m_private = elem; + return *this; +} + +WebOptionElement::operator PassRefPtr<HTMLOptionElement>() const +{ + return static_cast<HTMLOptionElement*>(m_private.get()); +} + +} // namespace WebKit diff --git a/WebKit/chromium/src/WebPopupMenuImpl.cpp b/WebKit/chromium/src/WebPopupMenuImpl.cpp index 2abdc62..75d6cc1 100644 --- a/WebKit/chromium/src/WebPopupMenuImpl.cpp +++ b/WebKit/chromium/src/WebPopupMenuImpl.cpp @@ -318,6 +318,10 @@ void WebPopupMenuImpl::scrollbarsModeDidChange() const // Nothing to be done since we have no concept of different scrollbar modes. } +void WebPopupMenuImpl::setCursor(const WebCore::Cursor&) +{ +} + //----------------------------------------------------------------------------- // WebCore::FramelessScrollViewClient diff --git a/WebKit/chromium/src/WebPopupMenuImpl.h b/WebKit/chromium/src/WebPopupMenuImpl.h index 4f5c2de..edbb4ab 100644 --- a/WebKit/chromium/src/WebPopupMenuImpl.h +++ b/WebKit/chromium/src/WebPopupMenuImpl.h @@ -110,6 +110,7 @@ public: virtual PlatformPageClient platformPageClient() const { return 0; } virtual void scrollRectIntoView(const WebCore::IntRect&, const WebCore::ScrollView*) const; virtual void scrollbarsModeDidChange() const; + virtual void setCursor(const WebCore::Cursor&); // WebCore::FramelessScrollViewClient methods: virtual void popupClosed(WebCore::FramelessScrollView*); diff --git a/WebKit/chromium/src/WebRuntimeFeatures.cpp b/WebKit/chromium/src/WebRuntimeFeatures.cpp index 595a47f..efb287c 100644 --- a/WebKit/chromium/src/WebRuntimeFeatures.cpp +++ b/WebKit/chromium/src/WebRuntimeFeatures.cpp @@ -226,4 +226,14 @@ bool WebRuntimeFeatures::isTouchEnabled() #endif } +void WebRuntimeFeatures::enableDeviceOrientation(bool enable) +{ + RuntimeEnabledFeatures::setDeviceOrientationEnabled(enable); +} + +bool WebRuntimeFeatures::isDeviceOrientationEnabled() +{ + return RuntimeEnabledFeatures::deviceOrientationEnabled(); +} + } // namespace WebKit diff --git a/WebKit/chromium/src/WebSelectElement.cpp b/WebKit/chromium/src/WebSelectElement.cpp index 6516cc3..79a4d85 100644 --- a/WebKit/chromium/src/WebSelectElement.cpp +++ b/WebKit/chromium/src/WebSelectElement.cpp @@ -31,6 +31,8 @@ #include "config.h" #include "WebSelectElement.h" +#include "HTMLNames.h" +#include "HTMLOptionElement.h" #include "HTMLSelectElement.h" #include "WebString.h" #include <wtf/PassRefPtr.h> @@ -49,6 +51,16 @@ WebString WebSelectElement::value() return unwrap<HTMLSelectElement>()->value(); } +WebVector<WebElement> WebSelectElement::listItems() +{ + const Vector<Element*>& sourceItems = unwrap<HTMLSelectElement>()->listItems(); + WebVector<WebElement> items(sourceItems.size()); + for (size_t i = 0; i < sourceItems.size(); ++i) + items[i] = WebElement(static_cast<HTMLElement*>(sourceItems[i])); + + return items; +} + WebSelectElement::WebSelectElement(const PassRefPtr<HTMLSelectElement>& elem) : WebFormControlElement(elem) { diff --git a/WebKit/chromium/src/WebSettingsImpl.cpp b/WebKit/chromium/src/WebSettingsImpl.cpp index 7e89a77..6a02ed6 100644 --- a/WebKit/chromium/src/WebSettingsImpl.cpp +++ b/WebKit/chromium/src/WebSettingsImpl.cpp @@ -284,4 +284,9 @@ void WebSettingsImpl::setHTML5ParserEnabled(bool enabled) m_settings->setHTML5ParserEnabled(enabled); } +void WebSettingsImpl::setMemoryInfoEnabled(bool enabled) +{ + m_settings->setMemoryInfoEnabled(enabled); +} + } // namespace WebKit diff --git a/WebKit/chromium/src/WebSettingsImpl.h b/WebKit/chromium/src/WebSettingsImpl.h index 70bd792..fe5db51 100644 --- a/WebKit/chromium/src/WebSettingsImpl.h +++ b/WebKit/chromium/src/WebSettingsImpl.h @@ -88,6 +88,7 @@ public: virtual void setEditingBehavior(EditingBehavior); virtual void setAcceleratedCompositingEnabled(bool); virtual void setHTML5ParserEnabled(bool); + virtual void setMemoryInfoEnabled(bool); private: WebCore::Settings* m_settings; diff --git a/WebKit/chromium/src/WebURLRequest.cpp b/WebKit/chromium/src/WebURLRequest.cpp index 3b2d251..69dfac4 100644 --- a/WebKit/chromium/src/WebURLRequest.cpp +++ b/WebKit/chromium/src/WebURLRequest.cpp @@ -245,6 +245,16 @@ void WebURLRequest::setAppCacheHostID(int appCacheHostID) m_private->m_resourceRequest->setAppCacheHostID(appCacheHostID); } +bool WebURLRequest::downloadToFile() const +{ + return m_private->m_downloadToFile; +} + +void WebURLRequest::setDownloadToFile(bool downloadToFile) +{ + m_private->m_downloadToFile = downloadToFile; +} + ResourceRequest& WebURLRequest::toMutableResourceRequest() { ASSERT(m_private); diff --git a/WebKit/chromium/src/WebURLRequestPrivate.h b/WebKit/chromium/src/WebURLRequestPrivate.h index 2f7c25f..79f6451 100644 --- a/WebKit/chromium/src/WebURLRequestPrivate.h +++ b/WebKit/chromium/src/WebURLRequestPrivate.h @@ -37,13 +37,19 @@ namespace WebKit { class WebURLRequestPrivate { public: - WebURLRequestPrivate() : m_resourceRequest(0), m_allowStoredCredentials(true) { } + WebURLRequestPrivate() + : m_resourceRequest(0) + , m_allowStoredCredentials(true) + , m_downloadToFile(false) { } // Called by WebURLRequest when it no longer needs this object. virtual void dispose() = 0; WebCore::ResourceRequest* m_resourceRequest; bool m_allowStoredCredentials; + + // FIXME: Move this to ResourceRequest once we have an internal consumer. + bool m_downloadToFile; }; } // namespace WebKit diff --git a/WebKit/chromium/src/WebURLResponse.cpp b/WebKit/chromium/src/WebURLResponse.cpp index 2b7facc..0511f8d 100644 --- a/WebKit/chromium/src/WebURLResponse.cpp +++ b/WebKit/chromium/src/WebURLResponse.cpp @@ -107,6 +107,16 @@ void WebURLResponse::setConnectionID(unsigned connectionID) m_private->m_resourceResponse->setConnectionID(connectionID); } +bool WebURLResponse::connectionReused() const +{ + return m_private->m_resourceResponse->connectionReused(); +} + +void WebURLResponse::setConnectionReused(bool connectionReused) +{ + m_private->m_resourceResponse->setConnectionReused(connectionReused); +} + WebURLLoadTiming WebURLResponse::loadTiming() { return WebURLLoadTiming(m_private->m_resourceResponse->resourceLoadTiming()); @@ -352,6 +362,16 @@ void WebURLResponse::setIsMultipartPayload(bool value) m_private->m_resourceResponse->setIsMultipartPayload(value); } +WebString WebURLResponse::downloadFilePath() const +{ + return m_private->m_downloadFilePath; +} + +void WebURLResponse::setDownloadFilePath(const WebString& downloadFilePath) +{ + m_private->m_downloadFilePath = downloadFilePath; +} + void WebURLResponse::assign(WebURLResponsePrivate* p) { // Subclasses may call this directly so a self-assignment check is needed diff --git a/WebKit/chromium/src/WebURLResponsePrivate.h b/WebKit/chromium/src/WebURLResponsePrivate.h index 716c8db..dc5ce22 100644 --- a/WebKit/chromium/src/WebURLResponsePrivate.h +++ b/WebKit/chromium/src/WebURLResponsePrivate.h @@ -31,6 +31,8 @@ #ifndef WebURLResponsePrivate_h #define WebURLResponsePrivate_h +#include "WebString.h" + namespace WebCore { class ResourceResponse; } namespace WebKit { @@ -43,6 +45,9 @@ public: virtual void dispose() = 0; WebCore::ResourceResponse* m_resourceResponse; + + // FIXME: Move this to ResourceResponse once we have an internal consumer. + WebString m_downloadFilePath; }; } // namespace WebKit diff --git a/WebKit/chromium/src/WebViewImpl.cpp b/WebKit/chromium/src/WebViewImpl.cpp index d1ca71e..83c8822 100644 --- a/WebKit/chromium/src/WebViewImpl.cpp +++ b/WebKit/chromium/src/WebViewImpl.cpp @@ -54,10 +54,12 @@ #include "FrameLoader.h" #include "FrameTree.h" #include "FrameView.h" +#include "GLES2Context.h" +#include "GLES2ContextInternal.h" #include "GraphicsContext.h" -#include "HitTestResult.h" #include "HTMLInputElement.h" #include "HTMLMediaElement.h" +#include "HitTestResult.h" #include "HTMLNames.h" #include "Image.h" #include "InspectorController.h" @@ -73,6 +75,7 @@ #include "PlatformContextSkia.h" #include "PlatformKeyboardEvent.h" #include "PlatformMouseEvent.h" +#include "PlatformThemeChromiumGtk.h" #include "PlatformWheelEvent.h" #include "PopupMenuChromium.h" #include "PopupMenuClient.h" @@ -91,6 +94,7 @@ #include "WebDragData.h" #include "WebFrameImpl.h" #include "WebImage.h" +#include "WebInputElement.h" #include "WebInputEvent.h" #include "WebInputEventConversion.h" #include "WebKit.h" @@ -157,10 +161,11 @@ COMPILE_ASSERT_MATCHING_ENUM(DragOperationDelete); COMPILE_ASSERT_MATCHING_ENUM(DragOperationEvery); static const PopupContainerSettings autoFillPopupSettings = { - false, // setTextOnIndexChange - false, // acceptOnAbandon - true, // loopSelectionNavigation - true, // restrictWidthOfListBox. Same as other browser (Fx, IE, and safari) + false, // setTextOnIndexChange + false, // acceptOnAbandon + true, // loopSelectionNavigation + false, // restrictWidthOfListBox (For security reasons show the entire entry + // so the user doesn't enter information it did not intend to.) // For suggestions, we use the direction of the input field as the direction // of the popup items. The main reason is to keep the display of items in // drop-down the same as the items in the input field. @@ -588,8 +593,11 @@ bool WebViewImpl::autocompleteHandleKeyEvent(const WebKeyboardEvent& event) } int selectedIndex = m_autoFillPopup->selectedIndex(); - HTMLInputElement* inputElement = static_cast<HTMLInputElement*>(element); - WebString name = inputElement->name(); + + if (!m_autoFillPopupClient->canRemoveSuggestionAtIndex(selectedIndex)) + return false; + + WebString name = WebInputElement(static_cast<HTMLInputElement*>(element)).nameForAutofill(); WebString value = m_autoFillPopupClient->itemText(selectedIndex); m_client->removeAutofillSuggestions(name, value); // Update the entries in the currently showing popup to reflect the @@ -1237,6 +1245,9 @@ WebRect WebViewImpl::caretOrSelectionBounds() if (controller->isCaret()) rect = view->contentsToWindow(controller->absoluteCaretBounds()); else if (controller->isRange()) { + node = controller->end().node(); + if (!node || !node->renderer()) + return rect; RefPtr<Range> range = controller->toNormalizedRange(); rect = view->contentsToWindow(focused->firstRectForRange(range.get())); } @@ -1722,7 +1733,19 @@ void WebViewImpl::applyAutoFillSuggestions( const WebVector<WebString>& labels, int separatorIndex) { + WebVector<int> uniqueIDs(names.size()); + applyAutoFillSuggestions(node, names, labels, uniqueIDs, separatorIndex); +} + +void WebViewImpl::applyAutoFillSuggestions( + const WebNode& node, + const WebVector<WebString>& names, + const WebVector<WebString>& labels, + const WebVector<int>& uniqueIDs, + int separatorIndex) +{ ASSERT(names.size() == labels.size()); + ASSERT(names.size() == uniqueIDs.size()); ASSERT(separatorIndex < static_cast<int>(names.size())); if (names.isEmpty()) { @@ -1747,7 +1770,8 @@ void WebViewImpl::applyAutoFillSuggestions( if (!m_autoFillPopupClient.get()) m_autoFillPopupClient.set(new AutoFillPopupMenuClient); - m_autoFillPopupClient->initialize(inputElem, names, labels, separatorIndex); + m_autoFillPopupClient->initialize( + inputElem, names, labels, uniqueIDs, separatorIndex); if (!m_autoFillPopup.get()) { m_autoFillPopup = PopupContainer::create(m_autoFillPopupClient.get(), @@ -1756,7 +1780,8 @@ void WebViewImpl::applyAutoFillSuggestions( } if (m_autoFillPopupShowing) { - m_autoFillPopupClient->setSuggestions(names, labels, separatorIndex); + m_autoFillPopupClient->setSuggestions( + names, labels, uniqueIDs, separatorIndex); refreshAutoFillPopup(); } else { m_autoFillPopup->show(focusedNode->getRect(), @@ -1778,13 +1803,12 @@ void WebViewImpl::applyAutocompleteSuggestions( { WebVector<WebString> names(suggestions.size()); WebVector<WebString> labels(suggestions.size()); + WebVector<int> uniqueIDs(suggestions.size()); - for (size_t i = 0; i < suggestions.size(); ++i) { + for (size_t i = 0; i < suggestions.size(); ++i) names[i] = suggestions[i]; - labels[i] = WebString(); - } - applyAutoFillSuggestions(node, names, labels, -1); + applyAutoFillSuggestions(node, names, labels, uniqueIDs, -1); if (m_autoFillPopupClient) m_autoFillPopupClient->setAutocompleteMode(true); } @@ -1852,7 +1876,7 @@ void WebViewImpl::setScrollbarColors(unsigned inactiveColor, unsigned activeColor, unsigned trackColor) { #if OS(LINUX) - RenderThemeChromiumLinux::setScrollbarColors(inactiveColor, + PlatformThemeChromiumGtk::setScrollbarColors(inactiveColor, activeColor, trackColor); #endif @@ -2058,7 +2082,7 @@ void WebViewImpl::setIsAcceleratedCompositingActive(bool active) return; if (active) { - m_layerRenderer = LayerRendererChromium::create(page()); + m_layerRenderer = LayerRendererChromium::create(getOnscreenGLES2Context()); if (m_layerRenderer->hardwareCompositing()) m_isAcceleratedCompositingActive = true; else { @@ -2132,6 +2156,21 @@ void WebViewImpl::setRootLayerNeedsDisplay() } #endif // USE(ACCELERATED_COMPOSITING) +PassOwnPtr<GLES2Context> WebViewImpl::getOnscreenGLES2Context() +{ + return GLES2Context::create(GLES2ContextInternal::create(gles2Context(), false)); +} + +PassOwnPtr<GLES2Context> WebViewImpl::getOffscreenGLES2Context() +{ + WebGLES2Context* context = webKitClient()->createGLES2Context(); + if (!context) + return 0; + if (!context->initialize(0, gles2Context())) + return 0; + return GLES2Context::create(GLES2ContextInternal::create(context, true)); +} + // Returns the GLES2 context associated with this View. If one doesn't exist // it will get created first. WebGLES2Context* WebViewImpl::gles2Context() diff --git a/WebKit/chromium/src/WebViewImpl.h b/WebKit/chromium/src/WebViewImpl.h index db2a1d2..312f20f 100644 --- a/WebKit/chromium/src/WebViewImpl.h +++ b/WebKit/chromium/src/WebViewImpl.h @@ -53,6 +53,7 @@ namespace WebCore { class ChromiumDataObject; class Frame; +class GLES2Context; class HistoryItem; class HitTestResult; class KeyboardEvent; @@ -164,11 +165,18 @@ public: const WebString& value); virtual WebDevToolsAgent* devToolsAgent(); virtual WebAccessibilityObject accessibilityObject(); + // DEPRECATED. virtual void applyAutoFillSuggestions( const WebNode&, const WebVector<WebString>& names, const WebVector<WebString>& labels, int separatorIndex); + virtual void applyAutoFillSuggestions( + const WebNode&, + const WebVector<WebString>& names, + const WebVector<WebString>& labels, + const WebVector<int>& uniqueIDs, + int separatorIndex); // DEPRECATED: replacing with applyAutoFillSuggestions. virtual void applyAutocompleteSuggestions( const WebNode&, @@ -183,7 +191,6 @@ public: unsigned inactiveBackgroundColor, unsigned inactiveForegroundColor); virtual void performCustomContextMenuAction(unsigned action); - virtual WebGLES2Context* gles2Context(); // WebViewImpl @@ -314,6 +321,14 @@ public: void setRootLayerNeedsDisplay(); void setRootGraphicsLayer(WebCore::PlatformLayer*); #endif + // Onscreen contexts display to the screen associated with this view. + // Offscreen contexts render offscreen but can share resources with the + // onscreen context and thus can be composited. + PassOwnPtr<WebCore::GLES2Context> getOnscreenGLES2Context(); + PassOwnPtr<WebCore::GLES2Context> getOffscreenGLES2Context(); + + // Returns an onscreen context + virtual WebGLES2Context* gles2Context(); WebCore::PopupContainer* selectPopup() const { return m_selectPopup.get(); } diff --git a/WebKit/chromium/src/gtk/WebFontInfo.cpp b/WebKit/chromium/src/gtk/WebFontInfo.cpp index 3ac0b00..dd25eb1 100644 --- a/WebKit/chromium/src/gtk/WebFontInfo.cpp +++ b/WebKit/chromium/src/gtk/WebFontInfo.cpp @@ -165,6 +165,23 @@ void WebFontInfo::renderStyleForStrike(const char* family, int sizeAndStyle, Web out->useHinting = b; if (FcPatternGetInteger(match, FC_HINT_STYLE, 0, &i) == FcResultMatch) out->hintStyle = i; + if (FcPatternGetInteger(match, FC_RGBA, 0, &i) == FcResultMatch) { + switch (i) { + case FC_RGBA_NONE: + out->useSubpixel = 0; + break; + case FC_RGBA_RGB: + case FC_RGBA_BGR: + case FC_RGBA_VRGB: + case FC_RGBA_VBGR: + out->useSubpixel = 1; + break; + default: + // This includes FC_RGBA_UNKNOWN. + out->useSubpixel = 2; + break; + } + } FcPatternDestroy(match); } diff --git a/WebKit/chromium/src/js/DebuggerAgent.js b/WebKit/chromium/src/js/DebuggerAgent.js deleted file mode 100644 index 01d7627..0000000 --- a/WebKit/chromium/src/js/DebuggerAgent.js +++ /dev/null @@ -1,1605 +0,0 @@ -/* - * 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. - */ - -/** - * @fileoverview Provides communication interface to remote v8 debugger. See - * protocol decription at http://code.google.com/p/v8/wiki/DebuggerProtocol - */ - -/** - * FIXME: change field naming style to use trailing underscore. - * @constructor - */ -devtools.DebuggerAgent = function() -{ - RemoteDebuggerAgent.debuggerOutput = this.handleDebuggerOutput_.bind(this); - RemoteDebuggerAgent.setContextId = this.setContextId_.bind(this); - - /** - * Id of the inspected page global context. It is used for filtering scripts. - * @type {number} - */ - this.contextId_ = null; - - /** - * Mapping from script id to script info. - * @type {Object} - */ - this.parsedScripts_ = null; - - /** - * Mapping from the request id to the devtools.BreakpointInfo for the - * breakpoints whose v8 ids are not set yet. These breakpoints are waiting for - * "setbreakpoint" responses to learn their ids in the v8 debugger. - * @see #handleSetBreakpointResponse_ - * @type {Object} - */ - this.requestNumberToBreakpointInfo_ = null; - - /** - * Information on current stack frames. - * @type {Array.<devtools.CallFrame>} - */ - this.callFrames_ = []; - - /** - * Whether to stop in the debugger on the exceptions. - * @type {boolean} - */ - this.pauseOnExceptions_ = false; - - /** - * Mapping: request sequence number->callback. - * @type {Object} - */ - this.requestSeqToCallback_ = null; - - /** - * Whether the scripts panel has been shown and initialilzed. - * @type {boolean} - */ - this.scriptsPanelInitialized_ = false; - - /** - * Whether the scripts list should be requested next time when context id is - * set. - * @type {boolean} - */ - this.requestScriptsWhenContextIdSet_ = false; - - /** - * Whether the agent is waiting for initial scripts response. - * @type {boolean} - */ - this.waitingForInitialScriptsResponse_ = false; - - /** - * If backtrace response is received when initial scripts response - * is not yet processed the backtrace handling will be postponed until - * after the scripts response processing. The handler bound to its arguments - * and this agent will be stored in this field then. - * @type {?function()} - */ - this.pendingBacktraceResponseHandler_ = null; - - /** - * Container of all breakpoints set using resource URL. These breakpoints - * survive page reload. Breakpoints set by script id(for scripts that don't - * have URLs) are stored in ScriptInfo objects. - * @type {Object} - */ - this.urlToBreakpoints_ = {}; - - /** - * Exception message that is shown to user while on exception break. - * @type {WebInspector.ConsoleMessage} - */ - this.currentExceptionMessage_ = null; - - /** - * Whether breakpoints should suspend execution. - * @type {boolean} - */ - this.breakpointsActivated_ = true; -}; - - -/** - * A copy of the scope types from v8/src/mirror-delay.js - * @enum {number} - */ -devtools.DebuggerAgent.ScopeType = { - Global: 0, - Local: 1, - With: 2, - Closure: 3, - Catch: 4 -}; - - -/** - * Resets debugger agent to its initial state. - */ -devtools.DebuggerAgent.prototype.reset = function() -{ - this.contextId_ = null; - // No need to request scripts since they all will be pushed in AfterCompile - // events. - this.requestScriptsWhenContextIdSet_ = false; - this.waitingForInitialScriptsResponse_ = false; - - this.parsedScripts_ = {}; - this.requestNumberToBreakpointInfo_ = {}; - this.callFrames_ = []; - this.requestSeqToCallback_ = {}; -}; - - -/** - * Initializes scripts UI. This method is called every time Scripts panel - * is shown. It will send request for context id if it's not set yet. - */ -devtools.DebuggerAgent.prototype.initUI = function() -{ - // Initialize scripts cache when Scripts panel is shown first time. - if (this.scriptsPanelInitialized_) - return; - this.scriptsPanelInitialized_ = true; - if (this.contextId_) { - // We already have context id. This means that we are here from the - // very beginning of the page load cycle and hence will get all scripts - // via after-compile events. No need to request scripts for this session. - // - // There can be a number of scripts from after-compile events that are - // pending addition into the UI. - for (var scriptId in this.parsedScripts_) { - var script = this.parsedScripts_[scriptId]; - WebInspector.parsedScriptSource(scriptId, script.getUrl(), undefined /* script source */, script.getLineOffset() + 1, script.worldType()); - this.restoreBreakpoints_(scriptId, script.getUrl()); - } - return; - } - this.waitingForInitialScriptsResponse_ = true; - // Script list should be requested only when current context id is known. - RemoteDebuggerAgent.getContextId(); - this.requestScriptsWhenContextIdSet_ = true; -}; - - -/** - * Asynchronously requests the debugger for the script source. - * @param {number} scriptId Id of the script whose source should be resolved. - * @param {function(source:?string):void} callback Function that will be called - * when the source resolution is completed. "source" parameter will be null - * if the resolution fails. - */ -devtools.DebuggerAgent.prototype.resolveScriptSource = function(scriptId, callback) -{ - var script = this.parsedScripts_[scriptId]; - if (!script || script.isUnresolved()) { - callback(null); - return; - } - - var cmd = new devtools.DebugCommand("scripts", { - "ids": [scriptId], - "includeSource": true - }); - devtools.DebuggerAgent.sendCommand_(cmd); - // Force v8 execution so that it gets to processing the requested command. - RemoteDebuggerAgent.processDebugCommands(); - - var self = this; - this.requestSeqToCallback_[cmd.getSequenceNumber()] = function(msg) { - if (msg.isSuccess()) { - var scriptJson = msg.getBody()[0]; - if (scriptJson) { - script.source = scriptJson.source; - callback(scriptJson.source); - } - else - callback(null); - } else - callback(null); - }; -}; - - -/** - * Tells the v8 debugger to stop on as soon as possible. - */ -devtools.DebuggerAgent.prototype.pauseExecution = function() -{ - RemoteDebuggerCommandExecutor.DebuggerPauseScript(); -}; - - -/** - * @param {number} sourceId Id of the script fot the breakpoint. - * @param {number} line Number of the line for the breakpoint. - * @param {?string} condition The breakpoint condition. - */ -devtools.DebuggerAgent.prototype.addBreakpoint = function(sourceId, line, enabled, condition) -{ - var script = this.parsedScripts_[sourceId]; - if (!script) - return; - - line = devtools.DebuggerAgent.webkitToV8LineNumber_(line); - - var commandArguments; - if (script.getUrl()) { - var breakpoints = this.urlToBreakpoints_[script.getUrl()]; - if (breakpoints && breakpoints[line]) - return; - if (!breakpoints) { - breakpoints = {}; - this.urlToBreakpoints_[script.getUrl()] = breakpoints; - } - - var breakpointInfo = new devtools.BreakpointInfo(line, enabled, condition); - breakpoints[line] = breakpointInfo; - - commandArguments = { - "groupId": this.contextId_, - "type": "script", - "target": script.getUrl(), - "line": line, - "condition": condition - }; - } else { - var breakpointInfo = script.getBreakpointInfo(line); - if (breakpointInfo) - return; - - breakpointInfo = new devtools.BreakpointInfo(line, enabled, condition); - script.addBreakpointInfo(breakpointInfo); - - commandArguments = { - "groupId": this.contextId_, - "type": "scriptId", - "target": sourceId, - "line": line, - "condition": condition - }; - } - - if (!enabled) - return; - - var cmd = new devtools.DebugCommand("setbreakpoint", commandArguments); - - this.requestNumberToBreakpointInfo_[cmd.getSequenceNumber()] = breakpointInfo; - - devtools.DebuggerAgent.sendCommand_(cmd); - // Force v8 execution so that it gets to processing the requested command. - // It is necessary for being able to change a breakpoint just after it - // has been created (since we need an existing breakpoint id for that). - RemoteDebuggerAgent.processDebugCommands(); -}; - - -/** - * Changes given line of the script. - */ -devtools.DebuggerAgent.prototype.editScriptSource = function(sourceId, newContent, callback) -{ - var commandArguments = { - "script_id": sourceId, - "new_source": newContent - }; - - var cmd = new devtools.DebugCommand("changelive", commandArguments); - devtools.DebuggerAgent.sendCommand_(cmd); - this.requestSeqToCallback_[cmd.getSequenceNumber()] = function(msg) { - if (!msg.isSuccess()) { - callback(false, "Unable to modify source code within given scope. Only function bodies are editable at the moment.", null); - return; - } - - this.resolveScriptSource(sourceId, requestBacktrace.bind(this)); - }.bind(this); - - - function requestBacktrace(newScriptSource) { - if (WebInspector.panels.scripts.paused) - this.requestBacktrace_(handleBacktraceResponse.bind(this, newScriptSource)); - else - reportDidCommitEditing(newScriptSource); - } - - function handleBacktraceResponse(newScriptSource, msg) { - this.updateCallFramesFromBacktraceResponse_(msg); - reportDidCommitEditing(newScriptSource, this.callFrames_); - } - - function reportDidCommitEditing(newScriptSource, callFrames) { - callback(true, newScriptSource, callFrames); - } - - RemoteDebuggerAgent.processDebugCommands(); -}; - - -/** - * @param {number} sourceId Id of the script for the breakpoint. - * @param {number} line Number of the line for the breakpoint. - */ -devtools.DebuggerAgent.prototype.removeBreakpoint = function(sourceId, line) -{ - var script = this.parsedScripts_[sourceId]; - if (!script) - return; - - line = devtools.DebuggerAgent.webkitToV8LineNumber_(line); - - var breakpointInfo; - if (script.getUrl()) { - var breakpoints = this.urlToBreakpoints_[script.getUrl()]; - if (!breakpoints) - return; - breakpointInfo = breakpoints[line]; - delete breakpoints[line]; - } else { - breakpointInfo = script.getBreakpointInfo(line); - if (breakpointInfo) - script.removeBreakpointInfo(breakpointInfo); - } - - if (!breakpointInfo) - return; - - breakpointInfo.markAsRemoved(); - - var id = breakpointInfo.getV8Id(); - - // If we don't know id of this breakpoint in the v8 debugger we cannot send - // "clearbreakpoint" request. In that case it will be removed in - // "setbreakpoint" response handler when we learn the id. - if (id !== -1) { - this.requestClearBreakpoint_(id); - } -}; - - -/** - * @param {boolean} activated Whether breakpoints should be activated. - */ -devtools.DebuggerAgent.prototype.setBreakpointsActivated = function(activated) -{ - this.breakpointsActivated_ = activated; -}; - - -/** - * Tells the v8 debugger to step into the next statement. - */ -devtools.DebuggerAgent.prototype.stepIntoStatement = function() -{ - this.stepCommand_("in"); -}; - - -/** - * Tells the v8 debugger to step out of current function. - */ -devtools.DebuggerAgent.prototype.stepOutOfFunction = function() -{ - this.stepCommand_("out"); -}; - - -/** - * Tells the v8 debugger to step over the next statement. - */ -devtools.DebuggerAgent.prototype.stepOverStatement = function() -{ - this.stepCommand_("next"); -}; - - -/** - * Tells the v8 debugger to continue execution after it has been stopped on a - * breakpoint or an exception. - */ -devtools.DebuggerAgent.prototype.resumeExecution = function() -{ - this.clearExceptionMessage_(); - var cmd = new devtools.DebugCommand("continue"); - devtools.DebuggerAgent.sendCommand_(cmd); -}; - - -/** - * Creates exception message and schedules it for addition to the resource upon - * backtrace availability. - * @param {string} url Resource url. - * @param {number} line Resource line number. - * @param {string} message Exception text. - */ -devtools.DebuggerAgent.prototype.createExceptionMessage_ = function(url, line, message) -{ - this.currentExceptionMessage_ = new WebInspector.ConsoleMessage( - WebInspector.ConsoleMessage.MessageSource.JS, - WebInspector.ConsoleMessage.MessageType.Log, - WebInspector.ConsoleMessage.MessageLevel.Error, - line, - url, - 0 /* group level */, - 1 /* repeat count */, - "[Exception] " + message); -}; - - -/** - * Shows pending exception message that is created with createExceptionMessage_ - * earlier. - */ -devtools.DebuggerAgent.prototype.showPendingExceptionMessage_ = function() -{ - if (!this.currentExceptionMessage_) - return; - var msg = this.currentExceptionMessage_; - var resource = WebInspector.resourceURLMap[msg.url]; - if (resource) { - msg.resource = resource; - WebInspector.panels.resources.addMessageToResource(resource, msg); - } else - this.currentExceptionMessage_ = null; -}; - - -/** - * Clears exception message from the resource. - */ -devtools.DebuggerAgent.prototype.clearExceptionMessage_ = function() -{ - if (this.currentExceptionMessage_) { - var messageElement = this.currentExceptionMessage_._resourceMessageLineElement; - var bubble = messageElement.parentElement; - bubble.removeChild(messageElement); - if (!bubble.firstChild) { - // Last message in bubble removed. - bubble.parentElement.removeChild(bubble); - } - this.currentExceptionMessage_ = null; - } -}; - - -/** - * @return {boolean} True iff the debugger will pause execution on the - * exceptions. - */ -devtools.DebuggerAgent.prototype.pauseOnExceptions = function() -{ - return this.pauseOnExceptions_; -}; - - -/** - * Tells whether to pause in the debugger on the exceptions or not. - * @param {boolean} value True iff execution should be stopped in the debugger - * on the exceptions. - */ -devtools.DebuggerAgent.prototype.setPauseOnExceptions = function(value) -{ - this.pauseOnExceptions_ = value; -}; - - -/** - * Sends "evaluate" request to the debugger. - * @param {Object} arguments Request arguments map. - * @param {function(devtools.DebuggerMessage)} callback Callback to be called - * when response is received. - */ -devtools.DebuggerAgent.prototype.requestEvaluate = function(arguments, callback) -{ - var cmd = new devtools.DebugCommand("evaluate", arguments); - devtools.DebuggerAgent.sendCommand_(cmd); - this.requestSeqToCallback_[cmd.getSequenceNumber()] = callback; -}; - - -/** - * Sends "lookup" request for each unresolved property of the object. When - * response is received the properties will be changed with their resolved - * values. - * @param {Object} object Object whose properties should be resolved. - * @param {function(devtools.DebuggerMessage)} Callback to be called when all - * children are resolved. - * @param {boolean} noIntrinsic Whether intrinsic properties should be included. - */ -devtools.DebuggerAgent.prototype.resolveChildren = function(object, callback, noIntrinsic) -{ - if ("handle" in object) { - var result = []; - devtools.DebuggerAgent.formatObjectProperties_(object, result, noIntrinsic); - callback(result); - } else { - this.requestLookup_([object.ref], function(msg) { - var result = []; - if (msg.isSuccess()) { - var handleToObject = msg.getBody(); - var resolved = handleToObject[object.ref]; - devtools.DebuggerAgent.formatObjectProperties_(resolved, result, noIntrinsic); - callback(result); - } else - callback([]); - }); - } -}; - - -/** - * Sends "scope" request for the scope object to resolve its variables. - * @param {Object} scope Scope to be resolved. - * @param {function(Array.<WebInspector.ObjectPropertyProxy>)} callback - * Callback to be called when all scope variables are resolved. - */ -devtools.DebuggerAgent.prototype.resolveScope = function(scope, callback) -{ - var cmd = new devtools.DebugCommand("scope", { - "frameNumber": scope.frameNumber, - "number": scope.index, - "compactFormat": true - }); - devtools.DebuggerAgent.sendCommand_(cmd); - this.requestSeqToCallback_[cmd.getSequenceNumber()] = function(msg) { - var result = []; - if (msg.isSuccess()) { - var scopeObjectJson = msg.getBody().object; - devtools.DebuggerAgent.formatObjectProperties_(scopeObjectJson, result, true /* no intrinsic */); - } - callback(result); - }; -}; - - -/** - * Sends "scopes" request for the frame object to resolve all variables - * available in the frame. - * @param {number} callFrameId Id of call frame whose variables need to - * be resolved. - * @param {function(Object)} callback Callback to be called when all frame - * variables are resolved. - */ -devtools.DebuggerAgent.prototype.resolveFrameVariables_ = function(callFrameId, callback) -{ - var result = {}; - - var frame = this.callFrames_[callFrameId]; - if (!frame) { - callback(result); - return; - } - - var waitingResponses = 0; - function scopeResponseHandler(msg) { - waitingResponses--; - - if (msg.isSuccess()) { - var properties = msg.getBody().object.properties; - for (var j = 0; j < properties.length; j++) - result[properties[j].name] = true; - } - - // When all scopes are resolved invoke the callback. - if (waitingResponses === 0) - callback(result); - }; - - for (var i = 0; i < frame.scopeChain.length; i++) { - var scope = frame.scopeChain[i].objectId; - if (scope.type === devtools.DebuggerAgent.ScopeType.Global) { - // Do not resolve global scope since it takes for too long. - // TODO(yurys): allow to send only property names in the response. - continue; - } - var cmd = new devtools.DebugCommand("scope", { - "frameNumber": scope.frameNumber, - "number": scope.index, - "compactFormat": true - }); - devtools.DebuggerAgent.sendCommand_(cmd); - this.requestSeqToCallback_[cmd.getSequenceNumber()] = scopeResponseHandler; - waitingResponses++; - } -}; - -/** - * Evaluates the expressionString to an object in the call frame and reports - * all its properties. - * @param{string} expressionString Expression whose properties should be - * collected. - * @param{number} callFrameId The frame id. - * @param{function(Object result,bool isException)} reportCompletions Callback - * function. - */ -devtools.DebuggerAgent.prototype.resolveCompletionsOnFrame = function(expressionString, callFrameId, reportCompletions) -{ - if (expressionString) { - expressionString = "var obj = " + expressionString + - "; var names = {}; for (var n in obj) { names[n] = true; };" + - "names;"; - this.evaluateInCallFrame( - callFrameId, - expressionString, - function(result) { - var names = {}; - if (!result.isException) { - var props = result.value.objectId.properties; - // Put all object properties into the map. - for (var i = 0; i < props.length; i++) - names[props[i].name] = true; - } - reportCompletions(names, result.isException); - }); - } else { - this.resolveFrameVariables_(callFrameId, - function(result) { - reportCompletions(result, false /* isException */); - }); - } -}; - - -/** - * @param{number} scriptId - * @return {string} Type of the context of the script with specified id. - */ -devtools.DebuggerAgent.prototype.getScriptContextType = function(scriptId) -{ - return this.parsedScripts_[scriptId].getContextType(); -}; - - -/** - * Removes specified breakpoint from the v8 debugger. - * @param {number} breakpointId Id of the breakpoint in the v8 debugger. - */ -devtools.DebuggerAgent.prototype.requestClearBreakpoint_ = function(breakpointId) -{ - var cmd = new devtools.DebugCommand("clearbreakpoint", { - "breakpoint": breakpointId - }); - devtools.DebuggerAgent.sendCommand_(cmd); -}; - - -/** - * Sends "backtrace" request to v8. - */ -devtools.DebuggerAgent.prototype.requestBacktrace_ = function(opt_customHandler) -{ - var cmd = new devtools.DebugCommand("backtrace", { - "compactFormat":true - }); - devtools.DebuggerAgent.sendCommand_(cmd); - var responseHandler = opt_customHandler ? opt_customHandler : this.handleBacktraceResponse_.bind(this); - this.requestSeqToCallback_[cmd.getSequenceNumber()] = responseHandler; -}; - - -/** - * Sends command to v8 debugger. - * @param {devtools.DebugCommand} cmd Command to execute. - */ -devtools.DebuggerAgent.sendCommand_ = function(cmd) -{ - RemoteDebuggerCommandExecutor.DebuggerCommand(cmd.toJSONProtocol()); -}; - - -/** - * Tells the v8 debugger to make the next execution step. - * @param {string} action "in", "out" or "next" action. - */ -devtools.DebuggerAgent.prototype.stepCommand_ = function(action) -{ - this.clearExceptionMessage_(); - var cmd = new devtools.DebugCommand("continue", { - "stepaction": action, - "stepcount": 1 - }); - devtools.DebuggerAgent.sendCommand_(cmd); -}; - - -/** - * Sends "lookup" request to v8. - * @param {number} handle Handle to the object to lookup. - */ -devtools.DebuggerAgent.prototype.requestLookup_ = function(handles, callback) -{ - var cmd = new devtools.DebugCommand("lookup", { - "compactFormat":true, - "handles": handles - }); - devtools.DebuggerAgent.sendCommand_(cmd); - this.requestSeqToCallback_[cmd.getSequenceNumber()] = callback; -}; - - -/** - * Sets debugger context id for scripts filtering. - * @param {number} contextId Id of the inspected page global context. - */ -devtools.DebuggerAgent.prototype.setContextId_ = function(contextId) -{ - this.contextId_ = contextId; - - // If it's the first time context id is set request scripts list. - if (this.requestScriptsWhenContextIdSet_) { - this.requestScriptsWhenContextIdSet_ = false; - var cmd = new devtools.DebugCommand("scripts", { - "includeSource": false - }); - devtools.DebuggerAgent.sendCommand_(cmd); - // Force v8 execution so that it gets to processing the requested command. - RemoteDebuggerAgent.processDebugCommands(); - - var debuggerAgent = this; - this.requestSeqToCallback_[cmd.getSequenceNumber()] = function(msg) { - // Handle the response iff the context id hasn't changed since the request - // was issued. Otherwise if the context id did change all up-to-date - // scripts will be pushed in after compile events and there is no need to - // handle the response. - if (contextId === debuggerAgent.contextId_) - debuggerAgent.handleScriptsResponse_(msg); - - // We received initial scripts response so flush the flag and - // see if there is an unhandled backtrace response. - debuggerAgent.waitingForInitialScriptsResponse_ = false; - if (debuggerAgent.pendingBacktraceResponseHandler_) { - debuggerAgent.pendingBacktraceResponseHandler_(); - debuggerAgent.pendingBacktraceResponseHandler_ = null; - } - }; - } -}; - - -/** - * Handles output sent by v8 debugger. The output is either asynchronous event - * or response to a previously sent request. See protocol definitioun for more - * details on the output format. - * @param {string} output - */ -devtools.DebuggerAgent.prototype.handleDebuggerOutput_ = function(output) -{ - var msg; - try { - msg = new devtools.DebuggerMessage(output); - } catch(e) { - debugPrint("Failed to handle debugger response:\n" + e); - throw e; - } - - if (msg.getType() === "event") { - if (msg.getEvent() === "break") - this.handleBreakEvent_(msg); - else if (msg.getEvent() === "exception") - this.handleExceptionEvent_(msg); - else if (msg.getEvent() === "afterCompile") - this.handleAfterCompileEvent_(msg); - } else if (msg.getType() === "response") { - if (msg.getCommand() === "scripts") - this.invokeCallbackForResponse_(msg); - else if (msg.getCommand() === "setbreakpoint") - this.handleSetBreakpointResponse_(msg); - else if (msg.getCommand() === "changelive") - this.invokeCallbackForResponse_(msg); - else if (msg.getCommand() === "clearbreakpoint") - this.handleClearBreakpointResponse_(msg); - else if (msg.getCommand() === "backtrace") - this.invokeCallbackForResponse_(msg); - else if (msg.getCommand() === "lookup") - this.invokeCallbackForResponse_(msg); - else if (msg.getCommand() === "evaluate") - this.invokeCallbackForResponse_(msg); - else if (msg.getCommand() === "scope") - this.invokeCallbackForResponse_(msg); - } -}; - - -/** - * @param {devtools.DebuggerMessage} msg - */ -devtools.DebuggerAgent.prototype.handleBreakEvent_ = function(msg) -{ - if (!this.breakpointsActivated_) { - this.resumeExecution(); - return; - } - - // Force scripts panel to be shown first. - WebInspector.currentPanel = WebInspector.panels.scripts; - - var body = msg.getBody(); - - var line = devtools.DebuggerAgent.v8ToWwebkitLineNumber_(body.sourceLine); - this.requestBacktrace_(); -}; - - -/** - * @param {devtools.DebuggerMessage} msg - */ -devtools.DebuggerAgent.prototype.handleExceptionEvent_ = function(msg) -{ - var body = msg.getBody(); - // No script field in the body means that v8 failed to parse the script. We - // resume execution on parser errors automatically. - if (this.pauseOnExceptions_ && body.script) { - var line = devtools.DebuggerAgent.v8ToWwebkitLineNumber_(body.sourceLine); - this.createExceptionMessage_(body.script.name, line, body.exception.text); - this.requestBacktrace_(); - - // Force scripts panel to be shown. - WebInspector.currentPanel = WebInspector.panels.scripts; - } else - this.resumeExecution(); -}; - - -/** - * @param {devtools.DebuggerMessage} msg - */ -devtools.DebuggerAgent.prototype.handleScriptsResponse_ = function(msg) -{ - var scripts = msg.getBody(); - for (var i = 0; i < scripts.length; i++) { - var script = scripts[i]; - - // Skip scripts from other tabs. - if (!this.isScriptFromInspectedContext_(script, msg)) - continue; - - // We may already have received the info in an afterCompile event. - if (script.id in this.parsedScripts_) - continue; - this.addScriptInfo_(script, msg); - } -}; - - -/** - * @param {Object} script Json object representing script. - * @param {devtools.DebuggerMessage} msg Debugger response. - */ -devtools.DebuggerAgent.prototype.isScriptFromInspectedContext_ = function(script, msg) -{ - if (!script.context) { - // Always ignore scripts from the utility context. - return false; - } - var context = msg.lookup(script.context.ref); - var scriptContextId = context.data; - if (typeof scriptContextId === "undefined") - return false; // Always ignore scripts from the utility context. - if (this.contextId_ === null) - return true; - // Find the id from context data. The context data has the format "type,id". - var comma = context.data.indexOf(","); - if (comma < 0) - return false; - return (context.data.substring(comma + 1) == this.contextId_); -}; - - -/** - * @param {devtools.DebuggerMessage} msg - */ -devtools.DebuggerAgent.prototype.handleSetBreakpointResponse_ = function(msg) -{ - var requestSeq = msg.getRequestSeq(); - var breakpointInfo = this.requestNumberToBreakpointInfo_[requestSeq]; - if (!breakpointInfo) { - // TODO(yurys): handle this case - return; - } - delete this.requestNumberToBreakpointInfo_[requestSeq]; - if (!msg.isSuccess()) { - // TODO(yurys): handle this case - return; - } - var idInV8 = msg.getBody().breakpoint; - breakpointInfo.setV8Id(idInV8); - - if (breakpointInfo.isRemoved()) - this.requestClearBreakpoint_(idInV8); -}; - - -/** - * @param {devtools.DebuggerMessage} msg - */ -devtools.DebuggerAgent.prototype.handleAfterCompileEvent_ = function(msg) -{ - if (!this.contextId_) { - // Ignore scripts delta if main request has not been issued yet. - return; - } - var script = msg.getBody().script; - - // Ignore scripts from other tabs. - if (!this.isScriptFromInspectedContext_(script, msg)) - return; - this.addScriptInfo_(script, msg); -}; - - -/** - * Adds the script info to the local cache. This method assumes that the script - * is not in the cache yet. - * @param {Object} script Script json object from the debugger message. - * @param {devtools.DebuggerMessage} msg Debugger message containing the script - * data. - */ -devtools.DebuggerAgent.prototype.addScriptInfo_ = function(script, msg) -{ - var context = msg.lookup(script.context.ref); - // Find the type from context data. The context data has the format - // "type,id". - var comma = context.data.indexOf(","); - if (comma < 0) - return; - var contextType = context.data.substring(0, comma); - var info = new devtools.ScriptInfo(script.id, script.name, script.lineOffset, contextType); - this.parsedScripts_[script.id] = info; - if (this.scriptsPanelInitialized_) { - // Only report script as parsed after scripts panel has been shown. - WebInspector.parsedScriptSource(script.id, script.name, script.source, script.lineOffset + 1, info.worldType()); - this.restoreBreakpoints_(script.id, script.name); - } -}; - - -/** - * @param {devtools.DebuggerMessage} msg - */ -devtools.DebuggerAgent.prototype.handleClearBreakpointResponse_ = function(msg) -{ - // Do nothing. -}; - - -/** - * Handles response to "backtrace" command. - * @param {devtools.DebuggerMessage} msg - */ -devtools.DebuggerAgent.prototype.handleBacktraceResponse_ = function(msg) -{ - if (this.waitingForInitialScriptsResponse_) - this.pendingBacktraceResponseHandler_ = this.doHandleBacktraceResponse_.bind(this, msg); - else - this.doHandleBacktraceResponse_(msg); -}; - - -/** - * @param {devtools.DebuggerMessage} msg - */ -devtools.DebuggerAgent.prototype.doHandleBacktraceResponse_ = function(msg) -{ - this.updateCallFramesFromBacktraceResponse_(msg); - WebInspector.pausedScript(this.callFrames_); - this.showPendingExceptionMessage_(); - InspectorFrontendHost.bringToFront(); -}; - - -devtools.DebuggerAgent.prototype.updateCallFramesFromBacktraceResponse_ = function(msg) -{ - var frames = msg.getBody().frames; - this.callFrames_ = []; - for (var i = 0; i < frames.length; ++i) - this.callFrames_.push(this.formatCallFrame_(frames[i])); - return this.callFrames_; -}; - - -/** - * Evaluates code on given callframe. - */ -devtools.DebuggerAgent.prototype.evaluateInCallFrame = function(callFrameId, code, callback) -{ - var callFrame = this.callFrames_[callFrameId]; - callFrame.evaluate_(code, callback); -}; - - -/** - * Handles response to a command by invoking its callback (if any). - * @param {devtools.DebuggerMessage} msg - * @return {boolean} Whether a callback for the given message was found and - * excuted. - */ -devtools.DebuggerAgent.prototype.invokeCallbackForResponse_ = function(msg) -{ - var callback = this.requestSeqToCallback_[msg.getRequestSeq()]; - if (!callback) { - // It may happend if reset was called. - return false; - } - delete this.requestSeqToCallback_[msg.getRequestSeq()]; - callback(msg); - return true; -}; - - -/** - * @param {Object} stackFrame Frame json object from "backtrace" response. - * @return {!devtools.CallFrame} Object containing information related to the - * call frame in the format expected by ScriptsPanel and its panes. - */ -devtools.DebuggerAgent.prototype.formatCallFrame_ = function(stackFrame) -{ - var func = stackFrame.func; - var sourceId = func.scriptId; - - // Add service script if it does not exist. - var existingScript = this.parsedScripts_[sourceId]; - if (!existingScript) { - this.parsedScripts_[sourceId] = new devtools.ScriptInfo(sourceId, null /* name */, 0 /* line */, "unknown" /* type */, true /* unresolved */); - WebInspector.parsedScriptSource(sourceId, null, null, 0, WebInspector.Script.WorldType.MAIN_WORLD); - } - - var funcName = func.name || func.inferredName; - var line = devtools.DebuggerAgent.v8ToWwebkitLineNumber_(stackFrame.line); - - // Add basic scope chain info with scope variables. - var scopeChain = []; - var ScopeType = devtools.DebuggerAgent.ScopeType; - for (var i = 0; i < stackFrame.scopes.length; i++) { - var scope = stackFrame.scopes[i]; - scope.frameNumber = stackFrame.index; - var scopeObjectProxy = new WebInspector.ObjectProxy(0, scope, [], "", true); - scopeObjectProxy.isScope = true; - switch(scope.type) { - case ScopeType.Global: - scopeObjectProxy.isDocument = true; - break; - case ScopeType.Local: - scopeObjectProxy.isLocal = true; - scopeObjectProxy.thisObject = devtools.DebuggerAgent.formatObjectProxy_(stackFrame.receiver); - break; - case ScopeType.With: - // Catch scope is treated as a regular with scope by WebKit so we - // also treat it this way. - case ScopeType.Catch: - scopeObjectProxy.isWithBlock = true; - break; - case ScopeType.Closure: - scopeObjectProxy.isClosure = true; - break; - } - scopeChain.push(scopeObjectProxy); - } - return new devtools.CallFrame(stackFrame.index, "function", funcName, sourceId, line, scopeChain); -}; - - -/** - * Restores breakpoints associated with the URL of a newly parsed script. - * @param {number} sourceID The id of the script. - * @param {string} scriptUrl URL of the script. - */ -devtools.DebuggerAgent.prototype.restoreBreakpoints_ = function(sourceID, scriptUrl) -{ - var breakpoints = this.urlToBreakpoints_[scriptUrl]; - for (var line in breakpoints) { - if (parseInt(line) == line) { - var v8Line = devtools.DebuggerAgent.v8ToWwebkitLineNumber_(parseInt(line)); - WebInspector.restoredBreakpoint(sourceID, scriptUrl, v8Line, breakpoints[line].enabled(), breakpoints[line].condition()); - } - } -}; - - -/** - * Collects properties for an object from the debugger response. - * @param {Object} object An object from the debugger protocol response. - * @param {Array.<WebInspector.ObjectPropertyProxy>} result An array to put the - * properties into. - * @param {boolean} noIntrinsic Whether intrinsic properties should be - * included. - */ -devtools.DebuggerAgent.formatObjectProperties_ = function(object, result, noIntrinsic) -{ - devtools.DebuggerAgent.propertiesToProxies_(object.properties, result); - if (noIntrinsic) - return; - - result.push(new WebInspector.ObjectPropertyProxy("__proto__", devtools.DebuggerAgent.formatObjectProxy_(object.protoObject))); - result.push(new WebInspector.ObjectPropertyProxy("constructor", devtools.DebuggerAgent.formatObjectProxy_(object.constructorFunction))); - // Don't add 'prototype' property since it is one of the regualar properties. -}; - - -/** - * For each property in "properties" creates its proxy representative. - * @param {Array.<Object>} properties Receiver properties or locals array from - * "backtrace" response. - * @param {Array.<WebInspector.ObjectPropertyProxy>} Results holder. - */ -devtools.DebuggerAgent.propertiesToProxies_ = function(properties, result) -{ - var map = {}; - for (var i = 0; i < properties.length; ++i) { - var property = properties[i]; - var name = String(property.name); - if (name in map) - continue; - map[name] = true; - var value = devtools.DebuggerAgent.formatObjectProxy_(property.value); - var propertyProxy = new WebInspector.ObjectPropertyProxy(name, value); - result.push(propertyProxy); - } -}; - - -/** - * @param {Object} v An object reference from the debugger response. - * @return {*} The value representation expected by ScriptsPanel. - */ -devtools.DebuggerAgent.formatObjectProxy_ = function(v) -{ - var description; - var hasChildren = false; - if (v.type === "object") { - description = v.className; - hasChildren = true; - } else if (v.type === "function") { - if (v.source) - description = v.source; - else - description = "function " + v.name + "()"; - hasChildren = true; - } else if (v.type === "undefined") - description = "undefined"; - else if (v.type === "null") - description = "null"; - else if (typeof v.value !== "undefined") { - // Check for undefined and null types before checking the value, otherwise - // null/undefined may have blank value. - description = v.value; - } else - description = "<unresolved ref: " + v.ref + ", type: " + v.type + ">"; - - var proxy = new WebInspector.ObjectProxy(0, v, [], description, hasChildren); - proxy.type = v.type; - proxy.isV8Ref = true; - return proxy; -}; - - -/** - * Converts line number from Web Inspector UI(1-based) to v8(0-based). - * @param {number} line Resource line number in Web Inspector UI. - * @return {number} The line number in v8. - */ -devtools.DebuggerAgent.webkitToV8LineNumber_ = function(line) -{ - return line - 1; -}; - - -/** - * Converts line number from v8(0-based) to Web Inspector UI(1-based). - * @param {number} line Resource line number in v8. - * @return {number} The line number in Web Inspector. - */ -devtools.DebuggerAgent.v8ToWwebkitLineNumber_ = function(line) -{ - return line + 1; -}; - - -/** - * @param {number} scriptId Id of the script. - * @param {?string} url Script resource URL if any. - * @param {number} lineOffset First line 0-based offset in the containing - * document. - * @param {string} contextType Type of the script's context: - * "page" - regular script from html page - * "injected" - extension content script - * @param {bool} opt_isUnresolved If true, script will not be resolved. - * @constructor - */ -devtools.ScriptInfo = function(scriptId, url, lineOffset, contextType, opt_isUnresolved) -{ - this.scriptId_ = scriptId; - this.lineOffset_ = lineOffset; - this.contextType_ = contextType; - this.url_ = url; - this.isUnresolved_ = opt_isUnresolved; - - this.lineToBreakpointInfo_ = {}; -}; - - -/** - * @return {number} - */ -devtools.ScriptInfo.prototype.getLineOffset = function() -{ - return this.lineOffset_; -}; - - -/** - * @return {string} - */ -devtools.ScriptInfo.prototype.getContextType = function() -{ - return this.contextType_; -}; - - -/** - * @return {?string} - */ -devtools.ScriptInfo.prototype.getUrl = function() -{ - return this.url_; -}; - - -/** - * @return {?bool} - */ -devtools.ScriptInfo.prototype.isUnresolved = function() -{ - return this.isUnresolved_; -}; - - -devtools.ScriptInfo.prototype.worldType = function() -{ - if (this.contextType_ === "injected") - return WebInspector.Script.WorldType.EXTENSIONS_WORLD; - return WebInspector.Script.WorldType.MAIN_WORLD; -}; - - -/** - * @param {number} line 0-based line number in the script. - * @return {?devtools.BreakpointInfo} Information on a breakpoint at the - * specified line in the script or undefined if there is no breakpoint at - * that line. - */ -devtools.ScriptInfo.prototype.getBreakpointInfo = function(line) -{ - return this.lineToBreakpointInfo_[line]; -}; - - -/** - * Adds breakpoint info to the script. - * @param {devtools.BreakpointInfo} breakpoint - */ -devtools.ScriptInfo.prototype.addBreakpointInfo = function(breakpoint) -{ - this.lineToBreakpointInfo_[breakpoint.getLine()] = breakpoint; -}; - - -/** - * @param {devtools.BreakpointInfo} breakpoint Breakpoint info to be removed. - */ -devtools.ScriptInfo.prototype.removeBreakpointInfo = function(breakpoint) -{ - var line = breakpoint.getLine(); - delete this.lineToBreakpointInfo_[line]; -}; - - - -/** - * @param {number} line Breakpoint 0-based line number in the containing script. - * @constructor - */ -devtools.BreakpointInfo = function(line, enabled, condition) -{ - this.line_ = line; - this.enabled_ = enabled; - this.condition_ = condition; - this.v8id_ = -1; - this.removed_ = false; -}; - - -/** - * @return {number} - */ -devtools.BreakpointInfo.prototype.getLine = function(n) -{ - return this.line_; -}; - - -/** - * @return {number} Unique identifier of this breakpoint in the v8 debugger. - */ -devtools.BreakpointInfo.prototype.getV8Id = function(n) -{ - return this.v8id_; -}; - - -/** - * Sets id of this breakpoint in the v8 debugger. - * @param {number} id - */ -devtools.BreakpointInfo.prototype.setV8Id = function(id) -{ - this.v8id_ = id; -}; - - -/** - * Marks this breakpoint as removed from the front-end. - */ -devtools.BreakpointInfo.prototype.markAsRemoved = function() -{ - this.removed_ = true; -}; - - -/** - * @return {boolean} Whether this breakpoint has been removed from the - * front-end. - */ -devtools.BreakpointInfo.prototype.isRemoved = function() -{ - return this.removed_; -}; - - -/** - * @return {boolean} Whether this breakpoint is enabled. - */ -devtools.BreakpointInfo.prototype.enabled = function() -{ - return this.enabled_; -}; - - -/** - * @return {?string} Breakpoint condition. - */ -devtools.BreakpointInfo.prototype.condition = function() -{ - return this.condition_; -}; - - -/** - * Call stack frame data. - * @param {string} id CallFrame id. - * @param {string} type CallFrame type. - * @param {string} functionName CallFrame type. - * @param {string} sourceID Source id. - * @param {number} line Source line. - * @param {Array.<Object>} scopeChain Array of scoped objects. - * @construnctor - */ -devtools.CallFrame = function(id, type, functionName, sourceID, line, scopeChain) -{ - this.id = id; - this.type = type; - this.functionName = functionName; - this.sourceID = sourceID; - this.line = line; - this.scopeChain = scopeChain; -}; - - -/** - * This method issues asynchronous evaluate request, reports result to the - * callback. - * @param {string} expression An expression to be evaluated in the context of - * this call frame. - * @param {function(Object):undefined} callback Callback to report result to. - */ -devtools.CallFrame.prototype.evaluate_ = function(expression, callback) -{ - devtools.tools.getDebuggerAgent().requestEvaluate({ - "expression": expression, - "frame": this.id, - "global": false, - "disable_break": false, - "compactFormat": true, - "maxStringLength": -1 - }, - function(response) { - var result = {}; - if (response.isSuccess()) - result.value = devtools.DebuggerAgent.formatObjectProxy_(response.getBody()); - else { - result.value = response.getMessage(); - result.isException = true; - } - callback(result); - }); -}; - - -/** - * JSON based commands sent to v8 debugger. - * @param {string} command Name of the command to execute. - * @param {Object} opt_arguments Command-specific arguments map. - * @constructor - */ -devtools.DebugCommand = function(command, opt_arguments) -{ - this.command_ = command; - this.type_ = "request"; - this.seq_ = ++devtools.DebugCommand.nextSeq_; - if (opt_arguments) - this.arguments_ = opt_arguments; -}; - - -/** - * Next unique number to be used as debugger request sequence number. - * @type {number} - */ -devtools.DebugCommand.nextSeq_ = 1; - - -/** - * @return {number} - */ -devtools.DebugCommand.prototype.getSequenceNumber = function() -{ - return this.seq_; -}; - - -/** - * @return {string} - */ -devtools.DebugCommand.prototype.toJSONProtocol = function() -{ - var json = { - "seq": this.seq_, - "type": this.type_, - "command": this.command_ - } - if (this.arguments_) - json.arguments = this.arguments_; - return JSON.stringify(json); -}; - - -/** - * JSON messages sent from v8 debugger. See protocol definition for more - * details: http://code.google.com/p/v8/wiki/DebuggerProtocol - * @param {string} msg Raw protocol packet as JSON string. - * @constructor - */ -devtools.DebuggerMessage = function(msg) -{ - this.packet_ = JSON.parse(msg); - this.refs_ = []; - if (this.packet_.refs) { - for (var i = 0; i < this.packet_.refs.length; i++) - this.refs_[this.packet_.refs[i].handle] = this.packet_.refs[i]; - } -}; - - -/** - * @return {string} The packet type. - */ -devtools.DebuggerMessage.prototype.getType = function() -{ - return this.packet_.type; -}; - - -/** - * @return {?string} The packet event if the message is an event. - */ -devtools.DebuggerMessage.prototype.getEvent = function() -{ - return this.packet_.event; -}; - - -/** - * @return {?string} The packet command if the message is a response to a - * command. - */ -devtools.DebuggerMessage.prototype.getCommand = function() -{ - return this.packet_.command; -}; - - -/** - * @return {number} The packet request sequence. - */ -devtools.DebuggerMessage.prototype.getRequestSeq = function() -{ - return this.packet_.request_seq; -}; - - -/** - * @return {number} Whether the v8 is running after processing the request. - */ -devtools.DebuggerMessage.prototype.isRunning = function() -{ - return this.packet_.running ? true : false; -}; - - -/** - * @return {boolean} Whether the request succeeded. - */ -devtools.DebuggerMessage.prototype.isSuccess = function() -{ - return this.packet_.success ? true : false; -}; - - -/** - * @return {string} - */ -devtools.DebuggerMessage.prototype.getMessage = function() -{ - return this.packet_.message; -}; - - -/** - * @return {Object} Parsed message body json. - */ -devtools.DebuggerMessage.prototype.getBody = function() -{ - return this.packet_.body; -}; - - -/** - * @param {number} handle Object handle. - * @return {?Object} Returns the object with the handle if it was sent in this - * message(some objects referenced by handles may be missing in the message). - */ -devtools.DebuggerMessage.prototype.lookup = function(handle) -{ - return this.refs_[handle]; -}; diff --git a/WebKit/chromium/src/js/DebuggerScript.js b/WebKit/chromium/src/js/DebuggerScript.js index 70c2fbe..7181d74 100644 --- a/WebKit/chromium/src/js/DebuggerScript.js +++ b/WebKit/chromium/src/js/DebuggerScript.js @@ -97,7 +97,8 @@ DebuggerScript.setBreakpoint = function(execState, args) if (!args.enabled) Debug.disableScriptBreakPoint(breakId); - var actualLineNumber = args.lineNumber; // TODO: replace with real stuff after v8 roll. + var locations = Debug.findBreakPointActualLocations(breakId); + var actualLineNumber = locations.length ? locations[0].line : args.lineNumber; var key = args.scriptId + ":" + actualLineNumber; if (key in DebuggerScript._breakpoints) { @@ -181,7 +182,7 @@ DebuggerScript.editScriptSource = function(scriptId, newSource) throw("Script not found"); var changeLog = []; - Debug.LiveEdit.SetScriptSource(scriptToEdit, newSource, changeLog); + Debug.LiveEdit.SetScriptSource(scriptToEdit, newSource, false, changeLog); return scriptToEdit.source; } diff --git a/WebKit/chromium/src/js/DevTools.js b/WebKit/chromium/src/js/DevTools.js index 851c934..35cca2f 100644 --- a/WebKit/chromium/src/js/DevTools.js +++ b/WebKit/chromium/src/js/DevTools.js @@ -62,21 +62,11 @@ devtools.ToolsAgent = function() { RemoteToolsAgent.didDispatchOn = WebInspector.Callback.processCallback; RemoteToolsAgent.dispatchOnClient = this.dispatchOnClient_.bind(this); - this.debuggerAgent_ = new devtools.DebuggerAgent(); this.profilerAgent_ = new devtools.ProfilerAgent(); }; /** - * Resets tools agent to its initial state. - */ -devtools.ToolsAgent.prototype.reset = function() -{ - this.debuggerAgent_.reset(); -}; - - -/** * @param {string} script Script exression to be evaluated in the context of the * inspected page. * @param {function(Object|string, boolean):undefined} opt_callback Function to @@ -89,15 +79,6 @@ devtools.ToolsAgent.prototype.evaluateJavaScript = function(script, opt_callback /** - * @return {devtools.DebuggerAgent} Debugger agent instance. - */ -devtools.ToolsAgent.prototype.getDebuggerAgent = function() -{ - return this.debuggerAgent_; -}; - - -/** * @return {devtools.ProfilerAgent} Profiler agent instance. */ devtools.ToolsAgent.prototype.getProfilerAgent = function() @@ -106,16 +87,6 @@ devtools.ToolsAgent.prototype.getProfilerAgent = function() }; -(function () { -var orig = WebInspector.reset; -WebInspector.reset = function() -{ - devtools.tools.reset(); - orig.call(this); -}; -})(); - - /** * @param {string} message Serialized call to be dispatched on WebInspector. * @private @@ -165,7 +136,6 @@ var oldLoaded = WebInspector.loaded; WebInspector.loaded = function() { devtools.tools = new devtools.ToolsAgent(); - devtools.tools.reset(); Preferences.ignoreWhitespace = false; Preferences.samplingCPUProfiler = true; @@ -173,6 +143,7 @@ WebInspector.loaded = function() Preferences.debuggerAlwaysEnabled = true; Preferences.profilerAlwaysEnabled = true; Preferences.canEditScriptSource = true; + Preferences.appCacheEnabled = false; oldLoaded.call(this); @@ -197,76 +168,6 @@ devtools.domContentLoaded = function() document.addEventListener("DOMContentLoaded", devtools.domContentLoaded, false); -if (!window.v8ScriptDebugServerEnabled) { - -(function() -{ - var oldShow = WebInspector.ScriptsPanel.prototype.show; - WebInspector.ScriptsPanel.prototype.show = function() - { - devtools.tools.getDebuggerAgent().initUI(); - this.enableToggleButton.visible = false; - oldShow.call(this); - }; -})(); - - -(function () { -var orig = InjectedScriptAccess.prototype.getProperties; -InjectedScriptAccess.prototype.getProperties = function(objectProxy, ignoreHasOwnProperty, abbreviate, callback) -{ - if (objectProxy.isScope) - devtools.tools.getDebuggerAgent().resolveScope(objectProxy.objectId, callback); - else if (objectProxy.isV8Ref) - devtools.tools.getDebuggerAgent().resolveChildren(objectProxy.objectId, callback, false); - else - orig.apply(this, arguments); -}; -})(); - - -(function() -{ -InjectedScriptAccess.prototype.evaluateInCallFrame = function(callFrameId, code, objectGroup, callback) -{ - //TODO(pfeldman): remove once 49084 is rolled. - if (!callback) - callback = objectGroup; - devtools.tools.getDebuggerAgent().evaluateInCallFrame(callFrameId, code, callback); -}; -})(); - - -(function() -{ -var orig = InjectedScriptAccess.prototype.getCompletions; -InjectedScriptAccess.prototype.getCompletions = function(expressionString, includeInspectorCommandLineAPI, callFrameId, reportCompletions) -{ - if (typeof callFrameId === "number") - devtools.tools.getDebuggerAgent().resolveCompletionsOnFrame(expressionString, callFrameId, reportCompletions); - else - return orig.apply(this, arguments); -}; -})(); - -// Highlight extension content scripts in the scripts list. -(function () { - var original = WebInspector.ScriptsPanel.prototype._addScriptToFilesMenu; - WebInspector.ScriptsPanel.prototype._addScriptToFilesMenu = function(script) - { - var result = original.apply(this, arguments); - var debuggerAgent = devtools.tools.getDebuggerAgent(); - var type = debuggerAgent.getScriptContextType(script.sourceID); - var option = script.filesSelectOption; - if (type === "injected" && option) - option.addStyleClass("injected"); - return result; - }; -})(); - -} - - (function InterceptProfilesPanelEvents() { var oldShow = WebInspector.ProfilesPanel.prototype.show; @@ -369,3 +270,8 @@ WebInspector.resetToolbarColors = function() WebInspector._themeStyleElement.textContent = ""; } + +// TODO(yurys): should be removed when eclipse debugger stops using it. +if (window.RemoteDebuggerAgent) { + RemoteDebuggerAgent.setContextId = function() {}; +} diff --git a/WebKit/chromium/src/js/DevToolsHostStub.js b/WebKit/chromium/src/js/DevToolsHostStub.js index bab73a9..a2f356f 100644 --- a/WebKit/chromium/src/js/DevToolsHostStub.js +++ b/WebKit/chromium/src/js/DevToolsHostStub.js @@ -33,8 +33,7 @@ * DevTools frontend to function as a standalone web app. */ -if (!window["RemoteDebuggerAgent"]) { - window["RemoteDebuggerAgent"] = { setDebuggerScriptSource: function() {} }; +if (!window["RemoteDebuggerCommandExecutor"]) { window["RemoteDebuggerCommandExecutor"] = {}; window["RemoteProfilerAgent"] = {}; window["RemoteToolsAgent"] = { diff --git a/WebKit/chromium/src/js/InspectorControllerImpl.js b/WebKit/chromium/src/js/InspectorControllerImpl.js index cbe607d..5ed506a 100644 --- a/WebKit/chromium/src/js/InspectorControllerImpl.js +++ b/WebKit/chromium/src/js/InspectorControllerImpl.js @@ -102,7 +102,6 @@ devtools.InspectorBackendImpl = function() this.installInspectorControllerDelegate_("setRuleSelector"); this.installInspectorControllerDelegate_("addRule"); - if (window.v8ScriptDebugServerEnabled) { this.installInspectorControllerDelegate_("disableDebugger"); this.installInspectorControllerDelegate_("editScriptSource"); this.installInspectorControllerDelegate_("getScriptSource"); @@ -111,129 +110,20 @@ devtools.InspectorBackendImpl = function() this.installInspectorControllerDelegate_("removeBreakpoint"); this.installInspectorControllerDelegate_("activateBreakpoints"); this.installInspectorControllerDelegate_("deactivateBreakpoints"); - this.installInspectorControllerDelegate_("resumeDebugger"); - this.installInspectorControllerDelegate_("stepIntoStatementInDebugger"); - this.installInspectorControllerDelegate_("stepOutOfFunctionInDebugger"); - this.installInspectorControllerDelegate_("stepOverStatementInDebugger"); + this.installInspectorControllerDelegate_("resume"); + this.installInspectorControllerDelegate_("stepIntoStatement"); + this.installInspectorControllerDelegate_("stepOutOfFunction"); + this.installInspectorControllerDelegate_("stepOverStatement"); this.installInspectorControllerDelegate_("setPauseOnExceptionsState"); - } }; devtools.InspectorBackendImpl.prototype.__proto__ = WebInspector.InspectorBackendStub.prototype; -if (!window.v8ScriptDebugServerEnabled) { - -devtools.InspectorBackendImpl.prototype.setBreakpoint = function(sourceID, line, enabled, condition) -{ - this.removeBreakpoint(sourceID, line); - devtools.tools.getDebuggerAgent().addBreakpoint(sourceID, line, enabled, condition); -}; - - -devtools.InspectorBackendImpl.prototype.removeBreakpoint = function(sourceID, line) -{ - devtools.tools.getDebuggerAgent().removeBreakpoint(sourceID, line); -}; - - -devtools.InspectorBackendImpl.prototype.editScriptSource = function(callID, sourceID, newContent) -{ - devtools.tools.getDebuggerAgent().editScriptSource(sourceID, newContent, function(success, newBodyOrErrorMessage, callFrames) { - WebInspector.didEditScriptSource(callID, success, newBodyOrErrorMessage, callFrames); - }); -}; - - -devtools.InspectorBackendImpl.prototype.getScriptSource = function(callID, sourceID) -{ - devtools.tools.getDebuggerAgent().resolveScriptSource( - sourceID, - function(source) { - WebInspector.didGetScriptSource(callID, source); - }); -}; - - -devtools.InspectorBackendImpl.prototype.activateBreakpoints = function() -{ - devtools.tools.getDebuggerAgent().setBreakpointsActivated(true); -}; - - -devtools.InspectorBackendImpl.prototype.deactivateBreakpoints = function() -{ - devtools.tools.getDebuggerAgent().setBreakpointsActivated(false); -}; - - -devtools.InspectorBackendImpl.prototype.pauseInDebugger = function() -{ - devtools.tools.getDebuggerAgent().pauseExecution(); -}; - - -devtools.InspectorBackendImpl.prototype.resumeDebugger = function() -{ - devtools.tools.getDebuggerAgent().resumeExecution(); -}; - - -devtools.InspectorBackendImpl.prototype.stepIntoStatementInDebugger = function() -{ - devtools.tools.getDebuggerAgent().stepIntoStatement(); -}; - - -devtools.InspectorBackendImpl.prototype.stepOutOfFunctionInDebugger = function() -{ - devtools.tools.getDebuggerAgent().stepOutOfFunction(); -}; - - -devtools.InspectorBackendImpl.prototype.stepOverStatementInDebugger = function() -{ - devtools.tools.getDebuggerAgent().stepOverStatement(); -}; - -/** - * @override - */ -devtools.InspectorBackendImpl.prototype.setPauseOnExceptionsState = function(state) -{ - this._setPauseOnExceptionsState = state; - // TODO(yurys): support all three states. See http://crbug.com/32877 - var enabled = (state !== WebInspector.ScriptsPanel.PauseOnExceptionsState.DontPauseOnExceptions); - WebInspector.updatePauseOnExceptionsState(enabled ? WebInspector.ScriptsPanel.PauseOnExceptionsState.PauseOnUncaughtExceptions : WebInspector.ScriptsPanel.PauseOnExceptionsState.DontPauseOnExceptions); - devtools.tools.getDebuggerAgent().setPauseOnExceptions(enabled); -}; - - -/** - * @override - */ -devtools.InspectorBackendImpl.prototype.pauseOnExceptions = function() -{ - return devtools.tools.getDebuggerAgent().pauseOnExceptions(); -}; - - -/** - * @override - */ -devtools.InspectorBackendImpl.prototype.setPauseOnExceptions = function(value) -{ - return devtools.tools.getDebuggerAgent().setPauseOnExceptions(value); -}; - -} else { - -devtools.InspectorBackendImpl.prototype.pauseInDebugger = function() +devtools.InspectorBackendImpl.prototype.pause = function() { RemoteDebuggerCommandExecutor.DebuggerPauseScript(); }; -} - /** * @override diff --git a/WebKit/chromium/src/js/Tests.js b/WebKit/chromium/src/js/Tests.js index 81432eb..e2ab3b3 100644 --- a/WebKit/chromium/src/js/Tests.js +++ b/WebKit/chromium/src/js/Tests.js @@ -863,29 +863,6 @@ TestSuite.prototype.evaluateInConsole_ = function(code, callback) }; -/* - * Waits for "setbreakpoint" response, checks that corresponding breakpoint - * was successfully set and invokes the callback if it was. - * @param {string} scriptUrl - * @param {number} breakpointLine - * @param {function()} callback - */ -TestSuite.prototype.waitForSetBreakpointResponse_ = function(scriptUrl, breakpointLine, callback) -{ - var test = this; - test.addSniffer( - devtools.DebuggerAgent.prototype, - "handleSetBreakpointResponse_", - function(msg) { - var bps = this.urlToBreakpoints_[scriptUrl]; - test.assertTrue(!!bps, "No breakpoints for line " + breakpointLine); - var line = devtools.DebuggerAgent.webkitToV8LineNumber_(breakpointLine); - test.assertTrue(!!bps[line].getV8Id(), "Breakpoint id was not assigned."); - callback(); - }); -}; - - /** * Tests eval on call frame. */ @@ -996,60 +973,7 @@ TestSuite.prototype.testCompletionOnPause = function() */ TestSuite.prototype.testAutoContinueOnSyntaxError = function() { - if (window.v8ScriptDebugServerEnabled) - return; - - this.showPanel("scripts"); - var test = this; - - function checkScriptsList() { - var scriptSelect = document.getElementById("scripts-files"); - var options = scriptSelect.options; - // There should be only console API source (see - // InjectedScript._ensureCommandLineAPIInstalled) since the page script - // contains a syntax error. - for (var i = 0 ; i < options.length; i++) { - if (options[i].text.search("script_syntax_error.html") !== -1) - test.fail("Script with syntax error should not be in the list of parsed scripts."); - } - } - - - this.addSniffer(devtools.DebuggerAgent.prototype, "handleScriptsResponse_", - function(msg) { - checkScriptsList(); - - // Reload inspected page. - test.evaluateInConsole_( - "window.location.reload(true);", - function(resultText) { - test.assertEquals("undefined", resultText, "Unexpected result of reload()."); - waitForExceptionEvent(); - }); - }); - - function waitForExceptionEvent() { - var exceptionCount = 0; - test.addSniffer( - devtools.DebuggerAgent.prototype, - "handleExceptionEvent_", - function(msg) { - exceptionCount++; - test.assertEquals(1, exceptionCount, "Too many exceptions."); - test.assertEquals(undefined, msg.getBody().script, "Unexpected exception: " + JSON.stringify(msg)); - test.releaseControl(); - }); - - // Check that the script is not paused on parse error. - test.addSniffer( - WebInspector, - "pausedScript", - function(callFrames) { - test.fail("Script execution should not pause on syntax error."); - }); - } - - this.takeControl(); + // TODO(yurys): provide an implementation that works with ScriptDebugServer. }; @@ -1500,14 +1424,14 @@ TestSuite.prototype.testExpandScope = function() properties: { x:"2009", innerFunctionLocalVar:"2011", - "this": (window.v8ScriptDebugServerEnabled ? "DOMWindow" : "global"), + "this": "DOMWindow", } }, { title: "Closure", properties: { - n: (window.v8ScriptDebugServerEnabled ? '"TextParam"' : "TextParam"), - makeClosureLocalVar: (window.v8ScriptDebugServerEnabled ? '"local.TextParam"' : "local.TextParam"), + n: '"TextParam"', + makeClosureLocalVar: '"local.TextParam"', } }, { @@ -1611,7 +1535,6 @@ TestSuite.prototype.testDebugIntrinsicProperties = function() } function examineLocalScope() { - if (window.v8ScriptDebugServerEnabled) { var scopeExpectations = [ "a", "Child", [ "__proto__", "Child", [ @@ -1633,47 +1556,12 @@ TestSuite.prototype.testDebugIntrinsicProperties = function() "childField", "20", null, ] ]; - } else { - var scopeExpectations = [ - "a", "Object", [ - "constructor", "function Child()", [ - "constructor", "function Function()", null, - "name", "Child", null, - "prototype", "Object", [ - "childProtoField", 21, null - ] - ], - - "__proto__", "Object", [ - "__proto__", "Object", [ - "__proto__", "Object", [ - "__proto__", "null", null, - "constructor", "function Object()", null, - ], - "constructor", "function Parent()", [ - "name", "Parent", null, - "prototype", "Object", [ - "parentProtoField", 11, null, - ] - ], - "parentProtoField", 11, null, - ], - "constructor", "function Child()", null, - "childProtoField", 21, null, - ], - - "parentField", 10, null, - "childField", 20, null, - ] - ]; - } - checkProperty(localScopeSection.propertiesTreeOutline, "<Local Scope>", scopeExpectations); } var propQueue = []; var index = 0; - var expectedFinalIndex = (window.v8ScriptDebugServerEnabled ? 5 : 8); + var expectedFinalIndex = 5; function expandAndCheckNextProperty() { if (index === propQueue.length) { diff --git a/WebKit/chromium/src/js/devTools.css b/WebKit/chromium/src/js/devTools.css index 0e6d284..dfcaadf 100755 --- a/WebKit/chromium/src/js/devTools.css +++ b/WebKit/chromium/src/js/devTools.css @@ -171,10 +171,6 @@ body.platform-linux #scripts-files { padding-left: 6px; } -.crumbs .crumb.end { - -webkit-border-image: url(Images/segmentEndChromium.png) 0 2 0 2; -} - .crumbs .crumb.selected { -webkit-border-image: url(Images/segmentSelectedChromium.png) 0 12 0 2; color: white; diff --git a/WebKit/chromium/tests/PopupMenuTest.cpp b/WebKit/chromium/tests/PopupMenuTest.cpp index 6680d74..9aad6bb 100644 --- a/WebKit/chromium/tests/PopupMenuTest.cpp +++ b/WebKit/chromium/tests/PopupMenuTest.cpp @@ -68,6 +68,7 @@ public: str.append(String::number(listIndex)); return str; } + virtual String itemLabel(unsigned) const { return String(); } virtual String itemToolTip(unsigned listIndex) const { return itemText(listIndex); } virtual String itemAccessibilityText(unsigned listIndex) const { return itemText(listIndex); } virtual bool itemIsEnabled(unsigned listIndex) const { return true; } diff --git a/WebKit/efl/ChangeLog b/WebKit/efl/ChangeLog new file mode 100644 index 0000000..b5ad1d7 --- /dev/null +++ b/WebKit/efl/ChangeLog @@ -0,0 +1,5 @@ +2010-07-16 Leandro Pereira <leandro@profusion.mobi> + + Reviewed by Gustavo Noronha Silva. + + Creating ChangeLog for the EFL port. diff --git a/WebKit/efl/EWebLauncher/main.c b/WebKit/efl/EWebLauncher/main.c index 362eefd..6980a58 100644 --- a/WebKit/efl/EWebLauncher/main.c +++ b/WebKit/efl/EWebLauncher/main.c @@ -413,6 +413,7 @@ on_viewport_changed(void* user_data, Evas_Object* webview, void* event_info) app->viewport.minScale = minScale; app->viewport.maxScale = maxScale; app->viewport.userScalable = (Eina_Bool)userScalable; + viewport_set(); } static void diff --git a/WebKit/efl/WebCoreSupport/ChromeClientEfl.cpp b/WebKit/efl/WebCoreSupport/ChromeClientEfl.cpp index 342654a..4b01b75 100644 --- a/WebKit/efl/WebCoreSupport/ChromeClientEfl.cpp +++ b/WebKit/efl/WebCoreSupport/ChromeClientEfl.cpp @@ -437,10 +437,9 @@ void ChromeClientEfl::formStateDidChange(const Node*) notImplemented(); } -bool ChromeClientEfl::setCursor(PlatformCursorHandle) +void ChromeClientEfl::setCursor(const Cursor&) { notImplemented(); - return false; } void ChromeClientEfl::requestGeolocationPermissionForFrame(Frame*, Geolocation*) diff --git a/WebKit/efl/WebCoreSupport/ChromeClientEfl.h b/WebKit/efl/WebCoreSupport/ChromeClientEfl.h index 45bda59..ce8abd1 100644 --- a/WebKit/efl/WebCoreSupport/ChromeClientEfl.h +++ b/WebKit/efl/WebCoreSupport/ChromeClientEfl.h @@ -119,7 +119,7 @@ public: virtual PassOwnPtr<HTMLParserQuirks> createHTMLParserQuirks() { return 0; } - virtual bool setCursor(PlatformCursorHandle); + virtual void setCursor(const Cursor&); virtual void scrollRectIntoView(const IntRect&, const ScrollView*) const {} diff --git a/WebKit/efl/WebCoreSupport/EditorClientEfl.cpp b/WebKit/efl/WebCoreSupport/EditorClientEfl.cpp index 3c4016f..cf672eb 100644 --- a/WebKit/efl/WebCoreSupport/EditorClientEfl.cpp +++ b/WebKit/efl/WebCoreSupport/EditorClientEfl.cpp @@ -40,6 +40,11 @@ using namespace WebCore; namespace WebCore { +void EditorClientEfl::willSetInputMethodState() +{ + notImplemented(); +} + void EditorClientEfl::setInputMethodState(bool active) { notImplemented(); diff --git a/WebKit/efl/WebCoreSupport/EditorClientEfl.h b/WebKit/efl/WebCoreSupport/EditorClientEfl.h index a53d624..9f60cfb 100644 --- a/WebKit/efl/WebCoreSupport/EditorClientEfl.h +++ b/WebKit/efl/WebCoreSupport/EditorClientEfl.h @@ -111,6 +111,7 @@ public: virtual void showSpellingUI(bool show); virtual bool spellingUIIsShowing(); virtual void getGuessesForWord(const String&, WTF::Vector<String>& guesses); + virtual void willSetInputMethodState(); virtual void setInputMethodState(bool enabled); private: diff --git a/WebKit/efl/ewk/EWebKit.h b/WebKit/efl/ewk/EWebKit.h index e08c4a5..183e9dc 100644 --- a/WebKit/efl/ewk/EWebKit.h +++ b/WebKit/efl/ewk/EWebKit.h @@ -23,6 +23,7 @@ #define EWebKit_h #include "ewk_contextmenu.h" +#include "ewk_cookies.h" #include "ewk_eapi.h" #include "ewk_frame.h" #include "ewk_history.h" diff --git a/WebKit/efl/ewk/ewk_cookies.cpp b/WebKit/efl/ewk/ewk_cookies.cpp new file mode 100644 index 0000000..3b4949e --- /dev/null +++ b/WebKit/efl/ewk/ewk_cookies.cpp @@ -0,0 +1,221 @@ +/* + Copyright (C) 2010 ProFUSION embedded systems + Copyright (C) 2010 Samsung Electronics + + 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 "ewk_cookies.h" + +#include "CookieJarSoup.h" +#include "EWebKit.h" +#include "ResourceHandle.h" + +#include <Eina.h> +#include <eina_safety_checks.h> +#include <glib.h> +#include <libsoup/soup.h> +#include <wtf/text/CString.h> + + +/** + * Set the path where the cookies are going to be stored. Use NULL for keep + * them just in memory. + * + * @param filename path to the cookies.txt file. + * + * @returns EINA_FALSE if it wasn't possible to create the cookie jar, + * EINA_FALSE otherwise. + */ +EAPI Eina_Bool ewk_cookies_file_set(const char *filename) +{ + SoupCookieJar* cookieJar = 0; + if (filename) + cookieJar = soup_cookie_jar_text_new(filename, FALSE); + else + cookieJar = soup_cookie_jar_new(); + + if (!cookieJar) + return EINA_FALSE; + +#ifdef HAVE_LIBSOUP_2_29_90 + soup_cookie_jar_set_accept_policy(cookieJar, SOUP_COOKIE_JAR_ACCEPT_NO_THIRD_PARTY); +#endif + + SoupSession* session = WebCore::ResourceHandle::defaultSession(); + SoupSessionFeature* oldjar = soup_session_get_feature(session, SOUP_TYPE_COOKIE_JAR); + if (oldjar) + soup_session_remove_feature(session, oldjar); + + WebCore::setDefaultCookieJar(cookieJar); + soup_session_add_feature(session, SOUP_SESSION_FEATURE(cookieJar)); + + return EINA_TRUE; +} + +/** + * Clear all the cookies from the cookie jar. + */ +EAPI void ewk_cookies_clear() +{ + GSList* l; + GSList* p; + SoupCookieJar* cookieJar = WebCore::defaultCookieJar(); + + l = soup_cookie_jar_all_cookies(cookieJar); + for (p = l; p; p = p->next) + soup_cookie_jar_delete_cookie(cookieJar, (SoupCookie*)p->data); + + soup_cookies_free(l); +} + +/** + * Returns a list of cookies in the cookie jar. + * + * @returns an Eina_List with all the cookies in the cookie jar. + */ +EAPI Eina_List* ewk_cookies_get_all(void) +{ + GSList* l; + GSList* p; + Eina_List* el = 0; + SoupCookieJar* cookieJar = WebCore::defaultCookieJar(); + + l = soup_cookie_jar_all_cookies(cookieJar); + for (p = l; p; p = p->next) { + SoupCookie* cookie = static_cast<SoupCookie*>(p->data); + Ewk_Cookie* c = static_cast<Ewk_Cookie*>(malloc(sizeof(*c))); + c->name = strdup(cookie->name); + c->value = strdup(cookie->value); + c->domain = strdup(cookie->domain); + c->path = strdup(cookie->path); + c->expires = soup_date_to_time_t(cookie->expires); + c->secure = static_cast<Eina_Bool>(cookie->secure); + c->http_only = static_cast<Eina_Bool>(cookie->http_only); + el = eina_list_append(el, c); + } + + soup_cookies_free(l); + return el; +} + +/* + * Deletes a cookie from the cookie jar. + * + * Note that the fields name, value, domain and path are used to match this + * cookie in the cookie jar. + * + * @param cookie an Ewk_Cookie that has the info relative to that cookie. + */ +EAPI void ewk_cookies_cookie_del(Ewk_Cookie *cookie) +{ + EINA_SAFETY_ON_NULL_RETURN(cookie); + GSList* l; + GSList* p; + SoupCookieJar* cookieJar = WebCore::defaultCookieJar(); + SoupCookie* c1 = soup_cookie_new( + cookie->name, cookie->value, cookie->domain, cookie->path, -1); + + l = soup_cookie_jar_all_cookies(cookieJar); + for (p = l; p; p = p->next) { + SoupCookie* c2 = static_cast<SoupCookie*>(p->data); + if (soup_cookie_equal(c1, c2)) { + soup_cookie_jar_delete_cookie(cookieJar, c2); + break; + } + } + + soup_cookie_free(c1); + soup_cookies_free(l); +} + +/* + * Free the memory used by a cookie. + * + * @param cookie the Ewk_Cookie struct that will be freed. + */ +EAPI void ewk_cookies_cookie_free(Ewk_Cookie *cookie) +{ + EINA_SAFETY_ON_NULL_RETURN(cookie); + free(cookie->name); + free(cookie->value); + free(cookie->domain); + free(cookie->path); + free(cookie); +} + +/* + * Set the cookies accept policy. + * + * Possible values are: EWK_COOKIE_JAR_ACCEPT_ALWAYS, which accepts every + * cookie sent from any page; EWK_COOKIE_JAR_ACCEPT_NO_THIRD_PARTY, which + * accepts cookies only from the main page; and EWK_COOKIE_JAR_ACCEPT_NEVER, + * which rejects all cookies. + * + * @param p the acceptance policy + */ +EAPI void ewk_cookies_policy_set(Ewk_Cookie_Policy p) +{ +#ifdef HAVE_LIBSOUP_2_29_90 + SoupCookieJar* cookieJar = WebCore::defaultCookieJar(); + SoupCookieJarAcceptPolicy policy; + + policy = SOUP_COOKIE_JAR_ACCEPT_ALWAYS; + switch (p) { + case EWK_COOKIE_JAR_ACCEPT_NEVER: + policy = SOUP_COOKIE_JAR_ACCEPT_NEVER; + break; + case EWK_COOKIE_JAR_ACCEPT_ALWAYS: + policy = SOUP_COOKIE_JAR_ACCEPT_ALWAYS; + break; + case EWK_COOKIE_JAR_ACCEPT_NO_THIRD_PARTY: + policy = SOUP_COOKIE_JAR_ACCEPT_NO_THIRD_PARTY; + break; + } + + soup_cookie_jar_set_accept_policy(cookieJar, policy); +#endif +} + +/* + * Gets the acceptance policy used in the current cookie jar. + * + * @returns the current acceptance policy + */ +EAPI Ewk_Cookie_Policy ewk_cookies_policy_get() +{ + Ewk_Cookie_Policy ewk_policy = EWK_COOKIE_JAR_ACCEPT_ALWAYS; +#ifdef HAVE_LIBSOUP_2_29_90 + SoupCookieJar* cookieJar = WebCore::defaultCookieJar(); + SoupCookieJarAcceptPolicy policy; + + policy = soup_cookie_jar_get_accept_policy(cookieJar); + switch (policy) { + case SOUP_COOKIE_JAR_ACCEPT_NEVER: + ewk_policy = EWK_COOKIE_JAR_ACCEPT_NEVER; + break; + case SOUP_COOKIE_JAR_ACCEPT_ALWAYS: + ewk_policy = EWK_COOKIE_JAR_ACCEPT_ALWAYS; + break; + case SOUP_COOKIE_JAR_ACCEPT_NO_THIRD_PARTY: + ewk_policy = EWK_COOKIE_JAR_ACCEPT_NO_THIRD_PARTY; + break; + } +#endif + + return ewk_policy; +} diff --git a/WebKit/efl/ewk/ewk_cookies.h b/WebKit/efl/ewk/ewk_cookies.h new file mode 100644 index 0000000..6ba3c9a --- /dev/null +++ b/WebKit/efl/ewk/ewk_cookies.h @@ -0,0 +1,64 @@ +/* + Copyright (C) 2010 ProFUSION embedded systems + Copyright (C) 2010 Samsung Electronics + + 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 ewk_cookies_h +#define ewk_cookies_h + +#include "ewk_eapi.h" +#include <Eina.h> + +#ifdef __cplusplus +extern "C" { +#endif + +struct _Ewk_Cookie { + char *name; + char *value; + char *domain; + char *path; + time_t expires; + Eina_Bool secure; + Eina_Bool http_only; +}; + +typedef struct _Ewk_Cookie Ewk_Cookie; + +enum _Ewk_Cookie_Policy { + EWK_COOKIE_JAR_ACCEPT_NEVER, + EWK_COOKIE_JAR_ACCEPT_ALWAYS, + EWK_COOKIE_JAR_ACCEPT_NO_THIRD_PARTY +}; + +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_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(); + +#ifdef __cplusplus +} +#endif +#endif // ewk_cookies_h diff --git a/WebKit/efl/ewk/ewk_view.cpp b/WebKit/efl/ewk/ewk_view.cpp index 39dc0a7..1707a7d 100644 --- a/WebKit/efl/ewk/ewk_view.cpp +++ b/WebKit/efl/ewk/ewk_view.cpp @@ -595,6 +595,7 @@ static Ewk_View_Private_Data* _ewk_view_priv_new(Ewk_View_Smart_Data* sd) // this functionality will be modified by the scale zoom patch. priv->settings.zoom_range.min_scale = ZOOM_MIN; priv->settings.zoom_range.max_scale = ZOOM_MAX; + priv->settings.zoom_range.user_scalable = EINA_TRUE; priv->main_frame = _ewk_view_core_frame_new(sd, priv, 0).get(); if (!priv->main_frame) { @@ -3737,6 +3738,7 @@ void ewk_view_popup_selected_set(Evas_Object* o, int index) INF("o=%p", o); EWK_VIEW_SD_GET_OR_RETURN(o, sd); EWK_VIEW_PRIV_GET_OR_RETURN(sd, priv); + EINA_SAFETY_ON_NULL_RETURN(priv->popup.menu_client); priv->popup.menu_client->valueChanged(index); } diff --git a/WebKit/gtk/ChangeLog b/WebKit/gtk/ChangeLog index cddfac8..803bf12 100644 --- a/WebKit/gtk/ChangeLog +++ b/WebKit/gtk/ChangeLog @@ -1,3 +1,38 @@ +2010-07-16 Zhe Su <suzhe@chromium.org> + + Reviewed by Darin Adler. + + REGRESSION(r61484): Broke focus behaviour on Qt and probably other platforms + https://bugs.webkit.org/show_bug.cgi?id=42253 + + Dummy implementation of EditorClient::willSetInputMethodState. + + * WebCoreSupport/EditorClientGtk.cpp: + (WebKit::EditorClient::willSetInputMethodState): + * WebCoreSupport/EditorClientGtk.h: + +2010-07-16 Nate Chapin <japhet@chromium.org> + + Reviewed by Darin Fisher. + + Uncomment an assert that broke due to r63100. + + https://bugs.webkit.org/show_bug.cgi?id=42298 + + * tests/testwebview.c: + +2010-07-14 Sam Weinig <sam@webkit.org> + + Reviewed by Darin Adler. + + Patch for https://bugs.webkit.org/show_bug.cgi?id=42232 + Make changing Cursors work in WebKit2. + + * WebCoreSupport/ChromeClientGtk.cpp: + (WebKit::ChromeClient::setCursor): + * WebCoreSupport/ChromeClientGtk.h: + Change prototype to match new one. + 2010-07-12 Martin Robinson <mrobinson@igalia.com> Reviewed by Gustavo Noronha Silva. diff --git a/WebKit/gtk/WebCoreSupport/ChromeClientGtk.cpp b/WebKit/gtk/WebCoreSupport/ChromeClientGtk.cpp index bb469c5..88440ba 100644 --- a/WebKit/gtk/WebCoreSupport/ChromeClientGtk.cpp +++ b/WebKit/gtk/WebCoreSupport/ChromeClientGtk.cpp @@ -591,10 +591,9 @@ void ChromeClient::chooseIconForFiles(const Vector<WebCore::String>& filenames, chooser->iconLoaded(Icon::createIconForFiles(filenames)); } -bool ChromeClient::setCursor(PlatformCursorHandle) +void ChromeClient::setCursor(const Cursor&) { notImplemented(); - return false; } void ChromeClient::requestGeolocationPermissionForFrame(Frame* frame, Geolocation* geolocation) diff --git a/WebKit/gtk/WebCoreSupport/ChromeClientGtk.h b/WebKit/gtk/WebCoreSupport/ChromeClientGtk.h index 46d015e..ce5c5a7 100644 --- a/WebKit/gtk/WebCoreSupport/ChromeClientGtk.h +++ b/WebKit/gtk/WebCoreSupport/ChromeClientGtk.h @@ -116,7 +116,7 @@ namespace WebKit { virtual PassOwnPtr<WebCore::HTMLParserQuirks> createHTMLParserQuirks() { return 0; } - virtual bool setCursor(WebCore::PlatformCursorHandle); + virtual void setCursor(const WebCore::Cursor&); virtual void scrollRectIntoView(const WebCore::IntRect&, const WebCore::ScrollView*) const {} virtual void requestGeolocationPermissionForFrame(WebCore::Frame*, WebCore::Geolocation*); diff --git a/WebKit/gtk/WebCoreSupport/EditorClientGtk.cpp b/WebKit/gtk/WebCoreSupport/EditorClientGtk.cpp index 77ed9b2..cd04782 100644 --- a/WebKit/gtk/WebCoreSupport/EditorClientGtk.cpp +++ b/WebKit/gtk/WebCoreSupport/EditorClientGtk.cpp @@ -215,6 +215,10 @@ void EditorClient::updatePendingComposition(const gchar* newComposition) m_pendingComposition.set(g_strconcat(m_pendingComposition.get(), newComposition, NULL)); } +void EditorClient::willSetInputMethodState() +{ +} + void EditorClient::setInputMethodState(bool active) { WebKitWebViewPrivate* priv = m_webView->priv; diff --git a/WebKit/gtk/WebCoreSupport/EditorClientGtk.h b/WebKit/gtk/WebCoreSupport/EditorClientGtk.h index 2e5c359..93f56ce 100644 --- a/WebKit/gtk/WebCoreSupport/EditorClientGtk.h +++ b/WebKit/gtk/WebCoreSupport/EditorClientGtk.h @@ -130,6 +130,7 @@ namespace WebKit { virtual void showSpellingUI(bool show); virtual bool spellingUIIsShowing(); virtual void getGuessesForWord(const WebCore::String&, WTF::Vector<WebCore::String>& guesses); + virtual void willSetInputMethodState(); virtual void setInputMethodState(bool enabled); private: diff --git a/WebKit/gtk/po/ChangeLog b/WebKit/gtk/po/ChangeLog index ec5330e..aac3c0c 100644 --- a/WebKit/gtk/po/ChangeLog +++ b/WebKit/gtk/po/ChangeLog @@ -1,3 +1,12 @@ +2010-07-13 Alejandro G. Castro <alex@igalia.com> + + Reviewed by Gustavo Noronha. + + This file is generated, we do not need to upload it to the + repository. + + * webkit.pot: Removed. + 2010-06-25 Fran Diéguez <fran.dieguez@mabishu.com> Reviewed by Darin Adler. diff --git a/WebKit/gtk/po/webkit.pot b/WebKit/gtk/po/webkit.pot deleted file mode 100644 index ebe1df7..0000000 --- a/WebKit/gtk/po/webkit.pot +++ /dev/null @@ -1,1076 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# This file is put in the public domain. -# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: webkit 1.1.22\n" -"Report-Msgid-Bugs-To: http://bugs.webkit.org/\n" -"POT-Creation-Date: 2010-02-25 15:53-0300\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" -"Language-Team: LANGUAGE <LL@li.org>\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=CHARSET\n" -"Content-Transfer-Encoding: 8bit\n" - -#: WebKit/gtk/WebCoreSupport/ChromeClientGtk.cpp:535 -msgid "Upload File" -msgstr "" - -#: WebKit/gtk/WebCoreSupport/ContextMenuClientGtk.cpp:61 -#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:143 -msgid "Input _Methods" -msgstr "" - -#: WebKit/gtk/WebCoreSupport/ContextMenuClientGtk.cpp:78 -msgid "LRM _Left-to-right mark" -msgstr "" - -#: WebKit/gtk/WebCoreSupport/ContextMenuClientGtk.cpp:79 -msgid "RLM _Right-to-left mark" -msgstr "" - -#: WebKit/gtk/WebCoreSupport/ContextMenuClientGtk.cpp:80 -msgid "LRE Left-to-right _embedding" -msgstr "" - -#: WebKit/gtk/WebCoreSupport/ContextMenuClientGtk.cpp:81 -msgid "RLE Right-to-left e_mbedding" -msgstr "" - -#: WebKit/gtk/WebCoreSupport/ContextMenuClientGtk.cpp:82 -msgid "LRO Left-to-right _override" -msgstr "" - -#: WebKit/gtk/WebCoreSupport/ContextMenuClientGtk.cpp:83 -msgid "RLO Right-to-left o_verride" -msgstr "" - -#: WebKit/gtk/WebCoreSupport/ContextMenuClientGtk.cpp:84 -msgid "PDF _Pop directional formatting" -msgstr "" - -#: WebKit/gtk/WebCoreSupport/ContextMenuClientGtk.cpp:85 -msgid "ZWS _Zero width space" -msgstr "" - -#: WebKit/gtk/WebCoreSupport/ContextMenuClientGtk.cpp:86 -msgid "ZWJ Zero width _joiner" -msgstr "" - -#: WebKit/gtk/WebCoreSupport/ContextMenuClientGtk.cpp:87 -msgid "ZWNJ Zero width _non-joiner" -msgstr "" - -#: WebKit/gtk/WebCoreSupport/ContextMenuClientGtk.cpp:109 -#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:138 -msgid "_Insert Unicode Control Character" -msgstr "" - -#: WebKit/gtk/webkit/webkitdownload.cpp:266 -msgid "Network Request" -msgstr "" - -#: WebKit/gtk/webkit/webkitdownload.cpp:267 -msgid "The network request for the URI that should be downloaded" -msgstr "" - -#: WebKit/gtk/webkit/webkitdownload.cpp:281 -msgid "Network Response" -msgstr "" - -#: WebKit/gtk/webkit/webkitdownload.cpp:282 -msgid "The network response for the URI that should be downloaded" -msgstr "" - -#: WebKit/gtk/webkit/webkitdownload.cpp:296 -msgid "Destination URI" -msgstr "" - -#: WebKit/gtk/webkit/webkitdownload.cpp:297 -msgid "The destination URI where to save the file" -msgstr "" - -#: WebKit/gtk/webkit/webkitdownload.cpp:311 -msgid "Suggested Filename" -msgstr "" - -#: WebKit/gtk/webkit/webkitdownload.cpp:312 -msgid "The filename suggested as default when saving" -msgstr "" - -#: WebKit/gtk/webkit/webkitdownload.cpp:329 -msgid "Progress" -msgstr "" - -#: WebKit/gtk/webkit/webkitdownload.cpp:330 -msgid "Determines the current progress of the download" -msgstr "" - -#: WebKit/gtk/webkit/webkitdownload.cpp:343 -msgid "Status" -msgstr "" - -#: WebKit/gtk/webkit/webkitdownload.cpp:344 -msgid "Determines the current status of the download" -msgstr "" - -#: WebKit/gtk/webkit/webkitdownload.cpp:359 -msgid "Current Size" -msgstr "" - -#: WebKit/gtk/webkit/webkitdownload.cpp:360 -msgid "The length of the data already downloaded" -msgstr "" - -#: WebKit/gtk/webkit/webkitdownload.cpp:374 -msgid "Total Size" -msgstr "" - -#: WebKit/gtk/webkit/webkitdownload.cpp:375 -msgid "The total size of the file" -msgstr "" - -#: WebKit/gtk/webkit/webkitdownload.cpp:526 -msgid "User cancelled the download" -msgstr "" - -#: WebKit/gtk/webkit/webkitsoupauthdialog.c:248 -#, c-format -msgid "A username and password are being requested by the site %s" -msgstr "" - -#: WebKit/gtk/webkit/webkitsoupauthdialog.c:278 -msgid "Server message:" -msgstr "" - -#: WebKit/gtk/webkit/webkitsoupauthdialog.c:291 -msgid "Username:" -msgstr "" - -#: WebKit/gtk/webkit/webkitsoupauthdialog.c:293 -msgid "Password:" -msgstr "" - -#: WebKit/gtk/webkit/webkitsoupauthdialog.c:302 -msgid "_Remember password" -msgstr "" - -#: WebKit/gtk/webkit/webkitwebframe.cpp:298 -msgid "Name" -msgstr "" - -#: WebKit/gtk/webkit/webkitwebframe.cpp:299 -msgid "The name of the frame" -msgstr "" - -#: WebKit/gtk/webkit/webkitwebframe.cpp:305 -#: WebKit/gtk/webkit/webkitwebhistoryitem.cpp:146 -#: WebKit/gtk/webkit/webkitwebview.cpp:2318 -msgid "Title" -msgstr "" - -#: WebKit/gtk/webkit/webkitwebframe.cpp:306 -msgid "The document title of the frame" -msgstr "" - -#: WebKit/gtk/webkit/webkitwebframe.cpp:312 -#: WebKit/gtk/webkit/webkitwebhistoryitem.cpp:178 -#: WebKit/gtk/webkit/webkitwebview.cpp:2332 -msgid "URI" -msgstr "" - -#: WebKit/gtk/webkit/webkitwebframe.cpp:313 -msgid "The current URI of the contents displayed by the frame" -msgstr "" - -#: WebKit/gtk/webkit/webkitwebframe.cpp:344 -msgid "Horizontal Scrollbar Policy" -msgstr "" - -#: WebKit/gtk/webkit/webkitwebframe.cpp:345 -msgid "" -"Determines the current policy for the horizontal scrollbar of the frame." -msgstr "" - -#: WebKit/gtk/webkit/webkitwebframe.cpp:362 -msgid "Vertical Scrollbar Policy" -msgstr "" - -#: WebKit/gtk/webkit/webkitwebframe.cpp:363 -msgid "Determines the current policy for the vertical scrollbar of the frame." -msgstr "" - -#: WebKit/gtk/webkit/webkitwebhistoryitem.cpp:147 -msgid "The title of the history item" -msgstr "" - -#: WebKit/gtk/webkit/webkitwebhistoryitem.cpp:162 -msgid "Alternate Title" -msgstr "" - -#: WebKit/gtk/webkit/webkitwebhistoryitem.cpp:163 -msgid "The alternate title of the history item" -msgstr "" - -#: WebKit/gtk/webkit/webkitwebhistoryitem.cpp:179 -msgid "The URI of the history item" -msgstr "" - -#: WebKit/gtk/webkit/webkitwebhistoryitem.cpp:194 -#: WebKit/gtk/webkit/webkitwebnavigationaction.cpp:173 -msgid "Original URI" -msgstr "" - -#: WebKit/gtk/webkit/webkitwebhistoryitem.cpp:195 -msgid "The original URI of the history item" -msgstr "" - -#: WebKit/gtk/webkit/webkitwebhistoryitem.cpp:210 -msgid "Last visited Time" -msgstr "" - -#: WebKit/gtk/webkit/webkitwebhistoryitem.cpp:211 -msgid "The time at which the history item was last visited" -msgstr "" - -#: WebKit/gtk/webkit/webkitwebinspector.cpp:268 -msgid "Web View" -msgstr "" - -#: WebKit/gtk/webkit/webkitwebinspector.cpp:269 -msgid "The Web View that renders the Web Inspector itself" -msgstr "" - -#: WebKit/gtk/webkit/webkitwebinspector.cpp:282 -msgid "Inspected URI" -msgstr "" - -#: WebKit/gtk/webkit/webkitwebinspector.cpp:283 -msgid "The URI that is currently being inspected" -msgstr "" - -#: WebKit/gtk/webkit/webkitwebinspector.cpp:299 -msgid "Enable JavaScript profiling" -msgstr "" - -#: WebKit/gtk/webkit/webkitwebinspector.cpp:300 -msgid "Profile the executed JavaScript." -msgstr "" - -#: WebKit/gtk/webkit/webkitwebinspector.cpp:315 -msgid "Enable Timeline profiling" -msgstr "" - -#: WebKit/gtk/webkit/webkitwebinspector.cpp:316 -msgid "Profile the WebCore instrumentation." -msgstr "" - -#: WebKit/gtk/webkit/webkitwebnavigationaction.cpp:158 -msgid "Reason" -msgstr "" - -#: WebKit/gtk/webkit/webkitwebnavigationaction.cpp:159 -msgid "The reason why this navigation is occurring" -msgstr "" - -#: WebKit/gtk/webkit/webkitwebnavigationaction.cpp:174 -msgid "The URI that was requested as the target for the navigation" -msgstr "" - -#: WebKit/gtk/webkit/webkitwebnavigationaction.cpp:188 -msgid "Button" -msgstr "" - -#: WebKit/gtk/webkit/webkitwebnavigationaction.cpp:189 -msgid "The button used to click" -msgstr "" - -#: WebKit/gtk/webkit/webkitwebnavigationaction.cpp:204 -msgid "Modifier state" -msgstr "" - -#: WebKit/gtk/webkit/webkitwebnavigationaction.cpp:205 -msgid "A bitmask representing the state of the modifier keys" -msgstr "" - -#: WebKit/gtk/webkit/webkitwebnavigationaction.cpp:220 -msgid "Target frame" -msgstr "" - -#: WebKit/gtk/webkit/webkitwebnavigationaction.cpp:221 -msgid "The target frame for the navigation" -msgstr "" - -#: WebKit/gtk/webkit/webkitwebsettings.cpp:237 -msgid "Default Encoding" -msgstr "" - -#: WebKit/gtk/webkit/webkitwebsettings.cpp:238 -msgid "The default encoding used to display text." -msgstr "" - -#: WebKit/gtk/webkit/webkitwebsettings.cpp:246 -msgid "Cursive Font Family" -msgstr "" - -#: WebKit/gtk/webkit/webkitwebsettings.cpp:247 -msgid "The default Cursive font family used to display text." -msgstr "" - -#: WebKit/gtk/webkit/webkitwebsettings.cpp:255 -msgid "Default Font Family" -msgstr "" - -#: WebKit/gtk/webkit/webkitwebsettings.cpp:256 -msgid "The default font family used to display text." -msgstr "" - -#: WebKit/gtk/webkit/webkitwebsettings.cpp:264 -msgid "Fantasy Font Family" -msgstr "" - -#: WebKit/gtk/webkit/webkitwebsettings.cpp:265 -msgid "The default Fantasy font family used to display text." -msgstr "" - -#: WebKit/gtk/webkit/webkitwebsettings.cpp:273 -msgid "Monospace Font Family" -msgstr "" - -#: WebKit/gtk/webkit/webkitwebsettings.cpp:274 -msgid "The default font family used to display monospace text." -msgstr "" - -#: WebKit/gtk/webkit/webkitwebsettings.cpp:282 -msgid "Sans Serif Font Family" -msgstr "" - -#: WebKit/gtk/webkit/webkitwebsettings.cpp:283 -msgid "The default Sans Serif font family used to display text." -msgstr "" - -#: WebKit/gtk/webkit/webkitwebsettings.cpp:291 -msgid "Serif Font Family" -msgstr "" - -#: WebKit/gtk/webkit/webkitwebsettings.cpp:292 -msgid "The default Serif font family used to display text." -msgstr "" - -#: WebKit/gtk/webkit/webkitwebsettings.cpp:300 -msgid "Default Font Size" -msgstr "" - -#: WebKit/gtk/webkit/webkitwebsettings.cpp:301 -msgid "The default font size used to display text." -msgstr "" - -#: WebKit/gtk/webkit/webkitwebsettings.cpp:309 -msgid "Default Monospace Font Size" -msgstr "" - -#: WebKit/gtk/webkit/webkitwebsettings.cpp:310 -msgid "The default font size used to display monospace text." -msgstr "" - -#: WebKit/gtk/webkit/webkitwebsettings.cpp:318 -msgid "Minimum Font Size" -msgstr "" - -#: WebKit/gtk/webkit/webkitwebsettings.cpp:319 -msgid "The minimum font size used to display text." -msgstr "" - -#: WebKit/gtk/webkit/webkitwebsettings.cpp:327 -msgid "Minimum Logical Font Size" -msgstr "" - -#: WebKit/gtk/webkit/webkitwebsettings.cpp:328 -msgid "The minimum logical font size used to display text." -msgstr "" - -#: WebKit/gtk/webkit/webkitwebsettings.cpp:347 -msgid "Enforce 96 DPI" -msgstr "" - -#: WebKit/gtk/webkit/webkitwebsettings.cpp:348 -msgid "Enforce a resolution of 96 DPI" -msgstr "" - -#: WebKit/gtk/webkit/webkitwebsettings.cpp:356 -msgid "Auto Load Images" -msgstr "" - -#: WebKit/gtk/webkit/webkitwebsettings.cpp:357 -msgid "Load images automatically." -msgstr "" - -#: WebKit/gtk/webkit/webkitwebsettings.cpp:365 -msgid "Auto Shrink Images" -msgstr "" - -#: WebKit/gtk/webkit/webkitwebsettings.cpp:366 -msgid "Automatically shrink standalone images to fit." -msgstr "" - -#: WebKit/gtk/webkit/webkitwebsettings.cpp:374 -msgid "Print Backgrounds" -msgstr "" - -#: WebKit/gtk/webkit/webkitwebsettings.cpp:375 -msgid "Whether background images should be printed." -msgstr "" - -#: WebKit/gtk/webkit/webkitwebsettings.cpp:383 -msgid "Enable Scripts" -msgstr "" - -#: WebKit/gtk/webkit/webkitwebsettings.cpp:384 -msgid "Enable embedded scripting languages." -msgstr "" - -#: WebKit/gtk/webkit/webkitwebsettings.cpp:392 -msgid "Enable Plugins" -msgstr "" - -#: WebKit/gtk/webkit/webkitwebsettings.cpp:393 -msgid "Enable embedded plugin objects." -msgstr "" - -#: WebKit/gtk/webkit/webkitwebsettings.cpp:401 -msgid "Resizable Text Areas" -msgstr "" - -#: WebKit/gtk/webkit/webkitwebsettings.cpp:402 -msgid "Whether text areas are resizable." -msgstr "" - -#: WebKit/gtk/webkit/webkitwebsettings.cpp:409 -msgid "User Stylesheet URI" -msgstr "" - -#: WebKit/gtk/webkit/webkitwebsettings.cpp:410 -msgid "The URI of a stylesheet that is applied to every page." -msgstr "" - -#: WebKit/gtk/webkit/webkitwebsettings.cpp:425 -msgid "Zoom Stepping Value" -msgstr "" - -#: WebKit/gtk/webkit/webkitwebsettings.cpp:426 -msgid "The value by which the zoom level is changed when zooming in or out." -msgstr "" - -#: WebKit/gtk/webkit/webkitwebsettings.cpp:444 -msgid "Enable Developer Extras" -msgstr "" - -#: WebKit/gtk/webkit/webkitwebsettings.cpp:445 -msgid "Enables special extensions that help developers" -msgstr "" - -#: WebKit/gtk/webkit/webkitwebsettings.cpp:465 -msgid "Enable Private Browsing" -msgstr "" - -#: WebKit/gtk/webkit/webkitwebsettings.cpp:466 -msgid "Enables private browsing mode" -msgstr "" - -#: WebKit/gtk/webkit/webkitwebsettings.cpp:481 -msgid "Enable Spell Checking" -msgstr "" - -#: WebKit/gtk/webkit/webkitwebsettings.cpp:482 -msgid "Enables spell checking while typing" -msgstr "" - -#: WebKit/gtk/webkit/webkitwebsettings.cpp:505 -msgid "Languages to use for spell checking" -msgstr "" - -#: WebKit/gtk/webkit/webkitwebsettings.cpp:506 -msgid "Comma separated list of languages to use for spell checking" -msgstr "" - -#: WebKit/gtk/webkit/webkitwebsettings.cpp:520 -msgid "Enable Caret Browsing" -msgstr "" - -#: WebKit/gtk/webkit/webkitwebsettings.cpp:521 -msgid "Whether to enable accesibility enhanced keyboard navigation" -msgstr "" - -#: WebKit/gtk/webkit/webkitwebsettings.cpp:536 -msgid "Enable HTML5 Database" -msgstr "" - -#: WebKit/gtk/webkit/webkitwebsettings.cpp:537 -msgid "Whether to enable HTML5 database support" -msgstr "" - -#: WebKit/gtk/webkit/webkitwebsettings.cpp:552 -msgid "Enable HTML5 Local Storage" -msgstr "" - -#: WebKit/gtk/webkit/webkitwebsettings.cpp:553 -msgid "Whether to enable HTML5 Local Storage support" -msgstr "" - -#: WebKit/gtk/webkit/webkitwebsettings.cpp:567 -msgid "Enable XSS Auditor" -msgstr "" - -#: WebKit/gtk/webkit/webkitwebsettings.cpp:568 -msgid "Whether to enable teh XSS auditor" -msgstr "" - -#: WebKit/gtk/webkit/webkitwebsettings.cpp:586 -msgid "User Agent" -msgstr "" - -#: WebKit/gtk/webkit/webkitwebsettings.cpp:587 -msgid "The User-Agent string used by WebKitGtk" -msgstr "" - -#: WebKit/gtk/webkit/webkitwebsettings.cpp:602 -msgid "JavaScript can open windows automatically" -msgstr "" - -#: WebKit/gtk/webkit/webkitwebsettings.cpp:603 -msgid "Whether JavaScript can open windows automatically" -msgstr "" - -#: WebKit/gtk/webkit/webkitwebsettings.cpp:618 -msgid "Enable offline web application cache" -msgstr "" - -#: WebKit/gtk/webkit/webkitwebsettings.cpp:619 -msgid "Whether to enable offline web application cache" -msgstr "" - -#: WebKit/gtk/webkit/webkitwebsettings.cpp:646 -msgid "Editing behavior" -msgstr "" - -#: WebKit/gtk/webkit/webkitwebsettings.cpp:647 -msgid "The behavior mode to use in editing mode" -msgstr "" - -#: WebKit/gtk/webkit/webkitwebsettings.cpp:663 -msgid "Enable universal access from file URIs" -msgstr "" - -#: WebKit/gtk/webkit/webkitwebsettings.cpp:664 -msgid "Whether to allow universal access from file URIs" -msgstr "" - -#: WebKit/gtk/webkit/webkitwebsettings.cpp:679 -msgid "Enable DOM paste" -msgstr "" - -#: WebKit/gtk/webkit/webkitwebsettings.cpp:680 -msgid "Whether to enable DOM paste" -msgstr "" - -#: WebKit/gtk/webkit/webkitwebsettings.cpp:698 -msgid "Tab key cycles through elements" -msgstr "" - -#: WebKit/gtk/webkit/webkitwebsettings.cpp:699 -msgid "Whether the tab key cycles through elements on the page." -msgstr "" - -#: WebKit/gtk/webkit/webkitwebsettings.cpp:719 -msgid "Enable Default Context Menu" -msgstr "" - -#: WebKit/gtk/webkit/webkitwebsettings.cpp:720 -msgid "" -"Enables the handling of right-clicks for the creation of the default context " -"menu" -msgstr "" - -#: WebKit/gtk/webkit/webkitwebsettings.cpp:740 -msgid "Enable Site Specific Quirks" -msgstr "" - -#: WebKit/gtk/webkit/webkitwebsettings.cpp:741 -msgid "Enables the site-specific compatibility workarounds" -msgstr "" - -#: WebKit/gtk/webkit/webkitwebsettings.cpp:763 -msgid "Enable page cache" -msgstr "" - -#: WebKit/gtk/webkit/webkitwebsettings.cpp:764 -msgid "Whether the page cache should be used" -msgstr "" - -#: WebKit/gtk/webkit/webkitwebsettings.cpp:784 -msgid "Auto Resize Window" -msgstr "" - -#: WebKit/gtk/webkit/webkitwebsettings.cpp:785 -msgid "Automatically resize the toplevel window when a page requests it" -msgstr "" - -#: WebKit/gtk/webkit/webkitwebsettings.cpp:817 -msgid "Enable Java Applet" -msgstr "" - -#: WebKit/gtk/webkit/webkitwebsettings.cpp:818 -msgid "Whether Java Applet support through <applet> should be enabled" -msgstr "" - -#: WebKit/gtk/webkit/webkitwebview.cpp:2319 -msgid "Returns the @web_view's document title" -msgstr "" - -#: WebKit/gtk/webkit/webkitwebview.cpp:2333 -msgid "Returns the current URI of the contents displayed by the @web_view" -msgstr "" - -#: WebKit/gtk/webkit/webkitwebview.cpp:2346 -msgid "Copy target list" -msgstr "" - -#: WebKit/gtk/webkit/webkitwebview.cpp:2347 -msgid "The list of targets this web view supports for clipboard copying" -msgstr "" - -#: WebKit/gtk/webkit/webkitwebview.cpp:2360 -msgid "Paste target list" -msgstr "" - -#: WebKit/gtk/webkit/webkitwebview.cpp:2361 -msgid "The list of targets this web view supports for clipboard pasting" -msgstr "" - -#: WebKit/gtk/webkit/webkitwebview.cpp:2367 -msgid "Settings" -msgstr "" - -#: WebKit/gtk/webkit/webkitwebview.cpp:2368 -msgid "An associated WebKitWebSettings instance" -msgstr "" - -#: WebKit/gtk/webkit/webkitwebview.cpp:2381 -msgid "Web Inspector" -msgstr "" - -#: WebKit/gtk/webkit/webkitwebview.cpp:2382 -msgid "The associated WebKitWebInspector instance" -msgstr "" - -#: WebKit/gtk/webkit/webkitwebview.cpp:2402 -msgid "Editable" -msgstr "" - -#: WebKit/gtk/webkit/webkitwebview.cpp:2403 -msgid "Whether content can be modified by the user" -msgstr "" - -#: WebKit/gtk/webkit/webkitwebview.cpp:2409 -msgid "Transparent" -msgstr "" - -#: WebKit/gtk/webkit/webkitwebview.cpp:2410 -msgid "Whether content has a transparent background" -msgstr "" - -#: WebKit/gtk/webkit/webkitwebview.cpp:2423 -msgid "Zoom level" -msgstr "" - -#: WebKit/gtk/webkit/webkitwebview.cpp:2424 -msgid "The level of zoom of the content" -msgstr "" - -#: WebKit/gtk/webkit/webkitwebview.cpp:2439 -msgid "Full content zoom" -msgstr "" - -#: WebKit/gtk/webkit/webkitwebview.cpp:2440 -msgid "Whether the full content is scaled when zooming" -msgstr "" - -#: WebKit/gtk/webkit/webkitwebview.cpp:2453 -msgid "Encoding" -msgstr "" - -#: WebKit/gtk/webkit/webkitwebview.cpp:2454 -msgid "The default encoding of the web view" -msgstr "" - -#: WebKit/gtk/webkit/webkitwebview.cpp:2467 -msgid "Custom Encoding" -msgstr "" - -#: WebKit/gtk/webkit/webkitwebview.cpp:2468 -msgid "The custom encoding of the web view" -msgstr "" - -#: WebKit/gtk/webkit/webkitwebview.cpp:2520 -msgid "Icon URI" -msgstr "" - -#: WebKit/gtk/webkit/webkitwebview.cpp:2521 -msgid "The URI for the favicon for the #WebKitWebView." -msgstr "" - -#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:55 -#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:60 -msgid "Submit" -msgstr "" - -#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:65 -msgid "Reset" -msgstr "" - -#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:70 -msgid "This is a searchable index. Enter search keywords: " -msgstr "" - -#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:75 -msgid "Choose File" -msgstr "" - -#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:80 -msgid "(None)" -msgstr "" - -#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:85 -msgid "Open Link in New _Window" -msgstr "" - -#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:90 -msgid "_Download Linked File" -msgstr "" - -#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:95 -msgid "Copy Link Loc_ation" -msgstr "" - -#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:100 -msgid "Open _Image in New Window" -msgstr "" - -#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:105 -msgid "Sa_ve Image As" -msgstr "" - -#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:110 -msgid "Cop_y Image" -msgstr "" - -#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:115 -msgid "Open _Frame in New Window" -msgstr "" - -#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:166 -msgid "_Reload" -msgstr "" - -#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:183 -msgid "No Guesses Found" -msgstr "" - -#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:188 -msgid "_Ignore Spelling" -msgstr "" - -#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:193 -msgid "_Learn Spelling" -msgstr "" - -#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:198 -msgid "_Search the Web" -msgstr "" - -#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:203 -msgid "_Look Up in Dictionary" -msgstr "" - -#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:208 -msgid "_Open Link" -msgstr "" - -#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:213 -msgid "Ignore _Grammar" -msgstr "" - -#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:218 -msgid "Spelling and _Grammar" -msgstr "" - -#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:223 -msgid "_Show Spelling and Grammar" -msgstr "" - -#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:223 -msgid "_Hide Spelling and Grammar" -msgstr "" - -#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:228 -msgid "_Check Document Now" -msgstr "" - -#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:233 -msgid "Check Spelling While _Typing" -msgstr "" - -#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:238 -msgid "Check _Grammar With Spelling" -msgstr "" - -#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:243 -msgid "_Font" -msgstr "" - -#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:266 -msgid "_Outline" -msgstr "" - -#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:271 -msgid "Inspect _Element" -msgstr "" - -#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:276 -msgid "No recent searches" -msgstr "" - -#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:281 -msgid "Recent searches" -msgstr "" - -#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:286 -msgid "_Clear recent searches" -msgstr "" - -#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:291 -msgid "term" -msgstr "" - -#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:296 -msgid "definition" -msgstr "" - -#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:301 -msgid "press" -msgstr "" - -#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:306 -msgid "select" -msgstr "" - -#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:311 -msgid "activate" -msgstr "" - -#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:316 -msgid "uncheck" -msgstr "" - -#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:321 -msgid "check" -msgstr "" - -#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:326 -msgid "jump" -msgstr "" - -#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:342 -msgid " files" -msgstr "" - -#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:347 -msgid "Unknown" -msgstr "" - -#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:364 -msgid "Loading..." -msgstr "" - -#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:369 -msgid "Live Broadcast" -msgstr "" - -#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:375 -msgid "audio element controller" -msgstr "" - -#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:377 -msgid "video element controller" -msgstr "" - -#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:379 -msgid "mute" -msgstr "" - -#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:381 -msgid "unmute" -msgstr "" - -#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:383 -msgid "play" -msgstr "" - -#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:385 -msgid "pause" -msgstr "" - -#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:387 -msgid "movie time" -msgstr "" - -#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:389 -msgid "timeline slider thumb" -msgstr "" - -#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:391 -msgid "back 30 seconds" -msgstr "" - -#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:393 -msgid "return to realtime" -msgstr "" - -#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:395 -msgid "elapsed time" -msgstr "" - -#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:397 -msgid "remaining time" -msgstr "" - -#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:399 -msgid "status" -msgstr "" - -#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:401 -msgid "fullscreen" -msgstr "" - -#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:403 -msgid "fast forward" -msgstr "" - -#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:405 -msgid "fast reverse" -msgstr "" - -#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:407 -msgid "show closed captions" -msgstr "" - -#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:409 -msgid "hide closed captions" -msgstr "" - -#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:418 -msgid "audio element playback controls and status display" -msgstr "" - -#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:420 -msgid "video element playback controls and status display" -msgstr "" - -#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:422 -msgid "mute audio tracks" -msgstr "" - -#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:424 -msgid "unmute audio tracks" -msgstr "" - -#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:426 -msgid "begin playback" -msgstr "" - -#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:428 -msgid "pause playback" -msgstr "" - -#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:430 -msgid "movie time scrubber" -msgstr "" - -#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:432 -msgid "movie time scrubber thumb" -msgstr "" - -#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:434 -msgid "seek movie back 30 seconds" -msgstr "" - -#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:436 -msgid "return streaming movie to real time" -msgstr "" - -#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:438 -msgid "current movie time in seconds" -msgstr "" - -#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:440 -msgid "number of seconds of movie remaining" -msgstr "" - -#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:442 -msgid "current movie status" -msgstr "" - -#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:444 -msgid "seek quickly back" -msgstr "" - -#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:446 -msgid "seek quickly forward" -msgstr "" - -#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:448 -msgid "Play movie in fullscreen mode" -msgstr "" - -#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:450 -msgid "start displaying closed captions" -msgstr "" - -#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:452 -msgid "stop displaying closed captions" -msgstr "" - -#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:461 -msgid "indefinite time" -msgstr "" - -#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:491 -msgid "value missing" -msgstr "" - -#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:497 -msgid "type mismatch" -msgstr "" - -#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:502 -msgid "pattern mismatch" -msgstr "" - -#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:507 -msgid "too long" -msgstr "" - -#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:512 -msgid "range underflow" -msgstr "" - -#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:517 -msgid "range overflow" -msgstr "" - -#: WebCore/platform/gtk/LocalizedStringsGtk.cpp:522 -msgid "step mismatch" -msgstr "" diff --git a/WebKit/gtk/tests/testwebview.c b/WebKit/gtk/tests/testwebview.c index 0bea643..36511d7 100644 --- a/WebKit/gtk/tests/testwebview.c +++ b/WebKit/gtk/tests/testwebview.c @@ -266,10 +266,7 @@ 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)); - // This assert is temporarily disabled until we fix the following bug: - // https://bugs.webkit.org/show_bug.cgi?id=42114 - // It should be re-enabled ASAP. - // g_assert_cmpfloat(gtk_adjustment_get_value(adjustment), ==, 100.0); + g_assert_cmpfloat(gtk_adjustment_get_value(adjustment), ==, 100.0); g_free(effective_uri); g_free(second_uri); diff --git a/WebKit/haiku/ChangeLog b/WebKit/haiku/ChangeLog index d71c5e4..841a94c 100644 --- a/WebKit/haiku/ChangeLog +++ b/WebKit/haiku/ChangeLog @@ -1,3 +1,28 @@ +2010-07-16 Zhe Su <suzhe@chromium.org> + + Reviewed by Darin Adler. + + REGRESSION(r61484): Broke focus behaviour on Qt and probably other platforms + https://bugs.webkit.org/show_bug.cgi?id=42253 + + Dummy implementation of EditorClient::willSetInputMethodState. + + * WebCoreSupport/EditorClientHaiku.cpp: + (WebCore::EditorClientHaiku::willSetInputMethodState): + * WebCoreSupport/EditorClientHaiku.h: + +2010-07-14 Sam Weinig <sam@webkit.org> + + Reviewed by Darin Adler. + + Patch for https://bugs.webkit.org/show_bug.cgi?id=42232 + Make changing Cursors work in WebKit2. + + * WebCoreSupport/ChromeClientHaiku.cpp: + (WebCore::ChromeClientHaiku::setCursor): + * WebCoreSupport/ChromeClientHaiku.h: + Change prototype to match new one. + 2010-06-14 Ilya Tikhonovsky <loislo@chromium.org> Reviewed by Pavel Feldman. diff --git a/WebKit/haiku/WebCoreSupport/ChromeClientHaiku.cpp b/WebKit/haiku/WebCoreSupport/ChromeClientHaiku.cpp index 2cf5c31..d18b84d 100644 --- a/WebKit/haiku/WebCoreSupport/ChromeClientHaiku.cpp +++ b/WebKit/haiku/WebCoreSupport/ChromeClientHaiku.cpp @@ -362,10 +362,9 @@ void ChromeClientHaiku::chooseIconForFiles(const Vector<String>& filenames, File chooser->iconLoaded(Icon::createIconForFiles(filenames)); } -bool ChromeClientHaiku::setCursor(PlatformCursorHandle) +void ChromeClientHaiku::setCursor(const Cursor&) { notImplemented(); - return false; } // Notification that the given form element has changed. This function diff --git a/WebKit/haiku/WebCoreSupport/ChromeClientHaiku.h b/WebKit/haiku/WebCoreSupport/ChromeClientHaiku.h index d5a372b..963e72f 100644 --- a/WebKit/haiku/WebCoreSupport/ChromeClientHaiku.h +++ b/WebKit/haiku/WebCoreSupport/ChromeClientHaiku.h @@ -140,7 +140,7 @@ namespace WebCore { void runOpenPanel(Frame*, PassRefPtr<FileChooser>); void chooseIconForFiles(const Vector<String>&, FileChooser*); - bool setCursor(PlatformCursorHandle); + void setCursor(const Cursor&); // Notification that the given form element has changed. This function // will be called frequently, so handling should be very fast. diff --git a/WebKit/haiku/WebCoreSupport/EditorClientHaiku.cpp b/WebKit/haiku/WebCoreSupport/EditorClientHaiku.cpp index 2e23af7..bdd7eb8 100644 --- a/WebKit/haiku/WebCoreSupport/EditorClientHaiku.cpp +++ b/WebKit/haiku/WebCoreSupport/EditorClientHaiku.cpp @@ -466,6 +466,11 @@ void EditorClientHaiku::getGuessesForWord(const String&, Vector<String>&) notImplemented(); } +void EditorClientHaiku::willSetInputMethodState() +{ + notImplemented(); +} + void EditorClientHaiku::setInputMethodState(bool enabled) { notImplemented(); @@ -477,4 +482,3 @@ bool EditorClientHaiku::isEditing() const } } // namespace WebCore - diff --git a/WebKit/haiku/WebCoreSupport/EditorClientHaiku.h b/WebKit/haiku/WebCoreSupport/EditorClientHaiku.h index eda9597..5cbec27 100644 --- a/WebKit/haiku/WebCoreSupport/EditorClientHaiku.h +++ b/WebKit/haiku/WebCoreSupport/EditorClientHaiku.h @@ -108,6 +108,7 @@ namespace WebCore { virtual void showSpellingUI(bool show); virtual bool spellingUIIsShowing(); virtual void getGuessesForWord(const String&, Vector<String>& guesses); + virtual void willSetInputMethodState(); virtual void setInputMethodState(bool enabled); bool isEditing() const; @@ -121,4 +122,3 @@ namespace WebCore { } // namespace WebCore #endif // EditorClientHaiku_h - diff --git a/WebKit/mac/Carbon/CarbonWindowAdapter.mm b/WebKit/mac/Carbon/CarbonWindowAdapter.mm index c57bc37..9747350 100644 --- a/WebKit/mac/Carbon/CarbonWindowAdapter.mm +++ b/WebKit/mac/Carbon/CarbonWindowAdapter.mm @@ -81,7 +81,7 @@ #import "WebTypesInternal.h" @interface NSWindow(HIWebFrameView) -- _initContent:(const NSRect *)contentRect styleMask:(unsigned int)aStyle backing:(NSBackingStoreType)bufferingType defer:(BOOL)flag contentView:aView; +- (id)_initContent:(const NSRect *)contentRect styleMask:(unsigned int)aStyle backing:(NSBackingStoreType)bufferingType defer:(BOOL)flag contentView:aView; - (void)_oldPlaceWindow:(NSRect)frameRect; - (void)_windowMovedToRect:(NSRect)actualFrame; - (void)_setWindowNumber:(NSInteger)nativeWindow; @@ -517,7 +517,7 @@ static OSStatus NSCarbonWindowHandleEvent(EventHandlerCallRef inEventHandlerCall // Do the right thing for a Carbon window. -- _destroyRealWindow:(BOOL)orderingOut { +- (id)_destroyRealWindow:(BOOL)orderingOut { // Complain, because this should never be called. We don't support one-shot NSCarbonWindows. NSLog(@"-[NSCarbonWindow _destroyRealWindow:] is not implemented."); @@ -804,7 +804,7 @@ static OSStatus NSCarbonWindowHandleEvent(EventHandlerCallRef inEventHandlerCall return; } -- _clearModalWindowLevel { +- (id)_clearModalWindowLevel { return nil; } diff --git a/WebKit/mac/ChangeLog b/WebKit/mac/ChangeLog index eaed21b..95c460b 100644 --- a/WebKit/mac/ChangeLog +++ b/WebKit/mac/ChangeLog @@ -1,3 +1,313 @@ +2010-07-21 Simon Fraser <simon.fraser@apple.com> + + Reviewed by Anders Carlsson. + + Composited layers don't scroll in WebKit2 + https://bugs.webkit.org/show_bug.cgi?id=42771 + + Prep work: FrameView::scrollPositionChanged() sounds like a generic "did scroll" bottleneck, + but this is deceiving. It's only every called on one platform (Mac) when the NSScrollView gets + scrolled, so rename it to FrameView::scrollPositionChangedViaPlatformWidget(). + + * WebView/WebHTMLView.mm: + (-[WebHTMLView _frameOrBoundsChanged]): + +2010-07-21 Eric Carlson <eric.carlson@apple.com> + + Reviewed by Simon Fraser. + + Update plug-in proxy backed <video> and <audio> elements. + https://bugs.webkit.org/show_bug.cgi?id=42770 + <rdar://problem/7963467> + + * Plugins/WebPluginController.h: + * Plugins/WebPluginController.mm: + (-[WebPluginController dealloc]): Release _viewsNotInDocument. + (-[WebPluginController stopAllPlugins]): Stop plug-ins not in the document. + (-[WebPluginController pluginViewCreated:]): New, add a View (plug-in) to _viewsNotInDocument. + (+[WebPluginController pluginViewHidden:]): New, remove the view (plug-in) from pluginViews. + (-[WebPluginController addPlugin:]): Remove the new plug-in from _viewsNotInDocument. + + * WebCoreSupport/WebFrameLoaderClient.h: + * WebCoreSupport/WebFrameLoaderClient.mm: + (WebFrameLoaderClient::createPlugin): Remove PLUGIN_PROXY_FOR_VIDEO code, the media + player proxy plug-in should never be allocated by this method. + (WebFrameLoaderClient::createMediaPlayerProxyPlugin): New, allocate a media player proxy. + + * WebView/WebView.mm: + (-[WebView _videoProxyPluginForMIMEType:]): New. Identical to _pluginForMIMEType except it doesn't + consider the arePlugInsEnabled preference. + * WebView/WebViewInternal.h: + + +2010-07-19 Chris Marrin <cmarrin@apple.com> + + Reviewed by Darin Adler. + + https://bugs.webkit.org/show_bug.cgi?id=42118 + Disable WebGL on Leopard for now. + + LayoutTests fail on some graphics hardware on Leopard because one of the features we use, + GL_ARB_framebuffer_object, is not universally available in Leopard like it is in + SnowLeopard. This will allow LayoutTests to pass on Leopard until we add logic to use a + software OpenGL driver on machines without this support. + + * Configurations/FeatureDefines.xcconfig: + +2010-07-18 Anders Carlsson <andersca@apple.com> + + Reviewed by Sam Weinig. + + Move PluginWidget to WebKit + https://bugs.webkit.org/show_bug.cgi?id=42530 + + * Plugins/WebBaseNetscapePluginView.h: + * Plugins/WebBaseNetscapePluginView.mm: + (-[WebBaseNetscapePluginView pluginLayer]): + Add default pluginLayer implementation. + + * WebCoreSupport/WebFrameLoaderClient.mm: + (PluginWidget::PluginWidget): + (PluginWidget::invalidateRect): + Move the guts of PluginWidget here from WebCore. + + (NetscapePluginWidget::platformLayer): + Get the layer from the plug-in view. + +2010-07-18 David Kilzer <ddkilzer@apple.com> + + <http://webkit.org/b/42522> Add missing (id) return type to Obj-C methods + + Reviewed by Dan Bernstein. + + * Carbon/CarbonWindowAdapter.mm: + (-[NSWindow(HIWebFrameView) _initContent:styleMask:backing:defer:contentView:]): + (-[CarbonWindowAdapter _destroyRealWindow:]): + (-[CarbonWindowAdapter _clearModalWindowLevel]): + * Misc/WebIconDatabase.mm: + (-[WebIconDatabase init]): + * Misc/WebNSPasteboardExtras.mm: + (-[NSFilePromiseDragSource initWithSource:]): + * WebView/WebHTMLRepresentation.mm: + (-[WebHTMLRepresentation init]): + * WebView/WebPreferences.mm: + (-[WebPreferences init]): + * WebView/WebView.mm: + (-[WebView UIDelegate]): + (-[WebView resourceLoadDelegate]): + (-[WebView downloadDelegate]): + (-[WebView policyDelegate]): + (-[WebView frameLoadDelegate]): + +2010-07-16 Zhe Su <suzhe@chromium.org> + + Reviewed by Darin Adler. + + REGRESSION(r61484): Broke focus behaviour on Qt and probably other platforms + https://bugs.webkit.org/show_bug.cgi?id=42253 + + Dummy implementation of EditorClient::willSetInputMethodState. + + * WebCoreSupport/WebEditorClient.h: + * WebCoreSupport/WebEditorClient.mm: + (WebEditorClient::willSetInputMethodState): + +2010-07-16 Dan Bernstein <mitz@apple.com> + + Reviewed by Sam Weinig. + + Part of <rdar://problem/7233974> Deprecate +[WebView _setShouldUseFontSmoothing:] + https://bugs.webkit.org/show_bug.cgi?id=29355 + + * Misc/WebKitNSStringExtras.h: + * Misc/WebKitNSStringExtras.mm: + (-[NSString _web_drawAtPoint:font:textColor:]): Now calls through to + -_web_drawAtPoint:font:textColor:allowingFontSmoothing: passing YES for the last + parameter. + (-[NSString _web_drawAtPoint:font:textColor:allowingFontSmoothing:]): Added + allowingFontSmoothing:. If font smoothing is not allowed, sets the font smoothing + mode to antialiased. Otherwise, sets it to auto. + (-[NSString _web_drawDoubledAtPoint:withTopColor:bottomColor:font:]): Instead of + changing the font smoothing setting in the graphics context, call + -_web_drawAtPoint:font:textColor:allowingFontSmoothing: passing NO for the last + parameter. + +2010-07-16 Anders Carlsson <andersca@apple.com> + + Reviewed by Sam Weinig. + + Remove semicolons from Objective-C method declarations. + + * WebView/WebRenderLayer.mm: + (+[WebRenderLayer nameForLayer:]): + (+[WebRenderLayer compositingInfoForLayer:]): + +2010-07-16 Mikhail Naganov <mnaganov@chromium.org> + + Reviewed by Pavel Feldman. + + Make JS memory stats available via 'Performance' object (Web Timing). + This statistics is populated only if 'WebKitMemoryInfoEnabled' + preference is set. + + 'console.memory' is kept until Web Timing object becomes visible by + default (currently it is hidden under compile-time flag). These stats + are guarded with the same preference. + + https://bugs.webkit.org/show_bug.cgi?id=41617 + + * WebKit.order: + * WebView/WebPreferenceKeysPrivate.h: + * WebView/WebPreferences.mm: + (+[WebPreferences initialize]): + (-[WebPreferences memoryInfoEnabled]): + (-[WebPreferences setMemoryInfoEnabled:]): + * WebView/WebPreferencesPrivate.h: + * WebView/WebView.mm: + (-[WebView _preferencesChangedNotification:]): + +2010-07-15 Shinichiro Hamaji <hamaji@chromium.org> + + Reviewed by Darin Adler. + + Printing test results differ between machines, we should use ImageDiff instead + https://bugs.webkit.org/show_bug.cgi?id=20011 + + * Misc/WebCoreStatistics.h: + * Misc/WebCoreStatistics.mm: + (-[WebFrame printToCGContext:cgContext:pageWidthInPixels:]): + +2010-07-15 Daniel Bates <dbates@rim.com> + + Reviewed by Darin Adler. + + [Mac] Implement LayoutTestController::markerTextForListItem() + https://bugs.webkit.org/show_bug.cgi?id=37929 + + Implements support for markerTextForListItem in the Mac port. + + * DOM/WebDOMOperations.mm: + (+[DOMElement _DOMElementFromJSContext]): Added. + (-[DOMElement _markerTextForListItem]): Added. + * DOM/WebDOMOperationsPrivate.h: + +2010-07-14 Simon Fraser <simon.fraser@apple.com> + + Fix non-ACCELERATED_COMPOSITING build. + + * WebView/WebRenderLayer.mm: + (+[WebRenderLayer compositingInfoForLayer:]): + +2010-07-14 Simon Fraser <simon.fraser@apple.com> + + Reviewed by John Sullivan. + + <rdar://problem/8186963> Expose information about compositing layers. + + Use RenderLayerBacking::compositingLayerType() to add more information about compositing to + WebRenderLayer, via a compositingInfo property. Also show element classnames. + + Also add separator items between the various z-order lists. + + * WebView/WebRenderLayer.h: + * WebView/WebRenderLayer.mm: + (+[WebRenderLayer nameForLayer:]): + (+[WebRenderLayer compositingInfoForLayer:]): + (-[WebRenderLayer initWithRenderLayer:]): + (-[WebRenderLayer initWithName:]): + (-[WebRenderLayer initWithWebFrame:]): + (-[WebRenderLayer dealloc]): + (-[WebRenderLayer buildDescendantLayers:]): + (-[WebRenderLayer compositingInfo]): + (-[WebRenderLayer isComposited]): + (-[WebRenderLayer isSeparator]): + +2010-07-14 Darin Adler <darin@apple.com> + + Another try at fixing the Tiger build. + + Avoid non-ASCII in source files to keep Tiger compiler happy. + + * WebView/WebRenderLayer.mm: + (+[WebRenderLayer nameForLayer:]): Use %C for the non-ASCII characters. + +2010-07-14 Sam Weinig <sam@webkit.org> + + Reviewed by Darin Adler. + + Patch for https://bugs.webkit.org/show_bug.cgi?id=42232 + Make changing Cursors work in WebKit2. + + * WebCoreSupport/WebChromeClient.h: + * WebCoreSupport/WebChromeClient.mm: + (WebChromeClient::setCursor): + * WebView/WebView.mm: + Implement cursor changing at the WebKit level for the sake of WebKit2. + This functionality is being moved from WidgetMac.mm. + (+[WebView _pointingHandCursor]): + Update to use platformCursor() instead of impl(). + +2010-07-13 Simon Fraser <simon.fraser@apple.com> + + Fix Tiger build. + + Avoid non-ASCII in souce files to keep Tiger compiler happy. + + * WebView/WebRenderLayer.mm: + (+[WebRenderLayer nameForLayer:]): + +2010-07-13 Simon Fraser <simon.fraser@apple.com> + + Reviewed by Dan Bernstein. + + <rdar://problem/8186963> Expose RenderLayer hierarchy via Obj-C for debugging. + + Add a WebRenderLayer class that reflects the RenderLayer tree into a hierarchy + of Objective-C objects suitable for display in an outline view. + + * WebKit.exp: Export the WebRenderLayer Objective-C class. + * WebView/WebRenderLayer.h: Added. + * WebView/WebRenderLayer.mm: Added. + +2010-07-07 Tor Arne Vestbø <tor.arne.vestbo@nokia.com> + + Reviewed by Darin Adler. + + Prevent assertion/duplicate loads for non-deferred subtitute-data loads + + https://bugs.webkit.org/show_bug.cgi?id=30879 + + MainResourceLoader uses the member m_initialRequest to store requests for future + deferred loads. When doing the actual load in handleDataLoadNow(), we therefore + have to clear this request so that subsequent entries into the loader will not + start yet another load. + + This can happen as a result of a PageGroupLoadDeferrer going out of scope when + returning from Chrome::runJavaScriptAlert(), which calls setDeferredLoading(false), + but only in the case of using both substitute-data and non-deferred main resource + load together. That's why two new DRT functions were added: + + * queueLoadHTMLString() + * setDeferMainResourceLoad() + + The change adds DRT hooks for Mac, Win and Qt for these two functions. For Mac + and Win the hook uses new SPI in WebDataSource. For Qt a new static member was + added to the FrameLoaderClientQt and accessed though DumpRenderTreeSupportQt. + + * WebView/WebDataSource.mm: + (-[WebDataSource _setDeferMainResourceDataLoad:]): + * WebView/WebDataSourcePrivate.h: + +2010-07-13 Philippe Normand <pnormand@igalia.com> + + Rubber-stamped by Xan Lopez. + + Updated the copyright headers of the files modified in r62476. + + * WebView/WebView.mm: + * WebView/WebViewData.h: + * WebView/WebViewInternal.h: + 2010-07-09 Alexey Proskuryakov <ap@apple.com> Reviewed by Darin Adler. diff --git a/WebKit/mac/Configurations/FeatureDefines.xcconfig b/WebKit/mac/Configurations/FeatureDefines.xcconfig index 9a3ec0b..4b363aa 100644 --- a/WebKit/mac/Configurations/FeatureDefines.xcconfig +++ b/WebKit/mac/Configurations/FeatureDefines.xcconfig @@ -34,7 +34,6 @@ ENABLE_LINK_PREFETCH = ; ENABLE_3D_CANVAS = $(ENABLE_3D_CANVAS_$(TARGET_MAC_OS_X_VERSION_MAJOR)); -ENABLE_3D_CANVAS_1050 = ENABLE_3D_CANVAS; ENABLE_3D_CANVAS_1060 = ENABLE_3D_CANVAS; ENABLE_3D_CANVAS_1070 = ENABLE_3D_CANVAS; diff --git a/WebKit/mac/DOM/WebDOMOperations.mm b/WebKit/mac/DOM/WebDOMOperations.mm index 194a000..d21f2b0 100644 --- a/WebKit/mac/DOM/WebDOMOperations.mm +++ b/WebKit/mac/DOM/WebDOMOperations.mm @@ -29,6 +29,7 @@ #import "WebDOMOperationsPrivate.h" #import "DOMDocumentInternal.h" +#import "DOMElementInternal.h" #import "DOMNodeInternal.h" #import "DOMRangeInternal.h" #import "WebArchiveInternal.h" @@ -36,15 +37,42 @@ #import "WebFrameInternal.h" #import "WebFramePrivate.h" #import "WebKitNSStringExtras.h" +#import <JavaScriptCore/APICast.h> #import <WebCore/CSSHelper.h> #import <WebCore/Document.h> +#import <WebCore/JSElement.h> #import <WebCore/LegacyWebArchive.h> #import <WebCore/markup.h> +#import <WebCore/RenderTreeAsText.h> #import <WebKit/DOMExtensions.h> #import <WebKit/DOMHTML.h> +#import <runtime/JSLock.h> +#import <runtime/JSValue.h> #import <wtf/Assertions.h> using namespace WebCore; +using namespace JSC; + +@implementation DOMElement (WebDOMElementOperationsPrivate) + ++ (DOMElement *)_DOMElementFromJSContext:(JSContextRef)context value:(JSValueRef)value +{ + if (!context) + return 0; + + if (!value) + return 0; + + JSLock lock(SilenceAssertionsOnly); + return kit(toElement(toJS(toJS(context), value))); +} + +- (NSString *)_markerTextForListItem +{ + return WebCore::markerTextForListItem(core(self)); +} + +@end @implementation DOMNode (WebDOMNodeOperations) diff --git a/WebKit/mac/DOM/WebDOMOperationsPrivate.h b/WebKit/mac/DOM/WebDOMOperationsPrivate.h index 826aa7d..1c22e82 100644 --- a/WebKit/mac/DOM/WebDOMOperationsPrivate.h +++ b/WebKit/mac/DOM/WebDOMOperationsPrivate.h @@ -27,6 +27,12 @@ */ #import <WebKit/WebDOMOperations.h> +#import <JavaScriptCore/JSBase.h> + +@interface DOMElement (WebDOMElementOperationsPrivate) ++ (DOMElement *)_DOMElementFromJSContext:(JSContextRef)context value:(JSValueRef)value; +- (NSString *)_markerTextForListItem; +@end @interface DOMDocument (WebDOMDocumentOperationsPrivate) - (NSArray *)_focusableNodes; diff --git a/WebKit/mac/Misc/WebCoreStatistics.h b/WebKit/mac/Misc/WebCoreStatistics.h index 33e3e0f..1565c26 100644 --- a/WebKit/mac/Misc/WebCoreStatistics.h +++ b/WebKit/mac/Misc/WebCoreStatistics.h @@ -90,4 +90,5 @@ - (NSString *)pageProperty:(const char*)propertyName:(int)pageNumber; - (bool)isPageBoxVisible:(int)pageNumber; - (NSString *)pageSizeAndMarginsInPixels:(int)pageNumber:(int)width:(int)height:(int)marginTop:(int)marginRight:(int)marginBottom:(int)marginLeft; +- (void)printToCGContext:(CGContextRef)cgContext:(float)pageWidthInPixels:(float)pageHeightInPixels; @end diff --git a/WebKit/mac/Misc/WebCoreStatistics.mm b/WebKit/mac/Misc/WebCoreStatistics.mm index bbe07d5..a5d5ae1 100644 --- a/WebKit/mac/Misc/WebCoreStatistics.mm +++ b/WebKit/mac/Misc/WebCoreStatistics.mm @@ -37,6 +37,7 @@ #import <WebCore/Frame.h> #import <WebCore/GCController.h> #import <WebCore/GlyphPageTreeNode.h> +#import <WebCore/GraphicsContext.h> #import <WebCore/IconDatabase.h> #import <WebCore/JSDOMWindow.h> #import <WebCore/PageCache.h> @@ -289,4 +290,15 @@ using namespace WebCore; { return PrintContext::pageSizeAndMarginsInPixels(_private->coreFrame, pageNumber, width, height, marginTop, marginRight, marginBottom, marginLeft); } + +- (void)printToCGContext:(CGContextRef)cgContext:(float)pageWidthInPixels:(float)pageHeightInPixels +{ + Frame* coreFrame = _private->coreFrame; + if (!coreFrame) + return; + + GraphicsContext graphicsContext(cgContext); + PrintContext::spoolAllPagesWithBoundaries(coreFrame, graphicsContext, FloatSize(pageWidthInPixels, pageHeightInPixels)); +} + @end diff --git a/WebKit/mac/Misc/WebIconDatabase.mm b/WebKit/mac/Misc/WebIconDatabase.mm index f53bffa..7d0a350 100644 --- a/WebKit/mac/Misc/WebIconDatabase.mm +++ b/WebKit/mac/Misc/WebIconDatabase.mm @@ -104,7 +104,7 @@ static WebIconDatabaseClient* defaultClient() return database; } -- init +- (id)init { [super init]; WebCoreThreadViolationCheckRoundOne(); diff --git a/WebKit/mac/Misc/WebKitNSStringExtras.h b/WebKit/mac/Misc/WebKitNSStringExtras.h index f252430..ddc49f0 100644 --- a/WebKit/mac/Misc/WebKitNSStringExtras.h +++ b/WebKit/mac/Misc/WebKitNSStringExtras.h @@ -32,6 +32,7 @@ extern NSString *WebKitLocalCacheDefaultsKey; @interface NSString (WebKitExtras) +- (void)_web_drawAtPoint:(NSPoint)point font:(NSFont *)font textColor:(NSColor *)textColor allowingFontSmoothing:(BOOL)fontSmoothingIsAllowed; - (void)_web_drawAtPoint:(NSPoint)point font:(NSFont *)font textColor:(NSColor *)textColor; - (void)_web_drawDoubledAtPoint:(NSPoint)textPoint withTopColor:(NSColor *)topColor bottomColor:(NSColor *)bottomColor font:(NSFont *)font; diff --git a/WebKit/mac/Misc/WebKitNSStringExtras.mm b/WebKit/mac/Misc/WebKitNSStringExtras.mm index da46630..8fc12bd 100644 --- a/WebKit/mac/Misc/WebKitNSStringExtras.mm +++ b/WebKit/mac/Misc/WebKitNSStringExtras.mm @@ -62,12 +62,16 @@ static BOOL canUseFastRenderer(const UniChar *buffer, unsigned length) - (void)_web_drawAtPoint:(NSPoint)point font:(NSFont *)font textColor:(NSColor *)textColor { - // FIXME: Would be more efficient to change this to C++ and use Vector<UChar, 2048>. + [self _web_drawAtPoint:point font:font textColor:textColor allowingFontSmoothing:YES]; +} + +- (void)_web_drawAtPoint:(NSPoint)point font:(NSFont *)font textColor:(NSColor *)textColor allowingFontSmoothing:(BOOL)fontSmoothingIsAllowed +{ unsigned length = [self length]; Vector<UniChar, 2048> buffer(length); [self getCharacters:buffer.data()]; - + if (canUseFastRenderer(buffer.data(), length)) { // The following is a half-assed attempt to match AppKit's rounding rules for drawAtPoint. // It's probably incorrect for high DPI. @@ -84,7 +88,7 @@ static BOOL canUseFastRenderer(const UniChar *buffer, unsigned length) if (!flipped) CGContextScaleCTM(cgContext, 1, -1); - Font webCoreFont(FontPlatformData(font), ![nsContext isDrawingToScreen]); + Font webCoreFont(FontPlatformData(font), ![nsContext isDrawingToScreen], fontSmoothingIsAllowed ? AutoSmoothing : Antialiased); TextRun run(buffer.data(), length); run.disableRoundingHacks(); @@ -116,17 +120,10 @@ static BOOL canUseFastRenderer(const UniChar *buffer, unsigned length) font:(NSFont *)font { // turn off font smoothing so translucent text draws correctly (Radar 3118455) - [NSGraphicsContext saveGraphicsState]; - CGContextSetShouldSmoothFonts(static_cast<CGContextRef>([[NSGraphicsContext currentContext] graphicsPort]), false); - [self _web_drawAtPoint:textPoint - font:font - textColor:bottomColor]; + [self _web_drawAtPoint:textPoint font:font textColor:bottomColor allowingFontSmoothing:NO]; textPoint.y += 1; - [self _web_drawAtPoint:textPoint - font:font - textColor:topColor]; - [NSGraphicsContext restoreGraphicsState]; + [self _web_drawAtPoint:textPoint font:font textColor:topColor allowingFontSmoothing:NO]; } - (float)_web_widthWithFont:(NSFont *)font diff --git a/WebKit/mac/Misc/WebNSPasteboardExtras.mm b/WebKit/mac/Misc/WebNSPasteboardExtras.mm index ab3baf7..7caa47a 100644 --- a/WebKit/mac/Misc/WebNSPasteboardExtras.mm +++ b/WebKit/mac/Misc/WebNSPasteboardExtras.mm @@ -48,7 +48,7 @@ #import <wtf/StdLibExtras.h> @interface NSFilePromiseDragSource : NSObject -- initWithSource:(id)draggingSource; +- (id)initWithSource:(id)draggingSource; - (void)setTypes:(NSArray *)types onPasteboard:(NSPasteboard *)pboard; @end diff --git a/WebKit/mac/Plugins/WebBaseNetscapePluginView.h b/WebKit/mac/Plugins/WebBaseNetscapePluginView.h index 81d801a..4c8ea84 100644 --- a/WebKit/mac/Plugins/WebBaseNetscapePluginView.h +++ b/WebKit/mac/Plugins/WebBaseNetscapePluginView.h @@ -140,6 +140,10 @@ class WebHaltablePlugin; - (void)invalidatePluginContentRect:(NSRect)rect; +#ifndef BUILDING_ON_TIGER +- (CALayer *)pluginLayer; +#endif + @end diff --git a/WebKit/mac/Plugins/WebBaseNetscapePluginView.mm b/WebKit/mac/Plugins/WebBaseNetscapePluginView.mm index bcef2a1..6ae7334 100644 --- a/WebKit/mac/Plugins/WebBaseNetscapePluginView.mm +++ b/WebKit/mac/Plugins/WebBaseNetscapePluginView.mm @@ -948,6 +948,14 @@ String WebHaltablePlugin::pluginName() const } } +#ifndef BUILDING_ON_TIGER +- (CALayer *)pluginLayer +{ + ASSERT_NOT_REACHED(); + return nil; +} +#endif + @end namespace WebKit { diff --git a/WebKit/mac/Plugins/WebPluginController.h b/WebKit/mac/Plugins/WebPluginController.h index ffc07a4..dc1f413 100644 --- a/WebKit/mac/Plugins/WebPluginController.h +++ b/WebKit/mac/Plugins/WebPluginController.h @@ -42,6 +42,9 @@ NSMutableArray *_views; BOOL _started; NSMutableSet *_checksInProgress; +#if ENABLE(PLUGIN_PROXY_FOR_VIDEO) + NSMutableArray *_viewsNotInDocument; +#endif } + (NSView *)plugInViewWithArguments:(NSDictionary *)arguments fromPluginPackage:(WebPluginPackage *)plugin; @@ -53,6 +56,10 @@ - (void)addPlugin:(NSView *)view; - (void)destroyPlugin:(NSView *)view; +#if ENABLE(PLUGIN_PROXY_FOR_VIDEO) +- (void)pluginViewCreated:(NSView *)view; ++ (void)pluginViewHidden:(NSView *)view; +#endif - (void)startAllPlugins; - (void)stopAllPlugins; diff --git a/WebKit/mac/Plugins/WebPluginController.mm b/WebKit/mac/Plugins/WebPluginController.mm index 1c85862..9c037c2 100644 --- a/WebKit/mac/Plugins/WebPluginController.mm +++ b/WebKit/mac/Plugins/WebPluginController.mm @@ -138,6 +138,9 @@ static NSMutableSet *pluginViews = nil; { [_views release]; [_checksInProgress release]; +#if ENABLE(PLUGIN_PROXY_FOR_VIDEO) + [_viewsNotInDocument release]; +#endif [super dealloc]; } @@ -198,9 +201,30 @@ static NSMutableSet *pluginViews = nil; for (i = 0; i < count; i++) [self stopOnePlugin:[_views objectAtIndex:i]]; +#if ENABLE(PLUGIN_PROXY_FOR_VIDEO) + count = [_viewsNotInDocument count]; + for (i = 0; i < count; i++) + [self stopOnePlugin:[_viewsNotInDocument objectAtIndex:i]]; +#endif + _started = NO; } +#if ENABLE(PLUGIN_PROXY_FOR_VIDEO) +- (void)pluginViewCreated:(NSView *)view +{ + if (!_viewsNotInDocument) + _viewsNotInDocument= [[NSMutableArray alloc] init]; + if (![_viewsNotInDocument containsObject:view]) + [_viewsNotInDocument addObject:view]; +} + ++ (void)pluginViewHidden:(NSView *)view +{ + [pluginViews removeObject:view]; +} +#endif + - (void)addPlugin:(NSView *)view { if (!_documentView) { @@ -212,6 +236,11 @@ static NSMutableSet *pluginViews = nil; [_views addObject:view]; [[_documentView _webView] addPluginInstanceView:view]; +#if ENABLE(PLUGIN_PROXY_FOR_VIDEO) + if ([_viewsNotInDocument containsObject:view]) + [_viewsNotInDocument removeObject:view]; +#endif + BOOL oldDefersCallbacks = [[self webView] defersCallbacks]; if (!oldDefersCallbacks) [[self webView] setDefersCallbacks:YES]; @@ -251,7 +280,11 @@ static NSMutableSet *pluginViews = nil; - (void)destroyPlugin:(NSView *)view { +#if ENABLE(PLUGIN_PROXY_FOR_VIDEO) + if ([_views containsObject:view] || [_viewsNotInDocument containsObject:view]) { +#else if ([_views containsObject:view]) { +#endif if (_started) [self stopOnePlugin:view]; [self destroyOnePlugin:view]; @@ -264,6 +297,9 @@ static NSMutableSet *pluginViews = nil; [pluginViews removeObject:view]; [[_documentView _webView] removePluginInstanceView:view]; [_views removeObject:view]; +#if ENABLE(PLUGIN_PROXY_FOR_VIDEO) + [_viewsNotInDocument removeObject:view]; +#endif } } @@ -310,6 +346,13 @@ static void cancelOutstandingCheck(const void *item, void *context) [pluginViews removeObject:aView]; [[_documentView _webView] removePluginInstanceView:aView]; } + +#if ENABLE(PLUGIN_PROXY_FOR_VIDEO) + count = [_viewsNotInDocument count]; + for (i = 0; i < count; i++) + [self destroyOnePlugin:[_viewsNotInDocument objectAtIndex:i]]; +#endif + [_views makeObjectsPerformSelector:@selector(removeFromSuperviewWithoutNeedingDisplay)]; [_views release]; _views = nil; diff --git a/WebKit/mac/WebCoreSupport/WebChromeClient.h b/WebKit/mac/WebCoreSupport/WebChromeClient.h index ea59c4d..707d080 100644 --- a/WebKit/mac/WebCoreSupport/WebChromeClient.h +++ b/WebKit/mac/WebCoreSupport/WebChromeClient.h @@ -127,7 +127,7 @@ public: virtual void runOpenPanel(WebCore::Frame*, PassRefPtr<WebCore::FileChooser>); virtual void chooseIconForFiles(const Vector<WebCore::String>&, WebCore::FileChooser*); - virtual bool setCursor(WebCore::PlatformCursorHandle) { return false; } + virtual void setCursor(const WebCore::Cursor&); virtual WebCore::FloatRect customHighlightRect(WebCore::Node*, const WebCore::AtomicString& type, const WebCore::FloatRect& lineRect); diff --git a/WebKit/mac/WebCoreSupport/WebChromeClient.mm b/WebKit/mac/WebCoreSupport/WebChromeClient.mm index 3bf310a..eb56240 100644 --- a/WebKit/mac/WebCoreSupport/WebChromeClient.mm +++ b/WebKit/mac/WebCoreSupport/WebChromeClient.mm @@ -48,6 +48,7 @@ #import <Foundation/Foundation.h> #import <WebCore/BlockExceptions.h> #import <WebCore/Console.h> +#import <WebCore/Cursor.h> #import <WebCore/Element.h> #import <WebCore/FileChooser.h> #import <WebCore/FloatRect.h> @@ -659,6 +660,14 @@ void WebChromeClient::chooseIconForFiles(const Vector<String>& filenames, FileCh chooser->iconLoaded(Icon::createIconForFiles(filenames)); } +void WebChromeClient::setCursor(const WebCore::Cursor& cursor) +{ + NSCursor *platformCursor = cursor.platformCursor(); + if ([NSCursor currentCursor] == platformCursor) + return; + [platformCursor set]; +} + KeyboardUIMode WebChromeClient::keyboardUIMode() { BEGIN_BLOCK_OBJC_EXCEPTIONS; diff --git a/WebKit/mac/WebCoreSupport/WebEditorClient.h b/WebKit/mac/WebCoreSupport/WebEditorClient.h index d7dfdd7..1cb2a59 100644 --- a/WebKit/mac/WebCoreSupport/WebEditorClient.h +++ b/WebKit/mac/WebCoreSupport/WebEditorClient.h @@ -127,6 +127,7 @@ public: virtual void showSpellingUI(bool show); virtual bool spellingUIIsShowing(); virtual void getGuessesForWord(const WebCore::String&, WTF::Vector<WebCore::String>& guesses); + virtual void willSetInputMethodState(); virtual void setInputMethodState(bool enabled); private: void registerCommandForUndoOrRedo(PassRefPtr<WebCore::EditCommand>, bool isRedo); diff --git a/WebKit/mac/WebCoreSupport/WebEditorClient.mm b/WebKit/mac/WebCoreSupport/WebEditorClient.mm index ec9024a..d2f2706 100644 --- a/WebKit/mac/WebCoreSupport/WebEditorClient.mm +++ b/WebKit/mac/WebCoreSupport/WebEditorClient.mm @@ -818,6 +818,10 @@ void WebEditorClient::getGuessesForWord(const String& word, WTF::Vector<String>& } } +void WebEditorClient::willSetInputMethodState() +{ +} + void WebEditorClient::setInputMethodState(bool) { } diff --git a/WebKit/mac/WebCoreSupport/WebFrameLoaderClient.h b/WebKit/mac/WebCoreSupport/WebFrameLoaderClient.h index 60b1fbf..d750a10 100644 --- a/WebKit/mac/WebCoreSupport/WebFrameLoaderClient.h +++ b/WebKit/mac/WebCoreSupport/WebFrameLoaderClient.h @@ -201,6 +201,13 @@ private: virtual PassRefPtr<WebCore::Widget> createJavaAppletWidget(const WebCore::IntSize&, WebCore::HTMLAppletElement*, const WebCore::KURL& baseURL, const Vector<WebCore::String>& paramNames, const Vector<WebCore::String>& paramValues); +#if ENABLE(PLUGIN_PROXY_FOR_VIDEO) + virtual PassRefPtr<WebCore::Widget> createMediaPlayerProxyPlugin(const WebCore::IntSize&, WebCore::HTMLMediaElement*, const WebCore::KURL&, + const Vector<WebCore::String>&, const Vector<WebCore::String>&, const WebCore::String&); + virtual void hideMediaPlayerProxyPlugin(WebCore::Widget*); + virtual void showMediaPlayerProxyPlugin(WebCore::Widget*); +#endif + virtual WebCore::ObjectContentType objectContentType(const WebCore::KURL& url, const WebCore::String& mimeType); virtual WebCore::String overrideMediaType() const; diff --git a/WebKit/mac/WebCoreSupport/WebFrameLoaderClient.mm b/WebKit/mac/WebCoreSupport/WebFrameLoaderClient.mm index d72f4ed..1021ad9 100644 --- a/WebKit/mac/WebCoreSupport/WebFrameLoaderClient.mm +++ b/WebKit/mac/WebCoreSupport/WebFrameLoaderClient.mm @@ -93,6 +93,9 @@ #import <WebCore/HTMLFrameElement.h> #import <WebCore/HTMLFrameOwnerElement.h> #import <WebCore/HTMLHeadElement.h> +#if ENABLE(PLUGIN_PROXY_FOR_VIDEO) +#import <WebCore/HTMLMediaElement.h> +#endif #import <WebCore/HTMLNames.h> #import <WebCore/HTMLPlugInElement.h> #import <WebCore/HistoryItem.h> @@ -103,7 +106,7 @@ #import <WebCore/MouseEvent.h> #import <WebCore/Page.h> #import <WebCore/PlatformString.h> -#import <WebCore/PluginWidget.h> +#import <WebCore/PluginViewBase.h> #import <WebCore/ResourceError.h> #import <WebCore/ResourceHandle.h> #import <WebCore/ResourceLoader.h> @@ -1502,6 +1505,20 @@ static NSView *pluginView(WebFrame *frame, WebPluginPackage *pluginPackage, return view; } +class PluginWidget : public PluginViewBase { +public: + PluginWidget(NSView *view = 0) + : PluginViewBase(view) + { + } + +private: + virtual void invalidateRect(const IntRect& rect) + { + [platformWidget() setNeedsDisplayInRect:rect]; + } +}; + #if ENABLE(NETSCAPE_PLUGIN_API) class NetscapePluginWidget : public PluginWidget { @@ -1511,6 +1528,13 @@ public: { } +#if USE(ACCELERATED_COMPOSITING) + virtual PlatformLayer* platformLayer() const + { + return [(WebBaseNetscapePluginView *)platformWidget() pluginLayer]; + } +#endif + virtual void handleEvent(Event* event) { Frame* frame = Frame::frameForWidget(this); @@ -1583,12 +1607,6 @@ PassRefPtr<Widget> WebFrameLoaderClient::createPlugin(const IntSize& size, HTMLP } NSString *extension = [[pluginURL path] pathExtension]; -#if ENABLE(PLUGIN_PROXY_FOR_VIDEO) - // don't allow proxy plug-in selection by file extension - if (element->hasTagName(videoTag) || element->hasTagName(audioTag)) - extension = @""; -#endif - if (!pluginPackage && [extension length] != 0) { pluginPackage = [webView _pluginForExtension:extension]; if (pluginPackage) { @@ -1743,6 +1761,83 @@ PassRefPtr<Widget> WebFrameLoaderClient::createJavaAppletWidget(const IntSize& s #endif // ENABLE(JAVA_BRIDGE) } +#if ENABLE(PLUGIN_PROXY_FOR_VIDEO) +PassRefPtr<Widget> WebFrameLoaderClient::createMediaPlayerProxyPlugin(const IntSize& size, HTMLMediaElement* element, const KURL& url, + const Vector<String>& paramNames, const Vector<String>& paramValues, const String& mimeType) +{ + BEGIN_BLOCK_OBJC_EXCEPTIONS; + + ASSERT(paramNames.size() == paramValues.size()); + ASSERT(mimeType); + + int errorCode = 0; + WebView *webView = getWebView(m_webFrame.get()); + NSURL *URL = url; + + SEL selector = @selector(webView:plugInViewWithArguments:); + + if ([[webView UIDelegate] respondsToSelector:selector]) { + NSMutableDictionary *attributes = [[NSMutableDictionary alloc] initWithObjects:kit(paramValues) forKeys:kit(paramNames)]; + NSDictionary *arguments = [[NSDictionary alloc] initWithObjectsAndKeys: + attributes, WebPlugInAttributesKey, + [NSNumber numberWithInt:WebPlugInModeEmbed], WebPlugInModeKey, + [NSNumber numberWithBool:YES], WebPlugInShouldLoadMainResourceKey, + kit(element), WebPlugInContainingElementKey, + URL, WebPlugInBaseURLKey, // URL might be nil, so add it last + nil]; + + NSView *view = CallUIDelegate(webView, selector, arguments); + + [attributes release]; + [arguments release]; + + if (view) + return adoptRef(new PluginWidget(view)); + } + + WebBasePluginPackage *pluginPackage = [webView _videoProxyPluginForMIMEType:mimeType]; + Document* document = core(m_webFrame.get())->document(); + NSURL *baseURL = document->baseURL(); + NSView *view = nil; + + if (pluginPackage) { + if ([pluginPackage isKindOfClass:[WebPluginPackage class]]) + view = pluginView(m_webFrame.get(), (WebPluginPackage *)pluginPackage, kit(paramNames), kit(paramValues), baseURL, kit(element), false); + } else + errorCode = WebKitErrorCannotFindPlugIn; + + if (!errorCode && !view) + errorCode = WebKitErrorCannotLoadPlugIn; + + if (errorCode) { + NSError *error = [[NSError alloc] _initWithPluginErrorCode:errorCode + contentURL:URL pluginPageURL:nil pluginName:[pluginPackage name] MIMEType:mimeType]; + WebNullPluginView *nullView = [[[WebNullPluginView alloc] initWithFrame:NSMakeRect(0, 0, size.width(), size.height()) + error:error DOMElement:kit(element)] autorelease]; + view = nullView; + [error release]; + } + + ASSERT(view); + return adoptRef(new PluginWidget(view)); + + END_BLOCK_OBJC_EXCEPTIONS; + + return 0; +} + +void WebFrameLoaderClient::hideMediaPlayerProxyPlugin(Widget* widget) +{ + [WebPluginController pluginViewHidden:widget->platformWidget()]; +} + +void WebFrameLoaderClient::showMediaPlayerProxyPlugin(Widget* widget) +{ + [WebPluginController addPlugInView:widget->platformWidget()]; +} + +#endif // ENABLE(PLUGIN_PROXY_FOR_VIDEO) + String WebFrameLoaderClient::overrideMediaType() const { NSString* overrideType = [getWebView(m_webFrame.get()) mediaStyle]; diff --git a/WebKit/mac/WebKit.exp b/WebKit/mac/WebKit.exp index b2ddb18..a22179f 100644 --- a/WebKit/mac/WebKit.exp +++ b/WebKit/mac/WebKit.exp @@ -25,6 +25,7 @@ .objc_class_name_WebPanelAuthenticationHandler .objc_class_name_WebPluginDatabase .objc_class_name_WebPreferences +.objc_class_name_WebRenderLayer .objc_class_name_WebRenderNode .objc_class_name_WebResource .objc_class_name_WebScriptCallFrame diff --git a/WebKit/mac/WebKit.order b/WebKit/mac/WebKit.order index 1776616..c2b5f5d 100644 --- a/WebKit/mac/WebKit.order +++ b/WebKit/mac/WebKit.order @@ -283,6 +283,7 @@ _WKAppVersionCheckLessThan -[WebPreferences(WebPrivate) showRepaintCounter] -[WebPreferences(WebPrivate) pluginAllowedRunTime] -[WebPreferences(WebPrivate) webGLEnabled] +-[WebPreferences(WebPrivate) memoryInfoEnabled] -[WebPreferences(WebPrivate) isFrameFlatteningEnabled] -[WebView setMaintainsBackForwardList:] -[WebView setUIDelegate:] @@ -1883,6 +1884,7 @@ __ZN24WebDatabaseTrackerClient25dispatchDidModifyDatabaseEPN7WebCore14SecurityOr -[WebPreferences setUsesPageCache:] -[WebPreferences(WebPrivate) setAcceleratedCompositingEnabled:] -[WebPreferences(WebPrivate) setWebGLEnabled:] +-[WebPreferences(WebPrivate) setMemoryInfoEnabled:] +[WebPluginDatabase setAdditionalWebPlugInPaths:] -[WebDefaultUIDelegate webView:didDrawRect:] -[WebView(WebPrivate) _setPostsAcceleratedCompositingNotifications:] diff --git a/WebKit/mac/WebView/WebDataSource.mm b/WebKit/mac/WebView/WebDataSource.mm index b16aaa8..02dbc2c 100644 --- a/WebKit/mac/WebView/WebDataSource.mm +++ b/WebKit/mac/WebView/WebDataSource.mm @@ -211,6 +211,16 @@ static inline void addTypesFromClass(NSMutableDictionary *allTypes, Class objCCl #endif } +- (void)_setDeferMainResourceDataLoad:(BOOL)flag +{ + DocumentLoader* loader = [self _documentLoader]; + + if (!loader) + return; + + loader->setDeferMainResourceDataLoad(flag); +} + @end @implementation WebDataSource (WebInternal) diff --git a/WebKit/mac/WebView/WebDataSourcePrivate.h b/WebKit/mac/WebView/WebDataSourcePrivate.h index ae8d4cf..df9c61e 100644 --- a/WebKit/mac/WebView/WebDataSourcePrivate.h +++ b/WebKit/mac/WebView/WebDataSourcePrivate.h @@ -37,4 +37,6 @@ - (BOOL)_transferApplicationCache:(NSString*)destinationBundleIdentifier; +- (void)_setDeferMainResourceDataLoad:(BOOL)flag; + @end diff --git a/WebKit/mac/WebView/WebHTMLRepresentation.mm b/WebKit/mac/WebView/WebHTMLRepresentation.mm index c009f4a..7843c9a 100644 --- a/WebKit/mac/WebView/WebHTMLRepresentation.mm +++ b/WebKit/mac/WebView/WebHTMLRepresentation.mm @@ -113,7 +113,7 @@ static NSArray *concatenateArrays(NSArray *first, NSArray *second) return staticSupportedImageMIMETypes.get(); } -- init +- (id)init { self = [super init]; if (!self) diff --git a/WebKit/mac/WebView/WebHTMLView.mm b/WebKit/mac/WebView/WebHTMLView.mm index e40500c..08c8911 100644 --- a/WebKit/mac/WebView/WebHTMLView.mm +++ b/WebKit/mac/WebView/WebHTMLView.mm @@ -1201,7 +1201,7 @@ static void _updateMouseoverTimerCallback(CFRunLoopTimerRef timer, void *info) #ifndef BUILDING_ON_TIGER _private->inScrollPositionChanged = YES; #endif - coreView->scrollPositionChanged(); + coreView->scrollPositionChangedViaPlatformWidget(); #ifndef BUILDING_ON_TIGER _private->inScrollPositionChanged = NO; #endif diff --git a/WebKit/mac/WebView/WebPreferenceKeysPrivate.h b/WebKit/mac/WebView/WebPreferenceKeysPrivate.h index a28be49..4175a5d 100644 --- a/WebKit/mac/WebView/WebPreferenceKeysPrivate.h +++ b/WebKit/mac/WebView/WebPreferenceKeysPrivate.h @@ -97,6 +97,7 @@ #define WebKitHTML5TreeBuilderEnabledPreferenceKey @"WebKitHTML5TreeBuilderEnabled" // Temporary, do not use. #define WebKitPaginateDuringLayoutEnabledPreferenceKey @"WebKitPaginateDuringLayoutEnabled" #define WebKitDNSPrefetchingEnabledPreferenceKey @"WebKitDNSPrefetchingEnabled" +#define WebKitMemoryInfoEnabledPreferenceKey @"WebKitMemoryInfoEnabled" // These are private both because callers should be using the cover methods and because the // cover methods themselves are private. diff --git a/WebKit/mac/WebView/WebPreferences.mm b/WebKit/mac/WebView/WebPreferences.mm index a376458..63915dc 100644 --- a/WebKit/mac/WebView/WebPreferences.mm +++ b/WebKit/mac/WebView/WebPreferences.mm @@ -176,7 +176,7 @@ static WebCacheModel cacheModelForMainBundle(void) @implementation WebPreferences -- init +- (id)init { // Create fake identifier static int instanceCount = 1; @@ -363,6 +363,7 @@ static WebCacheModel cacheModelForMainBundle(void) [NSNumber numberWithBool:YES], WebKitHTML5ParserEnabledPreferenceKey, [NSNumber numberWithBool:NO], WebKitHTML5TreeBuilderEnabledPreferenceKey, [NSNumber numberWithBool:YES], WebKitDNSPrefetchingEnabledPreferenceKey, + [NSNumber numberWithBool:NO], WebKitMemoryInfoEnabledPreferenceKey, nil]; // This value shouldn't ever change, which is assumed in the initialization of WebKitPDFDisplayModePreferenceKey above @@ -1281,6 +1282,16 @@ static NSString *classIBCreatorID = nil; [self _setBoolValue:flag forKey:WebKitPaginateDuringLayoutEnabledPreferenceKey]; } +- (BOOL)memoryInfoEnabled +{ + return [self _boolValueForKey:WebKitMemoryInfoEnabledPreferenceKey]; +} + +- (void)setMemoryInfoEnabled:(BOOL)flag +{ + [self _setBoolValue:flag forKey:WebKitMemoryInfoEnabledPreferenceKey]; +} + - (WebKitEditingBehavior)editingBehavior { return static_cast<WebKitEditingBehavior>([self _integerValueForKey:WebKitEditingBehaviorPreferenceKey]); diff --git a/WebKit/mac/WebView/WebPreferencesPrivate.h b/WebKit/mac/WebView/WebPreferencesPrivate.h index e94943f..073b364 100644 --- a/WebKit/mac/WebView/WebPreferencesPrivate.h +++ b/WebKit/mac/WebView/WebPreferencesPrivate.h @@ -191,6 +191,9 @@ extern NSString *WebPreferencesRemovedNotification; - (BOOL)usesProxiedOpenPanel; - (void)setUsesProxiedOpenPanel:(BOOL)enabled; +- (BOOL)memoryInfoEnabled; +- (void)setMemoryInfoEnabled:(BOOL)enabled; + // Other private methods - (void)_postPreferencesChangesNotification; + (WebPreferences *)_getInstanceForIdentifier:(NSString *)identifier; diff --git a/WebKit/mac/WebView/WebRenderLayer.h b/WebKit/mac/WebView/WebRenderLayer.h new file mode 100644 index 0000000..e09983d --- /dev/null +++ b/WebKit/mac/WebView/WebRenderLayer.h @@ -0,0 +1,53 @@ +/* + * Copyright (C) 2010 Apple Inc. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY APPLE INC. ``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. + */ + +#import <Foundation/Foundation.h> + +@class WebFrame; + +@interface WebRenderLayer : NSObject +{ + NSArray *children; + NSString *name; + NSString *compositingInfo; + NSRect bounds; + BOOL composited; + BOOL separator; +} + +- (id)initWithWebFrame:(WebFrame *)frame; + +- (NSArray *)children; + +- (NSString *)name; +- (NSString *)positionString; +- (NSString *)widthString; +- (NSString *)heightString; +- (NSString *)compositingInfo; + +- (BOOL)isComposited; +- (BOOL)isSeparator; + +@end diff --git a/WebKit/mac/WebView/WebRenderLayer.mm b/WebKit/mac/WebView/WebRenderLayer.mm new file mode 100644 index 0000000..edffac2 --- /dev/null +++ b/WebKit/mac/WebView/WebRenderLayer.mm @@ -0,0 +1,280 @@ +/* + * Copyright (C) 2010 Apple Inc. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY APPLE INC. ``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. + */ + +#import "WebRenderLayer.h" + +#import "WebFrameInternal.h" +#import <WebCore/Frame.h> +#import <WebCore/FrameLoaderClient.h> +#import <WebCore/PlatformString.h> +#import <WebCore/RenderLayer.h> +#import <WebCore/RenderLayerBacking.h> +#import <WebCore/RenderView.h> + +using namespace WebCore; + + +@interface WebRenderLayer(Private) + +- (id)initWithRenderLayer:(RenderLayer *)layer; +- (void)buildDescendantLayers:(RenderLayer*)rootLayer; + +@end + +@implementation WebRenderLayer + ++ (NSString *)nameForLayer:(RenderLayer*)layer +{ + RenderObject* renderer = layer->renderer(); + NSString *name = [NSString stringWithUTF8String:renderer->renderName()]; + + if (Node* node = renderer->node()) { + if (node->isElementNode()) + name = [name stringByAppendingFormat:@" %@", (NSString *)static_cast<Element*>(node)->tagName()]; + if (node->hasID()) + name = [name stringByAppendingFormat:@" id=\"%@\"", (NSString *)static_cast<Element*>(node)->getIdAttribute()]; + + if (node->hasClass()) { + StyledElement* styledElement = static_cast<StyledElement*>(node); + String classes; + for (size_t i = 0; i < styledElement->classNames().size(); ++i) { + if (i > 0) + classes += " "; + classes += styledElement->classNames()[i]; + } + name = [name stringByAppendingFormat:@" class=\"%@\"", (NSString *)classes]; + } + } + + if (layer->isReflection()) + name = [name stringByAppendingString:@" (reflection)"]; + + return name; +} + ++ (NSString *)compositingInfoForLayer:(RenderLayer*)layer +{ + if (!layer->isComposited()) + return @""; + + NSString *layerType = @""; +#if USE(ACCELERATED_COMPOSITING) + RenderLayerBacking* backing = layer->backing(); + switch (backing->compositingLayerType()) { + case NormalCompositingLayer: + layerType = @"composited"; + break; + case TiledCompositingLayer: + layerType = @"composited: tiled layer"; + break; + case MediaCompositingLayer: + layerType = @"composited for plug-in, video or WebGL"; + break; + case ContainerCompositingLayer: + layerType = @"composited: container layer"; + break; + } + + if (backing->hasClippingLayer()) + layerType = [layerType stringByAppendingString:@" (clipping)"]; + + if (backing->hasAncestorClippingLayer()) + layerType = [layerType stringByAppendingString:@" (clipped)"]; +#endif + + return layerType; +} + +- (id)initWithRenderLayer:(RenderLayer*)layer +{ + if ((self = [super init])) { + name = [[WebRenderLayer nameForLayer:layer] retain]; + bounds = layer->absoluteBoundingBox(); + composited = layer->isComposited(); + compositingInfo = [[WebRenderLayer compositingInfoForLayer:layer] retain]; + } + + return self; +} + +- (id)initWithName:(NSString*)layerName +{ + if ((self = [super init])) { + name = [layerName copy]; + separator = YES; + } + + return self; +} + +// Only called on the root. +- (id)initWithWebFrame:(WebFrame *)webFrame +{ + self = [super init]; + + Frame* frame = core(webFrame); + if (!frame->loader()->client()->hasHTMLView()) { + [self release]; + return nil; + } + + RenderObject* renderer = frame->contentRenderer(); + if (!renderer) { + [self release]; + return nil; + } + + if (renderer->hasLayer()) { + RenderLayer* layer = toRenderBoxModelObject(renderer)->layer(); + + name = [[WebRenderLayer nameForLayer:layer] retain]; + bounds = layer->absoluteBoundingBox(); + composited = layer->isComposited(); + compositingInfo = [[WebRenderLayer compositingInfoForLayer:layer] retain]; + + [self buildDescendantLayers:layer]; + } + + return self; +} + +- (void)dealloc +{ + [children release]; + [name release]; + [compositingInfo release]; + [super dealloc]; +} + +- (void)buildDescendantLayers:(RenderLayer*)layer +{ + NSMutableArray *childWebLayers = [[NSMutableArray alloc] init]; + + // Build children in back to front order. + + if (Vector<RenderLayer*>* negZOrderList = layer->negZOrderList()) { + size_t listSize = negZOrderList->size(); + + if (listSize) { + WebRenderLayer* newLayer = [[WebRenderLayer alloc] initWithName:@"-ve z-order list"]; + [childWebLayers addObject:newLayer]; + [newLayer release]; + } + + for (size_t i = 0; i < listSize; ++i) { + RenderLayer* curLayer = negZOrderList->at(i); + + WebRenderLayer* newLayer = [[WebRenderLayer alloc] initWithRenderLayer:curLayer]; + [newLayer buildDescendantLayers:curLayer]; + + [childWebLayers addObject:newLayer]; + [newLayer release]; + } + } + + if (Vector<RenderLayer*>* normalFlowList = layer->normalFlowList()) { + size_t listSize = normalFlowList->size(); + + if (listSize) { + WebRenderLayer* newLayer = [[WebRenderLayer alloc] initWithName:@"normal flow list"]; + [childWebLayers addObject:newLayer]; + [newLayer release]; + } + + for (size_t i = 0; i < listSize; ++i) { + RenderLayer* curLayer = normalFlowList->at(i); + + WebRenderLayer* newLayer = [[WebRenderLayer alloc] initWithRenderLayer:curLayer]; + [newLayer buildDescendantLayers:curLayer]; + + [childWebLayers addObject:newLayer]; + [newLayer release]; + } + } + + if (Vector<RenderLayer*>* posZOrderList = layer->posZOrderList()) { + size_t listSize = posZOrderList->size(); + + if (listSize) { + WebRenderLayer* newLayer = [[WebRenderLayer alloc] initWithName:@"+ve z-order list"]; + [childWebLayers addObject:newLayer]; + [newLayer release]; + } + + for (size_t i = 0; i < listSize; ++i) { + RenderLayer* curLayer = posZOrderList->at(i); + + WebRenderLayer* newLayer = [[WebRenderLayer alloc] initWithRenderLayer:curLayer]; + [newLayer buildDescendantLayers:curLayer]; + + [childWebLayers addObject:newLayer]; + [newLayer release]; + } + } + + children = childWebLayers; +} + +- (NSArray *)children +{ + return children; +} + +- (NSString *)name +{ + return name; +} + +- (NSString *)positionString +{ + return [NSString stringWithFormat:@"(%.0f, %.0f)", bounds.origin.x, bounds.origin.y]; +} + +- (NSString *)widthString +{ + return [NSString stringWithFormat:@"%.0f", bounds.size.width]; +} + +- (NSString *)heightString +{ + return [NSString stringWithFormat:@"%.0f", bounds.size.height]; +} + +- (NSString *)compositingInfo +{ + return compositingInfo; +} + +- (BOOL)isComposited +{ + return composited; +} + +- (BOOL)isSeparator +{ + return separator; +} + +@end diff --git a/WebKit/mac/WebView/WebView.mm b/WebKit/mac/WebView/WebView.mm index 6d61453..f7b83ea 100644 --- a/WebKit/mac/WebView/WebView.mm +++ b/WebKit/mac/WebView/WebView.mm @@ -1,6 +1,7 @@ /* * Copyright (C) 2005, 2006, 2007, 2008, 2009, 2010 Apple Inc. All rights reserved. * Copyright (C) 2006 David Smith (catfish.man@gmail.com) + * Copyright (C) 2010 Igalia S.L * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions @@ -1432,6 +1433,7 @@ static bool fastDocumentTeardownEnabled() settings->setHTML5ParserEnabled([preferences html5ParserEnabled]); settings->setHTML5TreeBuilderEnabled_DO_NOT_USE([preferences html5TreeBuilderEnabled]); settings->setPaginateDuringLayoutEnabled([preferences paginateDuringLayoutEnabled]); + settings->setMemoryInfoEnabled([preferences memoryInfoEnabled]); } static inline IMP getMethod(id o, SEL s) @@ -2219,7 +2221,7 @@ static inline IMP getMethod(id o, SEL s) + (NSCursor *)_pointingHandCursor { - return handCursor().impl(); + return handCursor().platformCursor(); } - (BOOL)_postsAcceleratedCompositingNotifications @@ -2619,6 +2621,20 @@ static PassOwnPtr<Vector<String> > toStringVector(NSArray* patterns) return nil; } +#if ENABLE(PLUGIN_PROXY_FOR_VIDEO) +- (WebBasePluginPackage *)_videoProxyPluginForMIMEType:(NSString *)MIMEType +{ + WebBasePluginPackage *pluginPackage = [[WebPluginDatabase sharedDatabase] pluginForMIMEType:MIMEType]; + if (pluginPackage) + return pluginPackage; + + if (_private->pluginDatabase) + return [_private->pluginDatabase pluginForMIMEType:MIMEType]; + + return nil; +} +#endif + - (WebBasePluginPackage *)_pluginForExtension:(NSString *)extension { if (![_private->preferences arePlugInsEnabled]) @@ -3084,7 +3100,7 @@ static bool needsWebViewInitThreadWorkaround() _private->UIDelegateForwarder = nil; } -- UIDelegate +- (id)UIDelegate { return _private->UIDelegate; } @@ -3095,7 +3111,7 @@ static bool needsWebViewInitThreadWorkaround() [self _cacheResourceLoadDelegateImplementations]; } -- resourceLoadDelegate +- (id)resourceLoadDelegate { return _private->resourceProgressDelegate; } @@ -3106,7 +3122,7 @@ static bool needsWebViewInitThreadWorkaround() } -- downloadDelegate +- (id)downloadDelegate { return _private->downloadDelegate; } @@ -3118,7 +3134,7 @@ static bool needsWebViewInitThreadWorkaround() _private->policyDelegateForwarder = nil; } -- policyDelegate +- (id)policyDelegate { return _private->policyDelegate; } @@ -3144,7 +3160,7 @@ static bool needsWebViewInitThreadWorkaround() #endif } -- frameLoadDelegate +- (id)frameLoadDelegate { return _private->frameLoadDelegate; } diff --git a/WebKit/mac/WebView/WebViewData.h b/WebKit/mac/WebView/WebViewData.h index 06fee4f..d097c4c 100644 --- a/WebKit/mac/WebView/WebViewData.h +++ b/WebKit/mac/WebView/WebViewData.h @@ -1,5 +1,6 @@ /* * Copyright (C) 2005, 2006, 2007, 2008, 2009 Apple Inc. All rights reserved. + * Copyright (C) 2010 Igalia S.L * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions diff --git a/WebKit/mac/WebView/WebViewInternal.h b/WebKit/mac/WebView/WebViewInternal.h index bf9b732..f95d3d3 100644 --- a/WebKit/mac/WebView/WebViewInternal.h +++ b/WebKit/mac/WebView/WebViewInternal.h @@ -1,5 +1,6 @@ /* * Copyright (C) 2005, 2006, 2007, 2008, 2009 Apple Inc. All rights reserved. + * Copyright (C) 2010 Igalia S.L * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions @@ -146,6 +147,9 @@ namespace WebCore { - (void)_didChangeValueForKey:(NSString *)key; - (WebBasePluginPackage *)_pluginForMIMEType:(NSString *)MIMEType; - (WebBasePluginPackage *)_pluginForExtension:(NSString *)extension; +#if ENABLE(PLUGIN_PROXY_FOR_VIDEO) +- (WebBasePluginPackage *)_videoProxyPluginForMIMEType:(NSString *)MIMEType; +#endif - (void)setCurrentNodeHighlight:(WebNodeHighlight *)nodeHighlight; - (WebNodeHighlight *)currentNodeHighlight; diff --git a/WebKit/qt/Api/qgraphicswebview.cpp b/WebKit/qt/Api/qgraphicswebview.cpp index 6d6acc5..8fbb8e2 100644 --- a/WebKit/qt/Api/qgraphicswebview.cpp +++ b/WebKit/qt/Api/qgraphicswebview.cpp @@ -73,6 +73,7 @@ public: QGraphicsWebView* q; QWebPage* page; bool resizesToContents; + QSize deviceSize; // Just a convenience to avoid using page->client->overlay always QSharedPointer<QGraphicsItemOverlay> overlay; @@ -549,6 +550,24 @@ QIcon QGraphicsWebView::icon() const } /*! + \property QGraphicsWebView::deviceSize + \brief the size of the device using the web view + + The device size is used by the DOM window object methods + otherHeight(), otherWidth() as well as a page for the viewport + meta tag attributes device-width and device-height. +*/ +void QGraphicsWebView::setDeviceSize(const QSize& size) +{ + d->deviceSize = size; +} + +QSize QGraphicsWebView::deviceSize() const +{ + return d->deviceSize; +} + +/*! \property QGraphicsWebView::zoomFactor \brief the zoom factor for the view */ diff --git a/WebKit/qt/Api/qgraphicswebview.h b/WebKit/qt/Api/qgraphicswebview.h index 88729d3..8650984 100644 --- a/WebKit/qt/Api/qgraphicswebview.h +++ b/WebKit/qt/Api/qgraphicswebview.h @@ -41,6 +41,7 @@ class QWEBKIT_EXPORT QGraphicsWebView : public QGraphicsWidget { Q_PROPERTY(QString title READ title NOTIFY titleChanged) Q_PROPERTY(QIcon icon READ icon NOTIFY iconChanged) Q_PROPERTY(qreal zoomFactor READ zoomFactor WRITE setZoomFactor) + Q_PROPERTY(QSize deviceSize READ deviceSize WRITE setDeviceSize) Q_PROPERTY(QUrl url READ url WRITE setUrl NOTIFY urlChanged) @@ -64,9 +65,12 @@ public: qreal zoomFactor() const; void setZoomFactor(qreal); + QSize deviceSize() const; + void setDeviceSize(const QSize&); + bool isModified() const; - void load(const QUrl &url); + void load(const QUrl& url); void load(const QNetworkRequest& request, QNetworkAccessManager::Operation operation = QNetworkAccessManager::GetOperation, const QByteArray& body = QByteArray()); void setHtml(const QString& html, const QUrl& baseUrl = QUrl()); diff --git a/WebKit/qt/ChangeLog b/WebKit/qt/ChangeLog index e67abca..edc8f52 100644 --- a/WebKit/qt/ChangeLog +++ b/WebKit/qt/ChangeLog @@ -1,3 +1,119 @@ +2010-07-20 Kenneth Rohde Christiansen <kenneth.christiansen@openbossa.org> + + [Qt] Add API to define device-width and height for use with the viewport meta tag + https://bugs.webkit.org/show_bug.cgi?id=42597 + + Reviewed by Antonio Gomes. + + Add a new API for setting the deviceSize for use in conjunction with + out viewport meta tag API. + + * Api/qgraphicswebview.cpp: + (QGraphicsWebView::setDeviceSize): + (QGraphicsWebView::deviceSize): + * Api/qgraphicswebview.h: + * WebCoreSupport/PageClientQt.cpp: + (WebCore::PageClientQGraphicsWidget::windowRect): + * WebCoreSupport/PageClientQt.h: + (WebCore::PageClientQGraphicsWidget::PageClientQGraphicsWidget): + +2010-07-20 Andreas Kling <andreas.kling@nokia.com> + + Reviewed by Kenneth Rohde Christiansen. + + [Qt] DRT sideeffect revealed by r63657 + https://bugs.webkit.org/show_bug.cgi?id=42578 + + Don't set an automatic timeout for notifications when running in DRT. + This fixes an issue with cancel() notifications in unrelated tests. + + * WebCoreSupport/NotificationPresenterClientQt.cpp: + (WebCore::NotificationPresenterClientQt::displayNotification): + +2010-07-18 Andreas Kling <andreas.kling@nokia.com> + + Reviewed by Antonio Gomes. + + [Qt] tst_QWebPage fails cursorMovements and textSelection + https://bugs.webkit.org/show_bug.cgi?id=42531 + + Correct the HTML used by these tests. + + * tests/qwebpage/tst_qwebpage.cpp: + (tst_QWebPage::cursorMovements): + (tst_QWebPage::textSelection): + (tst_QWebPage::textEditing): + +2010-07-18 Andreas Kling <andreas.kling@nokia.com> + + Reviewed by Antonio Gomes. + + [Qt] tst_QWebElement fails firstChildNextSibling and lastChildPreviousSibling + https://bugs.webkit.org/show_bug.cgi?id=42527 + + Correct the HTML used by these tests. + + * tests/qwebelement/tst_qwebelement.cpp: + (tst_QWebElement::firstChildNextSibling): + (tst_QWebElement::lastChildPreviousSibling): + +2010-07-16 Zhe Su <suzhe@chromium.org> + + Reviewed by Darin Adler. + + REGRESSION(r61484): Broke focus behaviour on Qt and probably other platforms + https://bugs.webkit.org/show_bug.cgi?id=42253 + + Dummy implementation of EditorClient::willSetInputMethodState. + + * WebCoreSupport/EditorClientQt.cpp: + (WebCore::EditorClientQt::willSetInputMethodState): + * WebCoreSupport/EditorClientQt.h: + +2010-07-14 Sam Weinig <sam@webkit.org> + + Reviewed by Darin Adler. + + Patch for https://bugs.webkit.org/show_bug.cgi?id=42232 + Make changing Cursors work in WebKit2. + + * WebCoreSupport/ChromeClientQt.cpp: + (WebCore::ChromeClientQt::setCursor): + * WebCoreSupport/ChromeClientQt.h: + Change prototype to match new one. + +2010-07-07 Tor Arne Vestbø <tor.arne.vestbo@nokia.com> + + Reviewed by Darin Adler. + + Prevent assertion/duplicate loads for non-deferred subtitute-data loads + + https://bugs.webkit.org/show_bug.cgi?id=30879 + + MainResourceLoader uses the member m_initialRequest to store requests for future + deferred loads. When doing the actual load in handleDataLoadNow(), we therefore + have to clear this request so that subsequent entries into the loader will not + start yet another load. + + This can happen as a result of a PageGroupLoadDeferrer going out of scope when + returning from Chrome::runJavaScriptAlert(), which calls setDeferredLoading(false), + but only in the case of using both substitute-data and non-deferred main resource + load together. That's why two new DRT functions were added: + + * queueLoadHTMLString() + * setDeferMainResourceLoad() + + The change adds DRT hooks for Mac, Win and Qt for these two functions. For Mac + and Win the hook uses new SPI in WebDataSource. For Qt a new static member was + added to the FrameLoaderClientQt and accessed though DumpRenderTreeSupportQt. + + * WebCoreSupport/DumpRenderTreeSupportQt.cpp: + (DumpRenderTreeSupportQt::setDeferMainResourceDataLoad): + * WebCoreSupport/DumpRenderTreeSupportQt.h: + * WebCoreSupport/FrameLoaderClientQt.cpp: + (WebCore::FrameLoaderClientQt::createDocumentLoader): + * WebCoreSupport/FrameLoaderClientQt.h: + 2010-07-09 Yael Aharon <yael.aharon@nokia.com> Reviewed by Laszlo Gombos. diff --git a/WebKit/qt/WebCoreSupport/ChromeClientQt.cpp b/WebKit/qt/WebCoreSupport/ChromeClientQt.cpp index faec705..2c64a78 100644 --- a/WebKit/qt/WebCoreSupport/ChromeClientQt.cpp +++ b/WebKit/qt/WebCoreSupport/ChromeClientQt.cpp @@ -529,10 +529,9 @@ void ChromeClientQt::chooseIconForFiles(const Vector<String>& filenames, FileCho chooser->iconLoaded(Icon::createIconForFiles(filenames)); } -bool ChromeClientQt::setCursor(PlatformCursorHandle) +void ChromeClientQt::setCursor(const Cursor&) { notImplemented(); - return false; } void ChromeClientQt::requestGeolocationPermissionForFrame(Frame* frame, Geolocation* geolocation) diff --git a/WebKit/qt/WebCoreSupport/ChromeClientQt.h b/WebKit/qt/WebCoreSupport/ChromeClientQt.h index 4b55eb2..70b4a25 100644 --- a/WebKit/qt/WebCoreSupport/ChromeClientQt.h +++ b/WebKit/qt/WebCoreSupport/ChromeClientQt.h @@ -161,7 +161,7 @@ namespace WebCore { virtual PassOwnPtr<HTMLParserQuirks> createHTMLParserQuirks() { return 0; } - virtual bool setCursor(PlatformCursorHandle); + virtual void setCursor(const Cursor&); virtual void scrollRectIntoView(const IntRect&, const ScrollView*) const {} diff --git a/WebKit/qt/WebCoreSupport/DumpRenderTreeSupportQt.cpp b/WebKit/qt/WebCoreSupport/DumpRenderTreeSupportQt.cpp index 99f5653..a83e1a5 100644 --- a/WebKit/qt/WebCoreSupport/DumpRenderTreeSupportQt.cpp +++ b/WebKit/qt/WebCoreSupport/DumpRenderTreeSupportQt.cpp @@ -547,6 +547,11 @@ void DumpRenderTreeSupportQt::setWillSendRequestClearHeaders(const QStringList& FrameLoaderClientQt::sendRequestClearHeaders = headers; } +void DumpRenderTreeSupportQt::setDeferMainResourceDataLoad(bool b) +{ + FrameLoaderClientQt::deferMainResourceDataLoad = b; +} + void DumpRenderTreeSupportQt::setCustomPolicyDelegate(bool enabled, bool permissive) { FrameLoaderClientQt::policyDelegateEnabled = enabled; diff --git a/WebKit/qt/WebCoreSupport/DumpRenderTreeSupportQt.h b/WebKit/qt/WebCoreSupport/DumpRenderTreeSupportQt.h index 2ff1fc8..188c405 100644 --- a/WebKit/qt/WebCoreSupport/DumpRenderTreeSupportQt.h +++ b/WebKit/qt/WebCoreSupport/DumpRenderTreeSupportQt.h @@ -116,6 +116,8 @@ public: static void setWillSendRequestReturnsNull(bool b); static void setWillSendRequestClearHeaders(const QStringList& headers); + static void setDeferMainResourceDataLoad(bool b); + static void dumpEditingCallbacks(bool b); static void dumpSetAcceptsEditing(bool b); diff --git a/WebKit/qt/WebCoreSupport/EditorClientQt.cpp b/WebKit/qt/WebCoreSupport/EditorClientQt.cpp index e140968..74c8438 100644 --- a/WebKit/qt/WebCoreSupport/EditorClientQt.cpp +++ b/WebKit/qt/WebCoreSupport/EditorClientQt.cpp @@ -587,6 +587,10 @@ bool EditorClientQt::isEditing() const return m_editing; } +void EditorClientQt::willSetInputMethodState() +{ +} + void EditorClientQt::setInputMethodState(bool active) { QWebPageClient* webPageClient = m_page->d->client; diff --git a/WebKit/qt/WebCoreSupport/EditorClientQt.h b/WebKit/qt/WebCoreSupport/EditorClientQt.h index a5f6b23..7d99d22 100644 --- a/WebKit/qt/WebCoreSupport/EditorClientQt.h +++ b/WebKit/qt/WebCoreSupport/EditorClientQt.h @@ -105,6 +105,7 @@ public: virtual void showSpellingUI(bool show); virtual bool spellingUIIsShowing(); virtual void getGuessesForWord(const String&, Vector<String>& guesses); + virtual void willSetInputMethodState(); virtual void setInputMethodState(bool enabled); bool isEditing() const; diff --git a/WebKit/qt/WebCoreSupport/FrameLoaderClientQt.cpp b/WebKit/qt/WebCoreSupport/FrameLoaderClientQt.cpp index 0348251..fc0f6c3 100644 --- a/WebKit/qt/WebCoreSupport/FrameLoaderClientQt.cpp +++ b/WebKit/qt/WebCoreSupport/FrameLoaderClientQt.cpp @@ -157,6 +157,7 @@ bool FrameLoaderClientQt::dumpResourceLoadCallbacks = false; bool FrameLoaderClientQt::sendRequestReturnsNullOnRedirect = false; bool FrameLoaderClientQt::sendRequestReturnsNull = false; bool FrameLoaderClientQt::dumpResourceResponseMIMETypes = false; +bool FrameLoaderClientQt::deferMainResourceDataLoad = true; QStringList FrameLoaderClientQt::sendRequestClearHeaders; QString FrameLoaderClientQt::dumpResourceLoadCallbacksPath; @@ -878,7 +879,7 @@ bool FrameLoaderClientQt::shouldFallBack(const WebCore::ResourceError&) WTF::PassRefPtr<WebCore::DocumentLoader> FrameLoaderClientQt::createDocumentLoader(const WebCore::ResourceRequest& request, const SubstituteData& substituteData) { RefPtr<DocumentLoader> loader = DocumentLoader::create(request, substituteData); - if (substituteData.isValid()) + if (!deferMainResourceDataLoad || substituteData.isValid()) loader->setDeferMainResourceDataLoad(false); return loader.release(); } diff --git a/WebKit/qt/WebCoreSupport/FrameLoaderClientQt.h b/WebKit/qt/WebCoreSupport/FrameLoaderClientQt.h index b4a3c7e..ec672f5 100644 --- a/WebKit/qt/WebCoreSupport/FrameLoaderClientQt.h +++ b/WebKit/qt/WebCoreSupport/FrameLoaderClientQt.h @@ -221,6 +221,7 @@ public: static QStringList sendRequestClearHeaders; static bool policyDelegateEnabled; static bool policyDelegatePermissive; + static bool deferMainResourceDataLoad; private: Frame *m_frame; diff --git a/WebKit/qt/WebCoreSupport/NotificationPresenterClientQt.cpp b/WebKit/qt/WebCoreSupport/NotificationPresenterClientQt.cpp index a037592..ee69103 100644 --- a/WebKit/qt/WebCoreSupport/NotificationPresenterClientQt.cpp +++ b/WebKit/qt/WebCoreSupport/NotificationPresenterClientQt.cpp @@ -183,7 +183,8 @@ void NotificationPresenterClientQt::displayNotification(Notification* notificati if (!wrapper->m_presenter) { #ifndef QT_NO_SYSTEMTRAYICON - wrapper->m_closeTimer.startOneShot(notificationTimeout); + if (!dumpNotification) + wrapper->m_closeTimer.startOneShot(notificationTimeout); QPixmap pixmap; if (bytes.length() && pixmap.loadFromData(bytes)) { QIcon icon(pixmap); diff --git a/WebKit/qt/WebCoreSupport/PageClientQt.cpp b/WebKit/qt/WebCoreSupport/PageClientQt.cpp index f52c382..90a5a63 100644 --- a/WebKit/qt/WebCoreSupport/PageClientQt.cpp +++ b/WebKit/qt/WebCoreSupport/PageClientQt.cpp @@ -324,6 +324,9 @@ QStyle* PageClientQGraphicsWidget::style() const QRectF PageClientQGraphicsWidget::windowRect() const { + if (!view->deviceSize().isEmpty()) + return QRectF(QRect(QPoint(0, 0), view->deviceSize())); + if (!view->scene()) return QRectF(); diff --git a/WebKit/qt/WebCoreSupport/PageClientQt.h b/WebKit/qt/WebCoreSupport/PageClientQt.h index 4d42ca1..1204afc 100644 --- a/WebKit/qt/WebCoreSupport/PageClientQt.h +++ b/WebKit/qt/WebCoreSupport/PageClientQt.h @@ -26,11 +26,11 @@ #include "IntRect.h" #include "QWebPageClient.h" #include "TiledBackingStore.h" +#include "qgraphicswebview.h" #include "qwebframe.h" #include "qwebframe_p.h" #include "qwebpage.h" #include "qwebpage_p.h" - #include <QtCore/qmetaobject.h> #include <QtCore/qsharedpointer.h> #include <QtGui/qgraphicsscene.h> @@ -42,7 +42,6 @@ #include <Settings.h> - namespace WebCore { class PageClientQWidget : public QWebPageClient { @@ -122,7 +121,7 @@ class QGraphicsItemOverlay : public QGraphicsItem { class PageClientQGraphicsWidget : public QWebPageClient { public: - PageClientQGraphicsWidget(QGraphicsWidget* v, QWebPage* p) + PageClientQGraphicsWidget(QGraphicsWebView* v, QWebPage* p) : view(v) , page(p) , viewResizesToContents(false) @@ -186,7 +185,7 @@ public: virtual QRectF windowRect() const; - QGraphicsWidget* view; + QGraphicsWebView* view; QWebPage* page; bool viewResizesToContents; diff --git a/WebKit/qt/tests/qwebelement/tst_qwebelement.cpp b/WebKit/qt/tests/qwebelement/tst_qwebelement.cpp index 8db0ec3..2f1097a 100644 --- a/WebKit/qt/tests/qwebelement/tst_qwebelement.cpp +++ b/WebKit/qt/tests/qwebelement/tst_qwebelement.cpp @@ -887,7 +887,7 @@ void tst_QWebElement::nullSelect() void tst_QWebElement::firstChildNextSibling() { - m_mainFrame->setHtml("<body><!--comment--><p>Test</p><!--another commend><table>"); + m_mainFrame->setHtml("<body><!--comment--><p>Test</p><!--another comment--><table>"); QWebElement body = m_mainFrame->findFirstElement("body"); QVERIFY(!body.isNull()); @@ -902,7 +902,7 @@ void tst_QWebElement::firstChildNextSibling() void tst_QWebElement::lastChildPreviousSibling() { - m_mainFrame->setHtml("<body><!--comment--><p>Test</p><!--another commend><table>"); + m_mainFrame->setHtml("<body><!--comment--><p>Test</p><!--another comment--><table>"); QWebElement body = m_mainFrame->findFirstElement("body"); QVERIFY(!body.isNull()); diff --git a/WebKit/qt/tests/qwebpage/tst_qwebpage.cpp b/WebKit/qt/tests/qwebpage/tst_qwebpage.cpp index 70466c7..67e3ecd 100644 --- a/WebKit/qt/tests/qwebpage/tst_qwebpage.cpp +++ b/WebKit/qt/tests/qwebpage/tst_qwebpage.cpp @@ -862,7 +862,7 @@ public: void tst_QWebPage::cursorMovements() { CursorTrackedPage* page = new CursorTrackedPage; - QString content("<html><body<p id=one>The quick brown fox</p><p id=two>jumps over the lazy dog</p><p>May the source<br/>be with you!</p></body></html>"); + QString content("<html><body><p id=one>The quick brown fox</p><p id=two>jumps over the lazy dog</p><p>May the source<br/>be with you!</p></body></html>"); page->mainFrame()->setHtml(content); // this will select the first paragraph @@ -1054,7 +1054,7 @@ void tst_QWebPage::cursorMovements() void tst_QWebPage::textSelection() { CursorTrackedPage* page = new CursorTrackedPage; - QString content("<html><body<p id=one>The quick brown fox</p>" \ + QString content("<html><body><p id=one>The quick brown fox</p>" \ "<p id=two>jumps over the lazy dog</p>" \ "<p>May the source<br/>be with you!</p></body></html>"); page->mainFrame()->setHtml(content); @@ -1142,7 +1142,7 @@ void tst_QWebPage::textSelection() void tst_QWebPage::textEditing() { CursorTrackedPage* page = new CursorTrackedPage; - QString content("<html><body<p id=one>The quick brown fox</p>" \ + QString content("<html><body><p id=one>The quick brown fox</p>" \ "<p id=two>jumps over the lazy dog</p>" \ "<p>May the source<br/>be with you!</p></body></html>"); page->mainFrame()->setHtml(content); diff --git a/WebKit/win/ChangeLog b/WebKit/win/ChangeLog index e1b7248..44869dc 100644 --- a/WebKit/win/ChangeLog +++ b/WebKit/win/ChangeLog @@ -1,3 +1,194 @@ +2010-07-20 Steve Falkenburg <sfalken@apple.com> + + Reviewed by Adam Roben. + + WebKit on Windows should build optionally with an unversioned ICU DLL + https://bugs.webkit.org/show_bug.cgi?id=42722 + <rdar://problem/8211767> WebKit needs to link against unversioned ICU + + To get the proper value for U_DISABLE_RENAMING into all source files, we force + the include of ICUVersion.h (our generated header) via the compiler options. + + * WebKit.vcproj/WebKit.vcproj: Add forced include of ICUVersion.h. + +2010-07-21 Adam Roben <aroben@apple.com> + + Update WebKit.sln for InjectedBundle's Debug_Internal configuration + + Fixes <http://webkit.org/b/42749> InjectedBundle's build + configurations are screwy + + Reviewed by Darin Adler. + + * WebKit.vcproj/WebKit.sln: Build the Debug_Internal variant of + InjectedBundle when we're using the Debug_Internal solution + configuration. + +2010-07-21 Adam Roben <aroben@apple.com> + + Add MiniBrowser to WebKit.sln + + It is the last project to build. + + Fixes <http://webkit.org/b/42747> build-webkit should build + MiniBrowser + + Reviewed by Darin Adler. + + * WebKit.vcproj/WebKit.sln: Added MiniBrowser, and made it depend on + WebKitTestRunner. + +2010-07-20 Adam Roben <aroben@apple.com> + + Add WebKitTestRunner and friends to WebKit.sln + + We added these projects to WebKit2.sln in r63585, but removed them + again in r63600 because WebKitTestRunner required getopt, which + doesn't exist in WebKitAuxiliaryLibrary. r63700 and r63788 removed the + use of getopt in WebKitTestRunner, so we can now add it to WebKit.sln + (which has replaced WebKit2.sln). + + Fixes <http://webkit.org/b/42711> WebKit.sln should build + WebKitTestRunner + + Reviewed by Steve Falkenburg. + + * WebKit.vcproj/WebKit.sln: Added the following projects to the end of + the build order (in first-built to last-built order): + InjectedBundleGenerated, InjectedBundle, WebKitTestRunner. Also + removed an unnecessary dependency from testapi on WebKit2WebProcess. + +2010-07-19 Daniel Bates <dbates@rim.com> + + Reviewed by Adam Roben. + + [Win] Implement LayoutTestController::markerTextForListItem() + https://bugs.webkit.org/show_bug.cgi?id=37930 + + Implements support for markerTextForListItem in the Windows port. + + * DOMCoreClasses.cpp: + (DOMElement::markerTextForListItem): Added. + * DOMCoreClasses.h: + * Interfaces/DOMPrivate.idl: Added declaration for markerTextForListItem(). + * Interfaces/IWebViewPrivate.idl: Added declaration for elementFromJS(). + * Interfaces/WebKit.idl: Touch it to force a rebuild (and for good luck :-)). + * WebView.cpp: + (WebView::elementFromJS): Added. + * WebView.h: + +2010-07-16 Zhe Su <suzhe@chromium.org> + + Reviewed by Darin Adler. + + REGRESSION(r61484): Broke focus behaviour on Qt and probably other platforms + https://bugs.webkit.org/show_bug.cgi?id=42253 + + Dummy implementation of EditorClient::willSetInputMethodState. + + * WebCoreSupport/WebEditorClient.cpp: + (WebEditorClient::willSetInputMethodState): + * WebCoreSupport/WebEditorClient.h: + +2010-07-16 Mikhail Naganov <mnaganov@chromium.org> + + Reviewed by Pavel Feldman. + + Make JS memory stats available via 'Performance' object (Web Timing). + This statistics is populated only if 'WebKitMemoryInfoEnabled' + preference is set. + + 'console.memory' is kept until Web Timing object becomes visible by + default (currently it is hidden under compile-time flag). These stats + are guarded with the same preference. + + https://bugs.webkit.org/show_bug.cgi?id=41617 + + * Interfaces/IWebPreferencesPrivate.idl: + * WebPreferenceKeysPrivate.h: + * WebPreferences.cpp: + (WebPreferences::initializeDefaultSettings): + (WebPreferences::memoryInfoEnabled): + (WebPreferences::setMemoryInfoEnabled): + * WebPreferences.h: + * WebView.cpp: + (WebView::notifyPreferencesChanged): + +2010-07-14 Brent Fulgham <bfulgham@webkit.org> + + Reviewed by Steve Falkenburg. + + Patch for https://bugs.webkit.org/show_bug.cgi?id=42299 + Correct WinCairo build for new WebKit2 project structure. + + * WebKit.vcproj/WebKit.sln: + +2010-07-14 Sam Weinig <sam@webkit.org> + + Reviewed by Darin Adler. + + Patch for https://bugs.webkit.org/show_bug.cgi?id=42232 + Make changing Cursors work in WebKit2. + + * WebCoreSupport/WebChromeClient.cpp: + (WebChromeClient::setCursor): + We now need to grab the native cursor out of the WebCore cursor. + + (WebChromeClient::setLastSetCursorToCurrentCursor): + Sets the WebView's "last set cursor" to be the current cursor so that + the cursor is set correctly for plugins. + * WebCoreSupport/WebChromeClient.h: + * WebView.cpp: + (WebView::WebView): + (WebView::WebViewWndProc): + * WebView.h: + (WebView::setLastCursor): + Change the "last set cursor" to be stored as a member instead of a global. + +2010-07-13 Steve Falkenburg <sfalken@apple.com> + + Windows build fix. + Make WebKit.sln build WebKit.dll as it used to in the past. + (sln is updated to include necessary projects) + + * WebKit.vcproj/WebKit.sln: + +2010-07-13 Tor Arne Vestbø <tor.arne.vestbo@nokia.com> + + Windows build fix + + * Interfaces/WebKit.idl: Touched to force a build + +2010-07-07 Tor Arne Vestbø <tor.arne.vestbo@nokia.com> + + Reviewed by Darin Adler. + + Prevent assertion/duplicate loads for non-deferred subtitute-data loads + + https://bugs.webkit.org/show_bug.cgi?id=30879 + + MainResourceLoader uses the member m_initialRequest to store requests for future + deferred loads. When doing the actual load in handleDataLoadNow(), we therefore + have to clear this request so that subsequent entries into the loader will not + start yet another load. + + This can happen as a result of a PageGroupLoadDeferrer going out of scope when + returning from Chrome::runJavaScriptAlert(), which calls setDeferredLoading(false), + but only in the case of using both substitute-data and non-deferred main resource + load together. That's why two new DRT functions were added: + + * queueLoadHTMLString() + * setDeferMainResourceLoad() + + The change adds DRT hooks for Mac, Win and Qt for these two functions. For Mac + and Win the hook uses new SPI in WebDataSource. For Qt a new static member was + added to the FrameLoaderClientQt and accessed though DumpRenderTreeSupportQt. + + * Interfaces/IWebDataSource.idl: + * WebDataSource.cpp: + (WebDataSource::setDeferMainResourceDataLoad): + * WebDataSource.h: + 2010-07-12 Steve Falkenburg <sfalken@apple.com> Reviewed by Alice Liu. diff --git a/WebKit/win/DOMCoreClasses.cpp b/WebKit/win/DOMCoreClasses.cpp index 4e8af61..42e8e63 100644 --- a/WebKit/win/DOMCoreClasses.cpp +++ b/WebKit/win/DOMCoreClasses.cpp @@ -48,6 +48,7 @@ #include <WebCore/HTMLTextAreaElement.h> #include <WebCore/NodeList.h> #include <WebCore/RenderObject.h> +#include <WebCore/RenderTreeAsText.h> #pragma warning(pop) #include <initguid.h> @@ -1149,6 +1150,18 @@ HRESULT STDMETHODCALLTYPE DOMElement::renderedImage(HBITMAP* image) return S_OK; } +HRESULT STDMETHODCALLTYPE DOMElement::markerTextForListItem( + /* [retval][out] */ BSTR* markerText) +{ + if (!markerText) + return E_POINTER; + + ASSERT(m_element); + + *markerText = BString(WebCore::markerTextForListItem(m_element)).release(); + return S_OK; +} + // IDOMElementCSSInlineStyle -------------------------------------------------- HRESULT STDMETHODCALLTYPE DOMElement::style( diff --git a/WebKit/win/DOMCoreClasses.h b/WebKit/win/DOMCoreClasses.h index f8a3dbb..c52d933 100644 --- a/WebKit/win/DOMCoreClasses.h +++ b/WebKit/win/DOMCoreClasses.h @@ -776,6 +776,9 @@ public: virtual HRESULT STDMETHODCALLTYPE renderedImage( /* [retval][out] */ HBITMAP* image); + virtual HRESULT STDMETHODCALLTYPE markerTextForListItem( + /* [retval][out] */ BSTR* markerText); + // IDOMElementCSSInlineStyle virtual HRESULT STDMETHODCALLTYPE style( /* [retval][out] */ IDOMCSSStyleDeclaration** result); diff --git a/WebKit/win/Interfaces/DOMPrivate.idl b/WebKit/win/Interfaces/DOMPrivate.idl index 3365565..c3bb60e 100644 --- a/WebKit/win/Interfaces/DOMPrivate.idl +++ b/WebKit/win/Interfaces/DOMPrivate.idl @@ -47,6 +47,7 @@ interface IDOMElementPrivate : IUnknown HRESULT innerText([out, retval] BSTR* result); [local] HRESULT font(WebFontDescription* webFontDescription); HRESULT renderedImage([out, retval] HBITMAP* image); + [local] HRESULT markerTextForListItem([out, retval] BSTR* markerText); } /* diff --git a/WebKit/win/Interfaces/IWebDataSource.idl b/WebKit/win/Interfaces/IWebDataSource.idl index 15bea1a..dd78d7e 100644 --- a/WebKit/win/Interfaces/IWebDataSource.idl +++ b/WebKit/win/Interfaces/IWebDataSource.idl @@ -214,4 +214,5 @@ interface IWebDataSourcePrivate : IUnknown HRESULT overrideEncoding([out, retval] BSTR* encoding); HRESULT setOverrideEncoding([in] BSTR encoding); HRESULT mainDocumentError([out, retval] IWebError** error); + HRESULT setDeferMainResourceDataLoad([in] BOOL flag); } diff --git a/WebKit/win/Interfaces/IWebPreferencesPrivate.idl b/WebKit/win/Interfaces/IWebPreferencesPrivate.idl index 119c3ff..bca8d6f 100644 --- a/WebKit/win/Interfaces/IWebPreferencesPrivate.idl +++ b/WebKit/win/Interfaces/IWebPreferencesPrivate.idl @@ -115,4 +115,7 @@ interface IWebPreferencesPrivate : IUnknown HRESULT isDNSPrefetchingEnabled([out, retval] BOOL *enabled); HRESULT setDNSPrefetchingEnabled([in] BOOL enabled); + + HRESULT memoryInfoEnabled([out, retval] BOOL *enabled); + HRESULT setMemoryInfoEnabled([in] BOOL enabled); } diff --git a/WebKit/win/Interfaces/IWebViewPrivate.idl b/WebKit/win/Interfaces/IWebViewPrivate.idl index 352ae7e..0377406 100644 --- a/WebKit/win/Interfaces/IWebViewPrivate.idl +++ b/WebKit/win/Interfaces/IWebViewPrivate.idl @@ -237,4 +237,6 @@ interface IWebViewPrivate : IUnknown HRESULT paintScrollViewRectToContextAtPoint([in] RECT rect, [in] POINT pt, [in] OLE_HANDLE dc); [local] HRESULT reportException([in] JSContextRef context, [in] JSValueRef exception); + + [local] HRESULT elementFromJS([in] JSContextRef context, [in] JSValueRef nodeObject, [out, retval] IDOMElement** element); } diff --git a/WebKit/win/Interfaces/WebKit.idl b/WebKit/win/Interfaces/WebKit.idl index ce2f213..8938501 100644 --- a/WebKit/win/Interfaces/WebKit.idl +++ b/WebKit/win/Interfaces/WebKit.idl @@ -300,4 +300,3 @@ library WebKit [default] interface IWebUserContentURLPattern; } } - diff --git a/WebKit/win/WebCoreSupport/WebChromeClient.cpp b/WebKit/win/WebCoreSupport/WebChromeClient.cpp index 42e5cc4..73532a6 100644 --- a/WebKit/win/WebCoreSupport/WebChromeClient.cpp +++ b/WebKit/win/WebCoreSupport/WebChromeClient.cpp @@ -782,21 +782,28 @@ void WebChromeClient::chooseIconForFiles(const Vector<WebCore::String>& filename chooser->iconLoaded(Icon::createIconForFiles(filenames)); } -bool WebChromeClient::setCursor(PlatformCursorHandle cursor) +void WebChromeClient::setCursor(const Cursor& cursor) { - if (!cursor) - return false; + HCURSOR platformCursor = cursor.platformCursor()->nativeCursor(); + if (!platformCursor) + return; if (COMPtr<IWebUIDelegate> delegate = uiDelegate()) { COMPtr<IWebUIDelegatePrivate> delegatePrivate(Query, delegate); if (delegatePrivate) { - if (SUCCEEDED(delegatePrivate->webViewSetCursor(m_webView, reinterpret_cast<OLE_HANDLE>(cursor)))) - return true; + if (SUCCEEDED(delegatePrivate->webViewSetCursor(m_webView, reinterpret_cast<OLE_HANDLE>(platformCursor)))) + return; } } - ::SetCursor(cursor); - return true; + m_webView->setLastCursor(platformCursor); + ::SetCursor(platformCursor); + return; +} + +void WebChromeClient::setLastSetCursorToCurrentCursor() +{ + m_webView->setLastCursor(::GetCursor()); } void WebChromeClient::requestGeolocationPermissionForFrame(Frame* frame, Geolocation* geolocation) diff --git a/WebKit/win/WebCoreSupport/WebChromeClient.h b/WebKit/win/WebCoreSupport/WebChromeClient.h index c890af0..e7845a9 100644 --- a/WebKit/win/WebCoreSupport/WebChromeClient.h +++ b/WebKit/win/WebCoreSupport/WebChromeClient.h @@ -130,7 +130,8 @@ public: virtual void runOpenPanel(WebCore::Frame*, PassRefPtr<WebCore::FileChooser>); virtual void chooseIconForFiles(const Vector<WebCore::String>&, WebCore::FileChooser*); - virtual bool setCursor(WebCore::PlatformCursorHandle cursor); + virtual void setCursor(const WebCore::Cursor&); + virtual void setLastSetCursorToCurrentCursor(); WebView* webView() const { return m_webView; } diff --git a/WebKit/win/WebCoreSupport/WebEditorClient.cpp b/WebKit/win/WebCoreSupport/WebEditorClient.cpp index c9118e5..e05951c 100644 --- a/WebKit/win/WebCoreSupport/WebEditorClient.cpp +++ b/WebKit/win/WebCoreSupport/WebEditorClient.cpp @@ -776,6 +776,10 @@ void WebEditorClient::getGuessesForWord(const String& word, Vector<String>& gues } } +void WebEditorClient::willSetInputMethodState() +{ +} + void WebEditorClient::setInputMethodState(bool enabled) { m_webView->setInputMethodState(enabled); diff --git a/WebKit/win/WebCoreSupport/WebEditorClient.h b/WebKit/win/WebCoreSupport/WebEditorClient.h index a29a264..ac2e25e 100644 --- a/WebKit/win/WebCoreSupport/WebEditorClient.h +++ b/WebKit/win/WebCoreSupport/WebEditorClient.h @@ -109,6 +109,7 @@ public: virtual bool spellingUIIsShowing(); virtual void getGuessesForWord(const WebCore::String&, Vector<WebCore::String>& guesses); + virtual void willSetInputMethodState(); virtual void setInputMethodState(bool); private: diff --git a/WebKit/win/WebDataSource.cpp b/WebKit/win/WebDataSource.cpp index 4ec1fd3..566f174 100644 --- a/WebKit/win/WebDataSource.cpp +++ b/WebKit/win/WebDataSource.cpp @@ -119,6 +119,16 @@ HRESULT STDMETHODCALLTYPE WebDataSource::mainDocumentError( return S_OK; } +HRESULT STDMETHODCALLTYPE WebDataSource::setDeferMainResourceDataLoad( + /* [in] */ BOOL flag) +{ + if (!m_loader) + return E_FAIL; + + m_loader->setDeferMainResourceDataLoad(flag); + return S_OK; +} + // IUnknown ------------------------------------------------------------------- HRESULT STDMETHODCALLTYPE WebDataSource::QueryInterface(REFIID riid, void** ppvObject) diff --git a/WebKit/win/WebDataSource.h b/WebKit/win/WebDataSource.h index 70998ae..3baa024 100644 --- a/WebKit/win/WebDataSource.h +++ b/WebKit/win/WebDataSource.h @@ -110,6 +110,9 @@ public: virtual HRESULT STDMETHODCALLTYPE mainDocumentError( /* [retval][out] */ IWebError** error); + virtual HRESULT STDMETHODCALLTYPE setDeferMainResourceDataLoad( + /* [in] */ BOOL flag); + // WebDataSource WebDocumentLoader* documentLoader() const; protected: diff --git a/WebKit/win/WebKit.vcproj/WebKit.sln b/WebKit/win/WebKit.vcproj/WebKit.sln index 38f4253..b954436 100644 --- a/WebKit/win/WebKit.vcproj/WebKit.sln +++ b/WebKit/win/WebKit.vcproj/WebKit.sln @@ -1,84 +1,107 @@ 
Microsoft Visual Studio Solution File, Format Version 9.00
# Visual Studio 2005
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "WebKit", "WebKit.vcproj", "{0662A8A9-82A3-4638-97D8-EC425D8D87C9}"
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "JavaScriptCore", "..\..\..\JavaScriptCore\JavaScriptCore.vcproj\JavaScriptCore\JavaScriptCore.vcproj", "{011D10F1-B656-4A1B-A0C3-3842F02122C5}"
ProjectSection(ProjectDependencies) = postProject
- {B8437A41-67BC-4769-9452-45203827F821} = {B8437A41-67BC-4769-9452-45203827F821}
+ {AA8A5A85-592B-4357-BC60-E0E91E026AF6} = {AA8A5A85-592B-4357-BC60-E0E91E026AF6}
EndProjectSection
EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "WebKitGUID", "WebKitGUID.vcproj", "{B8437A41-67BC-4769-9452-45203827F821}"
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "WebCore", "..\..\..\WebCore\WebCore.vcproj\WebCore.vcproj", "{1C16337B-ACF3-4D03-AA90-851C5B5EADA6}"
ProjectSection(ProjectDependencies) = postProject
- {91762BE2-87EF-4F5A-A480-48B90EB3F406} = {91762BE2-87EF-4F5A-A480-48B90EB3F406}
+ {E498CA9D-3BD2-4D52-8E37-C8DC76526325} = {E498CA9D-3BD2-4D52-8E37-C8DC76526325}
EndProjectSection
EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Interfaces", "Interfaces.vcproj", "{91762BE2-87EF-4F5A-A480-48B90EB3F406}"
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "WTF", "..\..\..\JavaScriptCore\JavaScriptCore.vcproj\WTF\WTF.vcproj", "{AA8A5A85-592B-4357-BC60-E0E91E026AF6}"
ProjectSection(ProjectDependencies) = postProject
- {1C16337B-ACF3-4D03-AA90-851C5B5EADA6} = {1C16337B-ACF3-4D03-AA90-851C5B5EADA6}
+ {4FF5BA11-59EC-4C24-8F52-F235C2E7D43A} = {4FF5BA11-59EC-4C24-8F52-F235C2E7D43A}
EndProjectSection
EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "WebCore", "..\..\..\WebCore\WebCore.vcproj\WebCore.vcproj", "{1C16337B-ACF3-4D03-AA90-851C5B5EADA6}"
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "jsc", "..\..\..\JavaScriptCore\JavaScriptCore.vcproj\jsc\jsc.vcproj", "{C59E5129-B453-49B7-A52B-1E104715F76E}"
ProjectSection(ProjectDependencies) = postProject
- {E498CA9D-3BD2-4D52-8E37-C8DC76526325} = {E498CA9D-3BD2-4D52-8E37-C8DC76526325}
+ {1AFD081F-1AC7-4A97-8EFA-6DF97761A3A2} = {1AFD081F-1AC7-4A97-8EFA-6DF97761A3A2}
EndProjectSection
EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "DumpRenderTree", "..\..\..\WebKitTools\DumpRenderTree\win\DumpRenderTree.vcproj", "{6567DFD4-D6DE-4CD5-825D-17E353D160E1}"
+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "JavaScriptCore Folder", "JavaScriptCore Folder", "{557FA164-0E39-4DEC-B66C-8795C8E52399}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "JavaScriptCoreGenerated", "..\..\..\JavaScriptCore\JavaScriptCore.vcproj\JavaScriptCore\JavaScriptCoreGenerated.vcproj", "{4FF5BA11-59EC-4C24-8F52-F235C2E7D43A}"
+EndProject
+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "WebCore Folder", "WebCore Folder", "{63FB6F8A-C601-43E3-BD16-A00A465C2CB6}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "WebCoreGenerated", "..\..\..\WebCore\WebCore.vcproj\WebCoreGenerated.vcproj", "{0A324352-B3B6-496C-9E5B-4C7E923E628B}"
ProjectSection(ProjectDependencies) = postProject
- {59CC0547-70AC-499C-9B19-EC01C6F61137} = {59CC0547-70AC-499C-9B19-EC01C6F61137}
+ {011D10F1-B656-4A1B-A0C3-3842F02122C5} = {011D10F1-B656-4A1B-A0C3-3842F02122C5}
EndProjectSection
EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "TestNetscapePlugin", "..\..\..\WebKitTools\DumpRenderTree\TestNetscapePlugin\win\TestNetscapePlugin.vcproj", "{C0737398-3565-439E-A2B8-AB2BE4D5430C}"
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "QTMovieWin", "..\..\..\WebCore\WebCore.vcproj\QTMovieWin.vcproj", "{E498CA9D-3BD2-4D52-8E37-C8DC76526325}"
ProjectSection(ProjectDependencies) = postProject
- {114FCA11-216B-4C8C-957E-30A75AE80443} = {114FCA11-216B-4C8C-957E-30A75AE80443}
+ {0A324352-B3B6-496C-9E5B-4C7E923E628B} = {0A324352-B3B6-496C-9E5B-4C7E923E628B}
EndProjectSection
EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "JavaScriptCore", "..\..\..\JavaScriptCore\JavaScriptCore.vcproj\JavaScriptCore\JavaScriptCore.vcproj", "{011D10F1-B656-4A1B-A0C3-3842F02122C5}"
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "testapi", "..\..\..\JavaScriptCore\JavaScriptCore.vcproj\testapi\testapi.vcproj", "{1AFD081F-1AC7-4A97-8EFA-6DF97761A3A2}"
ProjectSection(ProjectDependencies) = postProject
- {AA8A5A85-592B-4357-BC60-E0E91E026AF6} = {AA8A5A85-592B-4357-BC60-E0E91E026AF6}
+ {DA31DA52-6675-48D4-89E0-333A7144397C} = {DA31DA52-6675-48D4-89E0-333A7144397C}
EndProjectSection
EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "jsc", "..\..\..\JavaScriptCore\JavaScriptCore.vcproj\jsc\jsc.vcproj", "{C59E5129-B453-49B7-A52B-1E104715F76E}"
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "WebKit", "..\..\..\WebKit2\win\WebKit2.vcproj", "{2E51ABE8-76CB-485B-A66C-46AEF4DF8ACD}"
ProjectSection(ProjectDependencies) = postProject
- {1AFD081F-1AC7-4A97-8EFA-6DF97761A3A2} = {1AFD081F-1AC7-4A97-8EFA-6DF97761A3A2}
+ {2EDAD637-CBA8-4E55-97ED-7D2BBC336FDB} = {2EDAD637-CBA8-4E55-97ED-7D2BBC336FDB}
EndProjectSection
EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "WTF", "..\..\..\JavaScriptCore\JavaScriptCore.vcproj\WTF\WTF.vcproj", "{AA8A5A85-592B-4357-BC60-E0E91E026AF6}"
+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "WebKit2 Folder", "WebKit2 Folder", "{9AB9C96C-9039-4FA9-8F83-BBFC8F8B2182}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "WebKit2Generated", "..\..\..\WebKit2\win\WebKit2Generated.vcproj", "{2EDAD637-CBA8-4E55-97ED-7D2BBC336FDB}"
ProjectSection(ProjectDependencies) = postProject
- {4FF5BA11-59EC-4C24-8F52-F235C2E7D43A} = {4FF5BA11-59EC-4C24-8F52-F235C2E7D43A}
+ {0662A8A9-82A3-4638-97D8-EC425D8D87C9} = {0662A8A9-82A3-4638-97D8-EC425D8D87C9}
EndProjectSection
EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "FindSafari", "..\..\..\WebKitTools\FindSafari\FindSafari.vcproj", "{DA31DA52-6675-48D4-89E0-333A7144397C}"
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "WebKit2WebProcess", "..\..\..\WebKit2\win\WebKit2WebProcess.vcproj", "{AAE88FEF-509E-4D49-870B-7357922C276F}"
ProjectSection(ProjectDependencies) = postProject
- {0662A8A9-82A3-4638-97D8-EC425D8D87C9} = {0662A8A9-82A3-4638-97D8-EC425D8D87C9}
+ {2E51ABE8-76CB-485B-A66C-46AEF4DF8ACD} = {2E51ABE8-76CB-485B-A66C-46AEF4DF8ACD}
EndProjectSection
EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ImageDiff", "..\..\..\WebKitTools\DumpRenderTree\win\ImageDiff.vcproj", "{59CC0547-70AC-499C-9B19-EC01C6F61137}"
+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "WebKitCOM Folder", "WebKitCOM Folder", "{1D359ACC-BE10-45D7-938B-BC7E4B7AA6CA}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Interfaces", "Interfaces.vcproj", "{91762BE2-87EF-4F5A-A480-48B90EB3F406}"
ProjectSection(ProjectDependencies) = postProject
- {C0737398-3565-439E-A2B8-AB2BE4D5430C} = {C0737398-3565-439E-A2B8-AB2BE4D5430C}
+ {1C16337B-ACF3-4D03-AA90-851C5B5EADA6} = {1C16337B-ACF3-4D03-AA90-851C5B5EADA6}
EndProjectSection
EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "JavaScriptCoreGenerated", "..\..\..\JavaScriptCore\JavaScriptCore.vcproj\JavaScriptCore\JavaScriptCoreGenerated.vcproj", "{4FF5BA11-59EC-4C24-8F52-F235C2E7D43A}"
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "WebKitLib", "WebKit.vcproj", "{0662A8A9-82A3-4638-97D8-EC425D8D87C9}"
+ ProjectSection(ProjectDependencies) = postProject
+ {B8437A41-67BC-4769-9452-45203827F821} = {B8437A41-67BC-4769-9452-45203827F821}
+ EndProjectSection
EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "WebCoreGenerated", "..\..\..\WebCore\WebCore.vcproj\WebCoreGenerated.vcproj", "{0A324352-B3B6-496C-9E5B-4C7E923E628B}"
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "WebKitGUID", "WebKitGUID.vcproj", "{B8437A41-67BC-4769-9452-45203827F821}"
ProjectSection(ProjectDependencies) = postProject
- {011D10F1-B656-4A1B-A0C3-3842F02122C5} = {011D10F1-B656-4A1B-A0C3-3842F02122C5}
+ {91762BE2-87EF-4F5A-A480-48B90EB3F406} = {91762BE2-87EF-4F5A-A480-48B90EB3F406}
EndProjectSection
EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "QTMovieWin", "..\..\..\WebCore\WebCore.vcproj\QTMovieWin.vcproj", "{E498CA9D-3BD2-4D52-8E37-C8DC76526325}"
+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "WebKitTools", "WebKitTools", "{62DCDFE4-EAD2-48E1-A2BD-BD54AD3C7459}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "DumpRenderTree", "..\..\..\WebKitTools\DumpRenderTree\win\DumpRenderTree.vcproj", "{6567DFD4-D6DE-4CD5-825D-17E353D160E1}"
ProjectSection(ProjectDependencies) = postProject
- {0A324352-B3B6-496C-9E5B-4C7E923E628B} = {0A324352-B3B6-496C-9E5B-4C7E923E628B}
+ {59CC0547-70AC-499C-9B19-EC01C6F61137} = {59CC0547-70AC-499C-9B19-EC01C6F61137}
EndProjectSection
EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "WinLauncher", "..\..\..\WebKitTools\WinLauncher\WinLauncher.vcproj", "{114FCA11-216B-4C8C-957E-30A75AE80443}"
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ImageDiff", "..\..\..\WebKitTools\DumpRenderTree\win\ImageDiff.vcproj", "{59CC0547-70AC-499C-9B19-EC01C6F61137}"
ProjectSection(ProjectDependencies) = postProject
- {C59E5129-B453-49B7-A52B-1E104715F76E} = {C59E5129-B453-49B7-A52B-1E104715F76E}
+ {C0737398-3565-439E-A2B8-AB2BE4D5430C} = {C0737398-3565-439E-A2B8-AB2BE4D5430C}
EndProjectSection
EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "testapi", "..\..\..\JavaScriptCore\JavaScriptCore.vcproj\testapi\testapi.vcproj", "{1AFD081F-1AC7-4A97-8EFA-6DF97761A3A2}"
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "FindSafari", "..\..\..\WebKitTools\FindSafari\FindSafari.vcproj", "{DA31DA52-6675-48D4-89E0-333A7144397C}"
ProjectSection(ProjectDependencies) = postProject
- {DA31DA52-6675-48D4-89E0-333A7144397C} = {DA31DA52-6675-48D4-89E0-333A7144397C}
+ {AAE88FEF-509E-4D49-870B-7357922C276F} = {AAE88FEF-509E-4D49-870B-7357922C276F}
EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "record-memory-win", "..\..\..\WebKitTools\record-memory-win\record-memory-win.vcproj", "{44B9C152-1870-4035-B94D-7B3285AA0C12}"
+ ProjectSection(ProjectDependencies) = postProject
+ {D09806DB-E58B-4646-8C9B-61101906C1E2} = {D09806DB-E58B-4646-8C9B-61101906C1E2}
+ EndProjectSection
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "TestNetscapePlugin", "..\..\..\WebKitTools\DumpRenderTree\TestNetscapePlugIn\win\TestNetscapePlugin.vcproj", "{C0737398-3565-439E-A2B8-AB2BE4D5430C}"
+ ProjectSection(ProjectDependencies) = postProject
+ {114FCA11-216B-4C8C-957E-30A75AE80443} = {114FCA11-216B-4C8C-957E-30A75AE80443}
+ EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "WebKitAPITest", "..\..\..\WebKitTools\WebKitAPITest\WebKitAPITest.vcproj", "{626089A3-25D3-4883-A96C-B8C66E036397}"
ProjectSection(ProjectDependencies) = postProject
@@ -90,166 +113,382 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "WebKitLauncherWin", "..\..\ {626089A3-25D3-4883-A96C-B8C66E036397} = {626089A3-25D3-4883-A96C-B8C66E036397}
EndProjectSection
EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "WinLauncher", "..\..\..\WebKitTools\WinLauncher\WinLauncher.vcproj", "{114FCA11-216B-4C8C-957E-30A75AE80443}"
+ ProjectSection(ProjectDependencies) = postProject
+ {C59E5129-B453-49B7-A52B-1E104715F76E} = {C59E5129-B453-49B7-A52B-1E104715F76E}
+ EndProjectSection
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "InjectedBundle", "..\..\..\WebKitTools\WebKitTestRunner\InjectedBundle\win\InjectedBundle.vcproj", "{CBC3391C-F060-4BF5-A66E-81404168816B}"
+ ProjectSection(ProjectDependencies) = postProject
+ {4343BC0B-A2E0-4B48-8277-F33CFBFA83CD} = {4343BC0B-A2E0-4B48-8277-F33CFBFA83CD}
+ EndProjectSection
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "InjectedBundleGenerated", "..\..\..\WebKitTools\WebKitTestRunner\win\InjectedBundleGenerated.vcproj", "{4343BC0B-A2E0-4B48-8277-F33CFBFA83CD}"
+ ProjectSection(ProjectDependencies) = postProject
+ {44B9C152-1870-4035-B94D-7B3285AA0C12} = {44B9C152-1870-4035-B94D-7B3285AA0C12}
+ EndProjectSection
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "WebKitTestRunner", "..\..\..\WebKitTools\WebKitTestRunner\win\WebKitTestRunner.vcproj", "{3B99669B-1817-443B-BCBE-835580146668}"
+ ProjectSection(ProjectDependencies) = postProject
+ {CBC3391C-F060-4BF5-A66E-81404168816B} = {CBC3391C-F060-4BF5-A66E-81404168816B}
+ EndProjectSection
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "MiniBrowser", "..\..\..\WebKitTools\MiniBrowser\MiniBrowser.vcproj", "{1480CF5F-4160-47B5-A0E6-96AEC8258FB5}"
+ ProjectSection(ProjectDependencies) = postProject
+ {3B99669B-1817-443B-BCBE-835580146668} = {3B99669B-1817-443B-BCBE-835580146668}
+ EndProjectSection
+EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
+ Debug_All|Win32 = Debug_All|Win32
Debug_Cairo|Win32 = Debug_Cairo|Win32
+ Debug_Internal|Win32 = Debug_Internal|Win32
Debug|Win32 = Debug|Win32
Release_Cairo|Win32 = Release_Cairo|Win32
Release|Win32 = Release|Win32
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
- {0662A8A9-82A3-4638-97D8-EC425D8D87C9}.Debug_Cairo|Win32.ActiveCfg = Debug_Cairo|Win32
- {0662A8A9-82A3-4638-97D8-EC425D8D87C9}.Debug_Cairo|Win32.Build.0 = Debug_Cairo|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_Cairo|Win32.ActiveCfg = Release_Cairo|Win32
- {0662A8A9-82A3-4638-97D8-EC425D8D87C9}.Release_Cairo|Win32.Build.0 = Release_Cairo|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_Cairo|Win32.ActiveCfg = Debug|Win32
- {B8437A41-67BC-4769-9452-45203827F821}.Debug_Cairo|Win32.Build.0 = Debug|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_Cairo|Win32.ActiveCfg = Release|Win32
- {B8437A41-67BC-4769-9452-45203827F821}.Release_Cairo|Win32.Build.0 = Release|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_Cairo|Win32.ActiveCfg = Debug|Win32
- {91762BE2-87EF-4F5A-A480-48B90EB3F406}.Debug_Cairo|Win32.Build.0 = Debug|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_Cairo|Win32.ActiveCfg = Release|Win32
- {91762BE2-87EF-4F5A-A480-48B90EB3F406}.Release_Cairo|Win32.Build.0 = Release|Win32
- {91762BE2-87EF-4F5A-A480-48B90EB3F406}.Release|Win32.ActiveCfg = Release|Win32
- {91762BE2-87EF-4F5A-A480-48B90EB3F406}.Release|Win32.Build.0 = Release|Win32
- {1C16337B-ACF3-4D03-AA90-851C5B5EADA6}.Debug_Cairo|Win32.ActiveCfg = Debug_Cairo|Win32
- {1C16337B-ACF3-4D03-AA90-851C5B5EADA6}.Debug_Cairo|Win32.Build.0 = Debug_Cairo|Win32
- {1C16337B-ACF3-4D03-AA90-851C5B5EADA6}.Debug|Win32.ActiveCfg = Debug|Win32
- {1C16337B-ACF3-4D03-AA90-851C5B5EADA6}.Debug|Win32.Build.0 = Debug|Win32
- {1C16337B-ACF3-4D03-AA90-851C5B5EADA6}.Release_Cairo|Win32.ActiveCfg = Release_Cairo|Win32
- {1C16337B-ACF3-4D03-AA90-851C5B5EADA6}.Release_Cairo|Win32.Build.0 = Release_Cairo|Win32
- {1C16337B-ACF3-4D03-AA90-851C5B5EADA6}.Release|Win32.ActiveCfg = Release|Win32
- {1C16337B-ACF3-4D03-AA90-851C5B5EADA6}.Release|Win32.Build.0 = Release|Win32
- {6567DFD4-D6DE-4CD5-825D-17E353D160E1}.Debug_Cairo|Win32.ActiveCfg = Debug_Cairo|Win32
- {6567DFD4-D6DE-4CD5-825D-17E353D160E1}.Debug_Cairo|Win32.Build.0 = Debug_Cairo|Win32
- {6567DFD4-D6DE-4CD5-825D-17E353D160E1}.Debug|Win32.ActiveCfg = Debug|Win32
- {6567DFD4-D6DE-4CD5-825D-17E353D160E1}.Debug|Win32.Build.0 = Debug|Win32
- {6567DFD4-D6DE-4CD5-825D-17E353D160E1}.Release_Cairo|Win32.ActiveCfg = Release_Cairo|Win32
- {6567DFD4-D6DE-4CD5-825D-17E353D160E1}.Release_Cairo|Win32.Build.0 = Release_Cairo|Win32
- {6567DFD4-D6DE-4CD5-825D-17E353D160E1}.Release|Win32.ActiveCfg = Release|Win32
- {6567DFD4-D6DE-4CD5-825D-17E353D160E1}.Release|Win32.Build.0 = Release|Win32
- {C0737398-3565-439E-A2B8-AB2BE4D5430C}.Debug_Cairo|Win32.ActiveCfg = Debug_Cairo|Win32
- {C0737398-3565-439E-A2B8-AB2BE4D5430C}.Debug_Cairo|Win32.Build.0 = Debug_Cairo|Win32
- {C0737398-3565-439E-A2B8-AB2BE4D5430C}.Debug|Win32.ActiveCfg = Debug|Win32
- {C0737398-3565-439E-A2B8-AB2BE4D5430C}.Debug|Win32.Build.0 = Debug|Win32
- {C0737398-3565-439E-A2B8-AB2BE4D5430C}.Release_Cairo|Win32.ActiveCfg = Release|Win32
- {C0737398-3565-439E-A2B8-AB2BE4D5430C}.Release_Cairo|Win32.Build.0 = Release|Win32
- {C0737398-3565-439E-A2B8-AB2BE4D5430C}.Release|Win32.ActiveCfg = Release|Win32
- {C0737398-3565-439E-A2B8-AB2BE4D5430C}.Release|Win32.Build.0 = Release|Win32
+ {011D10F1-B656-4A1B-A0C3-3842F02122C5}.Debug_All|Win32.ActiveCfg = Debug_All|Win32
+ {011D10F1-B656-4A1B-A0C3-3842F02122C5}.Debug_All|Win32.Build.0 = Debug_All|Win32
{011D10F1-B656-4A1B-A0C3-3842F02122C5}.Debug_Cairo|Win32.ActiveCfg = Debug_CFLite|Win32
{011D10F1-B656-4A1B-A0C3-3842F02122C5}.Debug_Cairo|Win32.Build.0 = Debug_CFLite|Win32
+ {011D10F1-B656-4A1B-A0C3-3842F02122C5}.Debug_Internal|Win32.ActiveCfg = Debug_Internal|Win32
+ {011D10F1-B656-4A1B-A0C3-3842F02122C5}.Debug_Internal|Win32.Build.0 = Debug_Internal|Win32
{011D10F1-B656-4A1B-A0C3-3842F02122C5}.Debug|Win32.ActiveCfg = Debug|Win32
{011D10F1-B656-4A1B-A0C3-3842F02122C5}.Debug|Win32.Build.0 = Debug|Win32
{011D10F1-B656-4A1B-A0C3-3842F02122C5}.Release_Cairo|Win32.ActiveCfg = Release_CFLite|Win32
{011D10F1-B656-4A1B-A0C3-3842F02122C5}.Release_Cairo|Win32.Build.0 = Release_CFLite|Win32
{011D10F1-B656-4A1B-A0C3-3842F02122C5}.Release|Win32.ActiveCfg = Release|Win32
{011D10F1-B656-4A1B-A0C3-3842F02122C5}.Release|Win32.Build.0 = Release|Win32
- {C59E5129-B453-49B7-A52B-1E104715F76E}.Debug_Cairo|Win32.ActiveCfg = Debug_CFLite|Win32
- {C59E5129-B453-49B7-A52B-1E104715F76E}.Debug_Cairo|Win32.Build.0 = Debug_CFLite|Win32
- {C59E5129-B453-49B7-A52B-1E104715F76E}.Debug|Win32.ActiveCfg = Debug|Win32
- {C59E5129-B453-49B7-A52B-1E104715F76E}.Debug|Win32.Build.0 = Debug|Win32
- {C59E5129-B453-49B7-A52B-1E104715F76E}.Release_Cairo|Win32.ActiveCfg = Release|Win32
- {C59E5129-B453-49B7-A52B-1E104715F76E}.Release_Cairo|Win32.Build.0 = Release|Win32
- {C59E5129-B453-49B7-A52B-1E104715F76E}.Release|Win32.ActiveCfg = Release|Win32
- {C59E5129-B453-49B7-A52B-1E104715F76E}.Release|Win32.Build.0 = Release|Win32
+ {1C16337B-ACF3-4D03-AA90-851C5B5EADA6}.Debug_All|Win32.ActiveCfg = Debug_All|Win32
+ {1C16337B-ACF3-4D03-AA90-851C5B5EADA6}.Debug_All|Win32.Build.0 = Debug_All|Win32
+ {1C16337B-ACF3-4D03-AA90-851C5B5EADA6}.Debug_Cairo|Win32.ActiveCfg = Debug_Cairo|Win32
+ {1C16337B-ACF3-4D03-AA90-851C5B5EADA6}.Debug_Cairo|Win32.Build.0 = Debug_Cairo|Win32
+ {1C16337B-ACF3-4D03-AA90-851C5B5EADA6}.Debug_Internal|Win32.ActiveCfg = Debug_Internal|Win32
+ {1C16337B-ACF3-4D03-AA90-851C5B5EADA6}.Debug_Internal|Win32.Build.0 = Debug_Internal|Win32
+ {1C16337B-ACF3-4D03-AA90-851C5B5EADA6}.Debug|Win32.ActiveCfg = Debug|Win32
+ {1C16337B-ACF3-4D03-AA90-851C5B5EADA6}.Debug|Win32.Build.0 = Debug|Win32
+ {1C16337B-ACF3-4D03-AA90-851C5B5EADA6}.Release_Cairo|Win32.ActiveCfg = Release_Cairo|Win32
+ {1C16337B-ACF3-4D03-AA90-851C5B5EADA6}.Release_Cairo|Win32.Build.0 = Release_Cairo|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
+ {AA8A5A85-592B-4357-BC60-E0E91E026AF6}.Debug_All|Win32.Build.0 = Debug_All|Win32
{AA8A5A85-592B-4357-BC60-E0E91E026AF6}.Debug_Cairo|Win32.ActiveCfg = Debug|Win32
{AA8A5A85-592B-4357-BC60-E0E91E026AF6}.Debug_Cairo|Win32.Build.0 = Debug|Win32
+ {AA8A5A85-592B-4357-BC60-E0E91E026AF6}.Debug_Internal|Win32.ActiveCfg = Debug_Internal|Win32
+ {AA8A5A85-592B-4357-BC60-E0E91E026AF6}.Debug_Internal|Win32.Build.0 = Debug_Internal|Win32
{AA8A5A85-592B-4357-BC60-E0E91E026AF6}.Debug|Win32.ActiveCfg = Debug|Win32
{AA8A5A85-592B-4357-BC60-E0E91E026AF6}.Debug|Win32.Build.0 = Debug|Win32
{AA8A5A85-592B-4357-BC60-E0E91E026AF6}.Release_Cairo|Win32.ActiveCfg = Release|Win32
{AA8A5A85-592B-4357-BC60-E0E91E026AF6}.Release_Cairo|Win32.Build.0 = Release|Win32
{AA8A5A85-592B-4357-BC60-E0E91E026AF6}.Release|Win32.ActiveCfg = Release|Win32
{AA8A5A85-592B-4357-BC60-E0E91E026AF6}.Release|Win32.Build.0 = Release|Win32
- {DA31DA52-6675-48D4-89E0-333A7144397C}.Debug_Cairo|Win32.ActiveCfg = all|Win32
- {DA31DA52-6675-48D4-89E0-333A7144397C}.Debug_Cairo|Win32.Build.0 = all|Win32
- {DA31DA52-6675-48D4-89E0-333A7144397C}.Debug|Win32.ActiveCfg = all|Win32
- {DA31DA52-6675-48D4-89E0-333A7144397C}.Debug|Win32.Build.0 = all|Win32
- {DA31DA52-6675-48D4-89E0-333A7144397C}.Release_Cairo|Win32.ActiveCfg = all|Win32
- {DA31DA52-6675-48D4-89E0-333A7144397C}.Release_Cairo|Win32.Build.0 = all|Win32
- {DA31DA52-6675-48D4-89E0-333A7144397C}.Release|Win32.ActiveCfg = all|Win32
- {DA31DA52-6675-48D4-89E0-333A7144397C}.Release|Win32.Build.0 = all|Win32
- {59CC0547-70AC-499C-9B19-EC01C6F61137}.Debug_Cairo|Win32.ActiveCfg = Debug|Win32
- {59CC0547-70AC-499C-9B19-EC01C6F61137}.Debug_Cairo|Win32.Build.0 = Debug|Win32
- {59CC0547-70AC-499C-9B19-EC01C6F61137}.Debug|Win32.ActiveCfg = Debug|Win32
- {59CC0547-70AC-499C-9B19-EC01C6F61137}.Debug|Win32.Build.0 = Debug|Win32
- {59CC0547-70AC-499C-9B19-EC01C6F61137}.Release_Cairo|Win32.ActiveCfg = Release|Win32
- {59CC0547-70AC-499C-9B19-EC01C6F61137}.Release_Cairo|Win32.Build.0 = Release|Win32
- {59CC0547-70AC-499C-9B19-EC01C6F61137}.Release|Win32.ActiveCfg = Release|Win32
- {59CC0547-70AC-499C-9B19-EC01C6F61137}.Release|Win32.Build.0 = Release|Win32
+ {C59E5129-B453-49B7-A52B-1E104715F76E}.Debug_All|Win32.ActiveCfg = Debug_All|Win32
+ {C59E5129-B453-49B7-A52B-1E104715F76E}.Debug_All|Win32.Build.0 = Debug_All|Win32
+ {C59E5129-B453-49B7-A52B-1E104715F76E}.Debug_Cairo|Win32.ActiveCfg = Debug_CFLite|Win32
+ {C59E5129-B453-49B7-A52B-1E104715F76E}.Debug_Cairo|Win32.Build.0 = Debug_CFLite|Win32
+ {C59E5129-B453-49B7-A52B-1E104715F76E}.Debug_Internal|Win32.ActiveCfg = Debug_Internal|Win32
+ {C59E5129-B453-49B7-A52B-1E104715F76E}.Debug_Internal|Win32.Build.0 = Debug_Internal|Win32
+ {C59E5129-B453-49B7-A52B-1E104715F76E}.Debug|Win32.ActiveCfg = Debug|Win32
+ {C59E5129-B453-49B7-A52B-1E104715F76E}.Debug|Win32.Build.0 = Debug|Win32
+ {C59E5129-B453-49B7-A52B-1E104715F76E}.Release_Cairo|Win32.ActiveCfg = Release|Win32
+ {C59E5129-B453-49B7-A52B-1E104715F76E}.Release_Cairo|Win32.Build.0 = Release|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 = all|Win32
+ {4FF5BA11-59EC-4C24-8F52-F235C2E7D43A}.Debug_All|Win32.Build.0 = all|Win32
{4FF5BA11-59EC-4C24-8F52-F235C2E7D43A}.Debug_Cairo|Win32.ActiveCfg = all|Win32
{4FF5BA11-59EC-4C24-8F52-F235C2E7D43A}.Debug_Cairo|Win32.Build.0 = all|Win32
+ {4FF5BA11-59EC-4C24-8F52-F235C2E7D43A}.Debug_Internal|Win32.ActiveCfg = all|Win32
+ {4FF5BA11-59EC-4C24-8F52-F235C2E7D43A}.Debug_Internal|Win32.Build.0 = all|Win32
{4FF5BA11-59EC-4C24-8F52-F235C2E7D43A}.Debug|Win32.ActiveCfg = all|Win32
{4FF5BA11-59EC-4C24-8F52-F235C2E7D43A}.Debug|Win32.Build.0 = all|Win32
{4FF5BA11-59EC-4C24-8F52-F235C2E7D43A}.Release_Cairo|Win32.ActiveCfg = all|Win32
{4FF5BA11-59EC-4C24-8F52-F235C2E7D43A}.Release_Cairo|Win32.Build.0 = all|Win32
{4FF5BA11-59EC-4C24-8F52-F235C2E7D43A}.Release|Win32.ActiveCfg = all|Win32
{4FF5BA11-59EC-4C24-8F52-F235C2E7D43A}.Release|Win32.Build.0 = all|Win32
+ {0A324352-B3B6-496C-9E5B-4C7E923E628B}.Debug_All|Win32.ActiveCfg = cairo|Win32
+ {0A324352-B3B6-496C-9E5B-4C7E923E628B}.Debug_All|Win32.Build.0 = cairo|Win32
{0A324352-B3B6-496C-9E5B-4C7E923E628B}.Debug_Cairo|Win32.ActiveCfg = cairo|Win32
{0A324352-B3B6-496C-9E5B-4C7E923E628B}.Debug_Cairo|Win32.Build.0 = cairo|Win32
+ {0A324352-B3B6-496C-9E5B-4C7E923E628B}.Debug_Internal|Win32.ActiveCfg = all|Win32
+ {0A324352-B3B6-496C-9E5B-4C7E923E628B}.Debug_Internal|Win32.Build.0 = all|Win32
{0A324352-B3B6-496C-9E5B-4C7E923E628B}.Debug|Win32.ActiveCfg = all|Win32
{0A324352-B3B6-496C-9E5B-4C7E923E628B}.Debug|Win32.Build.0 = all|Win32
{0A324352-B3B6-496C-9E5B-4C7E923E628B}.Release_Cairo|Win32.ActiveCfg = cairo|Win32
{0A324352-B3B6-496C-9E5B-4C7E923E628B}.Release_Cairo|Win32.Build.0 = cairo|Win32
{0A324352-B3B6-496C-9E5B-4C7E923E628B}.Release|Win32.ActiveCfg = all|Win32
{0A324352-B3B6-496C-9E5B-4C7E923E628B}.Release|Win32.Build.0 = all|Win32
+ {E498CA9D-3BD2-4D52-8E37-C8DC76526325}.Debug_All|Win32.ActiveCfg = Debug_All|Win32
+ {E498CA9D-3BD2-4D52-8E37-C8DC76526325}.Debug_All|Win32.Build.0 = Debug_All|Win32
{E498CA9D-3BD2-4D52-8E37-C8DC76526325}.Debug_Cairo|Win32.ActiveCfg = Debug|Win32
+ {E498CA9D-3BD2-4D52-8E37-C8DC76526325}.Debug_Internal|Win32.ActiveCfg = Debug_Internal|Win32
+ {E498CA9D-3BD2-4D52-8E37-C8DC76526325}.Debug_Internal|Win32.Build.0 = Debug_Internal|Win32
{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|Win32.ActiveCfg = Release|Win32
+ {E498CA9D-3BD2-4D52-8E37-C8DC76526325}.Release_Cairo|Win32.Build.0 = Release|Win32
{E498CA9D-3BD2-4D52-8E37-C8DC76526325}.Release|Win32.ActiveCfg = Release|Win32
{E498CA9D-3BD2-4D52-8E37-C8DC76526325}.Release|Win32.Build.0 = Release|Win32
- {114FCA11-216B-4C8C-957E-30A75AE80443}.Debug_Cairo|Win32.ActiveCfg = Debug_Cairo|Win32
- {114FCA11-216B-4C8C-957E-30A75AE80443}.Debug_Cairo|Win32.Build.0 = Debug_Cairo|Win32
- {114FCA11-216B-4C8C-957E-30A75AE80443}.Debug|Win32.ActiveCfg = Debug|Win32
- {114FCA11-216B-4C8C-957E-30A75AE80443}.Debug|Win32.Build.0 = Debug|Win32
- {114FCA11-216B-4C8C-957E-30A75AE80443}.Release_Cairo|Win32.ActiveCfg = Release|Win32
- {114FCA11-216B-4C8C-957E-30A75AE80443}.Release_Cairo|Win32.Build.0 = Release|Win32
- {114FCA11-216B-4C8C-957E-30A75AE80443}.Release|Win32.ActiveCfg = Release|Win32
- {114FCA11-216B-4C8C-957E-30A75AE80443}.Release|Win32.Build.0 = Release|Win32
+ {1AFD081F-1AC7-4A97-8EFA-6DF97761A3A2}.Debug_All|Win32.ActiveCfg = Debug_All|Win32
+ {1AFD081F-1AC7-4A97-8EFA-6DF97761A3A2}.Debug_All|Win32.Build.0 = Debug_All|Win32
{1AFD081F-1AC7-4A97-8EFA-6DF97761A3A2}.Debug_Cairo|Win32.ActiveCfg = Debug_CFLite|Win32
{1AFD081F-1AC7-4A97-8EFA-6DF97761A3A2}.Debug_Cairo|Win32.Build.0 = Debug_CFLite|Win32
+ {1AFD081F-1AC7-4A97-8EFA-6DF97761A3A2}.Debug_Internal|Win32.ActiveCfg = Debug_Internal|Win32
+ {1AFD081F-1AC7-4A97-8EFA-6DF97761A3A2}.Debug_Internal|Win32.Build.0 = Debug_Internal|Win32
{1AFD081F-1AC7-4A97-8EFA-6DF97761A3A2}.Debug|Win32.ActiveCfg = Debug|Win32
{1AFD081F-1AC7-4A97-8EFA-6DF97761A3A2}.Debug|Win32.Build.0 = Debug|Win32
{1AFD081F-1AC7-4A97-8EFA-6DF97761A3A2}.Release_Cairo|Win32.ActiveCfg = Release_CFLite|Win32
{1AFD081F-1AC7-4A97-8EFA-6DF97761A3A2}.Release_Cairo|Win32.Build.0 = Release_CFLite|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
+ {2E51ABE8-76CB-485B-A66C-46AEF4DF8ACD}.Debug_All|Win32.Build.0 = Debug_All|Win32
+ {2E51ABE8-76CB-485B-A66C-46AEF4DF8ACD}.Debug_Cairo|Win32.ActiveCfg = Debug_Cairo|Win32
+ {2E51ABE8-76CB-485B-A66C-46AEF4DF8ACD}.Debug_Cairo|Win32.Build.0 = Debug_Cairo|Win32
+ {2E51ABE8-76CB-485B-A66C-46AEF4DF8ACD}.Debug_Internal|Win32.ActiveCfg = Debug_Internal|Win32
+ {2E51ABE8-76CB-485B-A66C-46AEF4DF8ACD}.Debug_Internal|Win32.Build.0 = Debug_Internal|Win32
+ {2E51ABE8-76CB-485B-A66C-46AEF4DF8ACD}.Debug|Win32.ActiveCfg = Debug|Win32
+ {2E51ABE8-76CB-485B-A66C-46AEF4DF8ACD}.Debug|Win32.Build.0 = Debug|Win32
+ {2E51ABE8-76CB-485B-A66C-46AEF4DF8ACD}.Release_Cairo|Win32.ActiveCfg = Release_Cairo|Win32
+ {2E51ABE8-76CB-485B-A66C-46AEF4DF8ACD}.Release_Cairo|Win32.Build.0 = Release_Cairo|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 = all|Win32
+ {2EDAD637-CBA8-4E55-97ED-7D2BBC336FDB}.Debug_All|Win32.Build.0 = all|Win32
+ {2EDAD637-CBA8-4E55-97ED-7D2BBC336FDB}.Debug_Cairo|Win32.ActiveCfg = all|Win32
+ {2EDAD637-CBA8-4E55-97ED-7D2BBC336FDB}.Debug_Cairo|Win32.Build.0 = all|Win32
+ {2EDAD637-CBA8-4E55-97ED-7D2BBC336FDB}.Debug_Internal|Win32.ActiveCfg = all|Win32
+ {2EDAD637-CBA8-4E55-97ED-7D2BBC336FDB}.Debug_Internal|Win32.Build.0 = all|Win32
+ {2EDAD637-CBA8-4E55-97ED-7D2BBC336FDB}.Debug|Win32.ActiveCfg = all|Win32
+ {2EDAD637-CBA8-4E55-97ED-7D2BBC336FDB}.Debug|Win32.Build.0 = all|Win32
+ {2EDAD637-CBA8-4E55-97ED-7D2BBC336FDB}.Release_Cairo|Win32.ActiveCfg = all|Win32
+ {2EDAD637-CBA8-4E55-97ED-7D2BBC336FDB}.Release_Cairo|Win32.Build.0 = all|Win32
+ {2EDAD637-CBA8-4E55-97ED-7D2BBC336FDB}.Release|Win32.ActiveCfg = all|Win32
+ {2EDAD637-CBA8-4E55-97ED-7D2BBC336FDB}.Release|Win32.Build.0 = all|Win32
+ {AAE88FEF-509E-4D49-870B-7357922C276F}.Debug_All|Win32.ActiveCfg = Debug_All|Win32
+ {AAE88FEF-509E-4D49-870B-7357922C276F}.Debug_All|Win32.Build.0 = Debug_All|Win32
+ {AAE88FEF-509E-4D49-870B-7357922C276F}.Debug_Cairo|Win32.ActiveCfg = Debug_CFLite|Win32
+ {AAE88FEF-509E-4D49-870B-7357922C276F}.Debug_Cairo|Win32.Build.0 = Debug_CFLite|Win32
+ {AAE88FEF-509E-4D49-870B-7357922C276F}.Debug_Internal|Win32.ActiveCfg = Debug_Internal|Win32
+ {AAE88FEF-509E-4D49-870B-7357922C276F}.Debug_Internal|Win32.Build.0 = Debug_Internal|Win32
+ {AAE88FEF-509E-4D49-870B-7357922C276F}.Debug|Win32.ActiveCfg = Debug|Win32
+ {AAE88FEF-509E-4D49-870B-7357922C276F}.Debug|Win32.Build.0 = Debug|Win32
+ {AAE88FEF-509E-4D49-870B-7357922C276F}.Release_Cairo|Win32.ActiveCfg = Release|Win32
+ {AAE88FEF-509E-4D49-870B-7357922C276F}.Release_Cairo|Win32.Build.0 = Release|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|Win32
+ {91762BE2-87EF-4F5A-A480-48B90EB3F406}.Debug_All|Win32.Build.0 = Debug|Win32
+ {91762BE2-87EF-4F5A-A480-48B90EB3F406}.Debug_Cairo|Win32.ActiveCfg = Debug|Win32
+ {91762BE2-87EF-4F5A-A480-48B90EB3F406}.Debug_Cairo|Win32.Build.0 = Debug|Win32
+ {91762BE2-87EF-4F5A-A480-48B90EB3F406}.Debug_Internal|Win32.ActiveCfg = Debug|Win32
+ {91762BE2-87EF-4F5A-A480-48B90EB3F406}.Debug_Internal|Win32.Build.0 = Debug|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_Cairo|Win32.ActiveCfg = Release|Win32
+ {91762BE2-87EF-4F5A-A480-48B90EB3F406}.Release_Cairo|Win32.Build.0 = Release|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
+ {0662A8A9-82A3-4638-97D8-EC425D8D87C9}.Debug_All|Win32.Build.0 = Debug_All|Win32
+ {0662A8A9-82A3-4638-97D8-EC425D8D87C9}.Debug_Cairo|Win32.ActiveCfg = Debug_Cairo|Win32
+ {0662A8A9-82A3-4638-97D8-EC425D8D87C9}.Debug_Cairo|Win32.Build.0 = Debug_Cairo|Win32
+ {0662A8A9-82A3-4638-97D8-EC425D8D87C9}.Debug_Internal|Win32.ActiveCfg = Debug_Internal|Win32
+ {0662A8A9-82A3-4638-97D8-EC425D8D87C9}.Debug_Internal|Win32.Build.0 = Debug_Internal|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_Cairo|Win32.ActiveCfg = Release_Cairo|Win32
+ {0662A8A9-82A3-4638-97D8-EC425D8D87C9}.Release_Cairo|Win32.Build.0 = Release_Cairo|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_Cairo|Win32.ActiveCfg = Debug|Win32
+ {B8437A41-67BC-4769-9452-45203827F821}.Debug_Cairo|Win32.Build.0 = Debug|Win32
+ {B8437A41-67BC-4769-9452-45203827F821}.Debug_Internal|Win32.ActiveCfg = Debug_Internal|Win32
+ {B8437A41-67BC-4769-9452-45203827F821}.Debug_Internal|Win32.Build.0 = Debug_Internal|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_Cairo|Win32.ActiveCfg = Release|Win32
+ {B8437A41-67BC-4769-9452-45203827F821}.Release_Cairo|Win32.Build.0 = Release|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
+ {6567DFD4-D6DE-4CD5-825D-17E353D160E1}.Debug_All|Win32.Build.0 = Debug_All|Win32
+ {6567DFD4-D6DE-4CD5-825D-17E353D160E1}.Debug_Cairo|Win32.ActiveCfg = Debug_Cairo|Win32
+ {6567DFD4-D6DE-4CD5-825D-17E353D160E1}.Debug_Cairo|Win32.Build.0 = Debug_Cairo|Win32
+ {6567DFD4-D6DE-4CD5-825D-17E353D160E1}.Debug_Internal|Win32.ActiveCfg = Debug_Internal|Win32
+ {6567DFD4-D6DE-4CD5-825D-17E353D160E1}.Debug_Internal|Win32.Build.0 = Debug_Internal|Win32
+ {6567DFD4-D6DE-4CD5-825D-17E353D160E1}.Debug|Win32.ActiveCfg = Debug|Win32
+ {6567DFD4-D6DE-4CD5-825D-17E353D160E1}.Debug|Win32.Build.0 = Debug|Win32
+ {6567DFD4-D6DE-4CD5-825D-17E353D160E1}.Release_Cairo|Win32.ActiveCfg = Release_Cairo|Win32
+ {6567DFD4-D6DE-4CD5-825D-17E353D160E1}.Release_Cairo|Win32.Build.0 = Release_Cairo|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
+ {59CC0547-70AC-499C-9B19-EC01C6F61137}.Debug_All|Win32.Build.0 = Debug_All|Win32
+ {59CC0547-70AC-499C-9B19-EC01C6F61137}.Debug_Cairo|Win32.ActiveCfg = Debug|Win32
+ {59CC0547-70AC-499C-9B19-EC01C6F61137}.Debug_Cairo|Win32.Build.0 = Debug|Win32
+ {59CC0547-70AC-499C-9B19-EC01C6F61137}.Debug_Internal|Win32.ActiveCfg = Debug_Internal|Win32
+ {59CC0547-70AC-499C-9B19-EC01C6F61137}.Debug_Internal|Win32.Build.0 = Debug_Internal|Win32
+ {59CC0547-70AC-499C-9B19-EC01C6F61137}.Debug|Win32.ActiveCfg = Debug|Win32
+ {59CC0547-70AC-499C-9B19-EC01C6F61137}.Debug|Win32.Build.0 = Debug|Win32
+ {59CC0547-70AC-499C-9B19-EC01C6F61137}.Release_Cairo|Win32.ActiveCfg = Release|Win32
+ {59CC0547-70AC-499C-9B19-EC01C6F61137}.Release_Cairo|Win32.Build.0 = Release|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 = all|Win32
+ {DA31DA52-6675-48D4-89E0-333A7144397C}.Debug_All|Win32.Build.0 = all|Win32
+ {DA31DA52-6675-48D4-89E0-333A7144397C}.Debug_Cairo|Win32.ActiveCfg = all|Win32
+ {DA31DA52-6675-48D4-89E0-333A7144397C}.Debug_Cairo|Win32.Build.0 = all|Win32
+ {DA31DA52-6675-48D4-89E0-333A7144397C}.Debug_Internal|Win32.ActiveCfg = all|Win32
+ {DA31DA52-6675-48D4-89E0-333A7144397C}.Debug_Internal|Win32.Build.0 = all|Win32
+ {DA31DA52-6675-48D4-89E0-333A7144397C}.Debug|Win32.ActiveCfg = all|Win32
+ {DA31DA52-6675-48D4-89E0-333A7144397C}.Debug|Win32.Build.0 = all|Win32
+ {DA31DA52-6675-48D4-89E0-333A7144397C}.Release_Cairo|Win32.ActiveCfg = all|Win32
+ {DA31DA52-6675-48D4-89E0-333A7144397C}.Release_Cairo|Win32.Build.0 = all|Win32
+ {DA31DA52-6675-48D4-89E0-333A7144397C}.Release|Win32.ActiveCfg = all|Win32
+ {DA31DA52-6675-48D4-89E0-333A7144397C}.Release|Win32.Build.0 = all|Win32
+ {44B9C152-1870-4035-B94D-7B3285AA0C12}.Debug_All|Win32.ActiveCfg = Release|Win32
+ {44B9C152-1870-4035-B94D-7B3285AA0C12}.Debug_All|Win32.Build.0 = Release|Win32
{44B9C152-1870-4035-B94D-7B3285AA0C12}.Debug_Cairo|Win32.ActiveCfg = Release|Win32
{44B9C152-1870-4035-B94D-7B3285AA0C12}.Debug_Cairo|Win32.Build.0 = Release|Win32
+ {44B9C152-1870-4035-B94D-7B3285AA0C12}.Debug_Internal|Win32.ActiveCfg = Release|Win32
+ {44B9C152-1870-4035-B94D-7B3285AA0C12}.Debug_Internal|Win32.Build.0 = Release|Win32
{44B9C152-1870-4035-B94D-7B3285AA0C12}.Debug|Win32.ActiveCfg = Release|Win32
{44B9C152-1870-4035-B94D-7B3285AA0C12}.Debug|Win32.Build.0 = Release|Win32
{44B9C152-1870-4035-B94D-7B3285AA0C12}.Release_Cairo|Win32.ActiveCfg = Release|Win32
{44B9C152-1870-4035-B94D-7B3285AA0C12}.Release_Cairo|Win32.Build.0 = Release|Win32
{44B9C152-1870-4035-B94D-7B3285AA0C12}.Release|Win32.ActiveCfg = Release|Win32
{44B9C152-1870-4035-B94D-7B3285AA0C12}.Release|Win32.Build.0 = Release|Win32
- {626089A3-25D3-4883-A96C-B8C66E036397}.Debug_Cairo|Win32.ActiveCfg = Debug_Internal|Win32
- {626089A3-25D3-4883-A96C-B8C66E036397}.Debug_Cairo|Win32.Build.0 = Debug_Internal|Win32
+ {C0737398-3565-439E-A2B8-AB2BE4D5430C}.Debug_All|Win32.ActiveCfg = Debug_All|Win32
+ {C0737398-3565-439E-A2B8-AB2BE4D5430C}.Debug_All|Win32.Build.0 = Debug_All|Win32
+ {C0737398-3565-439E-A2B8-AB2BE4D5430C}.Debug_Cairo|Win32.ActiveCfg = Debug_Cairo|Win32
+ {C0737398-3565-439E-A2B8-AB2BE4D5430C}.Debug_Cairo|Win32.Build.0 = Debug_Cairo|Win32
+ {C0737398-3565-439E-A2B8-AB2BE4D5430C}.Debug_Internal|Win32.ActiveCfg = Debug_Internal|Win32
+ {C0737398-3565-439E-A2B8-AB2BE4D5430C}.Debug_Internal|Win32.Build.0 = Debug_Internal|Win32
+ {C0737398-3565-439E-A2B8-AB2BE4D5430C}.Debug|Win32.ActiveCfg = Debug|Win32
+ {C0737398-3565-439E-A2B8-AB2BE4D5430C}.Debug|Win32.Build.0 = Debug|Win32
+ {C0737398-3565-439E-A2B8-AB2BE4D5430C}.Release_Cairo|Win32.ActiveCfg = Release|Win32
+ {C0737398-3565-439E-A2B8-AB2BE4D5430C}.Release_Cairo|Win32.Build.0 = Release|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
+ {626089A3-25D3-4883-A96C-B8C66E036397}.Debug_All|Win32.Build.0 = Debug_All|Win32
+ {626089A3-25D3-4883-A96C-B8C66E036397}.Debug_Cairo|Win32.ActiveCfg = Debug_Cairo|Win32
+ {626089A3-25D3-4883-A96C-B8C66E036397}.Debug_Cairo|Win32.Build.0 = Debug_Cairo|Win32
+ {626089A3-25D3-4883-A96C-B8C66E036397}.Debug_Internal|Win32.ActiveCfg = Debug_Internal|Win32
+ {626089A3-25D3-4883-A96C-B8C66E036397}.Debug_Internal|Win32.Build.0 = Debug_Internal|Win32
{626089A3-25D3-4883-A96C-B8C66E036397}.Debug|Win32.ActiveCfg = Debug|Win32
{626089A3-25D3-4883-A96C-B8C66E036397}.Debug|Win32.Build.0 = Debug|Win32
- {626089A3-25D3-4883-A96C-B8C66E036397}.Release_Cairo|Win32.ActiveCfg = Debug|Win32
- {626089A3-25D3-4883-A96C-B8C66E036397}.Release_Cairo|Win32.Build.0 = Debug|Win32
+ {626089A3-25D3-4883-A96C-B8C66E036397}.Release_Cairo|Win32.ActiveCfg = Debug_Cairo|Win32
+ {626089A3-25D3-4883-A96C-B8C66E036397}.Release_Cairo|Win32.Build.0 = Debug_Cairo|Win32
{626089A3-25D3-4883-A96C-B8C66E036397}.Release|Win32.ActiveCfg = Debug|Win32
{626089A3-25D3-4883-A96C-B8C66E036397}.Release|Win32.Build.0 = Debug|Win32
+ {D09806DB-E58B-4646-8C9B-61101906C1E2}.Debug_All|Win32.ActiveCfg = Release|Win32
+ {D09806DB-E58B-4646-8C9B-61101906C1E2}.Debug_All|Win32.Build.0 = Release|Win32
{D09806DB-E58B-4646-8C9B-61101906C1E2}.Debug_Cairo|Win32.ActiveCfg = Release|Win32
{D09806DB-E58B-4646-8C9B-61101906C1E2}.Debug_Cairo|Win32.Build.0 = Release|Win32
+ {D09806DB-E58B-4646-8C9B-61101906C1E2}.Debug_Internal|Win32.ActiveCfg = Release|Win32
+ {D09806DB-E58B-4646-8C9B-61101906C1E2}.Debug_Internal|Win32.Build.0 = Release|Win32
{D09806DB-E58B-4646-8C9B-61101906C1E2}.Debug|Win32.ActiveCfg = Release|Win32
{D09806DB-E58B-4646-8C9B-61101906C1E2}.Debug|Win32.Build.0 = Release|Win32
{D09806DB-E58B-4646-8C9B-61101906C1E2}.Release_Cairo|Win32.ActiveCfg = Release|Win32
{D09806DB-E58B-4646-8C9B-61101906C1E2}.Release_Cairo|Win32.Build.0 = Release|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
+ {114FCA11-216B-4C8C-957E-30A75AE80443}.Debug_All|Win32.Build.0 = Debug_All|Win32
+ {114FCA11-216B-4C8C-957E-30A75AE80443}.Debug_Cairo|Win32.ActiveCfg = Debug_Cairo|Win32
+ {114FCA11-216B-4C8C-957E-30A75AE80443}.Debug_Cairo|Win32.Build.0 = Debug_Cairo|Win32
+ {114FCA11-216B-4C8C-957E-30A75AE80443}.Debug_Internal|Win32.ActiveCfg = Debug_Internal|Win32
+ {114FCA11-216B-4C8C-957E-30A75AE80443}.Debug_Internal|Win32.Build.0 = Debug_Internal|Win32
+ {114FCA11-216B-4C8C-957E-30A75AE80443}.Debug|Win32.ActiveCfg = Debug|Win32
+ {114FCA11-216B-4C8C-957E-30A75AE80443}.Debug|Win32.Build.0 = Debug|Win32
+ {114FCA11-216B-4C8C-957E-30A75AE80443}.Release_Cairo|Win32.ActiveCfg = Release|Win32
+ {114FCA11-216B-4C8C-957E-30A75AE80443}.Release_Cairo|Win32.Build.0 = Release|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
+ {CBC3391C-F060-4BF5-A66E-81404168816B}.Debug_All|Win32.Build.0 = Debug_All|Win32
+ {CBC3391C-F060-4BF5-A66E-81404168816B}.Debug_Cairo|Win32.ActiveCfg = Debug|Win32
+ {CBC3391C-F060-4BF5-A66E-81404168816B}.Debug_Cairo|Win32.Build.0 = Debug|Win32
+ {CBC3391C-F060-4BF5-A66E-81404168816B}.Debug_Internal|Win32.ActiveCfg = Debug_Internal|Win32
+ {CBC3391C-F060-4BF5-A66E-81404168816B}.Debug_Internal|Win32.Build.0 = Debug_Internal|Win32
+ {CBC3391C-F060-4BF5-A66E-81404168816B}.Debug|Win32.ActiveCfg = Debug|Win32
+ {CBC3391C-F060-4BF5-A66E-81404168816B}.Debug|Win32.Build.0 = Debug|Win32
+ {CBC3391C-F060-4BF5-A66E-81404168816B}.Release_Cairo|Win32.ActiveCfg = Release|Win32
+ {CBC3391C-F060-4BF5-A66E-81404168816B}.Release_Cairo|Win32.Build.0 = Release|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 = all|Win32
+ {4343BC0B-A2E0-4B48-8277-F33CFBFA83CD}.Debug_All|Win32.Build.0 = all|Win32
+ {4343BC0B-A2E0-4B48-8277-F33CFBFA83CD}.Debug_Cairo|Win32.ActiveCfg = all|Win32
+ {4343BC0B-A2E0-4B48-8277-F33CFBFA83CD}.Debug_Cairo|Win32.Build.0 = all|Win32
+ {4343BC0B-A2E0-4B48-8277-F33CFBFA83CD}.Debug_Internal|Win32.ActiveCfg = all|Win32
+ {4343BC0B-A2E0-4B48-8277-F33CFBFA83CD}.Debug_Internal|Win32.Build.0 = all|Win32
+ {4343BC0B-A2E0-4B48-8277-F33CFBFA83CD}.Debug|Win32.ActiveCfg = all|Win32
+ {4343BC0B-A2E0-4B48-8277-F33CFBFA83CD}.Debug|Win32.Build.0 = all|Win32
+ {4343BC0B-A2E0-4B48-8277-F33CFBFA83CD}.Release_Cairo|Win32.ActiveCfg = all|Win32
+ {4343BC0B-A2E0-4B48-8277-F33CFBFA83CD}.Release_Cairo|Win32.Build.0 = all|Win32
+ {4343BC0B-A2E0-4B48-8277-F33CFBFA83CD}.Release|Win32.ActiveCfg = all|Win32
+ {4343BC0B-A2E0-4B48-8277-F33CFBFA83CD}.Release|Win32.Build.0 = all|Win32
+ {3B99669B-1817-443B-BCBE-835580146668}.Debug_All|Win32.ActiveCfg = Debug_All|Win32
+ {3B99669B-1817-443B-BCBE-835580146668}.Debug_All|Win32.Build.0 = Debug_All|Win32
+ {3B99669B-1817-443B-BCBE-835580146668}.Debug_Cairo|Win32.ActiveCfg = Debug|Win32
+ {3B99669B-1817-443B-BCBE-835580146668}.Debug_Cairo|Win32.Build.0 = Debug|Win32
+ {3B99669B-1817-443B-BCBE-835580146668}.Debug_Internal|Win32.ActiveCfg = Debug_Internal|Win32
+ {3B99669B-1817-443B-BCBE-835580146668}.Debug_Internal|Win32.Build.0 = Debug_Internal|Win32
+ {3B99669B-1817-443B-BCBE-835580146668}.Debug|Win32.ActiveCfg = Debug|Win32
+ {3B99669B-1817-443B-BCBE-835580146668}.Debug|Win32.Build.0 = Debug|Win32
+ {3B99669B-1817-443B-BCBE-835580146668}.Release_Cairo|Win32.ActiveCfg = Release|Win32
+ {3B99669B-1817-443B-BCBE-835580146668}.Release_Cairo|Win32.Build.0 = Release|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
+ {1480CF5F-4160-47B5-A0E6-96AEC8258FB5}.Debug_All|Win32.Build.0 = Debug_All|Win32
+ {1480CF5F-4160-47B5-A0E6-96AEC8258FB5}.Debug_Cairo|Win32.ActiveCfg = Debug|Win32
+ {1480CF5F-4160-47B5-A0E6-96AEC8258FB5}.Debug_Cairo|Win32.Build.0 = Debug|Win32
+ {1480CF5F-4160-47B5-A0E6-96AEC8258FB5}.Debug_Internal|Win32.ActiveCfg = Debug_Internal|Win32
+ {1480CF5F-4160-47B5-A0E6-96AEC8258FB5}.Debug_Internal|Win32.Build.0 = Debug_Internal|Win32
+ {1480CF5F-4160-47B5-A0E6-96AEC8258FB5}.Debug|Win32.ActiveCfg = Debug|Win32
+ {1480CF5F-4160-47B5-A0E6-96AEC8258FB5}.Debug|Win32.Build.0 = Debug|Win32
+ {1480CF5F-4160-47B5-A0E6-96AEC8258FB5}.Release_Cairo|Win32.ActiveCfg = Release|Win32
+ {1480CF5F-4160-47B5-A0E6-96AEC8258FB5}.Release_Cairo|Win32.Build.0 = Release|Win32
+ {1480CF5F-4160-47B5-A0E6-96AEC8258FB5}.Release|Win32.ActiveCfg = Release|Win32
+ {1480CF5F-4160-47B5-A0E6-96AEC8258FB5}.Release|Win32.Build.0 = Release|Win32
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
+ GlobalSection(NestedProjects) = preSolution
+ {AA8A5A85-592B-4357-BC60-E0E91E026AF6} = {557FA164-0E39-4DEC-B66C-8795C8E52399}
+ {C59E5129-B453-49B7-A52B-1E104715F76E} = {557FA164-0E39-4DEC-B66C-8795C8E52399}
+ {011D10F1-B656-4A1B-A0C3-3842F02122C5} = {557FA164-0E39-4DEC-B66C-8795C8E52399}
+ {4FF5BA11-59EC-4C24-8F52-F235C2E7D43A} = {557FA164-0E39-4DEC-B66C-8795C8E52399}
+ {1AFD081F-1AC7-4A97-8EFA-6DF97761A3A2} = {557FA164-0E39-4DEC-B66C-8795C8E52399}
+ {1C16337B-ACF3-4D03-AA90-851C5B5EADA6} = {63FB6F8A-C601-43E3-BD16-A00A465C2CB6}
+ {0A324352-B3B6-496C-9E5B-4C7E923E628B} = {63FB6F8A-C601-43E3-BD16-A00A465C2CB6}
+ {E498CA9D-3BD2-4D52-8E37-C8DC76526325} = {63FB6F8A-C601-43E3-BD16-A00A465C2CB6}
+ {2E51ABE8-76CB-485B-A66C-46AEF4DF8ACD} = {9AB9C96C-9039-4FA9-8F83-BBFC8F8B2182}
+ {2EDAD637-CBA8-4E55-97ED-7D2BBC336FDB} = {9AB9C96C-9039-4FA9-8F83-BBFC8F8B2182}
+ {AAE88FEF-509E-4D49-870B-7357922C276F} = {9AB9C96C-9039-4FA9-8F83-BBFC8F8B2182}
+ {91762BE2-87EF-4F5A-A480-48B90EB3F406} = {1D359ACC-BE10-45D7-938B-BC7E4B7AA6CA}
+ {0662A8A9-82A3-4638-97D8-EC425D8D87C9} = {1D359ACC-BE10-45D7-938B-BC7E4B7AA6CA}
+ {B8437A41-67BC-4769-9452-45203827F821} = {1D359ACC-BE10-45D7-938B-BC7E4B7AA6CA}
+ {6567DFD4-D6DE-4CD5-825D-17E353D160E1} = {62DCDFE4-EAD2-48E1-A2BD-BD54AD3C7459}
+ {59CC0547-70AC-499C-9B19-EC01C6F61137} = {62DCDFE4-EAD2-48E1-A2BD-BD54AD3C7459}
+ {DA31DA52-6675-48D4-89E0-333A7144397C} = {62DCDFE4-EAD2-48E1-A2BD-BD54AD3C7459}
+ {44B9C152-1870-4035-B94D-7B3285AA0C12} = {62DCDFE4-EAD2-48E1-A2BD-BD54AD3C7459}
+ {C0737398-3565-439E-A2B8-AB2BE4D5430C} = {62DCDFE4-EAD2-48E1-A2BD-BD54AD3C7459}
+ {626089A3-25D3-4883-A96C-B8C66E036397} = {62DCDFE4-EAD2-48E1-A2BD-BD54AD3C7459}
+ {D09806DB-E58B-4646-8C9B-61101906C1E2} = {62DCDFE4-EAD2-48E1-A2BD-BD54AD3C7459}
+ {114FCA11-216B-4C8C-957E-30A75AE80443} = {62DCDFE4-EAD2-48E1-A2BD-BD54AD3C7459}
+ {CBC3391C-F060-4BF5-A66E-81404168816B} = {62DCDFE4-EAD2-48E1-A2BD-BD54AD3C7459}
+ {4343BC0B-A2E0-4B48-8277-F33CFBFA83CD} = {62DCDFE4-EAD2-48E1-A2BD-BD54AD3C7459}
+ {3B99669B-1817-443B-BCBE-835580146668} = {62DCDFE4-EAD2-48E1-A2BD-BD54AD3C7459}
+ {1480CF5F-4160-47B5-A0E6-96AEC8258FB5} = {62DCDFE4-EAD2-48E1-A2BD-BD54AD3C7459}
+ EndGlobalSection
EndGlobal
diff --git a/WebKit/win/WebKit.vcproj/WebKit.vcproj b/WebKit/win/WebKit.vcproj/WebKit.vcproj index 7316805..50f5921 100644 --- a/WebKit/win/WebKit.vcproj/WebKit.vcproj +++ b/WebKit/win/WebKit.vcproj/WebKit.vcproj @@ -46,7 +46,7 @@ PrecompiledHeaderThrough="WebKitPrefix.h"
ProgramDataBaseFileName="$(OutDir)\$(TargetName).vc80.pdb"
DisableSpecificWarnings="4819"
- ForcedIncludeFiles="WebKitPrefix.h"
+ ForcedIncludeFiles="WebKitPrefix.h;ICUVersion.h"
/>
<Tool
Name="VCManagedResourceCompilerTool"
@@ -111,7 +111,7 @@ PrecompiledHeaderThrough="WebKitPrefix.h"
ProgramDataBaseFileName="$(OutDir)\$(TargetName).vc80.pdb"
DisableSpecificWarnings="4819"
- ForcedIncludeFiles="WebKitPrefix.h"
+ ForcedIncludeFiles="WebKitPrefix.h;ICUVersion.h"
/>
<Tool
Name="VCManagedResourceCompilerTool"
@@ -176,7 +176,7 @@ ProgramDataBaseFileName="$(OutDir)\$(TargetName).vc80.pdb"
Detect64BitPortabilityProblems="false"
DisableSpecificWarnings="4819"
- ForcedIncludeFiles="WebKitPrefix.h"
+ ForcedIncludeFiles="WebKitPrefix.h;ICUVersion.h"
/>
<Tool
Name="VCManagedResourceCompilerTool"
@@ -240,7 +240,7 @@ PrecompiledHeaderThrough="WebKitPrefix.h"
ProgramDataBaseFileName="$(OutDir)\$(TargetName).vc80.pdb"
DisableSpecificWarnings="4819"
- ForcedIncludeFiles="WebKitPrefix.h"
+ ForcedIncludeFiles="WebKitPrefix.h;ICUVersion.h"
/>
<Tool
Name="VCManagedResourceCompilerTool"
@@ -306,7 +306,7 @@ PrecompiledHeaderThrough="WebKitPrefix.h"
ProgramDataBaseFileName="$(OutDir)\$(TargetName).vc80.pdb"
DisableSpecificWarnings="4819"
- ForcedIncludeFiles="WebKitPrefix.h"
+ ForcedIncludeFiles="WebKitPrefix.h;ICUVersion.h"
/>
<Tool
Name="VCManagedResourceCompilerTool"
@@ -371,7 +371,7 @@ ProgramDataBaseFileName="$(OutDir)\$(TargetName).vc80.pdb"
Detect64BitPortabilityProblems="false"
DisableSpecificWarnings="4819"
- ForcedIncludeFiles="WebKitPrefix.h"
+ ForcedIncludeFiles="WebKitPrefix.h;ICUVersion.h"
/>
<Tool
Name="VCManagedResourceCompilerTool"
diff --git a/WebKit/win/WebPreferenceKeysPrivate.h b/WebKit/win/WebPreferenceKeysPrivate.h index 40c86c0..f62905c 100644 --- a/WebKit/win/WebPreferenceKeysPrivate.h +++ b/WebKit/win/WebPreferenceKeysPrivate.h @@ -145,3 +145,5 @@ #define WebKitCustomDragCursorsEnabledPreferenceKey "WebKitCustomDragCursorsEnabled" #define WebKitDNSPrefetchingEnabledPreferenceKey "WebKitDNSPrefetchingEnabled" + +#define WebKitMemoryInfoEnabledPreferenceKey "WebKitMemoryInfoEnabled" diff --git a/WebKit/win/WebPreferences.cpp b/WebKit/win/WebPreferences.cpp index 12b0a72..a1055cb 100644 --- a/WebKit/win/WebPreferences.cpp +++ b/WebKit/win/WebPreferences.cpp @@ -263,6 +263,8 @@ void WebPreferences::initializeDefaultSettings() CFDictionaryAddValue(defaults, CFSTR(WebKitDNSPrefetchingEnabledPreferenceKey), kCFBooleanTrue); + CFDictionaryAddValue(defaults, CFSTR(WebKitMemoryInfoEnabledPreferenceKey), kCFBooleanFalse); + defaultSettings = defaults; } @@ -1485,6 +1487,18 @@ HRESULT WebPreferences::isDNSPrefetchingEnabled(BOOL* enabled) return S_OK; } +HRESULT WebPreferences::memoryInfoEnabled(BOOL* enabled) +{ + *enabled = boolValueForKey(CFSTR(WebKitMemoryInfoEnabledPreferenceKey)); + return S_OK; +} + +HRESULT WebPreferences::setMemoryInfoEnabled(BOOL enabled) +{ + setBoolValue(CFSTR(WebKitMemoryInfoEnabledPreferenceKey), enabled); + return S_OK; +} + void WebPreferences::willAddToWebView() { ++m_numWebViews; diff --git a/WebKit/win/WebPreferences.h b/WebKit/win/WebPreferences.h index fc57241..463e1b3 100644 --- a/WebKit/win/WebPreferences.h +++ b/WebKit/win/WebPreferences.h @@ -423,6 +423,9 @@ public: virtual HRESULT STDMETHODCALLTYPE setDNSPrefetchingEnabled(BOOL); virtual HRESULT STDMETHODCALLTYPE isDNSPrefetchingEnabled(BOOL*); + virtual HRESULT STDMETHODCALLTYPE setMemoryInfoEnabled(BOOL); + virtual HRESULT STDMETHODCALLTYPE memoryInfoEnabled(BOOL*); + // WebPreferences // This method accesses a different preference key than developerExtrasEnabled. diff --git a/WebKit/win/WebView.cpp b/WebKit/win/WebView.cpp index b5c4fa8..fb0aad5 100644 --- a/WebKit/win/WebView.cpp +++ b/WebKit/win/WebView.cpp @@ -95,6 +95,7 @@ #include <WebCore/HitTestRequest.h> #include <WebCore/HitTestResult.h> #include <WebCore/IntRect.h> +#include <WebCore/JSElement.h> #include <WebCore/KeyboardEvent.h> #include <WebCore/Language.h> #include <WebCore/Logging.h> @@ -112,6 +113,7 @@ #include <WebCore/ProgressTracker.h> #include <WebCore/RenderLayer.h> #include <WebCore/RenderTheme.h> +#include <WebCore/RenderTreeAsText.h> #include <WebCore/RenderView.h> #include <WebCore/RenderWidget.h> #include <WebCore/ResourceHandle.h> @@ -344,6 +346,7 @@ WebView::WebView() , m_isAcceleratedCompositing(false) #endif , m_nextDisplayIsSynchronous(false) + , m_lastSetCursor(0) { JSC::initializeThreading(); WTF::initializeMainThread(); @@ -1972,10 +1975,6 @@ bool WebView::registerWebViewWindowClass() return !!RegisterClassEx(&wcex); } -namespace WebCore { - extern HCURSOR lastSetCursor; -} - static HWND findTopLevelParent(HWND window) { if (!window) @@ -2250,10 +2249,8 @@ LRESULT CALLBACK WebView::WebViewWndProc(HWND hWnd, UINT message, WPARAM wParam, } break; case WM_SETCURSOR: - if (handled = webView->page()->chrome()->setCursor(lastSetCursor)) - break; - - __fallthrough; + handled = ::SetCursor(webView->m_lastSetCursor); + break; case WM_VSCROLL: handled = webView->verticalScroll(wParam, lParam); break; @@ -4750,6 +4747,11 @@ HRESULT WebView::notifyPreferencesChanged(IWebNotification* notification) return hr; settings->setDNSPrefetchingEnabled(enabled); + hr = prefsPrivate->memoryInfoEnabled(&enabled); + if (FAILED(hr)) + return hr; + settings->setMemoryInfoEnabled(enabled); + if (!m_closeWindowTimer) m_mainFrame->invalidate(); // FIXME @@ -5667,6 +5669,31 @@ HRESULT STDMETHODCALLTYPE WebView::reportException( return S_OK; } +HRESULT STDMETHODCALLTYPE WebView::elementFromJS( + /* [in] */ JSContextRef context, + /* [in] */ JSValueRef nodeObject, + /* [retval][out] */ IDOMElement **element) +{ + if (!element) + return E_POINTER; + + *element = 0; + + if (!context) + return E_FAIL; + + if (!nodeObject) + return E_FAIL; + + JSLock lock(JSC::SilenceAssertionsOnly); + Element* elt = toElement(toJS(toJS(context), nodeObject)); + if (!elt) + return E_FAIL; + + *element = DOMElement::createInstance(elt); + return S_OK; +} + HRESULT STDMETHODCALLTYPE WebView::setCustomHTMLTokenizerTimeDelay( /* [in] */ double timeDelay) { diff --git a/WebKit/win/WebView.h b/WebKit/win/WebView.h index 514f376..c7e7605 100644 --- a/WebKit/win/WebView.h +++ b/WebKit/win/WebView.h @@ -706,6 +706,11 @@ public: /* [in] */ JSContextRef context, /* [in] */ JSValueRef exception); + virtual HRESULT STDMETHODCALLTYPE elementFromJS( + /* [in] */ JSContextRef context, + /* [in] */ JSValueRef nodeObject, + /* [retval][out] */ IDOMElement **element); + virtual HRESULT STDMETHODCALLTYPE setCustomHTMLTokenizerTimeDelay( /* [in] */ double timeDelay); @@ -903,6 +908,8 @@ public: void enterFullscreenForNode(WebCore::Node*); void exitFullscreen(); + void setLastCursor(HCURSOR cursor) { m_lastSetCursor = cursor; } + private: void setZoomMultiplier(float multiplier, bool isTextOnly); float zoomMultiplier(bool isTextOnly); @@ -1042,6 +1049,8 @@ protected: #endif bool m_nextDisplayIsSynchronous; + + HCURSOR m_lastSetCursor; }; #endif diff --git a/WebKit/wx/ChangeLog b/WebKit/wx/ChangeLog index 9d89858..32ff6fe 100644 --- a/WebKit/wx/ChangeLog +++ b/WebKit/wx/ChangeLog @@ -1,3 +1,28 @@ +2010-07-16 Zhe Su <suzhe@chromium.org> + + Reviewed by Darin Adler. + + REGRESSION(r61484): Broke focus behaviour on Qt and probably other platforms + https://bugs.webkit.org/show_bug.cgi?id=42253 + + Dummy implementation of EditorClient::willSetInputMethodState. + + * WebKitSupport/EditorClientWx.cpp: + (WebCore::EditorClientWx::willSetInputMethodState): + * WebKitSupport/EditorClientWx.h: + +2010-07-14 Sam Weinig <sam@webkit.org> + + Reviewed by Darin Adler. + + Patch for https://bugs.webkit.org/show_bug.cgi?id=42232 + Make changing Cursors work in WebKit2. + + * WebKitSupport/ChromeClientWx.cpp: + (WebCore::ChromeClientWx::setCursor): + * WebKitSupport/ChromeClientWx.h: + Change prototype to match new one. + 2010-07-07 Kevin Ollivier <kevino@theolliviers.com> [wx] Build fix after change in Page constructor. diff --git a/WebKit/wx/WebKitSupport/ChromeClientWx.cpp b/WebKit/wx/WebKitSupport/ChromeClientWx.cpp index a19644d..d81a20c 100644 --- a/WebKit/wx/WebKitSupport/ChromeClientWx.cpp +++ b/WebKit/wx/WebKitSupport/ChromeClientWx.cpp @@ -447,10 +447,9 @@ void ChromeClientWx::chooseIconForFiles(const Vector<String>& filenames, FileCho chooser->iconLoaded(Icon::createIconForFiles(filenames)); } -bool ChromeClientWx::setCursor(PlatformCursorHandle) +void ChromeClientWx::setCursor(const Cursor&) { notImplemented(); - return false; } void ChromeClientWx::requestGeolocationPermissionForFrame(Frame*, Geolocation*) diff --git a/WebKit/wx/WebKitSupport/ChromeClientWx.h b/WebKit/wx/WebKitSupport/ChromeClientWx.h index b900f3e..4b156ed 100644 --- a/WebKit/wx/WebKitSupport/ChromeClientWx.h +++ b/WebKit/wx/WebKitSupport/ChromeClientWx.h @@ -134,7 +134,7 @@ public: virtual PassOwnPtr<HTMLParserQuirks> createHTMLParserQuirks() { return 0; } - virtual bool setCursor(PlatformCursorHandle); + virtual void setCursor(const Cursor&); virtual void scrollRectIntoView(const IntRect&, const ScrollView*) const {} diff --git a/WebKit/wx/WebKitSupport/EditorClientWx.cpp b/WebKit/wx/WebKitSupport/EditorClientWx.cpp index 627ebf9..2355141 100644 --- a/WebKit/wx/WebKitSupport/EditorClientWx.cpp +++ b/WebKit/wx/WebKitSupport/EditorClientWx.cpp @@ -538,6 +538,11 @@ String EditorClientWx::getAutoCorrectSuggestionForMisspelledWord(const WebCore:: return String(); } +void EditorClientWx::willSetInputMethodState() +{ + notImplemented(); +} + void EditorClientWx::setInputMethodState(bool enabled) { notImplemented(); diff --git a/WebKit/wx/WebKitSupport/EditorClientWx.h b/WebKit/wx/WebKitSupport/EditorClientWx.h index 93cf961..8d69e36 100644 --- a/WebKit/wx/WebKitSupport/EditorClientWx.h +++ b/WebKit/wx/WebKitSupport/EditorClientWx.h @@ -110,6 +110,7 @@ public: virtual void getGuessesForWord(const String&, Vector<String>& guesses); virtual String getAutoCorrectSuggestionForMisspelledWord(const WebCore::String&); + virtual void willSetInputMethodState(); virtual void setInputMethodState(bool enabled); private: |