| OLD | NEW |
| 1 // Copyright (c) 2009 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2009 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 #include "chrome_frame/chrome_frame_automation.h" | 5 #include "chrome_frame/chrome_frame_automation.h" |
| 6 | 6 |
| 7 #include "base/command_line.h" | 7 #include "base/command_line.h" |
| 8 #include "base/compiler_specific.h" | 8 #include "base/compiler_specific.h" |
| 9 #include "base/file_util.h" | 9 #include "base/file_util.h" |
| 10 #include "base/file_version_info.h" | 10 #include "base/file_version_info.h" |
| (...skipping 465 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 476 // We must destroy the window, since if there are pending tasks | 476 // We must destroy the window, since if there are pending tasks |
| 477 // window procedure may be invoked after DLL is unloaded. | 477 // window procedure may be invoked after DLL is unloaded. |
| 478 // Unfortunately pending tasks are leaked. | 478 // Unfortunately pending tasks are leaked. |
| 479 if (m_hWnd) | 479 if (m_hWnd) |
| 480 DestroyWindow(); | 480 DestroyWindow(); |
| 481 | 481 |
| 482 chrome_frame_delegate_ = NULL; | 482 chrome_frame_delegate_ = NULL; |
| 483 init_state_ = UNINITIALIZED; | 483 init_state_ = UNINITIALIZED; |
| 484 } | 484 } |
| 485 | 485 |
| 486 bool ChromeFrameAutomationClient::InitiateNavigation(const std::string& url, | 486 bool ChromeFrameAutomationClient::InitiateNavigation( |
| 487 bool is_privileged) { | 487 const std::string& url, const std::string& referrer, bool is_privileged) { |
| 488 if (url.empty()) | 488 if (url.empty()) |
| 489 return false; | 489 return false; |
| 490 | 490 |
| 491 url_ = GURL(url); | 491 url_ = GURL(url); |
| 492 | 492 |
| 493 // Catch invalid URLs early. | 493 // Catch invalid URLs early. |
| 494 if (!url_.is_valid() || !IsValidUrlScheme(UTF8ToWide(url), is_privileged)) { | 494 if (!url_.is_valid() || !IsValidUrlScheme(UTF8ToWide(url), is_privileged)) { |
| 495 DLOG(ERROR) << "Invalid URL passed to InitiateNavigation: " << url | 495 DLOG(ERROR) << "Invalid URL passed to InitiateNavigation: " << url |
| 496 << " is_privileged=" << is_privileged; | 496 << " is_privileged=" << is_privileged; |
| 497 return false; | 497 return false; |
| 498 } | 498 } |
| 499 | 499 |
| 500 if (is_initialized()) { | 500 if (is_initialized()) { |
| 501 BeginNavigate(GURL(url)); | 501 BeginNavigate(GURL(url), GURL(referrer)); |
| 502 } | 502 } |
| 503 | 503 |
| 504 return true; | 504 return true; |
| 505 } | 505 } |
| 506 | 506 |
| 507 bool ChromeFrameAutomationClient::NavigateToIndex(int index) { | 507 bool ChromeFrameAutomationClient::NavigateToIndex(int index) { |
| 508 // Could be NULL if we failed to launch Chrome in LaunchAutomationServer() | 508 // Could be NULL if we failed to launch Chrome in LaunchAutomationServer() |
| 509 if (!automation_server_ || !tab_.get() || !tab_->is_valid()) { | 509 if (!automation_server_ || !tab_.get() || !tab_->is_valid()) { |
| 510 return false; | 510 return false; |
| 511 } | 511 } |
| (...skipping 19 matching lines...) Expand all Loading... |
| 531 } | 531 } |
| 532 | 532 |
| 533 bool ChromeFrameAutomationClient::SetProxySettings( | 533 bool ChromeFrameAutomationClient::SetProxySettings( |
| 534 const std::string& json_encoded_proxy_settings) { | 534 const std::string& json_encoded_proxy_settings) { |
| 535 if (!is_initialized()) | 535 if (!is_initialized()) |
| 536 return false; | 536 return false; |
| 537 automation_server_->SendProxyConfig(json_encoded_proxy_settings); | 537 automation_server_->SendProxyConfig(json_encoded_proxy_settings); |
| 538 return true; | 538 return true; |
| 539 } | 539 } |
| 540 | 540 |
| 541 void ChromeFrameAutomationClient::BeginNavigate(const GURL& url) { | 541 void ChromeFrameAutomationClient::BeginNavigate(const GURL& url, |
| 542 const GURL& referrer) { |
| 542 // Could be NULL if we failed to launch Chrome in LaunchAutomationServer() | 543 // Could be NULL if we failed to launch Chrome in LaunchAutomationServer() |
| 543 if (!automation_server_ || !tab_.get()) { | 544 if (!automation_server_ || !tab_.get()) { |
| 544 DLOG(WARNING) << "BeginNavigate - can't navigate."; | 545 DLOG(WARNING) << "BeginNavigate - can't navigate."; |
| 545 ReportNavigationError(AUTOMATION_MSG_NAVIGATION_ERROR, url_.spec()); | 546 ReportNavigationError(AUTOMATION_MSG_NAVIGATION_ERROR, url_.spec()); |
| 546 return; | 547 return; |
| 547 } | 548 } |
| 548 | 549 |
| 549 DCHECK(::IsWindow(chrome_window_)); | 550 DCHECK(::IsWindow(chrome_window_)); |
| 550 | 551 |
| 551 if (!tab_->is_valid()) { | 552 if (!tab_->is_valid()) { |
| 552 DLOG(WARNING) << "BeginNavigate - tab isn't valid."; | 553 DLOG(WARNING) << "BeginNavigate - tab isn't valid."; |
| 553 return; | 554 return; |
| 554 } | 555 } |
| 555 | 556 |
| 556 IPC::SyncMessage* msg = | 557 IPC::SyncMessage* msg = |
| 557 new AutomationMsg_NavigateInExternalTab(0, tab_->handle(), url, NULL); | 558 new AutomationMsg_NavigateInExternalTab(0, tab_->handle(), url, |
| 559 referrer, NULL); |
| 558 automation_server_->SendAsAsync(msg, NewCallback(this, | 560 automation_server_->SendAsAsync(msg, NewCallback(this, |
| 559 &ChromeFrameAutomationClient::BeginNavigateCompleted), this); | 561 &ChromeFrameAutomationClient::BeginNavigateCompleted), this); |
| 560 | 562 |
| 561 RECT client_rect = {0}; | 563 RECT client_rect = {0}; |
| 562 chrome_frame_delegate_->GetBounds(&client_rect); | 564 chrome_frame_delegate_->GetBounds(&client_rect); |
| 563 Resize(client_rect.right - client_rect.left, | 565 Resize(client_rect.right - client_rect.left, |
| 564 client_rect.bottom - client_rect.top, | 566 client_rect.bottom - client_rect.top, |
| 565 SWP_NOACTIVATE | SWP_NOZORDER); | 567 SWP_NOACTIVATE | SWP_NOZORDER); |
| 566 } | 568 } |
| 567 | 569 |
| (...skipping 421 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 989 if (font_size < SMALLEST_FONT || | 991 if (font_size < SMALLEST_FONT || |
| 990 font_size > LARGEST_FONT) { | 992 font_size > LARGEST_FONT) { |
| 991 NOTREACHED() << "Invalid font size specified : " | 993 NOTREACHED() << "Invalid font size specified : " |
| 992 << font_size; | 994 << font_size; |
| 993 return; | 995 return; |
| 994 } | 996 } |
| 995 | 997 |
| 996 Send(new AutomationMsg_SetPageFontSize(0, tab_handle_, font_size)); | 998 Send(new AutomationMsg_SetPageFontSize(0, tab_handle_, font_size)); |
| 997 } | 999 } |
| 998 | 1000 |
| OLD | NEW |