| OLD | NEW |
| 1 /* | 1 /* |
| 2 * Copyright (C) 2008, 2009 Google Inc. All rights reserved. | 2 * Copyright (C) 2008, 2009 Google Inc. All rights reserved. |
| 3 * Copyright (C) 2009 Apple Inc. All rights reserved. | 3 * Copyright (C) 2009 Apple Inc. All rights reserved. |
| 4 * Copyright (C) 2014 Opera Software ASA. All rights reserved. | 4 * Copyright (C) 2014 Opera Software ASA. All rights reserved. |
| 5 * | 5 * |
| 6 * Redistribution and use in source and binary forms, with or without | 6 * Redistribution and use in source and binary forms, with or without |
| 7 * modification, are permitted provided that the following conditions are | 7 * modification, are permitted provided that the following conditions are |
| 8 * met: | 8 * met: |
| 9 * | 9 * |
| 10 * * Redistributions of source code must retain the above copyright | 10 * * Redistributions of source code must retain the above copyright |
| (...skipping 50 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 61 #include "core/inspector/ConsoleMessage.h" | 61 #include "core/inspector/ConsoleMessage.h" |
| 62 #include "core/inspector/InspectorInstrumentation.h" | 62 #include "core/inspector/InspectorInstrumentation.h" |
| 63 #include "core/inspector/InspectorTraceEvents.h" | 63 #include "core/inspector/InspectorTraceEvents.h" |
| 64 #include "core/inspector/v8/V8StackTrace.h" | 64 #include "core/inspector/v8/V8StackTrace.h" |
| 65 #include "core/loader/DocumentLoader.h" | 65 #include "core/loader/DocumentLoader.h" |
| 66 #include "core/loader/FrameLoader.h" | 66 #include "core/loader/FrameLoader.h" |
| 67 #include "core/loader/FrameLoaderClient.h" | 67 #include "core/loader/FrameLoaderClient.h" |
| 68 #include "core/loader/NavigationScheduler.h" | 68 #include "core/loader/NavigationScheduler.h" |
| 69 #include "core/loader/ProgressTracker.h" | 69 #include "core/loader/ProgressTracker.h" |
| 70 #include "core/plugins/PluginView.h" | 70 #include "core/plugins/PluginView.h" |
| 71 #include "platform/Histogram.h" |
| 71 #include "platform/NotImplemented.h" | 72 #include "platform/NotImplemented.h" |
| 72 #include "platform/TraceEvent.h" | 73 #include "platform/TraceEvent.h" |
| 73 #include "platform/UserGestureIndicator.h" | 74 #include "platform/UserGestureIndicator.h" |
| 74 #include "platform/Widget.h" | 75 #include "platform/Widget.h" |
| 75 #include "platform/weborigin/SecurityOrigin.h" | 76 #include "platform/weborigin/SecurityOrigin.h" |
| 76 #include "public/platform/Platform.h" | 77 #include "public/platform/Platform.h" |
| 77 #include "wtf/CurrentTime.h" | 78 #include "wtf/CurrentTime.h" |
| 78 #include "wtf/StdLibExtras.h" | 79 #include "wtf/StdLibExtras.h" |
| 79 #include "wtf/StringExtras.h" | 80 #include "wtf/StringExtras.h" |
| 80 #include "wtf/text/CString.h" | 81 #include "wtf/text/CString.h" |
| (...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 127 disposeUnderlyingV8Object(isolate(), m_windowScriptNPObject); | 128 disposeUnderlyingV8Object(isolate(), m_windowScriptNPObject); |
| 128 _NPN_ReleaseObject(m_windowScriptNPObject); | 129 _NPN_ReleaseObject(m_windowScriptNPObject); |
| 129 m_windowScriptNPObject = 0; | 130 m_windowScriptNPObject = 0; |
| 130 } | 131 } |
| 131 } | 132 } |
| 132 | 133 |
| 133 void ScriptController::clearForClose() | 134 void ScriptController::clearForClose() |
| 134 { | 135 { |
| 135 double start = currentTime(); | 136 double start = currentTime(); |
| 136 m_windowProxyManager->clearForClose(); | 137 m_windowProxyManager->clearForClose(); |
| 137 Platform::current()->histogramCustomCounts("WebCore.ScriptController.clearFo
rClose", (currentTime() - start) * 1000, 0, 10000, 50); | 138 double end = currentTime(); |
| 139 DEFINE_STATIC_LOCAL(CustomCountHistogram, clearForCloseHistogram, ("WebCore.
ScriptController.clearForClose", 0, 10000, 50)); |
| 140 clearForCloseHistogram.count((end - start) * 1000); |
| 138 } | 141 } |
| 139 | 142 |
| 140 void ScriptController::updateSecurityOrigin(SecurityOrigin* origin) | 143 void ScriptController::updateSecurityOrigin(SecurityOrigin* origin) |
| 141 { | 144 { |
| 142 m_windowProxyManager->mainWorldProxy()->updateSecurityOrigin(origin); | 145 m_windowProxyManager->mainWorldProxy()->updateSecurityOrigin(origin); |
| 143 Vector<std::pair<ScriptState*, SecurityOrigin*>> isolatedContexts; | 146 Vector<std::pair<ScriptState*, SecurityOrigin*>> isolatedContexts; |
| 144 m_windowProxyManager->collectIsolatedContexts(isolatedContexts); | 147 m_windowProxyManager->collectIsolatedContexts(isolatedContexts); |
| 145 for (auto isolatedContext : isolatedContexts) | 148 for (auto isolatedContext : isolatedContexts) |
| 146 m_windowProxyManager->windowProxy(isolatedContext.first->world())->updat
eSecurityOrigin(isolatedContext.second); | 149 m_windowProxyManager->windowProxy(isolatedContext.first->world())->updat
eSecurityOrigin(isolatedContext.second); |
| 147 } | 150 } |
| (...skipping 255 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 403 { | 406 { |
| 404 // V8 binding expects ScriptController::clearWindowProxy only be called | 407 // V8 binding expects ScriptController::clearWindowProxy only be called |
| 405 // when a frame is loading a new page. This creates a new context for the ne
w page. | 408 // when a frame is loading a new page. This creates a new context for the ne
w page. |
| 406 | 409 |
| 407 double start = currentTime(); | 410 double start = currentTime(); |
| 408 // The V8 context must be available for |clearScriptObjects()|. | 411 // The V8 context must be available for |clearScriptObjects()|. |
| 409 // The below call must be before |clearForNavigation()| which disposes the V
8 context. | 412 // The below call must be before |clearForNavigation()| which disposes the V
8 context. |
| 410 clearScriptObjects(); | 413 clearScriptObjects(); |
| 411 | 414 |
| 412 m_windowProxyManager->clearForNavigation(); | 415 m_windowProxyManager->clearForNavigation(); |
| 413 Platform::current()->histogramCustomCounts("WebCore.ScriptController.clearWi
ndowProxy", (currentTime() - start) * 1000, 0, 10000, 50); | 416 double end = currentTime(); |
| 417 DEFINE_STATIC_LOCAL(CustomCountHistogram, clearWindowProxyHistogram, ("WebCo
re.ScriptController.clearWindowProxy", 0, 10000, 50)); |
| 418 clearWindowProxyHistogram.count((end - start) * 1000); |
| 414 } | 419 } |
| 415 | 420 |
| 416 void ScriptController::setCaptureCallStackForUncaughtExceptions(v8::Isolate* iso
late, bool value) | 421 void ScriptController::setCaptureCallStackForUncaughtExceptions(v8::Isolate* iso
late, bool value) |
| 417 { | 422 { |
| 418 isolate->SetCaptureStackTraceForUncaughtExceptions(value, V8StackTrace::maxC
allStackSizeToCapture, stackTraceOptions); | 423 isolate->SetCaptureStackTraceForUncaughtExceptions(value, V8StackTrace::maxC
allStackSizeToCapture, stackTraceOptions); |
| 419 } | 424 } |
| 420 | 425 |
| 421 void ScriptController::collectIsolatedContexts(Vector<std::pair<ScriptState*, Se
curityOrigin*>>& result) | 426 void ScriptController::collectIsolatedContexts(Vector<std::pair<ScriptState*, Se
curityOrigin*>>& result) |
| 422 { | 427 { |
| 423 m_windowProxyManager->collectIsolatedContexts(result); | 428 m_windowProxyManager->collectIsolatedContexts(result); |
| (...skipping 173 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 597 for (size_t i = 0; i < resultArray->Length(); ++i) { | 602 for (size_t i = 0; i < resultArray->Length(); ++i) { |
| 598 v8::Local<v8::Value> value; | 603 v8::Local<v8::Value> value; |
| 599 if (!resultArray->Get(scriptState->context(), i).ToLocal(&value)) | 604 if (!resultArray->Get(scriptState->context(), i).ToLocal(&value)) |
| 600 return; | 605 return; |
| 601 results->append(value); | 606 results->append(value); |
| 602 } | 607 } |
| 603 } | 608 } |
| 604 } | 609 } |
| 605 | 610 |
| 606 } // namespace blink | 611 } // namespace blink |
| OLD | NEW |