Hmm... I'm not exactly sure how Flash works (are there any pointers
to  this or do you figure this just by debugging Flash with Chrome?)
but here's the specific problem I'm running into.

We used to use NPN_GetURL with "javascript:document.location" as the
URL. In the current implementation, after this script is executed in
WebPluginImpl::ExecuteScript (in src/webkit/glue/webplugin_impl.cc),
its checking the result value:

  WebCore::ScriptValue result =
      frame()->loader()->executeScript(script_str, popups_allowed);
  WebCore::String script_result;
  std::wstring wresult;
  bool succ = false;
  if (result.getString(script_result)) {
    succ = true;
    wresult = webkit_glue::StringToStdWString(script_result);
  }

For the above javascript I'm using, the result is false and I'm not
sure why. Because of that, eventually in the
PluginInstance::SendJavaScriptStream, no stream is being created at
all. As I mentioned before this used to work with Chrome 1.x. I'm not
sure why the javascript document.location does not correctly result in
a string. I probably need to dig in more. Does this exact sequence
work correctly for you?

Thanks for all your time btw!
Vijay

On Jun 8, 11:15 am, John Abd-El-Malek <j...@chromium.org> wrote:
> Are you sure this is broken?  Flash uses this so if it was broken, we would
> have seen lots of sites fail.
> On a debug build, I can see this working fine using about:ipc.
>
> NPN_GetProperty is called on "location"
> and the returned object is NPN_Invoke'd to call "toString"
>
> On Mon, Jun 8, 2009 at 1:38 AM, vijay <tec...@gmail.com> wrote:
>
> > Yeah. Here is what worked for us in the past: we issue a NPN_GetURL
> > with "javascript:document.location" and the browser simply delivered
> > the location via the standard NPP_NewStream, NPP_Write, etc. This
> > works perfectly with mozilla/firefox. It also used to work the same
> > exact way in Chrome 1.x so our code worked without any problems.
> > However, with Chrome 2.0 (and the webkit underneath it), there were
> > some changes and the javascript "results" are not being delivered via
> > streams any more. Chrome/webkit is simply executing the javascript and
> > ignoring the results. I can't say I agree with the rationale behind
> > the change but it seems to have killed about the simplest way to get
> > the document location :)
>
> > On Jun 7, 11:29 pm, Adam Barth <aba...@chromium.org> wrote:
> > > This turns out to be very trick to do securely.  I recommend studying
> > > how Flash does this and doing *precisely* the same thing.
>
> > > Adam
>
> > > On Sun, Jun 7, 2009 at 10:57 PM, vijay<tec...@gmail.com> wrote:
>
> > > > Preferably a browser-independent way would be great.
>
> > > > Thanks in advance,
> > > > Vijay
--~--~---------~--~----~------------~-------~--~----~
Chromium Developers mailing list: chromium-dev@googlegroups.com 
View archives, change email options, or unsubscribe: 
    http://groups.google.com/group/chromium-dev
-~----------~----~----~----~------~----~------~--~---

Reply via email to