146d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)// Copyright 2014 The Chromium Authors. All rights reserved.
246d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be
346d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)// found in the LICENSE file.
446d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)
546d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)#include "mojo/services/network/network_service_impl.h"
646d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)
75f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)#include "mojo/public/cpp/application/application_connection.h"
85f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)#include "mojo/services/network/cookie_store_impl.h"
946d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)#include "mojo/services/network/url_loader_impl.h"
101320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci#include "mojo/services/network/web_socket_impl.h"
1146d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)
1246d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)namespace mojo {
1346d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)
14116680a4aac90f2aa7413d9095a592090648e557Ben MurdochNetworkServiceImpl::NetworkServiceImpl(ApplicationConnection* connection,
15116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch                                       NetworkContext* context)
165f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)    : context_(context),
175f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)      origin_(GURL(connection->GetRemoteApplicationURL()).GetOrigin()) {
1846d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)}
1946d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)
2046d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)NetworkServiceImpl::~NetworkServiceImpl() {
2146d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)}
2246d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)
23116680a4aac90f2aa7413d9095a592090648e557Ben Murdochvoid NetworkServiceImpl::CreateURLLoader(InterfaceRequest<URLLoader> loader) {
245f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)  // TODO(darin): Plumb origin_. Use for CORS.
2546d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)  BindToRequest(new URLLoaderImpl(context_), &loader);
2646d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)}
2746d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)
285f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)void NetworkServiceImpl::GetCookieStore(InterfaceRequest<CookieStore> store) {
295f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)  BindToRequest(new CookieStoreImpl(context_, origin_), &store);
305f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)}
315f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)
321320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tuccivoid NetworkServiceImpl::CreateWebSocket(InterfaceRequest<WebSocket> socket) {
331320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci  BindToRequest(new WebSocketImpl(context_), &socket);
341320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci}
351320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci
3646d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)}  // namespace mojo
37