diff --git a/CHROMIUM_BUILD_COMPATIBILITY.txt b/CHROMIUM_BUILD_COMPATIBILITY.txt
index faea90ac8..9b085f729 100644
--- a/CHROMIUM_BUILD_COMPATIBILITY.txt
+++ b/CHROMIUM_BUILD_COMPATIBILITY.txt
@@ -40,3 +40,4 @@ Date | CEF Revision | Chromium Revision
After syncing to rev 26432 you must manually run 'gclient runhooks --force'.
Earlier and later revisions do not have this requirement.
2009-09-22 | /trunk@48 | /trunk@26790
+2009-10-02 | /trunk@51 | /trunk@27900
diff --git a/cef.gyp b/cef.gyp
index 97997255e..b6efbbcbd 100644
--- a/cef.gyp
+++ b/cef.gyp
@@ -115,16 +115,17 @@
'../third_party/libpng/libpng.gyp:libpng',
'../third_party/libxslt/libxslt.gyp:libxslt',
'../third_party/modp_b64/modp_b64.gyp:modp_b64',
+ '../third_party/WebKit/JavaScriptCore/JavaScriptCore.gyp/JavaScriptCore.gyp:pcre',
+ '../third_party/WebKit/JavaScriptCore/JavaScriptCore.gyp/JavaScriptCore.gyp:wtf',
+ '../third_party/WebKit/WebCore/WebCore.gyp/WebCore.gyp:webcore',
'../third_party/zlib/zlib.gyp:zlib',
- '../webkit/WebCore.gyp:webcore',
- '../webkit/WebKit.gyp:appcache',
- '../webkit/WebKit.gyp:glue',
- '../webkit/WebKit.gyp:webkit',
- '../webkit/WebKit.gyp:webkit_resources',
- '../webkit/WebKit.gyp:webkit_strings',
+ '../webkit/webkit.gyp:appcache',
+ '../webkit/webkit.gyp:database',
+ '../webkit/webkit.gyp:glue',
+ '../webkit/webkit.gyp:webkit',
+ '../webkit/webkit.gyp:webkit_resources',
+ '../webkit/webkit.gyp:webkit_strings',
'../webkit/default_plugin/default_plugin.gyp:default_plugin',
- '../webkit/javascriptcore.gyp:pcre',
- '../webkit/javascriptcore.gyp:wtf',
'libcef_static',
],
'defines': [
@@ -269,16 +270,17 @@
'../third_party/libpng/libpng.gyp:libpng',
'../third_party/libxslt/libxslt.gyp:libxslt',
'../third_party/modp_b64/modp_b64.gyp:modp_b64',
+ '../third_party/WebKit/JavaScriptCore/JavaScriptCore.gyp/JavaScriptCore.gyp:pcre',
+ '../third_party/WebKit/JavaScriptCore/JavaScriptCore.gyp/JavaScriptCore.gyp:wtf',
+ '../third_party/WebKit/WebCore/WebCore.gyp/WebCore.gyp:webcore',
'../third_party/zlib/zlib.gyp:zlib',
- '../webkit/WebCore.gyp:webcore',
- '../webkit/WebKit.gyp:appcache',
- '../webkit/WebKit.gyp:glue',
- '../webkit/WebKit.gyp:webkit',
- '../webkit/WebKit.gyp:webkit_resources',
- '../webkit/WebKit.gyp:webkit_strings',
+ '../webkit/webkit.gyp:appcache',
+ '../webkit/webkit.gyp:database',
+ '../webkit/webkit.gyp:glue',
+ '../webkit/webkit.gyp:webkit',
+ '../webkit/webkit.gyp:webkit_resources',
+ '../webkit/webkit.gyp:webkit_strings',
'../webkit/default_plugin/default_plugin.gyp:default_plugin',
- '../webkit/javascriptcore.gyp:pcre',
- '../webkit/javascriptcore.gyp:wtf',
],
'sources': [
'include/cef.h',
@@ -293,6 +295,8 @@
'include/cef_win.h',
'libcef/browser_appcache_system.cc',
'libcef/browser_appcache_system.h',
+ 'libcef/browser_database_system.cc',
+ 'libcef/browser_database_system.h',
'libcef/browser_drag_delegate.cc',
'libcef/browser_drag_delegate.h',
'libcef/browser_drop_delegate.cc',
diff --git a/cef.sln b/cef.sln
index 14ea63daf..68aa8eacd 100644
--- a/cef.sln
+++ b/cef.sln
@@ -1,5 +1,15 @@
Microsoft Visual Studio Solution File, Format Version 9.00
# Visual Studio 2005
+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "(JavaScriptCore)", "third_party\WebKit\JavaScriptCore", "{1F1A77BD-507E-DADF-A888-76CD54279D6D}"
+EndProject
+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "(JavaScriptCore.gyp)", "third_party\WebKit\JavaScriptCore\JavaScriptCore.gyp", "{BB6FE021-BEDC-DDBC-04ED-4B76258204A6}"
+EndProject
+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "(WebCore)", "third_party\WebKit\WebCore", "{A8BC79F2-F2ED-8F35-5EA9-B0CE6F648668}"
+EndProject
+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "(WebCore.gyp)", "third_party\WebKit\WebCore\WebCore.gyp", "{26F5709A-032E-8B3E-43E5-73FD0F7FD013}"
+EndProject
+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "(WebKit)", "third_party\WebKit", "{7C6CDB29-38D7-8364-748C-AEAAD8CCFB36}"
+EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "(app)", "app", "{EE25F6B1-EF84-226D-862F-CC4C19F42EB8}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "(base)", "base", "{9785FB75-982A-5DE3-252D-3F288B9FEF5B}"
@@ -68,6 +78,8 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "cygwin", "..\build\win\cygw
{A6D0953E-899E-4C60-AB6B-CAE75A44B8E6} = {A6D0953E-899E-4C60-AB6B-CAE75A44B8E6}
EndProjectSection
EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "database", "..\webkit\database.vcproj", "{1DA00DDD-44E5-4C56-B2CC-414FB0164492}"
+EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "default_plugin", "..\webkit\default_plugin\default_plugin.vcproj", "{5916D37D-8C97-424F-A904-74E52594C2D6}"
ProjectSection(ProjectDependencies) = postProject
{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942} = {8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}
@@ -133,23 +145,23 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libcef", "libcef.vcproj", "
{C564F145-9172-42C3-BFCB-6014CA97DBCD} = {C564F145-9172-42C3-BFCB-6014CA97DBCD}
{FC0E1FD0-5DD7-4041-A1C9-CD3C376E4EED} = {FC0E1FD0-5DD7-4041-A1C9-CD3C376E4EED}
{7100F41F-868D-4E99-80A2-AF8E6574749D} = {7100F41F-868D-4E99-80A2-AF8E6574749D}
- {8423AF0D-4B88-4EBF-94E1-E4D00D00E21C} = {8423AF0D-4B88-4EBF-94E1-E4D00D00E21C}
+ {49909552-0B0C-4C14-8CF6-DB8A2ADE0934} = {49909552-0B0C-4C14-8CF6-DB8A2ADE0934}
+ {AA8A5A85-592B-4357-BC60-E0E91E026AF6} = {AA8A5A85-592B-4357-BC60-E0E91E026AF6}
{1C16337B-ACF3-4D03-AA90-851C5B5EADA6} = {1C16337B-ACF3-4D03-AA90-851C5B5EADA6}
+ {8423AF0D-4B88-4EBF-94E1-E4D00D00E21C} = {8423AF0D-4B88-4EBF-94E1-E4D00D00E21C}
{0B945915-31A7-4A07-A5B5-568D737A39B1} = {0B945915-31A7-4A07-A5B5-568D737A39B1}
+ {1DA00DDD-44E5-4C56-B2CC-414FB0164492} = {1DA00DDD-44E5-4C56-B2CC-414FB0164492}
{C66B126D-0ECE-4CA2-B6DC-FA780AFBBF09} = {C66B126D-0ECE-4CA2-B6DC-FA780AFBBF09}
{5ECEC9E5-8F23-47B6-93E0-C3B328B3BE65} = {5ECEC9E5-8F23-47B6-93E0-C3B328B3BE65}
{0B469837-3D46-484A-AFB3-C5A6C68730B9} = {0B469837-3D46-484A-AFB3-C5A6C68730B9}
{60B43839-95E6-4526-A661-209F16335E0E} = {60B43839-95E6-4526-A661-209F16335E0E}
{5916D37D-8C97-424F-A904-74E52594C2D6} = {5916D37D-8C97-424F-A904-74E52594C2D6}
- {49909552-0B0C-4C14-8CF6-DB8A2ADE0934} = {49909552-0B0C-4C14-8CF6-DB8A2ADE0934}
- {AA8A5A85-592B-4357-BC60-E0E91E026AF6} = {AA8A5A85-592B-4357-BC60-E0E91E026AF6}
{FA39524D-3067-4141-888D-28A86C66F2B9} = {FA39524D-3067-4141-888D-28A86C66F2B9}
{D53BB45A-F2ED-1D4B-165E-C6F94C33657A} = {D53BB45A-F2ED-1D4B-165E-C6F94C33657A}
{B1941127-B9EE-D55B-0952-614A35541471} = {B1941127-B9EE-D55B-0952-614A35541471}
{4631946D-7D5F-44BD-A5A8-504C0A7033BE} = {4631946D-7D5F-44BD-A5A8-504C0A7033BE}
{6EAD4A4B-2BBC-4974-8E45-BB5C16CC2AC9} = {6EAD4A4B-2BBC-4974-8E45-BB5C16CC2AC9}
{F9810DE8-CBC3-4605-A7B1-ECA2D5292FD7} = {F9810DE8-CBC3-4605-A7B1-ECA2D5292FD7}
- {1C16337B-ACF3-4D03-AA90-851C5B5EADA6} = {1C16337B-ACF3-4D03-AA90-851C5B5EADA6}
EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libcef_dll_wrapper", "libcef_dll_wrapper.vcproj", "{A9D6DC71-C0DC-4549-AEA0-3B15B44E86A9}"
@@ -205,7 +217,7 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "npapi", "..\third_party\npa
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "patcher", "patcher.vcproj", "{A6D0953E-899E-4C60-AB6B-CAE75A44B8E6}"
EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "pcre", "..\webkit\pcre.vcproj", "{49909552-0B0C-4C14-8CF6-DB8A2ADE0934}"
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "pcre", "..\third_party\WebKit\JavaScriptCore\JavaScriptCore.gyp\pcre.vcproj", "{49909552-0B0C-4C14-8CF6-DB8A2ADE0934}"
ProjectSection(ProjectDependencies) = postProject
{5D7851C0-5603-F133-1A54-FF09D73A2C0E} = {5D7851C0-5603-F133-1A54-FF09D73A2C0E}
EndProjectSection
@@ -244,7 +256,7 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "v8_snapshot", "..\v8\tools\
{6992BBDE-54D2-5D2E-7FA6-421F82849767} = {6992BBDE-54D2-5D2E-7FA6-421F82849767}
EndProjectSection
EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "webcore", "..\webkit\webcore.vcproj", "{1C16337B-ACF3-4D03-AA90-851C5B5EADA6}"
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "webcore", "..\third_party\WebKit\WebCore\WebCore.gyp\webcore.vcproj", "{1C16337B-ACF3-4D03-AA90-851C5B5EADA6}"
ProjectSection(ProjectDependencies) = postProject
{1DEB72EA-4793-B0D6-383E-DE389E057BAF} = {1DEB72EA-4793-B0D6-383E-DE389E057BAF}
{03A8C1B8-E2FC-09B9-A351-5EA907BD1296} = {03A8C1B8-E2FC-09B9-A351-5EA907BD1296}
@@ -266,12 +278,12 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "webkit_strings", "..\webkit
{5D7851C0-5603-F133-1A54-FF09D73A2C0E} = {5D7851C0-5603-F133-1A54-FF09D73A2C0E}
EndProjectSection
EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "wtf", "..\webkit\wtf.vcproj", "{AA8A5A85-592B-4357-BC60-E0E91E026AF6}"
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "wtf", "..\third_party\WebKit\JavaScriptCore\JavaScriptCore.gyp\wtf.vcproj", "{AA8A5A85-592B-4357-BC60-E0E91E026AF6}"
ProjectSection(ProjectDependencies) = postProject
{2E2D3301-2EC4-4C0F-B889-87073B30F673} = {2E2D3301-2EC4-4C0F-B889-87073B30F673}
EndProjectSection
EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "wtf_config", "..\webkit\wtf_config.vcproj", "{2E2D3301-2EC4-4C0F-B889-87073B30F673}"
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "wtf_config", "..\third_party\WebKit\JavaScriptCore\JavaScriptCore.gyp\wtf_config.vcproj", "{2E2D3301-2EC4-4C0F-B889-87073B30F673}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "zlib", "..\third_party\zlib\zlib.vcproj", "{8423AF0D-4B88-4EBF-94E1-E4D00D00E21C}"
EndProject
@@ -331,6 +343,14 @@ Global
{1C16337B-ACF3-4D03-AA90-851C5B5EADA6}.Purify|Win32.Build.0 = Purify|Win32
{1C16337B-ACF3-4D03-AA90-851C5B5EADA6}.Release|Win32.ActiveCfg = Release|Win32
{1C16337B-ACF3-4D03-AA90-851C5B5EADA6}.Release|Win32.Build.0 = Release|Win32
+ {1DA00DDD-44E5-4C56-B2CC-414FB0164492}.Release - no tcmalloc|Win32.ActiveCfg = Release - no tcmalloc|Win32
+ {1DA00DDD-44E5-4C56-B2CC-414FB0164492}.Release - no tcmalloc|Win32.Build.0 = Release - no tcmalloc|Win32
+ {1DA00DDD-44E5-4C56-B2CC-414FB0164492}.Debug|Win32.ActiveCfg = Debug|Win32
+ {1DA00DDD-44E5-4C56-B2CC-414FB0164492}.Debug|Win32.Build.0 = Debug|Win32
+ {1DA00DDD-44E5-4C56-B2CC-414FB0164492}.Purify|Win32.ActiveCfg = Purify|Win32
+ {1DA00DDD-44E5-4C56-B2CC-414FB0164492}.Purify|Win32.Build.0 = Purify|Win32
+ {1DA00DDD-44E5-4C56-B2CC-414FB0164492}.Release|Win32.ActiveCfg = Release|Win32
+ {1DA00DDD-44E5-4C56-B2CC-414FB0164492}.Release|Win32.Build.0 = Release|Win32
{1DEB72EA-4793-B0D6-383E-DE389E057BAF}.Release - no tcmalloc|Win32.ActiveCfg = Release - no tcmalloc|Win32
{1DEB72EA-4793-B0D6-383E-DE389E057BAF}.Release - no tcmalloc|Win32.Build.0 = Release - no tcmalloc|Win32
{1DEB72EA-4793-B0D6-383E-DE389E057BAF}.Debug|Win32.ActiveCfg = Debug|Win32
@@ -696,6 +716,14 @@ Global
HideSolutionNode = FALSE
EndGlobalSection
GlobalSection(NestedProjects) = preSolution
+ {BB6FE021-BEDC-DDBC-04ED-4B76258204A6} = {1F1A77BD-507E-DADF-A888-76CD54279D6D}
+ {2E2D3301-2EC4-4C0F-B889-87073B30F673} = {BB6FE021-BEDC-DDBC-04ED-4B76258204A6}
+ {49909552-0B0C-4C14-8CF6-DB8A2ADE0934} = {BB6FE021-BEDC-DDBC-04ED-4B76258204A6}
+ {AA8A5A85-592B-4357-BC60-E0E91E026AF6} = {BB6FE021-BEDC-DDBC-04ED-4B76258204A6}
+ {26F5709A-032E-8B3E-43E5-73FD0F7FD013} = {A8BC79F2-F2ED-8F35-5EA9-B0CE6F648668}
+ {1C16337B-ACF3-4D03-AA90-851C5B5EADA6} = {26F5709A-032E-8B3E-43E5-73FD0F7FD013}
+ {A8BC79F2-F2ED-8F35-5EA9-B0CE6F648668} = {7C6CDB29-38D7-8364-748C-AEAAD8CCFB36}
+ {1F1A77BD-507E-DADF-A888-76CD54279D6D} = {7C6CDB29-38D7-8364-748C-AEAAD8CCFB36}
{4631946D-7D5F-44BD-A5A8-504C0A7033BE} = {EE25F6B1-EF84-226D-862F-CC4C19F42EB8}
{3FBC4235-3FBD-46DF-AEDC-BADBBA13A095} = {EE25F6B1-EF84-226D-862F-CC4C19F42EB8}
{AE9BF4A2-19C5-49D8-BB1A-F28496DD7051} = {EE25F6B1-EF84-226D-862F-CC4C19F42EB8}
@@ -717,8 +745,8 @@ Global
{03A8C1B8-E2FC-09B9-A351-5EA907BD1296} = {7FAA885C-04CF-4C6B-16F0-E9F0B44641AF}
{C5E0F710-5650-CE47-18C7-365D2A863087} = {7FAA885C-04CF-4C6B-16F0-E9F0B44641AF}
{B1941127-B9EE-D55B-0952-614A35541471} = {7FAA885C-04CF-4C6B-16F0-E9F0B44641AF}
- {14E7F2BB-B8FC-4DC1-B04D-31C06BDFA1D9} = {2DE59335-96CE-10CA-CDE5-FEC35E3549BB}
{9E2EFAAB-02B7-4A82-B664-1E98DF6D1953} = {2DE59335-96CE-10CA-CDE5-FEC35E3549BB}
+ {14E7F2BB-B8FC-4DC1-B04D-31C06BDFA1D9} = {2DE59335-96CE-10CA-CDE5-FEC35E3549BB}
{D3A97815-3309-44F8-B9BB-CBBE2393A454} = {2DE59335-96CE-10CA-CDE5-FEC35E3549BB}
{326E9795-E760-410A-B69A-3F79DB3F5243} = {96A8EC63-88DB-B85C-EEBC-43667C60DEB3}
{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942} = {96A8EC63-88DB-B85C-EEBC-43667C60DEB3}
@@ -730,24 +758,22 @@ Global
{7100F41F-868D-4E99-80A2-AF8E6574749D} = {89C816A7-DD31-D54C-C69C-5A80E0C49B77}
{8423AF0D-4B88-4EBF-94E1-E4D00D00E21C} = {89C816A7-DD31-D54C-C69C-5A80E0C49B77}
{2A70CBF0-847E-4E3A-B926-542A656DC7FE} = {89C816A7-DD31-D54C-C69C-5A80E0C49B77}
- {F9810DE8-CBC3-4605-A7B1-ECA2D5292FD7} = {89C816A7-DD31-D54C-C69C-5A80E0C49B77}
{C564F145-9172-42C3-BFCB-6014CA97DBCD} = {89C816A7-DD31-D54C-C69C-5A80E0C49B77}
+ {F9810DE8-CBC3-4605-A7B1-ECA2D5292FD7} = {89C816A7-DD31-D54C-C69C-5A80E0C49B77}
+ {7C6CDB29-38D7-8364-748C-AEAAD8CCFB36} = {89C816A7-DD31-D54C-C69C-5A80E0C49B77}
{FC0E1FD0-5DD7-4041-A1C9-CD3C376E4EED} = {89C816A7-DD31-D54C-C69C-5A80E0C49B77}
{1DEB72EA-4793-B0D6-383E-DE389E057BAF} = {89C816A7-DD31-D54C-C69C-5A80E0C49B77}
{2DE59335-96CE-10CA-CDE5-FEC35E3549BB} = {89C816A7-DD31-D54C-C69C-5A80E0C49B77}
{7FAA885C-04CF-4C6B-16F0-E9F0B44641AF} = {E95778BD-E4AC-C3D0-84EF-83684E04593A}
{E95778BD-E4AC-C3D0-84EF-83684E04593A} = {F3545621-A177-A1E7-26DB-108FF716F075}
- {1C16337B-ACF3-4D03-AA90-851C5B5EADA6} = {CD1E1B21-48E8-1ABE-48E1-89B2D4C456AB}
{5330F8EE-00F5-D65C-166E-E3150171055D} = {CD1E1B21-48E8-1ABE-48E1-89B2D4C456AB}
+ {1DA00DDD-44E5-4C56-B2CC-414FB0164492} = {CD1E1B21-48E8-1ABE-48E1-89B2D4C456AB}
{5916D37D-8C97-424F-A904-74E52594C2D6} = {CD1E1B21-48E8-1ABE-48E1-89B2D4C456AB}
{5ECEC9E5-8F23-47B6-93E0-C3B328B3BE65} = {CD1E1B21-48E8-1ABE-48E1-89B2D4C456AB}
{0B469837-3D46-484A-AFB3-C5A6C68730B9} = {CD1E1B21-48E8-1ABE-48E1-89B2D4C456AB}
- {AA8A5A85-592B-4357-BC60-E0E91E026AF6} = {CD1E1B21-48E8-1ABE-48E1-89B2D4C456AB}
{C66B126D-0ECE-4CA2-B6DC-FA780AFBBF09} = {CD1E1B21-48E8-1ABE-48E1-89B2D4C456AB}
- {2E2D3301-2EC4-4C0F-B889-87073B30F673} = {CD1E1B21-48E8-1ABE-48E1-89B2D4C456AB}
{0B945915-31A7-4A07-A5B5-568D737A39B1} = {CD1E1B21-48E8-1ABE-48E1-89B2D4C456AB}
{60B43839-95E6-4526-A661-209F16335E0E} = {CD1E1B21-48E8-1ABE-48E1-89B2D4C456AB}
- {49909552-0B0C-4C14-8CF6-DB8A2ADE0934} = {CD1E1B21-48E8-1ABE-48E1-89B2D4C456AB}
{5D7851C0-5603-F133-1A54-FF09D73A2C0E} = {E8172FD5-71EF-020B-71B0-9838CD43BF8E}
EndGlobalSection
EndGlobal
diff --git a/libcef.vcproj b/libcef.vcproj
index 70c7b41be..7434bd01f 100644
--- a/libcef.vcproj
+++ b/libcef.vcproj
@@ -6,29 +6,29 @@
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
diff --git a/libcef/browser_database_system.cc b/libcef/browser_database_system.cc
new file mode 100644
index 000000000..c9b720840
--- /dev/null
+++ b/libcef/browser_database_system.cc
@@ -0,0 +1,108 @@
+// Copyright (c) 2009 The Chromium Authors. All rights reserved. Use of this
+// source code is governed by a BSD-style license that can be found in the
+// LICENSE file.
+
+#include "browser_database_system.h"
+
+#if defined(USE_SYSTEM_SQLITE)
+#include
+#else
+#include "third_party/sqlite/preprocessed/sqlite3.h"
+#endif
+
+#include "base/file_util.h"
+#include "base/logging.h"
+#include "base/platform_thread.h"
+#include "base/process_util.h"
+#include "webkit/database/vfs_backend.h"
+#include "webkit/glue/webkit_glue.h"
+
+using webkit_database::VfsBackend;
+
+BrowserDatabaseSystem* BrowserDatabaseSystem::instance_ = NULL;
+
+BrowserDatabaseSystem* BrowserDatabaseSystem::GetInstance() {
+ DCHECK(instance_);
+ return instance_;
+}
+
+BrowserDatabaseSystem::BrowserDatabaseSystem()
+ : hack_main_db_handle_(base::kInvalidPlatformFileValue) {
+ temp_dir_.CreateUniqueTempDir();
+ DCHECK(!instance_);
+ instance_ = this;
+}
+
+BrowserDatabaseSystem::~BrowserDatabaseSystem() {
+ base::ClosePlatformFile(hack_main_db_handle_);
+ instance_ = NULL;
+}
+
+base::PlatformFile BrowserDatabaseSystem::OpenFile(
+ const FilePath& file_name, int desired_flags,
+ base::PlatformFile* dir_handle) {
+ base::PlatformFile file_handle = base::kInvalidPlatformFileValue;
+ VfsBackend::OpenFile(GetDBFileFullPath(file_name), GetDBDir(), desired_flags,
+ base::GetCurrentProcessHandle(), &file_handle,
+ dir_handle);
+
+ // HACK: Currently, the DB object that keeps track of the main database
+ // (DatabaseTracker) is a singleton that is declared as a static variable
+ // in a function, so it gets destroyed at the very end of the program.
+ // Because of that, we have a handle opened to the main DB file until the
+ // very end of the program, which prevents temp_dir_'s destructor from
+ // deleting the database directory.
+ //
+ // We will properly solve this problem when we reimplement DatabaseTracker.
+ // For now, however, we are going to take advantage of the fact that in order
+ // to do anything related to DBs, we have to call openDatabase() first, which
+ // opens a handle to the main DB before opening handles to any other DB files.
+ // We are going to cache the first file handle we get, and we are going to
+ // manually close it in the destructor.
+ if (hack_main_db_handle_ == base::kInvalidPlatformFileValue) {
+ hack_main_db_handle_ = file_handle;
+ }
+
+ return file_handle;
+}
+
+int BrowserDatabaseSystem::DeleteFile(
+ const FilePath& file_name, bool sync_dir) {
+ // We try to delete the file multiple times, because that's what the default
+ // VFS does (apparently deleting a file can sometimes fail on Windows).
+ // We sleep for 10ms between retries for the same reason.
+ const int kNumDeleteRetries = 3;
+ int num_retries = 0;
+ int error_code = SQLITE_OK;
+ do {
+ error_code = VfsBackend::DeleteFile(
+ GetDBFileFullPath(file_name), GetDBDir(), sync_dir);
+ } while ((++num_retries < kNumDeleteRetries) &&
+ (error_code == SQLITE_IOERR_DELETE) &&
+ (PlatformThread::Sleep(10), 1));
+
+ return error_code;
+}
+
+long BrowserDatabaseSystem::GetFileAttributes(
+ const FilePath& file_name) {
+ return VfsBackend::GetFileAttributes(GetDBFileFullPath(file_name));
+}
+
+long long BrowserDatabaseSystem::GetFileSize(
+ const FilePath& file_name) {
+ return VfsBackend::GetFileSize(GetDBFileFullPath(file_name));
+}
+
+void BrowserDatabaseSystem::ClearAllDatabases() {
+ // TODO(dumi): implement this once we refactor DatabaseTracker
+ //file_util::Delete(GetDBDir(), true);
+}
+
+FilePath BrowserDatabaseSystem::GetDBDir() {
+ return temp_dir_.path().Append(FILE_PATH_LITERAL("databases"));
+}
+
+FilePath BrowserDatabaseSystem::GetDBFileFullPath(const FilePath& file_name) {
+ return GetDBDir().Append(file_name);
+}
diff --git a/libcef/browser_database_system.h b/libcef/browser_database_system.h
new file mode 100644
index 000000000..b5e15f827
--- /dev/null
+++ b/libcef/browser_database_system.h
@@ -0,0 +1,38 @@
+// Copyright (c) 2009 The Chromium Authors. All rights reserved. Use of this
+// source code is governed by a BSD-style license that can be found in the
+// LICENSE file.
+
+#ifndef _BROWSER_DATABASE_SYSTEM_H
+#define _BROWSER_DATABASE_SYSTEM_H
+
+#include "base/file_path.h"
+#include "base/platform_file.h"
+#include "base/scoped_temp_dir.h"
+
+class BrowserDatabaseSystem {
+ public:
+ static BrowserDatabaseSystem* GetInstance();
+ BrowserDatabaseSystem();
+ ~BrowserDatabaseSystem();
+
+ base::PlatformFile OpenFile(
+ const FilePath& file_name, int desired_flags,
+ base::PlatformFile* dir_handle);
+ int DeleteFile(const FilePath& file_name, bool sync_dir);
+ long GetFileAttributes(const FilePath& file_name);
+ long long GetFileSize(const FilePath& file_name);
+ void ClearAllDatabases();
+
+ private:
+ FilePath GetDBDir();
+ FilePath GetDBFileFullPath(const FilePath& file_name);
+
+ static BrowserDatabaseSystem* instance_;
+
+ ScopedTempDir temp_dir_;
+
+ // HACK: see OpenFile's implementation
+ base::PlatformFile hack_main_db_handle_;
+};
+
+#endif // _BROWSER_DATABASE_SYSTEM_H
diff --git a/libcef/browser_drag_delegate.cc b/libcef/browser_drag_delegate.cc
index 57c790e0c..e398e1a81 100644
--- a/libcef/browser_drag_delegate.cc
+++ b/libcef/browser_drag_delegate.cc
@@ -37,7 +37,7 @@ void BrowserDragDelegate::OnDragSourceDrop() {
gfx::Point client;
gfx::Point screen;
GetCursorPositions(source_hwnd_, &client, &screen);
- webview_->DragSourceEndedAt(client, screen, WebKit::WebDragOperationCopy);
+ webview_->dragSourceEndedAt(client, screen, WebKit::WebDragOperationCopy);
// TODO(snej): Pass the real drag operation instead
}
@@ -45,5 +45,5 @@ void BrowserDragDelegate::OnDragSourceMove() {
gfx::Point client;
gfx::Point screen;
GetCursorPositions(source_hwnd_, &client, &screen);
- webview_->DragSourceMovedTo(client, screen);
+ webview_->dragSourceMovedTo(client, screen);
}
diff --git a/libcef/browser_drop_delegate.cc b/libcef/browser_drop_delegate.cc
index e76d6d2e5..d7cdc90de 100644
--- a/libcef/browser_drop_delegate.cc
+++ b/libcef/browser_drop_delegate.cc
@@ -25,7 +25,7 @@ DWORD BrowserDropDelegate::OnDragEnter(IDataObject* data_object,
POINT client_pt = cursor_position;
ScreenToClient(GetHWND(), &client_pt);
- WebDragOperation op = webview_->DragTargetDragEnter(
+ WebDragOperation op = webview_->dragTargetDragEnter(
drop_data.ToDragData(), drop_data.identity,
WebPoint(client_pt.x, client_pt.y),
WebPoint(cursor_position.x, cursor_position.y),
@@ -41,7 +41,7 @@ DWORD BrowserDropDelegate::OnDragOver(IDataObject* data_object,
DWORD effect) {
POINT client_pt = cursor_position;
ScreenToClient(GetHWND(), &client_pt);
- WebDragOperation op = webview_->DragTargetDragOver(
+ WebDragOperation op = webview_->dragTargetDragOver(
WebPoint(client_pt.x, client_pt.y),
WebPoint(cursor_position.x, cursor_position.y),
WebDragOperationCopy);
@@ -51,7 +51,7 @@ DWORD BrowserDropDelegate::OnDragOver(IDataObject* data_object,
}
void BrowserDropDelegate::OnDragLeave(IDataObject* data_object) {
- webview_->DragTargetDragLeave();
+ webview_->dragTargetDragLeave();
}
DWORD BrowserDropDelegate::OnDrop(IDataObject* data_object,
@@ -60,7 +60,7 @@ DWORD BrowserDropDelegate::OnDrop(IDataObject* data_object,
DWORD effect) {
POINT client_pt = cursor_position;
ScreenToClient(GetHWND(), &client_pt);
- webview_->DragTargetDrop(
+ webview_->dragTargetDrop(
WebPoint(client_pt.x, client_pt.y),
WebPoint(cursor_position.x, cursor_position.y));
diff --git a/libcef/browser_impl.cc b/libcef/browser_impl.cc
index 3fb6b9831..832f60f37 100644
--- a/libcef/browser_impl.cc
+++ b/libcef/browser_impl.cc
@@ -91,17 +91,17 @@ CefRefPtr CefBrowserImpl::GetHandler()
CefRefPtr CefBrowserImpl::GetMainFrame()
{
- return GetCefFrame(GetWebView()->GetMainFrame());
+ return GetCefFrame(GetWebView()->mainFrame());
}
CefRefPtr CefBrowserImpl::GetFocusedFrame()
{
- return GetCefFrame(GetWebView()->GetFocusedFrame());
+ return GetCefFrame(GetWebView()->focusedFrame());
}
CefRefPtr CefBrowserImpl::GetFrame(const std::wstring& name)
{
- WebFrame* frame = GetWebView()->GetFrameWithName(name);
+ WebFrame* frame = GetWebView()->findFrameByName(name);
if(frame)
return GetCefFrame(frame);
return NULL;
@@ -110,12 +110,12 @@ CefRefPtr CefBrowserImpl::GetFrame(const std::wstring& name)
void CefBrowserImpl::GetFrameNames(std::vector& names)
{
WebView* view = GetWebView();
- WebFrame* main_frame = view->GetMainFrame();
+ WebFrame* main_frame = view->mainFrame();
WebFrame* it = main_frame;
do {
if(it != main_frame)
names.push_back(UTF16ToWideHack(it->name()));
- it = view->GetNextFrameAfter(it, true);
+ it = it->traverseNext(true);
} while (it != main_frame);
}
@@ -126,7 +126,7 @@ CefRefPtr CefBrowserImpl::GetCefFrame(WebFrame* frame)
WebView *view = GetWebView();
if(view) {
- if(frame == view->GetMainFrame()) {
+ if(frame == view->mainFrame()) {
// Use or create the single main frame reference.
if(frame_main_ == NULL)
frame_main_ = new CefFrameImpl(this, std::wstring());
@@ -168,8 +168,8 @@ WebFrame* CefBrowserImpl::GetWebFrame(CefRefPtr frame)
{
std::wstring name = frame->GetName();
if(name.empty())
- return GetWebView()->GetMainFrame();
- return GetWebView()->GetFrameWithName(name);
+ return GetWebView()->mainFrame();
+ return GetWebView()->findFrameByName(name);
}
void CefBrowserImpl::Undo(CefRefPtr frame)
@@ -501,9 +501,9 @@ bool CefBrowserImpl::UIT_Navigate(const BrowserNavigationEntry& entry,
// Get the right target frame for the entry.
WebFrame* frame;
if (!entry.GetTargetFrame().empty())
- frame = GetWebView()->GetFrameWithName(entry.GetTargetFrame());
+ frame = GetWebView()->findFrameByName(entry.GetTargetFrame());
else
- frame = GetWebView()->GetMainFrame();
+ frame = GetWebView()->mainFrame();
// TODO(mpcomplete): should we clear the target frame, or should
// back/forward navigations maintain the target frame?
@@ -563,10 +563,10 @@ bool CefBrowserImpl::UIT_Navigate(const BrowserNavigationEntry& entry,
// LoadRequest, thus making some tests fail (see http://b/issue?id=845337
// for more details).
// TODO(cef): The above comment may be wrong, or the below call to
- // SetFocusedFrame() may be unnecessary or in the wrong place. See this
+ // setFocusedFrame() may be unnecessary or in the wrong place. See this
// thread for additional details:
// http://groups.google.com/group/chromium-dev/browse_thread/thread/42bcd31b59e3a168
- GetWebView()->SetFocusedFrame(frame);
+ GetWebView()->setFocusedFrame(frame);
UIT_SetFocus(GetWebViewHost(), true);
}
@@ -630,7 +630,7 @@ void CefBrowserImpl::UIT_HandleAction(CefHandler::MenuId menuId,
UIT_Reload();
break;
case MENU_ID_NAV_STOP:
- GetWebView()->StopLoading();
+ GetWebView()->mainFrame()->stopLoading();
break;
case MENU_ID_UNDO:
if(web_frame)
diff --git a/libcef/browser_impl.h b/libcef/browser_impl.h
index 55e5b72db..d9f030de6 100644
--- a/libcef/browser_impl.h
+++ b/libcef/browser_impl.h
@@ -210,6 +210,8 @@ public:
void UIT_SetUniqueID(int id) { unique_id_ = id; }
int UIT_GetUniqueID() { return unique_id_; }
+ static bool ImplementsThreadSafeReferenceCounting() { return true; }
+
protected:
CefWindowInfo window_info_;
bool is_popup_;
@@ -272,7 +274,7 @@ public:
virtual bool IsMain() { return name_.empty(); }
virtual bool IsFocused()
{ return (browser_->GetWebFrame(this) ==
- browser_->GetWebView()->GetFocusedFrame()); }
+ browser_->GetWebView()->focusedFrame()); }
virtual std::wstring GetName() { return name_; }
virtual std::wstring GetURL() { return browser_->GetURL(this); }
diff --git a/libcef/browser_impl_win.cc b/libcef/browser_impl_win.cc
index 069a20a80..b385f6eaf 100644
--- a/libcef/browser_impl_win.cc
+++ b/libcef/browser_impl_win.cc
@@ -57,8 +57,8 @@ LRESULT CALLBACK CefBrowserImpl::WndProc(HWND hwnd, UINT message,
browser->GetWebViewDelegate()->RevokeDragDrop();
// Call GC twice to clean up garbage.
- browser->GetWebView()->GetMainFrame()->collectGarbage();
- browser->GetWebView()->GetMainFrame()->collectGarbage();
+ browser->GetWebView()->mainFrame()->collectGarbage();
+ browser->GetWebView()->mainFrame()->collectGarbage();
// Clean up anything associated with the WebViewHost widget.
browser->GetWebViewHost()->webwidget()->close();
diff --git a/libcef/browser_webkit_glue.cc b/libcef/browser_webkit_glue.cc
index c3af9e568..f825ba484 100644
--- a/libcef/browser_webkit_glue.cc
+++ b/libcef/browser_webkit_glue.cc
@@ -4,7 +4,6 @@
// found in the LICENSE file.
#include "base/compiler_specific.h"
-#include "base/logging.h"
#undef LOG
#include "config.h"
@@ -16,6 +15,7 @@ MSVC_POP_WARNING();
#include "browser_webkit_glue.h"
+#include "base/logging.h"
#include "base/path_service.h"
#include "base/resource_util.h"
#include "base/scoped_ptr.h"
diff --git a/libcef/browser_webkit_init.h b/libcef/browser_webkit_init.h
index 5b2c11f52..1182c972f 100644
--- a/libcef/browser_webkit_init.h
+++ b/libcef/browser_webkit_init.h
@@ -13,6 +13,9 @@
#include "base/string_util.h"
#include "media/base/media.h"
#include "webkit/appcache/web_application_cache_host_impl.h"
+#include "webkit/database/vfs_backend.h"
+#include "webkit/extensions/v8/gears_extension.h"
+#include "webkit/extensions/v8/interval_extension.h"
#include "webkit/api/public/WebCString.h"
#include "webkit/api/public/WebData.h"
#include "webkit/api/public/WebKit.h"
@@ -24,9 +27,8 @@
#include "webkit/glue/webclipboard_impl.h"
#include "webkit/glue/webkit_glue.h"
#include "webkit/glue/webkitclient_impl.h"
-#include "webkit/extensions/v8/gears_extension.h"
-#include "webkit/extensions/v8/interval_extension.h"
#include "browser_appcache_system.h"
+#include "browser_database_system.h"
#include "browser_resource_loader_bridge.h"
@@ -75,14 +77,37 @@ class BrowserWebKitInit : public webkit_glue::WebKitClientImpl {
}
virtual bool sandboxEnabled() {
- return false;
+ return true;
}
- virtual bool getFileSize(const WebKit::WebString& path,
- long long& result) {
+ virtual WebKit::WebKitClient::FileHandle databaseOpenFile(
+ const WebKit::WebString& file_name, int desired_flags,
+ WebKit::WebKitClient::FileHandle* dir_handle) {
+ return BrowserDatabaseSystem::GetInstance()->OpenFile(
+ webkit_glue::WebStringToFilePath(file_name),
+ desired_flags, dir_handle);
+ }
+
+ virtual int databaseDeleteFile(const WebKit::WebString& file_name,
+ bool sync_dir) {
+ return BrowserDatabaseSystem::GetInstance()->DeleteFile(
+ webkit_glue::WebStringToFilePath(file_name), sync_dir);
+ }
+
+ virtual long databaseGetFileAttributes(const WebKit::WebString& file_name) {
+ return BrowserDatabaseSystem::GetInstance()->GetFileAttributes(
+ webkit_glue::WebStringToFilePath(file_name));
+ }
+
+ virtual long long databaseGetFileSize(const WebKit::WebString& file_name) {
+ return BrowserDatabaseSystem::GetInstance()->GetFileSize(
+ webkit_glue::WebStringToFilePath(file_name));
+ }
+
+ virtual bool getFileSize(const WebKit::WebString& path, long long& result) {
return file_util::GetFileSize(
- FilePath(webkit_glue::WebStringToFilePathString(path)),
- reinterpret_cast(&result));
+ webkit_glue::WebStringToFilePath(path),
+ reinterpret_cast(&result));
}
virtual unsigned long long visitedLinkHash(const char* canonicalURL,
@@ -158,6 +183,7 @@ class BrowserWebKitInit : public webkit_glue::WebKitClientImpl {
webkit_glue::WebClipboardImpl clipboard_;
ScopedTempDir appcache_dir_;
BrowserAppCacheSystem appcache_system_;
+ BrowserDatabaseSystem database_system_;
};
#endif // _BROWSER_WEBKIT_INIT_H
diff --git a/libcef/browser_webview_delegate.cc b/libcef/browser_webview_delegate.cc
index e1b16d268..6852b0ff9 100644
--- a/libcef/browser_webview_delegate.cc
+++ b/libcef/browser_webview_delegate.cc
@@ -150,6 +150,10 @@ void BrowserWebViewDelegate::didAddMessageToConsole(
void BrowserWebViewDelegate::printPage(WebFrame* frame) {
}
+WebKit::WebNotificationPresenter* BrowserWebViewDelegate::notificationPresenter() {
+ return NULL;
+}
+
void BrowserWebViewDelegate::didStartLoading() {
// clear the title so we can tell if it wasn't provided by the page
browser_->UIT_SetTitle(std::wstring());
@@ -238,6 +242,26 @@ void BrowserWebViewDelegate::didExecuteCommand(
void BrowserWebViewDelegate::didEndEditing() {
}
+bool BrowserWebViewDelegate::handleCurrentKeyboardEvent() {
+ return false;
+}
+
+void BrowserWebViewDelegate::spellCheck(const WebKit::WebString& text,
+ int& offset, int& length) {
+}
+
+WebString BrowserWebViewDelegate::autoCorrectWord(const WebString& word) {
+ // Dummy implementation.
+ return word;
+}
+
+void BrowserWebViewDelegate::showSpellingUI(bool show) {
+}
+
+void BrowserWebViewDelegate::updateSpellingUIWithMisspelledWord(
+ const WebKit::WebString& word) {
+}
+
void BrowserWebViewDelegate::runModalAlertDialog(
WebFrame* frame, const WebString& message) {
std::wstring messageStr = UTF16ToWideHack(message);
@@ -320,7 +344,11 @@ void BrowserWebViewDelegate::startDragging(
//HRESULT res = DoDragDrop(drop_data.data_object, drag_delegate_.get(),
// ok_effect, &effect);
//DCHECK(DRAGDROP_S_DROP == res || DRAGDROP_S_CANCEL == res);
- browser_->GetWebView()->DragSourceSystemDragEnded();
+ browser_->GetWebView()->dragSourceSystemDragEnded();
+}
+
+bool BrowserWebViewDelegate::acceptsLoadDrops() {
+ return true;
}
void BrowserWebViewDelegate::focusNext() {
@@ -840,7 +868,7 @@ void BrowserWebViewDelegate::UpdateSessionHistory(WebFrame* frame) {
return;
const WebHistoryItem& history_item =
- browser_->GetWebView()->GetMainFrame()->previousHistoryItem();
+ browser_->GetWebView()->mainFrame()->previousHistoryItem();
if (history_item.isNull())
return;
diff --git a/libcef/browser_webview_delegate.h b/libcef/browser_webview_delegate.h
index d6f636c40..3c781adfc 100644
--- a/libcef/browser_webview_delegate.h
+++ b/libcef/browser_webview_delegate.h
@@ -22,6 +22,7 @@
#include "base/scoped_ptr.h"
#include "base/weak_ptr.h"
#include "webkit/api/public/WebFrameClient.h"
+#include "webkit/api/public/WebRect.h"
#include "webkit/glue/webcursor.h"
#include "webkit/glue/webplugin_page_delegate.h"
#include "webkit/glue/webview_delegate.h"
@@ -67,6 +68,7 @@ class BrowserWebViewDelegate : public WebViewDelegate,
const WebKit::WebConsoleMessage& message,
const WebKit::WebString& source_name, unsigned source_line);
virtual void printPage(WebKit::WebFrame* frame);
+ virtual WebKit::WebNotificationPresenter* notificationPresenter();
virtual void didStartLoading();
virtual void didStopLoading();
virtual bool shouldBeginEditing(const WebKit::WebRange& range);
@@ -91,6 +93,14 @@ class BrowserWebViewDelegate : public WebViewDelegate,
virtual void didChangeContents();
virtual void didExecuteCommand(const WebKit::WebString& command_name);
virtual void didEndEditing();
+ virtual bool handleCurrentKeyboardEvent();
+ virtual void spellCheck(
+ const WebKit::WebString& text, int& offset, int& length);
+ virtual WebKit::WebString autoCorrectWord(
+ const WebKit::WebString& misspelled_word);
+ virtual void showSpellingUI(bool show);
+ virtual void updateSpellingUIWithMisspelledWord(
+ const WebKit::WebString& word);
virtual void runModalAlertDialog(
WebKit::WebFrame* frame, const WebKit::WebString& message);
virtual bool runModalConfirmDialog(
@@ -107,6 +117,7 @@ class BrowserWebViewDelegate : public WebViewDelegate,
virtual void startDragging(
const WebKit::WebPoint& from, const WebKit::WebDragData& data,
WebKit::WebDragOperationsMask mask);
+ virtual bool acceptsLoadDrops();
virtual void focusNext();
virtual void focusPrevious();
virtual void navigateBackForwardSoon(int offset);
diff --git a/libcef/context.cc b/libcef/context.cc
index 96cb1efad..67601810a 100644
--- a/libcef/context.cc
+++ b/libcef/context.cc
@@ -348,7 +348,8 @@ bool CefContext::Initialize(bool multi_threaded_message_loop,
webprefs_->remote_fonts_enabled = true;
webprefs_->local_storage_enabled = true;
webprefs_->session_storage_enabled = true;
- webprefs_->application_cache_enabled = false;
+ webprefs_->application_cache_enabled = true;
+ webprefs_->databases_enabled = true;
if (multi_threaded_message_loop) {
// Event that will be used to signal thread setup completion. Start
diff --git a/libcef/context.h b/libcef/context.h
index 62dd02923..057487951 100644
--- a/libcef/context.h
+++ b/libcef/context.h
@@ -59,6 +59,8 @@ public:
bool DoDelayedWork();
bool DoIdleWork();
+ static bool ImplementsThreadSafeReferenceCounting() { return true; }
+
private:
void SetMessageLoopForUI(MessageLoopForUI* loop);
void NotifyEvent();
diff --git a/libcef/scheme_impl.cc b/libcef/scheme_impl.cc
index d8e813be1..91afc116d 100644
--- a/libcef/scheme_impl.cc
+++ b/libcef/scheme_impl.cc
@@ -4,6 +4,7 @@
// found in the LICENSE file.
#include "base/lazy_instance.h"
+#include "base/logging.h"
#include "base/message_loop.h"
#include "base/string_util.h"
#include "base/worker_pool.h"
@@ -381,6 +382,8 @@ public:
void AddRef() {}
void Release() { delete this; }
+ static bool ImplementsThreadSafeReferenceCounting() { return true; }
+
private:
CefSchemeHandlerFactory* factory_;
std::string scheme_name_;
diff --git a/libcef/v8_impl.cc b/libcef/v8_impl.cc
index 6ff0161d8..90a625ec8 100644
--- a/libcef/v8_impl.cc
+++ b/libcef/v8_impl.cc
@@ -131,6 +131,8 @@ public:
void AddRef() {}
void Release() {}
+ static bool ImplementsThreadSafeReferenceCounting() { return true; }
+
private:
CefV8Handler* handler_;
};
diff --git a/libcef/webview_host.cc b/libcef/webview_host.cc
index 65f8508a0..2fe4d9e12 100644
--- a/libcef/webview_host.cc
+++ b/libcef/webview_host.cc
@@ -41,7 +41,7 @@ WebViewHost* WebViewHost::Create(HWND parent_view,
host->webwidget_ = WebView::Create(delegate);
prefs.Apply(host->webview());
- host->webview()->InitializeMainFrame(delegate);
+ host->webview()->initializeMainFrame(delegate);
return host;
}
diff --git a/libcef_static.vcproj b/libcef_static.vcproj
index 149520cc1..3980d9743 100644
--- a/libcef_static.vcproj
+++ b/libcef_static.vcproj
@@ -6,29 +6,29 @@
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
@@ -51,11 +51,11 @@
-
+
-
+
@@ -77,11 +77,13 @@
+
+