| Index: chrome_frame/dll_redirector.h
|
| diff --git a/chrome_frame/dll_redirector.h b/chrome_frame/dll_redirector.h
|
| deleted file mode 100644
|
| index d4c61c1c17cbbe45d240d2ab8a51fd371e44e8c3..0000000000000000000000000000000000000000
|
| --- a/chrome_frame/dll_redirector.h
|
| +++ /dev/null
|
| @@ -1,112 +0,0 @@
|
| -// Copyright (c) 2011 The Chromium Authors. All rights reserved.
|
| -// Use of this source code is governed by a BSD-style license that can be
|
| -// found in the LICENSE file.
|
| -
|
| -#ifndef CHROME_FRAME_DLL_REDIRECTOR_H_
|
| -#define CHROME_FRAME_DLL_REDIRECTOR_H_
|
| -
|
| -#include <ObjBase.h>
|
| -#include <windows.h>
|
| -#include <string>
|
| -
|
| -#include "base/basictypes.h"
|
| -#include "base/memory/scoped_ptr.h"
|
| -#include "base/memory/shared_memory.h"
|
| -#include "base/memory/singleton.h"
|
| -
|
| -// Forward
|
| -namespace ATL {
|
| -class CSecurityAttributes;
|
| -}
|
| -
|
| -namespace base {
|
| -class Version;
|
| -}
|
| -
|
| -// A singleton class that provides a facility to register the version of the
|
| -// current module as the only version that should be loaded system-wide. If
|
| -// this module is not the first instance loaded in the system, then the version
|
| -// that loaded first will be delegated to. This makes a few assumptions:
|
| -// 1) That different versions of the module this code is in reside in
|
| -// neighbouring versioned directories, e.g.
|
| -// C:\foo\bar\1.2.3.4\my_module.dll
|
| -// C:\foo\bar\1.2.3.5\my_module.dll
|
| -// 2) That the instance of this class will outlive the module that may be
|
| -// delegated to. That is to say, that this class only guarantees that the
|
| -// module is loaded as long as this instance is active.
|
| -// 3) The module this is compiled into is built with version info.
|
| -class DllRedirector {
|
| - public:
|
| - // Returns the singleton instance.
|
| - static DllRedirector* GetInstance();
|
| -
|
| - virtual ~DllRedirector();
|
| -
|
| - // Attempts to register this Chrome Frame version as the first loaded version
|
| - // on the system. If this succeeds, return true. If it fails, it returns
|
| - // false meaning that there is another version already loaded somewhere and
|
| - // the caller should delegate to that version instead.
|
| - bool DllRedirector::RegisterAsFirstCFModule();
|
| -
|
| - // Unregisters the well known window class if we registered it earlier.
|
| - // This is intended to be called from DllMain under PROCESS_DETACH.
|
| - void DllRedirector::UnregisterAsFirstCFModule();
|
| -
|
| - // Helper function to return the DllGetClassObject function pointer from
|
| - // the given module. This function will return NULL unless
|
| - // RegisterAsFirstCFModule has been called first and returned false
|
| - // indicating that another module was first in.
|
| - //
|
| - // On success, the return value is non-null and the first-in module will have
|
| - // had its reference count incremented.
|
| - LPFNGETCLASSOBJECT GetDllGetClassObjectPtr();
|
| -
|
| - protected:
|
| - DllRedirector();
|
| - friend struct DefaultSingletonTraits<DllRedirector>;
|
| -
|
| - // Constructor used for tests.
|
| - explicit DllRedirector(const char* shared_memory_name);
|
| -
|
| - // Returns an HMODULE to the version of the module that should be loaded.
|
| - virtual HMODULE GetFirstModule();
|
| -
|
| - // Returns the version of the current module or NULL if none can be found.
|
| - // The caller must free the returned version.
|
| - virtual base::Version* GetCurrentModuleVersion();
|
| -
|
| - // Attempt to load the specified version dll. Finds it by walking up one
|
| - // directory from our current module's location, then appending the newly
|
| - // found version number. The Version class in base will have ensured that we
|
| - // actually have a valid version and not e.g. ..\..\..\..\MyEvilFolder\.
|
| - virtual HMODULE LoadVersionedModule(base::Version* version);
|
| -
|
| - // Builds the necessary SECURITY_ATTRIBUTES to allow low integrity access
|
| - // to an object. Returns true on success, false otherwise.
|
| - virtual bool BuildSecurityAttributesForLock(
|
| - ATL::CSecurityAttributes* sec_attr);
|
| -
|
| - // Attempts to change the permissions on the given file mapping to read only.
|
| - // Returns true on success, false otherwise.
|
| - virtual bool SetFileMappingToReadOnly(base::SharedMemoryHandle mapping);
|
| -
|
| - // Shared memory segment that contains the version beacon.
|
| - scoped_ptr<base::SharedMemory> shared_memory_;
|
| -
|
| - // The current version of the DLL to be loaded.
|
| - scoped_ptr<base::Version> dll_version_;
|
| -
|
| - // The handle to the first version of this module that was loaded. This
|
| - // may refer to the current module, or another version of the same module
|
| - // that we go and load.
|
| - HMODULE first_module_handle_;
|
| -
|
| - // Used for tests to override the name of the shared memory segment.
|
| - std::string shared_memory_name_;
|
| -
|
| - friend class ModuleUtilsTest;
|
| -
|
| - DISALLOW_COPY_AND_ASSIGN(DllRedirector);
|
| -};
|
| -
|
| -#endif // CHROME_FRAME_DLL_REDIRECTOR_H_
|
|
|