Opened 11 months ago

Last modified 2 days 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
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 new [emscripten] Convert filter storage to C++ 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


Change History (27)

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

  • Blocked By 4125 added

comment:3 Changed 11 months ago by trev

  • Blocked By 4127 added

comment:4 Changed 11 months ago by trev

  • Blocked By 4128 added

comment:5 Changed 6 weeks ago by trev

  • Blocked By 4988 added

comment:6 Changed 6 weeks ago by trev

  • Blocked By 4989 added

comment:7 Changed 6 weeks ago by trev

  • Blocked By 4991 added

comment:8 Changed 5 weeks ago by trev

  • Blocked By 5020 added

comment:9 Changed 4 weeks ago by trev

  • Blocked By 5062 added

comment:10 Changed 4 weeks ago by trev

  • Blocked By 5063 added

comment:11 Changed 2 weeks ago by trev

  • Blocked By 5131 added

comment:12 Changed 2 weeks ago by sergz

  • Cc sergz added

comment:13 Changed 13 days ago by trev

  • Blocked By 5137 added

comment:14 Changed 13 days ago by trev

  • Blocked By 5138 added

comment:15 Changed 13 days ago by trev

  • Blocked By 5141 added

comment:16 Changed 13 days ago by trev

  • Blocked By 5142 added

comment:17 Changed 13 days ago by trev

  • Blocked By 5143 added

comment:18 Changed 12 days ago by trev

  • Blocked By 5144 added

comment:19 Changed 12 days ago by trev

  • Blocked By 5146 added

comment:20 Changed 11 days ago by hfiguiere

  • Cc hfiguiere added

comment:21 Changed 11 days ago by trev

  • Blocked By 5147 added

comment:22 Changed 9 days ago by trev

  • Blocked By 5149 added

comment:23 Changed 7 days ago by trev

  • Blocked By 5159 added

comment:24 Changed 7 days ago by trev

  • Blocked By 5160 added

comment:25 Changed 3 days ago by trev

  • Blocked By 5174 added

comment:26 Changed 3 days ago by trev

  • Blocked By 5175 added

comment:27 Changed 2 days ago by trev

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