| Index: src/plugin/PluginTabBase.cpp |
| =================================================================== |
| --- a/src/plugin/PluginTabBase.cpp |
| +++ b/src/plugin/PluginTabBase.cpp |
| @@ -46,14 +46,11 @@ |
| DEBUG_SYSTEM_EXCEPTION(ex, PLUGIN_ERROR_THREAD, PLUGIN_ERROR_TAB_THREAD_CREATE_PROCESS, |
| "Tab::Thread - Failed to create tab thread"); |
| } |
| - m_traverser = new CPluginDomTraverser(static_cast<CPluginTab*>(this)); |
| } |
| CPluginTab::~CPluginTab() |
| { |
| - delete m_traverser; |
| - m_traverser = NULL; |
| m_continueThreadRunning = false; |
| if (m_thread.joinable()) { |
| m_thread.join(); |
| @@ -115,7 +112,6 @@ |
| DEBUG_SYSTEM_EXCEPTION(ex, PLUGIN_ERROR_THREAD, PLUGIN_ERROR_MAIN_THREAD_CREATE_PROCESS, |
| "Class::Thread - Failed to start filter loader thread"); |
| } |
| - m_traverser->ClearCache(); |
| } |
| namespace |
| @@ -265,7 +261,8 @@ |
| std::wstring url = GetDocumentUrl(); |
| if (!client->IsWhitelistedUrl(url) && !client->IsElemhideWhitelistedOnDomain(url)) |
| { |
| - m_traverser->TraverseDocument(browser, GetDocumentDomain(), GetDocumentUrl()); |
| + CPluginDomTraverser traversal(&m_filter); |
| + traversal.TraverseDocumentRoot(browser, GetDocumentDomain(), GetDocumentUrl()); |
| } |
| InjectABP(browser); |
| } |