OLD | NEW |
1 // Copyright 2012 the V8 project authors. All rights reserved. | 1 // Copyright 2012 the V8 project authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "src/isolate.h" | 5 #include "src/isolate.h" |
6 | 6 |
7 #include <stdlib.h> | 7 #include <stdlib.h> |
8 | 8 |
9 #include <fstream> // NOLINT(readability/streams) | 9 #include <fstream> // NOLINT(readability/streams) |
10 #include <sstream> | 10 #include <sstream> |
(...skipping 810 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
821 | 821 |
822 HandleScope scope(this); | 822 HandleScope scope(this); |
823 Handle<Object> data; | 823 Handle<Object> data; |
824 v8::AccessCheckCallback callback = nullptr; | 824 v8::AccessCheckCallback callback = nullptr; |
825 v8::NamedSecurityCallback named_callback = nullptr; | 825 v8::NamedSecurityCallback named_callback = nullptr; |
826 { DisallowHeapAllocation no_gc; | 826 { DisallowHeapAllocation no_gc; |
827 AccessCheckInfo* access_check_info = GetAccessCheckInfo(this, receiver); | 827 AccessCheckInfo* access_check_info = GetAccessCheckInfo(this, receiver); |
828 if (!access_check_info) return false; | 828 if (!access_check_info) return false; |
829 Object* fun_obj = access_check_info->callback(); | 829 Object* fun_obj = access_check_info->callback(); |
830 callback = v8::ToCData<v8::AccessCheckCallback>(fun_obj); | 830 callback = v8::ToCData<v8::AccessCheckCallback>(fun_obj); |
| 831 data = handle(access_check_info->data(), this); |
831 if (!callback) { | 832 if (!callback) { |
832 fun_obj = access_check_info->named_callback(); | 833 fun_obj = access_check_info->named_callback(); |
833 named_callback = v8::ToCData<v8::NamedSecurityCallback>(fun_obj); | 834 named_callback = v8::ToCData<v8::NamedSecurityCallback>(fun_obj); |
834 if (!named_callback) return false; | 835 if (!named_callback) return false; |
835 data = handle(access_check_info->data(), this); | |
836 } | 836 } |
837 } | 837 } |
838 | 838 |
839 LOG(this, ApiSecurityCheck()); | 839 LOG(this, ApiSecurityCheck()); |
840 | 840 |
841 { | 841 { |
842 // Leaving JavaScript. | 842 // Leaving JavaScript. |
843 VMState<EXTERNAL> state(this); | 843 VMState<EXTERNAL> state(this); |
844 if (callback) { | 844 if (callback) { |
845 return callback(v8::Utils::ToLocal(accessing_context), | 845 return callback(v8::Utils::ToLocal(accessing_context), |
(...skipping 2015 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2861 // Then check whether this scope intercepts. | 2861 // Then check whether this scope intercepts. |
2862 if ((flag & intercept_mask_)) { | 2862 if ((flag & intercept_mask_)) { |
2863 intercepted_flags_ |= flag; | 2863 intercepted_flags_ |= flag; |
2864 return true; | 2864 return true; |
2865 } | 2865 } |
2866 return false; | 2866 return false; |
2867 } | 2867 } |
2868 | 2868 |
2869 } // namespace internal | 2869 } // namespace internal |
2870 } // namespace v8 | 2870 } // namespace v8 |
OLD | NEW |