/srv/irclogs.ubuntu.com/2015/09/15/#ubuntu-app-devel.txt

=== chriadam|away is now known as chriadam
nemomcphail: pong01:25
nemohm bit late sorry, but did you get a verbose log?01:26
mcphailnemo: if it is helpful, http://paste.ubuntu.com/12412453/ is all I got. Off to bed now02:31
nemokk02:40
nemogn02:40
dholbachgood morning07:10
aquariusappdevs, I'm trying to build an app and am having problems with cmake stuff; http://paste.ubuntu.com/12416080/ shows the error, and indeed "/var/lib/schroot/chroots/click-ubuntu-sdk-14.10-armhf/usr/lib/arm-linux-gnueabihf/qt5/bin/moc" does not exist. What do I need to install to get it?08:01
aquariusah, fixed08:30
mcphailwhat was the problem?08:30
mcphail(I'd have thought moc would be installed by standard in the chroots...)08:31
aquariusso would I08:31
aquariusapt-get install qtbase5-dev-tools:armhf got what was needed08:32
mcphailmaybe worth a bug report?08:32
aquariusno idea whether it's a bug, or my setup, or what. A bug report would be useless; I can't report back on whether a fix fixed it08:34
aquariuscurrently being frustrated by: "lint_hooks_multiple_apps: more than one desktop app specified in hooks"08:35
aquariuswhich is a stupid error because it's preventing me from building a package which works fine!08:35
mcphailaquarius: yes - these appear to be banned08:35
aquariusyes, I'm specifying more than one desktop app because I have more than one desktop app in my package, which works fine and is allowed!08:35
mcphailaquarius: I did work out an exploit for the multiple apps thing, so they are probably banned for good reason08:37
mcphailaquarius: http://themcphails.uk/leakytrust.njmcphail_0.1_armhf.click is an example where you can leak information from one trusted app to another which has network permissions08:39
mcphail(open the trusted one then the malicious one and look at the logs)08:41
aquariusindeed. The point of having multiple apps is that they can share information.08:42
mcphailaquarius: yes, but the problem is the multiple apps don't have to have the same security permissions, hence information can leak/be leaked from an app the user trusts10:00
t1mpwhat should happen when an app changes the height of the header? should it always show?10:47
aquariust1mp, I don't think I can see why changing the header height should change its behaviour?10:49
t1mpaquarius: well there are some corner cases, for example to expose the header you have to drag the linked flickable for at least half of the header's height10:52
t1mpaquarius: so increasing the header height might bring you in a state where you cannot easily expose the header by dragging any more10:53
t1mpI could just check for that case10:53
aquariusYou can legitimately limit the header's height so it can't be any more than, say, 50% of screen, I would think10:53
t1mpand in other cases keep the header hidden/exposed as it was before changing the header height10:53
aquariussince a header which is 60% of my screen is in no meaningful way a header :)10:53
t1mpaquarius: I'm working on a new Header component that app developers may want to abuse in ways that I did not consider useful10:54
aquariusalso, I think that the amount you drag the flickable down to show the header ought to not vary with the header's height but with the screen's height, myself10:54
t1mpaquarius: currently when you drag the flickable, the header will move the same amount as the flickable10:55
aquariusyup10:55
t1mpaquarius: and when you release, the header will show/hide depending on whether it is more or less than half open10:55
aquariusand when a certain amount of the header has been pulled on screen, it will then be in "I get shown" mode when you let go, agreed10:55
aquariusbut I think that the "certain amount" should be min(header.height/2, screen.height/10)10:56
t1mpaquarius: currently the certain amount is header.height/2, and nobody complained about it yet10:56
aquariusso I don't have to pull a large header further onto screen before it shows10:56
aquariusyeah, but nobody sets the header to be large, at the moment :)10:56
aquariusI didn't even know you *could* set the header height!10:56
aquariusand this is only a concern for large headers, right?10:57
t1mpaquarius: you cannot now, the new Header will be an Item that you can size the way you want10:57
aquarius*nod*10:57
t1mpaquarius: another issue is that if the flickable contentHeight is not much bigger than the flickable height, then its amount of flicking is limited, maybe less than header.height/2 or screen.height/1010:58
aquariust1mp, and there's also a problem if the flickable is not the screen height10:58
aquariusthat is: you have a header, then a flickable, then a static thing at the bottom of the screen10:58
t1mpthat should work fine10:59
aquariusif the flickable can't be flicked the amount needed to make the header appear, then I'd say: the header always shows :)10:59
t1mpthe header should not be above the flickable in y-direction though, but overlay it (in z-direction)10:59
aquariusmm... sorta10:59
aquariusI *constantly* have issues with that because the stuff at the top of my flickable ends up under the header :(10:59
t1mpbrb, meeting11:00
=== chriadam is now known as chriadam|away
t1mpaquarius: the header supposedly sets the topMargin of the Flickable to avoid that. When do you have problems with it?11:33
aquariust1mp, next time I run into the issue I'll ping you about it and see what I'm doing wrong11:52
t1mpaquarius: ok, thansk11:53
t1mp*thanks11:53
aquariusIs it actually the truth that multiple apps in one click package are banned?11:53
davmor2popey: in the reminders app you setup for testing can you switch to local storage and try and set a reminder on a note please, I get a blank time and date wheel12:01
popeydavmor2: ok, let me try12:03
popeyhttp://people.canonical.com/~alan/screenshots/device-2015-09-15-130552.png12:06
popeywfm12:06
davmor2popey: cool might just be an issue here then I'll do a fresh install and see if something got screw up after Lunch12:07
cwayneaquarius: don't think so, i've got some in the store like that (well, a scope and a webapp in one click)12:07
aquariuscwayne, scope + app works, but two apps throws a lint error :(12:08
aquarius*and* there's no way to hide an app from the apps scope, either :(12:09
cwayneyeah, thats obnoxious12:09
aquariuscwayne, hence asking :)12:31
cwaynei hadnt realized of the lint errors, just that we couldnt hide apps :)12:32
kenvandinemzanetti, i pushed another revision of my twoeleven branch that updates all the sdk usage to 1.3 and fixes the UbuntuShape deprecation12:39
mzanettikenvandine, thanks!13:00
mzanettikenvandine, cann you please propose a MP with that branch?13:03
kenvandinemzanetti, i can't for +junk branches13:04
kenvandinei tried that last night :)13:04
kenvandinemzanetti, you should create a project for that13:05
mzanettioh... right13:05
mzanetti:D13:05
davmor2popey: Meh fresh install and I still get this http://people.canonical.com/~davmor2/no-date.png13:40
davmor2popey: works in the clock app I assume it is the same element?13:41
popeyhmmm13:42
popeydavmor2: you're right, I had the wrong version of the click.13:44
popeymzanetti: ^13:45
popeydavmor2: its only a problem on rc-proposed, on retail device it's fine13:46
mzanettiwat?13:47
mzanettipopey, is this a real problem?13:48
popeywell, I can only reproduce it on rc-proposed which says it's probably a UITK issue13:48
mzanettifwiw, don't see it here13:48
popeyit's fine on my retail phone13:48
mzanettiI use rc-proposed13:48
popeydavmor2: what you using?13:49
davmor2rc-proposed13:49
davmor2ubuntu-device-flash touch --bootstrap --channel ubuntu-touch/rc-proposed/meizu.en --recovery-image recovery-arale.img13:49
popeyI'm on krillin13:49
* mzanetti on bq13:49
mzanettidoes this onlyhappen with the qs-submitted click package or also with the publised one?13:50
davmor2no idea let me reflash13:50
popeylemme downgrade it on my phone to see13:51
popeyversion from the store on my rc-proposed phone is fine13:53
davmor2mzanetti: so the version on rc-proposed works as expected13:56
popeyand if you upgrade, it breaks?13:59
davmor2popey: yeap14:02
popeydavmor2: any chance you can file a bug and paste the app log file?14:02
davmor2popey: sure let me try stable first though14:03
popeykk14:03
popeyif you could finish the QA and let us know if there's any other issues or if that's the only issue, that would be magic14:04
davmor2popey: will do14:04
popeythanks!14:08
davmor2popey, mzanetti: so it is working fine on stable.  I have a theory is rc proposed using 1.3 of the uitk and stable using 1.2?14:12
popeyi see same version on both devices14:14
davmor2popey: so not that then14:15
mzanettidavmor2, it is using 1.314:31
mzanettidavmor2, but on stable too ;)14:31
mzanettidavmor2, might mean 1.3 broke on rc-proposed14:31
davmor2mzanetti: yeah figured that out now it was just the only difference I could think of14:32
mzanettidavmor2, there's an upgrade to my phone... doing that now14:35
mzanettilet's see if I start hitting this14:35
davmor2mzanetti: I'm on image 11314:36
mzanettithose numbers are random to me14:36
davmor2mzanetti: http://paste.ubuntu.com/12417883/14:38
mzanettistill not happening for me14:39
mzanettidavmor2, I might have spotted an issue from that log you pasted14:41
davmor2mzanetti: \o/14:43
mzanettipopey, can you please test it with this branch on a device where you can repro the issue: https://code.launchpad.net/~mzanetti/reminders-app/align-imports/+merge/27113914:52
mzanettidavmor2, ^14:52
popeymzanetti: yes.14:56
popeyjust building now14:56
mzanettithanks14:56
davmor2meh sorry screen had blanked while I looked at the rest of the app, thanks popey15:00
popeymzanetti: nope, same issue15:11
mzanettiok... I'm lost them... can't repro...15:12
popeyfile:///usr/lib/arm-linux-gnueabihf/qt5/qml/Ubuntu/Components/Pickers/1.3/DatePicker.qml:592: TypeError: Cannot call method 'resetPicker' of null15:12
mzanettithat's an issue in the Picker itself15:12
popeyok15:12
=== javiercrowsoft1 is now known as javiercrowsoft
carldukecheck out my project IntelligentSecurity on github!! https://github.com/charslab/IntelligentSecurity15:33
carldukeits for ubuntu!15:33
carldukefacial recognition for security :D15:33
balloonsahayzen, ping15:51
ahayzenballoons, pong15:51
davmor2popey: I just realised it is the same on desktop already :(16:48
popeydavmor2: "yay"16:58
popeydavmor2: so, do we get a pass then?17:12
davmor2popey: nope can't create an account from the app, you tap the button nothing, was stuck in meetings so picked up again now17:13
davmor2popey: infact it crashes the app I can't do anything now :(17:14
davmor2back after tea17:14
popeykk17:18
davmor2popey: there is definitely something screwy going on here.  Because I selected no to the initial asking of setting up an account, when I go into the menu and select the add account button the ui hard freezes all I can do is close the app17:55
davmor2popey, mzanetti: https://bugs.launchpad.net/reminders-app/+bug/1496084 https://bugs.launchpad.net/reminders-app/+bug/149608618:41
ubot5Ubuntu bug 1496084 in Ubuntu Notes app "0.5.490: Can't connect to reminders account from inside the app" [Undecided,New]18:41
ubot5Ubuntu bug 1496086 in Ubuntu Notes app "0.5.490: UI element around setting time for reminder fails to display anything" [Undecided,New]18:41
davmor2popey, mzanetti: oooohhhhh that's interesting, I just noticed checking against my ota6 device,  ON ota 6 if I goto settings→accounts evernote accounts shows notes,  on 0.5.490 it shows as com.ubuntu.reminders_reminders  I wonder if that is having any adverse effects on things like apparmor18:44
aquariusrschroll, well... it all works, here, as far as I can tell. The basics, anyway. Rock.18:51
davmor2popey, mzanetti: Bingo syslog is showing a load of apparmor DENIED's18:53
kivipopey, hey is the competition still on? I want to submit my app I've been working on18:55
aquariusrschroll, also, the absolute-path-to-container-icon trick works too, although it is (again) rejected by lint, so we may not be actually able to do it19:22
aquariusrschroll, and they have semi-good reasons to reject it, too, admittedly.19:31
rschrollaquarius: Even if we get it in place with the absolute paths, I suspect the UI does its own caching.  Who knows when the updated image would actually be shown19:48
aquariusrschroll, this is true, actually19:48
aquariusrschroll, was nice to see that it worked, but I don't think it's a goer for us...19:49
aquariusrschroll, I think you're right though that we should give them all distinct icons so visual recognition kicks in19:49
aquariusannoyed that it can't be dynamic. It seems that people *want* dynamic icons -- the calendar and clock apps, for example -- and there may be some work going on to make that happen, and if it does we can take advantage of it19:50
rschrollWith Beru, I've already done work on generating sensibly spaced colors.  We can probably use that to generate icons with the same pattern and different colors for all the containers.19:51
rschrollScopes question for the floor: Is it possible to alter a result in an ActivationQueryBase::activate, to change the URL to be activated?19:52
rschrollAlternatively, is it possible to launch a URL from a scope programatically?19:53
aquariust1mp, do you know about scope stuff? or is that all michi?19:54
aquariusmzanetti, do you know about the scope api?19:56
mzanettidepends on what19:57
mzanettiI have an idea... but not in detail19:57
aquariusmzanetti, see rschroll's question above, which we're trying to do :)19:57
mzanettihmm... I think altering the result set should be possible, yes. haven't ever tried myself19:59
mzanettilaunching programmatically should be possible too I think. however your code is only triggered on user interaction...19:59
rschrollI've tried result().set_uri(), but that doesn't seem to do anything19:59
rschrollI worry that it's operating on a copy20:00
rschrollWhat's going on in more detail:20:00
rschrollI have a result with a URL to be launched.  But when the result is activated, I want to run code in the activation handler to change that URL, to launch another app.20:01
rschrollI haven't been able to alter the uri, as noted above.20:01
mzanettierm... why not just give the real target in the first place?20:01
rschrollWe're planning an array of webapp containers, and we want to target a free one.20:02
rschrollThe list of free containers may change between when the results are prepared and one is activated20:02
aquariusrschroll, I have had a thought. One can't start an app other than from the scope. So all that can happen in between the results being prepared and a result being activated is that the user kills one or more containers from the app switcher, right? But if that happens it doesn't invalidate the URLs because all that can happen is that the container we were targeting is now free?20:09
rschrollSuppose we launch one bookmark, switch back to the scope, and launch another.  I don't think the scope will refresh its results in between20:11
rschrollSo all bookmarks other than the 15 most recent will be trying to use the same container, and will clobber each other until the scope is refreshed20:12
aquariusaah, yes. Unless we can command a refreshed query when an app is launched20:12
aquarius(which would also involve "run code after a thing is tapped on", although it wouldn't need access to the chosen URL)20:13
rschrollI've got code running as a result of the icon being selected.  (That's the activation function I mentioned.)20:13
aquariusah, cool. Can that code clear the existing query or refresh it or something?20:14
aquariusor does that have the same "you don't have access to it from there" issue that ovewriting the URL does?20:14
rschrollWe can perform a new query, which ought to refresh the list.  But I don't think we can do that and have the existing URL still load.20:15
rschrollThose are two different return codes for the function20:15
aquariusdarnit20:15
aquariusmzanetti, who knows about this stuff in detail? I've sorta lost track. Is it just michi?20:17
mzanettiaquarius, alecu perhaps20:21
aquariusgood thought.20:22
aquariusalecu, ping! also, long time no see :)20:22
alecuHello!20:23
aquariusheya alecu :)20:23
alecuHey there, sil20:23
t1mpaquarius: I don't know about scope stuff20:24
aquariust1mp, no worries -- we have summoned alecu :)20:24
t1mpok :)20:24
aquariusalecu, see the scrollback for our question20:24
t1mpkalikiana, zsombi: about the Header API https://docs.google.com/document/d/1wUUKtPmRmwbUELC1BUB9l0VOAwS_zAPRSCqMopUxR1c/edit# ,20:25
alecuSure, catching up with scrollback now20:25
t1mp^I think I can drop the locked property completely. You can simply not set a flickable..20:25
t1mpI don't see a use case where that doesn't work20:25
t1mpanyway what 'locked' does now is disconnecting the flickable20:26
kalikianat1mp: say you do have a Flickable but want it to be "locked" at one point, could interactive:false be sufficient?20:31
t1mpkalikiana: flickable.interactive? then you cannot scroll the flickable any more20:31
kalikianahmmm no forget that, that makes no sense20:31
t1mpkalikiana: header.flickable = null will lock the header20:31
kalikianayeah20:31
t1mpan unlocked header means that it scrolls with the flickable20:32
kalikianaso what matters is there's a way to stop the header from knowing about it20:32
t1mphaving the unlocked property requires additional code (to disconnect from the flickable) and tests20:32
t1mpkalikiana: just set header.flickable = null, or header.flickable = yourFlickable to enable scrolling20:32
kalikianayeah, or even a simple binding if needed20:33
kalikianathat is pretty fine20:33
t1mpcool :)20:34
kalikianait will still need tests, though ;-)20:34
t1mpkalikiana: I write the tests before I add the functionality :)20:35
aquariusalecu, let us know if the question doesn't make sense :)20:40
rschroll(I think we scared him off.)20:40
aquariusI think I still owe him a pint from last time I was in Buenos Aires :)20:41
aleculol20:41
alecuaquarius: I think rschroll is right: there's no way to update an existing result set so far. The only way is to force a refresh, but I don't recall if that's available for every scope20:42
alecuthe click scope does so via a dbus signal to the scopes-shell, that ends up redoing the scope query20:43
alecurschroll: aquarius: lines 68 and 69 here: http://bazaar.launchpad.net/~ubuntuone-control-tower/unity-scope-click/trunk/view/head:/bin/install-helper#L6820:45
aquariushm.20:46
aquariusI bet we can't do that :)20:46
alecuthis warrants a bit of explaining...20:46
alecusince scopes can be killed at any point, we can't do the download of the app from the click scope. So, we ask download manager to do it. And install-helper is a script that's run when the download is completed20:47
alecuand it also asks the click scope to refresh.20:47
alecuboth the "installed apps" scope, and the "ubuntu store" scope.20:48
rschrollCan that be done with arbitrary scopes, or are those two special?20:49
alecurschroll: I've read the backlog, but I'm still not understanding your use case20:49
aquariushow does the scope start the download manager? does the scope do it with code, or does the scope provide URLs for packages which look like magicdownloadmanagerurl://?package=http://click.ubuntu.com/whatever ?20:49
alecurschroll: I don't know about that bit. I suspect that there might be some dbus apparmor limitation on that, and install-helper not being affected by that.20:50
alecuaquarius: with the download manager client library.20:50
rschrollalecu: aquarius and I are working on a scope that launches webapps in their own containers20:50
rschrollWe have a collection of containers to use and want to launch into an empty (or recently idle) container on activation.20:51
alecuaquarius: startDownload here: http://bazaar.launchpad.net/~ubuntuone-control-tower/unity-scope-click/trunk/view/head:/libclickscope/click/download-manager.cpp#L13020:51
alecurschroll: nice20:51
rschrollThe list of which are in use can change between query evaluation and result activation20:51
rschrollSo we want to change the uri at activation time to use the correct container20:52
rschrollI can run code at activation with ActivationBase::activate(), but I haven't been able to alter the uri or trigger another uri to be opened20:52
rschrollAnother alternative to is to force a refresh of the query whenever a container is opened, so the container to be used isn't stale.20:53
rschroll(Thus the questions about refreshing)20:53
alecurschroll: what about not including the container id in the result set, and instead trying to find the available container in whatever is handing the opening?20:53
rschrollThat's another possibility, but it involves opening two apps (perhaps)20:54
rschrolltriggering the right one right away would be faster20:54
aquariusalecu, the thing which handles the opening *is* the chosen container. If we had another app which handled the opening then you'd see that other app open and then immediately the chosen container would open, which looks horrible and doubles our container startup time ;)20:54
alecuwhat's a "container" in this context? a browser-like qml app?20:56
aquariusyup20:56
aquariusthere are 16 of them pre-defined.20:56
aquariuswe want to choose one of them which is currently empty, or the least recently used one20:57
aquariuswe can work out which one is least recently used when the scope is opened20:57
alecuaquarius: and they will all be shown in the right-side spread? they are running apps after all20:57
aquariusyup20:57
aquariusthat's why they are separate pre-defined containers.20:57
aquariusif we work out which container is least-recently used when the user opens the scope (let's say it's container 6) so all the URLs look like container6://some-bookmarked-webapp.com, then that's fine -- choosing any web app will open it in container 620:58
aquariusbut if the user then switches *back* to the Dash and chooses *another* webapp, the query will not have been refreshed, so all the URLs will still be container6:// and we don't want them to be, because that container is in use now.,20:59
aquariusso what we want to do is decide which container is least-recently-used *after* an app is tapped, rather than when we get the list of apps to show.21:00
alecuaquarius: I'm going to assume this something you guys don't plan to upload to the store as a regular click.21:03
alecuaquarius: in that case, you may use a special apparmor profile to allow talking dbus and refreshing the query after each container is activated with a new url21:04
rschrollHow would that work?  Does the scope need special code, or would the container be talking to unity8?21:07
aquariusalecu, absolutely not. This is absolutely intended to be in the regular store, from my perspective at least.21:07
rschrollWe'd need an exception for multiple desktop files, but that's all right now.21:07
aquariusyup21:08
aquarius(and I am talking to people about that)21:08
alecuah, I see.21:08
aquariussaying "you can write an app which works like this, but actual normal people can't have it" is avoiding the problem ;-)21:08
alecuaquarius: there's always the open store... :-)21:08
aquarius"actual normal people". :)21:08
aquarius"The scope starts a helper app which then starts the appropriate container" will obviously work, it's just a terrible user experience21:09
rschrollaquarius: I may have a work around.  It's a little bit complicated, but shouldn't be too bad.21:09
rschrollThe scope would just code a fixed container for all but the recently-used apps.21:09
aquariusunless it's possible to have a helper app which can be started by URL and which can itself start URLs but which presents no UI, which I bet it isn't :)21:09
rschrollIf a container is started, it just runs.21:10
rschrollIf a container receives a URL, it checks, using the same algorithm as the scope, if it was the right one to receive that URL.21:10
rschrollIf it was, it loads it.21:10
* aquarius asks tedg the no-ui question :P21:10
rschrollIf it wasn't, then we chain to the right one.21:11
rschrollThis means only one app start-up per launch21:11
rschrollThere may be a flicker of the first container if we have to transfer21:11
aquariusso... basically we have the helper app, we just build it into every container?21:11
rschrollyeah21:12
aquariustedg says that if you have a helper app which itself starts the right container that it will probably start and pass on fast enough that you won't notice it21:12
alecustress on *probably*21:13
aquariusso that'd work, if an app can be url-dispatched but not have a .desktop file...?21:13
tedgalecu: I'm talking non-QML here :-)21:13
alecu:-)21:13
alecuaquarius: remember that you can set some flag on .desktop files so they are hidden from the app scope21:14
aquariusah, we need a desktop file so the urldispatcher knows which executable to start21:14
aquariusand the helper app would have to explicitly quit after it sent out the new URL21:14
aquariuswhich is a shame, because if it could stay running then it wouldn't incur any startup cost21:14
aquariusbut if it stays running, it'll appear in the launcher.21:14
aquariusrschroll, so, we have two options there -- separate helper app, or helper app built into each container21:15
tedgaquarius: It doesn't have to quit explicitly, it'll just get suspended.21:15
aquariustedg, if it doesn't quit, it will appear in the launcher21:15
tedgaquarius: If it is small enough, it'll run forever.21:15
aquariusbut can't be switched to, because it has no UI21:15
aquariusthus, a launcher button which doesn't do anything, which is horrid21:16
tedgIf it gets switched to it could go to the scope21:16
tedgscope://webappsscope21:16
aquariusyeah, but that's not a solution, that's "well, this bad thing has happened, so how can we make the best of it" :-)21:16
aquariusbut that's possibly a workable idea!21:16
aquariusrschroll, is that (a) a neat little hack or (b) terrible?21:17
rschrollThose are not distinct21:17
* aquarius laughs21:17
rschrollTo get good startup time, this would need to be compiled21:17
aquariusyup21:18
rschrollIs there a C or C++ API for the URI handler?21:18
tedgYeah, liburl-dispatcher is what the QPA uses.21:18
rschrollthanks21:18
tedgOh, and for the running app stuff you can use GApplication21:18
tedgMight be easier to export that one endpoint on your own though.21:19
tedgYMMV21:19
aquariusrschroll, if we were going to do the absolute-icon-path thing then the helper app would be the thing which sets the icons :) But we aren't21:19
alecuhere's how to hide all those 16 .desktop files from the apps scope: http://bazaar.launchpad.net/~ubuntuone-control-tower/unity-scope-click/trunk/view/head:/libclickscope/click/interface.cpp#L11021:19
alecu"NoDisplay: true"21:19
aquariusalecu, we're setting OnlyShowIn=Old atm; is there a better way?21:20
aquariusrschroll, huh. Our desktop file has NoDisplay in it, but commented out; did you do that?21:20
alecuyeah, that works too.21:20
rschrollalecu: NoDisplay=true breaks the url-dispatcher21:20
rschrollbecause obviously21:20
aquarius:D21:20
alecuI see you guys are way deep into the hack :-)21:20
aleculet me know if I can help with anything else, and I'm definitely looking for suggestions on how to improve the scopes api, or the scopes api docs21:21
aquariusway to improve the scope API: let us overwrite the chosen URL after click. :)21:21
aquariuscheers for the help, alecu :)21:22
alecuwhat I think it's not clear from the docs is that the scopes are stateless, and that these kind of things go against their own nature :-)21:23
aquariuswe're stateless too!21:23
alecuhmmm21:23
rschrollyeah, but the device isn't21:23
rschrolltedg: Are there docs for liburl-dispatcher?21:25
tedgrschroll: It's only three functions: http://bazaar.launchpad.net/~indicator-applet-developers/url-dispatcher/trunk.15.10/view/head:/liburl-dispatcher/url-dispatcher.h21:26
rschrollalecu: Thanks for your time!21:26
alecuhmmmm.... I wonder if we can have an extra optional step in the scopes api, where each scope would get an extra chance to massage the url21:27
alecusomething similar to what you can do with scope previews21:27
aquarius-phoneYeah, that'd be dead useful to us here21:27
alecurschroll: aquarius: perhaps you guys can open a bug in lp:unity-scopes-api or lp:unity-scopes-shell and I'll take it to michi, pstolowski and the other scope gurues.21:28
alecustill, it sounds like an ABI break, so I don't think I can promise anything before your hack is ready :-)21:28
AndChat-28784The helper app should work21:28
=== AndChat-28784 is now known as aquarius-phone2
aquarius-phone2Gnah.21:29
aquarius-phone2rschroll: do you think the independent helper is better than having the container do it?21:29
alecuok, I need to run. Great talking to you guys, and aquarius-phone2: it's me that owes you a beer :-)21:29
rschrolltedg: Gotcha.  I don't see anything for receiving URLs, though.21:30
rschrolldunno offhand.21:30
aquarius-phone2Cheers alecu :)21:30
rschrollThe nice thing about the independent dispatcher is that code only has to be in one place, not both in the scope and in the container21:30
aquarius-phone2Agreed21:31
rschrollBut it means another moving piece21:31
aquarius-phone2Also we can call the helper "Launching your web app..." :)21:31
tedgrschroll: No, for receiving we use the FD.o standard. So it's implemented by GApplication, I think QtApplication, etc.21:31
tedgrschroll: It is only one DBus endpoint if you just want to implement that though.21:32
aquarius-phone2We can talk to D-Bus?21:32
rschrolltedg: I see.  Thanks!21:32
aquarius-phone2I thought we were confined away from D-Bus. Cool.21:34
rschrollI think DBus access is curtailed by not completely prohibited.  At least based on my reading of the apparmor files21:35
tedgaquarius: aquarius-phone2: Everything is DBus or Mir21:35
tedgYou should listen to my talk :-)21:35
aquarius-phone2Ya, but I thought we were only allowed certain things; the URL stuff is on that list?21:35
tedgYes. There is in fact a rather long list.21:35
tedgAnd anyone who is unconfined can send you anything, so in this case you just set yourself up to recieve the URL21:36
aquarius-phoneOh, it must be, or nobody could use URL dispatcher21:36
tedgYou'll note that the full API isn't available to confined apps. Only 2 of the 3 functions. The otehr is for the push service and scopes.21:37
tedg(well dash)21:37
aquarius-phoneCool.21:38
aquarius-phoneSo, something else goes on the "the platform should do this, but we managed to work around the lack with this suboptimal but working approach" :)21:39
aquarius-phoneThis IRC app does not handle changing networks well :)21:40
aquarius-phoneThis is going to make for the world's best talk about how to get things done on new Ubuntu in the face of fierce opposition ;-)21:41
aquarius-phoneBut I think that's the last serious platform impediment we had to overcome. Now, in theory, everything that could work, we know how to do. I think.21:43
rschrollUntil the next existential crisis21:43
aquarius-phoneWell, yeah.21:46
aquarius-phoneBut I'm being optimistic :)21:46
aquarius-phonetedg: question. When I ship an icon in my click package and the Icon desktop file key points to it, does everything reference that file, out does the install process take a copy of it to somewhere else?21:50
tedgaquarius-phone: Everything references it. For stuff that uses the desktop file in your click package it'll look relative to the click directory. For stuff that uses the desktop file in ~ the desktop file has the path expanded to be the absolute path.21:52
aquarius-phonerschroll: so, the container desktop file could have Icon=containerN.png and that... is a symlink to ~/.l/s/atd/container0.png ...21:54
aquarius-phoneI'll test that at some point :)21:57
rschrollPoking around a bit, I've managed to get the scope dispatch a URL from the activate() method.  But it's blocked by apparmor21:58
aquarius-phoneHuh. That's presumably because scopes themselves aren't allowed to despatch URLs? Only the scope framework is?22:05
aquarius-phoneI suspect the security peeps will not wanna relax that requirement22:05
tedgI belive that you can return a URI as a response to an activate.22:05
* tedg doesn't quite remember the scopes doc there22:05
aquarius-phoneNope22:06
aquarius-phoneWe spoke to alecu who _does_ know the scopes api and he says no :)22:07
rschroll"# Scopes shouldn't use URL dispatcher directly"22:10
rschrollaquarius: It works!  If the scope is unconfined.22:25
rschrollSomehow, I don't think that'll fly22:25
aquarius-phoneHa!22:25
aquarius-phoneYes. I think this is not the way forward :)22:25
rschrollWell, dinner time now....  I'll look at your pull request eventually, I swear.22:26
aquarius-phoneIs OK :)22:26
aquarius-phoneIt finds icons properly now22:26
aquarius-phoneAnd everything works end to end: I added a web app from the browser and launched it from the scope in a container22:27
aquarius-phoneWe should talk about nomenclature at some point too; I think we should talk about apps, not bookmarks. But that's not important right now :)22:27
aquarius-phoneAnyway, ttfn. I shall go too. Later!22:30

Generated by irclog2html.py 2.7 by Marius Gedminas - find it at mg.pov.lt!