Rietveld Code Review Tool
Help | Bug tracker | Discussion group | Source code

Delta Between Two Patch Sets: src/plugin/PluginClass.cpp

Issue 5516878722105344: Issue #276 - replace TCHAR etc. with wide-character versions (Closed)
Left Patch Set: Created July 26, 2014, 2:20 p.m.
Right Patch Set: Created Aug. 5, 2014, 3:17 p.m.
Left:
Right:
Use n/p to move between diff chunks; N/P to move between comments.
Jump to:
Left: Side by side diff | Download
Right: Side by side diff | Download
« no previous file with change/comment | « src/plugin/Plugin.cpp ('k') | src/plugin/PluginFilter.cpp » ('j') | no next file with change/comment »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
LEFTRIGHT
1 #include "PluginStdAfx.h" 1 #include "PluginStdAfx.h"
2 2
3 #include "PluginClass.h" 3 #include "PluginClass.h"
4 #include "COM_Value.h"
5 #include "PluginSettings.h" 4 #include "PluginSettings.h"
6 #include "PluginSystem.h" 5 #include "PluginSystem.h"
7 #ifdef SUPPORT_FILTER 6 #ifdef SUPPORT_FILTER
8 #include "PluginFilter.h" 7 #include "PluginFilter.h"
9 #endif 8 #endif
10 #include "PluginMimeFilterClient.h" 9 #include "PluginMimeFilterClient.h"
11 #include "PluginClient.h" 10 #include "PluginClient.h"
12 #include "PluginClientFactory.h" 11 #include "PluginClientFactory.h"
13 #include "PluginMutex.h" 12 #include "PluginMutex.h"
14 #include "sddl.h" 13 #include "sddl.h"
15 #include "PluginUtil.h" 14 #include "PluginUtil.h"
16 #include "PluginUserSettings.h" 15 #include "PluginUserSettings.h"
17 #include "../shared/Utils.h" 16 #include "../shared/Utils.h"
18 #include "../shared/Dictionary.h" 17 #include "../shared/Dictionary.h"
19 #include "../shared/IE_version.h"
20 #include <thread> 18 #include <thread>
21 19
22 #ifdef DEBUG_HIDE_EL 20 #ifdef DEBUG_HIDE_EL
23 DWORD profileTime = 0; 21 DWORD profileTime = 0;
24 #endif 22 #endif
25 23
26 typedef HANDLE (WINAPI *OPENTHEMEDATA)(HWND, LPCWSTR); 24 typedef HANDLE (WINAPI *OPENTHEMEDATA)(HWND, LPCWSTR);
27 typedef HRESULT (WINAPI *DRAWTHEMEBACKGROUND)(HANDLE, HDC, INT, INT, LPRECT, LPR ECT); 25 typedef HRESULT (WINAPI *DRAWTHEMEBACKGROUND)(HANDLE, HDC, INT, INT, LPRECT, LPR ECT);
28 typedef HRESULT (WINAPI *CLOSETHEMEDATA)(HANDLE); 26 typedef HRESULT (WINAPI *CLOSETHEMEDATA)(HANDLE);
29 27
(...skipping 57 matching lines...) Expand 10 before | Expand all | Expand 10 after
87 m_hStatusBarWnd = NULL; 85 m_hStatusBarWnd = NULL;
88 m_hPaneWnd = NULL; 86 m_hPaneWnd = NULL;
89 m_nPaneWidth = 0; 87 m_nPaneWidth = 0;
90 m_pWndProcStatus = NULL; 88 m_pWndProcStatus = NULL;
91 m_hTheme = NULL; 89 m_hTheme = NULL;
92 m_isInitializedOk = false; 90 m_isInitializedOk = false;
93 91
94 92
95 m_tab = new CPluginTab(this); 93 m_tab = new CPluginTab(this);
96 94
97 CPluginSystem* system = CPluginSystem::GetInstance(); 95 Dictionary::Create(GetBrowserLanguage());
98
99 std::wstring locale((LPCWSTR)system->GetBrowserLanguage());
100 Dictionary::Create(locale);
101 } 96 }
102 97
103 CPluginClass::~CPluginClass() 98 CPluginClass::~CPluginClass()
104 { 99 {
105 delete m_tab; 100 delete m_tab;
106 } 101 }
107 102
108 103
109 ///////////////////////////////////////////////////////////////////////////// 104 /////////////////////////////////////////////////////////////////////////////
110 // Initialization 105 // Initialization
(...skipping 101 matching lines...) Expand 10 before | Expand all | Expand 10 after
212 return browser; 207 return browser;
213 } 208 }
214 209
215 CString CPluginClass::GetBrowserUrl() const 210 CString CPluginClass::GetBrowserUrl() const
216 { 211 {
217 CString url; 212 CString url;
218 213
219 CComQIPtr<IWebBrowser2> browser = GetBrowser(); 214 CComQIPtr<IWebBrowser2> browser = GetBrowser();
220 if (browser) 215 if (browser)
221 { 216 {
222 AdblockPlus::COM::BSTR_Argument result; 217 CComBSTR bstrURL;
223 if (SUCCEEDED(browser->get_LocationURL(&result))) 218
224 { 219 if (SUCCEEDED(browser->get_LocationURL(&bstrURL)))
225 url = to_CString(result); 220 {
221 url = bstrURL;
226 CPluginClient::UnescapeUrl(url); 222 CPluginClient::UnescapeUrl(url);
227 } 223 }
228 } 224 }
229 else 225 else
230 { 226 {
231 url = m_tab->GetDocumentUrl(); 227 url = m_tab->GetDocumentUrl();
232 } 228 }
233 229
234 return url; 230 return url;
235 } 231 }
(...skipping 13 matching lines...) Expand all
249 245
250 246
251 // This gets called when a new browser window is created (which also triggers th e 247 // This gets called when a new browser window is created (which also triggers th e
252 // creation of this object). The pointer passed in should be to a IWebBrowser2 248 // creation of this object). The pointer passed in should be to a IWebBrowser2
253 // interface that represents the browser for the window. 249 // interface that represents the browser for the window.
254 // it is also called when a tab is closed, this unknownSite will be null 250 // it is also called when a tab is closed, this unknownSite will be null
255 // so we should handle that it is called this way several times during a session 251 // so we should handle that it is called this way several times during a session
256 STDMETHODIMP CPluginClass::SetSite(IUnknown* unknownSite) 252 STDMETHODIMP CPluginClass::SetSite(IUnknown* unknownSite)
257 { 253 {
258 CPluginSettings* settings = CPluginSettings::GetInstance(); 254 CPluginSettings* settings = CPluginSettings::GetInstance();
259 CPluginSystem* system = CPluginSystem::GetInstance();
260 255
261 MULTIPLE_VERSIONS_CHECK(); 256 MULTIPLE_VERSIONS_CHECK();
262 257
263 if (unknownSite) 258 if (unknownSite)
264 { 259 {
265 260
266 DEBUG_GENERAL(L"============================================================ ====================\nNEW TAB UI\n============================================== ==================================") 261 DEBUG_GENERAL(L"============================================================ ====================\nNEW TAB UI\n============================================== ==================================")
267 262
268 HRESULT hr = ::CoInitialize(NULL); 263 HRESULT hr = ::CoInitialize(NULL);
269 if (FAILED(hr)) 264 if (FAILED(hr))
(...skipping 230 matching lines...) Expand 10 before | Expand all | Expand 10 after
500 { 495 {
501 DEBUG_ERROR_LOG(hr, PLUGIN_ERROR_UI, PLUGIN_ERROR_UI_PUT_STATUSBAR, "Class::Enable statusbar"); 496 DEBUG_ERROR_LOG(hr, PLUGIN_ERROR_UI, PLUGIN_ERROR_UI_PUT_STATUSBAR, "Class::Enable statusbar");
502 } 497 }
503 CreateStatusBarPane(); 498 CreateStatusBarPane();
504 499
505 // We need to restart the tab now, to enable the status bar properly 500 // We need to restart the tab now, to enable the status bar properly
506 VARIANT vFlags; 501 VARIANT vFlags;
507 vFlags.vt = VT_I4; 502 vFlags.vt = VT_I4;
508 vFlags.intVal = navOpenInNewTab; 503 vFlags.intVal = navOpenInNewTab;
509 504
510 AdblockPlus::COM::BSTR_Argument curLoc; 505 CComBSTR curLoc;
511 browser->get_LocationURL(&curLoc); 506 browser->get_LocationURL(&curLoc);
512 HRESULT hr = browser->Navigate(curLoc, &vFlags, NULL, NULL, NULL); 507 HRESULT hr = browser->Navigate(curLoc, &vFlags, NULL, NULL, NULL);
513 if (FAILED(hr)) 508 if (FAILED(hr))
514 { 509 {
515 vFlags.intVal = navOpenInNewWindow; 510 vFlags.intVal = navOpenInNewWindow;
516 511
517 hr = browser->Navigate(curLoc, &vFlags, NULL, NULL, NULL); 512 hr = browser->Navigate(CComBSTR(curLoc), &vFlags, NULL, NULL, NULL);
518 if (FAILED(hr)) 513 if (FAILED(hr))
519 { 514 {
520 DEBUG_ERROR_LOG(hr, PLUGIN_ERROR_NAVIGATION, PLUGIN_ERROR_NAVIGATI ON, "Navigation::Failed") 515 DEBUG_ERROR_LOG(hr, PLUGIN_ERROR_NAVIGATION, PLUGIN_ERROR_NAVIGATI ON, "Navigation::Failed")
521 } 516 }
522 } 517 }
523 browser->Quit(); 518 browser->Quit();
524 } 519 }
525 } 520 }
526 } 521 }
527 else 522 else
(...skipping 150 matching lines...) Expand 10 before | Expand all | Expand 10 after
678 case DISPID_BEFORENAVIGATE: 673 case DISPID_BEFORENAVIGATE:
679 DEBUG_NAVI("Navi::BeforeNavigate") 674 DEBUG_NAVI("Navi::BeforeNavigate")
680 return VARIANT_TRUE; 675 return VARIANT_TRUE;
681 case DISPID_COMMANDSTATECHANGE: 676 case DISPID_COMMANDSTATECHANGE:
682 if (m_hPaneWnd == NULL) 677 if (m_hPaneWnd == NULL)
683 { 678 {
684 CreateStatusBarPane(); 679 CreateStatusBarPane();
685 } 680 }
686 else 681 else
687 { 682 {
688 if (AdblockPlus::IE::installed_major_version() > 6) 683 if (CPluginClient::GetInstance()->GetIEVersion() > 6)
689 { 684 {
690 RECT rect; 685 RECT rect;
691 BOOL rectRes = GetClientRect(m_hStatusBarWnd, &rect); 686 BOOL rectRes = GetClientRect(m_hStatusBarWnd, &rect);
692 if (rectRes == TRUE) 687 if (rectRes == TRUE)
693 { 688 {
694 MoveWindow(m_hPaneWnd, rect.right - 200, 0, m_nPaneWidth, rect.bottom - rect.top, TRUE); 689 MoveWindow(m_hPaneWnd, rect.right - 200, 0, m_nPaneWidth, rect.bottom - rect.top, TRUE);
695 } 690 }
696 } 691 }
697 } 692 }
698 break; 693 break;
(...skipping 27 matching lines...) Expand all
726 DEBUG_NAVI("Navi::Document Complete") 721 DEBUG_NAVI("Navi::Document Complete")
727 722
728 CComQIPtr<IWebBrowser2> browser = GetBrowser(); 723 CComQIPtr<IWebBrowser2> browser = GetBrowser();
729 724
730 if (browser && pDispParams->cArgs >= 2 && pDispParams->rgvarg[1].vt == VT_ DISPATCH) 725 if (browser && pDispParams->cArgs >= 2 && pDispParams->rgvarg[1].vt == VT_ DISPATCH)
731 { 726 {
732 CComQIPtr<IWebBrowser2> pBrowser = pDispParams->rgvarg[1].pdispVal; 727 CComQIPtr<IWebBrowser2> pBrowser = pDispParams->rgvarg[1].pdispVal;
733 if (pBrowser) 728 if (pBrowser)
734 { 729 {
735 CString url; 730 CString url;
736 AdblockPlus::COM::BSTR_Argument result; 731 CComBSTR bstrUrl;
737 if (SUCCEEDED(pBrowser->get_LocationURL(&result)) && !result.operator std::wstring().empty()) 732 if (SUCCEEDED(pBrowser->get_LocationURL(&bstrUrl)) && ::SysStringLen(b strUrl) > 0)
738 { 733 {
739 url = to_CString(result); 734 url = bstrUrl;
740 735
741 CPluginClient::UnescapeUrl(url); 736 CPluginClient::UnescapeUrl(url);
742 737
743 m_tab->OnDocumentComplete(browser, url, browser.IsEqualObject(pBrows er)); 738 m_tab->OnDocumentComplete(browser, url, browser.IsEqualObject(pBrows er));
744 } 739 }
745 } 740 }
746 } 741 }
747 } 742 }
748 break; 743 break;
749 744
(...skipping 87 matching lines...) Expand 10 before | Expand all | Expand 10 after
837 } 832 }
838 s_criticalSectionLocal.Unlock(); 833 s_criticalSectionLocal.Unlock();
839 834
840 if (!GetAtomPaneClass()) 835 if (!GetAtomPaneClass())
841 { 836 {
842 DEBUG_ERROR_LOG(::GetLastError(), PLUGIN_ERROR_UI, PLUGIN_ERROR_UI_REGISTE R_PANE_CLASS, "Class::InitObject - RegisterClassEx"); 837 DEBUG_ERROR_LOG(::GetLastError(), PLUGIN_ERROR_UI, PLUGIN_ERROR_UI_REGISTE R_PANE_CLASS, "Class::InitObject - RegisterClassEx");
843 return false; 838 return false;
844 } 839 }
845 } 840 }
846 841
847 int ieVersion = AdblockPlus::IE::installed_major_version(); 842
843 int ieVersion = CPluginClient::GetInstance()->GetIEVersion();
848 // Create status pane 844 // Create status pane
849 if (bBHO && ieVersion > 6 && !CreateStatusBarPane()) 845 if (bBHO && ieVersion > 6 && !CreateStatusBarPane())
850 { 846 {
851 return false; 847 return false;
852 } 848 }
853 849
854 if (CPluginClient::GetInstance()->IsFirstRun()) 850 if (CPluginClient::GetInstance()->IsFirstRun())
855 { 851 {
856 // IE6 can't be accessed from another thread, execute in current thread 852 // IE6 can't be accessed from another thread, execute in current thread
857 if (ieVersion < 7) 853 if (ieVersion < 7)
(...skipping 177 matching lines...) Expand 10 before | Expand all | Expand 10 after
1035 return true; 1031 return true;
1036 } 1032 }
1037 1033
1038 void CPluginClass::FirstRunThread() 1034 void CPluginClass::FirstRunThread()
1039 { 1035 {
1040 CoInitialize(NULL); 1036 CoInitialize(NULL);
1041 VARIANT vFlags; 1037 VARIANT vFlags;
1042 vFlags.vt = VT_I4; 1038 vFlags.vt = VT_I4;
1043 vFlags.intVal = navOpenInNewTab; 1039 vFlags.intVal = navOpenInNewTab;
1044 1040
1045 AdblockPlus::COM::BSTR_Argument navigatePath(FirstRunPageFileUrl()); 1041 CComBSTR navigatePath = CComBSTR(FirstRunPageFileUrl().c_str());
1042
1046 HRESULT hr = GetAsyncBrowser()->Navigate(navigatePath, &vFlags, NULL, NULL, NU LL); 1043 HRESULT hr = GetAsyncBrowser()->Navigate(navigatePath, &vFlags, NULL, NULL, NU LL);
1047 if (FAILED(hr)) 1044 if (FAILED(hr))
1048 { 1045 {
1049 vFlags.intVal = navOpenInNewWindow; 1046 vFlags.intVal = navOpenInNewWindow;
1050 hr = GetAsyncBrowser()->Navigate(navigatePath, &vFlags, NULL, NULL, NULL); 1047 hr = GetAsyncBrowser()->Navigate(navigatePath, &vFlags, NULL, NULL, NULL);
1051 } 1048 }
1052 1049
1053 if (FAILED(hr)) 1050 if (FAILED(hr))
1054 { 1051 {
1055 DEBUG_ERROR_LOG(hr, PLUGIN_ERROR_NAVIGATION, PLUGIN_ERROR_NAVIGATION_WELCOME , "Navigation::Welcome page failed") 1052 DEBUG_ERROR_LOG(hr, PLUGIN_ERROR_NAVIGATION, PLUGIN_ERROR_NAVIGATION_WELCOME , "Navigation::Welcome page failed")
(...skipping 200 matching lines...) Expand 10 before | Expand all | Expand 10 after
1256 CloseHandle(hToken); 1253 CloseHandle(hToken);
1257 } 1254 }
1258 1255
1259 return fRet; 1256 return fRet;
1260 } 1257 }
1261 1258
1262 void CPluginClass::DisplayPluginMenu(HMENU hMenu, int nToolbarCmdID, POINT pt, U INT nMenuFlags) 1259 void CPluginClass::DisplayPluginMenu(HMENU hMenu, int nToolbarCmdID, POINT pt, U INT nMenuFlags)
1263 { 1260 {
1264 CPluginClient* client = CPluginClient::GetInstance(); 1261 CPluginClient* client = CPluginClient::GetInstance();
1265 1262
1266 CPluginSystem* system = CPluginSystem::GetInstance();
1267
1268 // Create menu parent window 1263 // Create menu parent window
1269 HWND hMenuWnd = ::CreateWindowEx( 1264 HWND hMenuWnd = ::CreateWindowEx(
1270 NULL, 1265 NULL,
1271 MAKEINTATOM(GetAtomPaneClass()), 1266 MAKEINTATOM(GetAtomPaneClass()),
1272 L"", 1267 L"",
1273 0, 1268 0,
1274 0,0,0,0, 1269 0,0,0,0,
1275 NULL, 1270 NULL,
1276 NULL, 1271 NULL,
1277 _Module.m_hInst, 1272 _Module.m_hInst,
(...skipping 387 matching lines...) Expand 10 before | Expand all | Expand 10 after
1665 1660
1666 LRESULT CALLBACK CPluginClass::PaneWindowProc(HWND hWnd, UINT message, WPARAM wP aram, LPARAM lParam) 1661 LRESULT CALLBACK CPluginClass::PaneWindowProc(HWND hWnd, UINT message, WPARAM wP aram, LPARAM lParam)
1667 { 1662 {
1668 // Find tab 1663 // Find tab
1669 CPluginClass *pClass = FindInstance(GetParent(hWnd)); 1664 CPluginClass *pClass = FindInstance(GetParent(hWnd));
1670 if (!pClass) 1665 if (!pClass)
1671 { 1666 {
1672 return ::DefWindowProc(hWnd, message, wParam, lParam); 1667 return ::DefWindowProc(hWnd, message, wParam, lParam);
1673 } 1668 }
1674 1669
1675 CPluginSystem* system = CPluginSystem::GetInstance();
1676
1677 // Process message 1670 // Process message
1678 switch (message) 1671 switch (message)
1679 { 1672 {
1680 1673
1681 case WM_SETCURSOR: 1674 case WM_SETCURSOR:
1682 { 1675 {
1683 ::SetCursor(::LoadCursor(NULL, IDC_ARROW)); 1676 ::SetCursor(::LoadCursor(NULL, IDC_ARROW));
1684 return TRUE; 1677 return TRUE;
1685 } 1678 }
1686 case WM_PAINT: 1679 case WM_PAINT:
(...skipping 305 matching lines...) Expand 10 before | Expand all | Expand 10 after
1992 } 1985 }
1993 } 1986 }
1994 } 1987 }
1995 1988
1996 hTabWnd = ::GetWindow(hTabWnd, GW_HWNDNEXT); 1989 hTabWnd = ::GetWindow(hTabWnd, GW_HWNDNEXT);
1997 } 1990 }
1998 1991
1999 return hTabWnd; 1992 return hTabWnd;
2000 1993
2001 } 1994 }
LEFTRIGHT

Powered by Google App Engine
This is Rietveld