本文整理汇总了C++中WebViewImpl::devToolsAgent方法的典型用法代码示例。如果您正苦于以下问题:C++ WebViewImpl::devToolsAgent方法的具体用法?C++ WebViewImpl::devToolsAgent怎么用?C++ WebViewImpl::devToolsAgent使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类WebViewImpl
的用法示例。
在下文中一共展示了WebViewImpl::devToolsAgent方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: run
virtual void run(Page* page)
{
if (m_running)
return;
m_running = true;
// 0. Flush pending frontend messages.
WebViewImpl* viewImpl = WebViewImpl::fromPage(page);
WebDevToolsAgentImpl* agent = static_cast<WebDevToolsAgentImpl*>(viewImpl->devToolsAgent());
agent->flushPendingFrontendMessages();
Vector<WebViewImpl*> views;
// 1. Disable input events.
const HashSet<Page*>& pages = Page::ordinaryPages();
HashSet<Page*>::const_iterator end = pages.end();
for (HashSet<Page*>::const_iterator it = pages.begin(); it != end; ++it) {
WebViewImpl* view = WebViewImpl::fromPage(*it);
if (!view)
continue;
m_frozenViews.add(view);
views.append(view);
view->setIgnoreInputEvents(true);
}
// Notify embedder about pausing.
agent->client()->willEnterDebugLoop();
// 2. Disable active objects
WebView::willEnterModalLoop();
// 3. Process messages until quitNow is called.
m_messageLoop->run();
// 4. Resume active objects
WebView::didExitModalLoop();
// 5. Resume input events.
for (Vector<WebViewImpl*>::iterator it = views.begin(); it != views.end(); ++it) {
if (m_frozenViews.contains(*it)) {
// The view was not closed during the dispatch.
(*it)->setIgnoreInputEvents(false);
}
}
agent->client()->didExitDebugLoop();
// 6. All views have been resumed, clear the set.
m_frozenViews.clear();
m_running = false;
}