sketchucation logo sketchucation
    • Login
    ℹ️ Licensed Extensions | FredoBatch, ElevationProfile, FredoSketch, LayOps, MatSim and Pic2Shape will require license from Sept 1st More Info

    SketchUp and OSX Mavericks....

    Scheduled Pinned Locked Moved Developers' Forum
    83 Posts 22 Posters 11.1k Views 22 Watching
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • S Offline
      slbaumgartner
      last edited by

      @tig said:

      The first report I got was yesterday: it is from the SketchThis toolset and site-page component_load tool...
      Their HTML guy compiles the server-side's possible skp download lists into HTML coded buttons using: <a href="skp:callbackname@http_url_path_to_skp" ... etc
      On the Ruby-side the callback is fired and it receives the url string to the right of the @.
      This works fine using PC and MAC.
      It fails with Mavericks - the passed string after the @ seems to be replaced with the whole callback string including the 'skp:callbackname@' part, so the url is then invalid.

      I have asked them to look at changing to a simple header defined js function
      function callbackname(url){ window.location='skp:callbackname@'+url }
      that is in turn the called in the linked buttons instead of hrfe=... as
      onClick="callbackname('http_url_path_to_skp');"

      It will continue to work in PC/MAC and hopefully in Mavericks too...
      I am at a loss to see what Maverick's Safari is doing differently πŸ˜’

      Because the Plugin Store's web-dialog uses similar 'onClick=' callbacks [rather than the 'href=' way], then I'd like some feedback from Mavericks users - specifically that the AutoInstall download/install works as expected, and the 'More Info' button link also opens OK - this will show that the callbacks are still getting the correct url passed to them...

      Both Autoinstall and 'more info' worked fine for me.

      I've always used the window.location=... technique, not href. I'll look around to see if I can find another example (or contrive one). Do you suppose it is related to link directly from HTML vs window.location setting from javascript? It doesn't make sense to me that this difference would change the way the skp: protocol processes its arguments, but...

      1 Reply Last reply Reply Quote 0
      • S Offline
        slbaumgartner
        last edited by

        @tig said:

        The first report I got was yesterday: it is from the SketchThis toolset and site-page component_load tool...

        I just installed the SketchThis toolset and clicked their tool links. They are sometimes very slow (looks like a blank page), but I got to their site. Have they already rewritten this?

        1 Reply Last reply Reply Quote 0
        • E Offline
          ericschimel
          last edited by

          Nope, we haven't re-written anything. As TIG says, it works fine on the PC, and the Mac pre Mavericks. For some reason it just won't work on Mavericks. TIG developed the Ruby for me, and I have web developers that built the website portion of that, as I said, we haven't changed anything.

          I just downloaded the trial of Keyframe animation from the Extension warehouse, and it has the EXACT same issue on Mavericks that my plugin has. Watch the Ruby console and you'll see the same error that my plugin has when you try to hit "Insert into model"

          It would appear that this problem isn't just limited to my plugin, so there are potentially a fair number of plugins out there that could be broken.

          While I'm not much of a programmer, (that's why I've got TIG!) I am pretty good with testing things and using debug tools, so if there is anything I can help the community out with, I am more than happy to do that.

          If it's any help, here's a video of me trying to see if it was a web traffic issue:

          https://www.dropbox.com/s/8l4yt6bswy22b80/Mavericks%20SketchThis%20Bug.mov

          And here's a screenshot of the ruby console error from my plugin:

          http://note.io/1a5H9F5

          And here's a screenshot of the same error in Keyframe animation:

          http://note.io/1gNdwlo

          Again, if there is anything I can do to help out, please let me know.

          -Eric
          http://plugin.sketchthis.net
          Sketchup Kitchen Design Plugin
          Custom Models

          1 Reply Last reply Reply Quote 0
          • S Offline
            slbaumgartner
            last edited by

            @ericschimel said:

            And here's a screenshot of the ruby console error from my plugin:

            http://note.io/1a5H9F5

            And here's a screenshot of the same error in Keyframe animation:

            http://note.io/1gNdwlo

            Again, if there is anything I can do to help out, please let me know.

            Aha, that's the difference! The prior info didn't lead me to understand that the error is on "Insert into model". When I do that, I get the same error. Unfortunately, since the plugin is scrambled ruby I can't actually debug it.

            Mavericks includes a new version of the WebKit library (I just checked), so they must have changed/broken something that impacts the way that the skp: protocol is spliced in.

            1 Reply Last reply Reply Quote 0
            • M Offline
              martychristoffel
              last edited by

              I'm running into palettes that are no longer "sticky" since upgrading to Mavericks. To be more precise, although the palettes do snap to one another, when expanding one such as the Layers palette, it opens underneath the minimized Styles, Scenes, etc. instead of having those palettes remain connected to the Layers pane. When minimizing them down to their title bars, they can also lose their relative association to other palettes.

              1 Reply Last reply Reply Quote 0
              • S Offline
                slbaumgartner
                last edited by

                @slbaumgartner said:

                @ericschimel said:

                And here's a screenshot of the ruby console error from my plugin:

                http://note.io/1a5H9F5

                And here's a screenshot of the same error in Keyframe animation:

                http://note.io/1gNdwlo

                Again, if there is anything I can do to help out, please let me know.

                Aha, that's the difference! The prior info didn't lead me to understand that the error is on "Insert into model". When I do that, I get the same error. Unfortunately, since the plugin is scrambled ruby I can't actually debug it.

                Mavericks includes a new version of the WebKit library (I just checked), so they must have changed/broken something that impacts the way that the skp: protocol is spliced in.

                There must be something more going on in this Tool than I am privy to. I wrote a little test ruby and html page that uses <a href=skp:callback...> to generate a callback to Ruby, and I get the parameter string as usual, without error, including when it is the exact URL in your page. I do not get the skp:callback@http://... stuff reported by the error message. Also, I found that error message string in the WebDialog code, so I think it is thrown back at Ruby from WebDialog when the Ruby code does something to try to load the skp into the model.

                TIG, I think this is back in your court, since the Ruby is scrambled.

                1 Reply Last reply Reply Quote 0
                • TIGT Offline
                  TIG Moderator
                  last edited by

                  I too have written some simple href="skp:callbackname@string" examples, which I thought might break Mavericks.
                  They didn't. πŸ˜’
                  Then I rewrote the SketchThis code so that it puts into the Ruby Console the string that is received from the 'install' click href=... callback.
                  Surprisingly it never gets to this point, instead it just presents the "Runtime error: invalid URL 'skp.callbackname@http_url_path.skp'", then stops - never displaying the string as it never gets a valid callback returned.
                  This is plain weird...

                  TIG

                  1 Reply Last reply Reply Quote 0
                  • A Offline
                    Aerilius
                    last edited by

                    Did you try variations on how the webdialog's html is created or loaded?
                    In the Trimble/Google forum, someone suggested it's due to set_url(); which would make sense if the Maverick's security model has been further restricted.

                    1 Reply Last reply Reply Quote 0
                    • TIGT Offline
                      TIG Moderator
                      last edited by

                      But my own test-rb+html , the SketchUcation Plugin Store AND SketchThis all use set_url()
                      Only SketchThis fails with Mavericks.
                      It uses:
                      href="skp:callbackname@http://url.skp"
                      Which was the initial 'suspect', since the SketchUcation Plugin Store is reported as working OK and that uses onClick and js function with the equivalent of:
                      window.location="skp:callbackname@http://url.skp"

                      However my tests include various permutations of 'clicking' to callback - i.e. href=... and window.location=... etc - and ALL of those work on Mavericks, and return the passed string correctly, whereas the very similar looking html code href=... for SketchThis fails with the 'invalid URL' message in the Ruby Console ???

                      TIG

                      1 Reply Last reply Reply Quote 0
                      • S Offline
                        slbaumgartner
                        last edited by

                        @tig said:

                        But my own test-rb+html , the SketchUcation Plugin Store AND SketchThis all use set_url()
                        Only SketchThis fails with Mavericks.
                        It uses:
                        href="skp:callbackname@http://url.skp"
                        Which was the initial 'suspect', since the SketchUcation Plugin Store is reported as working OK and that uses onClick and js function with the equivalent of:
                        window.location="skp:callbackname@http://url.skp"

                        However my tests include various permutations of 'clicking' to callback - i.e. href=... and window.location=... etc - and ALL of those work on Mavericks, and return the passed string correctly, whereas the very similar looking html code href=... for SketchThis fails with the 'invalid URL' message in the Ruby Console ???

                        Weird indeed!

                        Our attempts at test cases don't produce the error, so we must be overlooking something subtle about the exact way that the SketchThis page is constructed. I tried the exact URL from their page in my callback test, and it worked fine. So it isn't the address. It has to be something about how it is set up on that page. But what???

                        1 Reply Last reply Reply Quote 0
                        • S Offline
                          slbaumgartner
                          last edited by

                          @tig said:

                          I too have written some simple href="skp:callbackname@string" examples, which I thought might break Mavericks.
                          They didn't. πŸ˜’
                          Then I rewrote the SketchThis code so that it puts into the Ruby Console the string that is received from the 'install' click href=... callback.
                          Surprisingly it never gets to this point, instead it just presents the "Runtime error: invalid URL 'skp.callbackname@http_url_path.skp'", then stops - never displaying the string as it never gets a valid callback returned.
                          This is plain weird...

                          So, WebDialog is throwing this exception before it ever passes the callback to your Ruby. The Foundation library must have identified the skp: "scheme" correctly, else it would never have handed this request to the WebDialog's protocol handler. But for some reason either it or WebDialog is failing to extract the correct path out of the request. I remain baffled why we can't reproduce this in simple test cases. That's especially frustrating because if we can't identify a causing pattern, we can't recommend a viable workaround.

                          Pulling at any thread I can find: this page makes use of jQuery to do things such as track usage. Could this be somehow entangled? Just as a theory, could Mavericks have changed something in the javascript engine that causes this bug and we aren't reproducing it because we aren't firing the same javascript enroute to Ruby? Seems like a long shot, but when in desperation...

                          1 Reply Last reply Reply Quote 0
                          • TIGT Offline
                            TIG Moderator
                            last edited by

                            Jquery might be a factor - my test didn't include it...
                            Presumably the page records downloads using it ??

                            When you read the SketchThis html source it has <a href="skp:callbackname@http://urlpath.skp"> etc.
                            When I test it... it works... except on MACs with Mavericks, when it fails...
                            When I do the exact same code on my TIG.this test it always works !
                            The only difference is my html has:
                            <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html>
                            BUT the SketchThis html source has:
                            <!DOCTYPE html> <!--[if IE 6]> <html id="ie6" lang="en-US"> <![endif]--> <!--[if IE 7]> <html id="ie7" lang="en-US"> <![endif]--> <!--[if IE 8]> <html id="ie8" lang="en-US"> <![endif]--> <!--[if !(IE 6) | !(IE 7) | !(IE 8) ]><!--> <html lang="en-US"> <!--<![endif]-->
                            I haven't managed to retest with that in my code, as I am currently downloading/installing Mavericks on that MAC...

                            TIG

                            1 Reply Last reply Reply Quote 0
                            • S Offline
                              slbaumgartner
                              last edited by

                              @tig said:

                              The only difference is my html has:
                              <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html>
                              BUT the SketchThis html source has:
                              <!DOCTYPE html> <!--[if IE 6]> <html id="ie6" lang="en-US"> <![endif]--> <!--[if IE 7]> <html id="ie7" lang="en-US"> <![endif]--> <!--[if IE 8]> <html id="ie8" lang="en-US"> <![endif]--> <!--[if !(IE 6) | !(IE 7) | !(IE 8) ]><!--> <html lang="en-US"> <!--<![endif]-->
                              I haven't managed to retest with that in my code, as I am currently downloading/installing Mavericks on that MAC...

                              I tried that DOCTYPE and conditional stuff. No effect - my test code still gets the right URL. The Jquery stuff is way more complex than I feel competent to fiddle with...haven't used it enough.

                              1 Reply Last reply Reply Quote 0
                              • D Offline
                                driven
                                last edited by

                                @tig said:

                                When you read the SketchThis html source it has <a href="skp:callbackname@http://urlpath.skp"> etc.

                                from web inspector inside SU the source for this item reads

                                <a href="skp;add_component@http://plugin.sketchthis.net/wp-content/uploads/2012/07/Sizeable-Back-Panel.skp" class="btn all">Insert into Model</a>
                                

                                does that work in tests??

                                EDIT: re-read the thread and see it does...

                                observation, if you just paste the address into Safari it downloads the file to 'Downloads', and you get a 'saved in v8' warning when you open that skp. Maybe the warning is blocking it being automated?

                                john

                                learn from the mistakes of others, you may not live long enough to make them all yourself...

                                1 Reply Last reply Reply Quote 0
                                • S Offline
                                  slbaumgartner
                                  last edited by

                                  @driven said:

                                  @tig said:

                                  observation, if you just paste the address into Safari it downloads the file to 'Downloads', and you get a 'saved in v8' warning when you open that skp. Maybe the warning is blocking it being automated?

                                  john

                                  Nope - I am running 8 and get the same error there.

                                  Steve

                                  1 Reply Last reply Reply Quote 0
                                  • TIGT Offline
                                    TIG Moderator
                                    last edited by

                                    @John

                                    That's the path: I just wrote a 'shorthand' form πŸ˜‰
                                    I have tested it my own rb/html with the exact same href= text and it works fine with Mavericks too πŸ˜’
                                    Perhaps it's something to do with some remote url's and permissions ? πŸ˜•

                                    The SketchUcation Plugin Store uses some similar [onClick=] callbacks and they all work in Mavericks as far as I know 😲

                                    TIG

                                    1 Reply Last reply Reply Quote 0
                                    • H Offline
                                      honkinberry
                                      last edited by

                                      Everything totally broken here.
                                      Tried changing the Doctype around, from Transitional to Strict to Html 5, all no change.
                                      Tried href= vs window.location= vs document.location=, all broken, broken, broken.
                                      If TIG or anyone has sample code that does work within Mavericks, I'd love to see it.

                                      Most of our skp: callbacks are within Javascript for ease of maintenance. Usually fired by onclicks, but it can vary.

                                      --J

                                      1 Reply Last reply Reply Quote 0
                                      • TIGT Offline
                                        TIG Moderator
                                        last edited by

                                        At the moment I am at a loss...
                                        Some methods work in Mavericks, some do not [both href= and onClick= + window.location=].
                                        BUT some that fail in one html document, will work in another, when the code looks all but identical πŸ˜•
                                        I can see not commonality for the fails/successes... 😲
                                        Waiting for Trimble's engineer's feedback....... πŸ˜’

                                        TIG

                                        1 Reply Last reply Reply Quote 0
                                        • H Offline
                                          honkinberry
                                          last edited by

                                          Here's a little more info from testing if this helps.
                                          I have two dialogs which are identical, both just a Select listbox, with an OnChange event that fires a window.location callback. Using Transitional doctype.

                                          The one that is a local htm file stored in the Plugins folder, that works.
                                          The one that is remote PHP, that one fails.

                                          --J

                                          1 Reply Last reply Reply Quote 0
                                          • Chris FullmerC Offline
                                            Chris Fullmer
                                            last edited by

                                            I've got nothing to add at this point, but I did want to chime in just to make sure everyone knows that we are looking into this issue as best we can also and working directly with some of the developers who have emailed us already. We'll post here as soon as we know anything useful. Thanks,

                                            Chris

                                            Lately you've been tan, suspicious for the winter.
                                            All my Plugins I've written

                                            1 Reply Last reply Reply Quote 0
                                            • 1
                                            • 2
                                            • 3
                                            • 4
                                            • 5
                                            • 2 / 5
                                            • First post
                                              Last post
                                            Buy SketchPlus
                                            Buy SUbD
                                            Buy WrapR
                                            Buy eBook
                                            Buy Modelur
                                            Buy Vertex Tools
                                            Buy SketchCuisine
                                            Buy FormFonts

                                            Advertisement