// Token: 0x06002654 RID: 9812 RVA: 0x0008A9C8 File Offset: 0x00088BC8 private void WriteManifest(bool isOffline) { StringBuilder stringBuilder = new StringBuilder(this.ManifestTemplate); if (string.IsNullOrWhiteSpace(stringBuilder.ToString())) { string text = string.Format("User {0} request for {1} manifest fetched null or empty manifest", AppCacheManifestHandler.GetUserContextId(this.Context), this.UserAgent.Layout); ExTraceGlobals.AppcacheManifestHandlerTracer.TraceError((long)this.GetHashCode(), text); throw new ArgumentNullException(text); } bool generateBootResourcesAppcache = !isOffline; stringBuilder = this.AddTemplatedParameters(stringBuilder, generateBootResourcesAppcache); string text2 = stringBuilder.ToString(); this.Response.Write(text2); string[] array = text2.Split(new char[] { '\r', '\n', ' ', '\t' }, StringSplitOptions.RemoveEmptyEntries); string resourceDirectory = this.ResourceDirectory; List <byte[]> list = new List <byte[]>(); foreach (string text3 in array) { if (text3.StartsWith(resourceDirectory)) { list.Add(AppCacheManifestHandlerBase.GetHash(text3.Substring(3), this.VersionString)); } } IOrderedEnumerable <string> orderedEnumerable = from id in this.GetEnabledFeatures() orderby id select id; foreach (string s in orderedEnumerable) { list.Add(Encoding.ASCII.GetBytes(s)); } this.Response.Write("# ComputedHash: "); this.Response.Write(Convert.ToBase64String(AppCacheManifestHandlerBase.CalculateHashOnHashes(list))); this.Response.Write("\r\n"); this.Response.Write("# Offline: "); this.Response.Write(isOffline.ToString().ToLower()); this.Response.Write("\r\n"); }
// Token: 0x06002639 RID: 9785 RVA: 0x00089F64 File Offset: 0x00088164 void IHttpHandler.ProcessRequest(HttpContext context) { this.Context = context; this.UserAgent = OwaUserAgentUtilities.CreateUserAgentWithLayoutOverride(context); ExTraceGlobals.AppcacheManifestHandlerTracer.TraceDebug <string, LayoutType>((long)this.GetHashCode(), "User {0} requested for {1} manifest ", AppCacheManifestHandler.GetUserContextId(context), this.UserAgent.Layout); bool flag = this.IsManifestRequest(); this.SetResponseHeaders(flag); this.AddAppCacheVersionCookie(); UserAgent userAgent = OwaUserAgentUtilities.CreateUserAgentWithLayoutOverride(context, null, true); UserAgent userAgent2 = OwaUserAgentUtilities.CreateUserAgentWithLayoutOverride(context); if ((!this.IsManifestLinkerRequest() && !flag) || (this.ShouldUnInstallAppCache() && flag) || (userAgent2.Layout == LayoutType.TouchNarrow && userAgent.Layout == LayoutType.TouchWide)) { this.RemoveManifest(); return; } if (flag && this.IsRealmRewrittenFromPathToQuery(this.Context)) { this.RemoveManifest(); return; } try { if (flag) { bool?isRequestForOfflineManifest = this.IsRequestForOfflineManifest; if (isRequestForOfflineManifest == null) { this.Response.StatusCode = 440; } else { this.AddIsClientAppCacheEnabledCookie(); if (isRequestForOfflineManifest.Value) { this.WriteManifest(true); } else { this.WriteManifest(false); } } } else { this.WriteManifestLinker(); } } catch (IOException) { this.Response.StatusCode = 500; } }