1. 19 Dec, 2017 1 commit
  2. 22 Feb, 2017 1 commit
    • dcheng's avatar
      Fix receiver checks for v8::Function on a remote context receiver. · 96eda1f7
      dcheng authored
      v8 allows the embedder to specify a global template to use when
      creating a new context. However, v8 does not use the supplied
      template directly when creating the global proxy: it creates a
      unique template for each global proxy. However, this is problematic
      for remote contexts: functions cannot use strict receiver checks
      with the remote context, as the global template will never match
      the global proxy.
      
      To fix this, remote contexts now also include a remote global
      object in the prototype chain that is instantiated with the global
      template. This mirrors the way the global proxy is configured for a
      full v8 context, and allows strict receiver checks to work.
      
      BUG=527190
      
      Review-Url: https://codereview.chromium.org/2677653002
      Cr-Commit-Position: refs/heads/master@{#43361}
      96eda1f7
  3. 07 Dec, 2016 1 commit
    • dcheng's avatar
      Propagate exceptions thrown by access check interceptors. · ebe94192
      dcheng authored
      When v8 fails an access check, it invokes a helper to try to see if it
      can service the request via an access check interceptor. Invoking the
      access check interceptor can throw an exception (e.g. a SecurityError).
      
      Unfortunately, the failed access check property helpers and the
      interceptor helpers don't agree on how to propagate the exception: if
      the interceptor helper detects a scheduled exception, it promotes the
      exception to a pending exception and returns to the failed access check
      property helper.
      
      The failed access check property helper also has an early return in
      case of a scheduled exception. However, this doesn't work, as the
      previously thrown exception is no longer scheduled, as it's been
      promoted to a pending exception. Thus, the failed access check property
      helper always end up calling the failed access check callback as well.
      Since Blink's implementation of the failed access check callback also
      throws an exception, this conflicts with the previously-thrown,
      already-pending exception.
      
      With this patch, the failed access check property helpers check for a
      pending exception rather than a scheduled exception after invoking the
      interceptor, so the exception can be propagated correctly.
      
      BUG=v8:5715
      R=yangguo@chromium.org,jochen@chromium.org
      
      Review-Url: https://codereview.chromium.org/2550423002
      Cr-Commit-Position: refs/heads/master@{#41556}
      ebe94192
  4. 19 Jul, 2016 1 commit
  5. 07 Jul, 2016 1 commit
  6. 27 Jun, 2016 1 commit