Left: | ||
Right: |
OLD | NEW |
---|---|
1 /* | 1 /* |
2 * This file is part of Adblock Plus <https://adblockplus.org/>, | 2 * This file is part of Adblock Plus <https://adblockplus.org/>, |
3 * Copyright (C) 2006-2015 Eyeo GmbH | 3 * Copyright (C) 2006-2015 Eyeo GmbH |
4 * | 4 * |
5 * Adblock Plus is free software: you can redistribute it and/or modify | 5 * Adblock Plus is free software: you can redistribute it and/or modify |
6 * it under the terms of the GNU General Public License version 3 as | 6 * it under the terms of the GNU General Public License version 3 as |
7 * published by the Free Software Foundation. | 7 * published by the Free Software Foundation. |
8 * | 8 * |
9 * Adblock Plus is distributed in the hope that it will be useful, | 9 * Adblock Plus is distributed in the hope that it will be useful, |
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of | 10 * but WITHOUT ANY WARRANTY; without even the implied warranty of |
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
45 { | 45 { |
46 m_isActivated = true; | 46 m_isActivated = true; |
47 } | 47 } |
48 | 48 |
49 try | 49 try |
50 { | 50 { |
51 m_thread = std::thread(&CPluginTabBase::ThreadProc, this); | 51 m_thread = std::thread(&CPluginTabBase::ThreadProc, this); |
52 } | 52 } |
53 catch (const std::system_error& ex) | 53 catch (const std::system_error& ex) |
54 { | 54 { |
55 auto errDescription = std::string("Tab::Thread - Failed to create tab thread ") + | 55 DEBUG_SYSTEM_EXCEPTION(ex, PLUGIN_ERROR_THREAD, PLUGIN_ERROR_TAB_THREAD_CREA TE_PROCESS, |
56 ex.code().message() + ex.what(); | 56 "Tab::Thread - Failed to create tab thread"); |
57 DEBUG_ERROR_LOG(ex.code().value(), PLUGIN_ERROR_THREAD, PLUGIN_ERROR_TAB_THR EAD_CREATE_PROCESS, errDescription.c_str()); | |
58 } | 57 } |
59 m_traverser = new CPluginDomTraverser(static_cast<CPluginTab*>(this)); | 58 m_traverser = new CPluginDomTraverser(static_cast<CPluginTab*>(this)); |
60 } | 59 } |
61 | 60 |
62 | 61 |
63 CPluginTabBase::~CPluginTabBase() | 62 CPluginTabBase::~CPluginTabBase() |
64 { | 63 { |
65 delete m_traverser; | 64 delete m_traverser; |
66 m_traverser = NULL; | 65 m_traverser = NULL; |
67 m_continueThreadRunning = false; | 66 m_continueThreadRunning = false; |
(...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
104 ClearFrameCache(GetDocumentDomain()); | 103 ClearFrameCache(GetDocumentDomain()); |
105 std::wstring domainString = GetDocumentDomain(); | 104 std::wstring domainString = GetDocumentDomain(); |
106 ResetEvent(m_filter->hideFiltersLoadedEvent); | 105 ResetEvent(m_filter->hideFiltersLoadedEvent); |
107 try | 106 try |
108 { | 107 { |
109 std::thread filterLoaderThread(&FilterLoader, this); | 108 std::thread filterLoaderThread(&FilterLoader, this); |
110 filterLoaderThread.detach(); // TODO: but actually we should wait for the th read in the dtr. | 109 filterLoaderThread.detach(); // TODO: but actually we should wait for the th read in the dtr. |
111 } | 110 } |
112 catch (const std::system_error& ex) | 111 catch (const std::system_error& ex) |
113 { | 112 { |
114 auto errDescription = std::string("Class::Thread - Failed to start filter lo ader thread, ") + | 113 DEBUG_SYSTEM_EXCEPTION(ex, PLUGIN_ERROR_THREAD, PLUGIN_ERROR_MAIN_THREAD_CRE ATE_PROCESS, |
115 ex.code().message() + ex.what(); | 114 "Class::Thread - Failed to start filter loader thread"); |
116 DEBUG_ERROR_LOG(ex.code().value(), PLUGIN_ERROR_THREAD, PLUGIN_ERROR_MAIN_TH READ_CREATE_PROCESS, errDescription.c_str()); | |
117 } | 115 } |
118 m_traverser->ClearCache(); | 116 m_traverser->ClearCache(); |
119 } | 117 } |
120 | 118 |
121 void CPluginTabBase::InjectABP(IWebBrowser2* browser) | 119 void CPluginTabBase::InjectABP(IWebBrowser2* browser) |
122 { | 120 { |
123 CriticalSection::Lock lock(m_csInject); | 121 CriticalSection::Lock lock(m_csInject); |
124 CString url = ToCString(GetDocumentUrl()); | 122 auto url = GetDocumentUrl(); |
125 CString log; | 123 |
126 log.Format(L"InjectABP. Current URL: %s, settings URL: %s", url, UserSettingsF ileUrl().c_str()); | 124 std::wstring log = L"InjectABP. Current URL: "; |
125 log += url; | |
126 log += L", settings URL: "; | |
127 log += UserSettingsFileUrl(); | |
127 DEBUG_GENERAL(log); | 128 DEBUG_GENERAL(log); |
128 if (!(0 == url.CompareNoCase(CString(UserSettingsFileUrl().c_str())) || | 129 |
129 0 == url.CompareNoCase(CString(FirstRunPageFileUrl().c_str())))) | 130 CString urlLegacy = ToCString(url); |
131 if (!(0 == urlLegacy.CompareNoCase(CString(UserSettingsFileUrl().c_str())) || | |
132 0 == urlLegacy.CompareNoCase(CString(FirstRunPageFileUrl().c_str())))) | |
Oleksandr
2015/02/27 07:50:15
I really don't think there are many other options
Eric
2015/02/27 14:26:56
I changed only the code relevant to the DEBUG_GENE
| |
130 { | 133 { |
131 DEBUG_GENERAL(L"Not injecting"); | 134 DEBUG_GENERAL(L"Not injecting"); |
132 return; | 135 return; |
133 } | 136 } |
134 DEBUG_GENERAL(L"Going to inject"); | 137 DEBUG_GENERAL(L"Going to inject"); |
135 CComPtr<IDispatch> pDocDispatch; | 138 CComPtr<IDispatch> pDocDispatch; |
136 browser->get_Document(&pDocDispatch); | 139 browser->get_Document(&pDocDispatch); |
137 CComQIPtr<IHTMLDocument2> pDoc2 = pDocDispatch; | 140 CComQIPtr<IHTMLDocument2> pDoc2 = pDocDispatch; |
138 if (!pDoc2) | 141 if (!pDoc2) |
139 { | 142 { |
(...skipping 168 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
308 m_cacheFrames.clear(); | 311 m_cacheFrames.clear(); |
309 m_cacheDomain = domain; | 312 m_cacheDomain = domain; |
310 } | 313 } |
311 } | 314 } |
312 m_criticalSectionCache.Unlock(); | 315 m_criticalSectionCache.Unlock(); |
313 } | 316 } |
314 | 317 |
315 void CPluginTabBase::ThreadProc() | 318 void CPluginTabBase::ThreadProc() |
316 { | 319 { |
317 // Force loading/creation of settings | 320 // Force loading/creation of settings |
318 CPluginSettings* settings = CPluginSettings::GetInstance(); | 321 CPluginSettings::GetInstance()->SetWorkingThreadId(); |
319 | 322 |
320 settings->SetWorkingThreadId(); | 323 std::string message = |
321 | 324 "=========================================================================== =====\n" |
322 CString threadInfo; | 325 "TAB THREAD process="; |
323 threadInfo.Format(L"%d.%d", ::GetCurrentProcessId(), ::GetCurrentThreadId()); | 326 message += std::to_string(::GetCurrentProcessId()); |
324 | 327 message + " thread="; |
325 CString debugText; | 328 message += std::to_string(::GetCurrentThreadId()); |
326 | 329 message += |
327 debugText += L"=============================================================== ================="; | 330 "\n" |
328 debugText += L"\nTAB THREAD " + threadInfo; | 331 "=========================================================================== ====="; |
329 debugText += L"\n============================================================= ==================="; | 332 DEBUG_GENERAL(message); |
330 | |
331 DEBUG_GENERAL(debugText) | |
332 | 333 |
333 // -------------------------------------------------------------------- | 334 // -------------------------------------------------------------------- |
334 // Tab loop | 335 // Tab loop |
335 // -------------------------------------------------------------------- | 336 // -------------------------------------------------------------------- |
336 | 337 |
337 DWORD loopCount = 0; | 338 DWORD loopCount = 0; |
338 DWORD tabLoopIteration = 1; | 339 DWORD tabLoopIteration = 1; |
339 | 340 |
340 while (this->m_continueThreadRunning) | 341 while (this->m_continueThreadRunning) |
341 { | 342 { |
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
373 CPluginClient::LogPluginError(pluginError.GetErrorCode(), pluginError. GetErrorId(), pluginError.GetErrorSubid(), pluginError.GetErrorDescription(), tr ue, pluginError.GetProcessId(), pluginError.GetThreadId()); | 374 CPluginClient::LogPluginError(pluginError.GetErrorCode(), pluginError. GetErrorId(), pluginError.GetErrorSubid(), pluginError.GetErrorDescription(), tr ue, pluginError.GetProcessId(), pluginError.GetThreadId()); |
374 } | 375 } |
375 | 376 |
376 // Non-hanging sleep | 377 // Non-hanging sleep |
377 Sleep(50); | 378 Sleep(50); |
378 } | 379 } |
379 | 380 |
380 tabLoopIteration++; | 381 tabLoopIteration++; |
381 } | 382 } |
382 } | 383 } |
OLD | NEW |