| OLD | NEW |
| 1 /* | 1 /* |
| 2 * This file is part of Adblock Plus <https://adblockplus.org/>, | 2 * This file is part of Adblock Plus <https://adblockplus.org/>, |
| 3 * Copyright (C) 2006-2015 Eyeo GmbH | 3 * Copyright (C) 2006-2015 Eyeo GmbH |
| 4 * | 4 * |
| 5 * Adblock Plus is free software: you can redistribute it and/or modify | 5 * Adblock Plus is free software: you can redistribute it and/or modify |
| 6 * it under the terms of the GNU General Public License version 3 as | 6 * it under the terms of the GNU General Public License version 3 as |
| 7 * published by the Free Software Foundation. | 7 * published by the Free Software Foundation. |
| 8 * | 8 * |
| 9 * Adblock Plus is distributed in the hope that it will be useful, | 9 * Adblock Plus is distributed in the hope that it will be useful, |
| 10 * but WITHOUT ANY WARRANTY; without even the implied warranty of | 10 * but WITHOUT ANY WARRANTY; without even the implied warranty of |
| 11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | 11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
| 12 * GNU General Public License for more details. | 12 * GNU General Public License for more details. |
| 13 * | 13 * |
| 14 * You should have received a copy of the GNU General Public License | 14 * You should have received a copy of the GNU General Public License |
| 15 * along with Adblock Plus. If not, see <http://www.gnu.org/licenses/>. | 15 * along with Adblock Plus. If not, see <http://www.gnu.org/licenses/>. |
| 16 */ | 16 */ |
| 17 | 17 |
| 18 #include "PluginStdAfx.h" | 18 #include "PluginStdAfx.h" |
| 19 | 19 |
| 20 #include "PluginClass.h" | 20 #include "PluginClass.h" |
| 21 #include "PluginSettings.h" | 21 #include "PluginSettings.h" |
| 22 #include "PluginSystem.h" | 22 #include "PluginSystem.h" |
| 23 #include "PluginFilter.h" | 23 #include "PluginFilter.h" |
| 24 #include "PluginMimeFilterClient.h" | 24 #include "PluginMimeFilterClient.h" |
| 25 #include "AdblockPlusClient.h" | 25 #include "AdblockPlusClient.h" |
| 26 #include "PluginClientBase.h" | |
| 27 #include "PluginClientFactory.h" | 26 #include "PluginClientFactory.h" |
| 28 #include "PluginUtil.h" | 27 #include "PluginUtil.h" |
| 29 #include "../shared/Utils.h" | 28 #include "../shared/Utils.h" |
| 30 #include "../shared/Dictionary.h" | 29 #include "../shared/Dictionary.h" |
| 31 #include "IeVersion.h" | 30 #include "IeVersion.h" |
| 32 #include "../shared/Version.h" | 31 #include "../shared/Version.h" |
| 33 #include <thread> | 32 #include <thread> |
| 34 #include <array> | 33 #include <array> |
| 35 | 34 |
| 36 #ifdef DEBUG_HIDE_EL | 35 #ifdef DEBUG_HIDE_EL |
| (...skipping 99 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 136 HWND CPluginClass::GetBrowserHWND() const | 135 HWND CPluginClass::GetBrowserHWND() const |
| 137 { | 136 { |
| 138 SHANDLE_PTR hBrowserWndHandle = NULL; | 137 SHANDLE_PTR hBrowserWndHandle = NULL; |
| 139 | 138 |
| 140 CComQIPtr<IWebBrowser2> browser = GetBrowser(); | 139 CComQIPtr<IWebBrowser2> browser = GetBrowser(); |
| 141 if (browser) | 140 if (browser) |
| 142 { | 141 { |
| 143 HRESULT hr = browser->get_HWND(&hBrowserWndHandle); | 142 HRESULT hr = browser->get_HWND(&hBrowserWndHandle); |
| 144 if (FAILED(hr)) | 143 if (FAILED(hr)) |
| 145 { | 144 { |
| 146 DEBUG_ERROR_LOG(hr, PLUGIN_ERROR_UI, PLUGIN_ERROR_UI_GET_BROWSER_WINDOW, "
Class::GetBrowserHWND - failed") | 145 DEBUG_ERROR_LOG(hr, PLUGIN_ERROR_UI, PLUGIN_ERROR_UI_GET_BROWSER_WINDOW, "
Class::GetBrowserHWND - failed"); |
| 147 } | 146 } |
| 148 } | 147 } |
| 149 | 148 |
| 150 return (HWND)hBrowserWndHandle; | 149 return (HWND)hBrowserWndHandle; |
| 151 } | 150 } |
| 152 | 151 |
| 153 | 152 |
| 154 CComQIPtr<IWebBrowser2> CPluginClass::GetBrowser() const | 153 CComQIPtr<IWebBrowser2> CPluginClass::GetBrowser() const |
| 155 { | 154 { |
| 156 CComQIPtr<IWebBrowser2> browser; | 155 CComQIPtr<IWebBrowser2> browser; |
| (...skipping 283 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 440 CComBSTR curLoc; | 439 CComBSTR curLoc; |
| 441 browser->get_LocationURL(&curLoc); | 440 browser->get_LocationURL(&curLoc); |
| 442 HRESULT hr = browser->Navigate(curLoc, &vFlags, NULL, NULL, NULL); | 441 HRESULT hr = browser->Navigate(curLoc, &vFlags, NULL, NULL, NULL); |
| 443 if (FAILED(hr)) | 442 if (FAILED(hr)) |
| 444 { | 443 { |
| 445 vFlags.intVal = navOpenInNewWindow; | 444 vFlags.intVal = navOpenInNewWindow; |
| 446 | 445 |
| 447 hr = browser->Navigate(CComBSTR(curLoc), &vFlags, NULL, NULL, NULL); | 446 hr = browser->Navigate(CComBSTR(curLoc), &vFlags, NULL, NULL, NULL); |
| 448 if (FAILED(hr)) | 447 if (FAILED(hr)) |
| 449 { | 448 { |
| 450 DEBUG_ERROR_LOG(hr, PLUGIN_ERROR_NAVIGATION, PLUGIN_ERROR_NAVIGATI
ON, "Navigation::Failed") | 449 DEBUG_ERROR_LOG(hr, PLUGIN_ERROR_NAVIGATION, PLUGIN_ERROR_NAVIGATI
ON, "Navigation::Failed"); |
| 451 } | 450 } |
| 452 } | 451 } |
| 453 browser->Quit(); | 452 browser->Quit(); |
| 454 } | 453 } |
| 455 } | 454 } |
| 456 } | 455 } |
| 457 else | 456 else |
| 458 { | 457 { |
| 459 DEBUG_ERROR_LOG(hr, PLUGIN_ERROR_UI, PLUGIN_ERROR_UI_GET_STATUSBAR, "Class
::Get statusbar state"); | 458 DEBUG_ERROR_LOG(hr, PLUGIN_ERROR_UI, PLUGIN_ERROR_UI_GET_STATUSBAR, "Class
::Get statusbar state"); |
| 460 } | 459 } |
| (...skipping 285 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 746 { | 745 { |
| 747 CriticalSection::Lock lock(m_csStatusBar); | 746 CriticalSection::Lock lock(m_csStatusBar); |
| 748 | 747 |
| 749 CPluginClient* client = CPluginClient::GetInstance(); | 748 CPluginClient* client = CPluginClient::GetInstance(); |
| 750 | 749 |
| 751 std::array<wchar_t, MAX_PATH> className; | 750 std::array<wchar_t, MAX_PATH> className; |
| 752 // Get browser window and url | 751 // Get browser window and url |
| 753 HWND hBrowserWnd = GetBrowserHWND(); | 752 HWND hBrowserWnd = GetBrowserHWND(); |
| 754 if (!hBrowserWnd) | 753 if (!hBrowserWnd) |
| 755 { | 754 { |
| 756 DEBUG_ERROR_LOG(0, PLUGIN_ERROR_UI, PLUGIN_ERROR_UI_NO_STATUSBAR_BROWSER, "C
lass::CreateStatusBarPane - No status bar") | 755 TRACE("No window handle for browser site", HERE_F); |
| 757 return false; | 756 return false; |
| 758 } | 757 } |
| 759 | 758 |
| 760 // Looking for a TabWindowClass window in IE7 | 759 // Looking for a TabWindowClass window in IE7 |
| 761 // the last one should be parent for statusbar | 760 // the last one should be parent for statusbar |
| 762 HWND hWndStatusBar = NULL; | 761 HWND hWndStatusBar = NULL; |
| 763 | 762 |
| 764 HWND hTabWnd = ::GetWindow(hBrowserWnd, GW_CHILD); | 763 HWND hTabWnd = ::GetWindow(hBrowserWnd, GW_CHILD); |
| 765 UINT amoundOfNewTabs = 0; | 764 UINT amoundOfNewTabs = 0; |
| 766 HWND uniqueNewTab = NULL; | 765 HWND uniqueNewTab = NULL; |
| (...skipping 61 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 828 { | 827 { |
| 829 hWndStatusBar = hWnd; | 828 hWndStatusBar = hWnd; |
| 830 break; | 829 break; |
| 831 } | 830 } |
| 832 | 831 |
| 833 hWnd = ::GetWindow(hWnd, GW_HWNDNEXT); | 832 hWnd = ::GetWindow(hWnd, GW_HWNDNEXT); |
| 834 } | 833 } |
| 835 | 834 |
| 836 if (!hWndStatusBar) | 835 if (!hWndStatusBar) |
| 837 { | 836 { |
| 838 DEBUG_ERROR_LOG(0, PLUGIN_ERROR_UI, PLUGIN_ERROR_UI_NO_STATUSBAR_WIN, "Class
::CreateStatusBarPane - No status bar") | 837 TRACE("No status bar", HERE_F); |
| 839 return true; | 838 return true; |
| 840 } | 839 } |
| 841 | 840 |
| 842 // Calculate pane height | 841 // Calculate pane height |
| 843 AdblockPlus::Rectangle rcStatusBar; | 842 AdblockPlus::Rectangle rcStatusBar; |
| 844 ::GetClientRect(hWndStatusBar, &rcStatusBar); | 843 ::GetClientRect(hWndStatusBar, &rcStatusBar); |
| 845 | 844 |
| 846 if (rcStatusBar.Height() > 0) | 845 if (rcStatusBar.Height() > 0) |
| 847 { | 846 { |
| 848 if (rcStatusBar.Height() < iconWidth) | 847 if (rcStatusBar.Height() < iconWidth) |
| (...skipping 23 matching lines...) Expand all Loading... |
| 872 L"", | 871 L"", |
| 873 WS_CHILD | WS_VISIBLE | WS_CLIPSIBLINGS | WS_CLIPCHILDREN, | 872 WS_CHILD | WS_VISIBLE | WS_CLIPSIBLINGS | WS_CLIPCHILDREN, |
| 874 rcStatusBar.Width() - 500, 0, m_nPaneWidth, rcStatusBar.Height(), | 873 rcStatusBar.Width() - 500, 0, m_nPaneWidth, rcStatusBar.Height(), |
| 875 hWndStatusBar, | 874 hWndStatusBar, |
| 876 (HMENU)3671, | 875 (HMENU)3671, |
| 877 _Module.m_hInst, | 876 _Module.m_hInst, |
| 878 NULL); | 877 NULL); |
| 879 | 878 |
| 880 if (!hWndNewPane) | 879 if (!hWndNewPane) |
| 881 { | 880 { |
| 882 DEBUG_ERROR_LOG(::GetLastError(), PLUGIN_ERROR_UI, PLUGIN_ERROR_UI_CREATE_ST
ATUSBAR_PANE, "Class::CreateStatusBarPane - CreateWindowEx") | 881 DEBUG_ERROR_LOG(::GetLastError(), PLUGIN_ERROR_UI, PLUGIN_ERROR_UI_CREATE_ST
ATUSBAR_PANE, "Class::CreateStatusBarPane - CreateWindowEx"); |
| 883 return false; | 882 return false; |
| 884 } | 883 } |
| 885 | 884 |
| 886 DEBUG_GENERAL("ABP window created"); | 885 DEBUG_GENERAL("ABP window created"); |
| 887 m_hTabWnd = hTabWnd; | 886 m_hTabWnd = hTabWnd; |
| 888 m_hStatusBarWnd = hWndStatusBar; | 887 m_hStatusBarWnd = hWndStatusBar; |
| 889 m_hPaneWnd = hWndNewPane; | 888 m_hPaneWnd = hWndNewPane; |
| 890 | 889 |
| 891 UpdateTheme(); | 890 UpdateTheme(); |
| 892 | 891 |
| (...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 928 | 927 |
| 929 HRESULT hr = GetAsyncBrowser()->Navigate(navigatePath, &vFlags, NULL, NULL, NU
LL); | 928 HRESULT hr = GetAsyncBrowser()->Navigate(navigatePath, &vFlags, NULL, NULL, NU
LL); |
| 930 if (FAILED(hr)) | 929 if (FAILED(hr)) |
| 931 { | 930 { |
| 932 vFlags.intVal = navOpenInNewWindow; | 931 vFlags.intVal = navOpenInNewWindow; |
| 933 hr = GetAsyncBrowser()->Navigate(navigatePath, &vFlags, NULL, NULL, NULL); | 932 hr = GetAsyncBrowser()->Navigate(navigatePath, &vFlags, NULL, NULL, NULL); |
| 934 } | 933 } |
| 935 | 934 |
| 936 if (FAILED(hr)) | 935 if (FAILED(hr)) |
| 937 { | 936 { |
| 938 DEBUG_ERROR_LOG(hr, PLUGIN_ERROR_NAVIGATION, PLUGIN_ERROR_NAVIGATION_WELCOME
, "Navigation::Welcome page failed") | 937 DEBUG_ERROR_LOG(hr, PLUGIN_ERROR_NAVIGATION, PLUGIN_ERROR_NAVIGATION_WELCOME
, "Navigation::Welcome page failed"); |
| 939 } | 938 } |
| 940 } | 939 } |
| 941 void CPluginClass::CloseTheme() | 940 void CPluginClass::CloseTheme() |
| 942 { | 941 { |
| 943 if (m_hTheme) | 942 if (m_hTheme) |
| 944 { | 943 { |
| 945 if (pfnClose) | 944 if (pfnClose) |
| 946 { | 945 { |
| 947 pfnClose(m_hTheme); | 946 pfnClose(m_hTheme); |
| 948 } | 947 } |
| (...skipping 161 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1110 auto userSettingsFileUrl = UserSettingsFileUrl(); | 1109 auto userSettingsFileUrl = UserSettingsFileUrl(); |
| 1111 ATL::CComBSTR urlToNavigate(static_cast<int>(userSettingsFileUrl.length(
)), userSettingsFileUrl.c_str()); | 1110 ATL::CComBSTR urlToNavigate(static_cast<int>(userSettingsFileUrl.length(
)), userSettingsFileUrl.c_str()); |
| 1112 HRESULT hr = browser->Navigate(urlToNavigate, &vFlags, NULL, NULL, NULL)
; | 1111 HRESULT hr = browser->Navigate(urlToNavigate, &vFlags, NULL, NULL, NULL)
; |
| 1113 if (FAILED(hr)) | 1112 if (FAILED(hr)) |
| 1114 { | 1113 { |
| 1115 vFlags.intVal = navOpenInNewWindow; | 1114 vFlags.intVal = navOpenInNewWindow; |
| 1116 | 1115 |
| 1117 hr = browser->Navigate(urlToNavigate, &vFlags, NULL, NULL, NULL); | 1116 hr = browser->Navigate(urlToNavigate, &vFlags, NULL, NULL, NULL); |
| 1118 if (FAILED(hr)) | 1117 if (FAILED(hr)) |
| 1119 { | 1118 { |
| 1120 DEBUG_ERROR_LOG(hr, PLUGIN_ERROR_NAVIGATION, PLUGIN_ERROR_NAVIGATION
_SETTINGS, "Navigation::Failed") | 1119 DEBUG_ERROR_LOG(hr, PLUGIN_ERROR_NAVIGATION, PLUGIN_ERROR_NAVIGATION
_SETTINGS, "Navigation::Failed"); |
| 1121 } | 1120 } |
| 1122 } | 1121 } |
| 1123 } | 1122 } |
| 1124 break; | 1123 break; |
| 1125 } | 1124 } |
| 1126 case ID_MENU_DISABLE_ON_SITE: | 1125 case ID_MENU_DISABLE_ON_SITE: |
| 1127 { | 1126 { |
| 1128 CPluginSettings* settings = CPluginSettings::GetInstance(); | 1127 CPluginSettings* settings = CPluginSettings::GetInstance(); |
| 1129 std::wstring urlString = GetTab()->GetDocumentUrl(); | 1128 std::wstring urlString = GetTab()->GetDocumentUrl(); |
| 1130 std::string filterText = client->GetWhitelistingFilter(urlString); | 1129 std::string filterText = client->GetWhitelistingFilter(urlString); |
| (...skipping 414 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1545 case WM_DESTROY: | 1544 case WM_DESTROY: |
| 1546 break; | 1545 break; |
| 1547 case SC_CLOSE: | 1546 case SC_CLOSE: |
| 1548 break; | 1547 break; |
| 1549 | 1548 |
| 1550 case WM_UPDATEUISTATE: | 1549 case WM_UPDATEUISTATE: |
| 1551 { | 1550 { |
| 1552 CPluginTab* tab = GetTab(::GetCurrentThreadId()); | 1551 CPluginTab* tab = GetTab(::GetCurrentThreadId()); |
| 1553 if (tab) | 1552 if (tab) |
| 1554 { | 1553 { |
| 1555 tab->OnActivate(); | |
| 1556 RECT rect; | 1554 RECT rect; |
| 1557 GetWindowRect(pClass->m_hPaneWnd, &rect); | 1555 GetWindowRect(pClass->m_hPaneWnd, &rect); |
| 1558 pClass->notificationMessage.Move(rect.left + (rect.right - rect.left) /
2, rect.top + (rect.bottom - rect.top) / 2); | 1556 pClass->notificationMessage.Move(rect.left + (rect.right - rect.left) /
2, rect.top + (rect.bottom - rect.top) / 2); |
| 1559 } | 1557 } |
| 1560 if (LOWORD(wParam) == UIS_CLEAR) | 1558 if (LOWORD(wParam) == UIS_CLEAR) |
| 1561 { | 1559 { |
| 1562 pClass->notificationMessage.Hide(); | 1560 pClass->notificationMessage.Hide(); |
| 1563 } | 1561 } |
| 1564 } | 1562 } |
| 1565 break; | 1563 break; |
| (...skipping 106 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1672 return s_atomPaneClass; | 1670 return s_atomPaneClass; |
| 1673 } | 1671 } |
| 1674 | 1672 |
| 1675 HWND CPluginClass::GetTabHWND() const | 1673 HWND CPluginClass::GetTabHWND() const |
| 1676 { | 1674 { |
| 1677 std::array<wchar_t, MAX_PATH> className; | 1675 std::array<wchar_t, MAX_PATH> className; |
| 1678 // Get browser window and url | 1676 // Get browser window and url |
| 1679 HWND hBrowserWnd = GetBrowserHWND(); | 1677 HWND hBrowserWnd = GetBrowserHWND(); |
| 1680 if (!hBrowserWnd) | 1678 if (!hBrowserWnd) |
| 1681 { | 1679 { |
| 1682 DEBUG_ERROR_LOG(0, PLUGIN_ERROR_UI, PLUGIN_ERROR_UI_NO_STATUSBAR_BROWSER, "C
lass::GetTabWindow - No tab window") | 1680 DEBUG_ERROR_LOG(0, PLUGIN_ERROR_UI, PLUGIN_ERROR_UI_NO_STATUSBAR_BROWSER, "C
lass::GetTabWindow - No tab window"); |
| 1683 s_criticalSectionWindow.Unlock(); | 1681 s_criticalSectionWindow.Unlock(); |
| 1684 | |
| 1685 return false; | 1682 return false; |
| 1686 } | 1683 } |
| 1687 | 1684 |
| 1688 // Looking for a TabWindowClass window in IE7 | 1685 // Looking for a TabWindowClass window in IE7 |
| 1689 | 1686 |
| 1690 HWND hTabWnd = ::GetWindow(hBrowserWnd, GW_CHILD); | 1687 HWND hTabWnd = ::GetWindow(hBrowserWnd, GW_CHILD); |
| 1691 while (hTabWnd) | 1688 while (hTabWnd) |
| 1692 { | 1689 { |
| 1693 className[0] = L'\0'; | 1690 className[0] = L'\0'; |
| 1694 int classNameLength = GetClassNameW(hTabWnd, className.data(), className.siz
e()); | 1691 int classNameLength = GetClassNameW(hTabWnd, className.data(), className.siz
e()); |
| (...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1732 s_criticalSectionLocal.Unlock(); | 1729 s_criticalSectionLocal.Unlock(); |
| 1733 | 1730 |
| 1734 } | 1731 } |
| 1735 } | 1732 } |
| 1736 } | 1733 } |
| 1737 | 1734 |
| 1738 hTabWnd = ::GetWindow(hTabWnd, GW_HWNDNEXT); | 1735 hTabWnd = ::GetWindow(hTabWnd, GW_HWNDNEXT); |
| 1739 } | 1736 } |
| 1740 return hTabWnd; | 1737 return hTabWnd; |
| 1741 } | 1738 } |
| OLD | NEW |