SketchUp and OSX Mavericks....
-
Thanks Chris, so I may have something helpful, just bear with me because I am not a programmer...
TIG is the guy who writes my plugin (and he does a fantastic job)
I was talking with a friend of mine who's a software developer and he wanted to take a crack at solving the problem, and while he didn't get it, he thinks he may have something that will shed some light on the subject. Again, please bear with my elementary description:
My plugin downloads content from the web, Sketchup files to be exact. Since the Mavericks update, it's broken.
TIG had written a small plugin that could test the way links were formed in Mavericks. My friend took that plugin and tried testing a local VS remote web page.
So what we proved (I think) is that a link is properly passed to Sketchup when the page is saved on the local machine (in the plugins folder) but when the link is to a page that is remote (on the web) it fails.
So while that's not an answer, it appears Mavericks is blocking this somehow. The attached test code proves this. Take a look at the Ruby code, and you can fire up a local or remote test by typing in "TIG.local" or "TIG.remote" into the Ruby console.
I have the remote page in the code hosted on a public Dropbox folder (with a proper public link) and I will leave it there for testing.
I hope this somehow helps.... (And that I've explained it properly)
-
Thanks Eric.
This is useful feedback.
If I ever manage to get Mavericks downloaded and installed on my MAC I'll report in too...
As you have said ests with local html callbacks work but some remote ones don't...
It's plain weird... -
I'm having trouble reconciling the observations reported here, and I think there's a clue to be derived. The error message lists the entire URL, including the "skp:callback@" part. Normally, that prefix is stripped off by WebDialog and whatever follows @ is passed to the Ruby callback. Also, TIG has reported that his Ruby callback does not get invoked when this error occurs. None of us has been able to reproduce the error using simple test code.
The fact that the part after @ is an external URL should be completely irrelevant. To WebDialog it is just text. To reiterate: WebDialog has no business checking or accessing the linked website in these hrefs because it has no reason to assume that Ruby will even attempt to load the webpage in the text. The Ruby might parse the URL to extract other information, might save it for later reference, might use the URL text in another page it constructs... the possibilities other than loading the URL are endless. Likewise, to Mavericks, the part of the URL that matters is the skp: protocol prefix. It uses that to decide what protocol handler should receive the request, and leaves the processing of the URL details to that handler.
So, the problem has to be that for some reason we haven't yet figured out, WebDialog fails while trying to parse the request before handing it to Ruby.. The implication is that in Mavericks, the URL is somehow altered on the way to WebDialog in a way that WebDialog can't unravel. Maybe Mavericks doesn't separate the scheme and path parts correctly and this bombs WebDialog? To answer that, we need input from the Trimble team who know what causes WebDialog to generate this specific error and exactly what it receives from Mavericks vs from other OS's. Could this be a change in character encoding handling? Is something on the SketchThis page (e.g. javascript) altering the URL before it is passed on (so that what we see in the page source isn't what WebDialog actually receives)?
-
So some of that was over my head, but if it helps at all, there are other plugins that are failing in the same way as well, try KeyFrame animation and attempt to start a trial by using their web dialog, it also fails...
-
I have at least managed to 'crowbar' Mavericks into my MAC !
I can confirm that the test code Eric posted earlier works for TIG.local and TIG.remote on all PCs and pre-Mavericks MACs. However it fails miserably on Mavericks with TIG.remote and href= -
I had a look at this yesterday for LightUp when I started getting reports of blank dialog windows on Macs running OSX 10.9 on Friday.
I believe most of these posts in this thread are way off the mark. I may be wrong, but I believe its nothing to do with WebDialogs looking at text strings after @ etc. I believe it is Mavericks using increasingly fine grain parallelism and in particular being much less speculative in launching CPU - and therefore power consuming tasks - which is after all the USP of 10.9.
So LightUp now runs fine on Mavericks and I posted new builds and installer (v3.0j) yesterday.
It now works on Mavericks because I procrastinate communicating with WebKit until the latest I can to ensure it really is running. Using set_file etc before this appears to simply be talking into an azure blue void.
Adam
-
Should say I posted new builds of LightUp Analytics for Macintosh too.
LightUp updates for OSX Mavericks available here: http://light-up.co.uk
LightUp Analytics updates for OSX Mavericks here: http://lightup-analytics.com
6 releases in 1 day was .. challenging.
Adam
-
@AdamB, were you getting the error message on the console, or just a blank page? I've noticed that when I open SketchThis, the content takes a very long time to load, with a blank page displaying until it completes. That would be consistent with what you say about WebKit startup being delayed. But after the WebDialog loads the page, if I click the import button I get the error on the console.
-
Mine's enabled as well... It always has been....
-
Here, LightUp (pre-last update), just opened the preferences pane blank, no message.
and
Keyframe Animation cannot run saying Java Script needs to be enabled, but it is.
Adam, any clue on this JS bug ?
-
RE: the test file used here - we found that the test file has a typo in it, and that is why the remote download is failing in that script. It actually is trying to reach an invalid URL
So unfortunately that isn't showing any errors once the typo is corrected.
We're still looking into this.
-
I can give you a quick example to one that isn't working if you need.
--J
-
@mariocha said:
... cannot run saying Java Script needs to be enabled, but it is.
Being enabled in Safari, will not effect WebDialogs, which have JS enabled by default...
you can check what works in SU with something like this pasted into Ruby Consolewwhdlg = UI;;WebDialog.new("wot_works_here", true, "wwh", 739, 641, 50, 50, true); wwhdlg.set_url "http://dante.dojotoolkit.org/hasjs/tests/runTests.html" wwhdlg.show_modal
john
-
@chris fullmer said:
RE: the test file used here - we found that the test file has a typo in it, and that is why the remote download is failing in that script. It actually is trying to reach an invalid URL
So unfortunately that isn't showing any errors once the typo is corrected.
We're still looking into this.
@Chris
Do you refer to Eric's post that modified some test rb/html I set up - using href=... ?
I find that it works fine in both .local and .remote versions on all OSs... except with MAC-Mavericks with just .remote...
If you explain the typo we could look at it [help us to help you...] BUT... it only fails for me on MAC-Mavericks using a .remote html - so IF it has a typo why would it work OK in the other OSs ??? -
works on mavericks with 'dropboxusercontent vs. dropboxusercontext'
john -
Yes I now have the typo - passed from another source...
That must be Ericβs Web-guyβs typo... he added that 'remote' code to an earlier test setup I wrote... however, it still works fine on all OSs [except Mavericks] with AND without that typo ???
I confirm that the corrected 'allow_actions_from_host' code does now work on Mavericks as well as all other OSs... most puzzling...
BUT this begs the questions... as to why very similar code fails in the SketchThis toolset, when its 'allow_actions_from_host' IS identical to the url that its ruby specifies...
??? -
Thanks John - I think that is the typo in question.
As to why it works in all other OS's except for Mavericks.....that I don't know.
-
Oh, TIG already responded. Yes, this is an odd one.
-
I started this discussion so I might as well put in my two cents. My experience with Mavericks so far has been generally positive. In regard to SketchUp I installed Make while keeping SU8 on hand for now. SU8 doesn't seem to run any different for me (as far as I can tell) on Mavericks than it did with Mountain Lion. However, Make does seem to run somewhat better (as far as I can tell) with Mavericks than SU8 does with Mountain Lion.
One odd thing, though. My SketchUcation Store plugin doesn't connect anymore in SU8. I just get a message saying V2 is available, but when I try to click for the update I just get an error message. I can still install extensions the old way by downloading them manually and using the Extensions Manager found in SU Preferences. I've even tried installing the V2 of SketchUcation Store through the Extensions Manager and I still get the error message afterwards when I try to use the plugin. The SketchUcation Store plugin works fine in Make.
-
@chris fullmer said:
Oh, TIG already responded. Yes, this is an odd one.
Chris,
It is easy to scan the WebDialog framework and confirm that this error message emerges from it, not from a Mavericks system library or framework. But without reverse engineering the WebDialog code (which for ethical reasons I won't attempt), it is impossible for us outsiders to know what WebDialog is trying to do when it throws this error. I have built and think that I understand the sample custom protocol handler that Apple provides, but it does not trap any issues with the URL. Without disclosing some proprietary info, would it be possible for the Trimble engineers to tell us what logic test fails when WebDialog throws this error? That info would help to track down what about Mavericks and certain URLs is peculiar to the problem.
As a different matter, it seems like this topic has gotten quite technical - maybe it should be moved or restarted in the Developers forum?
Thanks
Steve
Advertisement