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

Side by Side Diff: src/plugin/PluginTabBase.cpp

Issue 11450010: IE6 status bar and FRP fix. Debugging info added. (Closed)
Patch Set: Created Aug. 19, 2013, 8:12 a.m.
Left:
Right:
Use n/p to move between diff chunks; N/P to move between comments.
Jump to:
View unified diff | Download patch
« src/plugin/PluginClass.cpp ('K') | « src/plugin/PluginTabBase.h ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 #include "PluginStdAfx.h" 1 #include "PluginStdAfx.h"
2 2
3 #include "PluginClient.h" 3 #include "PluginClient.h"
4 #include "PluginSettings.h" 4 #include "PluginSettings.h"
5 #ifdef SUPPORT_CONFIG 5 #ifdef SUPPORT_CONFIG
6 #include "PluginConfig.h" 6 #include "PluginConfig.h"
7 #endif 7 #endif
8 #include "PluginTab.h" 8 #include "PluginTab.h"
9 #include "PluginDomTraverser.h" 9 #include "PluginDomTraverser.h"
10 #include "PluginClass.h" 10 #include "PluginClass.h"
(...skipping 93 matching lines...) Expand 10 before | Expand all | Expand 10 after
104 ResetEvent(m_filter->hideFiltersLoadedEvent); 104 ResetEvent(m_filter->hideFiltersLoadedEvent);
105 CreateThread(NULL, NULL, &FilterLoader, this, NULL, NULL); 105 CreateThread(NULL, NULL, &FilterLoader, this, NULL, NULL);
106 106
107 #ifdef SUPPORT_DOM_TRAVERSER 107 #ifdef SUPPORT_DOM_TRAVERSER
108 m_traverser->ClearCache(); 108 m_traverser->ClearCache();
109 #endif 109 #endif
110 } 110 }
111 111
112 void CPluginTabBase::InjectABP(IWebBrowser2* browser) 112 void CPluginTabBase::InjectABP(IWebBrowser2* browser)
113 { 113 {
114 CriticalSection::Lock lock(m_csInject);
114 CString url = GetDocumentUrl(); 115 CString url = GetDocumentUrl();
115 CString log; 116 CString log;
116 log.Format(L"Current URL: %s, settings URL: %s", url, UserSettingsFileUrl().c_ str()); 117 log.Format(L"InjectABP. Current URL: %s, settings URL: %s", url, UserSettingsF ileUrl().c_str());
117 DEBUG_GENERAL(log); 118 DEBUG_GENERAL(log);
118 if (!(0 == url.CompareNoCase(CString(UserSettingsFileUrl().c_str())) || 119 if (!(0 == url.CompareNoCase(CString(UserSettingsFileUrl().c_str())) ||
119 0 == url.CompareNoCase(CString(FirstRunPageFileUrl().c_str())))) 120 0 == url.CompareNoCase(CString(FirstRunPageFileUrl().c_str()))))
120 { 121 {
122 DEBUG_GENERAL(L"Not injecting");
121 return; 123 return;
122 } 124 }
125 DEBUG_GENERAL(L"Going to inject");
123 CComPtr<IDispatch> pDocDispatch; 126 CComPtr<IDispatch> pDocDispatch;
124 browser->get_Document(&pDocDispatch); 127 browser->get_Document(&pDocDispatch);
125 CComQIPtr<IHTMLDocument2> pDoc2 = pDocDispatch; 128 CComQIPtr<IHTMLDocument2> pDoc2 = pDocDispatch;
126 if (!pDoc2) 129 if (!pDoc2)
127 { 130 {
128 DEBUG_ERROR_LOG(0, PLUGIN_ERROR_CREATE_SETTINGS_JAVASCRIPT, PLUGIN_ERROR_CRE ATE_SETTINGS_JAVASCRIPT_INVOKE, "CPluginTabBase::InjectABP - Failed to QI docume nt"); 131 DEBUG_ERROR_LOG(0, PLUGIN_ERROR_CREATE_SETTINGS_JAVASCRIPT, PLUGIN_ERROR_CRE ATE_SETTINGS_JAVASCRIPT_INVOKE, "CPluginTabBase::InjectABP - Failed to QI docume nt");
129 return; 132 return;
130 } 133 }
131 CComPtr<IHTMLWindow2> pWnd2; 134 CComPtr<IHTMLWindow2> pWnd2;
132 pDoc2->get_parentWindow(&pWnd2); 135 pDoc2->get_parentWindow(&pWnd2);
(...skipping 12 matching lines...) Expand all
145 // A method call of "Settings" in JavaScript, transfered to "Invoke" of m_plug inUserSettings 148 // A method call of "Settings" in JavaScript, transfered to "Invoke" of m_plug inUserSettings
146 DISPID dispid; 149 DISPID dispid;
147 HRESULT hr = pWndEx->GetDispID(L"Settings", fdexNameEnsure, &dispid); 150 HRESULT hr = pWndEx->GetDispID(L"Settings", fdexNameEnsure, &dispid);
148 if (FAILED(hr)) 151 if (FAILED(hr))
149 { 152 {
150 DEBUG_ERROR_LOG(hr, PLUGIN_ERROR_CREATE_SETTINGS_JAVASCRIPT, PLUGIN_ERROR_CR EATE_SETTINGS_JAVASCRIPT_INVOKE, "CPluginTabBase::InjectABP - Failed to get disp atch"); 153 DEBUG_ERROR_LOG(hr, PLUGIN_ERROR_CREATE_SETTINGS_JAVASCRIPT, PLUGIN_ERROR_CR EATE_SETTINGS_JAVASCRIPT_INVOKE, "CPluginTabBase::InjectABP - Failed to get disp atch");
151 return; 154 return;
152 } 155 }
153 CComVariant var((IDispatch*)&m_pluginUserSettings); 156 CComVariant var((IDispatch*)&m_pluginUserSettings);
154 157
158 DEBUG_GENERAL("Injecting");
159
155 DISPPARAMS params; 160 DISPPARAMS params;
156 params.cArgs = 1; 161 params.cArgs = 1;
157 params.cNamedArgs = 0; 162 params.cNamedArgs = 0;
158 params.rgvarg = &var; 163 params.rgvarg = &var;
159 params.rgdispidNamedArgs = 0; 164 params.rgdispidNamedArgs = 0;
160 hr = pWndEx->Invoke(dispid, IID_NULL, LOCALE_USER_DEFAULT, DISPATCH_PROPERTYPU T | DISPATCH_PROPERTYPUTREF, &params, 0, 0, 0); 165 hr = pWndEx->Invoke(dispid, IID_NULL, LOCALE_USER_DEFAULT, DISPATCH_PROPERTYPU T | DISPATCH_PROPERTYPUTREF, &params, 0, 0, 0);
166 DEBUG_GENERAL("Invoke");
161 if (FAILED(hr)) 167 if (FAILED(hr))
162 { 168 {
163 DEBUG_ERROR_LOG(hr, PLUGIN_ERROR_CREATE_SETTINGS_JAVASCRIPT, PLUGIN_ERROR_CR EATE_SETTINGS_JAVASCRIPT_INVOKE, "CPluginTabBase::InjectABP - Failed to create S ettings in JavaScript"); 169 DEBUG_ERROR_LOG(hr, PLUGIN_ERROR_CREATE_SETTINGS_JAVASCRIPT, PLUGIN_ERROR_CR EATE_SETTINGS_JAVASCRIPT_INVOKE, "CPluginTabBase::InjectABP - Failed to create S ettings in JavaScript");
164 } 170 }
165 } 171 }
166 172
167 void CPluginTabBase::OnDownloadComplete(IWebBrowser2* browser) 173 void CPluginTabBase::OnDownloadComplete(IWebBrowser2* browser)
168 { 174 {
169 #ifdef SUPPORT_DOM_TRAVERSER 175 #ifdef SUPPORT_DOM_TRAVERSER
170 if (!CPluginClient::GetInstance()->IsWhitelistedUrl(std::wstring(GetDocumentUr l()))) 176 if (!CPluginClient::GetInstance()->IsWhitelistedUrl(std::wstring(GetDocumentUr l())))
(...skipping 203 matching lines...) Expand 10 before | Expand all | Expand 10 after
374 380
375 // Non-hanging sleep 381 // Non-hanging sleep
376 Sleep(50); 382 Sleep(50);
377 } 383 }
378 384
379 tabLoopIteration++; 385 tabLoopIteration++;
380 } 386 }
381 387
382 return 0; 388 return 0;
383 } 389 }
OLDNEW
« src/plugin/PluginClass.cpp ('K') | « src/plugin/PluginTabBase.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld