OLD | NEW |
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #ifndef CHROME_FRAME_UTILS_H_ | 5 #ifndef CHROME_FRAME_UTILS_H_ |
6 #define CHROME_FRAME_UTILS_H_ | 6 #define CHROME_FRAME_UTILS_H_ |
7 | 7 |
8 #include <OAidl.h> | 8 #include <OAidl.h> |
9 #include <objidl.h> | 9 #include <objidl.h> |
10 #include <windows.h> | 10 #include <windows.h> |
11 #include <wininet.h> | 11 #include <wininet.h> |
12 #include <string> | 12 #include <string> |
13 #include <vector> | 13 #include <vector> |
14 | 14 |
15 #include "base/basictypes.h" | 15 #include "base/basictypes.h" |
16 #include "base/logging.h" | 16 #include "base/logging.h" |
17 #include "base/metrics/histogram.h" | 17 #include "base/metrics/histogram.h" |
18 #include "base/string16.h" | 18 #include "base/string16.h" |
19 #include "base/threading/thread.h" | |
20 #include "base/win/scoped_com_initializer.h" | |
21 #include "base/win/scoped_comptr.h" | 19 #include "base/win/scoped_comptr.h" |
22 #include "googleurl/src/gurl.h" | 20 #include "googleurl/src/gurl.h" |
23 #include "ui/gfx/rect.h" | 21 #include "ui/gfx/rect.h" |
24 | 22 |
25 class FilePath; | 23 class FilePath; |
26 class RegistryListPreferencesHolder; | 24 class RegistryListPreferencesHolder; |
27 interface IBrowserService; | 25 interface IBrowserService; |
28 interface IWebBrowser2; | 26 interface IWebBrowser2; |
29 struct ContextMenuModel; | 27 struct ContextMenuModel; |
30 | 28 |
(...skipping 358 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
389 // delegate() method that returns a pointer to the delegated COM object. | 387 // delegate() method that returns a pointer to the delegated COM object. |
390 #define COM_INTERFACE_ENTRY_IF_DELEGATE_SUPPORTS(x) \ | 388 #define COM_INTERFACE_ENTRY_IF_DELEGATE_SUPPORTS(x) \ |
391 COM_INTERFACE_ENTRY_FUNC(_ATL_IIDOF(x), \ | 389 COM_INTERFACE_ENTRY_FUNC(_ATL_IIDOF(x), \ |
392 offsetofclass(x, _ComMapClass), \ | 390 offsetofclass(x, _ComMapClass), \ |
393 QueryInterfaceIfDelegateSupports<_ComMapClass>) | 391 QueryInterfaceIfDelegateSupports<_ComMapClass>) |
394 | 392 |
395 // Queries the delegated COM object for an interface, bypassing the wrapper. | 393 // Queries the delegated COM object for an interface, bypassing the wrapper. |
396 #define COM_INTERFACE_BLIND_DELEGATE() \ | 394 #define COM_INTERFACE_BLIND_DELEGATE() \ |
397 COM_INTERFACE_ENTRY_FUNC_BLIND(0, CheckOutgoingInterface<_ComMapClass>) | 395 COM_INTERFACE_ENTRY_FUNC_BLIND(0, CheckOutgoingInterface<_ComMapClass>) |
398 | 396 |
399 // Thread that enters STA and has a UI message loop. | |
400 class STAThread : public base::Thread { | |
401 public: | |
402 explicit STAThread(const char *name) : Thread(name) {} | |
403 virtual ~STAThread() { | |
404 Stop(); | |
405 } | |
406 | |
407 bool Start() { | |
408 return StartWithOptions(Options(MessageLoop::TYPE_UI, 0)); | |
409 } | |
410 | |
411 private: | |
412 virtual void Init() OVERRIDE { | |
413 com_initializer_.reset(new base::win::ScopedCOMInitializer()); | |
414 } | |
415 | |
416 virtual void CleanUp() OVERRIDE { | |
417 com_initializer_.reset(); | |
418 } | |
419 | |
420 scoped_ptr<base::win::ScopedCOMInitializer> com_initializer_; | |
421 | |
422 DISALLOW_COPY_AND_ASSIGN(STAThread); | |
423 }; | |
424 | |
425 std::wstring GuidToString(const GUID& guid); | 397 std::wstring GuidToString(const GUID& guid); |
426 | 398 |
427 // The urls retrieved from the IMoniker interface don't contain the anchor | 399 // The urls retrieved from the IMoniker interface don't contain the anchor |
428 // portion of the actual url navigated to. This function checks whether the | 400 // portion of the actual url navigated to. This function checks whether the |
429 // url passed in the bho_url parameter contains an anchor and if yes checks | 401 // url passed in the bho_url parameter contains an anchor and if yes checks |
430 // whether it matches the url retrieved from the moniker. If yes it returns | 402 // whether it matches the url retrieved from the moniker. If yes it returns |
431 // the bho url, if not the moniker url. | 403 // the bho url, if not the moniker url. |
432 std::wstring GetActualUrlFromMoniker(IMoniker* moniker, | 404 std::wstring GetActualUrlFromMoniker(IMoniker* moniker, |
433 IBindCtx* bind_context, | 405 IBindCtx* bind_context, |
434 const std::wstring& bho_url); | 406 const std::wstring& bho_url); |
(...skipping 190 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
625 // increase the connection count once per process. | 597 // increase the connection count once per process. |
626 // Returns true on success. | 598 // Returns true on success. |
627 bool IncreaseWinInetConnections(DWORD connections); | 599 bool IncreaseWinInetConnections(DWORD connections); |
628 | 600 |
629 // Sets |profile_path| to the path for the Chrome Frame |profile_name| | 601 // Sets |profile_path| to the path for the Chrome Frame |profile_name| |
630 // profile. | 602 // profile. |
631 void GetChromeFrameProfilePath(const string16& profile_name, | 603 void GetChromeFrameProfilePath(const string16& profile_name, |
632 FilePath* profile_path); | 604 FilePath* profile_path); |
633 | 605 |
634 #endif // CHROME_FRAME_UTILS_H_ | 606 #endif // CHROME_FRAME_UTILS_H_ |
OLD | NEW |