OLD | NEW |
---|---|
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 #include "chrome/browser/extensions/webstore_installer.h" | 5 #include "chrome/browser/extensions/webstore_installer.h" |
6 | 6 |
7 #include <stddef.h> | 7 #include <stddef.h> |
8 #include <stdint.h> | 8 #include <stdint.h> |
9 #include <limits> | 9 #include <limits> |
10 #include <set> | 10 #include <set> |
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
45 #include "content/public/browser/download_save_info.h" | 45 #include "content/public/browser/download_save_info.h" |
46 #include "content/public/browser/download_url_parameters.h" | 46 #include "content/public/browser/download_url_parameters.h" |
47 #include "content/public/browser/navigation_controller.h" | 47 #include "content/public/browser/navigation_controller.h" |
48 #include "content/public/browser/navigation_entry.h" | 48 #include "content/public/browser/navigation_entry.h" |
49 #include "content/public/browser/notification_details.h" | 49 #include "content/public/browser/notification_details.h" |
50 #include "content/public/browser/notification_service.h" | 50 #include "content/public/browser/notification_service.h" |
51 #include "content/public/browser/notification_source.h" | 51 #include "content/public/browser/notification_source.h" |
52 #include "content/public/browser/render_frame_host.h" | 52 #include "content/public/browser/render_frame_host.h" |
53 #include "content/public/browser/render_process_host.h" | 53 #include "content/public/browser/render_process_host.h" |
54 #include "content/public/browser/render_view_host.h" | 54 #include "content/public/browser/render_view_host.h" |
55 #include "content/public/browser/storage_partition.h" | |
55 #include "content/public/browser/web_contents.h" | 56 #include "content/public/browser/web_contents.h" |
56 #include "extensions/browser/extension_registry.h" | 57 #include "extensions/browser/extension_registry.h" |
57 #include "extensions/browser/extension_system.h" | 58 #include "extensions/browser/extension_system.h" |
58 #include "extensions/browser/install/crx_install_error.h" | 59 #include "extensions/browser/install/crx_install_error.h" |
59 #include "extensions/common/extension.h" | 60 #include "extensions/common/extension.h" |
60 #include "extensions/common/extension_urls.h" | 61 #include "extensions/common/extension_urls.h" |
61 #include "extensions/common/manifest_constants.h" | 62 #include "extensions/common/manifest_constants.h" |
62 #include "extensions/common/manifest_handlers/shared_module_info.h" | 63 #include "extensions/common/manifest_handlers/shared_module_info.h" |
63 #include "net/base/escape.h" | 64 #include "net/base/escape.h" |
64 #include "ui/base/l10n/l10n_util.h" | 65 #include "ui/base/l10n/l10n_util.h" |
(...skipping 593 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
658 return; | 659 return; |
659 } | 660 } |
660 | 661 |
661 // The download url for the given extension is contained in |download_url_|. | 662 // The download url for the given extension is contained in |download_url_|. |
662 // We will navigate the current tab to this url to start the download. The | 663 // We will navigate the current tab to this url to start the download. The |
663 // download system will then pass the crx to the CrxInstaller. | 664 // download system will then pass the crx to the CrxInstaller. |
664 RecordDownloadSource(DOWNLOAD_INITIATED_BY_WEBSTORE_INSTALLER); | 665 RecordDownloadSource(DOWNLOAD_INITIATED_BY_WEBSTORE_INSTALLER); |
665 int render_process_host_id = contents->GetRenderProcessHost()->GetID(); | 666 int render_process_host_id = contents->GetRenderProcessHost()->GetID(); |
666 int render_view_host_routing_id = | 667 int render_view_host_routing_id = |
667 contents->GetRenderViewHost()->GetRoutingID(); | 668 contents->GetRenderViewHost()->GetRoutingID(); |
668 content::ResourceContext* resource_context = | 669 |
669 controller.GetBrowserContext()->GetResourceContext(); | 670 content::RenderFrameHost* render_frame_host = contents->GetMainFrame(); |
671 content::StoragePartition* storage_partition = | |
672 BrowserContext::GetStoragePartition(profile_, | |
673 render_frame_host->GetSiteInstance()); | |
670 std::unique_ptr<DownloadUrlParameters> params(new DownloadUrlParameters( | 674 std::unique_ptr<DownloadUrlParameters> params(new DownloadUrlParameters( |
671 download_url_, render_process_host_id, render_view_host_routing_id, | 675 download_url_, render_process_host_id, render_view_host_routing_id, |
672 contents->GetMainFrame()->GetRoutingID(), resource_context)); | 676 contents->GetMainFrame()->GetRoutingID(), |
Charlie Reis
2016/05/05 21:43:22
nit: Can use |render_frame_host| here.
asanka
2016/05/07 00:24:45
Done.
| |
677 storage_partition->GetURLRequestContext())); | |
673 params->set_file_path(file); | 678 params->set_file_path(file); |
674 if (controller.GetVisibleEntry()) | 679 if (controller.GetVisibleEntry()) |
675 params->set_referrer(content::Referrer::SanitizeForRequest( | 680 params->set_referrer(content::Referrer::SanitizeForRequest( |
676 download_url_, content::Referrer(controller.GetVisibleEntry()->GetURL(), | 681 download_url_, content::Referrer(controller.GetVisibleEntry()->GetURL(), |
677 blink::WebReferrerPolicyDefault))); | 682 blink::WebReferrerPolicyDefault))); |
678 params->set_callback(base::Bind(&WebstoreInstaller::OnDownloadStarted, | 683 params->set_callback(base::Bind(&WebstoreInstaller::OnDownloadStarted, |
679 this, | 684 this, |
680 extension_id)); | 685 extension_id)); |
681 download_manager->DownloadUrl(std::move(params)); | 686 download_manager->DownloadUrl(std::move(params)); |
682 } | 687 } |
(...skipping 106 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
789 1, | 794 1, |
790 kMaxSizeKb, | 795 kMaxSizeKb, |
791 kNumBuckets); | 796 kNumBuckets); |
792 } | 797 } |
793 UMA_HISTOGRAM_BOOLEAN( | 798 UMA_HISTOGRAM_BOOLEAN( |
794 "Extensions.WebstoreDownload.InterruptTotalSizeUnknown", | 799 "Extensions.WebstoreDownload.InterruptTotalSizeUnknown", |
795 total_bytes <= 0); | 800 total_bytes <= 0); |
796 } | 801 } |
797 | 802 |
798 } // namespace extensions | 803 } // namespace extensions |
OLD | NEW |