| OLD | NEW |
| 1 // Copyright 2016 The Chromium Authors. All rights reserved. | 1 // Copyright 2016 The Chromium 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 "modules/broadcastchannel/BroadcastChannel.h" | 5 #include "modules/broadcastchannel/BroadcastChannel.h" |
| 6 | 6 |
| 7 #include "bindings/core/v8/SerializedScriptValue.h" | 7 #include "bindings/core/v8/SerializedScriptValue.h" |
| 8 #include "core/dom/ExceptionCode.h" | 8 #include "core/dom/ExceptionCode.h" |
| 9 #include "core/events/EventQueue.h" | 9 #include "core/events/EventQueue.h" |
| 10 #include "core/events/MessageEvent.h" | 10 #include "core/events/MessageEvent.h" |
| (...skipping 112 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 123 close(); | 123 close(); |
| 124 } | 124 } |
| 125 | 125 |
| 126 BroadcastChannel::BroadcastChannel(ExecutionContext* executionContext, | 126 BroadcastChannel::BroadcastChannel(ExecutionContext* executionContext, |
| 127 const String& name) | 127 const String& name) |
| 128 : ActiveScriptWrappable(this), | 128 : ActiveScriptWrappable(this), |
| 129 ContextLifecycleObserver(executionContext), | 129 ContextLifecycleObserver(executionContext), |
| 130 m_origin(executionContext->getSecurityOrigin()), | 130 m_origin(executionContext->getSecurityOrigin()), |
| 131 m_name(name), | 131 m_name(name), |
| 132 m_binding(this) { | 132 m_binding(this) { |
| 133 ThreadState::current()->registerPreFinalizer(this); | |
| 134 | |
| 135 mojom::blink::BroadcastChannelProviderPtr& provider = | 133 mojom::blink::BroadcastChannelProviderPtr& provider = |
| 136 getThreadSpecificProvider(); | 134 getThreadSpecificProvider(); |
| 137 | 135 |
| 138 // Local BroadcastChannelClient for messages send from the browser to this | 136 // Local BroadcastChannelClient for messages send from the browser to this |
| 139 // channel. | 137 // channel. |
| 140 mojom::blink::BroadcastChannelClientAssociatedPtrInfo localClientInfo; | 138 mojom::blink::BroadcastChannelClientAssociatedPtrInfo localClientInfo; |
| 141 m_binding.Bind(&localClientInfo, provider.associated_group()); | 139 m_binding.Bind(&localClientInfo, provider.associated_group()); |
| 142 m_binding.set_connection_error_handler(convertToBaseCallback( | 140 m_binding.set_connection_error_handler(convertToBaseCallback( |
| 143 WTF::bind(&BroadcastChannel::onError, wrapWeakPersistent(this)))); | 141 WTF::bind(&BroadcastChannel::onError, wrapWeakPersistent(this)))); |
| 144 | 142 |
| 145 // Remote BroadcastChannelClient for messages send from this channel to the | 143 // Remote BroadcastChannelClient for messages send from this channel to the |
| 146 // browser. | 144 // browser. |
| 147 mojom::blink::BroadcastChannelClientAssociatedPtrInfo remoteClientInfo; | 145 mojom::blink::BroadcastChannelClientAssociatedPtrInfo remoteClientInfo; |
| 148 mojo::AssociatedInterfaceRequest<mojom::blink::BroadcastChannelClient> | 146 mojo::AssociatedInterfaceRequest<mojom::blink::BroadcastChannelClient> |
| 149 remoteCientRequest; | 147 remoteCientRequest; |
| 150 provider.associated_group()->CreateAssociatedInterface( | 148 provider.associated_group()->CreateAssociatedInterface( |
| 151 mojo::AssociatedGroup::WILL_PASS_REQUEST, &remoteClientInfo, | 149 mojo::AssociatedGroup::WILL_PASS_REQUEST, &remoteClientInfo, |
| 152 &remoteCientRequest); | 150 &remoteCientRequest); |
| 153 m_remoteClient.Bind(std::move(remoteClientInfo)); | 151 m_remoteClient.Bind(std::move(remoteClientInfo)); |
| 154 m_remoteClient.set_connection_error_handler(convertToBaseCallback( | 152 m_remoteClient.set_connection_error_handler(convertToBaseCallback( |
| 155 WTF::bind(&BroadcastChannel::onError, wrapWeakPersistent(this)))); | 153 WTF::bind(&BroadcastChannel::onError, wrapWeakPersistent(this)))); |
| 156 | 154 |
| 157 provider->ConnectToChannel(m_origin, m_name, std::move(localClientInfo), | 155 provider->ConnectToChannel(m_origin, m_name, std::move(localClientInfo), |
| 158 std::move(remoteCientRequest)); | 156 std::move(remoteCientRequest)); |
| 159 } | 157 } |
| 160 | 158 |
| 161 } // namespace blink | 159 } // namespace blink |
| OLD | NEW |