24.04.2019, 22:01, "Alexander Ivash" <elder...@gmail.com>: > What I really need is some 'plugin' to qmake which would allow to > modify qml files on the fly before placing it into resources (but not > touching them on filesystem!). In ideal world, yeah.
That's possible to do with qmake already, but you'll have to build resource files manually via custom targets > > ср, 24 апр. 2019 г. в 21:51, Alexander Ivash <elder...@gmail.com>: >> 2Jerome: >> >> The issue is that even if that function will be doing nothing, logging >> data (which might be sensitive) can be captured via hooks / dump >> analysis etc. I really need to pre-processes to eliminate not only >> function call but also function parameters completely. Think about >> this scenario: >> >> console.debug('password: ', >> someFunctionWhichReturnsPasswordFromProtectedStorage()); You can wrap this whole expression into function and replace that function with empty one: function printPasswordToDebug() { console.debug('password: ', someFunctionWhichReturnsPasswordFromProtectedStorage()); } and replace printPasswordToDebug >> >> In this case even if console.debug will be replaced with empty >> function, 'someFunctionWhichReturnsPasswordFromProtectedStorage()' >> will be executed anyway and as the result password will appear >> somewhere in JS heap so after capturing dump it will be simpler to >> find it. >> >> 2Tomasz: >> >> In fact I would love to use logging category, but only for debug >> builds. But I have some requirements to minimize risk of sensitive >> data leak via logging. And to make a life of reverse engineers a bit >> more complicated if you like. So ideally no logging-related functions >> (and their parameters too!) should be visible in release build. >> >> ср, 24 апр. 2019 г. в 21:27, Jérôme Godbout <godbo...@amotus.ca>: >> > >> > Maybe you can overload the functor directly into the code and import the >> file only if in debug mode (optional module): >> > http://udidu.blogspot.com/2012/12/override-console-functions.html >> > >> > That could also be helpful to split the log into multiple receiver. >> > >> > Not sure if this would work, but maybe you can override the console.log >> command into the QQmlScriptEngine and define a new javascript function that >> does nothing. Maybe into the your main.cpp where you create the QQmlEngine >> you can call the rootContext() QQmlContext object, maybe you can extract the >> console object with QVariant contextProperty() and set the debug() property >> of it with a QQmlExpression, I cannot glue all this together, but maybe >> something into that direction could be done before you start loading the >> main qml file. This is far fetched by might work but it seem overcomplicated >> to me. >> > >> > -----Original Message----- >> > From: Interest <interest-boun...@qt-project.org> On Behalf Of Alexander >> Ivash >> > Sent: April 24, 2019 12:56 PM >> > To: interestqt-project.org <interest@qt-project.org> >> > Subject: [Interest] QML preprocessing >> > >> > I understand that this topic was raised a lot of times and that this is >> not QML-way. But, what options do I have in case of requirements to >> eliminate all the logging for release builds? >> > >> > Is there any hidden magic in qmake, like 'QMAKE_SUBSTITUTES' but more >> flexible to substitute all the 'console.debug....' with '// console.debug' >> right before adding qml into resources? >> > >> > p.s. Yea, I'm aware of selectors, but would like to avoid having both >> component-with-logging.qml and component-with-no-logging.qml >> > >> > Regards, Alexander >> > _______________________________________________ >> > Interest mailing list >> > Interest@qt-project.org >> > https://lists.qt-project.org/listinfo/interest > > _______________________________________________ > Interest mailing list > Interest@qt-project.org > https://lists.qt-project.org/listinfo/interest -- Regards, Konstantin _______________________________________________ Interest mailing list Interest@qt-project.org https://lists.qt-project.org/listinfo/interest