Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(104)

Side by Side Diff: Source/modules/websockets/ThreadableWebSocketChannelClientWrapper.cpp

Issue 334873002: [WebSocket] Make subprotocol and extensions live in WebSocket (Closed) Base URL: https://chromium.googlesource.com/chromium/blink.git@master
Patch Set: Created 6 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 /* 1 /*
2 * Copyright (C) 2011 Google Inc. All rights reserved. 2 * Copyright (C) 2011 Google Inc. 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 36 matching lines...) Expand 10 before | Expand all | Expand 10 after
47 47
48 ThreadableWebSocketChannelClientWrapper::~ThreadableWebSocketChannelClientWrappe r() 48 ThreadableWebSocketChannelClientWrapper::~ThreadableWebSocketChannelClientWrappe r()
49 { 49 {
50 } 50 }
51 51
52 PassRefPtrWillBeRawPtr<ThreadableWebSocketChannelClientWrapper> ThreadableWebSoc ketChannelClientWrapper::create(WebSocketChannelClient* client) 52 PassRefPtrWillBeRawPtr<ThreadableWebSocketChannelClientWrapper> ThreadableWebSoc ketChannelClientWrapper::create(WebSocketChannelClient* client)
53 { 53 {
54 return adoptRefWillBeNoop(new ThreadableWebSocketChannelClientWrapper(client )); 54 return adoptRefWillBeNoop(new ThreadableWebSocketChannelClientWrapper(client ));
55 } 55 }
56 56
57 String ThreadableWebSocketChannelClientWrapper::subprotocol() const
58 {
59 if (m_subprotocol.isEmpty())
60 return emptyString();
61 return String(m_subprotocol);
62 }
63
64 void ThreadableWebSocketChannelClientWrapper::setSubprotocol(const String& subpr otocol)
65 {
66 m_subprotocol.clear();
67 append(m_subprotocol, subprotocol);
68 }
69
70 String ThreadableWebSocketChannelClientWrapper::extensions() const
71 {
72 if (m_extensions.isEmpty())
73 return emptyString();
74 return String(m_extensions);
75 }
76
77 void ThreadableWebSocketChannelClientWrapper::setExtensions(const String& extens ions)
78 {
79 m_extensions.clear();
80 append(m_extensions, extensions);
81 }
82
83 void ThreadableWebSocketChannelClientWrapper::clearClient() 57 void ThreadableWebSocketChannelClientWrapper::clearClient()
84 { 58 {
85 m_client = 0; 59 m_client = 0;
86 } 60 }
87 61
88 void ThreadableWebSocketChannelClientWrapper::didConnect() 62 void ThreadableWebSocketChannelClientWrapper::didConnect(const String& subprotoc ol, const String& extensions)
89 { 63 {
90 m_pendingTasks.append(createCallbackTask(&didConnectCallback, this)); 64 m_pendingTasks.append(createCallbackTask(&didConnectCallback, this, subproto col, extensions));
91 if (!m_suspended) 65 if (!m_suspended)
92 processPendingTasks(); 66 processPendingTasks();
93 } 67 }
94 68
95 void ThreadableWebSocketChannelClientWrapper::didReceiveMessage(const String& me ssage) 69 void ThreadableWebSocketChannelClientWrapper::didReceiveMessage(const String& me ssage)
96 { 70 {
97 m_pendingTasks.append(createCallbackTask(&didReceiveMessageCallback, this, m essage)); 71 m_pendingTasks.append(createCallbackTask(&didReceiveMessageCallback, this, m essage));
98 if (!m_suspended) 72 if (!m_suspended)
99 processPendingTasks(); 73 processPendingTasks();
100 } 74 }
(...skipping 47 matching lines...) Expand 10 before | Expand all | Expand 10 after
148 void ThreadableWebSocketChannelClientWrapper::processPendingTasks() 122 void ThreadableWebSocketChannelClientWrapper::processPendingTasks()
149 { 123 {
150 if (m_suspended) 124 if (m_suspended)
151 return; 125 return;
152 Vector<OwnPtr<ExecutionContextTask> > tasks; 126 Vector<OwnPtr<ExecutionContextTask> > tasks;
153 tasks.swap(m_pendingTasks); 127 tasks.swap(m_pendingTasks);
154 for (Vector<OwnPtr<ExecutionContextTask> >::const_iterator iter = tasks.begi n(); iter != tasks.end(); ++iter) 128 for (Vector<OwnPtr<ExecutionContextTask> >::const_iterator iter = tasks.begi n(); iter != tasks.end(); ++iter)
155 (*iter)->performTask(0); 129 (*iter)->performTask(0);
156 } 130 }
157 131
158 void ThreadableWebSocketChannelClientWrapper::didConnectCallback(ExecutionContex t* context, PassRefPtrWillBeRawPtr<ThreadableWebSocketChannelClientWrapper> wrap per) 132 void ThreadableWebSocketChannelClientWrapper::didConnectCallback(ExecutionContex t* context, PassRefPtrWillBeRawPtr<ThreadableWebSocketChannelClientWrapper> wrap per, const String& subprotocol, const String& extensions)
159 { 133 {
160 ASSERT_UNUSED(context, !context); 134 ASSERT_UNUSED(context, !context);
161 if (wrapper->m_client) 135 if (wrapper->m_client)
162 wrapper->m_client->didConnect(); 136 wrapper->m_client->didConnect(subprotocol, extensions);
163 } 137 }
164 138
165 void ThreadableWebSocketChannelClientWrapper::didReceiveMessageCallback(Executio nContext* context, PassRefPtrWillBeRawPtr<ThreadableWebSocketChannelClientWrappe r> wrapper, const String& message) 139 void ThreadableWebSocketChannelClientWrapper::didReceiveMessageCallback(Executio nContext* context, PassRefPtrWillBeRawPtr<ThreadableWebSocketChannelClientWrappe r> wrapper, const String& message)
166 { 140 {
167 ASSERT_UNUSED(context, !context); 141 ASSERT_UNUSED(context, !context);
168 if (wrapper->m_client) 142 if (wrapper->m_client)
169 wrapper->m_client->didReceiveMessage(message); 143 wrapper->m_client->didReceiveMessage(message);
170 } 144 }
171 145
172 void ThreadableWebSocketChannelClientWrapper::didReceiveBinaryDataCallback(Execu tionContext* context, PassRefPtrWillBeRawPtr<ThreadableWebSocketChannelClientWra pper> wrapper, PassOwnPtr<Vector<char> > binaryData) 146 void ThreadableWebSocketChannelClientWrapper::didReceiveBinaryDataCallback(Execu tionContext* context, PassRefPtrWillBeRawPtr<ThreadableWebSocketChannelClientWra pper> wrapper, PassOwnPtr<Vector<char> > binaryData)
(...skipping 25 matching lines...) Expand all
198 } 172 }
199 173
200 void ThreadableWebSocketChannelClientWrapper::didReceiveMessageErrorCallback(Exe cutionContext* context, PassRefPtrWillBeRawPtr<ThreadableWebSocketChannelClientW rapper> wrapper) 174 void ThreadableWebSocketChannelClientWrapper::didReceiveMessageErrorCallback(Exe cutionContext* context, PassRefPtrWillBeRawPtr<ThreadableWebSocketChannelClientW rapper> wrapper)
201 { 175 {
202 ASSERT_UNUSED(context, !context); 176 ASSERT_UNUSED(context, !context);
203 if (wrapper->m_client) 177 if (wrapper->m_client)
204 wrapper->m_client->didReceiveMessageError(); 178 wrapper->m_client->didReceiveMessageError();
205 } 179 }
206 180
207 } // namespace WebCore 181 } // namespace WebCore
OLDNEW
« no previous file with comments | « Source/modules/websockets/ThreadableWebSocketChannelClientWrapper.h ('k') | Source/modules/websockets/WebSocket.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698