Skip to content

Commit 22a876a

Browse files
fix: Fixed linking error for StreamsPrivateAPI::SendExecuteMimeTypeHandlerEvent with chrome.lib
1 parent 83cdc5d commit 22a876a

File tree

6 files changed

+31
-8
lines changed

6 files changed

+31
-8
lines changed

chromium_src/BUILD.gn

+2
Original file line numberDiff line numberDiff line change
@@ -318,6 +318,8 @@ static_library("chrome") {
318318
"//chrome/renderer/extensions/extension_hooks_delegate.h",
319319
"//chrome/renderer/extensions/tabs_hooks_delegate.cc",
320320
"//chrome/renderer/extensions/tabs_hooks_delegate.h",
321+
"//electron/shell/browser/extensions/api/streams_private/streams_private_api.cc",
322+
"//electron/shell/browser/extensions/api/streams_private/streams_private_api.h",
321323
]
322324

323325
if (enable_pdf_viewer) {

filenames.gni

+2-2
Original file line numberDiff line numberDiff line change
@@ -736,8 +736,8 @@ filenames = {
736736
"shell/browser/extensions/api/resources_private/resources_private_api.h",
737737
"shell/browser/extensions/api/runtime/electron_runtime_api_delegate.cc",
738738
"shell/browser/extensions/api/runtime/electron_runtime_api_delegate.h",
739-
"shell/browser/extensions/api/streams_private/streams_private_api.cc",
740-
"shell/browser/extensions/api/streams_private/streams_private_api.h",
739+
# "shell/browser/extensions/api/streams_private/streams_private_api.cc",
740+
# "shell/browser/extensions/api/streams_private/streams_private_api.h",
741741
"shell/browser/extensions/api/tabs/tabs_api.cc",
742742
"shell/browser/extensions/api/tabs/tabs_api.h",
743743
"shell/browser/extensions/electron_browser_context_keyed_service_factories.cc",

shell/browser/electron_browser_context.cc

+8
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,7 @@
3636
#include "services/network/public/cpp/features.h"
3737
#include "services/network/public/cpp/wrapper_shared_url_loader_factory.h"
3838
#include "services/network/public/mojom/network_context.mojom.h"
39+
#include "shell/browser/api/electron_api_web_contents.h"
3940
#include "shell/browser/cookie_change_notifier.h"
4041
#include "shell/browser/electron_browser_client.h"
4142
#include "shell/browser/electron_browser_main_parts.h"
@@ -392,6 +393,13 @@ ElectronBrowserContext::GetStorageNotificationService() {
392393
return nullptr;
393394
}
394395

396+
int ElectronBrowserContext::GetWebContentsTabId(content::WebContents* web_contents) {
397+
auto* api_contents = electron::api::WebContents::From(web_contents);
398+
if (api_contents)
399+
return api_contents->ID();
400+
return -1;
401+
}
402+
395403
ResolveProxyHelper* ElectronBrowserContext::GetResolveProxyHelper() {
396404
if (!resolve_proxy_helper_) {
397405
resolve_proxy_helper_ = base::MakeRefCounted<ResolveProxyHelper>(this);

shell/browser/electron_browser_context.h

+10-2
Original file line numberDiff line numberDiff line change
@@ -13,11 +13,12 @@
1313
#include "chrome/browser/predictors/preconnect_manager.h"
1414
#include "content/public/browser/browser_context.h"
1515
#include "content/public/browser/resource_context.h"
16+
#include "content/public/browser/web_contents.h"
1617
#include "electron/buildflags/buildflags.h"
1718
#include "mojo/public/cpp/bindings/remote.h"
1819
#include "services/network/public/mojom/network_context.mojom.h"
1920
#include "services/network/public/mojom/url_loader_factory.mojom.h"
20-
#include "shell/browser/media/media_device_id_salt.h"
21+
#include "electron/shell/browser/media/media_device_id_salt.h"
2122

2223
class PrefService;
2324
class ValueMapPrefStore;
@@ -46,7 +47,12 @@ class ResolveProxyHelper;
4647
class WebViewManager;
4748
class ProtocolRegistry;
4849

49-
class ElectronBrowserContext : public content::BrowserContext {
50+
class ElectronBrowserContextBase : public content::BrowserContext {
51+
public:
52+
virtual int GetWebContentsTabId(content::WebContents* web_contents) = 0;
53+
};
54+
55+
class ElectronBrowserContext : public ElectronBrowserContextBase {
5056
public:
5157
// disable copy
5258
ElectronBrowserContext(const ElectronBrowserContext&) = delete;
@@ -116,6 +122,8 @@ class ElectronBrowserContext : public content::BrowserContext {
116122
override;
117123
content::StorageNotificationService* GetStorageNotificationService() override;
118124

125+
int GetWebContentsTabId(content::WebContents* web_contents) override;
126+
119127
CookieChangeNotifier* cookie_change_notifier() const {
120128
return cookie_change_notifier_.get();
121129
}

shell/browser/extensions/api/streams_private/streams_private_api.cc

+8-3
Original file line numberDiff line numberDiff line change
@@ -10,15 +10,15 @@
1010
#include "content/public/browser/browser_thread.h"
1111
#include "content/public/browser/render_frame_host.h"
1212
#include "content/public/browser/web_contents.h"
13+
#include "electron/shell/browser/electron_browser_context.h"
1314
#include "extensions/browser/extension_registry.h"
1415
#include "extensions/browser/guest_view/mime_handler_view/mime_handler_stream_manager.h"
1516
#include "extensions/browser/guest_view/mime_handler_view/mime_handler_view_guest.h"
1617
#include "extensions/common/manifest_handlers/mime_types_handler.h"
17-
#include "shell/browser/api/electron_api_web_contents.h"
18+
// #include "shell/browser/api/electron_api_web_contents.h"
1819

1920
namespace extensions {
2021

21-
#if 0
2222
void StreamsPrivateAPI::SendExecuteMimeTypeHandlerEvent(
2323
const std::string& extension_id,
2424
const std::string& stream_id,
@@ -52,15 +52,20 @@ void StreamsPrivateAPI::SendExecuteMimeTypeHandlerEvent(
5252
extensions::Extension::GetBaseURLFromExtensionId(extension_id).spec() +
5353
handler->handler_url());
5454
int tab_id = -1;
55+
#if 0
5556
auto* api_contents = electron::api::WebContents::From(web_contents);
5657
if (api_contents)
5758
tab_id = api_contents->ID();
59+
#else
60+
auto* electron_browser_context =
61+
static_cast<electron::ElectronBrowserContextBase*>(browser_context);
62+
tab_id = electron_browser_context->GetWebContentsTabId(web_contents);
63+
#endif
5864
auto stream_container = std::make_unique<extensions::StreamContainer>(
5965
tab_id, embedded, handler_url, extension_id,
6066
std::move(transferrable_loader), original_url);
6167
extensions::MimeHandlerStreamManager::Get(browser_context)
6268
->AddStream(stream_id, std::move(stream_container), frame_tree_node_id);
6369
}
64-
#endif // 0
6570

6671
} // namespace extensions

shell/browser/extensions/api/streams_private/streams_private_api.h

+1-1
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ class StreamsPrivateAPI {
2626
bool embedded,
2727
int frame_tree_node_id,
2828
blink::mojom::TransferrableURLLoaderPtr transferrable_loader,
29-
const GURL& original_url) {}
29+
const GURL& original_url);
3030
};
3131

3232
} // namespace extensions

0 commit comments

Comments
 (0)