Index: compiled/bindings.cpp |
=================================================================== |
new file mode 100644 |
--- /dev/null |
+++ b/compiled/bindings.cpp |
@@ -0,0 +1,69 @@ |
+#include "bindings.h" |
+#include "Filter.h" |
+#include "InvalidFilter.h" |
+#include "CommentFilter.h" |
+#include "ActiveFilter.h" |
+#include "RegExpFilter.h" |
+#include "WhitelistFilter.h" |
+#include "ElemHideBase.h" |
+#include "ElemHideFilter.h" |
+#include "ElemHideException.h" |
+#include "CSSPropertyFilter.h" |
+ |
+EMSCRIPTEN_BINDINGS |
+{ |
+ class_<Filter>("Filter") |
+ .property("text", &Filter::GetText) |
+ .function("serialize", &Filter::Serialize) |
+ .class_function("fromText", &Filter::FromText) |
+ .class_function("normalize", &Filter::Normalize) |
+ .subclass_differentiator(&Filter::GetType, { |
+ {Filter::Type::INVALID, "InvalidFilter"}, |
+ {Filter::Type::COMMENT, "CommentFilter"}, |
+ {Filter::Type::BLOCKING, "RegExpFilter"}, |
+ {Filter::Type::WHITELIST, "WhitelistFilter"}, |
+ {Filter::Type::ELEMHIDE, "ElemHideFilter"}, |
+ {Filter::Type::ELEMHIDEEXCEPTION, "ElemHideException"}, |
+ {Filter::Type::CSSPROPERTY, "CSSPropertyFilter"}, |
+ }); |
+ |
+ class_<InvalidFilter,Filter>("InvalidFilter") |
+ .class_property("type", "'invalid'") |
+ .property("reason", &InvalidFilter::GetReason); |
+ |
+ class_<CommentFilter,Filter>("CommentFilter") |
+ .class_property("type", "'comment'"); |
+ |
+ class_<ActiveFilter,Filter>("ActiveFilter") |
+ .property("disabled", &ActiveFilter::GetDisabled, &ActiveFilter::SetDisabled) |
+ .property("hitCount", &ActiveFilter::GetHitCount, &ActiveFilter::SetHitCount) |
+ .property("lastHit", &ActiveFilter::GetLastHit, &ActiveFilter::SetLastHit) |
+ .function("isActiveOnDomain", &ActiveFilter::IsActiveOnDomain) |
+ .function("isActiveOnlyOnDomain", &ActiveFilter::IsActiveOnlyOnDomain) |
+ .function("isGeneric", &ActiveFilter::IsGeneric) |
+ .function("serialize", &ActiveFilter::Serialize); |
+ |
+ class_<RegExpFilter,ActiveFilter>("RegExpFilter") |
+ .class_property("type", "'blocking'") |
+ .function("matches", &RegExpFilter::Matches) |
+ .class_initializer(&RegExpFilter::InitJSTypes); |
+ |
+ class_<WhitelistFilter,RegExpFilter>("WhitelistFilter") |
+ .class_property("type", "'whitelist'"); |
+ |
+ class_<ElemHideBase,ActiveFilter>("ElemHideBase") |
+ .property("selector", &ElemHideBase::GetSelector) |
+ .property("selectorDomain", &ElemHideBase::GetSelectorDomain); |
+ |
+ class_<ElemHideFilter,ElemHideBase>("ElemHideFilter") |
+ .class_property("type", "'elemhide'"); |
+ |
+ class_<ElemHideException,ElemHideBase>("ElemHideException") |
+ .class_property("type", "'elemhideexception'"); |
+ |
+ class_<CSSPropertyFilter,ElemHideBase>("CSSPropertyFilter") |
+ .class_property("type", "'cssproperty'") |
+ .property("regexpString", &CSSPropertyFilter::GetRegExpString) |
+ .property("selectorPrefix", &CSSPropertyFilter::GetSelectorPrefix) |
+ .property("selectorSuffix", &CSSPropertyFilter::GetSelectorSuffix); |
+} |