| Index: ppapi/proxy/ppb_url_request_info_proxy.cc
|
| ===================================================================
|
| --- ppapi/proxy/ppb_url_request_info_proxy.cc (revision 71973)
|
| +++ ppapi/proxy/ppb_url_request_info_proxy.cc (working copy)
|
| @@ -1,4 +1,4 @@
|
| -// Copyright (c) 2010 The Chromium Authors. All rights reserved.
|
| +// Copyright (c) 2011 The Chromium Authors. All rights reserved.
|
| // Use of this source code is governed by a BSD-style license that can be
|
| // found in the LICENSE file.
|
|
|
| @@ -14,7 +14,7 @@
|
|
|
| class URLRequestInfo : public PluginResource {
|
| public:
|
| - URLRequestInfo() {}
|
| + URLRequestInfo(PP_Instance instance) : PluginResource(instance) {}
|
| virtual ~URLRequestInfo() {}
|
|
|
| // Resource overrides.
|
| @@ -26,14 +26,26 @@
|
|
|
| namespace {
|
|
|
| +// Returns the dispatcher associated with the given URLRequestInfo, or NULL if
|
| +// none exists.
|
| +PluginDispatcher* DispatcherFromURLRequestInfo(PP_Resource resource) {
|
| + URLRequestInfo* object = PluginResource::GetAs<URLRequestInfo>(resource);
|
| + if (!object)
|
| + return NULL;
|
| + return PluginDispatcher::GetForInstance(object->instance());
|
| +}
|
| +
|
| PP_Resource Create(PP_Instance instance) {
|
| + PluginDispatcher* dispatcher = PluginDispatcher::GetForInstance(instance);
|
| + if (!dispatcher)
|
| + return 0;
|
| +
|
| PP_Resource result;
|
| - PluginDispatcher::Get()->Send(new PpapiHostMsg_PPBURLRequestInfo_Create(
|
| + dispatcher->Send(new PpapiHostMsg_PPBURLRequestInfo_Create(
|
| INTERFACE_ID_PPB_URL_REQUEST_INFO, instance, &result));
|
| if (result) {
|
| - linked_ptr<URLRequestInfo> object(new URLRequestInfo);
|
| - PluginDispatcher::Get()->plugin_resource_tracker()->AddResource(
|
| - result, object);
|
| + linked_ptr<URLRequestInfo> object(new URLRequestInfo(instance));
|
| + PluginResourceTracker::GetInstance()->AddResource(result, object);
|
| }
|
| return result;
|
| }
|
| @@ -46,7 +58,10 @@
|
| PP_Bool SetProperty(PP_Resource request_id,
|
| PP_URLRequestProperty property,
|
| PP_Var var) {
|
| - Dispatcher* dispatcher = PluginDispatcher::Get();
|
| + PluginDispatcher* dispatcher = DispatcherFromURLRequestInfo(request_id);
|
| + if (!dispatcher)
|
| + return PP_FALSE;
|
| +
|
| dispatcher->Send(new PpapiHostMsg_PPBURLRequestInfo_SetProperty(
|
| INTERFACE_ID_PPB_URL_REQUEST_INFO, request_id,
|
| static_cast<int32_t>(property),
|
| @@ -59,11 +74,13 @@
|
|
|
| PP_Bool AppendDataToBody(PP_Resource request_id,
|
| const char* data, uint32_t len) {
|
| - PluginDispatcher::Get()->Send(
|
| - new PpapiHostMsg_PPBURLRequestInfo_AppendDataToBody(
|
| - INTERFACE_ID_PPB_URL_REQUEST_INFO, request_id,
|
| - std::string(data, len)));
|
| + PluginDispatcher* dispatcher = DispatcherFromURLRequestInfo(request_id);
|
| + if (!dispatcher)
|
| + return PP_FALSE;
|
|
|
| + dispatcher->Send(new PpapiHostMsg_PPBURLRequestInfo_AppendDataToBody(
|
| + INTERFACE_ID_PPB_URL_REQUEST_INFO, request_id, std::string(data, len)));
|
| +
|
| // TODO(brettw) do some validation. We should be able to tell on the plugin
|
| // side whether the request will succeed or fail in the renderer.
|
| return PP_TRUE;
|
| @@ -74,11 +91,14 @@
|
| int64_t start_offset,
|
| int64_t number_of_bytes,
|
| PP_Time expected_last_modified_time) {
|
| - PluginDispatcher::Get()->Send(
|
| - new PpapiHostMsg_PPBURLRequestInfo_AppendFileToBody(
|
| - INTERFACE_ID_PPB_URL_REQUEST_INFO, request_id, file_ref_id,
|
| - start_offset, number_of_bytes, expected_last_modified_time));
|
| + PluginDispatcher* dispatcher = DispatcherFromURLRequestInfo(request_id);
|
| + if (!dispatcher)
|
| + return PP_FALSE;
|
|
|
| + dispatcher->Send(new PpapiHostMsg_PPBURLRequestInfo_AppendFileToBody(
|
| + INTERFACE_ID_PPB_URL_REQUEST_INFO, request_id, file_ref_id,
|
| + start_offset, number_of_bytes, expected_last_modified_time));
|
| +
|
| // TODO(brettw) do some validation. We should be able to tell on the plugin
|
| // side whether the request will succeed or fail in the renderer.
|
| return PP_TRUE;
|
|
|