OLD | NEW |
1 #include "PluginStdAfx.h" | 1 #include "PluginStdAfx.h" |
2 #include "PluginSettings.h" | 2 #include "PluginSettings.h" |
3 #include "PluginSystem.h" | 3 #include "PluginSystem.h" |
4 #include "PluginFilter.h" | 4 #include "PluginFilter.h" |
5 #include "PluginClientFactory.h" | 5 #include "PluginClientFactory.h" |
6 #include "PluginMutex.h" | 6 #include "PluginMutex.h" |
7 #include "PluginClass.h" | 7 #include "PluginClass.h" |
8 | 8 |
9 #include "AdblockPlusClient.h" | 9 #include "AdblockPlusClient.h" |
10 | 10 |
(...skipping 99 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
110 | 110 |
111 std::vector<SubscriptionDescription> ReadSubscriptions(Communication::InputBuf
fer& message) | 111 std::vector<SubscriptionDescription> ReadSubscriptions(Communication::InputBuf
fer& message) |
112 { | 112 { |
113 int32_t count; | 113 int32_t count; |
114 message >> count; | 114 message >> count; |
115 | 115 |
116 std::vector<SubscriptionDescription> result; | 116 std::vector<SubscriptionDescription> result; |
117 for (int32_t i = 0; i < count; i++) | 117 for (int32_t i = 0; i < count; i++) |
118 { | 118 { |
119 SubscriptionDescription description; | 119 SubscriptionDescription description; |
120 std::string url; | 120 message >> description.url; |
121 message >> url; | 121 message >> description.title; |
122 description.url = ToUtf16String(url); | 122 message >> description.specialization; |
123 std::string title; | |
124 message >> title; | |
125 description.title = ToUtf16String(title); | |
126 std::string specialization; | |
127 message >> specialization; | |
128 description.specialization = ToUtf16String(specialization); | |
129 message >> description.listed; | 123 message >> description.listed; |
130 result.push_back(description); | 124 result.push_back(description); |
131 } | 125 } |
132 return result; | 126 return result; |
133 } | 127 } |
134 } | 128 } |
135 | 129 |
136 CAdblockPlusClient* CAdblockPlusClient::s_instance = NULL; | 130 CAdblockPlusClient* CAdblockPlusClient::s_instance = NULL; |
137 | 131 |
138 CAdblockPlusClient::CAdblockPlusClient() : CPluginClientBase() | 132 CAdblockPlusClient::CAdblockPlusClient() : CPluginClientBase() |
(...skipping 99 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
238 isHidden = filter && filter->IsElementHidden(tag, pEl, domain, indent); | 232 isHidden = filter && filter->IsElementHidden(tag, pEl, domain, indent); |
239 } | 233 } |
240 m_criticalSectionFilter.Unlock(); | 234 m_criticalSectionFilter.Unlock(); |
241 return isHidden; | 235 return isHidden; |
242 } | 236 } |
243 | 237 |
244 bool CAdblockPlusClient::IsWhitelistedUrl(const std::wstring& url) | 238 bool CAdblockPlusClient::IsWhitelistedUrl(const std::wstring& url) |
245 { | 239 { |
246 DEBUG_GENERAL((L"IsWhitelistedUrl: " + url + L" start").c_str()); | 240 DEBUG_GENERAL((L"IsWhitelistedUrl: " + url + L" start").c_str()); |
247 Communication::OutputBuffer request; | 241 Communication::OutputBuffer request; |
248 request << Communication::PROC_IS_WHITELISTED_URL << ToUtf8String(url); | 242 request << Communication::PROC_IS_WHITELISTED_URL << url; |
249 | 243 |
250 Communication::InputBuffer response; | 244 Communication::InputBuffer response; |
251 if (!CallEngine(request, response)) | 245 if (!CallEngine(request, response)) |
252 return false; | 246 return false; |
253 | 247 |
254 bool isWhitelisted; | 248 bool isWhitelisted; |
255 response >> isWhitelisted; | 249 response >> isWhitelisted; |
256 | 250 |
257 DEBUG_GENERAL((L"IsWhitelistedUrl: " + url + L" end").c_str()); | 251 DEBUG_GENERAL((L"IsWhitelistedUrl: " + url + L" end").c_str()); |
258 return isWhitelisted; | 252 return isWhitelisted; |
259 } | 253 } |
260 | 254 |
261 bool CAdblockPlusClient::IsElemhideWhitelistedOnDomain(const std::wstring& url) | 255 bool CAdblockPlusClient::IsElemhideWhitelistedOnDomain(const std::wstring& url) |
262 { | 256 { |
263 Communication::OutputBuffer request; | 257 Communication::OutputBuffer request; |
264 request << Communication::PROC_IS_ELEMHIDE_WHITELISTED_ON_URL << ToUtf8String(
url); | 258 request << Communication::PROC_IS_ELEMHIDE_WHITELISTED_ON_URL << url; |
265 | 259 |
266 Communication::InputBuffer response; | 260 Communication::InputBuffer response; |
267 if (!CallEngine(request, response)) | 261 if (!CallEngine(request, response)) |
268 return false; | 262 return false; |
269 | 263 |
270 bool isWhitelisted; | 264 bool isWhitelisted; |
271 response >> isWhitelisted; | 265 response >> isWhitelisted; |
272 return isWhitelisted; | 266 return isWhitelisted; |
273 } | 267 } |
274 | 268 |
275 bool CAdblockPlusClient::Matches(const std::wstring& url, const std::wstring& co
ntentType, const std::wstring& domain) | 269 bool CAdblockPlusClient::Matches(const std::wstring& url, const std::wstring& co
ntentType, const std::wstring& domain) |
276 { | 270 { |
277 Communication::OutputBuffer request; | 271 Communication::OutputBuffer request; |
278 request << Communication::PROC_MATCHES << ToUtf8String(url) << ToUtf8String(co
ntentType) << ToUtf8String(domain); | 272 request << Communication::PROC_MATCHES << url << contentType << domain; |
279 | 273 |
280 Communication::InputBuffer response; | 274 Communication::InputBuffer response; |
281 if (!CallEngine(request, response)) | 275 if (!CallEngine(request, response)) |
282 return false; | 276 return false; |
283 | 277 |
284 bool match; | 278 bool match; |
285 response >> match; | 279 response >> match; |
286 return match; | 280 return match; |
287 } | 281 } |
288 | 282 |
289 std::vector<std::wstring> CAdblockPlusClient::GetElementHidingSelectors(const st
d::wstring& domain) | 283 std::vector<std::wstring> CAdblockPlusClient::GetElementHidingSelectors(const st
d::wstring& domain) |
290 { | 284 { |
291 Communication::OutputBuffer request; | 285 Communication::OutputBuffer request; |
292 request << Communication::PROC_GET_ELEMHIDE_SELECTORS << ToUtf8String(domain); | 286 request << Communication::PROC_GET_ELEMHIDE_SELECTORS << domain; |
293 | 287 |
294 Communication::InputBuffer response; | 288 Communication::InputBuffer response; |
295 if (!CallEngine(request, response)) | 289 if (!CallEngine(request, response)) |
296 return std::vector<std::wstring>(); | 290 return std::vector<std::wstring>(); |
297 | 291 |
298 std::vector<std::string> selectors; | 292 std::vector<std::wstring> selectors; |
299 response >> selectors; | 293 response >> selectors; |
300 return ToUtf16Strings(selectors); | 294 return selectors; |
301 } | 295 } |
302 | 296 |
303 std::vector<SubscriptionDescription> CAdblockPlusClient::FetchAvailableSubscript
ions() | 297 std::vector<SubscriptionDescription> CAdblockPlusClient::FetchAvailableSubscript
ions() |
304 { | 298 { |
305 Communication::InputBuffer response; | 299 Communication::InputBuffer response; |
306 if (!CallEngine(Communication::PROC_AVAILABLE_SUBSCRIPTIONS, response)) | 300 if (!CallEngine(Communication::PROC_AVAILABLE_SUBSCRIPTIONS, response)) |
307 return std::vector<SubscriptionDescription>(); | 301 return std::vector<SubscriptionDescription>(); |
308 return ReadSubscriptions(response); | 302 return ReadSubscriptions(response); |
309 } | 303 } |
310 | 304 |
(...skipping 16 matching lines...) Expand all Loading... |
327 { | 321 { |
328 return true; | 322 return true; |
329 } | 323 } |
330 } | 324 } |
331 return false; | 325 return false; |
332 } | 326 } |
333 | 327 |
334 void CAdblockPlusClient::SetSubscription(const std::wstring& url) | 328 void CAdblockPlusClient::SetSubscription(const std::wstring& url) |
335 { | 329 { |
336 Communication::OutputBuffer request; | 330 Communication::OutputBuffer request; |
337 request << Communication::PROC_SET_SUBSCRIPTION << ToUtf8String(url); | 331 request << Communication::PROC_SET_SUBSCRIPTION << url; |
338 CallEngine(request); | 332 CallEngine(request); |
339 } | 333 } |
340 | 334 |
341 void CAdblockPlusClient::AddSubscription(const std::wstring& url) | 335 void CAdblockPlusClient::AddSubscription(const std::wstring& url) |
342 { | 336 { |
343 Communication::OutputBuffer request; | 337 Communication::OutputBuffer request; |
344 request << Communication::PROC_ADD_SUBSCRIPTION << ToUtf8String(url); | 338 request << Communication::PROC_ADD_SUBSCRIPTION << url; |
345 CallEngine(request); | 339 CallEngine(request); |
346 } | 340 } |
347 | 341 |
348 void CAdblockPlusClient::RemoveSubscription(const std::wstring& url) | 342 void CAdblockPlusClient::RemoveSubscription(const std::wstring& url) |
349 { | 343 { |
350 Communication::OutputBuffer request; | 344 Communication::OutputBuffer request; |
351 request << Communication::PROC_REMOVE_SUBSCRIPTION << ToUtf8String(url); | 345 request << Communication::PROC_REMOVE_SUBSCRIPTION << url; |
352 CallEngine(request); | 346 CallEngine(request); |
353 } | 347 } |
354 | 348 |
355 | 349 |
356 void CAdblockPlusClient::UpdateAllSubscriptions() | 350 void CAdblockPlusClient::UpdateAllSubscriptions() |
357 { | 351 { |
358 CallEngine(Communication::PROC_UPDATE_ALL_SUBSCRIPTIONS); | 352 CallEngine(Communication::PROC_UPDATE_ALL_SUBSCRIPTIONS); |
359 } | 353 } |
360 | 354 |
361 std::vector<std::wstring> CAdblockPlusClient::GetExceptionDomains() | 355 std::vector<std::wstring> CAdblockPlusClient::GetExceptionDomains() |
362 { | 356 { |
363 Communication::InputBuffer response; | 357 Communication::InputBuffer response; |
364 if (!CallEngine(Communication::PROC_GET_EXCEPTION_DOMAINS, response)) | 358 if (!CallEngine(Communication::PROC_GET_EXCEPTION_DOMAINS, response)) |
365 return std::vector<std::wstring>(); | 359 return std::vector<std::wstring>(); |
366 | 360 |
367 std::vector<std::string> domains; | 361 std::vector<std::wstring> domains; |
368 response >> domains; | 362 response >> domains; |
369 return ToUtf16Strings(domains); | 363 return domains; |
370 } | 364 } |
371 | 365 |
372 bool CAdblockPlusClient::IsFirstRun() | 366 bool CAdblockPlusClient::IsFirstRun() |
373 { | 367 { |
374 DEBUG_GENERAL("IsFirstRun"); | 368 DEBUG_GENERAL("IsFirstRun"); |
375 Communication::InputBuffer response; | 369 Communication::InputBuffer response; |
376 if (!CallEngine(Communication::PROC_IS_FIRST_RUN_ACTION_NEEDED, response)) ret
urn false; | 370 if (!CallEngine(Communication::PROC_IS_FIRST_RUN_ACTION_NEEDED, response)) ret
urn false; |
377 bool res; | 371 bool res; |
378 response >> res; | 372 response >> res; |
379 return res; | 373 return res; |
380 } | 374 } |
381 | 375 |
382 void CAdblockPlusClient::AddFilter(const std::wstring& text) | 376 void CAdblockPlusClient::AddFilter(const std::wstring& text) |
383 { | 377 { |
384 Communication::OutputBuffer request; | 378 Communication::OutputBuffer request; |
385 request << Communication::PROC_ADD_FILTER << ToUtf8String(text); | 379 request << Communication::PROC_ADD_FILTER << text; |
386 CallEngine(request); | 380 CallEngine(request); |
387 } | 381 } |
388 | 382 |
389 void CAdblockPlusClient::RemoveFilter(const std::wstring& text) | 383 void CAdblockPlusClient::RemoveFilter(const std::wstring& text) |
390 { | 384 { |
391 Communication::OutputBuffer request; | 385 Communication::OutputBuffer request; |
392 request << Communication::PROC_REMOVE_FILTER << ToUtf8String(text); | 386 request << Communication::PROC_REMOVE_FILTER << text; |
393 CallEngine(request); | 387 CallEngine(request); |
394 } | 388 } |
395 | 389 |
396 void CAdblockPlusClient::SetPref(const std::wstring& name, const std::wstring& v
alue) | 390 void CAdblockPlusClient::SetPref(const std::wstring& name, const std::wstring& v
alue) |
397 { | 391 { |
398 Communication::OutputBuffer request; | 392 Communication::OutputBuffer request; |
399 request << Communication::PROC_SET_PREF << ToUtf8String(name) << ToUtf8String(
value); | 393 request << Communication::PROC_SET_PREF << name << value; |
400 CallEngine(request); | 394 CallEngine(request); |
401 } | 395 } |
402 | 396 |
403 void CAdblockPlusClient::SetPref(const std::wstring& name, const int64_t & value
) | 397 void CAdblockPlusClient::SetPref(const std::wstring& name, const int64_t & value
) |
404 { | 398 { |
405 Communication::OutputBuffer request; | 399 Communication::OutputBuffer request; |
406 request << Communication::PROC_SET_PREF << ToUtf8String(name) << value; | 400 request << Communication::PROC_SET_PREF << name << value; |
407 CallEngine(request); | 401 CallEngine(request); |
408 } | 402 } |
409 | 403 |
410 void CAdblockPlusClient::SetPref(const std::wstring& name, bool value) | 404 void CAdblockPlusClient::SetPref(const std::wstring& name, bool value) |
411 { | 405 { |
412 Communication::OutputBuffer request; | 406 Communication::OutputBuffer request; |
413 request << Communication::PROC_SET_PREF << ToUtf8String(name) << value; | 407 request << Communication::PROC_SET_PREF << name << value; |
414 CallEngine(request); | 408 CallEngine(request); |
415 } | 409 } |
416 | 410 |
417 std::wstring CAdblockPlusClient::GetPref(const std::wstring& name, const wchar_t
* defaultValue) | 411 std::wstring CAdblockPlusClient::GetPref(const std::wstring& name, const wchar_t
* defaultValue) |
418 { | 412 { |
419 return GetPref(name, std::wstring(defaultValue)); | 413 return GetPref(name, std::wstring(defaultValue)); |
420 } | 414 } |
421 std::wstring CAdblockPlusClient::GetPref(const std::wstring& name, const std::ws
tring& defaultValue) | 415 std::wstring CAdblockPlusClient::GetPref(const std::wstring& name, const std::ws
tring& defaultValue) |
422 { | 416 { |
423 DEBUG_GENERAL((L"GetPref: " + name + L" start").c_str()); | 417 DEBUG_GENERAL((L"GetPref: " + name + L" start").c_str()); |
424 Communication::OutputBuffer request; | 418 Communication::OutputBuffer request; |
425 request << Communication::PROC_GET_PREF << ToUtf8String(name); | 419 request << Communication::PROC_GET_PREF << name; |
426 | 420 |
427 Communication::InputBuffer response; | 421 Communication::InputBuffer response; |
428 if (!CallEngine(request, response)) | 422 if (!CallEngine(request, response)) |
429 return defaultValue; | 423 return defaultValue; |
430 bool success; | 424 bool success; |
431 response >> success; | 425 response >> success; |
432 if (success) | 426 if (success) |
433 { | 427 { |
434 std::string value; | 428 std::wstring value; |
435 response >> value; | 429 response >> value; |
436 DEBUG_GENERAL((L"GetPref: " + name + L" end").c_str()); | 430 DEBUG_GENERAL((L"GetPref: " + name + L" end").c_str()); |
437 return ToUtf16String(value); | 431 return value; |
438 } | 432 } |
439 else | 433 else |
440 { | 434 { |
441 DEBUG_GENERAL((L"GetPref: " + name + L" end").c_str()); | 435 DEBUG_GENERAL((L"GetPref: " + name + L" end").c_str()); |
442 return defaultValue; | 436 return defaultValue; |
443 } | 437 } |
444 } | 438 } |
445 | 439 |
446 bool CAdblockPlusClient::GetPref(const std::wstring& name, bool defaultValue) | 440 bool CAdblockPlusClient::GetPref(const std::wstring& name, bool defaultValue) |
447 { | 441 { |
448 DEBUG_GENERAL((L"GetPref: " + name + L" start").c_str()); | 442 DEBUG_GENERAL((L"GetPref: " + name + L" start").c_str()); |
449 Communication::OutputBuffer request; | 443 Communication::OutputBuffer request; |
450 request << Communication::PROC_GET_PREF << ToUtf8String(name); | 444 request << Communication::PROC_GET_PREF << name; |
451 | 445 |
452 Communication::InputBuffer response; | 446 Communication::InputBuffer response; |
453 if (!CallEngine(request, response)) | 447 if (!CallEngine(request, response)) |
454 return defaultValue; | 448 return defaultValue; |
455 bool success; | 449 bool success; |
456 response >> success; | 450 response >> success; |
457 if (success) | 451 if (success) |
458 { | 452 { |
459 bool value; | 453 bool value; |
460 response >> value; | 454 response >> value; |
461 DEBUG_GENERAL((L"GetPref: " + name + L" end").c_str()); | 455 DEBUG_GENERAL((L"GetPref: " + name + L" end").c_str()); |
462 return value; | 456 return value; |
463 } | 457 } |
464 else | 458 else |
465 { | 459 { |
466 DEBUG_GENERAL((L"GetPref: " + name + L" end").c_str()); | 460 DEBUG_GENERAL((L"GetPref: " + name + L" end").c_str()); |
467 return defaultValue; | 461 return defaultValue; |
468 } | 462 } |
469 } | 463 } |
470 int64_t CAdblockPlusClient::GetPref(const std::wstring& name, int64_t defaultVal
ue) | 464 int64_t CAdblockPlusClient::GetPref(const std::wstring& name, int64_t defaultVal
ue) |
471 { | 465 { |
472 DEBUG_GENERAL((L"GetPref: " + name + L" start").c_str()); | 466 DEBUG_GENERAL((L"GetPref: " + name + L" start").c_str()); |
473 Communication::OutputBuffer request; | 467 Communication::OutputBuffer request; |
474 request << Communication::PROC_GET_PREF << ToUtf8String(name); | 468 request << Communication::PROC_GET_PREF << name; |
475 | 469 |
476 Communication::InputBuffer response; | 470 Communication::InputBuffer response; |
477 if (!CallEngine(request, response)) | 471 if (!CallEngine(request, response)) |
478 return defaultValue; | 472 return defaultValue; |
479 bool success; | 473 bool success; |
480 response >> success; | 474 response >> success; |
481 if (success) | 475 if (success) |
482 { | 476 { |
483 int64_t value; | 477 int64_t value; |
484 response >> value; | 478 response >> value; |
(...skipping 13 matching lines...) Expand all Loading... |
498 request << Communication::PROC_CHECK_FOR_UPDATES << reinterpret_cast<int32_t>(
callbackWindow); | 492 request << Communication::PROC_CHECK_FOR_UPDATES << reinterpret_cast<int32_t>(
callbackWindow); |
499 CallEngine(request); | 493 CallEngine(request); |
500 } | 494 } |
501 | 495 |
502 std::wstring CAdblockPlusClient::GetDocumentationLink() | 496 std::wstring CAdblockPlusClient::GetDocumentationLink() |
503 { | 497 { |
504 DEBUG_GENERAL("GetDocumentationLink"); | 498 DEBUG_GENERAL("GetDocumentationLink"); |
505 Communication::InputBuffer response; | 499 Communication::InputBuffer response; |
506 if (!CallEngine(Communication::PROC_GET_DOCUMENTATION_LINK, response)) | 500 if (!CallEngine(Communication::PROC_GET_DOCUMENTATION_LINK, response)) |
507 return L""; | 501 return L""; |
508 std::string docLink; | 502 std::wstring docLink; |
509 response >> docLink; | 503 response >> docLink; |
510 return ToUtf16String(docLink); | 504 return docLink; |
511 } | 505 } |
512 | 506 |
513 bool CAdblockPlusClient::TogglePluginEnabled() | 507 bool CAdblockPlusClient::TogglePluginEnabled() |
514 { | 508 { |
515 DEBUG_GENERAL("TogglePluginEnabled"); | 509 DEBUG_GENERAL("TogglePluginEnabled"); |
516 Communication::InputBuffer response; | 510 Communication::InputBuffer response; |
517 if (!CallEngine(Communication::PROC_TOGGLE_PLUGIN_ENABLED, response)) | 511 if (!CallEngine(Communication::PROC_TOGGLE_PLUGIN_ENABLED, response)) |
518 return false; | 512 return false; |
519 bool currentEnabledState; | 513 bool currentEnabledState; |
520 response >> currentEnabledState; | 514 response >> currentEnabledState; |
521 return currentEnabledState; | 515 return currentEnabledState; |
522 } | 516 } |
523 | 517 |
524 std::wstring CAdblockPlusClient::GetHostFromUrl(const std::wstring& url) | 518 std::wstring CAdblockPlusClient::GetHostFromUrl(const std::wstring& url) |
525 { | 519 { |
526 DEBUG_GENERAL("GetHostFromUrl"); | 520 DEBUG_GENERAL("GetHostFromUrl"); |
527 Communication::OutputBuffer request; | 521 Communication::OutputBuffer request; |
528 request << Communication::PROC_GET_HOST << ToUtf8String(url); | 522 request << Communication::PROC_GET_HOST << url; |
529 | 523 |
530 Communication::InputBuffer response; | 524 Communication::InputBuffer response; |
531 if (!CallEngine(request, response)) | 525 if (!CallEngine(request, response)) |
532 return L""; | 526 return L""; |
533 std::string host; | 527 std::wstring host; |
534 response >> host; | 528 response >> host; |
535 return ToUtf16String(host); | 529 return host; |
536 } | 530 } |
537 | 531 |
538 int CAdblockPlusClient::CompareVersions(const std::wstring& v1, const std::wstri
ng& v2) | 532 int CAdblockPlusClient::CompareVersions(const std::wstring& v1, const std::wstri
ng& v2) |
539 { | 533 { |
540 DEBUG_GENERAL("CompareVersions"); | 534 DEBUG_GENERAL("CompareVersions"); |
541 Communication::OutputBuffer request; | 535 Communication::OutputBuffer request; |
542 request << Communication::PROC_COMPARE_VERSIONS << ToUtf8String(v1) << ToUtf8S
tring(v2); | 536 request << Communication::PROC_COMPARE_VERSIONS << v1 << v2; |
543 Communication::InputBuffer response; | 537 Communication::InputBuffer response; |
544 if (!CallEngine(request, response)) | 538 if (!CallEngine(request, response)) |
545 return 0; | 539 return 0; |
546 int result; | 540 int result; |
547 response >> result; | 541 response >> result; |
548 return result; | 542 return result; |
549 } | 543 } |
OLD | NEW |