Opened 17 months ago

Last modified 38 hours ago

#4122 new change

[meta] Create an Emscripten-based version of the core classes

Reported by: trev Assignee:
Priority: P2 Milestone:
Module: Core Keywords: emscripten meta
Cc: sergz, hfiguiere, oleksandr Blocked By: #4125, #4127, #4128, #4988, #4989, #4991, #5020, #5062, #5063, #5131, #5137, #5138, #5141, #5142, #5143, #5144, #5146, #5147, #5149, #5159, #5160, #5174, #5175, #5185, #5201, #5216, #5258, #5259, #5603, #5604, #5661, #5662, #5664, #5732, #5870
Blocking: Platform: Unknown / Cross platform
Ready: yes Confidential: no
Tester: Unknown Verified working: no
Review URL(s):

Description

Background

JavaScript engines allow a limited amount of memory optimization, we need to use typed arrays for our data. Doing that with JavaScript will produce an unmaintainable codebase, so we decided to use C++ instead and transpile using Emscripten.

What to change

We need to convert a minimal amount of core classes in order for this to make sense, most operations should stay within Emscripten-generated code.

Ticket Status Resolution Summary Component Owner
#4125 closed fixed [emscripten] Convert filter classes to C++ Core trev
#4127 closed fixed [emscripten] Convert subscription classes to C++ Core trev
#4128 new [emscripten] Convert parsing patterns.ini to C++ Core sergz
#4988 closed fixed [emscripten] Adjust API for Element Hiding Emulation filters Core trev
#4989 closed fixed [emscripten] Move filter class files into a separate directory Core trev
#4991 closed fixed [emscripten] Update to Emscripten 1.37.3 Core trev
#5020 closed fixed [emscripten] Improve compile script Core trev
#5062 closed fixed [emscripten] Allow generation of custom bindings code Core trev
#5063 closed fixed [emscripten] Make FilterNotifier calls more efficient Core trev
#5131 closed fixed [emscripten] Clean separation of bindings code and runtime code Core
#5137 closed fixed [emscripten] Add implementation of basic filter storage functionality Core trev
#5138 new [emscripten] Convert serializing patterns.ini to C++ Core sergz
#5141 reviewing [emscripten] Convert filter matcher to C++ Core trev
#5142 new [emscripten] Convert element hiding container to C++ Core hfiguiere
#5143 new [emscripten] Convert element hiding emulation container to C++ Core
#5144 new [emscripten] Move FilterListener functionality into FilterNotifier Core
#5146 new [emscripten] Implement DownloadableSubscription.parseDownload() Core
#5147 closed fixed [emscripten] Prevent use-after-free from JavaScript Core hfiguiere
#5149 new [emscripten] Verify that unit tests don't leak any objects Core
#5159 reviewing [emscripten] Expose BlockingFilter.collapse property Core hfiguiere
#5160 closed fixed [emscripten] Expose changed class and property names to JavaScript Core hfiguiere
#5174 reviewing [emscripten] Allow brackets { and } in element hiding filters Core hfiguiere
#5175 new [emscripten] Reject element hiding filters with effectively empty domain names Core
#5185 closed fixed [emscripten] More compact definition of class prototypes Core trev
#5201 closed fixed [emscripten] Replace EM_ASM calls by a custom JavaScript library Core trev
#5216 closed fixed [emscripten] Use a more reliable way of retrieving mangled function name Core trev
#5258 reviewing [emscripten] Make filters and subscriptions easier to use from C++ Core trev
#5259 new [emscripten] Implement hit counts functionality Core trev
#5603 closed fixed [emscripten] Support references in parameters of exported functions Core trev
#5604 closed fixed [emscripten] Put BINDINGS_EXPORTED after the return type consistently Core trev
#5661 new [emscripten] Move impl of Subscription serialization from Subscription classes Core sergz
#5662 closed duplicate [emscripten] Create patterns.ini parser Core
#5664 closed fixed [emscripten] Change `assert` macro to accept a single parameter. Core hfiguiere
#5732 new [emscripten] Stop using i64 arithmetic Core
#5870 new [emscripten] Implement the new ElemHideEmulation filter type Core


Change History (39)

comment:1 Changed 17 months ago by trev

  • Summary changed from [emscripten] Create an Emscripten-based version of the core classes to [meta] Create an Emscripten-based version of the core classes

comment:2 Changed 17 months ago by trev

  • Blocked By 4125 added

comment:3 Changed 17 months ago by trev

  • Blocked By 4127 added

comment:4 Changed 17 months ago by trev

  • Blocked By 4128 added

comment:5 Changed 7 months ago by trev

  • Blocked By 4988 added

comment:6 Changed 7 months ago by trev

  • Blocked By 4989 added

comment:7 Changed 7 months ago by trev

  • Blocked By 4991 added

comment:8 Changed 7 months ago by trev

  • Blocked By 5020 added

comment:9 Changed 7 months ago by trev

  • Blocked By 5062 added

comment:10 Changed 7 months ago by trev

  • Blocked By 5063 added

comment:11 Changed 6 months ago by trev

  • Blocked By 5131 added

comment:12 Changed 6 months ago by sergz

  • Cc sergz added

comment:13 Changed 6 months ago by trev

  • Blocked By 5137 added

comment:14 Changed 6 months ago by trev

  • Blocked By 5138 added

comment:15 Changed 6 months ago by trev

  • Blocked By 5141 added

comment:16 Changed 6 months ago by trev

  • Blocked By 5142 added

comment:17 Changed 6 months ago by trev

  • Blocked By 5143 added

comment:18 Changed 6 months ago by trev

  • Blocked By 5144 added

comment:19 Changed 6 months ago by trev

  • Blocked By 5146 added

comment:20 Changed 6 months ago by hfiguiere

  • Cc hfiguiere added

comment:21 Changed 6 months ago by trev

  • Blocked By 5147 added

comment:22 Changed 6 months ago by trev

  • Blocked By 5149 added

comment:23 Changed 6 months ago by trev

  • Blocked By 5159 added

comment:24 Changed 6 months ago by trev

  • Blocked By 5160 added

comment:25 Changed 6 months ago by trev

  • Blocked By 5174 added

comment:26 Changed 6 months ago by trev

  • Blocked By 5175 added

comment:27 Changed 6 months ago by trev

  • Blocked By 5185 added

comment:28 Changed 6 months ago by trev

  • Blocked By 5201 added

comment:29 Changed 6 months ago by trev

  • Blocked By 5216 added

comment:30 Changed 5 months ago by trev

  • Blocked By 5258 added

comment:31 Changed 5 months ago by trev

  • Blocked By 5259 added

comment:32 Changed 7 weeks ago by trev

  • Blocked By 5603 added

comment:33 Changed 7 weeks ago by trev

  • Blocked By 5604 added

comment:34 Changed 5 weeks ago by sergz

  • Blocked By 5661 added

comment:35 Changed 5 weeks ago by sergz

  • Blocked By 5662 added

comment:36 Changed 5 weeks ago by sergz

  • Blocked By 5664 added

comment:37 Changed 4 weeks ago by trev

  • Blocked By 5732 added

comment:38 Changed 8 days ago by oleksandr

  • Cc oleksandr added

comment:39 Changed 38 hours ago by hfiguiere

  • Blocked By 5870 added
Note: See TracTickets for help on using tickets.