diff --git a/ceee/ie/common/chrome_frame_host.cc b/ceee/ie/common/chrome_frame_host.cc index 66e8efcbf804d5..dc5362aa99cd59 100644 --- a/ceee/ie/common/chrome_frame_host.cc +++ b/ceee/ie/common/chrome_frame_host.cc @@ -61,17 +61,6 @@ STDMETHODIMP ChromeFrameHost::GetWantsPrivileged(boolean* wants_privileged) { return S_OK; } -STDMETHODIMP ChromeFrameHost::GetChromeExtraArguments(BSTR* args) { - DCHECK(args); - - // Extra arguments are passed on verbatim, so we add the -- prefix. - CComBSTR str = "--"; - str.Append(switches::kEnableExperimentalExtensionApis); - - *args = str.Detach(); - return S_OK; -} - STDMETHODIMP ChromeFrameHost::GetChromeProfileName(BSTR* profile_name) { return chrome_profile_name_.CopyTo(profile_name); } diff --git a/ceee/ie/common/chrome_frame_host.h b/ceee/ie/common/chrome_frame_host.h index b04b7b5a9b34f8..4703e7148494f2 100644 --- a/ceee/ie/common/chrome_frame_host.h +++ b/ceee/ie/common/chrome_frame_host.h @@ -140,7 +140,6 @@ class ATL_NO_VTABLE ChromeFrameHost // @name IChromeFramePrivileged implementation. // @{ STDMETHOD(GetWantsPrivileged)(boolean* wants_privileged); - STDMETHOD(GetChromeExtraArguments)(BSTR* args); STDMETHOD(GetChromeProfileName)(BSTR* args); STDMETHOD(GetExtensionApisToAutomate)(BSTR* functions_enabled); STDMETHOD(ShouldShowVersionMismatchDialog)(); diff --git a/ceee/ie/plugin/bho/infobar_browser_window.cc b/ceee/ie/plugin/bho/infobar_browser_window.cc index 8a332e405bd3ce..c5de414615121d 100644 --- a/ceee/ie/plugin/bho/infobar_browser_window.cc +++ b/ceee/ie/plugin/bho/infobar_browser_window.cc @@ -39,19 +39,6 @@ STDMETHODIMP InfobarBrowserWindow::GetWantsPrivileged( return S_OK; } -STDMETHODIMP InfobarBrowserWindow::GetChromeExtraArguments(BSTR* args) { - DCHECK(args); - - // Must enable experimental extensions because we want to load html pages - // from our extension. - // Extra arguments are passed on verbatim, so we add the -- prefix. - CComBSTR str = "--"; - str.Append(switches::kEnableExperimentalExtensionApis); - - *args = str.Detach(); - return S_OK; -} - STDMETHODIMP InfobarBrowserWindow::GetChromeProfileName(BSTR* profile_name) { *profile_name = ::SysAllocString( ceee_module_util::GetBrokerProfileNameForIe()); diff --git a/ceee/ie/plugin/bho/infobar_browser_window.h b/ceee/ie/plugin/bho/infobar_browser_window.h index 9c4b39fe1209d3..fa4d8a78f19ad3 100644 --- a/ceee/ie/plugin/bho/infobar_browser_window.h +++ b/ceee/ie/plugin/bho/infobar_browser_window.h @@ -102,7 +102,6 @@ class ATL_NO_VTABLE InfobarBrowserWindow // @name IChromeFramePrivileged implementation. // @{ STDMETHOD(GetWantsPrivileged)(boolean *wants_privileged); - STDMETHOD(GetChromeExtraArguments)(BSTR *args); STDMETHOD(GetChromeProfileName)(BSTR *args); STDMETHOD(GetExtensionApisToAutomate)(BSTR *args); STDMETHOD(ShouldShowVersionMismatchDialog)(); diff --git a/ceee/ie/plugin/toolband/tool_band.cc b/ceee/ie/plugin/toolband/tool_band.cc index 89e8be1f0a9072..d30c9a2d7840b9 100644 --- a/ceee/ie/plugin/toolband/tool_band.cc +++ b/ceee/ie/plugin/toolband/tool_band.cc @@ -213,17 +213,6 @@ STDMETHODIMP ToolBand::GetWantsPrivileged(boolean* wants_privileged) { return S_OK; } -STDMETHODIMP ToolBand::GetChromeExtraArguments(BSTR* args) { - DCHECK(args); - - // Extra arguments are passed on verbatim, so we add the -- prefix. - CComBSTR str = "--"; - str.Append(switches::kEnableExperimentalExtensionApis); - - *args = str.Detach(); - return S_OK; -} - STDMETHODIMP ToolBand::GetChromeProfileName(BSTR* profile_name) { *profile_name = ::SysAllocString( ceee_module_util::GetBrokerProfileNameForIe()); diff --git a/ceee/ie/plugin/toolband/tool_band.h b/ceee/ie/plugin/toolband/tool_band.h index 1fbe73fe7e04ce..08ae691f321dcc 100644 --- a/ceee/ie/plugin/toolband/tool_band.h +++ b/ceee/ie/plugin/toolband/tool_band.h @@ -137,7 +137,6 @@ class ATL_NO_VTABLE ToolBand : public CComObjectRootEx, // @name IChromeFramePrivileged implementation. // @{ STDMETHOD(GetWantsPrivileged)(boolean *wants_privileged); - STDMETHOD(GetChromeExtraArguments)(BSTR *args); STDMETHOD(GetChromeProfileName)(BSTR *args); STDMETHOD(GetExtensionApisToAutomate)(BSTR *args); STDMETHOD(ShouldShowVersionMismatchDialog)(); diff --git a/chrome_frame/chrome_frame.gyp b/chrome_frame/chrome_frame.gyp index 0cfe8959454198..e8b334a70a5495 100644 --- a/chrome_frame/chrome_frame.gyp +++ b/chrome_frame/chrome_frame.gyp @@ -335,7 +335,7 @@ }, }, 'dependencies': [ - '../chrome/chrome.gyp:crash_service', + '../chrome/chrome.gyp:crash_service', '../chrome/chrome.gyp:automation', '../chrome/chrome.gyp:installer_util', '../google_update/google_update.gyp:google_update', @@ -429,7 +429,7 @@ 'dependencies': [ '../breakpad/breakpad.gyp:breakpad_handler', '../chrome/chrome.gyp:automation', - '../chrome/chrome.gyp:crash_service', + '../chrome/chrome.gyp:crash_service', '../chrome/chrome.gyp:installer_util', '../google_update/google_update.gyp:google_update', ], @@ -497,7 +497,7 @@ 'dependencies': [ '../breakpad/breakpad.gyp:breakpad_handler', '../chrome/chrome.gyp:automation', - '../chrome/chrome.gyp:crash_service', + '../chrome/chrome.gyp:crash_service', '../chrome/chrome.gyp:chrome_dll_version', '../chrome/chrome.gyp:installer_util', '../google_update/google_update.gyp:google_update', @@ -808,7 +808,8 @@ '/c', '<(RULE_INPUT_PATH)', ], 'process_outputs_as_sources': 0, - 'message': 'Assembling <(RULE_INPUT_PATH) to <(INTERMEDIATE_DIR)\<(RULE_INPUT_ROOT).obj.', + 'message': + 'Assembling <(RULE_INPUT_PATH) to <(INTERMEDIATE_DIR)\<(RULE_INPUT_ROOT).obj.', }, ], 'msvs_settings': { @@ -886,6 +887,8 @@ 'resource.h', ], 'include_dirs': [ + # For chrome_tab.h + '<(SHARED_INTERMEDIATE_DIR)', '<(INTERMEDIATE_DIR)/../npchrome_frame', ], 'conditions': [ diff --git a/chrome_frame/chrome_frame_activex.cc b/chrome_frame/chrome_frame_activex.cc index 60855462408e8d..7d3f5eb760574e 100644 --- a/chrome_frame/chrome_frame_activex.cc +++ b/chrome_frame/chrome_frame_activex.cc @@ -453,16 +453,8 @@ HRESULT ChromeFrameActivex::IOleObject_SetClientSite( url_fetcher_->set_privileged_mode(is_privileged_); } - std::wstring chrome_extra_arguments; std::wstring profile_name(GetHostProcessName(false)); if (is_privileged_) { - // Does the host want to provide extra arguments? - base::win::ScopedBstr extra_arguments_arg; - service_hr = service->GetChromeExtraArguments( - extra_arguments_arg.Receive()); - if (S_OK == service_hr && extra_arguments_arg) - chrome_extra_arguments.assign(extra_arguments_arg, - extra_arguments_arg.Length()); base::win::ScopedBstr automated_functions_arg; service_hr = service->GetExtensionApisToAutomate( @@ -490,6 +482,15 @@ HRESULT ChromeFrameActivex::IOleObject_SetClientSite( InitializeAutomationSettings(); + // To avoid http://code.google.com/p/chromium/issues/detail?id=63427, + // we always pass this flag needed by CEEE. It has no effect on + // normal CF operation. + // + // Extra arguments are passed on verbatim, so we add the -- prefix. + std::wstring chrome_extra_arguments(L"--"); + chrome_extra_arguments.append( + ASCIIToWide(switches::kEnableExperimentalExtensionApis)); + url_fetcher_->set_frame_busting(!is_privileged_); automation_client_->SetUrlFetcher(url_fetcher_.get()); if (!InitializeAutomation(profile_name, chrome_extra_arguments, diff --git a/chrome_frame/chrome_tab.idl b/chrome_frame/chrome_tab.idl index 5894e3fd183a5b..3ec0236682a62f 100644 --- a/chrome_frame/chrome_tab.idl +++ b/chrome_frame/chrome_tab.idl @@ -84,10 +84,10 @@ interface IChromeFrame : IDispatch { }; [ - object, + object, uuid(851bedec-4b2c-4959-abc0-a53403117257), - local, // This interface should never be marshaled. - hidden, + local, // This interface should never be marshaled. + hidden, ] // Internal implementation interface. Not intended as an API. May change // frequently, don't treat this as frozen. @@ -98,18 +98,17 @@ interface IChromeFrameInternal : IUnknown { [ object, - uuid(8AD52429-3CE0-4883-BC69-2DFA055D20D4), + uuid(B1B52A4D-B22E-489f-8CCD-1CF9166FA90E), oleautomation, nonextensible, hidden, ] +// Internal implementation interface. Not intended as an API. May change +// frequently, don't treat this as frozen. interface IChromeFramePrivileged : IUnknown { // If the host returns false for wants_privileged, the control // won't enable privileged mode. HRESULT GetWantsPrivileged([out] boolean *wants_privileged); - // Extra arguments to supply to the Chrome instance. Returns S_FALSE when - // no extra arguments are needed. Always sets the output string to non-NULL. - HRESULT GetChromeExtraArguments([out] BSTR *args); // The profile name we want to use. HRESULT GetChromeProfileName([out] BSTR *profile_name); // The comma-separated list of extension API functions you wish to automate.