Index: src/plugin/PluginDomTraverserBase.h |
=================================================================== |
--- a/src/plugin/PluginDomTraverserBase.h |
+++ b/src/plugin/PluginDomTraverserBase.h |
@@ -27,7 +27,7 @@ |
void TraverseHeader(bool isHeaderTraversed); |
- void TraverseDocument(IWebBrowser2* pBrowser, const std::wstring& domain, const CString& documentName); |
+ void TraverseDocument(IWebBrowser2* pBrowser, const std::wstring& domain, const std::wstring& documentName); |
void TraverseSubdocument(IWebBrowser2* pBrowser, const std::wstring& domain, const CString& documentName); |
virtual void ClearCache(); |
@@ -36,7 +36,7 @@ |
protected: |
- virtual bool OnIFrame(IHTMLElement* pEl, const CString& url, CString& indent) { return true; } |
+ virtual bool OnIFrame(IHTMLElement* pEl, const std::wstring& url, CString& indent) { return true; } |
virtual bool OnElement(IHTMLElement* pEl, const CString& tag, T* cache, bool isDebug, CString& indent) { return true; } |
virtual bool IsEnabled(); |
@@ -88,7 +88,7 @@ |
} |
template <class T> |
-void CPluginDomTraverserBase<T>::TraverseDocument(IWebBrowser2* pBrowser, const std::wstring& domain, const CString& documentName) |
+void CPluginDomTraverserBase<T>::TraverseDocument(IWebBrowser2* pBrowser, const std::wstring& domain, const std::wstring& documentName) |
{ |
m_domain = domain; |
@@ -222,16 +222,15 @@ |
CComQIPtr<IWebBrowser2> pFrameBrowser = pFrameDispatch; |
if (pFrameBrowser) |
{ |
- CComBSTR bstrSrc; |
- CString src; |
- |
+ BSTR bstrSrc; |
sergei
2014/10/17 10:10:12
Again CComBSTR is replaced by BSTR.
|
+ std::wstring src; |
if (SUCCEEDED(pFrameBrowser->get_LocationURL(&bstrSrc))) |
{ |
- src = bstrSrc; |
- CPluginClient::UnescapeUrl(src); |
+ src = std::wstring(bstrSrc,SysStringLen(bstrSrc)); |
+ SysFreeString(bstrSrc); |
+ UnescapeUrl(src); |
} |
- |
- if (!src.IsEmpty()) |
+ if (!src.empty()) |
{ |
TraverseDocument(pFrameBrowser, false, indent); |
} |
@@ -266,22 +265,22 @@ |
if (SUCCEEDED(pFrameEl->getAttribute(L"src", 0, &vAttr)) && vAttr.vt == VT_BSTR && ::SysStringLen(vAttr.bstrVal) > 0) |
{ |
- CString src = vAttr.bstrVal; |
+ CString srcLegacy = vAttr.bstrVal; |
// Some times, domain is missing. Should this be added on image src's as well?'' |
// eg. gadgetzone.com.au |
- if (src.Left(2) == L"//") |
+ if (srcLegacy.Left(2) == L"//") |
{ |
- src = L"http:" + src; |
+ srcLegacy = L"http:" + srcLegacy; |
} |
// eg. http://w3schools.com/html/html_examples.asp |
- else if (src.Left(4) != L"http" && src.Left(6) != L"res://") |
+ else if (srcLegacy.Left(4) != L"http" && srcLegacy.Left(6) != L"res://") |
{ |
- src = L"http://" + to_CString(m_domain) + src; |
+ srcLegacy = L"http://" + to_CString(m_domain) + srcLegacy; |
} |
- |
- CPluginClient::UnescapeUrl(src); |
+ std::wstring src(ToWstring(srcLegacy)); |
+ UnescapeUrl(src); |
// Check if Iframe should be traversed |
if (OnIFrame(pFrameEl, src, indent)) |