Code review comment for lp:~michael-sheldon/ubuntu-download-manager/qml-api-improvements

Revision history for this message
Jonas G. Drange (jonas-drange) wrote :

I've encountered a couple of issues in using this new qml feature that might be caused by ignorance on my part, please bear with me.

First, when I create a SingleDownload and add a Metadata object to it, no matter what values I set on the Metadata object, it is ignored. E.g., I do:

    Component { id: sdl; SingleDownload {} }
    Component { id: mdt; Metadata {} }

    var singleDownloadObj = sdl.createObject(UpdateManager, {
        "autoStart": false,
        "hash": hash,
        "algorithm": algorithm,
        "headers": headers // A QVariantMap of headers
    });

    var metadataObj = mdt.createObject(UpdateManager, metadata); // QVariantMap of metadata
    singleDownloadObj.metadata = metadataObj;
    singleDownloadObj.download(url);

What I get in the downloads.sql database is:

    sqlite> select * from SingleDownload;
    a634b6f8888d48309f51f2d9d3b960d4|unconfined|http://localhost:9009/download|/com/canonical/applications/download/a634b6f8888d48309f51f2d9d3b960d4|/home/jonas/.local/share/ubuntu-download-manager/Downloads/download (11)|1232223sdfdsffs|sha512|idle|0|0|{
        "app-id": "/usr/bin/system-settings"
    }
    |{
    }

This seems to happen because in qml/single_download.cpp:232 we have:
    SingleDownload::download(QString url)
    …
    Metadata metadata;
    QMap<QString, QString> headers;
    DownloadStruct dstruct(url, m_hash, m_algorithm, metadata.map(), headers);
    m_manager->createDownload(dstruct);

I.e. m_metadata and m_headers are ignored. Am I not supposed to call SingleDownload.download?

Secondly, even though the sqlite output from above have “app-id” set to “/usr/bin/system-settings”, the sqlite “appId” field is set to “unconfined”. For the QML plugin to returned unconfined downloads (not using u-a-l), I have to specifically set APP_ID=unconfined. Is this expected?

review: Needs Information

« Back to merge proposal