summaryrefslogtreecommitdiffstats
path: root/webkit/port/bindings/v8/ScriptController.cpp
diff options
context:
space:
mode:
authorsgjesse@chromium.org <sgjesse@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2008-12-16 13:14:36 +0000
committersgjesse@chromium.org <sgjesse@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2008-12-16 13:14:36 +0000
commite381cb6c17928feb309e27867eba03c5cd8b7483 (patch)
treebd8abaac357d9ca4049111c64b3181703a725810 /webkit/port/bindings/v8/ScriptController.cpp
parent400d807b0c567a1df1087694627737174a13c8ad (diff)
downloadchromium_src-e381cb6c17928feb309e27867eba03c5cd8b7483.zip
chromium_src-e381cb6c17928feb309e27867eba03c5cd8b7483.tar.gz
chromium_src-e381cb6c17928feb309e27867eba03c5cd8b7483.tar.bz2
Unfork MessagePort.cpp by postponing the entanglement of the message port JavaScript wrappers to GC time.
This have the drawback that message ports are "re-entangled/re-unentangled" for each GC which happens. This will most likely not make any noticable difference. Review URL: http://codereview.chromium.org/14150 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@7053 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'webkit/port/bindings/v8/ScriptController.cpp')
-rw-r--r--webkit/port/bindings/v8/ScriptController.cpp31
1 files changed, 0 insertions, 31 deletions
diff --git a/webkit/port/bindings/v8/ScriptController.cpp b/webkit/port/bindings/v8/ScriptController.cpp
index 1e4ffe4..99e35aa3 100644
--- a/webkit/port/bindings/v8/ScriptController.cpp
+++ b/webkit/port/bindings/v8/ScriptController.cpp
@@ -107,37 +107,6 @@ void ScriptController::gcUnprotectJSWrapper(void* dom_object)
V8Proxy::GCUnprotect(dom_object);
}
-void ScriptController::entangleMessagePorts(MessagePort *port1,
- MessagePort *port2)
-{
- // When two message ports are entangled make sure that the two wrappers are
- // also entangled. If one of the ports has pending activity it's wrapper
- // will be protected from beeing GC'ed and by entangeling the wrappers the
- // wrapper for the entangled port will also be protected.
- v8::Handle<v8::Value> port1_wrapper =
- V8Proxy::ToV8Object(V8ClassIndex::MESSAGEPORT, port1);
- v8::Handle<v8::Value> port2_wrapper =
- V8Proxy::ToV8Object(V8ClassIndex::MESSAGEPORT, port2);
- ASSERT(port1_wrapper->IsObject());
- v8::Handle<v8::Object>::Cast(port1_wrapper)->SetInternalField(
- V8Custom::kMessagePortEntangledPortIndex, port2_wrapper);
- ASSERT(port2_wrapper->IsObject());
- v8::Handle<v8::Object>::Cast(port2_wrapper)->SetInternalField(
- V8Custom::kMessagePortEntangledPortIndex, port1_wrapper);
-}
-
-void ScriptController::unentangleMessagePort(MessagePort *port)
-{
- // Remove the wrapper entanglement when a port is unentangled.
- if (V8Proxy::DOMObjectHasJSWrapper(port)) {
- v8::Handle<v8::Value> wrapper =
- V8Proxy::ToV8Object(V8ClassIndex::MESSAGEPORT, port);
- ASSERT(wrapper->IsObject());
- v8::Handle<v8::Object>::Cast(wrapper)->SetInternalField(
- V8Custom::kMessagePortEntangledPortIndex, v8::Undefined());
- }
-}
-
ScriptController::ScriptController(Frame* frame)
: m_frame(frame)
, m_sourceURL(0)