| Left: | ||
| Right: | 
| OLD | NEW | 
|---|---|
| 1 #include "PluginStdAfx.h" | 1 #include "PluginStdAfx.h" | 
| 2 | 2 | 
| 3 #include "PluginSettings.h" | 3 #include "PluginSettings.h" | 
| 4 #include "PluginSystem.h" | 4 #include "PluginSystem.h" | 
| 5 #include "PluginFilter.h" | 5 #include "PluginFilter.h" | 
| 6 #include "PluginClientFactory.h" | 6 #include "PluginClientFactory.h" | 
| 7 #include "PluginMutex.h" | 7 #include "PluginMutex.h" | 
| 8 #include "PluginClass.h" | 8 #include "PluginClass.h" | 
| 9 | 9 | 
| 10 #include "AdblockPlusClient.h" | 10 #include "AdblockPlusClient.h" | 
| 11 | 11 | 
| 12 #include "../shared/Communication.h" | |
| 13 #include "../shared/Utils.h" | 12 #include "../shared/Utils.h" | 
| 14 | 13 | 
| 15 namespace | 14 namespace | 
| 16 { | 15 { | 
| 17 void SpawnAdblockPlusEngine() | 16 void SpawnAdblockPlusEngine() | 
| 18 { | 17 { | 
| 19 std::wstring engineExecutablePath = GetDllDir() + L"AdblockPlusEngine.exe"; | 18 std::wstring engineExecutablePath = GetDllDir() + L"AdblockPlusEngine.exe"; | 
| 20 CString params = L"AdblockPlusEngine.exe " + CPluginSystem::GetInstance()->G etBrowserLanguage(); | 19 CString params = L"AdblockPlusEngine.exe " + CPluginSystem::GetInstance()->G etBrowserLanguage(); | 
| 21 | 20 | 
| 22 STARTUPINFO startupInfo = {}; | 21 STARTUPINFO startupInfo = {}; | 
| (...skipping 325 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 348 Communication::InputBuffer response = CallAdblockPlusEngineProcedure(Communi cation::PROC_GET_EXCEPTION_DOMAINS); | 347 Communication::InputBuffer response = CallAdblockPlusEngineProcedure(Communi cation::PROC_GET_EXCEPTION_DOMAINS); | 
| 349 return ReadStrings(response); | 348 return ReadStrings(response); | 
| 350 } | 349 } | 
| 351 catch (const std::exception& e) | 350 catch (const std::exception& e) | 
| 352 { | 351 { | 
| 353 DEBUG_GENERAL(e.what()); | 352 DEBUG_GENERAL(e.what()); | 
| 354 return std::vector<std::wstring>(); | 353 return std::vector<std::wstring>(); | 
| 355 } | 354 } | 
| 356 } | 355 } | 
| 357 | 356 | 
| 358 void CAdblockPlusClient::AddFilter(const std::wstring& text) | 357 // A helper method to reuse the code | 
| 358 void CAdblockPlusClient::PostRequest(Communication::OutputBuffer request) | |
| 
 
Wladimir Palant
2013/07/22 06:43:11
I can't say I like the PostRequest() and FetchResp
 
Oleksandr
2013/07/22 09:53:31
I do disagree, at least partially. The code looks
 
Felix Dahlke
2013/07/23 10:26:12
I can see how you'd like to avoid the duplication
 
Wladimir Palant
2013/07/23 12:18:27
If you look closely, we aren't really swallowing e
 
Felix Dahlke
2013/07/23 12:40:15
What I meant was that we ignore the actual excepti
 
 | |
| 359 { | 359 { | 
| 360 Communication::OutputBuffer request; | |
| 361 request << Communication::PROC_ADD_FILTER << ToUtf8String(text); | |
| 362 | |
| 363 try | 360 try | 
| 364 { | 361 { | 
| 365 CallAdblockPlusEngineProcedure(request); | 362 CallAdblockPlusEngineProcedure(request); | 
| 366 } | 363 } | 
| 367 catch (const std::exception& e) | 364 catch (const std::exception& e) | 
| 368 { | 365 { | 
| 369 DEBUG_GENERAL(e.what()); | 366 DEBUG_GENERAL(e.what()); | 
| 370 } | 367 } | 
| 371 } | 368 } | 
| 372 | 369 | 
| 370 void CAdblockPlusClient::AddFilter(const std::wstring& text) | |
| 371 { | |
| 372 Communication::OutputBuffer request; | |
| 373 request << Communication::PROC_ADD_FILTER << ToUtf8String(text); | |
| 374 PostRequest(request); | |
| 375 } | |
| 376 | |
| 373 void CAdblockPlusClient::RemoveFilter(const std::wstring& text) | 377 void CAdblockPlusClient::RemoveFilter(const std::wstring& text) | 
| 374 { | 378 { | 
| 375 Communication::OutputBuffer request; | 379 Communication::OutputBuffer request; | 
| 376 request << Communication::PROC_REMOVE_FILTER << ToUtf8String(text); | 380 request << Communication::PROC_REMOVE_FILTER << ToUtf8String(text); | 
| 377 | 381 PostRequest(request); | 
| 378 try | |
| 379 { | |
| 380 CallAdblockPlusEngineProcedure(request); | |
| 381 } | |
| 382 catch (const std::exception& e) | |
| 383 { | |
| 384 DEBUG_GENERAL(e.what()); | |
| 385 } | |
| 386 } | 382 } | 
| 387 | 383 | 
| 388 void CAdblockPlusClient::SetPref(const std::wstring& name, const std::wstring& v alue) | 384 void CAdblockPlusClient::SetPref(const std::wstring& name, const std::wstring& v alue) | 
| 389 { | 385 { | 
| 390 Communication::OutputBuffer request; | 386 Communication::OutputBuffer request; | 
| 391 request << Communication::PROC_SET_PREF << ToUtf8String(name) << ToUtf8String( value); | 387 request << Communication::PROC_SET_PREF << ToUtf8String(name) << ToUtf8String( value); | 
| 392 | 388 PostRequest(request); | 
| 393 try | |
| 394 { | |
| 395 CallAdblockPlusEngineProcedure(request); | |
| 396 } | |
| 397 catch (const std::exception& e) | |
| 398 { | |
| 399 DEBUG_GENERAL(e.what()); | |
| 400 } | |
| 401 } | 389 } | 
| 402 | 390 | 
| 403 std::wstring CAdblockPlusClient::GetPref(const std::wstring& name) | 391 void CAdblockPlusClient::SetPref(const std::string& name, const std::string& val ue) | 
| 
 
Wladimir Palant
2013/07/22 06:43:11
I don't think we need that function - the plugin a
 
 | |
| 392 { | |
| 393 Communication::OutputBuffer request; | |
| 394 request << Communication::PROC_SET_PREF << name << value; | |
| 395 PostRequest(request); | |
| 396 } | |
| 397 | |
| 398 | |
| 399 void CAdblockPlusClient::SetPref(const std::wstring& name, const int64_t & value ) | |
| 400 { | |
| 401 Communication::OutputBuffer request; | |
| 402 request << Communication::PROC_SET_PREF << ToUtf8String(name) << value; | |
| 403 PostRequest(request); | |
| 404 } | |
| 405 | |
| 406 void CAdblockPlusClient::SetPref(const std::wstring& name, bool value) | |
| 407 { | |
| 408 Communication::OutputBuffer request; | |
| 409 request << Communication::PROC_SET_PREF << ToUtf8String(name) << value; | |
| 410 PostRequest(request); | |
| 411 } | |
| 412 | |
| 413 Communication::InputBuffer CAdblockPlusClient::FetchResponse(const std::wstring& name) | |
| 404 { | 414 { | 
| 405 Communication::OutputBuffer request; | 415 Communication::OutputBuffer request; | 
| 406 request << Communication::PROC_GET_PREF << ToUtf8String(name); | 416 request << Communication::PROC_GET_PREF << ToUtf8String(name); | 
| 407 | 417 | 
| 408 try | 418 try | 
| 409 { | 419 { | 
| 410 Communication::InputBuffer response = CallAdblockPlusEngineProcedure(request ); | 420 Communication::InputBuffer response = CallAdblockPlusEngineProcedure(request ); | 
| 411 std::vector<std::wstring> retValue = ReadStrings(response); | 421 return response; | 
| 412 return retValue.size() > 0 ? retValue.at(0) : L""; | |
| 413 } | 422 } | 
| 414 catch (const std::exception& e) | 423 catch (const std::exception& e) | 
| 415 { | 424 { | 
| 416 DEBUG_GENERAL(e.what()); | 425 DEBUG_GENERAL(e.what()); | 
| 417 return L""; | |
| 418 } | 426 } | 
| 427 return Communication::InputBuffer(""); | |
| 419 } | 428 } | 
| 429 std::wstring CAdblockPlusClient::GetPref(const std::wstring& name, LPCWSTR defau ltValue) | |
| 
 
Wladimir Palant
2013/07/22 06:43:11
I guess you have that here because const char* is
 
 | |
| 430 { | |
| 431 return GetPref(name, std::wstring(defaultValue)); | |
| 432 } | |
| 433 std::wstring CAdblockPlusClient::GetPref(const std::wstring& name, const std::ws tring& defaultValue) | |
| 434 { | |
| 435 Communication::InputBuffer response = FetchResponse(name); | |
| 436 if (response.IsEmpty()) | |
| 437 return defaultValue; | |
| 438 bool success; | |
| 439 response >> success; | |
| 440 if (success) | |
| 441 { | |
| 442 std::string value; | |
| 443 response >> value; | |
| 444 return ToUtf16String(value); | |
| 445 } | |
| 446 else | |
| 447 return defaultValue; | |
| 448 } | |
| 449 | |
| 450 bool CAdblockPlusClient::GetPref(const std::wstring& name, bool defaultValue) | |
| 451 { | |
| 452 Communication::InputBuffer response = FetchResponse(name); | |
| 453 if (response.IsEmpty()) | |
| 454 return defaultValue; | |
| 455 bool success; | |
| 456 response >> success; | |
| 457 if (success) | |
| 458 { | |
| 459 bool value; | |
| 460 response >> value; | |
| 461 return value; | |
| 462 } | |
| 463 else | |
| 464 return defaultValue; | |
| 465 } | |
| 466 int64_t CAdblockPlusClient::GetPref(const std::wstring& name, int64_t defaultVal ue) | |
| 467 { | |
| 468 Communication::InputBuffer response = FetchResponse(name); | |
| 469 if (response.IsEmpty()) | |
| 470 return defaultValue; | |
| 471 bool success; | |
| 472 response >> success; | |
| 473 if (success) | |
| 474 { | |
| 475 int64_t value; | |
| 476 response >> value; | |
| 477 return value; | |
| 478 } | |
| 479 else | |
| 480 return defaultValue; | |
| 481 } | |
| OLD | NEW |