Rietveld Code Review Tool
Help | Bug tracker | Discussion group | Source code

Unified Diff: src/plugin/PluginTabBase.cpp

Issue 29331767: Issue #1234 + Clean up - CPluginTab (dead code, nullptr defect fix, etc.) (Closed)
Patch Set: rebase only Created Dec. 15, 2015, 4:39 p.m.
Use n/p to move between diff chunks; N/P to move between comments.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « src/plugin/PluginTabBase.h ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: src/plugin/PluginTabBase.cpp
===================================================================
--- a/src/plugin/PluginTabBase.cpp
+++ b/src/plugin/PluginTabBase.cpp
@@ -25,13 +25,11 @@
#include "../shared/Utils.h"
#include <Mshtmhst.h>
-CPluginTabBase::CPluginTabBase(CPluginClass* plugin)
- : m_plugin(plugin)
- , m_isActivated(false)
+CPluginTab::CPluginTab()
+ : m_isActivated(false)
, m_continueThreadRunning(true)
{
- m_filter = std::auto_ptr<CPluginFilter>(new CPluginFilter());
- m_filter->hideFiltersLoadedEvent = CreateEvent(NULL, true, false, NULL);
+ m_filter.hideFiltersLoadedEvent = CreateEvent(NULL, true, false, NULL);
CPluginClient* client = CPluginClient::GetInstance();
if (AdblockPlus::IE::InstalledMajorVersion() < 10)
@@ -41,7 +39,7 @@
try
{
- m_thread = std::thread(&CPluginTabBase::ThreadProc, this);
+ m_thread = std::thread(&CPluginTab::ThreadProc, this);
}
catch (const std::system_error& ex)
{
@@ -52,7 +50,7 @@
}
-CPluginTabBase::~CPluginTabBase()
+CPluginTab::~CPluginTab()
{
delete m_traverser;
m_traverser = NULL;
@@ -62,13 +60,13 @@
}
}
-void CPluginTabBase::OnActivate()
+void CPluginTab::OnActivate()
{
m_isActivated = true;
}
-void CPluginTabBase::OnUpdate()
+void CPluginTab::OnUpdate()
{
m_isActivated = true;
}
@@ -76,12 +74,12 @@
namespace
{
// Entry Point
- void FilterLoader(CPluginTabBase* tabBase)
+ void FilterLoader(CPluginFilter* filter, const std::wstring& domain)
{
try
{
- tabBase->m_filter->LoadHideFilters(CPluginClient::GetInstance()->GetElementHidingSelectors(tabBase->GetDocumentDomain()));
- SetEvent(tabBase->m_filter->hideFiltersLoadedEvent);
+ filter->LoadHideFilters(CPluginClient::GetInstance()->GetElementHidingSelectors(domain));
+ SetEvent(filter->hideFiltersLoadedEvent);
}
catch (...)
{
@@ -90,15 +88,15 @@
}
}
-void CPluginTabBase::OnNavigate(const std::wstring& url)
+void CPluginTab::OnNavigate(const std::wstring& url)
{
SetDocumentUrl(url);
ClearFrameCache(GetDocumentDomain());
std::wstring domainString = GetDocumentDomain();
- ResetEvent(m_filter->hideFiltersLoadedEvent);
+ ResetEvent(m_filter.hideFiltersLoadedEvent);
try
{
- std::thread filterLoaderThread(&FilterLoader, this);
+ std::thread filterLoaderThread(&FilterLoader, &m_filter, GetDocumentDomain());
filterLoaderThread.detach(); // TODO: but actually we should wait for the thread in the dtr.
}
catch (const std::system_error& ex)
@@ -147,7 +145,7 @@
}
}
-void CPluginTabBase::InjectABP(IWebBrowser2* browser)
+void CPluginTab::InjectABP(IWebBrowser2* browser)
{
CriticalSection::Lock lock(m_csInject);
auto url = GetDocumentUrl();
@@ -162,20 +160,20 @@
CComQIPtr<IHTMLDocument2> pDoc2(pDocDispatch);
if (!pDoc2)
{
- DEBUG_ERROR_LOG(0, PLUGIN_ERROR_CREATE_SETTINGS_JAVASCRIPT, PLUGIN_ERROR_CREATE_SETTINGS_JAVASCRIPT_INVOKE, "CPluginTabBase::InjectABP - Failed to QI document");
+ DEBUG_ERROR_LOG(0, PLUGIN_ERROR_CREATE_SETTINGS_JAVASCRIPT, PLUGIN_ERROR_CREATE_SETTINGS_JAVASCRIPT_INVOKE, "CPluginTab::InjectABP - Failed to QI document");
return;
}
CComPtr<IHTMLWindow2> pWnd2;
pDoc2->get_parentWindow(&pWnd2);
if (!pWnd2)
{
- DEBUG_ERROR_LOG(0, PLUGIN_ERROR_CREATE_SETTINGS_JAVASCRIPT, PLUGIN_ERROR_CREATE_SETTINGS_JAVASCRIPT_INVOKE, "CPluginTabBase::InjectABP - Failed to get parent window");
+ DEBUG_ERROR_LOG(0, PLUGIN_ERROR_CREATE_SETTINGS_JAVASCRIPT, PLUGIN_ERROR_CREATE_SETTINGS_JAVASCRIPT_INVOKE, "CPluginTab::InjectABP - Failed to get parent window");
return;
}
CComQIPtr<IDispatchEx> pWndEx(pWnd2);
if (!pWndEx)
{
- DEBUG_ERROR_LOG(0, PLUGIN_ERROR_CREATE_SETTINGS_JAVASCRIPT, PLUGIN_ERROR_CREATE_SETTINGS_JAVASCRIPT_INVOKE, "CPluginTabBase::InjectABP - Failed to QI dispatch");
+ DEBUG_ERROR_LOG(0, PLUGIN_ERROR_CREATE_SETTINGS_JAVASCRIPT, PLUGIN_ERROR_CREATE_SETTINGS_JAVASCRIPT_INVOKE, "CPluginTab::InjectABP - Failed to QI dispatch");
return;
}
// Create "Settings" object in JavaScript.
@@ -184,7 +182,7 @@
HRESULT hr = pWndEx->GetDispID(L"Settings", fdexNameEnsure, &dispid);
if (FAILED(hr))
{
- DEBUG_ERROR_LOG(hr, PLUGIN_ERROR_CREATE_SETTINGS_JAVASCRIPT, PLUGIN_ERROR_CREATE_SETTINGS_JAVASCRIPT_INVOKE, "CPluginTabBase::InjectABP - Failed to get dispatch");
+ DEBUG_ERROR_LOG(hr, PLUGIN_ERROR_CREATE_SETTINGS_JAVASCRIPT, PLUGIN_ERROR_CREATE_SETTINGS_JAVASCRIPT_INVOKE, "CPluginTab::InjectABP - Failed to get dispatch");
return;
}
CComVariant var((IDispatch*)&m_pluginUserSettings);
@@ -200,7 +198,7 @@
DEBUG_GENERAL("Invoke");
if (FAILED(hr))
{
- DEBUG_ERROR_LOG(hr, PLUGIN_ERROR_CREATE_SETTINGS_JAVASCRIPT, PLUGIN_ERROR_CREATE_SETTINGS_JAVASCRIPT_INVOKE, "CPluginTabBase::InjectABP - Failed to create Settings in JavaScript");
+ DEBUG_ERROR_LOG(hr, PLUGIN_ERROR_CREATE_SETTINGS_JAVASCRIPT, PLUGIN_ERROR_CREATE_SETTINGS_JAVASCRIPT_INVOKE, "CPluginTab::InjectABP - Failed to create Settings in JavaScript");
}
}
@@ -250,7 +248,7 @@
}
}
-void CPluginTabBase::OnDownloadComplete(IWebBrowser2* browser)
+void CPluginTab::OnDownloadComplete(IWebBrowser2* browser)
{
CPluginClient* client = CPluginClient::GetInstance();
std::wstring url = GetDocumentUrl();
@@ -261,7 +259,7 @@
InjectABP(browser);
}
-void CPluginTabBase::OnDocumentComplete(IWebBrowser2* browser, const std::wstring& url, bool isDocumentBrowser)
+void CPluginTab::OnDocumentComplete(IWebBrowser2* browser, const std::wstring& url, bool isDocumentBrowser)
{
std::wstring documentUrl = GetDocumentUrl();
@@ -273,44 +271,44 @@
}
InjectABP(browser);
}
- CString urlLegacy = ToCString(url);
- if (urlLegacy.Left(6) != "res://")
+ if (BeginsWith(url, L"res://"))
{
- // Get document
- CComPtr<IDispatch> pDocDispatch;
- HRESULT hr = browser->get_Document(&pDocDispatch);
- if (FAILED(hr) || !pDocDispatch)
+ return;
+ }
+ // Get document
+ CComPtr<IDispatch> pDocDispatch;
+ HRESULT hr = browser->get_Document(&pDocDispatch);
+ if (FAILED(hr) || !pDocDispatch)
+ {
+ return;
+ }
+
+ CComQIPtr<IHTMLDocument2> pDoc(pDocDispatch);
+ if (!pDoc)
+ {
+ return;
+ }
+
+ CComPtr<IOleObject> pOleObj;
+ pDocDispatch->QueryInterface(&pOleObj);
+ if (!pOleObj)
+ {
+ return;
+ }
+ CComPtr<IOleClientSite> pClientSite;
+ pOleObj->GetClientSite(&pClientSite);
+ if (pClientSite != NULL)
+ {
+ CComPtr<IDocHostUIHandler> docHostUIHandler;
+ pClientSite->QueryInterface(&docHostUIHandler);
+ if (docHostUIHandler != NULL)
{
- return;
- }
-
- CComQIPtr<IHTMLDocument2> pDoc(pDocDispatch);
- if (!pDoc)
- {
- return;
- }
-
- CComPtr<IOleObject> pOleObj;
- pDocDispatch->QueryInterface(&pOleObj);
- if (!pOleObj)
- {
- return;
- }
- CComPtr<IOleClientSite> pClientSite;
- pOleObj->GetClientSite(&pClientSite);
- if (pClientSite != NULL)
- {
- CComPtr<IDocHostUIHandler> docHostUIHandler;
- pClientSite->QueryInterface(&docHostUIHandler);
- if (docHostUIHandler != NULL)
- {
- docHostUIHandler->UpdateUI();
- }
+ docHostUIHandler->UpdateUI();
}
}
}
-std::wstring CPluginTabBase::GetDocumentDomain()
+std::wstring CPluginTab::GetDocumentDomain()
{
std::wstring domain;
@@ -323,7 +321,7 @@
return domain;
}
-void CPluginTabBase::SetDocumentUrl(const std::wstring& url)
+void CPluginTab::SetDocumentUrl(const std::wstring& url)
{
m_criticalSection.Lock();
{
@@ -333,7 +331,7 @@
m_criticalSection.Unlock();
}
-std::wstring CPluginTabBase::GetDocumentUrl()
+std::wstring CPluginTab::GetDocumentUrl()
{
std::wstring url;
@@ -350,7 +348,7 @@
// ============================================================================
// Frame caching
// ============================================================================
-bool CPluginTabBase::IsFrameCached(const std::wstring& url)
+bool CPluginTab::IsFrameCached(const std::wstring& url)
{
bool isFrame;
@@ -363,7 +361,7 @@
return isFrame;
}
-void CPluginTabBase::CacheFrame(const std::wstring& url)
+void CPluginTab::CacheFrame(const std::wstring& url)
{
m_criticalSectionCache.Lock();
{
@@ -372,7 +370,7 @@
m_criticalSectionCache.Unlock();
}
-void CPluginTabBase::ClearFrameCache(const std::wstring& domain)
+void CPluginTab::ClearFrameCache(const std::wstring& domain)
{
m_criticalSectionCache.Lock();
{
@@ -385,7 +383,7 @@
m_criticalSectionCache.Unlock();
}
-void CPluginTabBase::ThreadProc()
+void CPluginTab::ThreadProc()
{
// Force loading/creation of settings
CPluginSettings::GetInstance()->SetWorkingThreadId();
« no previous file with comments | « src/plugin/PluginTabBase.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld