Skip to content

Commit 2bb2b58

Browse files
committed
add parameter to CalcNewWinManifest
1 parent c4550bf commit 2bb2b58

File tree

3 files changed

+10
-6
lines changed

3 files changed

+10
-6
lines changed

src/browser/nw_extensions_browser_hooks.cc

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -131,7 +131,7 @@ void AmendManifestList(base::DictionaryValue* manifest,
131131
}
132132
}
133133

134-
std::unique_ptr<base::DictionaryValue> MergeManifest() {
134+
std::unique_ptr<base::DictionaryValue> MergeManifest(const std::string& in_manifest) {
135135
// Following attributes will not be inherited from package.json
136136
// Keep this list consistent with documents in `Manifest Format.md`
137137
static std::vector<const char*> non_inherited_attrs = {
@@ -144,7 +144,8 @@ std::unique_ptr<base::DictionaryValue> MergeManifest() {
144144
std::unique_ptr<base::DictionaryValue> manifest;
145145

146146
// retrieve `window` manifest set by `new-win-policy`
147-
std::string manifest_str = base::UTF16ToUTF8(nw::GetCurrentNewWinManifest());
147+
std::string manifest_str = in_manifest.empty() ? base::UTF16ToUTF8(nw::GetCurrentNewWinManifest())
148+
: in_manifest;
148149
std::unique_ptr<base::Value> val(base::JSONReader::ReadDeprecated(manifest_str));
149150
if (val && val->is_dict()) {
150151
manifest.reset(static_cast<base::DictionaryValue*>(val.release()));
@@ -320,10 +321,11 @@ void LoadNWAppAsExtensionHook(base::DictionaryValue* manifest,
320321

321322
void CalcNewWinParams(content::WebContents* new_contents, void* params,
322323
std::string* nw_inject_js_doc_start,
323-
std::string* nw_inject_js_doc_end) {
324+
std::string* nw_inject_js_doc_end,
325+
const std::string& in_manifest) {
324326
extensions::AppWindow::CreateParams ret;
325327
std::unique_ptr<base::Value> val;
326-
std::unique_ptr<base::DictionaryValue> manifest = MergeManifest();
328+
std::unique_ptr<base::DictionaryValue> manifest = MergeManifest(in_manifest);
327329

328330
bool resizable;
329331
if (manifest->GetBoolean(switches::kmResizable, &resizable)) {

src/browser/nw_extensions_browser_hooks.h

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,8 @@ void LoadNWAppAsExtensionHook(base::DictionaryValue* manifest,
3838
// ref in extensions/browser/app_window/app_window.cc
3939
void CalcNewWinParams(content::WebContents* new_contents, void* params,
4040
std::string* nw_inject_js_doc_start,
41-
std::string* nw_inject_js_doc_end);
41+
std::string* nw_inject_js_doc_end,
42+
const std::string& in_manifest);
4243
// ref in extensions/components/native_app_window/native_app_window_views.cc
4344
bool ExecuteAppCommandHook(int command_id, extensions::AppWindow* app_window);
4445

src/nw_content.h

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -75,7 +75,8 @@ void DocumentFinishHook(blink::WebLocalFrame* frame,
7575
void ExtensionDispatcherCreated(extensions::Dispatcher* dispatcher);
7676
void CalcNewWinParams(content::WebContents* new_contents, void* params,
7777
std::string* nw_inject_js_doc_start,
78-
std::string* nw_inject_js_doc_end);
78+
std::string* nw_inject_js_doc_end,
79+
const std::string& in_manifest);
7980
bool GetImage(Package* package, const FilePath& icon_path, gfx::Image* image);
8081
std::unique_ptr<base::DictionaryValue> MergeManifest();
8182
bool ExecuteAppCommandHook(int command_id, extensions::AppWindow* app_window);

0 commit comments

Comments
 (0)