| Index: src/plugin/PluginClass.cpp |
| =================================================================== |
| --- a/src/plugin/PluginClass.cpp |
| +++ b/src/plugin/PluginClass.cpp |
| @@ -822,6 +822,11 @@ |
| } |
| } |
| + if (CPluginClient::GetInstance()->IsFirstRun()) |
| + { |
| + CreateThread(NULL, NULL, (LPTHREAD_START_ROUTINE)CPluginClass::FirstRunThread, NULL, NULL, NULL); |
| + } |
| + |
| CPluginSettings* settings = CPluginSettings::GetInstance(); |
| return true; |
| } |
| @@ -999,51 +1004,28 @@ |
| SendMessage(m_hStatusBarWnd, WM_PAINT, (WPARAM)hdc, 0); |
| ReleaseDC(m_hStatusBarWnd, hdc); |
| - if (CPluginClient::GetInstance()->GetIsFirstRun()) |
| - { |
| - CreateThread(NULL, NULL, (LPTHREAD_START_ROUTINE)CPluginClass::FirstRunThread, NULL, NULL, NULL); |
| - } |
| - |
| return true; |
| } |
| void CPluginClass::FirstRunThread() |
| { |
| - // IE may still be not ready to navigate. Try until it is. |
| - VARIANT_BOOL isBusy = VARIANT_FALSE; |
| - while (GetAsyncBrowser()->get_Busy(&isBusy) == S_OK && isBusy != VARIANT_FALSE) |
| - { |
| - Sleep(100); |
| - } |
| VARIANT vFlags; |
| vFlags.vt = VT_I4; |
| vFlags.intVal = navOpenInNewTab; |
| - READYSTATE readyState; |
| - HRESULT hr; |
| - while ((hr = GetAsyncBrowser()->get_ReadyState(&readyState) == S_OK) && (readyState <= READYSTATE_LOADED)) |
| - { |
| - Sleep(100); |
| - } |
| CComBSTR bTest = CComBSTR(UserSettingsFirstRunPageUrl().c_str()); |
| //Try 10 times, or until successful |
| int numberOfAttempts = 0; |
| - while ((hr != S_OK) && (numberOfAttempts < 10)) |
| + HRESULT hr = S_FALSE; |
| + hr = GetAsyncBrowser()->Navigate(bTest, &vFlags, NULL, NULL, NULL); |
| + if (FAILED(hr)) |
| { |
| - hr = GetAsyncBrowser()->Navigate(bTest, &vFlags, NULL, NULL, NULL); |
| - if (FAILED(hr)) |
| - { |
| - vFlags.intVal = navOpenInNewWindow; |
| + vFlags.intVal = navOpenInNewWindow; |
| + hr = GetAsyncBrowser()->Navigate(bTest, &vFlags, NULL, NULL, NULL); |
|
Wladimir Palant
2013/07/21 11:53:45
Wrong indentation here?
|
| + } |
| - hr = GetAsyncBrowser()->Navigate(bTest, &vFlags, NULL, NULL, NULL); |
| - if (FAILED(hr)) |
| - { |
| - DEBUG_ERROR_LOG(hr, PLUGIN_ERROR_NAVIGATION, PLUGIN_ERROR_NAVIGATION_SETTINGS, "Navigation::Failed") |
| - } |
| - } |
| - Sleep(100); |
| - } |
| + |
| if (FAILED(hr)) |
| { |
| DEBUG_ERROR_LOG(hr, PLUGIN_ERROR_NAVIGATION, PLUGIN_ERROR_NAVIGATION_WELCOME, "Navigation::Welcome page failed") |