Tab ID checker is called after URI is changed.
If a tab with URI chanage is not the current tab,
it changes the current tab to a tab with URI change.
This may cause unwanted tab switching
when some backgound tabs change its URI for some reason.
Change-Id: I6e8583f0952dc961a5a4d148c9e79bb25d536ac1
Signed-off-by: sungwon2han <sungwon2.han@samsung.com>
boost::signals2::signal<void (const std::string &)> uriChanged;
/**
- * URI on current/other page changed
- */
- boost::signals2::signal<void (TabId)> uriOnTabChanged;
-
- /**
* Possibility of go forward changed
* \param bool true if it is possible to go forward, false otherwise
*/
m_webEngine->uriChanged.connect(boost::bind(&SimpleUI::webEngineURLChanged, this, _1));
m_webEngine->uriChanged.connect(boost::bind(&URIEntry::changeUri, &m_webPageUI->getURIEntry(), _1));
m_webEngine->uriChanged.connect(boost::bind(&MoreMenuUI::setURL, m_moreMenuUI.get(), _1));
- m_webEngine->uriOnTabChanged.connect(boost::bind(&SimpleUI::checkTabId,this,_1));
m_webEngine->webViewClicked.connect(boost::bind(&URIEntry::clearFocus, &m_webPageUI->getURIEntry()));
m_webEngine->backwardEnableChanged.connect(boost::bind(&WebPageUI::setBackButtonEnabled, m_webPageUI.get(), _1));
m_webEngine->forwardEnableChanged.connect(boost::bind(&WebPageUI::setForwardButtonEnabled, m_webPageUI.get(), _1));
m_viewManager->popStackTo(m_webPageUI.get());
}
-void SimpleUI::checkTabId(const tizen_browser::basic_webengine::TabId& id){
- BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__);
- if(m_webEngine->currentTabId() != id || isErrorPageActive()){
- BROWSER_LOGD("URL changed on non-visible tab, updating browser view");
- switchToTab(id);
- }
-}
-
void SimpleUI::openNewTab(const std::string &uri, bool desktopMode)
{
BROWSER_LOGD("[%s:%d] uri =%s", __PRETTY_FUNCTION__, __LINE__, uri.c_str());
void onURLEntryEdited();
/**
- * Checks if correct tab is visible to user, and if not, it update browser view
- * @param id of tab that should be visible to user
- */
- void checkTabId(const tizen_browser::basic_webengine::TabId& id);
-
- /**
* \brief check if url comming back from WebEngine should be passed to URI.
*
* For filtered addresses we need to hide real URI so the user would be confused.
uriChanged(uri);
}
-void WebKitEngineService::_uriChangedOnTab(TabId id)
-{
- BROWSER_LOGD("%s:%d %s", __FILE__, __LINE__, __func__);
- uriOnTabChanged(id);
-}
-
void WebKitEngineService::_loadFinished()
{
loadFinished();
if (!uri.empty()) {
p->setURI(uri);
}
- p->tabIdChecker.connect(boost::bind(&WebKitEngineService::_uriChangedOnTab,this,_1));
switchToTab(newTabId);
AbstractWebEngine::tabCreated();
void _favIconChanged(std::shared_ptr<tizen_browser::tools::BrowserImage> bi);
void _titleChanged(const std::string &);
void _uriChanged(const std::string &);
- void _uriChangedOnTab(TabId);
void _loadFinished();
void _loadStarted();
void _loadStop();
WebView * self = reinterpret_cast<WebView *>(data);
BROWSER_LOGD("URL changed for tab: %s", self->getTabId().toString().c_str());
self->uriChanged(self->getURI());
- self->tabIdChecker(self->m_tabId);
}
void WebView::__backForwardListChanged(void * data, Evas_Object * /* obj */, void * /* event_info */)
boost::signals2::signal<void (std::shared_ptr<tizen_browser::tools::BrowserImage>)> favIconChanged;
boost::signals2::signal<void (const std::string &)> titleChanged;
boost::signals2::signal<void (const std::string)> uriChanged;
- boost::signals2::signal<void (TabId)> tabIdChecker;
boost::signals2::signal<void ()> loadFinished;
boost::signals2::signal<void ()> loadStarted;