Index: chrome_frame/utils.cc |
=================================================================== |
--- chrome_frame/utils.cc (revision 48838) |
+++ chrome_frame/utils.cc (working copy) |
@@ -1078,8 +1078,116 @@ |
return patch_method; |
} |
-bool MonikerPatchEnabled() { |
+bool IsIBrowserServicePatchEnabled() { |
ProtocolPatchMethod patch_method = GetPatchMethod(); |
- return patch_method == PATCH_METHOD_MONIKER; |
+ return patch_method == PATCH_METHOD_IBROWSER; |
} |
+std::string BindStatus2Str(ULONG bind_status) { |
+ std::string s; |
+ static const char* const bindstatus_txt[] = { |
+ "BINDSTATUS_FINDINGRESOURCE", |
+ "BINDSTATUS_CONNECTING", |
+ "BINDSTATUS_REDIRECTING", |
+ "BINDSTATUS_BEGINDOWNLOADDATA", |
+ "BINDSTATUS_DOWNLOADINGDATA", |
+ "BINDSTATUS_ENDDOWNLOADDATA", |
+ "BINDSTATUS_BEGINDOWNLOADCOMPONENTS", |
+ "BINDSTATUS_INSTALLINGCOMPONENTS", |
+ "BINDSTATUS_ENDDOWNLOADCOMPONENTS", |
+ "BINDSTATUS_USINGCACHEDCOPY", |
+ "BINDSTATUS_SENDINGREQUEST", |
+ "BINDSTATUS_CLASSIDAVAILABLE", |
+ "BINDSTATUS_MIMETYPEAVAILABLE", |
+ "BINDSTATUS_CACHEFILENAMEAVAILABLE", |
+ "BINDSTATUS_BEGINSYNCOPERATION", |
+ "BINDSTATUS_ENDSYNCOPERATION", |
+ "BINDSTATUS_BEGINUPLOADDATA", |
+ "BINDSTATUS_UPLOADINGDATA", |
+ "BINDSTATUS_ENDUPLOADINGDATA", |
+ "BINDSTATUS_PROTOCOLCLASSID", |
+ "BINDSTATUS_ENCODING", |
+ "BINDSTATUS_VERFIEDMIMETYPEAVAILABLE", |
+ "BINDSTATUS_CLASSINSTALLLOCATION", |
+ "BINDSTATUS_DECODING", |
+ "BINDSTATUS_LOADINGMIMEHANDLER", |
+ "BINDSTATUS_CONTENTDISPOSITIONATTACH", |
+ "BINDSTATUS_FILTERREPORTMIMETYPE", |
+ "BINDSTATUS_CLSIDCANINSTANTIATE", |
+ "BINDSTATUS_IUNKNOWNAVAILABLE", |
+ "BINDSTATUS_DIRECTBIND", |
+ "BINDSTATUS_RAWMIMETYPE", |
+ "BINDSTATUS_PROXYDETECTING", |
+ "BINDSTATUS_ACCEPTRANGES", |
+ "BINDSTATUS_COOKIE_SENT", |
+ "BINDSTATUS_COMPACT_POLICY_RECEIVED", |
+ "BINDSTATUS_COOKIE_SUPPRESSED", |
+ "BINDSTATUS_COOKIE_STATE_UNKNOWN", |
+ "BINDSTATUS_COOKIE_STATE_ACCEPT", |
+ "BINDSTATUS_COOKIE_STATE_REJECT", |
+ "BINDSTATUS_COOKIE_STATE_PROMPT", |
+ "BINDSTATUS_COOKIE_STATE_LEASH", |
+ "BINDSTATUS_COOKIE_STATE_DOWNGRADE", |
+ "BINDSTATUS_POLICY_HREF", |
+ "BINDSTATUS_P3P_HEADER", |
+ "BINDSTATUS_SESSION_COOKIE_RECEIVED", |
+ "BINDSTATUS_PERSISTENT_COOKIE_RECEIVED", |
+ "BINDSTATUS_SESSION_COOKIES_ALLOWED", |
+ "BINDSTATUS_CACHECONTROL", |
+ "BINDSTATUS_CONTENTDISPOSITIONFILENAME", |
+ "BINDSTATUS_MIMETEXTPLAINMISMATCH", |
+ "BINDSTATUS_PUBLISHERAVAILABLE", |
+ "BINDSTATUS_DISPLAYNAMEAVAILABLE", |
+ "BINDSTATUS_SSLUX_NAVBLOCKED", |
+ "BINDSTATUS_SERVER_MIMETYPEAVAILABLE", |
+ "BINDSTATUS_SNIFFED_CLASSIDAVAILABLE", |
+ "BINDSTATUS_64BIT_PROGRESS" |
+ }; |
+ if (bind_status >= 1 && bind_status <= BINDSTATUS_64BIT_PROGRESS) |
+ s = bindstatus_txt[bind_status - 1]; |
+ else |
+ s = StringPrintf("UnDoc[%#x]", bind_status); |
+ return s; |
+} |
+ |
+std::string PiFlags2Str(DWORD flags) { |
+#define ADD_PI_FLAG(x) if (flags & x) { s.append(#x ## " "); flags &= ~x; } |
+ std::string s = " flags "; |
+ ADD_PI_FLAG(PI_PARSE_URL); |
+ ADD_PI_FLAG(PI_FILTER_MODE); |
+ ADD_PI_FLAG(PI_FORCE_ASYNC); |
+ ADD_PI_FLAG(PI_USE_WORKERTHREAD); |
+ ADD_PI_FLAG(PI_MIMEVERIFICATION); |
+ ADD_PI_FLAG(PI_CLSIDLOOKUP); |
+ ADD_PI_FLAG(PI_DATAPROGRESS); |
+ ADD_PI_FLAG(PI_SYNCHRONOUS); |
+ ADD_PI_FLAG(PI_APARTMENTTHREADED); |
+ ADD_PI_FLAG(PI_CLASSINSTALL); |
+ ADD_PI_FLAG(PI_PASSONBINDCTX); |
+ ADD_PI_FLAG(PI_NOMIMEHANDLER); |
+ ADD_PI_FLAG(PI_LOADAPPDIRECT); |
+ ADD_PI_FLAG(PD_FORCE_SWITCH); |
+ ADD_PI_FLAG(PI_PREFERDEFAULTHANDLER); |
+ |
+ if (flags) |
+ s += StringPrintf("+UnDoc[%#x]", flags); |
+ return s; |
+#undef ADD_PI_FLAG |
+} |
+ |
+std::string Bscf2Str(DWORD flags) { |
+#define ADD_BSCF_FLAG(x) if (flags & x) { s.append(#x ## " "); flags &= ~x; } |
+ std::string s = " flags "; |
+ ADD_BSCF_FLAG(BSCF_FIRSTDATANOTIFICATION) |
+ ADD_BSCF_FLAG(BSCF_INTERMEDIATEDATANOTIFICATION) |
+ ADD_BSCF_FLAG(BSCF_LASTDATANOTIFICATION) |
+ ADD_BSCF_FLAG(BSCF_DATAFULLYAVAILABLE) |
+ ADD_BSCF_FLAG(BSCF_AVAILABLEDATASIZEUNKNOWN) |
+ ADD_BSCF_FLAG(BSCF_SKIPDRAINDATAFORFILEURLS) |
+ ADD_BSCF_FLAG(BSCF_64BITLENGTHDOWNLOAD) |
+ |
+ if (flags) |
+ s += StringPrintf("+UnDoc[%#x]", flags); |
+ return s; |
+#undef ADD_BSCF_FLAG |
+} |