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 116 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
127 | 127 |
128 std::vector<SubscriptionDescription> ReadSubscriptions(Communication::InputBuf
fer& message) | 128 std::vector<SubscriptionDescription> ReadSubscriptions(Communication::InputBuf
fer& message) |
129 { | 129 { |
130 int32_t count; | 130 int32_t count; |
131 message >> count; | 131 message >> count; |
132 | 132 |
133 std::vector<SubscriptionDescription> result; | 133 std::vector<SubscriptionDescription> result; |
134 for (int32_t i = 0; i < count; i++) | 134 for (int32_t i = 0; i < count; i++) |
135 { | 135 { |
136 SubscriptionDescription description; | 136 SubscriptionDescription description; |
137 std::string url; | 137 message >> description.url; |
138 message >> url; | 138 message >> description.title; |
139 description.url = ToUtf16String(url); | 139 message >> description.specialization; |
140 std::string title; | |
141 message >> title; | |
142 description.title = ToUtf16String(title); | |
143 std::string specialization; | |
144 message >> specialization; | |
145 description.specialization = ToUtf16String(specialization); | |
146 message >> description.listed; | 140 message >> description.listed; |
147 result.push_back(description); | 141 result.push_back(description); |
148 } | 142 } |
149 return result; | 143 return result; |
150 } | 144 } |
151 } | 145 } |
152 | 146 |
153 CAdblockPlusClient* CAdblockPlusClient::s_instance = NULL; | 147 CAdblockPlusClient* CAdblockPlusClient::s_instance = NULL; |
154 | 148 |
155 CAdblockPlusClient::CAdblockPlusClient() : CPluginClientBase() | 149 CAdblockPlusClient::CAdblockPlusClient() : CPluginClientBase() |
(...skipping 99 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
255 isHidden = filter && filter->IsElementHidden(tag, pEl, domain, indent); | 249 isHidden = filter && filter->IsElementHidden(tag, pEl, domain, indent); |
256 } | 250 } |
257 m_criticalSectionFilter.Unlock(); | 251 m_criticalSectionFilter.Unlock(); |
258 return isHidden; | 252 return isHidden; |
259 } | 253 } |
260 | 254 |
261 bool CAdblockPlusClient::IsWhitelistedUrl(const std::wstring& url) | 255 bool CAdblockPlusClient::IsWhitelistedUrl(const std::wstring& url) |
262 { | 256 { |
263 DEBUG_GENERAL((L"IsWhitelistedUrl: " + url + L" start").c_str()); | 257 DEBUG_GENERAL((L"IsWhitelistedUrl: " + url + L" start").c_str()); |
264 Communication::OutputBuffer request; | 258 Communication::OutputBuffer request; |
265 request << Communication::PROC_IS_WHITELISTED_URL << ToUtf8String(url); | 259 request << Communication::PROC_IS_WHITELISTED_URL << url; |
266 | 260 |
267 Communication::InputBuffer response; | 261 Communication::InputBuffer response; |
268 if (!CallEngine(request, response)) | 262 if (!CallEngine(request, response)) |
269 return false; | 263 return false; |
270 | 264 |
271 bool isWhitelisted; | 265 bool isWhitelisted; |
272 response >> isWhitelisted; | 266 response >> isWhitelisted; |
273 | 267 |
274 DEBUG_GENERAL((L"IsWhitelistedUrl: " + url + L" end").c_str()); | 268 DEBUG_GENERAL((L"IsWhitelistedUrl: " + url + L" end").c_str()); |
275 return isWhitelisted; | 269 return isWhitelisted; |
276 } | 270 } |
277 | 271 |
278 bool CAdblockPlusClient::IsElemhideWhitelistedOnDomain(const std::wstring& url) | 272 bool CAdblockPlusClient::IsElemhideWhitelistedOnDomain(const std::wstring& url) |
279 { | 273 { |
280 Communication::OutputBuffer request; | 274 Communication::OutputBuffer request; |
281 request << Communication::PROC_IS_ELEMHIDE_WHITELISTED_ON_URL << ToUtf8String(
url); | 275 request << Communication::PROC_IS_ELEMHIDE_WHITELISTED_ON_URL << url; |
282 | 276 |
283 Communication::InputBuffer response; | 277 Communication::InputBuffer response; |
284 if (!CallEngine(request, response)) | 278 if (!CallEngine(request, response)) |
285 return false; | 279 return false; |
286 | 280 |
287 bool isWhitelisted; | 281 bool isWhitelisted; |
288 response >> isWhitelisted; | 282 response >> isWhitelisted; |
289 return isWhitelisted; | 283 return isWhitelisted; |
290 } | 284 } |
291 | 285 |
292 bool CAdblockPlusClient::Matches(const std::wstring& url, AdblockPlus::FilterEng
ine::ContentType contentType, const std::wstring& domain) | 286 bool CAdblockPlusClient::Matches(const std::wstring& url, AdblockPlus::FilterEng
ine::ContentType contentType, const std::wstring& domain) |
293 { | 287 { |
294 Communication::OutputBuffer request; | 288 Communication::OutputBuffer request; |
295 request << Communication::PROC_MATCHES << ToUtf8String(url) << static_cast<int
32_t>(contentType) << ToUtf8String(domain); | 289 request << Communication::PROC_MATCHES << url << contentType << domain; |
296 | 290 |
297 Communication::InputBuffer response; | 291 Communication::InputBuffer response; |
298 if (!CallEngine(request, response)) | 292 if (!CallEngine(request, response)) |
299 return false; | 293 return false; |
300 | 294 |
301 bool match; | 295 bool match; |
302 response >> match; | 296 response >> match; |
303 return match; | 297 return match; |
304 } | 298 } |
305 | 299 |
306 std::vector<std::wstring> CAdblockPlusClient::GetElementHidingSelectors(const st
d::wstring& domain) | 300 std::vector<std::wstring> CAdblockPlusClient::GetElementHidingSelectors(const st
d::wstring& domain) |
307 { | 301 { |
308 Communication::OutputBuffer request; | 302 Communication::OutputBuffer request; |
309 request << Communication::PROC_GET_ELEMHIDE_SELECTORS << ToUtf8String(domain); | 303 request << Communication::PROC_GET_ELEMHIDE_SELECTORS << domain; |
310 | 304 |
311 Communication::InputBuffer response; | 305 Communication::InputBuffer response; |
312 if (!CallEngine(request, response)) | 306 if (!CallEngine(request, response)) |
313 return std::vector<std::wstring>(); | 307 return std::vector<std::wstring>(); |
314 | 308 |
315 std::vector<std::string> selectors; | 309 std::vector<std::wstring> selectors; |
316 response >> selectors; | 310 response >> selectors; |
317 return ToUtf16Strings(selectors); | 311 return selectors; |
318 } | 312 } |
319 | 313 |
320 std::vector<SubscriptionDescription> CAdblockPlusClient::FetchAvailableSubscript
ions() | 314 std::vector<SubscriptionDescription> CAdblockPlusClient::FetchAvailableSubscript
ions() |
321 { | 315 { |
322 Communication::InputBuffer response; | 316 Communication::InputBuffer response; |
323 if (!CallEngine(Communication::PROC_AVAILABLE_SUBSCRIPTIONS, response)) | 317 if (!CallEngine(Communication::PROC_AVAILABLE_SUBSCRIPTIONS, response)) |
324 return std::vector<SubscriptionDescription>(); | 318 return std::vector<SubscriptionDescription>(); |
325 return ReadSubscriptions(response); | 319 return ReadSubscriptions(response); |
326 } | 320 } |
327 | 321 |
(...skipping 16 matching lines...) Expand all Loading... |
344 { | 338 { |
345 return true; | 339 return true; |
346 } | 340 } |
347 } | 341 } |
348 return false; | 342 return false; |
349 } | 343 } |
350 | 344 |
351 void CAdblockPlusClient::SetSubscription(const std::wstring& url) | 345 void CAdblockPlusClient::SetSubscription(const std::wstring& url) |
352 { | 346 { |
353 Communication::OutputBuffer request; | 347 Communication::OutputBuffer request; |
354 request << Communication::PROC_SET_SUBSCRIPTION << ToUtf8String(url); | 348 request << Communication::PROC_SET_SUBSCRIPTION << url; |
355 CallEngine(request); | 349 CallEngine(request); |
356 } | 350 } |
357 | 351 |
358 void CAdblockPlusClient::AddSubscription(const std::wstring& url) | 352 void CAdblockPlusClient::AddSubscription(const std::wstring& url) |
359 { | 353 { |
360 Communication::OutputBuffer request; | 354 Communication::OutputBuffer request; |
361 request << Communication::PROC_ADD_SUBSCRIPTION << ToUtf8String(url); | 355 request << Communication::PROC_ADD_SUBSCRIPTION << url; |
362 CallEngine(request); | 356 CallEngine(request); |
363 } | 357 } |
364 | 358 |
365 void CAdblockPlusClient::RemoveSubscription(const std::wstring& url) | 359 void CAdblockPlusClient::RemoveSubscription(const std::wstring& url) |
366 { | 360 { |
367 Communication::OutputBuffer request; | 361 Communication::OutputBuffer request; |
368 request << Communication::PROC_REMOVE_SUBSCRIPTION << ToUtf8String(url); | 362 request << Communication::PROC_REMOVE_SUBSCRIPTION << url; |
369 CallEngine(request); | 363 CallEngine(request); |
370 } | 364 } |
371 | 365 |
372 | 366 |
373 void CAdblockPlusClient::UpdateAllSubscriptions() | 367 void CAdblockPlusClient::UpdateAllSubscriptions() |
374 { | 368 { |
375 CallEngine(Communication::PROC_UPDATE_ALL_SUBSCRIPTIONS); | 369 CallEngine(Communication::PROC_UPDATE_ALL_SUBSCRIPTIONS); |
376 } | 370 } |
377 | 371 |
378 std::vector<std::wstring> CAdblockPlusClient::GetExceptionDomains() | 372 std::vector<std::wstring> CAdblockPlusClient::GetExceptionDomains() |
379 { | 373 { |
380 Communication::InputBuffer response; | 374 Communication::InputBuffer response; |
381 if (!CallEngine(Communication::PROC_GET_EXCEPTION_DOMAINS, response)) | 375 if (!CallEngine(Communication::PROC_GET_EXCEPTION_DOMAINS, response)) |
382 return std::vector<std::wstring>(); | 376 return std::vector<std::wstring>(); |
383 | 377 |
384 std::vector<std::string> domains; | 378 std::vector<std::wstring> domains; |
385 response >> domains; | 379 response >> domains; |
386 return ToUtf16Strings(domains); | 380 return domains; |
387 } | 381 } |
388 | 382 |
389 bool CAdblockPlusClient::IsFirstRun() | 383 bool CAdblockPlusClient::IsFirstRun() |
390 { | 384 { |
391 DEBUG_GENERAL("IsFirstRun"); | 385 DEBUG_GENERAL("IsFirstRun"); |
392 Communication::InputBuffer response; | 386 Communication::InputBuffer response; |
393 if (!CallEngine(Communication::PROC_IS_FIRST_RUN_ACTION_NEEDED, response)) ret
urn false; | 387 if (!CallEngine(Communication::PROC_IS_FIRST_RUN_ACTION_NEEDED, response)) ret
urn false; |
394 bool res; | 388 bool res; |
395 response >> res; | 389 response >> res; |
396 return res; | 390 return res; |
397 } | 391 } |
398 | 392 |
399 void CAdblockPlusClient::AddFilter(const std::wstring& text) | 393 void CAdblockPlusClient::AddFilter(const std::wstring& text) |
400 { | 394 { |
401 Communication::OutputBuffer request; | 395 Communication::OutputBuffer request; |
402 request << Communication::PROC_ADD_FILTER << ToUtf8String(text); | 396 request << Communication::PROC_ADD_FILTER << text; |
403 CallEngine(request); | 397 CallEngine(request); |
404 } | 398 } |
405 | 399 |
406 void CAdblockPlusClient::RemoveFilter(const std::wstring& text) | 400 void CAdblockPlusClient::RemoveFilter(const std::wstring& text) |
407 { | 401 { |
408 Communication::OutputBuffer request; | 402 Communication::OutputBuffer request; |
409 request << Communication::PROC_REMOVE_FILTER << ToUtf8String(text); | 403 request << Communication::PROC_REMOVE_FILTER << text; |
410 CallEngine(request); | 404 CallEngine(request); |
411 } | 405 } |
412 | 406 |
413 void CAdblockPlusClient::SetPref(const std::wstring& name, const std::wstring& v
alue) | 407 void CAdblockPlusClient::SetPref(const std::wstring& name, const std::wstring& v
alue) |
414 { | 408 { |
415 Communication::OutputBuffer request; | 409 Communication::OutputBuffer request; |
416 request << Communication::PROC_SET_PREF << ToUtf8String(name) << ToUtf8String(
value); | 410 request << Communication::PROC_SET_PREF << name << value; |
417 CallEngine(request); | 411 CallEngine(request); |
418 } | 412 } |
419 | 413 |
420 void CAdblockPlusClient::SetPref(const std::wstring& name, const int64_t & value
) | 414 void CAdblockPlusClient::SetPref(const std::wstring& name, const int64_t & value
) |
421 { | 415 { |
422 Communication::OutputBuffer request; | 416 Communication::OutputBuffer request; |
423 request << Communication::PROC_SET_PREF << ToUtf8String(name) << value; | 417 request << Communication::PROC_SET_PREF << name << value; |
424 CallEngine(request); | 418 CallEngine(request); |
425 } | 419 } |
426 | 420 |
427 void CAdblockPlusClient::SetPref(const std::wstring& name, bool value) | 421 void CAdblockPlusClient::SetPref(const std::wstring& name, bool value) |
428 { | 422 { |
429 Communication::OutputBuffer request; | 423 Communication::OutputBuffer request; |
430 request << Communication::PROC_SET_PREF << ToUtf8String(name) << value; | 424 request << Communication::PROC_SET_PREF << name << value; |
431 CallEngine(request); | 425 CallEngine(request); |
432 } | 426 } |
433 | 427 |
434 std::wstring CAdblockPlusClient::GetPref(const std::wstring& name, const wchar_t
* defaultValue) | 428 std::wstring CAdblockPlusClient::GetPref(const std::wstring& name, const wchar_t
* defaultValue) |
435 { | 429 { |
436 return GetPref(name, std::wstring(defaultValue)); | 430 return GetPref(name, std::wstring(defaultValue)); |
437 } | 431 } |
438 std::wstring CAdblockPlusClient::GetPref(const std::wstring& name, const std::ws
tring& defaultValue) | 432 std::wstring CAdblockPlusClient::GetPref(const std::wstring& name, const std::ws
tring& defaultValue) |
439 { | 433 { |
440 DEBUG_GENERAL((L"GetPref: " + name + L" start").c_str()); | 434 DEBUG_GENERAL((L"GetPref: " + name + L" start").c_str()); |
441 Communication::OutputBuffer request; | 435 Communication::OutputBuffer request; |
442 request << Communication::PROC_GET_PREF << ToUtf8String(name); | 436 request << Communication::PROC_GET_PREF << name; |
443 | 437 |
444 Communication::InputBuffer response; | 438 Communication::InputBuffer response; |
445 if (!CallEngine(request, response)) | 439 if (!CallEngine(request, response)) |
446 return defaultValue; | 440 return defaultValue; |
447 bool success; | 441 bool success; |
448 response >> success; | 442 response >> success; |
449 if (success) | 443 if (success) |
450 { | 444 { |
451 std::string value; | 445 std::wstring value; |
452 response >> value; | 446 response >> value; |
453 DEBUG_GENERAL((L"GetPref: " + name + L" end").c_str()); | 447 DEBUG_GENERAL((L"GetPref: " + name + L" end").c_str()); |
454 return ToUtf16String(value); | 448 return value; |
455 } | 449 } |
456 else | 450 else |
457 { | 451 { |
458 DEBUG_GENERAL((L"GetPref: " + name + L" end").c_str()); | 452 DEBUG_GENERAL((L"GetPref: " + name + L" end").c_str()); |
459 return defaultValue; | 453 return defaultValue; |
460 } | 454 } |
461 } | 455 } |
462 | 456 |
463 bool CAdblockPlusClient::GetPref(const std::wstring& name, bool defaultValue) | 457 bool CAdblockPlusClient::GetPref(const std::wstring& name, bool defaultValue) |
464 { | 458 { |
465 DEBUG_GENERAL((L"GetPref: " + name + L" start").c_str()); | 459 DEBUG_GENERAL((L"GetPref: " + name + L" start").c_str()); |
466 Communication::OutputBuffer request; | 460 Communication::OutputBuffer request; |
467 request << Communication::PROC_GET_PREF << ToUtf8String(name); | 461 request << Communication::PROC_GET_PREF << name; |
468 | 462 |
469 Communication::InputBuffer response; | 463 Communication::InputBuffer response; |
470 if (!CallEngine(request, response)) | 464 if (!CallEngine(request, response)) |
471 return defaultValue; | 465 return defaultValue; |
472 bool success; | 466 bool success; |
473 response >> success; | 467 response >> success; |
474 if (success) | 468 if (success) |
475 { | 469 { |
476 bool value; | 470 bool value; |
477 response >> value; | 471 response >> value; |
478 DEBUG_GENERAL((L"GetPref: " + name + L" end").c_str()); | 472 DEBUG_GENERAL((L"GetPref: " + name + L" end").c_str()); |
479 return value; | 473 return value; |
480 } | 474 } |
481 else | 475 else |
482 { | 476 { |
483 DEBUG_GENERAL((L"GetPref: " + name + L" end").c_str()); | 477 DEBUG_GENERAL((L"GetPref: " + name + L" end").c_str()); |
484 return defaultValue; | 478 return defaultValue; |
485 } | 479 } |
486 } | 480 } |
487 int64_t CAdblockPlusClient::GetPref(const std::wstring& name, int64_t defaultVal
ue) | 481 int64_t CAdblockPlusClient::GetPref(const std::wstring& name, int64_t defaultVal
ue) |
488 { | 482 { |
489 DEBUG_GENERAL((L"GetPref: " + name + L" start").c_str()); | 483 DEBUG_GENERAL((L"GetPref: " + name + L" start").c_str()); |
490 Communication::OutputBuffer request; | 484 Communication::OutputBuffer request; |
491 request << Communication::PROC_GET_PREF << ToUtf8String(name); | 485 request << Communication::PROC_GET_PREF << name; |
492 | 486 |
493 Communication::InputBuffer response; | 487 Communication::InputBuffer response; |
494 if (!CallEngine(request, response)) | 488 if (!CallEngine(request, response)) |
495 return defaultValue; | 489 return defaultValue; |
496 bool success; | 490 bool success; |
497 response >> success; | 491 response >> success; |
498 if (success) | 492 if (success) |
499 { | 493 { |
500 int64_t value; | 494 int64_t value; |
501 response >> value; | 495 response >> value; |
(...skipping 13 matching lines...) Expand all Loading... |
515 request << Communication::PROC_CHECK_FOR_UPDATES << reinterpret_cast<int32_t>(
callbackWindow); | 509 request << Communication::PROC_CHECK_FOR_UPDATES << reinterpret_cast<int32_t>(
callbackWindow); |
516 CallEngine(request); | 510 CallEngine(request); |
517 } | 511 } |
518 | 512 |
519 std::wstring CAdblockPlusClient::GetDocumentationLink() | 513 std::wstring CAdblockPlusClient::GetDocumentationLink() |
520 { | 514 { |
521 DEBUG_GENERAL("GetDocumentationLink"); | 515 DEBUG_GENERAL("GetDocumentationLink"); |
522 Communication::InputBuffer response; | 516 Communication::InputBuffer response; |
523 if (!CallEngine(Communication::PROC_GET_DOCUMENTATION_LINK, response)) | 517 if (!CallEngine(Communication::PROC_GET_DOCUMENTATION_LINK, response)) |
524 return L""; | 518 return L""; |
525 std::string docLink; | 519 std::wstring docLink; |
526 response >> docLink; | 520 response >> docLink; |
527 return ToUtf16String(docLink); | 521 return docLink; |
528 } | 522 } |
529 | 523 |
530 bool CAdblockPlusClient::TogglePluginEnabled() | 524 bool CAdblockPlusClient::TogglePluginEnabled() |
531 { | 525 { |
532 DEBUG_GENERAL("TogglePluginEnabled"); | 526 DEBUG_GENERAL("TogglePluginEnabled"); |
533 Communication::InputBuffer response; | 527 Communication::InputBuffer response; |
534 if (!CallEngine(Communication::PROC_TOGGLE_PLUGIN_ENABLED, response)) | 528 if (!CallEngine(Communication::PROC_TOGGLE_PLUGIN_ENABLED, response)) |
535 return false; | 529 return false; |
536 bool currentEnabledState; | 530 bool currentEnabledState; |
537 response >> currentEnabledState; | 531 response >> currentEnabledState; |
538 return currentEnabledState; | 532 return currentEnabledState; |
539 } | 533 } |
540 | 534 |
541 std::wstring CAdblockPlusClient::GetHostFromUrl(const std::wstring& url) | 535 std::wstring CAdblockPlusClient::GetHostFromUrl(const std::wstring& url) |
542 { | 536 { |
543 DEBUG_GENERAL("GetHostFromUrl"); | 537 DEBUG_GENERAL("GetHostFromUrl"); |
544 Communication::OutputBuffer request; | 538 Communication::OutputBuffer request; |
545 request << Communication::PROC_GET_HOST << ToUtf8String(url); | 539 request << Communication::PROC_GET_HOST << url; |
546 | 540 |
547 Communication::InputBuffer response; | 541 Communication::InputBuffer response; |
548 if (!CallEngine(request, response)) | 542 if (!CallEngine(request, response)) |
549 return L""; | 543 return L""; |
550 std::string host; | 544 std::wstring host; |
551 response >> host; | 545 response >> host; |
552 return ToUtf16String(host); | 546 return host; |
553 } | 547 } |
554 | 548 |
555 int CAdblockPlusClient::CompareVersions(const std::wstring& v1, const std::wstri
ng& v2) | 549 int CAdblockPlusClient::CompareVersions(const std::wstring& v1, const std::wstri
ng& v2) |
556 { | 550 { |
557 DEBUG_GENERAL("CompareVersions"); | 551 DEBUG_GENERAL("CompareVersions"); |
558 Communication::OutputBuffer request; | 552 Communication::OutputBuffer request; |
559 request << Communication::PROC_COMPARE_VERSIONS << ToUtf8String(v1) << ToUtf8S
tring(v2); | 553 request << Communication::PROC_COMPARE_VERSIONS << v1 << v2; |
560 Communication::InputBuffer response; | 554 Communication::InputBuffer response; |
561 if (!CallEngine(request, response)) | 555 if (!CallEngine(request, response)) |
562 return 0; | 556 return 0; |
563 int result; | 557 int result; |
564 response >> result; | 558 response >> result; |
565 return result; | 559 return result; |
566 } | 560 } |
OLD | NEW |