long long TestRunner::applicationCacheDiskUsageForOrigin(JSStringRef url) { COMPtr<IWebSecurityOrigin2> origin; if (FAILED(WebKitCreateInstance(CLSID_WebSecurityOrigin, 0, IID_IWebSecurityOrigin2, reinterpret_cast<void**>(&origin)))) return 0; COMPtr<IWebApplicationCache> applicationCache; if (FAILED(WebKitCreateInstance(CLSID_WebApplicationCache, 0, IID_IWebApplicationCache, reinterpret_cast<void**>(&applicationCache)))) return 0; _bstr_t urlBstr(JSStringCopyBSTR(url), false); origin->initWithURL(urlBstr.GetBSTR()); long long usage = 0; if (FAILED(applicationCache->diskUsageForOrigin(origin.get(), &usage))) return 0; return usage; }