Index: src/plugin/PluginWbPassThrough.cpp |
=================================================================== |
--- a/src/plugin/PluginWbPassThrough.cpp |
+++ b/src/plugin/PluginWbPassThrough.cpp |
@@ -58,14 +58,15 @@ |
return CFilter::contentTypeAny; |
} |
-int WBPassthruSink::GetContentTypeFromURL(const CString& src) |
+int WBPassthruSink::GetContentTypeFromURL(const std::wstring& src) |
{ |
- CString srcExt = src; |
+ CString srcLegacy = ToCString(src); |
+ CString srcExt = srcLegacy; |
int pos = 0; |
- if ((pos = src.Find('?')) > 0) |
+ if ((pos = srcLegacy.Find('?')) > 0) |
{ |
- srcExt = src.Left(pos); |
+ srcExt = srcLegacy.Left(pos); |
} |
int lastDotIndex = srcExt.ReverseFind('.'); |
@@ -99,7 +100,7 @@ |
return CFilter::contentTypeAny; |
} |
-int WBPassthruSink::GetContentType(const CString& mimeType, const std::wstring& domain, const CString& src) |
+int WBPassthruSink::GetContentType(const CString& mimeType, const std::wstring& domain, const std::wstring& src) |
{ |
// No referer or mime type |
// BINDSTRING_XDR_ORIGIN works only for IE v8+ |
@@ -126,9 +127,9 @@ |
{ |
m_pTargetProtocol = pTargetProtocol; |
bool isBlocked = false; |
- CString src = szUrl; |
- DEBUG_GENERAL(src); |
- CPluginClient::UnescapeUrl(src); |
+ std::wstring src(szUrl); |
+ DEBUG_GENERAL(ToCString(src)); |
+ UnescapeUrl(src); |
// call the impl of the base class as soon as possible because it initializes the base class |
// members, used by this method. It queries for the required interfaces. |
@@ -175,13 +176,13 @@ |
if (tab && client) |
{ |
- CString documentUrl = tab->GetDocumentUrl(); |
+ std::wstring documentUrl = tab->GetDocumentUrl(); |
// Page is identical to document => don't block |
if (documentUrl == src) |
{ |
// fall through |
} |
- else if (CPluginSettings::GetInstance()->IsPluginEnabled() && !client->IsWhitelistedUrl(std::wstring(documentUrl))) |
+ else if (CPluginSettings::GetInstance()->IsPluginEnabled() && !client->IsWhitelistedUrl(documentUrl)) |
{ |
m_boundDomain = tab->GetDocumentUrl(); |
m_contentType = CFilter::contentTypeAny; |
@@ -229,7 +230,7 @@ |
// obtain the "request type" in our terminology. |
if (nullptr != client |
&& CFilter::EContentType::contentTypeAny != m_contentType |
- && client->ShouldBlock(static_cast<const wchar_t*>(src), m_contentType, m_boundDomain, true)) |
+ && client->ShouldBlock(src, m_contentType, m_boundDomain, true)) |
{ |
isBlocked = true; |
} |