Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Refactor Captcha Manager #97

Closed
pr1sm opened this issue Oct 23, 2018 · 2 comments
Closed

Refactor Captcha Manager #97

pr1sm opened this issue Oct 23, 2018 · 2 comments
Assignees
Labels
area:frontend Related to Nebula's Frontend Electron app priority:high Issues that are high priority, but don't need to be solved ASAP type:enhancement New feature or request type:tech-debt Issues related to adjusting underlying implementation details without affecting the end product

Comments

@pr1sm
Copy link
Collaborator

pr1sm commented Oct 23, 2018

Is your feature request related to a problem? Please describe.
With #96 about to merge, a new CaptchaManager is added. This encapsulates captcha specific functions that aren't needed for other windows. A new CaptchaManager is spawned per captcha window, which increases the memory footprint for each window and adds a lot of event handlers for IPC events.

Describe the solution you'd like
The CaptchaManager should be refactored to be a single instance spawned on the App context level. This would involve adjusting the manager to handle multiple windows' tokens, but has the benefit of a single set of event handlers added and no additional memory footprint when creating captcha windows.

Additional context
This issue was spawned from the comment thread in #96

@pr1sm pr1sm added type:enhancement New feature or request area:frontend Related to Nebula's Frontend Electron app type:tech-debt Issues related to adjusting underlying implementation details without affecting the end product labels Oct 23, 2018
@pr1sm pr1sm mentioned this issue Oct 23, 2018
1 task
@walmat walmat self-assigned this Feb 3, 2019
@walmat walmat added this to the Beta 5 Release milestone Feb 3, 2019
@pr1sm pr1sm modified the milestones: Beta 5 Release, Beta 6 Release Feb 8, 2019
@pr1sm pr1sm added the priority:high Issues that are high priority, but don't need to be solved ASAP label Feb 11, 2019
@pr1sm pr1sm assigned pr1sm and unassigned walmat Feb 20, 2019
@pr1sm
Copy link
Collaborator Author

pr1sm commented Feb 20, 2019

One addition to the captcha manager refactor is adding the ability for future proxy support. A separate issue can be made to add the proxy support UI control, but the refactored captcha window manager should include methods to set proxies for a window.

Originally from https://github.com/walmat/nebula/pull/342#discussion_r258562480

@walmat walmat removed this from the Beta 6 Release milestone Feb 21, 2019
@pr1sm pr1sm added this to the Beta 6 Release milestone Feb 23, 2019
pr1sm added a commit that referenced this issue Feb 23, 2019
* Start Refactoring CaptchaWindowManager

This commit starts the refactor for the new CaptchaWindowManager. This manager will be in charge of all captcha windows instead of having a manager instance per window.

At this time, the old captcha window manager is still in use. Once the new manage is written. the regular WindowManager will have to be adjusted to use the new CaptchaWindowManager

* Add Injectable Options for Youtube and Captcha Windows

This commit updates the create window functions for Youtube and Captcha to allow custom options and webPreferences to be injected in. This allows further customizations when creating these windows.

* More Implementation Progress

This commit adds more progress towards implementing a new CaptchaWindowManager.
- Specific functions to spawn youtube and captcha windows are added
- The end session handler is implemented.
- Adjustments to the Youtube Launch handler

* Transition to Use New Captcha Window Manager

This commit replaces the old implementation of WindowManager to use the new CaptchaWindowManager for captcha/youtube functions.

The old captcha window manager implementation is removed. There is still some code in the WindowManager that needs to be moved over to the CaptchaWindowManager. For now, these calls are just proxied so they work.

* Cleanup WindowManager

This commit adds some cleanup for the window manager.

The change theme handler has been commented out until #350 is addressed.

* Use Harvest State when Spawning New Captcha Window

This commit updates the Captcha Window Manager to automatically start harvesting on a new window if the rest of the windows are in the harvesting state. This allows you to open/close all captcha windows, but have new window harvest if a captcha is still required.

Issue: #106

* Increase Speed of Captcha Stopping

Instead of reloading the page, the captcha window now only loads the captcha methods once and resets when it stops harvesting. The captcha form is hidden to display the idle animation again. This prevents a reload cycle from happening everytime the captcha finishes harvesting

Issue: #272

* Remove Proxy on captcha window load

This commit removes the captcha server proxy when the window loads. This allows the youtube window experience to function properly.

* Fix Captcha Windows not closing on deactivate

This commit adds a call to always close the captcha windows when the main window closes. This should include both when closing and deactivating.

* Fix Captcha Window Auto Spawn

This commit fixes a bug where a captcha window would not be spawned if it was needed.

fixes #97
fixes #106
fixes #272
fixes #317
@pr1sm
Copy link
Collaborator Author

pr1sm commented Feb 23, 2019

Fixed in #355

@pr1sm pr1sm closed this as completed Feb 23, 2019
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
area:frontend Related to Nebula's Frontend Electron app priority:high Issues that are high priority, but don't need to be solved ASAP type:enhancement New feature or request type:tech-debt Issues related to adjusting underlying implementation details without affecting the end product
Projects
None yet
Development

No branches or pull requests

2 participants