@@ -131,7 +131,7 @@ void AmendManifestList(base::DictionaryValue* manifest,
131
131
}
132
132
}
133
133
134
- std::unique_ptr<base::DictionaryValue> MergeManifest () {
134
+ std::unique_ptr<base::DictionaryValue> MergeManifest (const std::string& in_manifest ) {
135
135
// Following attributes will not be inherited from package.json
136
136
// Keep this list consistent with documents in `Manifest Format.md`
137
137
static std::vector<const char *> non_inherited_attrs = {
@@ -144,7 +144,8 @@ std::unique_ptr<base::DictionaryValue> MergeManifest() {
144
144
std::unique_ptr<base::DictionaryValue> manifest;
145
145
146
146
// 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;
148
149
std::unique_ptr<base::Value> val (base::JSONReader::ReadDeprecated (manifest_str));
149
150
if (val && val->is_dict ()) {
150
151
manifest.reset (static_cast <base::DictionaryValue*>(val.release ()));
@@ -320,10 +321,11 @@ void LoadNWAppAsExtensionHook(base::DictionaryValue* manifest,
320
321
321
322
void CalcNewWinParams (content::WebContents* new_contents, void * params,
322
323
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) {
324
326
extensions::AppWindow::CreateParams ret;
325
327
std::unique_ptr<base::Value> val;
326
- std::unique_ptr<base::DictionaryValue> manifest = MergeManifest ();
328
+ std::unique_ptr<base::DictionaryValue> manifest = MergeManifest (in_manifest );
327
329
328
330
bool resizable;
329
331
if (manifest->GetBoolean (switches::kmResizable, &resizable)) {
0 commit comments