OrchidMantis Posted October 18, 2020 Share Posted October 18, 2020 from gui.game_control.browsercontroller import BrowserController def hookedCreateBrowser(self, ctx): print 'test newcreateBrowser', self, ctx if browserID in self._BrowserController__browsers: _logger.info('CTRL: Deleting a werwebrowser: %s', browserID) browser = self._BrowserController__browsers.pop(browserID) self._BrowserController__clearCallbacks(browserID, browser, True) browser.destroy() print 'deleted' if self._BrowserController__creatingBrowserID == browserID: self._BrowserController__creatingBrowserID = None self._BrowserController__tryCreateNextPendingBrowser() if browserID in self._BrowserController__pendingBrowsers: del self._BrowserController__pendingBrowsers[browserID] self.onBrowserDeleted(browserID) return hookCreateBrowser(self, ctx) def hookedDelBrowser(self, browserID): #выводишь вменяемое сообщение в лог print 'test newDelBrowser', self, browserID #возвращаешь обратно оригинальную функцию browserID = ctx['browserID'] _logger.info('CTRL: Creating a browserwer: %r - %s', browserID, ctx['url']) self._BrowserController__creatingBrowserID = browserID browser = self._BrowserController__browsers[browserID] if browser.create(): self.onBrowserAdded(browserID) def createNextBrowser(): _logger.info('CTRL: Triggering werwercreate of next browser from: %s', browserID) creation = self._BrowserController__browserCreationCallbacks.pop(browserID, None) if creation is not None: self._BrowserController__browsers[browserID].onCanCreateNewBrowser = self._BrowserController__browsers[ browserID].onCanCreateNewBrowser - creation BigWorld.callback(1.0, self._BrowserController__tryCreateNextPendingBrowser) def failedCreationCallback(url): _logger.info('CTRL: Failed awerwer creation: %r - %s', browserID, url) self._BrowserController__clearCallbacks(browserID, self._BrowserController__browsers[browserID], False) self.delBrowser(browserID) def successfulCreationCallback(url, isLoaded, httpStatusCode=None): _logger.info('CTRL: Ready towerwer show: %r - %r - %s', browserID, isLoaded, url) self._BrowserController__clearCallbacks(browserID, self._BrowserController__browsers[browserID], False) if isLoaded: self._BrowserController__showBrowser(browserID, ctx) else: _logger.warning('Browser requestwerwer url %s was not loaded!', url) g_eventBus.handleEvent(BrowserEvent(BrowserEvent.BROWSER_CREATED, ctx=ctx)) self._BrowserController__createDone(ctx) def titleUpdateCallback(title): ctx['title'] = title browser.onCanCreateNewBrowser = browser.onCanCreateNewBrowser + createNextBrowser self._BrowserController__browserCreationCallbacks[browserID] = createNextBrowser browser.onFailedCreation = browser.onFailedCreation + failedCreationCallback browser.onTitleChange = browser.onTitleChange + titleUpdateCallback if ctx['isAsync']: self._BrowserController__browsersCallbacks[browserID] = ( None, successfulCreationCallback, failedCreationCallback, titleUpdateCallback) browser.onLoadEnd = browser.onLoadEnd + successfulCreationCallback else: self._BrowserController__browsersCallbacks[browserID] = ( successfulCreationCallback, None, failedCreationCallback, titleUpdateCallback) browser.onReady = browser.onReady + successfulCreationCallback return else: _logger.info('CTRL: Failed the create step erwer: %r', browserID) self.delBrowser(browserID) self._BrowserController__tryCreateNextPendingBrowser() return return hookDelBrowser(self, browserID) # Хукаешь функцию, сохраняя старую в переменную print dir(BrowserController) hookDelBrowser = BrowserController.delBrowser hookCreateBrowser = BrowserController._BrowserController__createBrowser #Вместо оригинала сохраняешь свою версию хукнутой функции BrowserController.delBrowser = hookedCreateBrowser BrowserController._BrowserController__createBrowser = hookedDelBrowser print 'hooked' p.s. Часть кода принадлежит spoter'у Кто поможет, подарю акк в овертвотче с привязкой почты и телефона @ Quote Link to comment Short link Share on other sites More sharing options...
Ekspoint Posted October 18, 2020 Share Posted October 18, 2020 Хукнуть встроенный браузер это то же самое что пукнуть, результата не будет) @ Quote Link to comment Short link Share on other sites More sharing options...
OrchidMantis Posted October 18, 2020 Author Share Posted October 18, 2020 @Ekspoint т.е это невозможно? @ Quote Link to comment Short link Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.