| 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 282 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 439 CComBSTR curLoc; | 438 CComBSTR curLoc; |
| 440 browser->get_LocationURL(&curLoc); | 439 browser->get_LocationURL(&curLoc); |
| 441 HRESULT hr = browser->Navigate(curLoc, &vFlags, NULL, NULL, NULL); | 440 HRESULT hr = browser->Navigate(curLoc, &vFlags, NULL, NULL, NULL); |
| 442 if (FAILED(hr)) | 441 if (FAILED(hr)) |
| 443 { | 442 { |
| 444 vFlags.intVal = navOpenInNewWindow; | 443 vFlags.intVal = navOpenInNewWindow; |
| 445 | 444 |
| 446 hr = browser->Navigate(CComBSTR(curLoc), &vFlags, NULL, NULL, NULL); | 445 hr = browser->Navigate(CComBSTR(curLoc), &vFlags, NULL, NULL, NULL); |
| 447 if (FAILED(hr)) | 446 if (FAILED(hr)) |
| 448 { | 447 { |
| 449 DEBUG_ERROR_LOG(hr, PLUGIN_ERROR_NAVIGATION, PLUGIN_ERROR_NAVIGATI
ON, "Navigation::Failed") | 448 DEBUG_ERROR_LOG(hr, PLUGIN_ERROR_NAVIGATION, PLUGIN_ERROR_NAVIGATI
ON, "Navigation::Failed"); |
| 450 } | 449 } |
| 451 } | 450 } |
| 452 browser->Quit(); | 451 browser->Quit(); |
| 453 } | 452 } |
| 454 } | 453 } |
| 455 } | 454 } |
| 456 else | 455 else |
| 457 { | 456 { |
| 458 DEBUG_ERROR_LOG(hr, PLUGIN_ERROR_UI, PLUGIN_ERROR_UI_GET_STATUSBAR, "Class
::Get statusbar state"); | 457 DEBUG_ERROR_LOG(hr, PLUGIN_ERROR_UI, PLUGIN_ERROR_UI_GET_STATUSBAR, "Class
::Get statusbar state"); |
| 459 } | 458 } |
| (...skipping 283 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 743 { | 742 { |
| 744 CriticalSection::Lock lock(m_csStatusBar); | 743 CriticalSection::Lock lock(m_csStatusBar); |
| 745 | 744 |
| 746 CPluginClient* client = CPluginClient::GetInstance(); | 745 CPluginClient* client = CPluginClient::GetInstance(); |
| 747 | 746 |
| 748 std::array<wchar_t, MAX_PATH> className; | 747 std::array<wchar_t, MAX_PATH> className; |
| 749 // Get browser window and url | 748 // Get browser window and url |
| 750 HWND hBrowserWnd = GetBrowserHWND(); | 749 HWND hBrowserWnd = GetBrowserHWND(); |
| 751 if (!hBrowserWnd) | 750 if (!hBrowserWnd) |
| 752 { | 751 { |
| 753 DEBUG_ERROR_LOG(0, PLUGIN_ERROR_UI, PLUGIN_ERROR_UI_NO_STATUSBAR_BROWSER, "C
lass::CreateStatusBarPane - No status bar") | 752 TRACE("No window handle for browser site", HERE_F); |
| 754 return false; | 753 return false; |
| 755 } | 754 } |
| 756 | 755 |
| 757 // Looking for a TabWindowClass window in IE7 | 756 // Looking for a TabWindowClass window in IE7 |
| 758 // the last one should be parent for statusbar | 757 // the last one should be parent for statusbar |
| 759 HWND hWndStatusBar = NULL; | 758 HWND hWndStatusBar = NULL; |
| 760 | 759 |
| 761 HWND hTabWnd = ::GetWindow(hBrowserWnd, GW_CHILD); | 760 HWND hTabWnd = ::GetWindow(hBrowserWnd, GW_CHILD); |
| 762 UINT amoundOfNewTabs = 0; | 761 UINT amoundOfNewTabs = 0; |
| 763 HWND uniqueNewTab = NULL; | 762 HWND uniqueNewTab = NULL; |
| (...skipping 61 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 825 { | 824 { |
| 826 hWndStatusBar = hWnd; | 825 hWndStatusBar = hWnd; |
| 827 break; | 826 break; |
| 828 } | 827 } |
| 829 | 828 |
| 830 hWnd = ::GetWindow(hWnd, GW_HWNDNEXT); | 829 hWnd = ::GetWindow(hWnd, GW_HWNDNEXT); |
| 831 } | 830 } |
| 832 | 831 |
| 833 if (!hWndStatusBar) | 832 if (!hWndStatusBar) |
| 834 { | 833 { |
| 835 DEBUG_ERROR_LOG(0, PLUGIN_ERROR_UI, PLUGIN_ERROR_UI_NO_STATUSBAR_WIN, "Class
::CreateStatusBarPane - No status bar") | 834 TRACE("No status bar", HERE_F); |
| 836 return true; | 835 return true; |
| 837 } | 836 } |
| 838 | 837 |
| 839 // Calculate pane height | 838 // Calculate pane height |
| 840 AdblockPlus::Rectangle rcStatusBar; | 839 AdblockPlus::Rectangle rcStatusBar; |
| 841 ::GetClientRect(hWndStatusBar, &rcStatusBar); | 840 ::GetClientRect(hWndStatusBar, &rcStatusBar); |
| 842 | 841 |
| 843 if (rcStatusBar.Height() > 0) | 842 if (rcStatusBar.Height() > 0) |
| 844 { | 843 { |
| 845 if (rcStatusBar.Height() < iconWidth) | 844 if (rcStatusBar.Height() < iconWidth) |
| (...skipping 23 matching lines...) Expand all Loading... |
| 869 L"", | 868 L"", |
| 870 WS_CHILD | WS_VISIBLE | WS_CLIPSIBLINGS | WS_CLIPCHILDREN, | 869 WS_CHILD | WS_VISIBLE | WS_CLIPSIBLINGS | WS_CLIPCHILDREN, |
| 871 rcStatusBar.Width() - 500, 0, m_nPaneWidth, rcStatusBar.Height(), | 870 rcStatusBar.Width() - 500, 0, m_nPaneWidth, rcStatusBar.Height(), |
| 872 hWndStatusBar, | 871 hWndStatusBar, |
| 873 (HMENU)3671, | 872 (HMENU)3671, |
| 874 _Module.m_hInst, | 873 _Module.m_hInst, |
| 875 NULL); | 874 NULL); |
| 876 | 875 |
| 877 if (!hWndNewPane) | 876 if (!hWndNewPane) |
| 878 { | 877 { |
| 879 DEBUG_ERROR_LOG(::GetLastError(), PLUGIN_ERROR_UI, PLUGIN_ERROR_UI_CREATE_ST
ATUSBAR_PANE, "Class::CreateStatusBarPane - CreateWindowEx") | 878 DEBUG_ERROR_LOG(::GetLastError(), PLUGIN_ERROR_UI, PLUGIN_ERROR_UI_CREATE_ST
ATUSBAR_PANE, "Class::CreateStatusBarPane - CreateWindowEx"); |
| 880 return false; | 879 return false; |
| 881 } | 880 } |
| 882 | 881 |
| 883 DEBUG_GENERAL("ABP window created"); | 882 DEBUG_GENERAL("ABP window created"); |
| 884 m_hTabWnd = hTabWnd; | 883 m_hTabWnd = hTabWnd; |
| 885 m_hStatusBarWnd = hWndStatusBar; | 884 m_hStatusBarWnd = hWndStatusBar; |
| 886 m_hPaneWnd = hWndNewPane; | 885 m_hPaneWnd = hWndNewPane; |
| 887 | 886 |
| 888 UpdateTheme(); | 887 UpdateTheme(); |
| 889 | 888 |
| (...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 925 | 924 |
| 926 HRESULT hr = GetAsyncBrowser()->Navigate(navigatePath, &vFlags, NULL, NULL, NU
LL); | 925 HRESULT hr = GetAsyncBrowser()->Navigate(navigatePath, &vFlags, NULL, NULL, NU
LL); |
| 927 if (FAILED(hr)) | 926 if (FAILED(hr)) |
| 928 { | 927 { |
| 929 vFlags.intVal = navOpenInNewWindow; | 928 vFlags.intVal = navOpenInNewWindow; |
| 930 hr = GetAsyncBrowser()->Navigate(navigatePath, &vFlags, NULL, NULL, NULL); | 929 hr = GetAsyncBrowser()->Navigate(navigatePath, &vFlags, NULL, NULL, NULL); |
| 931 } | 930 } |
| 932 | 931 |
| 933 if (FAILED(hr)) | 932 if (FAILED(hr)) |
| 934 { | 933 { |
| 935 DEBUG_ERROR_LOG(hr, PLUGIN_ERROR_NAVIGATION, PLUGIN_ERROR_NAVIGATION_WELCOME
, "Navigation::Welcome page failed") | 934 DEBUG_ERROR_LOG(hr, PLUGIN_ERROR_NAVIGATION, PLUGIN_ERROR_NAVIGATION_WELCOME
, "Navigation::Welcome page failed"); |
| 936 } | 935 } |
| 937 } | 936 } |
| 938 void CPluginClass::CloseTheme() | 937 void CPluginClass::CloseTheme() |
| 939 { | 938 { |
| 940 if (m_hTheme) | 939 if (m_hTheme) |
| 941 { | 940 { |
| 942 if (pfnClose) | 941 if (pfnClose) |
| 943 { | 942 { |
| 944 pfnClose(m_hTheme); | 943 pfnClose(m_hTheme); |
| 945 } | 944 } |
| (...skipping 161 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1107 auto userSettingsFileUrl = UserSettingsFileUrl(); | 1106 auto userSettingsFileUrl = UserSettingsFileUrl(); |
| 1108 ATL::CComBSTR urlToNavigate(static_cast<int>(userSettingsFileUrl.length(
)), userSettingsFileUrl.c_str()); | 1107 ATL::CComBSTR urlToNavigate(static_cast<int>(userSettingsFileUrl.length(
)), userSettingsFileUrl.c_str()); |
| 1109 HRESULT hr = browser->Navigate(urlToNavigate, &vFlags, NULL, NULL, NULL)
; | 1108 HRESULT hr = browser->Navigate(urlToNavigate, &vFlags, NULL, NULL, NULL)
; |
| 1110 if (FAILED(hr)) | 1109 if (FAILED(hr)) |
| 1111 { | 1110 { |
| 1112 vFlags.intVal = navOpenInNewWindow; | 1111 vFlags.intVal = navOpenInNewWindow; |
| 1113 | 1112 |
| 1114 hr = browser->Navigate(urlToNavigate, &vFlags, NULL, NULL, NULL); | 1113 hr = browser->Navigate(urlToNavigate, &vFlags, NULL, NULL, NULL); |
| 1115 if (FAILED(hr)) | 1114 if (FAILED(hr)) |
| 1116 { | 1115 { |
| 1117 DEBUG_ERROR_LOG(hr, PLUGIN_ERROR_NAVIGATION, PLUGIN_ERROR_NAVIGATION
_SETTINGS, "Navigation::Failed") | 1116 DEBUG_ERROR_LOG(hr, PLUGIN_ERROR_NAVIGATION, PLUGIN_ERROR_NAVIGATION
_SETTINGS, "Navigation::Failed"); |
| 1118 } | 1117 } |
| 1119 } | 1118 } |
| 1120 } | 1119 } |
| 1121 break; | 1120 break; |
| 1122 } | 1121 } |
| 1123 case ID_MENU_DISABLE_ON_SITE: | 1122 case ID_MENU_DISABLE_ON_SITE: |
| 1124 { | 1123 { |
| 1125 std::wstring urlString = GetTab()->GetDocumentUrl(); | 1124 std::wstring urlString = GetTab()->GetDocumentUrl(); |
| 1126 std::string filterText = client->GetWhitelistingFilter(urlString); | 1125 std::string filterText = client->GetWhitelistingFilter(urlString); |
| 1127 if (!filterText.empty()) | 1126 if (!filterText.empty()) |
| (...skipping 413 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1541 case WM_DESTROY: | 1540 case WM_DESTROY: |
| 1542 break; | 1541 break; |
| 1543 case SC_CLOSE: | 1542 case SC_CLOSE: |
| 1544 break; | 1543 break; |
| 1545 | 1544 |
| 1546 case WM_UPDATEUISTATE: | 1545 case WM_UPDATEUISTATE: |
| 1547 { | 1546 { |
| 1548 CPluginTab* tab = GetTab(::GetCurrentThreadId()); | 1547 CPluginTab* tab = GetTab(::GetCurrentThreadId()); |
| 1549 if (tab) | 1548 if (tab) |
| 1550 { | 1549 { |
| 1551 tab->OnActivate(); | |
| 1552 RECT rect; | 1550 RECT rect; |
| 1553 GetWindowRect(pClass->m_hPaneWnd, &rect); | 1551 GetWindowRect(pClass->m_hPaneWnd, &rect); |
| 1554 pClass->notificationMessage.Move(rect.left + (rect.right - rect.left) /
2, rect.top + (rect.bottom - rect.top) / 2); | 1552 pClass->notificationMessage.Move(rect.left + (rect.right - rect.left) /
2, rect.top + (rect.bottom - rect.top) / 2); |
| 1555 } | 1553 } |
| 1556 if (LOWORD(wParam) == UIS_CLEAR) | 1554 if (LOWORD(wParam) == UIS_CLEAR) |
| 1557 { | 1555 { |
| 1558 pClass->notificationMessage.Hide(); | 1556 pClass->notificationMessage.Hide(); |
| 1559 } | 1557 } |
| 1560 } | 1558 } |
| 1561 break; | 1559 break; |
| (...skipping 106 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1668 return s_atomPaneClass; | 1666 return s_atomPaneClass; |
| 1669 } | 1667 } |
| 1670 | 1668 |
| 1671 HWND CPluginClass::GetTabHWND() const | 1669 HWND CPluginClass::GetTabHWND() const |
| 1672 { | 1670 { |
| 1673 std::array<wchar_t, MAX_PATH> className; | 1671 std::array<wchar_t, MAX_PATH> className; |
| 1674 // Get browser window and url | 1672 // Get browser window and url |
| 1675 HWND hBrowserWnd = GetBrowserHWND(); | 1673 HWND hBrowserWnd = GetBrowserHWND(); |
| 1676 if (!hBrowserWnd) | 1674 if (!hBrowserWnd) |
| 1677 { | 1675 { |
| 1678 DEBUG_ERROR_LOG(0, PLUGIN_ERROR_UI, PLUGIN_ERROR_UI_NO_STATUSBAR_BROWSER, "C
lass::GetTabWindow - No tab window") | 1676 DEBUG_ERROR_LOG(0, PLUGIN_ERROR_UI, PLUGIN_ERROR_UI_NO_STATUSBAR_BROWSER, "C
lass::GetTabWindow - No tab window"); |
| 1679 s_criticalSectionWindow.Unlock(); | 1677 s_criticalSectionWindow.Unlock(); |
| 1680 | |
| 1681 return false; | 1678 return false; |
| 1682 } | 1679 } |
| 1683 | 1680 |
| 1684 // Looking for a TabWindowClass window in IE7 | 1681 // Looking for a TabWindowClass window in IE7 |
| 1685 | 1682 |
| 1686 HWND hTabWnd = ::GetWindow(hBrowserWnd, GW_CHILD); | 1683 HWND hTabWnd = ::GetWindow(hBrowserWnd, GW_CHILD); |
| 1687 while (hTabWnd) | 1684 while (hTabWnd) |
| 1688 { | 1685 { |
| 1689 className[0] = L'\0'; | 1686 className[0] = L'\0'; |
| 1690 int classNameLength = GetClassNameW(hTabWnd, className.data(), className.siz
e()); | 1687 int classNameLength = GetClassNameW(hTabWnd, className.data(), className.siz
e()); |
| (...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1728 s_criticalSectionLocal.Unlock(); | 1725 s_criticalSectionLocal.Unlock(); |
| 1729 | 1726 |
| 1730 } | 1727 } |
| 1731 } | 1728 } |
| 1732 } | 1729 } |
| 1733 | 1730 |
| 1734 hTabWnd = ::GetWindow(hTabWnd, GW_HWNDNEXT); | 1731 hTabWnd = ::GetWindow(hTabWnd, GW_HWNDNEXT); |
| 1735 } | 1732 } |
| 1736 return hTabWnd; | 1733 return hTabWnd; |
| 1737 } | 1734 } |
| OLD | NEW |