Rietveld Code Review Tool
Help | Bug tracker | Discussion group | Source code

Unified Diff: compiled/bindings.cpp

Issue 29333474: Issue 4125 - [emscripten] Convert filter classes to C++ (Closed)
Patch Set: Addressed Sergei`s comments again and added some asserts Created Feb. 23, 2016, 12:30 p.m.
Use n/p to move between diff chunks; N/P to move between comments.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: compiled/bindings.cpp
===================================================================
new file mode 100644
--- /dev/null
+++ b/compiled/bindings.cpp
@@ -0,0 +1,72 @@
+#include "bindings.h"
+#include "Filter.h"
+#include "InvalidFilter.h"
+#include "CommentFilter.h"
+#include "ActiveFilter.h"
+#include "RegExpFilter.h"
+#include "BlockingFilter.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("getKnownFilter", &Filter::GetKnownFilter)
+ .subclass_differentiator(&Filter::GetType, {
+ {Filter::Type::INVALID, "InvalidFilter"},
+ {Filter::Type::COMMENT, "CommentFilter"},
+ {Filter::Type::BLOCKING, "BlockingFilter"},
+ {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")
+ .function("matches", &RegExpFilter::Matches)
+ .class_initializer(&RegExpFilter::InitJSTypes);
+
+ class_<BlockingFilter,RegExpFilter>("BlockingFilter")
+ .class_property("type", "'blocking'");
+
+ 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);
+}

Powered by Google App Engine
This is Rietveld