web_state.mm 2.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182
  1. // Copyright 2014 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. #import "ios/web/public/web_state.h"
  5. #import "ios/web/public/web_client.h"
  6. #if !defined(__has_feature) || !__has_feature(objc_arc)
  7. #error "This file requires ARC support."
  8. #endif
  9. namespace web {
  10. WebState::CreateParams::CreateParams(web::BrowserState* browser_state)
  11. : browser_state(browser_state), created_with_opener(false) {}
  12. WebState::CreateParams::~CreateParams() {}
  13. WebState::OpenURLParams::OpenURLParams(const GURL& url,
  14. const GURL& virtual_url,
  15. const Referrer& referrer,
  16. WindowOpenDisposition disposition,
  17. ui::PageTransition transition,
  18. bool is_renderer_initiated)
  19. : url(url),
  20. virtual_url(virtual_url),
  21. referrer(referrer),
  22. disposition(disposition),
  23. transition(transition),
  24. is_renderer_initiated(is_renderer_initiated) {}
  25. WebState::OpenURLParams::OpenURLParams(const GURL& url,
  26. const Referrer& referrer,
  27. WindowOpenDisposition disposition,
  28. ui::PageTransition transition,
  29. bool is_renderer_initiated)
  30. : OpenURLParams(url,
  31. GURL(),
  32. referrer,
  33. disposition,
  34. transition,
  35. is_renderer_initiated) {}
  36. WebState::OpenURLParams::OpenURLParams(const OpenURLParams& params) = default;
  37. WebState::OpenURLParams& WebState::OpenURLParams::operator=(
  38. const OpenURLParams& params) = default;
  39. WebState::OpenURLParams::OpenURLParams(OpenURLParams&& params) = default;
  40. WebState::OpenURLParams& WebState::OpenURLParams::operator=(
  41. OpenURLParams&& params) = default;
  42. WebState::OpenURLParams::~OpenURLParams() {}
  43. WebState::InterfaceBinder::InterfaceBinder(WebState* web_state)
  44. : web_state_(web_state) {}
  45. WebState::InterfaceBinder::~InterfaceBinder() = default;
  46. void WebState::InterfaceBinder::AddInterface(base::StringPiece interface_name,
  47. Callback callback) {
  48. callbacks_.emplace(std::string(interface_name), std::move(callback));
  49. }
  50. void WebState::InterfaceBinder::BindInterface(
  51. mojo::GenericPendingReceiver receiver) {
  52. DCHECK(receiver.is_valid());
  53. auto it = callbacks_.find(*receiver.interface_name());
  54. if (it != callbacks_.end())
  55. it->second.Run(&receiver);
  56. GetWebClient()->BindInterfaceReceiverFromMainFrame(web_state_,
  57. std::move(receiver));
  58. }
  59. WebState::InterfaceBinder* WebState::GetInterfaceBinderForMainFrame() {
  60. return nullptr;
  61. }
  62. } // namespace web