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

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

Issue 1877283002: ServiceWorker: Remove unused MessageEvent implementation from ServiceWorkerGlobalScope (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: rebase Created 4 years, 8 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/service_worker_version.h" 5 #include "content/browser/service_worker/service_worker_version.h"
6 6
7 #include <stddef.h> 7 #include <stddef.h>
8 8
9 #include <limits> 9 #include <limits>
10 #include <map> 10 #include <map>
(...skipping 96 matching lines...) Expand 10 before | Expand all | Expand 10 after
107 // We've tried to start the worker (and it has succeeded), but 107 // We've tried to start the worker (and it has succeeded), but
108 // it looks it's not running yet. 108 // it looks it's not running yet.
109 NOTREACHED() << "The worker's not running after successful StartWorker"; 109 NOTREACHED() << "The worker's not running after successful StartWorker";
110 if (!error_callback.is_null()) 110 if (!error_callback.is_null())
111 error_callback.Run(SERVICE_WORKER_ERROR_START_WORKER_FAILED); 111 error_callback.Run(SERVICE_WORKER_ERROR_START_WORKER_FAILED);
112 return; 112 return;
113 } 113 }
114 task.Run(); 114 task.Run();
115 } 115 }
116 116
117 void RunErrorMessageCallback(
118 const std::vector<TransferredMessagePort>& sent_message_ports,
119 const ServiceWorkerVersion::StatusCallback& callback,
120 ServiceWorkerStatusCode status) {
121 // Transfering the message ports failed, so destroy the ports.
122 for (const TransferredMessagePort& port : sent_message_ports) {
123 MessagePortService::GetInstance()->ClosePort(port.id);
124 }
125 callback.Run(status);
126 }
127
128 void KillEmbeddedWorkerProcess(int process_id, ResultCode code) { 117 void KillEmbeddedWorkerProcess(int process_id, ResultCode code) {
129 DCHECK_CURRENTLY_ON(BrowserThread::UI); 118 DCHECK_CURRENTLY_ON(BrowserThread::UI);
130 RenderProcessHost* render_process_host = 119 RenderProcessHost* render_process_host =
131 RenderProcessHost::FromID(process_id); 120 RenderProcessHost::FromID(process_id);
132 if (render_process_host->GetHandle() != base::kNullProcessHandle) { 121 if (render_process_host->GetHandle() != base::kNullProcessHandle) {
133 bad_message::ReceivedBadMessage(render_process_host, 122 bad_message::ReceivedBadMessage(render_process_host,
134 bad_message::SERVICE_WORKER_BAD_URL); 123 bad_message::SERVICE_WORKER_BAD_URL);
135 } 124 }
136 } 125 }
137 126
(...skipping 416 matching lines...) Expand 10 before | Expand all | Expand 10 after
554 if (running_status() == RUNNING) { 543 if (running_status() == RUNNING) {
555 DCHECK(start_callbacks_.empty()); 544 DCHECK(start_callbacks_.empty());
556 task.Run(); 545 task.Run();
557 return; 546 return;
558 } 547 }
559 StartWorker(purpose, 548 StartWorker(purpose,
560 base::Bind(&RunTaskAfterStartWorker, weak_factory_.GetWeakPtr(), 549 base::Bind(&RunTaskAfterStartWorker, weak_factory_.GetWeakPtr(),
561 error_callback, task)); 550 error_callback, task));
562 } 551 }
563 552
564 void ServiceWorkerVersion::DispatchMessageEvent(
565 const base::string16& message,
566 const std::vector<TransferredMessagePort>& sent_message_ports,
567 const StatusCallback& callback) {
568 for (const TransferredMessagePort& port : sent_message_ports) {
569 MessagePortService::GetInstance()->HoldMessages(port.id);
570 }
571
572 DispatchMessageEventInternal(message, sent_message_ports, callback);
573 }
574
575 void ServiceWorkerVersion::DispatchMessageEventInternal(
576 const base::string16& message,
577 const std::vector<TransferredMessagePort>& sent_message_ports,
578 const StatusCallback& callback) {
579 OnBeginEvent();
580 if (running_status() != RUNNING) {
581 // Schedule calling this method after starting the worker.
582 StartWorker(ServiceWorkerMetrics::EventType::MESSAGE,
583 base::Bind(&RunTaskAfterStartWorker, weak_factory_.GetWeakPtr(),
584 base::Bind(&RunErrorMessageCallback,
585 sent_message_ports, callback),
586 base::Bind(&self::DispatchMessageEventInternal,
587 weak_factory_.GetWeakPtr(), message,
588 sent_message_ports, callback)));
589 return;
590 }
591
592 // TODO(kinuko): Cleanup this (and corresponding unit test) when message
593 // event becomes extendable, round-trip event. (crbug.com/498596)
594 RestartTick(&idle_time_);
595
596 MessagePortMessageFilter* filter =
597 embedded_worker_->message_port_message_filter();
598 std::vector<int> new_routing_ids;
599 filter->UpdateMessagePortsWithNewRoutes(sent_message_ports, &new_routing_ids);
600 ServiceWorkerStatusCode status =
601 embedded_worker_->SendMessage(ServiceWorkerMsg_MessageToWorker(
602 message, sent_message_ports, new_routing_ids));
603 RunSoon(base::Bind(callback, status));
604 }
605
606 void ServiceWorkerVersion::AddControllee( 553 void ServiceWorkerVersion::AddControllee(
607 ServiceWorkerProviderHost* provider_host) { 554 ServiceWorkerProviderHost* provider_host) {
608 const std::string& uuid = provider_host->client_uuid(); 555 const std::string& uuid = provider_host->client_uuid();
609 CHECK(!provider_host->client_uuid().empty()); 556 CHECK(!provider_host->client_uuid().empty());
610 DCHECK(!ContainsKey(controllee_map_, uuid)); 557 DCHECK(!ContainsKey(controllee_map_, uuid));
611 controllee_map_[uuid] = provider_host; 558 controllee_map_[uuid] = provider_host;
612 // Keep the worker alive a bit longer right after a new controllee is added. 559 // Keep the worker alive a bit longer right after a new controllee is added.
613 RestartTick(&idle_time_); 560 RestartTick(&idle_time_);
614 FOR_EACH_OBSERVER(Listener, listeners_, 561 FOR_EACH_OBSERVER(Listener, listeners_,
615 OnControlleeAdded(this, provider_host)); 562 OnControlleeAdded(this, provider_host));
(...skipping 1114 matching lines...) Expand 10 before | Expand all | Expand 10 after
1730 void ServiceWorkerVersion::OnBeginEvent() { 1677 void ServiceWorkerVersion::OnBeginEvent() {
1731 if (should_exclude_from_uma_ || running_status() != RUNNING || 1678 if (should_exclude_from_uma_ || running_status() != RUNNING ||
1732 idle_time_.is_null()) { 1679 idle_time_.is_null()) {
1733 return; 1680 return;
1734 } 1681 }
1735 ServiceWorkerMetrics::RecordTimeBetweenEvents(base::TimeTicks::Now() - 1682 ServiceWorkerMetrics::RecordTimeBetweenEvents(base::TimeTicks::Now() -
1736 idle_time_); 1683 idle_time_);
1737 } 1684 }
1738 1685
1739 } // namespace content 1686 } // namespace content
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698