| OLD | NEW |
| 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 "extensions/browser/process_manager.h" | 5 #include "extensions/browser/process_manager.h" |
| 6 | 6 |
| 7 #include <vector> | 7 #include <vector> |
| 8 | 8 |
| 9 #include "base/bind.h" | 9 #include "base/bind.h" |
| 10 #include "base/logging.h" | 10 #include "base/logging.h" |
| (...skipping 535 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 546 extension_id, | 546 extension_id, |
| 547 sequence_id), | 547 sequence_id), |
| 548 base::TimeDelta::FromMilliseconds(g_event_page_suspending_time_msec)); | 548 base::TimeDelta::FromMilliseconds(g_event_page_suspending_time_msec)); |
| 549 } | 549 } |
| 550 | 550 |
| 551 void ProcessManager::OnNetworkRequestStarted( | 551 void ProcessManager::OnNetworkRequestStarted( |
| 552 content::RenderFrameHost* render_frame_host, | 552 content::RenderFrameHost* render_frame_host, |
| 553 uint64 request_id) { | 553 uint64 request_id) { |
| 554 ExtensionHost* host = GetBackgroundHostForExtension( | 554 ExtensionHost* host = GetBackgroundHostForExtension( |
| 555 GetExtensionID(render_frame_host)); | 555 GetExtensionID(render_frame_host)); |
| 556 auto result = pending_network_requests_.insert(request_id); |
| 557 DCHECK(result.second) << "Duplicate network request IDs."; |
| 556 if (host && IsFrameInExtensionHost(host, render_frame_host)) { | 558 if (host && IsFrameInExtensionHost(host, render_frame_host)) { |
| 557 IncrementLazyKeepaliveCount(host->extension()); | 559 IncrementLazyKeepaliveCount(host->extension()); |
| 558 host->OnNetworkRequestStarted(request_id); | 560 host->OnNetworkRequestStarted(request_id); |
| 559 } | 561 } |
| 560 } | 562 } |
| 561 | 563 |
| 562 void ProcessManager::OnNetworkRequestDone( | 564 void ProcessManager::OnNetworkRequestDone( |
| 563 content::RenderFrameHost* render_frame_host, | 565 content::RenderFrameHost* render_frame_host, |
| 564 uint64 request_id) { | 566 uint64 request_id) { |
| 565 ExtensionHost* host = GetBackgroundHostForExtension( | 567 ExtensionHost* host = GetBackgroundHostForExtension( |
| 566 GetExtensionID(render_frame_host)); | 568 GetExtensionID(render_frame_host)); |
| 567 if (host && IsFrameInExtensionHost(host, render_frame_host)) { | 569 if (host && IsFrameInExtensionHost(host, render_frame_host)) { |
| 568 host->OnNetworkRequestDone(request_id); | 570 host->OnNetworkRequestDone(request_id); |
| 569 DecrementLazyKeepaliveCount(host->extension()); | 571 if (pending_network_requests_.erase(request_id)) |
| 572 DecrementLazyKeepaliveCount(host->extension()); |
| 570 } | 573 } |
| 571 } | 574 } |
| 572 | 575 |
| 573 void ProcessManager::CancelSuspend(const Extension* extension) { | 576 void ProcessManager::CancelSuspend(const Extension* extension) { |
| 574 bool& is_closing = background_page_data_[extension->id()].is_closing; | 577 bool& is_closing = background_page_data_[extension->id()].is_closing; |
| 575 ExtensionHost* host = GetBackgroundHostForExtension(extension->id()); | 578 ExtensionHost* host = GetBackgroundHostForExtension(extension->id()); |
| 576 if (host && is_closing) { | 579 if (host && is_closing) { |
| 577 is_closing = false; | 580 is_closing = false; |
| 578 host->render_process_host()->Send( | 581 host->render_process_host()->Send( |
| 579 new ExtensionMsg_CancelSuspend(extension->id())); | 582 new ExtensionMsg_CancelSuspend(extension->id())); |
| (...skipping 378 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 958 if (extension && !IncognitoInfo::IsSplitMode(extension)) { | 961 if (extension && !IncognitoInfo::IsSplitMode(extension)) { |
| 959 BrowserContext* original_context = | 962 BrowserContext* original_context = |
| 960 ExtensionsBrowserClient::Get()->GetOriginalContext(browser_context()); | 963 ExtensionsBrowserClient::Get()->GetOriginalContext(browser_context()); |
| 961 return ProcessManager::Get(original_context)->GetSiteInstanceForURL(url); | 964 return ProcessManager::Get(original_context)->GetSiteInstanceForURL(url); |
| 962 } | 965 } |
| 963 | 966 |
| 964 return ProcessManager::GetSiteInstanceForURL(url); | 967 return ProcessManager::GetSiteInstanceForURL(url); |
| 965 } | 968 } |
| 966 | 969 |
| 967 } // namespace extensions | 970 } // namespace extensions |
| OLD | NEW |