From c62ce3e9f74a7b55b2d50c227555a3c198fd9cf3 Mon Sep 17 00:00:00 2001 From: "darin@chromium.org" Date: Thu, 26 Feb 2009 00:15:20 +0000 Subject: Chromium changes to use new WebKit, WebKitClient, and WebClipboard interfaces. A new WebKitClientImpl class is added to webkit/glue that consumers can use to help implement WebKitClient. In the future, consumers will likely subclass WebKitClientImpl. For now, that is not necessary. Since a WebImage may not hold a SkBitmap, I needed to modify ScopedClipboardWriterGlue to not deal in SkBitmaps. So, I just added a WriteBitmapFromPixels method in place of the WriteBitmap method. That method is actually named the same as the one from the base class, which is perhaps kind of nice since the purpose of ScopedClipboardWriterGlue is to override the default way of sending an image to the clipboard! R=dglazkov Review URL: http://codereview.chromium.org/28119 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@10416 0039d316-1c4b-4281-b951-d872f2087c98 --- chrome/chrome.sln | 4 +- chrome/chrome.xcodeproj/project.pbxproj | 87 +++++++++++++++++++++++++++++++++ chrome/renderer/render_thread.cc | 5 ++ chrome/renderer/render_thread.h | 6 +++ chrome/renderer/renderer.scons | 4 ++ chrome/renderer/renderer.vcproj | 4 +- chrome/renderer/renderer_glue.cc | 15 +++--- 7 files changed, 114 insertions(+), 11 deletions(-) (limited to 'chrome') diff --git a/chrome/chrome.sln b/chrome/chrome.sln index 760ede8..321b175 100644 --- a/chrome/chrome.sln +++ b/chrome/chrome.sln @@ -240,6 +240,7 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "perf_tests", "test\perf\per {57823D8C-A317-4713-9125-2C91FDFD12D6} = {57823D8C-A317-4713-9125-2C91FDFD12D6} {5916D37D-8C97-424F-A904-74E52594C2D6} = {5916D37D-8C97-424F-A904-74E52594C2D6} {5BF908A7-68FB-4A4B-99E3-8C749F1FE4EA} = {5BF908A7-68FB-4A4B-99E3-8C749F1FE4EA} + {5ECEC9E5-8F23-47B6-93E0-C3B328B3BE65} = {5ECEC9E5-8F23-47B6-93E0-C3B328B3BE65} {625A8F11-2B4E-45B4-BD99-C6D629C606C0} = {625A8F11-2B4E-45B4-BD99-C6D629C606C0} {6EAD4A4B-2BBC-4974-8E45-BB5C16CC2AC9} = {6EAD4A4B-2BBC-4974-8E45-BB5C16CC2AC9} {6F9258E5-294F-47B2-919D-17FFE7A8B751} = {6F9258E5-294F-47B2-919D-17FFE7A8B751} @@ -431,10 +432,10 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "generate_profile", "tools\p {2A70CBF0-847E-4E3A-B926-542A656DC7FE} = {2A70CBF0-847E-4E3A-B926-542A656DC7FE} {326E9795-E760-410A-B69A-3F79DB3F5243} = {326E9795-E760-410A-B69A-3F79DB3F5243} {49909552-0B0C-4C14-8CF6-DB8A2ADE0934} = {49909552-0B0C-4C14-8CF6-DB8A2ADE0934} - {5597AD47-3494-4750-A235-4F9C2F864700} = {5597AD47-3494-4750-A235-4F9C2F864700} {57823D8C-A317-4713-9125-2C91FDFD12D6} = {57823D8C-A317-4713-9125-2C91FDFD12D6} {5916D37D-8C97-424F-A904-74E52594C2D6} = {5916D37D-8C97-424F-A904-74E52594C2D6} {5BF908A7-68FB-4A4B-99E3-8C749F1FE4EA} = {5BF908A7-68FB-4A4B-99E3-8C749F1FE4EA} + {5ECEC9E5-8F23-47B6-93E0-C3B328B3BE65} = {5ECEC9E5-8F23-47B6-93E0-C3B328B3BE65} {625A8F11-2B4E-45B4-BD99-C6D629C606C0} = {625A8F11-2B4E-45B4-BD99-C6D629C606C0} {6EAD4A4B-2BBC-4974-8E45-BB5C16CC2AC9} = {6EAD4A4B-2BBC-4974-8E45-BB5C16CC2AC9} {6F9258E5-294F-47B2-919D-17FFE7A8B751} = {6F9258E5-294F-47B2-919D-17FFE7A8B751} @@ -641,6 +642,7 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "interactive_ui_tests", "tes {57823D8C-A317-4713-9125-2C91FDFD12D6} = {57823D8C-A317-4713-9125-2C91FDFD12D6} {5916D37D-8C97-424F-A904-74E52594C2D6} = {5916D37D-8C97-424F-A904-74E52594C2D6} {5BF908A7-68FB-4A4B-99E3-8C749F1FE4EA} = {5BF908A7-68FB-4A4B-99E3-8C749F1FE4EA} + {5ECEC9E5-8F23-47B6-93E0-C3B328B3BE65} = {5ECEC9E5-8F23-47B6-93E0-C3B328B3BE65} {625A8F11-2B4E-45B4-BD99-C6D629C606C0} = {625A8F11-2B4E-45B4-BD99-C6D629C606C0} {6EAD4A4B-2BBC-4974-8E45-BB5C16CC2AC9} = {6EAD4A4B-2BBC-4974-8E45-BB5C16CC2AC9} {6F9258E5-294F-47B2-919D-17FFE7A8B751} = {6F9258E5-294F-47B2-919D-17FFE7A8B751} diff --git a/chrome/chrome.xcodeproj/project.pbxproj b/chrome/chrome.xcodeproj/project.pbxproj index 47d42a7..0cc3587 100644 --- a/chrome/chrome.xcodeproj/project.pbxproj +++ b/chrome/chrome.xcodeproj/project.pbxproj @@ -314,6 +314,42 @@ 8F51B73AAAF1772ECF9BD180 /* url_fetcher.cc in Sources */ = {isa = PBXBuildFile; fileRef = 778D7927798B7E3FAA498D3D /* url_fetcher.cc */; }; 9084D27A4F8690E6FD31083B /* session_backend.cc in Sources */ = {isa = PBXBuildFile; fileRef = 35AC9D9A03545594C102C5C1 /* session_backend.cc */; }; 928300674E414B42615BA4F0 /* download_manager.cc in Sources */ = {isa = PBXBuildFile; fileRef = 4D7BF9CE0E9D48CE009A6919 /* download_manager.cc */; }; + 93FB3ECE0F55E38400AA1185 /* libwebkit.a in Frameworks */ = {isa = PBXBuildFile; fileRef = E4BD53D90F54AB4300591DFA /* libwebkit.a */; }; + 93FB3ED10F55E38900AA1185 /* AppKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E45065DD0EEEC6FF003BE099 /* AppKit.framework */; }; + 93FB3ED20F55E38900AA1185 /* ApplicationServices.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E4DCDB9C0F4091BF0084059A /* ApplicationServices.framework */; }; + 93FB3ED30F55E38900AA1185 /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 331B93AB0F3BF2DA008B1C46 /* Carbon.framework */; }; + 93FB3ED40F55E38900AA1185 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E45065DF0EEEC709003BE099 /* Foundation.framework */; }; + 93FB3ED50F55E38900AA1185 /* libbrowser.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 4D7BF3060E9D477E009A6919 /* libbrowser.a */; }; + 93FB3ED60F55E38900AA1185 /* libcommon.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 4D7BFC1A0E9D4CB9009A6919 /* libcommon.a */; }; + 93FB3ED70F55E38900AA1185 /* librenderer.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 4D640CEB0EAE86BD00EBCFC0 /* librenderer.a */; }; + 93FB3ED80F55E38900AA1185 /* libWebKitSystemInterfaceLeopard.a in Frameworks */ = {isa = PBXBuildFile; fileRef = E4DCDC8E0F4091F30084059A /* libWebKitSystemInterfaceLeopard.a */; }; + 93FB3ED90F55E38900AA1185 /* QuartzCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 331B93A90F3BF2B9008B1C46 /* QuartzCore.framework */; }; + 93FB3EDA0F55E38900AA1185 /* Security.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 82684C5F0F2FAE68009F6555 /* Security.framework */; }; + 93FB3EDB0F55E38900AA1185 /* SystemConfiguration.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 82684CCF0F2FAEC2009F6555 /* SystemConfiguration.framework */; }; + 93FB42060F55E39F00AA1185 /* AppKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E45065DD0EEEC6FF003BE099 /* AppKit.framework */; }; + 93FB42070F55E39F00AA1185 /* AppKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E45065DD0EEEC6FF003BE099 /* AppKit.framework */; }; + 93FB42080F55E39F00AA1185 /* ApplicationServices.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E4DCDB9C0F4091BF0084059A /* ApplicationServices.framework */; }; + 93FB42090F55E39F00AA1185 /* ApplicationServices.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E4DCDB9C0F4091BF0084059A /* ApplicationServices.framework */; }; + 93FB420A0F55E39F00AA1185 /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 331B93AB0F3BF2DA008B1C46 /* Carbon.framework */; }; + 93FB420B0F55E39F00AA1185 /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 331B93AB0F3BF2DA008B1C46 /* Carbon.framework */; }; + 93FB420C0F55E39F00AA1185 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E45065DF0EEEC709003BE099 /* Foundation.framework */; }; + 93FB420D0F55E39F00AA1185 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E45065DF0EEEC709003BE099 /* Foundation.framework */; }; + 93FB420E0F55E39F00AA1185 /* libbrowser.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 4D7BF3060E9D477E009A6919 /* libbrowser.a */; }; + 93FB420F0F55E39F00AA1185 /* libbrowser.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 4D7BF3060E9D477E009A6919 /* libbrowser.a */; }; + 93FB42100F55E39F00AA1185 /* libcommon.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 4D7BFC1A0E9D4CB9009A6919 /* libcommon.a */; }; + 93FB42110F55E39F00AA1185 /* libcommon.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 4D7BFC1A0E9D4CB9009A6919 /* libcommon.a */; }; + 93FB42120F55E39F00AA1185 /* librenderer.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 4D640CEB0EAE86BD00EBCFC0 /* librenderer.a */; }; + 93FB42130F55E39F00AA1185 /* librenderer.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 4D640CEB0EAE86BD00EBCFC0 /* librenderer.a */; }; + 93FB42140F55E39F00AA1185 /* libWebKitSystemInterfaceLeopard.a in Frameworks */ = {isa = PBXBuildFile; fileRef = E4DCDC8E0F4091F30084059A /* libWebKitSystemInterfaceLeopard.a */; }; + 93FB42150F55E39F00AA1185 /* libWebKitSystemInterfaceLeopard.a in Frameworks */ = {isa = PBXBuildFile; fileRef = E4DCDC8E0F4091F30084059A /* libWebKitSystemInterfaceLeopard.a */; }; + 93FB42160F55E39F00AA1185 /* QuartzCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 331B93A90F3BF2B9008B1C46 /* QuartzCore.framework */; }; + 93FB42170F55E39F00AA1185 /* QuartzCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 331B93A90F3BF2B9008B1C46 /* QuartzCore.framework */; }; + 93FB42180F55E39F00AA1185 /* Security.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 82684C5F0F2FAE68009F6555 /* Security.framework */; }; + 93FB42190F55E39F00AA1185 /* Security.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 82684C5F0F2FAE68009F6555 /* Security.framework */; }; + 93FB421A0F55E39F00AA1185 /* SystemConfiguration.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 82684CCF0F2FAEC2009F6555 /* SystemConfiguration.framework */; }; + 93FB421B0F55E39F00AA1185 /* SystemConfiguration.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 82684CCF0F2FAEC2009F6555 /* SystemConfiguration.framework */; }; + 93FB423B0F55E84600AA1185 /* libwebkit.a in Frameworks */ = {isa = PBXBuildFile; fileRef = E4BD53D90F54AB4300591DFA /* libwebkit.a */; }; + 93FB42450F55E88500AA1185 /* libwebkit.a in Frameworks */ = {isa = PBXBuildFile; fileRef = E4BD53D90F54AB4300591DFA /* libwebkit.a */; }; 94542322A5E5A8F4FDDAB7F0 /* render_view_host_manager.cc in Sources */ = {isa = PBXBuildFile; fileRef = A76E42AD0F28EDB5009A7E88 /* render_view_host_manager.cc */; }; 96DF109FEE9B09B11690F1FA /* infobar_delegate.cc in Sources */ = {isa = PBXBuildFile; fileRef = B6CCB9CF0F1EC32700106F0D /* infobar_delegate.cc */; }; 970EF19CD8A79CF3D0DF4B61 /* download_file.cc in Sources */ = {isa = PBXBuildFile; fileRef = 4D7BF9CA0E9D48CE009A6919 /* download_file.cc */; }; @@ -1657,6 +1693,13 @@ remoteGlobalIDString = 7BA361A60E8C36E50023C8B9; remoteInfo = sdch; }; + 93FB3ECC0F55E34700AA1185 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 826850040F2FC82D009F6555 /* webkit.xcodeproj */; + proxyType = 1; + remoteGlobalIDString = 937A15B60F53326C003E8D2D; + remoteInfo = webkit; + }; ABFA33870F424EC5008FCF5D /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; containerPortal = ABFA33790F424EC5008FCF5D /* media.xcodeproj */; @@ -2929,6 +2972,7 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( + 93FB42450F55E88500AA1185 /* libwebkit.a in Frameworks */, E45066CE0EEF1AA7003BE099 /* AppKit.framework in Frameworks */, E477F6B50F4095660044ABEB /* ApplicationServices.framework in Frameworks */, 331218230F3BFF36006CB2B0 /* Carbon.framework in Frameworks */, @@ -2984,6 +3028,7 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( + 93FB423B0F55E84600AA1185 /* libwebkit.a in Frameworks */, 4D7FA6940F13CC01004F1B19 /* AppKit.framework in Frameworks */, E4DCDC9C0F40938D0084059A /* ApplicationServices.framework in Frameworks */, 33121A390F3C0339006CB2B0 /* Carbon.framework in Frameworks */, @@ -3054,6 +3099,40 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( + 93FB42060F55E39F00AA1185 /* AppKit.framework in Frameworks */, + 93FB42070F55E39F00AA1185 /* AppKit.framework in Frameworks */, + 93FB42080F55E39F00AA1185 /* ApplicationServices.framework in Frameworks */, + 93FB42090F55E39F00AA1185 /* ApplicationServices.framework in Frameworks */, + 93FB420A0F55E39F00AA1185 /* Carbon.framework in Frameworks */, + 93FB420B0F55E39F00AA1185 /* Carbon.framework in Frameworks */, + 93FB420C0F55E39F00AA1185 /* Foundation.framework in Frameworks */, + 93FB420D0F55E39F00AA1185 /* Foundation.framework in Frameworks */, + 93FB420E0F55E39F00AA1185 /* libbrowser.a in Frameworks */, + 93FB420F0F55E39F00AA1185 /* libbrowser.a in Frameworks */, + 93FB42100F55E39F00AA1185 /* libcommon.a in Frameworks */, + 93FB42110F55E39F00AA1185 /* libcommon.a in Frameworks */, + 93FB42120F55E39F00AA1185 /* librenderer.a in Frameworks */, + 93FB42130F55E39F00AA1185 /* librenderer.a in Frameworks */, + 93FB42140F55E39F00AA1185 /* libWebKitSystemInterfaceLeopard.a in Frameworks */, + 93FB42150F55E39F00AA1185 /* libWebKitSystemInterfaceLeopard.a in Frameworks */, + 93FB42160F55E39F00AA1185 /* QuartzCore.framework in Frameworks */, + 93FB42170F55E39F00AA1185 /* QuartzCore.framework in Frameworks */, + 93FB42180F55E39F00AA1185 /* Security.framework in Frameworks */, + 93FB42190F55E39F00AA1185 /* Security.framework in Frameworks */, + 93FB421A0F55E39F00AA1185 /* SystemConfiguration.framework in Frameworks */, + 93FB421B0F55E39F00AA1185 /* SystemConfiguration.framework in Frameworks */, + 93FB3ED10F55E38900AA1185 /* AppKit.framework in Frameworks */, + 93FB3ED20F55E38900AA1185 /* ApplicationServices.framework in Frameworks */, + 93FB3ED30F55E38900AA1185 /* Carbon.framework in Frameworks */, + 93FB3ED40F55E38900AA1185 /* Foundation.framework in Frameworks */, + 93FB3ED50F55E38900AA1185 /* libbrowser.a in Frameworks */, + 93FB3ED60F55E38900AA1185 /* libcommon.a in Frameworks */, + 93FB3ED70F55E38900AA1185 /* librenderer.a in Frameworks */, + 93FB3ED80F55E38900AA1185 /* libWebKitSystemInterfaceLeopard.a in Frameworks */, + 93FB3ED90F55E38900AA1185 /* QuartzCore.framework in Frameworks */, + 93FB3EDA0F55E38900AA1185 /* Security.framework in Frameworks */, + 93FB3EDB0F55E38900AA1185 /* SystemConfiguration.framework in Frameworks */, + 93FB3ECE0F55E38400AA1185 /* libwebkit.a in Frameworks */, E45065DE0EEEC6FF003BE099 /* AppKit.framework in Frameworks */, E4DCDB9D0F4091C00084059A /* ApplicationServices.framework in Frameworks */, 331B93AC0F3BF2DA008B1C46 /* Carbon.framework in Frameworks */, @@ -4905,6 +4984,7 @@ 33121EF30F3CF45B006CB2B0 /* PBXTargetDependency */, 33121EF50F3CF45B006CB2B0 /* PBXTargetDependency */, 33121EF70F3CF45B006CB2B0 /* PBXTargetDependency */, + 93FB3ECD0F55E34700AA1185 /* PBXTargetDependency */, ); name = app; productName = app; @@ -6467,6 +6547,11 @@ name = sdch; targetProxy = 8268521A0F2FD197009F6555 /* PBXContainerItemProxy */; }; + 93FB3ECD0F55E34700AA1185 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = webkit; + targetProxy = 93FB3ECC0F55E34700AA1185 /* PBXContainerItemProxy */; + }; ABFA338E0F424F39008FCF5D /* PBXTargetDependency */ = { isa = PBXTargetDependency; name = media; @@ -6731,6 +6816,7 @@ ../third_party/libjpeg, ../third_party/libxml/include, ../third_party/npapi, + ../third_party/WebKit/WebKit/chromium/public, "$(SYMROOT)/libxml.build/$(CONFIGURATION)/generated/include", ); XCODEPROJ_DEPTH = ..; @@ -6758,6 +6844,7 @@ ../third_party/libjpeg, ../third_party/libxml/include, ../third_party/npapi, + ../third_party/WebKit/WebKit/chromium/public, "$(SYMROOT)/libxml.build/$(CONFIGURATION)/generated/include", ); XCODEPROJ_DEPTH = ..; diff --git a/chrome/renderer/render_thread.cc b/chrome/renderer/render_thread.cc index 6e8e7b0..dacbd8a 100644 --- a/chrome/renderer/render_thread.cc +++ b/chrome/renderer/render_thread.cc @@ -32,7 +32,9 @@ #include "chrome/renderer/user_script_slave.h" #include "chrome/renderer/visitedlink_slave.h" #include "webkit/glue/cache_manager.h" +#include "webkit/glue/webkit_client_impl.h" +#include "WebKit.h" static const unsigned int kCacheStatsDelayMS = 2000 /* milliseconds */; @@ -99,6 +101,9 @@ void RenderThread::Init() { CoInitialize(0); #endif + webkit_client_impl_.reset(new webkit_glue::WebKitClientImpl); + WebKit::initialize(webkit_client_impl_.get()); + visited_link_slave_ = new VisitedLinkSlave(); user_script_slave_ = new UserScriptSlave(); render_dns_master_.reset(new RenderDnsMaster()); diff --git a/chrome/renderer/render_thread.h b/chrome/renderer/render_thread.h index a23776e..cfc3d9a 100644 --- a/chrome/renderer/render_thread.h +++ b/chrome/renderer/render_thread.h @@ -24,6 +24,10 @@ class VisitedLinkSlave; struct ModalDialogEvent; struct WebPreferences; +namespace webkit_glue { +class WebKitClientImpl; +} + // The RenderThreadBase is the minimal interface that a RenderView/Widget // expects from a render thread. The interface basically abstracts a way to send // and receive messages. @@ -138,6 +142,8 @@ class RenderThread : public RenderThreadBase, scoped_ptr notification_service_; + scoped_ptr webkit_client_impl_; + DISALLOW_COPY_AND_ASSIGN(RenderThread); }; diff --git a/chrome/renderer/renderer.scons b/chrome/renderer/renderer.scons index 3bb0d17..2522959 100644 --- a/chrome/renderer/renderer.scons +++ b/chrome/renderer/renderer.scons @@ -16,8 +16,12 @@ env.SConscript([ ], {'env':env}) env.Prepend( + CPPDEFINES = [ + 'WEBKIT_USING_SKIA' + ], CPPPATH = [ '$CHROME_SRC_DIR', + '$THIRD_PARTY_WEBKIT_DIR/WebKit/chromium/public', ], ) diff --git a/chrome/renderer/renderer.vcproj b/chrome/renderer/renderer.vcproj index 684ec52..caa5e20 100644 --- a/chrome/renderer/renderer.vcproj +++ b/chrome/renderer/renderer.vcproj @@ -18,7 +18,7 @@ memory(), bitmap.getPixels(), buf_size); + memcpy(shared_buf_->memory(), pixels, buf_size); shared_buf_->Unmap(); Clipboard::ObjectMapParam param1, param2; -- cgit v1.1