mirror of
https://bitbucket.org/chromiumembedded/cef
synced 2025-02-02 20:26:59 +01:00
libcef: Update due to underlying chromium changes.
- Reorganization of BrowserWebViewDelegate due to WebViewDelegate being separated into different interfaces. - icu38 renamed to icu with related project and namespace changes. - New implementation of BrowserAppCacheSystem that integrates with BrowserResourceLoaderBridge. - New webkit_glue_plugins.patch for RegisterInternalPlugin() issue 173107. Manually reverting the webkit/glue/plugins directory may be necessary before building. git-svn-id: https://chromiumembedded.googlecode.com/svn/trunk@42 5089003a-bbd8-11dd-ad1f-f1f9622dbc98
This commit is contained in:
parent
d8b1d13a74
commit
51181e1004
@ -36,3 +36,4 @@ Date | CEF Revision | Chromium Revision
|
||||
2009-08-13 | /trunk@34 | /trunk@23266
|
||||
2009-08-20 | /trunk@35 | /trunk@23814
|
||||
2009-08-25 | /trunk@41 | /trunk@24210
|
||||
2009-09-17 | /trunk@42 | /trunk@26432
|
||||
|
281
cef.sln
281
cef.sln
@ -4,26 +4,26 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "WebKit (readonly)", "WebKit
|
||||
EndProject
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "webcore", "..\webkit\WebCore.vcproj", "{1C16337B-ACF3-4D03-AA90-851C5B5EADA6}"
|
||||
ProjectSection(ProjectDependencies) = postProject
|
||||
{F9810DE8-CBC3-4605-A7B1-ECA2D5292FD7} = {F9810DE8-CBC3-4605-A7B1-ECA2D5292FD7}
|
||||
{FC0E1FD0-5DD7-4041-A1C9-CD3C376E4EED} = {FC0E1FD0-5DD7-4041-A1C9-CD3C376E4EED}
|
||||
{EF5E94AB-B646-4E5B-A058-52EF07B8351C} = {EF5E94AB-B646-4E5B-A058-52EF07B8351C}
|
||||
{21E22961-22BF-4493-BD3A-868F93DA5179} = {21E22961-22BF-4493-BD3A-868F93DA5179}
|
||||
{AA8A5A85-592B-4357-BC60-E0E91E026AF6} = {AA8A5A85-592B-4357-BC60-E0E91E026AF6}
|
||||
{238CE175-76CE-4A25-A676-69D115885601} = {238CE175-76CE-4A25-A676-69D115885601}
|
||||
{CD9CA56E-4E94-444C-87D4-58CA1E6F300D} = {CD9CA56E-4E94-444C-87D4-58CA1E6F300D}
|
||||
{6EAD4A4B-2BBC-4974-8E45-BB5C16CC2AC9} = {6EAD4A4B-2BBC-4974-8E45-BB5C16CC2AC9}
|
||||
{C564F145-9172-42C3-BFCB-6014CA97DBCD} = {C564F145-9172-42C3-BFCB-6014CA97DBCD}
|
||||
{2E2D3301-2EC4-4C0F-B889-87073B30F673} = {2E2D3301-2EC4-4C0F-B889-87073B30F673}
|
||||
{C564F145-9172-42C3-BFCB-6014CA97DBCD} = {C564F145-9172-42C3-BFCB-6014CA97DBCD}
|
||||
{6EAD4A4B-2BBC-4974-8E45-BB5C16CC2AC9} = {6EAD4A4B-2BBC-4974-8E45-BB5C16CC2AC9}
|
||||
{CD9CA56E-4E94-444C-87D4-58CA1E6F300D} = {CD9CA56E-4E94-444C-87D4-58CA1E6F300D}
|
||||
{238CE175-76CE-4A25-A676-69D115885601} = {238CE175-76CE-4A25-A676-69D115885601}
|
||||
{AA8A5A85-592B-4357-BC60-E0E91E026AF6} = {AA8A5A85-592B-4357-BC60-E0E91E026AF6}
|
||||
{21E22961-22BF-4493-BD3A-868F93DA5179} = {21E22961-22BF-4493-BD3A-868F93DA5179}
|
||||
{EF5E94AB-B646-4E5B-A058-52EF07B8351C} = {EF5E94AB-B646-4E5B-A058-52EF07B8351C}
|
||||
{FC0E1FD0-5DD7-4041-A1C9-CD3C376E4EED} = {FC0E1FD0-5DD7-4041-A1C9-CD3C376E4EED}
|
||||
{F9810DE8-CBC3-4605-A7B1-ECA2D5292FD7} = {F9810DE8-CBC3-4605-A7B1-ECA2D5292FD7}
|
||||
EndProjectSection
|
||||
EndProject
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "glue", "..\webkit\glue.vcproj", "{C66B126D-0ECE-4CA2-B6DC-FA780AFBBF09}"
|
||||
ProjectSection(ProjectDependencies) = postProject
|
||||
{2E2D3301-2EC4-4C0F-B889-87073B30F673} = {2E2D3301-2EC4-4C0F-B889-87073B30F673}
|
||||
{1C16337B-ACF3-4D03-AA90-851C5B5EADA6} = {1C16337B-ACF3-4D03-AA90-851C5B5EADA6}
|
||||
{5ECEC9E5-8F23-47B6-93E0-C3B328B3BE65} = {5ECEC9E5-8F23-47B6-93E0-C3B328B3BE65}
|
||||
{326E9795-E760-410A-B69A-3F79DB3F5243} = {326E9795-E760-410A-B69A-3F79DB3F5243}
|
||||
{0B469837-3D46-484A-AFB3-C5A6C68730B9} = {0B469837-3D46-484A-AFB3-C5A6C68730B9}
|
||||
{60B43839-95E6-4526-A661-209F16335E0E} = {60B43839-95E6-4526-A661-209F16335E0E}
|
||||
{0B469837-3D46-484A-AFB3-C5A6C68730B9} = {0B469837-3D46-484A-AFB3-C5A6C68730B9}
|
||||
{326E9795-E760-410A-B69A-3F79DB3F5243} = {326E9795-E760-410A-B69A-3F79DB3F5243}
|
||||
{5ECEC9E5-8F23-47B6-93E0-C3B328B3BE65} = {5ECEC9E5-8F23-47B6-93E0-C3B328B3BE65}
|
||||
{1C16337B-ACF3-4D03-AA90-851C5B5EADA6} = {1C16337B-ACF3-4D03-AA90-851C5B5EADA6}
|
||||
{2E2D3301-2EC4-4C0F-B889-87073B30F673} = {2E2D3301-2EC4-4C0F-B889-87073B30F673}
|
||||
EndProjectSection
|
||||
EndProject
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "skia", "..\skia\skia.vcproj", "{CD9CA56E-4E94-444C-87D4-58CA1E6F300D}"
|
||||
@ -34,19 +34,11 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "wtf", "..\webkit\WTF.vcproj
|
||||
EndProjectSection
|
||||
EndProject
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "sqlite", "..\third_party\sqlite\sqlite.vcproj", "{6EAD4A4B-2BBC-4974-8E45-BB5C16CC2AC9}"
|
||||
ProjectSection(ProjectDependencies) = postProject
|
||||
{8C27D792-2648-4F5E-9ED0-374276327308} = {8C27D792-2648-4F5E-9ED0-374276327308}
|
||||
EndProjectSection
|
||||
EndProject
|
||||
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Libraries", "Libraries", "{EF78C1F9-AA17-4CA5-B6CB-39B37A73A3DA}"
|
||||
EndProject
|
||||
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "WebKit (ours)", "WebKit (ours)", "{CB43561E-A6F8-49E2-96A2-3F2BA1FFF21E}"
|
||||
EndProject
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "icu", "..\third_party\icu38\build\icu.vcproj", "{8C27D792-2648-4F5E-9ED0-374276327308}"
|
||||
ProjectSection(ProjectDependencies) = postProject
|
||||
{A0D94973-D355-47A5-A1E2-3456F321F010} = {A0D94973-D355-47A5-A1E2-3456F321F010}
|
||||
EndProjectSection
|
||||
EndProject
|
||||
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "icu", "icu", "{1AFC1EC3-24FA-4260-B099-76319EC9977A}"
|
||||
EndProject
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libpng", "..\third_party\libpng\libpng.vcproj", "{C564F145-9172-42C3-BFCB-6014CA97DBCD}"
|
||||
@ -70,56 +62,45 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "bzip2", "..\third_party\bzi
|
||||
EndProject
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libcef", "libcef\libcef.vcproj", "{FA39524D-3067-4141-888D-28A86C66F2B9}"
|
||||
ProjectSection(ProjectDependencies) = postProject
|
||||
{60B43839-95E6-4526-A661-209F16335E0E} = {60B43839-95E6-4526-A661-209F16335E0E}
|
||||
{5ECEC9E5-8F23-47B6-93E0-C3B328B3BE65} = {5ECEC9E5-8F23-47B6-93E0-C3B328B3BE65}
|
||||
{2A70CBF0-847E-4E3A-B926-542A656DC7FE} = {2A70CBF0-847E-4E3A-B926-542A656DC7FE}
|
||||
{5916D37D-8C97-424F-A904-74E52594C2D6} = {5916D37D-8C97-424F-A904-74E52594C2D6}
|
||||
{7100F41F-868D-4E99-80A2-AF8E6574749D} = {7100F41F-868D-4E99-80A2-AF8E6574749D}
|
||||
{8423AF0D-4B88-4EBF-94E1-E4D00D00E21C} = {8423AF0D-4B88-4EBF-94E1-E4D00D00E21C}
|
||||
{8C27D792-2648-4F5E-9ED0-374276327308} = {8C27D792-2648-4F5E-9ED0-374276327308}
|
||||
{A508ADD3-CECE-4E0F-8448-2F5E454DF551} = {A508ADD3-CECE-4E0F-8448-2F5E454DF551}
|
||||
{AA8A5A85-592B-4357-BC60-E0E91E026AF6} = {AA8A5A85-592B-4357-BC60-E0E91E026AF6}
|
||||
{B55CA863-B374-4BAF-95AC-539E4FA4C90C} = {B55CA863-B374-4BAF-95AC-539E4FA4C90C}
|
||||
{C0334F9A-1168-4101-9DD8-C30FB252D435} = {C0334F9A-1168-4101-9DD8-C30FB252D435}
|
||||
{C564F145-9172-42C3-BFCB-6014CA97DBCD} = {C564F145-9172-42C3-BFCB-6014CA97DBCD}
|
||||
{C66B126D-0ECE-4CA2-B6DC-FA780AFBBF09} = {C66B126D-0ECE-4CA2-B6DC-FA780AFBBF09}
|
||||
{CD9CA56E-4E94-444C-87D4-58CA1E6F300D} = {CD9CA56E-4E94-444C-87D4-58CA1E6F300D}
|
||||
{EF5E94AB-B646-4E5B-A058-52EF07B8351C} = {EF5E94AB-B646-4E5B-A058-52EF07B8351C}
|
||||
{F4F4BCAA-EA59-445C-A119-3E6C29647A51} = {F4F4BCAA-EA59-445C-A119-3E6C29647A51}
|
||||
{F54ABC59-5C00-414A-A9BA-BAF26D1699F0} = {F54ABC59-5C00-414A-A9BA-BAF26D1699F0}
|
||||
{FC0E1FD0-5DD7-4041-A1C9-CD3C376E4EED} = {FC0E1FD0-5DD7-4041-A1C9-CD3C376E4EED}
|
||||
{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942} = {8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}
|
||||
{326E9795-E760-410A-B69A-3F79DB3F5243} = {326E9795-E760-410A-B69A-3F79DB3F5243}
|
||||
{1C16337B-ACF3-4D03-AA90-851C5B5EADA6} = {1C16337B-ACF3-4D03-AA90-851C5B5EADA6}
|
||||
{238CE175-76CE-4A25-A676-69D115885601} = {238CE175-76CE-4A25-A676-69D115885601}
|
||||
{1832A374-8A74-4F9E-B536-69A699B3E165} = {1832A374-8A74-4F9E-B536-69A699B3E165}
|
||||
{21E22961-22BF-4493-BD3A-868F93DA5179} = {21E22961-22BF-4493-BD3A-868F93DA5179}
|
||||
{EC8B7909-62AF-470D-A75D-E1D89C837142} = {EC8B7909-62AF-470D-A75D-E1D89C837142}
|
||||
{0B469837-3D46-484A-AFB3-C5A6C68730B9} = {0B469837-3D46-484A-AFB3-C5A6C68730B9}
|
||||
{EC8B7909-62AF-470D-A75D-E1D89C837142} = {EC8B7909-62AF-470D-A75D-E1D89C837142}
|
||||
{21E22961-22BF-4493-BD3A-868F93DA5179} = {21E22961-22BF-4493-BD3A-868F93DA5179}
|
||||
{1832A374-8A74-4F9E-B536-69A699B3E165} = {1832A374-8A74-4F9E-B536-69A699B3E165}
|
||||
{238CE175-76CE-4A25-A676-69D115885601} = {238CE175-76CE-4A25-A676-69D115885601}
|
||||
{1C16337B-ACF3-4D03-AA90-851C5B5EADA6} = {1C16337B-ACF3-4D03-AA90-851C5B5EADA6}
|
||||
{326E9795-E760-410A-B69A-3F79DB3F5243} = {326E9795-E760-410A-B69A-3F79DB3F5243}
|
||||
{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942} = {8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}
|
||||
{FC0E1FD0-5DD7-4041-A1C9-CD3C376E4EED} = {FC0E1FD0-5DD7-4041-A1C9-CD3C376E4EED}
|
||||
{F54ABC59-5C00-414A-A9BA-BAF26D1699F0} = {F54ABC59-5C00-414A-A9BA-BAF26D1699F0}
|
||||
{EF5E94AB-B646-4E5B-A058-52EF07B8351C} = {EF5E94AB-B646-4E5B-A058-52EF07B8351C}
|
||||
{CD9CA56E-4E94-444C-87D4-58CA1E6F300D} = {CD9CA56E-4E94-444C-87D4-58CA1E6F300D}
|
||||
{C66B126D-0ECE-4CA2-B6DC-FA780AFBBF09} = {C66B126D-0ECE-4CA2-B6DC-FA780AFBBF09}
|
||||
{C564F145-9172-42C3-BFCB-6014CA97DBCD} = {C564F145-9172-42C3-BFCB-6014CA97DBCD}
|
||||
{C0334F9A-1168-4101-9DD8-C30FB252D435} = {C0334F9A-1168-4101-9DD8-C30FB252D435}
|
||||
{B55CA863-B374-4BAF-95AC-539E4FA4C90C} = {B55CA863-B374-4BAF-95AC-539E4FA4C90C}
|
||||
{AA8A5A85-592B-4357-BC60-E0E91E026AF6} = {AA8A5A85-592B-4357-BC60-E0E91E026AF6}
|
||||
{A508ADD3-CECE-4E0F-8448-2F5E454DF551} = {A508ADD3-CECE-4E0F-8448-2F5E454DF551}
|
||||
{8423AF0D-4B88-4EBF-94E1-E4D00D00E21C} = {8423AF0D-4B88-4EBF-94E1-E4D00D00E21C}
|
||||
{7100F41F-868D-4E99-80A2-AF8E6574749D} = {7100F41F-868D-4E99-80A2-AF8E6574749D}
|
||||
{5916D37D-8C97-424F-A904-74E52594C2D6} = {5916D37D-8C97-424F-A904-74E52594C2D6}
|
||||
{2A70CBF0-847E-4E3A-B926-542A656DC7FE} = {2A70CBF0-847E-4E3A-B926-542A656DC7FE}
|
||||
{5ECEC9E5-8F23-47B6-93E0-C3B328B3BE65} = {5ECEC9E5-8F23-47B6-93E0-C3B328B3BE65}
|
||||
{60B43839-95E6-4526-A661-209F16335E0E} = {60B43839-95E6-4526-A661-209F16335E0E}
|
||||
EndProjectSection
|
||||
EndProject
|
||||
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "V8", "V8", "{B353A6A5-9551-4B76-908E-0F0A9B31E4CE}"
|
||||
EndProject
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "googleurl", "..\googleurl\build\googleurl.vcproj", "{EF5E94AB-B646-4E5B-A058-52EF07B8351C}"
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "googleurl", "..\build\temp_gyp\googleurl.vcproj", "{EF5E94AB-B646-4E5B-A058-52EF07B8351C}"
|
||||
EndProject
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "modp_b64", "..\third_party\modp_b64\modp_b64.vcproj", "{7100F41F-868D-4E99-80A2-AF8E6574749D}"
|
||||
EndProject
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "activex_shim", "..\webkit\activex_shim\activex_shim.vcproj", "{F4F4BCAA-EA59-445C-A119-3E6C29647A51}"
|
||||
ProjectSection(ProjectDependencies) = postProject
|
||||
{8C27D792-2648-4F5E-9ED0-374276327308} = {8C27D792-2648-4F5E-9ED0-374276327308}
|
||||
{EF5E94AB-B646-4E5B-A058-52EF07B8351C} = {EF5E94AB-B646-4E5B-A058-52EF07B8351C}
|
||||
EndProjectSection
|
||||
EndProject
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "net", "..\net\net.vcproj", "{326E9795-E760-410A-B69A-3F79DB3F5243}"
|
||||
ProjectSection(ProjectDependencies) = postProject
|
||||
{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942} = {8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}
|
||||
{E13045CD-7E1F-4A41-9B18-8D288B2E7B41} = {E13045CD-7E1F-4A41-9B18-8D288B2E7B41}
|
||||
{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942} = {8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}
|
||||
EndProjectSection
|
||||
EndProject
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "base", "..\base\base.vcproj", "{1832A374-8A74-4F9E-B536-69A699B3E165}"
|
||||
ProjectSection(ProjectDependencies) = postProject
|
||||
{8C27D792-2648-4F5E-9ED0-374276327308} = {8C27D792-2648-4F5E-9ED0-374276327308}
|
||||
EndProjectSection
|
||||
EndProject
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "base_gfx", "..\base\base_gfx.vcproj", "{A508ADD3-CECE-4E0F-8448-2F5E454DF551}"
|
||||
EndProject
|
||||
@ -130,8 +111,8 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "default_plugin", "..\webkit
|
||||
EndProject
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "v8_snapshot", "..\v8\tools\visual_studio\v8_snapshot.vcproj", "{C0334F9A-1168-4101-9DD8-C30FB252D435}"
|
||||
ProjectSection(ProjectDependencies) = postProject
|
||||
{865575D0-37E2-405E-8CBA-5F6C485B5A26} = {865575D0-37E2-405E-8CBA-5F6C485B5A26}
|
||||
{0DDBDA8B-A49F-4CC7-A1D5-5BB8297C8A3F} = {0DDBDA8B-A49F-4CC7-A1D5-5BB8297C8A3F}
|
||||
{865575D0-37E2-405E-8CBA-5F6C485B5A26} = {865575D0-37E2-405E-8CBA-5F6C485B5A26}
|
||||
EndProjectSection
|
||||
EndProject
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "sdch", "..\sdch\sdch.vcproj", "{F54ABC59-5C00-414A-A9BA-BAF26D1699F0}"
|
||||
@ -142,9 +123,10 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Tools", "Tools", "{A507014E
|
||||
EndProject
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "tld_cleanup", "..\net\tld_cleanup.vcproj", "{E13045CD-7E1F-4A41-9B18-8D288B2E7B41}"
|
||||
ProjectSection(ProjectDependencies) = postProject
|
||||
{EF5E94AB-B646-4E5B-A058-52EF07B8351C} = {EF5E94AB-B646-4E5B-A058-52EF07B8351C}
|
||||
{8C27D792-2648-4F5E-9ED0-374276327308} = {8C27D792-2648-4F5E-9ED0-374276327308}
|
||||
{1832A374-8A74-4F9E-B536-69A699B3E165} = {1832A374-8A74-4F9E-B536-69A699B3E165}
|
||||
{EF5E94AB-B646-4E5B-A058-52EF07B8351C} = {EF5E94AB-B646-4E5B-A058-52EF07B8351C}
|
||||
{9E2EFAAB-02B7-4A82-B664-1E98DF6D1953} = {9E2EFAAB-02B7-4A82-B664-1E98DF6D1953}
|
||||
{14E7F2BB-B8FC-4DC1-B04D-31C06BDFA1D9} = {14E7F2BB-B8FC-4DC1-B04D-31C06BDFA1D9}
|
||||
EndProjectSection
|
||||
EndProject
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "v8_mksnapshot", "..\v8\tools\visual_studio\v8_mksnapshot.vcproj", "{865575D0-37E2-405E-8CBA-5F6C485B5A26}"
|
||||
@ -163,12 +145,10 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "webkit_strings", "..\webkit
|
||||
EndProject
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "cefclient", "tests\cefclient\cefclient.vcproj", "{6617FED9-C5D4-4907-BF55-A90062A6683F}"
|
||||
ProjectSection(ProjectDependencies) = postProject
|
||||
{A9D6DC71-C0DC-4549-AEA0-3B15B44E86A9} = {A9D6DC71-C0DC-4549-AEA0-3B15B44E86A9}
|
||||
{C13650D5-CF1A-4259-BE45-B1EBA6280E47} = {C13650D5-CF1A-4259-BE45-B1EBA6280E47}
|
||||
{A9D6DC71-C0DC-4549-AEA0-3B15B44E86A9} = {A9D6DC71-C0DC-4549-AEA0-3B15B44E86A9}
|
||||
EndProjectSection
|
||||
EndProject
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "icudt", "..\third_party\icu38\build\icudt.vcproj", "{A0D94973-D355-47A5-A1E2-3456F321F010}"
|
||||
EndProject
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "net_resources", "..\net\net_resources.vcproj", "{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}"
|
||||
EndProject
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "webkit_resources", "..\webkit\webkit_resources.vcproj", "{0B469837-3D46-484A-AFB3-C5A6C68730B9}"
|
||||
@ -180,38 +160,38 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "v8_snapshot_cc", "..\v8\too
|
||||
EndProject
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libcef_dll", "libcef_dll\libcef_dll.vcproj", "{C13650D5-CF1A-4259-BE45-B1EBA6280E47}"
|
||||
ProjectSection(ProjectDependencies) = postProject
|
||||
{6AE76406-B03B-11DD-94B1-80B556D89593} = {6AE76406-B03B-11DD-94B1-80B556D89593}
|
||||
{0B945915-31A7-4A07-A5B5-568D737A39B1} = {0B945915-31A7-4A07-A5B5-568D737A39B1}
|
||||
{EC8B7909-62AF-470D-A75D-E1D89C837142} = {EC8B7909-62AF-470D-A75D-E1D89C837142}
|
||||
{D7A94F58-576A-45D9-A45F-EB87C63ABBB0} = {D7A94F58-576A-45D9-A45F-EB87C63ABBB0}
|
||||
{8423AF0D-4B88-4EBF-94E1-E4D00D00E21C} = {8423AF0D-4B88-4EBF-94E1-E4D00D00E21C}
|
||||
{7100F41F-868D-4E99-80A2-AF8E6574749D} = {7100F41F-868D-4E99-80A2-AF8E6574749D}
|
||||
{0B469837-3D46-484A-AFB3-C5A6C68730B9} = {0B469837-3D46-484A-AFB3-C5A6C68730B9}
|
||||
{60B43839-95E6-4526-A661-209F16335E0E} = {60B43839-95E6-4526-A661-209F16335E0E}
|
||||
{C564F145-9172-42C3-BFCB-6014CA97DBCD} = {C564F145-9172-42C3-BFCB-6014CA97DBCD}
|
||||
{FA39524D-3067-4141-888D-28A86C66F2B9} = {FA39524D-3067-4141-888D-28A86C66F2B9}
|
||||
{F54ABC59-5C00-414A-A9BA-BAF26D1699F0} = {F54ABC59-5C00-414A-A9BA-BAF26D1699F0}
|
||||
{21E22961-22BF-4493-BD3A-868F93DA5179} = {21E22961-22BF-4493-BD3A-868F93DA5179}
|
||||
{B55CA863-B374-4BAF-95AC-539E4FA4C90C} = {B55CA863-B374-4BAF-95AC-539E4FA4C90C}
|
||||
{C66B126D-0ECE-4CA2-B6DC-FA780AFBBF09} = {C66B126D-0ECE-4CA2-B6DC-FA780AFBBF09}
|
||||
{CD9CA56E-4E94-444C-87D4-58CA1E6F300D} = {CD9CA56E-4E94-444C-87D4-58CA1E6F300D}
|
||||
{1832A374-8A74-4F9E-B536-69A699B3E165} = {1832A374-8A74-4F9E-B536-69A699B3E165}
|
||||
{238CE175-76CE-4A25-A676-69D115885601} = {238CE175-76CE-4A25-A676-69D115885601}
|
||||
{1C16337B-ACF3-4D03-AA90-851C5B5EADA6} = {1C16337B-ACF3-4D03-AA90-851C5B5EADA6}
|
||||
{5916D37D-8C97-424F-A904-74E52594C2D6} = {5916D37D-8C97-424F-A904-74E52594C2D6}
|
||||
{AA8A5A85-592B-4357-BC60-E0E91E026AF6} = {AA8A5A85-592B-4357-BC60-E0E91E026AF6}
|
||||
{8C27D792-2648-4F5E-9ED0-374276327308} = {8C27D792-2648-4F5E-9ED0-374276327308}
|
||||
{326E9795-E760-410A-B69A-3F79DB3F5243} = {326E9795-E760-410A-B69A-3F79DB3F5243}
|
||||
{C0334F9A-1168-4101-9DD8-C30FB252D435} = {C0334F9A-1168-4101-9DD8-C30FB252D435}
|
||||
{F4F4BCAA-EA59-445C-A119-3E6C29647A51} = {F4F4BCAA-EA59-445C-A119-3E6C29647A51}
|
||||
{EF5E94AB-B646-4E5B-A058-52EF07B8351C} = {EF5E94AB-B646-4E5B-A058-52EF07B8351C}
|
||||
{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942} = {8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}
|
||||
{FC0E1FD0-5DD7-4041-A1C9-CD3C376E4EED} = {FC0E1FD0-5DD7-4041-A1C9-CD3C376E4EED}
|
||||
{A508ADD3-CECE-4E0F-8448-2F5E454DF551} = {A508ADD3-CECE-4E0F-8448-2F5E454DF551}
|
||||
{2A70CBF0-847E-4E3A-B926-542A656DC7FE} = {2A70CBF0-847E-4E3A-B926-542A656DC7FE}
|
||||
{5ECEC9E5-8F23-47B6-93E0-C3B328B3BE65} = {5ECEC9E5-8F23-47B6-93E0-C3B328B3BE65}
|
||||
{49909552-0B0C-4C14-8CF6-DB8A2ADE0934} = {49909552-0B0C-4C14-8CF6-DB8A2ADE0934}
|
||||
{2A70CBF0-847E-4E3A-B926-542A656DC7FE} = {2A70CBF0-847E-4E3A-B926-542A656DC7FE}
|
||||
{A508ADD3-CECE-4E0F-8448-2F5E454DF551} = {A508ADD3-CECE-4E0F-8448-2F5E454DF551}
|
||||
{FC0E1FD0-5DD7-4041-A1C9-CD3C376E4EED} = {FC0E1FD0-5DD7-4041-A1C9-CD3C376E4EED}
|
||||
{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942} = {8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}
|
||||
{EF5E94AB-B646-4E5B-A058-52EF07B8351C} = {EF5E94AB-B646-4E5B-A058-52EF07B8351C}
|
||||
{C0334F9A-1168-4101-9DD8-C30FB252D435} = {C0334F9A-1168-4101-9DD8-C30FB252D435}
|
||||
{326E9795-E760-410A-B69A-3F79DB3F5243} = {326E9795-E760-410A-B69A-3F79DB3F5243}
|
||||
{AA8A5A85-592B-4357-BC60-E0E91E026AF6} = {AA8A5A85-592B-4357-BC60-E0E91E026AF6}
|
||||
{5916D37D-8C97-424F-A904-74E52594C2D6} = {5916D37D-8C97-424F-A904-74E52594C2D6}
|
||||
{1C16337B-ACF3-4D03-AA90-851C5B5EADA6} = {1C16337B-ACF3-4D03-AA90-851C5B5EADA6}
|
||||
{238CE175-76CE-4A25-A676-69D115885601} = {238CE175-76CE-4A25-A676-69D115885601}
|
||||
{1832A374-8A74-4F9E-B536-69A699B3E165} = {1832A374-8A74-4F9E-B536-69A699B3E165}
|
||||
{CD9CA56E-4E94-444C-87D4-58CA1E6F300D} = {CD9CA56E-4E94-444C-87D4-58CA1E6F300D}
|
||||
{C66B126D-0ECE-4CA2-B6DC-FA780AFBBF09} = {C66B126D-0ECE-4CA2-B6DC-FA780AFBBF09}
|
||||
{B55CA863-B374-4BAF-95AC-539E4FA4C90C} = {B55CA863-B374-4BAF-95AC-539E4FA4C90C}
|
||||
{21E22961-22BF-4493-BD3A-868F93DA5179} = {21E22961-22BF-4493-BD3A-868F93DA5179}
|
||||
{F54ABC59-5C00-414A-A9BA-BAF26D1699F0} = {F54ABC59-5C00-414A-A9BA-BAF26D1699F0}
|
||||
{FA39524D-3067-4141-888D-28A86C66F2B9} = {FA39524D-3067-4141-888D-28A86C66F2B9}
|
||||
{C564F145-9172-42C3-BFCB-6014CA97DBCD} = {C564F145-9172-42C3-BFCB-6014CA97DBCD}
|
||||
{60B43839-95E6-4526-A661-209F16335E0E} = {60B43839-95E6-4526-A661-209F16335E0E}
|
||||
{0B469837-3D46-484A-AFB3-C5A6C68730B9} = {0B469837-3D46-484A-AFB3-C5A6C68730B9}
|
||||
{7100F41F-868D-4E99-80A2-AF8E6574749D} = {7100F41F-868D-4E99-80A2-AF8E6574749D}
|
||||
{8423AF0D-4B88-4EBF-94E1-E4D00D00E21C} = {8423AF0D-4B88-4EBF-94E1-E4D00D00E21C}
|
||||
{D7A94F58-576A-45D9-A45F-EB87C63ABBB0} = {D7A94F58-576A-45D9-A45F-EB87C63ABBB0}
|
||||
{EC8B7909-62AF-470D-A75D-E1D89C837142} = {EC8B7909-62AF-470D-A75D-E1D89C837142}
|
||||
{0B945915-31A7-4A07-A5B5-568D737A39B1} = {0B945915-31A7-4A07-A5B5-568D737A39B1}
|
||||
{6AE76406-B03B-11DD-94B1-80B556D89593} = {6AE76406-B03B-11DD-94B1-80B556D89593}
|
||||
{14E7F2BB-B8FC-4DC1-B04D-31C06BDFA1D9} = {14E7F2BB-B8FC-4DC1-B04D-31C06BDFA1D9}
|
||||
{9E5416B9-B91B-4029-93F4-102C1AD5CAF4} = {9E5416B9-B91B-4029-93F4-102C1AD5CAF4}
|
||||
{9E2EFAAB-02B7-4A82-B664-1E98DF6D1953} = {9E2EFAAB-02B7-4A82-B664-1E98DF6D1953}
|
||||
{49909552-0B0C-4C14-8CF6-DB8A2ADE0934} = {49909552-0B0C-4C14-8CF6-DB8A2ADE0934}
|
||||
EndProjectSection
|
||||
EndProject
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libcef_dll_wrapper", "libcef_dll\wrapper\libcef_dll_wrapper.vcproj", "{A9D6DC71-C0DC-4549-AEA0-3B15B44E86A9}"
|
||||
@ -221,8 +201,8 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libcef_dll_wrapper", "libce
|
||||
EndProject
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "webkit", "..\webkit\WebKit.vcproj", "{5ECEC9E5-8F23-47B6-93E0-C3B328B3BE65}"
|
||||
ProjectSection(ProjectDependencies) = postProject
|
||||
{2E2D3301-2EC4-4C0F-B889-87073B30F673} = {2E2D3301-2EC4-4C0F-B889-87073B30F673}
|
||||
{1C16337B-ACF3-4D03-AA90-851C5B5EADA6} = {1C16337B-ACF3-4D03-AA90-851C5B5EADA6}
|
||||
{2E2D3301-2EC4-4C0F-B889-87073B30F673} = {2E2D3301-2EC4-4C0F-B889-87073B30F673}
|
||||
EndProjectSection
|
||||
EndProject
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "config", "..\webkit\config.vcproj", "{2E2D3301-2EC4-4C0F-B889-87073B30F673}"
|
||||
@ -254,6 +234,15 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "patch", "patch\patch.vcproj
|
||||
EndProject
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "appcache", "..\webkit\appcache.vcproj", "{0B945915-31A7-4A07-A5B5-568D737A39B1}"
|
||||
EndProject
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "icudata", "..\third_party\icu\icudata.vcproj", "{D3A97815-3309-44F8-B9BB-CBBE2393A454}"
|
||||
EndProject
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "icui18n", "..\third_party\icu\icui18n.vcproj", "{14E7F2BB-B8FC-4DC1-B04D-31C06BDFA1D9}"
|
||||
EndProject
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "icuuc", "..\third_party\icu\icuuc.vcproj", "{9E2EFAAB-02B7-4A82-B664-1E98DF6D1953}"
|
||||
ProjectSection(ProjectDependencies) = postProject
|
||||
{D3A97815-3309-44F8-B9BB-CBBE2393A454} = {D3A97815-3309-44F8-B9BB-CBBE2393A454}
|
||||
EndProjectSection
|
||||
EndProject
|
||||
Global
|
||||
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
||||
Debug|Mixed Platforms = Debug|Mixed Platforms
|
||||
@ -346,22 +335,6 @@ Global
|
||||
{6EAD4A4B-2BBC-4974-8E45-BB5C16CC2AC9}.Release|Mixed Platforms.Build.0 = Release|Win32
|
||||
{6EAD4A4B-2BBC-4974-8E45-BB5C16CC2AC9}.Release|Win32.ActiveCfg = Release|Win32
|
||||
{6EAD4A4B-2BBC-4974-8E45-BB5C16CC2AC9}.Release|Win32.Build.0 = Release|Win32
|
||||
{8C27D792-2648-4F5E-9ED0-374276327308}.Debug|Mixed Platforms.ActiveCfg = Debug|Win32
|
||||
{8C27D792-2648-4F5E-9ED0-374276327308}.Debug|Mixed Platforms.Build.0 = Debug|Win32
|
||||
{8C27D792-2648-4F5E-9ED0-374276327308}.Debug|Win32.ActiveCfg = Debug|Win32
|
||||
{8C27D792-2648-4F5E-9ED0-374276327308}.Debug|Win32.Build.0 = Debug|Win32
|
||||
{8C27D792-2648-4F5E-9ED0-374276327308}.Purify|Mixed Platforms.ActiveCfg = Release|Win32
|
||||
{8C27D792-2648-4F5E-9ED0-374276327308}.Purify|Mixed Platforms.Build.0 = Release|Win32
|
||||
{8C27D792-2648-4F5E-9ED0-374276327308}.Purify|Win32.ActiveCfg = Release|Win32
|
||||
{8C27D792-2648-4F5E-9ED0-374276327308}.Purify|Win32.Build.0 = Release|Win32
|
||||
{8C27D792-2648-4F5E-9ED0-374276327308}.Release - no tcmalloc|Mixed Platforms.ActiveCfg = Release|Win32
|
||||
{8C27D792-2648-4F5E-9ED0-374276327308}.Release - no tcmalloc|Mixed Platforms.Build.0 = Release|Win32
|
||||
{8C27D792-2648-4F5E-9ED0-374276327308}.Release - no tcmalloc|Win32.ActiveCfg = Release|Win32
|
||||
{8C27D792-2648-4F5E-9ED0-374276327308}.Release - no tcmalloc|Win32.Build.0 = Release|Win32
|
||||
{8C27D792-2648-4F5E-9ED0-374276327308}.Release|Mixed Platforms.ActiveCfg = Release|Win32
|
||||
{8C27D792-2648-4F5E-9ED0-374276327308}.Release|Mixed Platforms.Build.0 = Release|Win32
|
||||
{8C27D792-2648-4F5E-9ED0-374276327308}.Release|Win32.ActiveCfg = Release|Win32
|
||||
{8C27D792-2648-4F5E-9ED0-374276327308}.Release|Win32.Build.0 = Release|Win32
|
||||
{C564F145-9172-42C3-BFCB-6014CA97DBCD}.Debug|Mixed Platforms.ActiveCfg = Debug|Win32
|
||||
{C564F145-9172-42C3-BFCB-6014CA97DBCD}.Debug|Mixed Platforms.Build.0 = Debug|Win32
|
||||
{C564F145-9172-42C3-BFCB-6014CA97DBCD}.Debug|Win32.ActiveCfg = Debug|Win32
|
||||
@ -521,22 +494,6 @@ Global
|
||||
{7100F41F-868D-4E99-80A2-AF8E6574749D}.Release|Mixed Platforms.Build.0 = Release|Win32
|
||||
{7100F41F-868D-4E99-80A2-AF8E6574749D}.Release|Win32.ActiveCfg = Release|Win32
|
||||
{7100F41F-868D-4E99-80A2-AF8E6574749D}.Release|Win32.Build.0 = Release|Win32
|
||||
{F4F4BCAA-EA59-445C-A119-3E6C29647A51}.Debug|Mixed Platforms.ActiveCfg = Debug|Win32
|
||||
{F4F4BCAA-EA59-445C-A119-3E6C29647A51}.Debug|Mixed Platforms.Build.0 = Debug|Win32
|
||||
{F4F4BCAA-EA59-445C-A119-3E6C29647A51}.Debug|Win32.ActiveCfg = Debug|Win32
|
||||
{F4F4BCAA-EA59-445C-A119-3E6C29647A51}.Debug|Win32.Build.0 = Debug|Win32
|
||||
{F4F4BCAA-EA59-445C-A119-3E6C29647A51}.Purify|Mixed Platforms.ActiveCfg = Purify|Win32
|
||||
{F4F4BCAA-EA59-445C-A119-3E6C29647A51}.Purify|Mixed Platforms.Build.0 = Purify|Win32
|
||||
{F4F4BCAA-EA59-445C-A119-3E6C29647A51}.Purify|Win32.ActiveCfg = Purify|Win32
|
||||
{F4F4BCAA-EA59-445C-A119-3E6C29647A51}.Purify|Win32.Build.0 = Purify|Win32
|
||||
{F4F4BCAA-EA59-445C-A119-3E6C29647A51}.Release - no tcmalloc|Mixed Platforms.ActiveCfg = Release - no tcmalloc|Win32
|
||||
{F4F4BCAA-EA59-445C-A119-3E6C29647A51}.Release - no tcmalloc|Mixed Platforms.Build.0 = Release - no tcmalloc|Win32
|
||||
{F4F4BCAA-EA59-445C-A119-3E6C29647A51}.Release - no tcmalloc|Win32.ActiveCfg = Release - no tcmalloc|Win32
|
||||
{F4F4BCAA-EA59-445C-A119-3E6C29647A51}.Release - no tcmalloc|Win32.Build.0 = Release - no tcmalloc|Win32
|
||||
{F4F4BCAA-EA59-445C-A119-3E6C29647A51}.Release|Mixed Platforms.ActiveCfg = Release|Win32
|
||||
{F4F4BCAA-EA59-445C-A119-3E6C29647A51}.Release|Mixed Platforms.Build.0 = Release|Win32
|
||||
{F4F4BCAA-EA59-445C-A119-3E6C29647A51}.Release|Win32.ActiveCfg = Release|Win32
|
||||
{F4F4BCAA-EA59-445C-A119-3E6C29647A51}.Release|Win32.Build.0 = Release|Win32
|
||||
{326E9795-E760-410A-B69A-3F79DB3F5243}.Debug|Mixed Platforms.ActiveCfg = Debug|Win32
|
||||
{326E9795-E760-410A-B69A-3F79DB3F5243}.Debug|Mixed Platforms.Build.0 = Debug|Win32
|
||||
{326E9795-E760-410A-B69A-3F79DB3F5243}.Debug|Win32.ActiveCfg = Debug|Win32
|
||||
@ -729,22 +686,6 @@ Global
|
||||
{6617FED9-C5D4-4907-BF55-A90062A6683F}.Release|Mixed Platforms.Build.0 = Release|Win32
|
||||
{6617FED9-C5D4-4907-BF55-A90062A6683F}.Release|Win32.ActiveCfg = Release|Win32
|
||||
{6617FED9-C5D4-4907-BF55-A90062A6683F}.Release|Win32.Build.0 = Release|Win32
|
||||
{A0D94973-D355-47A5-A1E2-3456F321F010}.Debug|Mixed Platforms.ActiveCfg = Debug|Win32
|
||||
{A0D94973-D355-47A5-A1E2-3456F321F010}.Debug|Mixed Platforms.Build.0 = Debug|Win32
|
||||
{A0D94973-D355-47A5-A1E2-3456F321F010}.Debug|Win32.ActiveCfg = Debug|Win32
|
||||
{A0D94973-D355-47A5-A1E2-3456F321F010}.Debug|Win32.Build.0 = Debug|Win32
|
||||
{A0D94973-D355-47A5-A1E2-3456F321F010}.Purify|Mixed Platforms.ActiveCfg = Release|Win32
|
||||
{A0D94973-D355-47A5-A1E2-3456F321F010}.Purify|Mixed Platforms.Build.0 = Release|Win32
|
||||
{A0D94973-D355-47A5-A1E2-3456F321F010}.Purify|Win32.ActiveCfg = Release|Win32
|
||||
{A0D94973-D355-47A5-A1E2-3456F321F010}.Purify|Win32.Build.0 = Release|Win32
|
||||
{A0D94973-D355-47A5-A1E2-3456F321F010}.Release - no tcmalloc|Mixed Platforms.ActiveCfg = Release|Win32
|
||||
{A0D94973-D355-47A5-A1E2-3456F321F010}.Release - no tcmalloc|Mixed Platforms.Build.0 = Release|Win32
|
||||
{A0D94973-D355-47A5-A1E2-3456F321F010}.Release - no tcmalloc|Win32.ActiveCfg = Release|Win32
|
||||
{A0D94973-D355-47A5-A1E2-3456F321F010}.Release - no tcmalloc|Win32.Build.0 = Release|Win32
|
||||
{A0D94973-D355-47A5-A1E2-3456F321F010}.Release|Mixed Platforms.ActiveCfg = Release|Win32
|
||||
{A0D94973-D355-47A5-A1E2-3456F321F010}.Release|Mixed Platforms.Build.0 = Release|Win32
|
||||
{A0D94973-D355-47A5-A1E2-3456F321F010}.Release|Win32.ActiveCfg = Release|Win32
|
||||
{A0D94973-D355-47A5-A1E2-3456F321F010}.Release|Win32.Build.0 = Release|Win32
|
||||
{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}.Debug|Mixed Platforms.ActiveCfg = Debug|Win32
|
||||
{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}.Debug|Mixed Platforms.Build.0 = Debug|Win32
|
||||
{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}.Debug|Win32.ActiveCfg = Debug|Win32
|
||||
@ -985,6 +926,54 @@ Global
|
||||
{0B945915-31A7-4A07-A5B5-568D737A39B1}.Release|Mixed Platforms.Build.0 = Release|Win32
|
||||
{0B945915-31A7-4A07-A5B5-568D737A39B1}.Release|Win32.ActiveCfg = Release|Win32
|
||||
{0B945915-31A7-4A07-A5B5-568D737A39B1}.Release|Win32.Build.0 = Release|Win32
|
||||
{D3A97815-3309-44F8-B9BB-CBBE2393A454}.Debug|Mixed Platforms.ActiveCfg = Debug|Win32
|
||||
{D3A97815-3309-44F8-B9BB-CBBE2393A454}.Debug|Mixed Platforms.Build.0 = Debug|Win32
|
||||
{D3A97815-3309-44F8-B9BB-CBBE2393A454}.Debug|Win32.ActiveCfg = Debug|Win32
|
||||
{D3A97815-3309-44F8-B9BB-CBBE2393A454}.Debug|Win32.Build.0 = Debug|Win32
|
||||
{D3A97815-3309-44F8-B9BB-CBBE2393A454}.Purify|Mixed Platforms.ActiveCfg = Purify|Win32
|
||||
{D3A97815-3309-44F8-B9BB-CBBE2393A454}.Purify|Mixed Platforms.Build.0 = Purify|Win32
|
||||
{D3A97815-3309-44F8-B9BB-CBBE2393A454}.Purify|Win32.ActiveCfg = Purify|Win32
|
||||
{D3A97815-3309-44F8-B9BB-CBBE2393A454}.Purify|Win32.Build.0 = Purify|Win32
|
||||
{D3A97815-3309-44F8-B9BB-CBBE2393A454}.Release - no tcmalloc|Mixed Platforms.ActiveCfg = Release - no tcmalloc|Win32
|
||||
{D3A97815-3309-44F8-B9BB-CBBE2393A454}.Release - no tcmalloc|Mixed Platforms.Build.0 = Release - no tcmalloc|Win32
|
||||
{D3A97815-3309-44F8-B9BB-CBBE2393A454}.Release - no tcmalloc|Win32.ActiveCfg = Release - no tcmalloc|Win32
|
||||
{D3A97815-3309-44F8-B9BB-CBBE2393A454}.Release - no tcmalloc|Win32.Build.0 = Release - no tcmalloc|Win32
|
||||
{D3A97815-3309-44F8-B9BB-CBBE2393A454}.Release|Mixed Platforms.ActiveCfg = Release|Win32
|
||||
{D3A97815-3309-44F8-B9BB-CBBE2393A454}.Release|Mixed Platforms.Build.0 = Release|Win32
|
||||
{D3A97815-3309-44F8-B9BB-CBBE2393A454}.Release|Win32.ActiveCfg = Release|Win32
|
||||
{D3A97815-3309-44F8-B9BB-CBBE2393A454}.Release|Win32.Build.0 = Release|Win32
|
||||
{14E7F2BB-B8FC-4DC1-B04D-31C06BDFA1D9}.Debug|Mixed Platforms.ActiveCfg = Debug|Win32
|
||||
{14E7F2BB-B8FC-4DC1-B04D-31C06BDFA1D9}.Debug|Mixed Platforms.Build.0 = Debug|Win32
|
||||
{14E7F2BB-B8FC-4DC1-B04D-31C06BDFA1D9}.Debug|Win32.ActiveCfg = Debug|Win32
|
||||
{14E7F2BB-B8FC-4DC1-B04D-31C06BDFA1D9}.Debug|Win32.Build.0 = Debug|Win32
|
||||
{14E7F2BB-B8FC-4DC1-B04D-31C06BDFA1D9}.Purify|Mixed Platforms.ActiveCfg = Purify|Win32
|
||||
{14E7F2BB-B8FC-4DC1-B04D-31C06BDFA1D9}.Purify|Mixed Platforms.Build.0 = Purify|Win32
|
||||
{14E7F2BB-B8FC-4DC1-B04D-31C06BDFA1D9}.Purify|Win32.ActiveCfg = Purify|Win32
|
||||
{14E7F2BB-B8FC-4DC1-B04D-31C06BDFA1D9}.Purify|Win32.Build.0 = Purify|Win32
|
||||
{14E7F2BB-B8FC-4DC1-B04D-31C06BDFA1D9}.Release - no tcmalloc|Mixed Platforms.ActiveCfg = Release - no tcmalloc|Win32
|
||||
{14E7F2BB-B8FC-4DC1-B04D-31C06BDFA1D9}.Release - no tcmalloc|Mixed Platforms.Build.0 = Release - no tcmalloc|Win32
|
||||
{14E7F2BB-B8FC-4DC1-B04D-31C06BDFA1D9}.Release - no tcmalloc|Win32.ActiveCfg = Release - no tcmalloc|Win32
|
||||
{14E7F2BB-B8FC-4DC1-B04D-31C06BDFA1D9}.Release - no tcmalloc|Win32.Build.0 = Release - no tcmalloc|Win32
|
||||
{14E7F2BB-B8FC-4DC1-B04D-31C06BDFA1D9}.Release|Mixed Platforms.ActiveCfg = Release|Win32
|
||||
{14E7F2BB-B8FC-4DC1-B04D-31C06BDFA1D9}.Release|Mixed Platforms.Build.0 = Release|Win32
|
||||
{14E7F2BB-B8FC-4DC1-B04D-31C06BDFA1D9}.Release|Win32.ActiveCfg = Release|Win32
|
||||
{14E7F2BB-B8FC-4DC1-B04D-31C06BDFA1D9}.Release|Win32.Build.0 = Release|Win32
|
||||
{9E2EFAAB-02B7-4A82-B664-1E98DF6D1953}.Debug|Mixed Platforms.ActiveCfg = Debug|Win32
|
||||
{9E2EFAAB-02B7-4A82-B664-1E98DF6D1953}.Debug|Mixed Platforms.Build.0 = Debug|Win32
|
||||
{9E2EFAAB-02B7-4A82-B664-1E98DF6D1953}.Debug|Win32.ActiveCfg = Debug|Win32
|
||||
{9E2EFAAB-02B7-4A82-B664-1E98DF6D1953}.Debug|Win32.Build.0 = Debug|Win32
|
||||
{9E2EFAAB-02B7-4A82-B664-1E98DF6D1953}.Purify|Mixed Platforms.ActiveCfg = Purify|Win32
|
||||
{9E2EFAAB-02B7-4A82-B664-1E98DF6D1953}.Purify|Mixed Platforms.Build.0 = Purify|Win32
|
||||
{9E2EFAAB-02B7-4A82-B664-1E98DF6D1953}.Purify|Win32.ActiveCfg = Purify|Win32
|
||||
{9E2EFAAB-02B7-4A82-B664-1E98DF6D1953}.Purify|Win32.Build.0 = Purify|Win32
|
||||
{9E2EFAAB-02B7-4A82-B664-1E98DF6D1953}.Release - no tcmalloc|Mixed Platforms.ActiveCfg = Release - no tcmalloc|Win32
|
||||
{9E2EFAAB-02B7-4A82-B664-1E98DF6D1953}.Release - no tcmalloc|Mixed Platforms.Build.0 = Release - no tcmalloc|Win32
|
||||
{9E2EFAAB-02B7-4A82-B664-1E98DF6D1953}.Release - no tcmalloc|Win32.ActiveCfg = Release - no tcmalloc|Win32
|
||||
{9E2EFAAB-02B7-4A82-B664-1E98DF6D1953}.Release - no tcmalloc|Win32.Build.0 = Release - no tcmalloc|Win32
|
||||
{9E2EFAAB-02B7-4A82-B664-1E98DF6D1953}.Release|Mixed Platforms.ActiveCfg = Release|Win32
|
||||
{9E2EFAAB-02B7-4A82-B664-1E98DF6D1953}.Release|Mixed Platforms.Build.0 = Release|Win32
|
||||
{9E2EFAAB-02B7-4A82-B664-1E98DF6D1953}.Release|Win32.ActiveCfg = Release|Win32
|
||||
{9E2EFAAB-02B7-4A82-B664-1E98DF6D1953}.Release|Win32.Build.0 = Release|Win32
|
||||
EndGlobalSection
|
||||
GlobalSection(SolutionProperties) = preSolution
|
||||
HideSolutionNode = FALSE
|
||||
@ -995,7 +984,6 @@ Global
|
||||
{5ECEC9E5-8F23-47B6-93E0-C3B328B3BE65} = {1088577A-0C49-4DE0-85CD-B68AD0BE55AA}
|
||||
{49909552-0B0C-4C14-8CF6-DB8A2ADE0934} = {1088577A-0C49-4DE0-85CD-B68AD0BE55AA}
|
||||
{C66B126D-0ECE-4CA2-B6DC-FA780AFBBF09} = {CB43561E-A6F8-49E2-96A2-3F2BA1FFF21E}
|
||||
{F4F4BCAA-EA59-445C-A119-3E6C29647A51} = {CB43561E-A6F8-49E2-96A2-3F2BA1FFF21E}
|
||||
{5916D37D-8C97-424F-A904-74E52594C2D6} = {CB43561E-A6F8-49E2-96A2-3F2BA1FFF21E}
|
||||
{60B43839-95E6-4526-A661-209F16335E0E} = {CB43561E-A6F8-49E2-96A2-3F2BA1FFF21E}
|
||||
{0B469837-3D46-484A-AFB3-C5A6C68730B9} = {CB43561E-A6F8-49E2-96A2-3F2BA1FFF21E}
|
||||
@ -1020,8 +1008,9 @@ Global
|
||||
{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942} = {EF78C1F9-AA17-4CA5-B6CB-39B37A73A3DA}
|
||||
{9E5416B9-B91B-4029-93F4-102C1AD5CAF4} = {EF78C1F9-AA17-4CA5-B6CB-39B37A73A3DA}
|
||||
{963C8C1D-059E-49C6-881E-5BE6919113FC} = {EF78C1F9-AA17-4CA5-B6CB-39B37A73A3DA}
|
||||
{8C27D792-2648-4F5E-9ED0-374276327308} = {1AFC1EC3-24FA-4260-B099-76319EC9977A}
|
||||
{A0D94973-D355-47A5-A1E2-3456F321F010} = {1AFC1EC3-24FA-4260-B099-76319EC9977A}
|
||||
{D3A97815-3309-44F8-B9BB-CBBE2393A454} = {1AFC1EC3-24FA-4260-B099-76319EC9977A}
|
||||
{14E7F2BB-B8FC-4DC1-B04D-31C06BDFA1D9} = {1AFC1EC3-24FA-4260-B099-76319EC9977A}
|
||||
{9E2EFAAB-02B7-4A82-B664-1E98DF6D1953} = {1AFC1EC3-24FA-4260-B099-76319EC9977A}
|
||||
{B55CA863-B374-4BAF-95AC-539E4FA4C90C} = {873D095E-150E-4262-8C41-2D8ED02F0F57}
|
||||
{FA39524D-3067-4141-888D-28A86C66F2B9} = {08BAF606-555E-4048-A47E-22CFA89A21B4}
|
||||
{6617FED9-C5D4-4907-BF55-A90062A6683F} = {08BAF606-555E-4048-A47E-22CFA89A21B4}
|
||||
|
325
libcef/browser_appcache_system.cc
Normal file
325
libcef/browser_appcache_system.cc
Normal file
@ -0,0 +1,325 @@
|
||||
// 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 "precompiled_libcef.h"
|
||||
#include "browser_appcache_system.h"
|
||||
|
||||
#include "base/lock.h"
|
||||
#include "base/task.h"
|
||||
#include "base/waitable_event.h"
|
||||
#include "webkit/appcache/appcache_interceptor.h"
|
||||
#include "webkit/appcache/web_application_cache_host_impl.h"
|
||||
#include "browser_resource_loader_bridge.h"
|
||||
|
||||
using WebKit::WebApplicationCacheHost;
|
||||
using WebKit::WebApplicationCacheHostClient;
|
||||
using appcache::WebApplicationCacheHostImpl;
|
||||
using appcache::AppCacheBackendImpl;
|
||||
using appcache::AppCacheInterceptor;
|
||||
|
||||
|
||||
// BrowserFrontendProxy --------------------------------------------------------
|
||||
// Proxies method calls from the backend IO thread to the frontend UI thread.
|
||||
|
||||
class BrowserFrontendProxy
|
||||
: public base::RefCountedThreadSafe<BrowserFrontendProxy>,
|
||||
public appcache::AppCacheFrontend {
|
||||
public:
|
||||
explicit BrowserFrontendProxy(BrowserAppCacheSystem* appcache_system)
|
||||
: system_(appcache_system) {
|
||||
}
|
||||
|
||||
void clear_appcache_system() { system_ = NULL; }
|
||||
|
||||
virtual void OnCacheSelected(int host_id, int64 cache_id ,
|
||||
appcache::Status status) {
|
||||
if (!system_)
|
||||
return;
|
||||
if (system_->is_io_thread())
|
||||
system_->ui_message_loop()->PostTask(FROM_HERE, NewRunnableMethod(
|
||||
this, &BrowserFrontendProxy::OnCacheSelected,
|
||||
host_id, cache_id, status));
|
||||
else if (system_->is_ui_thread())
|
||||
system_->frontend_impl_.OnCacheSelected(host_id, cache_id, status);
|
||||
else
|
||||
NOTREACHED();
|
||||
}
|
||||
|
||||
virtual void OnStatusChanged(const std::vector<int>& host_ids,
|
||||
appcache::Status status) {
|
||||
if (!system_)
|
||||
return;
|
||||
if (system_->is_io_thread())
|
||||
system_->ui_message_loop()->PostTask(FROM_HERE, NewRunnableMethod(
|
||||
this, &BrowserFrontendProxy::OnStatusChanged, host_ids, status));
|
||||
else if (system_->is_ui_thread())
|
||||
system_->frontend_impl_.OnStatusChanged(host_ids, status);
|
||||
else
|
||||
NOTREACHED();
|
||||
}
|
||||
|
||||
virtual void OnEventRaised(const std::vector<int>& host_ids,
|
||||
appcache::EventID event_id) {
|
||||
if (!system_)
|
||||
return;
|
||||
if (system_->is_io_thread())
|
||||
system_->ui_message_loop()->PostTask(FROM_HERE, NewRunnableMethod(
|
||||
this, &BrowserFrontendProxy::OnEventRaised, host_ids, event_id));
|
||||
else if (system_->is_ui_thread())
|
||||
system_->frontend_impl_.OnEventRaised(host_ids, event_id);
|
||||
else
|
||||
NOTREACHED();
|
||||
}
|
||||
|
||||
private:
|
||||
BrowserAppCacheSystem* system_;
|
||||
};
|
||||
|
||||
|
||||
// BrowserBackendProxy --------------------------------------------------------
|
||||
// Proxies method calls from the frontend UI thread to the backend IO thread.
|
||||
|
||||
class BrowserBackendProxy
|
||||
: public base::RefCountedThreadSafe<BrowserBackendProxy>,
|
||||
public appcache::AppCacheBackend {
|
||||
public:
|
||||
explicit BrowserBackendProxy(BrowserAppCacheSystem* appcache_system)
|
||||
: system_(appcache_system), event_(true, false) {
|
||||
get_status_callback_.reset(
|
||||
NewCallback(this, &BrowserBackendProxy::GetStatusCallback));
|
||||
start_update_callback_.reset(
|
||||
NewCallback(this, &BrowserBackendProxy::StartUpdateCallback));
|
||||
swap_cache_callback_.reset(
|
||||
NewCallback(this, &BrowserBackendProxy::SwapCacheCallback));
|
||||
}
|
||||
|
||||
virtual void RegisterHost(int host_id) {
|
||||
if (system_->is_ui_thread()) {
|
||||
system_->io_message_loop()->PostTask(FROM_HERE, NewRunnableMethod(
|
||||
this, &BrowserBackendProxy::RegisterHost, host_id));
|
||||
} else if (system_->is_io_thread()) {
|
||||
system_->backend_impl_->RegisterHost(host_id);
|
||||
} else {
|
||||
NOTREACHED();
|
||||
}
|
||||
}
|
||||
|
||||
virtual void UnregisterHost(int host_id) {
|
||||
if (system_->is_ui_thread()) {
|
||||
system_->io_message_loop()->PostTask(FROM_HERE, NewRunnableMethod(
|
||||
this, &BrowserBackendProxy::UnregisterHost, host_id));
|
||||
} else if (system_->is_io_thread()) {
|
||||
system_->backend_impl_->UnregisterHost(host_id);
|
||||
} else {
|
||||
NOTREACHED();
|
||||
}
|
||||
}
|
||||
|
||||
virtual void SelectCache(int host_id,
|
||||
const GURL& document_url,
|
||||
const int64 cache_document_was_loaded_from,
|
||||
const GURL& manifest_url) {
|
||||
if (system_->is_ui_thread()) {
|
||||
system_->io_message_loop()->PostTask(FROM_HERE, NewRunnableMethod(
|
||||
this, &BrowserBackendProxy::SelectCache, host_id, document_url,
|
||||
cache_document_was_loaded_from, manifest_url));
|
||||
} else if (system_->is_io_thread()) {
|
||||
system_->backend_impl_->SelectCache(host_id, document_url,
|
||||
cache_document_was_loaded_from,
|
||||
manifest_url);
|
||||
} else {
|
||||
NOTREACHED();
|
||||
}
|
||||
}
|
||||
|
||||
virtual void MarkAsForeignEntry(int host_id, const GURL& document_url,
|
||||
int64 cache_document_was_loaded_from) {
|
||||
if (system_->is_ui_thread()) {
|
||||
system_->io_message_loop()->PostTask(FROM_HERE, NewRunnableMethod(
|
||||
this, &BrowserBackendProxy::MarkAsForeignEntry, host_id, document_url,
|
||||
cache_document_was_loaded_from));
|
||||
} else if (system_->is_io_thread()) {
|
||||
system_->backend_impl_->MarkAsForeignEntry(
|
||||
host_id, document_url,
|
||||
cache_document_was_loaded_from);
|
||||
} else {
|
||||
NOTREACHED();
|
||||
}
|
||||
}
|
||||
|
||||
virtual appcache::Status GetStatus(int host_id) {
|
||||
if (system_->is_ui_thread()) {
|
||||
status_result_ = appcache::UNCACHED;
|
||||
event_.Reset();
|
||||
system_->io_message_loop()->PostTask(FROM_HERE, NewRunnableMethod(
|
||||
this, &BrowserBackendProxy::GetStatus, host_id));
|
||||
event_.Wait();
|
||||
} else if (system_->is_io_thread()) {
|
||||
system_->backend_impl_->GetStatusWithCallback(
|
||||
host_id, get_status_callback_.get(), NULL);
|
||||
} else {
|
||||
NOTREACHED();
|
||||
}
|
||||
return status_result_;
|
||||
}
|
||||
|
||||
virtual bool StartUpdate(int host_id) {
|
||||
if (system_->is_ui_thread()) {
|
||||
bool_result_ = false;
|
||||
event_.Reset();
|
||||
system_->io_message_loop()->PostTask(FROM_HERE, NewRunnableMethod(
|
||||
this, &BrowserBackendProxy::StartUpdate, host_id));
|
||||
event_.Wait();
|
||||
} else if (system_->is_io_thread()) {
|
||||
system_->backend_impl_->StartUpdateWithCallback(
|
||||
host_id, start_update_callback_.get(), NULL);
|
||||
} else {
|
||||
NOTREACHED();
|
||||
}
|
||||
return bool_result_;
|
||||
}
|
||||
|
||||
virtual bool SwapCache(int host_id) {
|
||||
if (system_->is_ui_thread()) {
|
||||
bool_result_ = false;
|
||||
event_.Reset();
|
||||
system_->io_message_loop()->PostTask(FROM_HERE, NewRunnableMethod(
|
||||
this, &BrowserBackendProxy::SwapCache, host_id));
|
||||
event_.Wait();
|
||||
} else if (system_->is_io_thread()) {
|
||||
system_->backend_impl_->SwapCacheWithCallback(
|
||||
host_id, swap_cache_callback_.get(), NULL);
|
||||
} else {
|
||||
NOTREACHED();
|
||||
}
|
||||
return bool_result_;
|
||||
}
|
||||
|
||||
void GetStatusCallback(appcache::Status status, void* param) {
|
||||
status_result_ = status;
|
||||
event_.Signal();
|
||||
}
|
||||
|
||||
void StartUpdateCallback(bool result, void* param) {
|
||||
bool_result_ = result;
|
||||
event_.Signal();
|
||||
}
|
||||
|
||||
void SwapCacheCallback(bool result, void* param) {
|
||||
bool_result_ = result;
|
||||
event_.Signal();
|
||||
}
|
||||
|
||||
void SignalEvent() {
|
||||
event_.Signal();
|
||||
}
|
||||
|
||||
private:
|
||||
BrowserAppCacheSystem* system_;
|
||||
base::WaitableEvent event_;
|
||||
bool bool_result_;
|
||||
appcache::Status status_result_;
|
||||
scoped_ptr<appcache::GetStatusCallback> get_status_callback_;
|
||||
scoped_ptr<appcache::StartUpdateCallback> start_update_callback_;
|
||||
scoped_ptr<appcache::SwapCacheCallback> swap_cache_callback_;
|
||||
};
|
||||
|
||||
|
||||
// BrowserAppCacheSystem --------------------------------------------------------
|
||||
|
||||
// This class only works for a single process browser.
|
||||
static const int kSingleProcessId = 1;
|
||||
|
||||
// A not so thread safe singleton, but should work for test_shell.
|
||||
BrowserAppCacheSystem* BrowserAppCacheSystem::instance_ = NULL;
|
||||
|
||||
BrowserAppCacheSystem::BrowserAppCacheSystem()
|
||||
: io_message_loop_(NULL), ui_message_loop_(NULL),
|
||||
ALLOW_THIS_IN_INITIALIZER_LIST(
|
||||
backend_proxy_(new BrowserBackendProxy(this))),
|
||||
ALLOW_THIS_IN_INITIALIZER_LIST(
|
||||
frontend_proxy_(new BrowserFrontendProxy(this))),
|
||||
backend_impl_(NULL), service_(NULL) {
|
||||
DCHECK(!instance_);
|
||||
instance_ = this;
|
||||
}
|
||||
|
||||
BrowserAppCacheSystem::~BrowserAppCacheSystem() {
|
||||
DCHECK(!io_message_loop_ && !backend_impl_ && !service_);
|
||||
frontend_proxy_->clear_appcache_system(); // in case a task is in transit
|
||||
instance_ = NULL;
|
||||
}
|
||||
|
||||
void BrowserAppCacheSystem::InitOnUIThread(
|
||||
const FilePath& cache_directory) {
|
||||
DCHECK(!ui_message_loop_);
|
||||
DCHECK(!cache_directory.empty());
|
||||
ui_message_loop_ = MessageLoop::current();
|
||||
cache_directory_ = cache_directory;
|
||||
}
|
||||
|
||||
void BrowserAppCacheSystem::InitOnIOThread(URLRequestContext* request_context) {
|
||||
if (!is_initailized_on_ui_thread())
|
||||
return;
|
||||
|
||||
DCHECK(!io_message_loop_);
|
||||
io_message_loop_ = MessageLoop::current();
|
||||
io_message_loop_->AddDestructionObserver(this);
|
||||
|
||||
// Recreate and initialize per each IO thread.
|
||||
service_ = new appcache::AppCacheService();
|
||||
backend_impl_ = new appcache::AppCacheBackendImpl();
|
||||
service_->Initialize(cache_directory_);
|
||||
service_->set_request_context(request_context);
|
||||
backend_impl_->Initialize(service_, frontend_proxy_.get(), kSingleProcessId);
|
||||
|
||||
AppCacheInterceptor::EnsureRegistered();
|
||||
}
|
||||
|
||||
WebApplicationCacheHost* BrowserAppCacheSystem::CreateCacheHostForWebKit(
|
||||
WebApplicationCacheHostClient* client) {
|
||||
if (!is_initailized_on_ui_thread())
|
||||
return NULL;
|
||||
|
||||
DCHECK(is_ui_thread());
|
||||
|
||||
// The IO thread needs to be running for this system to work.
|
||||
BrowserResourceLoaderBridge::EnsureIOThread();
|
||||
|
||||
if (!is_initialized())
|
||||
return NULL;
|
||||
return new WebApplicationCacheHostImpl(client, backend_proxy_.get());
|
||||
}
|
||||
|
||||
void BrowserAppCacheSystem::SetExtraRequestBits(
|
||||
URLRequest* request, int host_id, ResourceType::Type resource_type) {
|
||||
if (is_initialized()) {
|
||||
DCHECK(is_io_thread());
|
||||
AppCacheInterceptor::SetExtraRequestInfo(
|
||||
request, service_, kSingleProcessId, host_id, resource_type);
|
||||
}
|
||||
}
|
||||
|
||||
void BrowserAppCacheSystem::GetExtraResponseBits(
|
||||
URLRequest* request, int64* cache_id, GURL* manifest_url) {
|
||||
if (is_initialized()) {
|
||||
DCHECK(is_io_thread());
|
||||
AppCacheInterceptor::GetExtraResponseInfo(
|
||||
request, cache_id, manifest_url);
|
||||
}
|
||||
}
|
||||
|
||||
void BrowserAppCacheSystem::WillDestroyCurrentMessageLoop() {
|
||||
DCHECK(is_io_thread());
|
||||
DCHECK(backend_impl_->hosts().empty());
|
||||
|
||||
io_message_loop_ = NULL;
|
||||
delete backend_impl_;
|
||||
delete service_;
|
||||
backend_impl_ = NULL;
|
||||
service_ = NULL;
|
||||
|
||||
// Just in case the main thread is waiting on it.
|
||||
backend_proxy_->SignalEvent();
|
||||
}
|
@ -5,21 +5,118 @@
|
||||
#ifndef _BROWSER_APPCACHE_SYSTEM_H
|
||||
#define _BROWSER_APPCACHE_SYSTEM_H
|
||||
|
||||
#include "base/file_path.h"
|
||||
#include "base/message_loop.h"
|
||||
#include "webkit/appcache/appcache_backend_impl.h"
|
||||
#include "webkit/appcache/appcache_frontend_impl.h"
|
||||
#include "webkit/appcache/appcache_service.h"
|
||||
#include "webkit/glue/resource_type.h"
|
||||
|
||||
class BrowserAppCacheSystem {
|
||||
namespace WebKit {
|
||||
class WebApplicationCacheHost;
|
||||
class WebApplicationCacheHostClient;
|
||||
}
|
||||
class BrowserBackendProxy;
|
||||
class BrowserFrontendProxy;
|
||||
class URLRequest;
|
||||
class URLRequestContext;
|
||||
|
||||
// A class that composes the constituent parts of an appcache system
|
||||
// together for use in a single process with two relavant threads,
|
||||
// a UI thread on which webkit runs and an IO thread on which URLRequests
|
||||
// are handled. This class conspires with BrowserResourceLoaderBridge to
|
||||
// retrieve resources from the appcache.
|
||||
class BrowserAppCacheSystem : public MessageLoop::DestructionObserver {
|
||||
public:
|
||||
void Initialize() {
|
||||
backend_impl_.Initialize(NULL, &frontend_impl_);
|
||||
// Should be instanced somewhere in main(). If not instanced, the public
|
||||
// static methods are all safe no-ops.
|
||||
BrowserAppCacheSystem();
|
||||
virtual ~BrowserAppCacheSystem();
|
||||
|
||||
// One-time main UI thread initialization.
|
||||
static void InitializeOnUIThread(const FilePath& cache_directory) {
|
||||
if (instance_)
|
||||
instance_->InitOnUIThread(cache_directory);
|
||||
}
|
||||
|
||||
appcache::AppCacheBackend* backend() { return &backend_impl_; }
|
||||
appcache::AppCacheFrontend* frontend() { return &frontend_impl_; }
|
||||
// Called by BrowserResourceLoaderBridge's IOThread class.
|
||||
// Per IO thread initialization. Only one IO thread can exist
|
||||
// at a time, but after IO thread termination a new one can be
|
||||
// started on which this method should be called. The instance
|
||||
// is assumed to outlive the IO thread.
|
||||
static void InitializeOnIOThread(URLRequestContext* request_context) {
|
||||
if (instance_)
|
||||
instance_->InitOnIOThread(request_context);
|
||||
}
|
||||
|
||||
// Called by TestShellWebKitInit to manufacture a 'host' for webcore.
|
||||
static WebKit::WebApplicationCacheHost* CreateApplicationCacheHost(
|
||||
WebKit::WebApplicationCacheHostClient* client) {
|
||||
return instance_ ? instance_->CreateCacheHostForWebKit(client) : NULL;
|
||||
}
|
||||
|
||||
// Called by BrowserResourceLoaderBridge to hook into resource loads.
|
||||
static void SetExtraRequestInfo(URLRequest* request,
|
||||
int host_id,
|
||||
ResourceType::Type resource_type) {
|
||||
if (instance_)
|
||||
instance_->SetExtraRequestBits(request, host_id, resource_type);
|
||||
}
|
||||
|
||||
// Called by BrowserResourceLoaderBridge extract extra response bits.
|
||||
static void GetExtraResponseInfo(URLRequest* request,
|
||||
int64* cache_id,
|
||||
GURL* manifest_url) {
|
||||
if (instance_)
|
||||
instance_->GetExtraResponseBits(request, cache_id, manifest_url);
|
||||
}
|
||||
|
||||
private:
|
||||
appcache::AppCacheBackendImpl backend_impl_;
|
||||
friend class BrowserBackendProxy;
|
||||
friend class BrowserFrontendProxy;
|
||||
|
||||
// A low-tech singleton.
|
||||
static BrowserAppCacheSystem* instance_;
|
||||
|
||||
// Instance methods called by our static public methods
|
||||
void InitOnUIThread(const FilePath& cache_directory);
|
||||
void InitOnIOThread(URLRequestContext* request_context);
|
||||
WebKit::WebApplicationCacheHost* CreateCacheHostForWebKit(
|
||||
WebKit::WebApplicationCacheHostClient* client);
|
||||
void SetExtraRequestBits(URLRequest* request,
|
||||
int host_id,
|
||||
ResourceType::Type resource_type);
|
||||
void GetExtraResponseBits(URLRequest* request,
|
||||
int64* cache_id,
|
||||
GURL* manifest_url);
|
||||
|
||||
// Helpers
|
||||
MessageLoop* io_message_loop() { return io_message_loop_; }
|
||||
MessageLoop* ui_message_loop() { return ui_message_loop_; }
|
||||
bool is_io_thread() { return MessageLoop::current() == io_message_loop_; }
|
||||
bool is_ui_thread() { return MessageLoop::current() == ui_message_loop_; }
|
||||
bool is_initialized() {
|
||||
return io_message_loop_ && is_initailized_on_ui_thread();
|
||||
}
|
||||
bool is_initailized_on_ui_thread() {
|
||||
return ui_message_loop_ && !cache_directory_.empty();
|
||||
}
|
||||
|
||||
// IOThread DestructionObserver
|
||||
virtual void WillDestroyCurrentMessageLoop();
|
||||
|
||||
FilePath cache_directory_;
|
||||
MessageLoop* io_message_loop_;
|
||||
MessageLoop* ui_message_loop_;
|
||||
scoped_refptr<BrowserBackendProxy> backend_proxy_;
|
||||
scoped_refptr<BrowserFrontendProxy> frontend_proxy_;
|
||||
appcache::AppCacheFrontendImpl frontend_impl_;
|
||||
|
||||
// Created and used only on the IO thread, these do
|
||||
// not survive IO thread termination. If a new IO thread
|
||||
// is started new instances will be created.
|
||||
appcache::AppCacheBackendImpl* backend_impl_;
|
||||
appcache::AppCacheService* service_;
|
||||
};
|
||||
|
||||
#endif // _BROWSER_APPCACHE_SYSTEM_H
|
||||
|
@ -38,7 +38,8 @@ void BrowserDragDelegate::OnDragSourceDrop() {
|
||||
gfx::Point client;
|
||||
gfx::Point screen;
|
||||
GetCursorPositions(source_hwnd_, &client, &screen);
|
||||
webview_->DragSourceEndedAt(client, screen);
|
||||
webview_->DragSourceEndedAt(client, screen, WebKit::WebDragOperationCopy);
|
||||
// TODO(snej): Pass the real drag operation instead
|
||||
}
|
||||
|
||||
void BrowserDragDelegate::OnDragSourceMove() {
|
||||
|
@ -11,6 +11,8 @@
|
||||
#include "webkit/glue/webdropdata.h"
|
||||
#include "webkit/glue/webview.h"
|
||||
|
||||
using WebKit::WebDragOperation;
|
||||
using WebKit::WebDragOperationCopy;
|
||||
using WebKit::WebPoint;
|
||||
|
||||
// BaseDropTarget methods ----------------------------------------------------
|
||||
@ -24,11 +26,14 @@ DWORD BrowserDropDelegate::OnDragEnter(IDataObject* data_object,
|
||||
|
||||
POINT client_pt = cursor_position;
|
||||
ScreenToClient(GetHWND(), &client_pt);
|
||||
bool valid = 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));
|
||||
return valid ? DROPEFFECT_COPY : DROPEFFECT_NONE;
|
||||
WebPoint(cursor_position.x, cursor_position.y),
|
||||
WebDragOperationCopy);
|
||||
// TODO(snej): Pass the real drag operation instead
|
||||
return op ? DROPEFFECT_COPY : DROPEFFECT_NONE;
|
||||
// TODO(snej): Return the real drop effect constant matching 'op'
|
||||
}
|
||||
|
||||
DWORD BrowserDropDelegate::OnDragOver(IDataObject* data_object,
|
||||
@ -37,10 +42,13 @@ DWORD BrowserDropDelegate::OnDragOver(IDataObject* data_object,
|
||||
DWORD effect) {
|
||||
POINT client_pt = cursor_position;
|
||||
ScreenToClient(GetHWND(), &client_pt);
|
||||
bool valid = webview_->DragTargetDragOver(
|
||||
WebDragOperation op = webview_->DragTargetDragOver(
|
||||
WebPoint(client_pt.x, client_pt.y),
|
||||
WebPoint(cursor_position.x, cursor_position.y));
|
||||
return valid ? DROPEFFECT_COPY : DROPEFFECT_NONE;
|
||||
WebPoint(cursor_position.x, cursor_position.y),
|
||||
WebDragOperationCopy);
|
||||
// TODO(snej): Pass the real drag operation instead
|
||||
return op ? DROPEFFECT_COPY : DROPEFFECT_NONE;
|
||||
// TODO(snej): Return the real drop effect constant matching 'op'
|
||||
}
|
||||
|
||||
void BrowserDropDelegate::OnDragLeave(IDataObject* data_object) {
|
||||
|
@ -177,7 +177,7 @@ public:
|
||||
void UIT_SetFocus(WebWidgetHost* host, bool enable);
|
||||
|
||||
CefRefPtr<CefBrowserImpl> UIT_CreatePopupWindow(const std::wstring& url);
|
||||
WebKit::WebWidget* UIT_CreatePopupWidget(WebView* webview);
|
||||
WebKit::WebWidget* UIT_CreatePopupWidget();
|
||||
void UIT_ClosePopupWidget();
|
||||
|
||||
void UIT_Show(WebKit::WebNavigationPolicy policy);
|
||||
|
@ -263,7 +263,6 @@ void CefBrowserImpl::UIT_CreateBrowser(const std::wstring& url)
|
||||
webviewhost_.reset(
|
||||
WebViewHost::Create(window_info_.m_hWnd, delegate_.get(),
|
||||
*_Context->GetWebPreferences()));
|
||||
GetWebView()->SetUseEditorDelegate(true);
|
||||
delegate_->RegisterDragDrop();
|
||||
|
||||
// Size the web view window to the browser window
|
||||
@ -294,7 +293,7 @@ void CefBrowserImpl::UIT_SetFocus(WebWidgetHost* host, bool enable)
|
||||
::SetFocus(NULL);
|
||||
}
|
||||
|
||||
WebKit::WebWidget* CefBrowserImpl::UIT_CreatePopupWidget(WebView* webview)
|
||||
WebKit::WebWidget* CefBrowserImpl::UIT_CreatePopupWidget()
|
||||
{
|
||||
REQUIRE_UIT();
|
||||
|
||||
|
@ -39,7 +39,7 @@ void BrowserRequestContext::Init(
|
||||
net::ProxyConfig proxy_config;
|
||||
host_resolver_ = net::CreateSystemHostResolver();
|
||||
proxy_service_ = net::ProxyService::Create(no_proxy ? &proxy_config : NULL,
|
||||
false, NULL, NULL);
|
||||
false, NULL, NULL, NULL);
|
||||
ssl_config_service_ = net::SSLConfigService::CreateSystemSSLConfigService();
|
||||
|
||||
net::HttpCache *cache;
|
||||
@ -57,7 +57,6 @@ void BrowserRequestContext::Init(
|
||||
}
|
||||
|
||||
BrowserRequestContext::~BrowserRequestContext() {
|
||||
delete cookie_store_;
|
||||
delete ftp_transaction_factory_;
|
||||
delete http_transaction_factory_;
|
||||
}
|
||||
|
@ -32,6 +32,7 @@
|
||||
// alternate implementation that defers fetching to another process.
|
||||
|
||||
#include "precompiled_libcef.h"
|
||||
#include "browser_appcache_system.h"
|
||||
#include "browser_resource_loader_bridge.h"
|
||||
#include "browser_request_context.h"
|
||||
#include "browser_impl.h"
|
||||
@ -44,6 +45,7 @@
|
||||
#include "base/timer.h"
|
||||
#include "base/thread.h"
|
||||
#include "base/waitable_event.h"
|
||||
#include "net/base/cookie_policy.h"
|
||||
#include "net/base/io_buffer.h"
|
||||
#include "net/base/load_flags.h"
|
||||
#include "net/base/net_errors.h"
|
||||
@ -59,6 +61,7 @@
|
||||
#include "webkit/glue/webview.h"
|
||||
|
||||
using webkit_glue::ResourceLoaderBridge;
|
||||
using net::CookiePolicy;
|
||||
using net::HttpResponseHeaders;
|
||||
|
||||
namespace {
|
||||
@ -79,6 +82,10 @@ class IOThread : public base::Thread {
|
||||
Stop();
|
||||
}
|
||||
|
||||
virtual void Init() {
|
||||
BrowserAppCacheSystem::InitializeOnIOThread(request_context);
|
||||
}
|
||||
|
||||
virtual void CleanUp() {
|
||||
if (request_context) {
|
||||
request_context->Release();
|
||||
@ -87,19 +94,6 @@ class IOThread : public base::Thread {
|
||||
}
|
||||
};
|
||||
|
||||
bool EnsureIOThread() {
|
||||
if (io_thread)
|
||||
return true;
|
||||
|
||||
if (!request_context)
|
||||
BrowserResourceLoaderBridge::Init(NULL);
|
||||
|
||||
io_thread = new IOThread();
|
||||
base::Thread::Options options;
|
||||
options.message_loop_type = MessageLoop::TYPE_IO;
|
||||
return io_thread->StartWithOptions(options);
|
||||
}
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
|
||||
struct RequestParams {
|
||||
@ -109,6 +103,7 @@ struct RequestParams {
|
||||
GURL referrer;
|
||||
std::string headers;
|
||||
int load_flags;
|
||||
ResourceType::Type request_type;
|
||||
int appcache_host_id;
|
||||
scoped_refptr<net::UploadData> upload;
|
||||
};
|
||||
@ -293,6 +288,9 @@ class RequestProxy : public URLRequest::Delegate,
|
||||
request_->set_load_flags(params->load_flags);
|
||||
request_->set_upload(params->upload.get());
|
||||
request_->set_context(request_context);
|
||||
BrowserAppCacheSystem::SetExtraRequestInfo(
|
||||
request_.get(), params->appcache_host_id, params->request_type);
|
||||
|
||||
request_->Start();
|
||||
|
||||
if (request_->has_upload() &&
|
||||
@ -406,6 +404,13 @@ class RequestProxy : public URLRequest::Delegate,
|
||||
}
|
||||
}
|
||||
|
||||
virtual void OnSSLCertificateError(URLRequest* request,
|
||||
int cert_error,
|
||||
net::X509Certificate* cert) {
|
||||
// Allow all certificate errors.
|
||||
request->ContinueDespiteLastError();
|
||||
}
|
||||
|
||||
virtual void OnReadCompleted(URLRequest* request, int bytes_read) {
|
||||
if (request->status().is_success() && bytes_read > 0) {
|
||||
OnReceivedData(bytes_read);
|
||||
@ -475,11 +480,13 @@ class RequestProxy : public URLRequest::Delegate,
|
||||
info->request_time = request->request_time();
|
||||
info->response_time = request->response_time();
|
||||
info->headers = request->response_headers();
|
||||
info->appcache_id = appcache::kNoCacheId;
|
||||
// TODO(michaeln): info->appcache_manifest_url = GURL();
|
||||
request->GetMimeType(&info->mime_type);
|
||||
request->GetCharset(&info->charset);
|
||||
info->content_length = request->GetExpectedContentSize();
|
||||
BrowserAppCacheSystem::GetExtraResponseInfo(
|
||||
request,
|
||||
&info->appcache_id,
|
||||
&info->appcache_manifest_url);
|
||||
}
|
||||
|
||||
scoped_ptr<URLRequest> request_;
|
||||
@ -573,6 +580,7 @@ class ResourceLoaderBridgeImpl : public ResourceLoaderBridge {
|
||||
const GURL& referrer,
|
||||
const std::string& headers,
|
||||
int load_flags,
|
||||
ResourceType::Type request_type,
|
||||
int appcache_host_id)
|
||||
: browser_(browser),
|
||||
params_(new RequestParams),
|
||||
@ -583,6 +591,7 @@ class ResourceLoaderBridgeImpl : public ResourceLoaderBridge {
|
||||
params_->referrer = referrer;
|
||||
params_->headers = headers;
|
||||
params_->load_flags = load_flags;
|
||||
params_->request_type = request_type;
|
||||
params_->appcache_host_id = appcache_host_id;
|
||||
}
|
||||
|
||||
@ -622,7 +631,7 @@ class ResourceLoaderBridgeImpl : public ResourceLoaderBridge {
|
||||
virtual bool Start(Peer* peer) {
|
||||
DCHECK(!proxy_);
|
||||
|
||||
if (!EnsureIOThread())
|
||||
if (!BrowserResourceLoaderBridge::EnsureIOThread())
|
||||
return false;
|
||||
|
||||
proxy_ = new RequestProxy(browser_);
|
||||
@ -645,7 +654,7 @@ class ResourceLoaderBridgeImpl : public ResourceLoaderBridge {
|
||||
virtual void SyncLoad(SyncLoadResponse* response) {
|
||||
DCHECK(!proxy_);
|
||||
|
||||
if (!EnsureIOThread())
|
||||
if (!BrowserResourceLoaderBridge::EnsureIOThread())
|
||||
return;
|
||||
|
||||
// this may change as the result of a redirect
|
||||
@ -725,7 +734,7 @@ ResourceLoaderBridge* ResourceLoaderBridge::Create(
|
||||
return new ResourceLoaderBridgeImpl(browser, method, url,
|
||||
first_party_for_cookies,
|
||||
referrer, headers, load_flags,
|
||||
appcache_host_id);
|
||||
request_type, appcache_host_id);
|
||||
}
|
||||
|
||||
// Issue the proxy resolve request on the io thread, and wait
|
||||
@ -762,6 +771,7 @@ void BrowserResourceLoaderBridge::Init(URLRequestContext* context) {
|
||||
request_context = new BrowserRequestContext();
|
||||
}
|
||||
request_context->AddRef();
|
||||
BrowserResourceLoaderBridge::SetAcceptAllCookies(false);
|
||||
}
|
||||
|
||||
// static
|
||||
@ -774,6 +784,7 @@ void BrowserResourceLoaderBridge::Shutdown() {
|
||||
}
|
||||
}
|
||||
|
||||
// static
|
||||
void BrowserResourceLoaderBridge::SetCookie(const GURL& url,
|
||||
const GURL& first_party_for_cookies,
|
||||
const std::string& cookie) {
|
||||
@ -789,6 +800,7 @@ void BrowserResourceLoaderBridge::SetCookie(const GURL& url,
|
||||
cookie_setter.get(), &CookieSetter::Set, url, cookie));
|
||||
}
|
||||
|
||||
// static
|
||||
std::string BrowserResourceLoaderBridge::GetCookies(
|
||||
const GURL& url, const GURL& first_party_for_cookies) {
|
||||
// Proxy to IO thread to synchronize w/ network loading
|
||||
@ -805,3 +817,24 @@ std::string BrowserResourceLoaderBridge::GetCookies(
|
||||
|
||||
return getter->GetResult();
|
||||
}
|
||||
|
||||
// static
|
||||
bool BrowserResourceLoaderBridge::EnsureIOThread() {
|
||||
if (io_thread)
|
||||
return true;
|
||||
|
||||
if (!request_context)
|
||||
BrowserResourceLoaderBridge::Init(NULL);
|
||||
|
||||
io_thread = new IOThread();
|
||||
base::Thread::Options options;
|
||||
options.message_loop_type = MessageLoop::TYPE_IO;
|
||||
return io_thread->StartWithOptions(options);
|
||||
}
|
||||
|
||||
// static
|
||||
void BrowserResourceLoaderBridge::SetAcceptAllCookies(bool accept_all_cookies) {
|
||||
CookiePolicy::Type policy_type = accept_all_cookies ?
|
||||
CookiePolicy::ALLOW_ALL_COOKIES : CookiePolicy::BLOCK_THIRD_PARTY_COOKIES;
|
||||
request_context->cookie_policy()->set_type(policy_type);
|
||||
}
|
||||
|
@ -34,6 +34,8 @@ class BrowserResourceLoaderBridge {
|
||||
const std::string& cookie);
|
||||
static std::string GetCookies(const GURL& url,
|
||||
const GURL& first_party_for_cookies);
|
||||
static bool EnsureIOThread();
|
||||
static void SetAcceptAllCookies(bool accept_all_cookies);
|
||||
};
|
||||
|
||||
#endif // _BROWSER_RESOURCE_LOADER_BRIDGE_H
|
||||
|
@ -42,19 +42,20 @@ void AppendToLog(const char* file, int line, const char* msg) {
|
||||
logging::LogMessage(file, line).stream() << msg;
|
||||
}
|
||||
|
||||
StringPiece GetRawDataResource(HMODULE module, int resource_id) {
|
||||
base::StringPiece GetRawDataResource(HMODULE module, int resource_id) {
|
||||
void* data_ptr;
|
||||
size_t data_size;
|
||||
return base::GetDataResourceFromModule(module, resource_id, &data_ptr,
|
||||
&data_size) ?
|
||||
StringPiece(static_cast<char*>(data_ptr), data_size) : StringPiece();
|
||||
&data_size)
|
||||
? base::StringPiece(static_cast<char*>(data_ptr), data_size)
|
||||
: base::StringPiece();
|
||||
}
|
||||
|
||||
StringPiece NetResourceProvider(int key) {
|
||||
base::StringPiece NetResourceProvider(int key) {
|
||||
return GetRawDataResource(::GetModuleHandle(NULL), key);
|
||||
}
|
||||
|
||||
StringPiece GetDataResource(int resource_id) {
|
||||
base::StringPiece GetDataResource(int resource_id) {
|
||||
switch (resource_id) {
|
||||
case IDR_BROKENIMAGE: {
|
||||
// Use webkit's broken image icon (16x16)
|
||||
@ -91,8 +92,8 @@ StringPiece GetDataResource(int resource_id) {
|
||||
0x07, 0x0E, 0xC7, 0x4C, 0xCF, 0x49, 0xCD, 0xD2, 0xD3, 0xD4, 0xD2, 0x41,
|
||||
0x00, 0x3B
|
||||
};
|
||||
return StringPiece(reinterpret_cast<char*>(broken_image_data),
|
||||
static_cast<StringPiece::size_type>(
|
||||
return base::StringPiece(reinterpret_cast<char*>(broken_image_data),
|
||||
static_cast<base::StringPiece::size_type>(
|
||||
sizeof(broken_image_data) / sizeof(unsigned char)));
|
||||
}
|
||||
case IDR_FEED_PREVIEW:
|
||||
@ -122,8 +123,8 @@ StringPiece GetDataResource(int resource_id) {
|
||||
0x57, 0x6B, 0xB3, 0x00, 0x00, 0x00, 0x00, 0x49, 0x45, 0x4E, 0x44, 0xAE,
|
||||
0x42, 0x60, 0x82
|
||||
};
|
||||
return StringPiece(reinterpret_cast<char*>(area_resizer_data),
|
||||
static_cast<StringPiece::size_type>(
|
||||
return base::StringPiece(reinterpret_cast<char*>(area_resizer_data),
|
||||
static_cast<base::StringPiece::size_type>(
|
||||
sizeof(area_resizer_data) / sizeof(unsigned char)));
|
||||
}
|
||||
case IDR_SEARCH_CANCEL:
|
||||
@ -143,10 +144,10 @@ StringPiece GetDataResource(int resource_id) {
|
||||
break;
|
||||
}
|
||||
|
||||
return StringPiece();
|
||||
return base::StringPiece();
|
||||
}
|
||||
|
||||
bool GetApplicationDirectory(std::wstring *path) {
|
||||
bool GetApplicationDirectory(FilePath* path) {
|
||||
return PathService::Get(base::DIR_EXE, path);
|
||||
}
|
||||
|
||||
@ -158,18 +159,10 @@ std::string GetUIResourceProtocol() {
|
||||
return "cef-resource";
|
||||
}
|
||||
|
||||
bool GetExeDirectory(std::wstring *path) {
|
||||
bool GetExeDirectory(FilePath* path) {
|
||||
return PathService::Get(base::DIR_EXE, path);
|
||||
}
|
||||
|
||||
bool SpellCheckWord(const wchar_t* word, int word_len,
|
||||
int* misspelling_start, int* misspelling_len) {
|
||||
// Report all words being correctly spelled.
|
||||
*misspelling_start = 0;
|
||||
*misspelling_len = 0;
|
||||
return true;
|
||||
}
|
||||
|
||||
bool IsPluginRunningInRendererProcess() {
|
||||
return true;
|
||||
}
|
||||
|
@ -30,7 +30,7 @@ BOOL SaveBitmapToFile(HBITMAP hBmp, HDC hDC, LPCTSTR file, LPBYTE lpBits);
|
||||
void InitializeTextEncoding();
|
||||
|
||||
// This is called indirectly by the network layer to access resources.
|
||||
StringPiece NetResourceProvider(int key);
|
||||
base::StringPiece NetResourceProvider(int key);
|
||||
|
||||
// Retrieve the V8 context associated with the frame.
|
||||
v8::Handle<v8::Context> GetV8Context(WebKit::WebFrame* frame);
|
||||
|
@ -8,6 +8,7 @@
|
||||
|
||||
#include "base/file_util.h"
|
||||
#include "base/path_service.h"
|
||||
#include "base/scoped_temp_dir.h"
|
||||
#include "base/stats_counters.h"
|
||||
#include "base/string_util.h"
|
||||
#include "media/base/media.h"
|
||||
@ -31,7 +32,7 @@
|
||||
|
||||
class BrowserWebKitInit : public webkit_glue::WebKitClientImpl {
|
||||
public:
|
||||
BrowserWebKitInit() {
|
||||
explicit BrowserWebKitInit() {
|
||||
v8::V8::SetCounterFunction(StatsTable::FindLocation);
|
||||
|
||||
WebKit::initialize(this);
|
||||
@ -42,7 +43,6 @@ class BrowserWebKitInit : public webkit_glue::WebKitClientImpl {
|
||||
ASCIIToUTF16(webkit_glue::GetUIResourceProtocol()));
|
||||
WebKit::registerExtension(extensions_v8::GearsExtension::Get());
|
||||
WebKit::registerExtension(extensions_v8::IntervalExtension::Get());
|
||||
appcache_system_.Initialize();
|
||||
|
||||
// Load libraries for media and enable the media player.
|
||||
FilePath module_path;
|
||||
@ -50,6 +50,12 @@ class BrowserWebKitInit : public webkit_glue::WebKitClientImpl {
|
||||
media::InitializeMediaLibrary(module_path)) {
|
||||
WebKit::enableMediaPlayer();
|
||||
}
|
||||
|
||||
// Construct and initialize an appcache system for this scope.
|
||||
// A new empty temp directory is created to house any cached
|
||||
// content during the run. Upon exit that directory is deleted.
|
||||
if (appcache_dir_.CreateUniqueTempDir())
|
||||
BrowserAppCacheSystem::InitializeOnUIThread(appcache_dir_.path());
|
||||
}
|
||||
|
||||
~BrowserWebKitInit() {
|
||||
@ -72,13 +78,15 @@ class BrowserWebKitInit : public webkit_glue::WebKitClientImpl {
|
||||
return false;
|
||||
}
|
||||
|
||||
virtual bool getFileSize(const WebKit::WebString& path, long long& result) {
|
||||
virtual bool getFileSize(const WebKit::WebString& path,
|
||||
long long& result) {
|
||||
return file_util::GetFileSize(
|
||||
FilePath(webkit_glue::WebStringToFilePathString(path)),
|
||||
reinterpret_cast<int64*>(&result));
|
||||
}
|
||||
|
||||
virtual unsigned long long visitedLinkHash(const char* canonicalURL, size_t length) {
|
||||
virtual unsigned long long visitedLinkHash(const char* canonicalURL,
|
||||
size_t length) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
@ -142,13 +150,13 @@ class BrowserWebKitInit : public webkit_glue::WebKitClientImpl {
|
||||
|
||||
virtual WebKit::WebApplicationCacheHost* createApplicationCacheHost(
|
||||
WebKit::WebApplicationCacheHostClient* client) {
|
||||
return new appcache::WebApplicationCacheHostImpl(
|
||||
client, appcache_system_.backend());
|
||||
return BrowserAppCacheSystem::CreateApplicationCacheHost(client);
|
||||
}
|
||||
|
||||
private:
|
||||
webkit_glue::SimpleWebMimeRegistryImpl mime_registry_;
|
||||
webkit_glue::WebClipboardImpl clipboard_;
|
||||
ScopedTempDir appcache_dir_;
|
||||
BrowserAppCacheSystem appcache_system_;
|
||||
};
|
||||
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -19,8 +19,12 @@
|
||||
#endif
|
||||
|
||||
#include "base/basictypes.h"
|
||||
#include "base/linked_ptr.h"
|
||||
#include "base/scoped_ptr.h"
|
||||
#include "base/weak_ptr.h"
|
||||
#include "webkit/api/public/WebEditingClient.h"
|
||||
#include "webkit/api/public/WebFrameClient.h"
|
||||
#include "webkit/glue/webcursor.h"
|
||||
#include "webkit/glue/webplugin_page_delegate.h"
|
||||
#include "webkit/glue/webview_delegate.h"
|
||||
#if defined(OS_WIN)
|
||||
#include "browser_drag_delegate.h"
|
||||
@ -34,50 +38,13 @@ struct WebPreferences;
|
||||
class GURL;
|
||||
class WebWidgetHost;
|
||||
|
||||
class BrowserWebViewDelegate : public WebViewDelegate {
|
||||
class BrowserWebViewDelegate : public WebViewDelegate,
|
||||
public WebKit::WebEditingClient,
|
||||
public WebKit::WebFrameClient,
|
||||
public webkit_glue::WebPluginPageDelegate,
|
||||
public base::SupportsWeakPtr<BrowserWebViewDelegate> {
|
||||
public:
|
||||
BrowserWebViewDelegate(CefBrowserImpl* browser);
|
||||
virtual ~BrowserWebViewDelegate() {}
|
||||
|
||||
void Reset();
|
||||
|
||||
// WebViewDelegate
|
||||
virtual WebView* CreateWebView(WebView* webview,
|
||||
bool user_gesture,
|
||||
const GURL& creator_url);
|
||||
virtual WebKit::WebWidget* CreatePopupWidget(
|
||||
WebView* webview,
|
||||
bool activatable);
|
||||
virtual WebPluginDelegate* CreatePluginDelegate(
|
||||
WebView* webview,
|
||||
const GURL& url,
|
||||
const std::string& mime_type,
|
||||
const std::string& clsid,
|
||||
std::string* actual_mime_type);
|
||||
virtual WebKit::WebMediaPlayer* CreateWebMediaPlayer(
|
||||
WebKit::WebMediaPlayerClient* client);
|
||||
virtual WebKit::WebWorker* CreateWebWorker(WebKit::WebWorkerClient* client);
|
||||
virtual void OpenURL(WebView* webview,
|
||||
const GURL& url,
|
||||
const GURL& referrer,
|
||||
WebKit::WebNavigationPolicy policy);
|
||||
virtual void DidMovePlugin(const WebPluginGeometry& move);
|
||||
virtual void RunJavaScriptAlert(WebKit::WebFrame* webframe,
|
||||
const std::wstring& message);
|
||||
virtual bool RunJavaScriptConfirm(WebKit::WebFrame* webframe,
|
||||
const std::wstring& message);
|
||||
virtual bool RunJavaScriptPrompt(WebKit::WebFrame* webframe,
|
||||
const std::wstring& message,
|
||||
const std::wstring& default_value,
|
||||
std::wstring* result);
|
||||
virtual void SetStatusbarText(WebView* webview,
|
||||
const std::wstring& message);
|
||||
virtual void AddMessageToConsole(WebView* webview,
|
||||
const std::wstring& message,
|
||||
unsigned int line_no,
|
||||
const std::wstring& source_id);
|
||||
virtual void StartDragging(WebView* webview,
|
||||
const WebKit::WebDragData& drop_data);
|
||||
virtual void ShowContextMenu(WebView* webview,
|
||||
ContextNodeType node_type,
|
||||
int x,
|
||||
@ -92,106 +59,42 @@ class BrowserWebViewDelegate : public WebViewDelegate {
|
||||
int edit_flags,
|
||||
const std::string& security_info,
|
||||
const std::string& frame_charset);
|
||||
virtual void DidCreateDataSource(WebKit::WebFrame* frame,
|
||||
WebKit::WebDataSource* ds);
|
||||
virtual void DidStartProvisionalLoadForFrame(
|
||||
WebView* webview,
|
||||
WebKit::WebFrame* frame,
|
||||
NavigationGesture gesture);
|
||||
virtual void DidReceiveProvisionalLoadServerRedirect(
|
||||
WebView* webview, WebKit::WebFrame* frame);
|
||||
virtual void DidFailProvisionalLoadWithError(
|
||||
WebView* webview,
|
||||
const WebKit::WebURLError& error,
|
||||
WebKit::WebFrame* frame);
|
||||
virtual void DidCommitLoadForFrame(
|
||||
WebView* webview,
|
||||
WebKit::WebFrame* frame,
|
||||
bool is_new_navigation);
|
||||
virtual void DidReceiveTitle(WebView* webview,
|
||||
const std::wstring& title,
|
||||
WebKit::WebFrame* frame);
|
||||
virtual void DidFinishDocumentLoadForFrame(WebView* webview,
|
||||
WebKit::WebFrame* frame);
|
||||
virtual void DidHandleOnloadEventsForFrame(WebView* webview,
|
||||
WebKit::WebFrame* frame);
|
||||
virtual void DidChangeLocationWithinPageForFrame(WebView* webview,
|
||||
WebKit::WebFrame* frame,
|
||||
bool is_new_navigation);
|
||||
virtual void DidReceiveIconForFrame(WebView* webview,
|
||||
WebKit::WebFrame* frame);
|
||||
|
||||
virtual void WillPerformClientRedirect(WebView* webview,
|
||||
WebKit::WebFrame* frame,
|
||||
const GURL& src_url,
|
||||
const GURL& dest_url,
|
||||
unsigned int delay_seconds,
|
||||
unsigned int fire_date);
|
||||
virtual void DidCancelClientRedirect(WebView* webview,
|
||||
WebKit::WebFrame* frame);
|
||||
|
||||
virtual void DidFinishLoadForFrame(WebView* webview, WebKit::WebFrame* frame);
|
||||
virtual void DidFailLoadWithError(WebView* webview,
|
||||
const WebKit::WebURLError& error,
|
||||
WebKit::WebFrame* for_frame);
|
||||
|
||||
virtual void AssignIdentifierToRequest(WebKit::WebFrame* webframe,
|
||||
uint32 identifier,
|
||||
const WebKit::WebURLRequest& request);
|
||||
virtual void WillSendRequest(WebKit::WebFrame* webframe,
|
||||
uint32 identifier,
|
||||
WebKit::WebURLRequest* request,
|
||||
const WebKit::WebURLResponse& redirect_response);
|
||||
virtual void DidFinishLoading(WebKit::WebFrame* webframe, uint32 identifier);
|
||||
virtual void DidFailLoadingWithError(WebKit::WebFrame* webframe,
|
||||
uint32 identifier,
|
||||
const WebKit::WebURLError& error);
|
||||
virtual void DidReceiveResponse(WebKit::WebFrame* webframe,
|
||||
uint32 identifier,
|
||||
const WebKit::WebURLResponse& response);
|
||||
|
||||
virtual bool ShouldBeginEditing(WebView* webview, std::wstring range);
|
||||
virtual bool ShouldEndEditing(WebView* webview, std::wstring range);
|
||||
virtual bool ShouldInsertNode(WebView* webview,
|
||||
std::wstring node,
|
||||
std::wstring range,
|
||||
std::wstring action);
|
||||
virtual bool ShouldInsertText(WebView* webview,
|
||||
std::wstring text,
|
||||
std::wstring range,
|
||||
std::wstring action);
|
||||
virtual bool ShouldChangeSelectedRange(WebView* webview,
|
||||
std::wstring fromRange,
|
||||
std::wstring toRange,
|
||||
std::wstring affinity,
|
||||
bool stillSelecting);
|
||||
virtual bool ShouldDeleteRange(WebView* webview, std::wstring range);
|
||||
virtual bool ShouldApplyStyle(WebView* webview,
|
||||
std::wstring style,
|
||||
std::wstring range);
|
||||
virtual bool SmartInsertDeleteEnabled();
|
||||
virtual void DidBeginEditing();
|
||||
virtual void DidChangeSelection();
|
||||
virtual void DidChangeContents();
|
||||
virtual void DidEndEditing();
|
||||
|
||||
virtual void DidStartLoading(WebView* webview);
|
||||
virtual void DidStopLoading(WebView* webview);
|
||||
|
||||
virtual void WindowObjectCleared(WebKit::WebFrame* webframe);
|
||||
virtual WebKit::WebNavigationPolicy PolicyForNavigationAction(
|
||||
WebView* webview,
|
||||
WebKit::WebFrame* frame,
|
||||
const WebKit::WebURLRequest& request,
|
||||
WebKit::WebNavigationType type,
|
||||
WebKit::WebNavigationPolicy default_policy,
|
||||
bool is_redirect);
|
||||
virtual void NavigateBackForwardSoon(int offset);
|
||||
virtual int GetHistoryBackListCount();
|
||||
virtual int GetHistoryForwardListCount();
|
||||
virtual void TakeFocus(WebView* webview, bool reverse);
|
||||
|
||||
// WebWidgetClient
|
||||
|
||||
// WebKit::WebViewClient
|
||||
virtual WebView* createView(WebKit::WebFrame* creator);
|
||||
virtual WebKit::WebWidget* createPopupMenu(bool activatable);
|
||||
virtual WebKit::WebWidget* createPopupMenu(
|
||||
const WebKit::WebPopupMenuInfo& info);
|
||||
virtual void didAddMessageToConsole(
|
||||
const WebKit::WebConsoleMessage& message,
|
||||
const WebKit::WebString& source_name, unsigned source_line);
|
||||
virtual void printPage(WebKit::WebFrame* frame);
|
||||
virtual void didStartLoading();
|
||||
virtual void didStopLoading();
|
||||
virtual void runModalAlertDialog(
|
||||
WebKit::WebFrame* frame, const WebKit::WebString& message);
|
||||
virtual bool runModalConfirmDialog(
|
||||
WebKit::WebFrame* frame, const WebKit::WebString& message);
|
||||
virtual bool runModalPromptDialog(
|
||||
WebKit::WebFrame* frame, const WebKit::WebString& message,
|
||||
const WebKit::WebString& default_value, WebKit::WebString* actual_value);
|
||||
virtual bool runModalBeforeUnloadDialog(
|
||||
WebKit::WebFrame* frame, const WebKit::WebString& message);
|
||||
virtual void setStatusText(const WebKit::WebString& text);
|
||||
virtual void setMouseOverURL(const WebKit::WebURL& url);
|
||||
virtual void setToolTipText(
|
||||
const WebKit::WebString& text, WebKit::WebTextDirection hint);
|
||||
virtual void startDragging(
|
||||
const WebKit::WebPoint& from, const WebKit::WebDragData& data,
|
||||
WebKit::WebDragOperationsMask mask);
|
||||
virtual void focusNext();
|
||||
virtual void focusPrevious();
|
||||
virtual void navigateBackForwardSoon(int offset);
|
||||
virtual int historyBackListCount();
|
||||
virtual int historyForwardListCount();
|
||||
virtual void didAddHistoryItem();
|
||||
|
||||
// WebKit::WebWidgetClient
|
||||
virtual void didInvalidateRect(const WebKit::WebRect& rect);
|
||||
virtual void didScrollRect(int dx, int dy,
|
||||
const WebKit::WebRect& clip_rect);
|
||||
@ -207,6 +110,119 @@ class BrowserWebViewDelegate : public WebViewDelegate {
|
||||
virtual WebKit::WebRect windowResizerRect();
|
||||
virtual WebKit::WebScreenInfo screenInfo();
|
||||
|
||||
// WebKit::WebEditingClient
|
||||
virtual bool shouldBeginEditing(const WebKit::WebRange& range);
|
||||
virtual bool shouldEndEditing(const WebKit::WebRange& range);
|
||||
virtual bool shouldInsertNode(
|
||||
const WebKit::WebNode& node, const WebKit::WebRange& range,
|
||||
WebKit::WebEditingAction action);
|
||||
virtual bool shouldInsertText(
|
||||
const WebKit::WebString& text, const WebKit::WebRange& range,
|
||||
WebKit::WebEditingAction action);
|
||||
virtual bool shouldChangeSelectedRange(
|
||||
const WebKit::WebRange& from, const WebKit::WebRange& to,
|
||||
WebKit::WebTextAffinity affinity, bool still_selecting);
|
||||
virtual bool shouldDeleteRange(const WebKit::WebRange& range);
|
||||
virtual bool shouldApplyStyle(
|
||||
const WebKit::WebString& style, const WebKit::WebRange& range);
|
||||
virtual bool isSmartInsertDeleteEnabled();
|
||||
virtual bool isSelectTrailingWhitespaceEnabled();
|
||||
virtual void setInputMethodEnabled(bool enabled) {}
|
||||
virtual void didBeginEditing();
|
||||
virtual void didChangeSelection(bool is_selection_empty);
|
||||
virtual void didChangeContents();
|
||||
virtual void didExecuteCommand(const WebKit::WebString& command_name) {}
|
||||
virtual void didEndEditing();
|
||||
|
||||
// WebKit::WebFrameClient
|
||||
virtual WebKit::WebPlugin* createPlugin(
|
||||
WebKit::WebFrame*, const WebKit::WebPluginParams&);
|
||||
virtual WebKit::WebWorker* createWorker(
|
||||
WebKit::WebFrame*, WebKit::WebWorkerClient*);
|
||||
virtual WebKit::WebMediaPlayer* createMediaPlayer(
|
||||
WebKit::WebFrame*, WebKit::WebMediaPlayerClient*);
|
||||
virtual void willClose(WebKit::WebFrame*);
|
||||
virtual void loadURLExternally(
|
||||
WebKit::WebFrame*, const WebKit::WebURLRequest&,
|
||||
WebKit::WebNavigationPolicy);
|
||||
virtual WebKit::WebNavigationPolicy decidePolicyForNavigation(
|
||||
WebKit::WebFrame*, const WebKit::WebURLRequest&,
|
||||
WebKit::WebNavigationType, WebKit::WebNavigationPolicy default_policy,
|
||||
bool isRedirect);
|
||||
virtual void willSubmitForm(WebKit::WebFrame*, const WebKit::WebForm&);
|
||||
virtual void willPerformClientRedirect(
|
||||
WebKit::WebFrame*, const WebKit::WebURL& from, const WebKit::WebURL& to,
|
||||
double interval, double fire_time);
|
||||
virtual void didCancelClientRedirect(WebKit::WebFrame*);
|
||||
virtual void didCompleteClientRedirect(
|
||||
WebKit::WebFrame*, const WebKit::WebURL& from);
|
||||
virtual void didCreateDataSource(
|
||||
WebKit::WebFrame*, WebKit::WebDataSource*);
|
||||
virtual void didStartProvisionalLoad(WebKit::WebFrame*);
|
||||
virtual void didReceiveServerRedirectForProvisionalLoad(WebKit::WebFrame*);
|
||||
virtual void didFailProvisionalLoad(
|
||||
WebKit::WebFrame*, const WebKit::WebURLError&);
|
||||
virtual void didReceiveDocumentData(
|
||||
WebKit::WebFrame*, const char* data, size_t length,
|
||||
bool& preventDefault);
|
||||
virtual void didCommitProvisionalLoad(
|
||||
WebKit::WebFrame*, bool is_new_navigation);
|
||||
virtual void didClearWindowObject(WebKit::WebFrame*);
|
||||
virtual void didCreateDocumentElement(WebKit::WebFrame*);
|
||||
virtual void didReceiveTitle(
|
||||
WebKit::WebFrame*, const WebKit::WebString& title);
|
||||
virtual void didFinishDocumentLoad(WebKit::WebFrame*);
|
||||
virtual void didHandleOnloadEvents(WebKit::WebFrame*);
|
||||
virtual void didFailLoad(
|
||||
WebKit::WebFrame*, const WebKit::WebURLError&);
|
||||
virtual void didFinishLoad(WebKit::WebFrame*);
|
||||
virtual void didChangeLocationWithinPage(
|
||||
WebKit::WebFrame*, bool isNewNavigation);
|
||||
virtual void didUpdateCurrentHistoryItem(WebKit::WebFrame*) {}
|
||||
virtual void assignIdentifierToRequest(
|
||||
WebKit::WebFrame*, unsigned identifier, const WebKit::WebURLRequest&);
|
||||
virtual void willSendRequest(
|
||||
WebKit::WebFrame*, unsigned identifier, WebKit::WebURLRequest&,
|
||||
const WebKit::WebURLResponse& redirectResponse);
|
||||
virtual void didReceiveResponse(
|
||||
WebKit::WebFrame*, unsigned identifier, const WebKit::WebURLResponse&);
|
||||
virtual void didFinishResourceLoad(
|
||||
WebKit::WebFrame*, unsigned identifier);
|
||||
virtual void didFailResourceLoad(
|
||||
WebKit::WebFrame*, unsigned identifier, const WebKit::WebURLError&);
|
||||
virtual void didLoadResourceFromMemoryCache(
|
||||
WebKit::WebFrame*, const WebKit::WebURLRequest&,
|
||||
const WebKit::WebURLResponse&);
|
||||
virtual void didDisplayInsecureContent(WebKit::WebFrame* frame);
|
||||
virtual void didRunInsecureContent(
|
||||
WebKit::WebFrame* frame, const WebKit::WebString& security_origin);
|
||||
virtual void didExhaustMemoryAvailableForScript(WebKit::WebFrame*);
|
||||
virtual void didChangeContentsSize(
|
||||
WebKit::WebFrame*, const WebKit::WebSize&);
|
||||
|
||||
// webkit_glue::WebPluginPageDelegate
|
||||
virtual webkit_glue::WebPluginDelegate* CreatePluginDelegate(
|
||||
const GURL& url,
|
||||
const std::string& mime_type,
|
||||
std::string* actual_mime_type);
|
||||
virtual void CreatedPluginWindow(
|
||||
gfx::PluginWindowHandle handle);
|
||||
virtual void WillDestroyPluginWindow(
|
||||
gfx::PluginWindowHandle handle);
|
||||
virtual void DidMovePlugin(
|
||||
const webkit_glue::WebPluginGeometry& move);
|
||||
virtual void DidStartLoadingForPlugin() {}
|
||||
virtual void DidStopLoadingForPlugin() {}
|
||||
virtual void ShowModalHTMLDialogForPlugin(
|
||||
const GURL& url,
|
||||
const gfx::Size& size,
|
||||
const std::string& json_arguments,
|
||||
std::string* json_retval) {}
|
||||
|
||||
BrowserWebViewDelegate(CefBrowserImpl* browser);
|
||||
~BrowserWebViewDelegate();
|
||||
void Reset();
|
||||
|
||||
void SetSmartInsertDeleteEnabled(bool enabled);
|
||||
void SetSelectTrailingWhitespaceEnabled(bool enabled);
|
||||
|
||||
@ -279,6 +295,9 @@ class BrowserWebViewDelegate : public WebViewDelegate {
|
||||
// will be allowed. Otherwise, they will be ignored (dropped).
|
||||
bool policy_delegate_is_permissive_;
|
||||
|
||||
// If true, the policy delegate will signal layout test completion.
|
||||
bool policy_delegate_should_notify_done_;
|
||||
|
||||
// Non-owning pointer. The delegate is owned by the host.
|
||||
CefBrowserImpl* browser_;
|
||||
|
||||
@ -289,7 +308,7 @@ class BrowserWebViewDelegate : public WebViewDelegate {
|
||||
int page_id_;
|
||||
int last_page_id_updated_;
|
||||
|
||||
linked_ptr<BrowserExtraData> pending_extra_data_;
|
||||
scoped_ptr<BrowserExtraData> pending_extra_data_;
|
||||
|
||||
WebCursor current_cursor_;
|
||||
#if defined(OS_WIN)
|
||||
@ -313,6 +332,8 @@ class BrowserWebViewDelegate : public WebViewDelegate {
|
||||
|
||||
// true if we should block any redirects
|
||||
bool block_redirects_;
|
||||
|
||||
DISALLOW_COPY_AND_ASSIGN(BrowserWebViewDelegate);
|
||||
};
|
||||
|
||||
#endif // _BROWSER_WEBVIEW_DELEGATE_H
|
||||
|
@ -41,47 +41,158 @@
|
||||
using WebKit::WebCursorInfo;
|
||||
using WebKit::WebFrame;
|
||||
using WebKit::WebNavigationPolicy;
|
||||
using WebKit::WebPopupMenuInfo;
|
||||
using WebKit::WebRect;
|
||||
using WebKit::WebWidget;
|
||||
|
||||
// WebViewDelegate -----------------------------------------------------------
|
||||
// WebViewClient --------------------------------------------------------------
|
||||
|
||||
WebPluginDelegate* BrowserWebViewDelegate::CreatePluginDelegate(
|
||||
WebView* webview,
|
||||
WebWidget* BrowserWebViewDelegate::createPopupMenu(
|
||||
const WebPopupMenuInfo& info) {
|
||||
NOTREACHED();
|
||||
return NULL;
|
||||
}
|
||||
|
||||
// WebWidgetClient ------------------------------------------------------------
|
||||
|
||||
void BrowserWebViewDelegate::show(WebNavigationPolicy) {
|
||||
if (WebWidgetHost* host = GetWidgetHost()) {
|
||||
HWND root = GetAncestor(host->view_handle(), GA_ROOT);
|
||||
ShowWindow(root, SW_SHOW);
|
||||
UpdateWindow(root);
|
||||
}
|
||||
}
|
||||
|
||||
void BrowserWebViewDelegate::closeWidgetSoon() {
|
||||
if (this == browser_->GetWebViewDelegate()) {
|
||||
PostMessage(browser_->GetMainWndHandle(), WM_CLOSE, 0, 0);
|
||||
} else if (this == browser_->GetPopupDelegate()) {
|
||||
browser_->UIT_ClosePopupWidget();
|
||||
}
|
||||
}
|
||||
|
||||
void BrowserWebViewDelegate::didChangeCursor(const WebCursorInfo& cursor_info) {
|
||||
if (WebWidgetHost* host = GetWidgetHost()) {
|
||||
current_cursor_.InitFromCursorInfo(cursor_info);
|
||||
HINSTANCE mod_handle = GetModuleHandle(NULL);
|
||||
host->SetCursor(current_cursor_.GetCursor(mod_handle));
|
||||
}
|
||||
}
|
||||
|
||||
WebRect BrowserWebViewDelegate::windowRect() {
|
||||
if (WebWidgetHost* host = GetWidgetHost()) {
|
||||
RECT rect;
|
||||
::GetWindowRect(host->view_handle(), &rect);
|
||||
return gfx::Rect(rect);
|
||||
}
|
||||
return WebRect();
|
||||
}
|
||||
|
||||
void BrowserWebViewDelegate::setWindowRect(const WebRect& rect) {
|
||||
if (this == browser_->GetWebViewDelegate()) {
|
||||
// ignored
|
||||
} else if (this == browser_->GetPopupDelegate()) {
|
||||
MoveWindow(browser_->GetPopupWndHandle(),
|
||||
rect.x, rect.y, rect.width, rect.height, FALSE);
|
||||
}
|
||||
}
|
||||
|
||||
WebRect BrowserWebViewDelegate::rootWindowRect() {
|
||||
if (WebWidgetHost* host = GetWidgetHost()) {
|
||||
RECT rect;
|
||||
HWND root_window = ::GetAncestor(host->view_handle(), GA_ROOT);
|
||||
::GetWindowRect(root_window, &rect);
|
||||
return gfx::Rect(rect);
|
||||
}
|
||||
return WebRect();
|
||||
}
|
||||
|
||||
WebRect BrowserWebViewDelegate::windowResizerRect() {
|
||||
// Not necessary on Windows.
|
||||
return WebRect();
|
||||
}
|
||||
|
||||
void BrowserWebViewDelegate::runModal() {
|
||||
WebWidgetHost* host = GetWidgetHost();
|
||||
if (!host)
|
||||
return;
|
||||
|
||||
show(WebKit::WebNavigationPolicyNewWindow);
|
||||
|
||||
CefContext::BrowserList *list;
|
||||
CefContext::BrowserList::const_iterator i;
|
||||
|
||||
_Context->Lock();
|
||||
list = _Context->GetBrowserList();
|
||||
i = list->begin();
|
||||
for (; i != list->end(); ++i) {
|
||||
if (i->get()->IsPopup())
|
||||
EnableWindow(i->get()->GetMainWndHandle(), FALSE);
|
||||
}
|
||||
_Context->Unlock();
|
||||
|
||||
browser_->UIT_SetIsModal(true);
|
||||
MessageLoop::current()->Run();
|
||||
|
||||
_Context->Lock();
|
||||
list = _Context->GetBrowserList();
|
||||
i = list->begin();
|
||||
for (; i != list->end(); ++i)
|
||||
EnableWindow(i->get()->GetMainWndHandle(), TRUE);
|
||||
_Context->Unlock();
|
||||
}
|
||||
|
||||
// WebPluginPageDelegate ------------------------------------------------------
|
||||
|
||||
webkit_glue::WebPluginDelegate* BrowserWebViewDelegate::CreatePluginDelegate(
|
||||
const GURL& url,
|
||||
const std::string& mime_type,
|
||||
const std::string& clsid,
|
||||
std::string* actual_mime_type) {
|
||||
HWND hwnd = browser_->GetWebViewHost()->view_handle();
|
||||
if (!hwnd)
|
||||
return NULL;
|
||||
|
||||
bool allow_wildcard = true;
|
||||
|
||||
// first, look for plugins using the normal plugin list
|
||||
WebPluginInfo info;
|
||||
if (NPAPI::PluginList::Singleton()->GetPluginInfo(url, mime_type, clsid,
|
||||
allow_wildcard, &info,
|
||||
actual_mime_type)) {
|
||||
if (actual_mime_type && !actual_mime_type->empty())
|
||||
return WebPluginDelegateImpl::Create(info.path, *actual_mime_type, hwnd);
|
||||
else
|
||||
return WebPluginDelegateImpl::Create(info.path, mime_type, hwnd);
|
||||
if (!NPAPI::PluginList::Singleton()->GetPluginInfo(
|
||||
url, mime_type, allow_wildcard, &info, actual_mime_type)) {
|
||||
return NULL;
|
||||
}
|
||||
|
||||
return NULL;
|
||||
if (actual_mime_type && !actual_mime_type->empty())
|
||||
return WebPluginDelegateImpl::Create(info.path, *actual_mime_type, hwnd);
|
||||
else
|
||||
return WebPluginDelegateImpl::Create(info.path, mime_type, hwnd);
|
||||
}
|
||||
|
||||
void BrowserWebViewDelegate::DidMovePlugin(const WebPluginGeometry& move) {
|
||||
HRGN hrgn = ::CreateRectRgn(move.clip_rect.x(),
|
||||
move.clip_rect.y(),
|
||||
move.clip_rect.right(),
|
||||
move.clip_rect.bottom());
|
||||
gfx::SubtractRectanglesFromRegion(hrgn, move.cutout_rects);
|
||||
void BrowserWebViewDelegate::CreatedPluginWindow(
|
||||
gfx::PluginWindowHandle handle) {
|
||||
// ignored
|
||||
}
|
||||
|
||||
// Note: System will own the hrgn after we call SetWindowRgn,
|
||||
// so we don't need to call DeleteObject(hrgn)
|
||||
::SetWindowRgn(move.window, hrgn, FALSE);
|
||||
void BrowserWebViewDelegate::WillDestroyPluginWindow(
|
||||
gfx::PluginWindowHandle handle) {
|
||||
// ignored
|
||||
}
|
||||
|
||||
void BrowserWebViewDelegate::DidMovePlugin(
|
||||
const webkit_glue::WebPluginGeometry& move) {
|
||||
unsigned long flags = 0;
|
||||
|
||||
if (move.rects_valid) {
|
||||
HRGN hrgn = ::CreateRectRgn(move.clip_rect.x(),
|
||||
move.clip_rect.y(),
|
||||
move.clip_rect.right(),
|
||||
move.clip_rect.bottom());
|
||||
gfx::SubtractRectanglesFromRegion(hrgn, move.cutout_rects);
|
||||
|
||||
// Note: System will own the hrgn after we call SetWindowRgn,
|
||||
// so we don't need to call DeleteObject(hrgn)
|
||||
::SetWindowRgn(move.window, hrgn, FALSE);
|
||||
} else {
|
||||
flags |= (SWP_NOSIZE | SWP_NOMOVE);
|
||||
}
|
||||
|
||||
if (move.visible)
|
||||
flags |= SWP_SHOWWINDOW;
|
||||
else
|
||||
@ -265,97 +376,7 @@ end:
|
||||
MessageLoop::current()->SetNestableTasksAllowed(old_state);
|
||||
}
|
||||
|
||||
// WebWidgetClient ---------------------------------------------------------
|
||||
|
||||
void BrowserWebViewDelegate::show(WebNavigationPolicy) {
|
||||
if (WebWidgetHost* host = GetWidgetHost()) {
|
||||
HWND root = GetAncestor(host->view_handle(), GA_ROOT);
|
||||
ShowWindow(root, SW_SHOW);
|
||||
UpdateWindow(root);
|
||||
}
|
||||
}
|
||||
|
||||
void BrowserWebViewDelegate::closeWidgetSoon() {
|
||||
if (this == browser_->GetWebViewDelegate()) {
|
||||
PostMessage(browser_->GetMainWndHandle(), WM_CLOSE, 0, 0);
|
||||
} else if (this == browser_->GetPopupDelegate()) {
|
||||
browser_->UIT_ClosePopupWidget();
|
||||
}
|
||||
}
|
||||
|
||||
void BrowserWebViewDelegate::didChangeCursor(
|
||||
const WebCursorInfo& cursor_info) {
|
||||
if (WebWidgetHost* host = GetWidgetHost()) {
|
||||
current_cursor_.InitFromCursorInfo(cursor_info);
|
||||
HINSTANCE mod_handle = GetModuleHandle(NULL);
|
||||
host->SetCursor(current_cursor_.GetCursor(mod_handle));
|
||||
}
|
||||
}
|
||||
|
||||
WebRect BrowserWebViewDelegate::windowRect() {
|
||||
if (WebWidgetHost* host = GetWidgetHost()) {
|
||||
RECT rect;
|
||||
::GetWindowRect(host->view_handle(), &rect);
|
||||
return gfx::Rect(rect);
|
||||
}
|
||||
return WebRect();
|
||||
}
|
||||
|
||||
void BrowserWebViewDelegate::setWindowRect(const WebRect& rect) {
|
||||
if (this == browser_->GetWebViewDelegate()) {
|
||||
// ignored
|
||||
} else if (this == browser_->GetPopupDelegate()) {
|
||||
MoveWindow(browser_->GetPopupWndHandle(),
|
||||
rect.x, rect.y, rect.width, rect.height, FALSE);
|
||||
}
|
||||
}
|
||||
|
||||
WebRect BrowserWebViewDelegate::rootWindowRect() {
|
||||
if (WebWidgetHost* host = GetWidgetHost()) {
|
||||
RECT rect;
|
||||
HWND root_window = ::GetAncestor(host->view_handle(), GA_ROOT);
|
||||
::GetWindowRect(root_window, &rect);
|
||||
return gfx::Rect(rect);
|
||||
}
|
||||
return WebRect();
|
||||
}
|
||||
|
||||
WebRect BrowserWebViewDelegate::windowResizerRect() {
|
||||
// Not necessary on Windows.
|
||||
return WebRect();
|
||||
}
|
||||
|
||||
void BrowserWebViewDelegate::runModal() {
|
||||
WebWidgetHost* host = GetWidgetHost();
|
||||
if (!host)
|
||||
return;
|
||||
|
||||
show(WebKit::WebNavigationPolicyNewWindow);
|
||||
|
||||
CefContext::BrowserList *list;
|
||||
CefContext::BrowserList::const_iterator i;
|
||||
|
||||
_Context->Lock();
|
||||
list = _Context->GetBrowserList();
|
||||
i = list->begin();
|
||||
for (; i != list->end(); ++i) {
|
||||
if (i->get()->IsPopup())
|
||||
EnableWindow(i->get()->GetMainWndHandle(), FALSE);
|
||||
}
|
||||
_Context->Unlock();
|
||||
|
||||
browser_->UIT_SetIsModal(true);
|
||||
MessageLoop::current()->Run();
|
||||
|
||||
_Context->Lock();
|
||||
list = _Context->GetBrowserList();
|
||||
i = list->begin();
|
||||
for (; i != list->end(); ++i)
|
||||
EnableWindow(i->get()->GetMainWndHandle(), TRUE);
|
||||
_Context->Unlock();
|
||||
}
|
||||
|
||||
// Private methods -----------------------------------------------------------
|
||||
// Private methods ------------------------------------------------------------
|
||||
|
||||
void BrowserWebViewDelegate::ShowJavaScriptAlert(WebFrame* webframe,
|
||||
const std::wstring& message)
|
||||
|
@ -332,7 +332,7 @@ bool CefContext::Initialize(bool multi_threaded_message_loop,
|
||||
webprefs_->cursive_font_family = L"Comic Sans MS";
|
||||
webprefs_->fantasy_font_family = L"Impact";
|
||||
#endif
|
||||
webprefs_->default_encoding = L"ISO-8859-1";
|
||||
webprefs_->default_encoding = "ISO-8859-1";
|
||||
webprefs_->default_font_size = 16;
|
||||
webprefs_->default_fixed_font_size = 13;
|
||||
webprefs_->minimum_font_size = 1;
|
||||
|
@ -191,6 +191,10 @@
|
||||
>
|
||||
</File>
|
||||
</Filter>
|
||||
<File
|
||||
RelativePath=".\browser_appcache_system.cc"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\browser_appcache_system.h"
|
||||
>
|
||||
|
@ -3,6 +3,6 @@
|
||||
ProjectType="Visual C++"
|
||||
Version="8.00"
|
||||
Name="webkit_common"
|
||||
InheritedPropertySheets=".\libcef_webkit_includes.vsprops;.\libcef_webkit_defines.vsprops;.\libcef_webkit_v8bindings.vsprops;$(SolutionDir)..\third_party\npapi\using_npapi.vsprops;$(SolutionDir)..\skia\using_skia.vsprops;$(SolutionDir)..\build\external_code.vsprops;$(SolutionDir)..\third_party\icu38\build\using_icu.vsprops"
|
||||
InheritedPropertySheets=".\libcef_webkit_includes.vsprops;.\libcef_webkit_defines.vsprops;.\libcef_webkit_v8bindings.vsprops;$(SolutionDir)..\third_party\npapi\using_npapi.vsprops;$(SolutionDir)..\skia\using_skia.vsprops;$(SolutionDir)..\build\external_code.vsprops;$(SolutionDir)..\third_party\icu\build\using_icu.vsprops"
|
||||
>
|
||||
</VisualStudioPropertySheet>
|
||||
|
@ -34,21 +34,22 @@ Clipboard* ClipboardGetClipboard() {
|
||||
return clipboard.Pointer();
|
||||
}
|
||||
|
||||
bool ClipboardIsFormatAvailable(const Clipboard::FormatType& format) {
|
||||
return ClipboardGetClipboard()->IsFormatAvailable(format);
|
||||
bool ClipboardIsFormatAvailable(const Clipboard::FormatType& format,
|
||||
Clipboard::Buffer buffer) {
|
||||
return ClipboardGetClipboard()->IsFormatAvailable(format, buffer);
|
||||
}
|
||||
|
||||
void ClipboardReadText(string16* result) {
|
||||
ClipboardGetClipboard()->ReadText(result);
|
||||
void ClipboardReadText(Clipboard::Buffer buffer, string16* result) {
|
||||
ClipboardGetClipboard()->ReadText(buffer, result);
|
||||
}
|
||||
|
||||
void ClipboardReadAsciiText(std::string* result) {
|
||||
ClipboardGetClipboard()->ReadAsciiText(result);
|
||||
void ClipboardReadAsciiText(Clipboard::Buffer buffer, std::string* result) {
|
||||
ClipboardGetClipboard()->ReadAsciiText(buffer, result);
|
||||
}
|
||||
|
||||
void ClipboardReadHTML(string16* markup, GURL* url) {
|
||||
void ClipboardReadHTML(Clipboard::Buffer buffer, string16* markup, GURL* url) {
|
||||
std::string url_str;
|
||||
ClipboardGetClipboard()->ReadHTML(markup, url ? &url_str : NULL);
|
||||
ClipboardGetClipboard()->ReadHTML(buffer, markup, url ? &url_str : NULL);
|
||||
if (url)
|
||||
*url = GURL(url_str);
|
||||
}
|
||||
|
@ -4,6 +4,7 @@
|
||||
|
||||
#include "precompiled_libcef.h"
|
||||
#include "webview_host.h"
|
||||
#include "browser_webview_delegate.h"
|
||||
|
||||
#include "base/gfx/platform_canvas.h"
|
||||
#include "base/gfx/rect.h"
|
||||
@ -16,7 +17,7 @@ static const wchar_t kWindowClassName[] = L"WebViewHost";
|
||||
|
||||
/*static*/
|
||||
WebViewHost* WebViewHost::Create(HWND parent_view,
|
||||
WebViewDelegate* delegate,
|
||||
BrowserWebViewDelegate* delegate,
|
||||
const WebPreferences& prefs) {
|
||||
WebViewHost* host = new WebViewHost();
|
||||
|
||||
@ -39,8 +40,8 @@ WebViewHost* WebViewHost::Create(HWND parent_view,
|
||||
GetModuleHandle(NULL), NULL);
|
||||
win_util::SetWindowUserData(host->view_, host);
|
||||
|
||||
host->webwidget_ = WebView::Create();
|
||||
prefs.Apply(host->webview());
|
||||
host->webwidget_ = WebView::Create(delegate, delegate);
|
||||
prefs.Apply(host->webview());
|
||||
host->webview()->InitializeMainFrame(delegate);
|
||||
|
||||
return host;
|
||||
|
@ -12,7 +12,7 @@
|
||||
|
||||
struct WebPreferences;
|
||||
class WebView;
|
||||
class WebViewDelegate;
|
||||
class BrowserWebViewDelegate;
|
||||
|
||||
// This class is a simple ViewHandle-based host for a WebView
|
||||
class WebViewHost : public WebWidgetHost {
|
||||
@ -21,7 +21,7 @@ class WebViewHost : public WebWidgetHost {
|
||||
// The newly created window should be resized after it is created, using the
|
||||
// MoveWindow (or equivalent) function.
|
||||
static WebViewHost* Create(gfx::NativeView parent_window,
|
||||
WebViewDelegate* delegate,
|
||||
BrowserWebViewDelegate* delegate,
|
||||
const WebPreferences& prefs);
|
||||
|
||||
WebView* webview() const;
|
||||
|
@ -1,37 +1,35 @@
|
||||
Index: plugin_list.cc
|
||||
===================================================================
|
||||
--- plugin_list.cc (revision 23814)
|
||||
--- plugin_list.cc (revision 26359)
|
||||
+++ plugin_list.cc (working copy)
|
||||
@@ -50,7 +50,7 @@
|
||||
@@ -141,6 +141,7 @@
|
||||
// other methods if they're called on other threads.
|
||||
std::vector<FilePath> extra_plugin_paths;
|
||||
std::vector<FilePath> extra_plugin_dirs;
|
||||
+ std::vector<PluginVersionInfo> internal_plugins;
|
||||
{
|
||||
AutoLock lock(lock_);
|
||||
if (plugins_loaded_ && !refresh)
|
||||
@@ -148,6 +149,7 @@
|
||||
|
||||
void PluginList::RegisterInternalPlugin(const PluginVersionInfo& info) {
|
||||
AutoLock lock(lock_);
|
||||
- internal_plugins_.push_back(info);
|
||||
+ internal_plugins_.insert(internal_plugins_.begin(), info);
|
||||
}
|
||||
extra_plugin_paths = extra_plugin_paths_;
|
||||
extra_plugin_dirs = extra_plugin_dirs_;
|
||||
+ internal_plugins = internal_plugins_;
|
||||
}
|
||||
|
||||
bool PluginList::ReadPluginInfo(const FilePath &filename,
|
||||
Index: plugin_list_win.cc
|
||||
===================================================================
|
||||
--- plugin_list_win.cc (revision 23814)
|
||||
+++ plugin_list_win.cc (working copy)
|
||||
@@ -356,10 +356,15 @@
|
||||
}
|
||||
base::TimeTicks start_time = base::TimeTicks::Now();
|
||||
@@ -157,6 +159,14 @@
|
||||
std::vector<FilePath> directories_to_scan;
|
||||
GetPluginDirectories(&directories_to_scan);
|
||||
|
||||
void PluginList::LoadInternalPlugins(std::vector<WebPluginInfo>* plugins) {
|
||||
- if (!use_internal_activex_shim_)
|
||||
- return;
|
||||
- LoadPlugin(FilePath(kActiveXShimFileName), plugins);
|
||||
- LoadPlugin(FilePath(kActiveXShimFileNameForMediaPlayer), plugins);
|
||||
+ for (size_t i = 0; i < internal_plugins_.size(); ++i) {
|
||||
+ if (!use_internal_activex_shim_ &&
|
||||
+ (internal_plugins_[i].path.value() == kActiveXShimFileName ||
|
||||
+ internal_plugins_[i].path.value() ==
|
||||
+ kActiveXShimFileNameForMediaPlayer)) {
|
||||
+ for (size_t i = 0; i < internal_plugins.size(); ++i) {
|
||||
+#if defined(OS_WIN)
|
||||
+ if (internal_plugins[i].path.value() == kDefaultPluginLibraryName)
|
||||
+ continue;
|
||||
+ }
|
||||
+ LoadPlugin(internal_plugins_[i].path, plugins);
|
||||
+#endif
|
||||
+ LoadPlugin(internal_plugins[i].path, &new_plugins);
|
||||
+ }
|
||||
}
|
||||
+
|
||||
for (size_t i = 0; i < extra_plugin_paths.size(); ++i)
|
||||
LoadPlugin(extra_plugin_paths[i], &new_plugins);
|
||||
|
||||
} // namespace NPAPI
|
||||
|
Loading…
x
Reference in New Issue
Block a user