lib/puppeteer/target.rb in puppeteer-ruby-0.40.7 vs lib/puppeteer/target.rb in puppeteer-ruby-0.41.0

- old
+ new

@@ -16,37 +16,42 @@ # @param {!Protocol.Target.TargetInfo} targetInfo # @param {!Puppeteer.BrowserContext} browserContext # @param {!function():!Promise<!Puppeteer.CDPSession>} sessionFactory # @param {boolean} ignoreHTTPSErrors # @param {?Puppeteer.Viewport} defaultViewport - def initialize(target_info:, browser_context:, session_factory:, ignore_https_errors:, default_viewport:) + def initialize(target_info:, + browser_context:, + session_factory:, + ignore_https_errors:, + default_viewport:, + is_page_target_callback:) @target_info = target_info @browser_context = browser_context @target_id = target_info.target_id @session_factory = session_factory @ignore_https_errors = ignore_https_errors @default_viewport = default_viewport + @is_page_target_callback = is_page_target_callback - # /** @type {?Promise<!Puppeteer.Page>} */ # this._pagePromise = null; # /** @type {?Promise<!Worker>} */ # this._workerPromise = null; @initialize_callback_promise = resolvable_future @initialized_promise = @initialize_callback_promise.then do |success| handle_initialized(success) end @is_closed_promise = resolvable_future - @is_initialized = @target_info.type != 'page' || !@target_info.url.empty? + @is_initialized = !@is_page_target_callback.call(@target_info) || !@target_info.url.empty? if @is_initialized @initialize_callback_promise.fulfill(true) end end - attr_reader :target_id, :initialized_promise, :is_closed_promise + attr_reader :target_id, :target_info, :initialized_promise, :is_closed_promise def closed_callback @is_closed_promise.fulfill(true) end @@ -81,11 +86,11 @@ def create_cdp_session @session_factory.call end def page - if ['page', 'background_page', 'webview'].include?(@target_info.type) && @page.nil? + if @is_page_target_callback.call(@target_info) && @page.nil? client = @session_factory.call @page = Puppeteer::Page.create(client, self, @ignore_https_errors, @default_viewport) end @page end @@ -143,10 +148,10 @@ # @param {!Protocol.Target.TargetInfo} targetInfo def handle_target_info_changed(target_info) @target_info = target_info - if !@is_initialized && (@target_info.type != 'page' || !@target_info.url.empty?) + if !@is_initialized && (!@is_page_target_callback.call(@target_info) || !@target_info.url.empty?) @is_initialized = true @initialize_callback_promise.fulfill(true) end end end