Comments (3)
@Mifrill I think we can remove it, agree
from ferrum.
@jamarat thanks for the raising the flag!
The first case looks weird:
https://github.com/Mifrill/ferrum/blob/master/lib/ferrum/context.rb#L44-L52
def create_target
target_id = @browser.command("Target.createTarget",
browserContextId: @id,
url: "about:blank")["targetId"]
target = @pendings.take(@browser.timeout)
raise NoSuchTargetError unless target.is_a?(Target)
@targets[target.id] = target
target
end
we probably should remove the declaration of target_id
at all here:
target = @pendings.take(@browser.timeout)
raise NoSuchTargetError unless target.is_a?(Target)
@targets[target.id] = target
target
or we should to apply something like this:
target = @targets[target_id] || @pendings.take(@browser.timeout)
because we may have nothing in @pendings
Concurrent::MVar
on @pendings.take
fire, according to logic in #add_target
:
def add_target(params)
target = Target.new(@browser, params)
if target.window?
@targets[target.id] = target
else
@pendings.put(target, @browser.timeout)
end
end
from ferrum.
@route we can't just remove this declaration, because we should trigger the subscriber
event here:
https://github.com/Mifrill/ferrum/blob/ecab9ec5a0aa8454e7021bc5fcfc8c5f1c3fb6f7/lib/ferrum/contexts.rb#L48
by browser.client.on("Target.targetCreated")
to Creates a new page.
https://chromedevtools.github.io/devtools-protocol/tot/Target/#method-createTarget
from ferrum.
Related Issues (20)
- Send Emulation commands to Page HOT 1
- Ferrum::BinaryNotFoundError when using docker for chrome HOT 1
- Can I allow Page.go_to take additional wait parameter?
- Cannot call `exit` from within `.on()` blocks HOT 2
- Exceptions within `.on()` blocks are mysteriously ignored HOT 1
- Browser start fails with JRuby on Windows
- Chrome error: "Unable to create temporary file" on Windows with JRuby HOT 1
- Errno::ECONNREFUSED on browser initialization HOT 3
- Headless new gives Ferrum::NoSuchPageError on screenshot HOT 2
- consider using === in network blacklist matching
- Doesn't work on ruby 3.2 HOT 1
- Saving via browser.mhtml and via cmd+S differs a lot on Youtube HOT 3
- Network.loadingFailed error preventing file from downloading HOT 13
- Conditionally Render Page header and footer template HOT 2
- browser.quit doesn't close session HOT 6
- Include type and stackTrace in logging for console API
- `wait_for_network_idle` failing due to pending requests on previous page HOT 1
- Remove `disable-gpu`default flag for Apple Silicon HOT 3
- authenticate current_user in ferrum browser
- Hang/Timeout in dialog HOT 9
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from ferrum.