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

Side by Side Diff: native_client_sdk/src/tests/nacl_io_test/fake_ppapi/fake_pepper_interface_url_loader.cc

Issue 2156503002: [NaCl SDK] Expose Google Drive to nacl_io. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 4 years, 4 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 // Copyright 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 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 "fake_ppapi/fake_pepper_interface_url_loader.h" 5 #include "fake_ppapi/fake_pepper_interface_url_loader.h"
6 6
7 #include <string.h> 7 #include <string.h>
8 #include <strings.h> 8 #include <strings.h>
9 9
10 #include <algorithm> 10 #include <algorithm>
11 #include <sstream> 11 #include <sstream>
12 12
13 #include "gtest/gtest.h" 13 #include "gtest/gtest.h"
14 14
15 #include "nacl_io/osinttypes.h" 15 #include "nacl_io/osinttypes.h"
16 16
17 #include "fake_ppapi/fake_filesystem.h"
18 #include "fake_ppapi/fake_util.h"
19
17 namespace { 20 namespace {
18 21
19 bool GetHeaderValue(const std::string& headers, 22 bool GetHeaderValue(const std::string& headers,
20 const std::string& key, 23 const std::string& key,
21 std::string* out_value) { 24 std::string* out_value) {
22 out_value->clear(); 25 out_value->clear();
23 26
24 size_t offset = 0; 27 size_t offset = 0;
25 while (offset != std::string::npos) { 28 while (offset != std::string::npos) {
26 // Find the next colon; this separates the key from the value. 29 // Find the next colon; this separates the key from the value.
(...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after
69 EXPECT_TRUE(manager != NULL); 72 EXPECT_TRUE(manager != NULL);
70 if (response != 0) 73 if (response != 0)
71 manager->Release(response); 74 manager->Release(response);
72 delete server; 75 delete server;
73 } 76 }
74 77
75 static const char* classname() { return "FakeURLLoaderResource"; } 78 static const char* classname() { return "FakeURLLoaderResource"; }
76 79
77 FakeResourceManager* manager; // Weak reference. 80 FakeResourceManager* manager; // Weak reference.
78 FakeURLLoaderServer* server; 81 FakeURLLoaderServer* server;
79 FakeURLLoaderEntity* entity; // Weak reference. 82 FakeURLLoaderEntity* entity; // Weak reference.
80 PP_Resource response; 83 PP_Resource response;
81 off_t read_offset; 84 off_t read_offset;
82 off_t read_end; 85 off_t read_end;
83 }; 86 };
84 87
85 class FakeURLRequestInfoResource : public FakeResource {
86 public:
87 FakeURLRequestInfoResource() {}
88 static const char* classname() { return "FakeURLRequestInfoResource"; }
89
90 std::string url;
91 std::string method;
92 std::string headers;
93 };
94
95 class FakeURLResponseInfoResource : public FakeResource {
96 public:
97 FakeURLResponseInfoResource() : status_code(0) {}
98 static const char* classname() { return "FakeURLResponseInfoResource"; }
99
100 int status_code;
101 std::string url;
102 std::string headers;
103 };
104
105 // Helper function to call the completion callback if it is defined (an
106 // asynchronous call), or return the result directly if it isn't (a synchronous
107 // call).
108 //
109 // Use like this:
110 // if (<some error condition>)
111 // return RunCompletionCallback(callback, PP_ERROR_FUBAR);
112 //
113 // /* Everything worked OK */
114 // return RunCompletionCallback(callback, PP_OK);
115 int32_t RunCompletionCallback(PP_CompletionCallback* callback, int32_t result) {
116 if (callback->func) {
117 PP_RunCompletionCallback(callback, result);
118 return PP_OK_COMPLETIONPENDING;
119 }
120 return result;
121 }
122
123 void HandleContentLength(FakeURLLoaderResource* loader, 88 void HandleContentLength(FakeURLLoaderResource* loader,
124 FakeURLResponseInfoResource* response, 89 FakeURLResponseInfoResource* response,
125 FakeURLLoaderEntity* entity) { 90 FakeURLLoaderEntity* entity) {
126 off_t content_length = entity->size(); 91 off_t content_length = entity->size();
127 if (!loader->server->send_content_length()) 92 if (!loader->server->send_content_length())
128 return; 93 return;
129 94
130 std::ostringstream ss; 95 std::ostringstream ss;
131 ss << "Content-Length: " << content_length << "\n"; 96 ss << "Content-Length: " << content_length << "\n";
132 response->headers += ss.str(); 97 response->headers += ss.str();
(...skipping 14 matching lines...) Expand all
147 112
148 // We don't support all range requests, just bytes=<num>-<num> 113 // We don't support all range requests, just bytes=<num>-<num>
149 off_t lo; 114 off_t lo;
150 off_t hi; 115 off_t hi;
151 if (sscanf(range.c_str(), "bytes=%" SCNi64 "-%" SCNi64, &lo, &hi) != 2) { 116 if (sscanf(range.c_str(), "bytes=%" SCNi64 "-%" SCNi64, &lo, &hi) != 2) {
152 // Couldn't parse the range value. 117 // Couldn't parse the range value.
153 return; 118 return;
154 } 119 }
155 120
156 off_t content_length = entity->size(); 121 off_t content_length = entity->size();
157 if (lo > content_length) { 122 if (lo >= content_length) {
158 // Trying to start reading past the end of the entity is 123 // Trying to start reading past the end of the entity is
159 // unsatisfiable. 124 // unsatisfiable.
160 response->status_code = 416; // Request range not satisfiable. 125 response->status_code = 416; // Request range not satisfiable.
161 return; 126 return;
162 } 127 }
163 128
164 // Clamp the hi value to the content length. 129 // Clamp the hi value to the content length.
165 if (hi >= content_length) 130 if (hi >= content_length)
166 hi = content_length - 1; 131 hi = content_length - 1;
167 132
(...skipping 13 matching lines...) Expand all
181 ss << "Content-Range: bytes " << lo << "-" << hi << "/" << content_length 146 ss << "Content-Range: bytes " << lo << "-" << hi << "/" << content_length
182 << "\n"; 147 << "\n";
183 response->headers += ss.str(); 148 response->headers += ss.str();
184 149
185 response->status_code = 206; // Partial content 150 response->status_code = 206; // Partial content
186 } 151 }
187 152
188 } // namespace 153 } // namespace
189 154
190 FakeURLLoaderEntity::FakeURLLoaderEntity(const std::string& body) 155 FakeURLLoaderEntity::FakeURLLoaderEntity(const std::string& body)
191 : body_(body), size_(body_.size()), repeat_(false) { 156 : body_(body), size_(body_.size()), repeat_(false) {}
192 }
193 157
194 // Rather than specifying the entire file, specify a string to repeat, and the 158 // Rather than specifying the entire file, specify a string to repeat, and the
195 // full length. This lets us test extremely large files without having to store 159 // full length. This lets us test extremely large files without having to store
196 // them in memory. 160 // them in memory.
197 FakeURLLoaderEntity::FakeURLLoaderEntity(const std::string& to_repeat, 161 FakeURLLoaderEntity::FakeURLLoaderEntity(const std::string& to_repeat,
198 off_t size) 162 off_t size)
199 : body_(to_repeat), size_(size), repeat_(true) { 163 : body_(to_repeat), size_(size), repeat_(true) {}
200 }
201 164
202 size_t FakeURLLoaderEntity::Read(void* buffer, size_t count, off_t offset) { 165 size_t FakeURLLoaderEntity::Read(void* buffer, size_t count, off_t offset) {
203 off_t max_read_count = 166 off_t max_read_count =
204 std::max<off_t>(std::min<off_t>(size_ - offset, 0xffffffff), 0); 167 std::max<off_t>(std::min<off_t>(size_ - offset, 0xffffffff), 0);
205 size_t bytes_to_read = std::min(count, static_cast<size_t>(max_read_count)); 168 size_t bytes_to_read = std::min(count, static_cast<size_t>(max_read_count));
206 169
207 if (repeat_) { 170 if (repeat_) {
208 size_t src_size = body_.size(); 171 size_t src_size = body_.size();
209 char* dst = static_cast<char*>(buffer); 172 char* dst = static_cast<char*>(buffer);
210 const char* src = body_.data(); 173 const char* src = body_.data();
(...skipping 24 matching lines...) Expand all
235 memcpy(buffer, &body_.data()[offset], bytes_to_read); 198 memcpy(buffer, &body_.data()[offset], bytes_to_read);
236 } 199 }
237 200
238 return bytes_to_read; 201 return bytes_to_read;
239 } 202 }
240 203
241 FakeURLLoaderServer::FakeURLLoaderServer() 204 FakeURLLoaderServer::FakeURLLoaderServer()
242 : max_read_size_(0), 205 : max_read_size_(0),
243 send_content_length_(false), 206 send_content_length_(false),
244 allow_partial_(false), 207 allow_partial_(false),
245 allow_head_(true) { 208 allow_head_(true) {}
246 }
247 209
248 void FakeURLLoaderServer::Clear() { 210 void FakeURLLoaderServer::Clear() {
249 entity_map_.clear(); 211 entity_map_.clear();
250 } 212 }
251 213
252 bool FakeURLLoaderServer::AddEntity(const std::string& url, 214 bool FakeURLLoaderServer::AddEntity(const std::string& url,
253 const std::string& body, 215 const std::string& body,
254 FakeURLLoaderEntity** out_entity) { 216 FakeURLLoaderEntity** out_entity) {
255 EntityMap::iterator iter = entity_map_.find(url); 217 EntityMap::iterator iter = entity_map_.find(url);
256 if (iter != entity_map_.end()) { 218 if (iter != entity_map_.end()) {
(...skipping 60 matching lines...) Expand 10 before | Expand all | Expand 10 after
317 279
318 int FakeURLLoaderServer::GetError(const std::string& url) { 280 int FakeURLLoaderServer::GetError(const std::string& url) {
319 ErrorMap::iterator iter = error_map_.find(url); 281 ErrorMap::iterator iter = error_map_.find(url);
320 if (iter == error_map_.end()) 282 if (iter == error_map_.end())
321 return 0; 283 return 0;
322 return iter->second; 284 return iter->second;
323 } 285 }
324 286
325 FakeURLLoaderInterface::FakeURLLoaderInterface( 287 FakeURLLoaderInterface::FakeURLLoaderInterface(
326 FakeCoreInterface* core_interface) 288 FakeCoreInterface* core_interface)
327 : core_interface_(core_interface) { 289 : core_interface_(core_interface) {}
328 }
329 290
330 PP_Resource FakeURLLoaderInterface::Create(PP_Instance instance) { 291 PP_Resource FakeURLLoaderInterface::Create(PP_Instance instance) {
331 FakeInstanceResource* instance_resource = 292 FakeInstanceResource* instance_resource =
332 core_interface_->resource_manager()->Get<FakeInstanceResource>(instance); 293 core_interface_->resource_manager()->Get<FakeInstanceResource>(instance);
333 if (instance_resource == NULL) 294 if (instance_resource == NULL)
334 return PP_ERROR_BADRESOURCE; 295 return PP_ERROR_BADRESOURCE;
335 296
336 FakeURLLoaderResource* loader_resource = new FakeURLLoaderResource; 297 FakeURLLoaderResource* loader_resource = new FakeURLLoaderResource;
337 loader_resource->manager = core_interface_->resource_manager(); 298 loader_resource->manager = core_interface_->resource_manager();
338 loader_resource->server = 299 loader_resource->server =
339 new FakeURLLoaderServer(*instance_resource->server_template); 300 new FakeURLLoaderServer(*instance_resource->server_template);
340 301
341 return CREATE_RESOURCE(core_interface_->resource_manager(), 302 return CREATE_RESOURCE(core_interface_->resource_manager(),
342 FakeURLLoaderResource, 303 FakeURLLoaderResource, loader_resource);
343 loader_resource);
344 } 304 }
345 305
346 int32_t FakeURLLoaderInterface::Open(PP_Resource loader, 306 int32_t FakeURLLoaderInterface::Open(PP_Resource loader,
347 PP_Resource request, 307 PP_Resource request,
348 PP_CompletionCallback callback) { 308 PP_CompletionCallback callback) {
349 FakeURLLoaderResource* loader_resource = 309 FakeURLLoaderResource* loader_resource =
350 core_interface_->resource_manager()->Get<FakeURLLoaderResource>(loader); 310 core_interface_->resource_manager()->Get<FakeURLLoaderResource>(loader);
351 if (loader_resource == NULL) 311 if (loader_resource == NULL)
352 return PP_ERROR_BADRESOURCE; 312 return PP_ERROR_BADRESOURCE;
353 313
354 FakeURLRequestInfoResource* request_resource = 314 FakeURLRequestInfoResource* request_resource =
355 core_interface_->resource_manager()->Get<FakeURLRequestInfoResource>( 315 core_interface_->resource_manager()->Get<FakeURLRequestInfoResource>(
356 request); 316 request);
357 if (request_resource == NULL) 317 if (request_resource == NULL)
358 return PP_ERROR_BADRESOURCE; 318 return PP_ERROR_BADRESOURCE;
359 319
360 // Create a response resource. 320 // Create a response resource.
361 FakeURLResponseInfoResource* response_resource = 321 FakeURLResponseInfoResource* response_resource =
362 new FakeURLResponseInfoResource; 322 new FakeURLResponseInfoResource;
363 loader_resource->response = 323 loader_resource->response =
364 CREATE_RESOURCE(core_interface_->resource_manager(), 324 CREATE_RESOURCE(core_interface_->resource_manager(),
365 FakeURLResponseInfoResource, 325 FakeURLResponseInfoResource, response_resource);
366 response_resource);
367 326
368 loader_resource->entity = NULL; 327 loader_resource->entity = NULL;
369 loader_resource->read_offset = 0; 328 loader_resource->read_offset = 0;
370 loader_resource->read_end = 0; 329 loader_resource->read_end = 0;
371 330
372 // Get the URL from the request info. 331 // Get the URL from the request info.
373 std::string url = request_resource->url; 332 std::string url = request_resource->url;
374 std::string method = request_resource->method; 333 std::string method = request_resource->method;
375 334
376 response_resource->url = url; 335 response_resource->url = url;
(...skipping 63 matching lines...) Expand 10 before | Expand all | Expand 10 after
440 if (server_max_read_size != 0) 399 if (server_max_read_size != 0)
441 bytes_to_read = std::min<int32_t>(bytes_to_read, server_max_read_size); 400 bytes_to_read = std::min<int32_t>(bytes_to_read, server_max_read_size);
442 401
443 size_t bytes_read = loader_resource->entity->Read( 402 size_t bytes_read = loader_resource->entity->Read(
444 buffer, bytes_to_read, loader_resource->read_offset); 403 buffer, bytes_to_read, loader_resource->read_offset);
445 loader_resource->read_offset += bytes_read; 404 loader_resource->read_offset += bytes_read;
446 405
447 return RunCompletionCallback(&callback, bytes_read); 406 return RunCompletionCallback(&callback, bytes_read);
448 } 407 }
449 408
409 int32_t FakeURLLoaderInterface::FinishStreamingToFile(
410 PP_Resource loader,
411 PP_CompletionCallback callback) {
412 return PP_ERROR_NOTSUPPORTED;
413 }
414
450 void FakeURLLoaderInterface::Close(PP_Resource loader) { 415 void FakeURLLoaderInterface::Close(PP_Resource loader) {
451 FakeURLLoaderResource* loader_resource = 416 FakeURLLoaderResource* loader_resource =
452 core_interface_->resource_manager()->Get<FakeURLLoaderResource>(loader); 417 core_interface_->resource_manager()->Get<FakeURLLoaderResource>(loader);
453 if (loader_resource == NULL) 418 if (loader_resource == NULL)
454 return; 419 return;
455 420
456 core_interface_->resource_manager()->Release(loader_resource->response); 421 core_interface_->resource_manager()->Release(loader_resource->response);
457 422
458 loader_resource->server = NULL; 423 loader_resource->server = NULL;
459 loader_resource->entity = NULL; 424 loader_resource->entity = NULL;
460 loader_resource->response = 0; 425 loader_resource->response = 0;
461 loader_resource->read_offset = 0; 426 loader_resource->read_offset = 0;
462 } 427 }
463 428
464 FakeURLRequestInfoInterface::FakeURLRequestInfoInterface( 429 FakeURLRequestInfoInterface::FakeURLRequestInfoInterface(
465 FakeCoreInterface* core_interface, 430 FakeCoreInterface* core_interface,
466 FakeVarInterface* var_interface) 431 FakeVarInterface* var_interface)
467 : core_interface_(core_interface), var_interface_(var_interface) { 432 : core_interface_(core_interface), var_interface_(var_interface) {}
468 }
469 433
470 PP_Resource FakeURLRequestInfoInterface::Create(PP_Instance instance) { 434 PP_Resource FakeURLRequestInfoInterface::Create(PP_Instance instance) {
471 FakeInstanceResource* instance_resource =
472 core_interface_->resource_manager()->Get<FakeInstanceResource>(instance);
473 if (instance_resource == NULL)
474 return PP_ERROR_BADRESOURCE;
475
476 return CREATE_RESOURCE(core_interface_->resource_manager(), 435 return CREATE_RESOURCE(core_interface_->resource_manager(),
477 FakeURLRequestInfoResource, 436 FakeURLRequestInfoResource,
478 new FakeURLRequestInfoResource); 437 new FakeURLRequestInfoResource);
479 } 438 }
480 439
481 PP_Bool FakeURLRequestInfoInterface::SetProperty(PP_Resource request, 440 PP_Bool FakeURLRequestInfoInterface::SetProperty(PP_Resource request,
482 PP_URLRequestProperty property, 441 PP_URLRequestProperty property,
483 PP_Var value) { 442 PP_Var value) {
484 FakeURLRequestInfoResource* request_resource = 443 FakeURLRequestInfoResource* request_resource =
485 core_interface_->resource_manager()->Get<FakeURLRequestInfoResource>( 444 core_interface_->resource_manager()->Get<FakeURLRequestInfoResource>(
(...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after
532 return PP_FALSE; 491 return PP_FALSE;
533 // Throw the value away for now. TODO(binji): add tests for this. 492 // Throw the value away for now. TODO(binji): add tests for this.
534 return PP_TRUE; 493 return PP_TRUE;
535 } 494 }
536 case PP_URLREQUESTPROPERTY_ALLOWCREDENTIALS: { 495 case PP_URLREQUESTPROPERTY_ALLOWCREDENTIALS: {
537 if (value.type != PP_VARTYPE_BOOL) 496 if (value.type != PP_VARTYPE_BOOL)
538 return PP_FALSE; 497 return PP_FALSE;
539 // Throw the value away for now. TODO(binji): add tests for this. 498 // Throw the value away for now. TODO(binji): add tests for this.
540 return PP_TRUE; 499 return PP_TRUE;
541 } 500 }
501 case PP_URLREQUESTPROPERTY_STREAMTOFILE: {
502 if (value.type != PP_VARTYPE_BOOL)
503 return PP_FALSE;
504 // Throw the value away for now. TODO: add tests for this.
chanpatorikku 2016/08/07 02:41:03 Another TODO, FYI.
505 return PP_TRUE;
506 }
542 default: 507 default:
543 EXPECT_TRUE(false) << "Unimplemented property " << property 508 EXPECT_TRUE(false) << "Unimplemented property " << property
544 << " in " 509 << " in "
545 "FakeURLRequestInfoInterface::SetProperty"; 510 "FakeURLRequestInfoInterface::SetProperty";
546 return PP_FALSE; 511 return PP_FALSE;
547 } 512 }
548 } 513 }
549 514
515 PP_Bool FakeURLRequestInfoInterface::AppendDataToBody(PP_Resource request,
516 const void* data,
517 uint32_t len) {
518 FakeURLRequestInfoResource* request_resource =
519 core_interface_->resource_manager()->Get<FakeURLRequestInfoResource>(
520 request);
521 if (request_resource == NULL)
522 return PP_FALSE;
523
524 request_resource->body = std::string((char*)data, len);
525
526 return PP_TRUE;
527 }
528
550 FakeURLResponseInfoInterface::FakeURLResponseInfoInterface( 529 FakeURLResponseInfoInterface::FakeURLResponseInfoInterface(
551 FakeCoreInterface* core_interface, 530 FakeCoreInterface* core_interface,
552 FakeVarInterface* var_interface) 531 FakeVarInterface* var_interface,
553 : core_interface_(core_interface), var_interface_(var_interface) { 532 FakeFileRefInterface* file_ref_interface)
533 : core_interface_(core_interface),
534 var_interface_(var_interface),
535 file_ref_interface_(file_ref_interface) {
536 FakeFileSystemResource* file_system_resource = new FakeFileSystemResource;
537 file_system_resource->filesystem = new FakeFilesystem();
538
539 filesystem_resource_ =
540 CREATE_RESOURCE(core_interface_->resource_manager(),
541 FakeFileSystemResource, file_system_resource);
542 }
543
544 FakeURLResponseInfoInterface::~FakeURLResponseInfoInterface() {
545 core_interface_->ReleaseResource(filesystem_resource_);
554 } 546 }
555 547
556 PP_Var FakeURLResponseInfoInterface::GetProperty( 548 PP_Var FakeURLResponseInfoInterface::GetProperty(
557 PP_Resource response, 549 PP_Resource response,
558 PP_URLResponseProperty property) { 550 PP_URLResponseProperty property) {
559 FakeURLResponseInfoResource* response_resource = 551 FakeURLResponseInfoResource* response_resource =
560 core_interface_->resource_manager()->Get<FakeURLResponseInfoResource>( 552 core_interface_->resource_manager()->Get<FakeURLResponseInfoResource>(
561 response); 553 response);
562 if (response_resource == NULL) 554 if (response_resource == NULL)
563 return PP_Var(); 555 return PP_Var();
(...skipping 10 matching lines...) Expand all
574 return var_interface_->VarFromUtf8(response_resource->headers.data(), 566 return var_interface_->VarFromUtf8(response_resource->headers.data(),
575 response_resource->headers.size()); 567 response_resource->headers.size());
576 default: 568 default:
577 EXPECT_TRUE(false) << "Unimplemented property " << property 569 EXPECT_TRUE(false) << "Unimplemented property " << property
578 << " in " 570 << " in "
579 "FakeURLResponseInfoInterface::GetProperty"; 571 "FakeURLResponseInfoInterface::GetProperty";
580 return PP_Var(); 572 return PP_Var();
581 } 573 }
582 } 574 }
583 575
576 PP_Resource FakeURLResponseInfoInterface::GetBodyAsFileRef(
577 PP_Resource response) {
578 FakeURLResponseInfoResource* response_resource =
579 core_interface_->resource_manager()->Get<FakeURLResponseInfoResource>(
580 response);
581 if (response_resource == NULL)
582 return PP_ERROR_BADRESOURCE;
583
584 FakeFileSystemResource* file_system_resource =
585 core_interface_->resource_manager()->Get<FakeFileSystemResource>(
586 filesystem_resource_);
587
588 if (file_system_resource == NULL)
589 return PP_ERROR_BADRESOURCE;
590
591 char path_buffer[1024];
592 int char_written = sprintf(path_buffer, "%i", response);
593 if (char_written < 0) {
594 return PP_ERROR_FAILED;
595 }
596
597 FakeNode* fake_node;
598 if (!file_system_resource->filesystem->AddFile(
599 std::string(path_buffer), response_resource->body, &fake_node)) {
600 return PP_ERROR_FAILED;
601 }
602
603 file_system_resource->opened = true;
604
605 return file_ref_interface_->Create(filesystem_resource_, path_buffer);
606 }
607
584 FakePepperInterfaceURLLoader::FakePepperInterfaceURLLoader() 608 FakePepperInterfaceURLLoader::FakePepperInterfaceURLLoader()
585 : core_interface_(&resource_manager_), 609 : core_interface_(&resource_manager_),
586 var_interface_(&var_manager_), 610 var_interface_(&var_manager_),
611 file_ref_interface_(&core_interface_, &var_interface_),
587 url_loader_interface_(&core_interface_), 612 url_loader_interface_(&core_interface_),
588 url_request_info_interface_(&core_interface_, &var_interface_), 613 url_request_info_interface_(&core_interface_, &var_interface_),
589 url_response_info_interface_(&core_interface_, &var_interface_) { 614 url_response_info_interface_(&core_interface_,
615 &var_interface_,
616 &file_ref_interface_) {
590 FakeInstanceResource* instance_resource = new FakeInstanceResource; 617 FakeInstanceResource* instance_resource = new FakeInstanceResource;
591 instance_resource->server_template = &server_template_; 618 instance_resource->server_template = &server_template_;
592 instance_ = CREATE_RESOURCE(core_interface_.resource_manager(), 619 instance_ = CREATE_RESOURCE(core_interface_.resource_manager(),
593 FakeInstanceResource, 620 FakeInstanceResource, instance_resource);
594 instance_resource);
595 } 621 }
596 622
597 FakePepperInterfaceURLLoader::~FakePepperInterfaceURLLoader() { 623 FakePepperInterfaceURLLoader::~FakePepperInterfaceURLLoader() {
598 core_interface_.ReleaseResource(instance_); 624 core_interface_.ReleaseResource(instance_);
599 } 625 }
600 626
601 nacl_io::CoreInterface* FakePepperInterfaceURLLoader::GetCoreInterface() { 627 nacl_io::CoreInterface* FakePepperInterfaceURLLoader::GetCoreInterface() {
602 return &core_interface_; 628 return &core_interface_;
603 } 629 }
604 630
605 nacl_io::VarInterface* FakePepperInterfaceURLLoader::GetVarInterface() { 631 nacl_io::VarInterface* FakePepperInterfaceURLLoader::GetVarInterface() {
606 return &var_interface_; 632 return &var_interface_;
607 } 633 }
608 634
635 nacl_io::FileRefInterface* FakePepperInterfaceURLLoader::GetFileRefInterface() {
636 return &file_ref_interface_;
637 }
638
609 nacl_io::URLLoaderInterface* 639 nacl_io::URLLoaderInterface*
610 FakePepperInterfaceURLLoader::GetURLLoaderInterface() { 640 FakePepperInterfaceURLLoader::GetURLLoaderInterface() {
611 return &url_loader_interface_; 641 return &url_loader_interface_;
612 } 642 }
613 643
614 nacl_io::URLRequestInfoInterface* 644 nacl_io::URLRequestInfoInterface*
615 FakePepperInterfaceURLLoader::GetURLRequestInfoInterface() { 645 FakePepperInterfaceURLLoader::GetURLRequestInfoInterface() {
616 return &url_request_info_interface_; 646 return &url_request_info_interface_;
617 } 647 }
618 648
619 nacl_io::URLResponseInfoInterface* 649 nacl_io::URLResponseInfoInterface*
620 FakePepperInterfaceURLLoader::GetURLResponseInfoInterface() { 650 FakePepperInterfaceURLLoader::GetURLResponseInfoInterface() {
621 return &url_response_info_interface_; 651 return &url_response_info_interface_;
622 } 652 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698