Skip to content

Commit

Permalink
Merge pull request #12417 from brave/ios-wallet-provider-js
Browse files Browse the repository at this point in the history
  • Loading branch information
kylehickinson authored Feb 26, 2022
2 parents 400c1e7 + 340fde9 commit d03c7da
Show file tree
Hide file tree
Showing 6 changed files with 81 additions and 28 deletions.
41 changes: 22 additions & 19 deletions components/resources/BUILD.gn
Original file line number Diff line number Diff line change
Expand Up @@ -56,19 +56,22 @@ grit("static_resources") {
}

repack("resources") {
deps = [
":static_resources",
"//brave/components/brave_adblock_ui:generated_resources",
"//brave/components/cosmetic_filters/resources/data:generated_resources",
]
deps = [ ":static_resources" ]
sources = [ "$root_gen_dir/components/brave_components_static.pak" ]

sources = [
"$root_gen_dir/brave/components/brave_adblock/resources/brave_adblock_generated.pak",
"$root_gen_dir/brave/components/cosmetic_filters/resources/cosmetic_filters_generated.pak",
"$root_gen_dir/components/brave_components_static.pak",
]
if (!is_ios) {
deps += [
"//brave/components/brave_adblock_ui:generated_resources",
"//brave/components/cosmetic_filters/resources/data:generated_resources",
]

sources += [
"$root_gen_dir/brave/components/brave_adblock/resources/brave_adblock_generated.pak",
"$root_gen_dir/brave/components/cosmetic_filters/resources/cosmetic_filters_generated.pak",
]
}

if (!is_android) {
if (!is_android && !is_ios) {
deps += [
"//brave/components/brave_new_tab_ui:generated_resources",
"//brave/components/brave_shields/resources/panel:brave_shields_panel_generated",
Expand All @@ -91,16 +94,16 @@ repack("resources") {
]
}

if (!is_ios) {
if (!is_android) {
deps += [ "//brave/components/brave_wallet_ui:resources" ]
sources += [ "$root_gen_dir/brave/components/brave_wallet/resources/brave_wallet.pak" ]
}

deps += [ "//brave/components/brave_wallet/resources:ethereum_provider_generated_resources" ]
sources += [ "$root_gen_dir/brave/components/brave_wallet/resources/brave_wallet_script_generated.pak" ]
if (!is_android && !is_ios) {
deps += [ "//brave/components/brave_wallet_ui:resources" ]
sources += [
"$root_gen_dir/brave/components/brave_wallet/resources/brave_wallet.pak",
]
}

deps += [ "//brave/components/brave_wallet/resources:ethereum_provider_generated_resources" ]
sources += [ "$root_gen_dir/brave/components/brave_wallet/resources/brave_wallet_script_generated.pak" ]

if (enable_brave_vpn) {
deps += [
"//brave/components/brave_vpn/resources/panel:brave_vpn_panel_generated",
Expand Down
3 changes: 3 additions & 0 deletions ios/app/BUILD.gn
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,9 @@ source_set("app") {
"//brave/components/brave_component_updater/browser",
"//brave/components/brave_sync:constants",
"//brave/components/brave_wallet/browser",
"//brave/components/brave_wallet/resources:ethereum_provider_generated_resources",
"//brave/components/skus/browser",
"//brave/ios/app/resources",
"//brave/ios/browser",
"//brave/ios/browser/api/ads",
"//brave/ios/browser/api/bookmarks",
Expand Down Expand Up @@ -67,6 +69,7 @@ source_set("app") {
"//ios/public/provider/chrome/browser/ui_utils:ui_utils_api",
"//ios/web/public/init",
"//ios/web/public/webui",
"//ui/base",

# Use the provider API controlled by args.gn.
ios_provider_target,
Expand Down
2 changes: 2 additions & 0 deletions ios/app/brave_core_main.h
Original file line number Diff line number Diff line change
Expand Up @@ -75,6 +75,8 @@ OBJC_EXPORT
walletProviderWithDelegate:(id<BraveWalletProviderDelegate>)delegate
isPrivateBrowsing:(bool)isPrivateBrowsing;

@property(readonly) NSString* walletProviderJS;

@end

NS_ASSUME_NONNULL_END
Expand Down
21 changes: 21 additions & 0 deletions ios/app/brave_core_main.mm
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,7 @@
#include "brave/components/brave_wallet/browser/blockchain_registry.h"
#include "brave/components/brave_wallet/browser/brave_wallet_provider_impl.h"
#include "brave/components/brave_wallet/browser/wallet_data_files_installer.h"
#include "brave/components/brave_wallet/resources/grit/brave_wallet_script_generated.h"
#include "brave/components/skus/browser/switches.h"
#include "brave/ios/app/brave_main_delegate.h"
#include "brave/ios/browser/api/bookmarks/brave_bookmarks_api+private.h"
Expand Down Expand Up @@ -54,6 +55,7 @@
#include "ios/public/provider/chrome/browser/chrome_browser_provider.h"
#include "ios/public/provider/chrome/browser/ui_utils/ui_utils_api.h"
#include "ios/web/public/init/web_main.h"
#include "ui/base/resource/resource_bundle.h"

// Chromium logging is global, therefore we cannot link this to the instance in
// question
Expand All @@ -73,6 +75,7 @@ @interface BraveCoreMain () {
std::unique_ptr<BraveMainDelegate> _delegate;
std::unique_ptr<web::WebMain> _webMain;
ChromeBrowserState* _mainBrowserState;
NSString* _walletProviderJS;
}
@property(nonatomic) BraveBookmarksAPI* bookmarksAPI;
@property(nonatomic) BraveHistoryAPI* historyAPI;
Expand Down Expand Up @@ -331,4 +334,22 @@ - (BraveSyncProfileServiceIOS*)syncProfileService {
initWithBraveWalletProvider:provider];
}

- (NSString*)walletProviderJS {
if (!_walletProviderJS) {
auto resource_id = IDR_BRAVE_WALLET_SCRIPT_BRAVE_WALLET_SCRIPT_BUNDLE_JS;
// The resource bundle is not available until after WebMainParts is setup
auto& resource_bundle = ui::ResourceBundle::GetSharedInstance();
std::string resource_string = "";
if (resource_bundle.IsGzipped(resource_id)) {
resource_string =
std::string(resource_bundle.LoadDataResourceString(resource_id));
} else {
resource_string =
std::string(resource_bundle.GetRawDataResource(resource_id));
}
_walletProviderJS = base::SysUTF8ToNSString(resource_string);
}
return _walletProviderJS;
}

@end
18 changes: 18 additions & 0 deletions ios/app/resources/BUILD.gn
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
# Copyright (c) 2020 The Brave Authors. All rights reserved.
# This Source Code Form is subject to the terms of the Mozilla Public
# License, v. 2.0. If a copy of the MPL was not distributed with this file,
# You can obtain one at http://mozilla.org/MPL/2.0/.

import("//tools/grit/repack.gni")

group("resources") {
public_deps = [ ":repack_unscaled_resources" ]
}

repack("repack_unscaled_resources") {
visibility = [ ":resources" ]
output = "$target_gen_dir/brave_resources.pak"
sources = [ "$root_gen_dir/components/brave_components_resources.pak" ]
deps = [ "//brave/components/resources" ]
copy_data_to_bundle = true
}
24 changes: 15 additions & 9 deletions ios/browser/brave_web_main_parts.mm
Original file line number Diff line number Diff line change
Expand Up @@ -37,15 +37,21 @@
void BraveWebMainParts::PreCreateMainMessageLoop() {
l10n_util::OverrideLocaleWithCocoaLocale();

const std::string loaded_locale =
ui::ResourceBundle::InitSharedInstanceWithLocale(
std::string(), nullptr, ui::ResourceBundle::LOAD_COMMON_RESOURCES);
CHECK(!loaded_locale.empty());

base::FilePath resources_pack_path;
base::PathService::Get(ios::FILE_RESOURCES_PACK, &resources_pack_path);
ui::ResourceBundle::GetSharedInstance().AddDataPackFromPath(
resources_pack_path, ui::k100Percent);
const std::string loaded_locale =
ui::ResourceBundle::InitSharedInstanceWithLocale(
std::string(), nullptr, ui::ResourceBundle::LOAD_COMMON_RESOURCES);
CHECK(!loaded_locale.empty());

base::FilePath resources_pack_path;
base::PathService::Get(ios::FILE_RESOURCES_PACK, &resources_pack_path);
ui::ResourceBundle::GetSharedInstance().AddDataPackFromPath(
resources_pack_path, ui::k100Percent);

base::FilePath brave_pack_path;
base::PathService::Get(base::DIR_MODULE, &brave_pack_path);
brave_pack_path = brave_pack_path.AppendASCII("brave_resources.pak");
ui::ResourceBundle::GetSharedInstance().AddDataPackFromPath(
brave_pack_path, ui::kScaleFactorNone);
}

void BraveWebMainParts::PreCreateThreads() {
Expand Down

0 comments on commit d03c7da

Please sign in to comment.