1ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen// Copyright (c) 2011 The Chromium Authors. All rights reserved.
2731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick// Use of this source code is governed by a BSD-style license that can be
3731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick// found in the LICENSE file.
4731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick
5731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick#include "chrome/browser/net/view_blob_internals_job_factory.h"
6731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick
7ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen#include "base/string_util.h"
8731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick#include "chrome/browser/net/chrome_url_request_context.h"
9731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick#include "chrome/common/url_constants.h"
10dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen#include "content/browser/chrome_blob_storage_context.h"
11731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick#include "net/url_request/url_request.h"
12731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick#include "webkit/blob/view_blob_internals_job.h"
13731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick
14731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick// static.
15731df977c0511bca2206b5f333555b1205ff1f43Iain Merrickbool ViewBlobInternalsJobFactory::IsSupportedURL(const GURL& url) {
16731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick  return StartsWithASCII(url.spec(),
17731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick                         chrome::kBlobViewInternalsURL,
18731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick                         true /*case_sensitive*/);
19731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick}
20731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick
21731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick// static.
2221d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsennet::URLRequestJob* ViewBlobInternalsJobFactory::CreateJobForRequest(
2321d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen    net::URLRequest* request) {
24731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick  webkit_blob::BlobStorageController* blob_storage_controller =
25731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick      static_cast<ChromeURLRequestContext*>(request->context())->
26731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick          blob_storage_context()->controller();
27731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick  return new webkit_blob::ViewBlobInternalsJob(
28731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick      request, blob_storage_controller);
29731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick}
30