| OLD | NEW |
| 1 // Copyright 2011, Google Inc. | 1 // Copyright 2011, Google Inc. |
| 2 // All rights reserved. | 2 // All rights reserved. |
| 3 // | 3 // |
| 4 // Redistribution and use in source and binary forms, with or without | 4 // Redistribution and use in source and binary forms, with or without |
| 5 // modification, are permitted provided that the following conditions are | 5 // modification, are permitted provided that the following conditions are |
| 6 // met: | 6 // met: |
| 7 // | 7 // |
| 8 // * Redistributions of source code must retain the above copyright | 8 // * Redistributions of source code must retain the above copyright |
| 9 // notice, this list of conditions and the following disclaimer. | 9 // notice, this list of conditions and the following disclaimer. |
| 10 // * Redistributions in binary form must reproduce the above | 10 // * Redistributions in binary form must reproduce the above |
| (...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 49 #include "bindings/v8/ScriptController.h" | 49 #include "bindings/v8/ScriptController.h" |
| 50 #include "bindings/v8/SerializedScriptValue.h" | 50 #include "bindings/v8/SerializedScriptValue.h" |
| 51 #include "bindings/v8/V8Binding.h" | 51 #include "bindings/v8/V8Binding.h" |
| 52 #include "bindings/v8/V8ExceptionState.h" | 52 #include "bindings/v8/V8ExceptionState.h" |
| 53 #include "bindings/v8/V8PerIsolateData.h" | 53 #include "bindings/v8/V8PerIsolateData.h" |
| 54 #include "core/dom/Document.h" | 54 #include "core/dom/Document.h" |
| 55 #include "core/fetch/ResourceFetcher.h" | 55 #include "core/fetch/ResourceFetcher.h" |
| 56 #include "core/frame/LocalDOMWindow.h" | 56 #include "core/frame/LocalDOMWindow.h" |
| 57 #include "core/frame/LocalFrame.h" | 57 #include "core/frame/LocalFrame.h" |
| 58 #include "core/html/canvas/DataView.h" | 58 #include "core/html/canvas/DataView.h" |
| 59 #include "core/inspector/InspectorInstrumentation.h" |
| 59 #include "core/inspector/ScriptArguments.h" | 60 #include "core/inspector/ScriptArguments.h" |
| 60 #include "core/inspector/ScriptCallStack.h" | 61 #include "core/inspector/ScriptCallStack.h" |
| 61 #include "core/loader/FrameLoader.h" | 62 #include "core/loader/FrameLoader.h" |
| 62 #include "modules/webdatabase/sqlite/SQLValue.h" | 63 #include "modules/webdatabase/sqlite/SQLValue.h" |
| 63 #include "platform/SharedBuffer.h" | 64 #include "platform/SharedBuffer.h" |
| 64 #include "platform/network/ResourceRequest.h" | 65 #include "platform/network/ResourceRequest.h" |
| 65 | 66 |
| 66 #include "wtf/ArrayBufferView.h" | 67 #include "wtf/ArrayBufferView.h" |
| 67 #include "wtf/Float32Array.h" | 68 #include "wtf/Float32Array.h" |
| 68 #include "wtf/Float64Array.h" | 69 #include "wtf/Float64Array.h" |
| 69 #include "wtf/Int16Array.h" | 70 #include "wtf/Int16Array.h" |
| 70 #include "wtf/Int32Array.h" | 71 #include "wtf/Int32Array.h" |
| 71 #include "wtf/Int8Array.h" | 72 #include "wtf/Int8Array.h" |
| 72 #include "wtf/RefCounted.h" | 73 #include "wtf/RefCounted.h" |
| 73 #include "wtf/Uint16Array.h" | 74 #include "wtf/Uint16Array.h" |
| 74 #include "wtf/Uint32Array.h" | 75 #include "wtf/Uint32Array.h" |
| 75 #include "wtf/Uint8Array.h" | 76 #include "wtf/Uint8Array.h" |
| 76 #include "wtf/Uint8ClampedArray.h" | 77 #include "wtf/Uint8ClampedArray.h" |
| 77 #include "wtf/text/AtomicString.h" | 78 #include "wtf/text/AtomicString.h" |
| 78 #include "wtf/text/CString.h" | 79 #include "wtf/text/CString.h" |
| 79 #include "wtf/text/WTFString.h" | 80 #include "wtf/text/WTFString.h" |
| 80 | 81 |
| 81 namespace WebCore { | 82 namespace WebCore { |
| 82 | 83 |
| 83 V8Scope::V8Scope(DartDOMData* dartDOMData, v8::Handle<v8::Context> context) | 84 V8Scope::V8Scope(DartDOMData* dartDOMData, v8::Handle<v8::Context> context) |
| 84 : m_v8Isolate(v8::Isolate::GetCurrent()) | 85 : m_v8Isolate(v8::Isolate::GetCurrent()) |
| 85 , m_dartDOMData(dartDOMData) | 86 , m_dartDOMData(dartDOMData) |
| 86 , m_handleScope(m_v8Isolate) | 87 , m_handleScope(m_v8Isolate) |
| 87 , m_contextScope(context) | 88 , m_contextScope(context) |
| 88 , m_recursionScope(m_v8Isolate, DartUtilities::scriptExecutionContext()) | 89 , m_recursionScope(m_v8Isolate, DartUtilities::scriptExecutionContext(), fal
se) |
| 89 { | 90 { |
| 90 if (m_dartDOMData) | 91 incrementRecursionLevel(); |
| 91 (*m_dartDOMData->recursion())++; | |
| 92 } | 92 } |
| 93 | 93 |
| 94 V8Scope::V8Scope(DartDOMData* dartDOMData) | 94 V8Scope::V8Scope(DartDOMData* dartDOMData) |
| 95 : m_v8Isolate(v8::Isolate::GetCurrent()) | 95 : m_v8Isolate(v8::Isolate::GetCurrent()) |
| 96 , m_dartDOMData(dartDOMData) | 96 , m_dartDOMData(dartDOMData) |
| 97 , m_handleScope(m_v8Isolate) | 97 , m_handleScope(m_v8Isolate) |
| 98 , m_contextScope(DartUtilities::currentV8Context()) | 98 , m_contextScope(DartUtilities::currentV8Context()) |
| 99 , m_recursionScope(m_v8Isolate, DartUtilities::scriptExecutionContext()) | 99 , m_recursionScope(m_v8Isolate, DartUtilities::scriptExecutionContext(), fal
se) |
| 100 { | 100 { |
| 101 if (m_dartDOMData) | 101 incrementRecursionLevel(); |
| 102 (*m_dartDOMData->recursion())++; | |
| 103 } | 102 } |
| 104 | 103 |
| 105 V8Scope::~V8Scope() | 104 V8Scope::~V8Scope() |
| 106 { | 105 { |
| 107 if (m_dartDOMData) | 106 if (m_dartDOMData) |
| 108 (*m_dartDOMData->recursion())--; | 107 m_dartDOMData->stackTraceTimestampTracker()->decrementRecursionLevel(); |
| 108 } |
| 109 |
| 110 void V8Scope::incrementRecursionLevel() |
| 111 { |
| 112 if (!m_dartDOMData) |
| 113 return; |
| 114 StackTraceTimestampTracker* tracker = m_dartDOMData->stackTraceTimestampTrac
ker(); |
| 115 tracker->incrementRecursionLevel(InspectorInstrumentation::hasFrontends() &&
tracker->recursionLevel() > 0 ? |
| 116 DartUtilities::currentStackDepth() : 0); |
| 109 } | 117 } |
| 110 | 118 |
| 111 DartStringPeer* DartStringPeer::emptyString() | 119 DartStringPeer* DartStringPeer::emptyString() |
| 112 { | 120 { |
| 113 DEFINE_STATIC_LOCAL(DartStringPeer, empty, ()); | 121 DEFINE_STATIC_LOCAL(DartStringPeer, empty, ()); |
| 114 return ∅ | 122 return ∅ |
| 115 } | 123 } |
| 116 | 124 |
| 117 | 125 |
| 118 static void stringFinalizer(void* peer) | 126 static void stringFinalizer(void* peer) |
| (...skipping 945 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1064 intptr_t lineNumber = 0; | 1072 intptr_t lineNumber = 0; |
| 1065 intptr_t columnNumber = 0; | 1073 intptr_t columnNumber = 0; |
| 1066 Dart_Handle result = Dart_ActivationFrameInfo(frame, &functionName, &scriptU
rl, &lineNumber, &columnNumber); | 1074 Dart_Handle result = Dart_ActivationFrameInfo(frame, &functionName, &scriptU
rl, &lineNumber, &columnNumber); |
| 1067 if (Dart_IsError(result)) { | 1075 if (Dart_IsError(result)) { |
| 1068 exception = result; | 1076 exception = result; |
| 1069 return ScriptCallFrame("undefined", "undefined", "undefined", 0, 0); | 1077 return ScriptCallFrame("undefined", "undefined", "undefined", 0, 0); |
| 1070 } | 1078 } |
| 1071 return ScriptCallFrame(DartUtilities::toString(functionName), "undefined", D
artUtilities::toString(scriptUrl), lineNumber, columnNumber); | 1079 return ScriptCallFrame(DartUtilities::toString(functionName), "undefined", D
artUtilities::toString(scriptUrl), lineNumber, columnNumber); |
| 1072 } | 1080 } |
| 1073 | 1081 |
| 1082 size_t DartUtilities::currentStackDepth() |
| 1083 { |
| 1084 intptr_t stackDepth = 0; |
| 1085 Dart_StackTrace trace = 0; |
| 1086 Dart_Handle ALLOW_UNUSED result = Dart_GetStackTrace(&trace); |
| 1087 ASSERT(!Dart_IsError(result)); |
| 1088 ASSERT(!Dart_IsNull(result)); |
| 1089 result = Dart_StackTraceLength(trace, &stackDepth); |
| 1090 ASSERT(!Dart_IsError(result)); |
| 1091 return stackDepth; |
| 1092 } |
| 1093 |
| 1074 PassRefPtr<ScriptCallStack> DartUtilities::createScriptCallStack() | 1094 PassRefPtr<ScriptCallStack> DartUtilities::createScriptCallStack() |
| 1075 { | 1095 { |
| 1076 Dart_StackTrace trace = 0; | 1096 Dart_StackTrace trace = 0; |
| 1077 Dart_Handle ALLOW_UNUSED result = Dart_GetStackTrace(&trace); | 1097 Dart_Handle ALLOW_UNUSED result = Dart_GetStackTrace(&trace); |
| 1078 ASSERT(!Dart_IsError(result)); | 1098 ASSERT(!Dart_IsError(result)); |
| 1079 ASSERT(!Dart_IsNull(result)); | 1099 ASSERT(!Dart_IsNull(result)); |
| 1080 ASSERT(trace); | 1100 ASSERT(trace); |
| 1081 return createScriptCallStackFromStackTrace(trace); | 1101 return createScriptCallStackFromStackTrace(trace); |
| 1082 } | 1102 } |
| 1083 | 1103 |
| (...skipping 123 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1207 if (!v) { | 1227 if (!v) { |
| 1208 return 0; | 1228 return 0; |
| 1209 } | 1229 } |
| 1210 ASSERT(valueLen > 0 && static_cast<size_t>(valueLen) > strlen(v)); | 1230 ASSERT(valueLen > 0 && static_cast<size_t>(valueLen) > strlen(v)); |
| 1211 strncpy(value, v, valueLen); | 1231 strncpy(value, v, valueLen); |
| 1212 value[valueLen - 1] = '\0'; | 1232 value[valueLen - 1] = '\0'; |
| 1213 return strlen(value); | 1233 return strlen(value); |
| 1214 #endif | 1234 #endif |
| 1215 } | 1235 } |
| 1216 } | 1236 } |
| OLD | NEW |