| Index: chrome_frame/chrome_frame_plugin.h
|
| diff --git a/chrome_frame/chrome_frame_plugin.h b/chrome_frame/chrome_frame_plugin.h
|
| deleted file mode 100644
|
| index e796737c3452585ccbd80f2dd9645a101abd4af7..0000000000000000000000000000000000000000
|
| --- a/chrome_frame/chrome_frame_plugin.h
|
| +++ /dev/null
|
| @@ -1,177 +0,0 @@
|
| -// Copyright (c) 2012 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_CHROME_FRAME_PLUGIN_H_
|
| -#define CHROME_FRAME_CHROME_FRAME_PLUGIN_H_
|
| -
|
| -#include <string>
|
| -#include <vector>
|
| -
|
| -#include "base/memory/ref_counted.h"
|
| -#include "base/win/win_util.h"
|
| -#include "chrome_frame/chrome_frame_automation.h"
|
| -#include "chrome/common/chrome_paths.h"
|
| -#include "chrome/common/chrome_paths_internal.h"
|
| -#include "chrome_frame/simple_resource_loader.h"
|
| -#include "chrome_frame/navigation_constraints.h"
|
| -#include "chrome_frame/utils.h"
|
| -#include "grit/chromium_strings.h"
|
| -
|
| -#define IDC_ABOUT_CHROME_FRAME 40018
|
| -
|
| -// A class to implement common functionality for all types of
|
| -// plugins: ActiveX and ActiveDoc
|
| -template <typename T>
|
| -class ChromeFramePlugin
|
| - : public ChromeFrameDelegateImpl,
|
| - public NavigationConstraintsImpl {
|
| - public:
|
| - ChromeFramePlugin() : ignore_setfocus_(false){
|
| - }
|
| - ~ChromeFramePlugin() {
|
| - Uninitialize();
|
| - }
|
| -
|
| -BEGIN_MSG_MAP(T)
|
| - MESSAGE_HANDLER(WM_SETFOCUS, OnSetFocus)
|
| - MESSAGE_HANDLER(WM_PARENTNOTIFY, OnParentNotify)
|
| -END_MSG_MAP()
|
| -
|
| - bool Initialize() {
|
| - DVLOG(1) << __FUNCTION__;
|
| - DCHECK(!automation_client_.get());
|
| - automation_client_ = CreateAutomationClient();
|
| - if (!automation_client_.get()) {
|
| - NOTREACHED() << "new ChromeFrameAutomationClient";
|
| - return false;
|
| - }
|
| -
|
| - return true;
|
| - }
|
| -
|
| - void Uninitialize() {
|
| - DVLOG(1) << __FUNCTION__;
|
| - if (IsValid()) {
|
| - automation_client_->Uninitialize();
|
| - automation_client_ = NULL;
|
| - }
|
| - }
|
| -
|
| - bool InitializeAutomation(const std::wstring& profile_name,
|
| - bool incognito, bool is_widget_mode,
|
| - const GURL& url, const GURL& referrer,
|
| - bool route_all_top_level_navigations) {
|
| - DCHECK(IsValid());
|
| - DCHECK(launch_params_ == NULL);
|
| - // We don't want to do incognito when privileged, since we're
|
| - // running in browser chrome or some other privileged context.
|
| - bool incognito_mode = !is_privileged() && incognito;
|
| - base::FilePath profile_path;
|
| - GetProfilePath(profile_name, &profile_path);
|
| - // The profile name could change based on the browser version. For e.g. for
|
| - // IE6/7 the profile is created in a different folder whose last component
|
| - // is Google Chrome Frame.
|
| - base::FilePath actual_profile_name = profile_path.BaseName();
|
| - launch_params_ = new ChromeFrameLaunchParams(url, referrer, profile_path,
|
| - actual_profile_name.value(), SimpleResourceLoader::GetLanguage(),
|
| - incognito_mode, is_widget_mode, route_all_top_level_navigations);
|
| - return automation_client_->Initialize(this, launch_params_);
|
| - }
|
| -
|
| - // ChromeFrameDelegate implementation
|
| - virtual WindowType GetWindow() const {
|
| - return (static_cast<const T*>(this))->m_hWnd;
|
| - }
|
| -
|
| - virtual void GetBounds(RECT* bounds) {
|
| - if (bounds) {
|
| - if (::IsWindow(GetWindow())) {
|
| - (static_cast<T*>(this))->GetClientRect(bounds);
|
| - }
|
| - }
|
| - }
|
| - virtual std::string GetDocumentUrl() {
|
| - return document_url_;
|
| - }
|
| - virtual void OnAutomationServerReady() {
|
| - }
|
| -
|
| - virtual bool IsValid() const {
|
| - return automation_client_.get() != NULL;
|
| - }
|
| -
|
| - protected:
|
| - LRESULT OnSetFocus(UINT message, WPARAM wparam, LPARAM lparam,
|
| - BOOL& handled) { // NO_LINT
|
| - return 0;
|
| - }
|
| -
|
| - LRESULT OnParentNotify(UINT message, WPARAM wparam, LPARAM lparam,
|
| - BOOL& handled) { // NO_LINT
|
| - switch (LOWORD(wparam)) {
|
| - case WM_LBUTTONDOWN:
|
| - case WM_MBUTTONDOWN:
|
| - case WM_RBUTTONDOWN:
|
| - case WM_XBUTTONDOWN: {
|
| - // If we got activated via mouse click on the external tab,
|
| - // we need to update the state of this thread and tell the
|
| - // browser that we now have the focus.
|
| - HWND focus = ::GetFocus();
|
| - HWND plugin_window = GetWindow();
|
| -
|
| - // The Chrome-Frame instance may have launched a popup which currently
|
| - // has focus. Because experimental extension popups are top-level
|
| - // windows, we have to check that the focus has shifted to a window
|
| - // that does not share the same GA_ROOTOWNER as the plugin.
|
| - if (focus != plugin_window &&
|
| - ::GetAncestor(plugin_window, GA_ROOTOWNER) !=
|
| - ::GetAncestor(focus, GA_ROOTOWNER)) {
|
| - ignore_setfocus_ = true;
|
| - SetFocus(plugin_window);
|
| - ignore_setfocus_ = false;
|
| - }
|
| - break;
|
| - }
|
| - }
|
| -
|
| - return 0;
|
| - }
|
| -
|
| - // Return true if context menu should be displayed. The menu could be
|
| - // modified as well (enable/disable commands, add/remove items).
|
| - // Override in most-derived class if needed.
|
| - bool PreProcessContextMenu(HMENU menu) {
|
| - // Add an "About" item.
|
| - AppendMenu(menu, MF_STRING, IDC_ABOUT_CHROME_FRAME,
|
| - SimpleResourceLoader::Get(IDS_CHROME_FRAME_MENU_ABOUT).c_str());
|
| - return true;
|
| - }
|
| -
|
| - // Allow overriding the type of automation client used, for unit tests.
|
| - virtual ChromeFrameAutomationClient* CreateAutomationClient() {
|
| - return new ChromeFrameAutomationClient;
|
| - }
|
| -
|
| - virtual void GetProfilePath(const std::wstring& profile_name,
|
| - base::FilePath* profile_path) {
|
| - return GetChromeFrameProfilePath(profile_name, profile_path);
|
| - }
|
| -
|
| - protected:
|
| - // Our gateway to chrome land
|
| - scoped_refptr<ChromeFrameAutomationClient> automation_client_;
|
| -
|
| - // How we launched Chrome.
|
| - scoped_refptr<ChromeFrameLaunchParams> launch_params_;
|
| -
|
| - // Url of the containing document.
|
| - std::string document_url_;
|
| -
|
| - // We set this flag when we're taking the focus ourselves
|
| - // and notifying the host browser that we're doing so.
|
| - // When the flag is not set, we transfer the focus to chrome.
|
| - bool ignore_setfocus_;
|
| -};
|
| -
|
| -#endif // CHROME_FRAME_CHROME_FRAME_PLUGIN_H_
|
|
|