external_extension_loader.cc revision 72a454cd3513ac24fbdd0e0cb9ad70b86a99b801
1// Copyright (c) 2011 The Chromium Authors. All rights reserved.
2// Use of this source code is governed by a BSD-style license that can be
3// found in the LICENSE file.
4
5#include "chrome/browser/extensions/external_extension_loader.h"
6
7#include "base/logging.h"
8#include "base/values.h"
9#include "chrome/browser/browser_thread.h"
10#include "chrome/browser/extensions/external_extension_provider_impl.h"
11
12ExternalExtensionLoader::ExternalExtensionLoader()
13    : owner_(NULL),
14      running_(false) {
15}
16
17void ExternalExtensionLoader::Init(
18    ExternalExtensionProviderImpl* owner) {
19  CHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
20  owner_ = owner;
21}
22
23const FilePath ExternalExtensionLoader::GetBaseCrxFilePath() {
24  CHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
25
26  // By default, relative paths are not supported.
27  // Subclasses that wish to support them should override this method.
28  return FilePath();
29}
30
31void ExternalExtensionLoader::OwnerShutdown() {
32  CHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
33  owner_ = NULL;
34}
35
36ExternalExtensionLoader::~ExternalExtensionLoader() {}
37
38void ExternalExtensionLoader::LoadFinished() {
39  CHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
40  running_ = false;
41  if (owner_) {
42    owner_->SetPrefs(prefs_.release());
43  }
44}
45