Skip to content
This repository has been archived by the owner on Sep 29, 2023. It is now read-only.

--injecting multiple js files mangles them in nativefied app #458

Closed
jplot opened this issue Oct 3, 2017 · 11 comments · Fixed by #1162
Closed

--injecting multiple js files mangles them in nativefied app #458

jplot opened this issue Oct 3, 2017 · 11 comments · Fixed by #1162
Labels

Comments

@jplot
Copy link

jplot commented Oct 3, 2017

Description

When injecting multiple files, the final rendering of the inject.js file is corrupted

Steps to reproduce issue

test1.js

alert('Test1')

test2.js

console.log('Test2')

Run

nativefier --inject test1.js --inject test2.js --name Github https://github.com

Github.app/Contents/Resources/app/inject/inject.js

alert('Test1')
st2')

Specifications

Version of Nativefier (run nativefier --version): v7.4.1
Version of Node.js (run node --version): v8.5.0
OS: macOS High Sierra 10.13.1

@ronjouch
Copy link
Contributor

ronjouch commented Oct 3, 2017

@jplot merci du retour 👍. Before I give a try at reproducing the issue, one wording nit: when you say "deteriorated", are you saying Nativefier regressed? (Said differently, did it use to work? If yes, when and any idea when it started mangling data?) Thanks.

@jplot
Copy link
Author

jplot commented Oct 4, 2017

@ronjouch No it does not work, from the second file inject it corrupts inject.js

@ronjouch
Copy link
Contributor

ronjouch commented Oct 4, 2017

No it does not work, from the second file inject it corrupts inject.js

@jplot I get that, but my question is: has it already worked in an earlier version of Nativefier?

@jplot
Copy link
Author

jplot commented Oct 4, 2017

@ronjouch Yes, 7.4.0 and 7.4.1

@ronjouch
Copy link
Contributor

ronjouch commented Oct 4, 2017

Still not clear, please make a complete sentence.

@jplot
Copy link
Author

jplot commented Oct 4, 2017

does not work on Nativefier v7.4.0 and v7.4.1

@ronjouch ronjouch changed the title Multiple injects deteriorated --injecting multiple js files mangles them in nativefied app Oct 4, 2017
@ronjouch ronjouch removed the need-info label Oct 4, 2017
@zbirkenbuel
Copy link

I believe the problem as reported is that the user is trying to inject two script files and that just isn't supported. The --inject handler in the build script copies any injected js file to inject.js without any consideration for multiple files.

As to why it's got the strange content rather than just being one file or the other, under the covers it looks like the injection handling functions uses the ncp library to perform file copies and that library uses stream copying, so it's probably overwriting only portions of the file.

Scenario, those two files end with newline characters (\n), it first copies characters 1-21 of the string console.log('Test2')\n and then overwrites characters 1-15 of that with alert('Test1')\n giving you alert('Test1')\nst2')

@UndarkAido
Copy link

It looks like the behavior now is that one js file is randomly picked. It would be nice to be able to pick.

@xeor
Copy link

xeor commented Sep 9, 2020

It seams like this is still an issue. For me, the last --inject ....js wins, and the first one is ignored.

@vviikk
Copy link

vviikk commented Feb 21, 2021

I can fix this in the next PR as I'll be making one about injection. I already have a solution.

@mattruzzi
Copy link
Contributor

@vviikk Can you split the fix for this into a separate pr so it can be merged sooner without the gist url injection part having to be completed?

TheCleric added a commit that referenced this issue Apr 30, 2021
* Add ability to inject multiple css/js files

* API doc: Move misplaced macOS shortcuts doc (PR #1158)

When I added this documentation originally, I guess I placed it in the wrong location.

* README: use quotes in example, to divert users from shell globbing pitfalls

Follow-up of #1159 (comment)

* Support opening URLs passed as arg to Nativefied application (fix #405) (PR #1154)

Co-authored-by: Ronan Jouchet <ronan@jouchet.fr>

* macOS: Fix crash when using --tray (fix #527), and invisible icon (fix #942, fix #668) (#1156)

This fixes:

1. A startup crash on macOS when using the `--tray` option; see #527.
  ![image](https://user-images.githubusercontent.com/22625791/115987741-99544600-a5b6-11eb-866a-dadb5640eecb.png)
2. Invisible tray icon on macOS; see #942 and #668.  
   ![image](https://user-images.githubusercontent.com/22625791/115988276-24364000-a5b9-11eb-80c3-561a8a646754.png)

Co-authored-by: Ronan Jouchet <ronan@jouchet.fr>

* API.md / --widevine: document signing apps to make some sites like HBO Max & Udemy work (fix #1147)

* Prompt to confirm when page is attempting to prevent unload (#1163)

Should alleviate part of the issue in #1151

* Add an option to upgrade an existing app (fix #1131) (PR #1138)

This adds a `--upgrade` option to upgrade-in-place an old app, re-using its options it can.
Should help fix #1131

Co-authored-by: Ronan Jouchet <ronan@jouchet.fr>

* Bump to Electron 12.0.5 with Chrome 89.0.4389.128

* Add newly discovered Google internal login page (#1167)

* Fix Widevine by properly listening to widevine-... events, and update docs (fix #1153) (PR #1164)

As documented in #1153, for Widevine support to work properly, we need to listen for the Widevine ready event, and as well for certain sites the app must be signed.

This PR adds the events, and as well adds better documentation on the signing limitation.

This may also help resolve #1147

* Improve suffix creation + tests

* API: clarif in existing doc by the way

* Typo

Co-authored-by: Ronan Jouchet <ronan@jouchet.fr>
Co-authored-by: Ben Curtis <github@nosolutions.com>
Co-authored-by: Fabian Wolf <22625791+fabiwlf@users.noreply.github.com>
Adam777Z pushed a commit to Adam777Z/nativefier that referenced this issue Nov 9, 2022
…1162)

* Add ability to inject multiple css/js files

* API doc: Move misplaced macOS shortcuts doc (PR nativefier#1158)

When I added this documentation originally, I guess I placed it in the wrong location.

* README: use quotes in example, to divert users from shell globbing pitfalls

Follow-up of nativefier#1159 (comment)

* Support opening URLs passed as arg to Nativefied application (fix nativefier#405) (PR nativefier#1154)

Co-authored-by: Ronan Jouchet <ronan@jouchet.fr>

* macOS: Fix crash when using --tray (fix nativefier#527), and invisible icon (fix nativefier#942, fix nativefier#668) (nativefier#1156)

This fixes:

1. A startup crash on macOS when using the `--tray` option; see nativefier#527.
  ![image](https://user-images.githubusercontent.com/22625791/115987741-99544600-a5b6-11eb-866a-dadb5640eecb.png)
2. Invisible tray icon on macOS; see nativefier#942 and nativefier#668.  
   ![image](https://user-images.githubusercontent.com/22625791/115988276-24364000-a5b9-11eb-80c3-561a8a646754.png)

Co-authored-by: Ronan Jouchet <ronan@jouchet.fr>

* API.md / --widevine: document signing apps to make some sites like HBO Max & Udemy work (fix nativefier#1147)

* Prompt to confirm when page is attempting to prevent unload (nativefier#1163)

Should alleviate part of the issue in nativefier#1151

* Add an option to upgrade an existing app (fix nativefier#1131) (PR nativefier#1138)

This adds a `--upgrade` option to upgrade-in-place an old app, re-using its options it can.
Should help fix nativefier#1131

Co-authored-by: Ronan Jouchet <ronan@jouchet.fr>

* Bump to Electron 12.0.5 with Chrome 89.0.4389.128

* Add newly discovered Google internal login page (nativefier#1167)

* Fix Widevine by properly listening to widevine-... events, and update docs (fix nativefier#1153) (PR nativefier#1164)

As documented in nativefier#1153, for Widevine support to work properly, we need to listen for the Widevine ready event, and as well for certain sites the app must be signed.

This PR adds the events, and as well adds better documentation on the signing limitation.

This may also help resolve nativefier#1147

* Improve suffix creation + tests

* API: clarif in existing doc by the way

* Typo

Co-authored-by: Ronan Jouchet <ronan@jouchet.fr>
Co-authored-by: Ben Curtis <github@nosolutions.com>
Co-authored-by: Fabian Wolf <22625791+fabiwlf@users.noreply.github.com>
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
Projects
None yet
Development

Successfully merging a pull request may close this issue.

7 participants