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

Side by Side Diff: Shared/PluginClassThread.cpp

Issue 8949229: Removal of all user tracking and shareware parts (Closed)
Patch Set: Created Dec. 6, 2012, 4:38 p.m.
Left:
Right:
Use n/p to move between diff chunks; N/P to move between comments.
Jump to:
View unified diff | Download patch
OLDNEW
1 #include "PluginStdAfx.h" 1 #include "PluginStdAfx.h"
2 2
3 #include <ctime> 3 #include <ctime>
4 4
5 #include "PluginClass.h" 5 #include "PluginClass.h"
6 #include "PluginDictionary.h" 6 #include "PluginDictionary.h"
7 #include "PluginSettings.h" 7 #include "PluginSettings.h"
8 #include "PluginSystem.h" 8 #include "PluginSystem.h"
9 #include "PluginConfiguration.h" 9 #include "PluginConfiguration.h"
10 #ifdef SUPPORT_FILTER 10 #ifdef SUPPORT_FILTER
(...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after
43 CString debugText; 43 CString debugText;
44 44
45 CString threadInfo; 45 CString threadInfo;
46 threadInfo.Format(L"%d.%d", ::GetCurrentProcessId(), ::GetCurrentThreadId()) ; 46 threadInfo.Format(L"%d.%d", ::GetCurrentProcessId(), ::GetCurrentThreadId()) ;
47 47
48 debugText += L"============================================================= ==================="; 48 debugText += L"============================================================= ===================";
49 debugText += L"\nMAIN THREAD " + threadInfo + L" Plugin version:" + CString( IEPLUGIN_VERSION); 49 debugText += L"\nMAIN THREAD " + threadInfo + L" Plugin version:" + CString( IEPLUGIN_VERSION);
50 debugText += L"\n=========================================================== ====================="; 50 debugText += L"\n=========================================================== =====================";
51 51
52 debugText += L"\nPlugin version: " + CString(IEPLUGIN_VERSION); 52 debugText += L"\nPlugin version: " + CString(IEPLUGIN_VERSION);
53 debugText += L"\nPlugin id: " + system->GetPluginId();
54 debugText += L"\nMAC address: " + system->GetMacId(true);
55 debugText += L"\nComputer name: " + system->GetComputerName();
56 debugText += L"\nUser id: " + settings->GetString(SETTING_USER_ID, "N/A");
57 debugText += L"\nUser name: " + system->GetUserName();
58 debugText += L"\nBrowser version: " + system->GetBrowserVersion(); 53 debugText += L"\nBrowser version: " + system->GetBrowserVersion();
59 debugText += L"\nBrowser language: " + system->GetBrowserLanguage(); 54 debugText += L"\nBrowser language: " + system->GetBrowserLanguage();
60 55
61 DWORD osVersion = ::GetVersion(); 56 DWORD osVersion = ::GetVersion();
62 57
63 CString ver; 58 CString ver;
64 ver.Format(L"%d.%d", LOBYTE(LOWORD(osVersion)), HIBYTE(LOWORD(osVersion))); 59 ver.Format(L"%d.%d", LOBYTE(LOWORD(osVersion)), HIBYTE(LOWORD(osVersion)));
65 60
66 debugText += L"\nWindows version: " + ver; 61 debugText += L"\nWindows version: " + ver;
67 62
(...skipping 74 matching lines...) Expand 10 before | Expand all | Expand 10 after
142 settings->Remove(SETTING_PLUGIN_INFO_PANEL); 137 settings->Remove(SETTING_PLUGIN_INFO_PANEL);
143 settings->Write(); 138 settings->Write();
144 } 139 }
145 } 140 }
146 } 141 }
147 142
148 // -------------------------------------------------------------------- 143 // --------------------------------------------------------------------
149 // Should update plugin ? 144 // Should update plugin ?
150 // -------------------------------------------------------------------- 145 // --------------------------------------------------------------------
151 146
152 #ifndef ENTERPRISE
153 if (!IsMainThreadDone(hMainThread) && settings->IsPluginUpdateAvailable()) 147 if (!IsMainThreadDone(hMainThread) && settings->IsPluginUpdateAvailable())
154 { 148 {
155 DEBUG_THREAD(L"Thread::Should update plugin"); 149 DEBUG_THREAD(L"Thread::Should update plugin");
156 150
157 CString lastUpdateStr = settings->GetString(SETTING_PLUGIN_UPDATE_TI ME); 151 CString lastUpdateStr = settings->GetString(SETTING_PLUGIN_UPDATE_TI ME);
158 152
159 std::time_t today = std::time(NULL); 153 std::time_t today = std::time(NULL);
160 std::time_t lastUpdate = lastUpdateStr.IsEmpty() ? today : _wtoi(las tUpdateStr.GetBuffer()); 154 std::time_t lastUpdate = lastUpdateStr.IsEmpty() ? today : _wtoi(las tUpdateStr.GetBuffer());
161 155
162 if (today != (std::time_t)(-1) && lastUpdate != (std::time_t)(-1)) 156 if (today != (std::time_t)(-1) && lastUpdate != (std::time_t)(-1))
(...skipping 13 matching lines...) Expand all
176 { 170 {
177 s_isPluginToBeUpdated = true; 171 s_isPluginToBeUpdated = true;
178 } 172 }
179 173
180 settings->SetValue(SETTING_PLUGIN_UPDATE_TIME, (int) today); 174 settings->SetValue(SETTING_PLUGIN_UPDATE_TIME, (int) today);
181 settings->Write(); 175 settings->Write();
182 } 176 }
183 } 177 }
184 } 178 }
185 179
186 #endif
187 // -------------------------------------------------------------------- 180 // --------------------------------------------------------------------
188 // Main loop 181 // Main loop
189 // -------------------------------------------------------------------- 182 // --------------------------------------------------------------------
190 183
191 DWORD mainLoopIteration = 1; 184 DWORD mainLoopIteration = 1;
192 » 185 » » » » »
193 » bool hasUser = false;
194 » int regAttempts = 1;
195 » int regAttemptsThread = 1;
196 » » » »
197 while (!IsMainThreadDone(hMainThread)) 186 while (!IsMainThreadDone(hMainThread))
198 { 187 {
199 CString sMainLoopIteration; 188 CString sMainLoopIteration;
200 sMainLoopIteration.Format(L"%u", mainLoopIteration); 189 sMainLoopIteration.Format(L"%u", mainLoopIteration);
201 190
202 CString debugText; 191 CString debugText;
203 192
204 debugText += L"--------------------------------------------------------- -----------------------"; 193 debugText += L"--------------------------------------------------------- -----------------------";
205 debugText += L"\nLoop iteration " + sMainLoopIteration; 194 debugText += L"\nLoop iteration " + sMainLoopIteration;
206 debugText += L"\n------------------------------------------------------- -------------------------"; 195 debugText += L"\n------------------------------------------------------- -------------------------";
207 196
208 DEBUG_GENERAL(debugText) 197 DEBUG_GENERAL(debugText)
209 198
210 if (settings->Has(SETTING_REG_SUCCEEDED))
211 {
212 regAttempts = REGISTRATION_MAX_ATTEMPTS;
213 }
214 else
215 {
216 regAttempts = settings->GetValue(SETTING_REG_ATTEMPTS);
217 }
218 regAttempts = max(regAttempts, regAttemptsThread) + 1;
219
220 // ----------------------------------------------------------------- ---
221 // Register user
222 // ----------------------------------------------------------------- ---
223
224 if (!IsMainThreadDone(hMainThread))
225 {
226 DEBUG_THREAD("Thread::Register user");
227
228 hasUser = settings->Has(SETTING_USER_ID);
229
230 if (!hasUser && regAttempts <= REGISTRATION_MAX_ATTEMPTS)
231 {
232 DWORD nUserTimerBase = GetTickCount() / TIMER_INTERVAL_U SER_REGISTRATION;
233
234 if (nUserTimerBase >= nNextUserTimerBase || main LoopIteration == 1 && !settings->IsFirstRun())
235 {
236 DEBUG_THREAD("Thread::Register user (action)");
237
238 try
239 {
240 isConfigutationLoaded = configuration->Downl oad();
241 }
242 catch (...)
243 {
244 }
245
246 nNextUserTimerBase = nUserTimerBase + nUserTimer BaseStep;
247 nUserTimerBaseStep *= 2;
248
249 regAttemptsThread++;
250 }
251 }
252 }
253
254 // ----------------------------------------------------------------- --- 199 // ----------------------------------------------------------------- ---
255 // Load configuration 200 // Load configuration
256 // ----------------------------------------------------------------- --- 201 // ----------------------------------------------------------------- ---
257 202
258 if (!IsMainThreadDone(hMainThread)) 203 if (!IsMainThreadDone(hMainThread))
259 { 204 {
260 DEBUG_THREAD("Thread::Load configuration"); 205 DEBUG_THREAD("Thread::Load configuration");
261 206
262 » if (hasUser && !isConfigutationLoaded && regAttempts <= REGISTRA TION_MAX_ATTEMPTS) 207 » if (!isConfigutationLoaded)
263 { 208 {
264 // Initialize serverClient module 209 // Initialize serverClient module
265 // we try an initialization in each loop 210 // we try an initialization in each loop
266 DWORD nServerClientTimerBase = GetTickCount() / TIMER_IN TERVAL_SERVER_CLIENT_INIT; 211 DWORD nServerClientTimerBase = GetTickCount() / TIMER_IN TERVAL_SERVER_CLIENT_INIT;
267 212
268 if (nServerClientTimerBase >= nNextServerClientTimerBase || mainLoopIteration == 1) 213 if (nServerClientTimerBase >= nNextServerClientTimerBase || mainLoopIteration == 1)
269 { 214 {
270 DEBUG_THREAD("Thread::Load configuration (action)"); 215 DEBUG_THREAD("Thread::Load configuration (action)");
271 216
272 try 217 try
273 { 218 {
274 isConfigutationLoaded = configuration->Downl oad(); 219 isConfigutationLoaded = configuration->Downl oad();
275 } 220 }
276 catch (...) 221 catch (...)
277 { 222 {
278 } 223 }
279 224
280 nNextServerClientTimerBase = nServerClientTimerB ase + nServerClientTimerBaseStep; 225 nNextServerClientTimerBase = nServerClientTimerB ase + nServerClientTimerBaseStep;
281 nServerClientTimerBaseStep *= 2; 226 nServerClientTimerBaseStep *= 2;
282
283 regAttemptsThread++;
284 } 227 }
285 } 228 }
286 } 229 }
287 230
288 // ----------------------------------------------------------------- --- 231 // ----------------------------------------------------------------- ---
289 // Update settings 232 // Update settings
290 // ----------------------------------------------------------------- --- 233 // ----------------------------------------------------------------- ---
291 234
292 if (!IsMainThreadDone(hMainThread)) 235 if (!IsMainThreadDone(hMainThread))
293 { 236 {
294 DEBUG_THREAD("Thread::Update settings"); 237 DEBUG_THREAD("Thread::Update settings");
295 238
296 if (configuration->IsValid()) 239 if (configuration->IsValid())
297 { 240 {
298 bool isNewDictionaryVersion = false; 241 bool isNewDictionaryVersion = false;
299 #ifdef SUPPORT_FILTER 242 #ifdef SUPPORT_FILTER
300 bool isNewFilterVersion = false; 243 bool isNewFilterVersion = false;
301 #endif 244 #endif
302 #ifdef SUPPORT_CONFIG 245 #ifdef SUPPORT_CONFIG
303 bool isNewConfig = false; 246 bool isNewConfig = false;
304 #endif 247 #endif
305 248
306 DEBUG_THREAD("Thread::Update settings (action)"); 249 DEBUG_THREAD("Thread::Update settings (action)");
307 250
308 settings->ForceConfigurationUpdateOnStart(false); 251 settings->ForceConfigurationUpdateOnStart(false);
309 252
310 if (configuration->IsValidPluginExpired())
311 {
312 settings->SetBool(SETTING_PLUGIN_EXPIRED, configuration->IsP luginExpired());
313 }
314
315 if (configuration->IsValidUserId())
316 {
317 settings->SetString(SETTING_USER_ID, configu ration->GetUserId());
318 }
319
320 if (configuration->IsValidPluginUpdate() && configur ation->GetPluginUpdateVersion() != IEPLUGIN_VERSION) 253 if (configuration->IsValidPluginUpdate() && configur ation->GetPluginUpdateVersion() != IEPLUGIN_VERSION)
321 { 254 {
322 settings->SetString(SETTING_PLUGIN_UPDATE_URL, configuration ->GetPluginUpdateUrl()); 255 settings->SetString(SETTING_PLUGIN_UPDATE_URL, configuration ->GetPluginUpdateUrl());
323 settings->SetString(SETTING_PLUGIN_UPDATE_VERSION, configura tion->GetPluginUpdateVersion()); 256 settings->SetString(SETTING_PLUGIN_UPDATE_VERSION, configura tion->GetPluginUpdateVersion());
324 } 257 }
325 else 258 else
326 { 259 {
327 settings->Remove(SETTING_PLUGIN_UPDATE_VERSION); 260 settings->Remove(SETTING_PLUGIN_UPDATE_VERSION);
328 settings->Remove(SETTING_PLUGIN_UPDATE_URL); 261 settings->Remove(SETTING_PLUGIN_UPDATE_URL);
329 } 262 }
(...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after
368 #endif // SUPPORT_FILTER 301 #endif // SUPPORT_FILTER
369 302
370 #ifdef SUPPORT_WHITELIST 303 #ifdef SUPPORT_WHITELIST
371 // Update white list 304 // Update white list
372 if (configuration->IsValidWhiteList()) 305 if (configuration->IsValidWhiteList())
373 { 306 {
374 settings->ReplaceWhiteListedDomains(configuration->GetWhiteL ist()); 307 settings->ReplaceWhiteListedDomains(configuration->GetWhiteL ist());
375 } 308 }
376 #endif // SUPPORT_WHITELIST 309 #endif // SUPPORT_WHITELIST
377 310
378 // Check pluginID
379 CString newPluginId = system->GetPluginId();
380
381 if (newPluginId != settings->GetString(SETTING_PLUGIN_ID))
382 {
383 DEBUG_GENERAL(L"*** pluginId has changed from " + settings-> GetString(SETTING_PLUGIN_ID) + CString(L" to ") + newPluginId)
384
385 settings->SetString(SETTING_PLUGIN_ID, newPluginId);
386 }
387
388 settings->SetString(SETTING_REG_SUCCEEDED, "true");
389
390 settings->SetBool(SETTING_PLUGIN_REGISTRATION, c onfiguration->IsPluginRegistered());
391 #ifdef PRODUCT_SIMPLEADBLOCK
392 settings->SetValue(SETTING_PLUGIN_ADBLOCKLIMIT, configuration->GetAdBlockLimit());
393 #endif
394 settings->Write(); 311 settings->Write();
395 312
396 configuration->Invalidate(); 313 configuration->Invalidate();
397 314
398 // Update dictionary 315 // Update dictionary
399 if (isNewDictionaryVersion) 316 if (isNewDictionaryVersion)
400 { 317 {
401 CPluginDictionary* dictionary = CPluginD ictionary::GetInstance(); 318 CPluginDictionary* dictionary = CPluginD ictionary::GetInstance();
402 319
403 if (dictionary->Download(configuration->GetDictionaryUrl(), CPluginSettings::GetDataPath(DICTIONARY_INI_FILE))) 320 if (dictionary->Download(configuration->GetDictionaryUrl(), CPluginSettings::GetDataPath(DICTIONARY_INI_FILE)))
(...skipping 57 matching lines...) Expand 10 before | Expand all | Expand 10 after
461 settings->SetFilterFileNamesList(fileNam esList); 378 settings->SetFilterFileNamesList(fileNam esList);
462 settings->SetValue(SETTING_FILTER_VERSION, configuration->Ge tFilterVersion()); 379 settings->SetValue(SETTING_FILTER_VERSION, configuration->Ge tFilterVersion());
463 settings->Write(); 380 settings->Write();
464 381
465 settings->IncrementTabVersion(SETTING_TAB_FILTER_VERSION); 382 settings->IncrementTabVersion(SETTING_TAB_FILTER_VERSION);
466 383
467 tab->OnUpdate(); 384 tab->OnUpdate();
468 } 385 }
469 #endif // SUPPORT_FILTER 386 #endif // SUPPORT_FILTER
470 } 387 }
471 // Plugin not loaded
472 else if (regAttempts <= REGISTRATION_MAX_ATTEMPTS)
473 {
474 settings->SetValue(SETTING_REG_ATTEMPTS, regAttempts);
475 settings->Write();
476 }
477 } 388 }
478 389
479 // ----------------------------------------------------------------- --- 390 // ----------------------------------------------------------------- ---
480 // Check filters 391 // Check filters
481 // ----------------------------------------------------------------- --- 392 // ----------------------------------------------------------------- ---
482 #ifdef SUPPORT_FILTER 393 #ifdef SUPPORT_FILTER
483 394
484 DEBUG_THREAD(L"Thread::Check filters"); 395 DEBUG_THREAD(L"Thread::Check filters");
485 396
486 if (!IsMainThreadDone(hMainThread)) 397 if (!IsMainThreadDone(hMainThread))
(...skipping 49 matching lines...) Expand 10 before | Expand all | Expand 10 after
536 if (!IsMainThreadDone(hMainThread)) 447 if (!IsMainThreadDone(hMainThread))
537 { 448 {
538 bool isDone = false; 449 bool isDone = false;
539 DWORD sleepLoopIteration = 1; 450 DWORD sleepLoopIteration = 1;
540 451
541 // Sleep loop 452 // Sleep loop
542 while (!isDone && !IsMainThreadDone(hMainThread) && !s_isPlu ginToBeUpdated) 453 while (!isDone && !IsMainThreadDone(hMainThread) && !s_isPlu ginToBeUpdated)
543 { 454 {
544 // Non-hanging sleep 455 // Non-hanging sleep
545 Sleep(50); 456 Sleep(50);
546 457 » » » »
547 » » » if (hasUser || regAttempts >= REGISTRATION_MAX_ATTEM PTS) 458 » » » » if (sleepLoopIteration++ % (TIMER_THREAD_SLEEP_U SER_REGISTRATION / 50) == 0)
548 » » » {
549 » » » » if (sleepLoopIteration++ % (TIMER_THREAD_SLE EP_MAIN_LOOP / 50) == 0)
550 » » » » {
551 » » » » » isDone = true;
552 » » » » }
553 » » » }
554 » » » else if (sleepLoopIteration++ % (TIMER_THREAD_SLEEP_ USER_REGISTRATION / 50) == 0)
555 { 459 {
556 isDone = true; 460 isDone = true;
557 } 461 }
558 } 462 }
559 } 463 }
560 464
561 mainLoopIteration++; 465 mainLoopIteration++;
562 } 466 }
563 467
564 return 0; 468 return 0;
(...skipping 19 matching lines...) Expand all
584 bool isDone = false; 488 bool isDone = false;
585 489
586 s_criticalSectionLocal.Lock(); 490 s_criticalSectionLocal.Lock();
587 { 491 {
588 isDone = s_isMainThreadDone || mainThread != s_hMainThread; 492 isDone = s_isMainThreadDone || mainThread != s_hMainThread;
589 } 493 }
590 s_criticalSectionLocal.Unlock(); 494 s_criticalSectionLocal.Unlock();
591 495
592 return isDone; 496 return isDone;
593 } 497 }
OLDNEW

Powered by Google App Engine
This is Rietveld