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

Side by Side Diff: content/browser/service_worker/embedded_worker_instance.cc

Issue 1710903002: Revert of service worker: use 200 OK for update requests even in the no update case (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 4 years, 10 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 2013 The Chromium Authors. All rights reserved. 1 // Copyright 2013 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 "content/browser/service_worker/embedded_worker_instance.h" 5 #include "content/browser/service_worker/embedded_worker_instance.h"
6 6
7 #include <utility> 7 #include <utility>
8 8
9 #include "base/bind_helpers.h" 9 #include "base/bind_helpers.h"
10 #include "base/macros.h" 10 #include "base/macros.h"
(...skipping 310 matching lines...) Expand 10 before | Expand all | Expand 10 after
321 EmbeddedWorkerInstance* instance_; 321 EmbeddedWorkerInstance* instance_;
322 322
323 StatusCallback start_callback_; 323 StatusCallback start_callback_;
324 ProcessAllocationState state_; 324 ProcessAllocationState state_;
325 325
326 base::WeakPtrFactory<StartTask> weak_factory_; 326 base::WeakPtrFactory<StartTask> weak_factory_;
327 327
328 DISALLOW_COPY_AND_ASSIGN(StartTask); 328 DISALLOW_COPY_AND_ASSIGN(StartTask);
329 }; 329 };
330 330
331 bool EmbeddedWorkerInstance::Listener::OnMessageReceived(
332 const IPC::Message& message) {
333 return false;
334 }
335
336 EmbeddedWorkerInstance::~EmbeddedWorkerInstance() { 331 EmbeddedWorkerInstance::~EmbeddedWorkerInstance() {
337 DCHECK(status_ == STOPPING || status_ == STOPPED) << status_; 332 DCHECK(status_ == STOPPING || status_ == STOPPED) << status_;
338 devtools_proxy_.reset(); 333 devtools_proxy_.reset();
339 if (registry_->GetWorker(embedded_worker_id_)) 334 if (registry_->GetWorker(embedded_worker_id_))
340 registry_->RemoveWorker(process_id(), embedded_worker_id_); 335 registry_->RemoveWorker(process_id(), embedded_worker_id_);
341 process_handle_.reset(); 336 process_handle_.reset();
342 } 337 }
343 338
344 void EmbeddedWorkerInstance::Start(int64_t service_worker_version_id, 339 void EmbeddedWorkerInstance::Start(int64_t service_worker_version_id,
345 const GURL& scope, 340 const GURL& scope,
346 const GURL& script_url, 341 const GURL& script_url,
347 const StatusCallback& callback, 342 const StatusCallback& callback) {
348 bool pause_after_download) {
349 if (!context_) { 343 if (!context_) {
350 callback.Run(SERVICE_WORKER_ERROR_ABORT); 344 callback.Run(SERVICE_WORKER_ERROR_ABORT);
351 // |this| may be destroyed by the callback. 345 // |this| may be destroyed by the callback.
352 return; 346 return;
353 } 347 }
354 DCHECK(status_ == STOPPED); 348 DCHECK(status_ == STOPPED);
355 349
356 // TODO(horo): If we will see crashes here, we have to find the root cause of 350 // TODO(horo): If we will see crashes here, we have to find the root cause of
357 // the invalid version ID. Otherwise change CHECK to DCHECK. 351 // the invalid version ID. Otherwise change CHECK to DCHECK.
358 CHECK_NE(service_worker_version_id, kInvalidServiceWorkerVersionId); 352 CHECK_NE(service_worker_version_id, kInvalidServiceWorkerVersionId);
359 start_timing_ = base::TimeTicks::Now(); 353 start_timing_ = base::TimeTicks::Now();
360 status_ = STARTING; 354 status_ = STARTING;
361 starting_phase_ = ALLOCATING_PROCESS; 355 starting_phase_ = ALLOCATING_PROCESS;
362 network_accessed_for_script_ = false; 356 network_accessed_for_script_ = false;
363 service_registry_.reset(new ServiceRegistryImpl()); 357 service_registry_.reset(new ServiceRegistryImpl());
364 FOR_EACH_OBSERVER(Listener, listener_list_, OnStarting()); 358 FOR_EACH_OBSERVER(Listener, listener_list_, OnStarting());
365 359
366 scoped_ptr<EmbeddedWorkerMsg_StartWorker_Params> params( 360 scoped_ptr<EmbeddedWorkerMsg_StartWorker_Params> params(
367 new EmbeddedWorkerMsg_StartWorker_Params()); 361 new EmbeddedWorkerMsg_StartWorker_Params());
368 params->embedded_worker_id = embedded_worker_id_; 362 params->embedded_worker_id = embedded_worker_id_;
369 params->service_worker_version_id = service_worker_version_id; 363 params->service_worker_version_id = service_worker_version_id;
370 params->scope = scope; 364 params->scope = scope;
371 params->script_url = script_url; 365 params->script_url = script_url;
372 params->worker_devtools_agent_route_id = MSG_ROUTING_NONE; 366 params->worker_devtools_agent_route_id = MSG_ROUTING_NONE;
373 params->wait_for_debugger = false; 367 params->wait_for_debugger = false;
374 params->pause_after_download = pause_after_download;
375 params->v8_cache_options = GetV8CacheOptions(); 368 params->v8_cache_options = GetV8CacheOptions();
376 369
377 inflight_start_task_.reset(new StartTask(this)); 370 inflight_start_task_.reset(new StartTask(this));
378 inflight_start_task_->Start(std::move(params), callback); 371 inflight_start_task_->Start(std::move(params), callback);
379 } 372 }
380 373
381 ServiceWorkerStatusCode EmbeddedWorkerInstance::Stop() { 374 ServiceWorkerStatusCode EmbeddedWorkerInstance::Stop() {
382 DCHECK(status_ == STARTING || status_ == RUNNING) << status_; 375 DCHECK(status_ == STARTING || status_ == RUNNING) << status_;
383 376
384 // Abort an inflight start task. 377 // Abort an inflight start task.
(...skipping 27 matching lines...) Expand all
412 ServiceWorkerStatusCode EmbeddedWorkerInstance::SendMessage( 405 ServiceWorkerStatusCode EmbeddedWorkerInstance::SendMessage(
413 const IPC::Message& message) { 406 const IPC::Message& message) {
414 DCHECK_NE(kInvalidEmbeddedWorkerThreadId, thread_id_); 407 DCHECK_NE(kInvalidEmbeddedWorkerThreadId, thread_id_);
415 if (status_ != RUNNING && status_ != STARTING) 408 if (status_ != RUNNING && status_ != STARTING)
416 return SERVICE_WORKER_ERROR_IPC_FAILED; 409 return SERVICE_WORKER_ERROR_IPC_FAILED;
417 return registry_->Send(process_id(), 410 return registry_->Send(process_id(),
418 new EmbeddedWorkerContextMsg_MessageToWorker( 411 new EmbeddedWorkerContextMsg_MessageToWorker(
419 thread_id_, embedded_worker_id_, message)); 412 thread_id_, embedded_worker_id_, message));
420 } 413 }
421 414
422 void EmbeddedWorkerInstance::ResumeAfterDownload() {
423 if (process_id() == ChildProcessHost::kInvalidUniqueID || status_ != STARTING)
424 return;
425 registry_->Send(process_id(), new EmbeddedWorkerMsg_ResumeAfterDownload(
426 embedded_worker_id_));
427 }
428
429 ServiceRegistry* EmbeddedWorkerInstance::GetServiceRegistry() { 415 ServiceRegistry* EmbeddedWorkerInstance::GetServiceRegistry() {
430 DCHECK(status_ == STARTING || status_ == RUNNING) << status_; 416 DCHECK(status_ == STARTING || status_ == RUNNING) << status_;
431 return service_registry_.get(); 417 return service_registry_.get();
432 } 418 }
433 419
434 EmbeddedWorkerInstance::EmbeddedWorkerInstance( 420 EmbeddedWorkerInstance::EmbeddedWorkerInstance(
435 base::WeakPtr<ServiceWorkerContextCore> context, 421 base::WeakPtr<ServiceWorkerContextCore> context,
436 int embedded_worker_id) 422 int embedded_worker_id)
437 : context_(context), 423 : context_(context),
438 registry_(context->embedded_worker_registry()), 424 registry_(context->embedded_worker_registry()),
(...skipping 278 matching lines...) Expand 10 before | Expand all | Expand 10 after
717 case SCRIPT_READ_FINISHED: 703 case SCRIPT_READ_FINISHED:
718 return "Script read finished"; 704 return "Script read finished";
719 case STARTING_PHASE_MAX_VALUE: 705 case STARTING_PHASE_MAX_VALUE:
720 NOTREACHED(); 706 NOTREACHED();
721 } 707 }
722 NOTREACHED() << phase; 708 NOTREACHED() << phase;
723 return std::string(); 709 return std::string();
724 } 710 }
725 711
726 } // namespace content 712 } // namespace content
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698