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

Reply via email to