OLD | NEW |
1 #include "PluginStdAfx.h" | 1 #include "PluginStdAfx.h" |
2 | 2 |
3 #include "PluginClass.h" | 3 #include "PluginClass.h" |
4 #include "PluginDictionary.h" | 4 #include "PluginDictionary.h" |
5 #include "PluginSettings.h" | 5 #include "PluginSettings.h" |
6 #include "PluginSystem.h" | 6 #include "PluginSystem.h" |
7 #ifdef SUPPORT_FILTER | 7 #ifdef SUPPORT_FILTER |
8 #include "PluginFilter.h" | 8 #include "PluginFilter.h" |
9 #endif | 9 #endif |
10 #include "PluginMimeFilterClient.h" | 10 #include "PluginMimeFilterClient.h" |
(...skipping 614 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
625 } | 625 } |
626 } | 626 } |
627 } | 627 } |
628 else | 628 else |
629 { | 629 { |
630 DEBUG_ERROR_LOG(hr, PLUGIN_ERROR_UI, PLUGIN_ERROR_UI_GET
_STATUSBAR, "Class::Get statusbar state"); | 630 DEBUG_ERROR_LOG(hr, PLUGIN_ERROR_UI, PLUGIN_ERROR_UI_GET
_STATUSBAR, "Class::Get statusbar state"); |
631 } | 631 } |
632 } | 632 } |
633 } | 633 } |
634 | 634 |
635 void CPluginClass::DisplayActivateMessage() | |
636 { | |
637 CPluginSettings* settings = CPluginSettings::GetInstance(); | |
638 | |
639 CString messageString; | |
640 messageString.Format(L"The daily adblocklimit has been reached and no-mo
re ads are blocked today.\nThe free version of Simple Adblock only blocks %d adr
equests a day.\n\nTo enjoy unlimited adblocking please upgrade.", settings->GetV
alue(SETTING_PLUGIN_ADBLOCKLIMIT, 0)); | |
641 | |
642 settings->SetValue(SETTING_PLUGIN_ADBLOCKCOUNT, settings->GetValue(SETTI
NG_PLUGIN_ADBLOCKLIMIT, 0) + 1); | |
643 settings->Write(); | |
644 | |
645 LRESULT res = MessageBox(NULL, messageString, L"Upgrade to Simple Adbloc
k Pro", MB_OKCANCEL); | |
646 if (res == IDOK) | |
647 { | |
648 CPluginSettings* settings = CPluginSettings::GetInstance(); | |
649 CPluginHttpRequest httpRequest(USERS_SCRIPT_UPGRADE); | |
650 CPluginSystem* system = CPluginSystem::GetInstance(); | |
651 httpRequest.Add(L"plugin", system->GetPluginId()); | |
652 httpRequest.Add(L"user", settings->GetString(SETTING_USER_ID)); | |
653 httpRequest.Add(L"version", settings->GetString(SETTING_PLUGIN_V
ERSION)); | |
654 CString url = httpRequest.GetUrl(); | |
655 | |
656 CPluginTab* tab = CPluginClass::GetTab(::GetCurrentThreadId());
| |
657 CComQIPtr<IWebBrowser2> browser = tab->m_plugin->GetBrowser();
| |
658 if (!url.IsEmpty() && browser) | |
659 { | |
660 VARIANT vFlags; | |
661 vFlags.vt = VT_I4; | |
662 vFlags.intVal = navOpenInNewTab; | |
663 | |
664 HRESULT hr = browser->Navigate(CComBSTR(url), &vFlags, N
ULL, NULL, NULL); | |
665 if (FAILED(hr)) | |
666 { | |
667 vFlags.intVal = navOpenInNewWindow; | |
668 | |
669 hr = browser->Navigate(CComBSTR(url), &vFlags, N
ULL, NULL, NULL); | |
670 } | |
671 } | |
672 } | |
673 } | |
674 void CPluginClass::BeforeNavigate2(DISPPARAMS* pDispParams) | 635 void CPluginClass::BeforeNavigate2(DISPPARAMS* pDispParams) |
675 { | 636 { |
676 | 637 |
677 if (pDispParams->cArgs < 7) | 638 if (pDispParams->cArgs < 7) |
678 { | 639 { |
679 return; | 640 return; |
680 } | 641 } |
681 » CPluginSettings* settings = CPluginSettings::GetInstance(); | 642 » //Register a mime filter if it's not registered yet |
682 » //Reset adblockcount every day | 643 » if (s_mimeFilter == NULL) |
683 » SYSTEMTIME stNow; | |
684 » GetSystemTime(&stNow); | |
685 » WORD limitDay = settings->GetValue(SETTING_PLUGIN_LIMITDAY, 0); | |
686 » if (limitDay != stNow.wDay) | |
687 { | 644 { |
688 » » settings->SetValue(SETTING_PLUGIN_ADBLOCKCOUNT, 0); | 645 » » s_mimeFilter = CPluginClientFactory::GetMimeFilterClientInstance
(); |
689 » » settings->SetValue(SETTING_PLUGIN_LIMITDAY, stNow.wDay); | |
690 » » settings->Write(); | |
691 » » settings->Read(); | |
692 | |
693 » » //Also register a mime filter if it's not registered yet | |
694 » » if (s_mimeFilter == NULL) | |
695 » » { | |
696 » » » s_mimeFilter = CPluginClientFactory::GetMimeFilterClient
Instance(); | |
697 » » } | |
698 | |
699 » } | |
700 | |
701 » if (!settings->GetBool(SETTING_PLUGIN_REGISTRATION, false)) | |
702 » { | |
703 » » if ((settings->GetValue(SETTING_PLUGIN_ADBLOCKCOUNT, 0) == setti
ngs->GetValue(SETTING_PLUGIN_ADBLOCKLIMIT, 0)) | |
704 » » » && (settings->GetValue(SETTING_PLUGIN_ADBLOCKLIMIT, 0) >
0)) | |
705 » » { | |
706 » » » DisplayActivateMessage(); | |
707 » » } | |
708 } | 646 } |
709 | 647 |
710 // Get the IWebBrowser2 interface | 648 // Get the IWebBrowser2 interface |
711 CComQIPtr<IWebBrowser2, &IID_IWebBrowser2> WebBrowser2Ptr; | 649 CComQIPtr<IWebBrowser2, &IID_IWebBrowser2> WebBrowser2Ptr; |
712 VARTYPE vt = pDispParams->rgvarg[6].vt; | 650 VARTYPE vt = pDispParams->rgvarg[6].vt; |
713 if (vt == VT_DISPATCH) | 651 if (vt == VT_DISPATCH) |
714 { | 652 { |
715 WebBrowser2Ptr = pDispParams->rgvarg[6].pdispVal; | 653 WebBrowser2Ptr = pDispParams->rgvarg[6].pdispVal; |
716 } | 654 } |
717 else | 655 else |
(...skipping 693 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1411 ::DestroyWindow(hMenuWnd); | 1349 ::DestroyWindow(hMenuWnd); |
1412 | 1350 |
1413 switch (nCommand) | 1351 switch (nCommand) |
1414 { | 1352 { |
1415 case ID_PLUGIN_UPDATE: | 1353 case ID_PLUGIN_UPDATE: |
1416 { | 1354 { |
1417 s_isPluginToBeUpdated = true; | 1355 s_isPluginToBeUpdated = true; |
1418 } | 1356 } |
1419 break; | 1357 break; |
1420 | 1358 |
1421 case ID_PLUGIN_ACTIVATE: | |
1422 { | |
1423 url = CPluginHttpRequest::GetStandardUrl(USERS_SCRIPT_AC
TIVATE); | |
1424 navigationErrorId = PLUGIN_ERROR_NAVIGATION_ACTIVATE; | |
1425 } | |
1426 break; | |
1427 | |
1428 case ID_PLUGIN_ENABLE: | 1359 case ID_PLUGIN_ENABLE: |
1429 { | 1360 { |
1430 CPluginSettings* settings = CPluginSettings::GetInstance
(); | 1361 CPluginSettings* settings = CPluginSettings::GetInstance
(); |
1431 » » » //Display activation menu if enabling expired plugin | 1362 |
1432 » » » if (!settings->GetPluginEnabled()) | |
1433 » » » { | |
1434 » » » » if (!settings->GetBool(SETTING_PLUGIN_REGISTRATI
ON, false) && | |
1435 » » » » » (settings->GetValue(SETTING_PLUGIN_ADBLO
CKCOUNT, 0) >=settings->GetValue(SETTING_PLUGIN_ADBLOCKLIMIT, 0)) && | |
1436 » » » » » (settings->GetValue(SETTING_PLUGIN_ADBLO
CKLIMIT, 0) > 0)) | |
1437 » » » » {» » | |
1438 » » » » » DisplayActivateMessage(); | |
1439 » » » » » return; | |
1440 » » » » } | |
1441 » » » } | |
1442 settings->TogglePluginEnabled(); | 1363 settings->TogglePluginEnabled(); |
1443 | 1364 |
1444 // Enable / disable mime filter | 1365 // Enable / disable mime filter |
1445 s_criticalSectionLocal.Lock(); | 1366 s_criticalSectionLocal.Lock(); |
1446 { | 1367 { |
1447 //Display activation menu if enabling expired pl
ugin | |
1448 if (settings->GetPluginEnabled()) | 1368 if (settings->GetPluginEnabled()) |
1449 { | 1369 { |
1450 s_mimeFilter = CPluginClientFactory::Get
MimeFilterClientInstance(); | 1370 s_mimeFilter = CPluginClientFactory::Get
MimeFilterClientInstance(); |
1451 } | 1371 } |
1452 else | 1372 else |
1453 { | 1373 { |
1454 s_mimeFilter = NULL; | 1374 s_mimeFilter = NULL; |
1455 | 1375 |
1456 CPluginClientFactory::ReleaseMimeFilterC
lientInstance(); | 1376 CPluginClientFactory::ReleaseMimeFilterC
lientInstance(); |
1457 } | 1377 } |
(...skipping 240 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1698 | 1618 |
1699 CPluginClient* client = CPluginClient::GetInstance(); | 1619 CPluginClient* client = CPluginClient::GetInstance(); |
1700 | 1620 |
1701 CPluginSettings* settings = CPluginSettings::GetInstance(); | 1621 CPluginSettings* settings = CPluginSettings::GetInstance(); |
1702 | 1622 |
1703 settings->RefreshTab(); | 1623 settings->RefreshTab(); |
1704 | 1624 |
1705 // Update settings | 1625 // Update settings |
1706 m_tab->OnUpdateSettings(false); | 1626 m_tab->OnUpdateSettings(false); |
1707 | 1627 |
1708 #ifndef ENTERPRISE | |
1709 // Plugin activate | |
1710 if (!settings->GetBool(SETTING_PLUGIN_REGISTRATION, false)) | |
1711 { | |
1712 ctext = dictionary->Lookup("MENU_ACTIVATE"); | |
1713 fmii.fMask = MIIM_STATE | MIIM_STRING; | |
1714 fmii.fState = MFS_ENABLED; | |
1715 fmii.dwTypeData = ctext.GetBuffer(); | |
1716 fmii.cch = ctext.GetLength(); | |
1717 ::SetMenuItemInfo(hMenu, ID_PLUGIN_ACTIVATE, FALSE, &fmii); | |
1718 } | |
1719 else | |
1720 { | |
1721 ::DeleteMenu(hMenu, ID_PLUGIN_ACTIVATE, FALSE); | |
1722 } | |
1723 #else | |
1724 ::DeleteMenu(hMenu, ID_PLUGIN_ACTIVATE, FALSE); | |
1725 #endif | |
1726 #ifndef ENTERPRISE | |
1727 // Plugin update | 1628 // Plugin update |
1728 if (settings->IsPluginUpdateAvailable()) | 1629 if (settings->IsPluginUpdateAvailable()) |
1729 { | 1630 { |
1730 ctext = dictionary->Lookup("MENU_UPDATE"); | 1631 ctext = dictionary->Lookup("MENU_UPDATE"); |
1731 fmii.fMask = MIIM_STATE | MIIM_STRING; | 1632 fmii.fMask = MIIM_STATE | MIIM_STRING; |
1732 fmii.fState = MFS_ENABLED; | 1633 fmii.fState = MFS_ENABLED; |
1733 fmii.dwTypeData = ctext.GetBuffer(); | 1634 fmii.dwTypeData = ctext.GetBuffer(); |
1734 fmii.cch = ctext.GetLength(); | 1635 fmii.cch = ctext.GetLength(); |
1735 ::SetMenuItemInfo(hMenu, ID_PLUGIN_UPDATE, FALSE, &fmii); | 1636 ::SetMenuItemInfo(hMenu, ID_PLUGIN_UPDATE, FALSE, &fmii); |
1736 } | 1637 } |
1737 else | 1638 else |
1738 { | 1639 { |
1739 ::DeleteMenu(hMenu, ID_PLUGIN_UPDATE, FALSE); | 1640 ::DeleteMenu(hMenu, ID_PLUGIN_UPDATE, FALSE); |
1740 } | 1641 } |
1741 #else | |
1742 ::DeleteMenu(hMenu, ID_PLUGIN_UPDATE, FALSE); | |
1743 #endif | |
1744 #ifdef SUPPORT_WHITELIST | 1642 #ifdef SUPPORT_WHITELIST |
1745 { | 1643 { |
1746 // White list domain | 1644 // White list domain |
1747 ctext = dictionary->Lookup("MENU_DISABLE_ON"); | 1645 ctext = dictionary->Lookup("MENU_DISABLE_ON"); |
1748 fmii.fMask = MIIM_STRING | MIIM_STATE; | 1646 fmii.fMask = MIIM_STRING | MIIM_STATE; |
1749 fmii.fState = MFS_DISABLED; | 1647 fmii.fState = MFS_DISABLED; |
1750 fmii.dwTypeData = ctext.GetBuffer(); | 1648 fmii.dwTypeData = ctext.GetBuffer(); |
1751 fmii.cch = ctext.GetLength(); | 1649 fmii.cch = ctext.GetLength(); |
1752 | 1650 |
1753 UINT index = WM_WHITELIST_DOMAIN; | 1651 UINT index = WM_WHITELIST_DOMAIN; |
(...skipping 813 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2567 } | 2465 } |
2568 } | 2466 } |
2569 } | 2467 } |
2570 | 2468 |
2571 hTabWnd = ::GetWindow(hTabWnd, GW_HWNDNEXT); | 2469 hTabWnd = ::GetWindow(hTabWnd, GW_HWNDNEXT); |
2572 } | 2470 } |
2573 | 2471 |
2574 return hTabWnd; | 2472 return hTabWnd; |
2575 | 2473 |
2576 } | 2474 } |
OLD | NEW |