| OLD | NEW |
| 1 #ifndef _PLUGIN_DOM_TRAVERSER_BASE_H_ | 1 #ifndef _PLUGIN_DOM_TRAVERSER_BASE_H_ |
| 2 #define _PLUGIN_DOM_TRAVERSER_BASE_H_ | 2 #define _PLUGIN_DOM_TRAVERSER_BASE_H_ |
| 3 | 3 |
| 4 | 4 #include "COM_Value.h" |
| 5 #include "PluginTypedef.h" | 5 #include "PluginTypedef.h" |
| 6 #include "PluginTab.h" | 6 #include "PluginTab.h" |
| 7 | 7 |
| 8 | |
| 9 class CPluginDomTraverserCacheBase | 8 class CPluginDomTraverserCacheBase |
| 10 { | 9 { |
| 11 public: | 10 public: |
| 12 | 11 |
| 13 long m_elements; | 12 long m_elements; |
| 14 | 13 |
| 15 CPluginDomTraverserCacheBase() : m_elements(0) {}; | 14 CPluginDomTraverserCacheBase() : m_elements(0) {}; |
| 16 void Init() { m_elements=0; } | 15 void Init() { m_elements=0; } |
| 17 }; | 16 }; |
| 18 | 17 |
| (...skipping 196 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 215 { | 214 { |
| 216 CComVariant vIndex(i); | 215 CComVariant vIndex(i); |
| 217 CComVariant vRetIndex; | 216 CComVariant vRetIndex; |
| 218 CComPtr<IDispatch> pFrameDispatch; | 217 CComPtr<IDispatch> pFrameDispatch; |
| 219 | 218 |
| 220 if (SUCCEEDED(pFrameCollection->item(vIndex, vRetIndex, &pFrameDispatch))
&& pFrameDispatch) | 219 if (SUCCEEDED(pFrameCollection->item(vIndex, vRetIndex, &pFrameDispatch))
&& pFrameDispatch) |
| 221 { | 220 { |
| 222 CComQIPtr<IWebBrowser2> pFrameBrowser = pFrameDispatch; | 221 CComQIPtr<IWebBrowser2> pFrameBrowser = pFrameDispatch; |
| 223 if (pFrameBrowser) | 222 if (pFrameBrowser) |
| 224 { | 223 { |
| 225 CComBSTR bstrSrc; | |
| 226 CString src; | 224 CString src; |
| 227 | 225 AdblockPlus::COM::BSTR_Argument result; |
| 228 if (SUCCEEDED(pFrameBrowser->get_LocationURL(&bstrSrc))) | 226 if (SUCCEEDED(pFrameBrowser->get_LocationURL(&result))) |
| 229 { | 227 { |
| 230 src = bstrSrc; | 228 src = to_CString(result); |
| 231 CPluginClient::UnescapeUrl(src); | 229 CPluginClient::UnescapeUrl(src); |
| 232 } | 230 } |
| 233 | 231 |
| 234 if (!src.IsEmpty()) | 232 if (!src.IsEmpty()) |
| 235 { | 233 { |
| 236 TraverseDocument(pFrameBrowser, false, indent); | 234 TraverseDocument(pFrameBrowser, false, indent); |
| 237 } | 235 } |
| 238 } | 236 } |
| 239 } | 237 } |
| 240 } | 238 } |
| (...skipping 124 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 365 } | 363 } |
| 366 | 364 |
| 367 // Update cache | 365 // Update cache |
| 368 m_criticalSection.Lock(); | 366 m_criticalSection.Lock(); |
| 369 { | 367 { |
| 370 m_cacheElements[cacheIndex].m_elements = allElementsCount; | 368 m_cacheElements[cacheIndex].m_elements = allElementsCount; |
| 371 } | 369 } |
| 372 m_criticalSection.Unlock(); | 370 m_criticalSection.Unlock(); |
| 373 | 371 |
| 374 // Get tag | 372 // Get tag |
| 375 CComBSTR bstrTag; | 373 AdblockPlus::COM::BSTR_Argument result; |
| 376 if (FAILED(pEl->get_tagName(&bstrTag)) || !bstrTag) | 374 if (FAILED(pEl->get_tagName(&result)) || !result.operator std::wstring().empty
()) |
| 377 { | 375 { |
| 378 return; | 376 return; |
| 379 } | 377 } |
| 380 | 378 |
| 381 CString tag = bstrTag; | 379 CString tag = to_CString(result); |
| 382 tag.MakeLower(); | 380 tag.MakeLower(); |
| 383 | 381 |
| 384 // Custom OnElement | 382 // Custom OnElement |
| 385 if (!OnElement(pEl, tag, &m_cacheElements[cacheIndex], false, indent)) | 383 if (!OnElement(pEl, tag, &m_cacheElements[cacheIndex], false, indent)) |
| 386 { | 384 { |
| 387 return; | 385 return; |
| 388 } | 386 } |
| 389 | 387 |
| 390 // Update frame/iframe cache | 388 // Update frame/iframe cache |
| 391 if (tag == "iframe") | 389 if (tag == "iframe") |
| (...skipping 68 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 460 if (tab->m_plugin->GetTabHWND() == NULL) | 458 if (tab->m_plugin->GetTabHWND() == NULL) |
| 461 { | 459 { |
| 462 return; | 460 return; |
| 463 } | 461 } |
| 464 | 462 |
| 465 | 463 |
| 466 } | 464 } |
| 467 | 465 |
| 468 | 466 |
| 469 #endif // _PLUGIN_DOM_TRAVERSER_BASE_H_ | 467 #endif // _PLUGIN_DOM_TRAVERSER_BASE_H_ |
| OLD | NEW |