| Index: tests/fake_browser_ppapi/fake_url_loader.cc
|
| ===================================================================
|
| --- tests/fake_browser_ppapi/fake_url_loader.cc (revision 6005)
|
| +++ tests/fake_browser_ppapi/fake_url_loader.cc (working copy)
|
| @@ -1,201 +0,0 @@
|
| -// Copyright (c) 2011 The Native Client Authors. All rights reserved.
|
| -// Use of this source code is governed by a BSD-style license that can be
|
| -// found in the LICENSE file.
|
| -
|
| -#include "native_client/tests/fake_browser_ppapi/fake_url_loader.h"
|
| -
|
| -#include <string>
|
| -
|
| -#include "native_client/src/include/nacl_macros.h"
|
| -#include "native_client/src/include/portability.h"
|
| -
|
| -#include "native_client/tests/fake_browser_ppapi/fake_file_ref.h"
|
| -#include "native_client/tests/fake_browser_ppapi/fake_resource.h"
|
| -#include "native_client/tests/fake_browser_ppapi/fake_url_request_info.h"
|
| -#include "native_client/tests/fake_browser_ppapi/fake_url_response_info.h"
|
| -#include "native_client/tests/fake_browser_ppapi/utility.h"
|
| -
|
| -#include "ppapi/c/pp_errors.h"
|
| -#include "ppapi/c/pp_completion_callback.h"
|
| -#include "ppapi/c/pp_resource.h"
|
| -
|
| -using fake_browser_ppapi::DebugPrintf;
|
| -
|
| -namespace fake_browser_ppapi {
|
| -
|
| -std::string g_nacl_ppapi_url_path = NACL_NO_URL;
|
| -std::string g_nacl_ppapi_local_path = NACL_NO_FILE_PATH;
|
| -
|
| -namespace {
|
| -
|
| -PP_Resource Create(PP_Instance instance_id) {
|
| - DebugPrintf("URLLoader::Create: instance_id=%"NACL_PRId32"\n", instance_id);
|
| - URLLoader* loader = new URLLoader(instance_id);
|
| - PP_Resource resource_id = TrackResource(loader);
|
| - DebugPrintf("URLLoader::Create: resource_id=%"NACL_PRId32"\n", resource_id);
|
| - return resource_id;
|
| -}
|
| -
|
| -PP_Bool IsURLLoader(PP_Resource resource_id) {
|
| - DebugPrintf("URLLoader::IsURLLoader: resource_id=%"NACL_PRId32"\n",
|
| - resource_id);
|
| - NACL_UNIMPLEMENTED();
|
| - return PP_FALSE;
|
| -}
|
| -
|
| -int32_t Open(PP_Resource loader_id,
|
| - PP_Resource request_id,
|
| - struct PP_CompletionCallback callback) {
|
| - DebugPrintf("URLLoader::Open: loader_id=%"NACL_PRIu64
|
| - " request_id=%"NACL_PRId32"\n", loader_id, request_id);
|
| -
|
| - URLLoader* loader = GetResource(loader_id)->AsURLLoader();
|
| - URLRequestInfo* request = GetResource(request_id)->AsURLRequestInfo();
|
| - if (loader == NULL || request == NULL)
|
| - return PP_ERROR_BADRESOURCE;
|
| - loader->set_request(request);
|
| -
|
| - // We use stream-as-file mode only, so Open will be aimed at that.
|
| - CHECK(request->stream_to_file());
|
| -
|
| - // We fake-open the url. main.cc must provide the full url for this to work.
|
| - if (g_nacl_ppapi_url_path == NACL_NO_URL)
|
| - return PP_ERROR_FAILED;
|
| -
|
| - // Set up the response.
|
| - URLResponseInfo* response = new URLResponseInfo(request->instance_id());
|
| - if (request->url().find(g_nacl_ppapi_url_path) == 0) {
|
| - // It was already an absolute URL.
|
| - response->set_url(request->url());
|
| - } else {
|
| - response->set_url(g_nacl_ppapi_url_path + request->url());
|
| - }
|
| - response->set_status_code(NACL_HTTP_STATUS_OK);
|
| - loader->set_response(response);
|
| - PP_Resource response_id = TrackResource(response);
|
| - DebugPrintf("URLLoader::Open: response_id=%"NACL_PRId32"\n", response_id);
|
| -
|
| - // Invoke the callback right away to simplify mocking.
|
| - if (callback.func == NULL)
|
| - return PP_ERROR_BADARGUMENT;
|
| - PP_RunCompletionCallback(&callback, PP_OK);
|
| - return PP_OK_COMPLETIONPENDING; // Fake successful async call.
|
| -}
|
| -
|
| -int32_t FollowRedirect(PP_Resource loader_id,
|
| - struct PP_CompletionCallback callback) {
|
| - DebugPrintf("URLLoader::FollowRedirect: loader_id=%"NACL_PRId32"\n",
|
| - loader_id);
|
| - UNREFERENCED_PARAMETER(callback);
|
| - NACL_UNIMPLEMENTED();
|
| - return PP_ERROR_BADRESOURCE;
|
| -}
|
| -
|
| -PP_Bool GetUploadProgress(PP_Resource loader_id,
|
| - int64_t* bytes_sent,
|
| - int64_t* total_bytes_to_be_sent) {
|
| - DebugPrintf("URLLoader::GetUploadProgress: loader_id=%"NACL_PRId32"\n",
|
| - loader_id);
|
| - UNREFERENCED_PARAMETER(bytes_sent);
|
| - UNREFERENCED_PARAMETER(total_bytes_to_be_sent);
|
| - NACL_UNIMPLEMENTED();
|
| - return PP_FALSE;
|
| -}
|
| -
|
| -PP_Bool GetDownloadProgress(PP_Resource loader_id,
|
| - int64_t* bytes_received,
|
| - int64_t* total_bytes_to_be_received) {
|
| - DebugPrintf("URLLoader::GetDownloadProgress: loader_id=%"NACL_PRId32"\n",
|
| - loader_id);
|
| - UNREFERENCED_PARAMETER(bytes_received);
|
| - UNREFERENCED_PARAMETER(total_bytes_to_be_received);
|
| - NACL_UNIMPLEMENTED();
|
| - return PP_FALSE;
|
| -}
|
| -
|
| -PP_Resource GetResponseInfo(PP_Resource loader_id) {
|
| - DebugPrintf("URLLoader::GetResponseInfo: loader_id=%"NACL_PRId32"\n",
|
| - loader_id);
|
| - URLLoader* loader = GetResource(loader_id)->AsURLLoader();
|
| - if (loader == NULL)
|
| - return PP_ERROR_BADRESOURCE;
|
| -
|
| - URLResponseInfo* response = loader->response();
|
| - CHECK(response != NULL);
|
| - return response->resource_id();
|
| -}
|
| -
|
| -int32_t ReadResponseBody(PP_Resource loader_id,
|
| - void* buffer,
|
| - int32_t bytes_to_read,
|
| - struct PP_CompletionCallback callback) {
|
| - DebugPrintf("URLLoader::ReadResponseBody: loader_id=%"NACL_PRId32"\n",
|
| - loader_id);
|
| - UNREFERENCED_PARAMETER(buffer);
|
| - UNREFERENCED_PARAMETER(bytes_to_read);
|
| - UNREFERENCED_PARAMETER(callback);
|
| - NACL_UNIMPLEMENTED();
|
| - return PP_ERROR_BADRESOURCE;
|
| -}
|
| -
|
| -int32_t FinishStreamingToFile(PP_Resource loader_id,
|
| - struct PP_CompletionCallback callback) {
|
| - DebugPrintf("URLLoader::FinishStreamingToFile: loader_id=%"NACL_PRId32"\n",
|
| - loader_id);
|
| -
|
| - URLLoader* loader = GetResource(loader_id)->AsURLLoader();
|
| - if (loader == NULL)
|
| - return PP_ERROR_BADRESOURCE;
|
| - URLRequestInfo* request = loader->request();
|
| - URLResponseInfo* response = loader->response();
|
| - CHECK(request != NULL && response != NULL);
|
| -
|
| - // We fake-stream the file. main.cc must provide the path for this to work.
|
| - // Note that will only work if embed uses a relative nexe url.
|
| - // TODO(polina): generalize this to work with full urls as well?
|
| - if (g_nacl_ppapi_local_path == NACL_NO_FILE_PATH)
|
| - return PP_ERROR_FAILED;
|
| - std::string local_file =
|
| - g_nacl_ppapi_local_path + "/" +
|
| - request->url().substr(g_nacl_ppapi_url_path.size() + 1);
|
| -
|
| - // Set up the the file object corresponding to the response body.
|
| - FileRef* file_ref = new FileRef(local_file);
|
| - response->set_body_as_file_ref(file_ref);
|
| - PP_Resource file_ref_id = TrackResource(file_ref);
|
| - DebugPrintf("URLLoader::FinishStreamingToFile: file_ref_id=%"NACL_PRId32"\n",
|
| - file_ref_id);
|
| -
|
| - // Call the callback right away to simplify mocking.
|
| - if (callback.func == NULL)
|
| - return PP_ERROR_BADARGUMENT;
|
| - PP_RunCompletionCallback(&callback, PP_OK);
|
| - return PP_OK_COMPLETIONPENDING; // Fake successful async call.
|
| -}
|
| -
|
| -void Close(PP_Resource loader_id) {
|
| - DebugPrintf("URLLoader::ReadResponseBody: loader_id=%"NACL_PRId32"\n",
|
| - loader_id);
|
| - NACL_UNIMPLEMENTED();
|
| -}
|
| -
|
| -} // namespace
|
| -
|
| -
|
| -const PPB_URLLoader* URLLoader::GetInterface() {
|
| - static const PPB_URLLoader url_loader_interface = {
|
| - Create,
|
| - IsURLLoader,
|
| - Open,
|
| - FollowRedirect,
|
| - GetUploadProgress,
|
| - GetDownloadProgress,
|
| - GetResponseInfo,
|
| - ReadResponseBody,
|
| - FinishStreamingToFile,
|
| - Close
|
| - };
|
| - return &url_loader_interface;
|
| -}
|
| -
|
| -} // namespace fake_browser_ppapi
|
|
|