| Index: src/plugin/PluginTabBase.cpp | 
| =================================================================== | 
| --- a/src/plugin/PluginTabBase.cpp | 
| +++ b/src/plugin/PluginTabBase.cpp | 
| @@ -17,7 +17,6 @@ | 
|  | 
| #include "PluginStdAfx.h" | 
| #include "AdblockPlusClient.h" | 
| -#include "PluginClientBase.h" | 
| #include "PluginSettings.h" | 
| #include "AdblockPlusDomTraverser.h" | 
| #include "PluginTabBase.h" | 
| @@ -26,40 +25,17 @@ | 
| #include <Mshtmhst.h> | 
|  | 
| CPluginTab::CPluginTab() | 
| -  : m_isActivated(false) | 
| -  , m_continueThreadRunning(true) | 
| { | 
| m_filter.hideFiltersLoadedEvent = CreateEvent(NULL, true, false, NULL); | 
|  | 
| CPluginClient* client = CPluginClient::GetInstance(); | 
| -  if (AdblockPlus::IE::InstalledMajorVersion() < 10) | 
| -  { | 
| -    m_isActivated = true; | 
| -  } | 
| - | 
| -  try | 
| -  { | 
| -    m_thread = std::thread(&CPluginTab::ThreadProc, this); | 
| -  } | 
| -  catch (const std::system_error& ex) | 
| -  { | 
| -    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(); | 
| -  } | 
| -} | 
| - | 
| /** | 
| * ABP only intercepts protocols "http:" and "https:". | 
| * We can disable any domain used in those protocol with an appropriate whitelist filter. | 
| @@ -71,15 +47,6 @@ | 
| return BeginsWith(url, L"http:") || BeginsWith(url, L"https:"); | 
| } | 
|  | 
| -void CPluginTab::OnActivate() | 
| -{ | 
| -  m_isActivated = true; | 
| -} | 
| - | 
| - | 
| -void CPluginTab::OnUpdate() | 
| -{ | 
| -  m_isActivated = true; | 
| } | 
|  | 
| namespace | 
| @@ -394,59 +361,3 @@ | 
| m_criticalSectionCache.Unlock(); | 
| } | 
|  | 
| -void CPluginTab::ThreadProc() | 
| -{ | 
| -  // Force loading/creation of settings | 
| -  CPluginSettings::GetInstance(); | 
| - | 
| -  std::string message = | 
| -    "================================================================================\n" | 
| -    "TAB THREAD process="; | 
| -  message += std::to_string(::GetCurrentProcessId()); | 
| -  message + " thread="; | 
| -  message += std::to_string(::GetCurrentThreadId()); | 
| -  message += | 
| -    "\n" | 
| -    "================================================================================"; | 
| -  DEBUG_GENERAL(message); | 
| - | 
| -  // -------------------------------------------------------------------- | 
| -  // Tab loop | 
| -  // -------------------------------------------------------------------- | 
| - | 
| -  DWORD loopCount = 0; | 
| -  DWORD tabLoopIteration = 1; | 
| - | 
| -  while (this->m_continueThreadRunning) | 
| -  { | 
| -#ifdef ENABLE_DEBUG_THREAD | 
| -    CStringA sTabLoopIteration; | 
| -    sTabLoopIteration.Format("%u", tabLoopIteration); | 
| - | 
| -    DEBUG_THREAD("--------------------------------------------------------------------------------") | 
| -      DEBUG_THREAD("Loop iteration " + sTabLoopIteration); | 
| -    DEBUG_THREAD("--------------------------------------------------------------------------------") | 
| -#endif | 
| -      this->m_isActivated = false; | 
| - | 
| -      // -------------------------------------------------------------------- | 
| -      // End loop | 
| -      // -------------------------------------------------------------------- | 
| - | 
| -      // Sleep loop | 
| -      while (this->m_continueThreadRunning && !this->m_isActivated && (++loopCount % (TIMER_THREAD_SLEEP_TAB_LOOP / 50)) != 0) | 
| -      { | 
| -        // Post async plugin error | 
| -        CPluginError pluginError; | 
| -        if (LogQueue::PopFirstPluginError(pluginError)) | 
| -        { | 
| -          LogQueue::LogPluginError(pluginError.GetErrorCode(), pluginError.GetErrorId(), pluginError.GetErrorSubid(), pluginError.GetErrorDescription(), true, pluginError.GetProcessId(), pluginError.GetThreadId()); | 
| -        } | 
| - | 
| -        // Non-hanging sleep | 
| -        Sleep(50); | 
| -      } | 
| - | 
| -      tabLoopIteration++; | 
| -  } | 
| -} | 
|  |