libcef: Update due to underlying chromium changes.
- Canvas classes moved from gfx namespace to skia namespace. - Include files moved from WebKit/port to third_party/WebKit. - Add IsMediaPlayerAvailable() webkit_glue function. - WebWidgetDelegate::GetContainingWindow() changed to WebWidgetDelegate::GetContainingView(). - Changed HCURSOR to WebCursor and HWND to gfx::NativeWindow. - WebPluginInfo 'file' member changed to 'path'. - Use base::LazyInstance for static object in BrowserPluginInstance (should be done at some point for BrowserPluginLib and BrowserPluginList as well). - BrowserPluginStream::Open() adds additional 'request_is_seekable' parameter. - Add PLUGIN_QUIRK_PATCH_SETCURSOR support to BrowserWebPluginDelegateImpl. git-svn-id: https://chromiumembedded.googlecode.com/svn/trunk@6 5089003a-bbd8-11dd-ad1f-f1f9622dbc98
This commit is contained in:
parent
a08ad505ad
commit
8dab71f659
|
@ -11,3 +11,4 @@ Date | CEF Revision | Chromium Revision
|
|||
2008-12-05 | /trunk@3 | /trunk@6430
|
||||
2008-12-13 | /trunk@4 | /trunk@6968
|
||||
2008-12-13 | /trunk@5 | /trunk@6975
|
||||
2009-01-14 | /trunk@6 | /trunk@8029
|
||||
|
|
153
cef.sln
153
cef.sln
|
@ -12,11 +12,11 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "WebCore", "..\webkit\build\
|
|||
Release.AspNetCompiler.Debug = "False"
|
||||
EndProjectSection
|
||||
ProjectSection(ProjectDependencies) = postProject
|
||||
{2E2D3301-2EC4-4C0F-B889-87073B30F673} = {2E2D3301-2EC4-4C0F-B889-87073B30F673}
|
||||
{6EAD4A4B-2BBC-4974-8E45-BB5C16CC2AC9} = {6EAD4A4B-2BBC-4974-8E45-BB5C16CC2AC9}
|
||||
{2F7EDFA2-EE27-4D83-8454-9EFBD5779203} = {2F7EDFA2-EE27-4D83-8454-9EFBD5779203}
|
||||
{4BD929D4-494B-4EE8-91F6-FD0277A51D2B} = {4BD929D4-494B-4EE8-91F6-FD0277A51D2B}
|
||||
{31D88CBF-DC28-47A8-8838-BF81D528EE74} = {31D88CBF-DC28-47A8-8838-BF81D528EE74}
|
||||
{4BD929D4-494B-4EE8-91F6-FD0277A51D2B} = {4BD929D4-494B-4EE8-91F6-FD0277A51D2B}
|
||||
{2F7EDFA2-EE27-4D83-8454-9EFBD5779203} = {2F7EDFA2-EE27-4D83-8454-9EFBD5779203}
|
||||
{6EAD4A4B-2BBC-4974-8E45-BB5C16CC2AC9} = {6EAD4A4B-2BBC-4974-8E45-BB5C16CC2AC9}
|
||||
{2E2D3301-2EC4-4C0F-B889-87073B30F673} = {2E2D3301-2EC4-4C0F-B889-87073B30F673}
|
||||
EndProjectSection
|
||||
EndProject
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Port", "..\webkit\build\port\port.vcproj", "{5597AD47-3494-4750-A235-4F9C2F864700}"
|
||||
|
@ -25,8 +25,8 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Port", "..\webkit\build\por
|
|||
Release.AspNetCompiler.Debug = "False"
|
||||
EndProjectSection
|
||||
ProjectSection(ProjectDependencies) = postProject
|
||||
{2F7EDFA2-EE27-4D83-8454-9EFBD5779203} = {2F7EDFA2-EE27-4D83-8454-9EFBD5779203}
|
||||
{2E2D3301-2EC4-4C0F-B889-87073B30F673} = {2E2D3301-2EC4-4C0F-B889-87073B30F673}
|
||||
{2F7EDFA2-EE27-4D83-8454-9EFBD5779203} = {2F7EDFA2-EE27-4D83-8454-9EFBD5779203}
|
||||
EndProjectSection
|
||||
EndProject
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Glue", "..\webkit\build\glue\glue.vcproj", "{C66B126D-0ECE-4CA2-B6DC-FA780AFBBF09}"
|
||||
|
@ -36,9 +36,10 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Glue", "..\webkit\build\glu
|
|||
EndProjectSection
|
||||
ProjectSection(ProjectDependencies) = postProject
|
||||
{2E2D3301-2EC4-4C0F-B889-87073B30F673} = {2E2D3301-2EC4-4C0F-B889-87073B30F673}
|
||||
{60B43839-95E6-4526-A661-209F16335E0E} = {60B43839-95E6-4526-A661-209F16335E0E}
|
||||
{1C16337B-ACF3-4D03-AA90-851C5B5EADA6} = {1C16337B-ACF3-4D03-AA90-851C5B5EADA6}
|
||||
{0B469837-3D46-484A-AFB3-C5A6C68730B9} = {0B469837-3D46-484A-AFB3-C5A6C68730B9}
|
||||
{2F7EDFA2-EE27-4D83-8454-9EFBD5779203} = {2F7EDFA2-EE27-4D83-8454-9EFBD5779203}
|
||||
{1C16337B-ACF3-4D03-AA90-851C5B5EADA6} = {1C16337B-ACF3-4D03-AA90-851C5B5EADA6}
|
||||
{60B43839-95E6-4526-A661-209F16335E0E} = {60B43839-95E6-4526-A661-209F16335E0E}
|
||||
EndProjectSection
|
||||
EndProject
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "skia", "..\skia\skia.vcproj", "{CD9CA56E-4E94-444C-87D4-58CA1E6F300D}"
|
||||
|
@ -134,8 +135,8 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libxslt", "..\third_party\l
|
|||
Release.AspNetCompiler.Debug = "False"
|
||||
EndProjectSection
|
||||
ProjectSection(ProjectDependencies) = postProject
|
||||
{F9810DE8-CBC3-4605-A7B1-ECA2D5292FD7} = {F9810DE8-CBC3-4605-A7B1-ECA2D5292FD7}
|
||||
{4BD929D4-494B-4EE8-91F6-FD0277A51D2B} = {4BD929D4-494B-4EE8-91F6-FD0277A51D2B}
|
||||
{F9810DE8-CBC3-4605-A7B1-ECA2D5292FD7} = {F9810DE8-CBC3-4605-A7B1-ECA2D5292FD7}
|
||||
EndProjectSection
|
||||
EndProject
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "V8Bindings", "..\webkit\build\V8Bindings\V8Bindings.vcproj", "{625A8F11-2B4E-45B4-BD99-C6D629C606C0}"
|
||||
|
@ -144,8 +145,8 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "V8Bindings", "..\webkit\bui
|
|||
Release.AspNetCompiler.Debug = "False"
|
||||
EndProjectSection
|
||||
ProjectSection(ProjectDependencies) = postProject
|
||||
{2E2D3301-2EC4-4C0F-B889-87073B30F673} = {2E2D3301-2EC4-4C0F-B889-87073B30F673}
|
||||
{2F7EDFA2-EE27-4D83-8454-9EFBD5779203} = {2F7EDFA2-EE27-4D83-8454-9EFBD5779203}
|
||||
{2E2D3301-2EC4-4C0F-B889-87073B30F673} = {2E2D3301-2EC4-4C0F-B889-87073B30F673}
|
||||
EndProjectSection
|
||||
EndProject
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "bzip2", "..\third_party\bzip2\bzip2.vcproj", "{2A70CBF0-847E-4E3A-B926-542A656DC7FE}"
|
||||
|
@ -160,28 +161,29 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libcef", "libcef\libcef.vcp
|
|||
Release.AspNetCompiler.Debug = "False"
|
||||
EndProjectSection
|
||||
ProjectSection(ProjectDependencies) = postProject
|
||||
{FC0E1FD0-5DD7-4041-A1C9-CD3C376E4EED} = {FC0E1FD0-5DD7-4041-A1C9-CD3C376E4EED}
|
||||
{F54ABC59-5C00-414A-A9BA-BAF26D1699F0} = {F54ABC59-5C00-414A-A9BA-BAF26D1699F0}
|
||||
{F4F4BCAA-EA59-445C-A119-3E6C29647A51} = {F4F4BCAA-EA59-445C-A119-3E6C29647A51}
|
||||
{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}
|
||||
{8C27D792-2648-4F5E-9ED0-374276327308} = {8C27D792-2648-4F5E-9ED0-374276327308}
|
||||
{8423AF0D-4B88-4EBF-94E1-E4D00D00E21C} = {8423AF0D-4B88-4EBF-94E1-E4D00D00E21C}
|
||||
{7100F41F-868D-4E99-80A2-AF8E6574749D} = {7100F41F-868D-4E99-80A2-AF8E6574749D}
|
||||
{625A8F11-2B4E-45B4-BD99-C6D629C606C0} = {625A8F11-2B4E-45B4-BD99-C6D629C606C0}
|
||||
{5916D37D-8C97-424F-A904-74E52594C2D6} = {5916D37D-8C97-424F-A904-74E52594C2D6}
|
||||
{5597AD47-3494-4750-A235-4F9C2F864700} = {5597AD47-3494-4750-A235-4F9C2F864700}
|
||||
{49909552-0B0C-4C14-8CF6-DB8A2ADE0934} = {49909552-0B0C-4C14-8CF6-DB8A2ADE0934}
|
||||
{326E9795-E760-410A-B69A-3F79DB3F5243} = {326E9795-E760-410A-B69A-3F79DB3F5243}
|
||||
{2A70CBF0-847E-4E3A-B926-542A656DC7FE} = {2A70CBF0-847E-4E3A-B926-542A656DC7FE}
|
||||
{238CE175-76CE-4A25-A676-69D115885601} = {238CE175-76CE-4A25-A676-69D115885601}
|
||||
{1C16337B-ACF3-4D03-AA90-851C5B5EADA6} = {1C16337B-ACF3-4D03-AA90-851C5B5EADA6}
|
||||
{238CE175-76CE-4A25-A676-69D115885601} = {238CE175-76CE-4A25-A676-69D115885601}
|
||||
{2A70CBF0-847E-4E3A-B926-542A656DC7FE} = {2A70CBF0-847E-4E3A-B926-542A656DC7FE}
|
||||
{326E9795-E760-410A-B69A-3F79DB3F5243} = {326E9795-E760-410A-B69A-3F79DB3F5243}
|
||||
{49909552-0B0C-4C14-8CF6-DB8A2ADE0934} = {49909552-0B0C-4C14-8CF6-DB8A2ADE0934}
|
||||
{5597AD47-3494-4750-A235-4F9C2F864700} = {5597AD47-3494-4750-A235-4F9C2F864700}
|
||||
{5916D37D-8C97-424F-A904-74E52594C2D6} = {5916D37D-8C97-424F-A904-74E52594C2D6}
|
||||
{625A8F11-2B4E-45B4-BD99-C6D629C606C0} = {625A8F11-2B4E-45B4-BD99-C6D629C606C0}
|
||||
{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}
|
||||
{1832A374-8A74-4F9E-B536-69A699B3E165} = {1832A374-8A74-4F9E-B536-69A699B3E165}
|
||||
EndProjectSection
|
||||
EndProject
|
||||
|
@ -209,8 +211,8 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "activex_shim", "..\webkit\a
|
|||
Release.AspNetCompiler.Debug = "False"
|
||||
EndProjectSection
|
||||
ProjectSection(ProjectDependencies) = postProject
|
||||
{EF5E94AB-B646-4E5B-A058-52EF07B8351C} = {EF5E94AB-B646-4E5B-A058-52EF07B8351C}
|
||||
{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\build\net.vcproj", "{326E9795-E760-410A-B69A-3F79DB3F5243}"
|
||||
|
@ -219,6 +221,7 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "net", "..\net\build\net.vcp
|
|||
Release.AspNetCompiler.Debug = "False"
|
||||
EndProjectSection
|
||||
ProjectSection(ProjectDependencies) = postProject
|
||||
{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942} = {8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}
|
||||
{E13045CD-7E1F-4A41-9B18-8D288B2E7B41} = {E13045CD-7E1F-4A41-9B18-8D288B2E7B41}
|
||||
EndProjectSection
|
||||
EndProject
|
||||
|
@ -267,8 +270,8 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "default_plugin", "..\webkit
|
|||
Release.AspNetCompiler.Debug = "False"
|
||||
EndProjectSection
|
||||
ProjectSection(ProjectDependencies) = postProject
|
||||
{31D88CBF-DC28-47A8-8838-BF81D528EE74} = {31D88CBF-DC28-47A8-8838-BF81D528EE74}
|
||||
{60B43839-95E6-4526-A661-209F16335E0E} = {60B43839-95E6-4526-A661-209F16335E0E}
|
||||
{31D88CBF-DC28-47A8-8838-BF81D528EE74} = {31D88CBF-DC28-47A8-8838-BF81D528EE74}
|
||||
EndProjectSection
|
||||
EndProject
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "JavaScriptCore_pcre", "..\webkit\build\JavaScriptCore\JavaScriptCore_pcre.vcproj", "{49909552-0B0C-4C14-8CF6-DB8A2ADE0934}"
|
||||
|
@ -316,9 +319,9 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "tld_cleanup", "..\net\build
|
|||
Release.AspNetCompiler.Debug = "False"
|
||||
EndProjectSection
|
||||
ProjectSection(ProjectDependencies) = postProject
|
||||
{1832A374-8A74-4F9E-B536-69A699B3E165} = {1832A374-8A74-4F9E-B536-69A699B3E165}
|
||||
{8C27D792-2648-4F5E-9ED0-374276327308} = {8C27D792-2648-4F5E-9ED0-374276327308}
|
||||
{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}
|
||||
EndProjectSection
|
||||
EndProject
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "v8_mksnapshot", "..\v8\tools\visual_studio\v8_mksnapshot.vcproj", "{865575D0-37E2-405E-8CBA-5F6C485B5A26}"
|
||||
|
@ -363,33 +366,33 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "cefclient", "tests\cefclien
|
|||
Release.AspNetCompiler.Debug = "False"
|
||||
EndProjectSection
|
||||
ProjectSection(ProjectDependencies) = postProject
|
||||
{EC8B7909-62AF-470D-A75D-E1D89C837142} = {EC8B7909-62AF-470D-A75D-E1D89C837142}
|
||||
{8423AF0D-4B88-4EBF-94E1-E4D00D00E21C} = {8423AF0D-4B88-4EBF-94E1-E4D00D00E21C}
|
||||
{625A8F11-2B4E-45B4-BD99-C6D629C606C0} = {625A8F11-2B4E-45B4-BD99-C6D629C606C0}
|
||||
{7100F41F-868D-4E99-80A2-AF8E6574749D} = {7100F41F-868D-4E99-80A2-AF8E6574749D}
|
||||
{60B43839-95E6-4526-A661-209F16335E0E} = {60B43839-95E6-4526-A661-209F16335E0E}
|
||||
{C564F145-9172-42C3-BFCB-6014CA97DBCD} = {C564F145-9172-42C3-BFCB-6014CA97DBCD}
|
||||
{5597AD47-3494-4750-A235-4F9C2F864700} = {5597AD47-3494-4750-A235-4F9C2F864700}
|
||||
{6EAD4A4B-2BBC-4974-8E45-BB5C16CC2AC9} = {6EAD4A4B-2BBC-4974-8E45-BB5C16CC2AC9}
|
||||
{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}
|
||||
{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}
|
||||
{A508ADD3-CECE-4E0F-8448-2F5E454DF551} = {A508ADD3-CECE-4E0F-8448-2F5E454DF551}
|
||||
{FC0E1FD0-5DD7-4041-A1C9-CD3C376E4EED} = {FC0E1FD0-5DD7-4041-A1C9-CD3C376E4EED}
|
||||
{EF5E94AB-B646-4E5B-A058-52EF07B8351C} = {EF5E94AB-B646-4E5B-A058-52EF07B8351C}
|
||||
{F4F4BCAA-EA59-445C-A119-3E6C29647A51} = {F4F4BCAA-EA59-445C-A119-3E6C29647A51}
|
||||
{C0334F9A-1168-4101-9DD8-C30FB252D435} = {C0334F9A-1168-4101-9DD8-C30FB252D435}
|
||||
{326E9795-E760-410A-B69A-3F79DB3F5243} = {326E9795-E760-410A-B69A-3F79DB3F5243}
|
||||
{8C27D792-2648-4F5E-9ED0-374276327308} = {8C27D792-2648-4F5E-9ED0-374276327308}
|
||||
{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}
|
||||
{6EAD4A4B-2BBC-4974-8E45-BB5C16CC2AC9} = {6EAD4A4B-2BBC-4974-8E45-BB5C16CC2AC9}
|
||||
{5597AD47-3494-4750-A235-4F9C2F864700} = {5597AD47-3494-4750-A235-4F9C2F864700}
|
||||
{C564F145-9172-42C3-BFCB-6014CA97DBCD} = {C564F145-9172-42C3-BFCB-6014CA97DBCD}
|
||||
{60B43839-95E6-4526-A661-209F16335E0E} = {60B43839-95E6-4526-A661-209F16335E0E}
|
||||
{7100F41F-868D-4E99-80A2-AF8E6574749D} = {7100F41F-868D-4E99-80A2-AF8E6574749D}
|
||||
{625A8F11-2B4E-45B4-BD99-C6D629C606C0} = {625A8F11-2B4E-45B4-BD99-C6D629C606C0}
|
||||
{8423AF0D-4B88-4EBF-94E1-E4D00D00E21C} = {8423AF0D-4B88-4EBF-94E1-E4D00D00E21C}
|
||||
{EC8B7909-62AF-470D-A75D-E1D89C837142} = {EC8B7909-62AF-470D-A75D-E1D89C837142}
|
||||
EndProjectSection
|
||||
EndProject
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "icudt", "..\third_party\icu38\build\icudt.vcproj", "{A0D94973-D355-47A5-A1E2-3456F321F010}"
|
||||
|
@ -398,6 +401,18 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "icudt", "..\third_party\icu
|
|||
Release.AspNetCompiler.Debug = "False"
|
||||
EndProjectSection
|
||||
EndProject
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "net_resources", "..\net\build\net_resources.vcproj", "{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}"
|
||||
ProjectSection(WebsiteProperties) = preProject
|
||||
Debug.AspNetCompiler.Debug = "True"
|
||||
Release.AspNetCompiler.Debug = "False"
|
||||
EndProjectSection
|
||||
EndProject
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "webkit_resources", "..\webkit\build\webkit_resources\webkit_resources.vcproj", "{0B469837-3D46-484A-AFB3-C5A6C68730B9}"
|
||||
ProjectSection(WebsiteProperties) = preProject
|
||||
Debug.AspNetCompiler.Debug = "True"
|
||||
Release.AspNetCompiler.Debug = "False"
|
||||
EndProjectSection
|
||||
EndProject
|
||||
Global
|
||||
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
||||
Debug|Mixed Platforms = Debug|Mixed Platforms
|
||||
|
@ -701,6 +716,22 @@ Global
|
|||
{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
|
||||
{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}.Debug|Win32.Build.0 = Debug|Win32
|
||||
{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}.Release|Mixed Platforms.ActiveCfg = Release|Win32
|
||||
{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}.Release|Mixed Platforms.Build.0 = Release|Win32
|
||||
{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}.Release|Win32.ActiveCfg = Release|Win32
|
||||
{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}.Release|Win32.Build.0 = Release|Win32
|
||||
{0B469837-3D46-484A-AFB3-C5A6C68730B9}.Debug|Mixed Platforms.ActiveCfg = Debug|Win32
|
||||
{0B469837-3D46-484A-AFB3-C5A6C68730B9}.Debug|Mixed Platforms.Build.0 = Debug|Win32
|
||||
{0B469837-3D46-484A-AFB3-C5A6C68730B9}.Debug|Win32.ActiveCfg = Debug|Win32
|
||||
{0B469837-3D46-484A-AFB3-C5A6C68730B9}.Debug|Win32.Build.0 = Debug|Win32
|
||||
{0B469837-3D46-484A-AFB3-C5A6C68730B9}.Release|Mixed Platforms.ActiveCfg = Release|Win32
|
||||
{0B469837-3D46-484A-AFB3-C5A6C68730B9}.Release|Mixed Platforms.Build.0 = Release|Win32
|
||||
{0B469837-3D46-484A-AFB3-C5A6C68730B9}.Release|Win32.ActiveCfg = Release|Win32
|
||||
{0B469837-3D46-484A-AFB3-C5A6C68730B9}.Release|Win32.Build.0 = Release|Win32
|
||||
EndGlobalSection
|
||||
GlobalSection(SolutionProperties) = preSolution
|
||||
HideSolutionNode = FALSE
|
||||
|
@ -717,6 +748,7 @@ Global
|
|||
{5916D37D-8C97-424F-A904-74E52594C2D6} = {CB43561E-A6F8-49E2-96A2-3F2BA1FFF21E}
|
||||
{2F7EDFA2-EE27-4D83-8454-9EFBD5779203} = {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}
|
||||
{6EAD4A4B-2BBC-4974-8E45-BB5C16CC2AC9} = {EF78C1F9-AA17-4CA5-B6CB-39B37A73A3DA}
|
||||
{CD9CA56E-4E94-444C-87D4-58CA1E6F300D} = {EF78C1F9-AA17-4CA5-B6CB-39B37A73A3DA}
|
||||
{1AFC1EC3-24FA-4260-B099-76319EC9977A} = {EF78C1F9-AA17-4CA5-B6CB-39B37A73A3DA}
|
||||
|
@ -733,6 +765,7 @@ Global
|
|||
{1832A374-8A74-4F9E-B536-69A699B3E165} = {EF78C1F9-AA17-4CA5-B6CB-39B37A73A3DA}
|
||||
{A508ADD3-CECE-4E0F-8448-2F5E454DF551} = {EF78C1F9-AA17-4CA5-B6CB-39B37A73A3DA}
|
||||
{F54ABC59-5C00-414A-A9BA-BAF26D1699F0} = {EF78C1F9-AA17-4CA5-B6CB-39B37A73A3DA}
|
||||
{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942} = {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}
|
||||
{B55CA863-B374-4BAF-95AC-539E4FA4C90C} = {873D095E-150E-4262-8C41-2D8ED02F0F57}
|
||||
|
|
|
@ -606,7 +606,7 @@ void CefBrowserImpl::UIT_PrintPage(int page_number, WebFrame* frame,
|
|||
DCHECK_NE(saved_state, 0);
|
||||
|
||||
// 100% GDI based.
|
||||
gfx::VectorCanvas canvas(hDC, (int)ceil(dest_size_x), (int)ceil(dest_size_y));
|
||||
skia::VectorCanvas canvas(hDC, (int)ceil(dest_size_x), (int)ceil(dest_size_y));
|
||||
canvas.translate(SkDoubleToScalar(dest_margin),
|
||||
SkDoubleToScalar(dest_margin));
|
||||
canvas.scale(SkDoubleToScalar((dest_size_x - dest_margin * 2) / src_size_x),
|
||||
|
|
|
@ -24,11 +24,16 @@ MSVC_POP_WARNING();
|
|||
#include "webkit/glue/glue_util.h"
|
||||
#include "webkit/glue/webframe.h"
|
||||
#include "webkit/glue/webkit_glue.h"
|
||||
#include "webkit/glue/webkit_resources.h"
|
||||
|
||||
// Generated by GRIT
|
||||
#include "webkit_resources.h"
|
||||
|
||||
namespace webkit_glue {
|
||||
|
||||
bool IsMediaPlayerAvailable() {
|
||||
return true;
|
||||
}
|
||||
|
||||
void PrefetchDns(const std::string& hostname) {}
|
||||
|
||||
void PrecacheUrl(const char16* url, int url_length) {}
|
||||
|
@ -127,6 +132,10 @@ bool SpellCheckWord(const wchar_t* word, int word_len,
|
|||
return true;
|
||||
}
|
||||
|
||||
ScreenInfo GetScreenInfo(gfx::NativeView window) {
|
||||
return GetScreenInfoHelper(window);
|
||||
}
|
||||
|
||||
bool IsPluginRunningInRendererProcess() {
|
||||
return true;
|
||||
}
|
||||
|
|
|
@ -59,17 +59,13 @@ bool DownloadUrl(const std::string& url, HWND caller_window) {
|
|||
return false;
|
||||
}
|
||||
|
||||
ScreenInfo GetScreenInfo(gfx::NativeView window) {
|
||||
return GetScreenInfoHelper(window);
|
||||
}
|
||||
|
||||
void CaptureWebViewBitmap(HWND mainWnd, WebView* webview, HBITMAP& bitmap, SIZE& size)
|
||||
{
|
||||
gfx::Size webSize = webview->GetSize();
|
||||
size.cx = webSize.width();
|
||||
size.cy = webSize.height();
|
||||
|
||||
gfx::PlatformCanvasWin canvas(size.cx, size.cy, true);
|
||||
skia::PlatformCanvasWin canvas(size.cx, size.cy, true);
|
||||
canvas.drawARGB(255, 255, 255, 255, SkPorterDuff::kSrc_Mode);
|
||||
PlatformContextSkia context(&canvas);
|
||||
gfx::Rect rect(size.cx, size.cy);
|
||||
|
|
|
@ -54,7 +54,7 @@ WebView* BrowserWebViewDelegate::CreateWebView(WebView* webview,
|
|||
}
|
||||
|
||||
WebWidget* BrowserWebViewDelegate::CreatePopupWidget(WebView* webview,
|
||||
bool focus_on_show) {
|
||||
bool activatable) {
|
||||
return browser_->UIT_CreatePopupWidget(webview);
|
||||
}
|
||||
|
||||
|
@ -468,7 +468,7 @@ void BrowserWebViewDelegate::SetUserStyleSheetLocation(const GURL& location) {
|
|||
|
||||
// WebWidgetDelegate ---------------------------------------------------------
|
||||
|
||||
gfx::NativeView BrowserWebViewDelegate::GetContainingWindow(WebWidget* webwidget) {
|
||||
gfx::NativeView BrowserWebViewDelegate::GetContainingView(WebWidget* webwidget) {
|
||||
if (WebWidgetHost* host = GetHostForWidget(webwidget))
|
||||
return host->window_handle();
|
||||
|
||||
|
|
|
@ -20,6 +20,7 @@
|
|||
|
||||
#include "base/basictypes.h"
|
||||
#include "base/ref_counted.h"
|
||||
#include "webkit/glue/webcursor.h"
|
||||
#include "webkit/glue/webview_delegate.h"
|
||||
#include "webkit/glue/webwidget_delegate.h"
|
||||
#if defined(OS_WIN)
|
||||
|
@ -42,9 +43,7 @@ class BrowserWebViewDelegate : public base::RefCounted<BrowserWebViewDelegate>,
|
|||
top_loading_frame_(NULL),
|
||||
page_id_(-1),
|
||||
last_page_id_updated_(-1)
|
||||
#if defined(OS_WIN)
|
||||
, custom_cursor_(NULL)
|
||||
#elif defined(OS_LINUX)
|
||||
#if defined(OS_LINUX)
|
||||
, cursor_type_(GDK_X_CURSOR)
|
||||
#endif
|
||||
{
|
||||
|
@ -53,7 +52,7 @@ class BrowserWebViewDelegate : public base::RefCounted<BrowserWebViewDelegate>,
|
|||
|
||||
// WebViewDelegate
|
||||
virtual WebView* CreateWebView(WebView* webview, bool user_gesture);
|
||||
virtual WebWidget* CreatePopupWidget(WebView* webview, bool focus_on_show);
|
||||
virtual WebWidget* CreatePopupWidget(WebView* webview, bool activatable);
|
||||
virtual WebPluginDelegate* CreatePluginDelegate(
|
||||
WebView* webview,
|
||||
const GURL& url,
|
||||
|
@ -179,7 +178,7 @@ class BrowserWebViewDelegate : public base::RefCounted<BrowserWebViewDelegate>,
|
|||
virtual int GetHistoryForwardListCount();
|
||||
|
||||
// WebWidgetDelegate
|
||||
virtual gfx::NativeView GetContainingWindow(WebWidget* webwidget);
|
||||
virtual gfx::NativeView GetContainingView(WebWidget* webwidget);
|
||||
virtual void DidInvalidateRect(WebWidget* webwidget, const gfx::Rect& rect);
|
||||
virtual void DidScrollRect(WebWidget* webwidget, int dx, int dy,
|
||||
const gfx::Rect& clip_rect);
|
||||
|
@ -259,9 +258,8 @@ class BrowserWebViewDelegate : public base::RefCounted<BrowserWebViewDelegate>,
|
|||
int page_id_;
|
||||
int last_page_id_updated_;
|
||||
|
||||
WebCursor current_cursor_;
|
||||
#if defined(OS_WIN)
|
||||
HCURSOR custom_cursor_;
|
||||
|
||||
// Classes needed by drag and drop.
|
||||
scoped_refptr<BrowserDragDelegate> drag_delegate_;
|
||||
scoped_refptr<BrowserDropDelegate> drop_delegate_;
|
||||
|
|
|
@ -41,8 +41,6 @@
|
|||
// WebViewDelegate -----------------------------------------------------------
|
||||
|
||||
BrowserWebViewDelegate::~BrowserWebViewDelegate() {
|
||||
if (custom_cursor_)
|
||||
DestroyIcon(custom_cursor_);
|
||||
RevokeDragDrop(browser_->UIT_GetWebViewWndHandle());
|
||||
}
|
||||
|
||||
|
@ -52,7 +50,7 @@ WebPluginDelegate* BrowserWebViewDelegate::CreatePluginDelegate(
|
|||
const std::string& mime_type,
|
||||
const std::string& clsid,
|
||||
std::string* actual_mime_type) {
|
||||
HWND hwnd = GetContainingWindow(webview);
|
||||
HWND hwnd = GetContainingView(webview);
|
||||
if (!hwnd)
|
||||
return NULL;
|
||||
|
||||
|
@ -64,9 +62,9 @@ WebPluginDelegate* BrowserWebViewDelegate::CreatePluginDelegate(
|
|||
allow_wildcard, &info,
|
||||
actual_mime_type)) {
|
||||
if (actual_mime_type && !actual_mime_type->empty())
|
||||
return WebPluginDelegateImpl::Create(info.file, *actual_mime_type, hwnd);
|
||||
return WebPluginDelegateImpl::Create(info.path, *actual_mime_type, hwnd);
|
||||
else
|
||||
return WebPluginDelegateImpl::Create(info.file, mime_type, hwnd);
|
||||
return WebPluginDelegateImpl::Create(info.path, mime_type, hwnd);
|
||||
}
|
||||
|
||||
// second, look for plugins using the embedded plugin list
|
||||
|
@ -107,17 +105,9 @@ void BrowserWebViewDelegate::CloseWidgetSoon(WebWidget* webwidget) {
|
|||
void BrowserWebViewDelegate::SetCursor(WebWidget* webwidget,
|
||||
const WebCursor& cursor) {
|
||||
if (WebWidgetHost* host = GetHostForWidget(webwidget)) {
|
||||
if (custom_cursor_) {
|
||||
DestroyIcon(custom_cursor_);
|
||||
custom_cursor_ = NULL;
|
||||
}
|
||||
if (cursor.IsCustom()) {
|
||||
custom_cursor_ = cursor.GetCustomCursor();
|
||||
host->SetCursor(custom_cursor_);
|
||||
} else {
|
||||
current_cursor_ = cursor;
|
||||
HINSTANCE mod_handle = GetModuleHandle(NULL);
|
||||
host->SetCursor(cursor.GetCursor(mod_handle));
|
||||
}
|
||||
host->SetCursor(current_cursor_.GetCursor(mod_handle));
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -7,7 +7,7 @@
|
|||
>
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
AdditionalIncludeDirectories=""$(OutDir)\WebKit";"$(SolutionDir)";"$(IntDir)\..\localized_strings";"$(SolutionDir)..\webkit\port\bridge";"$(SolutionDir)..\webkit\port\platform";"$(SolutionDir)..\webkit\port\platform\network";"$(SolutionDir)..\webkit\glue";"$(SolutionDir)..\third_party\webkit\src\";"$(OutDir)\obj\WebCore\JavaScriptHeaders";"$(OutDir)""
|
||||
AdditionalIncludeDirectories=""$(OutDir)\WebKit";"$(OutDir)\grit_derived_sources";"$(SolutionDir)";"$(IntDir)\..\localized_strings";"$(SolutionDir)..\webkit\port\bridge";"$(SolutionDir)..\webkit\port\platform";"$(SolutionDir)..\webkit\port\platform\network";"$(SolutionDir)..\webkit\glue";"$(SolutionDir)..\third_party\webkit\src\";"$(OutDir)\obj\WebCore\JavaScriptHeaders";"$(OutDir)""
|
||||
PreprocessorDefinitions="_CRT_SECURE_NO_DEPRECATE"
|
||||
/>
|
||||
<Tool
|
||||
|
|
|
@ -6,6 +6,6 @@
|
|||
>
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
AdditionalIncludeDirectories=""$(OutDir)\obj\WebCore";"$(OutDir)\obj\WebCore\JavaScriptHeaders";"$(OutDir)\obj\WebCore\JavaScriptHeaders\JavaScriptCore";"$(SolutionDir)..\webkit\pending\";"$(SolutionDir)..\webkit\pending\kjs";"$(SolutionDir)..\webkit\pending\wtf";"$(SolutionDir)..\webkit\port\bridge";"$(SolutionDir)..\webkit\port\css";"$(SolutionDir)..\webkit\port\dom";"$(SolutionDir)..\webkit\port\history";"$(SolutionDir)..\webkit\port\loader";"$(SolutionDir)..\webkit\port\page";"$(SolutionDir)..\webkit\port\page\chromium";"$(SolutionDir)..\webkit\port\page\win";"$(SolutionDir)..\webkit\port\platform";"$(SolutionDir)..\webkit\port\platform\chromium";"$(SolutionDir)..\webkit\port\platform\win";"$(SolutionDir)..\webkit\port\platform\network\chromium";"$(SolutionDir)..\webkit\port\platform\image-decoders";"$(SolutionDir)..\webkit\port\platform\image-decoders\bmp";"$(SolutionDir)..\webkit\port\platform\image-decoders\gif";"$(SolutionDir)..\webkit\port\platform\image-decoders\ico";"$(SolutionDir)..\webkit\port\platform\image-decoders\jpeg";"$(SolutionDir)..\webkit\port\platform\image-decoders\png";"$(SolutionDir)..\webkit\port\platform\image-decoders\xbm";"$(SolutionDir)..\webkit\port\platform\network";"$(SolutionDir)..\webkit\port\plugins";"$(SolutionDir)..\webkit\port\rendering";"$(SolutionDir)..\webkit\port\platform\graphics";"$(SolutionDir)..\webkit\port\platform\graphics\chromium";"$(SolutionDir)..\webkit\port\platform\graphics\skia";"$(SolutionDir)..\webkit";"$(SolutionDir)..\webkit\build";"$(ProjectDir)";"$(SolutionDir)..\third_party\WebKit\WebCore\";"$(SolutionDir)..\third_party\WebKit\WebCore\bridge";"$(SolutionDir)..\third_party\WebKit\WebCore\bridge\c";"$(SolutionDir)..\third_party\WebKit\WebCore\css";"$(SolutionDir)..\third_party\WebKit\WebCore\dom";"$(SolutionDir)..\third_party\WebKit\WebCore\editing";"$(SolutionDir)..\third_party\WebKit\WebCore\history";"$(SolutionDir)..\third_party\WebKit\WebCore\html";"$(SolutionDir)..\third_party\WebKit\WebCore\loader";"$(SolutionDir)..\third_party\WebKit\WebCore\loader\appcache";"$(SolutionDir)..\third_party\WebKit\WebCore\loader\archive";"$(SolutionDir)..\third_party\WebKit\WebCore\loader\icon";"$(SolutionDir)..\third_party\WebKit\WebCore\page";"$(SolutionDir)..\third_party\WebKit\WebCore\platform";"$(SolutionDir)..\third_party\WebKit\WebCore\page\animation";"$(SolutionDir)..\third_party\WebKit\WebCore\platform\text";"$(SolutionDir)..\third_party\WebKit\WebCore\platform\graphics";"$(SolutionDir)..\third_party\WebKit\WebCore\svg\graphics";"$(SolutionDir)..\third_party\WebKit\WebCore\platform\network";"$(SolutionDir)..\third_party\WebKit\WebCore\platform\sql";"$(SolutionDir)..\third_party\WebKit\WebCore\rendering";"$(SolutionDir)..\third_party\WebKit\WebCore\rendering\style";"$(SolutionDir)..\third_party\WebKit\WebCore\storage";"$(SolutionDir)..\third_party\WebKit\WebCore\xml";"$(SolutionDir)..\third_party\WebKit\WebCore";"$(SolutionDir)..\third_party\WebKit\WebCore\os-win32";"$(SolutionDir)..\third_party\WebKit\WebCore\wtf";"$(SolutionDir)..\third_party\WebKit\JavaScriptCore";"$(SolutionDir)..\third_party\WebKit\JavaScriptCore\wtf";"$(SolutionDir)..\third_party\WebKit\JavaScriptCore\os-win32";"$(SolutionDir)..\third_party\WebKit\WebCore\svg";"$(SolutionDir)..\third_party\WebKit\WebCore\svg\animation";"$(SolutionDir)..\third_party\WebKit\WebCore\svg\graphics\filters";"$(SolutionDir)..\third_party\WebKit\WebCore\plugins";"$(SolutionDir)..\third_party\WebKit\WebCore\inspector";"$(SolutionDir)..\third_party\sqlite";"$(SDKIncludes)";"$(IntDir)\..\WebCore\DerivedSources";"
|
||||
AdditionalIncludeDirectories=""$(OutDir)\obj\WebCore";"$(OutDir)\obj\WebCore\JavaScriptHeaders";"$(OutDir)\obj\WebCore\JavaScriptHeaders\JavaScriptCore";"$(SolutionDir)..\webkit\pending\";"$(SolutionDir)..\webkit\port\platform";"$(SolutionDir)..\webkit\port\platform\image-decoders";"$(SolutionDir)..\webkit\port\platform\image-decoders\bmp";"$(SolutionDir)..\webkit\port\platform\image-decoders\gif";"$(SolutionDir)..\webkit\port\platform\image-decoders\ico";"$(SolutionDir)..\webkit\port\platform\image-decoders\jpeg";"$(SolutionDir)..\webkit\port\platform\image-decoders\png";"$(SolutionDir)..\webkit\port\platform\image-decoders\xbm";"$(SolutionDir)..\webkit";"$(SolutionDir)..\webkit\build";"$(ProjectDir)";"$(SolutionDir)..\third_party\WebKit\WebCore\";"$(SolutionDir)..\third_party\WebKit\WebCore\bridge";"$(SolutionDir)..\third_party\WebKit\WebCore\bridge\c";"$(SolutionDir)..\third_party\WebKit\WebCore\css";"$(SolutionDir)..\third_party\WebKit\WebCore\dom";"$(SolutionDir)..\third_party\WebKit\WebCore\editing";"$(SolutionDir)..\third_party\WebKit\WebCore\history";"$(SolutionDir)..\third_party\WebKit\WebCore\html";"$(SolutionDir)..\third_party\WebKit\WebCore\loader";"$(SolutionDir)..\third_party\WebKit\WebCore\loader\appcache";"$(SolutionDir)..\third_party\WebKit\WebCore\loader\archive";"$(SolutionDir)..\third_party\WebKit\WebCore\loader\icon";"$(SolutionDir)..\third_party\WebKit\WebCore\page";"$(SolutionDir)..\third_party\WebKit\WebCore\platform";"$(SolutionDir)..\third_party\WebKit\WebCore\page\animation";"$(SolutionDir)..\third_party\WebKit\WebCore\platform\text";"$(SolutionDir)..\third_party\WebKit\WebCore\platform\graphics";"$(SolutionDir)..\third_party\WebKit\WebCore\svg\graphics";"$(SolutionDir)..\third_party\WebKit\WebCore\platform\network";"$(SolutionDir)..\third_party\WebKit\WebCore\platform\sql";"$(SolutionDir)..\third_party\WebKit\WebCore\rendering";"$(SolutionDir)..\third_party\WebKit\WebCore\rendering\style";"$(SolutionDir)..\third_party\WebKit\WebCore\storage";"$(SolutionDir)..\third_party\WebKit\WebCore\xml";"$(SolutionDir)..\third_party\WebKit\WebCore";"$(SolutionDir)..\third_party\WebKit\WebCore\os-win32";"$(SolutionDir)..\third_party\WebKit\WebCore\wtf";"$(SolutionDir)..\third_party\WebKit\JavaScriptCore";"$(SolutionDir)..\third_party\WebKit\JavaScriptCore\wtf";"$(SolutionDir)..\third_party\WebKit\JavaScriptCore\os-win32";"$(SolutionDir)..\third_party\WebKit\WebCore\svg";"$(SolutionDir)..\third_party\WebKit\WebCore\svg\animation";"$(SolutionDir)..\third_party\WebKit\WebCore\svg\graphics\filters";"$(SolutionDir)..\third_party\WebKit\WebCore\plugins";"$(SolutionDir)..\third_party\WebKit\WebCore\inspector";"$(SolutionDir)..\third_party\WebKit\WebCore\platform\chromium";"$(SolutionDir)..\third_party\WebKit\WebCore\platform\graphics\skia";"$(SolutionDir)..\third_party\WebKit\WebCore\platform\network\chromium";"$(SolutionDir)..\third_party\WebKit\WebCore\platform\animation";"$(SolutionDir)..\third_party\WebKit\WebCore\platform\graphics\transforms";"$(SolutionDir)..\third_party\sqlite";"$(SDKIncludes)";"$(IntDir)\..\WebCore\DerivedSources";"
|
||||
/>
|
||||
</VisualStudioPropertySheet>
|
||||
|
|
|
@ -13,20 +13,23 @@
|
|||
#endif
|
||||
|
||||
#include "base/file_util.h"
|
||||
#include "base/lazy_instance.h"
|
||||
#include "base/message_loop.h"
|
||||
#include "base/string_util.h"
|
||||
#include "base/thread_local_storage.h"
|
||||
#include "base/thread_local.h"
|
||||
#include "webkit/glue/glue_util.h"
|
||||
#include "webkit/glue/webplugin.h"
|
||||
#include "webkit/glue/webkit_glue.h"
|
||||
#include "webkit/glue/plugins/plugin_host.h"
|
||||
#include "net/base/escape.h"
|
||||
|
||||
namespace NPAPI
|
||||
{
|
||||
namespace NPAPI {
|
||||
|
||||
// TODO(evanm): don't rely on static initialization.
|
||||
ThreadLocalStorage::Slot BrowserPluginInstance::plugin_instance_tls_index_;
|
||||
// Use TLS to store the PluginInstance object during its creation. We need to
|
||||
// pass this instance to the service manager (MozillaExtensionApi) created as a
|
||||
// result of NPN_GetValue in the context of NP_Initialize.
|
||||
static base::LazyInstance<base::ThreadLocalPointer<BrowserPluginInstance> >
|
||||
lazy_tls(base::LINKER_INITIALIZED);
|
||||
|
||||
BrowserPluginInstance::BrowserPluginInstance(BrowserPluginLib *plugin,
|
||||
const std::string &mime_type)
|
||||
|
@ -287,7 +290,7 @@ void BrowserPluginInstance::NPP_StreamAsFile(NPStream *stream,
|
|||
// Creating a temporary FilePath instance on the stack as the explicit
|
||||
// FilePath constructor with StringType as an argument causes a compiler
|
||||
// error when invoked via vector push back.
|
||||
FilePath file_name(UTF8ToWide(fname));
|
||||
FilePath file_name = FilePath::FromWStringHack(UTF8ToWide(fname));
|
||||
files_created_.push_back(file_name);
|
||||
}
|
||||
|
||||
|
@ -373,7 +376,7 @@ void BrowserPluginInstance::DidReceiveManualResponse(const std::string& url,
|
|||
plugin_data_stream_ = CreateStream(-1, url, mime_type, false, NULL);
|
||||
|
||||
plugin_data_stream_->DidReceiveResponse(mime_type, headers, expected_length,
|
||||
last_modified, &cancel);
|
||||
last_modified, true, &cancel);
|
||||
AddStream(plugin_data_stream_.get());
|
||||
}
|
||||
|
||||
|
@ -427,16 +430,13 @@ void BrowserPluginInstance::OnPluginThreadAsyncCall(void (*func)(void *),
|
|||
|
||||
BrowserPluginInstance* BrowserPluginInstance::SetInitializingInstance(
|
||||
BrowserPluginInstance* instance) {
|
||||
BrowserPluginInstance* old_instance =
|
||||
static_cast<BrowserPluginInstance*>(plugin_instance_tls_index_.Get());
|
||||
plugin_instance_tls_index_.Set(instance);
|
||||
BrowserPluginInstance* old_instance = lazy_tls.Pointer()->Get();
|
||||
lazy_tls.Pointer()->Set(instance);
|
||||
return old_instance;
|
||||
}
|
||||
|
||||
BrowserPluginInstance* BrowserPluginInstance::GetInitializingInstance() {
|
||||
BrowserPluginInstance* instance =
|
||||
static_cast<BrowserPluginInstance*>(plugin_instance_tls_index_.Get());
|
||||
return instance;
|
||||
return lazy_tls.Pointer()->Get();
|
||||
}
|
||||
|
||||
NPError BrowserPluginInstance::GetServiceManager(void** service_manager) {
|
||||
|
|
|
@ -17,7 +17,6 @@
|
|||
#include "base/file_path.h"
|
||||
#include "base/ref_counted.h"
|
||||
#include "base/scoped_ptr.h"
|
||||
#include "base/thread_local_storage.h"
|
||||
#include "webkit/glue/plugins/nphostapi.h"
|
||||
#include "googleurl/src/gurl.h"
|
||||
#include "third_party/npapi/bindings/npapi.h"
|
||||
|
@ -237,11 +236,6 @@ class BrowserPluginInstance : public base::RefCountedThreadSafe<BrowserPluginIns
|
|||
scoped_refptr<BrowserMozillaExtensionApi> mozilla_extenstions_;
|
||||
#endif
|
||||
MessageLoop* message_loop_;
|
||||
// Using TLS to store BrowserPluginInstance object during its creation.
|
||||
// We need to pass this instance to the service manager
|
||||
// (MozillaExtensionApi) created as a result of NPN_GetValue
|
||||
// in the context of NP_Initialize.
|
||||
static ThreadLocalStorage::Slot plugin_instance_tls_index_;
|
||||
scoped_refptr<BrowserPluginStreamUrl> plugin_data_stream_;
|
||||
GURL instance_url_;
|
||||
|
||||
|
|
|
@ -48,7 +48,7 @@ BrowserPluginLib::BrowserPluginLib(WebPluginInfo* info,
|
|||
instance_count_(0) {
|
||||
memset((void*)&plugin_funcs_, 0, sizeof(plugin_funcs_));
|
||||
|
||||
(*loaded_libs_)[info->file] = this;
|
||||
(*loaded_libs_)[info->path.BaseName().value()] = this;
|
||||
}
|
||||
|
||||
BrowserPluginLib::~BrowserPluginLib() {
|
||||
|
@ -121,7 +121,7 @@ void BrowserPluginLib::CloseInstance() {
|
|||
if (instance_count_ == 0) {
|
||||
NP_Shutdown();
|
||||
initialized_ = false;
|
||||
loaded_libs_->erase(web_plugin_info_->file);
|
||||
loaded_libs_->erase(web_plugin_info_->path.BaseName().value());
|
||||
if (loaded_libs_->empty()) {
|
||||
delete loaded_libs_;
|
||||
loaded_libs_ = NULL;
|
||||
|
@ -145,7 +145,7 @@ WebPluginInfo* BrowserPluginLib::CreateWebPluginInfo(const CefPluginVersionInfo&
|
|||
info->name = plugin_info.product_name;
|
||||
info->desc = plugin_info.description;
|
||||
info->version = plugin_info.version;
|
||||
info->file = StringToLowerASCII(plugin_info.unique_name);
|
||||
info->path = FilePath(plugin_info.unique_name);
|
||||
|
||||
for (size_t i = 0; i < mime_types.size(); ++i) {
|
||||
WebPluginMimeType mime_type;
|
||||
|
|
|
@ -61,7 +61,8 @@ void BrowserPluginList::RemovePlugin(const struct CefPluginInfo& plugin_info)
|
|||
{
|
||||
PluginList::iterator it = plugins_.begin();
|
||||
for(; it != plugins_.end(); ++it) {
|
||||
if((*it)->web_plugin_info().file == plugin_info.version_info.unique_name) {
|
||||
if((*it)->web_plugin_info().path.BaseName().value() ==
|
||||
plugin_info.version_info.unique_name) {
|
||||
plugins_.erase(it);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -27,7 +27,8 @@ BrowserPluginStream::~BrowserPluginStream() {
|
|||
bool BrowserPluginStream::Open(const std::string &mime_type,
|
||||
const std::string &headers,
|
||||
uint32 length,
|
||||
uint32 last_modified) {
|
||||
uint32 last_modified,
|
||||
bool request_is_seekable) {
|
||||
headers_ = headers;
|
||||
NPP id = instance_->npp();
|
||||
stream_.end = length;
|
||||
|
@ -37,7 +38,7 @@ bool BrowserPluginStream::Open(const std::string &mime_type,
|
|||
stream_.notifyData = notify_data_;
|
||||
|
||||
bool seekable_stream = false;
|
||||
if (!headers_.empty()) {
|
||||
if (request_is_seekable && !headers_.empty()) {
|
||||
stream_.headers = headers_.c_str();
|
||||
if (headers_.find("Accept-Ranges: bytes") != std::string::npos) {
|
||||
seekable_stream = true;
|
||||
|
|
|
@ -40,10 +40,13 @@ class BrowserPluginStream : public base::RefCounted<BrowserPluginStream> {
|
|||
// mime-types table and the extension (if any) in the URL.
|
||||
// If the size of the stream is known, use length to set the size. If
|
||||
// not known, set length to 0.
|
||||
// The request_is_seekable parameter indicates whether byte range requests
|
||||
// can be issued on the stream.
|
||||
bool Open(const std::string &mime_type,
|
||||
const std::string &headers,
|
||||
uint32 length,
|
||||
uint32 last_modified);
|
||||
uint32 last_modified,
|
||||
bool request_is_seekable);
|
||||
|
||||
// Writes to the stream.
|
||||
int Write(const char *buf, const int len, int data_offset);
|
||||
|
|
|
@ -43,11 +43,13 @@ void BrowserPluginStreamUrl::DidReceiveResponse(const std::string& mime_type,
|
|||
const std::string& headers,
|
||||
uint32 expected_length,
|
||||
uint32 last_modified,
|
||||
bool request_is_seekable,
|
||||
bool* cancel) {
|
||||
bool opened = Open(mime_type,
|
||||
headers,
|
||||
expected_length,
|
||||
last_modified);
|
||||
last_modified,
|
||||
request_is_seekable);
|
||||
if (!opened) {
|
||||
instance()->RemoveStream(this);
|
||||
*cancel = true;
|
||||
|
|
|
@ -49,11 +49,14 @@ class BrowserPluginStreamUrl : public BrowserPluginStream,
|
|||
const std::string& headers,
|
||||
uint32 expected_length,
|
||||
uint32 last_modified,
|
||||
bool request_is_seekable,
|
||||
bool* cancel);
|
||||
void DidReceiveData(const char* buffer, int length, int data_offset);
|
||||
void DidFinishLoading();
|
||||
void DidFail();
|
||||
|
||||
bool IsMultiByteResponseExpected() {
|
||||
return seekable();
|
||||
}
|
||||
|
||||
private:
|
||||
GURL url_;
|
||||
|
|
|
@ -22,7 +22,7 @@ BrowserPluginStringStream::~BrowserPluginStringStream() {
|
|||
void BrowserPluginStringStream::SendToPlugin(const std::string &data,
|
||||
const std::string &mime_type) {
|
||||
int length = static_cast<int>(data.length());
|
||||
if (Open(mime_type, std::string(), length, 0)) {
|
||||
if (Open(mime_type, std::string(), length, 0, false)) {
|
||||
// TODO - check if it was not fully sent, and figure out a backup plan.
|
||||
int written = Write(data.c_str(), length, 0);
|
||||
NPReason reason = written == length ? NPRES_DONE : NPRES_NETWORK_ERR;
|
||||
|
|
|
@ -50,13 +50,13 @@ std::list<MSG> BrowserWebPluginDelegateImpl::throttle_queue_;
|
|||
|
||||
BrowserWebPluginDelegateImpl* BrowserWebPluginDelegateImpl::current_plugin_instance_ = NULL;
|
||||
|
||||
bool BrowserWebPluginDelegateImpl::track_popup_menu_patched_ = false;
|
||||
iat_patch::IATPatchFunction BrowserWebPluginDelegateImpl::iat_patch_helper_;
|
||||
iat_patch::IATPatchFunction BrowserWebPluginDelegateImpl::iat_patch_track_popup_menu_;
|
||||
iat_patch::IATPatchFunction BrowserWebPluginDelegateImpl::iat_patch_set_cursor_;
|
||||
|
||||
BrowserWebPluginDelegateImpl* BrowserWebPluginDelegateImpl::Create(
|
||||
const struct CefPluginInfo& plugin_info,
|
||||
const std::string& mime_type,
|
||||
HWND containing_window) {
|
||||
gfx::NativeView containing_view) {
|
||||
|
||||
scoped_refptr<NPAPI::BrowserPluginLib> plugin =
|
||||
NPAPI::BrowserPluginLib::GetOrCreatePluginLib(plugin_info);
|
||||
|
@ -69,7 +69,7 @@ BrowserWebPluginDelegateImpl* BrowserWebPluginDelegateImpl::Create(
|
|||
|
||||
scoped_refptr<NPAPI::BrowserPluginInstance> instance =
|
||||
plugin->CreateInstance(mime_type);
|
||||
return new BrowserWebPluginDelegateImpl(containing_window, instance.get());
|
||||
return new BrowserWebPluginDelegateImpl(containing_view, instance.get());
|
||||
}
|
||||
|
||||
bool BrowserWebPluginDelegateImpl::IsPluginDelegateWindow(HWND window) {
|
||||
|
@ -124,9 +124,9 @@ LRESULT CALLBACK BrowserWebPluginDelegateImpl::HandleEventMessageFilterHook(
|
|||
}
|
||||
|
||||
BrowserWebPluginDelegateImpl::BrowserWebPluginDelegateImpl(
|
||||
HWND containing_window,
|
||||
gfx::NativeView containing_view,
|
||||
NPAPI::BrowserPluginInstance *instance)
|
||||
: parent_(containing_window),
|
||||
: parent_(containing_view),
|
||||
instance_(instance),
|
||||
quirks_(0),
|
||||
plugin_(NULL),
|
||||
|
@ -149,7 +149,8 @@ BrowserWebPluginDelegateImpl::BrowserWebPluginDelegateImpl(
|
|||
memset(&window_, 0, sizeof(window_));
|
||||
|
||||
const WebPluginInfo& plugin_info = instance_->plugin_lib()->web_plugin_info();
|
||||
std::wstring unique_name = file_util::GetFilenameFromPath(plugin_info.file);
|
||||
std::wstring unique_name =
|
||||
StringToLowerASCII(plugin_info.path.BaseName().value());
|
||||
|
||||
// Assign quirks here if required
|
||||
|
||||
|
@ -229,12 +230,24 @@ bool BrowserWebPluginDelegateImpl::Initialize(const GURL& url,
|
|||
// lives on the browser thread. Our workaround is to intercept the
|
||||
// TrackPopupMenu API for Silverlight and replace the window handle
|
||||
// with the dummy activation window.
|
||||
if (windowless_ && !track_popup_menu_patched_ &&
|
||||
if (windowless_ && !iat_patch_track_popup_menu_.is_patched() &&
|
||||
(quirks_ & PLUGIN_QUIRK_PATCH_TRACKPOPUP_MENU)) {
|
||||
iat_patch_helper_.Patch(plugin_module_handle_, "user32.dll",
|
||||
"TrackPopupMenu",
|
||||
iat_patch_track_popup_menu_.Patch(
|
||||
plugin_module_handle_, "user32.dll", "TrackPopupMenu",
|
||||
BrowserWebPluginDelegateImpl::TrackPopupMenuPatch);
|
||||
track_popup_menu_patched_ = true;
|
||||
}
|
||||
|
||||
// Windowless plugins can set cursors by calling the SetCursor API. This
|
||||
// works because the thread inputs of the browser UI thread and the plugin
|
||||
// thread are attached. We intercept the SetCursor API for windowless plugins
|
||||
// and remember the cursor being set. This is shipped over to the browser
|
||||
// in the HandleEvent call, which ensures that the cursor does not change
|
||||
// when a windowless plugin instance changes the cursor in a background tab.
|
||||
if (windowless_ && !iat_patch_set_cursor_.is_patched() &&
|
||||
(quirks_ & PLUGIN_QUIRK_PATCH_SETCURSOR)) {
|
||||
iat_patch_set_cursor_.Patch(plugin_module_handle_, "user32.dll",
|
||||
"SetCursor",
|
||||
BrowserWebPluginDelegateImpl::SetCursorPatch);
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
@ -254,6 +267,19 @@ void BrowserWebPluginDelegateImpl::DestroyInstance() {
|
|||
|
||||
instance_->NPP_Destroy();
|
||||
|
||||
if (instance_->plugin_lib()) {
|
||||
// Unpatch if this is the last plugin instance.
|
||||
if (instance_->plugin_lib()->instance_count() == 1) {
|
||||
if (iat_patch_set_cursor_.is_patched()) {
|
||||
iat_patch_set_cursor_.Unpatch();
|
||||
}
|
||||
|
||||
if (iat_patch_track_popup_menu_.is_patched()) {
|
||||
iat_patch_track_popup_menu_.Unpatch();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
instance_->set_web_plugin(NULL);
|
||||
instance_ = 0;
|
||||
}
|
||||
|
@ -333,8 +359,8 @@ void BrowserWebPluginDelegateImpl::DidManualLoadFail() {
|
|||
instance()->DidManualLoadFail();
|
||||
}
|
||||
|
||||
std::wstring BrowserWebPluginDelegateImpl::GetPluginPath() {
|
||||
return instance_->plugin_lib()->web_plugin_info().file;
|
||||
FilePath BrowserWebPluginDelegateImpl::GetPluginPath() {
|
||||
return instance_->plugin_lib()->web_plugin_info().path;
|
||||
}
|
||||
|
||||
void BrowserWebPluginDelegateImpl::InstallMissingPlugin() {
|
||||
|
@ -767,6 +793,8 @@ LRESULT CALLBACK BrowserWebPluginDelegateImpl::NativeWndProc(
|
|||
return TRUE;
|
||||
}
|
||||
|
||||
current_plugin_instance_ = delegate;
|
||||
|
||||
switch (message) {
|
||||
case WM_NCDESTROY: {
|
||||
RemoveProp(hwnd, kWebPluginDelegateProperty);
|
||||
|
@ -784,6 +812,7 @@ LRESULT CALLBACK BrowserWebPluginDelegateImpl::NativeWndProc(
|
|||
if (delegate->quirks() & PLUGIN_QUIRK_THROTTLE_WM_USER_PLUS_ONE) {
|
||||
BrowserWebPluginDelegateImpl::ThrottleMessage(
|
||||
delegate->plugin_wnd_proc_, hwnd, message, wparam, lparam);
|
||||
current_plugin_instance_ = NULL;
|
||||
return FALSE;
|
||||
}
|
||||
break;
|
||||
|
@ -810,6 +839,7 @@ LRESULT CALLBACK BrowserWebPluginDelegateImpl::NativeWndProc(
|
|||
LRESULT result = CallWindowProc(delegate->plugin_wnd_proc_, hwnd, message,
|
||||
wparam, lparam);
|
||||
delegate->is_calling_wndproc = false;
|
||||
current_plugin_instance_ = NULL;
|
||||
return result;
|
||||
}
|
||||
|
||||
|
@ -964,12 +994,11 @@ bool BrowserWebPluginDelegateImpl::HandleEvent(NPEvent* event,
|
|||
|
||||
bool ret = instance()->NPP_HandleEvent(event) != 0;
|
||||
|
||||
if (event->event == WM_MOUSEMOVE) {
|
||||
// Snag a reference to the current cursor ASAP in case the plugin modified
|
||||
// it. There is a nasty race condition here with the multiprocess browser
|
||||
// as someone might be setting the cursor in the main process as well.
|
||||
HCURSOR last_cursor;
|
||||
if (WM_MOUSEMOVE == event->event) {
|
||||
last_cursor = ::GetCursor();
|
||||
*cursor = current_windowless_cursor_;
|
||||
}
|
||||
|
||||
if (pop_user_gesture) {
|
||||
|
@ -998,10 +1027,6 @@ bool BrowserWebPluginDelegateImpl::HandleEvent(NPEvent* event,
|
|||
::SetFocus(prev_focus_window);
|
||||
}
|
||||
|
||||
if (WM_MOUSEMOVE == event->event) {
|
||||
cursor->InitFromCursor(last_cursor);
|
||||
}
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
|
@ -1090,3 +1115,25 @@ BOOL WINAPI BrowserWebPluginDelegateImpl::TrackPopupMenuPatch(
|
|||
}
|
||||
return TrackPopupMenu(menu, flags, x, y, reserved, window, rect);
|
||||
}
|
||||
|
||||
HCURSOR WINAPI BrowserWebPluginDelegateImpl::SetCursorPatch(HCURSOR cursor) {
|
||||
// The windowless flash plugin periodically calls SetCursor in a wndproc
|
||||
// instantiated on the plugin thread. This causes annoying cursor flicker
|
||||
// when the mouse is moved on a foreground tab, with a windowless plugin
|
||||
// instance in a background tab. We just ignore the call here.
|
||||
if (!current_plugin_instance_)
|
||||
return GetCursor();
|
||||
|
||||
if (!current_plugin_instance_->windowless()) {
|
||||
return SetCursor(cursor);
|
||||
}
|
||||
|
||||
// It is ok to pass NULL here to GetCursor as we are not looking for cursor
|
||||
// types defined by Webkit.
|
||||
HCURSOR previous_cursor =
|
||||
current_plugin_instance_->current_windowless_cursor_.GetCursor(NULL);
|
||||
|
||||
current_plugin_instance_->current_windowless_cursor_.InitFromExternalCursor(
|
||||
cursor);
|
||||
return previous_cursor;
|
||||
}
|
|
@ -11,11 +11,13 @@
|
|||
|
||||
#include "browser_plugin_lib.h"
|
||||
|
||||
#include "base/file_path.h"
|
||||
#include "base/gfx/native_widget_types.h"
|
||||
#include "base/iat_patch.h"
|
||||
#include "base/ref_counted.h"
|
||||
#include "base/task.h"
|
||||
#include "webkit/glue/webplugin_delegate.h"
|
||||
#include "third_party/npapi/bindings/npapi.h"
|
||||
#include "webkit/glue/webplugin_delegate.h"
|
||||
#include "webkit/glue/webcursor.h"
|
||||
|
||||
namespace NPAPI {
|
||||
|
@ -28,7 +30,7 @@ class BrowserWebPluginDelegateImpl : public WebPluginDelegate {
|
|||
public:
|
||||
static BrowserWebPluginDelegateImpl* Create(const struct CefPluginInfo& plugin_info,
|
||||
const std::string& mime_type,
|
||||
HWND containing_window);
|
||||
gfx::NativeView containing_view);
|
||||
static bool IsPluginDelegateWindow(HWND window);
|
||||
static bool GetPluginNameFromWindow(HWND window, std::wstring *plugin_name);
|
||||
|
||||
|
@ -72,7 +74,7 @@ class BrowserWebPluginDelegateImpl : public WebPluginDelegate {
|
|||
virtual void DidReceiveManualData(const char* buffer, int length);
|
||||
virtual void DidFinishManualLoading();
|
||||
virtual void DidManualLoadFail();
|
||||
virtual std::wstring GetPluginPath();
|
||||
virtual FilePath GetPluginPath();
|
||||
virtual void InstallMissingPlugin();
|
||||
virtual WebPluginResourceClient* CreateResourceClient(int resource_id,
|
||||
const std::string &url,
|
||||
|
@ -94,6 +96,7 @@ class BrowserWebPluginDelegateImpl : public WebPluginDelegate {
|
|||
PLUGIN_QUIRK_DONT_ALLOW_MULTIPLE_INSTANCES = 16,
|
||||
PLUGIN_QUIRK_DIE_AFTER_UNLOAD = 32,
|
||||
PLUGIN_QUIRK_PATCH_TRACKPOPUP_MENU = 64,
|
||||
PLUGIN_QUIRK_PATCH_SETCURSOR = 128,
|
||||
};
|
||||
|
||||
int quirks() { return quirks_; }
|
||||
|
@ -105,7 +108,7 @@ class BrowserWebPluginDelegateImpl : public WebPluginDelegate {
|
|||
bool visible);
|
||||
|
||||
private:
|
||||
BrowserWebPluginDelegateImpl(HWND containing_window,
|
||||
BrowserWebPluginDelegateImpl(gfx::NativeView containing_view,
|
||||
NPAPI::BrowserPluginInstance *instance);
|
||||
~BrowserWebPluginDelegateImpl();
|
||||
|
||||
|
@ -265,11 +268,8 @@ class BrowserWebPluginDelegateImpl : public WebPluginDelegate {
|
|||
// The plugin module handle.
|
||||
HMODULE plugin_module_handle_;
|
||||
|
||||
// Indicates whether we IAT patched the TrackPopupMenu function.
|
||||
static bool track_popup_menu_patched_;
|
||||
|
||||
// Helper object for patching the import table of Silverlight.
|
||||
static iat_patch::IATPatchFunction iat_patch_helper_;
|
||||
// Helper object for patching the TrackPopupMenu API
|
||||
static iat_patch::IATPatchFunction iat_patch_track_popup_menu_;
|
||||
|
||||
// TrackPopupMenu interceptor. Parameters are the same as the Win32 function
|
||||
// TrackPopupMenu.
|
||||
|
@ -277,6 +277,15 @@ class BrowserWebPluginDelegateImpl : public WebPluginDelegate {
|
|||
int y, int reserved, HWND window,
|
||||
const RECT* rect);
|
||||
|
||||
// SetCursor interceptor for windowless plugins.
|
||||
static HCURSOR WINAPI SetCursorPatch(HCURSOR cursor);
|
||||
|
||||
// Helper object for patching the SetCursor API
|
||||
static iat_patch::IATPatchFunction iat_patch_set_cursor_;
|
||||
|
||||
// Holds the current cursor set by the windowless plugin.
|
||||
WebCursor current_windowless_cursor_;
|
||||
|
||||
DISALLOW_EVIL_CONSTRUCTORS(BrowserWebPluginDelegateImpl);
|
||||
};
|
||||
|
||||
|
|
|
@ -252,7 +252,7 @@ bool PrintingContext::InitializeSettings(const DEVMODE& dev_mode,
|
|||
const std::wstring& new_device_name,
|
||||
const PRINTPAGERANGE* ranges,
|
||||
int number_ranges) {
|
||||
gfx::PlatformDeviceWin::InitializeDC(hdc_);
|
||||
skia::PlatformDeviceWin::InitializeDC(hdc_);
|
||||
DCHECK(GetDeviceCaps(hdc_, CLIPCAPS));
|
||||
DCHECK(GetDeviceCaps(hdc_, RASTERCAPS) & RC_STRETCHDIB);
|
||||
DCHECK(GetDeviceCaps(hdc_, RASTERCAPS) & RC_BITMAP64);
|
||||
|
|
|
@ -213,7 +213,7 @@ void WebWidgetHost::Paint() {
|
|||
if (!canvas_.get()) {
|
||||
ResetScrollRect();
|
||||
paint_rect_ = client_rect;
|
||||
canvas_.reset(new gfx::PlatformCanvas(
|
||||
canvas_.reset(new skia::PlatformCanvas(
|
||||
paint_rect_.width(), paint_rect_.height(), true));
|
||||
}
|
||||
|
||||
|
@ -285,6 +285,14 @@ void WebWidgetHost::MouseEvent(UINT message, WPARAM wparam, LPARAM lparam) {
|
|||
break;
|
||||
}
|
||||
webwidget_->HandleInputEvent(&event);
|
||||
|
||||
if (event.type == WebInputEvent::MOUSE_DOWN) {
|
||||
// This mimics a temporary workaround in RenderWidgetHostViewWin
|
||||
// for bug 765011 to get focus when the mouse is clicked. This
|
||||
// happens after the mouse down event is sent to the renderer
|
||||
// because normally Windows does a WM_SETFOCUS after WM_LBUTTONDOWN.
|
||||
::SetFocus(view_);
|
||||
}
|
||||
}
|
||||
|
||||
void WebWidgetHost::WheelEvent(WPARAM wparam, LPARAM lparam) {
|
||||
|
|
|
@ -100,7 +100,7 @@ class WebWidgetHost {
|
|||
|
||||
gfx::NativeView view_;
|
||||
WebWidget* webwidget_;
|
||||
scoped_ptr<gfx::PlatformCanvas> canvas_;
|
||||
scoped_ptr<skia::PlatformCanvas> canvas_;
|
||||
|
||||
// specifies the portion of the webwidget that needs painting
|
||||
gfx::Rect paint_rect_;
|
||||
|
|
Loading…
Reference in New Issue