| OLD | NEW |
| 1 /* | 1 /* |
| 2 * This file is part of Adblock Plus <http://adblockplus.org/>, | 2 * This file is part of Adblock Plus <http://adblockplus.org/>, |
| 3 * Copyright (C) 2006-2013 Eyeo GmbH | 3 * Copyright (C) 2006-2013 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 23 matching lines...) Expand all Loading... |
| 34 jstring sdkVersion, jstring locale, jboolean developmentBuild); | 34 jstring sdkVersion, jstring locale, jboolean developmentBuild); |
| 35 JNIEXPORT void JNICALL Java_org_adblockplus_android_ABPEngine_release(JNIEnv *
pEnv, jobject); | 35 JNIEXPORT void JNICALL Java_org_adblockplus_android_ABPEngine_release(JNIEnv *
pEnv, jobject); |
| 36 JNIEXPORT jboolean JNICALL Java_org_adblockplus_android_ABPEngine_isFirstRun(J
NIEnv *pEnv, jobject); | 36 JNIEXPORT jboolean JNICALL Java_org_adblockplus_android_ABPEngine_isFirstRun(J
NIEnv *pEnv, jobject); |
| 37 JNIEXPORT jobjectArray JNICALL Java_org_adblockplus_android_ABPEngine_getListe
dSubscriptions(JNIEnv *pEnv, jobject); | 37 JNIEXPORT jobjectArray JNICALL Java_org_adblockplus_android_ABPEngine_getListe
dSubscriptions(JNIEnv *pEnv, jobject); |
| 38 JNIEXPORT jobjectArray JNICALL Java_org_adblockplus_android_ABPEngine_getRecom
mendedSubscriptions(JNIEnv *pEnv, jobject); | 38 JNIEXPORT jobjectArray JNICALL Java_org_adblockplus_android_ABPEngine_getRecom
mendedSubscriptions(JNIEnv *pEnv, jobject); |
| 39 JNIEXPORT void JNICALL Java_org_adblockplus_android_ABPEngine_addSubscription(
JNIEnv *pEnv, jobject, jstring url); | 39 JNIEXPORT void JNICALL Java_org_adblockplus_android_ABPEngine_addSubscription(
JNIEnv *pEnv, jobject, jstring url); |
| 40 JNIEXPORT void JNICALL Java_org_adblockplus_android_ABPEngine_removeSubscripti
on(JNIEnv *pEnv, jobject, jstring url); | 40 JNIEXPORT void JNICALL Java_org_adblockplus_android_ABPEngine_removeSubscripti
on(JNIEnv *pEnv, jobject, jstring url); |
| 41 JNIEXPORT void JNICALL Java_org_adblockplus_android_ABPEngine_refreshSubscript
ion(JNIEnv *pEnv, jobject, jstring url); | 41 JNIEXPORT void JNICALL Java_org_adblockplus_android_ABPEngine_refreshSubscript
ion(JNIEnv *pEnv, jobject, jstring url); |
| 42 JNIEXPORT void JNICALL Java_org_adblockplus_android_ABPEngine_actualizeSubscri
ptionStatus(JNIEnv *pEnv, jobject, jstring url); | 42 JNIEXPORT void JNICALL Java_org_adblockplus_android_ABPEngine_actualizeSubscri
ptionStatus(JNIEnv *pEnv, jobject, jstring url); |
| 43 JNIEXPORT void JNICALL Java_org_adblockplus_android_ABPEngine_setAcceptableAds
Enabled(JNIEnv *pEnv, jobject, jboolean enabled); | 43 JNIEXPORT void JNICALL Java_org_adblockplus_android_ABPEngine_setAcceptableAds
Enabled(JNIEnv *pEnv, jobject, jboolean enabled); |
| 44 JNIEXPORT jboolean JNICALL Java_org_adblockplus_android_ABPEngine_matches(JNIE
nv *pEnv, jobject, jstring url, jstring contentType, jstring documentUrl); | 44 JNIEXPORT jboolean JNICALL Java_org_adblockplus_android_ABPEngine_matches( |
| 45 JNIEnv *pEnv, jobject, jstring url, jstring contentType, jobjectArray docume
ntUrls); |
| 45 JNIEXPORT jobjectArray JNICALL Java_org_adblockplus_android_ABPEngine_getSelec
torsForDomain(JNIEnv *pEnv, jobject, jstring domain); | 46 JNIEXPORT jobjectArray JNICALL Java_org_adblockplus_android_ABPEngine_getSelec
torsForDomain(JNIEnv *pEnv, jobject, jstring domain); |
| 46 JNIEXPORT void JNICALL Java_org_adblockplus_android_ABPEngine_checkUpdates(JNI
Env *pEnv, jobject); | 47 JNIEXPORT void JNICALL Java_org_adblockplus_android_ABPEngine_checkUpdates(JNI
Env *pEnv, jobject); |
| 47 }; | 48 }; |
| 48 | 49 |
| 49 jobjectArray subscriptionsAsJavaArray(JNIEnv *pEnv, std::vector<AdblockPlus::Sub
scriptionPtr> subscriptions) | 50 jobjectArray subscriptionsAsJavaArray(JNIEnv *pEnv, std::vector<AdblockPlus::Sub
scriptionPtr> subscriptions) |
| 50 { | 51 { |
| 51 D(D_WARN, "subscriptionsAsJavaArray()"); | 52 D(D_WARN, "subscriptionsAsJavaArray()"); |
| 52 static jclass cls = reinterpret_cast<jclass>(pEnv->NewGlobalRef(pEnv->FindClas
s("org/adblockplus/android/Subscription"))); | 53 static jclass cls = reinterpret_cast<jclass>(pEnv->NewGlobalRef(pEnv->FindClas
s("org/adblockplus/android/Subscription"))); |
| 53 static jmethodID cid = pEnv->GetMethodID(cls, "<init>", "()V"); | 54 static jmethodID cid = pEnv->GetMethodID(cls, "<init>", "()V"); |
| 54 static jfieldID ftitle = pEnv->GetFieldID(cls, "title", "Ljava/lang/String;"); | 55 static jfieldID ftitle = pEnv->GetFieldID(cls, "title", "Ljava/lang/String;"); |
| (...skipping 393 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 448 catch (const std::exception& e) | 449 catch (const std::exception& e) |
| 449 { | 450 { |
| 450 ThrowJavaException(pEnv, e); | 451 ThrowJavaException(pEnv, e); |
| 451 } | 452 } |
| 452 catch (...) | 453 catch (...) |
| 453 { | 454 { |
| 454 ThrowJavaException(pEnv); | 455 ThrowJavaException(pEnv); |
| 455 } | 456 } |
| 456 } | 457 } |
| 457 | 458 |
| 458 JNIEXPORT jboolean JNICALL Java_org_adblockplus_android_ABPEngine_matches(JNIEnv
*pEnv, jobject, jstring url, jstring contentType, jstring documentUrl) | 459 JNIEXPORT jboolean JNICALL Java_org_adblockplus_android_ABPEngine_matches( |
| 460 JNIEnv *pEnv, jobject, jstring url, jstring contentType, jobjectArray document
Urls) |
| 459 { | 461 { |
| 460 try | 462 try |
| 461 { | 463 { |
| 462 const std::string surl = GetString(pEnv, url); | 464 const std::string surl = GetString(pEnv, url); |
| 463 const std::string stype = GetString(pEnv, contentType); | 465 const std::string stype = GetString(pEnv, contentType); |
| 464 const std::string sdoc = GetString(pEnv, documentUrl); | 466 const int documentUrlsLength = pEnv->GetArrayLength(documentUrls); |
| 467 std::vector<std::string> sdocumentUrls; |
| 468 for(int i = 0; i < documentUrlsLength; i++) |
| 469 { |
| 470 jstring documentUrl = static_cast<jstring>(pEnv->GetObjectArrayElement(do
cumentUrls, i)); |
| 471 sdocumentUrls.push_back(GetString(pEnv, documentUrl)); |
| 472 } |
| 465 | 473 |
| 466 AdblockPlus::FilterPtr filter = filterEngine->Matches(surl, stype, sdoc); | 474 AdblockPlus::FilterPtr filter = filterEngine->Matches(surl, stype, sdocument
Urls); |
| 467 | 475 |
| 468 if (! filter) | 476 if (! filter) |
| 469 return JNI_FALSE; | 477 return JNI_FALSE; |
| 470 | 478 |
| 471 // hack: if there is no referrer block only if filter is domain-specific | 479 // hack: if there is no referrer, block only if filter is domain-specific |
| 472 // (to re-enable in-app ads blocking, proposed on 12.11.2012 Monday meeting) | 480 // (to re-enable in-app ads blocking, proposed on 12.11.2012 Monday meeting) |
| 473 // documentUrl contains the referrer (Android application special case) | 481 // (documentUrls contains the referrers on Android) |
| 474 if (sdoc.empty() && (filter->GetProperty("text")->AsString()).find("||") !=
std::string::npos) | 482 if (!sdocumentUrls.size() && |
| 483 (filter->GetProperty("text")->AsString()).find("||") != std::string::npo
s) |
| 475 return JNI_FALSE; | 484 return JNI_FALSE; |
| 476 | 485 |
| 477 return filter->GetType() == AdblockPlus::Filter::TYPE_EXCEPTION ? JNI_FALSE
: JNI_TRUE; | 486 return filter->GetType() == AdblockPlus::Filter::TYPE_EXCEPTION ? JNI_FALSE
: JNI_TRUE; |
| 478 } | 487 } |
| 479 catch (const std::exception& e) | 488 catch (const std::exception& e) |
| 480 { | 489 { |
| 481 ThrowJavaException(pEnv, e); | 490 ThrowJavaException(pEnv, e); |
| 482 } | 491 } |
| 483 catch (...) | 492 catch (...) |
| 484 { | 493 { |
| (...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 531 } | 540 } |
| 532 catch (const std::exception& e) | 541 catch (const std::exception& e) |
| 533 { | 542 { |
| 534 ThrowJavaException(pEnv, e); | 543 ThrowJavaException(pEnv, e); |
| 535 } | 544 } |
| 536 catch (...) | 545 catch (...) |
| 537 { | 546 { |
| 538 ThrowJavaException(pEnv); | 547 ThrowJavaException(pEnv); |
| 539 } | 548 } |
| 540 } | 549 } |
| OLD | NEW |