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

Side by Side Diff: content/browser/renderer_host/render_process_host_impl.h

Issue 2342523002: Forcibly clear worker ref counts on shutdown. (Closed)
Patch Set: Created 4 years, 3 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 (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 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 #ifndef CONTENT_BROWSER_RENDERER_HOST_RENDER_PROCESS_HOST_IMPL_H_ 5 #ifndef CONTENT_BROWSER_RENDERER_HOST_RENDER_PROCESS_HOST_IMPL_H_
6 #define CONTENT_BROWSER_RENDERER_HOST_RENDER_PROCESS_HOST_IMPL_H_ 6 #define CONTENT_BROWSER_RENDERER_HOST_RENDER_PROCESS_HOST_IMPL_H_
7 7
8 #include <stddef.h> 8 #include <stddef.h>
9 #include <stdint.h> 9 #include <stdint.h>
10 10
(...skipping 155 matching lines...) Expand 10 before | Expand all | Expand 10 after
166 void NotifyTimezoneChange(const std::string& timezone) override; 166 void NotifyTimezoneChange(const std::string& timezone) override;
167 shell::InterfaceProvider* GetRemoteInterfaces() override; 167 shell::InterfaceProvider* GetRemoteInterfaces() override;
168 std::unique_ptr<base::SharedPersistentMemoryAllocator> TakeMetricsAllocator() 168 std::unique_ptr<base::SharedPersistentMemoryAllocator> TakeMetricsAllocator()
169 override; 169 override;
170 const base::TimeTicks& GetInitTimeForNavigationMetrics() const override; 170 const base::TimeTicks& GetInitTimeForNavigationMetrics() const override;
171 #if defined(ENABLE_BROWSER_CDMS) 171 #if defined(ENABLE_BROWSER_CDMS)
172 scoped_refptr<media::MediaKeys> GetCdm(int render_frame_id, 172 scoped_refptr<media::MediaKeys> GetCdm(int render_frame_id,
173 int cdm_id) const override; 173 int cdm_id) const override;
174 #endif 174 #endif
175 bool IsProcessBackgrounded() const override; 175 bool IsProcessBackgrounded() const override;
176
jam 2016/09/14 17:10:49 nit: undo this blank line (we don't add empty line
falken 2016/09/21 08:59:43 Who knew! Done.
176 void IncrementServiceWorkerRefCount() override; 177 void IncrementServiceWorkerRefCount() override;
177 void DecrementServiceWorkerRefCount() override; 178 void DecrementServiceWorkerRefCount() override;
178 void IncrementSharedWorkerRefCount() override; 179 void IncrementSharedWorkerRefCount() override;
179 void DecrementSharedWorkerRefCount() override; 180 void DecrementSharedWorkerRefCount() override;
181 void ForceReleaseWorkerRefCounts() override;
182 bool IsWorkerRefCountDisabled() override;
183
180 void PurgeAndSuspend() override; 184 void PurgeAndSuspend() override;
181 185
182 // IPC::Sender via RenderProcessHost. 186 // IPC::Sender via RenderProcessHost.
183 bool Send(IPC::Message* msg) override; 187 bool Send(IPC::Message* msg) override;
184 188
185 // IPC::Listener via RenderProcessHost. 189 // IPC::Listener via RenderProcessHost.
186 bool OnMessageReceived(const IPC::Message& msg) override; 190 bool OnMessageReceived(const IPC::Message& msg) override;
187 void OnChannelConnected(int32_t peer_pid) override; 191 void OnChannelConnected(int32_t peer_pid) override;
188 void OnChannelError() override; 192 void OnChannelError() override;
189 void OnBadMessageReceived(const IPC::Message& message) override; 193 void OnBadMessageReceived(const IPC::Message& message) override;
(...skipping 229 matching lines...) Expand 10 before | Expand all | Expand 10 after
419 int connection_filter_id_ = MojoShellConnection::kInvalidConnectionFilterId; 423 int connection_filter_id_ = MojoShellConnection::kInvalidConnectionFilterId;
420 scoped_refptr<ConnectionFilterController> connection_filter_controller_; 424 scoped_refptr<ConnectionFilterController> connection_filter_controller_;
421 shell::mojom::ServicePtr test_service_; 425 shell::mojom::ServicePtr test_service_;
422 #if defined(OS_ANDROID) 426 #if defined(OS_ANDROID)
423 std::unique_ptr<InterfaceRegistryAndroid> interface_registry_android_; 427 std::unique_ptr<InterfaceRegistryAndroid> interface_registry_android_;
424 #endif 428 #endif
425 429
426 size_t service_worker_ref_count_; 430 size_t service_worker_ref_count_;
427 size_t shared_worker_ref_count_; 431 size_t shared_worker_ref_count_;
428 432
433 // Set in ForceReleaseWorkerRefCounts. When true, worker ref counts must no
434 // longer be modified.
435 bool is_worker_ref_count_disabled_;
436
429 // The registered IPC listener objects. When this list is empty, we should 437 // The registered IPC listener objects. When this list is empty, we should
430 // delete ourselves. 438 // delete ourselves.
431 IDMap<IPC::Listener> listeners_; 439 IDMap<IPC::Listener> listeners_;
432 440
433 // The count of currently visible widgets. Since the host can be a container 441 // The count of currently visible widgets. Since the host can be a container
434 // for multiple widgets, it uses this count to determine when it should be 442 // for multiple widgets, it uses this count to determine when it should be
435 // backgrounded. 443 // backgrounded.
436 int32_t visible_widgets_; 444 int32_t visible_widgets_;
437 445
438 // Whether this process currently has backgrounded priority. Tracked so that 446 // Whether this process currently has backgrounded priority. Tracked so that
(...skipping 142 matching lines...) Expand 10 before | Expand all | Expand 10 after
581 instance_weak_factory_; 589 instance_weak_factory_;
582 590
583 base::WeakPtrFactory<RenderProcessHostImpl> weak_factory_; 591 base::WeakPtrFactory<RenderProcessHostImpl> weak_factory_;
584 592
585 DISALLOW_COPY_AND_ASSIGN(RenderProcessHostImpl); 593 DISALLOW_COPY_AND_ASSIGN(RenderProcessHostImpl);
586 }; 594 };
587 595
588 } // namespace content 596 } // namespace content
589 597
590 #endif // CONTENT_BROWSER_RENDERER_HOST_RENDER_PROCESS_HOST_IMPL_H_ 598 #endif // CONTENT_BROWSER_RENDERER_HOST_RENDER_PROCESS_HOST_IMPL_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698