Opened 13 months ago

Last modified 5 weeks 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 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
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
#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 reviewing [emscripten] Add implementation of basic filter storage functionality Core trev
#5138 new [emscripten] Convert serializing patterns.ini to C++ Core
#5141 new [emscripten] Convert filter matcher to C++ Core
#5142 new [emscripten] Convert element hiding container to C++ Core
#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 new [emscripten] Prevent use-after-free from JavaScript Core
#5149 new [emscripten] Verify that unit tests don't leak any objects Core
#5159 new [emscripten] Expose BlockingFilter.collapse property Core
#5160 new [emscripten] Expose changed class and property names to JavaScript Core
#5174 new [emscripten] Allow brackets { and } in element hiding filters Core
#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 new [emscripten] Make filters and subscriptions easier to use from C++ Core trev
#5259 new [emscripten] Implement hit counts functionality Core trev


Change History (31)

comment:1 Changed 13 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 13 months ago by trev

  • Blocked By 4125 added

comment:3 Changed 13 months ago by trev

  • Blocked By 4127 added

comment:4 Changed 13 months ago by trev

  • Blocked By 4128 added

comment:5 Changed 3 months ago by trev

  • Blocked By 4988 added

comment:6 Changed 3 months ago by trev

  • Blocked By 4989 added

comment:7 Changed 3 months ago by trev

  • Blocked By 4991 added

comment:8 Changed 3 months ago by trev

  • Blocked By 5020 added

comment:9 Changed 3 months ago by trev

  • Blocked By 5062 added

comment:10 Changed 3 months ago by trev

  • Blocked By 5063 added

comment:11 Changed 2 months ago by trev

  • Blocked By 5131 added

comment:12 Changed 2 months ago by sergz

  • Cc sergz added

comment:13 Changed 2 months ago by trev

  • Blocked By 5137 added

comment:14 Changed 2 months ago by trev

  • Blocked By 5138 added

comment:15 Changed 2 months ago by trev

  • Blocked By 5141 added

comment:16 Changed 2 months ago by trev

  • Blocked By 5142 added

comment:17 Changed 2 months ago by trev

  • Blocked By 5143 added

comment:18 Changed 2 months ago by trev

  • Blocked By 5144 added

comment:19 Changed 2 months ago by trev

  • Blocked By 5146 added

comment:20 Changed 2 months ago by hfiguiere

  • Cc hfiguiere added

comment:21 Changed 2 months ago by trev

  • Blocked By 5147 added

comment:22 Changed 2 months ago by trev

  • Blocked By 5149 added

comment:23 Changed 2 months ago by trev

  • Blocked By 5159 added

comment:24 Changed 2 months ago by trev

  • Blocked By 5160 added

comment:25 Changed 2 months ago by trev

  • Blocked By 5174 added

comment:26 Changed 2 months ago by trev

  • Blocked By 5175 added

comment:27 Changed 2 months ago by trev

  • Blocked By 5185 added

comment:28 Changed 8 weeks ago by trev

  • Blocked By 5201 added

comment:29 Changed 7 weeks ago by trev

  • Blocked By 5216 added

comment:30 Changed 5 weeks ago by trev

  • Blocked By 5258 added

comment:31 Changed 5 weeks ago by trev

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